From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Yu, Xiangliang" Subject: RE: [V2 06/11] drm/amdgpu/virt: implement VI virt operation interfaces Date: Tue, 10 Jan 2017 14:17:26 +0000 Message-ID: References: <1484042450-22987-1-git-send-email-Xiangliang.Yu@amd.com> <1484042450-22987-7-git-send-email-Xiangliang.Yu@amd.com> <33a2d958-38cd-09aa-2bc2-4b3795cba4d4@vodafone.de> <91042d0c-f0ad-4969-04c8-b4926a6b5d2f@vodafone.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <91042d0c-f0ad-4969-04c8-b4926a6b5d2f-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org> Content-Language: en-US List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: =?utf-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBDaHJpc3RpYW4gS8O2bmlnIFtt YWlsdG86ZGVhdGhzaW1wbGVAdm9kYWZvbmUuZGVdDQo+IFNlbnQ6IFR1ZXNkYXksIEphbnVhcnkg MTAsIDIwMTcgMTA6MDYgUE0NCj4gVG86IFl1LCBYaWFuZ2xpYW5nIDxYaWFuZ2xpYW5nLll1QGFt ZC5jb20+OyBhbWQtDQo+IGdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj4gU3ViamVjdDogUmU6 IFtWMiAwNi8xMV0gZHJtL2FtZGdwdS92aXJ0OiBpbXBsZW1lbnQgVkkgdmlydCBvcGVyYXRpb24N Cj4gaW50ZXJmYWNlcw0KPiANCj4gQW0gMTAuMDEuMjAxNyB1bSAxNDo0MyBzY2hyaWViIFl1LCBY aWFuZ2xpYW5nOg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBD aHJpc3RpYW4gS8O2bmlnIFttYWlsdG86ZGVhdGhzaW1wbGVAdm9kYWZvbmUuZGVdDQo+ID4+IFNl bnQ6IFR1ZXNkYXksIEphbnVhcnkgMTAsIDIwMTcgOTozMCBQTQ0KPiA+PiBUbzogWXUsIFhpYW5n bGlhbmcgPFhpYW5nbGlhbmcuWXVAYW1kLmNvbT47IGFtZC0NCj4gPj4gZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZw0KPiA+PiBTdWJqZWN0OiBSZTogW1YyIDA2LzExXSBkcm0vYW1kZ3B1L3ZpcnQ6 IGltcGxlbWVudCBWSSB2aXJ0IG9wZXJhdGlvbg0KPiA+PiBpbnRlcmZhY2VzDQo+ID4+DQo+ID4+ IEFtIDEwLjAxLjIwMTcgdW0gMTQ6MjAgc2NocmllYiBZdSwgWGlhbmdsaWFuZzoNCj4gPj4+PiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+IEZyb206IENocmlzdGlhbiBLw7ZuaWcg W21haWx0bzpkZWF0aHNpbXBsZUB2b2RhZm9uZS5kZV0NCj4gPj4+PiBTZW50OiBUdWVzZGF5LCBK YW51YXJ5IDEwLCAyMDE3IDk6MTYgUE0NCj4gPj4+PiBUbzogWXUsIFhpYW5nbGlhbmcgPFhpYW5n bGlhbmcuWXVAYW1kLmNvbT47IGFtZC0NCj4gPj4+PiBnZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn DQo+ID4+Pj4gU3ViamVjdDogUmU6IFtWMiAwNi8xMV0gZHJtL2FtZGdwdS92aXJ0OiBpbXBsZW1l bnQgVkkgdmlydA0KPiA+Pj4+IG9wZXJhdGlvbiBpbnRlcmZhY2VzDQo+ID4+Pj4NCj4gPj4+PiBV bnJlbGF0ZWQgdG8gdGhlIHBhdGNoLCBidXQgd2hhdCBlZGl0b3IgYW5kIHNldHRpbmdzIGRvIHlv dSB1c2U/DQo+ID4+PiBWaW0NCj4gPj4gZGl0by4NCj4gPj4NCj4gPj4+PiBTZWUgdGhpcyBjb2Rl IGZvciBleGFtcGxlDQo+ID4+Pj4+ICsJcmVnID0gUkVHX1NFVF9GSUVMRChyZWcsIE1BSUxCT1hf Q09OVFJPTCwNCj4gPj4+Pj4gKwkJCQkgVFJOX01TR19WQUxJRCwgdmFsID8gMSA6IDApOw0KPiA+ Pj4+IFRoZSBpbmRlbnRhdGlvbiBzZWVtcyB0byBiZSBpbmNvcnJlY3QuDQo+ID4+PiBJbiBteSBw bGF0Zm9ybSwgdGhlcmUgaXMgbm8gcHJvYmxlbS4NCj4gPj4gQXJlIHlvdSB1c2luZyBsaW51eHN0 eS52aW0gb3Igc29tZXRoaW5nIGVsc2U/DQo+ID4gTm8sIEkgY29uZmlndXJlIGl0IGJ5IG15c2Vs Zi4NCj4gDQo+IEFoLCB0aGVyZSBpdCBjb21lcyBmcm9tLiBQbGVhc2UgdXNlIGxpbnV4c3R5LnZp bSBvciBhbnkgb3RoZXIgcHJlZGVmaW5lZCBzZXQNCj4gb2Ygc2V0dGluZyBmb3IgdmltLg0KPiAN Cj4gQ29uZmlndXJpbmcgaXQgeW91cnNlbGYgaXMgdXN1YWxseSBub3QgYSBnb29kIGlkZWEsIGNh dXNlIHRoYXQgY2FuIGVhc2lseSBsZWFkIHRvDQo+IHNsaWdodGx5IGRpZmZlcmVudCBjb2Rpbmcg c3R5bGVzLg0KDQpBbGwgcmlnaHQNCg0KPiANCj4gPg0KPiA+PiBJZiBJJ20gbm90IGNvbXBsZXRl bHkgbWlzdGFrZW4gIlRSTl9NU0dfVkFMSUQiIHNob3VsZCBiZSBvbiB0aGUgc2FtZQ0KPiA+PiBp bmRlbnRhdGlvbiBhcyAicmVnIiBhbmQgbm90IGFzICJNQUlMQk9YX0NPTlRST0wiLg0KPiA+IEkg dGhpbmsgaXQgc2hvdWxkIGJlIG9uIHNhbWUgYXMgIk1BSUxCT1hfQ09OVFJPTCIgYXMgaXQgaXMg YWxzbyBtYWNybyBhbmQNCj4gY2FwaXRhbC4NCj4gDQo+IE5vLCBmdW5jdGlvbiBhcmd1bWVudHMg YnJva2VuIHRvIHRoZSBuZXh0IGxpbmUgc2hvdWxkIHN0YXJ0IGF0IHRoZSBzYW1lDQo+IHBsYWNl IGFzIHRoZSAiKCIgb2YgdGhlIHByZXZpb3VzIGxpbmUuDQo+IA0KPiBTZWUgdGhlIG90aGVyIGNv ZGUgaW4gYW1kZ3B1IGFzIHdlbGwgb3IganVzdCB1c2UgbGludXhzdHkuDQoNCkdvdCBpdC4gSSds bCBhbHNvIGNoZWNrIG90aGVyIGNvZGUgbGF0ZXINCg0KPiANCj4gUmVnYXJkcywNCj4gQ2hyaXN0 aWFuLg0KPiANCj4gPg0KPiA+Pj4+IE5vdCBtdWNoIG9mIGEgcHJvYmxlbSwgYnV0IGlmIHdlIGFk ZCB0aGlzIGxpa2UgaXQgaXMgYW55Ym9keSBlbHNlDQo+ID4+Pj4gZWRpdGluZyB0aGUgZmlsZSBj b3VsZCBtZXNzIHVwIHRoZSBpbmRlbnRhdGlvbiB3aGVuIHRoZSBlZGl0b3IgZG9lcw0KPiB0aGF0 DQo+ID4+IGRpZmZlcmVudGx5Lg0KPiA+Pj4+IFJlZ2FyZHMsDQo+ID4+Pj4gQ2hyaXN0aWFuLg0K PiA+Pj4+DQo+ID4+Pj4gQW0gMTAuMDEuMjAxNyB1bSAxMTowMCBzY2hyaWViIFhpYW5nbGlhbmcg WXU6DQo+ID4+Pj4+IFZJIGhhcyBhc2ljIHNwZWNpZmljIHZpcnQgc3VwcG9ydCwgd2hpY2ggaW5j bHVkaW5nIG1haWxib3ggYW5kDQo+ID4+Pj4+IGdvbGRlbiByZWdpc3RlcnMgaW5pdC4NCj4gPj4+ Pj4NCj4gPj4+Pj4gU2lnbmVkLW9mZi1ieTogWGlhbmdsaWFuZyBZdSA8WGlhbmdsaWFuZy5ZdUBh bWQuY29tPg0KPiA+Pj4+PiAtLS0NCj4gPj4+Pj4gICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L01ha2VmaWxlICAgICAgfCAgIDIgKy0NCj4gPj4+Pj4gICAgIGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmggfCAgIDMgKw0KPiA+Pj4+PiAgICAgZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvbXhncHVfdmkuYyAgICB8IDU5Mg0KPiA+Pj4+ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysNCj4gPj4+Pj4gICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L214Z3B1X3ZpLmggICAgfCAgNTUgKysrDQo+ID4+Pj4+ICAgICA0IGZpbGVzIGNoYW5nZWQsIDY1 MSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+ID4+Pj4+ICAgICBjcmVhdGUgbW9kZSAx MDA2NDQgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbXhncHVfdmkuYw0KPiA+Pj4+PiAgICAg Y3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L214Z3B1X3ZpLmgN Cj4gPj4+Pj4NCj4gPj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L01ha2VmaWxlDQo+ID4+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvTWFrZWZpbGUN Cj4gPj4+Pj4gaW5kZXggMGI4ZTQ3MC4uMzg4ZTdiMCAxMDA2NDQNCj4gPj4+Pj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvTWFrZWZpbGUNCj4gPj4+Pj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvTWFrZWZpbGUNCj4gPj4+Pj4gQEAgLTQwLDcgKzQwLDcgQEAgYW1k Z3B1LSQoQ09ORklHX0RSTV9BTURHUFVfQ0lLKSs9DQo+IGNpay5vDQo+ID4+Pj4gY2lrX2loLm8g a3Zfc21jLm8ga3ZfZHBtLm8gXA0KPiA+Pj4+PiAgICAgYW1kZ3B1LSQoQ09ORklHX0RSTV9BTURH UFVfU0kpKz0gc2kubyBnbWNfdjZfMC5vDQo+IGdmeF92Nl8wLm8NCj4gPj4+PiBzaV9paC5vDQo+ ID4+Pj4+IHNpX2RtYS5vIGRjZV92Nl8wLm8gc2lfZHBtLm8gc2lfc21jLm8NCj4gPj4+Pj4NCj4g Pj4+Pj4gICAgIGFtZGdwdS15ICs9IFwNCj4gPj4+Pj4gLQl2aS5vDQo+ID4+Pj4+ICsJdmkubyBt eGdwdV92aS5vDQo+ID4+Pj4+DQo+ID4+Pj4+ICAgICAjIGFkZCBHTUMgYmxvY2sNCj4gPj4+Pj4g ICAgIGFtZGdwdS15ICs9IFwNCj4gPj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmgNCj4gPj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfdmlydC5oDQo+ID4+Pj4+IGluZGV4IDNmOGZjMGYuLjYxMTY3NmIgMTAwNjQ0 DQo+ID4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmgN Cj4gPj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZpcnQuaA0K PiA+Pj4+PiBAQCAtNDUsNiArNDUsOSBAQCBzdHJ1Y3QgYW1kZ3B1X3ZpcnQgew0KPiA+Pj4+PiAg ICAgCXVpbnQzMl90CQl2YWxfb2ZmczsNCj4gPj4+Pj4gICAgIAlzdHJ1Y3QgbXV0ZXgJCWxvY2s7 DQo+ID4+Pj4+DQo+ID4+Pj4+ICsJc3RydWN0IGFtZGdwdV9pcnFfc3JjCQlhY2tfaXJxOw0KPiA+ Pj4+PiArCXN0cnVjdCBhbWRncHVfaXJxX3NyYwkJcmN2X2lycTsNCj4gPj4+Pj4gKwlzdHJ1Y3Qg ZGVsYXllZF93b3JrCQlmbHJfd29yazsNCj4gPj4+Pj4gICAgIAljb25zdCBzdHJ1Y3QgYW1kZ3B1 X3ZpcnRfb3BzCSpvcHM7DQo+ID4+Pj4+ICAgICB9Ow0KPiA+Pj4+Pg0KPiA+Pj4+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbXhncHVfdmkuYw0KPiA+Pj4+PiBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L214Z3B1X3ZpLmMNCj4gPj4+Pj4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCj4gPj4+Pj4gaW5kZXggMDAwMDAwMC4uN2Q0NDY2Mw0KPiA+Pj4+PiAtLS0gL2Rl di9udWxsDQo+ID4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L214Z3B1X3Zp LmMNCj4gPj4+Pj4gQEAgLTAsMCArMSw1OTIgQEANCj4gPj4+Pj4gKy8qDQo+ID4+Pj4+ICsgKiBD b3B5cmlnaHQgMjAxNyBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuDQo+ID4+Pj4+ICsgKg0K PiA+Pj4+PiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2Us IHRvIGFueSBwZXJzb24NCj4gPj4+Pj4gK29idGFpbmluZyBhDQo+ID4+Pj4+ICsgKiBjb3B5IG9m IHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlDQo+ ID4+Pj4+ICsiU29mdHdhcmUiKSwNCj4gPj4+Pj4gKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJl IHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0DQo+ID4+Pj4+ICtsaW1pdGF0 aW9uDQo+ID4+Pj4+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwg cHVibGlzaCwgZGlzdHJpYnV0ZSwNCj4gPj4+Pj4gK3N1YmxpY2Vuc2UsDQo+ID4+Pj4+ICsgKiBh bmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMg dG8NCj4gPj4+Pj4gK3dob20gdGhlDQo+ID4+Pj4+ICsgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQg dG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOg0KPiA+Pj4+PiAr ICoNCj4gPj4+Pj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p c3Npb24gbm90aWNlIHNoYWxsIGJlDQo+ID4+Pj4+ICtpbmNsdWRlZCBpbg0KPiA+Pj4+PiArICog YWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuDQo+ID4+ Pj4+ICsgKg0KPiA+Pj4+PiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJ VEhPVVQgV0FSUkFOVFkgT0YNCj4gQU5ZDQo+ID4+Pj4gS0lORCwNCj4gPj4+Pj4gK0VYUFJFU1Mg T1INCj4gPj4+Pj4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhF IFdBUlJBTlRJRVMgT0YNCj4gPj4+Pj4gK01FUkNIQU5UQUJJTElUWSwNCj4gPj4+Pj4gKyAqIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuDQo+IElO DQo+ID4+Pj4gTk8gRVZFTlQNCj4gPj4+Pj4gK1NIQUxMDQo+ID4+Pj4+ICsgKiBUSEUgQ09QWVJJ R0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkNCj4gQ0xBSU0sDQo+ ID4+Pj4+ICtEQU1BR0VTIE9SDQo+ID4+Pj4+ICsgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIg SU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUDQo+IE9SDQo+ID4+Pj4+ICtPVEhFUldJU0Us DQo+ID4+Pj4+ICsgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEgg VEhFIFNPRlRXQVJFDQo+ID4+IE9SDQo+ID4+Pj4gVEhFIFVTRQ0KPiA+Pj4+PiArT1INCj4gPj4+ Pj4gKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4NCj4gPj4+Pj4gKyAqDQo+ID4+ Pj4+ICsgKiBBdXRob3JzOiBYaWFuZ2xpYW5nLll1QGFtZC5jb20NCj4gPj4+Pj4gKyAqLw0KPiA+ Pj4+PiArDQo+ID4+Pj4+ICsjaW5jbHVkZSAiYW1kZ3B1LmgiDQo+ID4+Pj4+ICsjaW5jbHVkZSAi dmkuaCINCj4gPj4+Pj4gKyNpbmNsdWRlICJiaWYvYmlmXzVfMF9kLmgiDQo+ID4+Pj4+ICsjaW5j bHVkZSAiYmlmL2JpZl81XzBfc2hfbWFzay5oIg0KPiA+Pj4+PiArI2luY2x1ZGUgInZpZC5oIg0K PiA+Pj4+PiArI2luY2x1ZGUgImdjYS9nZnhfOF8wX2QuaCINCj4gPj4+Pj4gKyNpbmNsdWRlICJn Y2EvZ2Z4XzhfMF9zaF9tYXNrLmgiDQo+ID4+Pj4+ICsjaW5jbHVkZSAiZ21jX3Y4XzAuaCINCj4g Pj4+Pj4gKyNpbmNsdWRlICJnZnhfdjhfMC5oIg0KPiA+Pj4+PiArI2luY2x1ZGUgInNkbWFfdjNf MC5oIg0KPiA+Pj4+PiArI2luY2x1ZGUgInRvbmdhX2loLmgiDQo+ID4+Pj4+ICsjaW5jbHVkZSAi Z21jL2dtY184XzJfZC5oIg0KPiA+Pj4+PiArI2luY2x1ZGUgImdtYy9nbWNfOF8yX3NoX21hc2su aCINCj4gPj4+Pj4gKyNpbmNsdWRlICJvc3Mvb3NzXzNfMF9kLmgiDQo+ID4+Pj4+ICsjaW5jbHVk ZSAib3NzL29zc18zXzBfc2hfbWFzay5oIg0KPiA+Pj4+PiArI2luY2x1ZGUgImdjYS9nZnhfOF8w X3NoX21hc2suaCINCj4gPj4+Pj4gKyNpbmNsdWRlICJkY2UvZGNlXzEwXzBfZC5oIg0KPiA+Pj4+ PiArI2luY2x1ZGUgImRjZS9kY2VfMTBfMF9zaF9tYXNrLmgiDQo+ID4+Pj4+ICsjaW5jbHVkZSAi c211L3NtdV83XzFfM19kLmgiDQo+ID4+Pj4+ICsjaW5jbHVkZSAibXhncHVfdmkuaCINCj4gPj4+ Pj4gKw0KPiA+Pj4+PiArLyogVkkgZ29sZGVuIHNldHRpbmcgKi8NCj4gPj4+Pj4gK3N0YXRpYyBj b25zdCB1MzIgeGdwdV9maWppX21nY2dfY2djZ19pbml0W10gPSB7DQo+ID4+Pj4+ICsJbW1STENf Q0dUVF9NR0NHX09WRVJSSURFLCAweGZmZmZmZmZmLCAweGZmZmZmZmZmLA0KPiA+Pj4+PiArCW1t R1JCTV9HRlhfSU5ERVgsIDB4ZmZmZmZmZmYsIDB4ZTAwMDAwMDAsDQo+ID4+Pj4+ICsJbW1DQl9D R1RUX1NDTEtfQ1RSTCwgMHhmZmZmZmZmZiwgMHgwMDAwMDEwMCwNCj4gPj4+Pj4gKwltbUNHVFRf QkNJX0NMS19DVFJMLCAweGZmZmZmZmZmLCAweDAwMDAwMTAwLA0KPiA+Pj4+PiArCW1tQ0dUVF9D UF9DTEtfQ1RSTCwgMHhmZmZmZmZmZiwgMHgwMDAwMDEwMCwNCj4gPj4+Pj4gKwltbUNHVFRfQ1BD X0NMS19DVFJMLCAweGZmZmZmZmZmLCAweDAwMDAwMTAwLA0KPiA+Pj4+PiArCW1tQ0dUVF9DUEZf Q0xLX0NUUkwsIDB4ZmZmZmZmZmYsIDB4NDAwMDAxMDAsDQo+ID4+Pj4+ICsJbW1DR1RUX0RSTV9D TEtfQ1RSTDAsIDB4ZmZmZmZmZmYsIDB4MDA2MDAxMDAsDQo+ID4+Pj4+ICsJbW1DR1RUX0dEU19D TEtfQ1RSTCwgMHhmZmZmZmZmZiwgMHgwMDAwMDEwMCwNCj4gPj4+Pj4gKwltbUNHVFRfSUFfQ0xL X0NUUkwsIDB4ZmZmZmZmZmYsIDB4MDYwMDAxMDAsDQo+ID4+Pj4+ICsJbW1DR1RUX1BBX0NMS19D VFJMLCAweGZmZmZmZmZmLCAweDAwMDAwMTAwLA0KPiA+Pj4+PiArCW1tQ0dUVF9XRF9DTEtfQ1RS TCwgMHhmZmZmZmZmZiwgMHgwNjAwMDEwMCwNCj4gPj4+Pj4gKwltbUNHVFRfUENfQ0xLX0NUUkws IDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4+Pj4+ICsJbW1DR1RUX1JMQ19DTEtfQ1RSTCwg MHhmZmZmZmZmZiwgMHgwMDAwMDEwMCwNCj4gPj4+Pj4gKwltbUNHVFRfU0NfQ0xLX0NUUkwsIDB4 ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4+Pj4+ICsJbW1DR1RUX1NQSV9DTEtfQ1RSTCwgMHhm ZmZmZmZmZiwgMHgwMDAwMDEwMCwNCj4gPj4+Pj4gKwltbUNHVFRfU1FfQ0xLX0NUUkwsIDB4ZmZm ZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4+Pj4+ICsJbW1DR1RUX1NRR19DTEtfQ1RSTCwgMHhmZmZm ZmZmZiwgMHgwMDAwMDEwMCwNCj4gPj4+Pj4gKwltbUNHVFRfU1hfQ0xLX0NUUkwwLCAweGZmZmZm ZmZmLCAweDAwMDAwMTAwLA0KPiA+Pj4+PiArCW1tQ0dUVF9TWF9DTEtfQ1RSTDEsIDB4ZmZmZmZm ZmYsIDB4MDAwMDAxMDAsDQo+ID4+Pj4+ICsJbW1DR1RUX1NYX0NMS19DVFJMMiwgMHhmZmZmZmZm ZiwgMHgwMDAwMDEwMCwNCj4gPj4+Pj4gKwltbUNHVFRfU1hfQ0xLX0NUUkwzLCAweGZmZmZmZmZm LCAweDAwMDAwMTAwLA0KPiA+Pj4+PiArCW1tQ0dUVF9TWF9DTEtfQ1RSTDQsIDB4ZmZmZmZmZmYs IDB4MDAwMDAxMDAsDQo+ID4+Pj4+ICsJbW1DR1RUX1RDSV9DTEtfQ1RSTCwgMHhmZmZmZmZmZiwg MHgwMDAwMDEwMCwNCj4gPj4+Pj4gKwltbUNHVFRfVENQX0NMS19DVFJMLCAweGZmZmZmZmZmLCAw eDAwMDAwMTAwLA0KPiA+Pj4+PiArCW1tQ0dUVF9WR1RfQ0xLX0NUUkwsIDB4ZmZmZmZmZmYsIDB4 MDYwMDAxMDAsDQo+ID4+Pj4+ICsJbW1EQl9DR1RUX0NMS19DVFJMXzAsIDB4ZmZmZmZmZmYsIDB4 MDAwMDAxMDAsDQo+ID4+Pj4+ICsJbW1UQV9DR1RUX0NUUkwsIDB4ZmZmZmZmZmYsIDB4MDAwMDAx MDAsDQo+ID4+Pj4+ICsJbW1UQ0FfQ0dUVF9TQ0xLX0NUUkwsIDB4ZmZmZmZmZmYsIDB4MDAwMDAx MDAsDQo+ID4+Pj4+ICsJbW1UQ0NfQ0dUVF9TQ0xLX0NUUkwsIDB4ZmZmZmZmZmYsIDB4MDAwMDAx MDAsDQo+ID4+Pj4+ICsJbW1URF9DR1RUX0NUUkwsIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ ID4+Pj4+ICsJbW1HUkJNX0dGWF9JTkRFWCwgMHhmZmZmZmZmZiwgMHhlMDAwMDAwMCwNCj4gPj4+ Pj4gKwltbUNHVFNfU01fQ1RSTF9SRUcsIDB4ZmZmZmZmZmYsIDB4OTZlMDAyMDAsDQo+ID4+Pj4+ ICsJbW1DUF9SQl9XUFRSX1BPTExfQ05UTCwgMHhmZmZmZmZmZiwgMHgwMDkwMDEwMCwNCj4gPj4+ Pj4gKwltbVJMQ19DR0NHX0NHTFNfQ1RSTCwgMHhmZmZmZmZmZiwgMHgwMDIwMDAzYywNCj4gPj4+ Pj4gKwltbVBDSUVfSU5ERVgsIDB4ZmZmZmZmZmYsIDB4MDE0MDAwMWMsDQo+ID4+Pj4+ICsJbW1Q Q0lFX0RBVEEsIDB4MDAwZjAwMDAsIDB4MDAwMDAwMDAsDQo+ID4+Pj4+ICsJbW1TTUNfSU5EX0lO REVYXzQsIDB4ZmZmZmZmZmYsIDB4QzA2MDAwMEMsDQo+ID4+Pj4+ICsJbW1TTUNfSU5EX0RBVEFf NCwgMHhjMDAwMGZmZiwgMHgwMDAwMDEwMCwNCj4gPj4+Pj4gKwltbVhETUFfQ0xPQ0tfR0FUSU5H X0NOVEwsIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4+Pj4+ICsJbW1YRE1BX01FTV9QT1dF Ul9DTlRMLCAweDAwMDAwMTAxLCAweDAwMDAwMDAwLA0KPiA+Pj4+PiArCW1tTUNfTUVNX1BPV0VS X0xTLCAweGZmZmZmZmZmLCAweDAwMDAwMTA0LA0KPiA+Pj4+PiArCW1tQ0dUVF9EUk1fQ0xLX0NU UkwwLCAweGZmMDAwZmZmLCAweDAwMDAwMTAwLA0KPiA+Pj4+PiArCW1tSERQX1hEUF9DR1RUX0JM S19DVFJMLCAweGMwMDAwZmZmLCAweDAwMDAwMTA0LA0KPiA+Pj4+PiArCW1tQ1BfTUVNX1NMUF9D TlRMLCAweDAwMDAwMDAxLCAweDAwMDAwMDAxLA0KPiA+Pj4+PiArCW1tU0RNQTBfQ0xLX0NUUkws IDB4ZmYwMDBmZjAsIDB4MDAwMDAxMDAsDQo+ID4+Pj4+ICsJbW1TRE1BMV9DTEtfQ1RSTCwgMHhm ZjAwMGZmMCwgMHgwMDAwMDEwMCwgfTsNCj4gPj4+Pj4gKw0KPiA+Pj4+PiArc3RhdGljIGNvbnN0 IHUzMiB4Z3B1X2ZpamlfZ29sZGVuX3NldHRpbmdzX2ExMFtdID0gew0KPiA+Pj4+PiArCW1tQ0Jf SFdfQ09OVFJPTF8zLCAweDAwMDAwMWZmLCAweDAwMDAwMDQwLA0KPiA+Pj4+PiArCW1tREJfREVC VUcyLCAweGYwMGZmZmZmLCAweDAwMDAwNDAwLA0KPiA+Pj4+PiArCW1tRENJX0NMS19DTlRMLCAw eDAwMDAwMDgwLCAweDAwMDAwMDAwLA0KPiA+Pj4+PiArCW1tRkJDX0RFQlVHX0NPTVAsIDB4MDAw MDAwZjAsIDB4MDAwMDAwNzAsDQo+ID4+Pj4+ICsJbW1GQkNfTUlTQywgMHgxZjMxMWZmZiwgMHgx MjMwMDAwMCwNCj4gPj4+Pj4gKwltbUhETUlfQ09OVFJPTCwgMHgzMTAwMDExMSwgMHgwMDAwMDAx MSwNCj4gPj4+Pj4gKwltbVBBX1NDX0VOSEFOQ0UsIDB4ZmZmZmZmZmYsIDB4MjAwMDAwMDEsDQo+ ID4+Pj4+ICsJbW1QQV9TQ19MSU5FX1NUSVBQTEVfU1RBVEUsIDB4MDAwMGZmMGYsIDB4MDAwMDAw MDAsDQo+ID4+Pj4+ICsJbW1TRE1BMF9DSElDS0VOX0JJVFMsIDB4ZmM5MTAwMDcsIDB4MDA4MTAw MDcsDQo+ID4+Pj4+ICsJbW1TRE1BMF9HRlhfSUJfQ05UTCwgMHg4MDBmMDExMSwgMHgwMDAwMDEw MCwNCj4gPj4+Pj4gKwltbVNETUEwX1JMQzBfSUJfQ05UTCwgMHg4MDBmMDExMSwgMHgwMDAwMDEw MCwNCj4gPj4+Pj4gKwltbVNETUEwX1JMQzFfSUJfQ05UTCwgMHg4MDBmMDExMSwgMHgwMDAwMDEw MCwNCj4gPj4+Pj4gKwltbVNETUExX0NISUNLRU5fQklUUywgMHhmYzkxMDAwNywgMHgwMDgxMDAw NywNCj4gPj4+Pj4gKwltbVNETUExX0dGWF9JQl9DTlRMLCAweDgwMGYwMTExLCAweDAwMDAwMTAw LA0KPiA+Pj4+PiArCW1tU0RNQTFfUkxDMF9JQl9DTlRMLCAweDgwMGYwMTExLCAweDAwMDAwMTAw LA0KPiA+Pj4+PiArCW1tU0RNQTFfUkxDMV9JQl9DTlRMLCAweDgwMGYwMTExLCAweDAwMDAwMTAw LA0KPiA+Pj4+PiArCW1tU1FfUkFORE9NX1dBVkVfUFJJLCAweDAwMWZmZmZmLCAweDAwMDAwNmZk LA0KPiA+Pj4+PiArCW1tVEFfQ05UTF9BVVgsIDB4MDAwZjAwMGYsIDB4MDAwYjAwMDAsDQo+ID4+ Pj4+ICsJbW1UQ0NfRVhFX0RJU0FCTEUsIDB4MDAwMDAwMDIsIDB4MDAwMDAwMDIsDQo+ID4+Pj4+ ICsJbW1UQ1BfQUREUl9DT05GSUcsIDB4MDAwMDAzZmYsIDB4MDAwMDAwZmYsDQo+ID4+Pj4+ICsJ bW1WR1RfUkVTRVRfREVCVUcsIDB4MDAwMDAwMDQsIDB4MDAwMDAwMDQsDQo+ID4+Pj4+ICsJbW1W TV9QUlRfQVBFUlRVUkUwX0xPV19BRERSLCAweDBmZmZmZmZmLCAweDBmZmZmZmZmLA0KPiA+Pj4+ PiArCW1tVk1fUFJUX0FQRVJUVVJFMV9MT1dfQUREUiwgMHgwZmZmZmZmZiwgMHgwZmZmZmZmZiwN Cj4gPj4+Pj4gKwltbVZNX1BSVF9BUEVSVFVSRTJfTE9XX0FERFIsIDB4MGZmZmZmZmYsIDB4MGZm ZmZmZmYsDQo+ID4+Pj4+ICsJbW1WTV9QUlRfQVBFUlRVUkUzX0xPV19BRERSLCAweDBmZmZmZmZm LCAweDBmZmZmZmZmLCB9Ow0KPiA+Pj4+PiArDQo+ID4+Pj4+ICtzdGF0aWMgY29uc3QgdTMyIHhn cHVfZmlqaV9nb2xkZW5fY29tbW9uX2FsbFtdID0gew0KPiA+Pj4+PiArCW1tR1JCTV9HRlhfSU5E RVgsIDB4ZmZmZmZmZmYsIDB4ZTAwMDAwMDAsDQo+ID4+Pj4+ICsJbW1QQV9TQ19SQVNURVJfQ09O RklHLCAweGZmZmZmZmZmLCAweDNhMDAxNjFhLA0KPiA+Pj4+PiArCW1tUEFfU0NfUkFTVEVSX0NP TkZJR18xLCAweGZmZmZmZmZmLCAweDAwMDAwMDJlLA0KPiA+Pj4+PiArCW1tR0JfQUREUl9DT05G SUcsIDB4ZmZmZmZmZmYsIDB4MjIwMTEwMDMsDQo+ID4+Pj4+ICsJbW1TUElfUkVTT1VSQ0VfUkVT RVJWRV9DVV8wLCAweGZmZmZmZmZmLCAweDAwMDAwODAwLA0KPiA+Pj4+PiArCW1tU1BJX1JFU09V UkNFX1JFU0VSVkVfQ1VfMSwgMHhmZmZmZmZmZiwgMHgwMDAwMDgwMCwNCj4gPj4+Pj4gKwltbVNQ SV9SRVNPVVJDRV9SRVNFUlZFX0VOX0NVXzAsIDB4ZmZmZmZmZmYsDQo+IDB4MDAwMDdGQkYsDQo+ ID4+Pj4+ICsJbW1TUElfUkVTT1VSQ0VfUkVTRVJWRV9FTl9DVV8xLCAweGZmZmZmZmZmLA0KPiAw eDAwMDA3RkFGLA0KPiA+Pj4+PiArCW1tR1JCTV9HRlhfSU5ERVgsIDB4ZmZmZmZmZmYsIDB4ZTAw MDAwMDAsDQo+ID4+Pj4+ICsJbW1TUElfQ09ORklHX0NOVExfMSwgMHgwMDAwMDAwZiwgMHgwMDAw MDAwOSwgfTsNCj4gPj4+Pj4gKw0KPiA+Pj4+PiArc3RhdGljIGNvbnN0IHUzMiB4Z3B1X3Rvbmdh X21nY2dfY2djZ19pbml0W10gPSB7DQo+ID4+Pj4+ICsJbW1STENfQ0dUVF9NR0NHX09WRVJSSURF LCAgIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYsDQo+ID4+Pj4+ICsJbW1HUkJNX0dGWF9JTkRFWCwg ICAgICAgICAgIDB4ZmZmZmZmZmYsIDB4ZTAwMDAwMDAsDQo+ID4+Pj4+ICsJbW1DQl9DR1RUX1ND TEtfQ1RSTCwgICAgICAgIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4+Pj4+ICsJbW1DR1RU X0JDSV9DTEtfQ1RSTCwgICAgICAgIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4+Pj4+ICsJ bW1DR1RUX0NQX0NMS19DVFJMLCAgICAgICAgIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4+ Pj4+ICsJbW1DR1RUX0NQQ19DTEtfQ1RSTCwgICAgICAgIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAs DQo+ID4+Pj4+ICsJbW1DR1RUX0NQRl9DTEtfQ1RSTCwgICAgICAgIDB4ZmZmZmZmZmYsIDB4NDAw MDAxMDAsDQo+ID4+Pj4+ICsJbW1DR1RUX0RSTV9DTEtfQ1RSTDAsICAgICAgIDB4ZmZmZmZmZmYs IDB4MDA2MDAxMDAsDQo+ID4+Pj4+ICsJbW1DR1RUX0dEU19DTEtfQ1RSTCwgICAgICAgIDB4ZmZm ZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4+Pj4+ICsJbW1DR1RUX0lBX0NMS19DVFJMLCAgICAgICAg IDB4ZmZmZmZmZmYsIDB4MDYwMDAxMDAsDQo+ID4+Pj4+ICsJbW1DR1RUX1BBX0NMS19DVFJMLCAg ICAgICAgIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4+Pj4+ICsJbW1DR1RUX1dEX0NMS19D VFJMLCAgICAgICAgIDB4ZmZmZmZmZmYsIDB4MDYwMDAxMDAsDQo+ID4+Pj4+ICsJbW1DR1RUX1BD X0NMS19DVFJMLCAgICAgICAgIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4+Pj4+ICsJbW1D R1RUX1JMQ19DTEtfQ1RSTCwgICAgICAgIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4+Pj4+ ICsJbW1DR1RUX1NDX0NMS19DVFJMLCAgICAgICAgIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ ID4+Pj4+ICsJbW1DR1RUX1NQSV9DTEtfQ1RSTCwgICAgICAgIDB4ZmZmZmZmZmYsIDB4MDAwMDAx MDAsDQo+ID4+Pj4+ICsJbW1DR1RUX1NRX0NMS19DVFJMLCAgICAgICAgIDB4ZmZmZmZmZmYsIDB4 MDAwMDAxMDAsDQo+ID4+Pj4+ICsJbW1DR1RUX1NRR19DTEtfQ1RSTCwgICAgICAgIDB4ZmZmZmZm ZmYsIDB4MDAwMDAxMDAsDQo+ID4+Pj4+ICsJbW1DR1RUX1NYX0NMS19DVFJMMCwgICAgICAgIDB4 ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4+Pj4+ICsJbW1DR1RUX1NYX0NMS19DVFJMMSwgICAg ICAgIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4+Pj4+ICsJbW1DR1RUX1NYX0NMS19DVFJM MiwgICAgICAgIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4+Pj4+ICsJbW1DR1RUX1NYX0NM S19DVFJMMywgICAgICAgIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4+Pj4+ICsJbW1DR1RU X1NYX0NMS19DVFJMNCwgICAgICAgIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4+Pj4+ICsJ bW1DR1RUX1RDSV9DTEtfQ1RSTCwgICAgICAgIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4+ Pj4+ICsJbW1DR1RUX1RDUF9DTEtfQ1RSTCwgICAgICAgIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAs DQo+ID4+Pj4+ICsJbW1DR1RUX1ZHVF9DTEtfQ1RSTCwgICAgICAgIDB4ZmZmZmZmZmYsIDB4MDYw MDAxMDAsDQo+ID4+Pj4+ICsJbW1EQl9DR1RUX0NMS19DVFJMXzAsICAgICAgIDB4ZmZmZmZmZmYs IDB4MDAwMDAxMDAsDQo+ID4+Pj4+ICsJbW1UQV9DR1RUX0NUUkwsICAgICAgICAgICAgIDB4ZmZm ZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4+Pj4+ICsJbW1UQ0FfQ0dUVF9TQ0xLX0NUUkwsICAgICAg IDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4+Pj4+ICsJbW1UQ0NfQ0dUVF9TQ0xLX0NUUkws ICAgICAgIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4+Pj4+ICsJbW1URF9DR1RUX0NUUkws ICAgICAgICAgICAgIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4+Pj4+ICsJbW1HUkJNX0dG WF9JTkRFWCwgICAgICAgICAgIDB4ZmZmZmZmZmYsIDB4ZTAwMDAwMDAsDQo+ID4+Pj4+ICsJbW1D R1RTX0NVMF9TUDBfQ1RSTF9SRUcsICAgIDB4ZmZmZmZmZmYsIDB4MDAwMTAwMDAsDQo+ID4+Pj4+ ICsJbW1DR1RTX0NVMF9MRFNfU1FfQ1RSTF9SRUcsIDB4ZmZmZmZmZmYsIDB4MDAwMzAwMDIsDQo+ ID4+Pj4+ICsJbW1DR1RTX0NVMF9UQV9TUUNfQ1RSTF9SRUcsIDB4ZmZmZmZmZmYsIDB4MDAwNDAw MDcsDQo+ID4+Pj4+ICsJbW1DR1RTX0NVMF9TUDFfQ1RSTF9SRUcsICAgIDB4ZmZmZmZmZmYsIDB4 MDAwNjAwMDUsDQo+ID4+Pj4+ICsJbW1DR1RTX0NVMF9URF9UQ1BfQ1RSTF9SRUcsIDB4ZmZmZmZm ZmYsIDB4MDAwOTAwMDgsDQo+ID4+Pj4+ICsJbW1DR1RTX0NVMV9TUDBfQ1RSTF9SRUcsICAgIDB4 ZmZmZmZmZmYsIDB4MDAwMTAwMDAsDQo+ID4+Pj4+ICsJbW1DR1RTX0NVMV9MRFNfU1FfQ1RSTF9S RUcsIDB4ZmZmZmZmZmYsIDB4MDAwMzAwMDIsDQo+ID4+Pj4+ICsJbW1DR1RTX0NVMV9UQV9DVFJM X1JFRywgICAgIDB4ZmZmZmZmZmYsIDB4MDAwNDAwMDcsDQo+ID4+Pj4+ICsJbW1DR1RTX0NVMV9T UDFfQ1RSTF9SRUcsICAgIDB4ZmZmZmZmZmYsIDB4MDAwNjAwMDUsDQo+ID4+Pj4+ICsJbW1DR1RT X0NVMV9URF9UQ1BfQ1RSTF9SRUcsIDB4ZmZmZmZmZmYsIDB4MDAwOTAwMDgsDQo+ID4+Pj4+ICsJ bW1DR1RTX0NVMl9TUDBfQ1RSTF9SRUcsICAgIDB4ZmZmZmZmZmYsIDB4MDAwMTAwMDAsDQo+ID4+ Pj4+ICsJbW1DR1RTX0NVMl9MRFNfU1FfQ1RSTF9SRUcsIDB4ZmZmZmZmZmYsIDB4MDAwMzAwMDIs DQo+ID4+Pj4+ICsJbW1DR1RTX0NVMl9UQV9DVFJMX1JFRywgICAgIDB4ZmZmZmZmZmYsIDB4MDAw NDAwMDcsDQo+ID4+Pj4+ICsJbW1DR1RTX0NVMl9TUDFfQ1RSTF9SRUcsICAgIDB4ZmZmZmZmZmYs IDB4MDAwNjAwMDUsDQo+ID4+Pj4+ICsJbW1DR1RTX0NVMl9URF9UQ1BfQ1RSTF9SRUcsIDB4ZmZm ZmZmZmYsIDB4MDAwOTAwMDgsDQo+ID4+Pj4+ICsJbW1DR1RTX0NVM19TUDBfQ1RSTF9SRUcsICAg IDB4ZmZmZmZmZmYsIDB4MDAwMTAwMDAsDQo+ID4+Pj4+ICsJbW1DR1RTX0NVM19MRFNfU1FfQ1RS TF9SRUcsIDB4ZmZmZmZmZmYsIDB4MDAwMzAwMDIsDQo+ID4+Pj4+ICsJbW1DR1RTX0NVM19UQV9D VFJMX1JFRywgICAgIDB4ZmZmZmZmZmYsIDB4MDAwNDAwMDcsDQo+ID4+Pj4+ICsJbW1DR1RTX0NV M19TUDFfQ1RSTF9SRUcsICAgIDB4ZmZmZmZmZmYsIDB4MDAwNjAwMDUsDQo+ID4+Pj4+ICsJbW1D R1RTX0NVM19URF9UQ1BfQ1RSTF9SRUcsIDB4ZmZmZmZmZmYsIDB4MDAwOTAwMDgsDQo+ID4+Pj4+ ICsJbW1DR1RTX0NVNF9TUDBfQ1RSTF9SRUcsICAgIDB4ZmZmZmZmZmYsIDB4MDAwMTAwMDAsDQo+ ID4+Pj4+ICsJbW1DR1RTX0NVNF9MRFNfU1FfQ1RSTF9SRUcsIDB4ZmZmZmZmZmYsIDB4MDAwMzAw MDIsDQo+ID4+Pj4+ICsJbW1DR1RTX0NVNF9UQV9TUUNfQ1RSTF9SRUcsIDB4ZmZmZmZmZmYsIDB4 MDAwNDAwMDcsDQo+ID4+Pj4+ICsJbW1DR1RTX0NVNF9TUDFfQ1RSTF9SRUcsICAgIDB4ZmZmZmZm ZmYsIDB4MDAwNjAwMDUsDQo+ID4+Pj4+ICsJbW1DR1RTX0NVNF9URF9UQ1BfQ1RSTF9SRUcsIDB4 ZmZmZmZmZmYsIDB4MDAwOTAwMDgsDQo+ID4+Pj4+ICsJbW1DR1RTX0NVNV9TUDBfQ1RSTF9SRUcs ICAgIDB4ZmZmZmZmZmYsIDB4MDAwMTAwMDAsDQo+ID4+Pj4+ICsJbW1DR1RTX0NVNV9MRFNfU1Ff Q1RSTF9SRUcsIDB4ZmZmZmZmZmYsIDB4MDAwMzAwMDIsDQo+ID4+Pj4+ICsJbW1DR1RTX0NVNV9U QV9DVFJMX1JFRywgICAgIDB4ZmZmZmZmZmYsIDB4MDAwNDAwMDcsDQo+ID4+Pj4+ICsJbW1DR1RT X0NVNV9TUDFfQ1RSTF9SRUcsICAgIDB4ZmZmZmZmZmYsIDB4MDAwNjAwMDUsDQo+ID4+Pj4+ICsJ bW1DR1RTX0NVNV9URF9UQ1BfQ1RSTF9SRUcsIDB4ZmZmZmZmZmYsIDB4MDAwOTAwMDgsDQo+ID4+ Pj4+ICsJbW1DR1RTX0NVNl9TUDBfQ1RSTF9SRUcsICAgIDB4ZmZmZmZmZmYsIDB4MDAwMTAwMDAs DQo+ID4+Pj4+ICsJbW1DR1RTX0NVNl9MRFNfU1FfQ1RSTF9SRUcsIDB4ZmZmZmZmZmYsIDB4MDAw MzAwMDIsDQo+ID4+Pj4+ICsJbW1DR1RTX0NVNl9UQV9DVFJMX1JFRywgICAgIDB4ZmZmZmZmZmYs IDB4MDAwNDAwMDcsDQo+ID4+Pj4+ICsJbW1DR1RTX0NVNl9TUDFfQ1RSTF9SRUcsICAgIDB4ZmZm ZmZmZmYsIDB4MDAwNjAwMDUsDQo+ID4+Pj4+ICsJbW1DR1RTX0NVNl9URF9UQ1BfQ1RSTF9SRUcs IDB4ZmZmZmZmZmYsIDB4MDAwOTAwMDgsDQo+ID4+Pj4+ICsJbW1DR1RTX0NVN19TUDBfQ1RSTF9S RUcsICAgIDB4ZmZmZmZmZmYsIDB4MDAwMTAwMDAsDQo+ID4+Pj4+ICsJbW1DR1RTX0NVN19MRFNf U1FfQ1RSTF9SRUcsIDB4ZmZmZmZmZmYsIDB4MDAwMzAwMDIsDQo+ID4+Pj4+ICsJbW1DR1RTX0NV N19UQV9DVFJMX1JFRywgICAgIDB4ZmZmZmZmZmYsIDB4MDAwNDAwMDcsDQo+ID4+Pj4+ICsJbW1D R1RTX0NVN19TUDFfQ1RSTF9SRUcsICAgIDB4ZmZmZmZmZmYsIDB4MDAwNjAwMDUsDQo+ID4+Pj4+ ICsJbW1DR1RTX0NVN19URF9UQ1BfQ1RSTF9SRUcsIDB4ZmZmZmZmZmYsIDB4MDAwOTAwMDgsDQo+ ID4+Pj4+ICsJbW1DR1RTX1NNX0NUUkxfUkVHLCAgICAgICAgIDB4ZmZmZmZmZmYsIDB4OTZlMDAy MDAsDQo+ID4+Pj4+ICsJbW1DUF9SQl9XUFRSX1BPTExfQ05UTCwgICAgIDB4ZmZmZmZmZmYsIDB4 MDA5MDAxMDAsDQo+ID4+Pj4+ICsJbW1STENfQ0dDR19DR0xTX0NUUkwsICAgICAgIDB4ZmZmZmZm ZmYsIDB4MDAyMDAwM2MsDQo+ID4+Pj4+ICsJbW1QQ0lFX0lOREVYLCAgICAgICAgICAgICAgIDB4 ZmZmZmZmZmYsIDB4MDE0MDAwMWMsDQo+ID4+Pj4+ICsJbW1QQ0lFX0RBVEEsICAgICAgICAgICAg ICAgIDB4MDAwZjAwMDAsIDB4MDAwMDAwMDAsDQo+ID4+Pj4+ICsJbW1TTUNfSU5EX0lOREVYXzQs ICAgICAgICAgIDB4ZmZmZmZmZmYsIDB4QzA2MDAwMEMsDQo+ID4+Pj4+ICsJbW1TTUNfSU5EX0RB VEFfNCwgICAgICAgICAgIDB4YzAwMDBmZmYsIDB4MDAwMDAxMDAsDQo+ID4+Pj4+ICsJbW1YRE1B X0NMT0NLX0dBVElOR19DTlRMLCAgIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4+Pj4+ICsJ bW1YRE1BX01FTV9QT1dFUl9DTlRMLCAgICAgIDB4MDAwMDAxMDEsIDB4MDAwMDAwMDAsDQo+ID4+ Pj4+ICsJbW1NQ19NRU1fUE9XRVJfTFMsICAgICAgICAgIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDQs DQo+ID4+Pj4+ICsJbW1DR1RUX0RSTV9DTEtfQ1RSTDAsICAgICAgIDB4ZmYwMDBmZmYsIDB4MDAw MDAxMDAsDQo+ID4+Pj4+ICsJbW1IRFBfWERQX0NHVFRfQkxLX0NUUkwsICAgIDB4YzAwMDBmZmYs IDB4MDAwMDAxMDQsDQo+ID4+Pj4+ICsJbW1DUF9NRU1fU0xQX0NOVEwsICAgICAgICAgIDB4MDAw MDAwMDEsIDB4MDAwMDAwMDEsDQo+ID4+Pj4+ICsJbW1TRE1BMF9DTEtfQ1RSTCwgICAgICAgICAg IDB4ZmYwMDBmZjAsIDB4MDAwMDAxMDAsDQo+ID4+Pj4+ICsJbW1TRE1BMV9DTEtfQ1RSTCwgICAg ICAgICAgIDB4ZmYwMDBmZjAsIDB4MDAwMDAxMDAsDQo+ID4+Pj4+ICt9Ow0KPiA+Pj4+PiArDQo+ ID4+Pj4+ICtzdGF0aWMgY29uc3QgdTMyIHhncHVfdG9uZ2FfZ29sZGVuX3NldHRpbmdzX2ExMVtd ID0gew0KPiA+Pj4+PiArCW1tQ0JfSFdfQ09OVFJPTCwgMHhmZmZkZjNjZiwgMHgwMDAwNzIwOCwN Cj4gPj4+Pj4gKwltbUNCX0hXX0NPTlRST0xfMywgMHgwMDAwMDA0MCwgMHgwMDAwMDA0MCwNCj4g Pj4+Pj4gKwltbURCX0RFQlVHMiwgMHhmMDBmZmZmZiwgMHgwMDAwMDQwMCwNCj4gPj4+Pj4gKwlt bURDSV9DTEtfQ05UTCwgMHgwMDAwMDA4MCwgMHgwMDAwMDAwMCwNCj4gPj4+Pj4gKwltbUZCQ19E RUJVR19DT01QLCAweDAwMDAwMGYwLCAweDAwMDAwMDcwLA0KPiA+Pj4+PiArCW1tRkJDX01JU0Ms IDB4MWYzMTFmZmYsIDB4MTIzMDAwMDAsDQo+ID4+Pj4+ICsJbW1HQl9HUFVfSUQsIDB4MDAwMDAw MGYsIDB4MDAwMDAwMDAsDQo+ID4+Pj4+ICsJbW1IRE1JX0NPTlRST0wsIDB4MzEwMDAxMTEsIDB4 MDAwMDAwMTEsDQo+ID4+Pj4+ICsJbW1NQ19BUkJfV1RNX0dSUFdUX1JELCAweDAwMDAwMDAzLCAw eDAwMDAwMDAwLA0KPiA+Pj4+PiArCW1tTUNfSFVCX1JEUkVRX0RNSUZfTElNSVQsIDB4MDAwMDAw N2YsIDB4MDAwMDAwMjgsDQo+ID4+Pj4+ICsJbW1NQ19IVUJfV0RQX1VNQywgMHgwMDAwN2ZiNiwg MHgwMDAwMDk5MSwNCj4gPj4+Pj4gKwltbVBBX1NDX0VOSEFOQ0UsIDB4ZmZmZmZmZmYsIDB4MjAw MDAwMDEsDQo+ID4+Pj4+ICsJbW1QQV9TQ19GSUZPX0RFUFRIX0NOVEwsIDB4MDAwMDAzZmYsIDB4 MDAwMDAwZmMsDQo+ID4+Pj4+ICsJbW1QQV9TQ19MSU5FX1NUSVBQTEVfU1RBVEUsIDB4MDAwMGZm MGYsIDB4MDAwMDAwMDAsDQo+ID4+Pj4+ICsJbW1STENfQ0dDR19DR0xTX0NUUkwsIDB4MDAwMDAw MDMsIDB4MDAwMDAwM2MsDQo+ID4+Pj4+ICsJbW1TRE1BMF9DSElDS0VOX0JJVFMsIDB4ZmM5MTAw MDcsIDB4MDA4MTAwMDcsDQo+ID4+Pj4+ICsJbW1TRE1BMF9DTEtfQ1RSTCwgMHhmZjAwMGZmZiwg MHgwMDAwMDAwMCwNCj4gPj4+Pj4gKwltbVNETUEwX0dGWF9JQl9DTlRMLCAweDgwMGYwMTExLCAw eDAwMDAwMTAwLA0KPiA+Pj4+PiArCW1tU0RNQTBfUkxDMF9JQl9DTlRMLCAweDgwMGYwMTExLCAw eDAwMDAwMTAwLA0KPiA+Pj4+PiArCW1tU0RNQTBfUkxDMV9JQl9DTlRMLCAweDgwMGYwMTExLCAw eDAwMDAwMTAwLA0KPiA+Pj4+PiArCW1tU0RNQTFfQ0hJQ0tFTl9CSVRTLCAweGZjOTEwMDA3LCAw eDAwODEwMDA3LA0KPiA+Pj4+PiArCW1tU0RNQTFfQ0xLX0NUUkwsIDB4ZmYwMDBmZmYsIDB4MDAw MDAwMDAsDQo+ID4+Pj4+ICsJbW1TRE1BMV9HRlhfSUJfQ05UTCwgMHg4MDBmMDExMSwgMHgwMDAw MDEwMCwNCj4gPj4+Pj4gKwltbVNETUExX1JMQzBfSUJfQ05UTCwgMHg4MDBmMDExMSwgMHgwMDAw MDEwMCwNCj4gPj4+Pj4gKwltbVNETUExX1JMQzFfSUJfQ05UTCwgMHg4MDBmMDExMSwgMHgwMDAw MDEwMCwNCj4gPj4+Pj4gKwltbVNRX1JBTkRPTV9XQVZFX1BSSSwgMHgwMDFmZmZmZiwgMHgwMDAw MDZmZCwNCj4gPj4+Pj4gKwltbVRBX0NOVExfQVVYLCAweDAwMGYwMDBmLCAweDAwMGIwMDAwLA0K PiA+Pj4+PiArCW1tVENDX0NUUkwsIDB4MDAxMDAwMDAsIDB4ZjMxZmZmN2YsDQo+ID4+Pj4+ICsJ bW1UQ0NfRVhFX0RJU0FCTEUsIDB4MDAwMDAwMDIsIDB4MDAwMDAwMDIsDQo+ID4+Pj4+ICsJbW1U Q1BfQUREUl9DT05GSUcsIDB4MDAwMDAzZmYsIDB4MDAwMDAyZmIsDQo+ID4+Pj4+ICsJbW1UQ1Bf Q0hBTl9TVEVFUl9ISSwgMHhmZmZmZmZmZiwgMHgwMDAwNTQzYiwNCj4gPj4+Pj4gKwltbVRDUF9D SEFOX1NURUVSX0xPLCAweGZmZmZmZmZmLCAweGE5MjEwODc2LA0KPiA+Pj4+PiArCW1tVkdUX1JF U0VUX0RFQlVHLCAweDAwMDAwMDA0LCAweDAwMDAwMDA0LA0KPiA+Pj4+PiArCW1tVk1fUFJUX0FQ RVJUVVJFMF9MT1dfQUREUiwgMHgwZmZmZmZmZiwgMHgwZmZmZmZmZiwNCj4gPj4+Pj4gKwltbVZN X1BSVF9BUEVSVFVSRTFfTE9XX0FERFIsIDB4MGZmZmZmZmYsIDB4MGZmZmZmZmYsDQo+ID4+Pj4+ ICsJbW1WTV9QUlRfQVBFUlRVUkUyX0xPV19BRERSLCAweDBmZmZmZmZmLCAweDBmZmZmZmZmLA0K PiA+Pj4+PiArCW1tVk1fUFJUX0FQRVJUVVJFM19MT1dfQUREUiwgMHgwZmZmZmZmZiwgMHgwZmZm ZmZmZiwgfTsNCj4gPj4+Pj4gKw0KPiA+Pj4+PiArc3RhdGljIGNvbnN0IHUzMiB4Z3B1X3Rvbmdh X2dvbGRlbl9jb21tb25fYWxsW10gPSB7DQo+ID4+Pj4+ICsJbW1HUkJNX0dGWF9JTkRFWCwgICAg ICAgICAgICAgICAweGZmZmZmZmZmLCAweGUwMDAwMDAwLA0KPiA+Pj4+PiArCW1tUEFfU0NfUkFT VEVSX0NPTkZJRywgICAgICAgICAgMHhmZmZmZmZmZiwgMHgxNjAwMDAxMiwNCj4gPj4+Pj4gKwlt bVBBX1NDX1JBU1RFUl9DT05GSUdfMSwgICAgICAgIDB4ZmZmZmZmZmYsIDB4MDAwMDAwMkEsDQo+ ID4+Pj4+ICsJbW1HQl9BRERSX0NPTkZJRywgICAgICAgICAgICAgICAweGZmZmZmZmZmLCAweDIy MDExMDAyLA0KPiA+Pj4+PiArCW1tU1BJX1JFU09VUkNFX1JFU0VSVkVfQ1VfMCwgICAgMHhmZmZm ZmZmZiwgMHgwMDAwMDgwMCwNCj4gPj4+Pj4gKwltbVNQSV9SRVNPVVJDRV9SRVNFUlZFX0NVXzEs ICAgIDB4ZmZmZmZmZmYsIDB4MDAwMDA4MDAsDQo+ID4+Pj4+ICsJbW1TUElfUkVTT1VSQ0VfUkVT RVJWRV9FTl9DVV8wLCAweGZmZmZmZmZmLA0KPiAweDAwMDA3RkJGLCB9Ow0KPiA+Pj4+PiArDQo+ ID4+Pj4+ICt2b2lkIHhncHVfdmlfaW5pdF9nb2xkZW5fcmVnaXN0ZXJzKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2KSB7DQo+ID4+Pj4+ICsJc3dpdGNoIChhZGV2LT5hc2ljX3R5cGUpIHsNCj4g Pj4+Pj4gKwljYXNlIENISVBfRklKSToNCj4gPj4+Pj4gKwkJYW1kZ3B1X3Byb2dyYW1fcmVnaXN0 ZXJfc2VxdWVuY2UoYWRldiwNCj4gPj4+Pj4gKw0KPiB4Z3B1X2ZpamlfbWdjZ19jZ2NnX2luaXQs DQo+ID4+Pj4+ICsJCQkJCQkgKGNvbnN0DQo+IHUzMilBUlJBWV9TSVpFKA0KPiA+Pj4+PiArDQo+ IHhncHVfZmlqaV9tZ2NnX2NnY2dfaW5pdCkpOw0KPiA+Pj4+PiArCQlhbWRncHVfcHJvZ3JhbV9y ZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LA0KPiA+Pj4+PiArDQo+ID4+Pj4geGdwdV9maWppX2dvbGRl bl9zZXR0aW5nc19hMTAsDQo+ID4+Pj4+ICsJCQkJCQkgKGNvbnN0DQo+IHUzMilBUlJBWV9TSVpF KA0KPiA+Pj4+PiArDQo+ID4+Pj4geGdwdV9maWppX2dvbGRlbl9zZXR0aW5nc19hMTApKTsNCj4g Pj4+Pj4gKwkJYW1kZ3B1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwNCj4gPj4+Pj4g Kw0KPiA+Pj4+IHhncHVfZmlqaV9nb2xkZW5fY29tbW9uX2FsbCwNCj4gPj4+Pj4gKwkJCQkJCSAo Y29uc3QNCj4gdTMyKUFSUkFZX1NJWkUoDQo+ID4+Pj4+ICsNCj4gPj4+PiB4Z3B1X2ZpamlfZ29s ZGVuX2NvbW1vbl9hbGwpKTsNCj4gPj4+Pj4gKwkJYnJlYWs7DQo+ID4+Pj4+ICsJY2FzZSBDSElQ X1RPTkdBOg0KPiA+Pj4+PiArCQlhbWRncHVfcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2 LA0KPiA+Pj4+PiArDQo+IHhncHVfdG9uZ2FfbWdjZ19jZ2NnX2luaXQsDQo+ID4+Pj4+ICsJCQkJ CQkgKGNvbnN0DQo+IHUzMilBUlJBWV9TSVpFKA0KPiA+Pj4+PiArDQo+ID4+Pj4geGdwdV90b25n YV9tZ2NnX2NnY2dfaW5pdCkpOw0KPiA+Pj4+PiArCQlhbWRncHVfcHJvZ3JhbV9yZWdpc3Rlcl9z ZXF1ZW5jZShhZGV2LA0KPiA+Pj4+PiArDQo+ID4+Pj4geGdwdV90b25nYV9nb2xkZW5fc2V0dGlu Z3NfYTExLA0KPiA+Pj4+PiArCQkJCQkJIChjb25zdA0KPiB1MzIpQVJSQVlfU0laRSgNCj4gPj4+ Pj4gKw0KPiA+Pj4+IHhncHVfdG9uZ2FfZ29sZGVuX3NldHRpbmdzX2ExMSkpOw0KPiA+Pj4+PiAr CQlhbWRncHVfcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LA0KPiA+Pj4+PiArDQo+ID4+ Pj4geGdwdV90b25nYV9nb2xkZW5fY29tbW9uX2FsbCwNCj4gPj4+Pj4gKwkJCQkJCSAoY29uc3QN Cj4gdTMyKUFSUkFZX1NJWkUoDQo+ID4+Pj4+ICsNCj4gPj4+PiB4Z3B1X3RvbmdhX2dvbGRlbl9j b21tb25fYWxsKSk7DQo+ID4+Pj4+ICsJCWJyZWFrOw0KPiA+Pj4+PiArCWRlZmF1bHQ6DQo+ID4+ Pj4+ICsJCUJVR19PTigiRG9lc24ndCBzdXBwb3J0IGNoaXAgdHlwZS5cbiIpOw0KPiA+Pj4+PiAr CQlicmVhazsNCj4gPj4+Pj4gKwl9DQo+ID4+Pj4+ICt9DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKy8q DQo+ID4+Pj4+ICsgKiBNYWlsYm94IGNvbW11bmljYXRpb24gYmV0d2VlbiBHUFUgaHlwZXJ2aXNv ciBhbmQgVkZzICAqLw0KPiBzdGF0aWMNCj4gPj4+Pj4gK3ZvaWQgeGdwdV92aV9tYWlsYm94X3Nl bmRfYWNrKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KSB7DQo+ID4+Pj4+ICsJdTMyIHJlZzsN Cj4gPj4+Pj4gKw0KPiA+Pj4+PiArCXJlZyA9IFJSRUczMihtbU1BSUxCT1hfQ09OVFJPTCk7DQo+ ID4+Pj4+ICsJcmVnID0gUkVHX1NFVF9GSUVMRChyZWcsIE1BSUxCT1hfQ09OVFJPTCwNCj4gUkNW X01TR19BQ0ssIDEpOw0KPiA+Pj4+PiArCVdSRUczMihtbU1BSUxCT1hfQ09OVFJPTCwgcmVnKTsN Cj4gPj4+Pj4gK30NCj4gPj4+Pj4gKw0KPiA+Pj4+PiArc3RhdGljIHZvaWQgeGdwdV92aV9tYWls Ym94X3NldF92YWxpZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwNCj4gPj4+Pj4gK2Jvb2wg dmFsKSB7DQo+ID4+Pj4+ICsJdTMyIHJlZzsNCj4gPj4+Pj4gKw0KPiA+Pj4+PiArCXJlZyA9IFJS RUczMihtbU1BSUxCT1hfQ09OVFJPTCk7DQo+ID4+Pj4+ICsJcmVnID0gUkVHX1NFVF9GSUVMRChy ZWcsIE1BSUxCT1hfQ09OVFJPTCwNCj4gPj4+Pj4gKwkJCQkgVFJOX01TR19WQUxJRCwgdmFsID8g MSA6IDApOw0KPiA+Pj4+PiArCVdSRUczMihtbU1BSUxCT1hfQ09OVFJPTCwgcmVnKTsNCj4gPj4+ Pj4gK30NCj4gPj4+Pj4gKw0KPiA+Pj4+PiArc3RhdGljIHZvaWQgeGdwdV92aV9tYWlsYm94X3Ry YW5zX21zZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZQ0KPiAqYWRldiwNCj4gPj4+Pj4gKwkJCQkgICAg ICBlbnVtIGlkaF9ldmVudCBldmVudCkNCj4gPj4+Pj4gK3sNCj4gPj4+Pj4gKwl1MzIgcmVnOw0K PiA+Pj4+PiArDQo+ID4+Pj4+ICsJcmVnID0gUlJFRzMyKG1tTUFJTEJPWF9NU0dCVUZfVFJOX0RX MCk7DQo+ID4+Pj4+ICsJcmVnID0gUkVHX1NFVF9GSUVMRChyZWcsIE1BSUxCT1hfTVNHQlVGX1RS Tl9EVzAsDQo+ID4+Pj4+ICsJCQkJIE1TR0JVRl9EQVRBLCBldmVudCk7DQo+ID4+Pj4+ICsJV1JF RzMyKG1tTUFJTEJPWF9NU0dCVUZfVFJOX0RXMCwgcmVnKTsNCj4gPj4+Pj4gKw0KPiA+Pj4+PiAr CXhncHVfdmlfbWFpbGJveF9zZXRfdmFsaWQoYWRldiwgdHJ1ZSk7IH0NCj4gPj4+Pj4gKw0KPiA+ Pj4+PiArc3RhdGljIGludCB4Z3B1X3ZpX21haWxib3hfcmN2X21zZyhzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiwNCj4gPj4+Pj4gKwkJCQkgICBlbnVtIGlkaF9ldmVudCBldmVudCkNCj4gPj4+ Pj4gK3sNCj4gPj4+Pj4gKwl1MzIgcmVnOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsJcmVnID0gUlJF RzMyKG1tTUFJTEJPWF9NU0dCVUZfUkNWX0RXMCk7DQo+ID4+Pj4+ICsJaWYgKHJlZyAhPSBldmVu dCkNCj4gPj4+Pj4gKwkJcmV0dXJuIC1FTk9FTlQ7DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKwkvKiBz ZW5kIGFjayB0byBQRiAqLw0KPiA+Pj4+PiArCXhncHVfdmlfbWFpbGJveF9zZW5kX2FjayhhZGV2 KTsNCj4gPj4+Pj4gKw0KPiA+Pj4+PiArCXJldHVybiAwOw0KPiA+Pj4+PiArfQ0KPiA+Pj4+PiAr DQo+ID4+Pj4+ICtzdGF0aWMgaW50IHhncHVfdmlfcG9sbF9hY2soc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYpIHsNCj4gPj4+Pj4gKwlpbnQgciA9IDAsIHRpbWVvdXQgPSBWSV9NQUlMQk9YX1RJ TUVET1VUOw0KPiA+Pj4+PiArCXUzMiBtYXNrID0gUkVHX0ZJRUxEX01BU0soTUFJTEJPWF9DT05U Uk9MLA0KPiBUUk5fTVNHX0FDSyk7DQo+ID4+Pj4+ICsJdTMyIHJlZzsNCj4gPj4+Pj4gKw0KPiA+ Pj4+PiArCXJlZyA9IFJSRUczMihtbU1BSUxCT1hfQ09OVFJPTCk7DQo+ID4+Pj4+ICsJd2hpbGUg KCEocmVnICYgbWFzaykpIHsNCj4gPj4+Pj4gKwkJaWYgKHRpbWVvdXQgPD0gMCkgew0KPiA+Pj4+ PiArCQkJcHJfZXJyKCJEb2Vzbid0IGdldCBhY2sgZnJvbSBwZi5cbiIpOw0KPiA+Pj4+PiArCQkJ ciA9IC1FVElNRTsNCj4gPj4+Pj4gKwkJCWJyZWFrOw0KPiA+Pj4+PiArCQl9DQo+ID4+Pj4+ICsJ CW1zbGVlcCgxKTsNCj4gPj4+Pj4gKwkJdGltZW91dCAtPSAxOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ ICsJCXJlZyA9IFJSRUczMihtbU1BSUxCT1hfQ09OVFJPTCk7DQo+ID4+Pj4+ICsJfQ0KPiA+Pj4+ PiArDQo+ID4+Pj4+ICsJcmV0dXJuIHI7DQo+ID4+Pj4+ICt9DQo+ID4+Pj4+ICsNCj4gPj4+Pj4g K3N0YXRpYyBpbnQgeGdwdV92aV9wb2xsX21zZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwg ZW51bQ0KPiA+Pj4+PiAraWRoX2V2ZW50IGV2ZW50KSB7DQo+ID4+Pj4+ICsJaW50IHIgPSAwLCB0 aW1lb3V0ID0gVklfTUFJTEJPWF9USU1FRE9VVDsNCj4gPj4+Pj4gKw0KPiA+Pj4+PiArCXIgPSB4 Z3B1X3ZpX21haWxib3hfcmN2X21zZyhhZGV2LCBldmVudCk7DQo+ID4+Pj4+ICsJd2hpbGUgKHIp IHsNCj4gPj4+Pj4gKwkJaWYgKHRpbWVvdXQgPD0gMCkgew0KPiA+Pj4+PiArCQkJcHJfZXJyKCJE b2Vzbid0IGdldCBhY2sgZnJvbSBwZi5cbiIpOw0KPiA+Pj4+PiArCQkJciA9IC1FVElNRTsNCj4g Pj4+Pj4gKwkJCWJyZWFrOw0KPiA+Pj4+PiArCQl9DQo+ID4+Pj4+ICsJCW1zbGVlcCgxKTsNCj4g Pj4+Pj4gKwkJdGltZW91dCAtPSAxOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsJCXIgPSB4Z3B1X3Zp X21haWxib3hfcmN2X21zZyhhZGV2LCBldmVudCk7DQo+ID4+Pj4+ICsJfQ0KPiA+Pj4+PiArDQo+ ID4+Pj4+ICsJcmV0dXJuIHI7DQo+ID4+Pj4+ICt9DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gK3N0YXRp YyBpbnQgeGdwdV92aV9zZW5kX2FjY2Vzc19yZXF1ZXN0cyhzdHJ1Y3QgYW1kZ3B1X2RldmljZQ0K PiAqYWRldiwNCj4gPj4+Pj4gKwkJCQkJZW51bSBpZGhfcmVxdWVzdCByZXF1ZXN0KQ0KPiA+Pj4+ PiArew0KPiA+Pj4+PiArCWludCByOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsJeGdwdV92aV9tYWls Ym94X3RyYW5zX21zZyhhZGV2LCByZXF1ZXN0KTsNCj4gPj4+Pj4gKw0KPiA+Pj4+PiArCS8qIHN0 YXJ0IHRvIHBvbGwgYWNrICovDQo+ID4+Pj4+ICsJciA9IHhncHVfdmlfcG9sbF9hY2soYWRldik7 DQo+ID4+Pj4+ICsJaWYgKHIpDQo+ID4+Pj4+ICsJCXJldHVybiByOw0KPiA+Pj4+PiArDQo+ID4+ Pj4+ICsJeGdwdV92aV9tYWlsYm94X3NldF92YWxpZChhZGV2LCBmYWxzZSk7DQo+ID4+Pj4+ICsN Cj4gPj4+Pj4gKwkvKiBzdGFydCB0byBjaGVjayBtc2cgaWYgcmVxdWVzdCBpcyBpZGhfcmVxX2dw dV9pbml0X2FjY2VzcyAqLw0KPiA+Pj4+PiArCWlmIChyZXF1ZXN0ID09IElESF9SRVFfR1BVX0lO SVRfQUNDRVNTKSB7DQo+ID4+Pj4+ICsJCXIgPSB4Z3B1X3ZpX3BvbGxfbXNnKGFkZXYsDQo+IElE SF9SRUFEWV9UT19BQ0NFU1NfR1BVKTsNCj4gPj4+Pj4gKwkJaWYgKHIpDQo+ID4+Pj4+ICsJCQly ZXR1cm4gcjsNCj4gPj4+Pj4gKwl9DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKwlyZXR1cm4gMDsNCj4g Pj4+Pj4gK30NCj4gPj4+Pj4gKw0KPiA+Pj4+PiArc3RhdGljIGludCB4Z3B1X3ZpX3JlcXVlc3Rf cmVzZXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpIHsNCj4gPj4+Pj4gKwlyZXR1cm4geGdw dV92aV9zZW5kX2FjY2Vzc19yZXF1ZXN0cyhhZGV2LA0KPiA+Pj4+IElESF9SRVFfR1BVX1JFU0VU X0FDQ0VTUyk7DQo+ID4+Pj4+ICt9DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gK3N0YXRpYyBpbnQgeGdw dV92aV9yZXF1ZXN0X2Z1bGxfZ3B1X2FjY2VzcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZQ0KPiA+PiAq YWRldiwNCj4gPj4+Pj4gKwkJCQkJICAgYm9vbCBpbml0KQ0KPiA+Pj4+PiArew0KPiA+Pj4+PiAr CWVudW0gaWRoX2V2ZW50IGV2ZW50Ow0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsJZXZlbnQgPSBpbml0 ID8gSURIX1JFUV9HUFVfSU5JVF9BQ0NFU1MgOg0KPiA+Pj4+IElESF9SRVFfR1BVX0ZJTklfQUND RVNTOw0KPiA+Pj4+PiArCXJldHVybiB4Z3B1X3ZpX3NlbmRfYWNjZXNzX3JlcXVlc3RzKGFkZXYs IGV2ZW50KTsgfQ0KPiA+Pj4+PiArDQo+ID4+Pj4+ICtzdGF0aWMgaW50IHhncHVfdmlfcmVsZWFz ZV9mdWxsX2dwdV9hY2Nlc3Moc3RydWN0IGFtZGdwdV9kZXZpY2UNCj4gPj4gKmFkZXYsDQo+ID4+ Pj4+ICsJCQkJCSAgIGJvb2wgaW5pdCkNCj4gPj4+Pj4gK3sNCj4gPj4+Pj4gKwllbnVtIGlkaF9l dmVudCBldmVudDsNCj4gPj4+Pj4gKwlpbnQgciA9IDA7DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKwll dmVudCA9IGluaXQgPyBJREhfUkVMX0dQVV9JTklUX0FDQ0VTUyA6DQo+ID4+Pj4gSURIX1JFTF9H UFVfRklOSV9BQ0NFU1M7DQo+ID4+Pj4+ICsJciA9IHhncHVfdmlfc2VuZF9hY2Nlc3NfcmVxdWVz dHMoYWRldiwgZXZlbnQpOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsJcmV0dXJuIHI7DQo+ID4+Pj4+ ICt9DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKy8qIGFkZCBzdXBwb3J0IG1haWxib3ggaW50ZXJydXB0 cyAqLyBzdGF0aWMgaW50DQo+ID4+Pj4+ICt4Z3B1X3ZpX21haWxib3hfYWNrX2lycShzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiwNCj4gPj4+Pj4gKwkJCQkgICBzdHJ1Y3QgYW1kZ3B1X2lycV9z cmMgKnNvdXJjZSwNCj4gPj4+Pj4gKwkJCQkgICBzdHJ1Y3QgYW1kZ3B1X2l2X2VudHJ5ICplbnRy eSkgew0KPiA+Pj4+PiArCURSTV9ERUJVRygiZ2V0IGFjayBpbnRyIGFuZCBkbyBub3RoaW5nLlxu Iik7DQo+ID4+Pj4+ICsJcmV0dXJuIDA7DQo+ID4+Pj4+ICt9DQo+ID4+Pj4+ICsNCj4gPj4+Pj4g K3N0YXRpYyBpbnQgeGdwdV92aV9zZXRfbWFpbGJveF9hY2tfaXJxKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2LA0KPiA+Pj4+PiArCQkJCSAgICAgICBzdHJ1Y3QgYW1kZ3B1X2lycV9zcmMgKnNy YywNCj4gPj4+Pj4gKwkJCQkgICAgICAgdW5zaWduZWQgdHlwZSwNCj4gPj4+Pj4gKwkJCQkgICAg ICAgZW51bSBhbWRncHVfaW50ZXJydXB0X3N0YXRlDQo+IHN0YXRlKSB7DQo+ID4+Pj4+ICsJdTMy IHRtcCA9IFJSRUczMihtbU1BSUxCT1hfSU5UX0NOVEwpOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsJ dG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIE1BSUxCT1hfSU5UX0NOVEwsDQo+IEFDS19JTlRfRU4s DQo+ID4+Pj4+ICsJCQkJIChzdGF0ZSA9PQ0KPiBBTURHUFVfSVJRX1NUQVRFX0VOQUJMRSkgPyAx IDoNCj4gPj4+PiAwKTsNCj4gPj4+Pj4gKwlXUkVHMzIobW1NQUlMQk9YX0lOVF9DTlRMLCB0bXAp Ow0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsJcmV0dXJuIDA7DQo+ID4+Pj4+ICt9DQo+ID4+Pj4+ICsN Cj4gPj4+Pj4gK3N0YXRpYyB2b2lkIHhncHVfdmlfbWFpbGJveF9mbHJfd29yayhzdHJ1Y3Qgd29y a19zdHJ1Y3QgKndvcmspIHsNCj4gPj4+Pj4gKwlzdHJ1Y3QgYW1kZ3B1X3ZpcnQgKnZpcnQgPSBj b250YWluZXJfb2Yod29yaywNCj4gPj4+Pj4gKwkJCQkJc3RydWN0IGFtZGdwdV92aXJ0LA0KPiBm bHJfd29yay53b3JrKTsNCj4gPj4+Pj4gKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGNv bnRhaW5lcl9vZih2aXJ0LA0KPiA+Pj4+PiArCQkJCQlzdHJ1Y3QgYW1kZ3B1X2RldmljZSwgdmly dCk7DQo+ID4+Pj4+ICsJaW50IHIgPSAwOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsJciA9IHhncHVf dmlfcG9sbF9tc2coYWRldiwgSURIX0ZMUl9OT1RJRklDQVRJT05fQ01QTCk7DQo+ID4+Pj4+ICsJ aWYgKHIpDQo+ID4+Pj4+ICsJCURSTV9FUlJPUigiZmFpbGVkIHRvIGdldCBmbHIgY21wbCBtc2cg ZnJvbQ0KPiBoeXBlcnZpb3IuXG4iKTsNCj4gPj4+Pj4gKw0KPiA+Pj4+PiArCS8qIFRPRE86IG5l ZWQgdG8gcmVzdG9yZSBnZnggc3RhdGVzICovIH0NCj4gPj4+Pj4gKw0KPiA+Pj4+PiArc3RhdGlj IGludCB4Z3B1X3ZpX3NldF9tYWlsYm94X3Jjdl9pcnEoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYsDQo+ID4+Pj4+ICsJCQkJICAgICAgIHN0cnVjdCBhbWRncHVfaXJxX3NyYyAqc3JjLA0KPiA+ Pj4+PiArCQkJCSAgICAgICB1bnNpZ25lZCB0eXBlLA0KPiA+Pj4+PiArCQkJCSAgICAgICBlbnVt IGFtZGdwdV9pbnRlcnJ1cHRfc3RhdGUNCj4gc3RhdGUpIHsNCj4gPj4+Pj4gKwl1MzIgdG1wID0g UlJFRzMyKG1tTUFJTEJPWF9JTlRfQ05UTCk7DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKwl0bXAgPSBS RUdfU0VUX0ZJRUxEKHRtcCwgTUFJTEJPWF9JTlRfQ05UTCwNCj4gVkFMSURfSU5UX0VOLA0KPiA+ Pj4+PiArCQkJCSAoc3RhdGUgPT0NCj4gQU1ER1BVX0lSUV9TVEFURV9FTkFCTEUpID8gMSA6DQo+ ID4+Pj4gMCk7DQo+ID4+Pj4+ICsJV1JFRzMyKG1tTUFJTEJPWF9JTlRfQ05UTCwgdG1wKTsNCj4g Pj4+Pj4gKw0KPiA+Pj4+PiArCXJldHVybiAwOw0KPiA+Pj4+PiArfQ0KPiA+Pj4+PiArDQo+ID4+ Pj4+ICtzdGF0aWMgaW50IHhncHVfdmlfbWFpbGJveF9yY3ZfaXJxKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2LA0KPiA+Pj4+PiArCQkJCSAgIHN0cnVjdCBhbWRncHVfaXJxX3NyYyAqc291cmNl LA0KPiA+Pj4+PiArCQkJCSAgIHN0cnVjdCBhbWRncHVfaXZfZW50cnkgKmVudHJ5KSB7DQo+ID4+ Pj4+ICsJaW50IHI7DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKwlhZGV2LT52aXJ0LmNhcHMgJj0gfkFN REdQVV9TUklPVl9DQVBTX1JVTlRJTUU7DQo+ID4+Pj4+ICsJciA9IHhncHVfdmlfbWFpbGJveF9y Y3ZfbXNnKGFkZXYsDQo+IElESF9GTFJfTk9USUZJQ0FUSU9OKTsNCj4gPj4+Pj4gKwkvKiBkbyBu b3RoaW5nIGZvciBvdGhlciBtc2cgKi8NCj4gPj4+Pj4gKwlpZiAocikNCj4gPj4+Pj4gKwkJcmV0 dXJuIDA7DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKwkvKiBUT0RPOiBuZWVkIHRvIHNhdmUgZ2Z4IHN0 YXRlcyAqLw0KPiA+Pj4+PiArCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmYWRldi0+dmlydC5mbHJf d29yaywNCj4gPj4+Pj4gKw0KPiBtc2Vjc190b19qaWZmaWVzKFZJX01BSUxCT1hfUkVTRVRfVElN RSkpOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsJcmV0dXJuIDA7DQo+ID4+Pj4+ICt9DQo+ID4+Pj4+ ICsNCj4gPj4+Pj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lycV9zcmNfZnVuY3MNCj4g Pj4+Pj4gK3hncHVfdmlfbWFpbGJveF9hY2tfaXJxX2Z1bmNzDQo+ID4+Pj4gPSB7DQo+ID4+Pj4+ ICsJLnNldCA9IHhncHVfdmlfc2V0X21haWxib3hfYWNrX2lycSwNCj4gPj4+Pj4gKwkucHJvY2Vz cyA9IHhncHVfdmlfbWFpbGJveF9hY2tfaXJxLCB9Ow0KPiA+Pj4+PiArDQo+ID4+Pj4+ICtzdGF0 aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9pcnFfc3JjX2Z1bmNzDQo+ID4+Pj4+ICt4Z3B1X3ZpX21h aWxib3hfcmN2X2lycV9mdW5jcw0KPiA+Pj4+ID0gew0KPiA+Pj4+PiArCS5zZXQgPSB4Z3B1X3Zp X3NldF9tYWlsYm94X3Jjdl9pcnEsDQo+ID4+Pj4+ICsJLnByb2Nlc3MgPSB4Z3B1X3ZpX21haWxi b3hfcmN2X2lycSwgfTsNCj4gPj4+Pj4gKw0KPiA+Pj4+PiArdm9pZCB4Z3B1X3ZpX21haWxib3hf c2V0X2lycV9mdW5jcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikNCj4gew0KPiA+Pj4+PiAr CWFkZXYtPnZpcnQuYWNrX2lycS5udW1fdHlwZXMgPSAxOw0KPiA+Pj4+PiArCWFkZXYtPnZpcnQu YWNrX2lycS5mdW5jcyA9ICZ4Z3B1X3ZpX21haWxib3hfYWNrX2lycV9mdW5jczsNCj4gPj4+Pj4g KwlhZGV2LT52aXJ0LnJjdl9pcnEubnVtX3R5cGVzID0gMTsNCj4gPj4+Pj4gKwlhZGV2LT52aXJ0 LnJjdl9pcnEuZnVuY3MgPSAmeGdwdV92aV9tYWlsYm94X3Jjdl9pcnFfZnVuY3M7IH0NCj4gPj4+ Pj4gKw0KPiA+Pj4+PiAraW50IHhncHVfdmlfbWFpbGJveF9hZGRfaXJxX2lkKHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2KSB7DQo+ID4+Pj4+ICsJaW50IHI7DQo+ID4+Pj4+ICsNCj4gPj4+Pj4g KwlyID0gYW1kZ3B1X2lycV9hZGRfaWQoYWRldiwgMTM1LCAmYWRldi0+dmlydC5yY3ZfaXJxKTsN Cj4gPj4+Pj4gKwlpZiAocikNCj4gPj4+Pj4gKwkJcmV0dXJuIHI7DQo+ID4+Pj4+ICsNCj4gPj4+ Pj4gKwlyID0gYW1kZ3B1X2lycV9hZGRfaWQoYWRldiwgMTM4LCAmYWRldi0+dmlydC5hY2tfaXJx KTsNCj4gPj4+Pj4gKwlpZiAocikgew0KPiA+Pj4+PiArCQlhbWRncHVfaXJxX3B1dChhZGV2LCAm YWRldi0+dmlydC5yY3ZfaXJxLCAwKTsNCj4gPj4+Pj4gKwkJcmV0dXJuIHI7DQo+ID4+Pj4+ICsJ fQ0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsJcmV0dXJuIDA7DQo+ID4+Pj4+ICt9DQo+ID4+Pj4+ICsN Cj4gPj4+Pj4gK2ludCB4Z3B1X3ZpX21haWxib3hfZ2V0X2lycShzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldikgew0KPiA+Pj4+PiArCWludCByOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsJciA9IGFt ZGdwdV9pcnFfZ2V0KGFkZXYsICZhZGV2LT52aXJ0LnJjdl9pcnEsIDApOw0KPiA+Pj4+PiArCWlm IChyKQ0KPiA+Pj4+PiArCQlyZXR1cm4gcjsNCj4gPj4+Pj4gKwlyID0gYW1kZ3B1X2lycV9nZXQo YWRldiwgJmFkZXYtPnZpcnQuYWNrX2lycSwgMCk7DQo+ID4+Pj4+ICsJaWYgKHIpIHsNCj4gPj4+ Pj4gKwkJYW1kZ3B1X2lycV9wdXQoYWRldiwgJmFkZXYtPnZpcnQucmN2X2lycSwgMCk7DQo+ID4+ Pj4+ICsJCXJldHVybiByOw0KPiA+Pj4+PiArCX0NCj4gPj4+Pj4gKw0KPiA+Pj4+PiArCUlOSVRf REVMQVlFRF9XT1JLKCZhZGV2LT52aXJ0LmZscl93b3JrLA0KPiA+Pj4+IHhncHVfdmlfbWFpbGJv eF9mbHJfd29yayk7DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKwlyZXR1cm4gMDsNCj4gPj4+Pj4gK30N Cj4gPj4+Pj4gKw0KPiA+Pj4+PiArdm9pZCB4Z3B1X3ZpX21haWxib3hfcHV0X2lycShzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldikgew0KPiA+Pj4+PiArCWNhbmNlbF9kZWxheWVkX3dvcmtfc3lu YygmYWRldi0+dmlydC5mbHJfd29yayk7DQo+ID4+Pj4+ICsJYW1kZ3B1X2lycV9wdXQoYWRldiwg JmFkZXYtPnZpcnQuYWNrX2lycSwgMCk7DQo+ID4+Pj4+ICsJYW1kZ3B1X2lycV9wdXQoYWRldiwg JmFkZXYtPnZpcnQucmN2X2lycSwgMCk7IH0NCj4gPj4+Pj4gKw0KPiA+Pj4+PiArY29uc3Qgc3Ry dWN0IGFtZGdwdV92aXJ0X29wcyB4Z3B1X3ZpX3ZpcnRfb3BzID0gew0KPiA+Pj4+PiArCS5yZXFf ZnVsbF9ncHUJCT0geGdwdV92aV9yZXF1ZXN0X2Z1bGxfZ3B1X2FjY2VzcywNCj4gPj4+Pj4gKwku cmVsX2Z1bGxfZ3B1CQk9IHhncHVfdmlfcmVsZWFzZV9mdWxsX2dwdV9hY2Nlc3MsDQo+ID4+Pj4+ ICsJLnJlc2V0X2dwdQkJPSB4Z3B1X3ZpX3JlcXVlc3RfcmVzZXQsDQo+ID4+Pj4+ICt9Ow0KPiA+ Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbXhncHVfdmkuaA0K PiA+Pj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L214Z3B1X3ZpLmgNCj4gPj4+Pj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPj4+Pj4gaW5kZXggMDAwMDAwMC4uZmQ2MjE2ZQ0KPiA+ Pj4+PiAtLS0gL2Rldi9udWxsDQo+ID4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L214Z3B1X3ZpLmgNCj4gPj4+Pj4gQEAgLTAsMCArMSw1NSBAQA0KPiA+Pj4+PiArLyoNCj4g Pj4+Pj4gKyAqIENvcHlyaWdodCAyMDE3IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4NCj4g Pj4+Pj4gKyAqDQo+ID4+Pj4+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVl IG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbg0KPiA+Pj4+PiArb2J0YWluaW5nIGENCj4gPj4+Pj4g KyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZp bGVzICh0aGUNCj4gPj4+Pj4gKyJTb2Z0d2FyZSIpLA0KPiA+Pj4+PiArICogdG8gZGVhbCBpbiB0 aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQNCj4gPj4+ Pj4gK2xpbWl0YXRpb24NCj4gPj4+Pj4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2Rp ZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLA0KPiA+Pj4+PiArc3VibGljZW5zZSwNCj4g Pj4+Pj4gKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJt aXQgcGVyc29ucyB0bw0KPiA+Pj4+PiArd2hvbSB0aGUNCj4gPj4+Pj4gKyAqIFNvZnR3YXJlIGlz IGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6 DQo+ID4+Pj4+ICsgKg0KPiA+Pj4+PiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k IHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUNCj4gPj4+Pj4gK2luY2x1ZGVkIGluDQo+ ID4+Pj4+ICsgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0 d2FyZS4NCj4gPj4+Pj4gKyAqDQo+ID4+Pj4+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQg IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRg0KPiBBTlkNCj4gPj4+PiBLSU5ELA0KPiA+Pj4+ PiArRVhQUkVTUyBPUg0KPiA+Pj4+PiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElN SVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRg0KPiA+Pj4+PiArTUVSQ0hBTlRBQklMSVRZLA0KPiA+ Pj4+PiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdF TUVOVC4NCj4gSU4NCj4gPj4+PiBOTyBFVkVOVA0KPiA+Pj4+PiArU0hBTEwNCj4gPj4+Pj4gKyAq IFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWQ0K PiBDTEFJTSwNCj4gPj4+Pj4gK0RBTUFHRVMgT1INCj4gPj4+Pj4gKyAqIE9USEVSIExJQUJJTElU WSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQNCj4gT1INCj4gPj4+Pj4g K09USEVSV0lTRSwNCj4gPj4+Pj4gKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5F Q1RJT04gV0lUSCBUSEUgU09GVFdBUkUNCj4gPj4gT1INCj4gPj4+PiBUSEUgVVNFDQo+ID4+Pj4+ ICtPUg0KPiA+Pj4+PiArICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLg0KPiA+Pj4+ PiArICovDQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKyNpZm5kZWYgX19NWEdQVV9WSV9IX18NCj4gPj4+ Pj4gKyNkZWZpbmUgX19NWEdQVV9WSV9IX18NCj4gPj4+Pj4gKw0KPiA+Pj4+PiArI2RlZmluZSBW SV9NQUlMQk9YX1RJTUVET1VUCTE1MA0KPiA+Pj4+PiArI2RlZmluZSBWSV9NQUlMQk9YX1JFU0VU X1RJTUUJMTINCj4gPj4+Pj4gKw0KPiA+Pj4+PiArLyogVkkgbWFpbGJveCBtZXNzYWdlcyByZXF1 ZXN0ICovDQo+ID4+Pj4+ICtlbnVtIGlkaF9yZXF1ZXN0IHsNCj4gPj4+Pj4gKwlJREhfUkVRX0dQ VV9JTklUX0FDQ0VTUwk9IDEsDQo+ID4+Pj4+ICsJSURIX1JFTF9HUFVfSU5JVF9BQ0NFU1MsDQo+ ID4+Pj4+ICsJSURIX1JFUV9HUFVfRklOSV9BQ0NFU1MsDQo+ID4+Pj4+ICsJSURIX1JFTF9HUFVf RklOSV9BQ0NFU1MsDQo+ID4+Pj4+ICsJSURIX1JFUV9HUFVfUkVTRVRfQUNDRVNTDQo+ID4+Pj4+ ICt9Ow0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsvKiBWSSBtYWlsYm94IG1lc3NhZ2VzIGRhdGEgKi8N Cj4gPj4+Pj4gK2VudW0gaWRoX2V2ZW50IHsNCj4gPj4+Pj4gKwlJREhfQ0xSX01TR19CVUYgPSAw LA0KPiA+Pj4+PiArCUlESF9SRUFEWV9UT19BQ0NFU1NfR1BVLA0KPiA+Pj4+PiArCUlESF9GTFJf Tk9USUZJQ0FUSU9OLA0KPiA+Pj4+PiArCUlESF9GTFJfTk9USUZJQ0FUSU9OX0NNUEwsDQo+ID4+ Pj4+ICsJSURIX0VWRU5UX01BWA0KPiA+Pj4+PiArfTsNCj4gPj4+Pj4gKw0KPiA+Pj4+PiArZXh0 ZXJuIGNvbnN0IHN0cnVjdCBhbWRncHVfdmlydF9vcHMgeGdwdV92aV92aXJ0X29wczsNCj4gPj4+ Pj4gKw0KPiA+Pj4+PiArdm9pZCB4Z3B1X3ZpX2luaXRfZ29sZGVuX3JlZ2lzdGVycyhzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldik7DQo+ID4+Pj4+ICt2b2lkIHhncHVfdmlfbWFpbGJveF9zZXRf aXJxX2Z1bmNzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsNCj4gaW50DQo+ID4+Pj4+ICt4 Z3B1X3ZpX21haWxib3hfYWRkX2lycV9pZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7IGlu dA0KPiA+Pj4+PiAreGdwdV92aV9tYWlsYm94X2dldF9pcnEoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYpOyB2b2lkDQo+ID4+Pj4+ICt4Z3B1X3ZpX21haWxib3hfcHV0X2lycShzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldik7DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKyNlbmRpZg0KPiA+IF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ID4gYW1kLWdmeCBt YWlsaW5nIGxpc3QNCj4gPiBhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0KPiA+IGh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeA0KPiANCg0K X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBt YWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==