Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp373666ybt; Wed, 24 Jun 2020 01:09:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz2u0szU2gVwEeXAdk9p61IGL+kLccAvaeJJmLKEpVGOOUtvUp9sTO0XogNMOC2ApdPvdBk X-Received: by 2002:a17:906:8488:: with SMTP id m8mr24767171ejx.236.1592986188278; Wed, 24 Jun 2020 01:09:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592986188; cv=none; d=google.com; s=arc-20160816; b=Q3w4nll2b4TqDWETrrGmTKgKcJUrJTmBH0yDait5/UnwkjfPf4NRTXXXNnCDRV5rIW yI3/dUsqpbWmczRUr1L5Lpl5T5fu4kIy+vKWXUiEarniAV23B9wOkMrLOTR9lHFK2NG/ tACGTHOlQ0vGw71oDRDJkAxLScely/HNM5/xsVET/0kMm1tqgdnmWW0uqYRPXlcw9HYz R2tZy5xDMbkEXxZPTfs8lt4zYGkmBsew2aBZDTpkZ5bQu5J1GGUvmGRx+Hu3dXzy+YaU Teae+nuh39DGWaim2JuOfgzXb5UxftPoZtKlJD9Wqgt/bCcy/arHwDkgwCDGJqjgC+ea SulA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:date:cc:to:from:subject:message-id :dkim-signature; bh=CCHMN9qL4dQrHQnU3AHaAsV5OJrodyKmwwPg4tWH3tE=; b=HLl7UoMXnW0irsMFk9fSpq3Rzd4wsAXBPgRoF1cb+xVvaEX3CSPfnP07q3sCalkGiD eiXUB/ChnBwyWumYgyPsI2OfY6Do/+Ijh/SezPvUqOfzNFxcBDO1IoGq+UFoa2HttQ8J 0zFaoOOxmTECIHA+BeOx0mHlf2oiP7BSeBu2rTTKYduiqPz5Zq/ql8EZKSURay7Zjdhl zWGyLkGWQICCUP3qnVbVhuLS4uNqdxygraTH6q5Z+pxUqDORmunNl+UCnOoc9wdcfXYY VG8GG0/xTYg8A7mWa3TKaDN8Ls/MnFBGiYIpUnzA05nIm8/ll6pY1MAgQSsvX6bYRKY8 Jc6Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b="MEuxbop/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id ce9si2181938edb.70.2020.06.24.01.09.23; Wed, 24 Jun 2020 01:09:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b="MEuxbop/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390320AbgFXIIY (ORCPT + 99 others); Wed, 24 Jun 2020 04:08:24 -0400 Received: from mailgw01.mediatek.com ([210.61.82.183]:64628 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S2387732AbgFXIIT (ORCPT ); Wed, 24 Jun 2020 04:08:19 -0400 X-UUID: 199102f603f84d1f8ba3d2693085b402-20200624 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=CCHMN9qL4dQrHQnU3AHaAsV5OJrodyKmwwPg4tWH3tE=; b=MEuxbop/JpAXJ0d6xapQLAULCpnLWnfoh+nrZHmwgO4vHzvLotucZEFn8hqZYEPfB9gSgOpM6TTQPx96JYqVpN+qpoSUHJdt+sKckh0CoFXU+F6DNL4hKXUz/n1VF6EzK1UsyAQbyCj1caYGnKmnaIB78UOaMjtebIU/+Q9O3xQ=; X-UUID: 199102f603f84d1f8ba3d2693085b402-20200624 Received: from mtkcas08.mediatek.inc [(172.21.101.126)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 1837080630; Wed, 24 Jun 2020 16:08:02 +0800 Received: from mtkcas08.mediatek.inc (172.21.101.126) by mtkmbs01n2.mediatek.inc (172.21.101.79) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 24 Jun 2020 16:07:58 +0800 Received: from [172.21.77.33] (172.21.77.33) by mtkcas08.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Wed, 24 Jun 2020 16:07:58 +0800 Message-ID: <1592986080.14160.11.camel@mtkswgap22> Subject: Re: [PATCH v2 2/2] soc: mediatek: devapc: add devapc-mt6873 driver From: Neal Liu To: Matthias Brugger CC: Neal Liu , Rob Herring , , , , , Date: Wed, 24 Jun 2020 16:08:00 +0800 In-Reply-To: <0c8a88a5-3caa-b121-87ee-3396d204fb1b@gmail.com> References: <1592559720-8482-1-git-send-email-neal.liu@mediatek.com> <1592559720-8482-3-git-send-email-neal.liu@mediatek.com> <0c8a88a5-3caa-b121-87ee-3396d204fb1b@gmail.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.2.3-0ubuntu6 MIME-Version: 1.0 X-TM-SNTS-SMTP: 95BCE145C111093D0D4FF93E0CD196F31928225984C736B56976269825C62F702000:8 X-MTK: N Content-Transfer-Encoding: base64 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gTW9uLCAyMDIwLTA2LTIyIGF0IDEyOjA1ICswMjAwLCBNYXR0aGlhcyBCcnVnZ2VyIHdyb3Rl Og0KPiANCj4gT24gMTkvMDYvMjAyMCAxMTo0MiwgTmVhbCBMaXUgd3JvdGU6DQo+ID4gTVQ2ODcz IGJ1cyBmcmFicmljIHByb3ZpZGVzIFRydXN0Wm9uZSBzZWN1cml0eSBzdXBwb3J0IGFuZCBkYXRh DQo+ID4gcHJvdGVjdGlvbiB0byBwcmV2ZW50IHNsYXZlcyBmcm9tIGJlaW5nIGFjY2Vzc2VkIGJ5 IHVuZXhwZWN0ZWQNCj4gPiBtYXN0ZXJzLg0KPiA+IFRoZSBzZWN1cml0eSB2aW9sYXRpb25zIGFy ZSBsb2dnZWQgYW5kIHNlbnQgdG8gdGhlIHByb2Nlc3NvciBmb3INCj4gPiBmdXJ0aGVyIGFuYWx5 c2lzIG9yIGNvdW50ZXJtZWFzdXJlcy4NCj4gPiANCj4gPiBBbnkgb2NjdXJyZW5jZSBvZiBzZWN1 cml0eSB2aW9sYXRpb24gd291bGQgcmFpc2UgYW4gaW50ZXJydXB0LCBhbmQNCj4gPiBpdCB3aWxs IGJlIGhhbmRsZWQgYnkgZGV2YXBjLW10Njg3MyBkcml2ZXIuIFRoZSB2aW9sYXRpb24NCj4gPiBp bmZvcm1hdGlvbiBpcyBwcmludGVkIGluIG9yZGVyIHRvIGZpbmQgdGhlIG11cmRlcmVyLg0KPiAN Cj4gV2h5IGRvbid0IHdlIGhhbmRsZSB0aGlzIGluIHRoZSBUcnVzdFpvbmUgZGlyZWN0bHk/DQoN ClRoZXJlIGlzIG5vIHJlYXNvbiB0aGF0IGl0IHNob3VsZCBiZSBoYW5kbGVkIGluIFRydXN0Wm9u ZSBvbmx5LiBBbmQgaXQNCmhhcyBubyBzZWN1cml0eSBpc3N1ZSB0byBoYW5kbGUgaXQgaW4gTm9y bWFsIFdvcmxkLg0KDQo+IA0KPiA+IA0KPiA+IFNpZ25lZC1vZmYtYnk6IE5lYWwgTGl1IDxuZWFs LmxpdUBtZWRpYXRlay5jb20+DQo+IA0KPiBUaGlzIGlzIGEgcmVhbGx5IGJpZyBwYXRjaCBhbmQg aXQgd2lsbCBiZSBkaWZmaWN1bHQgdG8gcmV2aWV3Lg0KPiANCj4gUGxlYXNlIGRvIHJldmlldyB0 aGUgY29kZSBhbmQgZGVsZXRlIGFsbCB0aGUgZGF0YSBzdHJ1Y3R1cmVzIHRoYXQgYXJlIG5vdCB1 c2VkDQo+IChJIGFscmVhZHkgZm91bmQgdHdvKS4NCj4gDQo+IFBsZWFzZSBhbHNvIGNoZWNrIGZv ciBjb2RlIGR1cGxpY2F0aW9uIChlLmcuIGNoZWNrX3Zpb19tYXNrIGFuZCBjaGVja192aW9fc3Rh dHVzDQo+IGFyZSB1c2luZyA5OSUgdGhlIHNhbWUgY29kZSkuDQo+IA0KPiBQbGVhc2UgcmV2aWV3 IHlvdXIgZGF0YSBzdHJ1Y3R1cmVzIGFuZCB0cnkgdG8gZ3JvdXAgdGhlIGluZm9ybWF0aW9uIGlu IGxvZ2ljYWwNCj4gc3RydWN0cy4gRm9yIGV4YW1wbGUgSSBkb24ndCB1bmRlcnN0YW5kIHdoeSB3 ZSBuZWVkIG10a19kZXZhcGNfY29udGV4dC4gSXQgc2VlbXMNCj4gdG8gbWUgdGhhdCBhbGwgdGhl IHZhbHVlcyBpbiB0aGVyZSBhcmUgU29DIHNwZWNpZmljLg0KPiANCj4gVGhpbmsgaG93IHlvdSBj b3VsZCBzcGxpdCB0aGUgZHJpdmVyIHVwIGluIHNldmVyYWwgY29tbWl0cyBhZGRpbmcgbW9yZQ0K PiBmdW5jdGlvbmFsaXR5IGJ5IGVhY2ggY29tbWl0LiBXaXRoIGEgZ29vZCBjb21taXQgbWVzc2Fn ZSBpdCB3aWxsIGJlIGVhc2llciB0bw0KPiB1bmRlcnN0YW5kIHdoYXQgdGhlIGNvZGUgZG9lcy4N Cj4gDQoNClRoYW5rcyBmb3IgeW91ciBhbGwgc3VnZ2VzdGlvbiwgaXQncyByZWFsbHkgaGVscGZ1 bC4gSSdsbCByZXZpZXcgYWdhaW4NCmFuZCB0cnkgdG8gbWFrZSBwYXRjaGVzIG1vcmUgcmVhZGFi bGUuDQoNCj4gT24gd2hpY2ggU29DIGlzIHRoZSBkZXZpY2UgdXNlZD8gSSBkb24ndCBzZWUgYW55 IHN1cHBvcnQgZm9yIG10Njg3MyBpbiB0aGUNCj4ga2VybmVsIG9yIHRoZSBtYWlsaW5nIGxpc3Qu IFdoeSBkbyB3ZSB3YW50IHRvIHN1cHBvcnQgdGhpcyBkcml2ZXIgdXBzdHJlYW0gaWYNCj4gaXQn cyBub3QgdXNhYmxlIGF0IGFsbD8NCj4gDQoNCk91ciBtdDY4NzMgdXBzdHJlYW0gdGFza3MgaXMg b24gZ29pbmcsIHdlJ2xsIHNlbmQgYmFzaWMgcGxhdGZvcm0gZHJpdmVycw0KQVNBUC4NCg0KPiBU cnkgdG8gdW5kZXJzdGFuZCBob3cgdGhlIHVwc3RyZWFtIGtlcm5lbCBkZXZpY2UgbW9kZWwgd29y a3MuIEl0IGxvb2tzIHRvIG1lIGFzDQo+IGlmIGFsbCB0aGUgaW5mb3JtYXRpb24gaXMgaGFyZGNv ZGVkLiBXb3VsZCBpdCBtYWtlIHNlbnNlIHRvIHBhc3Mgc29tZSBvZiB0aGUNCj4gaW5mb3JtYXRp b24gdmlhIERUPyBTb3JyeSBmb3IgdGhlIGdlbmVyaWMgcXVlc3Rpb24sIGJ1dCBJIGhhZG4ndCBo YWQgdGhlIHRpbWUgdG8NCj4gZ290IHRocm91Z2ggdGhlIHdob2xlIGRyaXZlciB0byB1bmRlcnN0 YW5kIHdoYXQgaXQgZG9lcy4NCj4gDQo+IFJlZ2FyZHMsDQo+IE1hdHRoaWFzDQo+IA0KPiA+IC0t LQ0KPiA+ICBkcml2ZXJzL3NvYy9tZWRpYXRlay9LY29uZmlnICAgICAgICAgICAgICAgICAgICAg IHwgICAgNiArDQo+ID4gIGRyaXZlcnMvc29jL21lZGlhdGVrL01ha2VmaWxlICAgICAgICAgICAg ICAgICAgICAgfCAgICAxICsNCj4gPiAgZHJpdmVycy9zb2MvbWVkaWF0ZWsvZGV2YXBjL0tjb25m aWcgICAgICAgICAgICAgICB8ICAgMjUgKw0KPiA+ICBkcml2ZXJzL3NvYy9tZWRpYXRlay9kZXZh cGMvTWFrZWZpbGUgICAgICAgICAgICAgIHwgICAxMyArDQo+ID4gIGRyaXZlcnMvc29jL21lZGlh dGVrL2RldmFwYy9kZXZhcGMtbXQ2ODczLmMgICAgICAgfCAxNjUyICsrKysrKysrKysrKysrKysr KysrKw0KPiA+ICBkcml2ZXJzL3NvYy9tZWRpYXRlay9kZXZhcGMvZGV2YXBjLW10Njg3My5oICAg ICAgIHwgIDExMSArKw0KPiA+ICBkcml2ZXJzL3NvYy9tZWRpYXRlay9kZXZhcGMvZGV2YXBjLW10 ay1tdWx0aS1hby5jIHwgIDc1NiArKysrKysrKysrDQo+ID4gIGRyaXZlcnMvc29jL21lZGlhdGVr L2RldmFwYy9kZXZhcGMtbXRrLW11bHRpLWFvLmggfCAgMTgyICsrKw0KPiA+ICA4IGZpbGVzIGNo YW5nZWQsIDI3NDYgaW5zZXJ0aW9ucygrKQ0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVy cy9zb2MvbWVkaWF0ZWsvZGV2YXBjL0tjb25maWcNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvc29jL21lZGlhdGVrL2RldmFwYy9NYWtlZmlsZQ0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2 NDQgZHJpdmVycy9zb2MvbWVkaWF0ZWsvZGV2YXBjL2RldmFwYy1tdDY4NzMuYw0KPiA+ICBjcmVh dGUgbW9kZSAxMDA2NDQgZHJpdmVycy9zb2MvbWVkaWF0ZWsvZGV2YXBjL2RldmFwYy1tdDY4NzMu aA0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9zb2MvbWVkaWF0ZWsvZGV2YXBjL2Rl dmFwYy1tdGstbXVsdGktYW8uYw0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9zb2Mv bWVkaWF0ZWsvZGV2YXBjL2RldmFwYy1tdGstbXVsdGktYW8uaA0KPiA+IA0KPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL3NvYy9tZWRpYXRlay9LY29uZmlnIGIvZHJpdmVycy9zb2MvbWVkaWF0ZWsv S2NvbmZpZw0KPiA+IGluZGV4IDU5YTU2Y2QuLjJjOWFkMWYgMTAwNjQ0DQo+ID4gLS0tIGEvZHJp dmVycy9zb2MvbWVkaWF0ZWsvS2NvbmZpZw0KPiA+ICsrKyBiL2RyaXZlcnMvc29jL21lZGlhdGVr L0tjb25maWcNCj4gPiBAQCAtNTEsNCArNTEsMTAgQEAgY29uZmlnIE1US19NTVNZUw0KPiA+ICAJ ICBTYXkgeWVzIGhlcmUgdG8gYWRkIHN1cHBvcnQgZm9yIHRoZSBNZWRpYVRlayBNdWx0aW1lZGlh DQo+ID4gIAkgIFN1YnN5c3RlbSAoTU1TWVMpLg0KPiA+ICANCj4gPiArbWVudSAiU2VjdXJpdHki DQo+ID4gKw0KPiA+ICtzb3VyY2UgImRyaXZlcnMvc29jL21lZGlhdGVrL2RldmFwYy9LY29uZmln Ig0KPiA+ICsNCj4gPiArZW5kbWVudSAjIFNlY3VyaXR5DQo+ID4gKw0KPiA+ICBlbmRtZW51DQo+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc29jL21lZGlhdGVrL01ha2VmaWxlIGIvZHJpdmVycy9z b2MvbWVkaWF0ZWsvTWFrZWZpbGUNCj4gPiBpbmRleCAwMWY5Zjg3Li5kNjcxN2E4MSAxMDA2NDQN Cj4gPiAtLS0gYS9kcml2ZXJzL3NvYy9tZWRpYXRlay9NYWtlZmlsZQ0KPiA+ICsrKyBiL2RyaXZl cnMvc29jL21lZGlhdGVrL01ha2VmaWxlDQo+ID4gQEAgLTEsNSArMSw2IEBADQo+ID4gICMgU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQ0KPiA+ICBvYmotJChDT05GSUdfTVRL X0NNRFEpICs9IG10ay1jbWRxLWhlbHBlci5vDQo+ID4gK29iai0kKENPTkZJR19NVEtfREVWQVBD KSArPSBkZXZhcGMvDQo+ID4gIG9iai0kKENPTkZJR19NVEtfSU5GUkFDRkcpICs9IG10ay1pbmZy YWNmZy5vDQo+ID4gIG9iai0kKENPTkZJR19NVEtfUE1JQ19XUkFQKSArPSBtdGstcG1pYy13cmFw Lm8NCj4gPiAgb2JqLSQoQ09ORklHX01US19TQ1BTWVMpICs9IG10ay1zY3BzeXMubw0KPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL3NvYy9tZWRpYXRlay9kZXZhcGMvS2NvbmZpZyBiL2RyaXZlcnMv c29jL21lZGlhdGVrL2RldmFwYy9LY29uZmlnDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4g PiBpbmRleCAwMDAwMDAwLi45NDI4MzYwDQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL2Ry aXZlcnMvc29jL21lZGlhdGVrL2RldmFwYy9LY29uZmlnDQo+ID4gQEAgLTAsMCArMSwyNSBAQA0K PiA+ICtjb25maWcgTVRLX0RFVkFQQw0KPiA+ICsJdHJpc3RhdGUgIk1lZGlhdGVrIERldmljZSBB UEMgU3VwcG9ydCINCj4gPiArCWhlbHANCj4gPiArCSAgRGV2aWNlIEFQQyBpcyBhIGtlcm5lbCBk cml2ZXIgY29udHJvbGxpbmcgaW50ZXJuYWwgZGV2aWNlIHNlY3VyaXR5Lg0KPiA+ICsJICBJZiBz b21lb25lIHRyaWVzIHRvIGFjY2VzcyBhIGRldmljZSwgd2hpY2ggaXMgbm90IGFsbG93ZWQgYnkg dGhlDQo+ID4gKwkgIGRldmljZSwgaXQgY2Fubm90IGFjY2VzcyB0aGUgZGV2aWNlIGFuZCB3aWxs IGdldCBhIHZpb2xhdGlvbg0KPiA+ICsJICBpbnRlcnJ1cHQuIERldmljZSBBUEMgcHJldmVudHMg bWFsaWNpb3VzIGFjY2VzcyB0byBpbnRlcm5hbCBkZXZpY2VzLg0KPiA+ICsNCj4gPiArY29uZmln IERFVkFQQ19BUkNIX01VTFRJDQo+ID4gKwl0cmlzdGF0ZSAiTWVkaWF0ZWsgRGV2aWNlIEFQQyBk cml2ZXIgYXJjaGl0ZWN0dXJlIG11bHRpIg0KPiA+ICsJaGVscA0KPiA+ICsJICBTYXkgeWVzIGhl cmUgdG8gZW5hYmxlIHN1cHBvcnQgTWVkaWF0ZWsNCj4gPiArCSAgRGV2aWNlIEFQQyBkcml2ZXIg d2hpY2ggaXMgYmFzZWQgb24gSW5mcmENCj4gPiArCSAgYXJjaGl0ZWN0dXJlLg0KPiA+ICsJICBU aGlzIGFyY2hpdGVjdHVyZSBzdXBwb3J0cyBtdWx0aXBsZSBJbmZyYSBBTy4NCj4gPiArDQo+ID4g K2NvbmZpZyBERVZBUENfTVQ2ODczDQo+ID4gKwl0cmlzdGF0ZSAiTWVkaWF0ZWsgTVQ2ODczIERl dmljZSBBUEMgZHJpdmVyIg0KPiA+ICsJc2VsZWN0IE1US19ERVZBUEMNCj4gPiArCXNlbGVjdCBE RVZBUENfQVJDSF9NVUxUSQ0KPiA+ICsJaGVscA0KPiA+ICsJICBTYXkgeWVzIGhlcmUgdG8gZW5h YmxlIHN1cHBvcnQgTWVkaWF0ZWsgTVQ2ODczDQo+ID4gKwkgIERldmljZSBBUEMgZHJpdmVyLg0K PiA+ICsJICBUaGlzIGRyaXZlciBpcyBjb21iaW5lZCB3aXRoIERFVkFQQ19BUkNIX01VTFRJIGZv cg0KPiA+ICsJICBjb21tb24gaGFuZGxlIGZsb3cuDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv c29jL21lZGlhdGVrL2RldmFwYy9NYWtlZmlsZSBiL2RyaXZlcnMvc29jL21lZGlhdGVrL2RldmFw Yy9NYWtlZmlsZQ0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMC4u YmQ0NzFmMg0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9kcml2ZXJzL3NvYy9tZWRpYXRl ay9kZXZhcGMvTWFrZWZpbGUNCj4gPiBAQCAtMCwwICsxLDEzIEBADQo+ID4gKyMgU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEdQTC0yLjANCj4gPiArDQo+ID4gK2lmZXEgKCQoQ09ORklHX01US19H Q09WX0tFUk5FTCkseSkNCj4gPiArR0NPVl9QUk9GSUxFIDo9IHkNCj4gPiArZW5kaWYNCj4gPiAr DQo+ID4gK29iai0kKENPTkZJR19NVEtfREVWQVBDKSA6PSBkZXZhcGMubw0KPiA+ICsNCj4gPiAr IyBDb3JlDQo+ID4gK2RldmFwYy0kKENPTkZJR19ERVZBUENfQVJDSF9NVUxUSSkgKz0gZGV2YXBj LW10ay1tdWx0aS1hby5vDQo+ID4gKw0KPiA+ICsjIFBsYXRmb3JtDQo+ID4gK2RldmFwYy0kKENP TkZJR19ERVZBUENfTVQ2ODczKSArPSBkZXZhcGMtbXQ2ODczLm8NCj4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9zb2MvbWVkaWF0ZWsvZGV2YXBjL2RldmFwYy1tdDY4NzMuYyBiL2RyaXZlcnMvc29j L21lZGlhdGVrL2RldmFwYy9kZXZhcGMtbXQ2ODczLmMNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KPiA+IGluZGV4IDAwMDAwMDAuLjc1YTIxNDANCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysr IGIvZHJpdmVycy9zb2MvbWVkaWF0ZWsvZGV2YXBjL2RldmFwYy1tdDY4NzMuYw0KPiA+IEBAIC0w LDAgKzEsMTY1MiBAQA0KPiA+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMA0K PiA+ICsvKg0KPiA+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMjAgTWVkaWFUZWsgSW5jLg0KPiA+ICsg Ki8NCj4gPiArDQo+ID4gKyNpbmNsdWRlIDxsaW51eC9idWcuaD4NCj4gPiArI2luY2x1ZGUgPGxp bnV4L21vZHVsZS5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvb2YuaD4NCj4gPiArI2luY2x1ZGUg PGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPg0KPiA+ICsjaW5jbHVkZSA8YXNtLWdlbmVyaWMvaW8u aD4NCj4gPiArDQo+ID4gKyNpbmNsdWRlICJkZXZhcGMtbXQ2ODczLmgiDQo+ID4gKyNpbmNsdWRl ICJkZXZhcGMtbXRrLW11bHRpLWFvLmgiDQo+ID4gKw0KPiA+ICtzdGF0aWMgc3RydWN0IG10a19k ZXZpY2VfaW5mbyBtdDY4NzNfZGV2aWNlc19pbmZyYVtdID0gew0KPiA+ICsJLyogc3lzX2lkeCwg Y3RybF9pZHgsIHZpb19pZHggKi8NCj4gPiArCS8qIDAgKi8NCj4gPiArCXswLCAwLCAwfSwNCj4g PiArCXswLCAxLCAxfSwNCj4gPiArCXswLCAyLCAyfSwNCj4gPiArCXswLCAzLCAzfSwNCj4gPiAr CXswLCA0LCA0fSwNCj4gPiArCXswLCA1LCA1fSwNCj4gPiArCXswLCA2LCA2fSwNCj4gPiArCXsw LCA3LCA3fSwNCj4gPiArCXswLCA4LCA4fSwNCj4gPiArCXswLCA5LCA5fSwNCj4gPiArDQo+ID4g KwkvKiAxMCAqLw0KPiA+ICsJezAsIDEwLCAxMH0sDQo+ID4gKwl7MCwgMTEsIDExfSwNCj4gPiAr CXswLCAxMiwgMTJ9LA0KPiA+ICsJezAsIDEzLCAxM30sDQo+ID4gKwl7MCwgMTQsIDE0fSwNCj4g PiArCXswLCAxNSwgMTV9LA0KPiA+ICsJezAsIDE2LCAxNn0sDQo+ID4gKwl7MCwgMTcsIDE3fSwN Cj4gPiArCXswLCAxOCwgMTh9LA0KPiA+ICsJezAsIDE5LCAxOX0sDQo+ID4gKw0KPiA+ICsJLyog MjAgKi8NCj4gPiArCXswLCAyMCwgMjB9LA0KPiA+ICsJezAsIDIxLCAyMX0sDQo+ID4gKwl7MCwg MjIsIDM1Mn0sDQo+ID4gKwl7MSwgMCwgMjJ9LA0KPiA+ICsJezEsIDEsIDIzfSwNCj4gPiArCXsx LCAyLCAyNH0sDQo+ID4gKwl7MSwgMywgMjV9LA0KPiA+ICsJezEsIDQsIDI2fSwNCj4gPiArCXsx LCA1LCAyN30sDQo+ID4gKwl7MSwgNiwgMjh9LA0KPiA+ICsNCj4gPiArCS8qIDMwICovDQo+ID4g Kwl7MSwgNywgMjl9LA0KPiA+ICsJezEsIDgsIDMwfSwNCj4gPiArCXsxLCA5LCAzMX0sDQo+ID4g Kwl7MSwgMTAsIDMyfSwNCj4gPiArCXsxLCAxMSwgMzN9LA0KPiA+ICsJezEsIDEyLCAzNH0sDQo+ ID4gKwl7MSwgMTMsIDM1fSwNCj4gPiArCXsxLCAxNCwgMzZ9LA0KPiA+ICsJezEsIDE1LCAzN30s DQo+ID4gKwl7MSwgMTYsIDM4fSwNCj4gPiArDQo+ID4gKwkvKiA0MCAqLw0KPiA+ICsJezEsIDE3 LCAzOX0sDQo+ID4gKwl7MSwgMTgsIDQwfSwNCj4gPiArCXsxLCAxOSwgNDF9LA0KPiA+ICsJezEs IDIwLCA0Mn0sDQo+ID4gKwl7MSwgMjEsIDQzfSwNCj4gPiArCXsxLCAyMiwgNDR9LA0KPiA+ICsJ ezEsIDIzLCA0NX0sDQo+ID4gKwl7MSwgMjQsIDQ2fSwNCj4gPiArCXsxLCAyNSwgNDd9LA0KPiA+ ICsJezEsIDI2LCA0OH0sDQo+ID4gKw0KPiA+ICsJLyogNTAgKi8NCj4gPiArCXsxLCAyNywgNDl9 LA0KPiA+ICsJezEsIDI4LCA1MH0sDQo+ID4gKwl7MSwgMjksIDUxfSwNCj4gPiArCXsxLCAzMCwg NTJ9LA0KPiA+ICsJezEsIDMxLCA1M30sDQo+ID4gKwl7MSwgMzIsIDU0fSwNCj4gPiArCXsxLCAz MywgNTV9LA0KPiA+ICsJezEsIDM0LCA1Nn0sDQo+ID4gKwl7MSwgMzUsIDU3fSwNCj4gPiArCXsx LCAzNiwgNTh9LA0KPiA+ICsNCj4gPiArCS8qIDYwICovDQo+ID4gKwl7MSwgMzcsIDU5fSwNCj4g PiArCXsxLCAzOCwgNjB9LA0KPiA+ICsJezEsIDM5LCA2MX0sDQo+ID4gKwl7MSwgNDAsIDYyfSwN Cj4gPiArCXsxLCA0MSwgNjN9LA0KPiA+ICsJezEsIDQyLCA2NH0sDQo+ID4gKwl7MSwgNDMsIDY1 fSwNCj4gPiArCXsxLCA0NCwgNjZ9LA0KPiA+ICsJezEsIDQ1LCA2N30sDQo+ID4gKwl7MSwgNDYs IDY4fSwNCj4gPiArDQo+ID4gKwkvKiA3MCAqLw0KPiA+ICsJezEsIDQ3LCA2OX0sDQo+ID4gKwl7 MSwgNDgsIDcwfSwNCj4gPiArCXsxLCA0OSwgNzF9LA0KPiA+ICsJezEsIDUwLCA3Mn0sDQo+ID4g Kwl7MSwgNTEsIDczfSwNCj4gPiArCXsxLCA1MiwgNzR9LA0KPiA+ICsJezEsIDUzLCA3NX0sDQo+ ID4gKwl7MSwgNTQsIDc2fSwNCj4gPiArCXsxLCA1NSwgNzd9LA0KPiA+ICsJezEsIDU2LCA3OH0s DQo+ID4gKw0KPiA+ICsJLyogODAgKi8NCj4gPiArCXsxLCA1NywgNzl9LA0KPiA+ICsJezEsIDU4 LCA4MH0sDQo+ID4gKwl7MSwgNTksIDgxfSwNCj4gPiArCXsxLCA2MCwgODJ9LA0KPiA+ICsJezEs IDYxLCA4M30sDQo+ID4gKwl7MSwgNjIsIDg0fSwNCj4gPiArCXsxLCA2MywgODV9LA0KPiA+ICsJ ezEsIDY0LCA4Nn0sDQo+ID4gKwl7MSwgNjUsIDg3fSwNCj4gPiArCXsxLCA2NiwgODh9LA0KPiA+ ICsNCj4gPiArCS8qIDkwICovDQo+ID4gKwl7MSwgNjcsIDg5fSwNCj4gPiArCXsxLCA2OCwgOTB9 LA0KPiA+ICsJezEsIDY5LCA5MX0sDQo+ID4gKwl7MSwgNzAsIDkyfSwNCj4gPiArCXsxLCA3MSwg OTN9LA0KPiA+ICsJezEsIDcyLCA5NH0sDQo+ID4gKwl7MSwgNzMsIDk1fSwNCj4gPiArCXsxLCA3 NCwgOTZ9LA0KPiA+ICsJezEsIDc1LCA5N30sDQo+ID4gKwl7MSwgNzYsIDk4fSwNCj4gPiArDQo+ ID4gKwkvKiAxMDAgKi8NCj4gPiArCXsxLCA3NywgOTl9LA0KPiA+ICsJezEsIDc4LCAxMDB9LA0K PiA+ICsJezEsIDc5LCAxMDF9LA0KPiA+ICsJezEsIDgwLCAxMDJ9LA0KPiA+ICsJezEsIDgxLCAx MDN9LA0KPiA+ICsJezEsIDgyLCAxMDR9LA0KPiA+ICsJezEsIDgzLCAxMDV9LA0KPiA+ICsJezEs IDg0LCAxMDZ9LA0KPiA+ICsJezEsIDg1LCAxMDd9LA0KPiA+ICsJezEsIDg2LCAxMDh9LA0KPiA+ ICsNCj4gPiArCS8qIDExMCAqLw0KPiA+ICsJezEsIDg3LCAxMDl9LA0KPiA+ICsJezEsIDg4LCAx MTB9LA0KPiA+ICsJezEsIDg5LCAxMTF9LA0KPiA+ICsJezEsIDkwLCAxMTJ9LA0KPiA+ICsJezEs IDkxLCAxMTN9LA0KPiA+ICsJezEsIDkyLCAxMTR9LA0KPiA+ICsJezEsIDkzLCAxMTV9LA0KPiA+ ICsJezEsIDk0LCAxMTZ9LA0KPiA+ICsJezEsIDk1LCAxMTd9LA0KPiA+ICsJezEsIDk2LCAxMTh9 LA0KPiA+ICsNCj4gPiArCS8qIDEyMCAqLw0KPiA+ICsJezEsIDk3LCAxMTl9LA0KPiA+ICsJezEs IDk4LCAxMjB9LA0KPiA+ICsJezEsIDk5LCAxMjF9LA0KPiA+ICsJezEsIDEwMCwgMTIyfSwNCj4g PiArCXsxLCAxMDEsIDEyM30sDQo+ID4gKwl7MSwgMTAyLCAxMjR9LA0KPiA+ICsJezEsIDEwMywg MTI1fSwNCj4gPiArCXsxLCAxMDQsIDEyNn0sDQo+ID4gKwl7MSwgMTA1LCAxMjd9LA0KPiA+ICsJ ezEsIDEwNiwgMTI4fSwNCj4gPiArDQo+ID4gKwkvKiAxMzAgKi8NCj4gPiArCXsxLCAxMDcsIDEy OX0sDQo+ID4gKwl7MSwgMTA4LCAxMzB9LA0KPiA+ICsJezEsIDEwOSwgMTMxfSwNCj4gPiArCXsx LCAxMTAsIDEzMn0sDQo+ID4gKwl7MSwgMTExLCAxMzN9LA0KPiA+ICsJezEsIDExMiwgMTM0fSwN Cj4gPiArCXsxLCAxMTMsIDEzNX0sDQo+ID4gKwl7MSwgMTE0LCAxMzZ9LA0KPiA+ICsJezEsIDEx NSwgMTM3fSwNCj4gPiArCXsxLCAxMTYsIDEzOH0sDQo+ID4gKw0KPiA+ICsJLyogMTQwICovDQo+ ID4gKwl7MSwgMTE3LCAxMzl9LA0KPiA+ICsJezEsIDExOCwgMTQwfSwNCj4gPiArCXsxLCAxMTks IDE0MX0sDQo+ID4gKwl7MSwgMTIwLCAxNDJ9LA0KPiA+ICsJezEsIDEyMSwgMTQzfSwNCj4gPiAr CXsxLCAxMjIsIDE0NH0sDQo+ID4gKwl7MSwgMTIzLCAxNDV9LA0KPiA+ICsJezEsIDEyNCwgMTQ2 fSwNCj4gPiArCXsxLCAxMjUsIDE0N30sDQo+ID4gKwl7MSwgMTI2LCAxNDh9LA0KPiA+ICsNCj4g PiArCS8qIDE1MCAqLw0KPiA+ICsJezEsIDEyNywgMTQ5fSwNCj4gPiArCXsxLCAxMjgsIDE1MH0s DQo+ID4gKwl7MSwgMTI5LCAxNTF9LA0KPiA+ICsJezEsIDEzMCwgMTUyfSwNCj4gPiArCXsxLCAx MzEsIDE1M30sDQo+ID4gKwl7MSwgMTMyLCAxNTR9LA0KPiA+ICsJezEsIDEzMywgMTU1fSwNCj4g PiArCXsxLCAxMzQsIDE1Nn0sDQo+ID4gKwl7MSwgMTM1LCAxNTd9LA0KPiA+ICsJezEsIDEzNiwg MTU4fSwNCj4gPiArDQo+ID4gKwkvKiAxNjAgKi8NCj4gPiArCXsxLCAxMzcsIDE1OX0sDQo+ID4g Kwl7MSwgMTM4LCAxNjB9LA0KPiA+ICsJezEsIDEzOSwgMTYxfSwNCj4gPiArCXsxLCAxNDAsIDE2 Mn0sDQo+ID4gKwl7MSwgMTQxLCAxNjN9LA0KPiA+ICsJezEsIDE0MiwgMTY0fSwNCj4gPiArCXsx LCAxNDMsIDE2NX0sDQo+ID4gKwl7MSwgMTQ0LCAxNjZ9LA0KPiA+ICsJezEsIDE0NSwgMTY3fSwN Cj4gPiArCXsxLCAxNDYsIDE2OH0sDQo+ID4gKw0KPiA+ICsJLyogMTcwICovDQo+ID4gKwl7MSwg MTQ3LCAxNjl9LA0KPiA+ICsJezEsIDE0OCwgMTcwfSwNCj4gPiArCXsxLCAxNDksIDE3MX0sDQo+ ID4gKwl7MSwgMTUwLCAxNzJ9LA0KPiA+ICsJezEsIDE1MSwgMTczfSwNCj4gPiArCXsxLCAxNTIs IDE3NH0sDQo+ID4gKwl7MSwgMTUzLCAxNzV9LA0KPiA+ICsJezEsIDE1NCwgMTc2fSwNCj4gPiAr CXsxLCAxNTUsIDE3N30sDQo+ID4gKwl7MSwgMTU2LCAxNzh9LA0KPiA+ICsNCj4gPiArCS8qIDE4 MCAqLw0KPiA+ICsJezEsIDE1NywgMTc5fSwNCj4gPiArCXsxLCAxNTgsIDE4MH0sDQo+ID4gKwl7 MSwgMTU5LCAxODF9LA0KPiA+ICsJezEsIDE2MCwgMTgyfSwNCj4gPiArCXsxLCAxNjEsIDE4M30s DQo+ID4gKwl7MSwgMTYyLCAxODR9LA0KPiA+ICsJezEsIDE2MywgMTg1fSwNCj4gPiArCXsxLCAx NjQsIDE4Nn0sDQo+ID4gKwl7MSwgMTY1LCAxODd9LA0KPiA+ICsJezEsIDE2NiwgMTg4fSwNCj4g PiArDQo+ID4gKwkvKiAxOTAgKi8NCj4gPiArCXsxLCAxNjcsIDE4OX0sDQo+ID4gKwl7MSwgMTY4 LCAxOTB9LA0KPiA+ICsJezEsIDE2OSwgMTkxfSwNCj4gPiArCXsxLCAxNzAsIDE5Mn0sDQo+ID4g Kwl7MSwgMTcxLCAxOTN9LA0KPiA+ICsJezEsIDE3MiwgMTk0fSwNCj4gPiArCXsxLCAxNzMsIDE5 NX0sDQo+ID4gKwl7MSwgMTc0LCAxOTZ9LA0KPiA+ICsJezEsIDE3NSwgMTk3fSwNCj4gPiArCXsx LCAxNzYsIDE5OH0sDQo+ID4gKw0KPiA+ICsJLyogMjAwICovDQo+ID4gKwl7MSwgMTc3LCAxOTl9 LA0KPiA+ICsJezEsIDE3OCwgMjAwfSwNCj4gPiArCXsxLCAxNzksIDIwMX0sDQo+ID4gKwl7MSwg MTgwLCAyMDJ9LA0KPiA+ICsJezEsIDE4MSwgMjAzfSwNCj4gPiArCXsxLCAxODIsIDIwNH0sDQo+ ID4gKwl7MSwgMTgzLCAyMDV9LA0KPiA+ICsJezEsIDE4NCwgMjA2fSwNCj4gPiArCXsxLCAxODUs IDIwN30sDQo+ID4gKwl7MSwgMTg2LCAyMDh9LA0KPiA+ICsNCj4gPiArCS8qIDIxMCAqLw0KPiA+ ICsJezEsIDE4NywgMjA5fSwNCj4gPiArCXsxLCAxODgsIDIxMH0sDQo+ID4gKwl7MSwgMTg5LCAy MTF9LA0KPiA+ICsJezEsIDE5MCwgMjEyfSwNCj4gPiArCXsxLCAxOTEsIDIxM30sDQo+ID4gKwl7 MSwgMTkyLCAyMTR9LA0KPiA+ICsJezEsIDE5MywgMjE1fSwNCj4gPiArCXsxLCAxOTQsIDIxNn0s DQo+ID4gKwl7MSwgMTk1LCAyMTd9LA0KPiA+ICsJezEsIDE5NiwgMjE4fSwNCj4gPiArDQo+ID4g KwkvKiAyMjAgKi8NCj4gPiArCXsxLCAxOTcsIDIxOX0sDQo+ID4gKwl7MSwgMTk4LCAyMjB9LA0K PiA+ICsJezEsIDE5OSwgMjIxfSwNCj4gPiArCXsxLCAyMDAsIDIyMn0sDQo+ID4gKwl7MSwgMjAx LCAyMjN9LA0KPiA+ICsJezEsIDIwMiwgMjI0fSwNCj4gPiArCXsxLCAyMDMsIDIyNX0sDQo+ID4g Kwl7MSwgMjA0LCAyMjZ9LA0KPiA+ICsJezEsIDIwNSwgMjI3fSwNCj4gPiArCXsxLCAyMDYsIDIy OH0sDQo+ID4gKw0KPiA+ICsJLyogMjMwICovDQo+ID4gKwl7MSwgMjA3LCAyMjl9LA0KPiA+ICsJ ezEsIDIwOCwgMjMwfSwNCj4gPiArCXsxLCAyMDksIDIzMX0sDQo+ID4gKwl7MSwgMjEwLCAyMzJ9 LA0KPiA+ICsJezEsIDIxMSwgMjMzfSwNCj4gPiArCXsxLCAyMTIsIDIzNH0sDQo+ID4gKwl7MSwg MjEzLCAyMzV9LA0KPiA+ICsJezEsIDIxNCwgMjM2fSwNCj4gPiArCXsxLCAyMTUsIDIzN30sDQo+ ID4gKwl7MSwgMjE2LCAyMzh9LA0KPiA+ICsNCj4gPiArCS8qIDI0MCAqLw0KPiA+ICsJezEsIDIx NywgMjM5fSwNCj4gPiArCXsxLCAyMTgsIDI0MH0sDQo+ID4gKwl7MSwgMjE5LCAyNDF9LA0KPiA+ ICsJezEsIDIyMCwgMjQyfSwNCj4gPiArCXsxLCAyMjEsIDI0M30sDQo+ID4gKwl7MSwgMjIyLCAy NDR9LA0KPiA+ICsJezEsIDIyMywgMjQ1fSwNCj4gPiArCXsxLCAyMjQsIDI0Nn0sDQo+ID4gKwl7 MSwgMjI1LCAyNDd9LA0KPiA+ICsJezEsIDIyNiwgMjQ4fSwNCj4gPiArDQo+ID4gKwkvKiAyNTAg Ki8NCj4gPiArCXsxLCAyMjcsIDI0OX0sDQo+ID4gKwl7MSwgMjI4LCAyNTB9LA0KPiA+ICsJezEs IDIyOSwgMjUxfSwNCj4gPiArCXsxLCAyMzAsIDI1Mn0sDQo+ID4gKwl7MSwgMjMxLCAyNTN9LA0K PiA+ICsJezEsIDIzMiwgMjU0fSwNCj4gPiArCXsxLCAyMzMsIDI1NX0sDQo+ID4gKwl7MSwgMjM0 LCAyNTZ9LA0KPiA+ICsJezEsIDIzNSwgMjU3fSwNCj4gPiArCXsxLCAyMzYsIDI1OH0sDQo+ID4g Kw0KPiA+ICsJLyogMjYwICovDQo+ID4gKwl7MSwgMjM3LCAyNTl9LA0KPiA+ICsJezEsIDIzOCwg MjYwfSwNCj4gPiArCXsxLCAyMzksIDI2MX0sDQo+ID4gKwl7MSwgMjQwLCAyNjJ9LA0KPiA+ICsJ ezEsIDI0MSwgMjYzfSwNCj4gPiArCXsxLCAyNDIsIDI2NH0sDQo+ID4gKwl7MSwgMjQzLCAyNjV9 LA0KPiA+ICsJezEsIDI0NCwgMjY2fSwNCj4gPiArCXsxLCAyNDUsIDI2N30sDQo+ID4gKwl7MSwg MjQ2LCAyNjh9LA0KPiA+ICsNCj4gPiArCS8qIDI3MCAqLw0KPiA+ICsJezEsIDI0NywgMjY5fSwN Cj4gPiArCXsxLCAyNDgsIDI3MH0sDQo+ID4gKwl7MSwgMjQ5LCAyNzF9LA0KPiA+ICsJezEsIDI1 MCwgMjcyfSwNCj4gPiArCXsxLCAyNTEsIDI3M30sDQo+ID4gKwl7MSwgMjUyLCAyNzR9LA0KPiA+ ICsJezEsIDI1MywgMjc1fSwNCj4gPiArCXsxLCAyNTQsIDI3Nn0sDQo+ID4gKwl7MSwgMjU1LCAy Nzd9LA0KPiA+ICsJezIsIDAsIDI3OH0sDQo+ID4gKw0KPiA+ICsJLyogMjgwICovDQo+ID4gKwl7 MiwgMSwgMjc5fSwNCj4gPiArCXsyLCAyLCAyODB9LA0KPiA+ICsJezIsIDMsIDI4MX0sDQo+ID4g Kwl7MiwgNCwgMjgyfSwNCj4gPiArCXsyLCA1LCAyODN9LA0KPiA+ICsJezIsIDYsIDI4NH0sDQo+ ID4gKwl7MiwgNywgMjg1fSwNCj4gPiArCXsyLCA4LCAyODZ9LA0KPiA+ICsJezIsIDksIDI4N30s DQo+ID4gKwl7MiwgMTAsIDI4OH0sDQo+ID4gKw0KPiA+ICsJLyogMjkwICovDQo+ID4gKwl7Miwg MTEsIDI4OX0sDQo+ID4gKwl7MiwgMTIsIDI5MH0sDQo+ID4gKwl7MiwgMTMsIDI5MX0sDQo+ID4g Kwl7MiwgMTQsIDI5Mn0sDQo+ID4gKwl7MiwgMTUsIDI5M30sDQo+ID4gKwl7MiwgMTYsIDI5NH0s DQo+ID4gKwl7MiwgMTcsIDI5NX0sDQo+ID4gKwl7MiwgMTgsIDI5Nn0sDQo+ID4gKwl7MiwgMTks IDI5N30sDQo+ID4gKwl7MiwgMjAsIDI5OH0sDQo+ID4gKw0KPiA+ICsJLyogMzAwICovDQo+ID4g Kwl7MiwgMjEsIDI5OX0sDQo+ID4gKwl7MiwgMjIsIDMwMH0sDQo+ID4gKwl7MiwgMjMsIDMwMX0s DQo+ID4gKwl7MiwgMjQsIDMwMn0sDQo+ID4gKwl7MiwgMjUsIDMwM30sDQo+ID4gKwl7MiwgMjYs IDMwNH0sDQo+ID4gKwl7MiwgMjcsIDMwNX0sDQo+ID4gKwl7MiwgMjgsIDMwNn0sDQo+ID4gKwl7 MiwgMjksIDMwN30sDQo+ID4gKwl7MiwgMzAsIDMwOH0sDQo+ID4gKw0KPiA+ICsJLyogMzEwICov DQo+ID4gKwl7MiwgMzEsIDMwOX0sDQo+ID4gKwl7MiwgMzIsIDMxMH0sDQo+ID4gKwl7MiwgMzMs IDMxMX0sDQo+ID4gKwl7MiwgMzQsIDMxMn0sDQo+ID4gKwl7MiwgMzUsIDMxM30sDQo+ID4gKwl7 MiwgMzYsIDMxNH0sDQo+ID4gKwl7MiwgMzcsIDMxNX0sDQo+ID4gKwl7MiwgMzgsIDMxNn0sDQo+ ID4gKwl7MiwgMzksIDMxN30sDQo+ID4gKwl7MiwgNDAsIDMxOH0sDQo+ID4gKw0KPiA+ICsJLyog MzIwICovDQo+ID4gKwl7MiwgNDEsIDMxOX0sDQo+ID4gKwl7MiwgNDIsIDMyMH0sDQo+ID4gKwl7 MiwgNDMsIDMyMX0sDQo+ID4gKwl7MiwgNDQsIDMyMn0sDQo+ID4gKwl7MiwgNDUsIDMyM30sDQo+ ID4gKwl7MiwgNDYsIDMyNH0sDQo+ID4gKwl7MiwgNDcsIDMyNX0sDQo+ID4gKwl7MiwgNDgsIDMy Nn0sDQo+ID4gKwl7MiwgNDksIDMyN30sDQo+ID4gKwl7MiwgNTAsIDMyOH0sDQo+ID4gKw0KPiA+ ICsJLyogMzMwICovDQo+ID4gKwl7MiwgNTEsIDMyOX0sDQo+ID4gKwl7MiwgNTIsIDMzMH0sDQo+ ID4gKwl7MiwgNTMsIDMzMX0sDQo+ID4gKwl7MiwgNTQsIDMzMn0sDQo+ID4gKwl7MiwgNTUsIDMz M30sDQo+ID4gKwl7MiwgNTYsIDMzNH0sDQo+ID4gKwl7MiwgNTcsIDMzNX0sDQo+ID4gKwl7Miwg NTgsIDMzNn0sDQo+ID4gKwl7MiwgNTksIDMzN30sDQo+ID4gKwl7MiwgNjAsIDMzOH0sDQo+ID4g Kw0KPiA+ICsJLyogMzQwICovDQo+ID4gKwl7MiwgNjEsIDMzOX0sDQo+ID4gKwl7MiwgNjIsIDM0 MH0sDQo+ID4gKwl7MiwgNjMsIDM0MX0sDQo+ID4gKwl7MiwgNjQsIDM0Mn0sDQo+ID4gKwl7Miwg NjUsIDM0M30sDQo+ID4gKwl7MiwgNjYsIDM0NH0sDQo+ID4gKwl7MiwgNjcsIDM0NX0sDQo+ID4g Kwl7MiwgNjgsIDM0Nn0sDQo+ID4gKwl7MiwgNjksIDM0N30sDQo+ID4gKwl7LTEsIC0xLCAzNTV9 LA0KPiA+ICsNCj4gPiArCS8qIDM1MCAqLw0KPiA+ICsJey0xLCAtMSwgMzU2fSwNCj4gPiArCXst MSwgLTEsIDM1N30sDQo+ID4gKwl7LTEsIC0xLCAzNTh9LA0KPiA+ICsJey0xLCAtMSwgMzU5fSwN Cj4gPiArCXstMSwgLTEsIDM2MH0sDQo+ID4gKwl7LTEsIC0xLCAzNjF9LA0KPiA+ICsJey0xLCAt MSwgMzYyfSwNCj4gPiArCXstMSwgLTEsIDM2M30sDQo+ID4gKwl7LTEsIC0xLCAzNjR9LA0KPiA+ ICsJey0xLCAtMSwgMzY1fSwNCj4gPiArDQo+ID4gKwkvKiAzNjAgKi8NCj4gPiArCXstMSwgLTEs IDM2Nn0sDQo+ID4gKwl7LTEsIC0xLCAzNjd9LA0KPiA+ICsJey0xLCAtMSwgMzY4fSwNCj4gPiAr CXstMSwgLTEsIDM2OX0sDQo+ID4gKwl7LTEsIC0xLCAzNzB9LA0KPiA+ICsJey0xLCAtMSwgMzcx fSwNCj4gPiArDQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdGF0aWMgc3RydWN0IG10a19kZXZpY2Vf aW5mbyBtdDY4NzNfZGV2aWNlc19wZXJpW10gPSB7DQo+ID4gKwkvKiBzeXNfaWR4LCBjdHJsX2lk eCwgdmlvX2lkeCAqLw0KPiA+ICsJLyogMCAqLw0KPiA+ICsJezAsIDAsIDB9LA0KPiA+ICsJezAs IDEsIDF9LA0KPiA+ICsJezAsIDIsIDJ9LA0KPiA+ICsJezAsIDMsIDN9LA0KPiA+ICsJezAsIDQs IDR9LA0KPiA+ICsJezAsIDUsIDV9LA0KPiA+ICsJezAsIDYsIDZ9LA0KPiA+ICsJezAsIDcsIDd9 LA0KPiA+ICsJezAsIDgsIDh9LA0KPiA+ICsJezAsIDksIDl9LA0KPiA+ICsNCj4gPiArCS8qIDEw ICovDQo+ID4gKwl7MCwgMTAsIDEwfSwNCj4gPiArCXswLCAxMSwgMTF9LA0KPiA+ICsJezAsIDEy LCAxM30sDQo+ID4gKwl7MCwgMTMsIDE0fSwNCj4gPiArCXswLCAxNCwgMTV9LA0KPiA+ICsJezAs IDE1LCAxNn0sDQo+ID4gKwl7MCwgMTYsIDE3fSwNCj4gPiArCXswLCAxNywgMTh9LA0KPiA+ICsJ ezAsIDE4LCAxOX0sDQo+ID4gKwl7MCwgMTksIDIwfSwNCj4gPiArDQo+ID4gKwkvKiAyMCAqLw0K PiA+ICsJezAsIDIwLCAyMX0sDQo+ID4gKwl7MCwgMjEsIDIzfSwNCj4gPiArCXswLCAyMiwgMjR9 LA0KPiA+ICsJezAsIDIzLCAyNX0sDQo+ID4gKwl7MCwgMjQsIDI2fSwNCj4gPiArCXswLCAyNSwg Mjd9LA0KPiA+ICsJezAsIDI2LCAyOH0sDQo+ID4gKwl7MCwgMjcsIDI5fSwNCj4gPiArCXswLCAy OCwgMzB9LA0KPiA+ICsJezAsIDI5LCAzMX0sDQo+ID4gKw0KPiA+ICsJLyogMzAgKi8NCj4gPiAr CXswLCAzMCwgMzJ9LA0KPiA+ICsJezAsIDMxLCAzM30sDQo+ID4gKwl7MCwgMzIsIDM0fSwNCj4g PiArCXswLCAzMywgMzV9LA0KPiA+ICsJezAsIDM0LCAzNn0sDQo+ID4gKwl7MCwgMzUsIDM3fSwN Cj4gPiArCXswLCAzNiwgMzh9LA0KPiA+ICsJezAsIDM3LCA2Mn0sDQo+ID4gKwl7MCwgMzgsIDYz fSwNCj4gPiArCXswLCAzOSwgNjR9LA0KPiA+ICsNCj4gPiArCS8qIDQwICovDQo+ID4gKwl7MCwg NDAsIDY1fSwNCj4gPiArCXswLCA0MSwgNjZ9LA0KPiA+ICsJezAsIDQyLCA2N30sDQo+ID4gKwl7 MCwgNDMsIDY4fSwNCj4gPiArCXswLCA0NCwgNjl9LA0KPiA+ICsJezAsIDQ1LCA3MH0sDQo+ID4g Kwl7MCwgNDYsIDcxfSwNCj4gPiArCXswLCA0NywgNzJ9LA0KPiA+ICsJezAsIDQ4LCA3M30sDQo+ ID4gKwl7MCwgNDksIDc0fSwNCj4gPiArDQo+ID4gKwkvKiA1MCAqLw0KPiA+ICsJezAsIDUwLCAx MTl9LA0KPiA+ICsJezAsIDUxLCAxMjB9LA0KPiA+ICsJezAsIDUyLCAxMjF9LA0KPiA+ICsJezAs IDUzLCAxMjJ9LA0KPiA+ICsJezAsIDU0LCAxMjN9LA0KPiA+ICsJezAsIDU1LCAxMjR9LA0KPiA+ ICsJezAsIDU2LCAxMjV9LA0KPiA+ICsJezAsIDU3LCAxMjZ9LA0KPiA+ICsJezAsIDU4LCAxMjd9 LA0KPiA+ICsJezAsIDU5LCAxMjh9LA0KPiA+ICsNCj4gPiArCS8qIDYwICovDQo+ID4gKwl7MCwg NjAsIDEyOX0sDQo+ID4gKwl7MCwgNjEsIDEzMH0sDQo+ID4gKwl7MCwgNjIsIDEzN30sDQo+ID4g Kwl7MCwgNjMsIDE0M30sDQo+ID4gKwl7MCwgNjQsIDE0NH0sDQo+ID4gKwl7MCwgNjUsIDE0NX0s DQo+ID4gKwl7MCwgNjYsIDE0Nn0sDQo+ID4gKwl7MCwgNjcsIDE0N30sDQo+ID4gKwl7MCwgNjgs IDE0OH0sDQo+ID4gKwl7MCwgNjksIDE0OX0sDQo+ID4gKw0KPiA+ICsJLyogNzAgKi8NCj4gPiAr CXswLCA3MCwgMTUwfSwNCj4gPiArCXswLCA3MSwgMTUxfSwNCj4gPiArCXswLCA3MiwgMTUyfSwN Cj4gPiArCXswLCA3MywgMTUzfSwNCj4gPiArCXswLCA3NCwgMTU0fSwNCj4gPiArCXswLCA3NSwg MTU1fSwNCj4gPiArCXswLCA3NiwgMTU2fSwNCj4gPiArCXswLCA3NywgMTU3fSwNCj4gPiArCXsw LCA3OCwgMTU4fSwNCj4gPiArCXswLCA3OSwgMTU5fSwNCj4gPiArDQo+ID4gKwkvKiA4MCAqLw0K PiA+ICsJezAsIDgwLCAxNjB9LA0KPiA+ICsJezAsIDgxLCAxNjF9LA0KPiA+ICsJezAsIDgyLCAx NjJ9LA0KPiA+ICsJezAsIDgzLCAxNjN9LA0KPiA+ICsJezAsIDg0LCAxNjR9LA0KPiA+ICsJezAs IDg1LCAxNjV9LA0KPiA+ICsJezAsIDg2LCAxNjZ9LA0KPiA+ICsJezAsIDg3LCAxNjd9LA0KPiA+ ICsJezAsIDg4LCAxNjh9LA0KPiA+ICsJezAsIDg5LCAxNjl9LA0KPiA+ICsNCj4gPiArCS8qIDkw ICovDQo+ID4gKwl7MCwgOTAsIDE3MH0sDQo+ID4gKwl7MCwgOTEsIDE3MX0sDQo+ID4gKwl7MCwg OTIsIDE3NH0sDQo+ID4gKwl7MCwgOTMsIDE3NX0sDQo+ID4gKwl7MCwgOTQsIDE3Nn0sDQo+ID4g Kwl7MCwgOTUsIDE3N30sDQo+ID4gKwl7MCwgOTYsIDE3OH0sDQo+ID4gKwl7MCwgOTcsIDE3OX0s DQo+ID4gKwl7MCwgOTgsIDE4MH0sDQo+ID4gKwl7MCwgOTksIDE4MX0sDQo+ID4gKw0KPiA+ICsJ LyogMTAwICovDQo+ID4gKwl7MCwgMTAwLCAxODJ9LA0KPiA+ICsJezAsIDEwMSwgMTgzfSwNCj4g PiArCXswLCAxMDIsIDE4NH0sDQo+ID4gKwl7MCwgMTAzLCAxODV9LA0KPiA+ICsJezAsIDEwNCwg MTg2fSwNCj4gPiArCXsxLCAwLCAzOX0sDQo+ID4gKwl7MSwgMSwgNDB9LA0KPiA+ICsJezEsIDIs IDQxfSwNCj4gPiArCXsxLCAzLCA0Mn0sDQo+ID4gKwl7MSwgNCwgNDN9LA0KPiA+ICsNCj4gPiAr CS8qIDExMCAqLw0KPiA+ICsJezEsIDUsIDQ0fSwNCj4gPiArCXsxLCA2LCA0NX0sDQo+ID4gKwl7 MSwgNywgNDZ9LA0KPiA+ICsJezEsIDgsIDQ3fSwNCj4gPiArCXsxLCA5LCA0OH0sDQo+ID4gKwl7 MSwgMTAsIDQ5fSwNCj4gPiArCXsxLCAxMSwgNTB9LA0KPiA+ICsJezEsIDEyLCA1MX0sDQo+ID4g Kwl7MSwgMTMsIDUyfSwNCj4gPiArCXsxLCAxNCwgNTN9LA0KPiA+ICsNCj4gPiArCS8qIDEyMCAq Lw0KPiA+ICsJezEsIDE1LCA1NH0sDQo+ID4gKwl7MSwgMTYsIDU1fSwNCj4gPiArCXsxLCAxNywg NTZ9LA0KPiA+ICsJezEsIDE4LCA1N30sDQo+ID4gKwl7MSwgMTksIDU4fSwNCj4gPiArCXsxLCAy MCwgNTl9LA0KPiA+ICsJezEsIDIxLCA2MH0sDQo+ID4gKwl7MSwgMjIsIDYxfSwNCj4gPiArCXsx LCAyMywgNzZ9LA0KPiA+ICsJezEsIDI0LCA3N30sDQo+ID4gKw0KPiA+ICsJLyogMTMwICovDQo+ ID4gKwl7MSwgMjUsIDc4fSwNCj4gPiArCXsxLCAyNiwgNzl9LA0KPiA+ICsJezEsIDI3LCA4MH0s DQo+ID4gKwl7MSwgMjgsIDgxfSwNCj4gPiArCXsxLCAyOSwgODJ9LA0KPiA+ICsJezEsIDMwLCA4 M30sDQo+ID4gKwl7MSwgMzEsIDg0fSwNCj4gPiArCXsxLCAzMiwgODV9LA0KPiA+ICsJezEsIDMz LCA4Nn0sDQo+ID4gKwl7MSwgMzQsIDg3fSwNCj4gPiArDQo+ID4gKwkvKiAxNDAgKi8NCj4gPiAr CXsxLCAzNSwgODh9LA0KPiA+ICsJezEsIDM2LCA4OX0sDQo+ID4gKwl7MSwgMzcsIDkwfSwNCj4g PiArCXsxLCAzOCwgOTF9LA0KPiA+ICsJezEsIDM5LCA5Mn0sDQo+ID4gKwl7MSwgNDAsIDkzfSwN Cj4gPiArCXsxLCA0MSwgOTR9LA0KPiA+ICsJezEsIDQyLCA5NX0sDQo+ID4gKwl7MSwgNDMsIDk2 fSwNCj4gPiArCXsxLCA0NCwgOTd9LA0KPiA+ICsNCj4gPiArCS8qIDE1MCAqLw0KPiA+ICsJezEs IDQ1LCA5OH0sDQo+ID4gKwl7MSwgNDYsIDk5fSwNCj4gPiArCXsxLCA0NywgMTAwfSwNCj4gPiAr CXsxLCA0OCwgMTAxfSwNCj4gPiArCXsxLCA0OSwgMTAyfSwNCj4gPiArCXsxLCA1MCwgMTAzfSwN Cj4gPiArCXsxLCA1MSwgMTA0fSwNCj4gPiArCXsxLCA1MiwgMTA1fSwNCj4gPiArCXsxLCA1Mywg MTA2fSwNCj4gPiArCXsxLCA1NCwgMTA3fSwNCj4gPiArDQo+ID4gKwkvKiAxNjAgKi8NCj4gPiAr CXsxLCA1NSwgMTA4fSwNCj4gPiArCXsxLCA1NiwgMTA5fSwNCj4gPiArCXsxLCA1NywgMTEwfSwN Cj4gPiArCXsxLCA1OCwgMTExfSwNCj4gPiArCXsxLCA1OSwgMTEyfSwNCj4gPiArCXsxLCA2MCwg MTEzfSwNCj4gPiArCXsxLCA2MSwgMTE0fSwNCj4gPiArCXsxLCA2MiwgMTE1fSwNCj4gPiArCXsx LCA2MywgMTE2fSwNCj4gPiArCXsxLCA2NCwgMTE3fSwNCj4gPiArDQo+ID4gKwkvKiAxNzAgKi8N Cj4gPiArCXsxLCA2NSwgMTE4fSwNCj4gPiArCXsyLCAwLCA3NX0sDQo+ID4gKwl7LTEsIC0xLCAx ODd9LA0KPiA+ICsJey0xLCAtMSwgMTg4fSwNCj4gPiArCXstMSwgLTEsIDE4OX0sDQo+ID4gKwl7 LTEsIC0xLCAxOTB9LA0KPiA+ICsJey0xLCAtMSwgMTkxfSwNCj4gPiArCXstMSwgLTEsIDE5Mn0s DQo+ID4gKwl7LTEsIC0xLCAxOTN9LA0KPiA+ICsJey0xLCAtMSwgMTk0fSwNCj4gPiArDQo+ID4g KwkvKiAxODAgKi8NCj4gPiArCXstMSwgLTEsIDE5NX0sDQo+ID4gKwl7LTEsIC0xLCAxOTZ9LA0K PiA+ICsJey0xLCAtMSwgMTk3fSwNCj4gPiArCXstMSwgLTEsIDE5OH0sDQo+ID4gKwl7LTEsIC0x LCAxOTl9LA0KPiA+ICsJey0xLCAtMSwgMjAwfSwNCj4gPiArCXstMSwgLTEsIDIwMX0sDQo+ID4g Kwl7LTEsIC0xLCAyMDJ9LA0KPiA+ICsJey0xLCAtMSwgMjAzfSwNCj4gPiArCXstMSwgLTEsIDIw NH0sDQo+ID4gKw0KPiA+ICsJLyogMTkwICovDQo+ID4gKwl7LTEsIC0xLCAyMDV9LA0KPiA+ICsJ ey0xLCAtMSwgMjA2fSwNCj4gPiArCXstMSwgLTEsIDIwN30sDQo+ID4gKwl7LTEsIC0xLCAyMDh9 LA0KPiA+ICsJey0xLCAtMSwgMjA5fSwNCj4gPiArCXstMSwgLTEsIDIxMH0sDQo+ID4gKwl7LTEs IC0xLCAyMTF9LA0KPiA+ICsJey0xLCAtMSwgMjEyfSwNCj4gPiArCXstMSwgLTEsIDIxM30sDQo+ ID4gKwl7LTEsIC0xLCAyMTR9LA0KPiA+ICsNCj4gPiArCS8qIDIwMCAqLw0KPiA+ICsJey0xLCAt MSwgMjE1fSwNCj4gPiArCXstMSwgLTEsIDIxNn0sDQo+ID4gKwl7LTEsIC0xLCAyMTd9LA0KPiA+ ICsJey0xLCAtMSwgMjE4fSwNCj4gPiArCXstMSwgLTEsIDIxOX0sDQo+ID4gKwl7LTEsIC0xLCAy MjB9LA0KPiA+ICsJey0xLCAtMSwgMjIxfSwNCj4gPiArCXstMSwgLTEsIDIyMn0sDQo+ID4gKwl7 LTEsIC0xLCAyMjN9LA0KPiA+ICsJey0xLCAtMSwgMjI0fSwNCj4gPiArDQo+ID4gKwkvKiAyMTAg Ki8NCj4gPiArCXstMSwgLTEsIDIyNX0sDQo+ID4gKwl7LTEsIC0xLCAyMjZ9LA0KPiA+ICsJey0x LCAtMSwgMjI3fSwNCj4gPiArCXstMSwgLTEsIDIyOH0sDQo+ID4gKwl7LTEsIC0xLCAyMjl9LA0K PiA+ICsJey0xLCAtMSwgMjMwfSwNCj4gPiArCXstMSwgLTEsIDIzMX0sDQo+ID4gKwl7LTEsIC0x LCAyMzJ9LA0KPiA+ICsJey0xLCAtMSwgMjMzfSwNCj4gPiArCXstMSwgLTEsIDIzNH0sDQo+ID4g Kw0KPiA+ICsJLyogMjIwICovDQo+ID4gKwl7LTEsIC0xLCAyMzV9LA0KPiA+ICsJey0xLCAtMSwg MjM2fSwNCj4gPiArCXstMSwgLTEsIDIzN30sDQo+ID4gKwl7LTEsIC0xLCAyMzh9LA0KPiA+ICsJ ey0xLCAtMSwgMjM5fSwNCj4gPiArCXstMSwgLTEsIDI0MH0sDQo+ID4gKwl7LTEsIC0xLCAyNDF9 LA0KPiA+ICsJey0xLCAtMSwgMjQyfSwNCj4gPiArCXstMSwgLTEsIDI0M30sDQo+ID4gKwl7LTEs IC0xLCAyNDR9LA0KPiA+ICsNCj4gPiArCS8qIDIzMCAqLw0KPiA+ICsJey0xLCAtMSwgMjQ1fSwN Cj4gPiArCXstMSwgLTEsIDI0Nn0sDQo+ID4gKwl7LTEsIC0xLCAyNDd9LA0KPiA+ICsJey0xLCAt MSwgMjQ4fSwNCj4gPiArCXstMSwgLTEsIDI0OX0sDQo+ID4gKwl7LTEsIC0xLCAyNTB9LA0KPiA+ ICsJey0xLCAtMSwgMjUxfSwNCj4gPiArCXstMSwgLTEsIDI1Mn0sDQo+ID4gKwl7LTEsIC0xLCAy NTN9LA0KPiA+ICsJey0xLCAtMSwgMjU0fSwNCj4gPiArDQo+ID4gKwkvKiAyNDAgKi8NCj4gPiAr CXstMSwgLTEsIDI1NX0sDQo+ID4gKwl7LTEsIC0xLCAyNTZ9LA0KPiA+ICsJey0xLCAtMSwgMjU3 fSwNCj4gPiArCXstMSwgLTEsIDI1OH0sDQo+ID4gKwl7LTEsIC0xLCAyNTl9LA0KPiA+ICsJey0x LCAtMSwgMjYwfSwNCj4gPiArCXstMSwgLTEsIDI2MX0sDQo+ID4gKwl7LTEsIC0xLCAyNjJ9LA0K PiA+ICsJey0xLCAtMSwgMjYzfSwNCj4gPiArCXstMSwgLTEsIDI2NH0sDQo+ID4gKw0KPiA+ICsJ LyogMjUwICovDQo+ID4gKwl7LTEsIC0xLCAyNjV9LA0KPiA+ICsJey0xLCAtMSwgMjY2fSwNCj4g PiArCXstMSwgLTEsIDI2N30sDQo+ID4gKwl7LTEsIC0xLCAyNjh9LA0KPiA+ICsJey0xLCAtMSwg MjY5fSwNCj4gPiArCXstMSwgLTEsIDI3MH0sDQo+ID4gKwl7LTEsIC0xLCAyNzF9LA0KPiA+ICsJ ey0xLCAtMSwgMjcyfSwNCj4gPiArCXstMSwgLTEsIDI3M30sDQo+ID4gKwl7LTEsIC0xLCAyNzR9 LA0KPiA+ICsNCj4gPiArCS8qIDI2MCAqLw0KPiA+ICsJey0xLCAtMSwgMjc1fSwNCj4gPiArCXst MSwgLTEsIDI3Nn0sDQo+ID4gKwl7LTEsIC0xLCAyNzd9LA0KPiA+ICsJey0xLCAtMSwgMjc4fSwN Cj4gPiArCXstMSwgLTEsIDI3OX0sDQo+ID4gKwl7LTEsIC0xLCAyODB9LA0KPiA+ICsJey0xLCAt MSwgMjgxfSwNCj4gPiArCXstMSwgLTEsIDI4Mn0sDQo+ID4gKwl7LTEsIC0xLCAyODN9LA0KPiA+ ICsJey0xLCAtMSwgMjg0fSwNCj4gPiArDQo+ID4gKwkvKiAyNzAgKi8NCj4gPiArCXstMSwgLTEs IDI4NX0sDQo+ID4gKwl7LTEsIC0xLCAyODZ9LA0KPiA+ICsJey0xLCAtMSwgMjg3fSwNCj4gPiAr CXstMSwgLTEsIDI4OH0sDQo+ID4gKwl7LTEsIC0xLCAyODl9LA0KPiA+ICsJey0xLCAtMSwgMjkw fSwNCj4gPiArCXstMSwgLTEsIDI5MX0sDQo+ID4gKwl7LTEsIC0xLCAyOTJ9LA0KPiA+ICsJey0x LCAtMSwgMjkzfSwNCj4gPiArCXstMSwgLTEsIDI5NH0sDQo+ID4gKw0KPiA+ICsJLyogMjgwICov DQo+ID4gKwl7LTEsIC0xLCAyOTV9LA0KPiA+ICsJey0xLCAtMSwgMjk2fSwNCj4gPiArCXstMSwg LTEsIDI5N30sDQo+ID4gKwl7LTEsIC0xLCAyOTh9LA0KPiA+ICsNCj4gPiArfTsNCj4gPiArDQo+ ID4gK3N0YXRpYyBzdHJ1Y3QgbXRrX2RldmljZV9pbmZvIG10Njg3M19kZXZpY2VzX3BlcmkyW10g PSB7DQo+ID4gKwkvKiBzeXNfaWR4LCBjdHJsX2lkeCwgdmlvX2lkeCAqLw0KPiA+ICsJLyogMCAq Lw0KPiA+ICsJezAsIDAsIDB9LA0KPiA+ICsJezAsIDEsIDF9LA0KPiA+ICsJezAsIDIsIDJ9LA0K PiA+ICsJezAsIDMsIDN9LA0KPiA+ICsJezAsIDQsIDR9LA0KPiA+ICsJezAsIDUsIDV9LA0KPiA+ ICsJezAsIDYsIDZ9LA0KPiA+ICsJezAsIDcsIDd9LA0KPiA+ICsJezAsIDgsIDh9LA0KPiA+ICsJ ezAsIDksIDl9LA0KPiA+ICsNCj4gPiArCS8qIDEwICovDQo+ID4gKwl7MCwgMTAsIDEwfSwNCj4g PiArCXswLCAxMSwgMTF9LA0KPiA+ICsJezAsIDEyLCAxMn0sDQo+ID4gKwl7MCwgMTMsIDEzfSwN Cj4gPiArCXswLCAxNCwgMTR9LA0KPiA+ICsJezAsIDE1LCAxNX0sDQo+ID4gKwl7MCwgMTYsIDE2 fSwNCj4gPiArCXswLCAxNywgMTd9LA0KPiA+ICsJezAsIDE4LCAxOH0sDQo+ID4gKwl7MCwgMTks IDE5fSwNCj4gPiArDQo+ID4gKwkvKiAyMCAqLw0KPiA+ICsJezAsIDIwLCAyMH0sDQo+ID4gKwl7 MCwgMjEsIDIxfSwNCj4gPiArCXswLCAyMiwgMjJ9LA0KPiA+ICsJezAsIDIzLCAyM30sDQo+ID4g Kwl7MCwgMjQsIDI0fSwNCj4gPiArCXswLCAyNSwgMjV9LA0KPiA+ICsJezAsIDI2LCAyNn0sDQo+ ID4gKwl7MCwgMjcsIDI3fSwNCj4gPiArCXswLCAyOCwgMjh9LA0KPiA+ICsJezAsIDI5LCAyOX0s DQo+ID4gKw0KPiA+ICsJLyogMzAgKi8NCj4gPiArCXswLCAzMCwgMzB9LA0KPiA+ICsJezAsIDMx LCAzMX0sDQo+ID4gKwl7MCwgMzIsIDMyfSwNCj4gPiArCXswLCAzMywgMzN9LA0KPiA+ICsJezAs IDM0LCAzNH0sDQo+ID4gKwl7MCwgMzUsIDM1fSwNCj4gPiArCXswLCAzNiwgMzZ9LA0KPiA+ICsJ ezAsIDM3LCAzN30sDQo+ID4gKwl7MCwgMzgsIDM4fSwNCj4gPiArCXswLCAzOSwgMzl9LA0KPiA+ ICsNCj4gPiArCS8qIDQwICovDQo+ID4gKwl7MCwgNDAsIDQwfSwNCj4gPiArCXswLCA0MSwgNDF9 LA0KPiA+ICsJezAsIDQyLCA0Mn0sDQo+ID4gKwl7MCwgNDMsIDQzfSwNCj4gPiArCXswLCA0NCwg NDR9LA0KPiA+ICsJezAsIDQ1LCA0NX0sDQo+ID4gKwl7MCwgNDYsIDQ2fSwNCj4gPiArCXswLCA0 NywgNDd9LA0KPiA+ICsJezAsIDQ4LCA0OH0sDQo+ID4gKwl7MCwgNDksIDQ5fSwNCj4gPiArDQo+ ID4gKwkvKiA1MCAqLw0KPiA+ICsJezAsIDUwLCA1MH0sDQo+ID4gKwl7MCwgNTEsIDUxfSwNCj4g PiArCXswLCA1MiwgNTJ9LA0KPiA+ICsJezAsIDUzLCA1M30sDQo+ID4gKwl7MCwgNTQsIDU0fSwN Cj4gPiArCXswLCA1NSwgNTV9LA0KPiA+ICsJezAsIDU2LCA1Nn0sDQo+ID4gKwl7MCwgNTcsIDU3 fSwNCj4gPiArCXswLCA1OCwgNTh9LA0KPiA+ICsJezAsIDU5LCA1OX0sDQo+ID4gKw0KPiA+ICsJ LyogNjAgKi8NCj4gPiArCXswLCA2MCwgNjB9LA0KPiA+ICsJezAsIDYxLCA2MX0sDQo+ID4gKwl7 MCwgNjIsIDYyfSwNCj4gPiArCXswLCA2MywgNjN9LA0KPiA+ICsJezAsIDY0LCA2NH0sDQo+ID4g Kwl7MCwgNjUsIDY1fSwNCj4gPiArCXswLCA2NiwgNjZ9LA0KPiA+ICsJezAsIDY3LCA2N30sDQo+ ID4gKwl7MCwgNjgsIDY4fSwNCj4gPiArCXswLCA2OSwgNjl9LA0KPiA+ICsNCj4gPiArCS8qIDcw ICovDQo+ID4gKwl7MCwgNzAsIDcwfSwNCj4gPiArCXswLCA3MSwgNzF9LA0KPiA+ICsJezAsIDcy LCA3Mn0sDQo+ID4gKwl7MCwgNzMsIDczfSwNCj4gPiArCXswLCA3NCwgNzR9LA0KPiA+ICsJezAs IDc1LCA3NX0sDQo+ID4gKwl7MCwgNzYsIDc2fSwNCj4gPiArCXswLCA3NywgNzd9LA0KPiA+ICsJ ezAsIDc4LCA3OH0sDQo+ID4gKwl7MCwgNzksIDc5fSwNCj4gPiArDQo+ID4gKwkvKiA4MCAqLw0K PiA+ICsJezAsIDgwLCA4MH0sDQo+ID4gKwl7MCwgODEsIDgxfSwNCj4gPiArCXswLCA4MiwgODJ9 LA0KPiA+ICsJezAsIDgzLCA4M30sDQo+ID4gKwl7MCwgODQsIDg0fSwNCj4gPiArCXswLCA4NSwg ODV9LA0KPiA+ICsJezAsIDg2LCA4Nn0sDQo+ID4gKwl7MCwgODcsIDg3fSwNCj4gPiArCXswLCA4 OCwgODh9LA0KPiA+ICsJezAsIDg5LCA4OX0sDQo+ID4gKw0KPiA+ICsJLyogOTAgKi8NCj4gPiAr CXswLCA5MCwgOTB9LA0KPiA+ICsJezAsIDkxLCA5MX0sDQo+ID4gKwl7MCwgOTIsIDkyfSwNCj4g PiArCXswLCA5MywgOTN9LA0KPiA+ICsJezAsIDk0LCA5NH0sDQo+ID4gKwl7MCwgOTUsIDk1fSwN Cj4gPiArCXswLCA5NiwgOTZ9LA0KPiA+ICsJezAsIDk3LCA5N30sDQo+ID4gKwl7MCwgOTgsIDk4 fSwNCj4gPiArCXswLCA5OSwgOTl9LA0KPiA+ICsNCj4gPiArCS8qIDEwMCAqLw0KPiA+ICsJezAs IDEwMCwgMTAwfSwNCj4gPiArCXswLCAxMDEsIDEwM30sDQo+ID4gKwl7MCwgMTAyLCAxMDR9LA0K PiA+ICsJezAsIDEwMywgMTA1fSwNCj4gPiArCXswLCAxMDQsIDEwNn0sDQo+ID4gKwl7MCwgMTA1 LCAxMDd9LA0KPiA+ICsJezAsIDEwNiwgMTA4fSwNCj4gPiArCXswLCAxMDcsIDEwOX0sDQo+ID4g Kwl7MCwgMTA4LCAxMTB9LA0KPiA+ICsJezAsIDEwOSwgMTExfSwNCj4gPiArDQo+ID4gKwkvKiAx MTAgKi8NCj4gPiArCXswLCAxMTAsIDExMn0sDQo+ID4gKwl7MCwgMTExLCAxMTN9LA0KPiA+ICsJ ezAsIDExMiwgMTE0fSwNCj4gPiArCXswLCAxMTMsIDExNX0sDQo+ID4gKwl7MCwgMTE0LCAxMTZ9 LA0KPiA+ICsJey0xLCAtMSwgMTE3fSwNCj4gPiArCXstMSwgLTEsIDExOH0sDQo+ID4gKwl7LTEs IC0xLCAxMTl9LA0KPiA+ICsJey0xLCAtMSwgMTIwfSwNCj4gPiArCXstMSwgLTEsIDEyMX0sDQo+ ID4gKw0KPiA+ICsJLyogMTIwICovDQo+ID4gKwl7LTEsIC0xLCAxMjJ9LA0KPiA+ICsJey0xLCAt MSwgMTIzfSwNCj4gPiArCXstMSwgLTEsIDEyNH0sDQo+ID4gKwl7LTEsIC0xLCAxMjV9LA0KPiA+ ICsJey0xLCAtMSwgMTI2fSwNCj4gPiArCXstMSwgLTEsIDEyN30sDQo+ID4gKwl7LTEsIC0xLCAx Mjh9LA0KPiA+ICsJey0xLCAtMSwgMTI5fSwNCj4gPiArCXstMSwgLTEsIDEzMH0sDQo+ID4gKwl7 LTEsIC0xLCAxMzF9LA0KPiA+ICsNCj4gPiArCS8qIDEzMCAqLw0KPiA+ICsJey0xLCAtMSwgMTMy fSwNCj4gPiArCXstMSwgLTEsIDEzM30sDQo+ID4gKwl7LTEsIC0xLCAxMzR9LA0KPiA+ICsJey0x LCAtMSwgMTM1fSwNCj4gPiArCXstMSwgLTEsIDEzNn0sDQo+ID4gKwl7LTEsIC0xLCAxMzd9LA0K PiA+ICsJey0xLCAtMSwgMTM4fSwNCj4gPiArCXstMSwgLTEsIDEzOX0sDQo+ID4gKwl7LTEsIC0x LCAxNDB9LA0KPiA+ICsJey0xLCAtMSwgMTQxfSwNCj4gPiArDQo+ID4gKwkvKiAxNDAgKi8NCj4g PiArCXstMSwgLTEsIDE0Mn0sDQo+ID4gKwl7LTEsIC0xLCAxNDN9LA0KPiA+ICsJey0xLCAtMSwg MTQ0fSwNCj4gPiArCXstMSwgLTEsIDE0NX0sDQo+ID4gKwl7LTEsIC0xLCAxNDZ9LA0KPiA+ICsJ ey0xLCAtMSwgMTQ3fSwNCj4gPiArCXstMSwgLTEsIDE0OH0sDQo+ID4gKwl7LTEsIC0xLCAxNDl9 LA0KPiA+ICsJey0xLCAtMSwgMTUwfSwNCj4gPiArCXstMSwgLTEsIDE1MX0sDQo+ID4gKw0KPiA+ ICsJLyogMTUwICovDQo+ID4gKwl7LTEsIC0xLCAxNTJ9LA0KPiA+ICsJey0xLCAtMSwgMTUzfSwN Cj4gPiArCXstMSwgLTEsIDE1NH0sDQo+ID4gKwl7LTEsIC0xLCAxNTV9LA0KPiA+ICsJey0xLCAt MSwgMTU2fSwNCj4gPiArCXstMSwgLTEsIDE1N30sDQo+ID4gKwl7LTEsIC0xLCAxNTh9LA0KPiA+ ICsJey0xLCAtMSwgMTU5fSwNCj4gPiArCXstMSwgLTEsIDE2MH0sDQo+ID4gKwl7LTEsIC0xLCAx NjF9LA0KPiA+ICsNCj4gPiArCS8qIDE2MCAqLw0KPiA+ICsJey0xLCAtMSwgMTYyfSwNCj4gPiAr CXstMSwgLTEsIDE2M30sDQo+ID4gKwl7LTEsIC0xLCAxNjR9LA0KPiA+ICsJey0xLCAtMSwgMTY1 fSwNCj4gPiArCXstMSwgLTEsIDE2Nn0sDQo+ID4gKwl7LTEsIC0xLCAxNjd9LA0KPiA+ICsJey0x LCAtMSwgMTY4fSwNCj4gPiArCXstMSwgLTEsIDE2OX0sDQo+ID4gKwl7LTEsIC0xLCAxNzB9LA0K PiA+ICsJey0xLCAtMSwgMTcxfSwNCj4gPiArDQo+ID4gKwkvKiAxNzAgKi8NCj4gPiArCXstMSwg LTEsIDE3Mn0sDQo+ID4gKwl7LTEsIC0xLCAxNzN9LA0KPiA+ICsJey0xLCAtMSwgMTc0fSwNCj4g PiArCXstMSwgLTEsIDE3NX0sDQo+ID4gKwl7LTEsIC0xLCAxNzZ9LA0KPiA+ICsJey0xLCAtMSwg MTc3fSwNCj4gPiArCXstMSwgLTEsIDE3OH0sDQo+ID4gKwl7LTEsIC0xLCAxNzl9LA0KPiA+ICsJ ey0xLCAtMSwgMTgwfSwNCj4gPiArCXstMSwgLTEsIDE4MX0sDQo+ID4gKw0KPiA+ICsJLyogMTgw ICovDQo+ID4gKwl7LTEsIC0xLCAxODJ9LA0KPiA+ICsJey0xLCAtMSwgMTgzfSwNCj4gPiArCXst MSwgLTEsIDE4NH0sDQo+ID4gKwl7LTEsIC0xLCAxODV9LA0KPiA+ICsJey0xLCAtMSwgMTg2fSwN Cj4gPiArCXstMSwgLTEsIDE4N30sDQo+ID4gKwl7LTEsIC0xLCAxODh9LA0KPiA+ICsJey0xLCAt MSwgMTg5fSwNCj4gPiArCXstMSwgLTEsIDE5MH0sDQo+ID4gKwl7LTEsIC0xLCAxOTF9LA0KPiA+ ICsNCj4gPiArCS8qIDE5MCAqLw0KPiA+ICsJey0xLCAtMSwgMTkyfSwNCj4gPiArCXstMSwgLTEs IDE5M30sDQo+ID4gKwl7LTEsIC0xLCAxOTR9LA0KPiA+ICsJey0xLCAtMSwgMTk1fSwNCj4gPiAr CXstMSwgLTEsIDE5Nn0sDQo+ID4gKwl7LTEsIC0xLCAxOTd9LA0KPiA+ICsJey0xLCAtMSwgMTk4 fSwNCj4gPiArCXstMSwgLTEsIDE5OX0sDQo+ID4gKwl7LTEsIC0xLCAyMDB9LA0KPiA+ICsJey0x LCAtMSwgMjAxfSwNCj4gPiArDQo+ID4gKwkvKiAyMDAgKi8NCj4gPiArCXstMSwgLTEsIDIwMn0s DQo+ID4gKwl7LTEsIC0xLCAyMDN9LA0KPiA+ICsJey0xLCAtMSwgMjA0fSwNCj4gPiArCXstMSwg LTEsIDIwNX0sDQo+ID4gKwl7LTEsIC0xLCAyMDZ9LA0KPiA+ICsJey0xLCAtMSwgMjA3fSwNCj4g PiArCXstMSwgLTEsIDIwOH0sDQo+ID4gKwl7LTEsIC0xLCAyMDl9LA0KPiA+ICsJey0xLCAtMSwg MjEwfSwNCj4gPiArCXstMSwgLTEsIDIxMX0sDQo+ID4gKw0KPiA+ICsJLyogMjEwICovDQo+ID4g Kwl7LTEsIC0xLCAyMTJ9LA0KPiA+ICsJey0xLCAtMSwgMjEzfSwNCj4gPiArCXstMSwgLTEsIDIx NH0sDQo+ID4gKwl7LTEsIC0xLCAyMTV9LA0KPiA+ICsJey0xLCAtMSwgMjE2fSwNCj4gPiArCXst MSwgLTEsIDIxN30sDQo+ID4gKwl7LTEsIC0xLCAyMTh9LA0KPiA+ICsJey0xLCAtMSwgMjE5fSwN Cj4gPiArCXstMSwgLTEsIDIyMH0sDQo+ID4gKwl7LTEsIC0xLCAyMjF9LA0KPiA+ICsNCj4gPiAr CS8qIDIyMCAqLw0KPiA+ICsJey0xLCAtMSwgMjIyfSwNCj4gPiArCXstMSwgLTEsIDIyM30sDQo+ ID4gKwl7LTEsIC0xLCAyMjR9LA0KPiA+ICsJey0xLCAtMSwgMjI1fSwNCj4gPiArCXstMSwgLTEs IDIyNn0sDQo+ID4gKwl7LTEsIC0xLCAyMjd9LA0KPiA+ICsJey0xLCAtMSwgMjI4fSwNCj4gPiAr CXstMSwgLTEsIDIyOX0sDQo+ID4gKwl7LTEsIC0xLCAyMzB9LA0KPiA+ICsJey0xLCAtMSwgMjMx fSwNCj4gPiArDQo+ID4gKwkvKiAyMzAgKi8NCj4gPiArCXstMSwgLTEsIDIzMn0sDQo+ID4gKwl7 LTEsIC0xLCAyMzN9LA0KPiA+ICsJey0xLCAtMSwgMjM0fSwNCj4gPiArCXstMSwgLTEsIDIzNX0s DQo+ID4gKwl7LTEsIC0xLCAyMzZ9LA0KPiA+ICsJey0xLCAtMSwgMjM3fSwNCj4gPiArCXstMSwg LTEsIDIzOH0sDQo+ID4gKwl7LTEsIC0xLCAyMzl9LA0KPiA+ICsJey0xLCAtMSwgMjQwfSwNCj4g PiArCXstMSwgLTEsIDI0MX0sDQo+ID4gKw0KPiA+ICsJLyogMjQwICovDQo+ID4gKwl7LTEsIC0x LCAyNDJ9LA0KPiA+ICsJey0xLCAtMSwgMjQzfSwNCj4gPiArCXstMSwgLTEsIDI0NH0sDQo+ID4g Kwl7LTEsIC0xLCAyNDV9LA0KPiA+ICsJey0xLCAtMSwgMjQ2fSwNCj4gPiArCXstMSwgLTEsIDI0 N30sDQo+ID4gKwl7LTEsIC0xLCAyNDh9LA0KPiA+ICsNCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0 YXRpYyBzdHJ1Y3QgbXRrX2RldmljZV9pbmZvIG10Njg3M19kZXZpY2VzX3BlcmlfcGFyW10gPSB7 DQo+ID4gKwkvKiBzeXNfaWR4LCBjdHJsX2lkeCwgdmlvX2lkeCAqLw0KPiA+ICsJLyogMCAqLw0K PiA+ICsJezAsIDAsIDB9LA0KPiA+ICsJezAsIDEsIDF9LA0KPiA+ICsJezAsIDIsIDJ9LA0KPiA+ ICsJezAsIDMsIDN9LA0KPiA+ICsJezAsIDQsIDR9LA0KPiA+ICsJezAsIDUsIDV9LA0KPiA+ICsJ ezAsIDYsIDZ9LA0KPiA+ICsJezAsIDcsIDd9LA0KPiA+ICsJezAsIDgsIDh9LA0KPiA+ICsJezAs IDksIDl9LA0KPiA+ICsNCj4gPiArCS8qIDEwICovDQo+ID4gKwl7MCwgMTAsIDEwfSwNCj4gPiAr CXswLCAxMSwgMTF9LA0KPiA+ICsJezAsIDEyLCAxMn0sDQo+ID4gKwl7MCwgMTMsIDEzfSwNCj4g PiArCXswLCAxNCwgMTR9LA0KPiA+ICsJezAsIDE1LCAxNX0sDQo+ID4gKwl7MCwgMTYsIDE2fSwN Cj4gPiArCXswLCAxNywgMTd9LA0KPiA+ICsJezAsIDE4LCAxOH0sDQo+ID4gKwl7MCwgMTksIDE5 fSwNCj4gPiArDQo+ID4gKwkvKiAyMCAqLw0KPiA+ICsJezAsIDIwLCAyMH0sDQo+ID4gKwl7MCwg MjEsIDIxfSwNCj4gPiArCXswLCAyMiwgMjJ9LA0KPiA+ICsJezAsIDIzLCAyM30sDQo+ID4gKwl7 MCwgMjQsIDI0fSwNCj4gPiArCXswLCAyNSwgMjV9LA0KPiA+ICsJezAsIDI2LCAyNn0sDQo+ID4g Kwl7LTEsIC0xLCAyN30sDQo+ID4gKwl7LTEsIC0xLCAyOH0sDQo+ID4gKwl7LTEsIC0xLCAyOX0s DQo+ID4gKw0KPiA+ICsJLyogMzAgKi8NCj4gPiArCXstMSwgLTEsIDMwfSwNCj4gPiArCXstMSwg LTEsIDMxfSwNCj4gPiArCXstMSwgLTEsIDMyfSwNCj4gPiArCXstMSwgLTEsIDMzfSwNCj4gPiAr CXstMSwgLTEsIDM0fSwNCj4gPiArCXstMSwgLTEsIDM1fSwNCj4gPiArCXstMSwgLTEsIDM2fSwN Cj4gPiArCXstMSwgLTEsIDM3fSwNCj4gPiArCXstMSwgLTEsIDM4fSwNCj4gPiArCXstMSwgLTEs IDM5fSwNCj4gPiArDQo+ID4gKwkvKiA0MCAqLw0KPiA+ICsJey0xLCAtMSwgNDB9LA0KPiA+ICsJ ey0xLCAtMSwgNDF9LA0KPiA+ICsJey0xLCAtMSwgNDJ9LA0KPiA+ICsJey0xLCAtMSwgNDN9LA0K PiA+ICsJey0xLCAtMSwgNDR9LA0KPiA+ICsJey0xLCAtMSwgNDV9LA0KPiA+ICsJey0xLCAtMSwg NDZ9LA0KPiA+ICsJey0xLCAtMSwgNDd9LA0KPiA+ICsJey0xLCAtMSwgNDh9LA0KPiA+ICsJey0x LCAtMSwgNDl9LA0KPiA+ICsNCj4gPiArCS8qIDUwICovDQo+ID4gKwl7LTEsIC0xLCA1MH0sDQo+ ID4gKwl7LTEsIC0xLCA1MX0sDQo+ID4gKwl7LTEsIC0xLCA1Mn0sDQo+ID4gKwl7LTEsIC0xLCA1 M30sDQo+ID4gKwl7LTEsIC0xLCA1NH0sDQo+ID4gKwl7LTEsIC0xLCA1NX0sDQo+ID4gKwl7LTEs IC0xLCA1Nn0sDQo+ID4gKwl7LTEsIC0xLCA1N30sDQo+ID4gKw0KPiA+ICt9Ow0KPiA+ICsNCj4g PiArc3RhdGljIHN0cnVjdCBtdGtfZGV2aWNlX251bSBtdGs2ODczX2RldmljZXNfbnVtW10gPSB7 DQo+ID4gKwl7U0xBVkVfVFlQRV9JTkZSQSwgVklPX1NMQVZFX05VTV9JTkZSQX0sDQo+ID4gKwl7 U0xBVkVfVFlQRV9QRVJJLCBWSU9fU0xBVkVfTlVNX1BFUkl9LA0KPiA+ICsJe1NMQVZFX1RZUEVf UEVSSTIsIFZJT19TTEFWRV9OVU1fUEVSSTJ9LA0KPiA+ICsJe1NMQVZFX1RZUEVfUEVSSV9QQVIs IFZJT19TTEFWRV9OVU1fUEVSSV9QQVJ9LA0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArc3RhdGljIHN0 cnVjdCBJTkZSQUFYSV9JRF9JTkZPIHBlcmlfbWlfaWRfdG9fbWFzdGVyW10gPSB7DQo+ID4gKwl7 IlRIRVJNMiIsICAgIDB4MCwgMHg3fSwNCj4gPiArCXsiU1BNIiwgICAgICAgMHgyLCAweDd9LA0K PiA+ICsJeyJDQ1UiLCAgICAgICAweDQsIDB4N30sDQo+ID4gKwl7IlRIRVJNIiwgICAgIDB4Niwg MHg3fSwNCj4gPiArCXsiU1BNX0RSQU1DIiwgMHgzLCAweDd9LA0KPiA+ICt9Ow0KPiA+ICsNCj4g PiArc3RhdGljIHN0cnVjdCBJTkZSQUFYSV9JRF9JTkZPIGluZnJhX21pX2lkX3RvX21hc3Rlcltd ID0gew0KPiA+ICsJeyJDT05OU1lTX1dGRE1BIiwgICAweDAsICAgIDB4M2ZmZn0sDQo+ID4gKwl7 IkNPTk5TWVNfSUNBUCIsICAgIDB4MTAsICAgMHgzZmZmfSwNCj4gPiArCXsiQ09OTlNZU19NQ1Vf U1lTIiwgMHgyMCwgICAweDNmZmZ9LA0KPiA+ICsJeyJDT05OU1lTX0dQUyIsICAgICAweDMwLCAg IDB4M2ZmZn0sDQo+ID4gKwl7IlRpbnlzeXMiLCAgICAgICAgIDB4MiwgICAgMHgzYzBmfSwNCj4g PiArCXsiQ1FfRE1BIiwgICAgICAgICAgMHg0LCAgICAweDNjN2Z9LA0KPiA+ICsJeyJEZWJ1Z1Rv cCIsICAgICAgICAweDE0LCAgIDB4M2Y3Zn0sDQo+ID4gKwl7IlNTVVNCIiwgICAgICAgICAgIDB4 MjQsICAgMHhmZmZ9LA0KPiA+ICsJeyJTU1VTQjIiLCAgICAgICAgICAweDQyNCwgIDB4ZmZmfSwN Cj4gPiArCXsiTk9SIiwgICAgICAgICAgICAgMHg4MjQsICAweGZmZn0sDQo+ID4gKwl7IlBXTSIs ICAgICAgICAgICAgIDB4YzI0LCAgMHgzZmZmfSwNCj4gPiArCXsiU1BJNiIsICAgICAgICAgICAg MHgyYzI0LCAweDNmZmZ9LA0KPiA+ICsJeyJTUEkwIiwgICAgICAgICAgICAweDNjMjQsIDB4M2Zm Zn0sDQo+ID4gKwl7IkFQVSIsICAgICAgICAgICAgIDB4YTQsICAgMHgzM2ZmfSwNCj4gPiArCXsi U1BJMiIsICAgICAgICAgICAgMHgxMjQsICAweDNmZmZ9LA0KPiA+ICsJeyJTUEkzIiwgICAgICAg ICAgICAweDUyNCwgIDB4M2ZmZn0sDQo+ID4gKwl7IlNQSTQiLCAgICAgICAgICAgIDB4OTI0LCAg MHgzZmZmfSwNCj4gPiArCXsiU1BJNSIsICAgICAgICAgICAgMHhkMjQsICAweDNmZmZ9LA0KPiA+ ICsJeyJTUEk3IiwgICAgICAgICAgICAweDFhNCwgIDB4M2ZmZn0sDQo+ID4gKwl7IkF1ZGlvIiwg ICAgICAgICAgIDB4OWE0LCAgMHgzZmZmfSwNCj4gPiArCXsiU1BJMSIsICAgICAgICAgICAgMHhk YTQsICAweDNmZmZ9LA0KPiA+ICsJeyJBUF9ETUFfRVhUIiwgICAgICAweDIyNCwgIDB4MjNmZn0s DQo+ID4gKwl7IlRIRVJNMiIsICAgICAgICAgIDB4MmE0LCAgMHgzZmZmfSwNCj4gPiArCXsiU1BN IiwgICAgICAgICAgICAgMHg2YTQsICAweDNmZmZ9LA0KPiA+ICsJeyJDQ1UiLCAgICAgICAgICAg ICAweGFhNCwgIDB4M2ZmZn0sDQo+ID4gKwl7IlRIRVJNIiwgICAgICAgICAgIDB4ZWE0LCAgMHgz ZmZmfSwNCj4gPiArCXsiRFhfQ0MiLCAgICAgICAgICAgMHgzNCwgICAweDM4N2Z9LA0KPiA+ICsJ eyJHQ0UiLCAgICAgICAgICAgICAweDQ0LCAgIDB4M2U3Zn0sDQo+ID4gKwl7IlBDSUUiLCAgICAg ICAgICAgIDB4NjQsICAgMHgzMDdmfSwNCj4gPiArCXsiRFBNQUlGIiwgICAgICAgICAgMHg2LCAg ICAweDNmMGZ9LA0KPiA+ICsJeyJTU1BNIiwgICAgICAgICAgICAweDgsICAgIDB4M2Y4Zn0sDQo+ ID4gKwl7IlVGUyIsICAgICAgICAgICAgIDB4YSwgICAgMHgzZjlmfSwNCj4gPiArCXsiTVNEQzAi LCAgICAgICAgICAgMHgxYSwgICAweDNmZmZ9LA0KPiA+ICsJeyJNU0RDMSIsICAgICAgICAgICAw eDNhLCAgIDB4M2ZmZn0sDQo+ID4gKwl7Ik1TREMyIiwgICAgICAgICAgIDB4N2EsICAgMHgzZmZm fSwNCj4gPiArCXsiQ1BVRUIiLCAgICAgICAgICAgMHhjLCAgICAweDNjMGZ9LA0KPiA+ICsJeyJB UE1DVV93cml0ZSIsICAgICAweDEsICAgIDB4M2ZlMX0sDQo+ID4gKwl7IkFQTUNVX3dyaXRlIiwg ICAgIDB4ODEsICAgMHgzZmUxfSwNCj4gPiArCXsiQVBNQ1Vfd3JpdGUiLCAgICAgMHgyMDEsICAw eDNlMDF9LA0KPiA+ICsJeyJBUE1DVV9yZWFkIiwgICAgICAweDEsICAgIDB4M2ZlMX0sDQo+ID4g Kwl7IkFQTUNVX3JlYWQiLCAgICAgIDB4ODEsICAgMHgzZmUxfSwNCj4gPiArCXsiQVBNQ1VfcmVh ZCIsICAgICAgMHgxMDEsICAweDNmZmR9LA0KPiA+ICsJeyJBUE1DVV9yZWFkIiwgICAgICAweDEw NSwgIDB4M2ZmZH0sDQo+ID4gKwl7IkFQTUNVX3JlYWQiLCAgICAgIDB4MjAxLCAgMHgzZTAxfSwN Cj4gPiArCXsiQVBNQ1VfcmVhZCIsICAgICAgMHg0MDEsICAweDNjMDF9LA0KPiA+ICt9Ow0KPiA+ ICsNCj4gPiArc3RhdGljIGNvbnN0IGNoYXIgKmluZnJhX21pX3RyYW5zKHUzMiBidXNfaWQpDQo+ ID4gK3sNCj4gPiArCWludCBtYXN0ZXJfY291bnQgPSBBUlJBWV9TSVpFKGluZnJhX21pX2lkX3Rv X21hc3Rlcik7DQo+ID4gKwljb25zdCBjaGFyICptYXN0ZXIgPSAiVU5LTk9XTl9NQVNURVJfRlJP TV9JTkZSQSI7DQo+ID4gKwlpbnQgaTsNCj4gPiArDQo+ID4gKwlmb3IgKGkgPSAwOyBpIDwgbWFz dGVyX2NvdW50OyBpKyspIHsNCj4gPiArCQlpZiAoKGJ1c19pZCAmIGluZnJhX21pX2lkX3RvX21h c3RlcltpXS5tYXNrKSA9PQ0KPiA+ICsJCSAgICBpbmZyYV9taV9pZF90b19tYXN0ZXJbaV0uYnVz X2lkKQ0KPiA+ICsJCQltYXN0ZXIgPSBpbmZyYV9taV9pZF90b19tYXN0ZXJbaV0ubWFzdGVyOw0K PiA+ICsJfQ0KPiA+ICsNCj4gPiArCXJldHVybiBtYXN0ZXI7DQo+ID4gK30NCj4gPiArDQo+ID4g K3N0YXRpYyBjb25zdCBjaGFyICpwZXJpX21pX3RyYW5zKHUzMiBidXNfaWQpDQo+ID4gK3sNCj4g PiArCWludCBtYXN0ZXJfY291bnQgPSBBUlJBWV9TSVpFKHBlcmlfbWlfaWRfdG9fbWFzdGVyKTsN Cj4gPiArCWNvbnN0IGNoYXIgKm1hc3RlciA9ICJVTktOT1dOX01BU1RFUl9GUk9NX1BFUkkiOw0K PiA+ICsJaW50IGk7DQo+ID4gKw0KPiA+ICsJaWYgKChidXNfaWQgJiAweDMpID09IDB4MCkNCj4g PiArCQlyZXR1cm4gaW5mcmFfbWlfdHJhbnMoYnVzX2lkID4+IDIpOw0KPiA+ICsJZWxzZSBpZiAo KGJ1c19pZCAmIDB4MykgPT0gMHgyKQ0KPiA+ICsJCXJldHVybiAiTURfQVBfTSI7DQo+ID4gKwll bHNlIGlmICgoYnVzX2lkICYgMHgzKSA9PSAweDMpDQo+ID4gKwkJcmV0dXJuICJBUF9ETUFfTSI7 DQo+ID4gKw0KPiA+ICsJYnVzX2lkID0gYnVzX2lkID4+IDI7DQo+ID4gKw0KPiA+ICsJZm9yIChp ID0gMCA7IGkgPCBtYXN0ZXJfY291bnQ7IGkrKykgew0KPiA+ICsJCWlmICgoYnVzX2lkICYgcGVy aV9taV9pZF90b19tYXN0ZXJbaV0ubWFzaykgPT0NCj4gPiArCQkgICAgcGVyaV9taV9pZF90b19t YXN0ZXJbaV0uYnVzX2lkKQ0KPiA+ICsJCQltYXN0ZXIgPSBpbmZyYV9taV9pZF90b19tYXN0ZXJb aV0ubWFzdGVyOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCXJldHVybiBtYXN0ZXI7DQo+ID4gK30N Cj4gPiArDQo+ID4gK3N0YXRpYyBjb25zdCBjaGFyICptdDY4NzNfYnVzX2lkX3RvX21hc3Rlcih1 MzIgYnVzX2lkLCB1MzIgdmlvX2FkZHIsDQo+ID4gKwkJCQkJICAgaW50IHNsYXZlX3R5cGUsIGlu dCBzaGlmdF9zdGFfYml0LA0KPiA+ICsJCQkJCSAgIGludCBkb21haW4pDQo+ID4gK3sNCj4gPiAr CXU4IGhfMWJ5dGU7DQo+ID4gKw0KPiA+ICsJaWYgKGJ1c19pZCA9PSAweDAgJiYgdmlvX2FkZHIg PT0gMHgwKQ0KPiA+ICsJCXJldHVybiBOVUxMOw0KPiA+ICsNCj4gPiArCWhfMWJ5dGUgPSAodmlv X2FkZHIgPj4gMjQpICYgMHhGRjsNCj4gPiArDQo+ID4gKwlpZiAoc2xhdmVfdHlwZSA9PSBTTEFW RV9UWVBFX0lORlJBKSB7DQo+ID4gKwkJaWYgKHZpb19hZGRyIDw9IDB4MUZGRkZGKSB7DQo+ID4g KwkJCWlmICgoYnVzX2lkICYgMHgxKSA9PSAwKQ0KPiA+ICsJCQkJcmV0dXJuICJFTUlfTDJDX00i Ow0KPiA+ICsNCj4gPiArCQkJcmV0dXJuIGluZnJhX21pX3RyYW5zKGJ1c19pZCA+PiAxKTsNCj4g PiArDQo+ID4gKwkJfSBlbHNlIGlmIChzaGlmdF9zdGFfYml0ID09IDMpIHsNCj4gPiArCQkJaWYg KChidXNfaWQgJiAweDEpID09IDApDQo+ID4gKwkJCQlyZXR1cm4gIkVNSV9MMkNfTSI7DQo+ID4g Kw0KPiA+ICsJCQlyZXR1cm4gaW5mcmFfbWlfdHJhbnMoYnVzX2lkID4+IDEpOw0KPiA+ICsNCj4g PiArCQl9IGVsc2UgaWYgKHNoaWZ0X3N0YV9iaXQgPT0gNCkgew0KPiA+ICsJCQlpZiAoKGJ1c19p ZCAmIDB4MSkgPT0gMSkNCj4gPiArCQkJCXJldHVybiAiR0NFX00iOw0KPiA+ICsNCj4gPiArCQkJ cmV0dXJuIGluZnJhX21pX3RyYW5zKGJ1c19pZCA+PiAxKTsNCj4gPiArCQl9DQo+ID4gKw0KPiA+ ICsJCXJldHVybiBpbmZyYV9taV90cmFucyhidXNfaWQpOw0KPiA+ICsNCj4gPiArCX0gZWxzZSBp ZiAoc2xhdmVfdHlwZSA9PSBTTEFWRV9UWVBFX1BFUkkpIHsNCj4gPiArCQlpZiAoKGhfMWJ5dGUg Pj0gMHgxNCAmJiBoXzFieXRlIDwgMHgxOCkgfHwNCj4gPiArCQkgICAgKGhfMWJ5dGUgPj0gMHgx QSAmJiBoXzFieXRlIDwgMHgxQykgfHwNCj4gPiArCQkgICAgKGhfMWJ5dGUgPj0gMHgxRiAmJiBo XzFieXRlIDwgMHgyMCkpIHsNCj4gPiArCQkJaWYgKChidXNfaWQgJiAweDEpID09IDEpDQo+ID4g KwkJCQlyZXR1cm4gIkdDRV9NIjsNCj4gPiArDQo+ID4gKwkJCXJldHVybiBpbmZyYV9taV90cmFu cyhidXNfaWQgPj4gMSk7DQo+ID4gKwkJfQ0KPiA+ICsNCj4gPiArCQlpZiAoc2hpZnRfc3RhX2Jp dCA9PSAzIHx8IHNoaWZ0X3N0YV9iaXQgPT0gNCB8fA0KPiA+ICsJCSAgICBzaGlmdF9zdGFfYml0 ID09IDgpIHsNCj4gPiArCQkJaWYgKChidXNfaWQgJiAweDEpID09IDApDQo+ID4gKwkJCQlyZXR1 cm4gIk1EX0FQX00iOw0KPiA+ICsNCj4gPiArCQkJcmV0dXJuIHBlcmlfbWlfdHJhbnMoYnVzX2lk ID4+IDEpOw0KPiA+ICsJCX0NCj4gPiArCQlyZXR1cm4gcGVyaV9taV90cmFucyhidXNfaWQpOw0K PiA+ICsNCj4gPiArCX0gZWxzZSBpZiAoc2xhdmVfdHlwZSA9PSBTTEFWRV9UWVBFX1BFUkkyKSB7 DQo+ID4gKwkJcmV0dXJuIHBlcmlfbWlfdHJhbnMoYnVzX2lkKTsNCj4gPiArDQo+ID4gKwl9IGVs c2UgaWYgKHNsYXZlX3R5cGUgPT0gU0xBVkVfVFlQRV9QRVJJX1BBUikgew0KPiA+ICsJCXJldHVy biBwZXJpX21pX3RyYW5zKGJ1c19pZCk7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJcmV0dXJuICJV TktOT1dOX01BU1RFUiI7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkIG1tMm5kX3Zp b19oYW5kbGVyKHZvaWQgX19pb21lbSAqaW5mcmFjZmcsDQo+ID4gKwkJCSAgICAgIHN0cnVjdCBt dGtfZGV2YXBjX3Zpb19pbmZvICp2aW9faW5mbywNCj4gPiArCQkJICAgICAgYm9vbCBtZHBfdmlv LCBib29sIGRpc3AyX3ZpbywgYm9vbCBtbXN5c192aW8pDQo+ID4gK3sNCj4gPiArCXUzMiB2aW9f c3RhLCB2aW9fZGJnLCBydzsNCj4gPiArCXUzMiB2aW9fc3RhX251bTsNCj4gPiArCXUzMiB2aW8w X29mZnNldDsNCj4gPiArCWNoYXIgbW1fc3RyWzY0XSA9IHswfTsNCj4gPiArCXZvaWQgX19pb21l bSAqcmVnOw0KPiA+ICsJaW50IGk7DQo+ID4gKw0KPiA+ICsJaWYgKCFpbmZyYWNmZykNCj4gPiAr CQlyZXR1cm47DQo+ID4gKw0KPiA+ICsJaWYgKG1kcF92aW8pIHsNCj4gPiArCQl2aW9fc3RhX251 bSA9IElORlJBQ0ZHX01EUF9WSU9fU1RBX05VTTsNCj4gPiArCQl2aW8wX29mZnNldCA9IElORlJB Q0ZHX01EUF9TRUNfVklPMF9PRkZTRVQ7DQo+ID4gKw0KPiA+ICsJCXN0cm5jcHkobW1fc3RyLCAi SU5GUkFDRkdfTURQX1NFQ19WSU8iLA0KPiA+ICsJCQlzaXplb2YoIklORlJBQ0ZHX01EUF9TRUNf VklPIikpOw0KPiA+ICsNCj4gPiArCX0gZWxzZSBpZiAobW1zeXNfdmlvKSB7DQo+ID4gKwkJdmlv X3N0YV9udW0gPSBJTkZSQUNGR19NTV9WSU9fU1RBX05VTTsNCj4gPiArCQl2aW8wX29mZnNldCA9 IElORlJBQ0ZHX01NX1NFQ19WSU8wX09GRlNFVDsNCj4gPiArDQo+ID4gKwkJc3RybmNweShtbV9z dHIsICJJTkZSQUNGR19NTV9TRUNfVklPIiwNCj4gPiArCQkJc2l6ZW9mKCJJTkZSQUNGR19NTV9T RUNfVklPIikpOw0KPiA+ICsNCj4gPiArCX0gZWxzZSB7DQo+ID4gKwkJcHJfZXJyKFBGWCAiJXM6 IHBhcmFtIGNoZWNrIGZhaWxlZCwgbWRwX3ZpbzolcywgZGlzcDJfdmlvOiVzLCBtbXN5c192aW86 JXNcbiIsDQo+ID4gKwkJICAgICAgIF9fZnVuY19fLCBtZHBfdmlvID8gInRydWUiIDogImZhbHNl IiwNCj4gPiArCQkgICAgICAgZGlzcDJfdmlvID8gInRydWUiIDogImZhbHNlIiwNCj4gPiArCQkg ICAgICAgbW1zeXNfdmlvID8gInRydWUiIDogImZhbHNlIik7DQo+ID4gKwkJcmV0dXJuOw0KPiA+ ICsJfQ0KPiA+ICsNCj4gPiArCS8qIEdldCBtbTJuZCB2aW9sYXRpb24gc3RhdHVzICovDQo+ID4g Kwlmb3IgKGkgPSAwOyBpIDwgdmlvX3N0YV9udW07IGkrKykgew0KPiA+ICsJCXJlZyA9IGluZnJh Y2ZnICsgdmlvMF9vZmZzZXQgKyBpICogNDsNCj4gPiArCQl2aW9fc3RhID0gcmVhZGwocmVnKTsN Cj4gPiArCQlpZiAodmlvX3N0YSkNCj4gPiArCQkJcHJfaW5mbyhQRlggIk1NIDJuZCB2aW9sYXRp b246ICVzJWQ6MHgleFxuIiwNCj4gPiArCQkJCW1tX3N0ciwgaSwgdmlvX3N0YSk7DQo+ID4gKwl9 DQo+ID4gKw0KPiA+ICsJLyogR2V0IG1tMm5kIHZpb2xhdGlvbiBhZGRyZXNzICovDQo+ID4gKwly ZWcgPSBpbmZyYWNmZyArIHZpbzBfb2Zmc2V0ICsgaSAqIDQ7DQo+ID4gKwl2aW9faW5mby0+dmlv X2FkZHIgPSByZWFkbChyZWcpOw0KPiA+ICsNCj4gPiArCS8qIEdldCBtbTJuZCB2aW9sYXRpb24g aW5mb3JtYXRpb24gKi8NCj4gPiArCXJlZyA9IGluZnJhY2ZnICsgdmlvMF9vZmZzZXQgKyAoaSAr IDEpICogNDsNCj4gPiArCXZpb19kYmcgPSByZWFkbChyZWcpOw0KPiA+ICsNCj4gPiArCXZpb19p bmZvLT5kb21haW5faWQgPSAodmlvX2RiZyAmIElORlJBQ0ZHX01NMk5EX1ZJT19ET01BSU5fTUFT SykgPj4NCj4gPiArCQlJTkZSQUNGR19NTTJORF9WSU9fRE9NQUlOX1NISUZUOw0KPiA+ICsNCj4g PiArCXZpb19pbmZvLT5tYXN0ZXJfaWQgPSAodmlvX2RiZyAmIElORlJBQ0ZHX01NMk5EX1ZJT19J RF9NQVNLKSA+Pg0KPiA+ICsJCUlORlJBQ0ZHX01NMk5EX1ZJT19JRF9TSElGVDsNCj4gPiArDQo+ ID4gKwlydyA9ICh2aW9fZGJnICYgSU5GUkFDRkdfTU0yTkRfVklPX1JXX01BU0spID4+DQo+ID4g KwkJSU5GUkFDRkdfTU0yTkRfVklPX1JXX1NISUZUOw0KPiA+ICsJdmlvX2luZm8tPnJlYWQgPSAo cncgPT0gMCk7DQo+ID4gKwl2aW9faW5mby0+d3JpdGUgPSAocncgPT0gMSk7DQo+ID4gK30NCj4g PiArDQo+ID4gK3N0YXRpYyB1MzIgbXQ2ODczX3NoaWZ0X2dyb3VwX2dldChpbnQgc2xhdmVfdHlw ZSwgdTMyIHZpb19pZHgpDQo+ID4gK3sNCj4gPiArCWlmIChzbGF2ZV90eXBlID09IFNMQVZFX1RZ UEVfSU5GUkEpIHsNCj4gPiArCQlpZiAoKHZpb19pZHggPj0gMCAmJiB2aW9faWR4IDw9IDgpIHx8 IHZpb19pZHggPT0gMzU1KQ0KPiA+ICsJCQlyZXR1cm4gMDsNCj4gPiArCQllbHNlIGlmICgodmlv X2lkeCA+PSA5ICYmIHZpb19pZHggPD0gMTQpIHx8IHZpb19pZHggPT0gMzU2KQ0KPiA+ICsJCQly ZXR1cm4gMTsNCj4gPiArCQllbHNlIGlmICgodmlvX2lkeCA+PSAxNSAmJiB2aW9faWR4IDw9IDE5 KSB8fCB2aW9faWR4ID09IDM1NykNCj4gPiArCQkJcmV0dXJuIDI7DQo+ID4gKwkJZWxzZSBpZiAo KHZpb19pZHggPj0gMjAgJiYgdmlvX2lkeCA8PSAyMSkgfHwgdmlvX2lkeCA9PSAzNTgpDQo+ID4g KwkJCXJldHVybiAzOw0KPiA+ICsJCWVsc2UgaWYgKHZpb19pZHggPj0gMjIgJiYgdmlvX2lkeCA8 PSAzNDcpDQo+ID4gKwkJCXJldHVybiA0Ow0KPiA+ICsJCWVsc2UgaWYgKCh2aW9faWR4ID49IDM0 OCAmJiB2aW9faWR4IDw9IDM1NCkgfHwNCj4gPiArCQkJICh2aW9faWR4ID49IDM1OSAmJiB2aW9f aWR4IDw9IDM2NSkgfHwNCj4gPiArCQkJIHZpb19pZHggPT0gMzY2KQ0KPiA+ICsJCQlyZXR1cm4g NTsNCj4gPiArDQo+ID4gKwkJcHJfZXJyKFBGWCAiJXM6JWQgV3JvbmcgdmlvX2lkeDoweCV4XG4i LA0KPiA+ICsJCSAgICAgICBfX2Z1bmNfXywgX19MSU5FX18sIHZpb19pZHgpOw0KPiA+ICsNCj4g PiArCX0gZWxzZSBpZiAoc2xhdmVfdHlwZSA9PSBTTEFWRV9UWVBFX1BFUkkpIHsNCj4gPiArCQlp ZiAodmlvX2lkeCA+PSAwICYmIHZpb19pZHggPD0gNCkNCj4gPiArCQkJcmV0dXJuIDA7DQo+ID4g KwkJZWxzZSBpZiAodmlvX2lkeCA+PSA1ICYmIHZpb19pZHggPD0gNikNCj4gPiArCQkJcmV0dXJu IDE7DQo+ID4gKwkJZWxzZSBpZiAoKHZpb19pZHggPj0gNyAmJiB2aW9faWR4IDw9IDM4KSB8fCB2 aW9faWR4ID09IDE4NyB8fA0KPiA+ICsJCQkgKHZpb19pZHggPj0gMTg4ICYmIHZpb19pZHggPD0g MjE5KSB8fA0KPiA+ICsJCQkgdmlvX2lkeCA9PSAyODYpDQo+ID4gKwkJCXJldHVybiAyOw0KPiA+ ICsJCWVsc2UgaWYgKCh2aW9faWR4ID49IDM5ICYmIHZpb19pZHggPD0gNjEpIHx8IHZpb19pZHgg PT0gMjIwKQ0KPiA+ICsJCQlyZXR1cm4gMzsNCj4gPiArCQllbHNlIGlmICgodmlvX2lkeCA+PSA2 MiAmJiB2aW9faWR4IDw9IDcyKSB8fCB2aW9faWR4ID09IDIyMSkNCj4gPiArCQkJcmV0dXJuIDQ7 DQo+ID4gKwkJZWxzZSBpZiAoKHZpb19pZHggPj0gNzMgJiYgdmlvX2lkeCA8PSA3NCkgfHwgdmlv X2lkeCA9PSAyMjIpDQo+ID4gKwkJCXJldHVybiA1Ow0KPiA+ICsJCWVsc2UgaWYgKHZpb19pZHgg PT0gNzUgfHwgdmlvX2lkeCA9PSAyMjMpDQo+ID4gKwkJCXJldHVybiA2Ow0KPiA+ICsJCWVsc2Ug aWYgKCh2aW9faWR4ID49IDc2ICYmIHZpb19pZHggPD0gMTE4KSB8fCB2aW9faWR4ID09IDIyNCkN Cj4gPiArCQkJcmV0dXJuIDc7DQo+ID4gKwkJZWxzZSBpZiAoKHZpb19pZHggPj0gMTE5ICYmIHZp b19pZHggPD0gMTIxKSB8fCB2aW9faWR4ID09IDIyNSkNCj4gPiArCQkJcmV0dXJuIDg7DQo+ID4g KwkJaWYgKHZpb19pZHggPj0gMTIyICYmIHZpb19pZHggPD0gMTI1KQ0KPiA+ICsJCQlyZXR1cm4g OTsNCj4gPiArCQllbHNlIGlmICh2aW9faWR4ID09IDEyNiB8fCAodmlvX2lkeCA+PSAyMjYgJiYg dmlvX2lkeCA8PSAyMjcpIHx8DQo+ID4gKwkJCSB2aW9faWR4ID09IDI4NykNCj4gPiArCQkJcmV0 dXJuIDEwOw0KPiA+ICsJCWlmICh2aW9faWR4ID49IDEyNyAmJiB2aW9faWR4IDw9IDEyOCkNCj4g PiArCQkJcmV0dXJuIDExOw0KPiA+ICsJCWlmICh2aW9faWR4ID49IDEyOSAmJiB2aW9faWR4IDw9 IDEzMCkNCj4gPiArCQkJcmV0dXJuIDEyOw0KPiA+ICsJCWVsc2UgaWYgKCh2aW9faWR4ID49IDEz MSAmJiB2aW9faWR4IDw9IDE0MSkgfHwNCj4gPiArCQkJICh2aW9faWR4ID49IDIyOCAmJiB2aW9f aWR4IDw9IDIzOCkgfHwNCj4gPiArCQkJIHZpb19pZHggPT0gMjg4KQ0KPiA+ICsJCQlyZXR1cm4g MTM7DQo+ID4gKwkJZWxzZSBpZiAoKHZpb19pZHggPj0gMTQyICYmIHZpb19pZHggPD0gMTQzKSB8 fA0KPiA+ICsJCQkgKHZpb19pZHggPj0gMjM5ICYmIHZpb19pZHggPD0gMjQwKSB8fA0KPiA+ICsJ CQkgdmlvX2lkeCA9PSAyODkpDQo+ID4gKwkJCXJldHVybiAxNDsNCj4gPiArCQllbHNlIGlmICgo dmlvX2lkeCA+PSAxNDQgJiYgdmlvX2lkeCA8PSAxNzMpIHx8IHZpb19pZHggPT0gMjQxIHx8DQo+ ID4gKwkJCSAodmlvX2lkeCA+PSAyNDIgJiYgdmlvX2lkeCA8PSAyNzEpIHx8DQo+ID4gKwkJCSB2 aW9faWR4ID09IDI5MCkNCj4gPiArCQkJcmV0dXJuIDE1Ow0KPiA+ICsJCWVsc2UgaWYgKCh2aW9f aWR4ID49IDE3NCAmJiB2aW9faWR4IDw9IDE4NikgfHwgdmlvX2lkeCA9PSAyNzIgfHwNCj4gPiAr CQkJICh2aW9faWR4ID49IDI3MyAmJiB2aW9faWR4IDw9IDI4NSkgfHwNCj4gPiArCQkJIHZpb19p ZHggPT0gMjkxKQ0KPiA+ICsJCQlyZXR1cm4gMTY7DQo+ID4gKw0KPiA+ICsJCXByX2VycihQRlgg IiVzOiVkIFdyb25nIHZpb19pZHg6MHgleFxuIiwNCj4gPiArCQkgICAgICAgX19mdW5jX18sIF9f TElORV9fLCB2aW9faWR4KTsNCj4gPiArDQo+ID4gKwl9IGVsc2UgaWYgKHNsYXZlX3R5cGUgPT0g U0xBVkVfVFlQRV9QRVJJMikgew0KPiA+ICsJCWlmICgodmlvX2lkeCA+PSAwICYmIHZpb19pZHgg PD0gMTIpIHx8IHZpb19pZHggPT0gMTE3IHx8DQo+ID4gKwkJICAgICh2aW9faWR4ID49IDExOCAm JiB2aW9faWR4IDw9IDEzMCkgfHwNCj4gPiArCQkgICAgdmlvX2lkeCA9PSAyMzQpDQo+ID4gKwkJ CXJldHVybiAwOw0KPiA+ICsJCWVsc2UgaWYgKHZpb19pZHggPj0gMTMgJiYgdmlvX2lkeCA8PSAx NikNCj4gPiArCQkJcmV0dXJuIDE7DQo+ID4gKwkJZWxzZSBpZiAodmlvX2lkeCA+PSAxNyAmJiB2 aW9faWR4IDw9IDIwKQ0KPiA+ICsJCQlyZXR1cm4gMjsNCj4gPiArCQllbHNlIGlmICgodmlvX2lk eCA+PSAyMSAmJiB2aW9faWR4IDw9IDM2KSB8fCB2aW9faWR4ID09IDEzMSB8fA0KPiA+ICsJCQkg KHZpb19pZHggPj0gMTMyICYmIHZpb19pZHggPD0gMTQ3KSB8fA0KPiA+ICsJCQkgdmlvX2lkeCA9 PSAyMzUpDQo+ID4gKwkJCXJldHVybiAzOw0KPiA+ICsJCWVsc2UgaWYgKCh2aW9faWR4ID49IDM3 ICYmIHZpb19pZHggPD0gNDQpIHx8IHZpb19pZHggPT0gMTQ4IHx8DQo+ID4gKwkJCSAodmlvX2lk eCA+PSAxNDkgJiYgdmlvX2lkeCA8PSAxNTYpIHx8DQo+ID4gKwkJCSB2aW9faWR4ID09IDIzNikN Cj4gPiArCQkJcmV0dXJuIDQ7DQo+ID4gKwkJZWxzZSBpZiAoKHZpb19pZHggPj0gNDUgJiYgdmlv X2lkeCA8PSA2MCkgfHwgdmlvX2lkeCA9PSAxNTcgfHwNCj4gPiArCQkJICh2aW9faWR4ID49IDE1 OCAmJiB2aW9faWR4IDw9IDE3MykgfHwNCj4gPiArCQkJIHZpb19pZHggPT0gMjM3KQ0KPiA+ICsJ CQlyZXR1cm4gNTsNCj4gPiArCQllbHNlIGlmICgodmlvX2lkeCA+PSA2MSAmJiB2aW9faWR4IDw9 IDc2KSB8fCB2aW9faWR4ID09IDE3NCB8fA0KPiA+ICsJCQkgKHZpb19pZHggPj0gMTc1ICYmIHZp b19pZHggPD0gMTkwKSB8fA0KPiA+ICsJCQkgdmlvX2lkeCA9PSAyMzgpDQo+ID4gKwkJCXJldHVy biA2Ow0KPiA+ICsJCWVsc2UgaWYgKCh2aW9faWR4ID49IDc3ICYmIHZpb19pZHggPD0gODQpIHx8 IHZpb19pZHggPT0gMTkxIHx8DQo+ID4gKwkJCSAodmlvX2lkeCA+PSAxOTIgJiYgdmlvX2lkeCA8 PSAxOTkpIHx8DQo+ID4gKwkJCSB2aW9faWR4ID09IDIzOSkNCj4gPiArCQkJcmV0dXJuIDc7DQo+ ID4gKwkJZWxzZSBpZiAoKHZpb19pZHggPj0gODUgJiYgdmlvX2lkeCA8PSAxMDUpIHx8IHZpb19p ZHggPT0gMjAwIHx8DQo+ID4gKwkJCSAodmlvX2lkeCA+PSAyMDEgJiYgdmlvX2lkeCA8PSAyMjEp IHx8DQo+ID4gKwkJCSB2aW9faWR4ID09IDI0MCkNCj4gPiArCQkJcmV0dXJuIDg7DQo+ID4gKwkJ ZWxzZSBpZiAoKHZpb19pZHggPj0gMTA2ICYmIHZpb19pZHggPD0gMTE2KSB8fCB2aW9faWR4ID09 IDIyMiB8fA0KPiA+ICsJCQkgKHZpb19pZHggPj0gMjIzICYmIHZpb19pZHggPD0gMjMzKSB8fA0K PiA+ICsJCQkgdmlvX2lkeCA9PSAyNDEpDQo+ID4gKwkJCXJldHVybiA5Ow0KPiA+ICsNCj4gPiAr CQlwcl9lcnIoUEZYICIlczolZCBXcm9uZyB2aW9faWR4OjB4JXhcbiIsDQo+ID4gKwkJICAgICAg IF9fZnVuY19fLCBfX0xJTkVfXywgdmlvX2lkeCk7DQo+ID4gKw0KPiA+ICsJfSBlbHNlIGlmIChz bGF2ZV90eXBlID09IFNMQVZFX1RZUEVfUEVSSV9QQVIpIHsNCj4gPiArCQlpZiAoKHZpb19pZHgg Pj0gMCAmJiB2aW9faWR4IDw9IDIzKSB8fCB2aW9faWR4ID09IDI3IHx8DQo+ID4gKwkJICAgICh2 aW9faWR4ID49IDI4ICYmIHZpb19pZHggPD0gNTEpIHx8DQo+ID4gKwkJICAgIHZpb19pZHggPT0g NTYpDQo+ID4gKwkJCXJldHVybiAwOw0KPiA+ICsJCWVsc2UgaWYgKCh2aW9faWR4ID49IDI0ICYm IHZpb19pZHggPD0gMjYpIHx8IHZpb19pZHggPT0gNTIgfHwNCj4gPiArCQkJICh2aW9faWR4ID49 IDUzICYmIHZpb19pZHggPD0gNTUpIHx8DQo+ID4gKwkJCSB2aW9faWR4ID09IDU3KQ0KPiA+ICsJ CQlyZXR1cm4gMTsNCj4gPiArDQo+ID4gKwkJcHJfZXJyKFBGWCAiJXM6JWQgV3JvbmcgdmlvX2lk eDoweCV4XG4iLA0KPiA+ICsJCSAgICAgICBfX2Z1bmNfXywgX19MSU5FX18sIHZpb19pZHgpOw0K PiA+ICsNCj4gPiArCX0gZWxzZSB7DQo+ID4gKwkJcHJfZXJyKFBGWCAiJXM6JWQgV3Jvbmcgc2xh dmVfdHlwZToweCV4XG4iLA0KPiA+ICsJCSAgICAgICBfX2Z1bmNfXywgX19MSU5FX18sIHNsYXZl X3R5cGUpOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCXJldHVybiAzMTsNCj4gPiArfQ0KPiA+ICsN Cj4gPiArc3RhdGljIHN0cnVjdCBtdGtfZGV2YXBjX2RiZ19zdGF0dXMgbXQ2ODczX2RldmFwY19k Ymdfc3RhdCA9IHsNCj4gPiArCS5lbmFibGVfdXQgPSBQTEFUX0RCR19VVF9ERUZBVUxULA0KPiA+ ICsJLmVuYWJsZV9kYXBjID0gUExBVF9EQkdfREFQQ19ERUZBVUxULA0KPiA+ICt9Ow0KPiA+ICsN Cj4gPiArc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzbGF2ZV90eXBlX3RvX3N0cltdID0gew0K PiA+ICsJIlNMQVZFX1RZUEVfSU5GUkEiLA0KPiA+ICsJIlNMQVZFX1RZUEVfUEVSSSIsDQo+ID4g KwkiU0xBVkVfVFlQRV9QRVJJMiIsDQo+ID4gKwkiU0xBVkVfVFlQRV9QRVJJX1BBUiIsDQo+ID4g KwkiV1JPTkdfU0xBVkVfVFlQRSIsDQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IG10 a192aW9fbWFza19zdGFfbnVtW10gPSB7DQo+ID4gKwlWSU9fTUFTS19TVEFfTlVNX0lORlJBLA0K PiA+ICsJVklPX01BU0tfU1RBX05VTV9QRVJJLA0KPiA+ICsJVklPX01BU0tfU1RBX05VTV9QRVJJ MiwNCj4gPiArCVZJT19NQVNLX1NUQV9OVU1fUEVSSV9QQVIsDQo+ID4gK307DQo+ID4gKw0KPiA+ ICtzdGF0aWMgc3RydWN0IG10a19kZXZhcGNfdmlvX2luZm8gbXQ2ODczX2RldmFwY192aW9faW5m byA9IHsNCj4gPiArCS52aW9fbWFza19zdGFfbnVtID0gbXRrX3Zpb19tYXNrX3N0YV9udW0sDQo+ ID4gKwkuc3JhbXJvbV92aW9faWR4ID0gU1JBTVJPTV9WSU9fSU5ERVgsDQo+ID4gKwkubWRwX3Zp b19pZHggPSBNRFBfVklPX0lOREVYLA0KPiA+ICsJLmRpc3AyX3Zpb19pZHggPSBNRFBfVklPX0lO REVYLA0KPiA+ICsJLm1tc3lzX3Zpb19pZHggPSBNTVNZU19WSU9fSU5ERVgsDQo+ID4gKwkuc3Jh bXJvbV9zbHZfdHlwZSA9IFNSQU1ST01fU0xBVkVfVFlQRSwNCj4gPiArCS5tbTJuZF9zbHZfdHlw ZSA9IE1NMk5EX1NMQVZFX1RZUEUsDQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdGF0aWMgY29uc3Qg c3RydWN0IG10a19pbmZyYV92aW9fZGJnX2Rlc2MgbXQ2ODczX3Zpb19kYmdzID0gew0KPiA+ICsJ LnZpb19kYmdfbXN0aWQgPSBJTkZSQV9WSU9fREJHX01TVElELA0KPiA+ICsJLnZpb19kYmdfbXN0 aWRfc3RhcnRfYml0ID0gSU5GUkFfVklPX0RCR19NU1RJRF9TVEFSVF9CSVQsDQo+ID4gKwkudmlv X2RiZ19kbW5pZCA9IElORlJBX1ZJT19EQkdfRE1OSUQsDQo+ID4gKwkudmlvX2RiZ19kbW5pZF9z dGFydF9iaXQgPSBJTkZSQV9WSU9fREJHX0RNTklEX1NUQVJUX0JJVCwNCj4gPiArCS52aW9fZGJn X3dfdmlvID0gSU5GUkFfVklPX0RCR19XX1ZJTywNCj4gPiArCS52aW9fZGJnX3dfdmlvX3N0YXJ0 X2JpdCA9IElORlJBX1ZJT19EQkdfV19WSU9fU1RBUlRfQklULA0KPiA+ICsJLnZpb19kYmdfcl92 aW8gPSBJTkZSQV9WSU9fREJHX1JfVklPLA0KPiA+ICsJLnZpb19kYmdfcl92aW9fc3RhcnRfYml0 ID0gSU5GUkFfVklPX0RCR19SX1ZJT19TVEFSVF9CSVQsDQo+ID4gKwkudmlvX2FkZHJfaGlnaCA9 IElORlJBX1ZJT19BRERSX0hJR0gsDQo+ID4gKwkudmlvX2FkZHJfaGlnaF9zdGFydF9iaXQgPSBJ TkZSQV9WSU9fQUREUl9ISUdIX1NUQVJUX0JJVCwNCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0YXRp YyBjb25zdCBzdHJ1Y3QgbXRrX3NyYW1yb21fc2VjX3Zpb19kZXNjIG10Njg3M19zcmFtcm9tX3Nl Y192aW9zID0gew0KPiA+ICsJLnZpb19pZF9tYXNrID0gU1JBTVJPTV9TRUNfVklPX0lEX01BU0ss DQo+ID4gKwkudmlvX2lkX3NoaWZ0ID0gU1JBTVJPTV9TRUNfVklPX0lEX1NISUZULA0KPiA+ICsJ LnZpb19kb21haW5fbWFzayA9IFNSQU1ST01fU0VDX1ZJT19ET01BSU5fTUFTSywNCj4gPiArCS52 aW9fZG9tYWluX3NoaWZ0ID0gU1JBTVJPTV9TRUNfVklPX0RPTUFJTl9TSElGVCwNCj4gPiArCS52 aW9fcndfbWFzayA9IFNSQU1ST01fU0VDX1ZJT19SV19NQVNLLA0KPiA+ICsJLnZpb19yd19zaGlm dCA9IFNSQU1ST01fU0VDX1ZJT19SV19TSElGVCwNCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0YXRp YyBjb25zdCB1MzIgbXQ2ODczX2RldmFwY19wZHNbXSA9IHsNCj4gPiArCVBEX1ZJT19NQVNLX09G RlNFVCwNCj4gPiArCVBEX1ZJT19TVEFfT0ZGU0VULA0KPiA+ICsJUERfVklPX0RCRzBfT0ZGU0VU LA0KPiA+ICsJUERfVklPX0RCRzFfT0ZGU0VULA0KPiA+ICsJUERfVklPX0RCRzJfT0ZGU0VULA0K PiA+ICsJUERfQVBDX0NPTl9PRkZTRVQsDQo+ID4gKwlQRF9TSElGVF9TVEFfT0ZGU0VULA0KPiA+ ICsJUERfU0hJRlRfU0VMX09GRlNFVCwNCj4gPiArCVBEX1NISUZUX0NPTl9PRkZTRVQsDQo+ID4g K307DQo+ID4gKw0KPiA+ICtzdGF0aWMgc3RydWN0IG10a19kZXZhcGNfc29jIG10Njg3M19kYXRh ID0gew0KPiA+ICsJLmRiZ19zdGF0ID0gJm10Njg3M19kZXZhcGNfZGJnX3N0YXQsDQo+ID4gKwku c2xhdmVfdHlwZV9hcnIgPSBzbGF2ZV90eXBlX3RvX3N0ciwNCj4gPiArCS5zbGF2ZV90eXBlX251 bSA9IFNMQVZFX1RZUEVfTlVNLA0KPiA+ICsJLmRldmljZV9pbmZvW1NMQVZFX1RZUEVfSU5GUkFd ID0gbXQ2ODczX2RldmljZXNfaW5mcmEsDQo+ID4gKwkuZGV2aWNlX2luZm9bU0xBVkVfVFlQRV9Q RVJJXSA9IG10Njg3M19kZXZpY2VzX3BlcmksDQo+ID4gKwkuZGV2aWNlX2luZm9bU0xBVkVfVFlQ RV9QRVJJMl0gPSBtdDY4NzNfZGV2aWNlc19wZXJpMiwNCj4gPiArCS5kZXZpY2VfaW5mb1tTTEFW RV9UWVBFX1BFUklfUEFSXSA9IG10Njg3M19kZXZpY2VzX3BlcmlfcGFyLA0KPiA+ICsJLm5kZXZp Y2VzID0gbXRrNjg3M19kZXZpY2VzX251bSwNCj4gPiArCS52aW9faW5mbyA9ICZtdDY4NzNfZGV2 YXBjX3Zpb19pbmZvLA0KPiA+ICsJLnZpb19kYmdzID0gJm10Njg3M192aW9fZGJncywNCj4gPiAr CS5zcmFtcm9tX3NlY192aW9zID0gJm10Njg3M19zcmFtcm9tX3NlY192aW9zLA0KPiA+ICsJLmRl dmFwY19wZHMgPSBtdDY4NzNfZGV2YXBjX3BkcywNCj4gPiArCS5tYXN0ZXJfZ2V0ID0gJm10Njg3 M19idXNfaWRfdG9fbWFzdGVyLA0KPiA+ICsJLm1tMm5kX3Zpb19oYW5kbGVyID0gJm1tMm5kX3Zp b19oYW5kbGVyLA0KPiA+ICsJLnNoaWZ0X2dyb3VwX2dldCA9IG10Njg3M19zaGlmdF9ncm91cF9n ZXQsDQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9p ZCBtdDY4NzNfZGV2YXBjX2R0X21hdGNoW10gPSB7DQo+ID4gKwl7IC5jb21wYXRpYmxlID0gIm1l ZGlhdGVrLG10Njg3My1kZXZhcGMiIH0sDQo+ID4gKwl7fSwNCj4gPiArfTsNCj4gPiArDQo+ID4g K3N0YXRpYyBpbnQgbXQ2ODczX2RldmFwY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2KQ0KPiA+ICt7DQo+ID4gKwlyZXR1cm4gbXRrX2RldmFwY19wcm9iZShwZGV2LCAmbXQ2ODcz X2RhdGEpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IG10Njg3M19kZXZhcGNfcmVt b3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikNCj4gPiArew0KPiA+ICsJcmV0dXJuIG10 a19kZXZhcGNfcmVtb3ZlKGRldik7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBzdHJ1Y3Qg cGxhdGZvcm1fZHJpdmVyIG10Njg3M19kZXZhcGNfZHJpdmVyID0gew0KPiA+ICsJLnByb2JlID0g bXQ2ODczX2RldmFwY19wcm9iZSwNCj4gPiArCS5yZW1vdmUgPSBtdDY4NzNfZGV2YXBjX3JlbW92 ZSwNCj4gPiArCS5kcml2ZXIgPSB7DQo+ID4gKwkJLm5hbWUgPSBLQlVJTERfTU9ETkFNRSwNCj4g PiArCQkub2ZfbWF0Y2hfdGFibGUgPSBtdDY4NzNfZGV2YXBjX2R0X21hdGNoLA0KPiA+ICsJfSwN Cj4gPiArfTsNCj4gPiArDQo+ID4gK21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIobXQ2ODczX2RldmFw Y19kcml2ZXIpOw0KPiA+ICsNCj4gPiArTU9EVUxFX0RFU0NSSVBUSU9OKCJNZWRpYXRlayBNVDY4 NzMgRGV2aWNlIEFQQyBEcml2ZXIiKTsNCj4gPiArTU9EVUxFX0FVVEhPUigiTmVhbCBMaXUgPG5l YWwubGl1QG1lZGlhdGVrLmNvbT4iKTsNCj4gPiArTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOw0KPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL3NvYy9tZWRpYXRlay9kZXZhcGMvZGV2YXBjLW10Njg3My5o IGIvZHJpdmVycy9zb2MvbWVkaWF0ZWsvZGV2YXBjL2RldmFwYy1tdDY4NzMuaA0KPiA+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMC4uMTZiZTA5ZQ0KPiA+IC0tLSAvZGV2 L251bGwNCj4gPiArKysgYi9kcml2ZXJzL3NvYy9tZWRpYXRlay9kZXZhcGMvZGV2YXBjLW10Njg3 My5oDQo+ID4gQEAgLTAsMCArMSwxMTEgQEANCj4gPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEdQTC0yLjAgKi8NCj4gPiArLyoNCj4gPiArICogQ29weXJpZ2h0IChDKSAyMDIwIE1lZGlh VGVrIEluYy4NCj4gPiArICovDQo+ID4gKw0KPiA+ICsjaWZuZGVmIF9fREVWQVBDX01UNjg3M19I X18NCj4gPiArI2RlZmluZSBfX0RFVkFQQ19NVDY4NzNfSF9fDQo+ID4gKw0KPiA+ICsvKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqDQo+ID4gKyAqIFZBUklBQkxFIERFRklOSVRJT04NCj4gPiArICoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8NCj4gPiArLyogZGJnIHN0YXR1cyBkZWZhdWx0IHNldHRpbmcgKi8N Cj4gPiArI2RlZmluZSBQTEFUX0RCR19VVF9ERUZBVUxUCQlmYWxzZQ0KPiA+ICsjZGVmaW5lIFBM QVRfREJHX0RBUENfREVGQVVMVAkJZmFsc2UNCj4gPiArDQo+ID4gKy8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioNCj4gPiArICogU1RSVUNUVVJFIERFRklOSVRJT04NCj4gPiArICoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8NCj4gPiArZW51bSBERVZBUENfU0xBVkVfVFlQRSB7DQo+ID4gKwlTTEFWRV9UWVBF X0lORlJBID0gMCwNCj4gPiArCVNMQVZFX1RZUEVfUEVSSSwNCj4gPiArCVNMQVZFX1RZUEVfUEVS STIsDQo+ID4gKwlTTEFWRV9UWVBFX1BFUklfUEFSLA0KPiA+ICsJU0xBVkVfVFlQRV9OVU0sDQo+ ID4gK307DQo+ID4gKw0KPiA+ICtlbnVtIERFVkFQQ19WSU9fTUFTS19TVEFfTlVNIHsNCj4gPiAr CVZJT19NQVNLX1NUQV9OVU1fSU5GUkEgPSAxMiwNCj4gPiArCVZJT19NQVNLX1NUQV9OVU1fUEVS SSA9IDEwLA0KPiA+ICsJVklPX01BU0tfU1RBX05VTV9QRVJJMiA9IDgsDQo+ID4gKwlWSU9fTUFT S19TVEFfTlVNX1BFUklfUEFSID0gMiwNCj4gPiArfTsNCj4gPiArDQo+ID4gK2VudW0gREVWQVBD X1ZJT19TTEFWRV9OVU0gew0KPiA+ICsJVklPX1NMQVZFX05VTV9JTkZSQSA9IDM2NiwNCj4gPiAr CVZJT19TTEFWRV9OVU1fUEVSSSA9IDI4NCwNCj4gPiArCVZJT19TTEFWRV9OVU1fUEVSSTIgPSAy NDcsDQo+ID4gKwlWSU9fU0xBVkVfTlVNX1BFUklfUEFSID0gNTgsDQo+ID4gK307DQo+ID4gKw0K PiA+ICtlbnVtIERFVkFQQ19QRF9PRkZTRVQgew0KPiA+ICsJUERfVklPX01BU0tfT0ZGU0VUID0g MHgwLA0KPiA+ICsJUERfVklPX1NUQV9PRkZTRVQgPSAweDQwMCwNCj4gPiArCVBEX1ZJT19EQkcw X09GRlNFVCA9IDB4OTAwLA0KPiA+ICsJUERfVklPX0RCRzFfT0ZGU0VUID0gMHg5MDQsDQo+ID4g KwlQRF9WSU9fREJHMl9PRkZTRVQgPSAweDkwOCwNCj4gPiArCVBEX0FQQ19DT05fT0ZGU0VUID0g MHhGMDAsDQo+ID4gKwlQRF9TSElGVF9TVEFfT0ZGU0VUID0gMHhGMjAsDQo+ID4gKwlQRF9TSElG VF9TRUxfT0ZGU0VUID0gMHhGMzAsDQo+ID4gKwlQRF9TSElGVF9DT05fT0ZGU0VUID0gMHhGMTAs DQo+ID4gK307DQo+ID4gKw0KPiA+ICsjZGVmaW5lIFNSQU1ST01fU0xBVkVfVFlQRQlTTEFWRV9U WVBFX0lORlJBCS8qIEluZnJhICovDQo+ID4gKyNkZWZpbmUgTU0yTkRfU0xBVkVfVFlQRQlTTEFW RV9UWVBFX1BFUkkJCS8qIFBlcmkgKi8NCj4gPiArDQo+ID4gK2VudW0gT1RIRVJfVFlQRVNfSU5E RVggew0KPiA+ICsJU1JBTVJPTV9WSU9fSU5ERVggPSAzNjcsDQo+ID4gKwlDT05OX1ZJT19JTkRF WCA9IDc1LCAvKiBzdGFydHMgZnJvbSAweDE4ICovDQo+ID4gKwlNRFBfVklPX0lOREVYID0gMjky LA0KPiA+ICsJTU1TWVNfVklPX0lOREVYID0gMjk0LA0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArZW51 bSBJTkZSQUNGR19NTTJORF9WSU9fTlVNIHsNCj4gPiArCUlORlJBQ0ZHX01NX1ZJT19TVEFfTlVN ID0gMiwNCj4gPiArCUlORlJBQ0ZHX01EUF9WSU9fU1RBX05VTSA9IDgsDQo+ID4gK307DQo+ID4g Kw0KPiA+ICtlbnVtIElORlJBQ0ZHX01NMk5EX09GRlNFVCB7DQo+ID4gKwlJTkZSQUNGR19NTV9T RUNfVklPMF9PRkZTRVQgPSAweEIzMCwNCj4gPiArCUlORlJBQ0ZHX01EUF9TRUNfVklPMF9PRkZT RVQgPSAweEI0MCwNCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0cnVjdCBJTkZSQUFYSV9JRF9JTkZP IHsNCj4gPiArCWNvbnN0IGNoYXIJKm1hc3RlcjsNCj4gPiArCXUzMgkJYnVzX2lkOw0KPiA+ICsJ dTMyCQltYXNrOw0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0K PiA+ICsgKiBQTEFURk9STSBERUZJTkFUSU9ODQo+ID4gKyAqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov DQo+ID4gKw0KPiA+ICsvKiBGb3IgSW5mcmEgVklPX0RCRyAqLw0KPiA+ICsjZGVmaW5lIElORlJB X1ZJT19EQkdfTVNUSUQJCQkweEZGRkZGRkZGDQo+ID4gKyNkZWZpbmUgSU5GUkFfVklPX0RCR19N U1RJRF9TVEFSVF9CSVQJCTANCj4gPiArI2RlZmluZSBJTkZSQV9WSU9fREJHX0RNTklECQkJMHgw MDAwMDAzRg0KPiA+ICsjZGVmaW5lIElORlJBX1ZJT19EQkdfRE1OSURfU1RBUlRfQklUCQkwDQo+ ID4gKyNkZWZpbmUgSU5GUkFfVklPX0RCR19XX1ZJTwkJCTB4MDAwMDAwNDANCj4gPiArI2RlZmlu ZSBJTkZSQV9WSU9fREJHX1dfVklPX1NUQVJUX0JJVAkJNg0KPiA+ICsjZGVmaW5lIElORlJBX1ZJ T19EQkdfUl9WSU8JCQkweDAwMDAwMDgwDQo+ID4gKyNkZWZpbmUgSU5GUkFfVklPX0RCR19SX1ZJ T19TVEFSVF9CSVQJCTcNCj4gPiArI2RlZmluZSBJTkZSQV9WSU9fQUREUl9ISUdICQkJMHgwMDAw MEYwMA0KPiA+ICsjZGVmaW5lIElORlJBX1ZJT19BRERSX0hJR0hfU1RBUlRfQklUCQk4DQo+ID4g Kw0KPiA+ICsvKiBGb3IgU1JBTVJPTSBWSU8gKi8NCj4gPiArI2RlZmluZSBTUkFNUk9NX1NFQ19W SU9fSURfTUFTSwkJCTB4MDBGRkZGMDANCj4gPiArI2RlZmluZSBTUkFNUk9NX1NFQ19WSU9fSURf U0hJRlQJCTgNCj4gPiArI2RlZmluZSBTUkFNUk9NX1NFQ19WSU9fRE9NQUlOX01BU0sJCTB4MEYw MDAwMDANCj4gPiArI2RlZmluZSBTUkFNUk9NX1NFQ19WSU9fRE9NQUlOX1NISUZUCQkyNA0KPiA+ ICsjZGVmaW5lIFNSQU1ST01fU0VDX1ZJT19SV19NQVNLCQkJMHg4MDAwMDAwMA0KPiA+ICsjZGVm aW5lIFNSQU1ST01fU0VDX1ZJT19SV19TSElGVAkJMzENCj4gPiArDQo+ID4gKy8qIEZvciBNTSAy bmQgVklPICovDQo+ID4gKyNkZWZpbmUgSU5GUkFDRkdfTU0yTkRfVklPX0RPTUFJTl9NQVNLCQkw eDAwMDAwMDMwDQo+ID4gKyNkZWZpbmUgSU5GUkFDRkdfTU0yTkRfVklPX0RPTUFJTl9TSElGVAkJ NA0KPiA+ICsjZGVmaW5lIElORlJBQ0ZHX01NMk5EX1ZJT19JRF9NQVNLCQkweDAwRkZGRjAwDQo+ ID4gKyNkZWZpbmUgSU5GUkFDRkdfTU0yTkRfVklPX0lEX1NISUZUCQk4DQo+ID4gKyNkZWZpbmUg SU5GUkFDRkdfTU0yTkRfVklPX1JXX01BU0sJCTB4MDEwMDAwMDANCj4gPiArI2RlZmluZSBJTkZS QUNGR19NTTJORF9WSU9fUldfU0hJRlQJCTI0DQo+ID4gKw0KPiA+ICsjZW5kaWYgLyogX19ERVZB UENfTVQ2ODczX0hfXyAqLw0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3NvYy9tZWRpYXRlay9k ZXZhcGMvZGV2YXBjLW10ay1tdWx0aS1hby5jIGIvZHJpdmVycy9zb2MvbWVkaWF0ZWsvZGV2YXBj L2RldmFwYy1tdGstbXVsdGktYW8uYw0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5k ZXggMDAwMDAwMC4uNmM0YThlYw0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9kcml2ZXJz L3NvYy9tZWRpYXRlay9kZXZhcGMvZGV2YXBjLW10ay1tdWx0aS1hby5jDQo+ID4gQEAgLTAsMCAr MSw3NTYgQEANCj4gPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjANCj4gPiAr LyoNCj4gPiArICogQ29weXJpZ2h0IChDKSAyMDIwIE1lZGlhVGVrIEluYy4NCj4gPiArICovDQo+ ID4gKw0KPiA+ICsjaW5jbHVkZSA8bGludXgvYXJtLXNtY2NjLmg+DQo+ID4gKyNpbmNsdWRlIDxs aW51eC9jbGsuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L2ZzLmg+DQo+ID4gKyNpbmNsdWRlIDxs aW51eC9pbnRlcnJ1cHQuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPg0KPiA+ICsj aW5jbHVkZSA8bGludXgvb2ZfaXJxLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9vZl9hZGRyZXNz Lmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9zY2hlZC9kZWJ1Zy5oPg0KPiA+ICsjaW5jbHVkZSA8 bGludXgvdWFjY2Vzcy5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvc29jL21lZGlhdGVrL210a19z aXBfc3ZjLmg+DQo+ID4gKyNpbmNsdWRlICJkZXZhcGMtbXRrLW11bHRpLWFvLmgiDQo+ID4gKw0K PiA+ICsvKg0KPiA+ICsgKiBtdGtfZGV2YXBjX3BkX2dldCAtIGdldCBkZXZhcGMgcGRfdHlwZXMg b2YgcmVnaXN0ZXIgYWRkcmVzcy4NCj4gPiArICoNCj4gPiArICogUmV0dXJucyB0aGUgdmFsdWUg b2YgcmVnIGFkZHINCj4gPiArICovDQo+ID4gK3N0YXRpYyB2b2lkIF9faW9tZW0gKm10a19kZXZh cGNfcGRfZ2V0KHN0cnVjdCBtdGtfZGV2YXBjX2NvbnRleHQgKmRldmFwY19jdHgsDQo+ID4gKwkJ CQkgICAgICAgaW50IHNsYXZlX3R5cGUsDQo+ID4gKwkJCQkgICAgICAgZW51bSBERVZBUENfUERf UkVHX1RZUEUgcGRfcmVnX3R5cGUsDQo+ID4gKwkJCQkgICAgICAgdTMyIGluZGV4KQ0KPiA+ICt7 DQo+ID4gKwlzdHJ1Y3QgbXRrX2RldmFwY192aW9faW5mbyAqdmlvX2luZm8gPSBkZXZhcGNfY3R4 LT5zb2MtPnZpb19pbmZvOw0KPiA+ICsJdTMyIHNsYXZlX3R5cGVfbnVtID0gZGV2YXBjX2N0eC0+ c29jLT5zbGF2ZV90eXBlX251bTsNCj4gPiArCWNvbnN0IHUzMiAqZGV2YXBjX3BkcyA9IGRldmFw Y19jdHgtPnNvYy0+ZGV2YXBjX3BkczsNCj4gPiArCXZvaWQgX19pb21lbSAqcmVnOw0KPiA+ICsN Cj4gPiArCWlmICghZGV2YXBjX3BkcykNCj4gPiArCQlyZXR1cm4gTlVMTDsNCj4gPiArDQo+ID4g KwlpZiAoKHNsYXZlX3R5cGUgPCBzbGF2ZV90eXBlX251bSAmJg0KPiA+ICsJICAgICBpbmRleCA8 IHZpb19pbmZvLT52aW9fbWFza19zdGFfbnVtW3NsYXZlX3R5cGVdKSAmJg0KPiA+ICsJICAgIHBk X3JlZ190eXBlIDwgUERfUkVHX1RZUEVfTlVNKSB7DQo+ID4gKwkJcmVnID0gZGV2YXBjX2N0eC0+ ZGV2YXBjX3BkX2Jhc2Vbc2xhdmVfdHlwZV0gKw0KPiA+ICsJCQlkZXZhcGNfcGRzW3BkX3JlZ190 eXBlXTsNCj4gPiArDQo+ID4gKwkJaWYgKHBkX3JlZ190eXBlID09IFZJT19NQVNLIHx8IHBkX3Jl Z190eXBlID09IFZJT19TVEEpDQo+ID4gKwkJCXJlZyArPSAweDQgKiBpbmRleDsNCj4gPiArDQo+ ID4gKwl9IGVsc2Ugew0KPiA+ICsJCXByX2VycihQRlggIk91dCBPZiBCb3VuZGFyeSwgc2xhdmVf dHlwZToweCV4L3BkX3JlZ190eXBlOjB4JXgvaW5kZXg6MHgleFxuIiwNCj4gPiArCQkgICAgICAg c2xhdmVfdHlwZSwgcGRfcmVnX3R5cGUsIGluZGV4KTsNCj4gPiArCQlyZXR1cm4gTlVMTDsNCj4g PiArCX0NCj4gPiArDQo+ID4gKwlyZXR1cm4gcmVnOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKg0K PiA+ICsgKiBzcmFtcm9tX3Zpb19oYW5kbGVyIC0gY2xlYW4gc3JhbXJvbSB2aW9sYXRpb24gJiBw cmludCB2aW9sYXRpb24gaW5mb3JtYXRpb24NCj4gPiArICoJCQkgZm9yIGRlYnVnZ2luZy4NCj4g PiArICovDQo+ID4gK3N0YXRpYyB2b2lkIHNyYW1yb21fdmlvX2hhbmRsZXIoc3RydWN0IG10a19k ZXZhcGNfY29udGV4dCAqZGV2YXBjX2N0eCkNCj4gPiArew0KPiA+ICsJY29uc3Qgc3RydWN0IG10 a19zcmFtcm9tX3NlY192aW9fZGVzYyAqc3JhbXJvbV92aW9zOw0KPiA+ICsJc3RydWN0IG10a19k ZXZhcGNfdmlvX2luZm8gKnZpb19pbmZvOw0KPiA+ICsJc3RydWN0IGFybV9zbWNjY19yZXMgcmVz Ow0KPiA+ICsJc2l6ZV90IHNyYW1yb21fdmlvX3N0YTsNCj4gPiArCWludCBzcmFtcm9tX3ZpbzsN Cj4gPiArCXUzMiBydzsNCj4gPiArDQo+ID4gKwlzcmFtcm9tX3Zpb3MgPSBkZXZhcGNfY3R4LT5z b2MtPnNyYW1yb21fc2VjX3Zpb3M7DQo+ID4gKwl2aW9faW5mbyA9IGRldmFwY19jdHgtPnNvYy0+ dmlvX2luZm87DQo+ID4gKw0KPiA+ICsJYXJtX3NtY2NjX3NtYyhNVEtfU0lQX0tFUk5FTF9DTFJf U1JBTVJPTV9WSU8sDQo+ID4gKwkJICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgJnJlcyk7DQo+ ID4gKw0KPiA+ICsJc3JhbXJvbV92aW8gPSByZXMuYTA7DQo+ID4gKwlzcmFtcm9tX3Zpb19zdGEg PSByZXMuYTE7DQo+ID4gKwl2aW9faW5mby0+dmlvX2FkZHIgPSByZXMuYTI7DQo+ID4gKw0KPiA+ ICsJaWYgKHNyYW1yb21fdmlvID09IFNSQU1fVklPTEFUSU9OKQ0KPiA+ICsJCXByX2luZm8oUEZY ICJTUkFNIHZpb2xhdGlvbiBpcyB0cmlnZ2VyZWRcbiIpOw0KPiA+ICsJZWxzZSBpZiAoc3JhbXJv bV92aW8gPT0gUk9NX1ZJT0xBVElPTikNCj4gPiArCQlwcl9pbmZvKFBGWCAiUk9NIHZpb2xhdGlv biBpcyB0cmlnZ2VyZWRcbiIpOw0KPiA+ICsJZWxzZQ0KPiA+ICsJCXJldHVybjsNCj4gPiArDQo+ ID4gKwl2aW9faW5mby0+bWFzdGVyX2lkID0gKHNyYW1yb21fdmlvX3N0YSAmIHNyYW1yb21fdmlv cy0+dmlvX2lkX21hc2spDQo+ID4gKwkJCT4+IHNyYW1yb21fdmlvcy0+dmlvX2lkX3NoaWZ0Ow0K PiA+ICsJdmlvX2luZm8tPmRvbWFpbl9pZCA9IChzcmFtcm9tX3Zpb19zdGEgJiBzcmFtcm9tX3Zp b3MtPnZpb19kb21haW5fbWFzaykNCj4gPiArCQkJPj4gc3JhbXJvbV92aW9zLT52aW9fZG9tYWlu X3NoaWZ0Ow0KPiA+ICsJcncgPSAoc3JhbXJvbV92aW9fc3RhICYgc3JhbXJvbV92aW9zLT52aW9f cndfbWFzaykgPj4NCj4gPiArCQkJc3JhbXJvbV92aW9zLT52aW9fcndfc2hpZnQ7DQo+ID4gKw0K PiA+ICsJaWYgKHJ3KQ0KPiA+ICsJCXZpb19pbmZvLT53cml0ZSA9IDE7DQo+ID4gKwllbHNlDQo+ ID4gKwkJdmlvX2luZm8tPnJlYWQgPSAxOw0KPiA+ICsNCj4gPiArCXByX2luZm8oUEZYICIlczog bWFzdGVyX2lkOjB4JXgsIGRvbWFpbl9pZDoweCV4LCBydzolcywgdmlvX2FkZHI6MHgleFxuIiwN Cj4gPiArCQlfX2Z1bmNfXywgdmlvX2luZm8tPm1hc3Rlcl9pZCwgdmlvX2luZm8tPmRvbWFpbl9p ZCwNCj4gPiArCQlydyA/ICJXcml0ZSIgOiAiUmVhZCIsIHZpb19pbmZvLT52aW9fYWRkcik7DQo+ ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkIG1hc2tfbW9kdWxlX2lycShzdHJ1Y3QgbXRr X2RldmFwY19jb250ZXh0ICpkZXZhcGNfY3R4LA0KPiA+ICsJCQkgICAgaW50IHNsYXZlX3R5cGUs IHUzMiBtb2R1bGUsIGJvb2wgbWFzaykNCj4gPiArew0KPiA+ICsJc3RydWN0IG10a19kZXZhcGNf dmlvX2luZm8gKnZpb19pbmZvID0gZGV2YXBjX2N0eC0+c29jLT52aW9faW5mbzsNCj4gPiArCXUz MiBzbGF2ZV90eXBlX251bSA9IGRldmFwY19jdHgtPnNvYy0+c2xhdmVfdHlwZV9udW07DQo+ID4g Kwl1MzIgYXBjX3JlZ2lzdGVyX2luZGV4Ow0KPiA+ICsJdTMyIGFwY19zZXRfaW5kZXg7DQo+ID4g Kwl2b2lkIF9faW9tZW0gKnJlZzsNCj4gPiArDQo+ID4gKwlhcGNfcmVnaXN0ZXJfaW5kZXggPSBt b2R1bGUgLyAoTU9EX05PX0lOXzFfREVWQVBDICogMik7DQo+ID4gKwlhcGNfc2V0X2luZGV4ID0g bW9kdWxlICUgKE1PRF9OT19JTl8xX0RFVkFQQyAqIDIpOw0KPiA+ICsNCj4gPiArCWlmIChzbGF2 ZV90eXBlIDwgc2xhdmVfdHlwZV9udW0gJiYNCj4gPiArCSAgICBhcGNfcmVnaXN0ZXJfaW5kZXgg PCB2aW9faW5mby0+dmlvX21hc2tfc3RhX251bVtzbGF2ZV90eXBlXSkgew0KPiA+ICsJCXJlZyA9 IG10a19kZXZhcGNfcGRfZ2V0KGRldmFwY19jdHgsIHNsYXZlX3R5cGUsIFZJT19NQVNLLA0KPiA+ ICsJCQkJCWFwY19yZWdpc3Rlcl9pbmRleCk7DQo+ID4gKw0KPiA+ICsJCWlmIChtYXNrKQ0KPiA+ ICsJCQl3cml0ZWwocmVhZGwocmVnKSB8ICgxIDw8IGFwY19zZXRfaW5kZXgpLCByZWcpOw0KPiA+ ICsJCWVsc2UNCj4gPiArCQkJd3JpdGVsKHJlYWRsKHJlZykgJiAofigxIDw8IGFwY19zZXRfaW5k ZXgpKSwgcmVnKTsNCj4gPiArDQo+ID4gKwl9IGVsc2Ugew0KPiA+ICsJCXByX2VycihQRlggIiVz OiBPdXQgT2YgQm91bmRhcnksIHNsYXZlX3R5cGU6MHgleCwgbW9kdWxlX2luZGV4OjB4JXgsIG1h c2s6JXNcbiIsDQo+ID4gKwkJICAgICAgIF9fZnVuY19fLCBzbGF2ZV90eXBlLCBtb2R1bGUsIG1h c2sgPyAidHJ1ZSIgOiAiZmFsc2UiKTsNCj4gPiArCX0NCj4gPiArfQ0KPiA+ICsNCj4gPiArc3Rh dGljIGludCBjaGVja192aW9fbWFzayhzdHJ1Y3QgbXRrX2RldmFwY19jb250ZXh0ICpkZXZhcGNf Y3R4LCBpbnQgc2xhdmVfdHlwZSwNCj4gPiArCQkJICB1MzIgbW9kdWxlKQ0KPiA+ICt7DQo+ID4g KwlzdHJ1Y3QgbXRrX2RldmFwY192aW9faW5mbyAqdmlvX2luZm8gPSBkZXZhcGNfY3R4LT5zb2Mt PnZpb19pbmZvOw0KPiA+ICsJdTMyIHNsYXZlX3R5cGVfbnVtID0gZGV2YXBjX2N0eC0+c29jLT5z bGF2ZV90eXBlX251bTsNCj4gPiArCXUzMiBhcGNfcmVnaXN0ZXJfaW5kZXg7DQo+ID4gKwl1MzIg YXBjX3NldF9pbmRleDsNCj4gPiArCXZvaWQgX19pb21lbSAqcmVnOw0KPiA+ICsNCj4gPiArCWFw Y19yZWdpc3Rlcl9pbmRleCA9IG1vZHVsZSAvIChNT0RfTk9fSU5fMV9ERVZBUEMgKiAyKTsNCj4g PiArCWFwY19zZXRfaW5kZXggPSBtb2R1bGUgJSAoTU9EX05PX0lOXzFfREVWQVBDICogMik7DQo+ ID4gKw0KPiA+ICsJaWYgKHNsYXZlX3R5cGUgPCBzbGF2ZV90eXBlX251bSAmJg0KPiA+ICsJICAg IGFwY19yZWdpc3Rlcl9pbmRleCA8IHZpb19pbmZvLT52aW9fbWFza19zdGFfbnVtW3NsYXZlX3R5 cGVdKQ0KPiA+ICsJCXJlZyA9IG10a19kZXZhcGNfcGRfZ2V0KGRldmFwY19jdHgsIHNsYXZlX3R5 cGUsIFZJT19NQVNLLA0KPiA+ICsJCQkJCWFwY19yZWdpc3Rlcl9pbmRleCk7DQo+ID4gKwllbHNl DQo+ID4gKwkJcmV0dXJuIC1FT1ZFUkZMT1c7DQo+ID4gKw0KPiA+ICsJaWYgKHJlYWRsKHJlZykg JiAoMHgxIDw8IGFwY19zZXRfaW5kZXgpKQ0KPiA+ICsJCXJldHVybiBWSU9MQVRJT05fTUFTS0VE Ow0KPiA+ICsNCj4gPiArCXJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50 MzJfdCBjaGVja192aW9fc3RhdHVzKHN0cnVjdCBtdGtfZGV2YXBjX2NvbnRleHQgKmRldmFwY19j dHgsDQo+ID4gKwkJCQlpbnQgc2xhdmVfdHlwZSwgdTMyIG1vZHVsZSkNCj4gPiArew0KPiA+ICsJ c3RydWN0IG10a19kZXZhcGNfdmlvX2luZm8gKnZpb19pbmZvID0gZGV2YXBjX2N0eC0+c29jLT52 aW9faW5mbzsNCj4gPiArCXUzMiBzbGF2ZV90eXBlX251bSA9IGRldmFwY19jdHgtPnNvYy0+c2xh dmVfdHlwZV9udW07DQo+ID4gKwl1MzIgYXBjX3JlZ2lzdGVyX2luZGV4Ow0KPiA+ICsJdTMyIGFw Y19zZXRfaW5kZXg7DQo+ID4gKwl2b2lkIF9faW9tZW0gKnJlZzsNCj4gPiArDQo+ID4gKwlhcGNf cmVnaXN0ZXJfaW5kZXggPSBtb2R1bGUgLyAoTU9EX05PX0lOXzFfREVWQVBDICogMik7DQo+ID4g KwlhcGNfc2V0X2luZGV4ID0gbW9kdWxlICUgKE1PRF9OT19JTl8xX0RFVkFQQyAqIDIpOw0KPiA+ ICsNCj4gPiArCWlmIChzbGF2ZV90eXBlIDwgc2xhdmVfdHlwZV9udW0gJiYNCj4gPiArCSAgICBh cGNfcmVnaXN0ZXJfaW5kZXggPCB2aW9faW5mby0+dmlvX21hc2tfc3RhX251bVtzbGF2ZV90eXBl XSkgew0KPiA+ICsJCXJlZyA9IG10a19kZXZhcGNfcGRfZ2V0KGRldmFwY19jdHgsIHNsYXZlX3R5 cGUsIFZJT19TVEEsDQo+ID4gKwkJCQkJYXBjX3JlZ2lzdGVyX2luZGV4KTsNCj4gPiArDQo+ID4g Kwl9IGVsc2Ugew0KPiA+ICsJCXByX2VycihQRlggIiVzOiBPdXQgT2YgQm91bmRhcnksIHNsYXZl X3R5cGU6MHgleCwgbW9kdWxlX2luZGV4OjB4JXhcbiIsDQo+ID4gKwkJICAgICAgIF9fZnVuY19f LCBzbGF2ZV90eXBlLCBtb2R1bGUpOw0KPiA+ICsJCXJldHVybiAtRU9WRVJGTE9XOw0KPiA+ICsJ fQ0KPiA+ICsNCj4gPiArCWlmIChyZWFkbChyZWcpICYgKDB4MSA8PCBhcGNfc2V0X2luZGV4KSkN Cj4gPiArCQlyZXR1cm4gVklPTEFUSU9OX1RSSUdHRVJFRDsNCj4gPiArDQo+ID4gKwlyZXR1cm4g MDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGludDMyX3QgY2xlYXJfdmlvX3N0YXR1cyhz dHJ1Y3QgbXRrX2RldmFwY19jb250ZXh0ICpkZXZhcGNfY3R4LA0KPiA+ICsJCQkJaW50IHNsYXZl X3R5cGUsIHUzMiBtb2R1bGUpDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBtdGtfZGV2YXBjX3Zpb19p bmZvICp2aW9faW5mbyA9IGRldmFwY19jdHgtPnNvYy0+dmlvX2luZm87DQo+ID4gKwl1MzIgc2xh dmVfdHlwZV9udW0gPSBkZXZhcGNfY3R4LT5zb2MtPnNsYXZlX3R5cGVfbnVtOw0KPiA+ICsJdTMy IGFwY19yZWdpc3Rlcl9pbmRleDsNCj4gPiArCXUzMiBhcGNfc2V0X2luZGV4Ow0KPiA+ICsJdm9p ZCBfX2lvbWVtICpyZWc7DQo+ID4gKw0KPiA+ICsJYXBjX3JlZ2lzdGVyX2luZGV4ID0gbW9kdWxl IC8gKE1PRF9OT19JTl8xX0RFVkFQQyAqIDIpOw0KPiA+ICsJYXBjX3NldF9pbmRleCA9IG1vZHVs ZSAlIChNT0RfTk9fSU5fMV9ERVZBUEMgKiAyKTsNCj4gPiArDQo+ID4gKwlpZiAoc2xhdmVfdHlw ZSA8IHNsYXZlX3R5cGVfbnVtICYmDQo+ID4gKwkgICAgYXBjX3JlZ2lzdGVyX2luZGV4IDwgdmlv X2luZm8tPnZpb19tYXNrX3N0YV9udW1bc2xhdmVfdHlwZV0pIHsNCj4gPiArCQlyZWcgPSBtdGtf ZGV2YXBjX3BkX2dldChkZXZhcGNfY3R4LCBzbGF2ZV90eXBlLCBWSU9fU1RBLA0KPiA+ICsJCQkJ CWFwY19yZWdpc3Rlcl9pbmRleCk7DQo+ID4gKwkJd3JpdGVsKDB4MSA8PCBhcGNfc2V0X2luZGV4 LCByZWcpOw0KPiA+ICsNCj4gPiArCX0gZWxzZSB7DQo+ID4gKwkJcHJfZXJyKFBGWCAiJXM6IE91 dCBPZiBCb3VuZGFyeSwgc2xhdmVfdHlwZToweCV4LCBtb2R1bGVfaW5kZXg6MHgleFxuIiwNCj4g PiArCQkgICAgICAgX19mdW5jX18sIHNsYXZlX3R5cGUsIG1vZHVsZSk7DQo+ID4gKwkJcmV0dXJu IC1FT1ZFUkZMT1c7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJaWYgKGNoZWNrX3Zpb19zdGF0dXMo ZGV2YXBjX2N0eCwgc2xhdmVfdHlwZSwgbW9kdWxlKSkNCj4gPiArCQlyZXR1cm4gLUVJTzsNCj4g PiArDQo+ID4gKwlyZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIHZvaWQgZGV2 YXBjX3Zpb19pbmZvX3ByaW50KHN0cnVjdCBtdGtfZGV2YXBjX2NvbnRleHQgKmRldmFwY19jdHgp DQo+ID4gK3sNCj4gPiArCXN0cnVjdCBtdGtfZGV2YXBjX3Zpb19pbmZvICp2aW9faW5mbzsNCj4g PiArDQo+ID4gKwl2aW9faW5mbyA9IGRldmFwY19jdHgtPnNvYy0+dmlvX2luZm87DQo+ID4gKw0K PiA+ICsJLyogUHJpbnQgdmlvbGF0aW9uIGluZm9ybWF0aW9uICovDQo+ID4gKwlpZiAodmlvX2lu Zm8tPndyaXRlKQ0KPiA+ICsJCXByX2luZm8oUEZYICJXcml0ZSBWaW9sYXRpb25cbiIpOw0KPiA+ ICsJZWxzZSBpZiAodmlvX2luZm8tPnJlYWQpDQo+ID4gKwkJcHJfaW5mbyhQRlggIlJlYWQgVmlv bGF0aW9uXG4iKTsNCj4gPiArDQo+ID4gKwlwcl9pbmZvKFBGWCAiJXMleCwgJXMleCwgJXMleCwg JXMleFxuIiwNCj4gPiArCQkiVmlvIEFkZHI6MHgiLCB2aW9faW5mby0+dmlvX2FkZHIsDQo+ID4g KwkJIkhpZ2g6MHgiLCB2aW9faW5mby0+dmlvX2FkZHJfaGlnaCwNCj4gPiArCQkiQnVzIElEOjB4 IiwgdmlvX2luZm8tPm1hc3Rlcl9pZCwNCj4gPiArCQkiRG9tIElEOjB4IiwgdmlvX2luZm8tPmRv bWFpbl9pZCk7DQo+ID4gK30NCj4gPiArDQo+ID4gKy8qDQo+ID4gKyAqIGNoZWNrX3R5cGUyX3Zp b19zdGF0dXMgLSB0aGVyZSBhcmUgdHlwZSAyIHNsYXZlcyB3aGljaCB2aW9sYXRpb24gaW5mb3Jt YXRpb24NCj4gPiArICoJCQkgICAgaXMgc3RvcmVkIGluIGRpZmZlcmVudCByZWdpc3RlciBiYW5r Lg0KPiA+ICsgKg0KPiA+ICsgKiBSZXR1cm5zIHRydWUgaWYgdHlwZTIgdmlvbGF0aW9uIGlzIHRy aWdnZXJlZC4NCj4gPiArICovDQo+ID4gK3N0YXRpYyBib29sIGNoZWNrX3R5cGUyX3Zpb19zdGF0 dXMoc3RydWN0IG10a19kZXZhcGNfY29udGV4dCAqZGV2YXBjX2N0eCwNCj4gPiArCQkJCSAgIGlu dCBzbGF2ZV90eXBlLCBpbnQgKnZpb19pZHgsIGludCAqaW5kZXgpDQo+ID4gK3sNCj4gPiArCXUz MiBzcmFtcm9tX3Zpb19pZHgsIG1kcF92aW9faWR4LCBkaXNwMl92aW9faWR4LCBtbXN5c192aW9f aWR4Ow0KPiA+ICsJY29uc3Qgc3RydWN0IG10a19kZXZpY2VfaW5mbyAqKmRldmljZV9pbmZvOw0K PiA+ICsJY29uc3Qgc3RydWN0IG10a19kZXZpY2VfbnVtICpuZGV2aWNlczsNCj4gPiArCWludCBz cmFtcm9tX3Nsdl90eXBlLCBtbTJuZF9zbHZfdHlwZTsNCj4gPiArCWJvb2wgbWRwX3ZpbywgZGlz cDJfdmlvLCBtbXN5c192aW87DQo+ID4gKwlpbnQgaTsNCj4gPiArDQo+ID4gKwlzcmFtcm9tX3Ns dl90eXBlID0gZGV2YXBjX2N0eC0+c29jLT52aW9faW5mby0+c3JhbXJvbV9zbHZfdHlwZTsNCj4g PiArCXNyYW1yb21fdmlvX2lkeCA9IGRldmFwY19jdHgtPnNvYy0+dmlvX2luZm8tPnNyYW1yb21f dmlvX2lkeDsNCj4gPiArDQo+ID4gKwltbTJuZF9zbHZfdHlwZSA9IGRldmFwY19jdHgtPnNvYy0+ dmlvX2luZm8tPm1tMm5kX3Nsdl90eXBlOw0KPiA+ICsJbWRwX3Zpb19pZHggPSBkZXZhcGNfY3R4 LT5zb2MtPnZpb19pbmZvLT5tZHBfdmlvX2lkeDsNCj4gPiArCWRpc3AyX3Zpb19pZHggPSBkZXZh cGNfY3R4LT5zb2MtPnZpb19pbmZvLT5kaXNwMl92aW9faWR4Ow0KPiA+ICsJbW1zeXNfdmlvX2lk eCA9IGRldmFwY19jdHgtPnNvYy0+dmlvX2luZm8tPm1tc3lzX3Zpb19pZHg7DQo+ID4gKw0KPiA+ ICsJZGV2aWNlX2luZm8gPSBkZXZhcGNfY3R4LT5zb2MtPmRldmljZV9pbmZvOw0KPiA+ICsJbmRl dmljZXMgPSBkZXZhcGNfY3R4LT5zb2MtPm5kZXZpY2VzOw0KPiA+ICsNCj4gPiArCS8qIGNoZWNr IFNSQU1ST00gdmlvbGF0aW9uICovDQo+ID4gKwlpZiAoc2xhdmVfdHlwZSA9PSBzcmFtcm9tX3Ns dl90eXBlICYmDQo+ID4gKwkgICAgY2hlY2tfdmlvX3N0YXR1cyhkZXZhcGNfY3R4LCBzbGF2ZV90 eXBlLCBzcmFtcm9tX3Zpb19pZHgpKSB7DQo+ID4gKwkJcHJfaW5mbyhQRlggIlNSQU1ST00gdmlv bGF0aW9uIGlzIHRyaWdnZXJlZFxuIik7DQo+ID4gKwkJc3JhbXJvbV92aW9faGFuZGxlcihkZXZh cGNfY3R4KTsNCj4gPiArDQo+ID4gKwkJKnZpb19pZHggPSBzcmFtcm9tX3Zpb19pZHg7DQo+ID4g KwkJZm9yIChpID0gMDsgaSA8IG5kZXZpY2VzW3NsYXZlX3R5cGVdLnZpb19zbGF2ZV9udW07IGkr Kykgew0KPiA+ICsJCQlpZiAoZGV2aWNlX2luZm9bc2xhdmVfdHlwZV1baV0udmlvX2luZGV4ID09 ICp2aW9faWR4KQ0KPiA+ICsJCQkJKmluZGV4ID0gaTsNCj4gPiArCQl9DQo+ID4gKw0KPiA+ICsJ CXJldHVybiB0cnVlOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCS8qIGNoZWNrIE1NIDJuZCBsZXZl bCB2aW9sYXRpb24gKi8NCj4gPiArCWlmIChzbGF2ZV90eXBlID09IG1tMm5kX3Nsdl90eXBlKSB7 DQo+ID4gKwkJbWRwX3ZpbyA9IGNoZWNrX3Zpb19zdGF0dXMoZGV2YXBjX2N0eCwgc2xhdmVfdHlw ZSwNCj4gPiArCQkJCQkgICBtZHBfdmlvX2lkeCkgPT0NCj4gPiArCQkJCQkgICBWSU9MQVRJT05f VFJJR0dFUkVEOw0KPiA+ICsJCWRpc3AyX3ZpbyA9IGNoZWNrX3Zpb19zdGF0dXMoZGV2YXBjX2N0 eCwgc2xhdmVfdHlwZSwNCj4gPiArCQkJCQkgICAgIGRpc3AyX3Zpb19pZHgpID09DQo+ID4gKwkJ CQkJICAgICBWSU9MQVRJT05fVFJJR0dFUkVEOw0KPiA+ICsJCW1tc3lzX3ZpbyA9IGNoZWNrX3Zp b19zdGF0dXMoZGV2YXBjX2N0eCwgc2xhdmVfdHlwZSwNCj4gPiArCQkJCQkgICAgIG1tc3lzX3Zp b19pZHgpID09DQo+ID4gKwkJCQkJICAgICBWSU9MQVRJT05fVFJJR0dFUkVEOw0KPiA+ICsNCj4g PiArCQlpZiAobWRwX3ZpbyB8fCBkaXNwMl92aW8gfHwgbW1zeXNfdmlvKSB7DQo+ID4gKwkJCXBy X2luZm8oUEZYICJNTTJuZCB2aW9sYXRpb24gaXMgdHJpZ2dlcmVkXG4iKTsNCj4gPiArCQkJZGV2 YXBjX2N0eC0+c29jLT5tbTJuZF92aW9faGFuZGxlcg0KPiA+ICsJCQkJKGRldmFwY19jdHgtPmlu ZnJhY2ZnX2Jhc2UsDQo+ID4gKwkJCQkgZGV2YXBjX2N0eC0+c29jLT52aW9faW5mbywNCj4gPiAr CQkJCSBtZHBfdmlvLA0KPiA+ICsJCQkJIGRpc3AyX3ZpbywNCj4gPiArCQkJCSBtbXN5c192aW8p Ow0KPiA+ICsJCX0gZWxzZSB7DQo+ID4gKwkJCXJldHVybiBmYWxzZTsNCj4gPiArCQl9DQo+ID4g Kw0KPiA+ICsJCWlmIChtZHBfdmlvKQ0KPiA+ICsJCQkqdmlvX2lkeCA9IG1kcF92aW9faWR4Ow0K PiA+ICsJCWVsc2UgaWYgKGRpc3AyX3ZpbykNCj4gPiArCQkJKnZpb19pZHggPSBkaXNwMl92aW9f aWR4Ow0KPiA+ICsJCWVsc2UgaWYgKG1tc3lzX3ZpbykNCj4gPiArCQkJKnZpb19pZHggPSBtbXN5 c192aW9faWR4Ow0KPiA+ICsNCj4gPiArCQlmb3IgKGkgPSAwOyBpIDwgbmRldmljZXNbc2xhdmVf dHlwZV0udmlvX3NsYXZlX251bTsgaSsrKSB7DQo+ID4gKwkJCWlmIChkZXZpY2VfaW5mb1tzbGF2 ZV90eXBlXVtpXS52aW9faW5kZXggPT0gKnZpb19pZHgpDQo+ID4gKwkJCQkqaW5kZXggPSBpOw0K PiA+ICsJCX0NCj4gPiArDQo+ID4gKwkJZGV2YXBjX3Zpb19pbmZvX3ByaW50KGRldmFwY19jdHgp Ow0KPiA+ICsJCXJldHVybiB0cnVlOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCXJldHVybiBmYWxz ZTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArLyoNCj4gPiArICogc3luY192aW9fZGJnIC0gc3RhcnQg dG8gZ2V0IHZpb2xhdGlvbiBpbmZvcm1hdGlvbiBieSBzZWxlY3RpbmcgdmlvbGF0aW9uDQo+ID4g KyAqCQkgIGdyb3VwIGFuZCBlbmFibGUgdmlvbGF0aW9uIHNoaWZ0Lg0KPiA+ICsgKg0KPiA+ICsg KiBSZXR1cm5zIHN5bmMgZG9uZSBvciBub3QNCj4gPiArICovDQo+ID4gK3N0YXRpYyB1MzIgc3lu Y192aW9fZGJnKHN0cnVjdCBtdGtfZGV2YXBjX2NvbnRleHQgKmRldmFwY19jdHgsIGludCBzbGF2 ZV90eXBlLA0KPiA+ICsJCQl1MzIgc2hpZnRfYml0KQ0KPiA+ICt7DQo+ID4gKwl1MzIgc2xhdmVf dHlwZV9udW0gPSBkZXZhcGNfY3R4LT5zb2MtPnNsYXZlX3R5cGVfbnVtOw0KPiA+ICsJdm9pZCBf X2lvbWVtICpwZF92aW9fc2hpZnRfc3RhX3JlZzsNCj4gPiArCXZvaWQgX19pb21lbSAqcGRfdmlv X3NoaWZ0X3NlbF9yZWc7DQo+ID4gKwl2b2lkIF9faW9tZW0gKnBkX3Zpb19zaGlmdF9jb25fcmVn Ow0KPiA+ICsJdTMyIHNoaWZ0X2NvdW50Ow0KPiA+ICsJdTMyIHN5bmNfZG9uZTsNCj4gPiArDQo+ ID4gKwlpZiAoc2xhdmVfdHlwZSA+PSBzbGF2ZV90eXBlX251bSB8fA0KPiA+ICsJICAgIHNoaWZ0 X2JpdCA+PSAoTU9EX05PX0lOXzFfREVWQVBDICogMikpIHsNCj4gPiArCQlwcl9lcnIoUEZYICJw YXJhbSBjaGVjayBmYWlsZWQsIHNsYXZlX3R5cGU6MHgleCwgc2hpZnRfYml0OjB4JXhcbiIsDQo+ ID4gKwkJICAgICAgIHNsYXZlX3R5cGUsIHNoaWZ0X2JpdCk7DQo+ID4gKwkJcmV0dXJuIDA7DQo+ ID4gKwl9DQo+ID4gKw0KPiA+ICsJcGRfdmlvX3NoaWZ0X3N0YV9yZWcgPSBtdGtfZGV2YXBjX3Bk X2dldChkZXZhcGNfY3R4LCBzbGF2ZV90eXBlLA0KPiA+ICsJCQkJCQkgVklPX1NISUZUX1NUQSwg MCk7DQo+ID4gKwlwZF92aW9fc2hpZnRfc2VsX3JlZyA9IG10a19kZXZhcGNfcGRfZ2V0KGRldmFw Y19jdHgsIHNsYXZlX3R5cGUsDQo+ID4gKwkJCQkJCSBWSU9fU0hJRlRfU0VMLCAwKTsNCj4gPiAr CXBkX3Zpb19zaGlmdF9jb25fcmVnID0gbXRrX2RldmFwY19wZF9nZXQoZGV2YXBjX2N0eCwgc2xh dmVfdHlwZSwNCj4gPiArCQkJCQkJIFZJT19TSElGVF9DT04sIDApOw0KPiA+ICsNCj4gPiArCXdy aXRlbCgweDEgPDwgc2hpZnRfYml0LCBwZF92aW9fc2hpZnRfc2VsX3JlZyk7DQo+ID4gKwl3cml0 ZWwoMHgxLCBwZF92aW9fc2hpZnRfY29uX3JlZyk7DQo+ID4gKw0KPiA+ICsJZm9yIChzaGlmdF9j b3VudCA9IDA7IChzaGlmdF9jb3VudCA8IDEwMCkgJiYNCj4gPiArCSAgICAgKChyZWFkbChwZF92 aW9fc2hpZnRfY29uX3JlZykgJiAweDMpICE9IDB4Myk7DQo+ID4gKwkgICAgICsrc2hpZnRfY291 bnQpDQo+ID4gKwkJOw0KPiA+ICsNCj4gPiArCWlmICgocmVhZGwocGRfdmlvX3NoaWZ0X2Nvbl9y ZWcpICYgMHgzKSA9PSAweDMpDQo+ID4gKwkJc3luY19kb25lID0gMTsNCj4gPiArCWVsc2UNCj4g PiArCQlzeW5jX2RvbmUgPSAwOw0KPiA+ICsNCj4gPiArCS8qIERpc2FibGUgc2hpZnQgbWVjaGFu aXNtICovDQo+ID4gKwl3cml0ZWwoMHgwLCBwZF92aW9fc2hpZnRfY29uX3JlZyk7DQo+ID4gKwl3 cml0ZWwoMHgwLCBwZF92aW9fc2hpZnRfc2VsX3JlZyk7DQo+ID4gKwl3cml0ZWwoMHgxIDw8IHNo aWZ0X2JpdCwgcGRfdmlvX3NoaWZ0X3N0YV9yZWcpOw0KPiA+ICsNCj4gPiArCXJldHVybiBzeW5j X2RvbmU7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgcGVy bV90b19zdHJbXSA9IHsNCj4gPiArCSJOT19QUk9URUNUSU9OIiwNCj4gPiArCSJTRUNVUkVfUldf T05MWSIsDQo+ID4gKwkiU0VDVVJFX1JXX05TX1JfT05MWSIsDQo+ID4gKwkiRk9SQklEREVOIiwN Cj4gPiArCSJOT19QRVJNX0NUUkwiDQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdGF0aWMgY29uc3Qg Y2hhciAqcGVybV90b19zdHJpbmcodTggcGVybSkNCj4gPiArew0KPiA+ICsJaWYgKHBlcm0gPCBQ RVJNX1RZUEVfTlVNKQ0KPiA+ICsJCXJldHVybiBwZXJtX3RvX3N0cltwZXJtXTsNCj4gPiArCWVs c2UNCj4gPiArCQlyZXR1cm4gcGVybV90b19zdHJbUEVSTV9UWVBFX05VTV07DQo+ID4gK30NCj4g PiArDQo+ID4gK3N0YXRpYyB2b2lkIGRldmFwY192aW9fcmVhc29uKHU4IHBlcm0pDQo+ID4gK3sN Cj4gPiArCXByX2luZm8oUEZYICJQZXJtaXNzaW9uIHNldHRpbmc6ICVzXG4iLCBwZXJtX3RvX3N0 cmluZyhwZXJtKSk7DQo+ID4gKw0KPiA+ICsJaWYgKHBlcm0gPT0gTk9fUFJPVEVDVElPTiB8fCBw ZXJtID49IFBFUk1fVFlQRV9OVU0pDQo+ID4gKwkJcHJfaW5mbyhQRlggIlJlYXNvbjogcG93ZXIv Y2xvY2sgaXMgbm90IGVuYWJsZWRcbiIpOw0KPiA+ICsJZWxzZSBpZiAocGVybSA9PSBTRUNfUldf T05MWSB8fA0KPiA+ICsJCSBwZXJtID09IFNFQ19SV19OU19SIHx8DQo+ID4gKwkJIHBlcm0gPT0g Rk9SQklEREVOKQ0KPiA+ICsJCXByX2luZm8oUEZYICJSZWFzb246IG1pZ2h0IGJlIHBlcm1pc3Np b24gZGVuaWVkXG4iKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArLyoNCj4gPiArICogZ2V0X3Blcm1p c3Npb24gLSBnZXQgc2xhdmUncyBhY2Nlc3MgcGVybWlzc2lvbiBvZiBkb21haW4gaWQuDQo+ID4g KyAqDQo+ID4gKyAqIFJldHVybnMgdGhlIHZhbHVlIG9mIGFjY2VzcyBwZXJtaXNzaW9uDQo+ID4g KyAqLw0KPiA+ICtzdGF0aWMgdTggZ2V0X3Blcm1pc3Npb24oc3RydWN0IG10a19kZXZhcGNfY29u dGV4dCAqZGV2YXBjX2N0eCwgaW50IHNsYXZlX3R5cGUsDQo+ID4gKwkJCSBpbnQgbW9kdWxlX2lu ZGV4LCBpbnQgZG9tYWluKQ0KPiA+ICt7DQo+ID4gKwl1MzIgc2xhdmVfdHlwZV9udW0gPSBkZXZh cGNfY3R4LT5zb2MtPnNsYXZlX3R5cGVfbnVtOw0KPiA+ICsJY29uc3Qgc3RydWN0IG10a19kZXZp Y2VfaW5mbyAqKmRldmljZV9pbmZvOw0KPiA+ICsJY29uc3Qgc3RydWN0IG10a19kZXZpY2VfbnVt ICpuZGV2aWNlczsNCj4gPiArCWludCBzeXNfaW5kZXgsIGN0cmxfaW5kZXgsIHZpb19pbmRleDsN Cj4gPiArCXN0cnVjdCBhcm1fc21jY2NfcmVzIHJlczsNCj4gPiArCXUzMiByZXQsIGFwY19zZXRf aW5kZXg7DQo+ID4gKw0KPiA+ICsJbmRldmljZXMgPSBkZXZhcGNfY3R4LT5zb2MtPm5kZXZpY2Vz Ow0KPiA+ICsNCj4gPiArCWlmIChzbGF2ZV90eXBlID49IHNsYXZlX3R5cGVfbnVtIHx8DQo+ID4g KwkgICAgbW9kdWxlX2luZGV4ID49IG5kZXZpY2VzW3NsYXZlX3R5cGVdLnZpb19zbGF2ZV9udW0p IHsNCj4gPiArCQlwcl9lcnIoUEZYICIlczogcGFyYW0gY2hlY2sgZmFpbGVkLCBzbGF2ZV90eXBl OjB4JXgsIG1vZHVsZV9pbmRleDoweCV4XG4iLA0KPiA+ICsJCSAgICAgICBfX2Z1bmNfXywgc2xh dmVfdHlwZSwgbW9kdWxlX2luZGV4KTsNCj4gPiArCQlyZXR1cm4gMHhGRjsNCj4gPiArCX0NCj4g PiArDQo+ID4gKwlkZXZpY2VfaW5mbyA9IGRldmFwY19jdHgtPnNvYy0+ZGV2aWNlX2luZm87DQo+ ID4gKw0KPiA+ICsJc3lzX2luZGV4ID0gZGV2aWNlX2luZm9bc2xhdmVfdHlwZV1bbW9kdWxlX2lu ZGV4XS5zeXNfaW5kZXg7DQo+ID4gKwljdHJsX2luZGV4ID0gZGV2aWNlX2luZm9bc2xhdmVfdHlw ZV1bbW9kdWxlX2luZGV4XS5jdHJsX2luZGV4Ow0KPiA+ICsJdmlvX2luZGV4ID0gZGV2aWNlX2lu Zm9bc2xhdmVfdHlwZV1bbW9kdWxlX2luZGV4XS52aW9faW5kZXg7DQo+ID4gKw0KPiA+ICsJaWYg KHN5c19pbmRleCA9PSAtMSB8fCBjdHJsX2luZGV4ID09IC0xKQ0KPiA+ICsJCXJldHVybiAweEZG Ow0KPiA+ICsNCj4gPiArCWFybV9zbWNjY19zbWMoTVRLX1NJUF9LRVJORUxfREFQQ19QRVJNX0dF VCwgc2xhdmVfdHlwZSwgc3lzX2luZGV4LA0KPiA+ICsJCSAgICAgIGRvbWFpbiwgY3RybF9pbmRl eCwgdmlvX2luZGV4LCAwLCAwLCAmcmVzKTsNCj4gPiArCXJldCA9IHJlcy5hMDsNCj4gPiArDQo+ ID4gKwlpZiAocmV0ID09IERFQUQpIHsNCj4gPiArCQlwcl9lcnIoUEZYICJwZXJtaXNzaW9uIGdl dCBmYWlsZWQsIHJldDoweCV4XG4iLCByZXQpOw0KPiA+ICsJCXJldHVybiAweEZGOw0KPiA+ICsJ fQ0KPiA+ICsNCj4gPiArCWFwY19zZXRfaW5kZXggPSBjdHJsX2luZGV4ICUgTU9EX05PX0lOXzFf REVWQVBDOw0KPiA+ICsJcmV0ID0gKHJldCAmICgweDMgPDwgKGFwY19zZXRfaW5kZXggKiAyKSkp ID4+IChhcGNfc2V0X2luZGV4ICogMik7DQo+ID4gKw0KPiA+ICsJcmV0dXJuIChyZXQgJiAweDMp Ow0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKg0KPiA+ICsgKiBtdGtfZGV2YXBjX3Zpb19jaGVjayAt IGNoZWNrIHZpb2xhdGlvbiBzaGlmdCBzdGF0dXMgaXMgcmFpc2VkIG9yIG5vdC4NCj4gPiArICoN Cj4gPiArICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdmlvbGF0aW9uIHNoaWZ0IHN0YXR1cyByZWcN Cj4gPiArICovDQo+ID4gK3N0YXRpYyB2b2lkIG10a19kZXZhcGNfdmlvX2NoZWNrKHN0cnVjdCBt dGtfZGV2YXBjX2NvbnRleHQgKmRldmFwY19jdHgsDQo+ID4gKwkJCQkgaW50IHNsYXZlX3R5cGUs IGludCAqc2hpZnRfYml0KQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgbXRrX2RldmFwY192aW9faW5m byAqdmlvX2luZm87DQo+ID4gKwl1MzIgdmlvX3NoaWZ0X3N0YTsNCj4gPiArCWludCBpOw0KPiA+ ICsNCj4gPiArCXZpb19pbmZvID0gZGV2YXBjX2N0eC0+c29jLT52aW9faW5mbzsNCj4gPiArCXZp b19zaGlmdF9zdGEgPSByZWFkbChtdGtfZGV2YXBjX3BkX2dldChkZXZhcGNfY3R4LCBzbGF2ZV90 eXBlLA0KPiA+ICsJCQkJCQlWSU9fU0hJRlRfU1RBLCAwKSk7DQo+ID4gKw0KPiA+ICsJaWYgKCF2 aW9fc2hpZnRfc3RhKSB7DQo+ID4gKwkJcHJfaW5mbyhQRlggInZpb2xhdGlvbiBpcyB0cmlnZ2Vy ZWQgYmVmb3JlLiBzaGlmdF9iaXQ6MHgleFxuIiwNCj4gPiArCQkJKnNoaWZ0X2JpdCk7DQo+ID4g Kw0KPiA+ICsJfSBlbHNlIGlmICh2aW9fc2hpZnRfc3RhICYgKDB4MVVMIDw8ICpzaGlmdF9iaXQp KSB7DQo+ID4gKwkJcHJfZGVidWcoUEZYICJ2aW9fc2hpZnRfc3RhOjB4JXggaXMgbWF0Y2hlZCB3 aXRoIHNoaWZ0X2JpdDolZFxuIiwNCj4gPiArCQkJIHZpb19zaGlmdF9zdGEsICpzaGlmdF9iaXQp Ow0KPiA+ICsNCj4gPiArCX0gZWxzZSB7DQo+ID4gKwkJcHJfaW5mbyhQRlggInZpb19zaGlmdF9z dGE6MHgleCBpcyBub3QgbWF0Y2hlZCB3aXRoIHNoaWZ0X2JpdDolZFxuIiwNCj4gPiArCQkJdmlv X3NoaWZ0X3N0YSwgKnNoaWZ0X2JpdCk7DQo+ID4gKw0KPiA+ICsJCWZvciAoaSA9IDA7IGkgPCBN T0RfTk9fSU5fMV9ERVZBUEMgKiAyOyBpKyspIHsNCj4gPiArCQkJaWYgKHZpb19zaGlmdF9zdGEg JiAoMHgxIDw8IGkpKSB7DQo+ID4gKwkJCQkqc2hpZnRfYml0ID0gaTsNCj4gPiArCQkJCWJyZWFr Ow0KPiA+ICsJCQl9DQo+ID4gKwkJfQ0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCXZpb19pbmZvLT5z aGlmdF9zdGFfYml0ID0gKnNoaWZ0X2JpdDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIHZv aWQgZGV2YXBjX2V4dHJhY3RfdmlvX2RiZyhzdHJ1Y3QgbXRrX2RldmFwY19jb250ZXh0ICpkZXZh cGNfY3R4LA0KPiA+ICsJCQkJICAgaW50IHNsYXZlX3R5cGUpDQo+ID4gK3sNCj4gPiArCXZvaWQg X19pb21lbSAqdmlvX2RiZzBfcmVnLCAqdmlvX2RiZzFfcmVnLCAqdmlvX2RiZzJfcmVnOw0KPiA+ ICsJY29uc3Qgc3RydWN0IG10a19pbmZyYV92aW9fZGJnX2Rlc2MgKnZpb19kYmdzOw0KPiA+ICsJ c3RydWN0IG10a19kZXZhcGNfdmlvX2luZm8gKnZpb19pbmZvOw0KPiA+ICsJdTMyIGRiZzA7DQo+ ID4gKw0KPiA+ICsJdmlvX2RiZzBfcmVnID0gbXRrX2RldmFwY19wZF9nZXQoZGV2YXBjX2N0eCwg c2xhdmVfdHlwZSwgVklPX0RCRzAsIDApOw0KPiA+ICsJdmlvX2RiZzFfcmVnID0gbXRrX2RldmFw Y19wZF9nZXQoZGV2YXBjX2N0eCwgc2xhdmVfdHlwZSwgVklPX0RCRzEsIDApOw0KPiA+ICsJdmlv X2RiZzJfcmVnID0gbXRrX2RldmFwY19wZF9nZXQoZGV2YXBjX2N0eCwgc2xhdmVfdHlwZSwgVklP X0RCRzIsIDApOw0KPiA+ICsNCj4gPiArCXZpb19kYmdzID0gZGV2YXBjX2N0eC0+c29jLT52aW9f ZGJnczsNCj4gPiArCXZpb19pbmZvID0gZGV2YXBjX2N0eC0+c29jLT52aW9faW5mbzsNCj4gPiAr DQo+ID4gKwkvKiBFeHRyYWN0IHZpb2xhdGlvbiBpbmZvcm1hdGlvbiAqLw0KPiA+ICsJZGJnMCA9 IHJlYWRsKHZpb19kYmcwX3JlZyk7DQo+ID4gKwl2aW9faW5mby0+bWFzdGVyX2lkID0gcmVhZGwo dmlvX2RiZzFfcmVnKTsNCj4gPiArCXZpb19pbmZvLT52aW9fYWRkciA9IHJlYWRsKHZpb19kYmcy X3JlZyk7DQo+ID4gKw0KPiA+ICsJdmlvX2luZm8tPmRvbWFpbl9pZCA9IChkYmcwICYgdmlvX2Ri Z3MtPnZpb19kYmdfZG1uaWQpDQo+ID4gKwkJPj4gdmlvX2RiZ3MtPnZpb19kYmdfZG1uaWRfc3Rh cnRfYml0Ow0KPiA+ICsJdmlvX2luZm8tPndyaXRlID0gKChkYmcwICYgdmlvX2RiZ3MtPnZpb19k Ymdfd192aW8pDQo+ID4gKwkJCT4+IHZpb19kYmdzLT52aW9fZGJnX3dfdmlvX3N0YXJ0X2JpdCkg PT0gMTsNCj4gPiArCXZpb19pbmZvLT5yZWFkID0gKChkYmcwICYgdmlvX2RiZ3MtPnZpb19kYmdf cl92aW8pDQo+ID4gKwkJCT4+IHZpb19kYmdzLT52aW9fZGJnX3JfdmlvX3N0YXJ0X2JpdCkgPT0g MTsNCj4gPiArCXZpb19pbmZvLT52aW9fYWRkcl9oaWdoID0gKGRiZzAgJiB2aW9fZGJncy0+dmlv X2FkZHJfaGlnaCkNCj4gPiArCQk+PiB2aW9fZGJncy0+dmlvX2FkZHJfaGlnaF9zdGFydF9iaXQ7 DQo+ID4gKw0KPiA+ICsJZGV2YXBjX3Zpb19pbmZvX3ByaW50KGRldmFwY19jdHgpOw0KPiA+ICt9 DQo+ID4gKw0KPiA+ICsvKg0KPiA+ICsgKiBtdGtfZGV2YXBjX2R1bXBfdmlvX2RiZyAtIHNoaWZ0 ICYgZHVtcCB0aGUgdmlvbGF0aW9uIGRlYnVnIGluZm9ybWF0aW9uLg0KPiA+ICsgKi8NCj4gPiAr c3RhdGljIGJvb2wgbXRrX2RldmFwY19kdW1wX3Zpb19kYmcoc3RydWN0IG10a19kZXZhcGNfY29u dGV4dCAqZGV2YXBjX2N0eCwNCj4gPiArCQkJCSAgICBpbnQgc2xhdmVfdHlwZSwgaW50ICp2aW9f aWR4LCBpbnQgKmluZGV4KQ0KPiA+ICt7DQo+ID4gKwljb25zdCBzdHJ1Y3QgbXRrX2RldmljZV9p bmZvICoqZGV2aWNlX2luZm87DQo+ID4gKwljb25zdCBzdHJ1Y3QgbXRrX2RldmljZV9udW0gKm5k ZXZpY2VzOw0KPiA+ICsJdm9pZCBfX2lvbWVtICpwZF92aW9fc2hpZnRfc3RhX3JlZzsNCj4gPiAr CXUzMiBzaGlmdF9iaXQ7DQo+ID4gKwlpbnQgaTsNCj4gPiArDQo+ID4gKwlpZiAoIXZpb19pZHgp DQo+ID4gKwkJcmV0dXJuIE5VTEw7DQo+ID4gKw0KPiA+ICsJZGV2aWNlX2luZm8gPSBkZXZhcGNf Y3R4LT5zb2MtPmRldmljZV9pbmZvOw0KPiA+ICsJbmRldmljZXMgPSBkZXZhcGNfY3R4LT5zb2Mt Pm5kZXZpY2VzOw0KPiA+ICsNCj4gPiArCXBkX3Zpb19zaGlmdF9zdGFfcmVnID0gbXRrX2RldmFw Y19wZF9nZXQoZGV2YXBjX2N0eCwgc2xhdmVfdHlwZSwNCj4gPiArCQkJCQkJIFZJT19TSElGVF9T VEEsIDApOw0KPiA+ICsNCj4gPiArCWZvciAoaSA9IDA7IGkgPCBuZGV2aWNlc1tzbGF2ZV90eXBl XS52aW9fc2xhdmVfbnVtOyBpKyspIHsNCj4gPiArCQkqdmlvX2lkeCA9IGRldmljZV9pbmZvW3Ns YXZlX3R5cGVdW2ldLnZpb19pbmRleDsNCj4gPiArDQo+ID4gKwkJaWYgKGNoZWNrX3Zpb19tYXNr KGRldmFwY19jdHgsIHNsYXZlX3R5cGUsICp2aW9faWR4KSkNCj4gPiArCQkJY29udGludWU7DQo+ ID4gKw0KPiA+ICsJCWlmIChjaGVja192aW9fc3RhdHVzKGRldmFwY19jdHgsIHNsYXZlX3R5cGUs ICp2aW9faWR4KSAhPQ0KPiA+ICsJCQkJVklPTEFUSU9OX1RSSUdHRVJFRCkNCj4gPiArCQkJY29u dGludWU7DQo+ID4gKw0KPiA+ICsJCXNoaWZ0X2JpdCA9IGRldmFwY19jdHgtPnNvYy0+c2hpZnRf Z3JvdXBfZ2V0KHNsYXZlX3R5cGUsDQo+ID4gKwkJCQkJCQkgICAgICp2aW9faWR4KTsNCj4gPiAr DQo+ID4gKwkJbXRrX2RldmFwY192aW9fY2hlY2soZGV2YXBjX2N0eCwgc2xhdmVfdHlwZSwgJnNo aWZ0X2JpdCk7DQo+ID4gKw0KPiA+ICsJCWlmICghc3luY192aW9fZGJnKGRldmFwY19jdHgsIHNs YXZlX3R5cGUsIHNoaWZ0X2JpdCkpDQo+ID4gKwkJCWNvbnRpbnVlOw0KPiA+ICsNCj4gPiArCQlk ZXZhcGNfZXh0cmFjdF92aW9fZGJnKGRldmFwY19jdHgsIHNsYXZlX3R5cGUpOw0KPiA+ICsJCSpp bmRleCA9IGk7DQo+ID4gKw0KPiA+ICsJCXJldHVybiB0cnVlOw0KPiA+ICsJfQ0KPiA+ICsNCj4g PiArCXJldHVybiBmYWxzZTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArLyoNCj4gPiArICogc3RhcnRf ZGV2YXBjIC0gaW5pdGlhbGl6ZSBkZXZhcGMgc3RhdHVzIGFuZCBzdGFydCByZWNlaXZpbmcgaW50 ZXJydXB0DQo+ID4gKyAqCQkgIHdoaWxlIGRldmFwYyB2aW9sYXRpb24gaXMgdHJpZ2dlcmVkLg0K PiA+ICsgKi8NCj4gPiArc3RhdGljIHZvaWQgc3RhcnRfZGV2YXBjKHN0cnVjdCBtdGtfZGV2YXBj X2NvbnRleHQgKmRldmFwY19jdHgpDQo+ID4gK3sNCj4gPiArCXUzMiBzbGF2ZV90eXBlX251bSA9 IGRldmFwY19jdHgtPnNvYy0+c2xhdmVfdHlwZV9udW07DQo+ID4gKwljb25zdCBzdHJ1Y3QgbXRr X2RldmljZV9pbmZvICoqZGV2aWNlX2luZm87DQo+ID4gKwljb25zdCBzdHJ1Y3QgbXRrX2Rldmlj ZV9udW0gKm5kZXZpY2VzOw0KPiA+ICsJdm9pZCBfX2lvbWVtICpwZF92aW9fc2hpZnRfc3RhX3Jl ZzsNCj4gPiArCXZvaWQgX19pb21lbSAqcGRfYXBjX2Nvbl9yZWc7DQo+ID4gKwlpbnQgc2xhdmVf dHlwZSwgaSwgdmlvX2lkeCwgaW5kZXg7DQo+ID4gKwl1MzIgdmlvX3NoaWZ0X3N0YTsNCj4gPiAr DQo+ID4gKwluZGV2aWNlcyA9IGRldmFwY19jdHgtPnNvYy0+bmRldmljZXM7DQo+ID4gKw0KPiA+ ICsJZGV2aWNlX2luZm8gPSBkZXZhcGNfY3R4LT5zb2MtPmRldmljZV9pbmZvOw0KPiA+ICsNCj4g PiArCWZvciAoc2xhdmVfdHlwZSA9IDA7IHNsYXZlX3R5cGUgPCBzbGF2ZV90eXBlX251bTsgc2xh dmVfdHlwZSsrKSB7DQo+ID4gKwkJcGRfYXBjX2Nvbl9yZWcgPSBtdGtfZGV2YXBjX3BkX2dldChk ZXZhcGNfY3R4LCBzbGF2ZV90eXBlLA0KPiA+ICsJCQkJCQkgICBBUENfQ09OLCAwKTsNCj4gPiAr CQlwZF92aW9fc2hpZnRfc3RhX3JlZyA9IG10a19kZXZhcGNfcGRfZ2V0KGRldmFwY19jdHgsIHNs YXZlX3R5cGUsDQo+ID4gKwkJCQkJCQkgVklPX1NISUZUX1NUQSwgMCk7DQo+ID4gKw0KPiA+ICsJ CWlmICghcGRfYXBjX2Nvbl9yZWcgfHwgIXBkX3Zpb19zaGlmdF9zdGFfcmVnIHx8ICFkZXZpY2Vf aW5mbykNCj4gPiArCQkJcmV0dXJuOw0KPiA+ICsNCj4gPiArCQkvKiBDbGVhciBERVZBUEMgdmlv bGF0aW9uIHN0YXR1cyAqLw0KPiA+ICsJCXdyaXRlbChCSVQoMzEpLCBwZF9hcGNfY29uX3JlZyk7 DQo+ID4gKw0KPiA+ICsJCS8qIENsZWFyIHZpb2xhdGlvbiBzaGlmdCBzdGF0dXMgKi8NCj4gPiAr CQl2aW9fc2hpZnRfc3RhID0gcmVhZGwocGRfdmlvX3NoaWZ0X3N0YV9yZWcpOw0KPiA+ICsJCWlm ICh2aW9fc2hpZnRfc3RhKQ0KPiA+ICsJCQl3cml0ZWwodmlvX3NoaWZ0X3N0YSwgcGRfdmlvX3No aWZ0X3N0YV9yZWcpOw0KPiA+ICsNCj4gPiArCQkvKiBDbGVhciB0eXBlIDIgdmlvbGF0aW9uIHN0 YXR1cyAqLw0KPiA+ICsJCWNoZWNrX3R5cGUyX3Zpb19zdGF0dXMoZGV2YXBjX2N0eCwgc2xhdmVf dHlwZSwgJnZpb19pZHgsICZpKTsNCj4gPiArDQo+ID4gKwkJLyogQ2xlYXIgdmlvbGF0aW9uIHN0 YXR1cyAqLw0KPiA+ICsJCWZvciAoaSA9IDA7IGkgPCBuZGV2aWNlc1tzbGF2ZV90eXBlXS52aW9f c2xhdmVfbnVtOyBpKyspIHsNCj4gPiArCQkJdmlvX2lkeCA9IGRldmljZV9pbmZvW3NsYXZlX3R5 cGVdW2ldLnZpb19pbmRleDsNCj4gPiArCQkJaWYgKChjaGVja192aW9fc3RhdHVzKGRldmFwY19j dHgsIHNsYXZlX3R5cGUsIHZpb19pZHgpDQo+ID4gKwkJCQkJICAgICAgPT0gVklPTEFUSU9OX1RS SUdHRVJFRCkgJiYNCj4gPiArCQkJICAgICBjbGVhcl92aW9fc3RhdHVzKGRldmFwY19jdHgsIHNs YXZlX3R5cGUsDQo+ID4gKwkJCQkJICAgICAgdmlvX2lkeCkpIHsNCj4gPiArCQkJCXByX3dhcm4o UEZYICJDbGVhciB2aW8gc3RhdHVzIGZhaWxlZCwgc2xhdmVfdHlwZToweCV4LCB2aW9faW5kZXg6 MHgleFxuIiwNCj4gPiArCQkJCQlzbGF2ZV90eXBlLCB2aW9faWR4KTsNCj4gPiArDQo+ID4gKwkJ CQlpbmRleCA9IGk7DQo+ID4gKwkJCQltdGtfZGV2YXBjX2R1bXBfdmlvX2RiZyhkZXZhcGNfY3R4 LCBzbGF2ZV90eXBlLA0KPiA+ICsJCQkJCQkJJnZpb19pZHgsICZpbmRleCk7DQo+ID4gKwkJCQlp ID0gaW5kZXggLSAxOw0KPiA+ICsJCQl9DQo+ID4gKw0KPiA+ICsJCQltYXNrX21vZHVsZV9pcnEo ZGV2YXBjX2N0eCwgc2xhdmVfdHlwZSwgdmlvX2lkeCwgZmFsc2UpOw0KPiA+ICsJCX0NCj4gPiAr CX0NCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIERFRklORV9TUElOTE9DSyhkZXZhcGNfbG9j ayk7DQo+ID4gKw0KPiA+ICsvKg0KPiA+ICsgKiBkZXZhcGNfdmlvbGF0aW9uX2lycSAtIHRoZSBk ZXZhcGMgSW50ZXJydXB0IFNlcnZpY2UgUm91dGluZSAoSVNSKSB3aWxsIGR1bXANCj4gPiArICoJ CQkgIHZpb2xhdGlvbiBpbmZvcm1hdGlvbiBpbmNsdWRpbmcgd2hpY2ggbWFzdGVyIHZpb2xhdGVz DQo+ID4gKyAqCQkJICBhY2Nlc3Mgc2xhdmUuDQo+ID4gKyAqLw0KPiA+ICtzdGF0aWMgaXJxcmV0 dXJuX3QgZGV2YXBjX3Zpb2xhdGlvbl9pcnEoaW50IGlycV9udW1iZXIsDQo+ID4gKwkJCQkJc3Ry dWN0IG10a19kZXZhcGNfY29udGV4dCAqZGV2YXBjX2N0eCkNCj4gPiArew0KPiA+ICsJdTMyIHNs YXZlX3R5cGVfbnVtID0gZGV2YXBjX2N0eC0+c29jLT5zbGF2ZV90eXBlX251bTsNCj4gPiArCWNv bnN0IHN0cnVjdCBtdGtfZGV2aWNlX2luZm8gKipkZXZpY2VfaW5mbzsNCj4gPiArCXN0cnVjdCBt dGtfZGV2YXBjX3Zpb19pbmZvICp2aW9faW5mbzsNCj4gPiArCWludCBzbGF2ZV90eXBlLCB2aW9f aWR4LCBpbmRleDsNCj4gPiArCWNvbnN0IGNoYXIgKnZpb19tYXN0ZXI7DQo+ID4gKwl1bnNpZ25l ZCBsb25nIGZsYWdzOw0KPiA+ICsJdTggcGVybTsNCj4gPiArDQo+ID4gKwlzcGluX2xvY2tfaXJx c2F2ZSgmZGV2YXBjX2xvY2ssIGZsYWdzKTsNCj4gPiArDQo+ID4gKwlkZXZpY2VfaW5mbyA9IGRl dmFwY19jdHgtPnNvYy0+ZGV2aWNlX2luZm87DQo+ID4gKwl2aW9faW5mbyA9IGRldmFwY19jdHgt PnNvYy0+dmlvX2luZm87DQo+ID4gKwl2aW9faWR4ID0gLTE7DQo+ID4gKwlpbmRleCA9IC0xOw0K PiA+ICsNCj4gPiArCS8qIFRoZXJlIGFyZSBtdWx0aXBsZSBERVZBUENfUEQgKi8NCj4gPiArCWZv ciAoc2xhdmVfdHlwZSA9IDA7IHNsYXZlX3R5cGUgPCBzbGF2ZV90eXBlX251bTsgc2xhdmVfdHlw ZSsrKSB7DQo+ID4gKwkJaWYgKCFjaGVja190eXBlMl92aW9fc3RhdHVzKGRldmFwY19jdHgsIHNs YXZlX3R5cGUsICZ2aW9faWR4LA0KPiA+ICsJCQkJCSAgICAmaW5kZXgpKQ0KPiA+ICsJCQlpZiAo IW10a19kZXZhcGNfZHVtcF92aW9fZGJnKGRldmFwY19jdHgsIHNsYXZlX3R5cGUsDQo+ID4gKwkJ CQkJCSAgICAgJnZpb19pZHgsICZpbmRleCkpDQo+ID4gKwkJCQljb250aW51ZTsNCj4gPiArDQo+ ID4gKwkJLyogRW5zdXJlIHRoYXQgdmlvbGF0aW9uIGluZm8gYXJlIHdyaXR0ZW4gYmVmb3JlDQo+ ID4gKwkJICogZnVydGhlciBvcGVyYXRpb25zDQo+ID4gKwkJICovDQo+ID4gKwkJc21wX21iKCk7 DQo+ID4gKw0KPiA+ICsJCW1hc2tfbW9kdWxlX2lycShkZXZhcGNfY3R4LCBzbGF2ZV90eXBlLCB2 aW9faWR4LCB0cnVlKTsNCj4gPiArDQo+ID4gKwkJY2xlYXJfdmlvX3N0YXR1cyhkZXZhcGNfY3R4 LCBzbGF2ZV90eXBlLCB2aW9faWR4KTsNCj4gPiArDQo+ID4gKwkJcGVybSA9IGdldF9wZXJtaXNz aW9uKGRldmFwY19jdHgsIHNsYXZlX3R5cGUsIGluZGV4LA0KPiA+ICsJCQkJICAgICAgdmlvX2lu Zm8tPmRvbWFpbl9pZCk7DQo+ID4gKw0KPiA+ICsJCXZpb19tYXN0ZXIgPSBkZXZhcGNfY3R4LT5z b2MtPm1hc3Rlcl9nZXQNCj4gPiArCQkJKHZpb19pbmZvLT5tYXN0ZXJfaWQsDQo+ID4gKwkJCSB2 aW9faW5mby0+dmlvX2FkZHIsDQo+ID4gKwkJCSBzbGF2ZV90eXBlLA0KPiA+ICsJCQkgdmlvX2lu Zm8tPnNoaWZ0X3N0YV9iaXQsDQo+ID4gKwkJCSB2aW9faW5mby0+ZG9tYWluX2lkKTsNCj4gPiAr DQo+ID4gKwkJaWYgKCF2aW9fbWFzdGVyKQ0KPiA+ICsJCQl2aW9fbWFzdGVyID0gIlVOS05PV05f TUFTVEVSIjsNCj4gPiArDQo+ID4gKwkJcHJfaW5mbyhQRlggIlZpb2xhdGlvbiAtIHNsYXZlX3R5 cGU6MHgleCwgc3lzX2luZGV4OjB4JXgsIGN0cmxfaW5kZXg6MHgleCwgdmlvX2luZGV4OjB4JXhc biIsDQo+ID4gKwkJCXNsYXZlX3R5cGUsDQo+ID4gKwkJCWRldmljZV9pbmZvW3NsYXZlX3R5cGVd W2luZGV4XS5zeXNfaW5kZXgsDQo+ID4gKwkJCWRldmljZV9pbmZvW3NsYXZlX3R5cGVdW2luZGV4 XS5jdHJsX2luZGV4LA0KPiA+ICsJCQlkZXZpY2VfaW5mb1tzbGF2ZV90eXBlXVtpbmRleF0udmlv X2luZGV4KTsNCj4gPiArDQo+ID4gKwkJcHJfaW5mbyhQRlggIlZpb2xhdGlvbiBNYXN0ZXI6ICVz XG4iLCB2aW9fbWFzdGVyKTsNCj4gPiArDQo+ID4gKwkJZGV2YXBjX3Zpb19yZWFzb24ocGVybSk7 DQo+ID4gKw0KPiA+ICsJCW1hc2tfbW9kdWxlX2lycShkZXZhcGNfY3R4LCBzbGF2ZV90eXBlLCB2 aW9faWR4LCBmYWxzZSk7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJc3Bpbl91bmxvY2tfaXJxcmVz dG9yZSgmZGV2YXBjX2xvY2ssIGZsYWdzKTsNCj4gPiArCXJldHVybiBJUlFfSEFORExFRDsNCj4g PiArfQ0KPiA+ICsNCj4gPiAraW50IG10a19kZXZhcGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldiwgc3RydWN0IG10a19kZXZhcGNfc29jICpzb2MpDQo+ID4gK3sNCj4gPiArCXN0 cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSA9IHBkZXYtPmRldi5vZl9ub2RlOw0KPiA+ICsJc3RydWN0 IG10a19kZXZhcGNfY29udGV4dCAqZGV2YXBjX2N0eDsNCj4gPiArCXUzMiBzbGF2ZV90eXBlX251 bTsNCj4gPiArCWludCBzbGF2ZV90eXBlOw0KPiA+ICsJaW50IHJldDsNCj4gPiArDQo+ID4gKwlp ZiAoSVNfRVJSKG5vZGUpKQ0KPiA+ICsJCXJldHVybiAtRU5PREVWOw0KPiA+ICsNCj4gPiArCWRl dmFwY19jdHggPSBkZXZtX2t6YWxsb2MoJnBkZXYtPmRldiwgc2l6ZW9mKHN0cnVjdCBtdGtfZGV2 YXBjX2NvbnRleHQpLA0KPiA+ICsJCQkJICBHRlBfS0VSTkVMKTsNCj4gPiArCWlmICghZGV2YXBj X2N0eCkNCj4gPiArCQlyZXR1cm4gLUVOT01FTTsNCj4gPiArDQo+ID4gKwlkZXZhcGNfY3R4LT5z b2MgPSBzb2M7DQo+ID4gKwlzbGF2ZV90eXBlX251bSA9IGRldmFwY19jdHgtPnNvYy0+c2xhdmVf dHlwZV9udW07DQo+ID4gKw0KPiA+ICsJZm9yIChzbGF2ZV90eXBlID0gMDsgc2xhdmVfdHlwZSA8 IHNsYXZlX3R5cGVfbnVtOyBzbGF2ZV90eXBlKyspIHsNCj4gPiArCQlkZXZhcGNfY3R4LT5kZXZh cGNfcGRfYmFzZVtzbGF2ZV90eXBlXSA9DQo+ID4gKwkJCW9mX2lvbWFwKG5vZGUsIHNsYXZlX3R5 cGUpOw0KPiA+ICsJCWlmICghZGV2YXBjX2N0eC0+ZGV2YXBjX3BkX2Jhc2Vbc2xhdmVfdHlwZV0p DQo+ID4gKwkJCXJldHVybiAtRUlOVkFMOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCWRldmFwY19j dHgtPmluZnJhY2ZnX2Jhc2UgPSBvZl9pb21hcChub2RlLCBzbGF2ZV90eXBlX251bSArIDEpOw0K PiA+ICsJaWYgKCFkZXZhcGNfY3R4LT5pbmZyYWNmZ19iYXNlKQ0KPiA+ICsJCXJldHVybiAtRUlO VkFMOw0KPiA+ICsNCj4gPiArCWRldmFwY19jdHgtPmRldmFwY19pcnEgPSBpcnFfb2ZfcGFyc2Vf YW5kX21hcChub2RlLCAwKTsNCj4gPiArCWlmICghZGV2YXBjX2N0eC0+ZGV2YXBjX2lycSkNCj4g PiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gPiArDQo+ID4gKwkvKiBDQ0YgKENvbW1vbiBDbG9jayBG cmFtZXdvcmspICovDQo+ID4gKwlkZXZhcGNfY3R4LT5kZXZhcGNfaW5mcmFfY2xrID0gZGV2bV9j bGtfZ2V0KCZwZGV2LT5kZXYsDQo+ID4gKwkJCQkJCSAgICAiZGV2YXBjLWluZnJhLWNsb2NrIik7 DQo+ID4gKw0KPiA+ICsJaWYgKElTX0VSUihkZXZhcGNfY3R4LT5kZXZhcGNfaW5mcmFfY2xrKSkN Cj4gPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gPiArDQo+ID4gKwlpZiAoY2xrX3ByZXBhcmVfZW5h YmxlKGRldmFwY19jdHgtPmRldmFwY19pbmZyYV9jbGspKQ0KPiA+ICsJCXJldHVybiAtRUlOVkFM Ow0KPiA+ICsNCj4gPiArCXN0YXJ0X2RldmFwYyhkZXZhcGNfY3R4KTsNCj4gPiArDQo+ID4gKwly ZXQgPSBkZXZtX3JlcXVlc3RfaXJxKCZwZGV2LT5kZXYsIGRldmFwY19jdHgtPmRldmFwY19pcnEs DQo+ID4gKwkJCSAgICAgICAoaXJxX2hhbmRsZXJfdClkZXZhcGNfdmlvbGF0aW9uX2lycSwNCj4g PiArCQkJICAgICAgIElSUUZfVFJJR0dFUl9OT05FLCAiZGV2YXBjIiwgZGV2YXBjX2N0eCk7DQo+ ID4gKwlpZiAocmV0KQ0KPiA+ICsJCXJldHVybiByZXQ7DQo+ID4gKw0KPiA+ICsJcmV0dXJuIDA7 DQo+ID4gK30NCj4gPiArDQo+ID4gK2ludCBtdGtfZGV2YXBjX3JlbW92ZShzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpkZXYpDQo+ID4gK3sNCj4gPiArCXJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0K PiA+ICtNT0RVTEVfREVTQ1JJUFRJT04oIk1lZGlhdGVrIERldmljZSBBUEMgRHJpdmVyIik7DQo+ ID4gK01PRFVMRV9BVVRIT1IoIk5lYWwgTGl1IDxuZWFsLmxpdUBtZWRpYXRlay5jb20+Iik7DQo+ ID4gK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zb2Mv bWVkaWF0ZWsvZGV2YXBjL2RldmFwYy1tdGstbXVsdGktYW8uaCBiL2RyaXZlcnMvc29jL21lZGlh dGVrL2RldmFwYy9kZXZhcGMtbXRrLW11bHRpLWFvLmgNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KPiA+IGluZGV4IDAwMDAwMDAuLjFlNThhM2UNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysr IGIvZHJpdmVycy9zb2MvbWVkaWF0ZWsvZGV2YXBjL2RldmFwYy1tdGstbXVsdGktYW8uaA0KPiA+ IEBAIC0wLDAgKzEsMTgyIEBADQo+ID4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwt Mi4wICovDQo+ID4gKy8qDQo+ID4gKyAqIENvcHlyaWdodCAoQykgMjAyMCBNZWRpYVRlayBJbmMu DQo+ID4gKyAqLw0KPiA+ICsNCj4gPiArI2lmbmRlZiBfX0RFVkFQQ19NVEtfTVVMVElfQU9fSF9f DQo+ID4gKyNkZWZpbmUgX19ERVZBUENfTVRLX01VTFRJX0FPX0hfXw0KPiA+ICsNCj4gPiArI2lu Y2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvdHlw ZXMuaD4NCj4gPiArDQo+ID4gKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCj4gPiArICogVkFSSUFC TEUgREVGSU5BVElPTg0KPiA+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KPiA+ICsjZGVmaW5l IE1PRF9OT19JTl8xX0RFVkFQQwkxNg0KPiA+ICsjZGVmaW5lIFZJT0xBVElPTl9UUklHR0VSRUQJ MQ0KPiA+ICsjZGVmaW5lIFZJT0xBVElPTl9NQVNLRUQJMQ0KPiA+ICsjZGVmaW5lIERFQUQJCQkw eGRlYWRiZWFmDQo+ID4gKyNkZWZpbmUgUEZYCQkJIltERVZBUENdOiAiDQo+ID4gKyNkZWZpbmUg U0xBVkVfVFlQRV9OVU1fTUFYCTUNCj4gPiArDQo+ID4gKyNkZWZpbmUgZGV2YXBjX2xvZyhwLCBz LCBmbXQsIGFyZ3MuLi4pIFwNCj4gPiArCWRvIHsgXA0KPiA+ICsJCXR5cGVvZihwKSAoX3ApID0g KHApOyBcDQo+ID4gKwkJKChfcCkgKz0gc2NucHJpbnRmKF9wLCBzaXplb2YocykgLSBzdHJsZW4o cyksIGZtdCwgIyNhcmdzKSk7IFwNCj4gPiArCX0gd2hpbGUgKDApDQo+ID4gKw0KPiA+ICsjZGVm aW5lIFVOVVNFRCh4KQkJKHZvaWQpKHgpDQo+ID4gKw0KPiA+ICsvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqDQo+ID4gKyAqIERBVEEgU1RSVUNUVVJFICYgRlVOQ1RJT04gREVGSU5BVElPTg0KPiA+ICsg KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLw0KPiA+ICtlbnVtIERFVkFQQ19QRF9SRUdfVFlQRSB7DQo+ ID4gKwlWSU9fTUFTSyA9IDAsDQo+ID4gKwlWSU9fU1RBLA0KPiA+ICsJVklPX0RCRzAsDQo+ID4g KwlWSU9fREJHMSwNCj4gPiArCVZJT19EQkcyLA0KPiA+ICsJQVBDX0NPTiwNCj4gPiArCVZJT19T SElGVF9TVEEsDQo+ID4gKwlWSU9fU0hJRlRfU0VMLA0KPiA+ICsJVklPX1NISUZUX0NPTiwNCj4g PiArCVBEX1JFR19UWVBFX05VTSwNCj4gPiArfTsNCj4gPiArDQo+ID4gK2VudW0gREVWQVBDX1VU X0NNRCB7DQo+ID4gKwlERVZBUENfVVRfREFQQ19WSU8gPSAxLA0KPiA+ICsJREVWQVBDX1VUX1NS QU1fVklPLA0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArZW51bSBERVZBUENfRE9NX0lEIHsNCj4gPiAr CURPTUFJTl8wID0gMCwNCj4gPiArCURPTUFJTl8xLA0KPiA+ICsJRE9NQUlOXzIsDQo+ID4gKwlE T01BSU5fMywNCj4gPiArCURPTUFJTl80LA0KPiA+ICsJRE9NQUlOXzUsDQo+ID4gKwlET01BSU5f NiwNCj4gPiArCURPTUFJTl83LA0KPiA+ICsJRE9NQUlOXzgsDQo+ID4gKwlET01BSU5fOSwNCj4g PiArCURPTUFJTl8xMCwNCj4gPiArCURPTUFJTl8xMSwNCj4gPiArCURPTUFJTl8xMiwNCj4gPiAr CURPTUFJTl8xMywNCj4gPiArCURPTUFJTl8xNCwNCj4gPiArCURPTUFJTl8xNSwNCj4gPiArCURP TUFJTl9PVEhFUlMsDQo+ID4gK307DQo+ID4gKw0KPiA+ICtlbnVtIFNSQU1ST01fVklPIHsNCj4g PiArCVJPTV9WSU9MQVRJT04gPSAwLA0KPiA+ICsJU1JBTV9WSU9MQVRJT04sDQo+ID4gK307DQo+ ID4gKw0KPiA+ICtlbnVtIERFVkFQQ19QRVJNX1RZUEUgew0KPiA+ICsJTk9fUFJPVEVDVElPTiA9 IDAsDQo+ID4gKwlTRUNfUldfT05MWSwNCj4gPiArCVNFQ19SV19OU19SLA0KPiA+ICsJRk9SQklE REVOLA0KPiA+ICsJUEVSTV9UWVBFX05VTSwNCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0cnVjdCBt dGtfZGV2YXBjX2RiZ19zdGF0dXMgew0KPiA+ICsJYm9vbCBlbmFibGVfdXQ7DQo+ID4gKwlib29s IGVuYWJsZV9kYXBjOyAvKiBkdW1wIEFQQyAqLw0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArc3RydWN0 IG10a19kZXZpY2VfaW5mbyB7DQo+ID4gKwlpbnQgc3lzX2luZGV4Ow0KPiA+ICsJaW50IGN0cmxf aW5kZXg7DQo+ID4gKwlpbnQgdmlvX2luZGV4Ow0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArc3RydWN0 IG10a19kZXZpY2VfbnVtIHsNCj4gPiArCWludCBzbGF2ZV90eXBlOw0KPiA+ICsJdTMyIHZpb19z bGF2ZV9udW07DQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdHJ1Y3QgbXRrX2RldmFwY192aW9faW5m byB7DQo+ID4gKwlib29sIHJlYWQ7DQo+ID4gKwlib29sIHdyaXRlOw0KPiA+ICsJdTMyIHZpb19h ZGRyOw0KPiA+ICsJdTMyIHZpb19hZGRyX2hpZ2g7DQo+ID4gKwl1MzIgbWFzdGVyX2lkOw0KPiA+ ICsJdTMyIGRvbWFpbl9pZDsNCj4gPiArCWludCAqdmlvX21hc2tfc3RhX251bTsNCj4gPiArCWlu dCBzcmFtcm9tX3Nsdl90eXBlOw0KPiA+ICsJaW50IHNyYW1yb21fdmlvX2lkeDsNCj4gPiArCWlu dCBtbTJuZF9zbHZfdHlwZTsNCj4gPiArCWludCBtZHBfdmlvX2lkeDsNCj4gPiArCWludCBkaXNw Ml92aW9faWR4Ow0KPiA+ICsJaW50IG1tc3lzX3Zpb19pZHg7DQo+ID4gKwlpbnQgc2hpZnRfc3Rh X2JpdDsNCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0cnVjdCBtdGtfaW5mcmFfdmlvX2RiZ19kZXNj IHsNCj4gPiArCXUzMiB2aW9fZGJnX21zdGlkOw0KPiA+ICsJdTggdmlvX2RiZ19tc3RpZF9zdGFy dF9iaXQ7DQo+ID4gKwl1MzIgdmlvX2RiZ19kbW5pZDsNCj4gPiArCXU4IHZpb19kYmdfZG1uaWRf c3RhcnRfYml0Ow0KPiA+ICsJdTMyIHZpb19kYmdfd192aW87DQo+ID4gKwl1OCB2aW9fZGJnX3df dmlvX3N0YXJ0X2JpdDsNCj4gPiArCXUzMiB2aW9fZGJnX3JfdmlvOw0KPiA+ICsJdTggdmlvX2Ri Z19yX3Zpb19zdGFydF9iaXQ7DQo+ID4gKwl1MzIgdmlvX2FkZHJfaGlnaDsNCj4gPiArCXU4IHZp b19hZGRyX2hpZ2hfc3RhcnRfYml0Ow0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArc3RydWN0IG10a19z cmFtcm9tX3NlY192aW9fZGVzYyB7DQo+ID4gKwl1MzIgdmlvX2lkX21hc2s7DQo+ID4gKwl1OCB2 aW9faWRfc2hpZnQ7DQo+ID4gKwl1MzIgdmlvX2RvbWFpbl9tYXNrOw0KPiA+ICsJdTggdmlvX2Rv bWFpbl9zaGlmdDsNCj4gPiArCXUzMiB2aW9fcndfbWFzazsNCj4gPiArCXU4IHZpb19yd19zaGlm dDsNCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0cnVjdCBtdGtfZGV2YXBjX3BkX2Rlc2Mgew0KPiA+ ICsJdTMyIHBkX3Zpb19tYXNrX29mZnNldDsNCj4gPiArCXUzMiBwZF92aW9fc3RhX29mZnNldDsN Cj4gPiArCXUzMiBwZF92aW9fZGJnMF9vZmZzZXQ7DQo+ID4gKwl1MzIgcGRfdmlvX2RiZzFfb2Zm c2V0Ow0KPiA+ICsJdTMyIHBkX2FwY19jb25fb2Zmc2V0Ow0KPiA+ICsJdTMyIHBkX3NoaWZ0X3N0 YV9vZmZzZXQ7DQo+ID4gKwl1MzIgcGRfc2hpZnRfc2VsX29mZnNldDsNCj4gPiArCXUzMiBwZF9z aGlmdF9jb25fb2Zmc2V0Ow0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArc3RydWN0IG10a19kZXZhcGNf c29jIHsNCj4gPiArCXN0cnVjdCBtdGtfZGV2YXBjX2RiZ19zdGF0dXMgKmRiZ19zdGF0Ow0KPiA+ ICsJY29uc3QgY2hhciAqIGNvbnN0ICpzbGF2ZV90eXBlX2FycjsNCj4gPiArCXUzMiBzbGF2ZV90 eXBlX251bTsNCj4gPiArCWNvbnN0IHN0cnVjdCBtdGtfZGV2aWNlX2luZm8gKmRldmljZV9pbmZv W1NMQVZFX1RZUEVfTlVNX01BWF07DQo+ID4gKwljb25zdCBzdHJ1Y3QgbXRrX2RldmljZV9udW0g Km5kZXZpY2VzOw0KPiA+ICsJc3RydWN0IG10a19kZXZhcGNfdmlvX2luZm8gKnZpb19pbmZvOw0K PiA+ICsJY29uc3Qgc3RydWN0IG10a19pbmZyYV92aW9fZGJnX2Rlc2MgKnZpb19kYmdzOw0KPiA+ ICsJY29uc3Qgc3RydWN0IG10a19zcmFtcm9tX3NlY192aW9fZGVzYyAqc3JhbXJvbV9zZWNfdmlv czsNCj4gPiArCWNvbnN0IHUzMiAqZGV2YXBjX3BkczsNCj4gPiArDQo+ID4gKwkvKiBwbGF0Zm9y bSBzcGVjaWZpYyBvcGVyYXRpb25zICovDQo+ID4gKwljb25zdCBjaGFyKiAoKm1hc3Rlcl9nZXQp KHUzMiBidXNfaWQsIHUzMiB2aW9fYWRkciwNCj4gPiArCQkJCSAgaW50IHNsYXZlX3R5cGUsIGlu dCBzaGlmdF9zdGFfYml0LA0KPiA+ICsJCQkJICBpbnQgZG9tYWluKTsNCj4gPiArCXZvaWQgKCpt bTJuZF92aW9faGFuZGxlcikodm9pZCBfX2lvbWVtICppbmZyYWNmZywNCj4gPiArCQkJCSAgc3Ry dWN0IG10a19kZXZhcGNfdmlvX2luZm8gKnZpb19pbmZvLA0KPiA+ICsJCQkJICBib29sIG1kcF92 aW8sIGJvb2wgZGlzcDJfdmlvLCBib29sIG1tc3lzX3Zpbyk7DQo+ID4gKwl1MzIgKCpzaGlmdF9n cm91cF9nZXQpKGludCBzbGF2ZV90eXBlLCB1MzIgdmlvX2luZGV4KTsNCj4gPiArfTsNCj4gPiAr DQo+ID4gK3N0cnVjdCBtdGtfZGV2YXBjX2NvbnRleHQgew0KPiA+ICsJc3RydWN0IGNsayAqZGV2 YXBjX2luZnJhX2NsazsNCj4gPiArCXUzMiBkZXZhcGNfaXJxOw0KPiA+ICsJdm9pZCBfX2lvbWVt ICpkZXZhcGNfcGRfYmFzZVs0XTsNCj4gPiArCXZvaWQgX19pb21lbSAqaW5mcmFjZmdfYmFzZTsN Cj4gPiArCXN0cnVjdCBtdGtfZGV2YXBjX3NvYyAqc29jOw0KPiA+ICt9Ow0KPiA+ICsNCj4gPiAr aW50IG10a19kZXZhcGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgc3RydWN0 IG10a19kZXZhcGNfc29jICpzb2MpOw0KPiA+ICtpbnQgbXRrX2RldmFwY19yZW1vdmUoc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqZGV2KTsNCj4gPiArDQo+ID4gKyNlbmRpZiAvKiBfX0RFVkFQQ19N VEtfTVVMVElfQU9fSF9fICovDQo+ID4gDQoNCg==