From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id E13643238 for ; Tue, 24 Jul 2018 15:04:09 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Jul 2018 06:04:08 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,398,1526367600"; d="scan'208";a="59384272" Received: from irsmsx106.ger.corp.intel.com ([163.33.3.31]) by orsmga008.jf.intel.com with ESMTP; 24 Jul 2018 06:04:07 -0700 Received: from irsmsx105.ger.corp.intel.com ([169.254.7.195]) by IRSMSX106.ger.corp.intel.com ([169.254.8.211]) with mapi id 14.03.0319.002; Tue, 24 Jul 2018 14:04:06 +0100 From: "Ananyev, Konstantin" To: Akhil Goyal , "dev@dpdk.org" CC: "Nicolau, Radu" Thread-Topic: [dpdk-dev] [PATCH 2/2] examples/ipsec-secgw: fix portmask option parsing Thread-Index: AQHT/NfEr4KwVcwBs0yeo6dCRQxAs6RqwrGAgAAj45CAAS6+gIAAEkhA///41YCAACRfEIAULs6AgB4mg9D///T6gIAAFESQ Date: Tue, 24 Jul 2018 13:04:06 +0000 Message-ID: <2601191342CEEE43887BDE71AB977258DF51CDAF@irsmsx105.ger.corp.intel.com> References: <1528208163-31560-1-git-send-email-konstantin.ananyev@intel.com> <1528208163-31560-2-git-send-email-konstantin.ananyev@intel.com> <36d2a552-e043-7451-ed66-70d13f0f6fe6@nxp.com> <2601191342CEEE43887BDE71AB977258C0C4009C@irsmsx105.ger.corp.intel.com> <2ff9fe7a-3965-ca79-e5e3-9890cc6ce49d@nxp.com> <2601191342CEEE43887BDE71AB977258C0C40347@irsmsx105.ger.corp.intel.com> <2601191342CEEE43887BDE71AB977258C0C406CF@irsmsx105.ger.corp.intel.com> <2601191342CEEE43887BDE71AB977258DF51CD64@irsmsx105.ger.corp.intel.com> In-Reply-To: Accept-Language: en-IE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZTI4MGNhM2ItYzBmMi00MWFhLTgxZDAtYzJmODdiMzQ4ZDdmIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoibWJmSkZNQW43WG85SmNydFwvczU5amNjdkx2MlNwakZibWthMFNmMTRwWG1DY3VaNU9xemtNVktoV3BkQ0VVUHAifQ== x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.200.100 dlp-reaction: no-action x-originating-ip: [163.33.239.182] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH 2/2] examples/ipsec-secgw: fix portmask option parsing 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: Tue, 24 Jul 2018 13:04:10 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQWtoaWwgR295YWwgW21h aWx0bzpha2hpbC5nb3lhbEBueHAuY29tXQ0KPiBTZW50OiBUdWVzZGF5LCBKdWx5IDI0LCAyMDE4 IDE6NTAgUE0NCj4gVG86IEFuYW55ZXYsIEtvbnN0YW50aW4gPGtvbnN0YW50aW4uYW5hbnlldkBp bnRlbC5jb20+OyBkZXZAZHBkay5vcmcNCj4gQ2M6IE5pY29sYXUsIFJhZHUgPHJhZHUubmljb2xh dUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCAyLzJdIGV4YW1w bGVzL2lwc2VjLXNlY2d3OiBmaXggcG9ydG1hc2sgb3B0aW9uIHBhcnNpbmcNCj4gDQo+IEhpIEtv bnN0YW50aW4sDQo+IA0KPiBPbiA3LzI0LzIwMTggNjowNyBQTSwgQW5hbnlldiwgS29uc3RhbnRp biB3cm90ZToNCj4gDQo+ID4gSGkgQWtoaWwsDQo+ID4NCj4gPj4gSGkgS29uc3RhbnRpbiwNCj4g Pj4NCj4gPj4gT24gNi8yMi8yMDE4IDU6MjEgUE0sIEFuYW55ZXYsIEtvbnN0YW50aW4gd3JvdGU6 DQo+ID4+DQo+ID4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+PiBGcm9tOiBB a2hpbCBHb3lhbCBbbWFpbHRvOmFraGlsLmdveWFsQG54cC5jb21dDQo+ID4+Pj4gU2VudDogRnJp ZGF5LCBKdW5lIDIyLCAyMDE4IDExOjQxIEFNDQo+ID4+Pj4gVG86IEFuYW55ZXYsIEtvbnN0YW50 aW4gPGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+OyBkZXZAZHBkay5vcmcNCj4gPj4+PiBD YzogTmljb2xhdSwgUmFkdSA8cmFkdS5uaWNvbGF1QGludGVsLmNvbT4NCj4gPj4+PiBTdWJqZWN0 OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggMi8yXSBleGFtcGxlcy9pcHNlYy1zZWNndzogZml4IHBv cnRtYXNrIG9wdGlvbiBwYXJzaW5nDQo+ID4+Pj4NCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+Pj4gT24g Ni8yMi8yMDE4IDM6NDAgUE0sIEFuYW55ZXYsIEtvbnN0YW50aW4gd3JvdGU6DQo+ID4+Pj4+PiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+Pj4gRnJvbTogQWtoaWwgR295YWwgW21h aWx0bzpha2hpbC5nb3lhbEBueHAuY29tXQ0KPiA+Pj4+Pj4gU2VudDogRnJpZGF5LCBKdW5lIDIy LCAyMDE4IDExOjAxIEFNDQo+ID4+Pj4+PiBUbzogQW5hbnlldiwgS29uc3RhbnRpbiA8a29uc3Rh bnRpbi5hbmFueWV2QGludGVsLmNvbT47IGRldkBkcGRrLm9yZw0KPiA+Pj4+Pj4gQ2M6IE5pY29s YXUsIFJhZHUgPHJhZHUubmljb2xhdUBpbnRlbC5jb20+DQo+ID4+Pj4+PiBTdWJqZWN0OiBSZTog W2RwZGstZGV2XSBbUEFUQ0ggMi8yXSBleGFtcGxlcy9pcHNlYy1zZWNndzogZml4IHBvcnRtYXNr IG9wdGlvbiBwYXJzaW5nDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gSGkgS29uc3RhbnRpbiwNCj4gPj4+ Pj4+DQo+ID4+Pj4+PiBPbiA2LzIxLzIwMTggODozMiBQTSwgQW5hbnlldiwgS29uc3RhbnRpbiB3 cm90ZToNCj4gPj4+Pj4+DQo+ID4+Pj4+Pj4gSGkgQWtoaWwsDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+ Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+Pj4+Pj4gRnJvbTogQWtoaWwgR295 YWwgW21haWx0bzpha2hpbC5nb3lhbEBueHAuY29tXQ0KPiA+Pj4+Pj4+PiBTZW50OiBUaHVyc2Rh eSwgSnVuZSAyMSwgMjAxOCAyOjQ5IFBNDQo+ID4+Pj4+Pj4+IFRvOiBBbmFueWV2LCBLb25zdGFu dGluIDxrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+ID4+Pj4+ Pj4+IENjOiBOaWNvbGF1LCBSYWR1IDxyYWR1Lm5pY29sYXVAaW50ZWwuY29tPg0KPiA+Pj4+Pj4+ PiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggMi8yXSBleGFtcGxlcy9pcHNlYy1zZWNn dzogZml4IHBvcnRtYXNrIG9wdGlvbiBwYXJzaW5nDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IEhp IEtvbnN0YW50aW4sDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IE9uIDYvNS8yMDE4IDc6NDYgUE0s IEtvbnN0YW50aW4gQW5hbnlldiB3cm90ZToNCj4gPj4+Pj4+Pj4+IHBhcnNlX3BvcnRtYXNrKCkg cmV0dXJucyBib3RoIHBvcnRtYXNrIHZhbHVlIGFuZCBwb3NzaWJsZSBlcnJvciBjb2RlDQo+ID4+ Pj4+Pj4+PiBhcyAzMi1iaXQgaW50ZWdlci4gVGhhdCBjYXVzZXMgc29tZSBjb25mdXNpb24gZm9y IGNhbGxlcnMuDQo+ID4+Pj4+Pj4+PiBTcGxpdCBlcnJvciBjb2RlIGFuZCBwb3J0bWFzayB2YWx1 ZSBpbnRvIHR3byBkaXN0aW5jdCB2YXJpYWJsZXMuDQo+ID4+Pj4+Pj4+PiBBbHNvIGFsbG93cyB0 byBydW4gdGhlIGFwcCB3aXRoIHVucHJvdGVjdGVkX3BvcnRfbWFzayA9PSAwLg0KPiA+Pj4+Pj4+ PiBUaGlzIHdvdWxkIGFsc28gYWxsb3cgY3J5cHRvZGV2X21hc2sgPT0gMCB0byB3b3JrIHdlbGwg d2hpY2ggc2hvdWxkIG5vdCBiZSB0aGUgY2FzZS4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+IEZp eGVzOiBkMjk5MTA2ZThlMzEgKCJleGFtcGxlcy9pcHNlYy1zZWNndzogYWRkIElQc2VjIHNhbXBs ZSBhcHBsaWNhdGlvbiIpDQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTog S29uc3RhbnRpbiBBbmFueWV2IDxrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29tPg0KPiA+Pj4+ Pj4+Pj4gLS0tDQo+ID4+Pj4+Pj4+PiAgICAgICBleGFtcGxlcy9pcHNlYy1zZWNndy9pcHNlYy1z ZWNndy5jIHwgMjkgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0NCj4gPj4+Pj4+Pj4+ICAg ICAgIDEgZmlsZSBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkNCj4g Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvaXBzZWMtc2VjZ3cv aXBzZWMtc2VjZ3cuYyBiL2V4YW1wbGVzL2lwc2VjLXNlY2d3L2lwc2VjLXNlY2d3LmMNCj4gPj4+ Pj4+Pj4+IGluZGV4IGZhZmI0MTE2MS4uNWQ3MDcxNjU3IDEwMDY0NA0KPiA+Pj4+Pj4+Pj4gLS0t IGEvZXhhbXBsZXMvaXBzZWMtc2VjZ3cvaXBzZWMtc2VjZ3cuYw0KPiA+Pj4+Pj4+Pj4gKysrIGIv ZXhhbXBsZXMvaXBzZWMtc2VjZ3cvaXBzZWMtc2VjZ3cuYw0KPiA+Pj4+Pj4+Pj4gQEAgLTk3Miwy MCArOTcyLDE5IEBAIHByaW50X3VzYWdlKGNvbnN0IGNoYXIgKnByZ25hbWUpDQo+ID4+Pj4+Pj4+ PiAgICAgICB9DQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4gICAgICAgc3RhdGljIGludDMyX3QN Cj4gPj4+Pj4+Pj4+IC1wYXJzZV9wb3J0bWFzayhjb25zdCBjaGFyICpwb3J0bWFzaykNCj4gPj4+ Pj4+Pj4+ICtwYXJzZV9wb3J0bWFzayhjb25zdCBjaGFyICpwb3J0bWFzaywgdWludDMyX3QgKnBt dikNCj4gPj4+Pj4+Pj4+ICAgICAgIHsNCj4gPj4+Pj4+Pj4+IC0JY2hhciAqZW5kID0gTlVMTDsN Cj4gPj4+Pj4+Pj4+ICsJY2hhciAqZW5kOw0KPiA+Pj4+Pj4+Pj4gICAgICAgCXVuc2lnbmVkIGxv bmcgcG07DQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4gICAgICAgCS8qIHBhcnNlIGhleGFkZWNp bWFsIHN0cmluZyAqLw0KPiA+Pj4+Pj4+Pj4gKwllcnJubyA9IDA7DQo+ID4+Pj4+Pj4+PiAgICAg ICAJcG0gPSBzdHJ0b3VsKHBvcnRtYXNrLCAmZW5kLCAxNik7DQo+ID4+Pj4+Pj4+PiAtCWlmICgo cG9ydG1hc2tbMF0gPT0gJ1wwJykgfHwgKGVuZCA9PSBOVUxMKSB8fCAoKmVuZCAhPSAnXDAnKSkN Cj4gPj4+Pj4+Pj4+ICsJaWYgKGVycm5vICE9IDAgfHwgKmVuZCAhPSAnXDAnIHx8IHBtID4gVUlO VDMyX01BWCkNCj4gPj4+Pj4+Pj4+ICAgICAgIAkJcmV0dXJuIC0xOw0KPiA+Pj4+Pj4+Pj4NCj4g Pj4+Pj4+Pj4+IC0JaWYgKChwbSA9PSAwKSAmJiBlcnJubykNCj4gPj4+Pj4+Pj4+IC0JCXJldHVy biAtMTsNCj4gPj4+Pj4+Pj4+IC0NCj4gPj4+Pj4+Pj4+IC0JcmV0dXJuIHBtOw0KPiA+Pj4+Pj4+ Pj4gKwkqcG12ID0gcG07DQo+ID4+Pj4+Pj4+PiArCXJldHVybiAwOw0KPiA+Pj4+Pj4+Pj4gICAg ICAgfQ0KPiA+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+ICAgICAgIHN0YXRpYyBpbnQzMl90DQo+ID4+ Pj4+Pj4+PiBAQCAtMTA2Myw2ICsxMDYyLDcgQEAgcGFyc2VfYXJncyhpbnQzMl90IGFyZ2MsIGNo YXIgKiphcmd2KQ0KPiA+Pj4+Pj4+Pj4gICAgICAgCWludDMyX3Qgb3B0LCByZXQ7DQo+ID4+Pj4+ Pj4+PiAgICAgICAJY2hhciAqKmFyZ3ZvcHQ7DQo+ID4+Pj4+Pj4+PiAgICAgICAJaW50MzJfdCBv cHRpb25faW5kZXg7DQo+ID4+Pj4+Pj4+PiArCXVpbnQzMl90IHY7DQo+ID4+Pj4+Pj4+PiAgICAg ICAJY2hhciAqcHJnbmFtZSA9IGFyZ3ZbMF07DQo+ID4+Pj4+Pj4+PiAgICAgICAJaW50MzJfdCBm X3ByZXNlbnQgPSAwOw0KPiA+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+IEBAIC0xMDczLDggKzEwNzMs OCBAQCBwYXJzZV9hcmdzKGludDMyX3QgYXJnYywgY2hhciAqKmFyZ3YpDQo+ID4+Pj4+Pj4+Pg0K PiA+Pj4+Pj4+Pj4gICAgICAgCQlzd2l0Y2ggKG9wdCkgew0KPiA+Pj4+Pj4+Pj4gICAgICAgCQlj YXNlICdwJzoNCj4gPj4+Pj4+Pj4+IC0JCQllbmFibGVkX3BvcnRfbWFzayA9IHBhcnNlX3BvcnRt YXNrKG9wdGFyZyk7DQo+ID4+Pj4+Pj4+PiAtCQkJaWYgKGVuYWJsZWRfcG9ydF9tYXNrID09IDAp IHsNCj4gPj4+Pj4+Pj4+ICsJCQlyZXQgPSBwYXJzZV9wb3J0bWFzayhvcHRhcmcsICZlbmFibGVk X3BvcnRfbWFzayk7DQo+ID4+Pj4+Pj4+PiArCQkJaWYgKHJldCA8IDAgfHwgZW5hYmxlZF9wb3J0 X21hc2sgPT0gMCkgew0KPiA+Pj4+Pj4+Pj4gICAgICAgCQkJCXByaW50ZigiaW52YWxpZCBwb3J0 bWFza1xuIik7DQo+ID4+Pj4+Pj4+PiAgICAgICAJCQkJcHJpbnRfdXNhZ2UocHJnbmFtZSk7DQo+ ID4+Pj4+Pj4+PiAgICAgICAJCQkJcmV0dXJuIC0xOw0KPiA+Pj4+Pj4+Pj4gQEAgLTEwODUsOCAr MTA4NSw4IEBAIHBhcnNlX2FyZ3MoaW50MzJfdCBhcmdjLCBjaGFyICoqYXJndikNCj4gPj4+Pj4+ Pj4+ICAgICAgIAkJCXByb21pc2N1b3VzX29uID0gMTsNCj4gPj4+Pj4+Pj4+ICAgICAgIAkJCWJy ZWFrOw0KPiA+Pj4+Pj4+Pj4gICAgICAgCQljYXNlICd1JzoNCj4gPj4+Pj4+Pj4+IC0JCQl1bnBy b3RlY3RlZF9wb3J0X21hc2sgPSBwYXJzZV9wb3J0bWFzayhvcHRhcmcpOw0KPiA+Pj4+Pj4+Pj4g LQkJCWlmICh1bnByb3RlY3RlZF9wb3J0X21hc2sgPT0gMCkgew0KPiA+Pj4+Pj4+Pj4gKwkJCXJl dCA9IHBhcnNlX3BvcnRtYXNrKG9wdGFyZywgJnVucHJvdGVjdGVkX3BvcnRfbWFzayk7DQo+ID4+ Pj4+Pj4+PiArCQkJaWYgKHJldCA8IDApIHsNCj4gPj4+Pj4+Pj4+ICAgICAgIAkJCQlwcmludGYo ImludmFsaWQgdW5wcm90ZWN0ZWQgcG9ydG1hc2tcbiIpOw0KPiA+Pj4+Pj4+Pj4gICAgICAgCQkJ CXByaW50X3VzYWdlKHByZ25hbWUpOw0KPiA+Pj4+Pj4+Pj4gICAgICAgCQkJCXJldHVybiAtMTsN Cj4gPj4+Pj4+Pj4+IEBAIC0xMTQ3LDE1ICsxMTQ3LDE2IEBAIHBhcnNlX2FyZ3MoaW50MzJfdCBh cmdjLCBjaGFyICoqYXJndikNCj4gPj4+Pj4+Pj4+ICAgICAgIAkJCQkJc2luZ2xlX3NhX2lkeCk7 DQo+ID4+Pj4+Pj4+PiAgICAgICAJCQlicmVhazsNCj4gPj4+Pj4+Pj4+ICAgICAgIAkJY2FzZSBD TURfTElORV9PUFRfQ1JZUFRPREVWX01BU0tfTlVNOg0KPiA+Pj4+Pj4+Pj4gLQkJCXJldCA9IHBh cnNlX3BvcnRtYXNrKG9wdGFyZyk7DQo+ID4+Pj4+Pj4+PiArCQkJcmV0ID0gcGFyc2VfcG9ydG1h c2sob3B0YXJnLCAmdik7DQo+ID4+Pj4+Pj4+IEkgdGhpbmsgdGhlcmUgaXMgbm8gbmVlZCBmb3Ig diwgZW5hYmxlZF9jcnlwdG9kZXZfbWFzayBjYW4gYmUgdXNlZCBpbnN0ZWFkLg0KPiA+Pj4+Pj4+ IFJpZ2h0IG5vdyAtIGl0IGNhbid0IGFzIGVuYWJsZWRfY3J5cHRvZGV2bWFzayBpcyB1aW50NjRf dC4NCj4gPj4+Pj4+PiBUbyBkbyB3aGF0IHlvdSBzdWdnZXN0aW5nIHdlIGhhdmUgZWl0aGVyIGRv d25ncmFkZSBlbmFibGVkX2NyeXB0b2Rldm1hc2sgMzItYml0cywNCj4gPj4+Pj4+PiBvciB1cGdy YWRlIGVuYWJsZWRfcG9ydF9tYXNrIHRvIDY0LWJpdCBhbmQgY2hhbmdlIHBhcnNlX3BvcnRtYXNr KCkgdG8gYWNjZXB0IDY0LWJpdCBwYXJhbWV0ZXIuDQo+ID4+Pj4+PiBJIGFtIG9rIHdpdGggYW55 IG9mIHRoZSBjYXNlLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+Pj4+ICAgICAgIAkJCWlmIChyZXQgPT0g LTEpIHsNCj4gPj4+Pj4+Pj4gZW5hYmxlZF9jcnlwdG9kZXZfbWFzayBzaG91bGQgbm90IGJlIDAg YW5kIHNob3VsZCBiZSBjaGVja2VkIGhlcmUuDQo+ID4+Pj4+Pj4gQ291bGQgeW91IGV4cGxhaW4g YSBiaXQgbW9yZSB3aHkgZW5hYmxlZF9jcnlwdG9kZXZtYXNrPT0wIGlzIG5vdCBhbGxvd2VkPw0K PiA+Pj4+Pj4gQnkgZGVmYXVsdCwgdGhlIHZhbHVlIG9mIGVuYWJsZWRfY3J5cHRvZGV2bWFzayBp cyBVSU5UNjRfTUFYLCB3aGljaCBtZWFucyBhbGwgY3J5cHRvDQo+ID4+Pj4+PiBkZXZpY2VzIGFy ZSBlbmFibGVkLCBhbmQgaWYgaXQgaXMgbWFya2VkIGFzIDAsIHRoZW4gYWxsIGdldCBkaXNhYmxl ZCB3aGljaCBpcyBub3QNCj4gPj4+Pj4+IGNvcnJlY3QgYXMgd2UgbmVlZCBhdGxlYXN0IDEgY3J5 cHRvIGRldmljZSBpbiBpcHNlYyBhcHBsaWNhdGlvbi4NCj4gPj4+Pj4gTWlnaHQgYmUgdXNlciB3 b3VsZCBsaWtlIHRvIHJ1biBhcHAgd2l0aCBpbmxpbmUgaXBzZWMgb25seSwNCj4gPj4+Pj4gb3Ig aGF2ZSBhcHAgdG8gd29yayBpbiBieXBhc3MgbW9kZSBvbmx5IChubyBlbmNyeXB0L2RlY3J5cHQp IGF0IGFsbC4NCj4gPj4+Pj4gV2h5IHRoYXQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYXMgYSBwcm9i bGVtPw0KPiA+Pj4+PiBLb25zdGFudGluDQo+ID4+Pj4gQWdyZWVkIHdpdGggeW91ciBwb2ludC4g QnV0IGluIGNhc2Ugb2YgaW5saW5lIGlwc2VjLCB1c2VyIG1heSBub3QgYmUgaW5pdGlhbGl6aW5n IHRoZSBjcnlwdG8gZGV2aWNlIGVpdGhlci4NCj4gPj4+Pg0KPiA+Pj4+IFNvIHRoZSBjcnlwdG9k ZXZfbWFzayBvcHRpb24gd291bGQgYmUgcmVkdW5kYW50IGluIHRoYXQgY2FzZSBhbmQgaXQgbWF5 IG5vdCBnaXZlIHRoYXQgcGFyYW1ldGVyLg0KPiA+Pj4gSXQgaXMgc3RpbGwgbm90IGNsZWFyIHRv IG1lIHdoeSB5b3UnZCBsaWtlIHRvIHByb2hpYml0IGNyeXB0b2Rldl9tYXNrPT0wPw0KPiA+Pj4g V291bGQgYW55dGhpbmcgd2lsbCBiZSBicm9rZW4/DQo+ID4+PiBLb25zdGFudGluDQo+ID4+IFNv cnJ5IGZvciBkZWxheWVkIHJlc3BvbnNlLiBJIG1pc3NlZCB0aGlzIG9uZSBzb21laG93Lg0KPiA+ Pg0KPiA+PiBOb3RoaW5nIGlzIGJyb2tlbiwNCj4gPiBPaw0KPiA+DQo+ID4+IGJ1dCBpdCBsb29r cyB2ZXJ5IHJlZHVuZGFudCBpbiBjYXNlIG9mIGlubGluZSBtb2RlcywNCj4gPiBXaHkgaXMgdGhh dD8NCj4gPiBMZXQgc2F5IEkgaGF2ZSBhIGNyeXB0byBkZXZpY2UgZW5hYmxlZCBmb3IgRFBESywg YnV0IGRvbid0IHdhbnQgdG8gdXNlIGl0DQo+ID4gZm9yIHRoYXQgcGFydGljdWxhciBydW4uDQo+ IA0KPiBjcnlwdG8gZGV2aWNlIHdpbGwgbm90IGJlIHVzZWQgaW4gY2FzZSBvZiBpbmxpbmUsIHdo ZXRoZXIgeW91IHNwZWNpZnkgdGhlIGNyeXB0b2Rldl9tYXNrIG9yIG5vdC4NCg0KTm90IHN1cmUg d2h5IGlzIHRoYXQ/DQpXZSBjYW4gaGF2ZSBvbmUgU0EgdXNpbmcgaW5saW5lLWNyeXB0bywgd2hp bGUgc2Vjb25kIG9uZSB1c2luZyBjcnlwdG8gZGV2aWNlLg0KDQo+IA0KPiA+PiBhbmQgaXQgaXMg bm90IGEgdmFsaWQgdmFsdWUgaW4gY2FzZSBvZiBvdGhlciBtb2Rlcy4NCj4gPiBIb3cgdGhhdCBk aWZmZXJzIGZyb20gYW55IG90aGVyIGludmFsaWQgY3J5cHRvLWRldiBtYXNrPw0KPiA+IExldCBz YXkgcmlnaHQgbm93LCB1c2VyIGNhbiBoYXZlIG9ubHkgb25lIGNyeXB0byBkZXZpY2UsIGJ1dCBu b3RoaW5nIHN0b3BzIGhpbSB0byBzcGVjaWZ5DQo+ID4gLS1jcnlwdG9kZXZfbWFzaz0weDEwLCBv ciBzby4NCj4gDQo+IFRoYXQgY2FuIGJlIGFuIGVuaGFuY2VtZW50IHRvIHRoZSBhcHBsaWNhdGlv biB0byB2YWxpZGF0ZSB0aGUgY3J5cHRvZGV2X21hc2sgYmVmb3JlIHVzaW5nLg0KPiANCj4gQnV0 IGluIGNhc2UgaXQgaXMgMCwgdGhlbiBpdCBjYW5ub3QgYmUgY29ycmVjdCBpbiBhbnkgb2YgdGhl IGNhc2UsIGJlY2F1c2UgYXRsZWFzdCBvbmUgY3J5cHRvIGRldmljZSBuZWVkcyB0byBiZSBlbmFi bGVkLg0KDQpBZ2Fpbiwgbm90IHN1cmUgd2h5Pw0KQXMgeW91IHNhaWQgYWJvdmUgdXNlciBtYXkg Y2hvb3NlIHRvIHVzZSBpbmxpbmUtY3J5cHRvIGRldnMgb25seSBmb3IgdGhhdCBwYXJ0aWN1bGFy IHJ1bi4NCktvbnN0YW50aW4NCg0KPiANCj4gLUFraGlsDQo+IA0KPiA+DQo+ID4gS29uc3RhbnRp bg0KPiA+DQo+ID4+Pj4gLUFraGlsDQo+ID4+Pj4NCj4gPj4+Pj4+IFNvIGlmIHRoZSB1c2VyIGRv ZXNuJ3QNCj4gPj4+Pj4+IHdhbnQgdG8gZ2l2ZSB0aGUgY3J5cHRvZGV2X21hc2sgdGhlbiBoZSBt YXkgc2tpcCB0aGF0IHBhcmFtZXRlciwgYnV0IGlmIGl0IGlzIGdpdmluZywNCj4gPj4+Pj4+IHRo ZW4gaXQgY2Fubm90IGJlIDAuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4+IEtvbnN0YW50aW4NCj4gPj4+ Pj4+Pg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+PiAtQWtoaWwNCj4gPj4+DQo=