From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id E647F45AF3; Wed, 9 Oct 2024 12:54:46 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CB779410E8; Wed, 9 Oct 2024 12:54:46 +0200 (CEST) Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by mails.dpdk.org (Postfix) with ESMTP id 138CA4065D for ; Wed, 9 Oct 2024 12:54:45 +0200 (CEST) Received: from mail.maildlp.com (unknown [172.18.186.31]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4XNqX208hwz6K97s; Wed, 9 Oct 2024 18:54:26 +0800 (CST) Received: from frapeml500007.china.huawei.com (unknown [7.182.85.172]) by mail.maildlp.com (Postfix) with ESMTPS id 8CBA7140133; Wed, 9 Oct 2024 18:54:43 +0800 (CST) Received: from frapeml500007.china.huawei.com (7.182.85.172) by frapeml500007.china.huawei.com (7.182.85.172) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Wed, 9 Oct 2024 12:54:43 +0200 Received: from frapeml500007.china.huawei.com ([7.182.85.172]) by frapeml500007.china.huawei.com ([7.182.85.172]) with mapi id 15.01.2507.039; Wed, 9 Oct 2024 12:54:43 +0200 From: Konstantin Ananyev To: Ferruh Yigit , Dariusz Sosnowski , "NBU-Contact-Thomas Monjalon (EXTERNAL)" , Andrew Rybchenko CC: "dev@dpdk.org" , Bruce Richardson Subject: RE: [RFC 0/4] ethdev: rework config restore Thread-Topic: [RFC 0/4] ethdev: rework config restore Thread-Index: AQHbCaxnvJzcot6EwEidqZ9OS9qkZLJvWnWAgAeTsoCABDL0EIAAwm0AgAFT2bCAAGMBgIAAxJEQ Date: Wed, 9 Oct 2024 10:54:43 +0000 Message-ID: <705b2074e6cf41b88e6415eab10876be@huawei.com> References: <20240918092201.33772-1-dsosnowski@nvidia.com> <13747524-f073-4749-adbd-be1c7681dbcd@amd.com> <3833d9270fba43af9d17765056911940@huawei.com> <8a6f760c-8bc7-46cd-92e0-a8af66114e2d@amd.com> In-Reply-To: <8a6f760c-8bc7-46cd-92e0-a8af66114e2d@amd.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.206.138.42] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org DQoNCj4gPj4+Pj4+IFdlIGhhdmUgYmVlbiB3b3JraW5nIG9uIG9wdGltaXppbmcgdGhlIGxhdGVu Y3kgb2YgY2FsbHMgdG8NCj4gPj4+Pj4+IHJ0ZV9ldGhfZGV2X3N0YXJ0KCksIG9uIHBvcnRzIHNw YXduZWQgYnkgbWx4NSBQTUQuIE1vc3Qgb2YgdGhlIHdvcmsNCj4gPj4+Pj4+IHJlcXVpcmVzIGNo YW5nZXMgaW4gdGhlIGltcGxlbWVudGF0aW9uIG9mDQo+ID4+Pj4+PiAuZGV2X3N0YXJ0KCkgUE1E IGNhbGxiYWNrLCBidXQgSSBhbHNvIHdhbnRlZCB0byBzdGFydCBhIGRpc2N1c3Npb24NCj4gPj4+ Pj4+IHJlZ2FyZGluZyBjb25maWd1cmF0aW9uIHJlc3RvcmUuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4g cnRlX2V0aF9kZXZfc3RhcnQoKSBkb2VzIGEgZmV3IHRoaW5ncyBvbiB0b3Agb2YgY2FsbGluZyAu ZGV2X3N0YXJ0KCkgY2FsbGJhY2s6DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gLSBCZWZvcmUgY2FsbGlu ZyBpdDoNCj4gPj4+Pj4+ICAgICAtIGV0aF9kZXZfbWFjX3Jlc3RvcmUoKSAtIGlmIGRldmljZSBz dXBwb3J0cw0KPiA+Pj4+Pj4gUlRFX0VUSF9ERVZfTk9MSVZFX01BQ19BRERSOw0KPiA+Pj4+Pj4g LSBBZnRlciBjYWxsaW5nIGl0Og0KPiA+Pj4+Pj4gICAgIC0gZXRoX2Rldl9tYWNfcmVzdG9yZSgp IC0gaWYgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQNCj4gPj4+Pj4gUlRFX0VUSF9ERVZfTk9MSVZF X01BQ19BRERSOw0KPiA+Pj4+Pj4gICAgIC0gcmVzdG9yZSBwcm9taXNjdW91cyBjb25maWcNCj4g Pj4+Pj4+ICAgICAtIHJlc3RvcmUgYWxsIG11bHRpY2FzdCBjb25maWcNCj4gPj4+Pj4+DQo+ID4+ Pj4+PiBldGhfZGV2X21hY19yZXN0b3JlKCkgaXRlcmF0ZXMgb3ZlciBhbGwga25vd24gTUFDIGFk ZHJlc3NlcyAtIHN0b3JlZA0KPiA+Pj4+Pj4gaW4gcnRlX2V0aF9kZXZfZGF0YS5tYWNfYWRkcnMg YXJyYXkgLSBhbmQgY2FsbHMNCj4gPj4+Pj4+IC5tYWNfYWRkcl9zZXQoKSBhbmQgLm1hY19hZGRy X2FkZCgpIGNhbGxiYWNrcyB0byBhcHBseSB0aGVzZSBNQUMgYWRkcmVzc2VzLg0KPiA+Pj4+Pj4N Cj4gPj4+Pj4+IFByb21pc2N1b3VzIGNvbmZpZyByZXN0b3JlIGNoZWNrcyBpZiBwcm9taXNjdW91 cyBtb2RlIGlzIGVuYWJsZWQgb3INCj4gPj4+Pj4+IG5vdCwgYW5kIGNhbGxzIC5wcm9taXNjdW91 c19lbmFibGUoKSBvciAucHJvbWlzY3VvdXNfZGlzYWJsZSgpIGNhbGxiYWNrLg0KPiA+Pj4+Pj4N Cj4gPj4+Pj4+IEFsbCBtdWx0aWNhc3QgY29uZmlnIHJlc3RvcmUgY2hlY2tzIGlmIGFsbCBtdWx0 aWNhc3QgbW9kZSBpcyBlbmFibGVkDQo+ID4+Pj4+PiBvciBub3QsIGFuZCBjYWxscyAuYWxsbXVs dGljYXN0X2VuYWJsZSgpIG9yIC5hbGxtdWx0aWNhc3RfZGlzYWJsZSgpIGNhbGxiYWNrLg0KPiA+ Pj4+Pj4NCj4gPj4+Pj4+IENhbGxiYWNrcyBhcmUgY2FsbGVkIGRpcmVjdGx5IGluIGFsbCBvZiB0 aGVzZSBjYXNlcywgdG8gYnlwYXNzIHRoZQ0KPiA+Pj4+Pj4gY2hlY2tzIGZvciBhcHBseWluZyB0 aGUgc2FtZSBjb25maWd1cmF0aW9uLCB3aGljaCBleGlzdCBpbiByZWxldmFudCBBUElzLg0KPiA+ Pj4+Pj4gQ2hlY2tzIGFyZSBieXBhc3NlZCB0byBmb3JjZSBkcml2ZXJzIHRvIHJlYXBwbHkgdGhl IGNvbmZpZ3VyYXRpb24uDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gTGV0J3MgY29uc2lkZXIgd2hhdCBo YXBwZW5zIGluIHRoZSBmb2xsb3dpbmcgc2VxdWVuY2Ugb2YgQVBJIGNhbGxzLg0KPiA+Pj4+Pj4N Cj4gPj4+Pj4+IDEuIHJ0ZV9ldGhfZGV2X2NvbmZpZ3VyZSgpDQo+ID4+Pj4+PiAyLiBydGVfZXRo X3R4X3F1ZXVlX3NldHVwKCkNCj4gPj4+Pj4+IDMuIHJ0ZV9ldGhfcnhfcXVldWVfc2V0dXAoKQ0K PiA+Pj4+Pj4gNC4gcnRlX2V0aF9wcm9taXNjdW91c19lbmFibGUoKQ0KPiA+Pj4+Pj4gICAgIC0g Q2FsbCBkZXYtPmRldl9vcHMtPnByb21pc2N1b3VzX2VuYWJsZSgpDQo+ID4+Pj4+PiAgICAgLSBT dG9yZXMgcHJvbWlzY3VvdXMgc3RhdGUgaW4gZGV2LT5kYXRhLT5wcm9taXNjdW91cyA1Lg0KPiA+ Pj4+Pj4gcnRlX2V0aF9hbGxtdWx0aWNhc3RfZW5hYmxlKCkNCj4gPj4+Pj4+ICAgICAtIENhbGwg ZGV2LT5kZXZfb3BzLT5hbGxtdWx0aWNhc3RfZW5hYmxlKCkNCj4gPj4+Pj4+ICAgICAtIFN0b3Jl cyBhbGxtdWx0aWNhc3Qgc3RhdGUgaW4gZGV2LT5kYXRhLT5hbGxtdWx0aWNhc3QgNi4NCj4gPj4+ Pj4+IHJ0ZV9ldGhfZGV2X3N0YXJ0KCkNCj4gPj4+Pj4+ICAgICAtIENhbGwgZGV2LT5kZXZfb3Bz LT5kZXZfc3RhcnQoKQ0KPiA+Pj4+Pj4gICAgIC0gQ2FsbCBkZXYtPmRldl9vcHMtPm1hY19hZGRy X3NldCgpIC0gYXBwbHkgZGVmYXVsdCBNQUMgYWRkcmVzcw0KPiA+Pj4+Pj4gICAgIC0gQ2FsbCBk ZXYtPmRldl9vcHMtPnByb21pc2N1b3VzX2VuYWJsZSgpDQo+ID4+Pj4+PiAgICAgLSBDYWxsIGRl di0+ZGV2X29wcy0+YWxsbXVsdGljYXN0X2VuYWJsZSgpDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gRXZl biB0aG91Z2ggYWxsIGNvbmZpZ3VyYXRpb24gaXMgYXZhaWxhYmxlIGluIGRldi0+ZGF0YSBhZnRl ciBzdGVwIDUsDQo+ID4+Pj4+PiBsaWJyYXJ5IGZvcmNlcyByZWFwcGx5aW5nIHRoaXMgY29uZmln dXJhdGlvbiBpbiBzdGVwIDYuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gSW4gbWx4NSBQTUQgY2FzZSBh bGwgcmVsZXZhbnQgY2FsbGJhY2tzIHJlcXVpcmUgY29tbXVuaWNhdGlvbiB3aXRoIHRoZQ0KPiA+ Pj4+Pj4ga2VybmVsIGRyaXZlciwgdG8gY29uZmlndXJlIHRoZSBkZXZpY2UgKG1seDUgUE1EIG11 c3QgY3JlYXRlL2Rlc3Ryb3kNCj4gPj4+Pj4+IG5ldyBrZXJuZWwgZmxvdyBydWxlcyBhbmQvb3Ig Y2hhbmdlIG5ldGRldiBjb25maWcpLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IG1seDUgUE1EIGhhbmRs ZXMgYXBwbHlpbmcgYWxsIGNvbmZpZ3VyYXRpb24gaW4gLmRldl9zdGFydCgpLCBzbyB0aGUNCj4g Pj4+Pj4+IGZvbGxvd2luZyBmb3JjZWQgY2FsbGJhY2tzIGZvcmNlIGFkZGl0aW9uYWwgY29tbXVu aWNhdGlvbiB3aXRoIHRoZSBrZXJuZWwuIFRoZQ0KPiA+Pj4+PiBzYW1lIGNvbmZpZ3VyYXRpb24g aXMgYXBwbGllZCBtdWx0aXBsZSB0aW1lcy4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBBcyBhbiBvcHRp bWl6YXRpb24sIG1seDUgUE1EIGNvdWxkIGNoZWNrIGlmIGEgZ2l2ZW4gY29uZmlndXJhdGlvbiB3 YXMNCj4gPj4+Pj4+IGFwcGxpZWQsIGJ1dCB0aGlzIHdvdWxkIGR1cGxpY2F0ZSB0aGUgZnVuY3Rp b25hbGl0eSBvZiB0aGUgbGlicmFyeQ0KPiA+Pj4+Pj4gKGZvciBleGFtcGxlIHJ0ZV9ldGhfcHJv bWlzY3VvdXNfZW5hYmxlKCkgZG9lcyBub3QgY2FsbCB0aGUgZHJpdmVyIGlmDQo+ID4+Pj4+PiBk ZXYtPmRhdGEtPnByb21pc2N1b3VzIGlzIHNldCkuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gUXVlc3Rp b246IFNpbmNlIGFsbCBvZiB0aGUgY29uZmlndXJhdGlvbiBpcyBhdmFpbGFibGUgYmVmb3JlDQo+ ID4+Pj4+PiAuZGV2X3N0YXJ0KCkgY2FsbGJhY2sgaXMgY2FsbGVkLCB3aHkgZXRoZGV2IGxpYnJh cnkgZG9lcyBub3QgZXhwZWN0IC5kZXZfc3RhcnQoKSB0bw0KPiA+Pj4+PiB0YWtlIHRoaXMgY29u ZmlndXJhdGlvbiBpbnRvIGFjY291bnQ/DQo+ID4+Pj4+PiBJbiBvdGhlciB3b3Jkcywgd2h5IGxp YnJhcnkgaGFzIHRvIHJlYXBwbHkgdGhlIGNvbmZpZ3VyYXRpb24/DQo+ID4+Pj4+Pg0KPiA+Pj4+ Pj4gSSBjb3VsZCBub3QgZmluZCBhbnkgcGFydGljdWxhciByZWFzb24gd2h5IGNvbmZpZ3VyYXRp b24gcmVzdG9yZQ0KPiA+Pj4+Pj4gZXhpc3RzIGFzIHBhcnQgb2YgdGhlIHByb2Nlc3MgKGl0IHdh cyBpbiB0aGUgaW5pdGlhbCBEUERLIGNvbW1pdCkuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+ PiBNeSBhc3N1bXB0aW9uIGlzIC5kZXZfc3RvcCgpIGNhdXNlIHRoZXNlIHZhbHVlcyByZXNldCBp biBzb21lIGRldmljZXMsIHNvDQo+ID4+Pj4+IC5kZXZfc3RhcnQoKSByZXN0b3JlcyB0aGVtIGJh Y2suDQo+ID4+Pj4+IEBCcnVjZSBvciBAS29uc3RhbnRpbiBtYXkgcmVtZW1iZXIgdGhlIGhpc3Rv cnkuDQo+ID4+Pg0KPiA+Pj4gWWVwLCBhcyBJIHJlbWVtYmVyLCBhdCBsZWFzdCBzb21lIEludGVs IFBNRHMgY2FsbGluZyBod19yZXNldCgpIGFkIGRlY19zdG9wKCkgYW5kDQo+ID4+PiBldmVuIGRl dl9zdGFydCgpIHRvIG1ha2Ugc3VyZSB0aGF0IEhXIGlzIGluIGEgY2xlYW4gKGtub3duKSBzdGF0 ZS4NCj4gPj4+DQo+ID4+Pj4+DQo+ID4+Pj4+IEJ1dCBJIGFncmVlIHRoaXMgaXMgZGV2aWNlIHNw ZWNpZmljIGJlaGF2aW9yLCBhbmQgY2FuIGJlIG1hbmFnZWQgYnkgd2hhdCBkZXZpY2UNCj4gPj4+ Pj4gcmVxdWlyZXMuDQo+ID4+Pg0KPiA+Pj4gUHJvYmFibHkgeWVzLg0KPiA+Pj4NCj4gPj4+Pj4N Cj4gPj4+Pj4+IFRoZSBwYXRjaGVzIGluY2x1ZGVkIGluIHRoaXMgUkZDLCBwcm9wb3NlIGEgbWVj aGFuaXNtIHdoaWNoIHdvdWxkIGhlbHANCj4gPj4+Pj4+IHdpdGggbWFuYWdpbmcgd2hpY2ggZHJp dmVycyByZWx5IG9uIGZvcmNlZnVsIGNvbmZpZ3VyYXRpb24gcmVzdG9yZS4NCj4gPj4+Pj4+IERy aXZlcnMgY291bGQgYWR2ZXJ0aXNlIGlmIGZvcmNlZnVsIGNvbmZpZ3VyYXRpb24gcmVzdG9yZSBp cyBuZWVkZWQNCj4gPj4+Pj4+IHRocm91Z2ggYFJURV9FVEhfREVWXypfRk9SQ0VfUkVTVE9SRWAg ZGV2aWNlIGZsYWcuIElmIHRoaXMgZmxhZyBpcw0KPiA+Pj4+Pj4gc2V0LCB0aGVuIHRoZSBkcml2 ZXIgaW4gcXVlc3Rpb24gcmVxdWlyZXMgZXRoZGV2IHRvIGZvcmNlZnVsbHkgcmVzdG9yZQ0KPiA+ Pj4+PiBjb25maWd1cmF0aW9uLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4NCj4gPj4+Pj4gT0sgdG8gdXNl IGZsYWcgZm9yIGl0LCBidXQgbm90IHN1cmUgYWJvdXQgdXNpbmcgJ2Rldl9pbmZvLT5kZXZfZmxh Z3MnDQo+ID4+Pj4+IChSVEVfRVRIX0RFVl8qKSBmb3IgdGhpcywgYXMgdGhpcyBmbGFnIGlzIHNo YXJlZCB3aXRoIHVzZXIgYW5kIHRoaXMgaXMgYWxsIGRwZGsNCj4gPj4+Pj4gaW50ZXJuYWwuDQo+ ID4+Pj4+DQo+ID4+Pj4+IFdoYXQgYWJvdXQgdG8gaGF2ZSBhIGRlZGljYXRlZCBmbGFnIGZvciBp dD8gV2UgY2FuIGhhdmUgYSBkZWRpY2F0ZWQgc2V0IG9mIGZsYWcNCj4gPj4+Pj4gdmFsdWVzIGZv ciByZXN0b3JlLg0KPiA+Pj4+DQo+ID4+Pj4gQWdyZWVkLiBXaGF0IGRvIHlvdSB0aGluayBhYm91 dCB0aGUgZm9sbG93aW5nPw0KPiA+Pj4NCj4gPj4+IEluc3RlYWQgb2YgZXhwb3NpbmcgdGhhdCwg Y2FuIHdlIHByb2JhYmx5IG1ha2UgaXQgdHJhbnNwYXJlbnQgdG8gdGhlIHVzZXINCj4gPj4+IGFu ZCBwcm9iYWJseSBldGhkZXYgbGF5ZXIgdG9vPw0KPiA+Pj4NCj4gPj4NCj4gPj4gKzEgdG8gbWFr ZSBpdCB0cmFuc3BhcmVudCB0byB1c2VyLCBidXQgbm90IHN1cmUgaWYgd2UgY2FuIG1ha2UgaXQN Cj4gPj4gdHJhbnNwYXJlbnQgdG8gZXRoZGV2IGxheWVyLg0KPiA+DQo+ID4gSnVzdCB0byBiZSBj bGVhcjoNCj4gPiBMZXQgc2F5LCB1c2luZyBleGFtcGxlIGZyb20gYWJvdmU6DQo+ID4NCj4gPiAg cnRlX2V0aF9kZXZfc3RhcnQoKQ0KPiA+ICAgICAgLSBDYWxsIGRldi0+ZGV2X29wcy0+ZGV2X3N0 YXJ0KCkNCj4gPiAgICAgIC0gQ2FsbCBkZXYtPmRldl9vcHMtPm1hY19hZGRyX3NldCgpIC0gYXBw bHkgZGVmYXVsdCBNQUMgYWRkcmVzcw0KPiA+ICAgICAgLSBDYWxsIGRldi0+ZGV2X29wcy0+cHJv bWlzY3VvdXNfZW5hYmxlKCkNCj4gPiAgICAgIC0gQ2FsbCBkZXYtPmRldl9vcHMtPmFsbG11bHRp Y2FzdF9lbmFibGUoKQ0KPiA+DQo+ID4gV2UgcHJvYmFibHkgY2FuIGludHJvZHVjZSBldGhkZXYg aW50ZXJuYWwgZnVuY3Rpb24gKHN0aWxsIHZpc2libGUgdG8gUE1EcykNCj4gPiB0aGF0IHdvdWxk IGRvIGxhc3QgMyBzdGVwczoNCj4gPiBldGhkZXZfcmVwbGF5X3VzZXJfY29uZiguLi4pDQo+ID4g ICAgICAtIENhbGwgZGV2LT5kZXZfb3BzLT5tYWNfYWRkcl9zZXQoKSAtIGFwcGx5IGRlZmF1bHQg TUFDIGFkZHJlc3MNCj4gPiAgICAgIC0gQ2FsbCBkZXYtPmRldl9vcHMtPnByb21pc2N1b3VzX2Vu YWJsZSgpDQo+ID4gICAgICAtIENhbGwgZGV2LT5kZXZfb3BzLT5hbGxtdWx0aWNhc3RfZW5hYmxl KCkNCj4gPg0KPiA+IEFuZCBsZXQgUE1EIGl0c2VsZiB0byBkZWNpZGUgZG9lcyBpdCBuZWVkcyB0 byBjYWxsIGl0IGF0IGRldl9zdGFydCgpIG9yIG5vdC4NCj4gPiBTbyBpdCB3aWxsIGJlY29tZToN Cj4gPiBydGVfZXRoX2Rldl9zdGFydCgpDQo+ID4gICAgICAtIENhbGwgZGV2LT5kZXZfb3BzLT5k ZXZfc3RhcnQoKQ0KPiA+IAktQ2FsbCBldGhkZXZfcmVwbGF5X3VzZXJfY29uZiguKQ0KPiA+ICAg ICAgCQktIENhbGwgZGV2LT5kZXZfb3BzLT5tYWNfYWRkcl9zZXQoKSAtIGFwcGx5IGRlZmF1bHQg TUFDIGFkZHJlc3MNCj4gPiAgICAgIAkJLSBDYWxsIGRldi0+ZGV2X29wcy0+cHJvbWlzY3VvdXNf ZW5hYmxlKCkNCj4gPiAgICAgIAkJLUNhbGwgZGV2LT5kZXZfb3BzLT5hbGxtdWx0aWNhc3RfZW5h YmxlKCkNCj4gPg0KPiA+IEZvciBQTURzIHRoYXQgZG8gbmVlZCB0byByZXN0b3JlIHVzZXIgcHJv dmlkZWQgY29uZmlnDQo+ID4gQW5kDQo+ID4gcnRlX2V0aF9kZXZfc3RhcnQoKQ0KPiA+ICAgICAg LSBDYWxsIGRldi0+ZGV2X29wcy0+ZGV2X3N0YXJ0KCkNCj4gPg0KPiA+IEZvciB0aG9zZSB3aG8g ZG8gbm90Lg0KPiA+DQo+IA0KPiBPSywgZ290IGl0IHdoYXQgeW91IG1lYW4uDQo+IFB1c2hpbmcg cmVzdG9yZSBmdW5jdGlvbmFsaXR5IHRvIFBNRHMgd29ya3MsIGJ1dCB0aGlzIG1heSBiZSBkb2lu Zw0KPiByZWR1bmRhbnQgd29yayBvbiBlYWNoIFBNRC4NCg0KWWVzLCBldmVyeSBQTUQgd2lsbCBo YXZlIHRvIGJlIHVwZGF0ZWQgd2l0aCB0aGF0IHdheS4NCiANCj4gSW5zdGVhZCBEYXJpdXN6IHN1 Z2dlc3RzIFBNRCB0byBwcm92aWRlIGEgZmxhZyB0byBlaHRkZXYgdG8gd2hhdCB0bw0KPiByZXN0 b3JlIGFuZCBjb21tb24gY29kZSBpbiBldGhkZXYgZG9lcyB0aGUgd29yay4NCj4gTXkgYmVsb3cg ZGVkaWNhdGVkIGRhdGEgc3RydWN0IGNvbW1lbnQgaXMgdG8gaGF2ZSB0aGlzIGZsYWcgaW4gYSBu ZXcNCj4gc3RydWN0LCBvdmVyYWxsIGxpa2UgZm9sbG93aW5nOg0KPiANCj4gcnRlX2V0aF9kZXZf c3RhcnQoKQ0KPiAgICAtIENhbGwgZGV2LT5kZXZfb3BzLT5kZXZfc3RhcnQoKQ0KPiAgICAtIENh bGwgZGV2LT5kZXZfb3BzLT5nZXRfcmVzdG9yZV9mbGFncyhldGhkZXYsIFJURV9FVEhfU1RBUlQs ICZmbGFncykNCj4gICAgLSBpZiAoZmxhZ3MgJiBNQUMpIGRldi0+ZGV2X29wcy0+bWFjX2FkZHJf c2V0KCkNCj4gICAgLSBpZiAoZmxhZ3MgJiBQUk9NSVNDKSBkZXYtPmRldl9vcHMtPnByb21pc2N1 b3VzX2VuYWJsZSgpDQo+ICAgIC0gLi4uDQo+IA0KPiBTbyBQTURzIG9ubHkgd2lsbCBwcm92aWRl IHdoYXQgdG8gcmVzdG9yZSB3aXRoIGFuIGludGVybmFsIEFQSSBhbmQNCj4gY29tbW9uIGV0aGRl diBsYXllciB3aWxsIHJlc3RvcmUgaXQuDQo+IElmIG5vIHJlc3RvcmUgcmVxdWlyZWQgUE1EIG1h eSBub3QgaW1wbGVtZW50IC5nZXRfcmVzdG9yZV9mbGFncygpIGF0IGFsbC4NCg0KTWFrZXMgc2Vu c2UgdG8gbWUuLi4NClByb2JhYmx5IGxlc3MgZGlzcnVwdGl2ZSB3b3VsZCBiZSB0byBoYXZlIGEg ZGV2X29wcyBmdW5jdGlvbg0KdGhhdCB3b3VsZCB0ZWxsIHdoYXQgc2V0dGluZ3MgZG9uJ3QgbmVl ZCB0byBiZSByZXBsYXllZCBieSBlaHRkZXYgbGF5ZXIuIA0KIA0KPiBBZGRpdGlvbmFsbHksIFJU RV9FVEhfU1RBUlQsIFJURV9FVEhfUkVTRVQgZXRjIGZsYWcgY2FuIGJlIHByb3ZpZGVkIHRvDQo+ IGludGVybmFsIEFQSSB0byBnZXQgd2hhdCB0byByZXN0b3JlIGluIGRpZmZlcmVudCBzdGF0ZXMu Li4NCj4gDQo+ID4+IFN1Z2dlc3RlZCAnaW50ZXJuYWxfZmxhZycgaW4gInN0cnVjdCBydGVfZXRo X2Rldl9kYXRhIiBjYW4gYmUgY29uZnVzaW5nDQo+ID4+IGFuZCBvcGVuIHRvIGludGVycHJldGF0 aW9uIHdoYXQgdG8gdXNlIGl0IGZvciBhbmQgYnkgdGltZSBiZWNvbWUgc291cmNlDQo+ID4+IG9m IGRlZmVjdC4NCj4gPg0KPiA+IFllcywgc2FtZSB0aG91Z2h0cy4NCj4gPg0KPiA+PiBJbnN0ZWFk IHdoYXQgZG8geW91IHRoaW5rIHRvIGhhdmUgYSBzZXBhcmF0ZSwgZGVkaWNhdGVkIGRhdGEgc3Ry dWN0IGZvciBpdD8NCj4gPg0KPiA+IEhtbS4uLiBub3Qgc3VyZSBJIHVuZGVyc3Rvb2QgeW91IGhl cmUuLi4NCj4gPg0KPiA+Pg0KPiA+Pj4gTWlnaHQgYmUgd2UgY2FuIG1vdmUgdGhpcyByZXN0b3Jh dGlvbiBjb2RlIGludG8gdGhlIG5ldyBldGhkZXYgaGVscGVyIGZ1bmN0aW9uLChldGhkZXZkX3Vz ZXJfY29uZmlnX3Jlc3RvcmUoKSAgb3Igc28pDQo+ID4+PiB0aGF0IFBNRCBjYW4gaW52b2tlIGR1 cmluZyBpdHMgZGV2X3N0YXJ0KCkgaWYgbmVlZGVkPw0KPiA+Pj4NCj4gPj4+Pg0KPiA+Pj4+ICNk ZWZpbmUgUlRFX0VUSF9ERVZfSU5URVJOQUxfUFJPTUlTQ19GT1JDRV9SRVNUT1JFIFJURV9CSVQz MigwKQ0KPiA+Pj4+ICNkZWZpbmUgUlRFX0VUSF9ERVZfSU5URVJOQUxfQUxMTVVMVElfRk9SQ0Vf UkVTVE9SRSBSVEVfQklUMzIoMSkNCj4gPj4+PiAjZGVmaW5lIFJURV9FVEhfREVWX0lOVEVSTkFM X01BQ19BRERSX0ZPUkNFX1JFU1RPUkUgUlRFX0JJVDMyKDIpDQo+ID4+Pj4NCj4gPj4+PiBzdHJ1 Y3QgcnRlX2V0aF9kZXZfZGF0YSB7DQo+ID4+Pj4gCS8qIHNuaXAgKi8NCj4gPj4+Pg0KPiA+Pj4+ IAl1aW50MzJfdCBkZXZfZmxhZ3M7DQo+ID4+Pj4NCj4gPj4+PiAJLyoqDQo+ID4+Pj4gCSAqIElu dGVybmFsIGRldmljZSBjYXBhYmlsaXRpZXMsIHVzZWQgb25seSBieSBldGhkZXYgbGlicmFyeS4N Cj4gPj4+PiAJICogQ2VydGFpbiBmdW5jdGlvbmFsaXRpZXMgcHJvdmlkZWQgYnkgdGhlIGxpYnJh cnkgbWlnaHQgZW5hYmxlZC9kaXNhYmxlZCwNCj4gPj4+PiAJICogYmFzZWQgb24gZHJpdmVyIGV4 cG9zaW5nIGNlcnRhaW4gY2FwYWJpbGl0aWVzLg0KPiA+Pj4+IAkgKi8NCj4gPj4+PiAJdWludDMy X3QgaW50ZXJuYWxfZmxhZ3M7DQo+ID4+Pj4NCj4gPj4+PiAJLyogc25pcCAqLw0KPiA+Pj4+IH07 DQo+ID4+Pj4NCj4gPj4+Pj4gQWxzbyBwZXJoYXBzIHdlIGhhdmUgZ28gaW50byBkZXRhaWxzIHdo YXQgbmVlZHMgdG8gYmUgcmVzdG9yZWQgYWZ0ZXIgJ3N0b3AnIGFuZA0KPiA+Pj4+PiB3aGF0IG5l ZWRzIHRvIGJlIHJlc3RvcmVkIGFmdGVyICdyZXNldCcgYW5kIHVzZSBzaW1pbGFyIG1lY2hhbmlz bSBldGMuLi4NCj4gPj4+Pg0KPiA+Pj4+IEkgdGhpbmsgd2Ugc2hvdWxkIGxvb2sgaW50byB0aGF0 Lg0KPiA+Pj4+IEFueSAnY29kaWZpY2F0aW9uJyBvZiBzZW1hbnRpY3MgYmV0d2VlbiBkcml2ZXJz IGFuZCBldGhkZXYgbGlicmFyeSBpcyBnb29kIGluIG15IG9waW5pb24uDQo+ID4+Pj4NCj4gPj4+ PiBBdCBsZWFzdCByaWdodCBub3csIGV0aGRldiBkb2VzIG5vdCBjaGFuZ2UgYW55IGNvbmZpZ3Vy YXRpb24gaW4gJ3N0b3AnIGFuZCAncmVzZXQnIGZyb20gd2hhdCBJIHNlZS4NCj4gPj4+PiBCdXQg dGhhdCdzIG9uIGxpYnJhcnkgc2lkZSBvbmx5Lg0KPiA+Pj4+DQo+ID4+Pj4+PiBUaGlzIHdheSwg aWYgd2Ugd291bGQgY29uY2x1ZGUgdGhhdCBpdCBtYWtlcyBzZW5zZSBmb3IgLmRldl9zdGFydCgp IHRvDQo+ID4+Pj4+PiBoYW5kbGUgYWxsIHN0YXJ0aW5nIGNvbmZpZ3VyYXRpb24gYXNwZWN0cywg d2UgY291bGQgdHJhY2sgd2hpY2ggZHJpdmVycyBzdGlsbCByZWx5DQo+ID4+Pj4+IG9uIGNvbmZp Z3VyYXRpb24gcmVzdG9yZS4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBEYXJpdXN6IFNvc25vd3NraSAo NCk6DQo+ID4+Pj4+PiAgIGV0aGRldjogcmV3b3JrIGNvbmZpZyByZXN0b3JlDQo+ID4+Pj4+PiAg IGV0aGRldjogb21pdCBwcm9taXNjdW91cyBjb25maWcgcmVzdG9yZSBpZiBub3QgcmVxdWlyZWQN Cj4gPj4+Pj4+ICAgZXRoZGV2OiBvbWl0IGFsbCBtdWx0aWNhc3QgY29uZmlnIHJlc3RvcmUgaWYg bm90IHJlcXVpcmVkDQo+ID4+Pj4+PiAgIGV0aGRldjogb21pdCBNQUMgYWRkcmVzcyByZXN0b3Jl IGlmIG5vdCByZXF1aXJlZA0KPiA+Pj4+Pj4NCj4gPj4+Pj4+ICBsaWIvZXRoZGV2L3J0ZV9ldGhk ZXYuYyB8IDM5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQ0KPiA+Pj4+ Pj4gIGxpYi9ldGhkZXYvcnRlX2V0aGRldi5oIHwgMTggKysrKysrKysrKysrKysrKysrDQo+ID4+ Pj4+PiAgMiBmaWxlcyBjaGFuZ2VkLCA1MiBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQ0K PiA+Pj4+Pj4NCj4gPj4+Pj4+IC0tDQo+ID4+Pj4+PiAyLjM5LjUNCj4gPj4+Pj4+DQo+ID4+Pg0K PiA+DQoNCg==