From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id BBDA35F72 for ; Fri, 14 Dec 2018 03:30:48 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Dec 2018 18:30:47 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,351,1539673200"; d="scan'208";a="302064694" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by fmsmga006.fm.intel.com with ESMTP; 13 Dec 2018 18:30:47 -0800 Received: from fmsmsx118.amr.corp.intel.com (10.18.116.18) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.408.0; Thu, 13 Dec 2018 18:30:47 -0800 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by fmsmsx118.amr.corp.intel.com (10.18.116.18) with Microsoft SMTP Server (TLS) id 14.3.408.0; Thu, 13 Dec 2018 18:30:46 -0800 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.182]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.59]) with mapi id 14.03.0415.000; Fri, 14 Dec 2018 10:30:44 +0800 From: "Lu, Wenzhuo" To: "Yigit, Ferruh" , "dev@dpdk.org" CC: "Yang, Qiming" , "Li, Xiaoyun" , "Wu, Jingjing" Thread-Topic: [dpdk-dev] [PATCH v3 16/34] net/ice: support device initialization Thread-Index: AQHUkee8+/LaCoLo4EuG4UrSKx2vhaV65AwAgAEIs9CAAFYnAIABQcag Date: Fri, 14 Dec 2018 02:30:43 +0000 Message-ID: <6A0DE07E22DDAD4C9103DF62FEBC09093FE13F4C@shsmsx102.ccr.corp.intel.com> References: <1542956179-80951-1-git-send-email-wenzhuo.lu@intel.com> <1544598004-27099-1-git-send-email-wenzhuo.lu@intel.com> <1544598004-27099-17-git-send-email-wenzhuo.lu@intel.com> <6A0DE07E22DDAD4C9103DF62FEBC09093FE13982@shsmsx102.ccr.corp.intel.com> <30780e06-bcfc-17c7-a057-e860b7d04937@intel.com> In-Reply-To: <30780e06-bcfc-17c7-a057-e860b7d04937@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v3 16/34] net/ice: support device initialization X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 02:30:49 -0000 SGkgRmVycnVoLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFlpZ2l0 LCBGZXJydWgNCj4gU2VudDogVGh1cnNkYXksIERlY2VtYmVyIDEzLCAyMDE4IDExOjE0IFBNDQo+ IFRvOiBMdSwgV2Vuemh1byA8d2Vuemh1by5sdUBpbnRlbC5jb20+OyBkZXZAZHBkay5vcmcNCj4g Q2M6IFlhbmcsIFFpbWluZyA8cWltaW5nLnlhbmdAaW50ZWwuY29tPjsgTGksIFhpYW95dW4NCj4g PHhpYW95dW4ubGlAaW50ZWwuY29tPjsgV3UsIEppbmdqaW5nIDxqaW5namluZy53dUBpbnRlbC5j b20+DQo+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2MyAxNi8zNF0gbmV0L2ljZTog c3VwcG9ydCBkZXZpY2UNCj4gaW5pdGlhbGl6YXRpb24NCj4gDQo+IE9uIDEyLzEzLzIwMTggMjoz OSBBTSwgTHUsIFdlbnpodW8gd3JvdGU6DQo+ID4gSGkgRmVycnVoLA0KPiA+DQo+ID4+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IFlpZ2l0LCBGZXJydWgNCj4gPj4gU2Vu dDogVGh1cnNkYXksIERlY2VtYmVyIDEzLCAyMDE4IDI6MTggQU0NCj4gPj4gVG86IEx1LCBXZW56 aHVvIDx3ZW56aHVvLmx1QGludGVsLmNvbT47IGRldkBkcGRrLm9yZw0KPiA+PiBDYzogWWFuZywg UWltaW5nIDxxaW1pbmcueWFuZ0BpbnRlbC5jb20+OyBMaSwgWGlhb3l1bg0KPiA+PiA8eGlhb3l1 bi5saUBpbnRlbC5jb20+OyBXdSwgSmluZ2ppbmcgPGppbmdqaW5nLnd1QGludGVsLmNvbT4NCj4g Pj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIIHYzIDE2LzM0XSBuZXQvaWNlOiBzdXBw b3J0IGRldmljZQ0KPiA+PiBpbml0aWFsaXphdGlvbg0KPiA+Pg0KPiA+PiBPbiAxMi8xMi8yMDE4 IDY6NTkgQU0sIFdlbnpodW8gTHUgd3JvdGU6DQo+ID4+PiBTaWduZWQtb2ZmLWJ5OiBXZW56aHVv IEx1IDx3ZW56aHVvLmx1QGludGVsLmNvbT4NCj4gPj4+IFNpZ25lZC1vZmYtYnk6IFFpbWluZyBZ YW5nIDxxaW1pbmcueWFuZ0BpbnRlbC5jb20+DQo+ID4+PiBTaWduZWQtb2ZmLWJ5OiBYaWFveXVu IExpIDx4aWFveXVuLmxpQGludGVsLmNvbT4NCj4gPj4+IFNpZ25lZC1vZmYtYnk6IEppbmdqaW5n IFd1IDxqaW5namluZy53dUBpbnRlbC5jb20+DQo+ID4+DQo+ID4+IDwuLi4+DQo+ID4+DQo+ID4+ PiBAQCAtMjk3LDYgKzI5NywxNSBAQA0KPiA+PiBDT05GSUdfUlRFX0xJQlJURV9GTTEwS19SWF9P TEZMQUdTX0VOQUJMRT15DQo+ID4+PiAgQ09ORklHX1JURV9MSUJSVEVfRk0xMEtfSU5DX1ZFQ1RP Uj15DQo+ID4+Pg0KPiA+Pj4gICMNCj4gPj4+ICsjIENvbXBpbGUgYnVyc3Qtb3JpZW50ZWQgSUNF IFBNRCBkcml2ZXIgIw0KPiA+PiBDT05GSUdfUlRFX0xJQlJURV9JQ0VfUE1EPXkNCj4gPj4+ICtD T05GSUdfUlRFX0xJQlJURV9JQ0VfREVCVUdfUlg9bg0KPiA+PiBDT05GSUdfUlRFX0xJQlJURV9J Q0VfREVCVUdfVFg9bg0KPiA+Pj4gK0NPTkZJR19SVEVfTElCUlRFX0lDRV9ERUJVR19UWF9GUkVF PW4NCj4gPj4+ICtDT05GSUdfUlRFX0xJQlJURV9JQ0VfUlhfQUxMT1dfQlVMS19BTExPQz15DQo+ ID4+DQo+ID4+IElzIHRoZXJlIGEgd2F5IHRvIGNvbnZlcnQgdGhpcyBpbnRvIHJ1bnRpbWUgY29u ZmlnPyBEb2VzIGl0IG5lZWRzIHRvDQo+ID4+IGJlIGNvbXBpbGUgdGltZSBjb25maWc/DQo+ID4g SWYgb25seSBjb25zaWRlcmluZyB0aGUgZnVuY3Rpb25hbGl0eSwgd2UgY2FuIHRvdGFsbHkgcmVt b3ZlIHRoaXMgbWFjcm8uDQo+IFRoYXQncyB3aHkgaXQncyBzZXQgdG8gJ3knIGJ5IGRlZmF1bHQu DQo+ID4gV2UgaW50cm9kdWNlIHRoaXMgbWFjcm8gZm9yIHRoZSB1c2VycyB0byBpbXByb3ZlIHBl cmZvcm1hbmNlIGZvciBzb21lDQo+IHNwZWNpZmljIGNhc2VzLiBGb3IgZXhhbXBsZSwgaWYgdGhl IE1UVSBpcyBzbWFsbCBlbm91Z2gsIHdlIGNhbiB0b3RhbGx5DQo+IHJlbW92ZSB0aGUgY29kZSB3 cmFwcGVkIGJ5IHRoaXMgbWFjcm8uIFNvIHRoZSBwZXJmb3JtYW5jZSBpcyBiZXR0ZXIuDQo+IENv bnNpZGVyaW5nIHRoZSBwdXJwb3NlLCB0byBhY2hpZXZlIHRoZSBiZXN0IHBlcmZvcm1hbmNlLCBp dCdzIGhhcmQgdG8gbWFrZQ0KPiBpdCBhIHJ1bnRpbWUgY29uZmlndXJlLg0KPiANCj4gVGhhbmtz IGZvciBjbGFyaWZpY2F0aW9uLg0KPiA+Pg0KPiA+Pj4gKw0KPiA+Pj4gK2luY2x1ZGUgJChSVEVf U0RLKS9tay9ydGUubGliLm1rDQo+ID4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaWNlL2lj ZV9ldGhkZXYuYw0KPiA+Pj4gYi9kcml2ZXJzL25ldC9pY2UvaWNlX2V0aGRldi5jIG5ldyBmaWxl IG1vZGUgMTAwNjQ0IGluZGV4DQo+ID4+PiAwMDAwMDAwLi5lMGJmMTVjDQo+ID4+PiAtLS0gL2Rl di9udWxsDQo+ID4+PiArKysgYi9kcml2ZXJzL25ldC9pY2UvaWNlX2V0aGRldi5jDQo+ID4+PiBA QCAtMCwwICsxLDY0MCBAQA0KPiA+Pj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0Qt My1DbGF1c2UNCj4gPj4+ICsgKiBDb3B5cmlnaHQoYykgMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbiAg Ki8NCj4gPj4+ICsNCj4gPj4+ICsjaW5jbHVkZSA8cnRlX2V0aGRldl9wY2kuaD4NCj4gPj4+ICsN Cj4gPj4+ICsjaW5jbHVkZSAiYmFzZS9pY2Vfc2NoZWQuaCINCj4gPj4+ICsjaW5jbHVkZSAiaWNl X2V0aGRldi5oIg0KPiA+Pj4gKyNpbmNsdWRlICJpY2Vfcnh0eC5oIg0KPiA+Pj4gKw0KPiA+Pj4g KyNkZWZpbmUgSUNFX01BWF9RUF9OVU0gIm1heF9xdWV1ZV9wYWlyX251bSINCj4gPj4NCj4gPj4g V2hlbiBkb2N1bWVudGF0aW9uIGlzIGFkZGVkIGludG8gdGhpcyBwYXRjaCwgY2FuIHlvdSBhbHNv IGFkZCB0aGlzDQo+ID4+IHJ1bnRpbWUgY29uZmlnIHRvIHRoYXQgcGxlYXNlPw0KPiA+IFRoZSBt YWNybz8gSXQncyBub3QgYSBjb25maWd1cmF0aW9uLiBJdOKAmXMgYSBzdHJpbmcgdXNlZCBpbnRl cm5hbGx5Lg0KPiANCj4gSXQgaXMgdXNlZCBhcyBkZXZhcmdzIHN0cmluZzoNCj4gDQo+ICArCWNv bnN0IGNoYXIgKnF1ZXVlX251bV9rZXkgPSBJQ0VfTUFYX1FQX05VTTsNCj4gIDwuLi4+DQo+ICAr CWlmICghcnRlX2t2YXJnc19jb3VudChrdmxpc3QsIHF1ZXVlX251bV9rZXkpKSB7DQo+ICArCQly dGVfa3ZhcmdzX2ZyZWUoa3ZsaXN0KTsNCj4gICsJCXJldHVybiAwOw0KPiAgKwl9DQo+IA0KPiBB bmQgYnJpZWZseSB3aGF0IEkgYW0gc3VnZ2VzdGluZyBpcyB0byBkb2N1bWVudCBydW50aW1lIGRl dmFyZ3MgaW4gaWNlDQo+IGRvY3VtZW50YXRpb24uDQpTb3JyeSwgSSBkaWRu4oCZdCBnZXQgaXQg YXQgZmlyc3QuIFdpbGwgdXBkYXRlIHRoZSBkb2N1bWVudC4NCg0KPiANCj4gPg0KPiA+Pg0KPiA+ PiA8Li4uPg0KPiA+Pg0KPiA+Pj4gK3N0YXRpYyBpbnQNCj4gPj4+ICtpY2VfZGV2X2luaXQoc3Ry dWN0IHJ0ZV9ldGhfZGV2ICpkZXYpIHsNCj4gPj4+ICsJc3RydWN0IHJ0ZV9wY2lfZGV2aWNlICpw Y2lfZGV2Ow0KPiA+Pj4gKwlzdHJ1Y3QgaWNlX2h3ICpodyA9IElDRV9ERVZfUFJJVkFURV9UT19I VyhkZXYtPmRhdGEtDQo+ID4+PiBkZXZfcHJpdmF0ZSk7DQo+ID4+PiArCXN0cnVjdCBpY2VfcGYg KnBmID0gSUNFX0RFVl9QUklWQVRFX1RPX1BGKGRldi0+ZGF0YS0NCj4gPj4+IGRldl9wcml2YXRl KTsNCj4gPj4+ICsJaW50IHJldDsNCj4gPj4+ICsNCj4gPj4+ICsJZGV2LT5kZXZfb3BzID0gJmlj ZV9ldGhfZGV2X29wczsNCj4gPj4+ICsNCj4gPj4+ICsJcGNpX2RldiA9IFJURV9ERVZfVE9fUENJ KGRldi0+ZGV2aWNlKTsNCj4gPj4+ICsNCj4gPj4+ICsJcnRlX2V0aF9jb3B5X3BjaV9pbmZvKGRl diwgcGNpX2Rldik7DQo+ID4+DQo+ID4+IFRoaXMgaXMgZG9uZSBieSBydGVfZXRoX2Rldl9wY2lf Z2VuZXJpY19wcm9iZSgpLCBkbyB3ZSBuZWVkIGhlcmU/DQo+ID4gTm8sIHdlIG9ubHkgbmVlZCB0 aGUgaW5mbywgZG9u4oCZdCB3YW50IHRvIHByb2JlLg0KPiANCj4gU29ycnksIEkgZGlkbid0IGdl dCBpdCwgbGV0IG1lIHJlcGhyYXNlOg0KPiANCj4gcnRlX2V0aF9jb3B5X3BjaV9pbmZvKCkgY2Fs bGVkIGFzIGZvbGxvd2luZyB3aXRoIGV4aXN0aW5nIGNvZGU6DQo+IGljZV9wY2lfcHJvYmUoKQ0K PiAgIHJ0ZV9ldGhfZGV2X3BjaV9nZW5lcmljX3Byb2JlKCkNCj4gICAgIHJ0ZV9ldGhfZGV2X3Bj aV9hbGxvY2F0ZSgpICA8LS0tLSAoMSkNCj4gICAgICAgcnRlX2V0aF9jb3B5X3BjaV9pbmZvKCkN Cj4gICAgIGljZV9kZXZfaW5pdCgpDQo+ICAgICAgIHJ0ZV9ldGhfY29weV9wY2lfaW5mbygpICAg PC0tLS0gKDIpDQo+IA0KPiBJIGFtIGFza2luZyBjYW4gd2UgcmVtb3ZlICgyKSBvbmUsIHNpbmNl ICgxKSBkb2VzIHRoZSBjb3B5IGFscmVhZHk/DQpBZ3JlZSBpdCBsb29rcyByZWR1bmRhbnQuIFdp bGwgY2hlY2sgaWYgd2UgY2FuIHJlbW92ZSAoMikuDQoNCj4gDQo+ID4NCj4gPj4NCj4gPj4gPC4u Lj4NCj4gPj4NCj4gPj4+ICtSVEVfSU5JVChpY2VfaW5pdF9sb2cpOw0KPiA+Pj4gK3N0YXRpYyB2 b2lkDQo+ID4+PiAraWNlX2luaXRfbG9nKHZvaWQpDQo+ID4+DQo+ID4+IENhbiBtZXJnZSB0aGVz ZSBsaW5lcywgcGxlYXNlIGNoZWNrIG90aGVyIHNhbXBsZXMuDQo+ID4gV2lsbCBjaGFuZ2UgaXQg aW4gdjQuDQo+ID4NCj4gPj4NCj4gPj4+ICt7DQo+ID4+PiArCWljZV9sb2d0eXBlX2luaXQgPSBy dGVfbG9nX3JlZ2lzdGVyKCJwbWQuaWNlLmluaXQiKTsNCj4gPj4NCj4gPj4gcG1kLm5ldC5pY2Uu aW5pdA0KPiA+IFdpbGwgY2hhbmdlIGl0IGluIHY0Lg0KPiA+DQo+ID4+DQo+ID4+PiArCWlmIChp Y2VfbG9ndHlwZV9pbml0ID49IDApDQo+ID4+PiArCQlydGVfbG9nX3NldF9sZXZlbChpY2VfbG9n dHlwZV9pbml0LCBSVEVfTE9HX05PVElDRSk7DQo+ID4+PiArCWljZV9sb2d0eXBlX2RyaXZlciA9 IHJ0ZV9sb2dfcmVnaXN0ZXIoInBtZC5pY2UuZHJpdmVyIik7DQo+ID4+DQo+ID4+IHBtZC5uZXQu aWNlLmRyaXZlcg0KPiA+IFdpbGwgY2hhbmdlIGl0IGluIHY0Lg0KPiA+DQo+ID4+DQo+ID4+IDwu Li4+DQo+ID4+DQo+ID4+PiArc3RhdGljIHZvaWQNCj4gPj4+ICtpY2VfZGV2X2Nsb3NlKHN0cnVj dCBydGVfZXRoX2RldiAqZGV2KSB7DQo+ID4+PiArCXN0cnVjdCBpY2VfcGYgKnBmID0gSUNFX0RF Vl9QUklWQVRFX1RPX1BGKGRldi0+ZGF0YS0NCj4gPj4+IGRldl9wcml2YXRlKTsNCj4gPj4+ICsJ c3RydWN0IGljZV9odyAqaHcgPSBJQ0VfREVWX1BSSVZBVEVfVE9fSFcoZGV2LT5kYXRhLQ0KPiA+ Pj4gZGV2X3ByaXZhdGUpOw0KPiA+Pj4gKw0KPiA+Pj4gKwlpY2VfcmVzX3Bvb2xfZGVzdHJveSgm cGYtPm1zaXhfcG9vbCk7DQo+ID4+PiArCWljZV9yZWxlYXNlX3ZzaShwZi0+bWFpbl92c2kpOw0K PiA+Pj4gKw0KPiA+Pj4gKwlpY2Vfc2h1dGRvd25fYWxsX2N0cmxxKGh3KTsNCj4gPj4+ICt9DQo+ ID4+DQo+ID4+IEkgYW0gbW9zdGx5IGZvciBvcmRlcmluZyBmdW5jdGlvbnMgaW4gYSB3YXkgdGhh dCBpdCBkb2Vzbid0IHJlcXVpcmUNCj4gPj4gdGhlIGZvcndhcmQgZGVjbGFyYXRpb24sIHdoaWNo IGlzIG1vc3RseSBoZWxwcyByZWFkaW5nIHRoZSBjb2RlIHNpbmNlDQo+ID4+IHRoZSBmdW5jdGlv biBvcmRlciBpcyBjbG9zZSB0aGUgY2FsbCBvcmRlci4NCj4gPiBJIGp1c3Qgd2FudCB0byBhbGln biB0aGUgb3JkZXIgd2l0aCBpY2VfZXRoX2Rldl9vcHMuIEJ1dCBhbnl3YXkgSSBjYW4gbW92ZQ0K PiBpdCBmb3J3YXJkLg0KPiANCj4gSSB0aGluayBpdCBtYWtlIHNlbnNlIHRvIGFsaWduIHRoZSBv cmRlciB3aXRoIGljZV9ldGhfZGV2X29wcywgYWdhaW4NCj4gaW1wcm92ZXMgcmVhZGFiaWxpdHks IGFuZCBib3RoIGNhbiBiZSBkb25lIGF0IHNhbWUgdGltZToNCj4gDQo+IHN0YXRpYyBkZXZfb3Bz MSgpIHt9DQo+IHN0YXRpYyBkZXZfb3BzMigpIHt9DQo+IHN0YXRpYyBkZXZfb3BzMygpIHt9DQo+ IA0KPiBzdGF0aWMgY29uc3Qgc3RydWN0IGV0aF9kZXZfb3BzIGljZV9ldGhfZGV2X29wcyA9IHsN Cj4gICBvcHMxID0gZGV2X29wczEsDQo+ICAgb3BzMiA9IGRldl9vcHMyLA0KPiAgIG9wczMgPSBk ZXZfb3BzMywNCj4gfTsNCj4gDQo+IGljZV9kZXZfaW5pdCgpIHsNCj4gICBkZXYtPmRldl9vcHMg PSAmaWNlX2V0aF9kZXZfb3BzOw0KPiB9DQo+IA0KPiBpY2VfcGNpX3Byb2JlKCkgew0KPiAgIHJ0 ZV9ldGhfZGV2X3BjaV9nZW5lcmljX3Byb2JlKC4uLiwgaWNlX2Rldl9pbml0KTsgfQ0KPiANCj4g cnRlX3BjaV9kcml2ZXIgcnRlX2ljZV9wbWQgPSB7DQo+ICAgLnByb2JlID0gaWNlX3BjaV9wcm9i ZSwNCj4gICAucmVtb3ZlID0gaWNlX3BjaV9yZW1vdmUsDQo+IH07DQo+IA0KPiBSVEVfUE1EX1JF R0lTVEVSX1BDSShuZXRfaWNlLCBydGVfaWNlX3BtZCk7DQo+IA0KPiA+DQo+ID4+DQo+ID4+IEl0 IGlzIHVwIHRvIHlvdSBidXQgYWxzbyBmb3Igc2FrZSBvZiBjb25zaXN0YW5jeSBJIHRoaW5rIGJl dHRlciB0bw0KPiA+PiBtb3ZlIHRoaXMgZnVuY3Rpb24gdXAsIGFuZCBsZWF2ZSBwcm9iZS9yZW1v dmUvaW5pdF9sb2cgZnVuY3Rpb25zIGFzDQo+ID4+IGxhc3QgZnVuY3Rpb25zIGluIGZpbGUuDQo+ ID4gU28sIGl0J3MgYSBiYWQgdHJ5IHRvIHNob3cgdGhlIHN0cm9uZyBjb25uZWN0aW9uIG9mIHBy b2JlL3JlbW92ZSB3aXRoDQo+ID4gZGV2X2luaXQvdW5pbml0IDopDQo+IA0KPiBObyBpdCBpcyBn b29kIHRvIHNob3cgdGhhdCByZWxhdGlvbiBhbmQga2VlcCB0aGVtIGNsb3NlLCBzb3JyeSBwZXJo YXBzIEkNCj4gbWlzc2VkIHlvdXIgcG9pbnQgYnV0IEkgd2Fzbid0IHN1Z2dlc3RpbmcgdG8gc2Vw YXJhdGUgcHJvYmUvcmVtb3ZlICYNCj4gZGV2X2luaXQvdW5pbml0Lg0KPiANCj4gSXQgbG9va3Mg bWUgYmV0dGVyIHRvIGtlZXAgZmlsZSBlbnRyeS9leGl0IHBvaW50cyBhdCB0aGUgYm90dG9tIGFu ZCBkZXZlbG9wDQo+IHRocm91Z2ggdXB3YXJkcyBhcyBjYWxsLXN0YWNrIG1vdmVzIGRlZXBlciwg aW5zdGVhZCBvZiBmdW5jdGlvbnMganVtcA0KPiB3aXRoaW4gdGhlIGZpbGUgYWdhaW5zdCBjYWxs LXN0YWNrLiBUaGlzIGltcHJvdmVzIHJlYWRhYmlsaXR5IGJlY2F1c2UgeW91IG9ubHkNCj4gc2Ny b2xsIG9uZSB3YXkgYXMgeW91IGFkdmFuY2UgdGhyb3VnaCBjb2RlIGFsc28geW91IGV4cG9zZSB0 byBjb2RlIGZyb20NCj4gbW9yZSBhYnN0cmFjdCB0byBkZXRhaWxlZCBvcmRlci4gVGhhdCBvcmRl ciBhbHNvIGhhcyBiZW5lZml0IG9mIHJlbW92aW5nDQo+IGZvcndhcmQgZGVjbGFyYXRpb25zLg0K PiANCj4gSSBhbSBhd2FyZSBpdCBpcyBhbHJlYWR5IGNvbXBsZXggdG8gZGV2ZWxvcCBhIG5ldyBQ TUQgYW5kIHlvdSBhcmUgYWxyZWFkeQ0KPiBkZWFsaW5nIHdpdGggbG90cyBvZiBoYXJkd2FyZSBk ZXRhaWxzLCBJIGhhdmUgbm8gaW50ZW50aW9uIHRvIG1ha2UgaXQgbW9yZQ0KPiBjb21wbGV4IGZv ciB5b3UsIHBsZWFzZSB0YWtlIHRoaXMgb25seSBhcyBhbiBpbnB1dC4NCkkgaGF2ZSB0aGUgc2Ft ZSBmZWVsaW5nLiBBY3R1YWxseSBJJ3ZlIGRvbmUgbXVjaCB0aGlzIGtpbmQgb2YgYWRqdXN0bWVu dCBiZWZvcmUgY3JlYXRpbmcgdGhlIHBhdGNoZXMuIFdpbGwgbWFrZSBpdCBiZXR0ZXIuDQoNCg0K