From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 22FCA16E for ; Mon, 18 Dec 2017 15:26:29 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Dec 2017 06:26:28 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.45,422,1508828400"; d="scan'208";a="19231831" Received: from irsmsx108.ger.corp.intel.com ([163.33.3.3]) by orsmga002.jf.intel.com with ESMTP; 18 Dec 2017 06:26:27 -0800 Received: from irsmsx104.ger.corp.intel.com ([169.254.5.248]) by IRSMSX108.ger.corp.intel.com ([169.254.11.167]) with mapi id 14.03.0319.002; Mon, 18 Dec 2017 14:26:26 +0000 From: "Kovacevic, Marko" To: "Mokhtar, Amr" , "dev@dpdk.org" CC: "thomas@monjalon.net" , "Burakov, Anatoly" , "De Lara Guarch, Pablo" , "Power, Niall" , "Macnamara, Chris" , "Mokhtar, Amr" Thread-Topic: [dpdk-dev] [PATCH v3 5/5] bbdev: documentation Thread-Index: AQHTb6RNY2gFqas1+0SuuwUm3R+aBaNJNDIg Date: Mon, 18 Dec 2017 14:26:25 +0000 Message-ID: <6DC05C7C5F25994B81B3F2F214251F6632ABEA@IRSMSX104.ger.corp.intel.com> References: <1512682857-79467-1-git-send-email-amr.mokhtar@intel.com> <1512682857-79467-5-git-send-email-amr.mokhtar@intel.com> In-Reply-To: <1512682857-79467-5-git-send-email-amr.mokhtar@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNjU5NmQ4MzktNzJhZS00MjI2LTljYWMtMDAyOGQ0NzhmYjg2IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE2LjUuOS4zIiwiVHJ1c3RlZExhYmVsSGFzaCI6Ijlmd0ErSlwvXC9SY2ZVbTlJRWlRWGNhR0E1THV6QUZTNGRKb05yejZoVEpxWT0ifQ== x-ctpclassification: CTP_IC x-originating-ip: [163.33.239.181] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v3 5/5] bbdev: documentation 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: Mon, 18 Dec 2017 14:26:30 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2IFttYWlsdG86ZGV2 LWJvdW5jZXNAZHBkay5vcmddIE9uIEJlaGFsZiBPZiBBbXIgTW9raHRhcg0KPiBTZW50OiBUaHVy c2RheSwgRGVjZW1iZXIgNywgMjAxNyA5OjQxIFBNDQo+IFRvOiBkZXZAZHBkay5vcmcNCj4gQ2M6 IHRob21hc0Btb25qYWxvbi5uZXQ7IEJ1cmFrb3YsIEFuYXRvbHkgPGFuYXRvbHkuYnVyYWtvdkBp bnRlbC5jb20+OyBEZQ0KPiBMYXJhIEd1YXJjaCwgUGFibG8gPHBhYmxvLmRlLmxhcmEuZ3VhcmNo QGludGVsLmNvbT47IFBvd2VyLCBOaWFsbA0KPiA8bmlhbGwucG93ZXJAaW50ZWwuY29tPjsgTWFj bmFtYXJhLCBDaHJpcyA8Y2hyaXMubWFjbmFtYXJhQGludGVsLmNvbT47DQo+IE1va2h0YXIsIEFt ciA8YW1yLm1va2h0YXJAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBbZHBkay1kZXZdIFtQQVRDSCB2 MyA1LzVdIGJiZGV2OiBkb2N1bWVudGF0aW9uDQo+IA0KPiAtIFdpcmVsZXNzIEJhc2ViYW5kIERl dmljZSBMaWJyYXJ5IFByb2dyYW1tZXLigJlzIEd1aWRlDQo+IC0gdGVzdC1iYmRldiBVc2VyIEd1 aWRlDQo+IC0gQkJERVYgU2FtcGxlIEFwcGxpY2F0aW9uIFVzZXIgR3VpZGVzDQo+IC0gQmFzZWJh bmQgRGV2aWNlIERyaXZlcnMgR3VpZGVzDQo+IC0gRG94eWdlbiBBUEkNCj4gDQo+IFNpZ25lZC1v ZmYtYnk6IEFtciBNb2todGFyIDxhbXIubW9raHRhckBpbnRlbC5jb20+DQo+IC0tLQ0KPiAgZG9j L2FwaS9kb3h5LWFwaS1pbmRleC5tZCAgICAgICAgICAgICAgfCAgIDEgKw0KPiAgZG9jL2FwaS9k b3h5LWFwaS5jb25mICAgICAgICAgICAgICAgICAgfCAgIDEgKw0KPiAgZG9jL2d1aWRlcy9iYmRl dnMvaW5kZXgucnN0ICAgICAgICAgICAgfCAgNDAgKysrDQo+ICBkb2MvZ3VpZGVzL2JiZGV2cy9u dWxsLnJzdCAgICAgICAgICAgICB8ICA3NyArKysrKw0KPiAgZG9jL2d1aWRlcy9iYmRldnMvdHVy Ym9fc3cucnN0ICAgICAgICAgfCAxNzUgKysrKysrKysrKw0KPiAgZG9jL2d1aWRlcy9pbmRleC5y c3QgICAgICAgICAgICAgICAgICAgfCAgIDEgKw0KPiAgZG9jL2d1aWRlcy9wcm9nX2d1aWRlL2Ji ZGV2LnJzdCAgICAgICAgfCA2MTMNCj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr DQo+ICBkb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvaW5kZXgucnN0ICAgICAgICB8ICAgMSArDQo+ICBk b2MvZ3VpZGVzL3NhbXBsZV9hcHBfdWcvYmJkZXZfYXBwLnJzdCB8IDE2MCArKysrKysrKysNCj4g IGRvYy9ndWlkZXMvc2FtcGxlX2FwcF91Zy9pbmRleC5yc3QgICAgIHwgICAxICsNCj4gIGRvYy9n dWlkZXMvdG9vbHMvaW5kZXgucnN0ICAgICAgICAgICAgIHwgICAxICsNCj4gIGRvYy9ndWlkZXMv dG9vbHMvdGVzdGJiZGV2LnJzdCAgICAgICAgIHwgNjAwDQo+ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrDQo+ICAxMiBmaWxlcyBjaGFuZ2VkLCAxNjcxIGluc2VydGlvbnMoKykNCj4g IGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2MvZ3VpZGVzL2JiZGV2cy9pbmRleC5yc3QNCj4gIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkb2MvZ3VpZGVzL2JiZGV2cy9udWxsLnJzdA0KPiAgY3JlYXRlIG1vZGUg MTAwNjQ0IGRvYy9ndWlkZXMvYmJkZXZzL3R1cmJvX3N3LnJzdA0KPiAgY3JlYXRlIG1vZGUgMTAw NjQ0IGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9iYmRldi5yc3QNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkb2MvZ3VpZGVzL3NhbXBsZV9hcHBfdWcvYmJkZXZfYXBwLnJzdA0KPiAgY3JlYXRlIG1vZGUg MTAwNjQ0IGRvYy9ndWlkZXMvdG9vbHMvdGVzdGJiZGV2LnJzdA0KPiANCj4gZGlmZiAtLWdpdCBh L2RvYy9hcGkvZG94eS1hcGktaW5kZXgubWQgYi9kb2MvYXBpL2RveHktYXBpLWluZGV4Lm1kDQo+ IGluZGV4IDM0OTI3MDIuLjhkN2ZmODkgMTAwNjQ0DQo+IC0tLSBhL2RvYy9hcGkvZG94eS1hcGkt aW5kZXgubWQNCj4gKysrIGIvZG9jL2FwaS9kb3h5LWFwaS1pbmRleC5tZA0KPiBAQCAtNTAsNiAr NTAsNyBAQCBUaGUgcHVibGljIEFQSSBoZWFkZXJzIGFyZSBncm91cGVkIGJ5IHRvcGljczoNCj4g ICAgW2JpdHJhdGVdICAgICAgICAgICAgKEByZWYgcnRlX2JpdHJhdGUuaCksDQo+ICAgIFtsYXRl bmN5XSAgICAgICAgICAgIChAcmVmIHJ0ZV9sYXRlbmN5c3RhdHMuaCksDQo+ICAgIFtkZXZhcmdz XSAgICAgICAgICAgIChAcmVmIHJ0ZV9kZXZhcmdzLmgpLA0KPiArICBbYmJkZXZdICAgICAgICAg ICAgICAoQHJlZiBydGVfYmJkZXYuaCksDQo+ICAgIFtQQ0ldICAgICAgICAgICAgICAgIChAcmVm IHJ0ZV9wY2kuaCkNCj4gDQo+ICAtICoqZGV2aWNlIHNwZWNpZmljKio6DQo+IGRpZmYgLS1naXQg YS9kb2MvYXBpL2RveHktYXBpLmNvbmYgYi9kb2MvYXBpL2RveHktYXBpLmNvbmYNCj4gaW5kZXgg YjJjYmU5NC4uMjQxY2FlMyAxMDA2NDQNCj4gLS0tIGEvZG9jL2FwaS9kb3h5LWFwaS5jb25mDQo+ ICsrKyBiL2RvYy9hcGkvZG94eS1hcGkuY29uZg0KPiBAQCAtMzksNiArMzksNyBAQCBJTlBVVCAg ICAgICAgICAgICAgICAgICA9IGRvYy9hcGkvZG94eS1hcGktaW5kZXgubWQgXA0KPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWIvbGlicnRlX2VhbC9jb21tb24vaW5jbHVkZSBcDQo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYi9saWJydGVfZWFsL2NvbW1vbi9pbmNsdWRlL2dl bmVyaWMgXA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIvbGlicnRlX2FjbCBcDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYi9saWJydGVfYmJkZXYgXA0KPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWIvbGlicnRlX2JpdHJhdGVzdGF0cyBcDQo+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxpYi9saWJydGVfY2ZnZmlsZSBcDQo+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxpYi9saWJydGVfY21kbGluZSBcDQo+IGRpZmYgLS1naXQgYS9kb2MvZ3Vp ZGVzL2JiZGV2cy9pbmRleC5yc3QgYi9kb2MvZ3VpZGVzL2JiZGV2cy9pbmRleC5yc3QNCj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMC4uYzlhYTFiMA0KPiAtLS0gL2Rldi9u dWxsDQo+ICsrKyBiL2RvYy9ndWlkZXMvYmJkZXZzL2luZGV4LnJzdA0KPiBAQCAtMCwwICsxLDQw IEBADQo+ICsuLg0KPiArICAgQlNEIExJQ0VOU0UNCj4gKw0KPiArICAgQ29weXJpZ2h0KGMpIDIw MTcgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+ICsNCj4gKyAgIFJl ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig d2l0aG91dA0KPiArICAgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg dGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQo+ICsgICBhcmUgbWV0Og0KPiArDQo+ICsgICAgICog UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5 cmlnaHQNCj4gKyAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg Zm9sbG93aW5nIGRpc2NsYWltZXIuDQo+ICsgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQNCj4gKyAgICAgICBub3Rp Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg aW4NCj4gKyAgICAgICB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy b3ZpZGVkIHdpdGggdGhlDQo+ICsgICAgICAgZGlzdHJpYnV0aW9uLg0KPiArICAgICAqIE5laXRo ZXIgdGhlIG5hbWUgb2YgSW50ZWwgQ29ycG9yYXRpb24gbm9yIHRoZSBuYW1lcyBvZiBpdHMNCj4g KyAgICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy b2R1Y3RzIGRlcml2ZWQNCj4gKyAgICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uDQo+ICsNCj4gKyAgIFRISVMgU09GVFdBUkUg SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORA0KPiBDT05UUklCVVRPUlMN Cj4gKyAgICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D TFVESU5HLCBCVVQgTk9UDQo+ICsgICBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUw0KPiBGT1INCj4gKyAgIEEgUEFSVElDVUxB UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUNCj4gQ09QWVJJ R0hUDQo+ICsgICBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU LCBJTkRJUkVDVCwNCj4gSU5DSURFTlRBTCwNCj4gKyAgIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVA0KPiBOT1QNCj4gKyAgIExJTUlU RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg T0YNCj4gVVNFLA0KPiArICAgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQNCj4gT04gQU5ZDQo+ICsgICBUSEVPUlkgT0YgTElBQklM SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUDQo+ICsg ICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg T1VUIE9GDQo+IFRIRSBVU0UNCj4gKyAgIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSA0KPiBEQU1BR0UuDQo+ICsNCj4gK0Jhc2ViYW5k IERldmljZSBEcml2ZXJzDQo+ICs9PT09PT09PT09PT09PT09PT09PT09PQ0KPiArDQo+ICsuLiB0 b2N0cmVlOjoNCj4gKyAgICA6bWF4ZGVwdGg6IDINCj4gKyAgICA6bnVtYmVyZWQ6DQo+ICsNCj4g KyAgICBudWxsDQo+ICsgICAgdHVyYm9fc3cNCj4gZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMvYmJk ZXZzL251bGwucnN0IGIvZG9jL2d1aWRlcy9iYmRldnMvbnVsbC5yc3QNCj4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMC4uMGY0MDIzMg0KPiAtLS0gL2Rldi9udWxsDQo+ICsr KyBiL2RvYy9ndWlkZXMvYmJkZXZzL251bGwucnN0DQo+IEBAIC0wLDAgKzEsNzcgQEANCj4gKy4u DQo+ICsgICBCU0QgTElDRU5TRQ0KPiArDQo+ICsgICBDb3B5cmlnaHQoYykgMjAxNyBJbnRlbCBD b3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gKw0KPiArICAgUmVkaXN0cmlidXRp b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQo+ ICsgICBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93 aW5nIGNvbmRpdGlvbnMNCj4gKyAgIGFyZSBtZXQ6DQo+ICsNCj4gKyAgICAgKiBSZWRpc3RyaWJ1 dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0KPiAr ICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg ZGlzY2xhaW1lci4NCj4gKyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KPiArICAgICAgIG5vdGljZSwgdGhpcyBs aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbg0KPiArICAg ICAgIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0 aCB0aGUNCj4gKyAgICAgICBkaXN0cmlidXRpb24uDQo+ICsgICAgICogTmVpdGhlciB0aGUgbmFt ZSBvZiBJbnRlbCBDb3Jwb3JhdGlvbiBub3IgdGhlIG5hbWVzIG9mIGl0cw0KPiArICAgICAgIGNv bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy aXZlZA0KPiArICAgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y IHdyaXR0ZW4gcGVybWlzc2lvbi4NCj4gKw0KPiArICAgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EDQo+IENPTlRSSUJVVE9SUw0KPiArICAgIkFT IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV VCBOT1QNCj4gKyAgIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB TlRBQklMSVRZIEFORCBGSVRORVNTDQo+IEZPUg0KPiArICAgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQ0KPiBDT1BZUklHSFQNCj4gKyAg IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU LA0KPiBJTkNJREVOVEFMLA0KPiArICAgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUDQo+IE5PVA0KPiArICAgTElNSVRFRCBUTywgUFJP Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRg0KPiBVU0Us DQo+ICsgICBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW RVIgQ0FVU0VEIEFORA0KPiBPTiBBTlkNCj4gKyAgIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQNCj4gKyAgIChJTkNMVURJ TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YNCj4g VEhFIFVTRQ0KPiArICAgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ T1NTSUJJTElUWSBPRiBTVUNIDQo+IERBTUFHRS4NCj4gKw0KPiArQkJERVYgbnVsbCBQb2xsIE1v ZGUgRHJpdmVyDQo+ICs9PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ICsNCj4gK1RoZSAo KipiYmRldl9udWxsKiopIGlzIGEgYmJkZXYgcG9sbCBtb2RlIGRyaXZlciB3aGljaCBwcm92aWRl cyBhIG1pbmltYWwNCj4gK2ltcGxlbWVudGF0aW9uIG9mIGEgc29mdHdhcmUgYmJkZXYgZGV2aWNl LiBBcyBhIG51bGwgZGV2aWNlIGl0IGRvZXMgbm90IG1vZGlmeQ0KPiArdGhlIGRhdGEgaW4gdGhl IG1idWYgb24gd2hpY2ggdGhlIGJiZGV2IG9wZXJhdGlvbiBpcyB0byBvcGVyYXRlIGFuZCBpdCBv bmx5DQo+ICt3b3JrcyBmb3Igb3BlcmF0aW9uIHR5cGUgYGBSVEVfQkJERVZfT1BfTk9ORWBgLg0K PiArDQo+ICtXaGVuIGEgYnVyc3Qgb2YgbWJ1ZnMgaXMgc3VibWl0dGVkIHRvIGEgKmJiZGV2IG51 bGwgUE1EKiBmb3IgcHJvY2Vzc2luZyB0aGVuDQo+ICtlYWNoIG1idWYgaW4gdGhlIGJ1cnN0IHdp bGwgYmUgZW5xdWV1ZWQgaW4gYW4gaW50ZXJuYWwgYnVmZmVyIHJpbmcgdG8gYmUNCj4gK2NvbGxl Y3RlZCBvbiBhIGRlcXVldWUgY2FsbC4NCj4gKw0KPiArDQo+ICtMaW1pdGF0aW9ucw0KPiArLS0t LS0tLS0tLS0NCj4gKw0KPiArKiBJbi1wbGFjZSBvcGVyYXRpb25zIGZvciBUdXJibyBlbmNvZGUg YW5kIGRlY29kZSBhcmUgbm90IHN1cHBvcnRlZA0KPiArDQo+ICtJbnN0YWxsYXRpb24NCj4gKy0t LS0tLS0tLS0tLQ0KPiArDQo+ICtUaGUgKmJiZGV2IG51bGwgUE1EKiBpcyBlbmFibGVkIGFuZCBi dWlsdCBieSBkZWZhdWx0IGluIGJvdGggdGhlIExpbnV4IGFuZA0KPiArRnJlZUJTRCBidWlsZHMu DQo+ICsNCj4gK0luaXRpYWxpemF0aW9uDQo+ICstLS0tLS0tLS0tLS0tLQ0KPiArDQo+ICtUbyB1 c2UgdGhlIFBNRCBpbiBhbiBhcHBsaWNhdGlvbiwgdXNlciBtdXN0Og0KPiArDQo+ICstIENhbGwg YGBydGVfdmRldl9pbml0KCJiYmRldl9udWxsIilgYCB3aXRoaW4gdGhlIGFwcGxpY2F0aW9uLg0K PiArDQo+ICstIFVzZSBgYC0tdmRldj0iYmJkZXZfbnVsbCJgYCBpbiB0aGUgRUFMIG9wdGlvbnMs IHdoaWNoIHdpbGwgY2FsbA0KPiBgYHJ0ZV92ZGV2X2luaXQoKWBgIGludGVybmFsbHkuDQo+ICsN Cj4gK1RoZSBmb2xsb3dpbmcgcGFyYW1ldGVycyAoYWxsIG9wdGlvbmFsKSBjYW4gYmUgcHJvdmlk ZWQgaW4gdGhlIHByZXZpb3VzIHR3bw0KPiBjYWxsczoNCj4gKw0KPiArKiBgYHNvY2tldF9pZGBg OiBTcGVjaWZ5IHRoZSBzb2NrZXQgd2hlcmUgdGhlIG1lbW9yeSBmb3IgdGhlIGRldmljZSBpcyBn b2luZyB0bw0KPiBiZSBhbGxvY2F0ZWQNCj4gKyAgKGJ5IGRlZmF1bHQsICpzb2NrZXRfaWQqIHdp bGwgYmUgdGhlIHNvY2tldCB3aGVyZSB0aGUgY29yZSB0aGF0IGlzIGNyZWF0aW5nIHRoZQ0KPiBQ TUQgaXMgcnVubmluZyBvbikuDQo+ICsNCj4gKyogYGBtYXhfbmJfcXVldWVzYGA6IFNwZWNpZnkg dGhlIG1heGltdW0gbnVtYmVyIG9mIHF1ZXVlcyBpbiB0aGUgZGV2aWNlDQo+IChkZWZhdWx0IGlz IGBgUlRFX01BWF9MQ09SRWBgKS4NCj4gKw0KPiArRXhhbXBsZToNCj4gK35+fn5+fn5+DQo+ICsN Cj4gKy4uIGNvZGUtYmxvY2s6OiBjb25zb2xlDQo+ICsNCj4gKyAgICAuL3Rlc3QtYmJkZXYucHkg LWU9Ii0tdmRldj1iYmRldl9udWxsLHNvY2tldF9pZD0wLG1heF9uYl9xdWV1ZXM9OCINCj4gZGlm ZiAtLWdpdCBhL2RvYy9ndWlkZXMvYmJkZXZzL3R1cmJvX3N3LnJzdCBiL2RvYy9ndWlkZXMvYmJk ZXZzL3R1cmJvX3N3LnJzdA0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAw Li5iMzRkOGE1DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZG9jL2d1aWRlcy9iYmRldnMvdHVy Ym9fc3cucnN0DQo+IEBAIC0wLDAgKzEsMTc1IEBADQo+ICsuLg0KPiArICAgQlNEIExJQ0VOU0UN Cj4gKw0KPiArICAgQ29weXJpZ2h0KGMpIDIwMTcgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdo dHMgcmVzZXJ2ZWQuDQo+ICsNCj4gKyAgIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KPiArICAgbW9kaWZpY2F0aW9uLCBh cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQo+ICsg ICBhcmUgbWV0Og0KPiArDQo+ICsgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCj4gKyAgICAgICBub3RpY2UsIHRoaXMg bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuDQo+ICsgICAg ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92 ZSBjb3B5cmlnaHQNCj4gKyAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4NCj4gKyAgICAgICB0aGUgZG9jdW1lbnRhdGlv biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlDQo+ICsgICAgICAgZGlz dHJpYnV0aW9uLg0KPiArICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgSW50ZWwgQ29ycG9yYXRp b24gbm9yIHRoZSBuYW1lcyBvZiBpdHMNCj4gKyAgICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVz ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQNCj4gKyAgICAgICBmcm9t IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u DQo+ICsNCj4gKyAgIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI T0xERVJTIEFORA0KPiBDT05UUklCVVRPUlMNCj4gKyAgICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UDQo+ICsgICBMSU1JVEVE IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT Uw0KPiBGT1INCj4gKyAgIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO TyBFVkVOVCBTSEFMTCBUSEUNCj4gQ09QWVJJR0hUDQo+ICsgICBPV05FUiBPUiBDT05UUklCVVRP UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwNCj4gSU5DSURFTlRBTCwNCj4g KyAgIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ TkcsIEJVVA0KPiBOT1QNCj4gKyAgIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YNCj4gVVNFLA0KPiArICAgREFUQSwgT1IgUFJP RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQNCj4gT04g QU5ZDQo+ICsgICBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ Q1QgTElBQklMSVRZLCBPUiBUT1JUDQo+ICsgICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GDQo+IFRIRSBVU0UNCj4gKyAgIE9GIFRI SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSA0K PiBEQU1BR0UuDQo+ICsNCj4gK1NXIFR1cmJvIFBvbGwgTW9kZSBEcml2ZXINCj4gKz09PT09PT09 PT09PT09PT09PT09PT09PT0NCj4gKw0KPiArVGhlIFNXIFR1cmJvIFBNRCAoKip0dXJib19zdyoq KSBwcm92aWRlcyBhIHBvbGwgbW9kZSBiYmRldiBkcml2ZXIgdGhhdA0KPiB1dGlsaXplcw0KPiAr SW50ZWwgb3B0aW1pemVkIGxpYnJhcmllcyBmb3IgTFRFIExheWVyIDEgd29ya2xvYWRzIGFjY2Vs ZXJhdGlvbi4gVGhpcyBQTUQNCj4gK3N1cHBvcnRzIHRoZSBmdW5jdGlvbnM6IFR1cmJvIEZFQywg UmF0ZSBNYXRjaGluZyBhbmQgQ1JDIGZ1bmN0aW9ucy4NCj4gKw0KPiArRmVhdHVyZXMNCj4gKy0t LS0tLS0tDQo+ICsNCj4gK1NXIFR1cmJvIFBNRCBoYXMgc3VwcG9ydCBmb3IgdGhlIGZvbGxvd2lu ZyBjYXBhYmlsaXRpZXM6DQo+ICsNCj4gK0ZvciB0aGUgZW5jb2RlIG9wZXJhdGlvbjoNCj4gKw0K PiArKiBgYFJURV9CQkRFVl9UVVJCT19DUkNfMjRBX0FUVEFDSGBgDQo+ICsqIGBgUlRFX0JCREVW X1RVUkJPX0NSQ18yNEJfQVRUQUNIYGANCj4gKyogYGBSVEVfQkJERVZfVFVSQk9fUkFURV9NQVRD SGBgDQo+ICsqIGBgUlRFX0JCREVWX1RVUkJPX1JWX0lOREVYX0JZUEFTU2BgDQo+ICsNCj4gK0Zv ciB0aGUgZGVjb2RlIG9wZXJhdGlvbjoNCj4gKw0KPiArKiBgYFJURV9CQkRFVl9UVVJCT19TVUJC TE9DS19ERUlOVEVSTEVBVkVgYA0KPiArKiBgYFJURV9CQkRFVl9UVVJCT19DUkNfVFlQRV8yNEJg YA0KPiArKiBgYFJURV9CQkRFVl9UVVJCT19QT1NfTExSXzFfQklUX0lOYGANCj4gKyogYGBSVEVf QkJERVZfVFVSQk9fTkVHX0xMUl8xX0JJVF9JTmBgDQo+ICsNCj4gKw0KPiArTGltaXRhdGlvbnMN Cj4gKy0tLS0tLS0tLS0tDQo+ICsNCj4gKyogSW4tcGxhY2Ugb3BlcmF0aW9ucyBmb3IgVHVyYm8g ZW5jb2RlIGFuZCBkZWNvZGUgYXJlIG5vdCBzdXBwb3J0ZWQNCj4gKw0KPiArSW5zdGFsbGF0aW9u DQo+ICstLS0tLS0tLS0tLS0NCj4gKw0KPiArRmxleFJBTiBTREsgRG93bmxvYWQNCj4gK35+fn5+ fn5+fn5+fn5+fn5+fn5+DQo+ICsNCj4gK1RvIGJ1aWxkIERQREsgd2l0aCB0aGUgKnR1cmJvX3N3 KiBQTUQgdGhlIHVzZXIgaXMgcmVxdWlyZWQgdG8gZG93bmxvYWQNCj4gK3RoZSBleHBvcnQgY29u dHJvbGxlZCBgYEZsZXhSQU4gU0RLYGAgTGlicmFyaWVzLiBBbiBhY2NvdW50IGF0IEludGVsIFJl c291cmNlDQo+ICtEZXNpZ24gQ2VudGVyIG5lZWRzIHRvIGJlIHJlZ2lzdGVyZWQgZnJvbQ0KPiAr YDxodHRwczovL3d3dy5pbnRlbC5jb20vY29udGVudC93d3cvdXMvZW4vZGVzaWduL3Jlc291cmNl LWRlc2lnbi0NCj4gY2VudGVyLmh0bWw+YF8uDQo+ICsNCj4gK09uY2UgcmVnaXN0ZXJlZCwgdGhl IHVzZXIgbmVlZHMgdG8gbG9nIGluLCBhbmQgbG9vayBmb3INCj4gKypJbnRlbCBTV0FfU1dfRmxl eFJBTl9SZWxlYXNlX1BhY2thZ2UgUjFfM18wKiBhbmQgY2xpY2sgZm9yIGRvd25sb2FkLg0KPiBP ciB1c2UNCj4gK3RoaXMgZGlyZWN0IGRvd25sb2FkIGxpbmsNCj4gYDxodHRwczovL2NkcmQuaW50 ZWwuY29tL3YxL2RsL2dldENvbnRlbnQvNTc1MzY3PmBfLg0KPiArDQo+ICtBZnRlciBkb3dubG9h ZCBpcyBjb21wbGV0ZSwgdGhlIHVzZXIgbmVlZHMgdG8gdW5wYWNrIGFuZCBjb21waWxlIG9uIHRo ZWlyDQo+ICtzeXN0ZW0gYmVmb3JlIGJ1aWxkaW5nIERQREsuDQo+ICsNCj4gK0ZsZXhSQU4gU0RL IEluc3RhbGxhdGlvbg0KPiArfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+ICsNCj4gK1RoZSBm b2xsb3dpbmcgYXJlIHByZS1yZXF1aXNpdGVzIGZvciBidWlsZGluZyBGbGV4UkFOIFNESyBMaWJy YXJpZXM6DQo+ICsgKGEpIEFuIEFWWDIgc3VwcG9ydGluZyBtYWNoaW5lDQo+ICsgKGIpIFdpbmRy aXZlciBUUyAyIG9yIENlbnRPUyA3IG9wZXJhdGluZyBzeXN0ZW1zDQo+ICsgKGMpIEludGVsIElD QyBjb21waWxlciBpbnN0YWxsZWQNCj4gKw0KPiArVGhlIGZvbGxvd2luZyBpbnN0cnVjdGlvbnMg c2hvdWxkIGJlIGZvbGxvd2VkIGluIHRoaXMgZXhhY3Qgb3JkZXI6DQo+ICsNCj4gKyMuIFNldCB0 aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzOg0KPiArDQo+ICsgICAgLi4gY29kZS1ibG9jazo6IGNv bnNvbGUNCj4gKw0KPiArICAgICAgICBzb3VyY2UgPHBhdGgtdG8taWNjLWNvbXBpbGVyLWluc3Rh bGwtZm9sZGVyPi9saW51eC9iaW4vY29tcGlsZXJ2YXJzLnNoDQo+IGludGVsNjQgLXBsYXRmb3Jt IGxpbnV4DQo+ICsNCj4gKw0KPiArIy4gRXh0cmFjdCB0aGUgYGBGbGV4UkFOLTEuMy4wLnRhci5n ei56aXBgYCBwYWNrYWdlLCB0aGVuIHJ1biB0aGUgU0RLIGV4dHJhY3Rvcg0KPiArICAgc2NyaXB0 IGFuZCBhY2NlcHQgdGhlIGxpY2Vuc2U6DQo+ICsNCj4gKyAgICAuLiBjb2RlLWJsb2NrOjogY29u c29sZQ0KPiArDQo+ICsgICAgICAgIGNkIDxwYXRoLXRvLXdvcmtzcGFjZT4vRmxleFJBTi0xLjMu MC8NCj4gKyAgICAgICAgLi9TREstUjEuMy4wLnNoDQo+ICsNCj4gKyMuIFRvIGFsbG93IGBgRmxl eFJBTiBTREsgUjEuMy4wYGAgdG8gd29yayB3aXRoIGJiZGV2IHByb3Blcmx5LCB0aGUgZm9sbG93 aW5nDQo+ICsgICBob3RmaXggaXMgcmVxdWlyZWQuIENoYW5nZSB0aGUgcmV0dXJuIG9mIGZ1bmN0 aW9uDQo+IGBgcmF0ZV9tYXRjaGluZ190dXJib19sdGVfYXZ4MigpYGANCj4gKyAgIGxvY2F0ZWQg aW4gZmlsZQ0KPiArICAgYGA8cGF0aC10by13b3Jrc3BhY2U+L0ZsZXhSQU4tMS4zLjAvU0RLLQ0K PiBSMS4zLjAvc2RrL3NvdXJjZS9waHkvbGliX3JhdGVfbWF0Y2hpbmcvcGh5X3JhdGVfbWF0Y2hf YXZ4Mi5jcHBgYA0KPiArICAgdG8gcmV0dXJuIDAgaW5zdGVhZCBvZiAxLg0KPiArDQo+ICsgICAg Li4gY29kZS1ibG9jazo6IGMNCj4gKw0KPiArICAgICAgICAtICByZXR1cm4gMTsNCj4gKyAgICAg ICAgKyAgcmV0dXJuIDA7DQo+ICsNCj4gKyMuIEdlbmVyYXRlIG1ha2VmaWxlcyBiYXNlZCBvbiBz eXN0ZW0gY29uZmlndXJhdGlvbjoNCj4gKw0KPiArICAgIC4uIGNvZGUtYmxvY2s6OiBjb25zb2xl DQo+ICsNCj4gKyAgICAgICAgY2QgPHBhdGgtdG8td29ya3NwYWNlPi9GbGV4UkFOLTEuMy4wL1NE Sy1SMS4zLjAvc2RrLw0KPiArICAgICAgICAuL2NyZWF0ZS1tYWtlZmlsZXMtbGludXguc2gNCj4g Kw0KPiArIy4gQSBidWlsZCBmb2xkZXIgaXMgZ2VuZXJhdGVkIGluIHRoaXMgZm9ybSBgYGJ1aWxk LTxJU0E+LTxDQz5gYCwgZW50ZXIgdGhhdA0KPiArICAgZm9sZGVyIGFuZCBpbnN0YWxsOg0KPiAr DQo+ICsgICAgLi4gY29kZS1ibG9jazo6IGNvbnNvbGUNCj4gKw0KPiArICAgICAgICBjZCBidWls ZC1hdngyLWljYy8NCj4gKyAgICAgICAgbWFrZSBpbnN0YWxsDQo+ICsNCj4gKw0KPiArSW5pdGlh bGl6YXRpb24NCj4gKy0tLS0tLS0tLS0tLS0tDQo+ICsNCj4gK0luIG9yZGVyIHRvIGVuYWJsZSB0 aGlzIHZpcnR1YWwgYmJkZXYgUE1ELCB0aGUgdXNlciBtdXN0Og0KPiArDQo+ICsqIEJ1aWxkIHRo ZSBgYEZMRVhSQU4gU0RLYGAgbGlicmFyaWVzIChleHBsYWluZWQgaW4gSW5zdGFsbGF0aW9uIHNl Y3Rpb24pLg0KPiArDQo+ICsqIEV4cG9ydCB0aGUgZW52aXJvbm1lbnRhbCB2YXJpYWJsZXMgYGBG TEVYUkFOX1NES2BgIHRvIHRoZSBwYXRoIHdoZXJlIHRoZQ0KPiArICBGbGV4UkFOIFNESyBsaWJy YXJpZXMgd2VyZSBpbnN0YWxsZWQuIEFuZCBgYERJUl9XSVJFTEVTU19TREtgYCB0byB0aGUgcGF0 aA0KPiArICB3aGVyZSB0aGUgbGlicmFyYXJpZXMgd2VyZSBleHRyYWN0ZWQuDQoNClR5cG8gYWJv dmUgbGlicmFyYXJpZXMvICBsaWJyYXJpZXMNCg0KIA0KPiArSW5wdXQgYW5kIG91dHB1dCBkYXRh IGJ1ZmZlcnMgYXJlIGlkZW50aWZpZWQgYnkgYGBydGVfYmJkZXZfb3BfZGF0YWBgDQo+IHN0cnVj dHVyZS4NCj4gK1RoaXMgc3RydWN1dHJlIGhhcyB0aHJlZSBlbGVtZW50czoNCg0KVHlwbyBhYm92 ZSBzdHJ1Y3V0cmUgLyAgc3RydWN0dXJlDQoNCg0KDQo+ICtMaW1pdGF0aW9ucw0KPiArLS0tLS0t LS0tLS0NCj4gKw0KPiArKiBBbHRob3VnaCwgdGhlIGJhc2ViYW5kIHNhbXBsZSBhcHBsaWNhdGlv biBpcyBkZXNpZ25lZCB0byB3b3JrIGluIGZ1bGwtZHVwbGV4DQo+ICsgIG1vZGUsIGJ1dCBkdWUg dG8gIHRoZXBsYWluIGZvcm1hdCBvZiB0aGUgcmVjZWl2ZWQgcGFja2V0cyBmcm9tIHBrdC1nZW4s IHRoZQ0KPiArICBUdXJibyBkZWNvZGUgKHVwbGluaykgaXMgbm90IG9wZXJhYmxlLiBPbmx5IHRo ZSBUdXJibyBlbmNvZGUgZGlyZWN0aW9uDQo+ICsgIChkb3dubGluaykgaXMgY3VycmVudGx5IHN1 cHBvcnRlZCBpbiB0aGUgYmJkZXYgc2FtcGxlIGFwcGxpY2F0aW9uLg0KDQpTbWFsbCBzcGFjZSBy ZXF1aXJlZCAgdGhlcGxhaW4vICB0aGUgcGxhaW4NCg0KDQoNCj4gK3doZXJlLCBOSUMwUENJQURE UiBpcyB0aGUgUENJIGFkZHJlc3NlIG9mIHRoZSBSeCBwb3J0DQoNClR5cG8gIGFkZHJlc3NlLyAg YWRkcmVzcyANCg0KDQo+ICtUZXN0IFZlY3RvciBmaWxlcw0KPiArPT09PT09PT09PT09PT09PT0N Cj4gKw0KPiArVGVzdCBWZWN0b3IgZmlsZXMgY29udGFpbiB0aGUgZGF0YSB3aGljaCBpcyB1c2Vk IHRvIHNldCB0dXJibyBkZWNvZGVyL2VuY29kZXINCj4gK3BhcmFtZXRlcnMgYW5kIGJ1ZmZlcnMg Zm9yIHZhbGlkYXRpb24gcHVycG9zZS4gTmV3IHRlc3QgdmVjdG9yIGZpbGVzIHNob3VsZCBiZQ0K PiArc3RvcmVkIGluIGBgYXBwL3Rlc3QtYmJkZXYvdGVzdF92ZWN0b3JzL2BgIGRpcmVjdG9yeS4g RGV0YWlsZWQgZGVzY3JpcHRpb24gb2YNCj4gK3RoZSBzeXN0YXggb2YgdGhlIHRlc3QgdmVjdG9y IGZpbGVzIGlzIGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbi4NCg0KVHlwbyBzeXN0YXgvIHN5bnRh eA0KDQoNCk1hcmtvIEtvdmFjZXZpYw0K