From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 8DAFC58EC for ; Fri, 2 Nov 2018 12:09:24 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 02 Nov 2018 04:09:22 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,455,1534834800"; d="scan'208";a="100925909" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga002.fm.intel.com with ESMTP; 02 Nov 2018 04:09:23 -0700 Received: from fmsmsx125.amr.corp.intel.com (10.18.125.40) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 2 Nov 2018 04:09:22 -0700 Received: from hasmsx107.ger.corp.intel.com (10.184.198.27) by FMSMSX125.amr.corp.intel.com (10.18.125.40) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 2 Nov 2018 04:09:21 -0700 Received: from hasmsx111.ger.corp.intel.com ([169.254.5.134]) by hasmsx107.ger.corp.intel.com ([169.254.2.159]) with mapi id 14.03.0415.000; Fri, 2 Nov 2018 13:09:15 +0200 From: "Cel, TomaszX" To: "Pattan, Reshma" , Hemant Agrawal , Shreyansh Jain , "Ashish Gupta" , "Trahe, Fiona" , "De Lara Guarch, Pablo" , Akhil Goyal , "Doherty, Declan" , "Zhang, Roy Fan" , Jerin Jacob , Chas Williams , "Rahul Lakkireddy" , John Daley , Hyong Youb Kim , Gaetan Rivet , "Zhang, Qi Z" , "Wang, Xiao W" , "Xing, Beilei" , "Lu, Wenzhuo" , "Ananyev, Konstantin" , Rasesh Mody , Harish Patil , "Shahed Shaikh" , Andrew Rybchenko , "Singh, Jasvinder" , "Dumitrescu, Cristian" , "Wiles, Keith" , Maxime Coquelin , "Bie, Tiwei" , "Wang, Zhihong" , "Nipun Gupta" , "Xu, Rosen" , "Zhang, Tianfei" , "Burakov, Anatoly" , Thomas Monjalon , "Rao, Nikhil" , Olivier Matz CC: "dev@dpdk.org" , "Yigit, Ferruh" Thread-Topic: fix static variables Thread-Index: AQHUcpsZRflzi9NTdEamMnLn6Qz+YKU8U0xw Date: Fri, 2 Nov 2018 11:09:14 +0000 Message-ID: References: <20181004034047.26824-1-ferruh.yigit@intel.com> In-Reply-To: <20181004034047.26824-1-ferruh.yigit@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiOWYzZWRlOTEtMzJkYS00YTEwLWI3YjAtYjI4NDU5NmRlNTViIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoibmhKdDBNTFlvUFhmcnNMdVdWbnFEdHprbTdsXC9aVmlGdVBxbjFcL3I4S2ZIZVR4WVphR2xWSFl3b2UxU1wvdXFoOSJ9 dlp-product: dlpe-windows dlp-version: 11.0.400.15 dlp-reaction: no-action x-originating-ip: [10.103.104.22] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] fix static variables 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, 02 Nov 2018 11:09:25 -0000 UGxlYXNlIGlnbm9yZSB0aGUgcHJldmlvdXMgbWVzc2FnZS4NCkl0IHdhcyBzZW50IGJ5IG1pc3Rh a2UhDQpTb3JyeSBmb3IgaW5jb252ZW5pZW5jZS4NCg0KQmVzdCByZWdhcmRzLA0KVG9tYXN6IENl bA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IENlbCwgVG9tYXN6WA0K PiBTZW50OiBGcmlkYXksIE5vdmVtYmVyIDIsIDIwMTggMTE6NTkgQU0NCj4gVG86IENlbCwgVG9t YXN6WCA8dG9tYXN6eC5jZWxAaW50ZWwuY29tPjsgUGF0dGFuLCBSZXNobWENCj4gPHJlc2htYS5w YXR0YW5AaW50ZWwuY29tPjsgSGVtYW50IEFncmF3YWwNCj4gPGhlbWFudC5hZ3Jhd2FsQG54cC5j b20+OyBTaHJleWFuc2ggSmFpbiA8c2hyZXlhbnNoLmphaW5AbnhwLmNvbT47DQo+IEFzaGlzaCBH dXB0YSA8YXNoaXNoLmd1cHRhQGNhdml1bS5jb20+OyBUcmFoZSwgRmlvbmENCj4gPGZpb25hLnRy YWhlQGludGVsLmNvbT47IERlIExhcmEgR3VhcmNoLCBQYWJsbw0KPiA8cGFibG8uZGUubGFyYS5n dWFyY2hAaW50ZWwuY29tPjsgQWtoaWwgR295YWwgPGFraGlsLmdveWFsQG54cC5jb20+Ow0KPiBE b2hlcnR5LCBEZWNsYW4gPGRlY2xhbi5kb2hlcnR5QGludGVsLmNvbT47IFpoYW5nLCBSb3kgRmFu DQo+IDxyb3kuZmFuLnpoYW5nQGludGVsLmNvbT47IEplcmluIEphY29iDQo+IDxqZXJpbi5qYWNv YkBjYXZpdW1uZXR3b3Jrcy5jb20+OyBDaGFzIFdpbGxpYW1zIDxjaGFzM0BhdHQuY29tPjsgUmFo dWwNCj4gTGFra2lyZWRkeSA8cmFodWwubGFra2lyZWRkeUBjaGVsc2lvLmNvbT47IEpvaG4gRGFs ZXkNCj4gPGpvaG5kYWxlQGNpc2NvLmNvbT47IEh5b25nIFlvdWIgS2ltIDxoeW9ua2ltQGNpc2Nv LmNvbT47IEdhZXRhbg0KPiBSaXZldCA8Z2FldGFuLnJpdmV0QDZ3aW5kLmNvbT47IFpoYW5nLCBR aSBaIDxxaS56LnpoYW5nQGludGVsLmNvbT47DQo+IFdhbmcsIFhpYW8gVyA8eGlhby53LndhbmdA aW50ZWwuY29tPjsgWGluZywgQmVpbGVpDQo+IDxiZWlsZWkueGluZ0BpbnRlbC5jb20+OyBMdSwg V2Vuemh1byA8d2Vuemh1by5sdUBpbnRlbC5jb20+OyBBbmFueWV2LA0KPiBLb25zdGFudGluIDxr b25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29tPjsgUmFzZXNoIE1vZHkNCj4gPHJhc2VzaC5tb2R5 QGNhdml1bS5jb20+OyBIYXJpc2ggUGF0aWwgPGhhcmlzaC5wYXRpbEBjYXZpdW0uY29tPjsNCj4g U2hhaGVkIFNoYWlraCA8c2hhaGVkLnNoYWlraEBjYXZpdW0uY29tPjsgQW5kcmV3IFJ5YmNoZW5r bw0KPiA8YXJ5YmNoZW5rb0Bzb2xhcmZsYXJlLmNvbT47IFNpbmdoLCBKYXN2aW5kZXINCj4gPGph c3ZpbmRlci5zaW5naEBpbnRlbC5jb20+OyBEdW1pdHJlc2N1LCBDcmlzdGlhbg0KPiA8Y3Jpc3Rp YW4uZHVtaXRyZXNjdUBpbnRlbC5jb20+OyBXaWxlcywgS2VpdGggPGtlaXRoLndpbGVzQGludGVs LmNvbT47DQo+IE1heGltZSBDb3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+OyBC aWUsIFRpd2VpDQo+IDx0aXdlaS5iaWVAaW50ZWwuY29tPjsgV2FuZywgWmhpaG9uZyA8emhpaG9u Zy53YW5nQGludGVsLmNvbT47IE5pcHVuDQo+IEd1cHRhIDxuaXB1bi5ndXB0YUBueHAuY29tPjsg WHUsIFJvc2VuIDxyb3Nlbi54dUBpbnRlbC5jb20+OyBaaGFuZywNCj4gVGlhbmZlaSA8dGlhbmZl aS56aGFuZ0BpbnRlbC5jb20+OyBCdXJha292LCBBbmF0b2x5DQo+IDxhbmF0b2x5LmJ1cmFrb3ZA aW50ZWwuY29tPjsgVGhvbWFzIE1vbmphbG9uIDx0aG9tYXNAbW9uamFsb24ubmV0PjsNCj4gUmFv LCBOaWtoaWwgPG5pa2hpbC5yYW9AaW50ZWwuY29tPjsgT2xpdmllciBNYXR6IDxvbGl2aWVyLm1h dHpANndpbmQuY29tPg0KPiBDYzogZGV2QGRwZGsub3JnOyBZaWdpdCwgRmVycnVoIDxmZXJydWgu eWlnaXRAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBmaXggc3RhdGljIHZhcmlhYmxlcw0KPiANCj4g RnJvbTogRmVycnVoIFlpZ2l0IDxmZXJydWgueWlnaXRAaW50ZWwuY29tPg0KPiANCj4gTWFrZSB2 YXJpYWJsZXMgc3RhdGljIGFzIG11Y2ggYXMgcG9zc2libGUuDQo+IA0KPiBGb3IgdGhlIG9uZXMg Y2FuJ3QgYmUgZG9uZSBzdGF0aWMsIHByZWZpeCB0aGUgdmFyaWFibGUgbmFtZSB3aXRoDQo+IGNv bXBvbmVudCBuYW1lLg0KPiANCj4gQWxzbyBzb21lIGNsZWFudXAgYW5kIGZpeCBkb25lIHJlbGF0 ZWQgc3RhdGljIHVzYWdlIHdoaWxlIGFyb3VuZC4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEZlcnJ1 aCBZaWdpdCA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT4NCj4gUmV2aWV3ZWQtYnk6IE5pa2hpbCBS YW8gPG5pa2hpbC5yYW9AaW50ZWwuY29tPg0KPiAtLS0NCj4gIGFwcC9wZHVtcC9tYWluLmMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA2ICstLQ0KPiAgZHJpdmVycy9idXMvZHBhYS9i YXNlL2ZtYW4vbmV0Y2ZnX2xheWVyLmMgICAgIHwgIDIgKy0NCj4gIGRyaXZlcnMvYnVzL2RwYWEv ZHBhYV9idXMuYyAgICAgICAgICAgICAgICAgICB8ICA0ICstDQo+ICBkcml2ZXJzL2J1cy9kcGFh L2luY2x1ZGUvZnNsX2ZtYW5fY3JjNjQuaCAgICAgfCAgOCArKy0tDQo+ICBkcml2ZXJzL2J1cy92 ZGV2L3ZkZXYuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQ0KPiAgZHJpdmVycy9jb21w cmVzcy9vY3Rlb250eC9pbmNsdWRlL3ppcF9yZWdzLmggIHwgIDQgKy0NCj4gIGRyaXZlcnMvY29t cHJlc3Mvb2N0ZW9udHgvb3R4X3ppcC5oICAgICAgICAgICB8ICA2ICstLQ0KPiAgZHJpdmVycy9j b21wcmVzcy9vY3Rlb250eC9vdHhfemlwX3BtZC5jICAgICAgIHwgIDIgKy0NCj4gIGRyaXZlcnMv Y3J5cHRvL2RwYWEyX3NlYy9kcGFhMl9zZWNfZHBzZWNpLmMgICB8ICAyICstDQo+ICBkcml2ZXJz L2NyeXB0by9kcGFhX3NlYy9kcGFhX3NlYy5jICAgICAgICAgICAgfCAgMiArLQ0KPiAgZHJpdmVy cy9jcnlwdG8vbnVsbC9udWxsX2NyeXB0b19wbWRfb3BzLmMgICAgIHwgIDIgKy0NCj4gIC4uLi9z Y2hlZHVsZXIvcnRlX2NyeXB0b2Rldl9zY2hlZHVsZXIuYyAgICAgICB8IDI2ICsrKysrLS0tLS0N Cj4gIC4uLi9zY2hlZHVsZXIvcnRlX2NyeXB0b2Rldl9zY2hlZHVsZXIuaCAgICAgICB8ICA4ICsr LS0NCj4gIGRyaXZlcnMvY3J5cHRvL3NjaGVkdWxlci9zY2hlZHVsZXJfZmFpbG92ZXIuYyB8ICA2 ICstLQ0KPiAgLi4uL2NyeXB0by9zY2hlZHVsZXIvc2NoZWR1bGVyX211bHRpY29yZS5jICAgIHwg IDYgKy0tDQo+ICAuLi4vc2NoZWR1bGVyL3NjaGVkdWxlcl9wa3Rfc2l6ZV9kaXN0ci5jICAgICAg fCAgNiArLS0NCj4gIGRyaXZlcnMvY3J5cHRvL3NjaGVkdWxlci9zY2hlZHVsZXJfcG1kLmMgICAg ICB8ICA4ICsrLS0NCj4gIGRyaXZlcnMvY3J5cHRvL3NjaGVkdWxlci9zY2hlZHVsZXJfcG1kX29w cy5jICB8ICAyICstDQo+ICAuLi4vY3J5cHRvL3NjaGVkdWxlci9zY2hlZHVsZXJfcG1kX3ByaXZh dGUuaCAgfCAgMiArLQ0KPiAgLi4uL2NyeXB0by9zY2hlZHVsZXIvc2NoZWR1bGVyX3JvdW5kcm9i aW4uYyAgIHwgIDYgKy0tDQo+ICBkcml2ZXJzL2V2ZW50L29jdGVvbnR4L3Nzb3ZmX2V2ZGV2LmMg ICAgICAgICAgfCAgMyArLQ0KPiAgZHJpdmVycy9tZW1wb29sL2RwYWEvZHBhYV9tZW1wb29sLmMg ICAgICAgICAgIHwgIDIgKy0NCj4gIGRyaXZlcnMvbWVtcG9vbC9kcGFhMi9kcGFhMl9od19tZW1w b29sLmMgICAgICB8ICAyICstDQo+ICBkcml2ZXJzL25ldC9ib25kaW5nL3J0ZV9ldGhfYm9uZF84 MDIzYWQuYyAgICAgfCA0OCArKysrKysrKystLS0tLS0tLS0tDQo+ICAuLi4vbmV0L2JvbmRpbmcv cnRlX2V0aF9ib25kXzgwMjNhZF9wcml2YXRlLmggfCAgMiArLQ0KPiAgZHJpdmVycy9uZXQvYm9u ZGluZy9ydGVfZXRoX2JvbmRfcG1kLmMgICAgICAgIHwgMTIgKystLS0NCj4gIGRyaXZlcnMvbmV0 L2N4Z2JlL2N4Z2JlX2Zsb3cuYyAgICAgICAgICAgICAgICB8ICAyICstDQo+ICBkcml2ZXJzL25l dC9lbmljL2VuaWNfZXRoZGV2LmMgICAgICAgICAgICAgICAgfCAgMSAtDQo+ICBkcml2ZXJzL25l dC9mYWlsc2FmZS9mYWlsc2FmZS5jICAgICAgICAgICAgICAgfCAgNCArLQ0KPiAgZHJpdmVycy9u ZXQvZmFpbHNhZmUvZmFpbHNhZmVfYXJncy5jICAgICAgICAgIHwgMTAgKystLQ0KPiAgZHJpdmVy cy9uZXQvZmFpbHNhZmUvZmFpbHNhZmVfcHJpdmF0ZS5oICAgICAgIHwgIDQgKy0NCj4gIGRyaXZl cnMvbmV0L2ZtMTBrL2ZtMTBrX2V0aGRldi5jICAgICAgICAgICAgICB8ICA2ICstLQ0KPiAgZHJp dmVycy9uZXQvaTQwZS9iYXNlL2k0MGVfZGlhZy5jICAgICAgICAgICAgIHwgIDIgKy0NCj4gIGRy aXZlcnMvbmV0L2k0MGUvYmFzZS9pNDBlX2RpYWcuaCAgICAgICAgICAgICB8ICAyIC0NCj4gIGRy aXZlcnMvbmV0L2k0MGUvaTQwZV9mbG93LmMgICAgICAgICAgICAgICAgICB8ICA0ICstDQo+ICBk cml2ZXJzL25ldC9pNDBlL2k0MGVfdmZfcmVwcmVzZW50b3IuYyAgICAgICAgfCAgMiArLQ0KPiAg ZHJpdmVycy9uZXQvaWZjL2lmY3ZmX3ZkcGEuYyAgICAgICAgICAgICAgICAgIHwgIDIgKy0NCj4g IGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3ZmX3JlcHJlc2VudG9yLmMgICAgICB8ICAyICstDQo+ ICBkcml2ZXJzL25ldC9xZWRlL2Jhc2UvYmNtX29zYWwuYyAgICAgICAgICAgICAgfCAgMiArLQ0K PiAgZHJpdmVycy9uZXQvcWVkZS9iYXNlL2Vjb3JlX3NyaW92LmMgICAgICAgICAgIHwgMTAgKyst LQ0KPiAgZHJpdmVycy9uZXQvcWVkZS9iYXNlL2Vjb3JlX3ZmLmMgICAgICAgICAgICAgIHwgIDYg Ky0tDQo+ICBkcml2ZXJzL25ldC9xZWRlL2Jhc2UvZWNvcmVfdmZwZl9pZi5oICAgICAgICAgfCAg MiArLQ0KPiAgZHJpdmVycy9uZXQvcWVkZS9xZWRlX2V0aGRldi5jICAgICAgICAgICAgICAgIHwg IDQgKy0NCj4gIGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9ldGhkZXYuaCAgICAgICAgICAgICAgICB8 ICAyICstDQo+ICBkcml2ZXJzL25ldC9xZWRlL3FlZGVfbWFpbi5jICAgICAgICAgICAgICAgICAg fCAxMyArKy0tLQ0KPiAgZHJpdmVycy9uZXQvc2ZjL3NmY19yeC5jICAgICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0NCj4gIGRyaXZlcnMvbmV0L3NvZnRuaWMvcnRlX2V0aF9zb2Z0bmljLmMgICAg ICAgICB8ICAyICstDQo+ICBkcml2ZXJzL25ldC90YXAvdGFwX2JwZl9pbnNucy5oICAgICAgICAg ICAgICAgfCAgNCArLQ0KPiAgZHJpdmVycy9uZXQvdGFwL3RhcF9mbG93LmMgICAgICAgICAgICAg ICAgICAgIHwgIDIgKy0NCj4gIGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdC5o ICAgICAgICB8ICA0ICstDQo+ICBkcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3Rf a2VybmVsLmMgfCAgMiArLQ0KPiAgZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0 X3VzZXIuYyAgIHwgIDIgKy0NCj4gIC4uLi9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3ZpcnRpb191 c2VyX2Rldi5jICB8ICA2ICstLQ0KPiAgZHJpdmVycy9yYXcvZHBhYTJfcWRtYS9kcGFhMl9xZG1h LmMgICAgICAgICAgIHwgIDQgKy0NCj4gIC4uLi9yYXcvaWZwZ2FfcmF3ZGV2L2Jhc2UvaWZwZ2Ff ZW51bWVyYXRlLmMgICB8ICA4ICsrLS0NCj4gIC4uLi9yYXcvaWZwZ2FfcmF3ZGV2L2Jhc2UvaWZw Z2FfZmVhdHVyZV9kZXYuaCB8ICA4ICsrLS0NCj4gIGRyaXZlcnMvcmF3L2lmcGdhX3Jhd2Rldi9i YXNlL2lmcGdhX3BvcnQuYyAgICB8ICA2ICstLQ0KPiAgLi4uL3Jhdy9pZnBnYV9yYXdkZXYvYmFz ZS9pZnBnYV9wb3J0X2Vycm9yLmMgIHwgIDIgKy0NCj4gIGRyaXZlcnMvcmF3L3NrZWxldG9uX3Jh d2Rldi9za2VsZXRvbl9yYXdkZXYuYyB8ICAyICstDQo+ICBsaWIvbGlicnRlX2NvbXByZXNzZGV2 L3J0ZV9jb21wcmVzc2Rldi5jICAgICAgfCAzMiArKysrKystLS0tLS0tDQo+ICBsaWIvbGlicnRl X2NvbXByZXNzZGV2L3J0ZV9jb21wcmVzc2Rldl9wbWQuaCAgfCAgNSAtLQ0KPiAgbGliL2xpYnJ0 ZV9jcnlwdG9kZXYvcnRlX2NyeXB0b2Rldi5jICAgICAgICAgIHwgMzQgKysrKysrKy0tLS0tLQ0K PiAgbGliL2xpYnJ0ZV9jcnlwdG9kZXYvcnRlX2NyeXB0b2Rldl9wbWQuaCAgICAgIHwgIDMgLS0N Cj4gIGxpYi9saWJydGVfZWFsL2NvbW1vbi9lYWxfY29tbW9uX2J1cy5jICAgICAgICB8ICAyICst DQo+ICBsaWIvbGlicnRlX2VhbC9jb21tb24vZWFsX2NvbW1vbl9jbGFzcy5jICAgICAgfCAgMiAr LQ0KPiAgbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2VhbF9jb21tb25fZGV2YXJncy5jICAgIHwgIDIg Ky0NCj4gIGxpYi9saWJydGVfZWFsL2xpbnV4YXBwL2VhbC9lYWxfbWVtYWxsb2MuYyAgICB8ICAy ICstDQo+ICBsaWIvbGlicnRlX2V0aGRldi9ydGVfY2xhc3NfZXRoLmMgICAgICAgICAgICAgfCAg MiArLQ0KPiAgbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2V0aGRldi5jICAgICAgICAgICAgICAgIHwg IDIgKy0NCj4gIC4uLi9ydGVfZXZlbnRfZXRoX3J4X2FkYXB0ZXIuYyAgICAgICAgICAgICAgICB8 ICAxIC0NCj4gIGxpYi9saWJydGVfZXZlbnRkZXYvcnRlX2V2ZW50ZGV2LmMgICAgICAgICAgICB8 IDEwICsrLS0NCj4gIGxpYi9saWJydGVfZXZlbnRkZXYvcnRlX2V2ZW50ZGV2X3BtZC5oICAgICAg ICB8ICA0ICstDQo+ICBsaWIvbGlicnRlX25ldC9uZXRfY3JjX3NzZS5oICAgICAgICAgICAgICAg ICAgfCAgNCArLQ0KPiAgbGliL2xpYnJ0ZV9yYXdkZXYvcnRlX3Jhd2Rldi5jICAgICAgICAgICAg ICAgIHwgMTAgKystLQ0KPiAgNzQgZmlsZXMgY2hhbmdlZCwgMjAzIGluc2VydGlvbnMoKyksIDIy NSBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9hcHAvcGR1bXAvbWFpbi5jIGIvYXBw L3BkdW1wL21haW4uYw0KPiBpbmRleCBhYzIyODcxMjQuLmQ5NjU1NmVjZiAxMDA2NDQNCj4gLS0t IGEvYXBwL3BkdW1wL21haW4uYw0KPiArKysgYi9hcHAvcGR1bXAvbWFpbi5jDQo+IEBAIC04MSw3 ICs4MSw3IEBAIGVudW0gcGR1bXBfYnkgew0KPiAgCURFVklDRV9JRCA9IDINCj4gIH07DQo+IA0K PiAtY29uc3QgY2hhciAqdmFsaWRfcGR1bXBfYXJndW1lbnRzW10gPSB7DQo+ICtzdGF0aWMgY29u c3QgY2hhciAqIGNvbnN0IHZhbGlkX3BkdW1wX2FyZ3VtZW50c1tdID0gew0KPiAgCVBEVU1QX1BP UlRfQVJHLA0KPiAgCVBEVU1QX1BDSV9BUkcsDQo+ICAJUERVTVBfUVVFVUVfQVJHLA0KPiBAQCAt MTM2LDkgKzEzNiw5IEBAIHN0cnVjdCBwYXJzZV92YWwgew0KPiAgCXVpbnQ2NF90IHZhbDsNCj4g IH07DQo+IA0KPiAtaW50IG51bV90dXBsZXM7DQo+ICtzdGF0aWMgaW50IG51bV90dXBsZXM7DQo+ ICBzdGF0aWMgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmZfZGVmYXVsdDsNCj4gLXZvbGF0 aWxlIHVpbnQ4X3QgcXVpdF9zaWduYWw7DQo+ICtzdGF0aWMgdm9sYXRpbGUgdWludDhfdCBxdWl0 X3NpZ25hbDsNCj4gDQo+ICAvKio8IGRpc3BsYXkgdXNhZ2UgKi8NCj4gIHN0YXRpYyB2b2lkDQo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2J1cy9kcGFhL2Jhc2UvZm1hbi9uZXRjZmdfbGF5ZXIuYw0K PiBiL2RyaXZlcnMvYnVzL2RwYWEvYmFzZS9mbWFuL25ldGNmZ19sYXllci5jDQo+IGluZGV4IDAz MWM2ZjFhYS4uNmI1MjI0MjAzIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2J1cy9kcGFhL2Jhc2Uv Zm1hbi9uZXRjZmdfbGF5ZXIuYw0KPiArKysgYi9kcml2ZXJzL2J1cy9kcGFhL2Jhc2UvZm1hbi9u ZXRjZmdfbGF5ZXIuYw0KPiBAQCAtMjEsNyArMjEsNyBAQA0KPiAgLyogVGhpcyBkYXRhIHN0cnVj dHVyZSBjb250YWluZ3MgYWxsIGNvbmZpZ3VyYXRpb25zIGluZm9ybWF0aW9uDQo+ICAgKiByZWxh dGVkIHRvIHVzYWdlcyBvZiBEUEEgZGV2aWNlcy4NCj4gICAqLw0KPiAtc3RydWN0IG5ldGNmZ19p bmZvICpuZXRjZmc7DQo+ICtzdGF0aWMgc3RydWN0IG5ldGNmZ19pbmZvICpuZXRjZmc7DQo+ICAv KiBmZCB0byBvcGVuIGEgc29ja2V0IGZvciBtYWtpbmcgaW9jdGwgcmVxdWVzdCB0byBkaXNhYmxl L2VuYWJsZSBzaGFyZWQNCj4gICAqICBpbnRlcmZhY2VzLg0KPiAgICovDQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2J1cy9kcGFhL2RwYWFfYnVzLmMgYi9kcml2ZXJzL2J1cy9kcGFhL2RwYWFfYnVz LmMNCj4gaW5kZXggNDljZDA0ZGJiLi4yMDQyZTlkZDUgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMv YnVzL2RwYWEvZHBhYV9idXMuYw0KPiArKysgYi9kcml2ZXJzL2J1cy9kcGFhL2RwYWFfYnVzLmMN Cj4gQEAgLTQ2LDcgKzQ2LDcgQEAgaW50IGRwYWFfbG9ndHlwZV9tZW1wb29sOw0KPiAgaW50IGRw YWFfbG9ndHlwZV9wbWQ7DQo+ICBpbnQgZHBhYV9sb2d0eXBlX2V2ZW50ZGV2Ow0KPiANCj4gLXN0 cnVjdCBydGVfZHBhYV9idXMgcnRlX2RwYWFfYnVzOw0KPiArc3RhdGljIHN0cnVjdCBydGVfZHBh YV9idXMgcnRlX2RwYWFfYnVzOw0KPiAgc3RydWN0IG5ldGNmZ19pbmZvICpkcGFhX25ldGNmZzsN Cj4gDQo+ICAvKiBkZWZpbmUgYSB2YXJpYWJsZSB0byBob2xkIHRoZSBwb3J0YWxfa2V5LCBvbmNl IGNyZWF0ZWQuKi8NCj4gQEAgLTYxNSw3ICs2MTUsNyBAQCBydGVfZHBhYV9nZXRfaW9tbXVfY2xh c3Modm9pZCkNCj4gIAlyZXR1cm4gUlRFX0lPVkFfUEE7DQo+ICB9DQo+IA0KPiAtc3RydWN0IHJ0 ZV9kcGFhX2J1cyBydGVfZHBhYV9idXMgPSB7DQo+ICtzdGF0aWMgc3RydWN0IHJ0ZV9kcGFhX2J1 cyBydGVfZHBhYV9idXMgPSB7DQo+ICAJLmJ1cyA9IHsNCj4gIAkJLnNjYW4gPSBydGVfZHBhYV9i dXNfc2NhbiwNCj4gIAkJLnByb2JlID0gcnRlX2RwYWFfYnVzX3Byb2JlLA0KPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9idXMvZHBhYS9pbmNsdWRlL2ZzbF9mbWFuX2NyYzY0LmgNCj4gYi9kcml2ZXJz L2J1cy9kcGFhL2luY2x1ZGUvZnNsX2ZtYW5fY3JjNjQuaA0KPiBpbmRleCBiZjE2MmYzYWMuLjA4 YWQ2MzA0MiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9idXMvZHBhYS9pbmNsdWRlL2ZzbF9mbWFu X2NyYzY0LmgNCj4gKysrIGIvZHJpdmVycy9idXMvZHBhYS9pbmNsdWRlL2ZzbF9mbWFuX2NyYzY0 LmgNCj4gQEAgLTQyLDkgKzQyLDkgQEAgc3RydWN0IGZtYW5fY3JjNjRfdCB7DQo+ICAJdWludDY0 X3QgaW5pdGlhbDsNCj4gIAl1aW50NjRfdCB0YWJsZVsxIDw8IDhdOw0KPiAgfTsNCj4gLWV4dGVy biBzdHJ1Y3QgZm1hbl9jcmM2NF90IEZNQU5fQ1JDNjRfRUNNQV8xODI7DQo+ICtleHRlcm4gc3Ry dWN0IGZtYW5fY3JjNjRfdCBmbWFuX2NyYzY0X2VjbWFfMTgyOw0KPiAgI2RlZmluZSBERUNMQVJF X0ZNQU5fQ1JDNjRfVEFCTEUoKSBcDQo+IC1zdHJ1Y3QgZm1hbl9jcmM2NF90IEZNQU5fQ1JDNjRf RUNNQV8xODIgPSB7IFwNCj4gK3N0cnVjdCBmbWFuX2NyYzY0X3QgZm1hbl9jcmM2NF9lY21hXzE4 MiA9IHsgXA0KPiAgCTB4RkZGRkZGRkZGRkZGRkZGRlVMTCwgXA0KPiAgCXsgXA0KPiAgCQkweDAw MDAwMDAwMDAwMDAwMDBVTEwsIDB4YjMyZTRjYmUwM2E3NWY2ZlVMTCwgXA0KPiBAQCAtMTgzLDcg KzE4Myw3IEBAIHN0cnVjdCBmbWFuX2NyYzY0X3QgRk1BTl9DUkM2NF9FQ01BXzE4MiA9IHsgXA0K PiAgICovDQo+ICBzdGF0aWMgaW5saW5lIHVpbnQ2NF90IGZtYW5fY3JjNjRfaW5pdCh2b2lkKQ0K PiAgew0KPiAtCXJldHVybiBGTUFOX0NSQzY0X0VDTUFfMTgyLmluaXRpYWw7DQo+ICsJcmV0dXJu IGZtYW5fY3JjNjRfZWNtYV8xODIuaW5pdGlhbDsNCj4gIH0NCj4gDQo+ICAvKiBVcGRhdGVzIHRo ZSBDUkMgd2l0aCBhcmJpdHJhcnkgZGF0YSAqLw0KPiBAQCAtMTkyLDcgKzE5Miw3IEBAIHN0YXRp YyBpbmxpbmUgdWludDY0X3QgZm1hbl9jcmM2NF91cGRhdGUodWludDY0X3QgY3JjLA0KPiAgew0K PiAgCXVpbnQ4X3QgKnAgPSBkYXRhOw0KPiAgCXdoaWxlIChsZW4tLSkNCj4gLQkJY3JjID0gRk1B Tl9DUkM2NF9FQ01BXzE4Mi50YWJsZVsoY3JjIF4gKihwKyspKSAmIDB4ZmZdIF4NCj4gKwkJY3Jj ID0gZm1hbl9jcmM2NF9lY21hXzE4Mi50YWJsZVsoY3JjIF4gKihwKyspKSAmIDB4ZmZdIF4NCj4g IAkJCQkoY3JjID4+IDgpOw0KPiAgCXJldHVybiBjcmM7DQo+ICB9DQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2J1cy92ZGV2L3ZkZXYuYyBiL2RyaXZlcnMvYnVzL3ZkZXYvdmRldi5jDQo+IGluZGV4 IGVmM2FkNmQ5OS4uMDVkZTQyZmVmIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2J1cy92ZGV2L3Zk ZXYuYw0KPiArKysgYi9kcml2ZXJzL2J1cy92ZGV2L3ZkZXYuYw0KPiBAQCAtNDEsNyArNDEsNyBA QCBzdGF0aWMgc3RydWN0IHZkZXZfZGV2aWNlX2xpc3QgdmRldl9kZXZpY2VfbGlzdCA9DQo+ICBz dGF0aWMgcnRlX3NwaW5sb2NrX3JlY3Vyc2l2ZV90IHZkZXZfZGV2aWNlX2xpc3RfbG9jayA9DQo+ ICAJUlRFX1NQSU5MT0NLX1JFQ1VSU0lWRV9JTklUSUFMSVpFUjsNCj4gDQo+IC1zdHJ1Y3QgdmRl dl9kcml2ZXJfbGlzdCB2ZGV2X2RyaXZlcl9saXN0ID0NCj4gK3N0YXRpYyBzdHJ1Y3QgdmRldl9k cml2ZXJfbGlzdCB2ZGV2X2RyaXZlcl9saXN0ID0NCj4gIAlUQUlMUV9IRUFEX0lOSVRJQUxJWkVS KHZkZXZfZHJpdmVyX2xpc3QpOw0KPiANCj4gIHN0cnVjdCB2ZGV2X2N1c3RvbV9zY2FuIHsNCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvY29tcHJlc3Mvb2N0ZW9udHgvaW5jbHVkZS96aXBfcmVncy5o DQo+IGIvZHJpdmVycy9jb21wcmVzcy9vY3Rlb250eC9pbmNsdWRlL3ppcF9yZWdzLmgNCj4gaW5k ZXggMWU3NGRiNDMzLi4wNGMzZDc1ZTkgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvY29tcHJlc3Mv b2N0ZW9udHgvaW5jbHVkZS96aXBfcmVncy5oDQo+ICsrKyBiL2RyaXZlcnMvY29tcHJlc3Mvb2N0 ZW9udHgvaW5jbHVkZS96aXBfcmVncy5oDQo+IEBAIC0xMiwxMiArMTIsMTIgQEANCj4gICAqIFpJ UCBjb21wcmVzc2lvbiBjb2RpbmcgRW51bWVyYXRpb24NCj4gICAqIEVudW1lcmF0ZXMgWklQX0lO U1RfU1tDQ10uDQo+ICAgKi8NCj4gLWVudW0gew0KPiArZW51bSB6aXBfY2Mgew0KPiAgCVpJUF9D Q19ERUZBVUxUID0gMCwNCj4gIAlaSVBfQ0NfRFlOX0hVRkYsDQo+ICAJWklQX0NDX0ZJWEVEX0hV RkYsDQo+ICAJWklQX0NDX0xaUw0KPiAtfSB6aXBfY2M7DQo+ICt9Ow0KPiANCj4gIC8qKg0KPiAg ICogUmVnaXN0ZXIgKE5DQikgemlwX3ZxI19lbmENCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY29t cHJlc3Mvb2N0ZW9udHgvb3R4X3ppcC5oDQo+IGIvZHJpdmVycy9jb21wcmVzcy9vY3Rlb250eC9v dHhfemlwLmgNCj4gaW5kZXggOTlhMzhkMDA1Li4zYWJlZmQxZGMgMTAwNjQ0DQo+IC0tLSBhL2Ry aXZlcnMvY29tcHJlc3Mvb2N0ZW9udHgvb3R4X3ppcC5oDQo+ICsrKyBiL2RyaXZlcnMvY29tcHJl c3Mvb2N0ZW9udHgvb3R4X3ppcC5oDQo+IEBAIC03OSw3ICs3OSw3IEBAIGludCBvY3R0eF96aXBf bG9ndHlwZV9kcml2ZXI7DQo+ICAJWklQX1BNRF9MT0coRVJSLCBmbXQsICMjIGFyZ3MpDQo+IA0K PiAgLyogcmVzb3VyY2VzIHJlcXVpcmVkIHRvIHByb2Nlc3Mgc3RyZWFtICovDQo+IC1lbnVtIHsN Cj4gK2VudW0gTlVNX0JVRlNfUEVSX1NUUkVBTSB7DQo+ICAJUkVTX0JVRiA9IDAsDQo+ICAJQ01E X0JVRiwNCj4gIAlIQVNIX0NUWF9CVUYsDQo+IEBAIC04OCw3ICs4OCw3IEBAIGVudW0gew0KPiAg CU9VVF9EQVRBX0JVRiwNCj4gIAlISVNUT1JZX0RBVEFfQlVGLA0KPiAgCU1BWF9CVUZTX1BFUl9T VFJFQU0NCj4gLX0gTlVNX0JVRlNfUEVSX1NUUkVBTTsNCj4gK307DQo+IA0KPiAgc3RydWN0IHpp cF9zdHJlYW07DQo+ICBzdHJ1Y3QgemlwdmZfcXA7DQo+IEBAIC0xMDYsNyArMTA2LDcgQEAgc3Ry dWN0IHppcF9zdHJlYW0gew0KPiAgCWNvbXBfZnVuY190IGZ1bmM7DQo+ICAJLyogZnVuY3Rpb24g dG8gcHJvY2VzcyBjb21wIG9wZXJhdGlvbiAqLw0KPiAgCXZvaWQgKmJ1ZnNbTUFYX0JVRlNfUEVS X1NUUkVBTV07DQo+IC19IF9ydGVfY2FjaGVfYWxpZ25lZDsNCj4gK30gX19ydGVfY2FjaGVfYWxp Z25lZDsNCj4gDQo+IA0KPiAgLyoqDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2NvbXByZXNzL29j dGVvbnR4L290eF96aXBfcG1kLmMNCj4gYi9kcml2ZXJzL2NvbXByZXNzL29jdGVvbnR4L290eF96 aXBfcG1kLmMNCj4gaW5kZXggOWQxM2Y5MzMxLi42N2ZmNTA2NmYgMTAwNjQ0DQo+IC0tLSBhL2Ry aXZlcnMvY29tcHJlc3Mvb2N0ZW9udHgvb3R4X3ppcF9wbWQuYw0KPiArKysgYi9kcml2ZXJzL2Nv bXByZXNzL29jdGVvbnR4L290eF96aXBfcG1kLmMNCj4gQEAgLTUzMyw3ICs1MzMsNyBAQCB6aXBf cG1kX2RlcXVldWVfYnVyc3Rfc3luYyh2b2lkICpxdWV1ZV9wYWlyLA0KPiAgCXJldHVybiBuYl9k ZXF1ZXVlZDsNCj4gIH0NCj4gDQo+IC1zdHJ1Y3QgcnRlX2NvbXByZXNzZGV2X29wcyBvY3R0eF96 aXBfcG1kX29wcyA9IHsNCj4gK3N0YXRpYyBzdHJ1Y3QgcnRlX2NvbXByZXNzZGV2X29wcyBvY3R0 eF96aXBfcG1kX29wcyA9IHsNCj4gIAkJLmRldl9jb25maWd1cmUJCT0gemlwX3BtZF9jb25maWcs DQo+ICAJCS5kZXZfc3RhcnQJCT0gemlwX3BtZF9zdGFydCwNCj4gIAkJLmRldl9zdG9wCQk9IHpp cF9wbWRfc3RvcCwNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL2RwYWEyX3NlYy9kcGFh Ml9zZWNfZHBzZWNpLmMNCj4gYi9kcml2ZXJzL2NyeXB0by9kcGFhMl9zZWMvZHBhYTJfc2VjX2Rw c2VjaS5jDQo+IGluZGV4IDI2NWE4ZTQxYS4uZWJhMjM2MjE2IDEwMDY0NA0KPiAtLS0gYS9kcml2 ZXJzL2NyeXB0by9kcGFhMl9zZWMvZHBhYTJfc2VjX2Rwc2VjaS5jDQo+ICsrKyBiL2RyaXZlcnMv Y3J5cHRvL2RwYWEyX3NlYy9kcGFhMl9zZWNfZHBzZWNpLmMNCj4gQEAgLTI4NzQsNyArMjg3NCw3 IEBAIGRwYWEyX3NlY19jYXBhYmlsaXRpZXNfZ2V0KHZvaWQgKmRldmljZQ0KPiBfX3J0ZV91bnVz ZWQpDQo+ICAJcmV0dXJuIGRwYWEyX3NlY19zZWN1cml0eV9jYXA7DQo+ICB9DQo+IA0KPiAtc3Ry dWN0IHJ0ZV9zZWN1cml0eV9vcHMgZHBhYTJfc2VjX3NlY3VyaXR5X29wcyA9IHsNCj4gK3N0YXRp YyBzdHJ1Y3QgcnRlX3NlY3VyaXR5X29wcyBkcGFhMl9zZWNfc2VjdXJpdHlfb3BzID0gew0KPiAg CS5zZXNzaW9uX2NyZWF0ZSA9IGRwYWEyX3NlY19zZWN1cml0eV9zZXNzaW9uX2NyZWF0ZSwNCj4g IAkuc2Vzc2lvbl91cGRhdGUgPSBOVUxMLA0KPiAgCS5zZXNzaW9uX3N0YXRzX2dldCA9IE5VTEws DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0by9kcGFhX3NlYy9kcGFhX3NlYy5jDQo+IGIv ZHJpdmVycy9jcnlwdG8vZHBhYV9zZWMvZHBhYV9zZWMuYw0KPiBpbmRleCA3YzA0NTlmOWYuLmQz YjI4ZTE5NiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9jcnlwdG8vZHBhYV9zZWMvZHBhYV9zZWMu Yw0KPiArKysgYi9kcml2ZXJzL2NyeXB0by9kcGFhX3NlYy9kcGFhX3NlYy5jDQo+IEBAIC0yMjY0 LDcgKzIyNjQsNyBAQCBkcGFhX3NlY19jYXBhYmlsaXRpZXNfZ2V0KHZvaWQgKmRldmljZQ0KPiBf X3J0ZV91bnVzZWQpDQo+ICAJcmV0dXJuIGRwYWFfc2VjX3NlY3VyaXR5X2NhcDsNCj4gIH0NCj4g DQo+IC1zdHJ1Y3QgcnRlX3NlY3VyaXR5X29wcyBkcGFhX3NlY19zZWN1cml0eV9vcHMgPSB7DQo+ ICtzdGF0aWMgc3RydWN0IHJ0ZV9zZWN1cml0eV9vcHMgZHBhYV9zZWNfc2VjdXJpdHlfb3BzID0g ew0KPiAgCS5zZXNzaW9uX2NyZWF0ZSA9IGRwYWFfc2VjX3NlY3VyaXR5X3Nlc3Npb25fY3JlYXRl LA0KPiAgCS5zZXNzaW9uX3VwZGF0ZSA9IE5VTEwsDQo+ICAJLnNlc3Npb25fc3RhdHNfZ2V0ID0g TlVMTCwNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL251bGwvbnVsbF9jcnlwdG9fcG1k X29wcy5jDQo+IGIvZHJpdmVycy9jcnlwdG8vbnVsbC9udWxsX2NyeXB0b19wbWRfb3BzLmMNCj4g aW5kZXggYmIyYjZlMTQ0Li4yYmRjZDAxOWUgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvY3J5cHRv L251bGwvbnVsbF9jcnlwdG9fcG1kX29wcy5jDQo+ICsrKyBiL2RyaXZlcnMvY3J5cHRvL251bGwv bnVsbF9jcnlwdG9fcG1kX29wcy5jDQo+IEBAIC0zMDgsNyArMzA4LDcgQEAgbnVsbF9jcnlwdG9f cG1kX3N5bV9zZXNzaW9uX2NsZWFyKHN0cnVjdA0KPiBydGVfY3J5cHRvZGV2ICpkZXYsDQo+ICAJ fQ0KPiAgfQ0KPiANCj4gLXN0cnVjdCBydGVfY3J5cHRvZGV2X29wcyBwbWRfb3BzID0gew0KPiAr c3RhdGljIHN0cnVjdCBydGVfY3J5cHRvZGV2X29wcyBwbWRfb3BzID0gew0KPiAgCQkuZGV2X2Nv bmZpZ3VyZQkJPSBudWxsX2NyeXB0b19wbWRfY29uZmlnLA0KPiAgCQkuZGV2X3N0YXJ0CQk9IG51 bGxfY3J5cHRvX3BtZF9zdGFydCwNCj4gIAkJLmRldl9zdG9wCQk9IG51bGxfY3J5cHRvX3BtZF9z dG9wLA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcnlwdG8vc2NoZWR1bGVyL3J0ZV9jcnlwdG9k ZXZfc2NoZWR1bGVyLmMNCj4gYi9kcml2ZXJzL2NyeXB0by9zY2hlZHVsZXIvcnRlX2NyeXB0b2Rl dl9zY2hlZHVsZXIuYw0KPiBpbmRleCA2ZTQ5MTljNDkuLmEyMTQyODYwNiAxMDA2NDQNCj4gLS0t IGEvZHJpdmVycy9jcnlwdG8vc2NoZWR1bGVyL3J0ZV9jcnlwdG9kZXZfc2NoZWR1bGVyLmMNCj4g KysrIGIvZHJpdmVycy9jcnlwdG8vc2NoZWR1bGVyL3J0ZV9jcnlwdG9kZXZfc2NoZWR1bGVyLmMN Cj4gQEAgLTE3NCw3ICsxNzQsNyBAQCBydGVfY3J5cHRvZGV2X3NjaGVkdWxlcl9zbGF2ZV9hdHRh Y2godWludDhfdA0KPiBzY2hlZHVsZXJfaWQsIHVpbnQ4X3Qgc2xhdmVfaWQpDQo+ICAJCXJldHVy biAtRU5PVFNVUDsNCj4gIAl9DQo+IA0KPiAtCWlmIChkZXYtPmRyaXZlcl9pZCAhPSBjcnlwdG9k ZXZfZHJpdmVyX2lkKSB7DQo+ICsJaWYgKGRldi0+ZHJpdmVyX2lkICE9IGNyeXB0b2Rldl9zY2hl ZHVsZXJfZHJpdmVyX2lkKSB7DQo+ICAJCUNSX1NDSEVEX0xPRyhFUlIsICJPcGVyYXRpb24gbm90 IHN1cHBvcnRlZCIpOw0KPiAgCQlyZXR1cm4gLUVOT1RTVVA7DQo+ICAJfQ0KPiBAQCAtMjMzLDcg KzIzMyw3IEBAIHJ0ZV9jcnlwdG9kZXZfc2NoZWR1bGVyX3NsYXZlX2RldGFjaCh1aW50OF90DQo+ IHNjaGVkdWxlcl9pZCwgdWludDhfdCBzbGF2ZV9pZCkNCj4gIAkJcmV0dXJuIC1FTk9UU1VQOw0K PiAgCX0NCj4gDQo+IC0JaWYgKGRldi0+ZHJpdmVyX2lkICE9IGNyeXB0b2Rldl9kcml2ZXJfaWQp IHsNCj4gKwlpZiAoZGV2LT5kcml2ZXJfaWQgIT0gY3J5cHRvZGV2X3NjaGVkdWxlcl9kcml2ZXJf aWQpIHsNCj4gIAkJQ1JfU0NIRURfTE9HKEVSUiwgIk9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIik7 DQo+ICAJCXJldHVybiAtRU5PVFNVUDsNCj4gIAl9DQo+IEBAIC0yOTAsNyArMjkwLDcgQEAgcnRl X2NyeXB0b2Rldl9zY2hlZHVsZXJfbW9kZV9zZXQodWludDhfdA0KPiBzY2hlZHVsZXJfaWQsDQo+ ICAJCXJldHVybiAtRU5PVFNVUDsNCj4gIAl9DQo+IA0KPiAtCWlmIChkZXYtPmRyaXZlcl9pZCAh PSBjcnlwdG9kZXZfZHJpdmVyX2lkKSB7DQo+ICsJaWYgKGRldi0+ZHJpdmVyX2lkICE9IGNyeXB0 b2Rldl9zY2hlZHVsZXJfZHJpdmVyX2lkKSB7DQo+ICAJCUNSX1NDSEVEX0xPRyhFUlIsICJPcGVy YXRpb24gbm90IHN1cHBvcnRlZCIpOw0KPiAgCQlyZXR1cm4gLUVOT1RTVVA7DQo+ICAJfQ0KPiBA QCAtMzA4LDI4ICszMDgsMjggQEAgcnRlX2NyeXB0b2Rldl9zY2hlZHVsZXJfbW9kZV9zZXQodWlu dDhfdA0KPiBzY2hlZHVsZXJfaWQsDQo+ICAJc3dpdGNoIChtb2RlKSB7DQo+ICAJY2FzZSBDREVW X1NDSEVEX01PREVfUk9VTkRST0JJTjoNCj4gIAkJaWYNCj4gKHJ0ZV9jcnlwdG9kZXZfc2NoZWR1 bGVyX2xvYWRfdXNlcl9zY2hlZHVsZXIoc2NoZWR1bGVyX2lkLA0KPiAtCQkJCXJvdW5kcm9iaW5f c2NoZWR1bGVyKSA8IDApIHsNCj4gKwkJCQljcnlwdG9fc2NoZWR1bGVyX3JvdW5kcm9iaW4pIDwg MCkgew0KPiAgCQkJQ1JfU0NIRURfTE9HKEVSUiwgIkZhaWxlZCB0byBsb2FkIHNjaGVkdWxlciIp Ow0KPiAgCQkJcmV0dXJuIC0xOw0KPiAgCQl9DQo+ICAJCWJyZWFrOw0KPiAgCWNhc2UgQ0RFVl9T Q0hFRF9NT0RFX1BLVF9TSVpFX0RJU1RSOg0KPiAgCQlpZg0KPiAocnRlX2NyeXB0b2Rldl9zY2hl ZHVsZXJfbG9hZF91c2VyX3NjaGVkdWxlcihzY2hlZHVsZXJfaWQsDQo+IC0JCQkJcGt0X3NpemVf YmFzZWRfZGlzdHJfc2NoZWR1bGVyKSA8IDApIHsNCj4gKwkJCQljcnlwdG9fc2NoZWR1bGVyX3Br dF9zaXplX2Jhc2VkX2Rpc3RyKSA8IDApDQo+IHsNCj4gIAkJCUNSX1NDSEVEX0xPRyhFUlIsICJG YWlsZWQgdG8gbG9hZCBzY2hlZHVsZXIiKTsNCj4gIAkJCXJldHVybiAtMTsNCj4gIAkJfQ0KPiAg CQlicmVhazsNCj4gIAljYXNlIENERVZfU0NIRURfTU9ERV9GQUlMT1ZFUjoNCj4gIAkJaWYNCj4g KHJ0ZV9jcnlwdG9kZXZfc2NoZWR1bGVyX2xvYWRfdXNlcl9zY2hlZHVsZXIoc2NoZWR1bGVyX2lk LA0KPiAtCQkJCWZhaWxvdmVyX3NjaGVkdWxlcikgPCAwKSB7DQo+ICsJCQkJY3J5cHRvX3NjaGVk dWxlcl9mYWlsb3ZlcikgPCAwKSB7DQo+ICAJCQlDUl9TQ0hFRF9MT0coRVJSLCAiRmFpbGVkIHRv IGxvYWQgc2NoZWR1bGVyIik7DQo+ICAJCQlyZXR1cm4gLTE7DQo+ICAJCX0NCj4gIAkJYnJlYWs7 DQo+ICAJY2FzZSBDREVWX1NDSEVEX01PREVfTVVMVElDT1JFOg0KPiAgCQlpZg0KPiAocnRlX2Ny eXB0b2Rldl9zY2hlZHVsZXJfbG9hZF91c2VyX3NjaGVkdWxlcihzY2hlZHVsZXJfaWQsDQo+IC0J CQkJbXVsdGljb3JlX3NjaGVkdWxlcikgPCAwKSB7DQo+ICsJCQkJY3J5cHRvX3NjaGVkdWxlcl9t dWx0aWNvcmUpIDwgMCkgew0KPiAgCQkJQ1JfU0NIRURfTE9HKEVSUiwgIkZhaWxlZCB0byBsb2Fk IHNjaGVkdWxlciIpOw0KPiAgCQkJcmV0dXJuIC0xOw0KPiAgCQl9DQo+IEBAIC0zNTMsNyArMzUz LDcgQEAgcnRlX2NyeXB0b2Rldl9zY2hlZHVsZXJfbW9kZV9nZXQodWludDhfdA0KPiBzY2hlZHVs ZXJfaWQpDQo+ICAJCXJldHVybiAtRU5PVFNVUDsNCj4gIAl9DQo+IA0KPiAtCWlmIChkZXYtPmRy aXZlcl9pZCAhPSBjcnlwdG9kZXZfZHJpdmVyX2lkKSB7DQo+ICsJaWYgKGRldi0+ZHJpdmVyX2lk ICE9IGNyeXB0b2Rldl9zY2hlZHVsZXJfZHJpdmVyX2lkKSB7DQo+ICAJCUNSX1NDSEVEX0xPRyhF UlIsICJPcGVyYXRpb24gbm90IHN1cHBvcnRlZCIpOw0KPiAgCQlyZXR1cm4gLUVOT1RTVVA7DQo+ ICAJfQ0KPiBAQCAtMzc1LDcgKzM3NSw3IEBAIHJ0ZV9jcnlwdG9kZXZfc2NoZWR1bGVyX29yZGVy aW5nX3NldCh1aW50OF90DQo+IHNjaGVkdWxlcl9pZCwNCj4gIAkJcmV0dXJuIC1FTk9UU1VQOw0K PiAgCX0NCj4gDQo+IC0JaWYgKGRldi0+ZHJpdmVyX2lkICE9IGNyeXB0b2Rldl9kcml2ZXJfaWQp IHsNCj4gKwlpZiAoZGV2LT5kcml2ZXJfaWQgIT0gY3J5cHRvZGV2X3NjaGVkdWxlcl9kcml2ZXJf aWQpIHsNCj4gIAkJQ1JfU0NIRURfTE9HKEVSUiwgIk9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIik7 DQo+ICAJCXJldHVybiAtRU5PVFNVUDsNCj4gIAl9DQo+IEBAIC00MDMsNyArNDAzLDcgQEAgcnRl X2NyeXB0b2Rldl9zY2hlZHVsZXJfb3JkZXJpbmdfZ2V0KHVpbnQ4X3QNCj4gc2NoZWR1bGVyX2lk KQ0KPiAgCQlyZXR1cm4gLUVOT1RTVVA7DQo+ICAJfQ0KPiANCj4gLQlpZiAoZGV2LT5kcml2ZXJf aWQgIT0gY3J5cHRvZGV2X2RyaXZlcl9pZCkgew0KPiArCWlmIChkZXYtPmRyaXZlcl9pZCAhPSBj cnlwdG9kZXZfc2NoZWR1bGVyX2RyaXZlcl9pZCkgew0KPiAgCQlDUl9TQ0hFRF9MT0coRVJSLCAi T3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQiKTsNCj4gIAkJcmV0dXJuIC1FTk9UU1VQOw0KPiAgCX0N Cj4gQEAgLTQyNSw3ICs0MjUsNyBAQA0KPiBydGVfY3J5cHRvZGV2X3NjaGVkdWxlcl9sb2FkX3Vz ZXJfc2NoZWR1bGVyKHVpbnQ4X3Qgc2NoZWR1bGVyX2lkLA0KPiAgCQlyZXR1cm4gLUVOT1RTVVA7 DQo+ICAJfQ0KPiANCj4gLQlpZiAoZGV2LT5kcml2ZXJfaWQgIT0gY3J5cHRvZGV2X2RyaXZlcl9p ZCkgew0KPiArCWlmIChkZXYtPmRyaXZlcl9pZCAhPSBjcnlwdG9kZXZfc2NoZWR1bGVyX2RyaXZl cl9pZCkgew0KPiAgCQlDUl9TQ0hFRF9MT0coRVJSLCAiT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQi KTsNCj4gIAkJcmV0dXJuIC1FTk9UU1VQOw0KPiAgCX0NCj4gQEAgLTQ5OCw3ICs0OTgsNyBAQCBy dGVfY3J5cHRvZGV2X3NjaGVkdWxlcl9zbGF2ZXNfZ2V0KHVpbnQ4X3QNCj4gc2NoZWR1bGVyX2lk LCB1aW50OF90ICpzbGF2ZXMpDQo+ICAJCXJldHVybiAtRU5PVFNVUDsNCj4gIAl9DQo+IA0KPiAt CWlmIChkZXYtPmRyaXZlcl9pZCAhPSBjcnlwdG9kZXZfZHJpdmVyX2lkKSB7DQo+ICsJaWYgKGRl di0+ZHJpdmVyX2lkICE9IGNyeXB0b2Rldl9zY2hlZHVsZXJfZHJpdmVyX2lkKSB7DQo+ICAJCUNS X1NDSEVEX0xPRyhFUlIsICJPcGVyYXRpb24gbm90IHN1cHBvcnRlZCIpOw0KPiAgCQlyZXR1cm4g LUVOT1RTVVA7DQo+ICAJfQ0KPiBAQCAtNTY2LDcgKzU2Niw3IEBAIHJ0ZV9jcnlwdG9kZXZfc2No ZWR1bGVyX29wdGlvbl9nZXQodWludDhfdA0KPiBzY2hlZHVsZXJfaWQsDQo+ICAJCXJldHVybiAt RUlOVkFMOw0KPiAgCX0NCj4gDQo+IC0JaWYgKGRldi0+ZHJpdmVyX2lkICE9IGNyeXB0b2Rldl9k cml2ZXJfaWQpIHsNCj4gKwlpZiAoZGV2LT5kcml2ZXJfaWQgIT0gY3J5cHRvZGV2X3NjaGVkdWxl cl9kcml2ZXJfaWQpIHsNCj4gIAkJQ1JfU0NIRURfTE9HKEVSUiwgIk9wZXJhdGlvbiBub3Qgc3Vw cG9ydGVkIik7DQo+ICAJCXJldHVybiAtRU5PVFNVUDsNCj4gIAl9DQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2NyeXB0by9zY2hlZHVsZXIvcnRlX2NyeXB0b2Rldl9zY2hlZHVsZXIuaA0KPiBiL2Ry aXZlcnMvY3J5cHRvL3NjaGVkdWxlci9ydGVfY3J5cHRvZGV2X3NjaGVkdWxlci5oDQo+IGluZGV4 IDNmYWVhNDA5OS4uOWE3MmE5MGFlIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2NyeXB0by9zY2hl ZHVsZXIvcnRlX2NyeXB0b2Rldl9zY2hlZHVsZXIuaA0KPiArKysgYi9kcml2ZXJzL2NyeXB0by9z Y2hlZHVsZXIvcnRlX2NyeXB0b2Rldl9zY2hlZHVsZXIuaA0KPiBAQCAtMjcwLDEzICsyNzAsMTMg QEAgc3RydWN0IHJ0ZV9jcnlwdG9kZXZfc2NoZWR1bGVyIHsNCj4gIH07DQo+IA0KPiAgLyoqIFJv dW5kLXJvYmluIG1vZGUgc2NoZWR1bGVyICovDQo+IC1leHRlcm4gc3RydWN0IHJ0ZV9jcnlwdG9k ZXZfc2NoZWR1bGVyICpyb3VuZHJvYmluX3NjaGVkdWxlcjsNCj4gK2V4dGVybiBzdHJ1Y3QgcnRl X2NyeXB0b2Rldl9zY2hlZHVsZXIgKmNyeXB0b19zY2hlZHVsZXJfcm91bmRyb2JpbjsNCj4gIC8q KiBQYWNrZXQtc2l6ZSBiYXNlZCBkaXN0cmlidXRpb24gbW9kZSBzY2hlZHVsZXIgKi8NCj4gLWV4 dGVybiBzdHJ1Y3QgcnRlX2NyeXB0b2Rldl9zY2hlZHVsZXIgKnBrdF9zaXplX2Jhc2VkX2Rpc3Ry X3NjaGVkdWxlcjsNCj4gK2V4dGVybiBzdHJ1Y3QgcnRlX2NyeXB0b2Rldl9zY2hlZHVsZXINCj4g KmNyeXB0b19zY2hlZHVsZXJfcGt0X3NpemVfYmFzZWRfZGlzdHI7DQo+ICAvKiogRmFpbC1vdmVy IG1vZGUgc2NoZWR1bGVyICovDQo+IC1leHRlcm4gc3RydWN0IHJ0ZV9jcnlwdG9kZXZfc2NoZWR1 bGVyICpmYWlsb3Zlcl9zY2hlZHVsZXI7DQo+ICtleHRlcm4gc3RydWN0IHJ0ZV9jcnlwdG9kZXZf c2NoZWR1bGVyICpjcnlwdG9fc2NoZWR1bGVyX2ZhaWxvdmVyOw0KPiAgLyoqIG11bHRpLWNvcmUg bW9kZSBzY2hlZHVsZXIgKi8NCj4gLWV4dGVybiBzdHJ1Y3QgcnRlX2NyeXB0b2Rldl9zY2hlZHVs ZXIgKm11bHRpY29yZV9zY2hlZHVsZXI7DQo+ICtleHRlcm4gc3RydWN0IHJ0ZV9jcnlwdG9kZXZf c2NoZWR1bGVyICpjcnlwdG9fc2NoZWR1bGVyX211bHRpY29yZTsNCj4gDQo+ICAjaWZkZWYgX19j cGx1c3BsdXMNCj4gIH0NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL3NjaGVkdWxlci9z Y2hlZHVsZXJfZmFpbG92ZXIuYw0KPiBiL2RyaXZlcnMvY3J5cHRvL3NjaGVkdWxlci9zY2hlZHVs ZXJfZmFpbG92ZXIuYw0KPiBpbmRleCBkZGZiNWI4MTUuLjNhMDIzYjhhZCAxMDA2NDQNCj4gLS0t IGEvZHJpdmVycy9jcnlwdG8vc2NoZWR1bGVyL3NjaGVkdWxlcl9mYWlsb3Zlci5jDQo+ICsrKyBi L2RyaXZlcnMvY3J5cHRvL3NjaGVkdWxlci9zY2hlZHVsZXJfZmFpbG92ZXIuYw0KPiBAQCAtMTk3 LDcgKzE5Nyw3IEBAIHNjaGVkdWxlcl9jcmVhdGVfcHJpdmF0ZV9jdHgoX19ydGVfdW51c2VkIHN0 cnVjdA0KPiBydGVfY3J5cHRvZGV2ICpkZXYpDQo+ICAJcmV0dXJuIDA7DQo+ICB9DQo+IA0KPiAt c3RydWN0IHJ0ZV9jcnlwdG9kZXZfc2NoZWR1bGVyX29wcyBzY2hlZHVsZXJfZm9fb3BzID0gew0K PiArc3RhdGljIHN0cnVjdCBydGVfY3J5cHRvZGV2X3NjaGVkdWxlcl9vcHMgc2NoZWR1bGVyX2Zv X29wcyA9IHsNCj4gIAlzbGF2ZV9hdHRhY2gsDQo+ICAJc2xhdmVfZGV0YWNoLA0KPiAgCXNjaGVk dWxlcl9zdGFydCwNCj4gQEAgLTIwOCw3ICsyMDgsNyBAQCBzdHJ1Y3QgcnRlX2NyeXB0b2Rldl9z Y2hlZHVsZXJfb3BzDQo+IHNjaGVkdWxlcl9mb19vcHMgPSB7DQo+ICAJTlVMTAkvKm9wdGlvbl9n ZXQgKi8NCj4gIH07DQo+IA0KPiAtc3RydWN0IHJ0ZV9jcnlwdG9kZXZfc2NoZWR1bGVyIGZvX3Nj aGVkdWxlciA9IHsNCj4gK3N0YXRpYyBzdHJ1Y3QgcnRlX2NyeXB0b2Rldl9zY2hlZHVsZXIgZm9f c2NoZWR1bGVyID0gew0KPiAgCQkubmFtZSA9ICJmYWlsb3Zlci1zY2hlZHVsZXIiLA0KPiAgCQku ZGVzY3JpcHRpb24gPSAic2NoZWR1bGVyIHdoaWNoIGVucXVldWVzIHRvIHRoZSBwcmltYXJ5DQo+ IHNsYXZlLCAiDQo+ICAJCQkJImFuZCBvbmx5IHRoZW4gZW5xdWV1ZXMgdG8gdGhlIHNlY29uZGFy eQ0KPiBzbGF2ZSAiDQo+IEBAIC0yMTcsNCArMjE3LDQgQEAgc3RydWN0IHJ0ZV9jcnlwdG9kZXZf c2NoZWR1bGVyIGZvX3NjaGVkdWxlciA9IHsNCj4gIAkJLm9wcyA9ICZzY2hlZHVsZXJfZm9fb3Bz DQo+ICB9Ow0KPiANCj4gLXN0cnVjdCBydGVfY3J5cHRvZGV2X3NjaGVkdWxlciAqZmFpbG92ZXJf c2NoZWR1bGVyID0gJmZvX3NjaGVkdWxlcjsNCj4gK3N0cnVjdCBydGVfY3J5cHRvZGV2X3NjaGVk dWxlciAqY3J5cHRvX3NjaGVkdWxlcl9mYWlsb3ZlciA9DQo+ICZmb19zY2hlZHVsZXI7DQo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0by9zY2hlZHVsZXIvc2NoZWR1bGVyX211bHRpY29yZS5j DQo+IGIvZHJpdmVycy9jcnlwdG8vc2NoZWR1bGVyL3NjaGVkdWxlcl9tdWx0aWNvcmUuYw0KPiBp bmRleCBkNDEwZTY5ZDMuLjc4MDhlOWEzNCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9jcnlwdG8v c2NoZWR1bGVyL3NjaGVkdWxlcl9tdWx0aWNvcmUuYw0KPiArKysgYi9kcml2ZXJzL2NyeXB0by9z Y2hlZHVsZXIvc2NoZWR1bGVyX211bHRpY29yZS5jDQo+IEBAIC0zOTIsNyArMzkyLDcgQEAgc2No ZWR1bGVyX2NyZWF0ZV9wcml2YXRlX2N0eChzdHJ1Y3QgcnRlX2NyeXB0b2Rldg0KPiAqZGV2KQ0K PiAgCXJldHVybiAtMTsNCj4gIH0NCj4gDQo+IC1zdHJ1Y3QgcnRlX2NyeXB0b2Rldl9zY2hlZHVs ZXJfb3BzIHNjaGVkdWxlcl9tY19vcHMgPSB7DQo+ICtzdGF0aWMgc3RydWN0IHJ0ZV9jcnlwdG9k ZXZfc2NoZWR1bGVyX29wcyBzY2hlZHVsZXJfbWNfb3BzID0gew0KPiAgCXNsYXZlX2F0dGFjaCwN Cj4gIAlzbGF2ZV9kZXRhY2gsDQo+ICAJc2NoZWR1bGVyX3N0YXJ0LA0KPiBAQCAtNDAzLDExICs0 MDMsMTEgQEAgc3RydWN0IHJ0ZV9jcnlwdG9kZXZfc2NoZWR1bGVyX29wcw0KPiBzY2hlZHVsZXJf bWNfb3BzID0gew0KPiAgCU5VTEwJLyogb3B0aW9uX2dldCAqLw0KPiAgfTsNCj4gDQo+IC1zdHJ1 Y3QgcnRlX2NyeXB0b2Rldl9zY2hlZHVsZXIgbWNfc2NoZWR1bGVyID0gew0KPiArc3RhdGljIHN0 cnVjdCBydGVfY3J5cHRvZGV2X3NjaGVkdWxlciBtY19zY2hlZHVsZXIgPSB7DQo+ICAJCS5uYW1l ID0gIm11bHRpY29yZS1zY2hlZHVsZXIiLA0KPiAgCQkuZGVzY3JpcHRpb24gPSAic2NoZWR1bGVy IHdoaWNoIHdpbGwgcnVuIGJ1cnN0IGFjcm9zcyBtdWx0aXBsZQ0KPiBjcHUgY29yZXMiLA0KPiAg CQkubW9kZSA9IENERVZfU0NIRURfTU9ERV9NVUxUSUNPUkUsDQo+ICAJCS5vcHMgPSAmc2NoZWR1 bGVyX21jX29wcw0KPiAgfTsNCj4gDQo+IC1zdHJ1Y3QgcnRlX2NyeXB0b2Rldl9zY2hlZHVsZXIg Km11bHRpY29yZV9zY2hlZHVsZXIgPSAmbWNfc2NoZWR1bGVyOw0KPiArc3RydWN0IHJ0ZV9jcnlw dG9kZXZfc2NoZWR1bGVyICpjcnlwdG9fc2NoZWR1bGVyX211bHRpY29yZSA9DQo+ICZtY19zY2hl ZHVsZXI7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0by9zY2hlZHVsZXIvc2NoZWR1bGVy X3BrdF9zaXplX2Rpc3RyLmMNCj4gYi9kcml2ZXJzL2NyeXB0by9zY2hlZHVsZXIvc2NoZWR1bGVy X3BrdF9zaXplX2Rpc3RyLmMNCj4gaW5kZXggNzQxMjliNjY3Li40NWM4ZGNlYjQgMTAwNjQ0DQo+ IC0tLSBhL2RyaXZlcnMvY3J5cHRvL3NjaGVkdWxlci9zY2hlZHVsZXJfcGt0X3NpemVfZGlzdHIu Yw0KPiArKysgYi9kcml2ZXJzL2NyeXB0by9zY2hlZHVsZXIvc2NoZWR1bGVyX3BrdF9zaXplX2Rp c3RyLmMNCj4gQEAgLTM5OCw3ICszOTgsNyBAQCBzY2hlZHVsZXJfb3B0aW9uX2dldChzdHJ1Y3Qg cnRlX2NyeXB0b2RldiAqZGV2LA0KPiB1aW50MzJfdCBvcHRpb25fdHlwZSwNCj4gIAlyZXR1cm4g MDsNCj4gIH0NCj4gDQo+IC1zdHJ1Y3QgcnRlX2NyeXB0b2Rldl9zY2hlZHVsZXJfb3BzIHNjaGVk dWxlcl9wc19vcHMgPSB7DQo+ICtzdGF0aWMgc3RydWN0IHJ0ZV9jcnlwdG9kZXZfc2NoZWR1bGVy X29wcyBzY2hlZHVsZXJfcHNfb3BzID0gew0KPiAgCXNsYXZlX2F0dGFjaCwNCj4gIAlzbGF2ZV9k ZXRhY2gsDQo+ICAJc2NoZWR1bGVyX3N0YXJ0LA0KPiBAQCAtNDA5LDcgKzQwOSw3IEBAIHN0cnVj dCBydGVfY3J5cHRvZGV2X3NjaGVkdWxlcl9vcHMNCj4gc2NoZWR1bGVyX3BzX29wcyA9IHsNCj4g IAlzY2hlZHVsZXJfb3B0aW9uX2dldA0KPiAgfTsNCj4gDQo+IC1zdHJ1Y3QgcnRlX2NyeXB0b2Rl dl9zY2hlZHVsZXIgcHNkX3NjaGVkdWxlciA9IHsNCj4gK3N0YXRpYyBzdHJ1Y3QgcnRlX2NyeXB0 b2Rldl9zY2hlZHVsZXIgcHNkX3NjaGVkdWxlciA9IHsNCj4gIAkJLm5hbWUgPSAicGFja2V0LXNp emUtYmFzZWQtc2NoZWR1bGVyIiwNCj4gIAkJLmRlc2NyaXB0aW9uID0gInNjaGVkdWxlciB3aGlj aCB3aWxsIGRpc3RyaWJ1dGUgY3J5cHRvIG9wICINCj4gIAkJCQkiYnVyc3QgYmFzZWQgb24gdGhl IHBhY2tldCBzaXplIiwNCj4gQEAgLTQxNyw0ICs0MTcsNCBAQCBzdHJ1Y3QgcnRlX2NyeXB0b2Rl dl9zY2hlZHVsZXIgcHNkX3NjaGVkdWxlciA9IHsNCj4gIAkJLm9wcyA9ICZzY2hlZHVsZXJfcHNf b3BzDQo+ICB9Ow0KPiANCj4gLXN0cnVjdCBydGVfY3J5cHRvZGV2X3NjaGVkdWxlciAqcGt0X3Np emVfYmFzZWRfZGlzdHJfc2NoZWR1bGVyID0NCj4gJnBzZF9zY2hlZHVsZXI7DQo+ICtzdHJ1Y3Qg cnRlX2NyeXB0b2Rldl9zY2hlZHVsZXIgKmNyeXB0b19zY2hlZHVsZXJfcGt0X3NpemVfYmFzZWRf ZGlzdHIgPQ0KPiAmcHNkX3NjaGVkdWxlcjsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRv L3NjaGVkdWxlci9zY2hlZHVsZXJfcG1kLmMNCj4gYi9kcml2ZXJzL2NyeXB0by9zY2hlZHVsZXIv c2NoZWR1bGVyX3BtZC5jDQo+IGluZGV4IGE5MjIxYTk0Ni4uMjAxOThjY2IwIDEwMDY0NA0KPiAt LS0gYS9kcml2ZXJzL2NyeXB0by9zY2hlZHVsZXIvc2NoZWR1bGVyX3BtZC5jDQo+ICsrKyBiL2Ry aXZlcnMvY3J5cHRvL3NjaGVkdWxlci9zY2hlZHVsZXJfcG1kLmMNCj4gQEAgLTE0LDcgKzE0LDcg QEANCj4gICNpbmNsdWRlICJydGVfY3J5cHRvZGV2X3NjaGVkdWxlci5oIg0KPiAgI2luY2x1ZGUg InNjaGVkdWxlcl9wbWRfcHJpdmF0ZS5oIg0KPiANCj4gLXVpbnQ4X3QgY3J5cHRvZGV2X2RyaXZl cl9pZDsNCj4gK3VpbnQ4X3QgY3J5cHRvZGV2X3NjaGVkdWxlcl9kcml2ZXJfaWQ7DQo+IA0KPiAg c3RydWN0IHNjaGVkdWxlcl9pbml0X3BhcmFtcyB7DQo+ICAJc3RydWN0IHJ0ZV9jcnlwdG9kZXZf cG1kX2luaXRfcGFyYW1zIGRlZl9wOw0KPiBAQCAtMzgsNyArMzgsNyBAQCBzdHJ1Y3Qgc2NoZWR1 bGVyX2luaXRfcGFyYW1zIHsNCj4gICNkZWZpbmUgUlRFX0NSWVBUT0RFVl9WREVWX0NPUkVNQVNL CQkoImNvcmVtYXNrIikNCj4gICNkZWZpbmUgUlRFX0NSWVBUT0RFVl9WREVWX0NPUkVMSVNUCQko ImNvcmVsaXN0IikNCj4gDQo+IC1jb25zdCBjaGFyICpzY2hlZHVsZXJfdmFsaWRfcGFyYW1zW10g PSB7DQo+ICtzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNjaGVkdWxlcl92YWxpZF9wYXJhbXNb XSA9IHsNCj4gIAlSVEVfQ1JZUFRPREVWX1ZERVZfTkFNRSwNCj4gIAlSVEVfQ1JZUFRPREVWX1ZE RVZfU0xBVkUsDQo+ICAJUlRFX0NSWVBUT0RFVl9WREVWX01PREUsDQo+IEBAIC05MSw3ICs5MSw3 IEBAIGNyeXB0b2Rldl9zY2hlZHVsZXJfY3JlYXRlKGNvbnN0IGNoYXIgKm5hbWUsDQo+ICAJCXJl dHVybiAtRUZBVUxUOw0KPiAgCX0NCj4gDQo+IC0JZGV2LT5kcml2ZXJfaWQgPSBjcnlwdG9kZXZf ZHJpdmVyX2lkOw0KPiArCWRldi0+ZHJpdmVyX2lkID0gY3J5cHRvZGV2X3NjaGVkdWxlcl9kcml2 ZXJfaWQ7DQo+ICAJZGV2LT5kZXZfb3BzID0gcnRlX2NyeXB0b19zY2hlZHVsZXJfcG1kX29wczsN Cj4gDQo+ICAJc2NoZWRfY3R4ID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4gQEAgLTU2OSw0 ICs1NjksNCBAQA0KPiBSVEVfUE1EX1JFR0lTVEVSX1BBUkFNX1NUUklORyhDUllQVE9ERVZfTkFN RV9TQ0hFRFVMRVJfUE0NCj4gRCwNCj4gIAkic2xhdmU9PG5hbWU+Iik7DQo+ICBSVEVfUE1EX1JF R0lTVEVSX0NSWVBUT19EUklWRVIoc2NoZWR1bGVyX2NyeXB0b19kcnYsDQo+ICAJCWNyeXB0b2Rl dl9zY2hlZHVsZXJfcG1kX2Rydi5kcml2ZXIsDQo+IC0JCWNyeXB0b2Rldl9kcml2ZXJfaWQpOw0K PiArCQljcnlwdG9kZXZfc2NoZWR1bGVyX2RyaXZlcl9pZCk7DQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2NyeXB0by9zY2hlZHVsZXIvc2NoZWR1bGVyX3BtZF9vcHMuYw0KPiBiL2RyaXZlcnMvY3J5 cHRvL3NjaGVkdWxlci9zY2hlZHVsZXJfcG1kX29wcy5jDQo+IGluZGV4IDc3ODA3MWNhMC4uOTM5 MTA1YWE4IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2NyeXB0by9zY2hlZHVsZXIvc2NoZWR1bGVy X3BtZF9vcHMuYw0KPiArKysgYi9kcml2ZXJzL2NyeXB0by9zY2hlZHVsZXIvc2NoZWR1bGVyX3Bt ZF9vcHMuYw0KPiBAQCAtNTIyLDcgKzUyMiw3IEBAIHNjaGVkdWxlcl9wbWRfc3ltX3Nlc3Npb25f Y2xlYXIoc3RydWN0DQo+IHJ0ZV9jcnlwdG9kZXYgKmRldiwNCj4gIAl9DQo+ICB9DQo+IA0KPiAt c3RydWN0IHJ0ZV9jcnlwdG9kZXZfb3BzIHNjaGVkdWxlcl9wbWRfb3BzID0gew0KPiArc3RhdGlj IHN0cnVjdCBydGVfY3J5cHRvZGV2X29wcyBzY2hlZHVsZXJfcG1kX29wcyA9IHsNCj4gIAkJLmRl dl9jb25maWd1cmUJCT0gc2NoZWR1bGVyX3BtZF9jb25maWcsDQo+ICAJCS5kZXZfc3RhcnQJCT0g c2NoZWR1bGVyX3BtZF9zdGFydCwNCj4gIAkJLmRldl9zdG9wCQk9IHNjaGVkdWxlcl9wbWRfc3Rv cCwNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL3NjaGVkdWxlci9zY2hlZHVsZXJfcG1k X3ByaXZhdGUuaA0KPiBiL2RyaXZlcnMvY3J5cHRvL3NjaGVkdWxlci9zY2hlZHVsZXJfcG1kX3By aXZhdGUuaA0KPiBpbmRleCBkNWU2MDJhMmYuLjNlZDQ4MGMxOCAxMDA2NDQNCj4gLS0tIGEvZHJp dmVycy9jcnlwdG8vc2NoZWR1bGVyL3NjaGVkdWxlcl9wbWRfcHJpdmF0ZS5oDQo+ICsrKyBiL2Ry aXZlcnMvY3J5cHRvL3NjaGVkdWxlci9zY2hlZHVsZXJfcG1kX3ByaXZhdGUuaA0KPiBAQCAtNjMs NyArNjMsNyBAQCBzdHJ1Y3Qgc2NoZWR1bGVyX3FwX2N0eCB7DQo+ICB9IF9fcnRlX2NhY2hlX2Fs aWduZWQ7DQo+IA0KPiANCj4gLWV4dGVybiB1aW50OF90IGNyeXB0b2Rldl9kcml2ZXJfaWQ7DQo+ ICtleHRlcm4gdWludDhfdCBjcnlwdG9kZXZfc2NoZWR1bGVyX2RyaXZlcl9pZDsNCj4gDQo+ICBz dGF0aWMgX19ydGVfYWx3YXlzX2lubGluZSB1aW50MTZfdA0KPiAgZ2V0X21heF9lbnF1ZXVlX29y ZGVyX2NvdW50KHN0cnVjdCBydGVfcmluZyAqb3JkZXJfcmluZywgdWludDE2X3QNCj4gbmJfb3Bz KQ0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcnlwdG8vc2NoZWR1bGVyL3NjaGVkdWxlcl9yb3Vu ZHJvYmluLmMNCj4gYi9kcml2ZXJzL2NyeXB0by9zY2hlZHVsZXIvc2NoZWR1bGVyX3JvdW5kcm9i aW4uYw0KPiBpbmRleCBjNzA4MmE2NGUuLjliODkxZDk3OCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVy cy9jcnlwdG8vc2NoZWR1bGVyL3NjaGVkdWxlcl9yb3VuZHJvYmluLmMNCj4gKysrIGIvZHJpdmVy cy9jcnlwdG8vc2NoZWR1bGVyL3NjaGVkdWxlcl9yb3VuZHJvYmluLmMNCj4gQEAgLTE5MCw3ICsx OTAsNyBAQCBzY2hlZHVsZXJfY3JlYXRlX3ByaXZhdGVfY3R4KF9fcnRlX3VudXNlZCBzdHJ1Y3QN Cj4gcnRlX2NyeXB0b2RldiAqZGV2KQ0KPiAgCXJldHVybiAwOw0KPiAgfQ0KPiANCj4gLXN0cnVj dCBydGVfY3J5cHRvZGV2X3NjaGVkdWxlcl9vcHMgc2NoZWR1bGVyX3JyX29wcyA9IHsNCj4gK3N0 YXRpYyBzdHJ1Y3QgcnRlX2NyeXB0b2Rldl9zY2hlZHVsZXJfb3BzIHNjaGVkdWxlcl9ycl9vcHMg PSB7DQo+ICAJc2xhdmVfYXR0YWNoLA0KPiAgCXNsYXZlX2RldGFjaCwNCj4gIAlzY2hlZHVsZXJf c3RhcnQsDQo+IEBAIC0yMDEsNyArMjAxLDcgQEAgc3RydWN0IHJ0ZV9jcnlwdG9kZXZfc2NoZWR1 bGVyX29wcw0KPiBzY2hlZHVsZXJfcnJfb3BzID0gew0KPiAgCU5VTEwJLyogb3B0aW9uX2dldCAq Lw0KPiAgfTsNCj4gDQo+IC1zdHJ1Y3QgcnRlX2NyeXB0b2Rldl9zY2hlZHVsZXIgc2NoZWR1bGVy ID0gew0KPiArc3RhdGljIHN0cnVjdCBydGVfY3J5cHRvZGV2X3NjaGVkdWxlciBzY2hlZHVsZXIg PSB7DQo+ICAJCS5uYW1lID0gInJvdW5kcm9iaW4tc2NoZWR1bGVyIiwNCj4gIAkJLmRlc2NyaXB0 aW9uID0gInNjaGVkdWxlciB3aGljaCB3aWxsIHJvdW5kIHJvYmluIGJ1cnN0IGFjcm9zcyAiDQo+ ICAJCQkJInNsYXZlIGNyeXB0byBkZXZpY2VzIiwNCj4gQEAgLTIwOSw0ICsyMDksNCBAQCBzdHJ1 Y3QgcnRlX2NyeXB0b2Rldl9zY2hlZHVsZXIgc2NoZWR1bGVyID0gew0KPiAgCQkub3BzID0gJnNj aGVkdWxlcl9ycl9vcHMNCj4gIH07DQo+IA0KPiAtc3RydWN0IHJ0ZV9jcnlwdG9kZXZfc2NoZWR1 bGVyICpyb3VuZHJvYmluX3NjaGVkdWxlciA9ICZzY2hlZHVsZXI7DQo+ICtzdHJ1Y3QgcnRlX2Ny eXB0b2Rldl9zY2hlZHVsZXIgKmNyeXB0b19zY2hlZHVsZXJfcm91bmRyb2JpbiA9DQo+ICZzY2hl ZHVsZXI7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2V2ZW50L29jdGVvbnR4L3Nzb3ZmX2V2ZGV2 LmMNCj4gYi9kcml2ZXJzL2V2ZW50L29jdGVvbnR4L3Nzb3ZmX2V2ZGV2LmMNCj4gaW5kZXggYzVl ODkxY2RiLi5hMjczZDRjOTYgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZXZlbnQvb2N0ZW9udHgv c3NvdmZfZXZkZXYuYw0KPiArKysgYi9kcml2ZXJzL2V2ZW50L29jdGVvbnR4L3Nzb3ZmX2V2ZGV2 LmMNCj4gQEAgLTQ1NSw3ICs0NTUsNiBAQCBzc292Zl9ldGhfcnhfYWRhcHRlcl9xdWV1ZV9kZWwo Y29uc3Qgc3RydWN0DQo+IHJ0ZV9ldmVudGRldiAqZGV2LA0KPiAgCWNvbnN0IHN0cnVjdCBvY3Rl b250eF9uaWMgKm5pYyA9IGV0aF9kZXYtPmRhdGEtPmRldl9wcml2YXRlOw0KPiAgCXBraV9kZWxf cW9zX3QgcGtpX3FvczsNCj4gIAlSVEVfU0VUX1VTRUQoZGV2KTsNCj4gLQlSVEVfU0VUX1VTRUQo cnhfcXVldWVfaWQpOw0KPiANCj4gIAlyZXQgPSBzdHJuY21wKGV0aF9kZXYtPmRhdGEtPm5hbWUs ICJldGhfb2N0ZW9udHgiLCAxMik7DQo+ICAJaWYgKHJldCkNCj4gQEAgLTQ2Nyw3ICs0NjYsNyBA QCBzc292Zl9ldGhfcnhfYWRhcHRlcl9xdWV1ZV9kZWwoY29uc3Qgc3RydWN0DQo+IHJ0ZV9ldmVu dGRldiAqZGV2LA0KPiAgCXJldCA9IG9jdGVvbnR4X3BraV9wb3J0X2RlbGV0ZV9xb3MobmljLT5w b3J0X2lkLCAmcGtpX3Fvcyk7DQo+ICAJaWYgKHJldCA8IDApDQo+ICAJCXNzb3ZmX2xvZ19lcnIo IkZhaWxlZCB0byBkZWxldGUgUU9TIHBvcnQ9JWQsIHE9JWQiLA0KPiAtCQkJCW5pYy0+cG9ydF9p ZCwgcXVldWVfY29uZi0+ZXYucXVldWVfaWQpOw0KPiArCQkJCW5pYy0+cG9ydF9pZCwgcnhfcXVl dWVfaWQpOw0KPiAgCXJldHVybiByZXQ7DQo+ICB9DQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9tZW1wb29sL2RwYWEvZHBhYV9tZW1wb29sLmMNCj4gYi9kcml2ZXJzL21lbXBvb2wvZHBhYS9k cGFhX21lbXBvb2wuYw0KPiBpbmRleCAxYzEyMTIyM2IuLjgwNTJkM2I2NiAxMDA2NDQNCj4gLS0t IGEvZHJpdmVycy9tZW1wb29sL2RwYWEvZHBhYV9tZW1wb29sLmMNCj4gKysrIGIvZHJpdmVycy9t ZW1wb29sL2RwYWEvZHBhYV9tZW1wb29sLmMNCj4gQEAgLTMyNCw3ICszMjQsNyBAQCBkcGFhX3Bv cHVsYXRlKHN0cnVjdCBydGVfbWVtcG9vbCAqbXAsIHVuc2lnbmVkDQo+IGludCBtYXhfb2JqcywN Cj4gIAkJCQkJICAgICAgIG9ial9jYiwgb2JqX2NiX2FyZyk7DQo+ICB9DQo+IA0KPiAtc3RydWN0 IHJ0ZV9tZW1wb29sX29wcyBkcGFhX21wb29sX29wcyA9IHsNCj4gK3N0YXRpYyBzdHJ1Y3QgcnRl X21lbXBvb2xfb3BzIGRwYWFfbXBvb2xfb3BzID0gew0KPiAgCS5uYW1lID0gRFBBQV9NRU1QT09M X09QU19OQU1FLA0KPiAgCS5hbGxvYyA9IGRwYWFfbWJ1Zl9jcmVhdGVfcG9vbCwNCj4gIAkuZnJl ZSA9IGRwYWFfbWJ1Zl9mcmVlX3Bvb2wsDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lbXBvb2wv ZHBhYTIvZHBhYTJfaHdfbWVtcG9vbC5jDQo+IGIvZHJpdmVycy9tZW1wb29sL2RwYWEyL2RwYWEy X2h3X21lbXBvb2wuYw0KPiBpbmRleCA4NGZmMTI4MTEuLmZmYTBlMzJhNCAxMDA2NDQNCj4gLS0t IGEvZHJpdmVycy9tZW1wb29sL2RwYWEyL2RwYWEyX2h3X21lbXBvb2wuYw0KPiArKysgYi9kcml2 ZXJzL21lbXBvb2wvZHBhYTIvZHBhYTJfaHdfbWVtcG9vbC5jDQo+IEBAIC00MjMsNyArNDIzLDcg QEAgZHBhYTJfcG9wdWxhdGUoc3RydWN0IHJ0ZV9tZW1wb29sICptcCwgdW5zaWduZWQNCj4gaW50 IG1heF9vYmpzLA0KPiAgCQkJCQkgICAgICAgb2JqX2NiLCBvYmpfY2JfYXJnKTsNCj4gIH0NCj4g DQo+IC1zdHJ1Y3QgcnRlX21lbXBvb2xfb3BzIGRwYWEyX21wb29sX29wcyA9IHsNCj4gK3N0YXRp YyBzdHJ1Y3QgcnRlX21lbXBvb2xfb3BzIGRwYWEyX21wb29sX29wcyA9IHsNCj4gIAkubmFtZSA9 IERQQUEyX01FTVBPT0xfT1BTX05BTUUsDQo+ICAJLmFsbG9jID0gcnRlX2h3X21idWZfY3JlYXRl X3Bvb2wsDQo+ICAJLmZyZWUgPSBydGVfaHdfbWJ1Zl9mcmVlX3Bvb2wsDQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9ib25kaW5nL3J0ZV9ldGhfYm9uZF84MDIzYWQuYw0KPiBiL2RyaXZlcnMv bmV0L2JvbmRpbmcvcnRlX2V0aF9ib25kXzgwMjNhZC5jDQo+IGluZGV4IGY4Y2VhNGI2ZC4uZGQ4 NDdjNmY2IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC9ib25kaW5nL3J0ZV9ldGhfYm9uZF84 MDIzYWQuYw0KPiArKysgYi9kcml2ZXJzL25ldC9ib25kaW5nL3J0ZV9ldGhfYm9uZF84MDIzYWQu Yw0KPiBAQCAtMTMwLDcgKzEzMCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZXRoZXJfYWRkciBs YWNwX21hY19hZGRyID0gew0KPiAgCS5hZGRyX2J5dGVzID0geyAweDAxLCAweDgwLCAweEMyLCAw eDAwLCAweDAwLCAweDAyIH0NCj4gIH07DQo+IA0KPiAtc3RydWN0IHBvcnQgbW9kZV84MDIzYWRf cG9ydHNbUlRFX01BWF9FVEhQT1JUU107DQo+ICtzdHJ1Y3QgcG9ydCBib25kX21vZGVfODAyM2Fk X3BvcnRzW1JURV9NQVhfRVRIUE9SVFNdOw0KPiANCj4gIHN0YXRpYyB2b2lkDQo+ICB0aW1lcl9j YW5jZWwodWludDY0X3QgKnRpbWVyKQ0KPiBAQCAtMTg3LDcgKzE4Nyw3IEBAIHNldF93YXJuaW5n X2ZsYWdzKHN0cnVjdCBwb3J0ICpwb3J0LCB1aW50MTZfdCBmbGFncykNCj4gIHN0YXRpYyB2b2lk DQo+ICBzaG93X3dhcm5pbmdzKHVpbnQxNl90IHNsYXZlX2lkKQ0KPiAgew0KPiAtCXN0cnVjdCBw b3J0ICpwb3J0ID0gJm1vZGVfODAyM2FkX3BvcnRzW3NsYXZlX2lkXTsNCj4gKwlzdHJ1Y3QgcG9y dCAqcG9ydCA9ICZib25kX21vZGVfODAyM2FkX3BvcnRzW3NsYXZlX2lkXTsNCj4gIAl1aW50OF90 IHdhcm5pbmdzOw0KPiANCj4gIAlkbyB7DQo+IEBAIC0yNjAsNyArMjYwLDcgQEAgc3RhdGljIHZv aWQNCj4gIHJ4X21hY2hpbmUoc3RydWN0IGJvbmRfZGV2X3ByaXZhdGUgKmludGVybmFscywgdWlu dDE2X3Qgc2xhdmVfaWQsDQo+ICAJCXN0cnVjdCBsYWNwZHUgKmxhY3ApDQo+ICB7DQo+IC0Jc3Ry dWN0IHBvcnQgKmFnZywgKnBvcnQgPSAmbW9kZV84MDIzYWRfcG9ydHNbc2xhdmVfaWRdOw0KPiAr CXN0cnVjdCBwb3J0ICphZ2csICpwb3J0ID0gJmJvbmRfbW9kZV84MDIzYWRfcG9ydHNbc2xhdmVf aWRdOw0KPiAgCXVpbnQ2NF90IHRpbWVvdXQ7DQo+IA0KPiAgCWlmIChTTV9GTEFHKHBvcnQsIEJF R0lOKSkgew0KPiBAQCAtMzE5LDcgKzMxOSw3IEBAIHJ4X21hY2hpbmUoc3RydWN0IGJvbmRfZGV2 X3ByaXZhdGUgKmludGVybmFscywNCj4gdWludDE2X3Qgc2xhdmVfaWQsDQo+ICAJCUFDVE9SX1NU QVRFX0NMUihwb3J0LCBERUZBVUxURUQpOw0KPiANCj4gIAkJLyogSWYgTEFDUCBwYXJ0bmVyIHBh cmFtcyBtYXRjaCB0aGlzIHBvcnQgYWN0b3IgcGFyYW1zICovDQo+IC0JCWFnZyA9ICZtb2RlXzgw MjNhZF9wb3J0c1twb3J0LT5hZ2dyZWdhdG9yX3BvcnRfaWRdOw0KPiArCQlhZ2cgPSAmYm9uZF9t b2RlXzgwMjNhZF9wb3J0c1twb3J0LQ0KPiA+YWdncmVnYXRvcl9wb3J0X2lkXTsNCj4gIAkJYm9v bCBtYXRjaCA9IHBvcnQtPmFjdG9yLnN5c3RlbV9wcmlvcml0eSA9PQ0KPiAgCQkJbGFjcC0+cGFy dG5lci5wb3J0X3BhcmFtcy5zeXN0ZW1fcHJpb3JpdHkgJiYNCj4gIAkJCWlzX3NhbWVfZXRoZXJf YWRkcigmYWdnLT5hY3Rvci5zeXN0ZW0sDQo+IEBAIC0zODAsNyArMzgwLDcgQEAgcnhfbWFjaGlu ZShzdHJ1Y3QgYm9uZF9kZXZfcHJpdmF0ZSAqaW50ZXJuYWxzLA0KPiB1aW50MTZfdCBzbGF2ZV9p ZCwNCj4gIHN0YXRpYyB2b2lkDQo+ICBwZXJpb2RpY19tYWNoaW5lKHN0cnVjdCBib25kX2Rldl9w cml2YXRlICppbnRlcm5hbHMsIHVpbnQxNl90IHNsYXZlX2lkKQ0KPiAgew0KPiAtCXN0cnVjdCBw b3J0ICpwb3J0ID0gJm1vZGVfODAyM2FkX3BvcnRzW3NsYXZlX2lkXTsNCj4gKwlzdHJ1Y3QgcG9y dCAqcG9ydCA9ICZib25kX21vZGVfODAyM2FkX3BvcnRzW3NsYXZlX2lkXTsNCj4gIAkvKiBDYWxj dWxhdGUgaWYgZWl0aGVyIHNpdGUgaXMgTEFDUCBlbmFibGVkICovDQo+ICAJdWludDY0X3QgdGlt ZW91dDsNCj4gIAl1aW50OF90IGFjdGl2ZSA9IEFDVE9SX1NUQVRFKHBvcnQsIExBQ1BfQUNUSVZF KSB8fA0KPiBAQCAtNDQyLDcgKzQ0Miw3IEBAIHBlcmlvZGljX21hY2hpbmUoc3RydWN0IGJvbmRf ZGV2X3ByaXZhdGUNCj4gKmludGVybmFscywgdWludDE2X3Qgc2xhdmVfaWQpDQo+ICBzdGF0aWMg dm9pZA0KPiAgbXV4X21hY2hpbmUoc3RydWN0IGJvbmRfZGV2X3ByaXZhdGUgKmludGVybmFscywg dWludDE2X3Qgc2xhdmVfaWQpDQo+ICB7DQo+IC0Jc3RydWN0IHBvcnQgKnBvcnQgPSAmbW9kZV84 MDIzYWRfcG9ydHNbc2xhdmVfaWRdOw0KPiArCXN0cnVjdCBwb3J0ICpwb3J0ID0gJmJvbmRfbW9k ZV84MDIzYWRfcG9ydHNbc2xhdmVfaWRdOw0KPiANCj4gIAkvKiBTYXZlIGN1cnJlbnQgc3RhdGUg Zm9yIGxhdGVyIHVzZSAqLw0KPiAgCWNvbnN0IHVpbnQ4X3Qgc3RhdGVfbWFzayA9IFNUQVRFX1NZ TkNIUk9OSVpBVElPTiB8DQo+IFNUQVRFX0RJU1RSSUJVVElORyB8DQo+IEBAIC01NDUsNyArNTQ1 LDcgQEAgbXV4X21hY2hpbmUoc3RydWN0IGJvbmRfZGV2X3ByaXZhdGUgKmludGVybmFscywNCj4g dWludDE2X3Qgc2xhdmVfaWQpDQo+ICBzdGF0aWMgdm9pZA0KPiAgdHhfbWFjaGluZShzdHJ1Y3Qg Ym9uZF9kZXZfcHJpdmF0ZSAqaW50ZXJuYWxzLCB1aW50MTZfdCBzbGF2ZV9pZCkNCj4gIHsNCj4g LQlzdHJ1Y3QgcG9ydCAqYWdnLCAqcG9ydCA9ICZtb2RlXzgwMjNhZF9wb3J0c1tzbGF2ZV9pZF07 DQo+ICsJc3RydWN0IHBvcnQgKmFnZywgKnBvcnQgPSAmYm9uZF9tb2RlXzgwMjNhZF9wb3J0c1tz bGF2ZV9pZF07DQo+IA0KPiAgCXN0cnVjdCBydGVfbWJ1ZiAqbGFjcF9wa3QgPSBOVUxMOw0KPiAg CXN0cnVjdCBsYWNwZHVfaGVhZGVyICpoZHI7DQo+IEBAIC01OTEsNyArNTkxLDcgQEAgdHhfbWFj aGluZShzdHJ1Y3QgYm9uZF9kZXZfcHJpdmF0ZSAqaW50ZXJuYWxzLA0KPiB1aW50MTZfdCBzbGF2 ZV9pZCkNCj4gIAlsYWNwZHUtPmFjdG9yLmluZm9fbGVuZ3RoID0gc2l6ZW9mKHN0cnVjdA0KPiBs YWNwZHVfYWN0b3JfcGFydG5lcl9wYXJhbXMpOw0KPiAgCW1lbWNweSgmaGRyLT5sYWNwZHUuYWN0 b3IucG9ydF9wYXJhbXMsICZwb3J0LT5hY3RvciwNCj4gIAkJCXNpemVvZihwb3J0LT5hY3Rvcikp Ow0KPiAtCWFnZyA9ICZtb2RlXzgwMjNhZF9wb3J0c1twb3J0LT5hZ2dyZWdhdG9yX3BvcnRfaWRd Ow0KPiArCWFnZyA9ICZib25kX21vZGVfODAyM2FkX3BvcnRzW3BvcnQtPmFnZ3JlZ2F0b3JfcG9y dF9pZF07DQo+ICAJZXRoZXJfYWRkcl9jb3B5KCZhZ2ctPmFjdG9yLnN5c3RlbSwgJmhkci0NCj4g PmxhY3BkdS5hY3Rvci5wb3J0X3BhcmFtcy5zeXN0ZW0pOw0KPiAgCWxhY3BkdS0+YWN0b3Iuc3Rh dGUgPSBwb3J0LT5hY3Rvcl9zdGF0ZTsNCj4gDQo+IEBAIC02NzcsMTEgKzY3NywxMSBAQCBzZWxl Y3Rpb25fbG9naWMoc3RydWN0IGJvbmRfZGV2X3ByaXZhdGUgKmludGVybmFscywNCj4gdWludDhf dCBzbGF2ZV9pZCkNCj4gDQo+ICAJc2xhdmVzID0gaW50ZXJuYWxzLT5hY3RpdmVfc2xhdmVzOw0K PiAgCXNsYXZlc19jb3VudCA9IGludGVybmFscy0+YWN0aXZlX3NsYXZlX2NvdW50Ow0KPiAtCXBv cnQgPSAmbW9kZV84MDIzYWRfcG9ydHNbc2xhdmVfaWRdOw0KPiArCXBvcnQgPSAmYm9uZF9tb2Rl XzgwMjNhZF9wb3J0c1tzbGF2ZV9pZF07DQo+IA0KPiAgCS8qIFNlYXJjaCBmb3IgYWdncmVnYXRv ciBzdWl0YWJsZSBmb3IgdGhpcyBwb3J0ICovDQo+ICAJZm9yIChpID0gMDsgaSA8IHNsYXZlc19j b3VudDsgKytpKSB7DQo+IC0JCWFnZyA9ICZtb2RlXzgwMjNhZF9wb3J0c1tzbGF2ZXNbaV1dOw0K PiArCQlhZ2cgPSAmYm9uZF9tb2RlXzgwMjNhZF9wb3J0c1tzbGF2ZXNbaV1dOw0KPiAgCQkvKiBT a2lwIHBvcnRzIHRoYXQgYXJlIG5vdCBhZ2dyZWFnYXRvcnMgKi8NCj4gIAkJaWYgKGFnZy0+YWdn cmVnYXRvcl9wb3J0X2lkICE9IHNsYXZlc1tpXSkNCj4gIAkJCWNvbnRpbnVlOw0KPiBAQCAtODI0 LDcgKzgyNCw3IEBAIGJvbmRfbW9kZV84MDIzYWRfcGVyaW9kaWNfY2Iodm9pZCAqYXJnKQ0KPiAg CQl9IGVsc2UNCj4gIAkJCWtleSA9IDA7DQo+IA0KPiAtCQlwb3J0ID0gJm1vZGVfODAyM2FkX3Bv cnRzW3NsYXZlX2lkXTsNCj4gKwkJcG9ydCA9ICZib25kX21vZGVfODAyM2FkX3BvcnRzW3NsYXZl X2lkXTsNCj4gDQo+ICAJCWtleSA9IHJ0ZV9jcHVfdG9fYmVfMTYoa2V5KTsNCj4gIAkJaWYgKGtl eSAhPSBwb3J0LT5hY3Rvci5rZXkpIHsNCj4gQEAgLTg0NCw3ICs4NDQsNyBAQCBib25kX21vZGVf ODAyM2FkX3BlcmlvZGljX2NiKHZvaWQgKmFyZykNCj4gDQo+ICAJZm9yIChpID0gMDsgaSA8IGlu dGVybmFscy0+YWN0aXZlX3NsYXZlX2NvdW50OyBpKyspIHsNCj4gIAkJc2xhdmVfaWQgPSBpbnRl cm5hbHMtPmFjdGl2ZV9zbGF2ZXNbaV07DQo+IC0JCXBvcnQgPSAmbW9kZV84MDIzYWRfcG9ydHNb c2xhdmVfaWRdOw0KPiArCQlwb3J0ID0gJmJvbmRfbW9kZV84MDIzYWRfcG9ydHNbc2xhdmVfaWRd Ow0KPiANCj4gIAkJaWYgKChwb3J0LT5hY3Rvci5rZXkgJg0KPiANCj4gCXJ0ZV9jcHVfdG9fYmVf MTYoQk9ORF9MSU5LX0ZVTExfRFVQTEVYX0tFWSkpID09IDApIHsNCj4gQEAgLTkwNyw3ICs5MDcs NyBAQCBib25kX21vZGVfODAyM2FkX2FjdGl2YXRlX3NsYXZlKHN0cnVjdA0KPiBydGVfZXRoX2Rl diAqYm9uZF9kZXYsDQo+ICB7DQo+ICAJc3RydWN0IGJvbmRfZGV2X3ByaXZhdGUgKmludGVybmFs cyA9IGJvbmRfZGV2LT5kYXRhLQ0KPiA+ZGV2X3ByaXZhdGU7DQo+IA0KPiAtCXN0cnVjdCBwb3J0 ICpwb3J0ID0gJm1vZGVfODAyM2FkX3BvcnRzW3NsYXZlX2lkXTsNCj4gKwlzdHJ1Y3QgcG9ydCAq cG9ydCA9ICZib25kX21vZGVfODAyM2FkX3BvcnRzW3NsYXZlX2lkXTsNCj4gIAlzdHJ1Y3QgcG9y dF9wYXJhbXMgaW5pdGlhbCA9IHsNCj4gIAkJCS5zeXN0ZW0gPSB7IHsgMCB9IH0sDQo+ICAJCQku c3lzdGVtX3ByaW9yaXR5ID0gcnRlX2NwdV90b19iZV8xNigweEZGRkYpLA0KPiBAQCAtMTAwOCw3 ICsxMDA4LDcgQEAgYm9uZF9tb2RlXzgwMjNhZF9kZWFjdGl2YXRlX3NsYXZlKHN0cnVjdA0KPiBy dGVfZXRoX2RldiAqYm9uZF9kZXYgX19ydGVfdW51c2VkLA0KPiAgCXN0cnVjdCBwb3J0ICpwb3J0 ID0gTlVMTDsNCj4gIAl1aW50OF90IG9sZF9wYXJ0bmVyX3N0YXRlOw0KPiANCj4gLQlwb3J0ID0g Jm1vZGVfODAyM2FkX3BvcnRzW3NsYXZlX2lkXTsNCj4gKwlwb3J0ID0gJmJvbmRfbW9kZV84MDIz YWRfcG9ydHNbc2xhdmVfaWRdOw0KPiANCj4gIAlBQ1RPUl9TVEFURV9DTFIocG9ydCwgQUdHUkVH QVRJT04pOw0KPiAgCXBvcnQtPnNlbGVjdGVkID0gVU5TRUxFQ1RFRDsNCj4gQEAgLTEwNDUsNyAr MTA0NSw3IEBAIGJvbmRfbW9kZV84MDIzYWRfbWFjX2FkZHJlc3NfdXBkYXRlKHN0cnVjdA0KPiBy dGVfZXRoX2RldiAqYm9uZF9kZXYpDQo+IA0KPiAgCWZvciAoaSA9IDA7IGkgPCBpbnRlcm5hbHMt PmFjdGl2ZV9zbGF2ZV9jb3VudDsgaSsrKSB7DQo+ICAJCXNsYXZlX2lkID0gaW50ZXJuYWxzLT5h Y3RpdmVfc2xhdmVzW2ldOw0KPiAtCQlzbGF2ZSA9ICZtb2RlXzgwMjNhZF9wb3J0c1tzbGF2ZV9p ZF07DQo+ICsJCXNsYXZlID0gJmJvbmRfbW9kZV84MDIzYWRfcG9ydHNbc2xhdmVfaWRdOw0KPiAg CQlydGVfZXRoX21hY2FkZHJfZ2V0KHNsYXZlX2lkLCAmc2xhdmVfYWRkcik7DQo+IA0KPiAgCQlp ZiAoaXNfc2FtZV9ldGhlcl9hZGRyKCZzbGF2ZV9hZGRyLCAmc2xhdmUtDQo+ID5hY3Rvci5zeXN0 ZW0pKQ0KPiBAQCAtMTA1OCw3ICsxMDU4LDcgQEAgYm9uZF9tb2RlXzgwMjNhZF9tYWNfYWRkcmVz c191cGRhdGUoc3RydWN0DQo+IHJ0ZV9ldGhfZGV2ICpib25kX2RldikNCj4gIAkJCWNvbnRpbnVl Ow0KPiANCj4gIAkJZm9yIChqID0gMDsgaiA8IGludGVybmFscy0+YWN0aXZlX3NsYXZlX2NvdW50 OyBqKyspIHsNCj4gLQkJCWFnZ19zbGF2ZSA9ICZtb2RlXzgwMjNhZF9wb3J0c1tpbnRlcm5hbHMt DQo+ID5hY3RpdmVfc2xhdmVzW2pdXTsNCj4gKwkJCWFnZ19zbGF2ZSA9ICZib25kX21vZGVfODAy M2FkX3BvcnRzW2ludGVybmFscy0NCj4gPmFjdGl2ZV9zbGF2ZXNbal1dOw0KPiAgCQkJaWYgKGFn Z19zbGF2ZS0+YWdncmVnYXRvcl9wb3J0X2lkID09IHNsYXZlX2lkKQ0KPiAgCQkJCVNNX0ZMQUdf U0VUKGFnZ19zbGF2ZSwgTlRUKTsNCj4gIAkJfQ0KPiBAQCAtMTE5MSw3ICsxMTkxLDcgQEAgYm9u ZF9tb2RlXzgwMjNhZF9oYW5kbGVfc2xvd19wa3Qoc3RydWN0DQo+IGJvbmRfZGV2X3ByaXZhdGUg KmludGVybmFscywNCj4gIAkJCQkgIHVpbnQxNl90IHNsYXZlX2lkLCBzdHJ1Y3QgcnRlX21idWYg KnBrdCkNCj4gIHsNCj4gIAlzdHJ1Y3QgbW9kZTgwMjNhZF9wcml2YXRlICptb2RlNCA9ICZpbnRl cm5hbHMtPm1vZGU0Ow0KPiAtCXN0cnVjdCBwb3J0ICpwb3J0ID0gJm1vZGVfODAyM2FkX3BvcnRz W3NsYXZlX2lkXTsNCj4gKwlzdHJ1Y3QgcG9ydCAqcG9ydCA9ICZib25kX21vZGVfODAyM2FkX3Bv cnRzW3NsYXZlX2lkXTsNCj4gIAlzdHJ1Y3QgbWFya2VyX2hlYWRlciAqbV9oZHI7DQo+ICAJdWlu dDY0X3QgbWFya2VyX3RpbWVyLCBvbGRfbWFya2VyX3RpbWVyOw0KPiAgCWludCByZXR2YWw7DQo+ IEBAIC0xMzk1LDcgKzEzOTUsNyBAQCBydGVfZXRoX2JvbmRfODAyM2FkX3NsYXZlX2luZm8odWlu dDE2X3QNCj4gcG9ydF9pZCwgdWludDE2X3Qgc2xhdmVfaWQsDQo+ICAJCQkJaW50ZXJuYWxzLT5h Y3RpdmVfc2xhdmVfY291bnQpDQo+ICAJCXJldHVybiAtRUlOVkFMOw0KPiANCj4gLQlwb3J0ID0g Jm1vZGVfODAyM2FkX3BvcnRzW3NsYXZlX2lkXTsNCj4gKwlwb3J0ID0gJmJvbmRfbW9kZV84MDIz YWRfcG9ydHNbc2xhdmVfaWRdOw0KPiAgCWluZm8tPnNlbGVjdGVkID0gcG9ydC0+c2VsZWN0ZWQ7 DQo+IA0KPiAgCWluZm8tPmFjdG9yX3N0YXRlID0gcG9ydC0+YWN0b3Jfc3RhdGU7DQo+IEBAIC0x NDQ3LDcgKzE0NDcsNyBAQCBydGVfZXRoX2JvbmRfODAyM2FkX2V4dF9jb2xsZWN0KHVpbnQxNl90 DQo+IHBvcnRfaWQsIHVpbnQxNl90IHNsYXZlX2lkLA0KPiAgCWlmIChyZXMgIT0gMCkNCj4gIAkJ cmV0dXJuIHJlczsNCj4gDQo+IC0JcG9ydCA9ICZtb2RlXzgwMjNhZF9wb3J0c1tzbGF2ZV9pZF07 DQo+ICsJcG9ydCA9ICZib25kX21vZGVfODAyM2FkX3BvcnRzW3NsYXZlX2lkXTsNCj4gDQo+ICAJ aWYgKGVuYWJsZWQpDQo+ICAJCUFDVE9SX1NUQVRFX1NFVChwb3J0LCBDT0xMRUNUSU5HKTsNCj4g QEAgLTE0NjgsNyArMTQ2OCw3IEBAIHJ0ZV9ldGhfYm9uZF84MDIzYWRfZXh0X2Rpc3RyaWIodWlu dDE2X3QNCj4gcG9ydF9pZCwgdWludDE2X3Qgc2xhdmVfaWQsDQo+ICAJaWYgKHJlcyAhPSAwKQ0K PiAgCQlyZXR1cm4gcmVzOw0KPiANCj4gLQlwb3J0ID0gJm1vZGVfODAyM2FkX3BvcnRzW3NsYXZl X2lkXTsNCj4gKwlwb3J0ID0gJmJvbmRfbW9kZV84MDIzYWRfcG9ydHNbc2xhdmVfaWRdOw0KPiAN Cj4gIAlpZiAoZW5hYmxlZCkNCj4gIAkJQUNUT1JfU1RBVEVfU0VUKHBvcnQsIERJU1RSSUJVVElO Ryk7DQo+IEBAIC0xNDg4LDcgKzE0ODgsNyBAQCBydGVfZXRoX2JvbmRfODAyM2FkX2V4dF9kaXN0 cmliX2dldCh1aW50MTZfdA0KPiBwb3J0X2lkLCB1aW50MTZfdCBzbGF2ZV9pZCkNCj4gIAlpZiAo ZXJyICE9IDApDQo+ICAJCXJldHVybiBlcnI7DQo+IA0KPiAtCXBvcnQgPSAmbW9kZV84MDIzYWRf cG9ydHNbc2xhdmVfaWRdOw0KPiArCXBvcnQgPSAmYm9uZF9tb2RlXzgwMjNhZF9wb3J0c1tzbGF2 ZV9pZF07DQo+ICAJcmV0dXJuIEFDVE9SX1NUQVRFKHBvcnQsIERJU1RSSUJVVElORyk7DQo+ICB9 DQo+IA0KPiBAQCAtMTUwMiw3ICsxNTAyLDcgQEAgcnRlX2V0aF9ib25kXzgwMjNhZF9leHRfY29s bGVjdF9nZXQodWludDE2X3QNCj4gcG9ydF9pZCwgdWludDE2X3Qgc2xhdmVfaWQpDQo+ICAJaWYg KGVyciAhPSAwKQ0KPiAgCQlyZXR1cm4gZXJyOw0KPiANCj4gLQlwb3J0ID0gJm1vZGVfODAyM2Fk X3BvcnRzW3NsYXZlX2lkXTsNCj4gKwlwb3J0ID0gJmJvbmRfbW9kZV84MDIzYWRfcG9ydHNbc2xh dmVfaWRdOw0KPiAgCXJldHVybiBBQ1RPUl9TVEFURShwb3J0LCBDT0xMRUNUSU5HKTsNCj4gIH0N Cj4gDQo+IEBAIC0xNTE3LDcgKzE1MTcsNyBAQCBydGVfZXRoX2JvbmRfODAyM2FkX2V4dF9zbG93 dHgodWludDE2X3QNCj4gcG9ydF9pZCwgdWludDE2X3Qgc2xhdmVfaWQsDQo+ICAJaWYgKHJlcyAh PSAwKQ0KPiAgCQlyZXR1cm4gcmVzOw0KPiANCj4gLQlwb3J0ID0gJm1vZGVfODAyM2FkX3BvcnRz W3NsYXZlX2lkXTsNCj4gKwlwb3J0ID0gJmJvbmRfbW9kZV84MDIzYWRfcG9ydHNbc2xhdmVfaWRd Ow0KPiANCj4gIAlpZiAocnRlX3BrdG1idWZfcGt0X2xlbihsYWNwX3BrdCkgPCBzaXplb2Yoc3Ry dWN0IGxhY3BkdV9oZWFkZXIpKQ0KPiAgCQlyZXR1cm4gLUVJTlZBTDsNCj4gQEAgLTE1NDYsNyAr MTU0Niw3IEBAIGJvbmRfbW9kZV84MDIzYWRfZXh0X3BlcmlvZGljX2NiKHZvaWQgKmFyZykNCj4g DQo+ICAJZm9yIChpID0gMDsgaSA8IGludGVybmFscy0+YWN0aXZlX3NsYXZlX2NvdW50OyBpKysp IHsNCj4gIAkJc2xhdmVfaWQgPSBpbnRlcm5hbHMtPmFjdGl2ZV9zbGF2ZXNbaV07DQo+IC0JCXBv cnQgPSAmbW9kZV84MDIzYWRfcG9ydHNbc2xhdmVfaWRdOw0KPiArCQlwb3J0ID0gJmJvbmRfbW9k ZV84MDIzYWRfcG9ydHNbc2xhdmVfaWRdOw0KPiANCj4gIAkJaWYgKHJ0ZV9yaW5nX2RlcXVldWUo cG9ydC0+cnhfcmluZywgJnBrdCkgPT0gMCkgew0KPiAgCQkJc3RydWN0IHJ0ZV9tYnVmICpsYWNw X3BrdCA9IHBrdDsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2JvbmRpbmcvcnRlX2V0aF9i b25kXzgwMjNhZF9wcml2YXRlLmgNCj4gYi9kcml2ZXJzL25ldC9ib25kaW5nL3J0ZV9ldGhfYm9u ZF84MDIzYWRfcHJpdmF0ZS5oDQo+IGluZGV4IDBmNDkwYTUxNS4uYzUxNDI2Yjg1IDEwMDY0NA0K PiAtLS0gYS9kcml2ZXJzL25ldC9ib25kaW5nL3J0ZV9ldGhfYm9uZF84MDIzYWRfcHJpdmF0ZS5o DQo+ICsrKyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcvcnRlX2V0aF9ib25kXzgwMjNhZF9wcml2YXRl LmgNCj4gQEAgLTE3NCw3ICsxNzQsNyBAQCBzdHJ1Y3QgbW9kZTgwMjNhZF9wcml2YXRlIHsNCj4g ICAqIFRoZSBwb29sIG9mICpwb3J0KiBzdHJ1Y3R1cmVzLiBUaGUgc2l6ZSBvZiB0aGUgcG9vbA0K PiAgICogaXMgY29uZmlndXJlZCBhdCBjb21waWxlLXRpbWUgaW4gdGhlIDxydGVfZXRoX2JvbmRf ODAyM2FkLmM+IGZpbGUuDQo+ICAgKi8NCj4gLWV4dGVybiBzdHJ1Y3QgcG9ydCBtb2RlXzgwMjNh ZF9wb3J0c1tdOw0KPiArZXh0ZXJuIHN0cnVjdCBwb3J0IGJvbmRfbW9kZV84MDIzYWRfcG9ydHNb XTsNCj4gDQo+ICAvKiBGb3J3YXJkIGRlY2xhcmF0aW9uICovDQo+ICBzdHJ1Y3QgYm9uZF9kZXZf cHJpdmF0ZTsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2JvbmRpbmcvcnRlX2V0aF9ib25k X3BtZC5jDQo+IGIvZHJpdmVycy9uZXQvYm9uZGluZy9ydGVfZXRoX2JvbmRfcG1kLmMNCj4gaW5k ZXggMWQ2MjQ1YWE1Li5hN2I1OTJlZWQgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L2JvbmRp bmcvcnRlX2V0aF9ib25kX3BtZC5jDQo+ICsrKyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcvcnRlX2V0 aF9ib25kX3BtZC5jDQo+IEBAIC0zMzQsNyArMzM0LDcgQEAgYm9uZF9ldGhkZXZfdHhfYnVyc3Rf ODAyM2FkX2Zhc3RfcXVldWUodm9pZA0KPiAqcXVldWUsIHN0cnVjdCBydGVfbWJ1ZiAqKmJ1ZnMs DQo+IA0KPiAgCWRpc3Rfc2xhdmVfY291bnQgPSAwOw0KPiAgCWZvciAoaSA9IDA7IGkgPCBzbGF2 ZV9jb3VudDsgaSsrKSB7DQo+IC0JCXN0cnVjdCBwb3J0ICpwb3J0ID0gJm1vZGVfODAyM2FkX3Bv cnRzW3NsYXZlX3BvcnRfaWRzW2ldXTsNCj4gKwkJc3RydWN0IHBvcnQgKnBvcnQgPQ0KPiAmYm9u ZF9tb2RlXzgwMjNhZF9wb3J0c1tzbGF2ZV9wb3J0X2lkc1tpXV07DQo+IA0KPiAgCQlpZiAoQUNU T1JfU1RBVEUocG9ydCwgRElTVFJJQlVUSU5HKSkNCj4gIAkJCWRpc3Rfc2xhdmVfcG9ydF9pZHNb ZGlzdF9zbGF2ZV9jb3VudCsrXSA9DQo+IEBAIC00MjAsNyArNDIwLDcgQEAgYm9uZF9ldGhkZXZf cnhfYnVyc3RfODAyM2FkKHZvaWQgKnF1ZXVlLCBzdHJ1Y3QNCj4gcnRlX21idWYgKipidWZzLA0K PiAgCX0NCj4gIAlmb3IgKGkgPSAwOyBpIDwgc2xhdmVfY291bnQgJiYgbnVtX3J4X3RvdGFsIDwg bmJfcGt0czsgaSsrKSB7DQo+ICAJCWogPSBudW1fcnhfdG90YWw7DQo+IC0JCWNvbGxlY3Rpbmcg PQ0KPiBBQ1RPUl9TVEFURSgmbW9kZV84MDIzYWRfcG9ydHNbc2xhdmVzW2lkeF1dLA0KPiArCQlj b2xsZWN0aW5nID0NCj4gQUNUT1JfU1RBVEUoJmJvbmRfbW9kZV84MDIzYWRfcG9ydHNbc2xhdmVz W2lkeF1dLA0KPiAgCQkJCQkgQ09MTEVDVElORyk7DQo+IA0KPiAgCQkvKiBSZWFkIHBhY2tldHMg ZnJvbSB0aGlzIHNsYXZlICovDQo+IEBAIC0xMzEwLDcgKzEzMTAsNyBAQCBib25kX2V0aGRldl90 eF9idXJzdF84MDIzYWQodm9pZCAqcXVldWUsDQo+IHN0cnVjdCBydGVfbWJ1ZiAqKmJ1ZnMsDQo+ IA0KPiAgCWRpc3Rfc2xhdmVfY291bnQgPSAwOw0KPiAgCWZvciAoaSA9IDA7IGkgPCBzbGF2ZV9j b3VudDsgaSsrKSB7DQo+IC0JCXN0cnVjdCBwb3J0ICpwb3J0ID0gJm1vZGVfODAyM2FkX3BvcnRz W3NsYXZlX3BvcnRfaWRzW2ldXTsNCj4gKwkJc3RydWN0IHBvcnQgKnBvcnQgPQ0KPiAmYm9uZF9t b2RlXzgwMjNhZF9wb3J0c1tzbGF2ZV9wb3J0X2lkc1tpXV07DQo+IA0KPiAgCQlpZiAoQUNUT1Jf U1RBVEUocG9ydCwgRElTVFJJQlVUSU5HKSkNCj4gIAkJCWRpc3Rfc2xhdmVfcG9ydF9pZHNbZGlz dF9zbGF2ZV9jb3VudCsrXSA9DQo+IEBAIC0xMzY1LDcgKzEzNjUsNyBAQCBib25kX2V0aGRldl90 eF9idXJzdF84MDIzYWQodm9pZCAqcXVldWUsDQo+IHN0cnVjdCBydGVfbWJ1ZiAqKmJ1ZnMsDQo+ IA0KPiAgCS8qIENoZWNrIGZvciBMQUNQIGNvbnRyb2wgcGFja2V0cyBhbmQgc2VuZCBpZiBhdmFp bGFibGUgKi8NCj4gIAlmb3IgKGkgPSAwOyBpIDwgc2xhdmVfY291bnQ7IGkrKykgew0KPiAtCQlz dHJ1Y3QgcG9ydCAqcG9ydCA9ICZtb2RlXzgwMjNhZF9wb3J0c1tzbGF2ZV9wb3J0X2lkc1tpXV07 DQo+ICsJCXN0cnVjdCBwb3J0ICpwb3J0ID0NCj4gJmJvbmRfbW9kZV84MDIzYWRfcG9ydHNbc2xh dmVfcG9ydF9pZHNbaV1dOw0KPiAgCQlzdHJ1Y3QgcnRlX21idWYgKmN0cmxfcGt0ID0gTlVMTDsN Cj4gDQo+ICAJCWlmIChsaWtlbHkocnRlX3JpbmdfZW1wdHkocG9ydC0+dHhfcmluZykpKQ0KPiBA QCAtMTcxNiw3ICsxNzE2LDcgQEAgc2xhdmVfY29uZmlndXJlX3Nsb3dfcXVldWUoc3RydWN0IHJ0 ZV9ldGhfZGV2DQo+ICpib25kZWRfZXRoX2RldiwNCj4gIAlpbnQgZXJydmFsID0gMDsNCj4gIAlz dHJ1Y3QgYm9uZF9kZXZfcHJpdmF0ZSAqaW50ZXJuYWxzID0gKHN0cnVjdCBib25kX2Rldl9wcml2 YXRlICopDQo+ICAJCWJvbmRlZF9ldGhfZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4gLQlzdHJ1 Y3QgcG9ydCAqcG9ydCA9ICZtb2RlXzgwMjNhZF9wb3J0c1tzbGF2ZV9ldGhfZGV2LT5kYXRhLQ0K PiA+cG9ydF9pZF07DQo+ICsJc3RydWN0IHBvcnQgKnBvcnQgPSAmYm9uZF9tb2RlXzgwMjNhZF9w b3J0c1tzbGF2ZV9ldGhfZGV2LQ0KPiA+ZGF0YS0+cG9ydF9pZF07DQo+IA0KPiAgCWlmIChwb3J0 LT5zbG93X3Bvb2wgPT0gTlVMTCkgew0KPiAgCQljaGFyIG1lbV9uYW1lWzI1Nl07DQo+IEBAIC0y MTU1LDcgKzIxNTUsNyBAQCBib25kX2V0aGRldl9zdG9wKHN0cnVjdCBydGVfZXRoX2RldiAqZXRo X2RldikNCj4gDQo+ICAJCS8qIERpc2NhcmQgYWxsIG1lc3NhZ2VzIHRvL2Zyb20gbW9kZSA0IHN0 YXRlIG1hY2hpbmVzICovDQo+ICAJCWZvciAoaSA9IDA7IGkgPCBpbnRlcm5hbHMtPmFjdGl2ZV9z bGF2ZV9jb3VudDsgaSsrKSB7DQo+IC0JCQlwb3J0ID0gJm1vZGVfODAyM2FkX3BvcnRzW2ludGVy bmFscy0NCj4gPmFjdGl2ZV9zbGF2ZXNbaV1dOw0KPiArCQkJcG9ydCA9ICZib25kX21vZGVfODAy M2FkX3BvcnRzW2ludGVybmFscy0NCj4gPmFjdGl2ZV9zbGF2ZXNbaV1dOw0KPiANCj4gIAkJCVJU RV9BU1NFUlQocG9ydC0+cnhfcmluZyAhPSBOVUxMKTsNCj4gIAkJCXdoaWxlIChydGVfcmluZ19k ZXF1ZXVlKHBvcnQtPnJ4X3JpbmcsICZwa3QpICE9IC0NCj4gRU5PRU5UKQ0KPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvY3hnYmUvY3hnYmVfZmxvdy5jDQo+IGIvZHJpdmVycy9uZXQvY3hnYmUv Y3hnYmVfZmxvdy5jDQo+IGluZGV4IGJlZTNiZDY0MC4uZGE2ZDI5Yzc1IDEwMDY0NA0KPiAtLS0g YS9kcml2ZXJzL25ldC9jeGdiZS9jeGdiZV9mbG93LmMNCj4gKysrIGIvZHJpdmVycy9uZXQvY3hn YmUvY3hnYmVfZmxvdy5jDQo+IEBAIC00ODEsNyArNDgxLDcgQEAgY3hnYmVfcnRlZl9wYXJzZV9h Y3Rpb25zKHN0cnVjdCBydGVfZmxvdyAqZmxvdywNCj4gIAlyZXR1cm4gMDsNCj4gIH0NCj4gDQo+ IC1zdHJ1Y3QgY2hydGVfZnBhcnNlIHBhcnNlaXRlbVtdID0gew0KPiArc3RhdGljIHN0cnVjdCBj aHJ0ZV9mcGFyc2UgcGFyc2VpdGVtW10gPSB7DQo+ICAJW1JURV9GTE9XX0lURU1fVFlQRV9FVEhd ID0gew0KPiAgCQkuZnB0ciAgPSBjaF9ydGVfcGFyc2V0eXBlX2V0aCwNCj4gIAkJLmRtYXNrID0g Jihjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfaXRlbV9ldGgpew0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZW5pYy9lbmljX2V0aGRldi5jIGIvZHJpdmVycy9uZXQvZW5pYy9lbmljX2V0aGRldi5j DQo+IGluZGV4IDY1MzMzYzQ3YS4uMGQwZmUxZTI2IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25l dC9lbmljL2VuaWNfZXRoZGV2LmMNCj4gKysrIGIvZHJpdmVycy9uZXQvZW5pYy9lbmljX2V0aGRl di5jDQo+IEBAIC05OTYsNyArOTk2LDYgQEAgc3RhdGljIGludCBlbmljX2NoZWNrX2RldmFyZ3Mo c3RydWN0IHJ0ZV9ldGhfZGV2DQo+ICpkZXYpDQo+ICAJcmV0dXJuIDA7DQo+ICB9DQo+IA0KPiAt c3RydWN0IGVuaWMgKmVuaWNwbWRfbGlzdF9oZWFkID0gTlVMTDsNCj4gIC8qIEluaXRpYWxpemUg dGhlIGRyaXZlcg0KPiAgICogSXQgcmV0dXJucyAwIG9uIHN1Y2Nlc3MuDQo+ICAgKi8NCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2ZhaWxzYWZlL2ZhaWxzYWZlLmMgYi9kcml2ZXJzL25ldC9m YWlsc2FmZS9mYWlsc2FmZS5jDQo+IGluZGV4IGMzOTk5ZjAyNi4uYjE4YTI1MjRlIDEwMDY0NA0K PiAtLS0gYS9kcml2ZXJzL25ldC9mYWlsc2FmZS9mYWlsc2FmZS5jDQo+ICsrKyBiL2RyaXZlcnMv bmV0L2ZhaWxzYWZlL2ZhaWxzYWZlLmMNCj4gQEAgLTcxLDcgKzcxLDcgQEAgZmFpbHNhZmVfaG90 cGx1Z19hbGFybV9pbnN0YWxsKHN0cnVjdCBydGVfZXRoX2Rldg0KPiAqZGV2KQ0KPiAgCQlyZXR1 cm4gLUVJTlZBTDsNCj4gIAlpZiAoUFJJVihkZXYpLT5wZW5kaW5nX2FsYXJtKQ0KPiAgCQlyZXR1 cm4gMDsNCj4gLQlyZXQgPSBydGVfZWFsX2FsYXJtX3NldChob3RwbHVnX3BvbGwgKiAxMDAwLA0K PiArCXJldCA9IHJ0ZV9lYWxfYWxhcm1fc2V0KGZhaWxzYWZlX2hvdHBsdWdfcG9sbCAqIDEwMDAs DQo+ICAJCQkJZnNfaG90cGx1Z19hbGFybSwNCj4gIAkJCQlkZXYpOw0KPiAgCWlmIChyZXQpIHsN Cj4gQEAgLTIyNSw3ICsyMjUsNyBAQCBmc19ldGhfZGV2X2NyZWF0ZShzdHJ1Y3QgcnRlX3ZkZXZf ZGV2aWNlICp2ZGV2KQ0KPiAgCQlnb3RvIHVucmVnaXN0ZXJfbmV3X2NhbGxiYWNrOw0KPiAgCX0N Cj4gIAltYWMgPSAmZGV2LT5kYXRhLT5tYWNfYWRkcnNbMF07DQo+IC0JaWYgKG1hY19mcm9tX2Fy Zykgew0KPiArCWlmIChmYWlsc2FmZV9tYWNfZnJvbV9hcmcpIHsNCj4gIAkJLyoNCj4gIAkJICog SWYgTUFDIGFkZHJlc3Mgd2FzIHByb3ZpZGVkIGFzIGEgcGFyYW1ldGVyLA0KPiAgCQkgKiBhcHBs eSB0byBhbGwgcHJvYmVkIHNsYXZlcy4NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2ZhaWxz YWZlL2ZhaWxzYWZlX2FyZ3MuYw0KPiBiL2RyaXZlcnMvbmV0L2ZhaWxzYWZlL2ZhaWxzYWZlX2Fy Z3MuYw0KPiBpbmRleCA2MjY4ODNjZTIuLmM0YjIyMGM0OCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVy cy9uZXQvZmFpbHNhZmUvZmFpbHNhZmVfYXJncy5jDQo+ICsrKyBiL2RyaXZlcnMvbmV0L2ZhaWxz YWZlL2ZhaWxzYWZlX2FyZ3MuYw0KPiBAQCAtMjIsMTAgKzIyLDEwIEBADQo+ICB0eXBlZGVmIGlu dCAocGFyc2VfY2IpKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCBjb25zdCBjaGFyICpwYXJhbXMs DQo+ICAJCXVpbnQ4X3QgaGVhZCk7DQo+IA0KPiAtdWludDY0X3QgaG90cGx1Z19wb2xsID0gRkFJ TFNBRkVfSE9UUExVR19ERUZBVUxUX1RJTUVPVVRfTVM7DQo+IC1pbnQgbWFjX2Zyb21fYXJnID0g MDsNCj4gK3VpbnQ2NF90IGZhaWxzYWZlX2hvdHBsdWdfcG9sbCA9DQo+IEZBSUxTQUZFX0hPVFBM VUdfREVGQVVMVF9USU1FT1VUX01TOw0KPiAraW50IGZhaWxzYWZlX21hY19mcm9tX2FyZzsNCj4g DQo+IC1jb25zdCBjaGFyICpwbWRfZmFpbHNhZmVfaW5pdF9wYXJhbWV0ZXJzW10gPSB7DQo+ICtz dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHBtZF9mYWlsc2FmZV9pbml0X3BhcmFtZXRlcnNbXSA9 IHsNCj4gIAlQTURfRkFJTFNBRkVfSE9UUExVR19QT0xMX0tWQVJHLA0KPiAgCVBNRF9GQUlMU0FG RV9NQUNfS1ZBUkcsDQo+ICAJTlVMTCwNCj4gQEAgLTQyMCw3ICs0MjAsNyBAQCBmYWlsc2FmZV9h cmdzX3BhcnNlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCBjb25zdA0KPiBjaGFyICpwYXJhbXMp DQo+ICAJCWlmIChhcmdfY291bnQgPT0gMSkgew0KPiAgCQkJcmV0ID0gcnRlX2t2YXJnc19wcm9j ZXNzKGt2bGlzdCwNCj4gDQo+IAlQTURfRkFJTFNBRkVfSE9UUExVR19QT0xMX0tWQVJHLA0KPiAt CQkJCQkmZnNfZ2V0X3U2NF9hcmcsICZob3RwbHVnX3BvbGwpOw0KPiArCQkJCQkmZnNfZ2V0X3U2 NF9hcmcsDQo+ICZmYWlsc2FmZV9ob3RwbHVnX3BvbGwpOw0KPiAgCQkJaWYgKHJldCA8IDApDQo+ ICAJCQkJZ290byBmcmVlX2t2bGlzdDsNCj4gIAkJfQ0KPiBAQCAtNDM1LDcgKzQzNSw3IEBAIGZh aWxzYWZlX2FyZ3NfcGFyc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIGNvbnN0DQo+IGNoYXIg KnBhcmFtcykNCj4gIAkJCWlmIChyZXQgPCAwKQ0KPiAgCQkJCWdvdG8gZnJlZV9rdmxpc3Q7DQo+ IA0KPiAtCQkJbWFjX2Zyb21fYXJnID0gMTsNCj4gKwkJCWZhaWxzYWZlX21hY19mcm9tX2FyZyA9 IDE7DQo+ICAJCX0NCj4gIAl9DQo+ICAJUFJJVihkZXYpLT5zdGF0ZSA9IERFVl9QQVJTRUQ7DQo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9mYWlsc2FmZS9mYWlsc2FmZV9wcml2YXRlLmgNCj4g Yi9kcml2ZXJzL25ldC9mYWlsc2FmZS9mYWlsc2FmZV9wcml2YXRlLmgNCj4gaW5kZXggYWJiZTcz ZTg3Li5jNDZjYjIxMDQgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L2ZhaWxzYWZlL2ZhaWxz YWZlX3ByaXZhdGUuaA0KPiArKysgYi9kcml2ZXJzL25ldC9mYWlsc2FmZS9mYWlsc2FmZV9wcml2 YXRlLmgNCj4gQEAgLTIzNiw4ICsyMzYsOCBAQCBpbnQgZmFpbHNhZmVfZXRoX25ld19ldmVudF9j YWxsYmFjayh1aW50MTZfdA0KPiBwb3J0X2lkLA0KPiAgZXh0ZXJuIGNvbnN0IGNoYXIgcG1kX2Zh aWxzYWZlX2RyaXZlcl9uYW1lW107DQo+ICBleHRlcm4gY29uc3Qgc3RydWN0IGV0aF9kZXZfb3Bz IGZhaWxzYWZlX29wczsNCj4gIGV4dGVybiBjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfb3BzIGZzX2Zs b3dfb3BzOw0KPiAtZXh0ZXJuIHVpbnQ2NF90IGhvdHBsdWdfcG9sbDsNCj4gLWV4dGVybiBpbnQg bWFjX2Zyb21fYXJnOw0KPiArZXh0ZXJuIHVpbnQ2NF90IGZhaWxzYWZlX2hvdHBsdWdfcG9sbDsN Cj4gK2V4dGVybiBpbnQgZmFpbHNhZmVfbWFjX2Zyb21fYXJnOw0KPiANCj4gIC8qIEhFTFBFUlMg Ki8NCj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9mbTEway9mbTEwa19ldGhkZXYuYw0K PiBiL2RyaXZlcnMvbmV0L2ZtMTBrL2ZtMTBrX2V0aGRldi5jDQo+IGluZGV4IDQ2OTgzZTVkZi4u NTIzOThmZTQ4IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC9mbTEway9mbTEwa19ldGhkZXYu Yw0KPiArKysgYi9kcml2ZXJzL25ldC9mbTEway9mbTEwa19ldGhkZXYuYw0KPiBAQCAtNzIsNyAr NzIsNyBAQCBzdHJ1Y3QgZm0xMGtfeHN0YXRzX25hbWVfb2ZmIHsNCj4gIAl1bnNpZ25lZCBvZmZz ZXQ7DQo+ICB9Ow0KPiANCj4gLXN0cnVjdCBmbTEwa194c3RhdHNfbmFtZV9vZmYgZm0xMGtfaHdf c3RhdHNfc3RyaW5nc1tdID0gew0KPiArc3RhdGljIHN0cnVjdCBmbTEwa194c3RhdHNfbmFtZV9v ZmYgZm0xMGtfaHdfc3RhdHNfc3RyaW5nc1tdID0gew0KPiAgCXsiY29tcGxldGlvbl90aW1lb3V0 X2NvdW50Iiwgb2Zmc2V0b2Yoc3RydWN0IGZtMTBrX2h3X3N0YXRzLA0KPiB0aW1lb3V0KX0sDQo+ ICAJeyJ1bnN1cHBvcnRlZF9yZXF1ZXN0c19jb3VudCIsIG9mZnNldG9mKHN0cnVjdCBmbTEwa19o d19zdGF0cywNCj4gdXIpfSwNCj4gIAl7ImNvbXBsZXRlcl9hYm9ydF9jb3VudCIsIG9mZnNldG9m KHN0cnVjdCBmbTEwa19od19zdGF0cywgY2EpfSwNCj4gQEAgLTg3LDcgKzg3LDcgQEAgc3RydWN0 IGZtMTBrX3hzdGF0c19uYW1lX29mZg0KPiBmbTEwa19od19zdGF0c19zdHJpbmdzW10gPSB7DQo+ ICAjZGVmaW5lIEZNMTBLX05CX0hXX1hTVEFUUyAoc2l6ZW9mKGZtMTBrX2h3X3N0YXRzX3N0cmlu Z3MpIC8gXA0KPiAgCQlzaXplb2YoZm0xMGtfaHdfc3RhdHNfc3RyaW5nc1swXSkpDQo+IA0KPiAt c3RydWN0IGZtMTBrX3hzdGF0c19uYW1lX29mZiBmbTEwa19od19zdGF0c19yeF9xX3N0cmluZ3Nb XSA9IHsNCj4gK3N0YXRpYyBzdHJ1Y3QgZm0xMGtfeHN0YXRzX25hbWVfb2ZmIGZtMTBrX2h3X3N0 YXRzX3J4X3Ffc3RyaW5nc1tdID0gew0KPiAgCXsicGFja2V0cyIsIG9mZnNldG9mKHN0cnVjdCBm bTEwa19od19zdGF0c19xLCByeF9wYWNrZXRzKX0sDQo+ICAJeyJieXRlcyIsIG9mZnNldG9mKHN0 cnVjdCBmbTEwa19od19zdGF0c19xLCByeF9ieXRlcyl9LA0KPiAgCXsiZHJvcHBlZCIsIG9mZnNl dG9mKHN0cnVjdCBmbTEwa19od19zdGF0c19xLCByeF9kcm9wcyl9LA0KPiBAQCAtOTYsNyArOTYs NyBAQCBzdHJ1Y3QgZm0xMGtfeHN0YXRzX25hbWVfb2ZmDQo+IGZtMTBrX2h3X3N0YXRzX3J4X3Ff c3RyaW5nc1tdID0gew0KPiAgI2RlZmluZSBGTTEwS19OQl9SWF9RX1hTVEFUUyAoc2l6ZW9mKGZt MTBrX2h3X3N0YXRzX3J4X3Ffc3RyaW5ncykgLw0KPiBcDQo+ICAJCXNpemVvZihmbTEwa19od19z dGF0c19yeF9xX3N0cmluZ3NbMF0pKQ0KPiANCj4gLXN0cnVjdCBmbTEwa194c3RhdHNfbmFtZV9v ZmYgZm0xMGtfaHdfc3RhdHNfdHhfcV9zdHJpbmdzW10gPSB7DQo+ICtzdGF0aWMgc3RydWN0IGZt MTBrX3hzdGF0c19uYW1lX29mZiBmbTEwa19od19zdGF0c190eF9xX3N0cmluZ3NbXSA9IHsNCj4g IAl7InBhY2tldHMiLCBvZmZzZXRvZihzdHJ1Y3QgZm0xMGtfaHdfc3RhdHNfcSwgdHhfcGFja2V0 cyl9LA0KPiAgCXsiYnl0ZXMiLCBvZmZzZXRvZihzdHJ1Y3QgZm0xMGtfaHdfc3RhdHNfcSwgdHhf Ynl0ZXMpfSwNCj4gIH07DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pNDBlL2Jhc2UvaTQw ZV9kaWFnLmMNCj4gYi9kcml2ZXJzL25ldC9pNDBlL2Jhc2UvaTQwZV9kaWFnLmMNCj4gaW5kZXgg Zjk0YzExN2FlLi4zY2NiZWE0ODIgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L2k0MGUvYmFz ZS9pNDBlX2RpYWcuYw0KPiArKysgYi9kcml2ZXJzL25ldC9pNDBlL2Jhc2UvaTQwZV9kaWFnLmMN Cj4gQEAgLTU1LDcgKzU1LDcgQEAgc3RhdGljIGVudW0gaTQwZV9zdGF0dXNfY29kZQ0KPiBpNDBl X2RpYWdfcmVnX3BhdHRlcm5fdGVzdChzdHJ1Y3QgaTQwZV9odyAqaHcsDQo+ICAJcmV0dXJuIEk0 MEVfU1VDQ0VTUzsNCj4gIH0NCj4gDQo+IC1zdHJ1Y3QgaTQwZV9kaWFnX3JlZ190ZXN0X2luZm8g aTQwZV9yZWdfbGlzdFtdID0gew0KPiArc3RhdGljIHN0cnVjdCBpNDBlX2RpYWdfcmVnX3Rlc3Rf aW5mbyBpNDBlX3JlZ19saXN0W10gPSB7DQo+ICAJLyogb2Zmc2V0ICAgICAgICAgICAgICAgbWFz ayAgICAgICAgIGVsZW1lbnRzICAgc3RyaWRlICovDQo+ICAJe0k0MEVfUVRYX0NUTCgwKSwgICAg ICAgMHgwMDAwRkZCRiwgMSwgSTQwRV9RVFhfQ1RMKDEpIC0NCj4gSTQwRV9RVFhfQ1RMKDApfSwN Cj4gIAl7STQwRV9QRklOVF9JVFIwKDApLCAgICAweDAwMDAwRkZGLCAzLCBJNDBFX1BGSU5UX0lU UjAoMSkgLQ0KPiBJNDBFX1BGSU5UX0lUUjAoMCl9LA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvaTQwZS9iYXNlL2k0MGVfZGlhZy5oDQo+IGIvZHJpdmVycy9uZXQvaTQwZS9iYXNlL2k0MGVf ZGlhZy5oDQo+IGluZGV4IDFhNzgxZjgzZC4uNDQzNGZjOTYwIDEwMDY0NA0KPiAtLS0gYS9kcml2 ZXJzL25ldC9pNDBlL2Jhc2UvaTQwZV9kaWFnLmgNCj4gKysrIGIvZHJpdmVycy9uZXQvaTQwZS9i YXNlL2k0MGVfZGlhZy5oDQo+IEBAIC0yMSw4ICsyMSw2IEBAIHN0cnVjdCBpNDBlX2RpYWdfcmVn X3Rlc3RfaW5mbyB7DQo+ICAJdTMyIHN0cmlkZTsJLyogYnl0ZXMgYmV0d2VlbiBlYWNoIGVsZW1l bnQgKi8NCj4gIH07DQo+IA0KPiAtZXh0ZXJuIHN0cnVjdCBpNDBlX2RpYWdfcmVnX3Rlc3RfaW5m byBpNDBlX3JlZ19saXN0W107DQo+IC0NCj4gIGVudW0gaTQwZV9zdGF0dXNfY29kZSBpNDBlX2Rp YWdfc2V0X2xvb3BiYWNrKHN0cnVjdCBpNDBlX2h3ICpodywNCj4gIAkJCQkJICAgICBlbnVtIGk0 MGVfbGJfbW9kZSBtb2RlKTsNCj4gIGVudW0gaTQwZV9zdGF0dXNfY29kZSBpNDBlX2RpYWdfZndf YWxpdmVfdGVzdChzdHJ1Y3QgaTQwZV9odyAqaHcpOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvaTQwZS9pNDBlX2Zsb3cuYyBiL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9mbG93LmMNCj4gaW5k ZXggN2Q3ODdjMTczLi4zNjk0ZGYyNTUgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L2k0MGUv aTQwZV9mbG93LmMNCj4gKysrIGIvZHJpdmVycy9uZXQvaTQwZS9pNDBlX2Zsb3cuYw0KPiBAQCAt MTMzLDggKzEzMyw4IEBAIGNvbnN0IHN0cnVjdCBydGVfZmxvd19vcHMgaTQwZV9mbG93X29wcyA9 IHsNCj4gIAkuZmx1c2ggPSBpNDBlX2Zsb3dfZmx1c2gsDQo+ICB9Ow0KPiANCj4gLXVuaW9uIGk0 MGVfZmlsdGVyX3QgY29uc19maWx0ZXI7DQo+IC1lbnVtIHJ0ZV9maWx0ZXJfdHlwZSBjb25zX2Zp bHRlcl90eXBlID0gUlRFX0VUSF9GSUxURVJfTk9ORTsNCj4gK3N0YXRpYyB1bmlvbiBpNDBlX2Zp bHRlcl90IGNvbnNfZmlsdGVyOw0KPiArc3RhdGljIGVudW0gcnRlX2ZpbHRlcl90eXBlIGNvbnNf ZmlsdGVyX3R5cGUgPSBSVEVfRVRIX0ZJTFRFUl9OT05FOw0KPiANCj4gIC8qIFBhdHRlcm4gbWF0 Y2hlZCBldGhlcnR5cGUgZmlsdGVyICovDQo+ICBzdGF0aWMgZW51bSBydGVfZmxvd19pdGVtX3R5 cGUgcGF0dGVybl9ldGhlcnR5cGVbXSA9IHsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2k0 MGUvaTQwZV92Zl9yZXByZXNlbnRvci5jDQo+IGIvZHJpdmVycy9uZXQvaTQwZS9pNDBlX3ZmX3Jl cHJlc2VudG9yLmMNCj4gaW5kZXggMGJmYmI0ZjYwLi5hNDc1MThkM2MgMTAwNjQ0DQo+IC0tLSBh L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV92Zl9yZXByZXNlbnRvci5jDQo+ICsrKyBiL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV92Zl9yZXByZXNlbnRvci5jDQo+IEBAIC00MjAsNyArNDIwLDcgQEAgaTQw ZV92Zl9yZXByZXNlbnRvcl92bGFuX3B2aWRfc2V0KHN0cnVjdA0KPiBydGVfZXRoX2RldiAqZXRo ZGV2LCB1aW50MTZfdCB2bGFuX2lkLA0KPiAgCQlyZXByZXNlbnRvci0+dmZfaWQsIHZsYW5faWQp Ow0KPiAgfQ0KPiANCj4gLXN0cnVjdCBldGhfZGV2X29wcyBpNDBlX3JlcHJlc2VudG9yX2Rldl9v cHMgPSB7DQo+ICtzdGF0aWMgc3RydWN0IGV0aF9kZXZfb3BzIGk0MGVfcmVwcmVzZW50b3JfZGV2 X29wcyA9IHsNCj4gIAkuZGV2X2luZm9zX2dldCAgICAgICAgPSBpNDBlX3ZmX3JlcHJlc2VudG9y X2Rldl9pbmZvc19nZXQsDQo+IA0KPiAgCS5kZXZfc3RhcnQgICAgICAgICAgICA9IGk0MGVfdmZf cmVwcmVzZW50b3JfZGV2X3N0YXJ0LA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaWZjL2lm Y3ZmX3ZkcGEuYyBiL2RyaXZlcnMvbmV0L2lmYy9pZmN2Zl92ZHBhLmMNCj4gaW5kZXggZTEyNDVm OTFiLi41N2Y2MGQyOWUgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L2lmYy9pZmN2Zl92ZHBh LmMNCj4gKysrIGIvZHJpdmVycy9uZXQvaWZjL2lmY3ZmX3ZkcGEuYw0KPiBAQCAtNzIzLDcgKzcy Myw3IEBAIGlmY3ZmX2dldF9wcm90b2NvbF9mZWF0dXJlcyhpbnQgZGlkIF9fcnRlX3VudXNlZCwN Cj4gdWludDY0X3QgKmZlYXR1cmVzKQ0KPiAgCXJldHVybiAwOw0KPiAgfQ0KPiANCj4gLXN0cnVj dCBydGVfdmRwYV9kZXZfb3BzIGlmY3ZmX29wcyA9IHsNCj4gK3N0YXRpYyBzdHJ1Y3QgcnRlX3Zk cGFfZGV2X29wcyBpZmN2Zl9vcHMgPSB7DQo+ICAJLmdldF9xdWV1ZV9udW0gPSBpZmN2Zl9nZXRf cXVldWVfbnVtLA0KPiAgCS5nZXRfZmVhdHVyZXMgPSBpZmN2Zl9nZXRfdmRwYV9mZWF0dXJlcywN Cj4gIAkuZ2V0X3Byb3RvY29sX2ZlYXR1cmVzID0gaWZjdmZfZ2V0X3Byb3RvY29sX2ZlYXR1cmVz LA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfdmZfcmVwcmVzZW50b3Iu Yw0KPiBiL2RyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3ZmX3JlcHJlc2VudG9yLmMNCj4gaW5kZXgg YjBmYmJjNDlmLi5lZWMwYmY2NmYgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L2l4Z2JlL2l4 Z2JlX3ZmX3JlcHJlc2VudG9yLmMNCj4gKysrIGIvZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfdmZf cmVwcmVzZW50b3IuYw0KPiBAQCAtMTM1LDcgKzEzNSw3IEBAIGl4Z2JlX3ZmX3JlcHJlc2VudG9y X3ZsYW5fc3RyaXBfcXVldWVfc2V0KHN0cnVjdA0KPiBydGVfZXRoX2RldiAqZXRoZGV2LA0KPiAg CQlyZXByZXNlbnRvci0+dmZfaWQsIG9uKTsNCj4gIH0NCj4gDQo+IC1zdHJ1Y3QgZXRoX2Rldl9v cHMgaXhnYmVfdmZfcmVwcmVzZW50b3JfZGV2X29wcyA9IHsNCj4gK3N0YXRpYyBzdHJ1Y3QgZXRo X2Rldl9vcHMgaXhnYmVfdmZfcmVwcmVzZW50b3JfZGV2X29wcyA9IHsNCj4gIAkuZGV2X2luZm9z X2dldAkJPSBpeGdiZV92Zl9yZXByZXNlbnRvcl9kZXZfaW5mb3NfZ2V0LA0KPiANCj4gIAkuZGV2 X3N0YXJ0CQk9IGl4Z2JlX3ZmX3JlcHJlc2VudG9yX2Rldl9zdGFydCwNCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L3FlZGUvYmFzZS9iY21fb3NhbC5jDQo+IGIvZHJpdmVycy9uZXQvcWVkZS9i YXNlL2JjbV9vc2FsLmMNCj4gaW5kZXggZDVkNmY4ZTIwLi42OTMzMjhmMTEgMTAwNjQ0DQo+IC0t LSBhL2RyaXZlcnMvbmV0L3FlZGUvYmFzZS9iY21fb3NhbC5jDQo+ICsrKyBiL2RyaXZlcnMvbmV0 L3FlZGUvYmFzZS9iY21fb3NhbC5jDQo+IEBAIC0xNyw3ICsxNyw3IEBADQo+ICAvKiBBcnJheSBv ZiBtZW16b25lIHBvaW50ZXJzICovDQo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IHJ0ZV9tZW16b25l DQo+ICplY29yZV9tel9tYXBwaW5nW1JURV9NQVhfTUVNWk9ORV07DQo+ICAvKiBDb3VudGVyIHRv IHRyYWNrIGN1cnJlbnQgbWVtem9uZSBhbGxvY2F0ZWQgKi8NCj4gLXVpbnQxNl90IGVjb3JlX216 X2NvdW50Ow0KPiArc3RhdGljIHVpbnQxNl90IGVjb3JlX216X2NvdW50Ow0KPiANCj4gIHVuc2ln bmVkIGxvbmcgcWVkZV9sb2cyX2FsaWduKHVuc2lnbmVkIGxvbmcgbikNCj4gIHsNCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L3FlZGUvYmFzZS9lY29yZV9zcmlvdi5jDQo+IGIvZHJpdmVycy9u ZXQvcWVkZS9iYXNlL2Vjb3JlX3NyaW92LmMNCj4gaW5kZXggZGI5MjlmMDE1Li43ZDczZWY5ZmIg MTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L3FlZGUvYmFzZS9lY29yZV9zcmlvdi5jDQo+ICsr KyBiL2RyaXZlcnMvbmV0L3FlZGUvYmFzZS9lY29yZV9zcmlvdi5jDQo+IEBAIC0zMSw3ICszMSw3 IEBAIHN0YXRpYyBlbnVtIF9lY29yZV9zdGF0dXNfdA0KPiBlY29yZV9zcmlvdl9lcWVfZXZlbnQo c3RydWN0IGVjb3JlX2h3Zm4gKnBfaHdmbiwNCj4gIAkJCQkJCSAgdW5pb24gZXZlbnRfcmluZ19k YXRhDQo+ICpkYXRhLA0KPiAgCQkJCQkJICB1OCBmd19yZXR1cm5fY29kZSk7DQo+IA0KPiAtY29u c3QgY2hhciAqZWNvcmVfY2hhbm5lbF90bHZzX3N0cmluZ1tdID0gew0KPiArY29uc3QgY2hhciAq cWVkZV9lY29yZV9jaGFubmVsX3RsdnNfc3RyaW5nW10gPSB7DQo+ICAJIkNIQU5ORUxfVExWX05P TkUiLAkvKiBlbmRzIHRsdiBzZXF1ZW5jZSAqLw0KPiAgCSJDSEFOTkVMX1RMVl9BQ1FVSVJFIiwN Cj4gIAkiQ0hBTk5FTF9UTFZfVlBPUlRfU1RBUlQiLA0KPiBAQCAtMTI4MCw3ICsxMjgwLDcgQEAg c3RhdGljIHZvaWQgZWNvcmVfaW92X2xvY2tfdmZfcGZfY2hhbm5lbChzdHJ1Y3QNCj4gZWNvcmVf aHdmbiAqcF9od2ZuLA0KPiAgCQkJICAgRUNPUkVfTVNHX0lPViwNCj4gIAkJCSAgICJWRlslZF06 IHZmIHBmIGNoYW5uZWwgbG9ja2VkIGJ5ICVzXG4iLA0KPiAgCQkJICAgdmYtPmFic192Zl9pZCwN Cj4gLQkJCSAgIGVjb3JlX2NoYW5uZWxfdGx2c19zdHJpbmdbdGx2XSk7DQo+ICsJCQkgICBxZWRl X2Vjb3JlX2NoYW5uZWxfdGx2c19zdHJpbmdbdGx2XSk7DQo+ICAJZWxzZQ0KPiAgCQlEUF9WRVJC T1NFKHBfaHdmbiwNCj4gIAkJCSAgIEVDT1JFX01TR19JT1YsDQo+IEBAIC0xMjk4LDcgKzEyOTgs NyBAQCBzdGF0aWMgdm9pZCBlY29yZV9pb3ZfdW5sb2NrX3ZmX3BmX2NoYW5uZWwoc3RydWN0DQo+ IGVjb3JlX2h3Zm4gKnBfaHdmbiwNCj4gIAkJCSAgIEVDT1JFX01TR19JT1YsDQo+ICAJCQkgICAi VkZbJWRdOiB2ZiBwZiBjaGFubmVsIHVubG9ja2VkIGJ5ICVzXG4iLA0KPiAgCQkJICAgdmYtPmFi c192Zl9pZCwNCj4gLQkJCSAgIGVjb3JlX2NoYW5uZWxfdGx2c19zdHJpbmdbZXhwZWN0ZWRfdGx2 XSk7DQo+ICsJCQkgICBxZWRlX2Vjb3JlX2NoYW5uZWxfdGx2c19zdHJpbmdbZXhwZWN0ZWRfdGx2 XSk7DQo+ICAJZWxzZQ0KPiAgCQlEUF9WRVJCT1NFKHBfaHdmbiwNCj4gIAkJCSAgIEVDT1JFX01T R19JT1YsDQo+IEBAIC0xMzM4LDcgKzEzMzgsNyBAQCB2b2lkIGVjb3JlX2RwX3Rsdl9saXN0KHN0 cnVjdCBlY29yZV9od2ZuDQo+ICpwX2h3Zm4sIHZvaWQgKnRsdnNfbGlzdCkNCj4gIAkJaWYgKGVj b3JlX2lvdl90bHZfc3VwcG9ydGVkKHRsdi0+dHlwZSkpDQo+ICAJCQlEUF9WRVJCT1NFKHBfaHdm biwgRUNPUkVfTVNHX0lPViwNCj4gIAkJCQkgICAiVExWIG51bWJlciAlZDogdHlwZSAlcywgbGVu Z3RoICVkXG4iLA0KPiAtCQkJCSAgIGksIGVjb3JlX2NoYW5uZWxfdGx2c19zdHJpbmdbdGx2LT50 eXBlXSwNCj4gKwkJCQkgICBpLCBxZWRlX2Vjb3JlX2NoYW5uZWxfdGx2c19zdHJpbmdbdGx2LQ0K PiA+dHlwZV0sDQo+ICAJCQkJICAgdGx2LT5sZW5ndGgpOw0KPiAgCQllbHNlDQo+ICAJCQlEUF9W RVJCT1NFKHBfaHdmbiwgRUNPUkVfTVNHX0lPViwNCj4gQEAgLTI5MTksNyArMjkxOSw3IEBAIHZv aWQgKmVjb3JlX2lvdl9zZWFyY2hfbGlzdF90bHZzKHN0cnVjdA0KPiBlY29yZV9od2ZuICpwX2h3 Zm4sDQo+ICAJCWlmIChwX3Rsdi0+dHlwZSA9PSByZXFfdHlwZSkgew0KPiAgCQkJRFBfVkVSQk9T RShwX2h3Zm4sIEVDT1JFX01TR19JT1YsDQo+ICAJCQkJICAgIkV4dGVuZGVkIHRsdiB0eXBlICVz LCBsZW5ndGggJWQgZm91bmRcbiIsDQo+IC0JCQkJICAgZWNvcmVfY2hhbm5lbF90bHZzX3N0cmlu Z1twX3Rsdi0+dHlwZV0sDQo+ICsJCQkJICAgcWVkZV9lY29yZV9jaGFubmVsX3RsdnNfc3RyaW5n W3BfdGx2LQ0KPiA+dHlwZV0sDQo+ICAJCQkJICAgcF90bHYtPmxlbmd0aCk7DQo+ICAJCQlyZXR1 cm4gcF90bHY7DQo+ICAJCX0NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3FlZGUvYmFzZS9l Y29yZV92Zi5jDQo+IGIvZHJpdmVycy9uZXQvcWVkZS9iYXNlL2Vjb3JlX3ZmLmMNCj4gaW5kZXgg NDA5YjMwMWQzLi4zYmE2YTBjZjIgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L3FlZGUvYmFz ZS9lY29yZV92Zi5jDQo+ICsrKyBiL2RyaXZlcnMvbmV0L3FlZGUvYmFzZS9lY29yZV92Zi5jDQo+ IEBAIC0zMiw3ICszMiw3IEBAIHN0YXRpYyB2b2lkICplY29yZV92Zl9wZl9wcmVwKHN0cnVjdCBl Y29yZV9od2ZuDQo+ICpwX2h3Zm4sIHUxNiB0eXBlLCB1MTYgbGVuZ3RoKQ0KPiANCj4gIAlEUF9W RVJCT1NFKHBfaHdmbiwgRUNPUkVfTVNHX0lPViwNCj4gIAkJICAgInByZXBhcmluZyB0byBzZW5k ICVzIHRsdiBvdmVyIHZmIHBmIGNoYW5uZWxcbiIsDQo+IC0JCSAgIGVjb3JlX2NoYW5uZWxfdGx2 c19zdHJpbmdbdHlwZV0pOw0KPiArCQkgICBxZWRlX2Vjb3JlX2NoYW5uZWxfdGx2c19zdHJpbmdb dHlwZV0pOw0KPiANCj4gIAkvKiBSZXNldCBSZXF1ZXN0IG9mZnNldCAqLw0KPiAgCXBfaW92LT5v ZmZzZXQgPSAodTggKikocF9pb3YtPnZmMnBmX3JlcXVlc3QpOw0KPiBAQCAtMTE4NCw3ICsxMTg0 LDcgQEAgZWNvcmVfdmZfaGFuZGxlX3ZwX3VwZGF0ZV9pc19uZWVkZWQoc3RydWN0DQo+IGVjb3Jl X2h3Zm4gKnBfaHdmbiwNCj4gIAkJcmV0dXJuICEhcF9kYXRhLT5zZ2VfdHBhX3BhcmFtczsNCj4g IAlkZWZhdWx0Og0KPiAgCQlEUF9JTkZPKHBfaHdmbiwgIlVuZXhwZWN0ZWQgdnBvcnQtdXBkYXRl IFRMVlslZF0NCj4gJXNcbiIsDQo+IC0JCQl0bHYsIGVjb3JlX2NoYW5uZWxfdGx2c19zdHJpbmdb dGx2XSk7DQo+ICsJCQl0bHYsIHFlZGVfZWNvcmVfY2hhbm5lbF90bHZzX3N0cmluZ1t0bHZdKTsN Cj4gIAkJcmV0dXJuIGZhbHNlOw0KPiAgCX0NCj4gIH0NCj4gQEAgLTEyMDgsNyArMTIwOCw3IEBA IGVjb3JlX3ZmX2hhbmRsZV92cF91cGRhdGVfdGx2c19yZXNwKHN0cnVjdA0KPiBlY29yZV9od2Zu ICpwX2h3Zm4sDQo+ICAJCWlmIChwX3Jlc3AgJiYgcF9yZXNwLT5oZHIuc3RhdHVzKQ0KPiAgCQkJ RFBfVkVSQk9TRShwX2h3Zm4sIEVDT1JFX01TR19JT1YsDQo+ICAJCQkJICAgIlRMVlslZF0gdHlw ZSAlcyBDb25maWd1cmF0aW9uICVzXG4iLA0KPiAtCQkJCSAgIHRsdiwgZWNvcmVfY2hhbm5lbF90 bHZzX3N0cmluZ1t0bHZdLA0KPiArCQkJCSAgIHRsdiwgcWVkZV9lY29yZV9jaGFubmVsX3RsdnNf c3RyaW5nW3Rsdl0sDQo+ICAJCQkJICAgKHBfcmVzcCAmJiBwX3Jlc3AtPmhkci5zdGF0dXMpID8N Cj4gInN1Y2NlZWRlZCINCj4gIAkJCQkJCQkJICA6ICJmYWlsZWQiKTsNCj4gIAl9DQo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9xZWRlL2Jhc2UvZWNvcmVfdmZwZl9pZi5oDQo+IGIvZHJpdmVy cy9uZXQvcWVkZS9iYXNlL2Vjb3JlX3ZmcGZfaWYuaA0KPiBpbmRleCBjMzA2NzdhYmMuLmM3ZWNi MDFjMiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvcWVkZS9iYXNlL2Vjb3JlX3ZmcGZfaWYu aA0KPiArKysgYi9kcml2ZXJzL25ldC9xZWRlL2Jhc2UvZWNvcmVfdmZwZl9pZi5oDQo+IEBAIC02 OTgsNiArNjk4LDYgQEAgZW51bSB7DQo+IA0KPiAgLyohISEhISBNYWtlIHN1cmUgdG8gdXBkYXRl IFNUUklOR1Mgc3RydWN0dXJlIGFjY29yZGluZ2x5ICEhISEhKi8NCj4gIH07DQo+IC1leHRlcm4g Y29uc3QgY2hhciAqZWNvcmVfY2hhbm5lbF90bHZzX3N0cmluZ1tdOw0KPiArZXh0ZXJuIGNvbnN0 IGNoYXIgKnFlZGVfZWNvcmVfY2hhbm5lbF90bHZzX3N0cmluZ1tdOw0KPiANCj4gICNlbmRpZiAv KiBfX0VDT1JFX1ZGX1BGX0lGX0hfXyAqLw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcWVk ZS9xZWRlX2V0aGRldi5jDQo+IGIvZHJpdmVycy9uZXQvcWVkZS9xZWRlX2V0aGRldi5jDQo+IGlu ZGV4IDE4ZDI0NGE5My4uMzMyZDQ3MDc1IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC9xZWRl L3FlZGVfZXRoZGV2LmMNCj4gKysrIGIvZHJpdmVycy9uZXQvcWVkZS9xZWRlX2V0aGRldi5jDQo+ IEBAIC0yOTcsNyArMjk3LDcgQEAgc3RhdGljIHZvaWQgcWVkZV9wcmludF9hZGFwdGVyX2luZm8o c3RydWN0IHFlZGVfZGV2DQo+ICpxZGV2KQ0KPiAgCQkoaW5mby0+bWZ3X3JldiA+PiAxNikgJiAw eGZmLA0KPiAgCQkoaW5mby0+bWZ3X3JldiA+PiA4KSAmIDB4ZmYsIChpbmZvLT5tZndfcmV2KSAm IDB4ZmYpOw0KPiAgCURQX0lORk8oZWRldiwgIiBNYW5hZ2VtZW50IEZpcm13YXJlIHZlcnNpb24g OiAlc1xuIiwgdmVyX3N0cik7DQo+IC0JRFBfSU5GTyhlZGV2LCAiIEZpcm13YXJlIGZpbGUgOiAl c1xuIiwgZndfZmlsZSk7DQo+ICsJRFBfSU5GTyhlZGV2LCAiIEZpcm13YXJlIGZpbGUgOiAlc1xu IiwgcWVkZV9md19maWxlKTsNCj4gIAlEUF9JTkZPKGVkZXYsICIqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKipcbiIpOw0KPiAgfQ0KPiANCj4gQEAgLTEwODksNyArMTA4OSw3IEBAIHN0 YXRpYyB2b2lkIHFlZGVfZGV2X3N0b3Aoc3RydWN0IHJ0ZV9ldGhfZGV2DQo+ICpldGhfZGV2KQ0K PiAgCURQX0lORk8oZWRldiwgIkRldmljZSBpcyBzdG9wcGVkXG4iKTsNCj4gIH0NCj4gDQo+IC1j b25zdCBjaGFyICp2YWxpZF9hcmdzW10gPSB7DQo+ICtzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0 IHZhbGlkX2FyZ3NbXSA9IHsNCj4gIAlRRURFX05QQVJfVFhfU1dJVENISU5HLA0KPiAgCVFFREVf VkZfVFhfU1dJVENISU5HLA0KPiAgCU5VTEwsDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9x ZWRlL3FlZGVfZXRoZGV2LmgNCj4gYi9kcml2ZXJzL25ldC9xZWRlL3FlZGVfZXRoZGV2LmgNCj4g aW5kZXggNjIyYmQwMTFhLi5jMDYyNzRkOTQgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L3Fl ZGUvcWVkZV9ldGhkZXYuaA0KPiArKysgYi9kcml2ZXJzL25ldC9xZWRlL3FlZGVfZXRoZGV2LmgN Cj4gQEAgLTExOCw3ICsxMTgsNyBAQA0KPiANCj4gDQo+IA0KPiAtZXh0ZXJuIGNoYXIgZndfZmls ZVtdOw0KPiArZXh0ZXJuIGNoYXIgcWVkZV9md19maWxlW107DQo+IA0KPiAgLyogTnVtYmVyIG9m IFBGIGNvbm5lY3Rpb25zIC0gMzIgUlggKyAzMiBUWCAqLw0KPiAgI2RlZmluZSBRRURFX1BGX05V TV9DT05OUwkJKDY0KQ0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvc2ZjL3NmY19yeC5jIGIv ZHJpdmVycy9uZXQvc2ZjL3NmY19yeC5jDQo+IGluZGV4IDU4YzU3YWNmZS4uNTEwNWYyNDY3IDEw MDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC9zZmMvc2ZjX3J4LmMNCj4gKysrIGIvZHJpdmVycy9u ZXQvc2ZjL3NmY19yeC5jDQo+IEBAIC0xMTI3LDcgKzExMjcsNyBAQCBzZmNfcnhfcWZpbmkoc3Ry dWN0IHNmY19hZGFwdGVyICpzYSwgdW5zaWduZWQgaW50DQo+IHN3X2luZGV4KQ0KPiAgLyoNCj4g ICAqIE1hcHBpbmcgYmV0d2VlbiBSVEUgUlNTIGhhc2ggZnVuY3Rpb25zIGFuZCB0aGVpciBFRlgg Y291bnRlcnBhcnRzLg0KPiAgICovDQo+IC1zdHJ1Y3Qgc2ZjX3Jzc19oZl9ydGVfdG9fZWZ4IHNm Y19yc3NfaGZfbWFwW10gPSB7DQo+ICtzdGF0aWMgc3RydWN0IHNmY19yc3NfaGZfcnRlX3RvX2Vm eCBzZmNfcnNzX2hmX21hcFtdID0gew0KPiAgCXsgRVRIX1JTU19OT05GUkFHX0lQVjRfVENQLA0K PiAgCSAgRUZYX1JYX0hBU0goSVBWNF9UQ1AsIDRUVVBMRSkgfSwNCj4gIAl7IEVUSF9SU1NfTk9O RlJBR19JUFY0X1VEUCwNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3NvZnRuaWMvcnRlX2V0 aF9zb2Z0bmljLmMNCj4gYi9kcml2ZXJzL25ldC9zb2Z0bmljL3J0ZV9ldGhfc29mdG5pYy5jDQo+ IGluZGV4IDQxYzNhOWIzZS4uMzIwNjNhNDc4IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC9z b2Z0bmljL3J0ZV9ldGhfc29mdG5pYy5jDQo+ICsrKyBiL2RyaXZlcnMvbmV0L3NvZnRuaWMvcnRl X2V0aF9zb2Z0bmljLmMNCj4gQEAgLTQ2LDcgKzQ2LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgd2Vs Y29tZVtdID0NCj4gDQo+ICBzdGF0aWMgY29uc3QgY2hhciBwcm9tcHRbXSA9ICJzb2Z0bmljPiAi Ow0KPiANCj4gLXN0cnVjdCBzb2Z0bmljX2Nvbm5fcGFyYW1zIGNvbm5fcGFyYW1zX2RlZmF1bHQg PSB7DQo+ICtzdGF0aWMgc3RydWN0IHNvZnRuaWNfY29ubl9wYXJhbXMgY29ubl9wYXJhbXNfZGVm YXVsdCA9IHsNCj4gIAkud2VsY29tZSA9IHdlbGNvbWUsDQo+ICAJLnByb21wdCA9IHByb21wdCwN Cj4gIAkuYWRkciA9ICIwLjAuMC4wIiwNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3RhcC90 YXBfYnBmX2luc25zLmgNCj4gYi9kcml2ZXJzL25ldC90YXAvdGFwX2JwZl9pbnNucy5oDQo+IGlu ZGV4IDc5ZTNlNjZiMS4uMWE5MWJiYWQxIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC90YXAv dGFwX2JwZl9pbnNucy5oDQo+ICsrKyBiL2RyaXZlcnMvbmV0L3RhcC90YXBfYnBmX2luc25zLmgN Cj4gQEAgLTUsNyArNSw3IEBADQo+ICAjaW5jbHVkZSA8dGFwX2JwZi5oPg0KPiANCj4gIC8qIGJw Zl9pbnNuIGFycmF5IG1hdGNoaW5nIGNsc19xIHNlY3Rpb24uIFNlZSB0YXBfYnBmX3Byb2dyYW0u YyBmaWxlICovDQo+IC1zdHJ1Y3QgYnBmX2luc24gY2xzX3FfaW5zbnNbXSA9IHsNCj4gK3N0YXRp YyBzdHJ1Y3QgYnBmX2luc24gY2xzX3FfaW5zbnNbXSA9IHsNCj4gIAl7MHg2MSwgICAgMiwgICAg MSwgICAgICAgNTIsIDB4MDAwMDAwMDB9LA0KPiAgCXsweDE4LCAgICAzLCAgICAwLCAgICAgICAg MCwgMHhkZWFkYmVlZn0sDQo+ICAJezB4MDAsICAgIDAsICAgIDAsICAgICAgICAwLCAweDAwMDAw MDAwfSwNCj4gQEAgLTI0LDcgKzI0LDcgQEAgc3RydWN0IGJwZl9pbnNuIGNsc19xX2luc25zW10g PSB7DQo+ICB9Ow0KPiANCj4gIC8qIGJwZl9pbnNuIGFycmF5IG1hdGNoaW5nIGwzX2w0IHNlY3Rp b24uIHNlZSB0YXBfYnBmX3Byb2dyYW0uYyBmaWxlICovDQo+IC1zdHJ1Y3QgYnBmX2luc24gbDNf bDRfaGFzaF9pbnNuc1tdID0gew0KPiArc3RhdGljIHN0cnVjdCBicGZfaW5zbiBsM19sNF9oYXNo X2luc25zW10gPSB7DQo+ICAJezB4YmYsICAgIDcsICAgIDEsICAgICAgICAwLCAweDAwMDAwMDAw fSwNCj4gIAl7MHg2MSwgICAgOCwgICAgNywgICAgICAgMTYsIDB4MDAwMDAwMDB9LA0KPiAgCXsw eDYxLCAgICA2LCAgICA3LCAgICAgICA3NiwgMHgwMDAwMDAwMH0sDQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC90YXAvdGFwX2Zsb3cuYyBiL2RyaXZlcnMvbmV0L3RhcC90YXBfZmxvdy5jDQo+ IGluZGV4IDBlMDFhZjYyYS4uNTI2YzUxZTFlIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC90 YXAvdGFwX2Zsb3cuYw0KPiArKysgYi9kcml2ZXJzL25ldC90YXAvdGFwX2Zsb3cuYw0KPiBAQCAt MTgxMCw3ICsxODEwLDcgQEAgdGFwX2Zsb3dfaW1wbGljaXRfZmx1c2goc3RydWN0IHBtZF9pbnRl cm5hbHMNCj4gKnBtZCwgc3RydWN0IHJ0ZV9mbG93X2Vycm9yICplcnJvcikNCj4gICNkZWZpbmUg S0VZX0lEWF9PRkZTRVQgKDMgKiBNQVhfUlNTX0tFWVMpDQo+ICAjZGVmaW5lIFNFQ19OQU1FX0NM U19RICJjbHNfcSINCj4gDQo+IC1jb25zdCBjaGFyICpzZWNfbmFtZVtTRUNfTUFYXSA9IHsNCj4g K3N0YXRpYyBjb25zdCBjaGFyICpzZWNfbmFtZVtTRUNfTUFYXSA9IHsNCj4gIAlbU0VDX0wzX0w0 XSA9ICJsM19sNCIsDQo+ICB9Ow0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3ZpcnRp by92aXJ0aW9fdXNlci92aG9zdC5oDQo+IGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2Vy L3Zob3N0LmgNCj4gaW5kZXggNjY4Y2M5OWY1Li44M2E4NWNjNmYgMTAwNjQ0DQo+IC0tLSBhL2Ry aXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdC5oDQo+ICsrKyBiL2RyaXZlcnMvbmV0 L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdC5oDQo+IEBAIC04OCw3ICs4OCw3IEBAIHN0cnVjdCB2 aXJ0aW9fdXNlcl9iYWNrZW5kX29wcyB7DQo+ICAJCQkgaW50IGVuYWJsZSk7DQo+ICB9Ow0KPiAN Cj4gLXN0cnVjdCB2aXJ0aW9fdXNlcl9iYWNrZW5kX29wcyBvcHNfdXNlcjsNCj4gLXN0cnVjdCB2 aXJ0aW9fdXNlcl9iYWNrZW5kX29wcyBvcHNfa2VybmVsOw0KPiArZXh0ZXJuIHN0cnVjdCB2aXJ0 aW9fdXNlcl9iYWNrZW5kX29wcyB2aXJ0aW9fb3BzX3VzZXI7DQo+ICtleHRlcm4gc3RydWN0IHZp cnRpb191c2VyX2JhY2tlbmRfb3BzIHZpcnRpb19vcHNfa2VybmVsOw0KPiANCj4gICNlbmRpZg0K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X2tlcm5l bC5jDQo+IGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X2tlcm5lbC5jDQo+ IGluZGV4IGIzYmZjYjc2Zi4uOTM1YjdmNWZhIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC92 aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3Rfa2VybmVsLmMNCj4gKysrIGIvZHJpdmVycy9uZXQvdmly dGlvL3ZpcnRpb191c2VyL3Zob3N0X2tlcm5lbC5jDQo+IEBAIC0zNjEsNyArMzYxLDcgQEAgdmhv c3Rfa2VybmVsX2VuYWJsZV9xdWV1ZV9wYWlyKHN0cnVjdA0KPiB2aXJ0aW9fdXNlcl9kZXYgKmRl diwNCj4gIAlyZXR1cm4gMDsNCj4gIH0NCj4gDQo+IC1zdHJ1Y3QgdmlydGlvX3VzZXJfYmFja2Vu ZF9vcHMgb3BzX2tlcm5lbCA9IHsNCj4gK3N0cnVjdCB2aXJ0aW9fdXNlcl9iYWNrZW5kX29wcyB2 aXJ0aW9fb3BzX2tlcm5lbCA9IHsNCj4gIAkuc2V0dXAgPSB2aG9zdF9rZXJuZWxfc2V0dXAsDQo+ ICAJLnNlbmRfcmVxdWVzdCA9IHZob3N0X2tlcm5lbF9pb2N0bCwNCj4gIAkuZW5hYmxlX3FwID0g dmhvc3Rfa2VybmVsX2VuYWJsZV9xdWV1ZV9wYWlyDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3RfdXNlci5jDQo+IGIvZHJpdmVycy9uZXQvdmlydGlv L3ZpcnRpb191c2VyL3Zob3N0X3VzZXIuYw0KPiBpbmRleCA4YmQ0OTYxMGIuLjJjNmViYTBhNiAx MDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X3VzZXIu Yw0KPiArKysgYi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3RfdXNlci5jDQo+ IEBAIC00NjYsNyArNDY2LDcgQEAgdmhvc3RfdXNlcl9lbmFibGVfcXVldWVfcGFpcihzdHJ1Y3QN Cj4gdmlydGlvX3VzZXJfZGV2ICpkZXYsDQo+ICAJcmV0dXJuIDA7DQo+ICB9DQo+IA0KPiAtc3Ry dWN0IHZpcnRpb191c2VyX2JhY2tlbmRfb3BzIG9wc191c2VyID0gew0KPiArc3RydWN0IHZpcnRp b191c2VyX2JhY2tlbmRfb3BzIHZpcnRpb19vcHNfdXNlciA9IHsNCj4gIAkuc2V0dXAgPSB2aG9z dF91c2VyX3NldHVwLA0KPiAgCS5zZW5kX3JlcXVlc3QgPSB2aG9zdF91c2VyX3NvY2ssDQo+ICAJ LmVuYWJsZV9xcCA9IHZob3N0X3VzZXJfZW5hYmxlX3F1ZXVlX3BhaXINCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aXJ0aW9fdXNlcl9kZXYuYw0KPiBiL2Ry aXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aXJ0aW9fdXNlcl9kZXYuYw0KPiBpbmRleCA1 NWE4MmU0YjAuLjk5YTgyMDljNCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvdmlydGlvL3Zp cnRpb191c2VyL3ZpcnRpb191c2VyX2Rldi5jDQo+ICsrKyBiL2RyaXZlcnMvbmV0L3ZpcnRpby92 aXJ0aW9fdXNlci92aXJ0aW9fdXNlcl9kZXYuYw0KPiBAQCAtMzM4LDEyICszMzgsMTIgQEAgdmly dGlvX3VzZXJfZGV2X3NldHVwKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYNCj4gKmRldikNCj4gIAkJ CVBNRF9EUlZfTE9HKEVSUiwgIlNlcnZlciBtb2RlIGRvZXNuJ3Qgc3VwcG9ydA0KPiB2aG9zdC1r ZXJuZWwhIik7DQo+ICAJCQlyZXR1cm4gLTE7DQo+ICAJCX0NCj4gLQkJZGV2LT5vcHMgPSAmb3Bz X3VzZXI7DQo+ICsJCWRldi0+b3BzID0gJnZpcnRpb19vcHNfdXNlcjsNCj4gIAl9IGVsc2Ugew0K PiAgCQlpZiAoaXNfdmhvc3RfdXNlcl9ieV90eXBlKGRldi0+cGF0aCkpIHsNCj4gLQkJCWRldi0+ b3BzID0gJm9wc191c2VyOw0KPiArCQkJZGV2LT5vcHMgPSAmdmlydGlvX29wc191c2VyOw0KPiAg CQl9IGVsc2Ugew0KPiAtCQkJZGV2LT5vcHMgPSAmb3BzX2tlcm5lbDsNCj4gKwkJCWRldi0+b3Bz ID0gJnZpcnRpb19vcHNfa2VybmVsOw0KPiANCj4gIAkJCWRldi0+dmhvc3RmZHMgPSBtYWxsb2Mo ZGV2LT5tYXhfcXVldWVfcGFpcnMgKg0KPiAgCQkJCQkgICAgICAgc2l6ZW9mKGludCkpOw0KPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9yYXcvZHBhYTJfcWRtYS9kcGFhMl9xZG1hLmMNCj4gYi9kcml2 ZXJzL3Jhdy9kcGFhMl9xZG1hL2RwYWEyX3FkbWEuYw0KPiBpbmRleCAyNzg3ZDMwMjguLmQyZDg0 YWI3ZSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9yYXcvZHBhYTJfcWRtYS9kcGFhMl9xZG1hLmMN Cj4gKysrIGIvZHJpdmVycy9yYXcvZHBhYTJfcWRtYS9kcGFhMl9xZG1hLmMNCj4gQEAgLTM0LDEw ICszNCwxMCBAQCBzdGF0aWMgc3RydWN0IHFkbWFfaHdfcXVldWVfbGlzdCBxZG1hX3F1ZXVlX2xp c3QNCj4gIAk9IFRBSUxRX0hFQURfSU5JVElBTElaRVIocWRtYV9xdWV1ZV9saXN0KTsNCj4gDQo+ ICAvKiBRRE1BIFZpcnR1YWwgUXVldWVzICovDQo+IC1zdHJ1Y3QgcWRtYV92aXJ0X3F1ZXVlICpx ZG1hX3ZxczsNCj4gK3N0YXRpYyBzdHJ1Y3QgcWRtYV92aXJ0X3F1ZXVlICpxZG1hX3ZxczsNCj4g DQo+ICAvKiBRRE1BIHBlciBjb3JlIGRhdGEgKi8NCj4gLXN0cnVjdCBxZG1hX3Blcl9jb3JlX2lu Zm8gcWRtYV9jb3JlX2luZm9bUlRFX01BWF9MQ09SRV07DQo+ICtzdGF0aWMgc3RydWN0IHFkbWFf cGVyX2NvcmVfaW5mbyBxZG1hX2NvcmVfaW5mb1tSVEVfTUFYX0xDT1JFXTsNCj4gDQo+ICBzdGF0 aWMgc3RydWN0IHFkbWFfaHdfcXVldWUgKg0KPiAgYWxsb2NfaHdfcXVldWUodWludDMyX3QgbGNv cmVfaWQpDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3Jhdy9pZnBnYV9yYXdkZXYvYmFzZS9pZnBn YV9lbnVtZXJhdGUuYw0KPiBiL2RyaXZlcnMvcmF3L2lmcGdhX3Jhd2Rldi9iYXNlL2lmcGdhX2Vu dW1lcmF0ZS5jDQo+IGluZGV4IGYwOTM5ZGMzMi4uODQ4ZTUxODNhIDEwMDY0NA0KPiAtLS0gYS9k cml2ZXJzL3Jhdy9pZnBnYV9yYXdkZXYvYmFzZS9pZnBnYV9lbnVtZXJhdGUuYw0KPiArKysgYi9k cml2ZXJzL3Jhdy9pZnBnYV9yYXdkZXYvYmFzZS9pZnBnYV9lbnVtZXJhdGUuYw0KPiBAQCAtMTA0 LDE0ICsxMDQsMTQgQEAgc3RhdGljIHN0cnVjdCBmZWF0dXJlX2luZm8gcG9ydF9mZWF0dXJlc1td ID0gew0KPiAgCQkucmVzb3VyY2Vfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgZmVhdHVyZV9wb3J0X2hl YWRlciksDQo+ICAJCS5mZWF0dXJlX2luZGV4ID0gUE9SVF9GRUFUVVJFX0lEX0hFQURFUiwNCj4g IAkJLnJldmlzaW9uX2lkID0gUE9SVF9IRUFERVJfUkVWSVNJT04sDQo+IC0JCS5vcHMgPSAmcG9y dF9oZHJfb3BzLA0KPiArCQkub3BzID0gJmlmcGdhX3Jhd2Rldl9wb3J0X2hkcl9vcHMsDQo+ICAJ fSwNCj4gIAl7DQo+ICAJCS5uYW1lID0gUE9SVF9GRUFUVVJFX0VSUiwNCj4gIAkJLnJlc291cmNl X3NpemUgPSBzaXplb2Yoc3RydWN0IGZlYXR1cmVfcG9ydF9lcnJvciksDQo+ICAJCS5mZWF0dXJl X2luZGV4ID0gUE9SVF9GRUFUVVJFX0lEX0VSUk9SLA0KPiAgCQkucmV2aXNpb25faWQgPSBQT1JU X0VSUl9SRVZJU0lPTiwNCj4gLQkJLm9wcyA9ICZwb3J0X2Vycm9yX29wcywNCj4gKwkJLm9wcyA9 ICZpZnBnYV9yYXdkZXZfcG9ydF9lcnJvcl9vcHMsDQo+ICAJfSwNCj4gIAl7DQo+ICAJCS5uYW1l ID0gUE9SVF9GRUFUVVJFX1VNU0csDQo+IEBAIC0xMjQsMTQgKzEyNCwxNCBAQCBzdGF0aWMgc3Ry dWN0IGZlYXR1cmVfaW5mbyBwb3J0X2ZlYXR1cmVzW10gPSB7DQo+ICAJCS5yZXNvdXJjZV9zaXpl ID0gc2l6ZW9mKHN0cnVjdCBmZWF0dXJlX3BvcnRfdWludCksDQo+ICAJCS5mZWF0dXJlX2luZGV4 ID0gUE9SVF9GRUFUVVJFX0lEX1VJTlQsDQo+ICAJCS5yZXZpc2lvbl9pZCA9IFBPUlRfVUlOVF9S RVZJU0lPTiwNCj4gLQkJLm9wcyA9ICZwb3J0X3VpbnRfb3BzLA0KPiArCQkub3BzID0gJmlmcGdh X3Jhd2Rldl9wb3J0X3VpbnRfb3BzLA0KPiAgCX0sDQo+ICAJew0KPiAgCQkubmFtZSA9IFBPUlRf RkVBVFVSRV9TVFAsDQo+ICAJCS5yZXNvdXJjZV9zaXplID0gUE9SVF9GRUFUVVJFX1NUUF9SRUdJ T05fU0laRSwNCj4gIAkJLmZlYXR1cmVfaW5kZXggPSBQT1JUX0ZFQVRVUkVfSURfU1RQLA0KPiAg CQkucmV2aXNpb25faWQgPSBQT1JUX1NUUF9SRVZJU0lPTiwNCj4gLQkJLm9wcyA9ICZwb3J0X3N0 cF9vcHMsDQo+ICsJCS5vcHMgPSAmaWZwZ2FfcmF3ZGV2X3BvcnRfc3RwX29wcywNCj4gIAl9LA0K PiAgCXsNCj4gIAkJLm5hbWUgPSBQT1JUX0ZFQVRVUkVfVUFGVSwNCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvcmF3L2lmcGdhX3Jhd2Rldi9iYXNlL2lmcGdhX2ZlYXR1cmVfZGV2LmgNCj4gYi9kcml2 ZXJzL3Jhdy9pZnBnYV9yYXdkZXYvYmFzZS9pZnBnYV9mZWF0dXJlX2Rldi5oDQo+IGluZGV4IDdh MzlhNTgwYy4uNDM5MWYyZmRmIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL3Jhdy9pZnBnYV9yYXdk ZXYvYmFzZS9pZnBnYV9mZWF0dXJlX2Rldi5oDQo+ICsrKyBiL2RyaXZlcnMvcmF3L2lmcGdhX3Jh d2Rldi9iYXNlL2lmcGdhX2ZlYXR1cmVfZGV2LmgNCj4gQEAgLTE1NiwxMCArMTU2LDEwIEBAIHN0 cnVjdCBmcGdhX3VhZnVfaXJxX3NldCB7DQo+IA0KPiAgaW50IHBvcnRfc2V0X2lycShzdHJ1Y3Qg aWZwZ2FfcG9ydF9odyAqcG9ydCwgdTMyIGZlYXR1cmVfaWQsIHZvaWQgKmlycV9zZXQpOw0KPiAN Cj4gLWV4dGVybiBzdHJ1Y3QgZmVhdHVyZV9vcHMgcG9ydF9oZHJfb3BzOw0KPiAtZXh0ZXJuIHN0 cnVjdCBmZWF0dXJlX29wcyBwb3J0X2Vycm9yX29wczsNCj4gLWV4dGVybiBzdHJ1Y3QgZmVhdHVy ZV9vcHMgcG9ydF9zdHBfb3BzOw0KPiAtZXh0ZXJuIHN0cnVjdCBmZWF0dXJlX29wcyBwb3J0X3Vp bnRfb3BzOw0KPiArZXh0ZXJuIHN0cnVjdCBmZWF0dXJlX29wcyBpZnBnYV9yYXdkZXZfcG9ydF9o ZHJfb3BzOw0KPiArZXh0ZXJuIHN0cnVjdCBmZWF0dXJlX29wcyBpZnBnYV9yYXdkZXZfcG9ydF9l cnJvcl9vcHM7DQo+ICtleHRlcm4gc3RydWN0IGZlYXR1cmVfb3BzIGlmcGdhX3Jhd2Rldl9wb3J0 X3N0cF9vcHM7DQo+ICtleHRlcm4gc3RydWN0IGZlYXR1cmVfb3BzIGlmcGdhX3Jhd2Rldl9wb3J0 X3VpbnRfb3BzOw0KPiANCj4gIC8qIGhlbHAgZnVuY3Rpb25zIGZvciBmZWF0dXJlIG9wcyAqLw0K PiAgaW50IGZwZ2FfbXNpeF9zZXRfYmxvY2soc3RydWN0IGZlYXR1cmUgKmZlYXR1cmUsIHVuc2ln bmVkIGludCBzdGFydCwNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmF3L2lmcGdhX3Jhd2Rldi9i YXNlL2lmcGdhX3BvcnQuYw0KPiBiL2RyaXZlcnMvcmF3L2lmcGdhX3Jhd2Rldi9iYXNlL2lmcGdh X3BvcnQuYw0KPiBpbmRleCBhOTYyZjViNDUuLjhiNTY2OGQ0OSAxMDA2NDQNCj4gLS0tIGEvZHJp dmVycy9yYXcvaWZwZ2FfcmF3ZGV2L2Jhc2UvaWZwZ2FfcG9ydC5jDQo+ICsrKyBiL2RyaXZlcnMv cmF3L2lmcGdhX3Jhd2Rldi9iYXNlL2lmcGdhX3BvcnQuYw0KPiBAQCAtMzI2LDcgKzMyNiw3IEBA IHN0YXRpYyBpbnQgcG9ydF9oZHJfc2V0X3Byb3Aoc3RydWN0IGZlYXR1cmUgKmZlYXR1cmUsDQo+ IHN0cnVjdCBmZWF0dXJlX3Byb3AgKnByb3ApDQo+ICAJcmV0dXJuIC1FTk9FTlQ7DQo+ICB9DQo+ IA0KPiAtc3RydWN0IGZlYXR1cmVfb3BzIHBvcnRfaGRyX29wcyA9IHsNCj4gK3N0cnVjdCBmZWF0 dXJlX29wcyBpZnBnYV9yYXdkZXZfcG9ydF9oZHJfb3BzID0gew0KPiAgCS5pbml0ID0gcG9ydF9o ZHJfaW5pdCwNCj4gIAkudWluaXQgPSBwb3J0X2hkcl91aW5pdCwNCj4gIAkuZ2V0X3Byb3AgPSBw b3J0X2hkcl9nZXRfcHJvcCwNCj4gQEAgLTM1NCw3ICszNTQsNyBAQCBzdGF0aWMgdm9pZCBwb3J0 X3N0cF91aW5pdChzdHJ1Y3QgZmVhdHVyZSAqZmVhdHVyZSkNCj4gIAlkZXZfaW5mbyhOVUxMLCAi cG9ydCBzdHAgdWluaXQuXG4iKTsNCj4gIH0NCj4gDQo+IC1zdHJ1Y3QgZmVhdHVyZV9vcHMgcG9y dF9zdHBfb3BzID0gew0KPiArc3RydWN0IGZlYXR1cmVfb3BzIGlmcGdhX3Jhd2Rldl9wb3J0X3N0 cF9vcHMgPSB7DQo+ICAJLmluaXQgPSBwb3J0X3N0cF9pbml0LA0KPiAgCS51aW5pdCA9IHBvcnRf c3RwX3Vpbml0LA0KPiAgfTsNCj4gQEAgLTM4Miw3ICszODIsNyBAQCBzdGF0aWMgdm9pZCBwb3J0 X3VpbnRfdWluaXQoc3RydWN0IGZlYXR1cmUgKmZlYXR1cmUpDQo+ICAJZGV2X2luZm8oTlVMTCwg IlBPUlQgVUlOVCBVSW5pdC5cbiIpOw0KPiAgfQ0KPiANCj4gLXN0cnVjdCBmZWF0dXJlX29wcyBw b3J0X3VpbnRfb3BzID0gew0KPiArc3RydWN0IGZlYXR1cmVfb3BzIGlmcGdhX3Jhd2Rldl9wb3J0 X3VpbnRfb3BzID0gew0KPiAgCS5pbml0ID0gcG9ydF91aW50X2luaXQsDQo+ICAJLnVpbml0ID0g cG9ydF91aW50X3Vpbml0LA0KPiAgfTsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmF3L2lmcGdh X3Jhd2Rldi9iYXNlL2lmcGdhX3BvcnRfZXJyb3IuYw0KPiBiL2RyaXZlcnMvcmF3L2lmcGdhX3Jh d2Rldi9iYXNlL2lmcGdhX3BvcnRfZXJyb3IuYw0KPiBpbmRleCAyM2RiNTYyYjguLjlkZDFjZjU5 MCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9yYXcvaWZwZ2FfcmF3ZGV2L2Jhc2UvaWZwZ2FfcG9y dF9lcnJvci5jDQo+ICsrKyBiL2RyaXZlcnMvcmF3L2lmcGdhX3Jhd2Rldi9iYXNlL2lmcGdhX3Bv cnRfZXJyb3IuYw0KPiBAQCAtMTM2LDcgKzEzNiw3IEBAIHN0YXRpYyBpbnQgcG9ydF9lcnJvcl9z ZXRfcHJvcChzdHJ1Y3QgZmVhdHVyZQ0KPiAqZmVhdHVyZSwNCj4gIAlyZXR1cm4gLUVOT0VOVDsN Cj4gIH0NCj4gDQo+IC1zdHJ1Y3QgZmVhdHVyZV9vcHMgcG9ydF9lcnJvcl9vcHMgPSB7DQo+ICtz dHJ1Y3QgZmVhdHVyZV9vcHMgaWZwZ2FfcmF3ZGV2X3BvcnRfZXJyb3Jfb3BzID0gew0KPiAgCS5p bml0ID0gcG9ydF9lcnJvcl9pbml0LA0KPiAgCS51aW5pdCA9IHBvcnRfZXJyb3JfdWluaXQsDQo+ ICAJLmdldF9wcm9wID0gcG9ydF9lcnJvcl9nZXRfcHJvcCwNCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvcmF3L3NrZWxldG9uX3Jhd2Rldi9za2VsZXRvbl9yYXdkZXYuYw0KPiBiL2RyaXZlcnMvcmF3 L3NrZWxldG9uX3Jhd2Rldi9za2VsZXRvbl9yYXdkZXYuYw0KPiBpbmRleCA2NTE4YTJkOWEuLmQ3 NjMwZmM2OSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9yYXcvc2tlbGV0b25fcmF3ZGV2L3NrZWxl dG9uX3Jhd2Rldi5jDQo+ICsrKyBiL2RyaXZlcnMvcmF3L3NrZWxldG9uX3Jhd2Rldi9za2VsZXRv bl9yYXdkZXYuYw0KPiBAQCAtMzIsNyArMzIsNyBAQA0KPiAgaW50IHNrZWxldG9uX3BtZF9sb2d0 eXBlOw0KPiANCj4gIC8qIENvdW50IG9mIGluc3RhbmNlcyAqLw0KPiAtdWludDE2X3Qgc2tlbGRl dl9pbml0X29uY2U7DQo+ICtzdGF0aWMgdWludDE2X3Qgc2tlbGRldl9pbml0X29uY2U7DQo+IA0K PiAgLyoqPCBSYXdkZXYgU2tlbGV0b24gZHVtbXkgZHJpdmVyIG5hbWUgKi8NCj4gICNkZWZpbmUg U0tFTEVUT05fUE1EX1JBV0RFVl9OQU1FIHJhd2Rldl9za2VsZXRvbg0KPiBkaWZmIC0tZ2l0IGEv bGliL2xpYnJ0ZV9jb21wcmVzc2Rldi9ydGVfY29tcHJlc3NkZXYuYw0KPiBiL2xpYi9saWJydGVf Y29tcHJlc3NkZXYvcnRlX2NvbXByZXNzZGV2LmMNCj4gaW5kZXggOTA5MWRkNmVlLi4xMDEwMWVi YmUgMTAwNjQ0DQo+IC0tLSBhL2xpYi9saWJydGVfY29tcHJlc3NkZXYvcnRlX2NvbXByZXNzZGV2 LmMNCj4gKysrIGIvbGliL2xpYnJ0ZV9jb21wcmVzc2Rldi9ydGVfY29tcHJlc3NkZXYuYw0KPiBA QCAtMTgsMTkgKzE4LDE1IEBADQo+ICAjZGVmaW5lIFJURV9DT01QUkVTU0RFVl9ERVRBQ0hFRCAg KDApDQo+ICAjZGVmaW5lIFJURV9DT01QUkVTU0RFVl9BVFRBQ0hFRCAgKDEpDQo+IA0KPiAtc3Ry dWN0IHJ0ZV9jb21wcmVzc2RldiBydGVfY29tcF9kZXZpY2VzW1JURV9DT01QUkVTU19NQVhfREVW U107DQo+IC0NCj4gLXN0cnVjdCBydGVfY29tcHJlc3NkZXYgKnJ0ZV9jb21wcmVzc2RldnMgPSAm cnRlX2NvbXBfZGV2aWNlc1swXTsNCj4gK3N0YXRpYyBzdHJ1Y3QgcnRlX2NvbXByZXNzZGV2DQo+ IHJ0ZV9jb21wX2RldmljZXNbUlRFX0NPTVBSRVNTX01BWF9ERVZTXTsNCj4gDQo+ICBzdGF0aWMg c3RydWN0IHJ0ZV9jb21wcmVzc2Rldl9nbG9iYWwgY29tcHJlc3NkZXZfZ2xvYmFscyA9IHsNCj4g LQkJLmRldnMJCQk9ICZydGVfY29tcF9kZXZpY2VzWzBdLA0KPiArCQkuZGV2cwkJCT0gcnRlX2Nv bXBfZGV2aWNlcywNCj4gIAkJLmRhdGEJCQk9IHsgTlVMTCB9LA0KPiAgCQkubmJfZGV2cwkJPSAw LA0KPiAgCQkubWF4X2RldnMJCT0gUlRFX0NPTVBSRVNTX01BWF9ERVZTDQo+ICB9Ow0KPiANCj4g LXN0cnVjdCBydGVfY29tcHJlc3NkZXZfZ2xvYmFsICpydGVfY29tcHJlc3NkZXZfZ2xvYmFscyA9 DQo+ICZjb21wcmVzc2Rldl9nbG9iYWxzOw0KPiAtDQo+ICBjb25zdCBzdHJ1Y3QgcnRlX2NvbXBy ZXNzZGV2X2NhcGFiaWxpdGllcyAqIF9fcnRlX2V4cGVyaW1lbnRhbA0KPiAgcnRlX2NvbXByZXNz ZGV2X2NhcGFiaWxpdHlfZ2V0KHVpbnQ4X3QgZGV2X2lkLA0KPiAgCQkJZW51bSBydGVfY29tcF9h bGdvcml0aG0gYWxnbykNCj4gQEAgLTc4LDcgKzc0LDcgQEAgcnRlX2NvbXByZXNzZGV2X2dldF9m ZWF0dXJlX25hbWUodWludDY0X3QgZmxhZykNCj4gIHN0YXRpYyBzdHJ1Y3QgcnRlX2NvbXByZXNz ZGV2ICoNCj4gIHJ0ZV9jb21wcmVzc2Rldl9nZXRfZGV2KHVpbnQ4X3QgZGV2X2lkKQ0KPiAgew0K PiAtCXJldHVybiAmcnRlX2NvbXByZXNzZGV2X2dsb2JhbHMtPmRldnNbZGV2X2lkXTsNCj4gKwly ZXR1cm4gJmNvbXByZXNzZGV2X2dsb2JhbHMuZGV2c1tkZXZfaWRdOw0KPiAgfQ0KPiANCj4gIHN0 cnVjdCBydGVfY29tcHJlc3NkZXYgKiBfX3J0ZV9leHBlcmltZW50YWwNCj4gQEAgLTkwLDggKzg2 LDggQEAgcnRlX2NvbXByZXNzZGV2X3BtZF9nZXRfbmFtZWRfZGV2KGNvbnN0IGNoYXINCj4gKm5h bWUpDQo+ICAJaWYgKG5hbWUgPT0gTlVMTCkNCj4gIAkJcmV0dXJuIE5VTEw7DQo+IA0KPiAtCWZv ciAoaSA9IDA7IGkgPCBydGVfY29tcHJlc3NkZXZfZ2xvYmFscy0+bWF4X2RldnM7IGkrKykgew0K PiAtCQlkZXYgPSAmcnRlX2NvbXByZXNzZGV2X2dsb2JhbHMtPmRldnNbaV07DQo+ICsJZm9yIChp ID0gMDsgaSA8IGNvbXByZXNzZGV2X2dsb2JhbHMubWF4X2RldnM7IGkrKykgew0KPiArCQlkZXYg PSAmY29tcHJlc3NkZXZfZ2xvYmFscy5kZXZzW2ldOw0KPiANCj4gIAkJaWYgKChkZXYtPmF0dGFj aGVkID09IFJURV9DT01QUkVTU0RFVl9BVFRBQ0hFRCkgJiYNCj4gIAkJCQkoc3RyY21wKGRldi0+ ZGF0YS0+bmFtZSwgbmFtZSkgPT0gMCkpDQo+IEBAIC0xMDYsNyArMTAyLDcgQEAgcnRlX2NvbXBy ZXNzZGV2X2lzX3ZhbGlkX2Rldih1aW50OF90IGRldl9pZCkNCj4gIHsNCj4gIAlzdHJ1Y3QgcnRl X2NvbXByZXNzZGV2ICpkZXYgPSBOVUxMOw0KPiANCj4gLQlpZiAoZGV2X2lkID49IHJ0ZV9jb21w cmVzc2Rldl9nbG9iYWxzLT5uYl9kZXZzKQ0KPiArCWlmIChkZXZfaWQgPj0gY29tcHJlc3NkZXZf Z2xvYmFscy5uYl9kZXZzKQ0KPiAgCQlyZXR1cm4gMDsNCj4gDQo+ICAJZGV2ID0gcnRlX2NvbXBy ZXNzZGV2X2dldF9kZXYoZGV2X2lkKTsNCj4gQEAgLTEyNSwxMCArMTIxLDEwIEBAIHJ0ZV9jb21w cmVzc2Rldl9nZXRfZGV2X2lkKGNvbnN0IGNoYXIgKm5hbWUpDQo+ICAJaWYgKG5hbWUgPT0gTlVM TCkNCj4gIAkJcmV0dXJuIC0xOw0KPiANCj4gLQlmb3IgKGkgPSAwOyBpIDwgcnRlX2NvbXByZXNz ZGV2X2dsb2JhbHMtPm5iX2RldnM7IGkrKykNCj4gLQkJaWYgKChzdHJjbXAocnRlX2NvbXByZXNz ZGV2X2dsb2JhbHMtPmRldnNbaV0uZGF0YS0+bmFtZSwNCj4gbmFtZSkNCj4gKwlmb3IgKGkgPSAw OyBpIDwgY29tcHJlc3NkZXZfZ2xvYmFscy5uYl9kZXZzOyBpKyspDQo+ICsJCWlmICgoc3RyY21w KGNvbXByZXNzZGV2X2dsb2JhbHMuZGV2c1tpXS5kYXRhLT5uYW1lLCBuYW1lKQ0KPiAgCQkJCT09 IDApICYmDQo+IC0JCQkJKHJ0ZV9jb21wcmVzc2Rldl9nbG9iYWxzLT5kZXZzW2ldLmF0dGFjaGVk DQo+ID09DQo+ICsJCQkJKGNvbXByZXNzZGV2X2dsb2JhbHMuZGV2c1tpXS5hdHRhY2hlZCA9PQ0K PiANCj4gCVJURV9DT01QUkVTU0RFVl9BVFRBQ0hFRCkpDQo+ICAJCQlyZXR1cm4gaTsNCj4gDQo+ IEBAIC0xMzgsNyArMTM0LDcgQEAgcnRlX2NvbXByZXNzZGV2X2dldF9kZXZfaWQoY29uc3QgY2hh ciAqbmFtZSkNCj4gIHVpbnQ4X3QgX19ydGVfZXhwZXJpbWVudGFsDQo+ICBydGVfY29tcHJlc3Nk ZXZfY291bnQodm9pZCkNCj4gIHsNCj4gLQlyZXR1cm4gcnRlX2NvbXByZXNzZGV2X2dsb2JhbHMt Pm5iX2RldnM7DQo+ICsJcmV0dXJuIGNvbXByZXNzZGV2X2dsb2JhbHMubmJfZGV2czsNCj4gIH0N Cj4gDQo+ICB1aW50OF90IF9fcnRlX2V4cGVyaW1lbnRhbA0KPiBAQCAtMTQ2LDggKzE0Miw4IEBA IHJ0ZV9jb21wcmVzc2Rldl9kZXZpY2VzX2dldChjb25zdCBjaGFyDQo+ICpkcml2ZXJfbmFtZSwg dWludDhfdCAqZGV2aWNlcywNCj4gIAl1aW50OF90IG5iX2RldmljZXMpDQo+ICB7DQo+ICAJdWlu dDhfdCBpLCBjb3VudCA9IDA7DQo+IC0Jc3RydWN0IHJ0ZV9jb21wcmVzc2RldiAqZGV2cyA9IHJ0 ZV9jb21wcmVzc2Rldl9nbG9iYWxzLT5kZXZzOw0KPiAtCXVpbnQ4X3QgbWF4X2RldnMgPSBydGVf Y29tcHJlc3NkZXZfZ2xvYmFscy0+bWF4X2RldnM7DQo+ICsJc3RydWN0IHJ0ZV9jb21wcmVzc2Rl diAqZGV2cyA9IGNvbXByZXNzZGV2X2dsb2JhbHMuZGV2czsNCj4gKwl1aW50OF90IG1heF9kZXZz ID0gY29tcHJlc3NkZXZfZ2xvYmFscy5tYXhfZGV2czsNCj4gDQo+ICAJZm9yIChpID0gMDsgaSA8 IG1heF9kZXZzICYmIGNvdW50IDwgbmJfZGV2aWNlczsJaSsrKSB7DQo+IA0KPiBAQCAtNTc4LDcg KzU3NCw3IEBAIHVpbnQxNl90IF9fcnRlX2V4cGVyaW1lbnRhbA0KPiAgcnRlX2NvbXByZXNzZGV2 X2RlcXVldWVfYnVyc3QodWludDhfdCBkZXZfaWQsIHVpbnQxNl90IHFwX2lkLA0KPiAgCQlzdHJ1 Y3QgcnRlX2NvbXBfb3AgKipvcHMsIHVpbnQxNl90IG5iX29wcykNCj4gIHsNCj4gLQlzdHJ1Y3Qg cnRlX2NvbXByZXNzZGV2ICpkZXYgPSAmcnRlX2NvbXByZXNzZGV2c1tkZXZfaWRdOw0KPiArCXN0 cnVjdCBydGVfY29tcHJlc3NkZXYgKmRldiA9ICZydGVfY29tcF9kZXZpY2VzW2Rldl9pZF07DQo+ IA0KPiAgCW5iX29wcyA9ICgqZGV2LT5kZXF1ZXVlX2J1cnN0KQ0KPiAgCQkJKGRldi0+ZGF0YS0+ cXVldWVfcGFpcnNbcXBfaWRdLCBvcHMsIG5iX29wcyk7DQo+IEBAIC01OTAsNyArNTg2LDcgQEAg dWludDE2X3QgX19ydGVfZXhwZXJpbWVudGFsDQo+ICBydGVfY29tcHJlc3NkZXZfZW5xdWV1ZV9i dXJzdCh1aW50OF90IGRldl9pZCwgdWludDE2X3QgcXBfaWQsDQo+ICAJCXN0cnVjdCBydGVfY29t cF9vcCAqKm9wcywgdWludDE2X3QgbmJfb3BzKQ0KPiAgew0KPiAtCXN0cnVjdCBydGVfY29tcHJl c3NkZXYgKmRldiA9ICZydGVfY29tcHJlc3NkZXZzW2Rldl9pZF07DQo+ICsJc3RydWN0IHJ0ZV9j b21wcmVzc2RldiAqZGV2ID0gJnJ0ZV9jb21wX2RldmljZXNbZGV2X2lkXTsNCj4gDQo+ICAJcmV0 dXJuICgqZGV2LT5lbnF1ZXVlX2J1cnN0KSgNCj4gIAkJCWRldi0+ZGF0YS0+cXVldWVfcGFpcnNb cXBfaWRdLCBvcHMsIG5iX29wcyk7DQo+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2NvbXByZXNz ZGV2L3J0ZV9jb21wcmVzc2Rldl9wbWQuaA0KPiBiL2xpYi9saWJydGVfY29tcHJlc3NkZXYvcnRl X2NvbXByZXNzZGV2X3BtZC5oDQo+IGluZGV4IDM4ZTllYTAyYi4uMDQzMzUzYzk5IDEwMDY0NA0K PiAtLS0gYS9saWIvbGlicnRlX2NvbXByZXNzZGV2L3J0ZV9jb21wcmVzc2Rldl9wbWQuaA0KPiAr KysgYi9saWIvbGlicnRlX2NvbXByZXNzZGV2L3J0ZV9jb21wcmVzc2Rldl9wbWQuaA0KPiBAQCAt NTEsMTEgKzUxLDYgQEAgc3RydWN0IHJ0ZV9jb21wcmVzc2Rldl9nbG9iYWwgew0KPiAgCXVpbnQ4 X3QgbWF4X2RldnM7CQkvKio8IE1heCBudW1iZXIgb2YgZGV2aWNlcyAqLw0KPiAgfTsNCj4gDQo+ IC0vKiogUG9pbnRlciB0byBnbG9iYWwgYXJyYXkgb2YgY29tcCBkZXZpY2VzICovDQo+IC1leHRl cm4gc3RydWN0IHJ0ZV9jb21wcmVzc2RldiAqcnRlX2NvbXByZXNzZGV2czsNCj4gLS8qKiBQb2lu dGVyIHRvIGdsb2JhbCBjb21wIGRldmljZXMgZGF0YSBzdHJ1Y3R1cmUgKi8NCj4gLWV4dGVybiBz dHJ1Y3QgcnRlX2NvbXByZXNzZGV2X2dsb2JhbCAqcnRlX2NvbXByZXNzZGV2X2dsb2JhbHM7DQo+ IC0NCj4gIC8qKg0KPiAgICogR2V0IHRoZSBydGVfY29tcHJlc3NkZXYgc3RydWN0dXJlIGRldmlj ZSBwb2ludGVyIGZvciB0aGUgbmFtZWQgZGV2aWNlLg0KPiAgICoNCj4gZGlmZiAtLWdpdCBhL2xp Yi9saWJydGVfY3J5cHRvZGV2L3J0ZV9jcnlwdG9kZXYuYw0KPiBiL2xpYi9saWJydGVfY3J5cHRv ZGV2L3J0ZV9jcnlwdG9kZXYuYw0KPiBpbmRleCA2M2FlMjNmMDAuLjZjM2MyYTljZCAxMDA2NDQN Cj4gLS0tIGEvbGliL2xpYnJ0ZV9jcnlwdG9kZXYvcnRlX2NyeXB0b2Rldi5jDQo+ICsrKyBiL2xp Yi9saWJydGVfY3J5cHRvZGV2L3J0ZV9jcnlwdG9kZXYuYw0KPiBAQCAtNDMsMTkgKzQzLDE3IEBA DQo+IA0KPiAgc3RhdGljIHVpbnQ4X3QgbmJfZHJpdmVyczsNCj4gDQo+IC1zdHJ1Y3QgcnRlX2Ny eXB0b2RldiBydGVfY3J5cHRvX2RldmljZXNbUlRFX0NSWVBUT19NQVhfREVWU107DQo+ICtzdGF0 aWMgc3RydWN0IHJ0ZV9jcnlwdG9kZXYgcnRlX2NyeXB0b19kZXZpY2VzW1JURV9DUllQVE9fTUFY X0RFVlNdOw0KPiANCj4gLXN0cnVjdCBydGVfY3J5cHRvZGV2ICpydGVfY3J5cHRvZGV2cyA9ICZy dGVfY3J5cHRvX2RldmljZXNbMF07DQo+ICtzdHJ1Y3QgcnRlX2NyeXB0b2RldiAqcnRlX2NyeXB0 b2RldnMgPSBydGVfY3J5cHRvX2RldmljZXM7DQo+IA0KPiAgc3RhdGljIHN0cnVjdCBydGVfY3J5 cHRvZGV2X2dsb2JhbCBjcnlwdG9kZXZfZ2xvYmFscyA9IHsNCj4gLQkJLmRldnMJCQk9ICZydGVf Y3J5cHRvX2RldmljZXNbMF0sDQo+ICsJCS5kZXZzCQkJPSBydGVfY3J5cHRvX2RldmljZXMsDQo+ ICAJCS5kYXRhCQkJPSB7IE5VTEwgfSwNCj4gIAkJLm5iX2RldnMJCT0gMCwNCj4gIAkJLm1heF9k ZXZzCQk9IFJURV9DUllQVE9fTUFYX0RFVlMNCj4gIH07DQo+IA0KPiAtc3RydWN0IHJ0ZV9jcnlw dG9kZXZfZ2xvYmFsICpydGVfY3J5cHRvZGV2X2dsb2JhbHMgPSAmY3J5cHRvZGV2X2dsb2JhbHM7 DQo+IC0NCj4gIC8qIHNwaW5sb2NrIGZvciBjcnlwdG8gZGV2aWNlIGNhbGxiYWNrcyAqLw0KPiAg c3RhdGljIHJ0ZV9zcGlubG9ja190IHJ0ZV9jcnlwdG9kZXZfY2JfbG9jayA9IFJURV9TUElOTE9D S19JTklUSUFMSVpFUjsNCj4gDQo+IEBAIC00ODYsNyArNDg0LDcgQEAgcnRlX2NyeXB0b2Rldl9n ZXRfZmVhdHVyZV9uYW1lKHVpbnQ2NF90IGZsYWcpDQo+ICBzdHJ1Y3QgcnRlX2NyeXB0b2RldiAq DQo+ICBydGVfY3J5cHRvZGV2X3BtZF9nZXRfZGV2KHVpbnQ4X3QgZGV2X2lkKQ0KPiAgew0KPiAt CXJldHVybiAmcnRlX2NyeXB0b2Rldl9nbG9iYWxzLT5kZXZzW2Rldl9pZF07DQo+ICsJcmV0dXJu ICZjcnlwdG9kZXZfZ2xvYmFscy5kZXZzW2Rldl9pZF07DQo+ICB9DQo+IA0KPiAgc3RydWN0IHJ0 ZV9jcnlwdG9kZXYgKg0KPiBAQCAtNDk4LDggKzQ5Niw4IEBAIHJ0ZV9jcnlwdG9kZXZfcG1kX2dl dF9uYW1lZF9kZXYoY29uc3QgY2hhcg0KPiAqbmFtZSkNCj4gIAlpZiAobmFtZSA9PSBOVUxMKQ0K PiAgCQlyZXR1cm4gTlVMTDsNCj4gDQo+IC0JZm9yIChpID0gMDsgaSA8IHJ0ZV9jcnlwdG9kZXZf Z2xvYmFscy0+bWF4X2RldnM7IGkrKykgew0KPiAtCQlkZXYgPSAmcnRlX2NyeXB0b2Rldl9nbG9i YWxzLT5kZXZzW2ldOw0KPiArCWZvciAoaSA9IDA7IGkgPCBjcnlwdG9kZXZfZ2xvYmFscy5tYXhf ZGV2czsgaSsrKSB7DQo+ICsJCWRldiA9ICZjcnlwdG9kZXZfZ2xvYmFscy5kZXZzW2ldOw0KPiAN Cj4gIAkJaWYgKChkZXYtPmF0dGFjaGVkID09IFJURV9DUllQVE9ERVZfQVRUQUNIRUQpICYmDQo+ ICAJCQkJKHN0cmNtcChkZXYtPmRhdGEtPm5hbWUsIG5hbWUpID09IDApKQ0KPiBAQCAtNTE0LDcg KzUxMiw3IEBAIHJ0ZV9jcnlwdG9kZXZfcG1kX2lzX3ZhbGlkX2Rldih1aW50OF90IGRldl9pZCkN Cj4gIHsNCj4gIAlzdHJ1Y3QgcnRlX2NyeXB0b2RldiAqZGV2ID0gTlVMTDsNCj4gDQo+IC0JaWYg KGRldl9pZCA+PSBydGVfY3J5cHRvZGV2X2dsb2JhbHMtPm5iX2RldnMpDQo+ICsJaWYgKGRldl9p ZCA+PSBjcnlwdG9kZXZfZ2xvYmFscy5uYl9kZXZzKQ0KPiAgCQlyZXR1cm4gMDsNCj4gDQo+ICAJ ZGV2ID0gcnRlX2NyeXB0b2Rldl9wbWRfZ2V0X2RldihkZXZfaWQpOw0KPiBAQCAtNTMzLDEwICs1 MzEsMTAgQEAgcnRlX2NyeXB0b2Rldl9nZXRfZGV2X2lkKGNvbnN0IGNoYXIgKm5hbWUpDQo+ICAJ aWYgKG5hbWUgPT0gTlVMTCkNCj4gIAkJcmV0dXJuIC0xOw0KPiANCj4gLQlmb3IgKGkgPSAwOyBp IDwgcnRlX2NyeXB0b2Rldl9nbG9iYWxzLT5uYl9kZXZzOyBpKyspDQo+IC0JCWlmICgoc3RyY21w KHJ0ZV9jcnlwdG9kZXZfZ2xvYmFscy0+ZGV2c1tpXS5kYXRhLT5uYW1lLA0KPiBuYW1lKQ0KPiAr CWZvciAoaSA9IDA7IGkgPCBjcnlwdG9kZXZfZ2xvYmFscy5uYl9kZXZzOyBpKyspDQo+ICsJCWlm ICgoc3RyY21wKGNyeXB0b2Rldl9nbG9iYWxzLmRldnNbaV0uZGF0YS0+bmFtZSwgbmFtZSkNCj4g IAkJCQk9PSAwKSAmJg0KPiAtCQkJCShydGVfY3J5cHRvZGV2X2dsb2JhbHMtPmRldnNbaV0uYXR0 YWNoZWQgPT0NCj4gKwkJCQkoY3J5cHRvZGV2X2dsb2JhbHMuZGV2c1tpXS5hdHRhY2hlZCA9PQ0K PiANCj4gCVJURV9DUllQVE9ERVZfQVRUQUNIRUQpKQ0KPiAgCQkJcmV0dXJuIGk7DQo+IA0KPiBA QCAtNTQ2LDcgKzU0NCw3IEBAIHJ0ZV9jcnlwdG9kZXZfZ2V0X2Rldl9pZChjb25zdCBjaGFyICpu YW1lKQ0KPiAgdWludDhfdA0KPiAgcnRlX2NyeXB0b2Rldl9jb3VudCh2b2lkKQ0KPiAgew0KPiAt CXJldHVybiBydGVfY3J5cHRvZGV2X2dsb2JhbHMtPm5iX2RldnM7DQo+ICsJcmV0dXJuIGNyeXB0 b2Rldl9nbG9iYWxzLm5iX2RldnM7DQo+ICB9DQo+IA0KPiAgdWludDhfdA0KPiBAQCAtNTU0LDkg KzU1Miw5IEBAIHJ0ZV9jcnlwdG9kZXZfZGV2aWNlX2NvdW50X2J5X2RyaXZlcih1aW50OF90DQo+ IGRyaXZlcl9pZCkNCj4gIHsNCj4gIAl1aW50OF90IGksIGRldl9jb3VudCA9IDA7DQo+IA0KPiAt CWZvciAoaSA9IDA7IGkgPCBydGVfY3J5cHRvZGV2X2dsb2JhbHMtPm1heF9kZXZzOyBpKyspDQo+ IC0JCWlmIChydGVfY3J5cHRvZGV2X2dsb2JhbHMtPmRldnNbaV0uZHJpdmVyX2lkID09IGRyaXZl cl9pZCAmJg0KPiAtCQkJcnRlX2NyeXB0b2Rldl9nbG9iYWxzLT5kZXZzW2ldLmF0dGFjaGVkID09 DQo+ICsJZm9yIChpID0gMDsgaSA8IGNyeXB0b2Rldl9nbG9iYWxzLm1heF9kZXZzOyBpKyspDQo+ ICsJCWlmIChjcnlwdG9kZXZfZ2xvYmFscy5kZXZzW2ldLmRyaXZlcl9pZCA9PSBkcml2ZXJfaWQg JiYNCj4gKwkJCWNyeXB0b2Rldl9nbG9iYWxzLmRldnNbaV0uYXR0YWNoZWQgPT0NCj4gIAkJCQkJ UlRFX0NSWVBUT0RFVl9BVFRBQ0hFRCkNCj4gIAkJCWRldl9jb3VudCsrOw0KPiANCj4gQEAgLTU2 OCw4ICs1NjYsOCBAQCBydGVfY3J5cHRvZGV2X2RldmljZXNfZ2V0KGNvbnN0IGNoYXINCj4gKmRy aXZlcl9uYW1lLCB1aW50OF90ICpkZXZpY2VzLA0KPiAgCXVpbnQ4X3QgbmJfZGV2aWNlcykNCj4g IHsNCj4gIAl1aW50OF90IGksIGNvdW50ID0gMDsNCj4gLQlzdHJ1Y3QgcnRlX2NyeXB0b2RldiAq ZGV2cyA9IHJ0ZV9jcnlwdG9kZXZfZ2xvYmFscy0+ZGV2czsNCj4gLQl1aW50OF90IG1heF9kZXZz ID0gcnRlX2NyeXB0b2Rldl9nbG9iYWxzLT5tYXhfZGV2czsNCj4gKwlzdHJ1Y3QgcnRlX2NyeXB0 b2RldiAqZGV2cyA9IGNyeXB0b2Rldl9nbG9iYWxzLmRldnM7DQo+ICsJdWludDhfdCBtYXhfZGV2 cyA9IGNyeXB0b2Rldl9nbG9iYWxzLm1heF9kZXZzOw0KPiANCj4gIAlmb3IgKGkgPSAwOyBpIDwg bWF4X2RldnMgJiYgY291bnQgPCBuYl9kZXZpY2VzOwlpKyspIHsNCj4gDQo+IGRpZmYgLS1naXQg YS9saWIvbGlicnRlX2NyeXB0b2Rldi9ydGVfY3J5cHRvZGV2X3BtZC5oDQo+IGIvbGliL2xpYnJ0 ZV9jcnlwdG9kZXYvcnRlX2NyeXB0b2Rldl9wbWQuaA0KPiBpbmRleCA2ZmY0OWQ2NGQuLjFiNmNh ZmQxNyAxMDA2NDQNCj4gLS0tIGEvbGliL2xpYnJ0ZV9jcnlwdG9kZXYvcnRlX2NyeXB0b2Rldl9w bWQuaA0KPiArKysgYi9saWIvbGlicnRlX2NyeXB0b2Rldi9ydGVfY3J5cHRvZGV2X3BtZC5oDQo+ IEBAIC03MSw5ICs3MSw2IEBAIHN0cnVjdCBjcnlwdG9kZXZfZHJpdmVyIHsNCj4gIAl1aW50OF90 IGlkOw0KPiAgfTsNCj4gDQo+IC0vKiogcG9pbnRlciB0byBnbG9iYWwgY3J5cHRvIGRldmljZXMg ZGF0YSBzdHJ1Y3R1cmUuICovDQo+IC1leHRlcm4gc3RydWN0IHJ0ZV9jcnlwdG9kZXZfZ2xvYmFs ICpydGVfY3J5cHRvZGV2X2dsb2JhbHM7DQo+IC0NCj4gIC8qKg0KPiAgICogR2V0IHRoZSBydGVf Y3J5cHRvZGV2IHN0cnVjdHVyZSBkZXZpY2UgcG9pbnRlciBmb3IgdGhlIGRldmljZS4gQXNzdW1l cyBhDQo+ICAgKiB2YWxpZCBkZXZpY2UgaW5kZXguDQo+IGRpZmYgLS1naXQgYS9saWIvbGlicnRl X2VhbC9jb21tb24vZWFsX2NvbW1vbl9idXMuYw0KPiBiL2xpYi9saWJydGVfZWFsL2NvbW1vbi9l YWxfY29tbW9uX2J1cy5jDQo+IGluZGV4IDA5NDM4NTFjYy4uYzEzMzRiOWEyIDEwMDY0NA0KPiAt LS0gYS9saWIvbGlicnRlX2VhbC9jb21tb24vZWFsX2NvbW1vbl9idXMuYw0KPiArKysgYi9saWIv bGlicnRlX2VhbC9jb21tb24vZWFsX2NvbW1vbl9idXMuYw0KPiBAQCAtNDAsNyArNDAsNyBAQA0K PiANCj4gICNpbmNsdWRlICJlYWxfcHJpdmF0ZS5oIg0KPiANCj4gLXN0cnVjdCBydGVfYnVzX2xp c3QgcnRlX2J1c19saXN0ID0NCj4gK3N0YXRpYyBzdHJ1Y3QgcnRlX2J1c19saXN0IHJ0ZV9idXNf bGlzdCA9DQo+ICAJVEFJTFFfSEVBRF9JTklUSUFMSVpFUihydGVfYnVzX2xpc3QpOw0KPiANCj4g IHZvaWQNCj4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZWFsL2NvbW1vbi9lYWxfY29tbW9uX2Ns YXNzLmMNCj4gYi9saWIvbGlicnRlX2VhbC9jb21tb24vZWFsX2NvbW1vbl9jbGFzcy5jDQo+IGlu ZGV4IDQwNGE5MDY1YS4uZDkyMjI2NmQwIDEwMDY0NA0KPiAtLS0gYS9saWIvbGlicnRlX2VhbC9j b21tb24vZWFsX2NvbW1vbl9jbGFzcy5jDQo+ICsrKyBiL2xpYi9saWJydGVfZWFsL2NvbW1vbi9l YWxfY29tbW9uX2NsYXNzLmMNCj4gQEAgLTksNyArOSw3IEBADQo+ICAjaW5jbHVkZSA8cnRlX2Ns YXNzLmg+DQo+ICAjaW5jbHVkZSA8cnRlX2RlYnVnLmg+DQo+IA0KPiAtc3RydWN0IHJ0ZV9jbGFz c19saXN0IHJ0ZV9jbGFzc19saXN0ID0NCj4gK3N0YXRpYyBzdHJ1Y3QgcnRlX2NsYXNzX2xpc3Qg cnRlX2NsYXNzX2xpc3QgPQ0KPiAgCVRBSUxRX0hFQURfSU5JVElBTElaRVIocnRlX2NsYXNzX2xp c3QpOw0KPiANCj4gIF9fcnRlX2V4cGVyaW1lbnRhbCB2b2lkDQo+IGRpZmYgLS1naXQgYS9saWIv bGlicnRlX2VhbC9jb21tb24vZWFsX2NvbW1vbl9kZXZhcmdzLmMNCj4gYi9saWIvbGlicnRlX2Vh bC9jb21tb24vZWFsX2NvbW1vbl9kZXZhcmdzLmMNCj4gaW5kZXggODhhZmVjZTEwLi4wMjA0NDRk ZTIgMTAwNjQ0DQo+IC0tLSBhL2xpYi9saWJydGVfZWFsL2NvbW1vbi9lYWxfY29tbW9uX2RldmFy Z3MuYw0KPiArKysgYi9saWIvbGlicnRlX2VhbC9jb21tb24vZWFsX2NvbW1vbl9kZXZhcmdzLmMN Cj4gQEAgLTI1LDcgKzI1LDcgQEANCj4gIFRBSUxRX0hFQUQocnRlX2RldmFyZ3NfbGlzdCwgcnRl X2RldmFyZ3MpOw0KPiANCj4gIC8qKiBHbG9iYWwgbGlzdCBvZiB1c2VyIGRldmljZXMgKi8NCj4g LXN0cnVjdCBydGVfZGV2YXJnc19saXN0IGRldmFyZ3NfbGlzdCA9DQo+ICtzdGF0aWMgc3RydWN0 IHJ0ZV9kZXZhcmdzX2xpc3QgZGV2YXJnc19saXN0ID0NCj4gIAlUQUlMUV9IRUFEX0lOSVRJQUxJ WkVSKGRldmFyZ3NfbGlzdCk7DQo+IA0KPiAgaW50DQo+IGRpZmYgLS1naXQgYS9saWIvbGlicnRl X2VhbC9saW51eGFwcC9lYWwvZWFsX21lbWFsbG9jLmMNCj4gYi9saWIvbGlicnRlX2VhbC9saW51 eGFwcC9lYWwvZWFsX21lbWFsbG9jLmMNCj4gaW5kZXggYjJlMmE5NTk5Li40ZGM5OGQyYzcgMTAw NjQ0DQo+IC0tLSBhL2xpYi9saWJydGVfZWFsL2xpbnV4YXBwL2VhbC9lYWxfbWVtYWxsb2MuYw0K PiArKysgYi9saWIvbGlicnRlX2VhbC9saW51eGFwcC9lYWwvZWFsX21lbWFsbG9jLmMNCj4gQEAg LTYxLDcgKzYxLDcgQEAgY29uc3QgaW50IGFub255bW91c19odWdlcGFnZXNfc3VwcG9ydGVkID0N Cj4gICAqIGFuZC9vciBtZW1mZCB3aXRoIGh1Z2V0bGJmcywgc28gd2UgbmVlZCB0byBiZSBhYmxl IHRvIGFkanVzdCB0aGlzIGZsYWcgYXQNCj4gICAqIHJ1bnRpbWUsIGFuZCBmYWxsIGJhY2sgdG8g YW5vbnltb3VzIG1lbW9yeS4NCj4gICAqLw0KPiAtaW50IG1lbWZkX2NyZWF0ZV9zdXBwb3J0ZWQg PQ0KPiArc3RhdGljIGludCBtZW1mZF9jcmVhdGVfc3VwcG9ydGVkID0NCj4gICNpZmRlZiBNRkRf SFVHRVRMQg0KPiAgI2RlZmluZSBNRU1GRF9TVVBQT1JURUQNCj4gIAkJMTsNCj4gZGlmZiAtLWdp dCBhL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9jbGFzc19ldGguYw0KPiBiL2xpYi9saWJydGVfZXRo ZGV2L3J0ZV9jbGFzc19ldGguYw0KPiBpbmRleCBiNjU1N2RiOTcuLjg5YTJkMWExOSAxMDA2NDQN Cj4gLS0tIGEvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2NsYXNzX2V0aC5jDQo+ICsrKyBiL2xpYi9s aWJydGVfZXRoZGV2L3J0ZV9jbGFzc19ldGguYw0KPiBAQCAtNzIsNyArNzIsNyBAQCBldGhfZGV2 X2l0ZXJhdGUoY29uc3Qgdm9pZCAqc3RhcnQsDQo+ICAJcmV0dXJuIGVkZXY7DQo+ICB9DQo+IA0K PiAtc3RydWN0IHJ0ZV9jbGFzcyBydGVfY2xhc3NfZXRoID0gew0KPiArc3RhdGljIHN0cnVjdCBy dGVfY2xhc3MgcnRlX2NsYXNzX2V0aCA9IHsNCj4gIAkuZGV2X2l0ZXJhdGUgPSBldGhfZGV2X2l0 ZXJhdGUsDQo+ICB9Ow0KPiANCj4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9l dGhkZXYuYyBiL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9ldGhkZXYuYw0KPiBpbmRleCBlZjk5Zjcw NjguLjVkNjdhNWViMiAxMDA2NDQNCj4gLS0tIGEvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2V0aGRl di5jDQo+ICsrKyBiL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9ldGhkZXYuYw0KPiBAQCAtNDIwMSw3 ICs0MjAxLDcgQEAgZW51bSBydGVfZXRoX3N3aXRjaF9kb21haW5fc3RhdGUgew0KPiAgICogUlRF X01BWF9FVEhQT1JUUyBlbGVtZW50cyBhcyB0aGVyZSBjYW5ub3QgYmUgbW9yZSBhY3RpdmUgc3dp dGNoDQo+IGRvbWFpbnMgdGhhbg0KPiAgICogZXRoZGV2IHBvcnRzIGluIGEgc2luZ2xlIHByb2Nl c3MuDQo+ICAgKi8NCj4gLXN0cnVjdCBydGVfZXRoX2Rldl9zd2l0Y2ggew0KPiArc3RhdGljIHN0 cnVjdCBydGVfZXRoX2Rldl9zd2l0Y2ggew0KPiAgCWVudW0gcnRlX2V0aF9zd2l0Y2hfZG9tYWlu X3N0YXRlIHN0YXRlOw0KPiAgfSBydGVfZXRoX3N3aXRjaF9kb21haW5zW1JURV9NQVhfRVRIUE9S VFNdOw0KPiANCj4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZXZlbnRkZXYvcnRlX2V2ZW50X2V0 aF9yeF9hZGFwdGVyLmMNCj4gYi9saWIvbGlicnRlX2V2ZW50ZGV2L3J0ZV9ldmVudF9ldGhfcnhf YWRhcHRlci5jDQo+IGluZGV4IDg3MGFjOGMzYi4uNzFkMDA4Y2QxIDEwMDY0NA0KPiAtLS0gYS9s aWIvbGlicnRlX2V2ZW50ZGV2L3J0ZV9ldmVudF9ldGhfcnhfYWRhcHRlci5jDQo+ICsrKyBiL2xp Yi9saWJydGVfZXZlbnRkZXYvcnRlX2V2ZW50X2V0aF9yeF9hZGFwdGVyLmMNCj4gQEAgLTExMjUs NyArMTEyNSw2IEBAIHJ4YV9wb2xsKHN0cnVjdCBydGVfZXZlbnRfZXRoX3J4X2FkYXB0ZXINCj4g KnJ4X2FkYXB0ZXIpDQo+ICAJd3JyX3BvcyA9IHJ4X2FkYXB0ZXItPndycl9wb3M7DQo+ICAJbWF4 X25iX3J4ID0gcnhfYWRhcHRlci0+bWF4X25iX3J4Ow0KPiAgCWJ1ZiA9ICZyeF9hZGFwdGVyLT5l dmVudF9lbnF1ZXVlX2J1ZmZlcjsNCj4gLQlzdGF0cyA9ICZyeF9hZGFwdGVyLT5zdGF0czsNCj4g DQo+ICAJLyogSXRlcmF0ZSB0aHJvdWdoIGEgV1JSIHNlcXVlbmNlICovDQo+ICAJZm9yIChudW1f cXVldWUgPSAwOyBudW1fcXVldWUgPCByeF9hZGFwdGVyLT53cnJfbGVuOw0KPiBudW1fcXVldWUr Kykgew0KPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9ldmVudGRldi9ydGVfZXZlbnRkZXYuYw0K PiBiL2xpYi9saWJydGVfZXZlbnRkZXYvcnRlX2V2ZW50ZGV2LmMNCj4gaW5kZXggMzJjNTMxOTli Li5lYmFmMzA4N2QgMTAwNjQ0DQo+IC0tLSBhL2xpYi9saWJydGVfZXZlbnRkZXYvcnRlX2V2ZW50 ZGV2LmMNCj4gKysrIGIvbGliL2xpYnJ0ZV9ldmVudGRldi9ydGVfZXZlbnRkZXYuYw0KPiBAQCAt MzUsMjIgKzM1LDIwIEBADQo+ICAjaW5jbHVkZSAicnRlX2V2ZW50ZGV2LmgiDQo+ICAjaW5jbHVk ZSAicnRlX2V2ZW50ZGV2X3BtZC5oIg0KPiANCj4gLXN0cnVjdCBydGVfZXZlbnRkZXYgcnRlX2V2 ZW50X2RldmljZXNbUlRFX0VWRU5UX01BWF9ERVZTXTsNCj4gK3N0YXRpYyBzdHJ1Y3QgcnRlX2V2 ZW50ZGV2IHJ0ZV9ldmVudF9kZXZpY2VzW1JURV9FVkVOVF9NQVhfREVWU107DQo+IA0KPiAtc3Ry dWN0IHJ0ZV9ldmVudGRldiAqcnRlX2V2ZW50ZGV2cyA9ICZydGVfZXZlbnRfZGV2aWNlc1swXTsN Cj4gK3N0cnVjdCBydGVfZXZlbnRkZXYgKnJ0ZV9ldmVudGRldnMgPSBydGVfZXZlbnRfZGV2aWNl czsNCj4gDQo+ICBzdGF0aWMgc3RydWN0IHJ0ZV9ldmVudGRldl9nbG9iYWwgZXZlbnRkZXZfZ2xv YmFscyA9IHsNCj4gIAkubmJfZGV2cwkJPSAwDQo+ICB9Ow0KPiANCj4gLXN0cnVjdCBydGVfZXZl bnRkZXZfZ2xvYmFsICpydGVfZXZlbnRkZXZfZ2xvYmFscyA9ICZldmVudGRldl9nbG9iYWxzOw0K PiAtDQo+ICAvKiBFdmVudCBkZXYgbm9ydGggYm91bmQgQVBJIGltcGxlbWVudGF0aW9uICovDQo+ IA0KPiAgdWludDhfdA0KPiAgcnRlX2V2ZW50X2Rldl9jb3VudCh2b2lkKQ0KPiAgew0KPiAtCXJl dHVybiBydGVfZXZlbnRkZXZfZ2xvYmFscy0+bmJfZGV2czsNCj4gKwlyZXR1cm4gZXZlbnRkZXZf Z2xvYmFscy5uYl9kZXZzOw0KPiAgfQ0KPiANCj4gIGludA0KPiBAQCAtNjIsNyArNjAsNyBAQCBy dGVfZXZlbnRfZGV2X2dldF9kZXZfaWQoY29uc3QgY2hhciAqbmFtZSkNCj4gIAlpZiAoIW5hbWUp DQo+ICAJCXJldHVybiAtRUlOVkFMOw0KPiANCj4gLQlmb3IgKGkgPSAwOyBpIDwgcnRlX2V2ZW50 ZGV2X2dsb2JhbHMtPm5iX2RldnM7IGkrKykgew0KPiArCWZvciAoaSA9IDA7IGkgPCBldmVudGRl dl9nbG9iYWxzLm5iX2RldnM7IGkrKykgew0KPiAgCQljbXAgPSAoc3RybmNtcChydGVfZXZlbnRf ZGV2aWNlc1tpXS5kYXRhLT5uYW1lLCBuYW1lLA0KPiAgCQkJCVJURV9FVkVOVERFVl9OQU1FX01B WF9MRU4pID09IDApIHx8DQo+ICAJCQkocnRlX2V2ZW50X2RldmljZXNbaV0uZGV2ID8gKHN0cm5j bXAoDQo+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2V2ZW50ZGV2L3J0ZV9ldmVudGRldl9wbWQu aA0KPiBiL2xpYi9saWJydGVfZXZlbnRkZXYvcnRlX2V2ZW50ZGV2X3BtZC5oDQo+IGluZGV4IDc5 MmZiM2EyMy4uYWE2ZTUyYzYzIDEwMDY0NA0KPiAtLS0gYS9saWIvbGlicnRlX2V2ZW50ZGV2L3J0 ZV9ldmVudGRldl9wbWQuaA0KPiArKysgYi9saWIvbGlicnRlX2V2ZW50ZGV2L3J0ZV9ldmVudGRl dl9wbWQuaA0KPiBAQCAtNDY3LDcgKzQ2Nyw3IEBAIHR5cGVkZWYgaW50ICgqZXZlbnRkZXZfZXRo X3J4X2FkYXB0ZXJfY2Fwc19nZXRfdCkNCj4gIAkJCQkJY29uc3Qgc3RydWN0IHJ0ZV9ldGhfZGV2 ICpldGhfZGV2LA0KPiAgCQkJCQl1aW50MzJfdCAqY2Fwcyk7DQo+IA0KPiAtc3RydWN0IHJ0ZV9l dmVudF9ldGhfcnhfYWRhcHRlcl9xdWV1ZV9jb25mICpxdWV1ZV9jb25mOw0KPiArc3RydWN0IHJ0 ZV9ldmVudF9ldGhfcnhfYWRhcHRlcl9xdWV1ZV9jb25mOw0KPiANCj4gIC8qKg0KPiAgICogUmV0 cmlldmUgdGhlIGV2ZW50IGRldmljZSdzIHRpbWVyIGFkYXB0ZXIgY2FwYWJpbGl0aWVzLCBhcyB3 ZWxsIGFzIHRoZSBvcHMNCj4gQEAgLTU5Miw3ICs1OTIsNyBAQCB0eXBlZGVmIGludCAoKmV2ZW50 ZGV2X2V0aF9yeF9hZGFwdGVyX3N0b3BfdCkNCj4gIAkJCQkJKGNvbnN0IHN0cnVjdCBydGVfZXZl bnRkZXYgKmRldiwNCj4gIAkJCQkJY29uc3Qgc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2KTsN Cj4gDQo+IC1zdHJ1Y3QgcnRlX2V2ZW50X2V0aF9yeF9hZGFwdGVyX3N0YXRzICpzdGF0czsNCj4g K3N0cnVjdCBydGVfZXZlbnRfZXRoX3J4X2FkYXB0ZXJfc3RhdHM7DQo+IA0KPiAgLyoqDQo+ICAg KiBSZXRyaWV2ZSBldGhlcm5ldCBSeCBhZGFwdGVyIHN0YXRpc3RpY3MuDQo+IGRpZmYgLS1naXQg YS9saWIvbGlicnRlX25ldC9uZXRfY3JjX3NzZS5oIGIvbGliL2xpYnJ0ZV9uZXQvbmV0X2NyY19z c2UuaA0KPiBpbmRleCBkYTgxNTI0MzcuLjFjN2I3YTU0OCAxMDA2NDQNCj4gLS0tIGEvbGliL2xp YnJ0ZV9uZXQvbmV0X2NyY19zc2UuaA0KPiArKysgYi9saWIvbGlicnRlX25ldC9uZXRfY3JjX3Nz ZS5oDQo+IEBAIC0yMSw4ICsyMSw4IEBAIHN0cnVjdCBjcmNfcGNsbXVscWRxX2N0eCB7DQo+ICAJ X19tMTI4aSByazdfcms4Ow0KPiAgfTsNCj4gDQo+IC1zdHJ1Y3QgY3JjX3BjbG11bHFkcV9jdHgg Y3JjMzJfZXRoX3BjbG11bHFkcSBfX3J0ZV9hbGlnbmVkKDE2KTsNCj4gLXN0cnVjdCBjcmNfcGNs bXVscWRxX2N0eCBjcmMxNl9jY2l0dF9wY2xtdWxxZHEgX19ydGVfYWxpZ25lZCgxNik7DQo+ICtz dGF0aWMgc3RydWN0IGNyY19wY2xtdWxxZHFfY3R4IGNyYzMyX2V0aF9wY2xtdWxxZHEgX19ydGVf YWxpZ25lZCgxNik7DQo+ICtzdGF0aWMgc3RydWN0IGNyY19wY2xtdWxxZHFfY3R4IGNyYzE2X2Nj aXR0X3BjbG11bHFkcSBfX3J0ZV9hbGlnbmVkKDE2KTsNCj4gIC8qKg0KPiAgICogQGJyaWVmIFBl cmZvcm1zIG9uZSBmb2xkaW5nIHJvdW5kDQo+ICAgKg0KPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0 ZV9yYXdkZXYvcnRlX3Jhd2Rldi5jIGIvbGliL2xpYnJ0ZV9yYXdkZXYvcnRlX3Jhd2Rldi5jDQo+ IGluZGV4IDYyYjZiOTdlZi4uOWYxZTM1OTJkIDEwMDY0NA0KPiAtLS0gYS9saWIvbGlicnRlX3Jh d2Rldi9ydGVfcmF3ZGV2LmMNCj4gKysrIGIvbGliL2xpYnJ0ZV9yYXdkZXYvcnRlX3Jhd2Rldi5j DQo+IEBAIC0zNSwyMSArMzUsMTkgQEANCj4gIC8qIGR5bmFtaWMgbG9nIGlkZW50aWZpZXIgKi8N Cj4gIGludCBsaWJyYXdkZXZfbG9ndHlwZTsNCj4gDQo+IC1zdHJ1Y3QgcnRlX3Jhd2RldiBydGVf cmF3ZGV2aWNlc1tSVEVfUkFXREVWX01BWF9ERVZTXTsNCj4gK3N0YXRpYyBzdHJ1Y3QgcnRlX3Jh d2RldiBydGVfcmF3ZGV2aWNlc1tSVEVfUkFXREVWX01BWF9ERVZTXTsNCj4gDQo+IC1zdHJ1Y3Qg cnRlX3Jhd2RldiAqcnRlX3Jhd2RldnMgPSAmcnRlX3Jhd2RldmljZXNbMF07DQo+ICtzdHJ1Y3Qg cnRlX3Jhd2RldiAqcnRlX3Jhd2RldnMgPSBydGVfcmF3ZGV2aWNlczsNCj4gDQo+ICBzdGF0aWMg c3RydWN0IHJ0ZV9yYXdkZXZfZ2xvYmFsIHJhd2Rldl9nbG9iYWxzID0gew0KPiAgCS5uYl9kZXZz CQk9IDANCj4gIH07DQo+IA0KPiAtc3RydWN0IHJ0ZV9yYXdkZXZfZ2xvYmFsICpydGVfcmF3ZGV2 X2dsb2JhbHMgPSAmcmF3ZGV2X2dsb2JhbHM7DQo+IC0NCj4gIC8qIFJhdyBkZXZpY2UsIG5vcnRo Ym91bmQgQVBJIGltcGxlbWVudGF0aW9uICovDQo+ICB1aW50OF90DQo+ICBydGVfcmF3ZGV2X2Nv dW50KHZvaWQpDQo+ICB7DQo+IC0JcmV0dXJuIHJ0ZV9yYXdkZXZfZ2xvYmFscy0+bmJfZGV2czsN Cj4gKwlyZXR1cm4gcmF3ZGV2X2dsb2JhbHMubmJfZGV2czsNCj4gIH0NCj4gDQo+ICB1aW50MTZf dA0KPiBAQCAtNjAsNyArNTgsNyBAQCBydGVfcmF3ZGV2X2dldF9kZXZfaWQoY29uc3QgY2hhciAq bmFtZSkNCj4gIAlpZiAoIW5hbWUpDQo+ICAJCXJldHVybiAtRUlOVkFMOw0KPiANCj4gLQlmb3Ig KGkgPSAwOyBpIDwgcnRlX3Jhd2Rldl9nbG9iYWxzLT5uYl9kZXZzOyBpKyspDQo+ICsJZm9yIChp ID0gMDsgaSA8IHJhd2Rldl9nbG9iYWxzLm5iX2RldnM7IGkrKykNCj4gIAkJaWYgKChzdHJjbXAo cnRlX3Jhd2RldmljZXNbaV0ubmFtZSwgbmFtZSkNCj4gIAkJCQk9PSAwKSAmJg0KPiAgCQkJCShy dGVfcmF3ZGV2aWNlc1tpXS5hdHRhY2hlZCA9PQ0K