From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by dpdk.org (Postfix) with ESMTP id 507EB7CE1 for ; Thu, 26 Apr 2018 12:47:10 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Apr 2018 03:47:08 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,330,1520924400"; d="scan'208";a="223516636" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga005.fm.intel.com with ESMTP; 26 Apr 2018 03:47:08 -0700 Received: from fmsmsx101.amr.corp.intel.com (10.18.124.199) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 26 Apr 2018 03:47:08 -0700 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by fmsmsx101.amr.corp.intel.com (10.18.124.199) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 26 Apr 2018 03:47:08 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.240]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.210]) with mapi id 14.03.0319.002; Thu, 26 Apr 2018 18:47:06 +0800 From: "Xu, Rosen" To: Shreyansh Jain CC: "dev@dpdk.org" , "Doherty, Declan" , "Richardson, Bruce" , "Yigit, Ferruh" , "Ananyev, Konstantin" , "Zhang, Tianfei" , "Wu, Hao" , "gaetan.rivet@6wind.com" , "Wu, Yanglong" Thread-Topic: [dpdk-dev] [PATCH v4 2/3] Add Intel FPGA BUS Rawdev Driver Thread-Index: AQHTyy8E8e70ogX08U2ABZ44X81ET6Pv12OQgAAdCgCAIwzZkA== Date: Thu, 26 Apr 2018 10:47:05 +0000 Message-ID: <0E78D399C70DA940A335608C6ED296D739F91EAE@SHSMSX104.ccr.corp.intel.com> References: <1521553556-62982-1-git-send-email-rosen.xu@intel.com> <1522512182-182441-1-git-send-email-rosen.xu@intel.com> <1522512182-182441-3-git-send-email-rosen.xu@intel.com> <25304883-90fc-a579-c234-2058aa7a10b8@nxp.com> <0E78D399C70DA940A335608C6ED296D739F33D81@SHSMSX104.ccr.corp.intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNWZmYzdmMWYtNTQwYi00ODIyLThiZTgtYWFjMmIzNmI4NjI0IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE2LjUuOS4zIiwiVHJ1c3RlZExhYmVsSGFzaCI6ImFiYWpCUlRNSkNWY3plWmxFQlZITjlCMU4yd2R2clhybDFqUWp4SnBGS0k9In0= x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.200.100 dlp-reaction: no-action 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 v4 2/3] Add Intel FPGA BUS Rawdev Driver 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: Thu, 26 Apr 2018 10:47:11 -0000 SGkgU2hyZXlhbnNoLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFNo cmV5YW5zaCBKYWluIFttYWlsdG86c2hyZXlhbnNoLmphaW5AbnhwLmNvbV0NCj4gU2VudDogV2Vk bmVzZGF5LCBBcHJpbCAwNCwgMjAxOCAxOTozMQ0KPiBUbzogWHUsIFJvc2VuIDxyb3Nlbi54dUBp bnRlbC5jb20+DQo+IENjOiBkZXZAZHBkay5vcmc7IERvaGVydHksIERlY2xhbiA8ZGVjbGFuLmRv aGVydHlAaW50ZWwuY29tPjsNCj4gUmljaGFyZHNvbiwgQnJ1Y2UgPGJydWNlLnJpY2hhcmRzb25A aW50ZWwuY29tPjsgWWlnaXQsIEZlcnJ1aA0KPiA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT47IEFu YW55ZXYsIEtvbnN0YW50aW4NCj4gPGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+OyBaaGFu ZywgVGlhbmZlaSA8dGlhbmZlaS56aGFuZ0BpbnRlbC5jb20+Ow0KPiBXdSwgSGFvIDxoYW8ud3VA aW50ZWwuY29tPjsgZ2FldGFuLnJpdmV0QDZ3aW5kLmNvbTsgV3UsIFlhbmdsb25nDQo+IDx5YW5n bG9uZy53dUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbZHBkay1kZXZdIFtQQVRDSCB2NCAy LzNdIEFkZCBJbnRlbCBGUEdBIEJVUyBSYXdkZXYgRHJpdmVyDQo+IA0KPiBIZWxsbyBSb3NlbiwN Cj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBYdSwgUm9zZW4g W21haWx0bzpyb3Nlbi54dUBpbnRlbC5jb21dDQo+ID4gU2VudDogV2VkbmVzZGF5LCBBcHJpbCA0 LCAyMDE4IDc6MjAgQU0NCj4gPiBUbzogU2hyZXlhbnNoIEphaW4gPHNocmV5YW5zaC5qYWluQG54 cC5jb20+DQo+ID4gQ2M6IGRldkBkcGRrLm9yZzsgRG9oZXJ0eSwgRGVjbGFuIDxkZWNsYW4uZG9o ZXJ0eUBpbnRlbC5jb20+Ow0KPiA+IFJpY2hhcmRzb24sIEJydWNlIDxicnVjZS5yaWNoYXJkc29u QGludGVsLmNvbT47IFlpZ2l0LCBGZXJydWgNCj4gPiA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT47 IEFuYW55ZXYsIEtvbnN0YW50aW4NCj4gPiA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT47 IFpoYW5nLCBUaWFuZmVpDQo+ID4gPHRpYW5mZWkuemhhbmdAaW50ZWwuY29tPjsgV3UsIEhhbyA8 aGFvLnd1QGludGVsLmNvbT47DQo+ID4gZ2FldGFuLnJpdmV0QDZ3aW5kLmNvbTsgV3UsIFlhbmds b25nIDx5YW5nbG9uZy53dUBpbnRlbC5jb20+DQo+ID4gU3ViamVjdDogUkU6IFtkcGRrLWRldl0g W1BBVENIIHY0IDIvM10gQWRkIEludGVsIEZQR0EgQlVTIFJhd2Rldg0KPiA+IERyaXZlcg0KPiA+ DQo+ID4NCj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206 IFNocmV5YW5zaCBKYWluIFttYWlsdG86c2hyZXlhbnNoLmphaW5AbnhwLmNvbV0NCj4gPiA+IFNl bnQ6IFR1ZXNkYXksIEFwcmlsIDAzLCAyMDE4IDE3OjM1DQo+ID4gPiBUbzogWHUsIFJvc2VuIDxy b3Nlbi54dUBpbnRlbC5jb20+DQo+ID4gPiBDYzogZGV2QGRwZGsub3JnOyBEb2hlcnR5LCBEZWNs YW4gPGRlY2xhbi5kb2hlcnR5QGludGVsLmNvbT47DQo+ID4gPiBSaWNoYXJkc29uLCBCcnVjZSA8 YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+Ow0KPiA+IHNocmV5YW5zaC5qYWluQG54cC5jb207 DQo+ID4gPiBZaWdpdCwgRmVycnVoIDxmZXJydWgueWlnaXRAaW50ZWwuY29tPjsgQW5hbnlldiwg S29uc3RhbnRpbg0KPiA+ID4gPGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+OyBaaGFuZywg VGlhbmZlaQ0KPiA+IDx0aWFuZmVpLnpoYW5nQGludGVsLmNvbT47DQo+ID4gPiBXdSwgSGFvIDxo YW8ud3VAaW50ZWwuY29tPjsgZ2FldGFuLnJpdmV0QDZ3aW5kLmNvbTsgV3UsIFlhbmdsb25nDQo+ ID4gPiA8eWFuZ2xvbmcud3VAaW50ZWwuY29tPg0KPiA+ID4gU3ViamVjdDogUmU6IFtkcGRrLWRl dl0gW1BBVENIIHY0IDIvM10gQWRkIEludGVsIEZQR0EgQlVTIFJhd2Rldg0KPiA+IERyaXZlcg0K PiA+ID4NCj4gPiA+IE9uIFNhdHVyZGF5IDMxIE1hcmNoIDIwMTggMDk6MzMgUE0sIFJvc2VuIFh1 IHdyb3RlOg0KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBSb3NlbiBYdSA8cm9zZW4ueHVAaW50ZWwu Y29tPg0KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBZYW5nbG9uZyBXdSAgPHlhbmdsb25nLnd1QGlu dGVsLmNvbT4NCj4gPiA+ID4gLS0tDQo+ID4gPiA+ICAgY29uZmlnL2NvbW1vbl9iYXNlICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKw0KPiA+ID4gPiAgIGRyaXZlcnMvcmF3 L01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsNCj4gPiA+ID4g ICBkcml2ZXJzL3Jhdy9pZnBnYV9yYXdkZXYvTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAz NCArKw0KPiA+ID4gPiAgIGRyaXZlcnMvcmF3L2lmcGdhX3Jhd2Rldi9pZnBnYV9yYXdkZXYuYyAg ICAgICAgICAgIHwgNTk0DQo+ID4gPiArKysrKysrKysrKysrKysrKysrKysNCj4gPiA+ID4gICBk cml2ZXJzL3Jhdy9pZnBnYV9yYXdkZXYvaWZwZ2FfcmF3ZGV2LmggICAgICAgICAgICB8ICAzNyAr Kw0KPiA+ID4gPiAgIC4uLi9yYXcvaWZwZ2FfcmF3ZGV2L3J0ZV9pZnBnYV9yYXdkZXZfdmVyc2lv bi5tYXAgIHwgICA0ICsNCj4gPiA+ID4gICBtay9ydGUuYXBwLm1rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgMSArDQo+ID4gPiA+ICAgNyBmaWxlcyBjaGFuZ2VkLCA2 NzIgaW5zZXJ0aW9ucygrKQ0KPiA+ID4gPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3Jh dy9pZnBnYV9yYXdkZXYvTWFrZWZpbGUNCj4gPiA+ID4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJp dmVycy9yYXcvaWZwZ2FfcmF3ZGV2L2lmcGdhX3Jhd2Rldi5jDQo+ID4gPiA+ICAgY3JlYXRlIG1v ZGUgMTAwNjQ0IGRyaXZlcnMvcmF3L2lmcGdhX3Jhd2Rldi9pZnBnYV9yYXdkZXYuaA0KPiA+ID4g PiAgIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+ID4gPiBkcml2ZXJzL3Jhdy9pZnBnYV9yYXdkZXYv cnRlX2lmcGdhX3Jhd2Rldl92ZXJzaW9uLm1hcA0KPiA+ID4gPg0KPiA+ID4gPiBkaWZmIC0tZ2l0 IGEvY29uZmlnL2NvbW1vbl9iYXNlIGIvY29uZmlnL2NvbW1vbl9iYXNlIGluZGV4DQo+ID4gPiA+ IDQ5ZjZiMDkuLjA4YjdjY2UgMTAwNjQ0DQo+ID4gPiA+IC0tLSBhL2NvbmZpZy9jb21tb25fYmFz ZQ0KPiA+ID4gPiArKysgYi9jb25maWcvY29tbW9uX2Jhc2UNCj4gPiA+ID4gQEAgLTEzNyw2ICsx MzcsNyBAQCBDT05GSUdfUlRFX0xJQlJURV9WREVWX0JVUz15DQo+ID4gPiA+ICAgIyBDb21waWxl IHRoZSBJbnRlbCBGUEdBIGJ1cw0KPiA+ID4gPiAgICMNCj4gPiA+ID4gICBDT05GSUdfUlRFX0xJ QlJURV9JRlBHQV9CVVM9eQ0KPiA+ID4gPiArQ09ORklHX1JURV9MSUJSVEVfSUZQR0FfUkFXREVW PXkNCj4gPiA+ID4NCj4gPiA+ID4gICAjDQo+ID4gPiA+ICAgIyBDb21waWxlIEFSSyBQTUQNCj4g PiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmF3L01ha2VmaWxlIGIvZHJpdmVycy9yYXcvTWFr ZWZpbGUgaW5kZXgNCj4gPiA+ID4gZGE3YzhiNC4uNmZjOGYyZiAxMDA2NDQNCj4gPiA+ID4gLS0t IGEvZHJpdmVycy9yYXcvTWFrZWZpbGUNCj4gPiA+ID4gKysrIGIvZHJpdmVycy9yYXcvTWFrZWZp bGUNCj4gPiA+ID4gQEAgLTUsNSArNSw2IEBAIGluY2x1ZGUgJChSVEVfU0RLKS9tay9ydGUudmFy cy5taw0KPiA+ID4gPg0KPiA+ID4gPiAgICMgRElSUy0kKDxjb25maWd1cmF0aW9uPikgKz0gPGRp cmVjdG9yeT4NCj4gPiA+ID4gICBESVJTLSQoQ09ORklHX1JURV9MSUJSVEVfUE1EX1NLRUxFVE9O X1JBV0RFVikgKz0NCj4gPiA+IHNrZWxldG9uX3Jhd2Rldg0KPiA+ID4gPiArRElSUy0kKENPTkZJ R19SVEVfTElCUlRFX0lGUEdBX1JBV0RFVikgKz0gaWZwZ2FfcmF3ZGV2DQo+ID4gPiA+DQo+ID4g PiA+ICAgaW5jbHVkZSAkKFJURV9TREspL21rL3J0ZS5zdWJkaXIubWsgZGlmZiAtLWdpdA0KPiA+ ID4gPiBhL2RyaXZlcnMvcmF3L2lmcGdhX3Jhd2Rldi9NYWtlZmlsZQ0KPiA+ID4gPiBiL2RyaXZl cnMvcmF3L2lmcGdhX3Jhd2Rldi9NYWtlZmlsZQ0KPiA+ID4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KPiA+ID4gPiBpbmRleCAwMDAwMDAwLi4xMThjNzI5DQo+ID4gPiA+IC0tLSAvZGV2L251bGwN Cj4gPiA+ID4gKysrIGIvZHJpdmVycy9yYXcvaWZwZ2FfcmF3ZGV2L01ha2VmaWxlDQo+ID4gPiA+ IEBAIC0wLDAgKzEsMzQgQEANCj4gPiA+ID4gKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJT RC0zLUNsYXVzZSAjIENvcHlyaWdodChjKSAyMDE4IEludGVsDQo+ID4gPiA+ICtDb3Jwb3JhdGlv bg0KPiA+ID4gPiArDQo+ID4gPiA+ICtpbmNsdWRlICQoUlRFX1NESykvbWsvcnRlLnZhcnMubWsN Cj4gPiA+ID4gKw0KPiA+ID4gPiArIw0KPiA+ID4gPiArIyBsaWJyYXJ5IG5hbWUNCj4gPiA+ID4g KyMNCj4gPiA+ID4gK0xJQiA9IGxpYnJ0ZV9pZnBnYV9yYXdkZXYuYQ0KPiA+ID4gPiArDQo+ID4g PiA+ICtDRkxBR1MgKz0gLURBTExPV19FWFBFUklNRU5UQUxfQVBJIENGTEFHUyArPSAtTzMgQ0ZM QUdTICs9DQo+ID4gPiA+ICskKFdFUlJPUl9GTEFHUykgQ0ZMQUdTICs9IC1JJChSVEVfU0RLKS9k cml2ZXJzL2J1cy9pZnBnYSBDRkxBR1MNCj4gPiA+ID4gKys9IC1JJChSVEVfU0RLKS9kcml2ZXJz L3Jhdy9pZnBnYV9yYXdkZXYNCj4gPiA+ID4gK0xETElCUyArPSAtbHJ0ZV9lYWwNCj4gPiA+ID4g K0xETElCUyArPSAtbHJ0ZV9yYXdkZXYNCj4gPiA+ID4gK0xETElCUyArPSAtbHJ0ZV9idXNfdmRl dg0KPiA+ID4gPiArTERMSUJTICs9IC1scnRlX2t2YXJncw0KPiA+ID4gPiArDQo+ID4gPiA+ICtF WFBPUlRfTUFQIDo9IHJ0ZV9pZnBnYV9yYXdkZXZfdmVyc2lvbi5tYXANCj4gPiA+ID4gKw0KPiA+ ID4gPiArTElCQUJJVkVSIDo9IDENCj4gPiA+ID4gKw0KPiA+ID4gPiArVlBBVEggKz0gJChTUkNE SVIpL2Jhc2UNCj4gPiA+ID4gKw0KPiA+ID4gPiAraW5jbHVkZSAkKFJURV9TREspL2RyaXZlcnMv cmF3L2lmcGdhX3Jhd2Rldi9iYXNlL01ha2VmaWxlDQo+ID4gPiA+ICsNCj4gPiA+ID4gKyMNCj4g PiA+ID4gKyMgYWxsIHNvdXJjZSBhcmUgc3RvcmVkIGluIFNSQ1MteSAjDQo+ID4gPiA+ICtTUkNT LSQoQ09ORklHX1JURV9MSUJSVEVfSUZQR0FfUkFXREVWKSArPSBpZnBnYV9yYXdkZXYuYw0KPiA+ ID4gPiArDQo+ID4gPiA+ICtpbmNsdWRlICQoUlRFX1NESykvbWsvcnRlLmxpYi5taw0KPiA+ID4N Cj4gPiA+IFsuLi5dDQo+ID4gPiBZb3VyIHBhdGNoIGRvZXNuJ3QgY29tcGlsZSBhdCB0aGlzIHBv aW50OiAoU3RhdGljIGJ1aWxkOyBTaGFyZWQgaXMNCj4gPiBzdGlsbCBzdHVjayBvbg0KPiA+ID4g cGF0Y2ggWzEvM10pLg0KPiA+ID4NCj4gPiA+IC0tLT44LS0tDQo+ID4gPiA9PSBCdWlsZCBkcml2 ZXJzL3Jhdy9pZnBnYV9yYXdkZXYNCj4gPiA+DQo+IC9ob21lL3NocmV5YW5zaC9idWlsZC9EUERL LzAwX2RwZGsvZHJpdmVycy9yYXcvaWZwZ2FfcmF3ZGV2L01ha2VmaWwNCj4gPiA+IGU6Mjc6DQo+ ID4gPg0KPiAvaG9tZS9zaHJleWFuc2gvYnVpbGQvRFBESy8wMF9kcGRrL2RyaXZlcnMvcmF3L2lm cGdhX3Jhd2Rldi9iYXNlL00NCj4gPiA+IGFrZWZpbGU6DQo+ID4gPiBObyBzdWNoIGZpbGUgb3Ig ZGlyZWN0b3J5DQo+ID4gPiBtYWtlWzZdOiAqKiogTm8gcnVsZSB0byBtYWtlIHRhcmdldA0KPiA+ ID4NCj4gJy9ob21lL3NocmV5YW5zaC9idWlsZC9EUERLLzAwX2RwZGsvZHJpdmVycy9yYXcvaWZw Z2FfcmF3ZGV2L2Jhc2UvTQ0KPiA+ID4gYWtlZmlsZScuDQo+ID4gPiAgIFN0b3AuDQo+ID4gPiAv aG9tZS9zaHJleWFuc2gvYnVpbGQvRFBESy8wMF9kcGRrL21rL3J0ZS5zdWJkaXIubWs6MzU6IHJl Y2lwZSBmb3INCj4gPiA+IHRhcmdldCAnaWZwZ2FfcmF3ZGV2JyBmYWlsZWQNCj4gPiA+IG1ha2Vb NV06ICoqKiBbaWZwZ2FfcmF3ZGV2XSBFcnJvciAyDQo+ID4gPiBtYWtlWzVdOiAqKiogV2FpdGlu ZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4uLg0KPiA+ID4gLS0tPjgtLS0NCj4gPiA+DQo+ID4gPiBX aGljaCBpcyBiZWNhdXNlIHlvdXIgcGF0Y2ggWzMvM10gY29udGFpbnMgdmFyaW91cyBkZWZpbml0 aW9ucyB3aGljaA0KPiA+IGFyZQ0KPiA+ID4gYmVpbmcgdXNlZCBpbiB0aGlzIHBhdGNoLg0KPiA+ ID4NCj4gPiA+IEFtIEkgbWlzc2luZyBzb21ldGhpbmc/DQo+ID4NCj4gPiBJIGhhdmUgZml4ZWQg aXQgYW5kIHRyeSB0byBidWlsZCBpdCBhZnRlciBDT05GSUdfUlRFX0JVSUxEX1NIQVJFRF9MSUIN Cj4gPiA9IHksIEFuZCBpdCBidWlsZCBhbmQgbGluayB3ZWxsLg0KPiA+IElzIHRoaXMgYW5zd2Vy IHRvIHlvdXIgY29tbWVudHM/DQo+IA0KPiBZZXMsIGFuZCBuby4NCj4gSSBnZXQgdGhhdCB0aGVy ZSB3YXMgYW4gaXNzdWUgd2l0aCBzaGFyZWQgY29tcGlsYXRpb24gc28sIHllcywgeW91ciByZXNw b25zZQ0KPiBoYXMgZml4ZWQgdGhhdC4NCj4gQnV0LCBJIHN0aWxsIHNlZSB0aGUgaXNzdWUgb2Yg cGF0Y2ggYmVpbmcgZGVwZW5kZW50LiBJIHRoaW5rIHlvdSBjb21waWxlZA0KPiBldmVyeXRoaW5n IHRvZ2V0aGVyIChhbGwgcGF0Y2hlcyBjb21iaW5lZCkgLSBzbywgbm8sIHRoYXQgaXMgbm90IHRo ZQ0KPiBleHBlY3RhdGlvbi4NCj4gDQo+IEFsbCBwYXRjaGVzIHNob3VsZCBiZSBjb21wbGlhYmxl IHNlcGFyYXRlbHksIHNoYXJlZCBvciBzdGF0aWMuDQpJdCdzIGZpeGVkLCBwbHMgc2VlIG15IFBB VENIIHY2Lg0KPiA+DQo+ID4gPiAtDQo+ID4gPiBTaHJleWFuc2gNCg==