From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.3 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED,USER_AGENT_SANE_2 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 03CE0C2D0E7 for ; Fri, 27 Mar 2020 01:59:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id CBDE320787 for ; Fri, 27 Mar 2020 01:59:14 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="AEGFthSb" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727600AbgC0Bzi (ORCPT ); Thu, 26 Mar 2020 21:55:38 -0400 Received: from mailgw01.mediatek.com ([210.61.82.183]:48900 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1727509AbgC0Bzi (ORCPT ); Thu, 26 Mar 2020 21:55:38 -0400 X-UUID: 623c8214087b4bbda9cdb63e218832b1-20200327 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=NpXQXF3XU7YnvugErp7L/ihlVIsG86Fy2NXer0pcFy8=; b=AEGFthSbgzfecwY3sMIxce0OgAgeH2dbqHS4gQZTYmvHdc6UBNCHthO93sVLfn5Glf93x/1sevwJifPIHlf0oY1ou7OTxrzMedexCpk4A2jjaCDRjsJy4rqfMQt/iJy690vW8Kkael24dGyClS3zQfwYSApuRL0vJOJ8ENhVUYw=; X-UUID: 623c8214087b4bbda9cdb63e218832b1-20200327 Received: from mtkcas06.mediatek.inc [(172.21.101.30)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 1698587405; Fri, 27 Mar 2020 09:55:21 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs08n2.mediatek.inc (172.21.101.56) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 27 Mar 2020 09:55:19 +0800 Received: from [172.21.77.4] (172.21.77.4) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Fri, 27 Mar 2020 09:55:17 +0800 Message-ID: <1585274119.5097.4.camel@mtksdaap41> Subject: Re: [PATCH v12 4/5] soc / drm: mediatek: Move routing control to mmsys device From: CK Hu To: Matthias Brugger CC: , Kate Stewart , Minghsiu Tsai , Andrew-CT Chen , , , , Richard Fontana , , , Collabora Kernel ML , , Weiyi Lu , , , mtk01761 , , , Daniel Vetter , , Seiya Wang , , Houlong Wei , , , , Matthias Brugger , Thomas Gleixner , "Mauro Carvalho Chehab" , Allison Randal , , Greg Kroah-Hartman , , , , , Enric Balletbo i Serra Date: Fri, 27 Mar 2020 09:55:19 +0800 In-Reply-To: <73ef0b8e-2802-a047-2a56-936b63d264cb@suse.com> References: <20200311165322.1594233-1-enric.balletbo@collabora.com> <20200311165322.1594233-5-enric.balletbo@collabora.com> <02290a21-7392-a2cf-576c-215091ec05e8@suse.com> <1585177534.26117.4.camel@mtksdaap41> <1585234277.12089.3.camel@mtksdaap41> <73ef0b8e-2802-a047-2a56-936b63d264cb@suse.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 X-TM-SNTS-SMTP: AAE6C36F4DBE2283DAF89787F7025C84DD617600B38475EBD8D7D1E8C97A00512000:8 X-MTK: N Content-Transfer-Encoding: base64 Sender: linux-clk-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-clk@vger.kernel.org SGksIE1hdHRoaWFzOg0KDQpPbiBUaHUsIDIwMjAtMDMtMjYgYXQgMTY6NDUgKzAxMDAsIE1hdHRo aWFzIEJydWdnZXIgd3JvdGU6DQo+IA0KPiBPbiAyNi8wMy8yMDIwIDE1OjUxLCBDSyBIdSB3cm90 ZToNCj4gPiBIaSwgTWF0dGhpYXM6DQo+ID4gDQo+ID4gT24gVGh1LCAyMDIwLTAzLTI2IGF0IDEy OjU0ICswMTAwLCBNYXR0aGlhcyBCcnVnZ2VyIHdyb3RlOg0KPiA+PiBIaSBDSywNCj4gPj4NCj4g Pj4gT24gMjYvMDMvMjAyMCAwMDowNSwgQ0sgSHUgd3JvdGU6DQo+ID4+PiBIaSwgTWF0dGhpYXM6 DQo+ID4+Pg0KPiA+Pj4gT24gV2VkLCAyMDIwLTAzLTI1IGF0IDE3OjE2ICswMTAwLCBNYXR0aGlh cyBCcnVnZ2VyIHdyb3RlOg0KPiA+Pj4+DQo+ID4+Pj4gT24gMTEvMDMvMjAyMCAxNzo1MywgRW5y aWMgQmFsbGV0Ym8gaSBTZXJyYSB3cm90ZToNCj4gPj4+Pj4gUHJvdmlkZSBhIG10a19tbXN5c19k ZHBfY29ubmVjdCgpIGFuZCBtdGtfbW1zeXNfZGlzY29ubmVjdCgpIGZ1bmN0aW9ucyB0bw0KPiA+ Pj4+PiByZXBsYWNlIG10a19kZHBfYWRkX2NvbXBfdG9fcGF0aCgpIGFuZCBtdGtfZGRwX3JlbW92 ZV9jb21wX2Zyb21fcGF0aCgpLg0KPiA+Pj4+PiBUaG9zZSBmdW5jdGlvbnMgd2lsbCBhbGxvdyBE Uk0gZHJpdmVyIGFuZCBvdGhlcnMgdG8gY29udHJvbCB0aGUgZGF0YQ0KPiA+Pj4+PiBwYXRoIHJv dXRpbmcuDQo+ID4+Pj4+DQo+ID4+Pj4+IFNpZ25lZC1vZmYtYnk6IEVucmljIEJhbGxldGJvIGkg U2VycmEgPGVucmljLmJhbGxldGJvQGNvbGxhYm9yYS5jb20+DQo+ID4+Pj4+IFJldmlld2VkLWJ5 OiBNYXR0aGlhcyBCcnVnZ2VyIDxtYXR0aGlhcy5iZ2dAZ21haWwuY29tPg0KPiA+Pj4+PiBSZXZp ZXdlZC1ieTogQ0sgSHUgPGNrLmh1QG1lZGlhdGVrLmNvbT4NCj4gPj4+Pj4gQWNrZWQtYnk6IENL IEh1IDxjay5odUBtZWRpYXRlay5jb20+DQo+ID4+Pj4NCj4gPj4+PiBUaGlzIHBhdGNoIGRvZXMg bm90IGFwcGx5IGFnYWluc3QgdjUuNi1yYzEuDQo+ID4+Pj4gUGxlYXNlIHJlYmFzZSBhcyB0aGlz IGlzIGEgcXVpdGUgYmlnIHBhdGNoIGFuZCBpdCB3b24ndCBiZSBlYXN5IHRvIGRvIHRoYXQgYnkg aGFuZC4NCj4gPj4+DQo+ID4+PiBJIHRoaW5rIHRoaXMgcGF0Y2ggZGVwZW5kcyBvbiBbMV0gd2hp Y2ggaGFzIGJlZW4gYWNrZWQgYnkgbWUgYW5kIEkgaGF2ZQ0KPiA+Pj4gbm90IHBpY2tlZCBpdC4g VGhlIHNpbXBsZSB3YXkgaXMgdGhhdCB5b3UgcGljayBbMV0gZmlyc3QgYW5kIHRoZW4gcGljaw0K PiA+Pj4gdGhpcyBzZXJpZXMuDQo+ID4+Pg0KPiA+Pj4gWzFdIA0KPiA+Pj4gaHR0cHM6Ly9wYXRj aHdvcmsua2VybmVsLm9yZy9wYXRjaC8xMTQwNjIyNy8NCj4gPj4+DQo+ID4+DQo+ID4+IFlvdSB3 b3VsZCBuZWVkIHRvIHByb3ZpZGUgYSBzdGFibGUgdGFnIGZvciBtZSB0aGF0IEkgY2FuIG1lcmdl IGludG8gbXkgdHJlZS4gWW91DQo+ID4+IGNhbiBhbHNvIHRyeSB0byBtZXJnZSBteSBmb3ItbmV4 dCBbMV0gd2hpY2ggaGFzIHRoZSBuZXdlc3QgdmVyc2lvbiBmcm9tIEVucmljLg0KPiA+PiBJZiB5 b3Ugc2VlIGFueSBtZXJnZSBjb25mbGljdCwgdGhlbiB3ZSBoYXZlIHRvIGRvIHNvbWV0aGluZyBh Ym91dCBpdCA6KQ0KPiA+Pg0KPiA+PiBSZWdhcmRzLA0KPiA+PiBNYXR0aGlhcw0KPiA+Pg0KPiA+ PiBbMV0NCj4gPj4gaHR0cHM6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9n aXQvbWF0dGhpYXMuYmdnL2xpbnV4LmdpdC9sb2cvP2g9Zm9yLW5leHQNCj4gPj4NCj4gPiANCj4g PiBZb3UgaGF2ZSBhcHBsaWVkIHRoaXMgc2VyaWVzLCBzbyBJIHdvdWxkIG5vdCBhcHBseSBvdGhl ciBwYXRjaGVzIHdoaWNoDQo+ID4gd291bGQgY29uZmxpY3Qgd2l0aCB0aGlzIHNlcmllcy4gQWZ0 ZXIgdGhpcyBzZXJpZXMgbGFuZCBvbiBtYWluIHN0cmVhbQ0KPiA+ICh3aXNoIGl0IGhhcHBlbiBp biB0aGlzIG1lcmdlIHdpbmRvdyksIEkgd291bGQgcmViYXNlIG90aGVyIHBhdGNoIG9uDQo+ID4g bWFpbiBzdHJlYW0uDQo+ID4gDQo+IA0KPiBJIGhhdmVuJ3QgKHlldCkgc2VuZCB0aGUgcHVsbCBy ZXF1ZXN0LiBJZiB5b3Ugd2FudCB0byBicmluZyBpbiB5b3VyIHBhdGNoZXMgaW4NCj4gdjUuNyBh cyB3ZWxsIHdlIGNhbiBmaW5kIGEgc29sdXRpb24gdG8gdGhhdC4gU2hhbGwgSSBwcm92aWRlIHlv dSB3aXRoIGEgc3RhYmxlDQo+IGJyYW5jaCB3aGljaCB5b3UgY2FuIG1lcmdlPyBUaGlzIHdheSB5 b3UgY2FuIGFkZCBhbGwgeW91ciBwYXRjaGVzIGluIHRoZSBwdWxsDQo+IHJlcXVlc3QgYXMgd2Vs bCBhbmQgd2UgZG9uJ3QgaGF2ZSB0byB3YWl0IGZvciB2NS44IHRvIGdldCB0aGluZ3MgaW50byBt YWlubGluZS4NCj4gDQo+IExldCBtZSBrbm93IGFuZCBJJ2xsIHByb3ZpZGUgeW91IHdpdGggYSBz dGFibGUgYnJhbmNoLg0KPiANCg0KT3RoZXIgZHJtIHBhdGNoZXMgaXMgbm90IGluIGEgaHVycnks IGZvciBub3cgSSBkb24ndCBuZWVkIGEgc3RhYmxlDQpicmFuY2guIElmIEkgbmVlZCBvbmUsIEkg d291bGQgdGVsbCB5b3UsIHRoYW5rcy4NCg0KUmVnYXJkcywNCkNLDQoNCj4gUmVnYXJkcywNCj4g TWF0dGhpYXMNCj4gDQo+ID4gUmVnYXJkcywNCj4gPiBDSw0KPiA+IA0KPiA+Pj4gUmVnYXJkcywN Cj4gPj4+IENLDQo+ID4+Pg0KPiA+Pj4+DQo+ID4+Pj4gUmVnYXJkcywNCj4gPj4+PiBNYXR0aGlh cw0KPiA+Pj4+DQo+ID4+Pj4+IC0tLQ0KPiA+Pj4+Pg0KPiA+Pj4+PiBDaGFuZ2VzIGluIHYxMjog Tm9uZQ0KPiA+Pj4+PiBDaGFuZ2VzIGluIHYxMDoNCj4gPj4+Pj4gLSBTZWxlY3QgQ09ORklHX01U S19NTVNZUyAoQ0spDQo+ID4+Pj4+IC0gUGFzcyBkZXZpY2UgcG9pbnRlciBvZiBtbXN5cyBkZXZp Y2UgaW5zdGVhZCBvZiBjb25maWcgcmVncyAoQ0spDQo+ID4+Pj4+DQo+ID4+Pj4+IENoYW5nZXMg aW4gdjk6DQo+ID4+Pj4+IC0gSW50cm9kdWNlZCBhIG5ldyBwYXRjaCB0byBtb3ZlIHJvdXRpbmcg Y29udHJvbCBpbnRvIG1tc3lzIGRyaXZlci4NCj4gPj4+Pj4gLSBSZW1vdmVkIHRoZSBwYXRjaCB0 byB1c2UgcmVnbWFwIGFzIGlzIG5vdCBuZWVkZWQgYW55bW9yZS4NCj4gPj4+Pj4NCj4gPj4+Pj4g Q2hhbmdlcyBpbiB2ODogTm9uZQ0KPiA+Pj4+PiBDaGFuZ2VzIGluIHY3OiBOb25lDQo+ID4+Pj4+ DQo+ID4+Pj4+ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvS2NvbmZpZyAgICAgICAgfCAgIDEg Kw0KPiA+Pj4+PiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fY3J0Yy5jIHwgIDE5 ICstDQo+ID4+Pj4+ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHAuYyAgfCAy NTYgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+Pj4+PiAgZHJpdmVycy9ncHUvZHJtL21lZGlh dGVrL210a19kcm1fZGRwLmggIHwgICA3IC0NCj4gPj4+Pj4gIGRyaXZlcnMvZ3B1L2RybS9tZWRp YXRlay9tdGtfZHJtX2Rydi5jICB8ICAxNCArLQ0KPiA+Pj4+PiAgZHJpdmVycy9ncHUvZHJtL21l ZGlhdGVrL210a19kcm1fZHJ2LmggIHwgICAyICstDQo+ID4+Pj4+ICBkcml2ZXJzL3NvYy9tZWRp YXRlay9tdGstbW1zeXMuYyAgICAgICAgfCAyNzkgKysrKysrKysrKysrKysrKysrKysrKysrDQo+ ID4+Pj4+ICBpbmNsdWRlL2xpbnV4L3NvYy9tZWRpYXRlay9tdGstbW1zeXMuaCAgfCAgMjAgKysN Cj4gPj4+Pj4gIDggZmlsZXMgY2hhbmdlZCwgMzE2IGluc2VydGlvbnMoKyksIDI4MiBkZWxldGlv bnMoLSkNCj4gPj4+Pj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2xpbnV4L3NvYy9tZWRp YXRlay9tdGstbW1zeXMuaA0KPiA+Pj4+Pg0KPiA+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL21lZGlhdGVrL0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvS2NvbmZp Zw0KPiA+Pj4+PiBpbmRleCBmYTVmZmM0ZmU4MjMuLmM0MjBmNWEzZDMzYiAxMDA2NDQNCj4gPj4+ Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL0tjb25maWcNCj4gPj4+Pj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL0tjb25maWcNCj4gPj4+Pj4gQEAgLTExLDYgKzExLDcg QEAgY29uZmlnIERSTV9NRURJQVRFSw0KPiA+Pj4+PiAgCXNlbGVjdCBEUk1fTUlQSV9EU0kNCj4g Pj4+Pj4gIAlzZWxlY3QgRFJNX1BBTkVMDQo+ID4+Pj4+ICAJc2VsZWN0IE1FTU9SWQ0KPiA+Pj4+ PiArCXNlbGVjdCBNVEtfTU1TWVMNCj4gPj4+Pj4gIAlzZWxlY3QgTVRLX1NNSQ0KPiA+Pj4+PiAg CXNlbGVjdCBWSURFT01PREVfSEVMUEVSUw0KPiA+Pj4+PiAgCWhlbHANCj4gPj4+Pj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2NydGMuYyBiL2RyaXZlcnMv Z3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2NydGMuYw0KPiA+Pj4+PiBpbmRleCAwZTA1NjgzZDdi NTMuLjU3OWE1YTVkNDQ3MiAxMDA2NDQNCj4gPj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21l ZGlhdGVrL210a19kcm1fY3J0Yy5jDQo+ID4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRp YXRlay9tdGtfZHJtX2NydGMuYw0KPiA+Pj4+PiBAQCAtNiw2ICs2LDcgQEANCj4gPj4+Pj4gICNp bmNsdWRlIDxsaW51eC9jbGsuaD4NCj4gPj4+Pj4gICNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1l Lmg+DQo+ID4+Pj4+ICAjaW5jbHVkZSA8bGludXgvc29jL21lZGlhdGVrL210ay1jbWRxLmg+DQo+ ID4+Pj4+ICsjaW5jbHVkZSA8bGludXgvc29jL21lZGlhdGVrL210ay1tbXN5cy5oPg0KPiA+Pj4+ PiAgDQo+ID4+Pj4+ICAjaW5jbHVkZSA8YXNtL2JhcnJpZXIuaD4NCj4gPj4+Pj4gICNpbmNsdWRl IDxzb2MvbWVkaWF0ZWsvc21pLmg+DQo+ID4+Pj4+IEBAIC0yOCw3ICsyOSw3IEBADQo+ID4+Pj4+ ICAgKiBAZW5hYmxlZDogcmVjb3JkcyB3aGV0aGVyIGNydGNfZW5hYmxlIHN1Y2NlZWRlZA0KPiA+ Pj4+PiAgICogQHBsYW5lczogYXJyYXkgb2YgNCBkcm1fcGxhbmUgc3RydWN0dXJlcywgb25lIGZv ciBlYWNoIG92ZXJsYXkgcGxhbmUNCj4gPj4+Pj4gICAqIEBwZW5kaW5nX3BsYW5lczogd2hldGhl ciBhbnkgcGxhbmUgaGFzIHBlbmRpbmcgY2hhbmdlcyB0byBiZSBhcHBsaWVkDQo+ID4+Pj4+IC0g KiBAY29uZmlnX3JlZ3M6IG1lbW9yeSBtYXBwZWQgbW1zeXMgY29uZmlndXJhdGlvbiByZWdpc3Rl ciBzcGFjZQ0KPiA+Pj4+PiArICogQG1tc3lzX2RldjogcG9pbnRlciB0byB0aGUgbW1zeXMgZGV2 aWNlIGZvciBjb25maWd1cmF0aW9uIHJlZ2lzdGVycw0KPiA+Pj4+PiAgICogQG11dGV4OiBoYW5k bGUgdG8gb25lIG9mIHRoZSB0ZW4gZGlzcF9tdXRleCBzdHJlYW1zDQo+ID4+Pj4+ICAgKiBAZGRw X2NvbXBfbnI6IG51bWJlciBvZiBjb21wb25lbnRzIGluIGRkcF9jb21wDQo+ID4+Pj4+ICAgKiBA ZGRwX2NvbXA6IGFycmF5IG9mIHBvaW50ZXJzIHRoZSBtdGtfZGRwX2NvbXAgc3RydWN0dXJlcyB1 c2VkIGJ5IHRoaXMgY3J0Yw0KPiA+Pj4+PiBAQCAtNTAsNyArNTEsNyBAQCBzdHJ1Y3QgbXRrX2Ry bV9jcnRjIHsNCj4gPj4+Pj4gIAl1MzIJCQkJY21kcV9ldmVudDsNCj4gPj4+Pj4gICNlbmRpZg0K PiA+Pj4+PiAgDQo+ID4+Pj4+IC0Jdm9pZCBfX2lvbWVtCQkJKmNvbmZpZ19yZWdzOw0KPiA+Pj4+ PiArCXN0cnVjdCBkZXZpY2UJCQkqbW1zeXNfZGV2Ow0KPiA+Pj4+PiAgCXN0cnVjdCBtdGtfZGlz cF9tdXRleAkJKm11dGV4Ow0KPiA+Pj4+PiAgCXVuc2lnbmVkIGludAkJCWRkcF9jb21wX25yOw0K PiA+Pj4+PiAgCXN0cnVjdCBtdGtfZGRwX2NvbXAJCSoqZGRwX2NvbXA7DQo+ID4+Pj4+IEBAIC0y OTYsOSArMjk3LDkgQEAgc3RhdGljIGludCBtdGtfY3J0Y19kZHBfaHdfaW5pdChzdHJ1Y3QgbXRr X2RybV9jcnRjICptdGtfY3J0YykNCj4gPj4+Pj4gIAl9DQo+ID4+Pj4+ICANCj4gPj4+Pj4gIAlm b3IgKGkgPSAwOyBpIDwgbXRrX2NydGMtPmRkcF9jb21wX25yIC0gMTsgaSsrKSB7DQo+ID4+Pj4+ IC0JCW10a19kZHBfYWRkX2NvbXBfdG9fcGF0aChtdGtfY3J0Yy0+Y29uZmlnX3JlZ3MsDQo+ID4+ Pj4+IC0JCQkJCSBtdGtfY3J0Yy0+ZGRwX2NvbXBbaV0tPmlkLA0KPiA+Pj4+PiAtCQkJCQkgbXRr X2NydGMtPmRkcF9jb21wW2kgKyAxXS0+aWQpOw0KPiA+Pj4+PiArCQltdGtfbW1zeXNfZGRwX2Nv bm5lY3QobXRrX2NydGMtPm1tc3lzX2RldiwNCj4gPj4+Pj4gKwkJCQkgICAgICBtdGtfY3J0Yy0+ ZGRwX2NvbXBbaV0tPmlkLA0KPiA+Pj4+PiArCQkJCSAgICAgIG10a19jcnRjLT5kZHBfY29tcFtp ICsgMV0tPmlkKTsNCj4gPj4+Pj4gIAkJbXRrX2Rpc3BfbXV0ZXhfYWRkX2NvbXAobXRrX2NydGMt Pm11dGV4LA0KPiA+Pj4+PiAgCQkJCQltdGtfY3J0Yy0+ZGRwX2NvbXBbaV0tPmlkKTsNCj4gPj4+ Pj4gIAl9DQo+ID4+Pj4+IEBAIC0zNTUsOSArMzU2LDkgQEAgc3RhdGljIHZvaWQgbXRrX2NydGNf ZGRwX2h3X2Zpbmkoc3RydWN0IG10a19kcm1fY3J0YyAqbXRrX2NydGMpDQo+ID4+Pj4+ICAJCQkJ CSAgIG10a19jcnRjLT5kZHBfY29tcFtpXS0+aWQpOw0KPiA+Pj4+PiAgCW10a19kaXNwX211dGV4 X2Rpc2FibGUobXRrX2NydGMtPm11dGV4KTsNCj4gPj4+Pj4gIAlmb3IgKGkgPSAwOyBpIDwgbXRr X2NydGMtPmRkcF9jb21wX25yIC0gMTsgaSsrKSB7DQo+ID4+Pj4+IC0JCW10a19kZHBfcmVtb3Zl X2NvbXBfZnJvbV9wYXRoKG10a19jcnRjLT5jb25maWdfcmVncywNCj4gPj4+Pj4gLQkJCQkJICAg ICAgbXRrX2NydGMtPmRkcF9jb21wW2ldLT5pZCwNCj4gPj4+Pj4gLQkJCQkJICAgICAgbXRrX2Ny dGMtPmRkcF9jb21wW2kgKyAxXS0+aWQpOw0KPiA+Pj4+PiArCQltdGtfbW1zeXNfZGRwX2Rpc2Nv bm5lY3QobXRrX2NydGMtPm1tc3lzX2RldiwNCj4gPj4+Pj4gKwkJCQkJIG10a19jcnRjLT5kZHBf Y29tcFtpXS0+aWQsDQo+ID4+Pj4+ICsJCQkJCSBtdGtfY3J0Yy0+ZGRwX2NvbXBbaSArIDFdLT5p ZCk7DQo+ID4+Pj4+ICAJCW10a19kaXNwX211dGV4X3JlbW92ZV9jb21wKG10a19jcnRjLT5tdXRl eCwNCj4gPj4+Pj4gIAkJCQkJICAgbXRrX2NydGMtPmRkcF9jb21wW2ldLT5pZCk7DQo+ID4+Pj4+ ICAJfQ0KPiA+Pj4+PiBAQCAtNzYxLDcgKzc2Miw3IEBAIGludCBtdGtfZHJtX2NydGNfY3JlYXRl KHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LA0KPiA+Pj4+PiAgCWlmICghbXRrX2NydGMpDQo+ ID4+Pj4+ICAJCXJldHVybiAtRU5PTUVNOw0KPiA+Pj4+PiAgDQo+ID4+Pj4+IC0JbXRrX2NydGMt PmNvbmZpZ19yZWdzID0gcHJpdi0+Y29uZmlnX3JlZ3M7DQo+ID4+Pj4+ICsJbXRrX2NydGMtPm1t c3lzX2RldiA9IHByaXYtPm1tc3lzX2RldjsNCj4gPj4+Pj4gIAltdGtfY3J0Yy0+ZGRwX2NvbXBf bnIgPSBwYXRoX2xlbjsNCj4gPj4+Pj4gIAltdGtfY3J0Yy0+ZGRwX2NvbXAgPSBkZXZtX2ttYWxs b2NfYXJyYXkoZGV2LCBtdGtfY3J0Yy0+ZGRwX2NvbXBfbnIsDQo+ID4+Pj4+ICAJCQkJCQlzaXpl b2YoKm10a19jcnRjLT5kZHBfY29tcCksDQo+ID4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9t dGtfZHJtX2RkcC5jDQo+ID4+Pj4+IGluZGV4IGI4ODVmNjBmNDc0Yy4uMDE0YzFiYmUxZGYyIDEw MDY0NA0KPiA+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHAu Yw0KPiA+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHAuYw0K PiA+Pj4+PiBAQCAtMTMsMjYgKzEzLDYgQEANCj4gPj4+Pj4gICNpbmNsdWRlICJtdGtfZHJtX2Rk cC5oIg0KPiA+Pj4+PiAgI2luY2x1ZGUgIm10a19kcm1fZGRwX2NvbXAuaCINCj4gPj4+Pj4gIA0K PiA+Pj4+PiAtI2RlZmluZSBESVNQX1JFR19DT05GSUdfRElTUF9PVkwwX01PVVRfRU4JMHgwNDAN Cj4gPj4+Pj4gLSNkZWZpbmUgRElTUF9SRUdfQ09ORklHX0RJU1BfT1ZMMV9NT1VUX0VOCTB4MDQ0 DQo+ID4+Pj4+IC0jZGVmaW5lIERJU1BfUkVHX0NPTkZJR19ESVNQX09EX01PVVRfRU4JCTB4MDQ4 DQo+ID4+Pj4+IC0jZGVmaW5lIERJU1BfUkVHX0NPTkZJR19ESVNQX0dBTU1BX01PVVRfRU4JMHgw NGMNCj4gPj4+Pj4gLSNkZWZpbmUgRElTUF9SRUdfQ09ORklHX0RJU1BfVUZPRV9NT1VUX0VOCTB4 MDUwDQo+ID4+Pj4+IC0jZGVmaW5lIERJU1BfUkVHX0NPTkZJR19ESVNQX0NPTE9SMF9TRUxfSU4J MHgwODQNCj4gPj4+Pj4gLSNkZWZpbmUgRElTUF9SRUdfQ09ORklHX0RJU1BfQ09MT1IxX1NFTF9J TgkweDA4OA0KPiA+Pj4+PiAtI2RlZmluZSBESVNQX1JFR19DT05GSUdfRFNJRV9TRUxfSU4JCTB4 MGE0DQo+ID4+Pj4+IC0jZGVmaW5lIERJU1BfUkVHX0NPTkZJR19EU0lPX1NFTF9JTgkJMHgwYTgN Cj4gPj4+Pj4gLSNkZWZpbmUgRElTUF9SRUdfQ09ORklHX0RQSV9TRUxfSU4JCTB4MGFjDQo+ID4+ Pj4+IC0jZGVmaW5lIERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUEyX1NPVVQJCTB4MGI4DQo+ID4+ Pj4+IC0jZGVmaW5lIERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUEwX1NPVVRfRU4JMHgwYzQNCj4g Pj4+Pj4gLSNkZWZpbmUgRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTFfU09VVF9FTgkweDBjOA0K PiA+Pj4+PiAtI2RlZmluZSBESVNQX1JFR19DT05GSUdfTU1TWVNfQ0dfQ09OMAkJMHgxMDANCj4g Pj4+Pj4gLQ0KPiA+Pj4+PiAtI2RlZmluZSBESVNQX1JFR19DT05GSUdfRElTUF9PVkxfTU9VVF9F TgkweDAzMA0KPiA+Pj4+PiAtI2RlZmluZSBESVNQX1JFR19DT05GSUdfT1VUX1NFTAkJCTB4MDRj DQo+ID4+Pj4+IC0jZGVmaW5lIERJU1BfUkVHX0NPTkZJR19EU0lfU0VMCQkJMHgwNTANCj4gPj4+ Pj4gLSNkZWZpbmUgRElTUF9SRUdfQ09ORklHX0RQSV9TRUwJCQkweDA2NA0KPiA+Pj4+PiAtDQo+ ID4+Pj4+ICAjZGVmaW5lIE1UMjcwMV9ESVNQX01VVEVYMF9NT0QwCQkJMHgyYw0KPiA+Pj4+PiAg I2RlZmluZSBNVDI3MDFfRElTUF9NVVRFWDBfU09GMAkJCTB4MzANCj4gPj4+Pj4gIA0KPiA+Pj4+ PiBAQCAtOTQsNDggKzc0LDYgQEANCj4gPj4+Pj4gICNkZWZpbmUgTVVURVhfU09GX0RTSTIJCQk1 DQo+ID4+Pj4+ICAjZGVmaW5lIE1VVEVYX1NPRl9EU0kzCQkJNg0KPiA+Pj4+PiAgDQo+ID4+Pj4+ IC0jZGVmaW5lIE9WTDBfTU9VVF9FTl9DT0xPUjAJCTB4MQ0KPiA+Pj4+PiAtI2RlZmluZSBPRF9N T1VUX0VOX1JETUEwCQkweDENCj4gPj4+Pj4gLSNkZWZpbmUgT0QxX01PVVRfRU5fUkRNQTEJCUJJ VCgxNikNCj4gPj4+Pj4gLSNkZWZpbmUgVUZPRV9NT1VUX0VOX0RTSTAJCTB4MQ0KPiA+Pj4+PiAt I2RlZmluZSBDT0xPUjBfU0VMX0lOX09WTDAJCTB4MQ0KPiA+Pj4+PiAtI2RlZmluZSBPVkwxX01P VVRfRU5fQ09MT1IxCQkweDENCj4gPj4+Pj4gLSNkZWZpbmUgR0FNTUFfTU9VVF9FTl9SRE1BMQkJ MHgxDQo+ID4+Pj4+IC0jZGVmaW5lIFJETUEwX1NPVVRfRFBJMAkJCTB4Mg0KPiA+Pj4+PiAtI2Rl ZmluZSBSRE1BMF9TT1VUX0RQSTEJCQkweDMNCj4gPj4+Pj4gLSNkZWZpbmUgUkRNQTBfU09VVF9E U0kxCQkJMHgxDQo+ID4+Pj4+IC0jZGVmaW5lIFJETUEwX1NPVVRfRFNJMgkJCTB4NA0KPiA+Pj4+ PiAtI2RlZmluZSBSRE1BMF9TT1VUX0RTSTMJCQkweDUNCj4gPj4+Pj4gLSNkZWZpbmUgUkRNQTFf U09VVF9EUEkwCQkJMHgyDQo+ID4+Pj4+IC0jZGVmaW5lIFJETUExX1NPVVRfRFBJMQkJCTB4Mw0K PiA+Pj4+PiAtI2RlZmluZSBSRE1BMV9TT1VUX0RTSTEJCQkweDENCj4gPj4+Pj4gLSNkZWZpbmUg UkRNQTFfU09VVF9EU0kyCQkJMHg0DQo+ID4+Pj4+IC0jZGVmaW5lIFJETUExX1NPVVRfRFNJMwkJ CTB4NQ0KPiA+Pj4+PiAtI2RlZmluZSBSRE1BMl9TT1VUX0RQSTAJCQkweDINCj4gPj4+Pj4gLSNk ZWZpbmUgUkRNQTJfU09VVF9EUEkxCQkJMHgzDQo+ID4+Pj4+IC0jZGVmaW5lIFJETUEyX1NPVVRf RFNJMQkJCTB4MQ0KPiA+Pj4+PiAtI2RlZmluZSBSRE1BMl9TT1VUX0RTSTIJCQkweDQNCj4gPj4+ Pj4gLSNkZWZpbmUgUkRNQTJfU09VVF9EU0kzCQkJMHg1DQo+ID4+Pj4+IC0jZGVmaW5lIERQSTBf U0VMX0lOX1JETUExCQkweDENCj4gPj4+Pj4gLSNkZWZpbmUgRFBJMF9TRUxfSU5fUkRNQTIJCTB4 Mw0KPiA+Pj4+PiAtI2RlZmluZSBEUEkxX1NFTF9JTl9SRE1BMQkJKDB4MSA8PCA4KQ0KPiA+Pj4+ PiAtI2RlZmluZSBEUEkxX1NFTF9JTl9SRE1BMgkJKDB4MyA8PCA4KQ0KPiA+Pj4+PiAtI2RlZmlu ZSBEU0kwX1NFTF9JTl9SRE1BMQkJMHgxDQo+ID4+Pj4+IC0jZGVmaW5lIERTSTBfU0VMX0lOX1JE TUEyCQkweDQNCj4gPj4+Pj4gLSNkZWZpbmUgRFNJMV9TRUxfSU5fUkRNQTEJCTB4MQ0KPiA+Pj4+ PiAtI2RlZmluZSBEU0kxX1NFTF9JTl9SRE1BMgkJMHg0DQo+ID4+Pj4+IC0jZGVmaW5lIERTSTJf U0VMX0lOX1JETUExCQkoMHgxIDw8IDE2KQ0KPiA+Pj4+PiAtI2RlZmluZSBEU0kyX1NFTF9JTl9S RE1BMgkJKDB4NCA8PCAxNikNCj4gPj4+Pj4gLSNkZWZpbmUgRFNJM19TRUxfSU5fUkRNQTEJCSgw eDEgPDwgMTYpDQo+ID4+Pj4+IC0jZGVmaW5lIERTSTNfU0VMX0lOX1JETUEyCQkoMHg0IDw8IDE2 KQ0KPiA+Pj4+PiAtI2RlZmluZSBDT0xPUjFfU0VMX0lOX09WTDEJCTB4MQ0KPiA+Pj4+PiAtDQo+ ID4+Pj4+IC0jZGVmaW5lIE9WTF9NT1VUX0VOX1JETUEJCTB4MQ0KPiA+Pj4+PiAtI2RlZmluZSBC TFNfVE9fRFNJX1JETUExX1RPX0RQSTEJMHg4DQo+ID4+Pj4+IC0jZGVmaW5lIEJMU19UT19EUElf UkRNQTFfVE9fRFNJCQkweDINCj4gPj4+Pj4gLSNkZWZpbmUgRFNJX1NFTF9JTl9CTFMJCQkweDAN Cj4gPj4+Pj4gLSNkZWZpbmUgRFBJX1NFTF9JTl9CTFMJCQkweDANCj4gPj4+Pj4gLSNkZWZpbmUg RFNJX1NFTF9JTl9SRE1BCQkJMHgxDQo+ID4+Pj4+ICANCj4gPj4+Pj4gIHN0cnVjdCBtdGtfZGlz cF9tdXRleCB7DQo+ID4+Pj4+ICAJaW50IGlkOw0KPiA+Pj4+PiBAQCAtMjQ2LDIwMCArMTg0LDYg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfZGRwX2RhdGEgbXQ4MTczX2RkcF9kcml2ZXJfZGF0 YSA9IHsNCj4gPj4+Pj4gIAkubXV0ZXhfc29mX3JlZyA9IE1UMjcwMV9ESVNQX01VVEVYMF9TT0Yw LA0KPiA+Pj4+PiAgfTsNCj4gPj4+Pj4gIA0KPiA+Pj4+PiAtc3RhdGljIHVuc2lnbmVkIGludCBt dGtfZGRwX21vdXRfZW4oZW51bSBtdGtfZGRwX2NvbXBfaWQgY3VyLA0KPiA+Pj4+PiAtCQkJCSAg ICBlbnVtIG10a19kZHBfY29tcF9pZCBuZXh0LA0KPiA+Pj4+PiAtCQkJCSAgICB1bnNpZ25lZCBp bnQgKmFkZHIpDQo+ID4+Pj4+IC17DQo+ID4+Pj4+IC0JdW5zaWduZWQgaW50IHZhbHVlOw0KPiA+ Pj4+PiAtDQo+ID4+Pj4+IC0JaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX09WTDAgJiYgbmV4dCA9 PSBERFBfQ09NUE9ORU5UX0NPTE9SMCkgew0KPiA+Pj4+PiAtCQkqYWRkciA9IERJU1BfUkVHX0NP TkZJR19ESVNQX09WTDBfTU9VVF9FTjsNCj4gPj4+Pj4gLQkJdmFsdWUgPSBPVkwwX01PVVRfRU5f Q09MT1IwOw0KPiA+Pj4+PiAtCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfT1ZMMCAm JiBuZXh0ID09IEREUF9DT01QT05FTlRfUkRNQTApIHsNCj4gPj4+Pj4gLQkJKmFkZHIgPSBESVNQ X1JFR19DT05GSUdfRElTUF9PVkxfTU9VVF9FTjsNCj4gPj4+Pj4gLQkJdmFsdWUgPSBPVkxfTU9V VF9FTl9SRE1BOw0KPiA+Pj4+PiAtCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfT0Qw ICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9SRE1BMCkgew0KPiA+Pj4+PiAtCQkqYWRkciA9IERJ U1BfUkVHX0NPTkZJR19ESVNQX09EX01PVVRfRU47DQo+ID4+Pj4+IC0JCXZhbHVlID0gT0RfTU9V VF9FTl9SRE1BMDsNCj4gPj4+Pj4gLQl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1VG T0UgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RTSTApIHsNCj4gPj4+Pj4gLQkJKmFkZHIgPSBE SVNQX1JFR19DT05GSUdfRElTUF9VRk9FX01PVVRfRU47DQo+ID4+Pj4+IC0JCXZhbHVlID0gVUZP RV9NT1VUX0VOX0RTSTA7DQo+ID4+Pj4+IC0JfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVO VF9PVkwxICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9DT0xPUjEpIHsNCj4gPj4+Pj4gLQkJKmFk ZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9PVkwxX01PVVRfRU47DQo+ID4+Pj4+IC0JCXZhbHVl ID0gT1ZMMV9NT1VUX0VOX0NPTE9SMTsNCj4gPj4+Pj4gLQl9IGVsc2UgaWYgKGN1ciA9PSBERFBf Q09NUE9ORU5UX0dBTU1BICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9SRE1BMSkgew0KPiA+Pj4+ PiAtCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX0dBTU1BX01PVVRfRU47DQo+ID4+Pj4+ IC0JCXZhbHVlID0gR0FNTUFfTU9VVF9FTl9SRE1BMTsNCj4gPj4+Pj4gLQl9IGVsc2UgaWYgKGN1 ciA9PSBERFBfQ09NUE9ORU5UX09EMSAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfUkRNQTEpIHsN Cj4gPj4+Pj4gLQkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9PRF9NT1VUX0VOOw0KPiA+ Pj4+PiAtCQl2YWx1ZSA9IE9EMV9NT1VUX0VOX1JETUExOw0KPiA+Pj4+PiAtCX0gZWxzZSBpZiAo Y3VyID09IEREUF9DT01QT05FTlRfUkRNQTAgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RQSTAp IHsNCj4gPj4+Pj4gLQkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9SRE1BMF9TT1VUX0VO Ow0KPiA+Pj4+PiAtCQl2YWx1ZSA9IFJETUEwX1NPVVRfRFBJMDsNCj4gPj4+Pj4gLQl9IGVsc2Ug aWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEwICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9E UEkxKSB7DQo+ID4+Pj4+IC0JCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTBfU09V VF9FTjsNCj4gPj4+Pj4gLQkJdmFsdWUgPSBSRE1BMF9TT1VUX0RQSTE7DQo+ID4+Pj4+IC0JfSBl bHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMCAmJiBuZXh0ID09IEREUF9DT01QT05F TlRfRFNJMSkgew0KPiA+Pj4+PiAtCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUEw X1NPVVRfRU47DQo+ID4+Pj4+IC0JCXZhbHVlID0gUkRNQTBfU09VVF9EU0kxOw0KPiA+Pj4+PiAt CX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTAgJiYgbmV4dCA9PSBERFBfQ09N UE9ORU5UX0RTSTIpIHsNCj4gPj4+Pj4gLQkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9S RE1BMF9TT1VUX0VOOw0KPiA+Pj4+PiAtCQl2YWx1ZSA9IFJETUEwX1NPVVRfRFNJMjsNCj4gPj4+ Pj4gLQl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEwICYmIG5leHQgPT0gRERQ X0NPTVBPTkVOVF9EU0kzKSB7DQo+ID4+Pj4+IC0JCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJ U1BfUkRNQTBfU09VVF9FTjsNCj4gPj4+Pj4gLQkJdmFsdWUgPSBSRE1BMF9TT1VUX0RTSTM7DQo+ ID4+Pj4+IC0JfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMSAmJiBuZXh0ID09 IEREUF9DT01QT05FTlRfRFNJMSkgew0KPiA+Pj4+PiAtCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJ R19ESVNQX1JETUExX1NPVVRfRU47DQo+ID4+Pj4+IC0JCXZhbHVlID0gUkRNQTFfU09VVF9EU0kx Ow0KPiA+Pj4+PiAtCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTEgJiYgbmV4 dCA9PSBERFBfQ09NUE9ORU5UX0RTSTIpIHsNCj4gPj4+Pj4gLQkJKmFkZHIgPSBESVNQX1JFR19D T05GSUdfRElTUF9SRE1BMV9TT1VUX0VOOw0KPiA+Pj4+PiAtCQl2YWx1ZSA9IFJETUExX1NPVVRf RFNJMjsNCj4gPj4+Pj4gLQl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYm IG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kzKSB7DQo+ID4+Pj4+IC0JCSphZGRyID0gRElTUF9S RUdfQ09ORklHX0RJU1BfUkRNQTFfU09VVF9FTjsNCj4gPj4+Pj4gLQkJdmFsdWUgPSBSRE1BMV9T T1VUX0RTSTM7DQo+ID4+Pj4+IC0JfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1B MSAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFBJMCkgew0KPiA+Pj4+PiAtCQkqYWRkciA9IERJ U1BfUkVHX0NPTkZJR19ESVNQX1JETUExX1NPVVRfRU47DQo+ID4+Pj4+IC0JCXZhbHVlID0gUkRN QTFfU09VVF9EUEkwOw0KPiA+Pj4+PiAtCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRf UkRNQTEgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RQSTEpIHsNCj4gPj4+Pj4gLQkJKmFkZHIg PSBESVNQX1JFR19DT05GSUdfRElTUF9SRE1BMV9TT1VUX0VOOw0KPiA+Pj4+PiAtCQl2YWx1ZSA9 IFJETUExX1NPVVRfRFBJMTsNCj4gPj4+Pj4gLQl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9O RU5UX1JETUEyICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EUEkwKSB7DQo+ID4+Pj4+IC0JCSph ZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTJfU09VVDsNCj4gPj4+Pj4gLQkJdmFsdWUg PSBSRE1BMl9TT1VUX0RQSTA7DQo+ID4+Pj4+IC0JfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBP TkVOVF9SRE1BMiAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFBJMSkgew0KPiA+Pj4+PiAtCQkq YWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUEyX1NPVVQ7DQo+ID4+Pj4+IC0JCXZhbHVl ID0gUkRNQTJfU09VVF9EUEkxOw0KPiA+Pj4+PiAtCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01Q T05FTlRfUkRNQTIgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RTSTEpIHsNCj4gPj4+Pj4gLQkJ KmFkZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9SRE1BMl9TT1VUOw0KPiA+Pj4+PiAtCQl2YWx1 ZSA9IFJETUEyX1NPVVRfRFNJMTsNCj4gPj4+Pj4gLQl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09N UE9ORU5UX1JETUEyICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kyKSB7DQo+ID4+Pj4+IC0J CSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTJfU09VVDsNCj4gPj4+Pj4gLQkJdmFs dWUgPSBSRE1BMl9TT1VUX0RTSTI7DQo+ID4+Pj4+IC0JfSBlbHNlIGlmIChjdXIgPT0gRERQX0NP TVBPTkVOVF9SRE1BMiAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFNJMykgew0KPiA+Pj4+PiAt CQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUEyX1NPVVQ7DQo+ID4+Pj4+IC0JCXZh bHVlID0gUkRNQTJfU09VVF9EU0kzOw0KPiA+Pj4+PiAtCX0gZWxzZSB7DQo+ID4+Pj4+IC0JCXZh bHVlID0gMDsNCj4gPj4+Pj4gLQl9DQo+ID4+Pj4+IC0NCj4gPj4+Pj4gLQlyZXR1cm4gdmFsdWU7 DQo+ID4+Pj4+IC19DQo+ID4+Pj4+IC0NCj4gPj4+Pj4gLXN0YXRpYyB1bnNpZ25lZCBpbnQgbXRr X2RkcF9zZWxfaW4oZW51bSBtdGtfZGRwX2NvbXBfaWQgY3VyLA0KPiA+Pj4+PiAtCQkJCSAgIGVu dW0gbXRrX2RkcF9jb21wX2lkIG5leHQsDQo+ID4+Pj4+IC0JCQkJICAgdW5zaWduZWQgaW50ICph ZGRyKQ0KPiA+Pj4+PiAtew0KPiA+Pj4+PiAtCXVuc2lnbmVkIGludCB2YWx1ZTsNCj4gPj4+Pj4g LQ0KPiA+Pj4+PiAtCWlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9PVkwwICYmIG5leHQgPT0gRERQ X0NPTVBPTkVOVF9DT0xPUjApIHsNCj4gPj4+Pj4gLQkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdf RElTUF9DT0xPUjBfU0VMX0lOOw0KPiA+Pj4+PiAtCQl2YWx1ZSA9IENPTE9SMF9TRUxfSU5fT1ZM MDsNCj4gPj4+Pj4gLQl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYmIG5l eHQgPT0gRERQX0NPTVBPTkVOVF9EUEkwKSB7DQo+ID4+Pj4+IC0JCSphZGRyID0gRElTUF9SRUdf Q09ORklHX0RQSV9TRUxfSU47DQo+ID4+Pj4+IC0JCXZhbHVlID0gRFBJMF9TRUxfSU5fUkRNQTE7 DQo+ID4+Pj4+IC0JfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMSAmJiBuZXh0 ID09IEREUF9DT01QT05FTlRfRFBJMSkgew0KPiA+Pj4+PiAtCQkqYWRkciA9IERJU1BfUkVHX0NP TkZJR19EUElfU0VMX0lOOw0KPiA+Pj4+PiAtCQl2YWx1ZSA9IERQSTFfU0VMX0lOX1JETUExOw0K PiA+Pj4+PiAtCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTEgJiYgbmV4dCA9 PSBERFBfQ09NUE9ORU5UX0RTSTApIHsNCj4gPj4+Pj4gLQkJKmFkZHIgPSBESVNQX1JFR19DT05G SUdfRFNJRV9TRUxfSU47DQo+ID4+Pj4+IC0JCXZhbHVlID0gRFNJMF9TRUxfSU5fUkRNQTE7DQo+ ID4+Pj4+IC0JfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMSAmJiBuZXh0ID09 IEREUF9DT01QT05FTlRfRFNJMSkgew0KPiA+Pj4+PiAtCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJ R19EU0lPX1NFTF9JTjsNCj4gPj4+Pj4gLQkJdmFsdWUgPSBEU0kxX1NFTF9JTl9SRE1BMTsNCj4g Pj4+Pj4gLQl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYmIG5leHQgPT0g RERQX0NPTVBPTkVOVF9EU0kyKSB7DQo+ID4+Pj4+IC0JCSphZGRyID0gRElTUF9SRUdfQ09ORklH X0RTSUVfU0VMX0lOOw0KPiA+Pj4+PiAtCQl2YWx1ZSA9IERTSTJfU0VMX0lOX1JETUExOw0KPiA+ Pj4+PiAtCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTEgJiYgbmV4dCA9PSBE RFBfQ09NUE9ORU5UX0RTSTMpIHsNCj4gPj4+Pj4gLQkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdf RFNJT19TRUxfSU47DQo+ID4+Pj4+IC0JCXZhbHVlID0gRFNJM19TRUxfSU5fUkRNQTE7DQo+ID4+ Pj4+IC0JfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMiAmJiBuZXh0ID09IERE UF9DT01QT05FTlRfRFBJMCkgew0KPiA+Pj4+PiAtCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19E UElfU0VMX0lOOw0KPiA+Pj4+PiAtCQl2YWx1ZSA9IERQSTBfU0VMX0lOX1JETUEyOw0KPiA+Pj4+ PiAtCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTIgJiYgbmV4dCA9PSBERFBf Q09NUE9ORU5UX0RQSTEpIHsNCj4gPj4+Pj4gLQkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRFBJ X1NFTF9JTjsNCj4gPj4+Pj4gLQkJdmFsdWUgPSBEUEkxX1NFTF9JTl9SRE1BMjsNCj4gPj4+Pj4g LQl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEyICYmIG5leHQgPT0gRERQX0NP TVBPTkVOVF9EU0kwKSB7DQo+ID4+Pj4+IC0JCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RTSUVf U0VMX0lOOw0KPiA+Pj4+PiAtCQl2YWx1ZSA9IERTSTBfU0VMX0lOX1JETUEyOw0KPiA+Pj4+PiAt CX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTIgJiYgbmV4dCA9PSBERFBfQ09N UE9ORU5UX0RTSTEpIHsNCj4gPj4+Pj4gLQkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRFNJT19T RUxfSU47DQo+ID4+Pj4+IC0JCXZhbHVlID0gRFNJMV9TRUxfSU5fUkRNQTI7DQo+ID4+Pj4+IC0J fSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMiAmJiBuZXh0ID09IEREUF9DT01Q T05FTlRfRFNJMikgew0KPiA+Pj4+PiAtCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19EU0lFX1NF TF9JTjsNCj4gPj4+Pj4gLQkJdmFsdWUgPSBEU0kyX1NFTF9JTl9SRE1BMjsNCj4gPj4+Pj4gLQl9 IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEyICYmIG5leHQgPT0gRERQX0NPTVBP TkVOVF9EU0kzKSB7DQo+ID4+Pj4+IC0JCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RTSUVfU0VM X0lOOw0KPiA+Pj4+PiAtCQl2YWx1ZSA9IERTSTNfU0VMX0lOX1JETUEyOw0KPiA+Pj4+PiAtCX0g ZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfT1ZMMSAmJiBuZXh0ID09IEREUF9DT01QT05F TlRfQ09MT1IxKSB7DQo+ID4+Pj4+IC0JCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfQ09M T1IxX1NFTF9JTjsNCj4gPj4+Pj4gLQkJdmFsdWUgPSBDT0xPUjFfU0VMX0lOX09WTDE7DQo+ID4+ Pj4+IC0JfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9CTFMgJiYgbmV4dCA9PSBERFBf Q09NUE9ORU5UX0RTSTApIHsNCj4gPj4+Pj4gLQkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRFNJ X1NFTDsNCj4gPj4+Pj4gLQkJdmFsdWUgPSBEU0lfU0VMX0lOX0JMUzsNCj4gPj4+Pj4gLQl9IGVs c2Ugew0KPiA+Pj4+PiAtCQl2YWx1ZSA9IDA7DQo+ID4+Pj4+IC0JfQ0KPiA+Pj4+PiAtDQo+ID4+ Pj4+IC0JcmV0dXJuIHZhbHVlOw0KPiA+Pj4+PiAtfQ0KPiA+Pj4+PiAtDQo+ID4+Pj4+IC1zdGF0 aWMgdm9pZCBtdGtfZGRwX3NvdXRfc2VsKHZvaWQgX19pb21lbSAqY29uZmlnX3JlZ3MsDQo+ID4+ Pj4+IC0JCQkgICAgIGVudW0gbXRrX2RkcF9jb21wX2lkIGN1ciwNCj4gPj4+Pj4gLQkJCSAgICAg ZW51bSBtdGtfZGRwX2NvbXBfaWQgbmV4dCkNCj4gPj4+Pj4gLXsNCj4gPj4+Pj4gLQlpZiAoY3Vy ID09IEREUF9DT01QT05FTlRfQkxTICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kwKSB7DQo+ ID4+Pj4+IC0JCXdyaXRlbF9yZWxheGVkKEJMU19UT19EU0lfUkRNQTFfVE9fRFBJMSwNCj4gPj4+ Pj4gLQkJCSAgICAgICBjb25maWdfcmVncyArIERJU1BfUkVHX0NPTkZJR19PVVRfU0VMKTsNCj4g Pj4+Pj4gLQl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX0JMUyAmJiBuZXh0ID09IERE UF9DT01QT05FTlRfRFBJMCkgew0KPiA+Pj4+PiAtCQl3cml0ZWxfcmVsYXhlZChCTFNfVE9fRFBJ X1JETUExX1RPX0RTSSwNCj4gPj4+Pj4gLQkJCSAgICAgICBjb25maWdfcmVncyArIERJU1BfUkVH X0NPTkZJR19PVVRfU0VMKTsNCj4gPj4+Pj4gLQkJd3JpdGVsX3JlbGF4ZWQoRFNJX1NFTF9JTl9S RE1BLA0KPiA+Pj4+PiAtCQkJICAgICAgIGNvbmZpZ19yZWdzICsgRElTUF9SRUdfQ09ORklHX0RT SV9TRUwpOw0KPiA+Pj4+PiAtCQl3cml0ZWxfcmVsYXhlZChEUElfU0VMX0lOX0JMUywNCj4gPj4+ Pj4gLQkJCSAgICAgICBjb25maWdfcmVncyArIERJU1BfUkVHX0NPTkZJR19EUElfU0VMKTsNCj4g Pj4+Pj4gLQl9DQo+ID4+Pj4+IC19DQo+ID4+Pj4+IC0NCj4gPj4+Pj4gLXZvaWQgbXRrX2RkcF9h ZGRfY29tcF90b19wYXRoKHZvaWQgX19pb21lbSAqY29uZmlnX3JlZ3MsDQo+ID4+Pj4+IC0JCQkg ICAgICBlbnVtIG10a19kZHBfY29tcF9pZCBjdXIsDQo+ID4+Pj4+IC0JCQkgICAgICBlbnVtIG10 a19kZHBfY29tcF9pZCBuZXh0KQ0KPiA+Pj4+PiAtew0KPiA+Pj4+PiAtCXVuc2lnbmVkIGludCBh ZGRyLCB2YWx1ZSwgcmVnOw0KPiA+Pj4+PiAtDQo+ID4+Pj4+IC0JdmFsdWUgPSBtdGtfZGRwX21v dXRfZW4oY3VyLCBuZXh0LCAmYWRkcik7DQo+ID4+Pj4+IC0JaWYgKHZhbHVlKSB7DQo+ID4+Pj4+ IC0JCXJlZyA9IHJlYWRsX3JlbGF4ZWQoY29uZmlnX3JlZ3MgKyBhZGRyKSB8IHZhbHVlOw0KPiA+ Pj4+PiAtCQl3cml0ZWxfcmVsYXhlZChyZWcsIGNvbmZpZ19yZWdzICsgYWRkcik7DQo+ID4+Pj4+ IC0JfQ0KPiA+Pj4+PiAtDQo+ID4+Pj4+IC0JbXRrX2RkcF9zb3V0X3NlbChjb25maWdfcmVncywg Y3VyLCBuZXh0KTsNCj4gPj4+Pj4gLQ0KPiA+Pj4+PiAtCXZhbHVlID0gbXRrX2RkcF9zZWxfaW4o Y3VyLCBuZXh0LCAmYWRkcik7DQo+ID4+Pj4+IC0JaWYgKHZhbHVlKSB7DQo+ID4+Pj4+IC0JCXJl ZyA9IHJlYWRsX3JlbGF4ZWQoY29uZmlnX3JlZ3MgKyBhZGRyKSB8IHZhbHVlOw0KPiA+Pj4+PiAt CQl3cml0ZWxfcmVsYXhlZChyZWcsIGNvbmZpZ19yZWdzICsgYWRkcik7DQo+ID4+Pj4+IC0JfQ0K PiA+Pj4+PiAtfQ0KPiA+Pj4+PiAtDQo+ID4+Pj4+IC12b2lkIG10a19kZHBfcmVtb3ZlX2NvbXBf ZnJvbV9wYXRoKHZvaWQgX19pb21lbSAqY29uZmlnX3JlZ3MsDQo+ID4+Pj4+IC0JCQkJICAgZW51 bSBtdGtfZGRwX2NvbXBfaWQgY3VyLA0KPiA+Pj4+PiAtCQkJCSAgIGVudW0gbXRrX2RkcF9jb21w X2lkIG5leHQpDQo+ID4+Pj4+IC17DQo+ID4+Pj4+IC0JdW5zaWduZWQgaW50IGFkZHIsIHZhbHVl LCByZWc7DQo+ID4+Pj4+IC0NCj4gPj4+Pj4gLQl2YWx1ZSA9IG10a19kZHBfbW91dF9lbihjdXIs IG5leHQsICZhZGRyKTsNCj4gPj4+Pj4gLQlpZiAodmFsdWUpIHsNCj4gPj4+Pj4gLQkJcmVnID0g cmVhZGxfcmVsYXhlZChjb25maWdfcmVncyArIGFkZHIpICYgfnZhbHVlOw0KPiA+Pj4+PiAtCQl3 cml0ZWxfcmVsYXhlZChyZWcsIGNvbmZpZ19yZWdzICsgYWRkcik7DQo+ID4+Pj4+IC0JfQ0KPiA+ Pj4+PiAtDQo+ID4+Pj4+IC0JdmFsdWUgPSBtdGtfZGRwX3NlbF9pbihjdXIsIG5leHQsICZhZGRy KTsNCj4gPj4+Pj4gLQlpZiAodmFsdWUpIHsNCj4gPj4+Pj4gLQkJcmVnID0gcmVhZGxfcmVsYXhl ZChjb25maWdfcmVncyArIGFkZHIpICYgfnZhbHVlOw0KPiA+Pj4+PiAtCQl3cml0ZWxfcmVsYXhl ZChyZWcsIGNvbmZpZ19yZWdzICsgYWRkcik7DQo+ID4+Pj4+IC0JfQ0KPiA+Pj4+PiAtfQ0KPiA+ Pj4+PiAtDQo+ID4+Pj4+ICBzdHJ1Y3QgbXRrX2Rpc3BfbXV0ZXggKm10a19kaXNwX211dGV4X2dl dChzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBpZCkNCj4gPj4+Pj4gIHsNCj4gPj4+ Pj4gIAlzdHJ1Y3QgbXRrX2RkcCAqZGRwID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ID4+Pj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHAuaCBiL2Ry aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcC5oDQo+ID4+Pj4+IGluZGV4IDgyN2Jl NDI0YTE0OC4uNmI2OTFhNTdiZTRhIDEwMDY0NA0KPiA+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2RybV9kZHAuaA0KPiA+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v bWVkaWF0ZWsvbXRrX2RybV9kZHAuaA0KPiA+Pj4+PiBAQCAtMTIsMTMgKzEyLDYgQEAgc3RydWN0 IHJlZ21hcDsNCj4gPj4+Pj4gIHN0cnVjdCBkZXZpY2U7DQo+ID4+Pj4+ICBzdHJ1Y3QgbXRrX2Rp c3BfbXV0ZXg7DQo+ID4+Pj4+ICANCj4gPj4+Pj4gLXZvaWQgbXRrX2RkcF9hZGRfY29tcF90b19w YXRoKHZvaWQgX19pb21lbSAqY29uZmlnX3JlZ3MsDQo+ID4+Pj4+IC0JCQkgICAgICBlbnVtIG10 a19kZHBfY29tcF9pZCBjdXIsDQo+ID4+Pj4+IC0JCQkgICAgICBlbnVtIG10a19kZHBfY29tcF9p ZCBuZXh0KTsNCj4gPj4+Pj4gLXZvaWQgbXRrX2RkcF9yZW1vdmVfY29tcF9mcm9tX3BhdGgodm9p ZCBfX2lvbWVtICpjb25maWdfcmVncywNCj4gPj4+Pj4gLQkJCQkgICBlbnVtIG10a19kZHBfY29t cF9pZCBjdXIsDQo+ID4+Pj4+IC0JCQkJICAgZW51bSBtdGtfZGRwX2NvbXBfaWQgbmV4dCk7DQo+ ID4+Pj4+IC0NCj4gPj4+Pj4gIHN0cnVjdCBtdGtfZGlzcF9tdXRleCAqbXRrX2Rpc3BfbXV0ZXhf Z2V0KHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IGlkKTsNCj4gPj4+Pj4gIGludCBt dGtfZGlzcF9tdXRleF9wcmVwYXJlKHN0cnVjdCBtdGtfZGlzcF9tdXRleCAqbXV0ZXgpOw0KPiA+ Pj4+PiAgdm9pZCBtdGtfZGlzcF9tdXRleF9hZGRfY29tcChzdHJ1Y3QgbXRrX2Rpc3BfbXV0ZXgg Km11dGV4LA0KPiA+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210 a19kcm1fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuYw0KPiA+ Pj4+PiBpbmRleCA4ZTJkM2NiNjJhZDUuLjIwOGY5YzUyNTZlZiAxMDA2NDQNCj4gPj4+Pj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmMNCj4gPj4+Pj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmMNCj4gPj4+Pj4gQEAgLTEwLDYg KzEwLDcgQEANCj4gPj4+Pj4gICNpbmNsdWRlIDxsaW51eC9vZl9hZGRyZXNzLmg+DQo+ID4+Pj4+ ICAjaW5jbHVkZSA8bGludXgvb2ZfcGxhdGZvcm0uaD4NCj4gPj4+Pj4gICNpbmNsdWRlIDxsaW51 eC9wbV9ydW50aW1lLmg+DQo+ID4+Pj4+ICsjaW5jbHVkZSA8bGludXgvc29jL21lZGlhdGVrL210 ay1tbXN5cy5oPg0KPiA+Pj4+PiAgI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+DQo+ID4+ Pj4+ICANCj4gPj4+Pj4gICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPg0KPiA+Pj4+PiBAQCAt NDI1LDcgKzQyNiw2IEBAIHN0YXRpYyBpbnQgbXRrX2RybV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpwZGV2KQ0KPiA+Pj4+PiAgew0KPiA+Pj4+PiAgCXN0cnVjdCBkZXZpY2UgKmRldiA9 ICZwZGV2LT5kZXY7DQo+ID4+Pj4+ICAJc3RydWN0IG10a19kcm1fcHJpdmF0ZSAqcHJpdmF0ZTsN Cj4gPj4+Pj4gLQlzdHJ1Y3QgcmVzb3VyY2UgKm1lbTsNCj4gPj4+Pj4gIAlzdHJ1Y3QgZGV2aWNl X25vZGUgKm5vZGU7DQo+ID4+Pj4+ICAJc3RydWN0IGNvbXBvbmVudF9tYXRjaCAqbWF0Y2ggPSBO VUxMOw0KPiA+Pj4+PiAgCWludCByZXQ7DQo+ID4+Pj4+IEBAIC00MzYsMTQgKzQzNiwxMCBAQCBz dGF0aWMgaW50IG10a19kcm1fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4g Pj4+Pj4gIAkJcmV0dXJuIC1FTk9NRU07DQo+ID4+Pj4+ICANCj4gPj4+Pj4gIAlwcml2YXRlLT5k YXRhID0gb2ZfZGV2aWNlX2dldF9tYXRjaF9kYXRhKGRldik7DQo+ID4+Pj4+IC0NCj4gPj4+Pj4g LQltZW0gPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOw0K PiA+Pj4+PiAtCXByaXZhdGUtPmNvbmZpZ19yZWdzID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKGRl diwgbWVtKTsNCj4gPj4+Pj4gLQlpZiAoSVNfRVJSKHByaXZhdGUtPmNvbmZpZ19yZWdzKSkgew0K PiA+Pj4+PiAtCQlyZXQgPSBQVFJfRVJSKHByaXZhdGUtPmNvbmZpZ19yZWdzKTsNCj4gPj4+Pj4g LQkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gaW9yZW1hcCBtbXN5cy1jb25maWcgcmVzb3VyY2U6 ICVkXG4iLA0KPiA+Pj4+PiAtCQkJcmV0KTsNCj4gPj4+Pj4gLQkJcmV0dXJuIHJldDsNCj4gPj4+ Pj4gKwlwcml2YXRlLT5tbXN5c19kZXYgPSBkZXYtPnBhcmVudDsNCj4gPj4+Pj4gKwlpZiAoIXBy aXZhdGUtPm1tc3lzX2Rldikgew0KPiA+Pj4+PiArCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBn ZXQgTU1TWVMgZGV2aWNlXG4iKTsNCj4gPj4+Pj4gKwkJcmV0dXJuIC1FTk9ERVY7DQo+ID4+Pj4+ ICAJfQ0KPiA+Pj4+PiAgDQo+ID4+Pj4+ICAJLyogSXRlcmF0ZSBvdmVyIHNpYmxpbmcgRElTUCBm dW5jdGlvbiBibG9ja3MgKi8NCj4gPj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9t ZWRpYXRlay9tdGtfZHJtX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1f ZHJ2LmgNCj4gPj4+Pj4gaW5kZXggMTdiYzk5YjlmNWQ0Li5iNWJlNjNlNTMxNzYgMTAwNjQ0DQo+ ID4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5oDQo+ID4+ Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5oDQo+ID4+Pj4+ IEBAIC0zOSw3ICszOSw3IEBAIHN0cnVjdCBtdGtfZHJtX3ByaXZhdGUgew0KPiA+Pj4+PiAgDQo+ ID4+Pj4+ICAJc3RydWN0IGRldmljZV9ub2RlICptdXRleF9ub2RlOw0KPiA+Pj4+PiAgCXN0cnVj dCBkZXZpY2UgKm11dGV4X2RldjsNCj4gPj4+Pj4gLQl2b2lkIF9faW9tZW0gKmNvbmZpZ19yZWdz Ow0KPiA+Pj4+PiArCXN0cnVjdCBkZXZpY2UgKm1tc3lzX2RldjsNCj4gPj4+Pj4gIAlzdHJ1Y3Qg ZGV2aWNlX25vZGUgKmNvbXBfbm9kZVtERFBfQ09NUE9ORU5UX0lEX01BWF07DQo+ID4+Pj4+ICAJ c3RydWN0IG10a19kZHBfY29tcCAqZGRwX2NvbXBbRERQX0NPTVBPTkVOVF9JRF9NQVhdOw0KPiA+ Pj4+PiAgCWNvbnN0IHN0cnVjdCBtdGtfbW1zeXNfZHJpdmVyX2RhdGEgKmRhdGE7DQo+ID4+Pj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL3NvYy9tZWRpYXRlay9tdGstbW1zeXMuYyBiL2RyaXZlcnMv c29jL21lZGlhdGVrL210ay1tbXN5cy5jDQo+ID4+Pj4+IGluZGV4IGRiZGZlZGQzMDJmYS4uNGIy ODZiNTI1Y2QzIDEwMDY0NA0KPiA+Pj4+PiAtLS0gYS9kcml2ZXJzL3NvYy9tZWRpYXRlay9tdGst bW1zeXMuYw0KPiA+Pj4+PiArKysgYi9kcml2ZXJzL3NvYy9tZWRpYXRlay9tdGstbW1zeXMuYw0K PiA+Pj4+PiBAQCAtNSw4ICs1LDc2IEBADQo+ID4+Pj4+ICAgKi8NCj4gPj4+Pj4gIA0KPiA+Pj4+ PiAgI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPg0KPiA+Pj4+PiArI2luY2x1ZGUgPGxp bnV4L2RldmljZS5oPg0KPiA+Pj4+PiAgI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPg0KPiA+ Pj4+PiAgI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPg0KPiA+Pj4+PiArI2luY2x1 ZGUgPGxpbnV4L3NvYy9tZWRpYXRlay9tdGstbW1zeXMuaD4NCj4gPj4+Pj4gKw0KPiA+Pj4+PiAr I2luY2x1ZGUgIi4uLy4uL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHAuaCINCj4gPj4+Pj4g KyNpbmNsdWRlICIuLi8uLi9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAuaCINCj4g Pj4+Pj4gKw0KPiA+Pj4+PiArI2RlZmluZSBESVNQX1JFR19DT05GSUdfRElTUF9PVkwwX01PVVRf RU4JMHgwNDANCj4gPj4+Pj4gKyNkZWZpbmUgRElTUF9SRUdfQ09ORklHX0RJU1BfT1ZMMV9NT1VU X0VOCTB4MDQ0DQo+ID4+Pj4+ICsjZGVmaW5lIERJU1BfUkVHX0NPTkZJR19ESVNQX09EX01PVVRf RU4JCTB4MDQ4DQo+ID4+Pj4+ICsjZGVmaW5lIERJU1BfUkVHX0NPTkZJR19ESVNQX0dBTU1BX01P VVRfRU4JMHgwNGMNCj4gPj4+Pj4gKyNkZWZpbmUgRElTUF9SRUdfQ09ORklHX0RJU1BfVUZPRV9N T1VUX0VOCTB4MDUwDQo+ID4+Pj4+ICsjZGVmaW5lIERJU1BfUkVHX0NPTkZJR19ESVNQX0NPTE9S MF9TRUxfSU4JMHgwODQNCj4gPj4+Pj4gKyNkZWZpbmUgRElTUF9SRUdfQ09ORklHX0RJU1BfQ09M T1IxX1NFTF9JTgkweDA4OA0KPiA+Pj4+PiArI2RlZmluZSBESVNQX1JFR19DT05GSUdfRFNJRV9T RUxfSU4JCTB4MGE0DQo+ID4+Pj4+ICsjZGVmaW5lIERJU1BfUkVHX0NPTkZJR19EU0lPX1NFTF9J TgkJMHgwYTgNCj4gPj4+Pj4gKyNkZWZpbmUgRElTUF9SRUdfQ09ORklHX0RQSV9TRUxfSU4JCTB4 MGFjDQo+ID4+Pj4+ICsjZGVmaW5lIERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUEyX1NPVVQJCTB4 MGI4DQo+ID4+Pj4+ICsjZGVmaW5lIERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUEwX1NPVVRfRU4J MHgwYzQNCj4gPj4+Pj4gKyNkZWZpbmUgRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTFfU09VVF9F TgkweDBjOA0KPiA+Pj4+PiArI2RlZmluZSBESVNQX1JFR19DT05GSUdfTU1TWVNfQ0dfQ09OMAkJ MHgxMDANCj4gPj4+Pj4gKw0KPiA+Pj4+PiArI2RlZmluZSBESVNQX1JFR19DT05GSUdfRElTUF9P VkxfTU9VVF9FTgkweDAzMA0KPiA+Pj4+PiArI2RlZmluZSBESVNQX1JFR19DT05GSUdfT1VUX1NF TAkJCTB4MDRjDQo+ID4+Pj4+ICsjZGVmaW5lIERJU1BfUkVHX0NPTkZJR19EU0lfU0VMCQkJMHgw NTANCj4gPj4+Pj4gKyNkZWZpbmUgRElTUF9SRUdfQ09ORklHX0RQSV9TRUwJCQkweDA2NA0KPiA+ Pj4+PiArDQo+ID4+Pj4+ICsjZGVmaW5lIE9WTDBfTU9VVF9FTl9DT0xPUjAJCQkweDENCj4gPj4+ Pj4gKyNkZWZpbmUgT0RfTU9VVF9FTl9SRE1BMAkJCTB4MQ0KPiA+Pj4+PiArI2RlZmluZSBPRDFf TU9VVF9FTl9SRE1BMQkJCUJJVCgxNikNCj4gPj4+Pj4gKyNkZWZpbmUgVUZPRV9NT1VUX0VOX0RT STAJCQkweDENCj4gPj4+Pj4gKyNkZWZpbmUgQ09MT1IwX1NFTF9JTl9PVkwwCQkJMHgxDQo+ID4+ Pj4+ICsjZGVmaW5lIE9WTDFfTU9VVF9FTl9DT0xPUjEJCQkweDENCj4gPj4+Pj4gKyNkZWZpbmUg R0FNTUFfTU9VVF9FTl9SRE1BMQkJCTB4MQ0KPiA+Pj4+PiArI2RlZmluZSBSRE1BMF9TT1VUX0RQ STAJCQkJMHgyDQo+ID4+Pj4+ICsjZGVmaW5lIFJETUEwX1NPVVRfRFBJMQkJCQkweDMNCj4gPj4+ Pj4gKyNkZWZpbmUgUkRNQTBfU09VVF9EU0kxCQkJCTB4MQ0KPiA+Pj4+PiArI2RlZmluZSBSRE1B MF9TT1VUX0RTSTIJCQkJMHg0DQo+ID4+Pj4+ICsjZGVmaW5lIFJETUEwX1NPVVRfRFNJMwkJCQkw eDUNCj4gPj4+Pj4gKyNkZWZpbmUgUkRNQTFfU09VVF9EUEkwCQkJCTB4Mg0KPiA+Pj4+PiArI2Rl ZmluZSBSRE1BMV9TT1VUX0RQSTEJCQkJMHgzDQo+ID4+Pj4+ICsjZGVmaW5lIFJETUExX1NPVVRf RFNJMQkJCQkweDENCj4gPj4+Pj4gKyNkZWZpbmUgUkRNQTFfU09VVF9EU0kyCQkJCTB4NA0KPiA+ Pj4+PiArI2RlZmluZSBSRE1BMV9TT1VUX0RTSTMJCQkJMHg1DQo+ID4+Pj4+ICsjZGVmaW5lIFJE TUEyX1NPVVRfRFBJMAkJCQkweDINCj4gPj4+Pj4gKyNkZWZpbmUgUkRNQTJfU09VVF9EUEkxCQkJ CTB4Mw0KPiA+Pj4+PiArI2RlZmluZSBSRE1BMl9TT1VUX0RTSTEJCQkJMHgxDQo+ID4+Pj4+ICsj ZGVmaW5lIFJETUEyX1NPVVRfRFNJMgkJCQkweDQNCj4gPj4+Pj4gKyNkZWZpbmUgUkRNQTJfU09V VF9EU0kzCQkJCTB4NQ0KPiA+Pj4+PiArI2RlZmluZSBEUEkwX1NFTF9JTl9SRE1BMQkJCTB4MQ0K PiA+Pj4+PiArI2RlZmluZSBEUEkwX1NFTF9JTl9SRE1BMgkJCTB4Mw0KPiA+Pj4+PiArI2RlZmlu ZSBEUEkxX1NFTF9JTl9SRE1BMQkJCSgweDEgPDwgOCkNCj4gPj4+Pj4gKyNkZWZpbmUgRFBJMV9T RUxfSU5fUkRNQTIJCQkoMHgzIDw8IDgpDQo+ID4+Pj4+ICsjZGVmaW5lIERTSTBfU0VMX0lOX1JE TUExCQkJMHgxDQo+ID4+Pj4+ICsjZGVmaW5lIERTSTBfU0VMX0lOX1JETUEyCQkJMHg0DQo+ID4+ Pj4+ICsjZGVmaW5lIERTSTFfU0VMX0lOX1JETUExCQkJMHgxDQo+ID4+Pj4+ICsjZGVmaW5lIERT STFfU0VMX0lOX1JETUEyCQkJMHg0DQo+ID4+Pj4+ICsjZGVmaW5lIERTSTJfU0VMX0lOX1JETUEx CQkJKDB4MSA8PCAxNikNCj4gPj4+Pj4gKyNkZWZpbmUgRFNJMl9TRUxfSU5fUkRNQTIJCQkoMHg0 IDw8IDE2KQ0KPiA+Pj4+PiArI2RlZmluZSBEU0kzX1NFTF9JTl9SRE1BMQkJCSgweDEgPDwgMTYp DQo+ID4+Pj4+ICsjZGVmaW5lIERTSTNfU0VMX0lOX1JETUEyCQkJKDB4NCA8PCAxNikNCj4gPj4+ Pj4gKyNkZWZpbmUgQ09MT1IxX1NFTF9JTl9PVkwxCQkJMHgxDQo+ID4+Pj4+ICsNCj4gPj4+Pj4g KyNkZWZpbmUgT1ZMX01PVVRfRU5fUkRNQQkJCTB4MQ0KPiA+Pj4+PiArI2RlZmluZSBCTFNfVE9f RFNJX1JETUExX1RPX0RQSTEJCTB4OA0KPiA+Pj4+PiArI2RlZmluZSBCTFNfVE9fRFBJX1JETUEx X1RPX0RTSQkJCTB4Mg0KPiA+Pj4+PiArI2RlZmluZSBEU0lfU0VMX0lOX0JMUwkJCQkweDANCj4g Pj4+Pj4gKyNkZWZpbmUgRFBJX1NFTF9JTl9CTFMJCQkJMHgwDQo+ID4+Pj4+ICsjZGVmaW5lIERT SV9TRUxfSU5fUkRNQQkJCQkweDENCj4gPj4+Pj4gIA0KPiA+Pj4+PiAgc3RydWN0IG10a19tbXN5 c19kcml2ZXJfZGF0YSB7DQo+ID4+Pj4+ICAJY29uc3QgY2hhciAqY2xrX2RyaXZlcjsNCj4gPj4+ Pj4gQEAgLTE2LDEwICs4NCwyMjEgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfbW1zeXNfZHJp dmVyX2RhdGEgbXQ4MTczX21tc3lzX2RyaXZlcl9kYXRhID0gew0KPiA+Pj4+PiAgCS5jbGtfZHJp dmVyID0gImNsay1tdDgxNzMtbW0iLA0KPiA+Pj4+PiAgfTsNCj4gPj4+Pj4gIA0KPiA+Pj4+PiAr c3RhdGljIHVuc2lnbmVkIGludCBtdGtfbW1zeXNfZGRwX21vdXRfZW4oZW51bSBtdGtfZGRwX2Nv bXBfaWQgY3VyLA0KPiA+Pj4+PiArCQkJCQkgIGVudW0gbXRrX2RkcF9jb21wX2lkIG5leHQsDQo+ ID4+Pj4+ICsJCQkJCSAgdW5zaWduZWQgaW50ICphZGRyKQ0KPiA+Pj4+PiArew0KPiA+Pj4+PiAr CXVuc2lnbmVkIGludCB2YWx1ZTsNCj4gPj4+Pj4gKw0KPiA+Pj4+PiArCWlmIChjdXIgPT0gRERQ X0NPTVBPTkVOVF9PVkwwICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9DT0xPUjApIHsNCj4gPj4+ Pj4gKwkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9PVkwwX01PVVRfRU47DQo+ID4+Pj4+ ICsJCXZhbHVlID0gT1ZMMF9NT1VUX0VOX0NPTE9SMDsNCj4gPj4+Pj4gKwl9IGVsc2UgaWYgKGN1 ciA9PSBERFBfQ09NUE9ORU5UX09WTDAgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX1JETUEwKSB7 DQo+ID4+Pj4+ICsJCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfT1ZMX01PVVRfRU47DQo+ ID4+Pj4+ICsJCXZhbHVlID0gT1ZMX01PVVRfRU5fUkRNQTsNCj4gPj4+Pj4gKwl9IGVsc2UgaWYg KGN1ciA9PSBERFBfQ09NUE9ORU5UX09EMCAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfUkRNQTAp IHsNCj4gPj4+Pj4gKwkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9PRF9NT1VUX0VOOw0K PiA+Pj4+PiArCQl2YWx1ZSA9IE9EX01PVVRfRU5fUkRNQTA7DQo+ID4+Pj4+ICsJfSBlbHNlIGlm IChjdXIgPT0gRERQX0NPTVBPTkVOVF9VRk9FICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kw KSB7DQo+ID4+Pj4+ICsJCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfVUZPRV9NT1VUX0VO Ow0KPiA+Pj4+PiArCQl2YWx1ZSA9IFVGT0VfTU9VVF9FTl9EU0kwOw0KPiA+Pj4+PiArCX0gZWxz ZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfT1ZMMSAmJiBuZXh0ID09IEREUF9DT01QT05FTlRf Q09MT1IxKSB7DQo+ID4+Pj4+ICsJCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfT1ZMMV9N T1VUX0VOOw0KPiA+Pj4+PiArCQl2YWx1ZSA9IE9WTDFfTU9VVF9FTl9DT0xPUjE7DQo+ID4+Pj4+ ICsJfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9HQU1NQSAmJiBuZXh0ID09IEREUF9D T01QT05FTlRfUkRNQTEpIHsNCj4gPj4+Pj4gKwkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRElT UF9HQU1NQV9NT1VUX0VOOw0KPiA+Pj4+PiArCQl2YWx1ZSA9IEdBTU1BX01PVVRfRU5fUkRNQTE7 DQo+ID4+Pj4+ICsJfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9PRDEgJiYgbmV4dCA9 PSBERFBfQ09NUE9ORU5UX1JETUExKSB7DQo+ID4+Pj4+ICsJCSphZGRyID0gRElTUF9SRUdfQ09O RklHX0RJU1BfT0RfTU9VVF9FTjsNCj4gPj4+Pj4gKwkJdmFsdWUgPSBPRDFfTU9VVF9FTl9SRE1B MTsNCj4gPj4+Pj4gKwl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEwICYmIG5l eHQgPT0gRERQX0NPTVBPTkVOVF9EUEkwKSB7DQo+ID4+Pj4+ICsJCSphZGRyID0gRElTUF9SRUdf Q09ORklHX0RJU1BfUkRNQTBfU09VVF9FTjsNCj4gPj4+Pj4gKwkJdmFsdWUgPSBSRE1BMF9TT1VU X0RQSTA7DQo+ID4+Pj4+ICsJfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMCAm JiBuZXh0ID09IEREUF9DT01QT05FTlRfRFBJMSkgew0KPiA+Pj4+PiArCQkqYWRkciA9IERJU1Bf UkVHX0NPTkZJR19ESVNQX1JETUEwX1NPVVRfRU47DQo+ID4+Pj4+ICsJCXZhbHVlID0gUkRNQTBf U09VVF9EUEkxOw0KPiA+Pj4+PiArCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRN QTAgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RTSTEpIHsNCj4gPj4+Pj4gKwkJKmFkZHIgPSBE SVNQX1JFR19DT05GSUdfRElTUF9SRE1BMF9TT1VUX0VOOw0KPiA+Pj4+PiArCQl2YWx1ZSA9IFJE TUEwX1NPVVRfRFNJMTsNCj4gPj4+Pj4gKwl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5U X1JETUEwICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kyKSB7DQo+ID4+Pj4+ICsJCSphZGRy ID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTBfU09VVF9FTjsNCj4gPj4+Pj4gKwkJdmFsdWUg PSBSRE1BMF9TT1VUX0RTSTI7DQo+ID4+Pj4+ICsJfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBP TkVOVF9SRE1BMCAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFNJMykgew0KPiA+Pj4+PiArCQkq YWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUEwX1NPVVRfRU47DQo+ID4+Pj4+ICsJCXZh bHVlID0gUkRNQTBfU09VVF9EU0kzOw0KPiA+Pj4+PiArCX0gZWxzZSBpZiAoY3VyID09IEREUF9D T01QT05FTlRfUkRNQTEgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RTSTEpIHsNCj4gPj4+Pj4g KwkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9SRE1BMV9TT1VUX0VOOw0KPiA+Pj4+PiAr CQl2YWx1ZSA9IFJETUExX1NPVVRfRFNJMTsNCj4gPj4+Pj4gKwl9IGVsc2UgaWYgKGN1ciA9PSBE RFBfQ09NUE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kyKSB7DQo+ID4+ Pj4+ICsJCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTFfU09VVF9FTjsNCj4gPj4+ Pj4gKwkJdmFsdWUgPSBSRE1BMV9TT1VUX0RTSTI7DQo+ID4+Pj4+ICsJfSBlbHNlIGlmIChjdXIg PT0gRERQX0NPTVBPTkVOVF9SRE1BMSAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFNJMykgew0K PiA+Pj4+PiArCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUExX1NPVVRfRU47DQo+ ID4+Pj4+ICsJCXZhbHVlID0gUkRNQTFfU09VVF9EU0kzOw0KPiA+Pj4+PiArCX0gZWxzZSBpZiAo Y3VyID09IEREUF9DT01QT05FTlRfUkRNQTEgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RQSTAp IHsNCj4gPj4+Pj4gKwkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9SRE1BMV9TT1VUX0VO Ow0KPiA+Pj4+PiArCQl2YWx1ZSA9IFJETUExX1NPVVRfRFBJMDsNCj4gPj4+Pj4gKwl9IGVsc2Ug aWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9E UEkxKSB7DQo+ID4+Pj4+ICsJCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTFfU09V VF9FTjsNCj4gPj4+Pj4gKwkJdmFsdWUgPSBSRE1BMV9TT1VUX0RQSTE7DQo+ID4+Pj4+ICsJfSBl bHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMiAmJiBuZXh0ID09IEREUF9DT01QT05F TlRfRFBJMCkgew0KPiA+Pj4+PiArCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUEy X1NPVVQ7DQo+ID4+Pj4+ICsJCXZhbHVlID0gUkRNQTJfU09VVF9EUEkwOw0KPiA+Pj4+PiArCX0g ZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTIgJiYgbmV4dCA9PSBERFBfQ09NUE9O RU5UX0RQSTEpIHsNCj4gPj4+Pj4gKwkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9SRE1B Ml9TT1VUOw0KPiA+Pj4+PiArCQl2YWx1ZSA9IFJETUEyX1NPVVRfRFBJMTsNCj4gPj4+Pj4gKwl9 IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEyICYmIG5leHQgPT0gRERQX0NPTVBP TkVOVF9EU0kxKSB7DQo+ID4+Pj4+ICsJCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRN QTJfU09VVDsNCj4gPj4+Pj4gKwkJdmFsdWUgPSBSRE1BMl9TT1VUX0RTSTE7DQo+ID4+Pj4+ICsJ fSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMiAmJiBuZXh0ID09IEREUF9DT01Q T05FTlRfRFNJMikgew0KPiA+Pj4+PiArCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX1JE TUEyX1NPVVQ7DQo+ID4+Pj4+ICsJCXZhbHVlID0gUkRNQTJfU09VVF9EU0kyOw0KPiA+Pj4+PiAr CX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTIgJiYgbmV4dCA9PSBERFBfQ09N UE9ORU5UX0RTSTMpIHsNCj4gPj4+Pj4gKwkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9S RE1BMl9TT1VUOw0KPiA+Pj4+PiArCQl2YWx1ZSA9IFJETUEyX1NPVVRfRFNJMzsNCj4gPj4+Pj4g Kwl9IGVsc2Ugew0KPiA+Pj4+PiArCQl2YWx1ZSA9IDA7DQo+ID4+Pj4+ICsJfQ0KPiA+Pj4+PiAr DQo+ID4+Pj4+ICsJcmV0dXJuIHZhbHVlOw0KPiA+Pj4+PiArfQ0KPiA+Pj4+PiArDQo+ID4+Pj4+ ICtzdGF0aWMgdW5zaWduZWQgaW50IG10a19tbXN5c19kZHBfc2VsX2luKGVudW0gbXRrX2RkcF9j b21wX2lkIGN1ciwNCj4gPj4+Pj4gKwkJCQkJIGVudW0gbXRrX2RkcF9jb21wX2lkIG5leHQsDQo+ ID4+Pj4+ICsJCQkJCSB1bnNpZ25lZCBpbnQgKmFkZHIpDQo+ID4+Pj4+ICt7DQo+ID4+Pj4+ICsJ dW5zaWduZWQgaW50IHZhbHVlOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsJaWYgKGN1ciA9PSBERFBf Q09NUE9ORU5UX09WTDAgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0NPTE9SMCkgew0KPiA+Pj4+ PiArCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX0NPTE9SMF9TRUxfSU47DQo+ID4+Pj4+ ICsJCXZhbHVlID0gQ09MT1IwX1NFTF9JTl9PVkwwOw0KPiA+Pj4+PiArCX0gZWxzZSBpZiAoY3Vy ID09IEREUF9DT01QT05FTlRfUkRNQTEgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RQSTApIHsN Cj4gPj4+Pj4gKwkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRFBJX1NFTF9JTjsNCj4gPj4+Pj4g KwkJdmFsdWUgPSBEUEkwX1NFTF9JTl9SRE1BMTsNCj4gPj4+Pj4gKwl9IGVsc2UgaWYgKGN1ciA9 PSBERFBfQ09NUE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EUEkxKSB7DQo+ ID4+Pj4+ICsJCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RQSV9TRUxfSU47DQo+ID4+Pj4+ICsJ CXZhbHVlID0gRFBJMV9TRUxfSU5fUkRNQTE7DQo+ID4+Pj4+ICsJfSBlbHNlIGlmIChjdXIgPT0g RERQX0NPTVBPTkVOVF9SRE1BMSAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFNJMCkgew0KPiA+ Pj4+PiArCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19EU0lFX1NFTF9JTjsNCj4gPj4+Pj4gKwkJ dmFsdWUgPSBEU0kwX1NFTF9JTl9SRE1BMTsNCj4gPj4+Pj4gKwl9IGVsc2UgaWYgKGN1ciA9PSBE RFBfQ09NUE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kxKSB7DQo+ID4+ Pj4+ICsJCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RTSU9fU0VMX0lOOw0KPiA+Pj4+PiArCQl2 YWx1ZSA9IERTSTFfU0VMX0lOX1JETUExOw0KPiA+Pj4+PiArCX0gZWxzZSBpZiAoY3VyID09IERE UF9DT01QT05FTlRfUkRNQTEgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RTSTIpIHsNCj4gPj4+ Pj4gKwkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRFNJRV9TRUxfSU47DQo+ID4+Pj4+ICsJCXZh bHVlID0gRFNJMl9TRUxfSU5fUkRNQTE7DQo+ID4+Pj4+ICsJfSBlbHNlIGlmIChjdXIgPT0gRERQ X0NPTVBPTkVOVF9SRE1BMSAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFNJMykgew0KPiA+Pj4+ PiArCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19EU0lPX1NFTF9JTjsNCj4gPj4+Pj4gKwkJdmFs dWUgPSBEU0kzX1NFTF9JTl9SRE1BMTsNCj4gPj4+Pj4gKwl9IGVsc2UgaWYgKGN1ciA9PSBERFBf Q09NUE9ORU5UX1JETUEyICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EUEkwKSB7DQo+ID4+Pj4+ ICsJCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RQSV9TRUxfSU47DQo+ID4+Pj4+ICsJCXZhbHVl ID0gRFBJMF9TRUxfSU5fUkRNQTI7DQo+ID4+Pj4+ICsJfSBlbHNlIGlmIChjdXIgPT0gRERQX0NP TVBPTkVOVF9SRE1BMiAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFBJMSkgew0KPiA+Pj4+PiAr CQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19EUElfU0VMX0lOOw0KPiA+Pj4+PiArCQl2YWx1ZSA9 IERQSTFfU0VMX0lOX1JETUEyOw0KPiA+Pj4+PiArCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01Q T05FTlRfUkRNQTIgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RTSTApIHsNCj4gPj4+Pj4gKwkJ KmFkZHIgPSBESVNQX1JFR19DT05GSUdfRFNJRV9TRUxfSU47DQo+ID4+Pj4+ICsJCXZhbHVlID0g RFNJMF9TRUxfSU5fUkRNQTI7DQo+ID4+Pj4+ICsJfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBP TkVOVF9SRE1BMiAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFNJMSkgew0KPiA+Pj4+PiArCQkq YWRkciA9IERJU1BfUkVHX0NPTkZJR19EU0lPX1NFTF9JTjsNCj4gPj4+Pj4gKwkJdmFsdWUgPSBE U0kxX1NFTF9JTl9SRE1BMjsNCj4gPj4+Pj4gKwl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9O RU5UX1JETUEyICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kyKSB7DQo+ID4+Pj4+ICsJCSph ZGRyID0gRElTUF9SRUdfQ09ORklHX0RTSUVfU0VMX0lOOw0KPiA+Pj4+PiArCQl2YWx1ZSA9IERT STJfU0VMX0lOX1JETUEyOw0KPiA+Pj4+PiArCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05F TlRfUkRNQTIgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RTSTMpIHsNCj4gPj4+Pj4gKwkJKmFk ZHIgPSBESVNQX1JFR19DT05GSUdfRFNJRV9TRUxfSU47DQo+ID4+Pj4+ICsJCXZhbHVlID0gRFNJ M19TRUxfSU5fUkRNQTI7DQo+ID4+Pj4+ICsJfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVO VF9PVkwxICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9DT0xPUjEpIHsNCj4gPj4+Pj4gKwkJKmFk ZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9DT0xPUjFfU0VMX0lOOw0KPiA+Pj4+PiArCQl2YWx1 ZSA9IENPTE9SMV9TRUxfSU5fT1ZMMTsNCj4gPj4+Pj4gKwl9IGVsc2UgaWYgKGN1ciA9PSBERFBf Q09NUE9ORU5UX0JMUyAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFNJMCkgew0KPiA+Pj4+PiAr CQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19EU0lfU0VMOw0KPiA+Pj4+PiArCQl2YWx1ZSA9IERT SV9TRUxfSU5fQkxTOw0KPiA+Pj4+PiArCX0gZWxzZSB7DQo+ID4+Pj4+ICsJCXZhbHVlID0gMDsN Cj4gPj4+Pj4gKwl9DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKwlyZXR1cm4gdmFsdWU7DQo+ID4+Pj4+ ICt9DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gK3N0YXRpYyB2b2lkIG10a19tbXN5c19kZHBfc291dF9z ZWwodm9pZCBfX2lvbWVtICpjb25maWdfcmVncywNCj4gPj4+Pj4gKwkJCQkgICBlbnVtIG10a19k ZHBfY29tcF9pZCBjdXIsDQo+ID4+Pj4+ICsJCQkJICAgZW51bSBtdGtfZGRwX2NvbXBfaWQgbmV4 dCkNCj4gPj4+Pj4gK3sNCj4gPj4+Pj4gKwlpZiAoY3VyID09IEREUF9DT01QT05FTlRfQkxTICYm IG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kwKSB7DQo+ID4+Pj4+ICsJCXdyaXRlbF9yZWxheGVk KEJMU19UT19EU0lfUkRNQTFfVE9fRFBJMSwNCj4gPj4+Pj4gKwkJCSAgICAgICBjb25maWdfcmVn cyArIERJU1BfUkVHX0NPTkZJR19PVVRfU0VMKTsNCj4gPj4+Pj4gKwl9IGVsc2UgaWYgKGN1ciA9 PSBERFBfQ09NUE9ORU5UX0JMUyAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFBJMCkgew0KPiA+ Pj4+PiArCQl3cml0ZWxfcmVsYXhlZChCTFNfVE9fRFBJX1JETUExX1RPX0RTSSwNCj4gPj4+Pj4g KwkJCSAgICAgICBjb25maWdfcmVncyArIERJU1BfUkVHX0NPTkZJR19PVVRfU0VMKTsNCj4gPj4+ Pj4gKwkJd3JpdGVsX3JlbGF4ZWQoRFNJX1NFTF9JTl9SRE1BLA0KPiA+Pj4+PiArCQkJICAgICAg IGNvbmZpZ19yZWdzICsgRElTUF9SRUdfQ09ORklHX0RTSV9TRUwpOw0KPiA+Pj4+PiArCQl3cml0 ZWxfcmVsYXhlZChEUElfU0VMX0lOX0JMUywNCj4gPj4+Pj4gKwkJCSAgICAgICBjb25maWdfcmVn cyArIERJU1BfUkVHX0NPTkZJR19EUElfU0VMKTsNCj4gPj4+Pj4gKwl9DQo+ID4+Pj4+ICt9DQo+ ID4+Pj4+ICsNCj4gPj4+Pj4gK3ZvaWQgbXRrX21tc3lzX2RkcF9jb25uZWN0KHN0cnVjdCBkZXZp Y2UgKmRldiwNCj4gPj4+Pj4gKwkJCSAgIGVudW0gbXRrX2RkcF9jb21wX2lkIGN1ciwNCj4gPj4+ Pj4gKwkJCSAgIGVudW0gbXRrX2RkcF9jb21wX2lkIG5leHQpDQo+ID4+Pj4+ICt7DQo+ID4+Pj4+ ICsJdm9pZCBfX2lvbWVtICpjb25maWdfcmVncyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPiA+ Pj4+PiArCXVuc2lnbmVkIGludCBhZGRyLCB2YWx1ZSwgcmVnOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ ICsJdmFsdWUgPSBtdGtfbW1zeXNfZGRwX21vdXRfZW4oY3VyLCBuZXh0LCAmYWRkcik7DQo+ID4+ Pj4+ICsJaWYgKHZhbHVlKSB7DQo+ID4+Pj4+ICsJCXJlZyA9IHJlYWRsX3JlbGF4ZWQoY29uZmln X3JlZ3MgKyBhZGRyKSB8IHZhbHVlOw0KPiA+Pj4+PiArCQl3cml0ZWxfcmVsYXhlZChyZWcsIGNv bmZpZ19yZWdzICsgYWRkcik7DQo+ID4+Pj4+ICsJfQ0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsJbXRr X21tc3lzX2RkcF9zb3V0X3NlbChjb25maWdfcmVncywgY3VyLCBuZXh0KTsNCj4gPj4+Pj4gKw0K PiA+Pj4+PiArCXZhbHVlID0gbXRrX21tc3lzX2RkcF9zZWxfaW4oY3VyLCBuZXh0LCAmYWRkcik7 DQo+ID4+Pj4+ICsJaWYgKHZhbHVlKSB7DQo+ID4+Pj4+ICsJCXJlZyA9IHJlYWRsX3JlbGF4ZWQo Y29uZmlnX3JlZ3MgKyBhZGRyKSB8IHZhbHVlOw0KPiA+Pj4+PiArCQl3cml0ZWxfcmVsYXhlZChy ZWcsIGNvbmZpZ19yZWdzICsgYWRkcik7DQo+ID4+Pj4+ICsJfQ0KPiA+Pj4+PiArfQ0KPiA+Pj4+ PiArDQo+ID4+Pj4+ICt2b2lkIG10a19tbXN5c19kZHBfZGlzY29ubmVjdChzdHJ1Y3QgZGV2aWNl ICpkZXYsDQo+ID4+Pj4+ICsJCQkgICAgICBlbnVtIG10a19kZHBfY29tcF9pZCBjdXIsDQo+ID4+ Pj4+ICsJCQkgICAgICBlbnVtIG10a19kZHBfY29tcF9pZCBuZXh0KQ0KPiA+Pj4+PiArew0KPiA+ Pj4+PiArCXZvaWQgX19pb21lbSAqY29uZmlnX3JlZ3MgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsN Cj4gPj4+Pj4gKwl1bnNpZ25lZCBpbnQgYWRkciwgdmFsdWUsIHJlZzsNCj4gPj4+Pj4gKw0KPiA+ Pj4+PiArCXZhbHVlID0gbXRrX21tc3lzX2RkcF9tb3V0X2VuKGN1ciwgbmV4dCwgJmFkZHIpOw0K PiA+Pj4+PiArCWlmICh2YWx1ZSkgew0KPiA+Pj4+PiArCQlyZWcgPSByZWFkbF9yZWxheGVkKGNv bmZpZ19yZWdzICsgYWRkcikgJiB+dmFsdWU7DQo+ID4+Pj4+ICsJCXdyaXRlbF9yZWxheGVkKHJl ZywgY29uZmlnX3JlZ3MgKyBhZGRyKTsNCj4gPj4+Pj4gKwl9DQo+ID4+Pj4+ICsNCj4gPj4+Pj4g Kwl2YWx1ZSA9IG10a19tbXN5c19kZHBfc2VsX2luKGN1ciwgbmV4dCwgJmFkZHIpOw0KPiA+Pj4+ PiArCWlmICh2YWx1ZSkgew0KPiA+Pj4+PiArCQlyZWcgPSByZWFkbF9yZWxheGVkKGNvbmZpZ19y ZWdzICsgYWRkcikgJiB+dmFsdWU7DQo+ID4+Pj4+ICsJCXdyaXRlbF9yZWxheGVkKHJlZywgY29u ZmlnX3JlZ3MgKyBhZGRyKTsNCj4gPj4+Pj4gKwl9DQo+ID4+Pj4+ICt9DQo+ID4+Pj4+ICsNCj4g Pj4+Pj4gIHN0YXRpYyBpbnQgbXRrX21tc3lzX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYpDQo+ID4+Pj4+ICB7DQo+ID4+Pj4+ICAJY29uc3Qgc3RydWN0IG10a19tbXN5c19kcml2 ZXJfZGF0YSAqZGF0YTsNCj4gPj4+Pj4gKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2 Ow0KPiA+Pj4+PiAgCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmNsa3M7DQo+ID4+Pj4+ICsJdm9p ZCBfX2lvbWVtICpjb25maWdfcmVnczsNCj4gPj4+Pj4gKwlzdHJ1Y3QgcmVzb3VyY2UgKm1lbTsN Cj4gPj4+Pj4gKwlpbnQgcmV0Ow0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsJbWVtID0gcGxhdGZvcm1f Z2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsNCj4gPj4+Pj4gKwljb25maWdf cmVncyA9IGRldm1faW9yZW1hcF9yZXNvdXJjZShkZXYsIG1lbSk7DQo+ID4+Pj4+ICsJaWYgKElT X0VSUihjb25maWdfcmVncykpIHsNCj4gPj4+Pj4gKwkJcmV0ID0gUFRSX0VSUihjb25maWdfcmVn cyk7DQo+ID4+Pj4+ICsJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGlvcmVtYXAgbW1zeXMtY29u ZmlnIHJlc291cmNlOiAlZFxuIiwNCj4gPj4+Pj4gKwkJCXJldCk7DQo+ID4+Pj4+ICsJCXJldHVy biByZXQ7DQo+ID4+Pj4+ICsJfQ0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsJcGxhdGZvcm1fc2V0X2Ry dmRhdGEocGRldiwgY29uZmlnX3JlZ3MpOw0KPiA+Pj4+PiAgDQo+ID4+Pj4+ICAJZGF0YSA9IG9m X2RldmljZV9nZXRfbWF0Y2hfZGF0YSgmcGRldi0+ZGV2KTsNCj4gPj4+Pj4gIA0KPiA+Pj4+PiBk aWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zb2MvbWVkaWF0ZWsvbXRrLW1tc3lzLmggYi9pbmNs dWRlL2xpbnV4L3NvYy9tZWRpYXRlay9tdGstbW1zeXMuaA0KPiA+Pj4+PiBuZXcgZmlsZSBtb2Rl IDEwMDY0NA0KPiA+Pj4+PiBpbmRleCAwMDAwMDAwMDAwMDAuLjdiYWI1ZDlhM2QzMQ0KPiA+Pj4+ PiAtLS0gL2Rldi9udWxsDQo+ID4+Pj4+ICsrKyBiL2luY2x1ZGUvbGludXgvc29jL21lZGlhdGVr L210ay1tbXN5cy5oDQo+ID4+Pj4+IEBAIC0wLDAgKzEsMjAgQEANCj4gPj4+Pj4gKy8qIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkgKi8NCj4gPj4+Pj4gKy8qDQo+ID4+Pj4+ ICsgKiBDb3B5cmlnaHQgKGMpIDIwMTUgTWVkaWFUZWsgSW5jLg0KPiA+Pj4+PiArICovDQo+ID4+ Pj4+ICsNCj4gPj4+Pj4gKyNpZm5kZWYgX19NVEtfTU1TWVNfSA0KPiA+Pj4+PiArI2RlZmluZSBf X01US19NTVNZU19IDQo+ID4+Pj4+ICsNCj4gPj4+Pj4gK2VudW0gbXRrX2RkcF9jb21wX2lkOw0K PiA+Pj4+PiArc3RydWN0IGRldmljZTsNCj4gPj4+Pj4gKw0KPiA+Pj4+PiArdm9pZCBtdGtfbW1z eXNfZGRwX2Nvbm5lY3Qoc3RydWN0IGRldmljZSAqZGV2LA0KPiA+Pj4+PiArCQkJICAgZW51bSBt dGtfZGRwX2NvbXBfaWQgY3VyLA0KPiA+Pj4+PiArCQkJICAgZW51bSBtdGtfZGRwX2NvbXBfaWQg bmV4dCk7DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gK3ZvaWQgbXRrX21tc3lzX2RkcF9kaXNjb25uZWN0 KHN0cnVjdCBkZXZpY2UgKmRldiwNCj4gPj4+Pj4gKwkJCSAgICAgIGVudW0gbXRrX2RkcF9jb21w X2lkIGN1ciwNCj4gPj4+Pj4gKwkJCSAgICAgIGVudW0gbXRrX2RkcF9jb21wX2lkIG5leHQpOw0K PiA+Pj4+PiArDQo+ID4+Pj4+ICsjZW5kaWYgLyogX19NVEtfTU1TWVNfSCAqLw0KPiA+Pj4+Pg0K PiA+Pj4NCj4gPj4NCj4gPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18NCj4gPj4gTGludXgtbWVkaWF0ZWsgbWFpbGluZyBsaXN0DQo+ID4+IExpbnV4LW1l ZGlhdGVrQGxpc3RzLmluZnJhZGVhZC5vcmcNCj4gPj4gaHR0cDovL2xpc3RzLmluZnJhZGVhZC5v cmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1tZWRpYXRlaw0KPiA+IA0KDQo=