From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [V2 06/11] drm/amdgpu/virt: implement VI virt operation interfaces Date: Tue, 10 Jan 2017 14:15:54 +0100 Message-ID: References: <1484042450-22987-1-git-send-email-Xiangliang.Yu@amd.com> <1484042450-22987-7-git-send-email-Xiangliang.Yu@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1484042450-22987-7-git-send-email-Xiangliang.Yu-5C7GfCeVMHo@public.gmane.org> 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: Xiangliang Yu , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org VW5yZWxhdGVkIHRvIHRoZSBwYXRjaCwgYnV0IHdoYXQgZWRpdG9yIGFuZCBzZXR0aW5ncyBkbyB5 b3UgdXNlPwoKU2VlIHRoaXMgY29kZSBmb3IgZXhhbXBsZQo+ICsJcmVnID0gUkVHX1NFVF9GSUVM RChyZWcsIE1BSUxCT1hfQ09OVFJPTCwKPiArCQkJCSBUUk5fTVNHX1ZBTElELCB2YWwgPyAxIDog MCk7CgpUaGUgaW5kZW50YXRpb24gc2VlbXMgdG8gYmUgaW5jb3JyZWN0LgoKTm90IG11Y2ggb2Yg YSBwcm9ibGVtLCBidXQgaWYgd2UgYWRkIHRoaXMgbGlrZSBpdCBpcyBhbnlib2R5IGVsc2UgCmVk aXRpbmcgdGhlIGZpbGUgY291bGQgbWVzcyB1cCB0aGUgaW5kZW50YXRpb24gd2hlbiB0aGUgZWRp dG9yIGRvZXMgdGhhdCAKZGlmZmVyZW50bHkuCgpSZWdhcmRzLApDaHJpc3RpYW4uCgpBbSAxMC4w MS4yMDE3IHVtIDExOjAwIHNjaHJpZWIgWGlhbmdsaWFuZyBZdToKPiBWSSBoYXMgYXNpYyBzcGVj aWZpYyB2aXJ0IHN1cHBvcnQsIHdoaWNoIGluY2x1ZGluZyBtYWlsYm94IGFuZAo+IGdvbGRlbiBy ZWdpc3RlcnMgaW5pdC4KPgo+IFNpZ25lZC1vZmYtYnk6IFhpYW5nbGlhbmcgWXUgPFhpYW5nbGlh bmcuWXVAYW1kLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L01ha2Vm aWxlICAgICAgfCAgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92 aXJ0LmggfCAgIDMgKwo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbXhncHVfdmkuYyAg ICB8IDU5MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gICBkcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9teGdwdV92aS5oICAgIHwgIDU1ICsrKwo+ICAgNCBmaWxlcyBjaGFuZ2Vk LCA2NTEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L214Z3B1X3ZpLmMKPiAgIGNyZWF0ZSBtb2RlIDEw MDY0NCBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9teGdwdV92aS5oCj4KPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9NYWtlZmlsZQo+IGluZGV4IDBiOGU0NzAuLjM4OGU3YjAgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9NYWtlZmlsZQo+IEBAIC00MCw3ICs0MCw3IEBAIGFtZGdwdS0kKENP TkZJR19EUk1fQU1ER1BVX0NJSykrPSBjaWsubyBjaWtfaWgubyBrdl9zbWMubyBrdl9kcG0ubyBc Cj4gICBhbWRncHUtJChDT05GSUdfRFJNX0FNREdQVV9TSSkrPSBzaS5vIGdtY192Nl8wLm8gZ2Z4 X3Y2XzAubyBzaV9paC5vIHNpX2RtYS5vIGRjZV92Nl8wLm8gc2lfZHBtLm8gc2lfc21jLm8KPiAg IAo+ICAgYW1kZ3B1LXkgKz0gXAo+IC0Jdmkubwo+ICsJdmkubyBteGdwdV92aS5vCj4gICAKPiAg ICMgYWRkIEdNQyBibG9jawo+ICAgYW1kZ3B1LXkgKz0gXAo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmlydC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X3ZpcnQuaAo+IGluZGV4IDNmOGZjMGYuLjYxMTY3NmIgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZpcnQuaAo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmgKPiBAQCAtNDUsNiArNDUsOSBAQCBz dHJ1Y3QgYW1kZ3B1X3ZpcnQgewo+ICAgCXVpbnQzMl90CQl2YWxfb2ZmczsKPiAgIAlzdHJ1Y3Qg bXV0ZXgJCWxvY2s7Cj4gICAKPiArCXN0cnVjdCBhbWRncHVfaXJxX3NyYwkJYWNrX2lycTsKPiAr CXN0cnVjdCBhbWRncHVfaXJxX3NyYwkJcmN2X2lycTsKPiArCXN0cnVjdCBkZWxheWVkX3dvcmsJ CWZscl93b3JrOwo+ICAgCWNvbnN0IHN0cnVjdCBhbWRncHVfdmlydF9vcHMJKm9wczsKPiAgIH07 Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbXhncHVfdmku YyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L214Z3B1X3ZpLmMKPiBuZXcgZmlsZSBtb2Rl IDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLjdkNDQ2NjMKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbXhncHVfdmkuYwo+IEBAIC0wLDAgKzEsNTkyIEBA Cj4gKy8qCj4gKyAqIENvcHlyaWdodCAyMDE3IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4K PiArICoKPiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2Us IHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKPiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFu ZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKPiArICog dG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdp dGhvdXQgbGltaXRhdGlvbgo+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBt ZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKPiArICogYW5kL29yIHNlbGwg Y29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhl Cj4gKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9s bG93aW5nIGNvbmRpdGlvbnM6Cj4gKyAqCj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl IGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCj4gKyAqIGFs bCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgo+ICsgKgo+ ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP RiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBM SU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiArICogRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVW RU5UIFNIQUxMCj4gKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBM SUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgo+ICsgKiBPVEhFUiBMSUFCSUxJVFksIFdI RVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKPiArICog QVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBP UiBUSEUgVVNFIE9SCj4gKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KPiArICoK PiArICogQXV0aG9yczogWGlhbmdsaWFuZy5ZdUBhbWQuY29tCj4gKyAqLwo+ICsKPiArI2luY2x1 ZGUgImFtZGdwdS5oIgo+ICsjaW5jbHVkZSAidmkuaCIKPiArI2luY2x1ZGUgImJpZi9iaWZfNV8w X2QuaCIKPiArI2luY2x1ZGUgImJpZi9iaWZfNV8wX3NoX21hc2suaCIKPiArI2luY2x1ZGUgInZp ZC5oIgo+ICsjaW5jbHVkZSAiZ2NhL2dmeF84XzBfZC5oIgo+ICsjaW5jbHVkZSAiZ2NhL2dmeF84 XzBfc2hfbWFzay5oIgo+ICsjaW5jbHVkZSAiZ21jX3Y4XzAuaCIKPiArI2luY2x1ZGUgImdmeF92 OF8wLmgiCj4gKyNpbmNsdWRlICJzZG1hX3YzXzAuaCIKPiArI2luY2x1ZGUgInRvbmdhX2loLmgi Cj4gKyNpbmNsdWRlICJnbWMvZ21jXzhfMl9kLmgiCj4gKyNpbmNsdWRlICJnbWMvZ21jXzhfMl9z aF9tYXNrLmgiCj4gKyNpbmNsdWRlICJvc3Mvb3NzXzNfMF9kLmgiCj4gKyNpbmNsdWRlICJvc3Mv b3NzXzNfMF9zaF9tYXNrLmgiCj4gKyNpbmNsdWRlICJnY2EvZ2Z4XzhfMF9zaF9tYXNrLmgiCj4g KyNpbmNsdWRlICJkY2UvZGNlXzEwXzBfZC5oIgo+ICsjaW5jbHVkZSAiZGNlL2RjZV8xMF8wX3No X21hc2suaCIKPiArI2luY2x1ZGUgInNtdS9zbXVfN18xXzNfZC5oIgo+ICsjaW5jbHVkZSAibXhn cHVfdmkuaCIKPiArCj4gKy8qIFZJIGdvbGRlbiBzZXR0aW5nICovCj4gK3N0YXRpYyBjb25zdCB1 MzIgeGdwdV9maWppX21nY2dfY2djZ19pbml0W10gPSB7Cj4gKwltbVJMQ19DR1RUX01HQ0dfT1ZF UlJJREUsIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYsCj4gKwltbUdSQk1fR0ZYX0lOREVYLCAweGZm ZmZmZmZmLCAweGUwMDAwMDAwLAo+ICsJbW1DQl9DR1RUX1NDTEtfQ1RSTCwgMHhmZmZmZmZmZiwg MHgwMDAwMDEwMCwKPiArCW1tQ0dUVF9CQ0lfQ0xLX0NUUkwsIDB4ZmZmZmZmZmYsIDB4MDAwMDAx MDAsCj4gKwltbUNHVFRfQ1BfQ0xLX0NUUkwsIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsCj4gKwlt bUNHVFRfQ1BDX0NMS19DVFJMLCAweGZmZmZmZmZmLCAweDAwMDAwMTAwLAo+ICsJbW1DR1RUX0NQ Rl9DTEtfQ1RSTCwgMHhmZmZmZmZmZiwgMHg0MDAwMDEwMCwKPiArCW1tQ0dUVF9EUk1fQ0xLX0NU UkwwLCAweGZmZmZmZmZmLCAweDAwNjAwMTAwLAo+ICsJbW1DR1RUX0dEU19DTEtfQ1RSTCwgMHhm ZmZmZmZmZiwgMHgwMDAwMDEwMCwKPiArCW1tQ0dUVF9JQV9DTEtfQ1RSTCwgMHhmZmZmZmZmZiwg MHgwNjAwMDEwMCwKPiArCW1tQ0dUVF9QQV9DTEtfQ1RSTCwgMHhmZmZmZmZmZiwgMHgwMDAwMDEw MCwKPiArCW1tQ0dUVF9XRF9DTEtfQ1RSTCwgMHhmZmZmZmZmZiwgMHgwNjAwMDEwMCwKPiArCW1t Q0dUVF9QQ19DTEtfQ1RSTCwgMHhmZmZmZmZmZiwgMHgwMDAwMDEwMCwKPiArCW1tQ0dUVF9STENf Q0xLX0NUUkwsIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsCj4gKwltbUNHVFRfU0NfQ0xLX0NUUkws IDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsCj4gKwltbUNHVFRfU1BJX0NMS19DVFJMLCAweGZmZmZm ZmZmLCAweDAwMDAwMTAwLAo+ICsJbW1DR1RUX1NRX0NMS19DVFJMLCAweGZmZmZmZmZmLCAweDAw MDAwMTAwLAo+ICsJbW1DR1RUX1NRR19DTEtfQ1RSTCwgMHhmZmZmZmZmZiwgMHgwMDAwMDEwMCwK PiArCW1tQ0dUVF9TWF9DTEtfQ1RSTDAsIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsCj4gKwltbUNH VFRfU1hfQ0xLX0NUUkwxLCAweGZmZmZmZmZmLCAweDAwMDAwMTAwLAo+ICsJbW1DR1RUX1NYX0NM S19DVFJMMiwgMHhmZmZmZmZmZiwgMHgwMDAwMDEwMCwKPiArCW1tQ0dUVF9TWF9DTEtfQ1RSTDMs IDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsCj4gKwltbUNHVFRfU1hfQ0xLX0NUUkw0LCAweGZmZmZm ZmZmLCAweDAwMDAwMTAwLAo+ICsJbW1DR1RUX1RDSV9DTEtfQ1RSTCwgMHhmZmZmZmZmZiwgMHgw MDAwMDEwMCwKPiArCW1tQ0dUVF9UQ1BfQ0xLX0NUUkwsIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAs Cj4gKwltbUNHVFRfVkdUX0NMS19DVFJMLCAweGZmZmZmZmZmLCAweDA2MDAwMTAwLAo+ICsJbW1E Ql9DR1RUX0NMS19DVFJMXzAsIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsCj4gKwltbVRBX0NHVFRf Q1RSTCwgMHhmZmZmZmZmZiwgMHgwMDAwMDEwMCwKPiArCW1tVENBX0NHVFRfU0NMS19DVFJMLCAw eGZmZmZmZmZmLCAweDAwMDAwMTAwLAo+ICsJbW1UQ0NfQ0dUVF9TQ0xLX0NUUkwsIDB4ZmZmZmZm ZmYsIDB4MDAwMDAxMDAsCj4gKwltbVREX0NHVFRfQ1RSTCwgMHhmZmZmZmZmZiwgMHgwMDAwMDEw MCwKPiArCW1tR1JCTV9HRlhfSU5ERVgsIDB4ZmZmZmZmZmYsIDB4ZTAwMDAwMDAsCj4gKwltbUNH VFNfU01fQ1RSTF9SRUcsIDB4ZmZmZmZmZmYsIDB4OTZlMDAyMDAsCj4gKwltbUNQX1JCX1dQVFJf UE9MTF9DTlRMLCAweGZmZmZmZmZmLCAweDAwOTAwMTAwLAo+ICsJbW1STENfQ0dDR19DR0xTX0NU UkwsIDB4ZmZmZmZmZmYsIDB4MDAyMDAwM2MsCj4gKwltbVBDSUVfSU5ERVgsIDB4ZmZmZmZmZmYs IDB4MDE0MDAwMWMsCj4gKwltbVBDSUVfREFUQSwgMHgwMDBmMDAwMCwgMHgwMDAwMDAwMCwKPiAr CW1tU01DX0lORF9JTkRFWF80LCAweGZmZmZmZmZmLCAweEMwNjAwMDBDLAo+ICsJbW1TTUNfSU5E X0RBVEFfNCwgMHhjMDAwMGZmZiwgMHgwMDAwMDEwMCwKPiArCW1tWERNQV9DTE9DS19HQVRJTkdf Q05UTCwgMHhmZmZmZmZmZiwgMHgwMDAwMDEwMCwKPiArCW1tWERNQV9NRU1fUE9XRVJfQ05UTCwg MHgwMDAwMDEwMSwgMHgwMDAwMDAwMCwKPiArCW1tTUNfTUVNX1BPV0VSX0xTLCAweGZmZmZmZmZm LCAweDAwMDAwMTA0LAo+ICsJbW1DR1RUX0RSTV9DTEtfQ1RSTDAsIDB4ZmYwMDBmZmYsIDB4MDAw MDAxMDAsCj4gKwltbUhEUF9YRFBfQ0dUVF9CTEtfQ1RSTCwgMHhjMDAwMGZmZiwgMHgwMDAwMDEw NCwKPiArCW1tQ1BfTUVNX1NMUF9DTlRMLCAweDAwMDAwMDAxLCAweDAwMDAwMDAxLAo+ICsJbW1T RE1BMF9DTEtfQ1RSTCwgMHhmZjAwMGZmMCwgMHgwMDAwMDEwMCwKPiArCW1tU0RNQTFfQ0xLX0NU UkwsIDB4ZmYwMDBmZjAsIDB4MDAwMDAxMDAsCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3QgdTMy IHhncHVfZmlqaV9nb2xkZW5fc2V0dGluZ3NfYTEwW10gPSB7Cj4gKwltbUNCX0hXX0NPTlRST0xf MywgMHgwMDAwMDFmZiwgMHgwMDAwMDA0MCwKPiArCW1tREJfREVCVUcyLCAweGYwMGZmZmZmLCAw eDAwMDAwNDAwLAo+ICsJbW1EQ0lfQ0xLX0NOVEwsIDB4MDAwMDAwODAsIDB4MDAwMDAwMDAsCj4g KwltbUZCQ19ERUJVR19DT01QLCAweDAwMDAwMGYwLCAweDAwMDAwMDcwLAo+ICsJbW1GQkNfTUlT QywgMHgxZjMxMWZmZiwgMHgxMjMwMDAwMCwKPiArCW1tSERNSV9DT05UUk9MLCAweDMxMDAwMTEx LCAweDAwMDAwMDExLAo+ICsJbW1QQV9TQ19FTkhBTkNFLCAweGZmZmZmZmZmLCAweDIwMDAwMDAx LAo+ICsJbW1QQV9TQ19MSU5FX1NUSVBQTEVfU1RBVEUsIDB4MDAwMGZmMGYsIDB4MDAwMDAwMDAs Cj4gKwltbVNETUEwX0NISUNLRU5fQklUUywgMHhmYzkxMDAwNywgMHgwMDgxMDAwNywKPiArCW1t U0RNQTBfR0ZYX0lCX0NOVEwsIDB4ODAwZjAxMTEsIDB4MDAwMDAxMDAsCj4gKwltbVNETUEwX1JM QzBfSUJfQ05UTCwgMHg4MDBmMDExMSwgMHgwMDAwMDEwMCwKPiArCW1tU0RNQTBfUkxDMV9JQl9D TlRMLCAweDgwMGYwMTExLCAweDAwMDAwMTAwLAo+ICsJbW1TRE1BMV9DSElDS0VOX0JJVFMsIDB4 ZmM5MTAwMDcsIDB4MDA4MTAwMDcsCj4gKwltbVNETUExX0dGWF9JQl9DTlRMLCAweDgwMGYwMTEx LCAweDAwMDAwMTAwLAo+ICsJbW1TRE1BMV9STEMwX0lCX0NOVEwsIDB4ODAwZjAxMTEsIDB4MDAw MDAxMDAsCj4gKwltbVNETUExX1JMQzFfSUJfQ05UTCwgMHg4MDBmMDExMSwgMHgwMDAwMDEwMCwK PiArCW1tU1FfUkFORE9NX1dBVkVfUFJJLCAweDAwMWZmZmZmLCAweDAwMDAwNmZkLAo+ICsJbW1U QV9DTlRMX0FVWCwgMHgwMDBmMDAwZiwgMHgwMDBiMDAwMCwKPiArCW1tVENDX0VYRV9ESVNBQkxF LCAweDAwMDAwMDAyLCAweDAwMDAwMDAyLAo+ICsJbW1UQ1BfQUREUl9DT05GSUcsIDB4MDAwMDAz ZmYsIDB4MDAwMDAwZmYsCj4gKwltbVZHVF9SRVNFVF9ERUJVRywgMHgwMDAwMDAwNCwgMHgwMDAw MDAwNCwKPiArCW1tVk1fUFJUX0FQRVJUVVJFMF9MT1dfQUREUiwgMHgwZmZmZmZmZiwgMHgwZmZm ZmZmZiwKPiArCW1tVk1fUFJUX0FQRVJUVVJFMV9MT1dfQUREUiwgMHgwZmZmZmZmZiwgMHgwZmZm ZmZmZiwKPiArCW1tVk1fUFJUX0FQRVJUVVJFMl9MT1dfQUREUiwgMHgwZmZmZmZmZiwgMHgwZmZm ZmZmZiwKPiArCW1tVk1fUFJUX0FQRVJUVVJFM19MT1dfQUREUiwgMHgwZmZmZmZmZiwgMHgwZmZm ZmZmZiwKPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCB1MzIgeGdwdV9maWppX2dvbGRlbl9jb21t b25fYWxsW10gPSB7Cj4gKwltbUdSQk1fR0ZYX0lOREVYLCAweGZmZmZmZmZmLCAweGUwMDAwMDAw LAo+ICsJbW1QQV9TQ19SQVNURVJfQ09ORklHLCAweGZmZmZmZmZmLCAweDNhMDAxNjFhLAo+ICsJ bW1QQV9TQ19SQVNURVJfQ09ORklHXzEsIDB4ZmZmZmZmZmYsIDB4MDAwMDAwMmUsCj4gKwltbUdC X0FERFJfQ09ORklHLCAweGZmZmZmZmZmLCAweDIyMDExMDAzLAo+ICsJbW1TUElfUkVTT1VSQ0Vf UkVTRVJWRV9DVV8wLCAweGZmZmZmZmZmLCAweDAwMDAwODAwLAo+ICsJbW1TUElfUkVTT1VSQ0Vf UkVTRVJWRV9DVV8xLCAweGZmZmZmZmZmLCAweDAwMDAwODAwLAo+ICsJbW1TUElfUkVTT1VSQ0Vf UkVTRVJWRV9FTl9DVV8wLCAweGZmZmZmZmZmLCAweDAwMDA3RkJGLAo+ICsJbW1TUElfUkVTT1VS Q0VfUkVTRVJWRV9FTl9DVV8xLCAweGZmZmZmZmZmLCAweDAwMDA3RkFGLAo+ICsJbW1HUkJNX0dG WF9JTkRFWCwgMHhmZmZmZmZmZiwgMHhlMDAwMDAwMCwKPiArCW1tU1BJX0NPTkZJR19DTlRMXzEs IDB4MDAwMDAwMGYsIDB4MDAwMDAwMDksCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3QgdTMyIHhn cHVfdG9uZ2FfbWdjZ19jZ2NnX2luaXRbXSA9IHsKPiArCW1tUkxDX0NHVFRfTUdDR19PVkVSUklE RSwgICAweGZmZmZmZmZmLCAweGZmZmZmZmZmLAo+ICsJbW1HUkJNX0dGWF9JTkRFWCwgICAgICAg ICAgIDB4ZmZmZmZmZmYsIDB4ZTAwMDAwMDAsCj4gKwltbUNCX0NHVFRfU0NMS19DVFJMLCAgICAg ICAgMHhmZmZmZmZmZiwgMHgwMDAwMDEwMCwKPiArCW1tQ0dUVF9CQ0lfQ0xLX0NUUkwsICAgICAg ICAweGZmZmZmZmZmLCAweDAwMDAwMTAwLAo+ICsJbW1DR1RUX0NQX0NMS19DVFJMLCAgICAgICAg IDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsCj4gKwltbUNHVFRfQ1BDX0NMS19DVFJMLCAgICAgICAg MHhmZmZmZmZmZiwgMHgwMDAwMDEwMCwKPiArCW1tQ0dUVF9DUEZfQ0xLX0NUUkwsICAgICAgICAw eGZmZmZmZmZmLCAweDQwMDAwMTAwLAo+ICsJbW1DR1RUX0RSTV9DTEtfQ1RSTDAsICAgICAgIDB4 ZmZmZmZmZmYsIDB4MDA2MDAxMDAsCj4gKwltbUNHVFRfR0RTX0NMS19DVFJMLCAgICAgICAgMHhm ZmZmZmZmZiwgMHgwMDAwMDEwMCwKPiArCW1tQ0dUVF9JQV9DTEtfQ1RSTCwgICAgICAgICAweGZm ZmZmZmZmLCAweDA2MDAwMTAwLAo+ICsJbW1DR1RUX1BBX0NMS19DVFJMLCAgICAgICAgIDB4ZmZm ZmZmZmYsIDB4MDAwMDAxMDAsCj4gKwltbUNHVFRfV0RfQ0xLX0NUUkwsICAgICAgICAgMHhmZmZm ZmZmZiwgMHgwNjAwMDEwMCwKPiArCW1tQ0dUVF9QQ19DTEtfQ1RSTCwgICAgICAgICAweGZmZmZm ZmZmLCAweDAwMDAwMTAwLAo+ICsJbW1DR1RUX1JMQ19DTEtfQ1RSTCwgICAgICAgIDB4ZmZmZmZm ZmYsIDB4MDAwMDAxMDAsCj4gKwltbUNHVFRfU0NfQ0xLX0NUUkwsICAgICAgICAgMHhmZmZmZmZm ZiwgMHgwMDAwMDEwMCwKPiArCW1tQ0dUVF9TUElfQ0xLX0NUUkwsICAgICAgICAweGZmZmZmZmZm LCAweDAwMDAwMTAwLAo+ICsJbW1DR1RUX1NRX0NMS19DVFJMLCAgICAgICAgIDB4ZmZmZmZmZmYs IDB4MDAwMDAxMDAsCj4gKwltbUNHVFRfU1FHX0NMS19DVFJMLCAgICAgICAgMHhmZmZmZmZmZiwg MHgwMDAwMDEwMCwKPiArCW1tQ0dUVF9TWF9DTEtfQ1RSTDAsICAgICAgICAweGZmZmZmZmZmLCAw eDAwMDAwMTAwLAo+ICsJbW1DR1RUX1NYX0NMS19DVFJMMSwgICAgICAgIDB4ZmZmZmZmZmYsIDB4 MDAwMDAxMDAsCj4gKwltbUNHVFRfU1hfQ0xLX0NUUkwyLCAgICAgICAgMHhmZmZmZmZmZiwgMHgw MDAwMDEwMCwKPiArCW1tQ0dUVF9TWF9DTEtfQ1RSTDMsICAgICAgICAweGZmZmZmZmZmLCAweDAw MDAwMTAwLAo+ICsJbW1DR1RUX1NYX0NMS19DVFJMNCwgICAgICAgIDB4ZmZmZmZmZmYsIDB4MDAw MDAxMDAsCj4gKwltbUNHVFRfVENJX0NMS19DVFJMLCAgICAgICAgMHhmZmZmZmZmZiwgMHgwMDAw MDEwMCwKPiArCW1tQ0dUVF9UQ1BfQ0xLX0NUUkwsICAgICAgICAweGZmZmZmZmZmLCAweDAwMDAw MTAwLAo+ICsJbW1DR1RUX1ZHVF9DTEtfQ1RSTCwgICAgICAgIDB4ZmZmZmZmZmYsIDB4MDYwMDAx MDAsCj4gKwltbURCX0NHVFRfQ0xLX0NUUkxfMCwgICAgICAgMHhmZmZmZmZmZiwgMHgwMDAwMDEw MCwKPiArCW1tVEFfQ0dUVF9DVFJMLCAgICAgICAgICAgICAweGZmZmZmZmZmLCAweDAwMDAwMTAw LAo+ICsJbW1UQ0FfQ0dUVF9TQ0xLX0NUUkwsICAgICAgIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAs Cj4gKwltbVRDQ19DR1RUX1NDTEtfQ1RSTCwgICAgICAgMHhmZmZmZmZmZiwgMHgwMDAwMDEwMCwK PiArCW1tVERfQ0dUVF9DVFJMLCAgICAgICAgICAgICAweGZmZmZmZmZmLCAweDAwMDAwMTAwLAo+ ICsJbW1HUkJNX0dGWF9JTkRFWCwgICAgICAgICAgIDB4ZmZmZmZmZmYsIDB4ZTAwMDAwMDAsCj4g KwltbUNHVFNfQ1UwX1NQMF9DVFJMX1JFRywgICAgMHhmZmZmZmZmZiwgMHgwMDAxMDAwMCwKPiAr CW1tQ0dUU19DVTBfTERTX1NRX0NUUkxfUkVHLCAweGZmZmZmZmZmLCAweDAwMDMwMDAyLAo+ICsJ bW1DR1RTX0NVMF9UQV9TUUNfQ1RSTF9SRUcsIDB4ZmZmZmZmZmYsIDB4MDAwNDAwMDcsCj4gKwlt bUNHVFNfQ1UwX1NQMV9DVFJMX1JFRywgICAgMHhmZmZmZmZmZiwgMHgwMDA2MDAwNSwKPiArCW1t Q0dUU19DVTBfVERfVENQX0NUUkxfUkVHLCAweGZmZmZmZmZmLCAweDAwMDkwMDA4LAo+ICsJbW1D R1RTX0NVMV9TUDBfQ1RSTF9SRUcsICAgIDB4ZmZmZmZmZmYsIDB4MDAwMTAwMDAsCj4gKwltbUNH VFNfQ1UxX0xEU19TUV9DVFJMX1JFRywgMHhmZmZmZmZmZiwgMHgwMDAzMDAwMiwKPiArCW1tQ0dU U19DVTFfVEFfQ1RSTF9SRUcsICAgICAweGZmZmZmZmZmLCAweDAwMDQwMDA3LAo+ICsJbW1DR1RT X0NVMV9TUDFfQ1RSTF9SRUcsICAgIDB4ZmZmZmZmZmYsIDB4MDAwNjAwMDUsCj4gKwltbUNHVFNf Q1UxX1REX1RDUF9DVFJMX1JFRywgMHhmZmZmZmZmZiwgMHgwMDA5MDAwOCwKPiArCW1tQ0dUU19D VTJfU1AwX0NUUkxfUkVHLCAgICAweGZmZmZmZmZmLCAweDAwMDEwMDAwLAo+ICsJbW1DR1RTX0NV Ml9MRFNfU1FfQ1RSTF9SRUcsIDB4ZmZmZmZmZmYsIDB4MDAwMzAwMDIsCj4gKwltbUNHVFNfQ1Uy X1RBX0NUUkxfUkVHLCAgICAgMHhmZmZmZmZmZiwgMHgwMDA0MDAwNywKPiArCW1tQ0dUU19DVTJf U1AxX0NUUkxfUkVHLCAgICAweGZmZmZmZmZmLCAweDAwMDYwMDA1LAo+ICsJbW1DR1RTX0NVMl9U RF9UQ1BfQ1RSTF9SRUcsIDB4ZmZmZmZmZmYsIDB4MDAwOTAwMDgsCj4gKwltbUNHVFNfQ1UzX1NQ MF9DVFJMX1JFRywgICAgMHhmZmZmZmZmZiwgMHgwMDAxMDAwMCwKPiArCW1tQ0dUU19DVTNfTERT X1NRX0NUUkxfUkVHLCAweGZmZmZmZmZmLCAweDAwMDMwMDAyLAo+ICsJbW1DR1RTX0NVM19UQV9D VFJMX1JFRywgICAgIDB4ZmZmZmZmZmYsIDB4MDAwNDAwMDcsCj4gKwltbUNHVFNfQ1UzX1NQMV9D VFJMX1JFRywgICAgMHhmZmZmZmZmZiwgMHgwMDA2MDAwNSwKPiArCW1tQ0dUU19DVTNfVERfVENQ X0NUUkxfUkVHLCAweGZmZmZmZmZmLCAweDAwMDkwMDA4LAo+ICsJbW1DR1RTX0NVNF9TUDBfQ1RS TF9SRUcsICAgIDB4ZmZmZmZmZmYsIDB4MDAwMTAwMDAsCj4gKwltbUNHVFNfQ1U0X0xEU19TUV9D VFJMX1JFRywgMHhmZmZmZmZmZiwgMHgwMDAzMDAwMiwKPiArCW1tQ0dUU19DVTRfVEFfU1FDX0NU UkxfUkVHLCAweGZmZmZmZmZmLCAweDAwMDQwMDA3LAo+ICsJbW1DR1RTX0NVNF9TUDFfQ1RSTF9S RUcsICAgIDB4ZmZmZmZmZmYsIDB4MDAwNjAwMDUsCj4gKwltbUNHVFNfQ1U0X1REX1RDUF9DVFJM X1JFRywgMHhmZmZmZmZmZiwgMHgwMDA5MDAwOCwKPiArCW1tQ0dUU19DVTVfU1AwX0NUUkxfUkVH LCAgICAweGZmZmZmZmZmLCAweDAwMDEwMDAwLAo+ICsJbW1DR1RTX0NVNV9MRFNfU1FfQ1RSTF9S RUcsIDB4ZmZmZmZmZmYsIDB4MDAwMzAwMDIsCj4gKwltbUNHVFNfQ1U1X1RBX0NUUkxfUkVHLCAg ICAgMHhmZmZmZmZmZiwgMHgwMDA0MDAwNywKPiArCW1tQ0dUU19DVTVfU1AxX0NUUkxfUkVHLCAg ICAweGZmZmZmZmZmLCAweDAwMDYwMDA1LAo+ICsJbW1DR1RTX0NVNV9URF9UQ1BfQ1RSTF9SRUcs IDB4ZmZmZmZmZmYsIDB4MDAwOTAwMDgsCj4gKwltbUNHVFNfQ1U2X1NQMF9DVFJMX1JFRywgICAg MHhmZmZmZmZmZiwgMHgwMDAxMDAwMCwKPiArCW1tQ0dUU19DVTZfTERTX1NRX0NUUkxfUkVHLCAw eGZmZmZmZmZmLCAweDAwMDMwMDAyLAo+ICsJbW1DR1RTX0NVNl9UQV9DVFJMX1JFRywgICAgIDB4 ZmZmZmZmZmYsIDB4MDAwNDAwMDcsCj4gKwltbUNHVFNfQ1U2X1NQMV9DVFJMX1JFRywgICAgMHhm ZmZmZmZmZiwgMHgwMDA2MDAwNSwKPiArCW1tQ0dUU19DVTZfVERfVENQX0NUUkxfUkVHLCAweGZm ZmZmZmZmLCAweDAwMDkwMDA4LAo+ICsJbW1DR1RTX0NVN19TUDBfQ1RSTF9SRUcsICAgIDB4ZmZm ZmZmZmYsIDB4MDAwMTAwMDAsCj4gKwltbUNHVFNfQ1U3X0xEU19TUV9DVFJMX1JFRywgMHhmZmZm ZmZmZiwgMHgwMDAzMDAwMiwKPiArCW1tQ0dUU19DVTdfVEFfQ1RSTF9SRUcsICAgICAweGZmZmZm ZmZmLCAweDAwMDQwMDA3LAo+ICsJbW1DR1RTX0NVN19TUDFfQ1RSTF9SRUcsICAgIDB4ZmZmZmZm ZmYsIDB4MDAwNjAwMDUsCj4gKwltbUNHVFNfQ1U3X1REX1RDUF9DVFJMX1JFRywgMHhmZmZmZmZm ZiwgMHgwMDA5MDAwOCwKPiArCW1tQ0dUU19TTV9DVFJMX1JFRywgICAgICAgICAweGZmZmZmZmZm LCAweDk2ZTAwMjAwLAo+ICsJbW1DUF9SQl9XUFRSX1BPTExfQ05UTCwgICAgIDB4ZmZmZmZmZmYs IDB4MDA5MDAxMDAsCj4gKwltbVJMQ19DR0NHX0NHTFNfQ1RSTCwgICAgICAgMHhmZmZmZmZmZiwg MHgwMDIwMDAzYywKPiArCW1tUENJRV9JTkRFWCwgICAgICAgICAgICAgICAweGZmZmZmZmZmLCAw eDAxNDAwMDFjLAo+ICsJbW1QQ0lFX0RBVEEsICAgICAgICAgICAgICAgIDB4MDAwZjAwMDAsIDB4 MDAwMDAwMDAsCj4gKwltbVNNQ19JTkRfSU5ERVhfNCwgICAgICAgICAgMHhmZmZmZmZmZiwgMHhD MDYwMDAwQywKPiArCW1tU01DX0lORF9EQVRBXzQsICAgICAgICAgICAweGMwMDAwZmZmLCAweDAw MDAwMTAwLAo+ICsJbW1YRE1BX0NMT0NLX0dBVElOR19DTlRMLCAgIDB4ZmZmZmZmZmYsIDB4MDAw MDAxMDAsCj4gKwltbVhETUFfTUVNX1BPV0VSX0NOVEwsICAgICAgMHgwMDAwMDEwMSwgMHgwMDAw MDAwMCwKPiArCW1tTUNfTUVNX1BPV0VSX0xTLCAgICAgICAgICAweGZmZmZmZmZmLCAweDAwMDAw MTA0LAo+ICsJbW1DR1RUX0RSTV9DTEtfQ1RSTDAsICAgICAgIDB4ZmYwMDBmZmYsIDB4MDAwMDAx MDAsCj4gKwltbUhEUF9YRFBfQ0dUVF9CTEtfQ1RSTCwgICAgMHhjMDAwMGZmZiwgMHgwMDAwMDEw NCwKPiArCW1tQ1BfTUVNX1NMUF9DTlRMLCAgICAgICAgICAweDAwMDAwMDAxLCAweDAwMDAwMDAx LAo+ICsJbW1TRE1BMF9DTEtfQ1RSTCwgICAgICAgICAgIDB4ZmYwMDBmZjAsIDB4MDAwMDAxMDAs Cj4gKwltbVNETUExX0NMS19DVFJMLCAgICAgICAgICAgMHhmZjAwMGZmMCwgMHgwMDAwMDEwMCwK PiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCB1MzIgeGdwdV90b25nYV9nb2xkZW5fc2V0dGluZ3Nf YTExW10gPSB7Cj4gKwltbUNCX0hXX0NPTlRST0wsIDB4ZmZmZGYzY2YsIDB4MDAwMDcyMDgsCj4g KwltbUNCX0hXX0NPTlRST0xfMywgMHgwMDAwMDA0MCwgMHgwMDAwMDA0MCwKPiArCW1tREJfREVC VUcyLCAweGYwMGZmZmZmLCAweDAwMDAwNDAwLAo+ICsJbW1EQ0lfQ0xLX0NOVEwsIDB4MDAwMDAw ODAsIDB4MDAwMDAwMDAsCj4gKwltbUZCQ19ERUJVR19DT01QLCAweDAwMDAwMGYwLCAweDAwMDAw MDcwLAo+ICsJbW1GQkNfTUlTQywgMHgxZjMxMWZmZiwgMHgxMjMwMDAwMCwKPiArCW1tR0JfR1BV X0lELCAweDAwMDAwMDBmLCAweDAwMDAwMDAwLAo+ICsJbW1IRE1JX0NPTlRST0wsIDB4MzEwMDAx MTEsIDB4MDAwMDAwMTEsCj4gKwltbU1DX0FSQl9XVE1fR1JQV1RfUkQsIDB4MDAwMDAwMDMsIDB4 MDAwMDAwMDAsCj4gKwltbU1DX0hVQl9SRFJFUV9ETUlGX0xJTUlULCAweDAwMDAwMDdmLCAweDAw MDAwMDI4LAo+ICsJbW1NQ19IVUJfV0RQX1VNQywgMHgwMDAwN2ZiNiwgMHgwMDAwMDk5MSwKPiAr CW1tUEFfU0NfRU5IQU5DRSwgMHhmZmZmZmZmZiwgMHgyMDAwMDAwMSwKPiArCW1tUEFfU0NfRklG T19ERVBUSF9DTlRMLCAweDAwMDAwM2ZmLCAweDAwMDAwMGZjLAo+ICsJbW1QQV9TQ19MSU5FX1NU SVBQTEVfU1RBVEUsIDB4MDAwMGZmMGYsIDB4MDAwMDAwMDAsCj4gKwltbVJMQ19DR0NHX0NHTFNf Q1RSTCwgMHgwMDAwMDAwMywgMHgwMDAwMDAzYywKPiArCW1tU0RNQTBfQ0hJQ0tFTl9CSVRTLCAw eGZjOTEwMDA3LCAweDAwODEwMDA3LAo+ICsJbW1TRE1BMF9DTEtfQ1RSTCwgMHhmZjAwMGZmZiwg MHgwMDAwMDAwMCwKPiArCW1tU0RNQTBfR0ZYX0lCX0NOVEwsIDB4ODAwZjAxMTEsIDB4MDAwMDAx MDAsCj4gKwltbVNETUEwX1JMQzBfSUJfQ05UTCwgMHg4MDBmMDExMSwgMHgwMDAwMDEwMCwKPiAr CW1tU0RNQTBfUkxDMV9JQl9DTlRMLCAweDgwMGYwMTExLCAweDAwMDAwMTAwLAo+ICsJbW1TRE1B MV9DSElDS0VOX0JJVFMsIDB4ZmM5MTAwMDcsIDB4MDA4MTAwMDcsCj4gKwltbVNETUExX0NMS19D VFJMLCAweGZmMDAwZmZmLCAweDAwMDAwMDAwLAo+ICsJbW1TRE1BMV9HRlhfSUJfQ05UTCwgMHg4 MDBmMDExMSwgMHgwMDAwMDEwMCwKPiArCW1tU0RNQTFfUkxDMF9JQl9DTlRMLCAweDgwMGYwMTEx LCAweDAwMDAwMTAwLAo+ICsJbW1TRE1BMV9STEMxX0lCX0NOVEwsIDB4ODAwZjAxMTEsIDB4MDAw MDAxMDAsCj4gKwltbVNRX1JBTkRPTV9XQVZFX1BSSSwgMHgwMDFmZmZmZiwgMHgwMDAwMDZmZCwK PiArCW1tVEFfQ05UTF9BVVgsIDB4MDAwZjAwMGYsIDB4MDAwYjAwMDAsCj4gKwltbVRDQ19DVFJM LCAweDAwMTAwMDAwLCAweGYzMWZmZjdmLAo+ICsJbW1UQ0NfRVhFX0RJU0FCTEUsIDB4MDAwMDAw MDIsIDB4MDAwMDAwMDIsCj4gKwltbVRDUF9BRERSX0NPTkZJRywgMHgwMDAwMDNmZiwgMHgwMDAw MDJmYiwKPiArCW1tVENQX0NIQU5fU1RFRVJfSEksIDB4ZmZmZmZmZmYsIDB4MDAwMDU0M2IsCj4g KwltbVRDUF9DSEFOX1NURUVSX0xPLCAweGZmZmZmZmZmLCAweGE5MjEwODc2LAo+ICsJbW1WR1Rf UkVTRVRfREVCVUcsIDB4MDAwMDAwMDQsIDB4MDAwMDAwMDQsCj4gKwltbVZNX1BSVF9BUEVSVFVS RTBfTE9XX0FERFIsIDB4MGZmZmZmZmYsIDB4MGZmZmZmZmYsCj4gKwltbVZNX1BSVF9BUEVSVFVS RTFfTE9XX0FERFIsIDB4MGZmZmZmZmYsIDB4MGZmZmZmZmYsCj4gKwltbVZNX1BSVF9BUEVSVFVS RTJfTE9XX0FERFIsIDB4MGZmZmZmZmYsIDB4MGZmZmZmZmYsCj4gKwltbVZNX1BSVF9BUEVSVFVS RTNfTE9XX0FERFIsIDB4MGZmZmZmZmYsIDB4MGZmZmZmZmYsCj4gK307Cj4gKwo+ICtzdGF0aWMg Y29uc3QgdTMyIHhncHVfdG9uZ2FfZ29sZGVuX2NvbW1vbl9hbGxbXSA9IHsKPiArCW1tR1JCTV9H RlhfSU5ERVgsICAgICAgICAgICAgICAgMHhmZmZmZmZmZiwgMHhlMDAwMDAwMCwKPiArCW1tUEFf U0NfUkFTVEVSX0NPTkZJRywgICAgICAgICAgMHhmZmZmZmZmZiwgMHgxNjAwMDAxMiwKPiArCW1t UEFfU0NfUkFTVEVSX0NPTkZJR18xLCAgICAgICAgMHhmZmZmZmZmZiwgMHgwMDAwMDAyQSwKPiAr CW1tR0JfQUREUl9DT05GSUcsICAgICAgICAgICAgICAgMHhmZmZmZmZmZiwgMHgyMjAxMTAwMiwK PiArCW1tU1BJX1JFU09VUkNFX1JFU0VSVkVfQ1VfMCwgICAgMHhmZmZmZmZmZiwgMHgwMDAwMDgw MCwKPiArCW1tU1BJX1JFU09VUkNFX1JFU0VSVkVfQ1VfMSwgICAgMHhmZmZmZmZmZiwgMHgwMDAw MDgwMCwKPiArCW1tU1BJX1JFU09VUkNFX1JFU0VSVkVfRU5fQ1VfMCwgMHhmZmZmZmZmZiwgMHgw MDAwN0ZCRiwKPiArfTsKPiArCj4gK3ZvaWQgeGdwdV92aV9pbml0X2dvbGRlbl9yZWdpc3RlcnMo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gK3sKPiArCXN3aXRjaCAoYWRldi0+YXNpY190 eXBlKSB7Cj4gKwljYXNlIENISVBfRklKSToKPiArCQlhbWRncHVfcHJvZ3JhbV9yZWdpc3Rlcl9z ZXF1ZW5jZShhZGV2LAo+ICsJCQkJCQkgeGdwdV9maWppX21nY2dfY2djZ19pbml0LAo+ICsJCQkJ CQkgKGNvbnN0IHUzMilBUlJBWV9TSVpFKAo+ICsJCQkJCQkgeGdwdV9maWppX21nY2dfY2djZ19p bml0KSk7Cj4gKwkJYW1kZ3B1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwKPiArCQkJ CQkJIHhncHVfZmlqaV9nb2xkZW5fc2V0dGluZ3NfYTEwLAo+ICsJCQkJCQkgKGNvbnN0IHUzMilB UlJBWV9TSVpFKAo+ICsJCQkJCQkgeGdwdV9maWppX2dvbGRlbl9zZXR0aW5nc19hMTApKTsKPiAr CQlhbWRncHVfcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LAo+ICsJCQkJCQkgeGdwdV9m aWppX2dvbGRlbl9jb21tb25fYWxsLAo+ICsJCQkJCQkgKGNvbnN0IHUzMilBUlJBWV9TSVpFKAo+ ICsJCQkJCQkgeGdwdV9maWppX2dvbGRlbl9jb21tb25fYWxsKSk7Cj4gKwkJYnJlYWs7Cj4gKwlj YXNlIENISVBfVE9OR0E6Cj4gKwkJYW1kZ3B1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRl diwKPiArCQkJCQkJIHhncHVfdG9uZ2FfbWdjZ19jZ2NnX2luaXQsCj4gKwkJCQkJCSAoY29uc3Qg dTMyKUFSUkFZX1NJWkUoCj4gKwkJCQkJCSB4Z3B1X3RvbmdhX21nY2dfY2djZ19pbml0KSk7Cj4g KwkJYW1kZ3B1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwKPiArCQkJCQkJIHhncHVf dG9uZ2FfZ29sZGVuX3NldHRpbmdzX2ExMSwKPiArCQkJCQkJIChjb25zdCB1MzIpQVJSQVlfU0la RSgKPiArCQkJCQkJIHhncHVfdG9uZ2FfZ29sZGVuX3NldHRpbmdzX2ExMSkpOwo+ICsJCWFtZGdw dV9wcm9ncmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsCj4gKwkJCQkJCSB4Z3B1X3RvbmdhX2dv bGRlbl9jb21tb25fYWxsLAo+ICsJCQkJCQkgKGNvbnN0IHUzMilBUlJBWV9TSVpFKAo+ICsJCQkJ CQkgeGdwdV90b25nYV9nb2xkZW5fY29tbW9uX2FsbCkpOwo+ICsJCWJyZWFrOwo+ICsJZGVmYXVs dDoKPiArCQlCVUdfT04oIkRvZXNuJ3Qgc3VwcG9ydCBjaGlwIHR5cGUuXG4iKTsKPiArCQlicmVh azsKPiArCX0KPiArfQo+ICsKPiArLyoKPiArICogTWFpbGJveCBjb21tdW5pY2F0aW9uIGJldHdl ZW4gR1BVIGh5cGVydmlzb3IgYW5kIFZGcwo+ICsgKi8KPiArc3RhdGljIHZvaWQgeGdwdV92aV9t YWlsYm94X3NlbmRfYWNrKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICt7Cj4gKwl1MzIg cmVnOwo+ICsKPiArCXJlZyA9IFJSRUczMihtbU1BSUxCT1hfQ09OVFJPTCk7Cj4gKwlyZWcgPSBS RUdfU0VUX0ZJRUxEKHJlZywgTUFJTEJPWF9DT05UUk9MLCBSQ1ZfTVNHX0FDSywgMSk7Cj4gKwlX UkVHMzIobW1NQUlMQk9YX0NPTlRST0wsIHJlZyk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHhn cHVfdmlfbWFpbGJveF9zZXRfdmFsaWQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGJvb2wg dmFsKQo+ICt7Cj4gKwl1MzIgcmVnOwo+ICsKPiArCXJlZyA9IFJSRUczMihtbU1BSUxCT1hfQ09O VFJPTCk7Cj4gKwlyZWcgPSBSRUdfU0VUX0ZJRUxEKHJlZywgTUFJTEJPWF9DT05UUk9MLAo+ICsJ CQkJIFRSTl9NU0dfVkFMSUQsIHZhbCA/IDEgOiAwKTsKPiArCVdSRUczMihtbU1BSUxCT1hfQ09O VFJPTCwgcmVnKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgeGdwdV92aV9tYWlsYm94X3RyYW5z X21zZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPiArCQkJCSAgICAgIGVudW0gaWRoX2V2 ZW50IGV2ZW50KQo+ICt7Cj4gKwl1MzIgcmVnOwo+ICsKPiArCXJlZyA9IFJSRUczMihtbU1BSUxC T1hfTVNHQlVGX1RSTl9EVzApOwo+ICsJcmVnID0gUkVHX1NFVF9GSUVMRChyZWcsIE1BSUxCT1hf TVNHQlVGX1RSTl9EVzAsCj4gKwkJCQkgTVNHQlVGX0RBVEEsIGV2ZW50KTsKPiArCVdSRUczMiht bU1BSUxCT1hfTVNHQlVGX1RSTl9EVzAsIHJlZyk7Cj4gKwo+ICsJeGdwdV92aV9tYWlsYm94X3Nl dF92YWxpZChhZGV2LCB0cnVlKTsKPiArfQo+ICsKPiArc3RhdGljIGludCB4Z3B1X3ZpX21haWxi b3hfcmN2X21zZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPiArCQkJCSAgIGVudW0gaWRo X2V2ZW50IGV2ZW50KQo+ICt7Cj4gKwl1MzIgcmVnOwo+ICsKPiArCXJlZyA9IFJSRUczMihtbU1B SUxCT1hfTVNHQlVGX1JDVl9EVzApOwo+ICsJaWYgKHJlZyAhPSBldmVudCkKPiArCQlyZXR1cm4g LUVOT0VOVDsKPiArCj4gKwkvKiBzZW5kIGFjayB0byBQRiAqLwo+ICsJeGdwdV92aV9tYWlsYm94 X3NlbmRfYWNrKGFkZXYpOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50 IHhncHVfdmlfcG9sbF9hY2soc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gK3sKPiArCWlu dCByID0gMCwgdGltZW91dCA9IFZJX01BSUxCT1hfVElNRURPVVQ7Cj4gKwl1MzIgbWFzayA9IFJF R19GSUVMRF9NQVNLKE1BSUxCT1hfQ09OVFJPTCwgVFJOX01TR19BQ0spOwo+ICsJdTMyIHJlZzsK PiArCj4gKwlyZWcgPSBSUkVHMzIobW1NQUlMQk9YX0NPTlRST0wpOwo+ICsJd2hpbGUgKCEocmVn ICYgbWFzaykpIHsKPiArCQlpZiAodGltZW91dCA8PSAwKSB7Cj4gKwkJCXByX2VycigiRG9lc24n dCBnZXQgYWNrIGZyb20gcGYuXG4iKTsKPiArCQkJciA9IC1FVElNRTsKPiArCQkJYnJlYWs7Cj4g KwkJfQo+ICsJCW1zbGVlcCgxKTsKPiArCQl0aW1lb3V0IC09IDE7Cj4gKwo+ICsJCXJlZyA9IFJS RUczMihtbU1BSUxCT1hfQ09OVFJPTCk7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIHI7Cj4gK30KPiAr Cj4gK3N0YXRpYyBpbnQgeGdwdV92aV9wb2xsX21zZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diwgZW51bSBpZGhfZXZlbnQgZXZlbnQpCj4gK3sKPiArCWludCByID0gMCwgdGltZW91dCA9IFZJ X01BSUxCT1hfVElNRURPVVQ7Cj4gKwo+ICsJciA9IHhncHVfdmlfbWFpbGJveF9yY3ZfbXNnKGFk ZXYsIGV2ZW50KTsKPiArCXdoaWxlIChyKSB7Cj4gKwkJaWYgKHRpbWVvdXQgPD0gMCkgewo+ICsJ CQlwcl9lcnIoIkRvZXNuJ3QgZ2V0IGFjayBmcm9tIHBmLlxuIik7Cj4gKwkJCXIgPSAtRVRJTUU7 Cj4gKwkJCWJyZWFrOwo+ICsJCX0KPiArCQltc2xlZXAoMSk7Cj4gKwkJdGltZW91dCAtPSAxOwo+ ICsKPiArCQlyID0geGdwdV92aV9tYWlsYm94X3Jjdl9tc2coYWRldiwgZXZlbnQpOwo+ICsJfQo+ ICsKPiArCXJldHVybiByOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHhncHVfdmlfc2VuZF9hY2Nl c3NfcmVxdWVzdHMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4gKwkJCQkJZW51bSBpZGhf cmVxdWVzdCByZXF1ZXN0KQo+ICt7Cj4gKwlpbnQgcjsKPiArCj4gKwl4Z3B1X3ZpX21haWxib3hf dHJhbnNfbXNnKGFkZXYsIHJlcXVlc3QpOwo+ICsKPiArCS8qIHN0YXJ0IHRvIHBvbGwgYWNrICov Cj4gKwlyID0geGdwdV92aV9wb2xsX2FjayhhZGV2KTsKPiArCWlmIChyKQo+ICsJCXJldHVybiBy Owo+ICsKPiArCXhncHVfdmlfbWFpbGJveF9zZXRfdmFsaWQoYWRldiwgZmFsc2UpOwo+ICsKPiAr CS8qIHN0YXJ0IHRvIGNoZWNrIG1zZyBpZiByZXF1ZXN0IGlzIGlkaF9yZXFfZ3B1X2luaXRfYWNj ZXNzICovCj4gKwlpZiAocmVxdWVzdCA9PSBJREhfUkVRX0dQVV9JTklUX0FDQ0VTUykgewo+ICsJ CXIgPSB4Z3B1X3ZpX3BvbGxfbXNnKGFkZXYsIElESF9SRUFEWV9UT19BQ0NFU1NfR1BVKTsKPiAr CQlpZiAocikKPiArCQkJcmV0dXJuIHI7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiAr Cj4gK3N0YXRpYyBpbnQgeGdwdV92aV9yZXF1ZXN0X3Jlc2V0KHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KQo+ICt7Cj4gKwlyZXR1cm4geGdwdV92aV9zZW5kX2FjY2Vzc19yZXF1ZXN0cyhhZGV2 LCBJREhfUkVRX0dQVV9SRVNFVF9BQ0NFU1MpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHhncHVf dmlfcmVxdWVzdF9mdWxsX2dwdV9hY2Nlc3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4g KwkJCQkJICAgYm9vbCBpbml0KQo+ICt7Cj4gKwllbnVtIGlkaF9ldmVudCBldmVudDsKPiArCj4g KwlldmVudCA9IGluaXQgPyBJREhfUkVRX0dQVV9JTklUX0FDQ0VTUyA6IElESF9SRVFfR1BVX0ZJ TklfQUNDRVNTOwo+ICsJcmV0dXJuIHhncHVfdmlfc2VuZF9hY2Nlc3NfcmVxdWVzdHMoYWRldiwg ZXZlbnQpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHhncHVfdmlfcmVsZWFzZV9mdWxsX2dwdV9h Y2Nlc3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4gKwkJCQkJICAgYm9vbCBpbml0KQo+ ICt7Cj4gKwllbnVtIGlkaF9ldmVudCBldmVudDsKPiArCWludCByID0gMDsKPiArCj4gKwlldmVu dCA9IGluaXQgPyBJREhfUkVMX0dQVV9JTklUX0FDQ0VTUyA6IElESF9SRUxfR1BVX0ZJTklfQUND RVNTOwo+ICsJciA9IHhncHVfdmlfc2VuZF9hY2Nlc3NfcmVxdWVzdHMoYWRldiwgZXZlbnQpOwo+ ICsKPiArCXJldHVybiByOwo+ICt9Cj4gKwo+ICsvKiBhZGQgc3VwcG9ydCBtYWlsYm94IGludGVy cnVwdHMgKi8KPiArc3RhdGljIGludCB4Z3B1X3ZpX21haWxib3hfYWNrX2lycShzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldiwKPiArCQkJCSAgIHN0cnVjdCBhbWRncHVfaXJxX3NyYyAqc291cmNl LAo+ICsJCQkJICAgc3RydWN0IGFtZGdwdV9pdl9lbnRyeSAqZW50cnkpCj4gK3sKPiArCURSTV9E RUJVRygiZ2V0IGFjayBpbnRyIGFuZCBkbyBub3RoaW5nLlxuIik7Cj4gKwlyZXR1cm4gMDsKPiAr fQo+ICsKPiArc3RhdGljIGludCB4Z3B1X3ZpX3NldF9tYWlsYm94X2Fja19pcnEoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYsCj4gKwkJCQkgICAgICAgc3RydWN0IGFtZGdwdV9pcnFfc3JjICpz cmMsCj4gKwkJCQkgICAgICAgdW5zaWduZWQgdHlwZSwKPiArCQkJCSAgICAgICBlbnVtIGFtZGdw dV9pbnRlcnJ1cHRfc3RhdGUgc3RhdGUpCj4gK3sKPiArCXUzMiB0bXAgPSBSUkVHMzIobW1NQUlM Qk9YX0lOVF9DTlRMKTsKPiArCj4gKwl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwgTUFJTEJPWF9J TlRfQ05UTCwgQUNLX0lOVF9FTiwKPiArCQkJCSAoc3RhdGUgPT0gQU1ER1BVX0lSUV9TVEFURV9F TkFCTEUpID8gMSA6IDApOwo+ICsJV1JFRzMyKG1tTUFJTEJPWF9JTlRfQ05UTCwgdG1wKTsKPiAr Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgeGdwdV92aV9tYWlsYm94X2Zs cl93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiArewo+ICsJc3RydWN0IGFtZGdwdV92 aXJ0ICp2aXJ0ID0gY29udGFpbmVyX29mKHdvcmssCj4gKwkJCQkJc3RydWN0IGFtZGdwdV92aXJ0 LCBmbHJfd29yay53b3JrKTsKPiArCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gY29udGFp bmVyX29mKHZpcnQsCj4gKwkJCQkJc3RydWN0IGFtZGdwdV9kZXZpY2UsIHZpcnQpOwo+ICsJaW50 IHIgPSAwOwo+ICsKPiArCXIgPSB4Z3B1X3ZpX3BvbGxfbXNnKGFkZXYsIElESF9GTFJfTk9USUZJ Q0FUSU9OX0NNUEwpOwo+ICsJaWYgKHIpCj4gKwkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gZ2V0IGZs ciBjbXBsIG1zZyBmcm9tIGh5cGVydmlvci5cbiIpOwo+ICsKPiArCS8qIFRPRE86IG5lZWQgdG8g cmVzdG9yZSBnZnggc3RhdGVzICovCj4gK30KPiArCj4gK3N0YXRpYyBpbnQgeGdwdV92aV9zZXRf bWFpbGJveF9yY3ZfaXJxKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+ICsJCQkJICAgICAg IHN0cnVjdCBhbWRncHVfaXJxX3NyYyAqc3JjLAo+ICsJCQkJICAgICAgIHVuc2lnbmVkIHR5cGUs Cj4gKwkJCQkgICAgICAgZW51bSBhbWRncHVfaW50ZXJydXB0X3N0YXRlIHN0YXRlKQo+ICt7Cj4g Kwl1MzIgdG1wID0gUlJFRzMyKG1tTUFJTEJPWF9JTlRfQ05UTCk7Cj4gKwo+ICsJdG1wID0gUkVH X1NFVF9GSUVMRCh0bXAsIE1BSUxCT1hfSU5UX0NOVEwsIFZBTElEX0lOVF9FTiwKPiArCQkJCSAo c3RhdGUgPT0gQU1ER1BVX0lSUV9TVEFURV9FTkFCTEUpID8gMSA6IDApOwo+ICsJV1JFRzMyKG1t TUFJTEJPWF9JTlRfQ05UTCwgdG1wKTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3Rh dGljIGludCB4Z3B1X3ZpX21haWxib3hfcmN2X2lycShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diwKPiArCQkJCSAgIHN0cnVjdCBhbWRncHVfaXJxX3NyYyAqc291cmNlLAo+ICsJCQkJICAgc3Ry dWN0IGFtZGdwdV9pdl9lbnRyeSAqZW50cnkpCj4gK3sKPiArCWludCByOwo+ICsKPiArCWFkZXYt PnZpcnQuY2FwcyAmPSB+QU1ER1BVX1NSSU9WX0NBUFNfUlVOVElNRTsKPiArCXIgPSB4Z3B1X3Zp X21haWxib3hfcmN2X21zZyhhZGV2LCBJREhfRkxSX05PVElGSUNBVElPTik7Cj4gKwkvKiBkbyBu b3RoaW5nIGZvciBvdGhlciBtc2cgKi8KPiArCWlmIChyKQo+ICsJCXJldHVybiAwOwo+ICsKPiAr CS8qIFRPRE86IG5lZWQgdG8gc2F2ZSBnZnggc3RhdGVzICovCj4gKwlzY2hlZHVsZV9kZWxheWVk X3dvcmsoJmFkZXYtPnZpcnQuZmxyX3dvcmssCj4gKwkJCSAgICAgIG1zZWNzX3RvX2ppZmZpZXMo VklfTUFJTEJPWF9SRVNFVF9USU1FKSk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lycV9zcmNfZnVuY3MgeGdwdV92aV9tYWlsYm94X2Fj a19pcnFfZnVuY3MgPSB7Cj4gKwkuc2V0ID0geGdwdV92aV9zZXRfbWFpbGJveF9hY2tfaXJxLAo+ ICsJLnByb2Nlc3MgPSB4Z3B1X3ZpX21haWxib3hfYWNrX2lycSwKPiArfTsKPiArCj4gK3N0YXRp YyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lycV9zcmNfZnVuY3MgeGdwdV92aV9tYWlsYm94X3Jjdl9p cnFfZnVuY3MgPSB7Cj4gKwkuc2V0ID0geGdwdV92aV9zZXRfbWFpbGJveF9yY3ZfaXJxLAo+ICsJ LnByb2Nlc3MgPSB4Z3B1X3ZpX21haWxib3hfcmN2X2lycSwKPiArfTsKPiArCj4gK3ZvaWQgeGdw dV92aV9tYWlsYm94X3NldF9pcnFfZnVuY3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4g K3sKPiArCWFkZXYtPnZpcnQuYWNrX2lycS5udW1fdHlwZXMgPSAxOwo+ICsJYWRldi0+dmlydC5h Y2tfaXJxLmZ1bmNzID0gJnhncHVfdmlfbWFpbGJveF9hY2tfaXJxX2Z1bmNzOwo+ICsJYWRldi0+ dmlydC5yY3ZfaXJxLm51bV90eXBlcyA9IDE7Cj4gKwlhZGV2LT52aXJ0LnJjdl9pcnEuZnVuY3Mg PSAmeGdwdV92aV9tYWlsYm94X3Jjdl9pcnFfZnVuY3M7Cj4gK30KPiArCj4gK2ludCB4Z3B1X3Zp X21haWxib3hfYWRkX2lycV9pZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiArewo+ICsJ aW50IHI7Cj4gKwo+ICsJciA9IGFtZGdwdV9pcnFfYWRkX2lkKGFkZXYsIDEzNSwgJmFkZXYtPnZp cnQucmN2X2lycSk7Cj4gKwlpZiAocikKPiArCQlyZXR1cm4gcjsKPiArCj4gKwlyID0gYW1kZ3B1 X2lycV9hZGRfaWQoYWRldiwgMTM4LCAmYWRldi0+dmlydC5hY2tfaXJxKTsKPiArCWlmIChyKSB7 Cj4gKwkJYW1kZ3B1X2lycV9wdXQoYWRldiwgJmFkZXYtPnZpcnQucmN2X2lycSwgMCk7Cj4gKwkJ cmV0dXJuIHI7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK2ludCB4Z3B1X3Zp X21haWxib3hfZ2V0X2lycShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiArewo+ICsJaW50 IHI7Cj4gKwo+ICsJciA9IGFtZGdwdV9pcnFfZ2V0KGFkZXYsICZhZGV2LT52aXJ0LnJjdl9pcnEs IDApOwo+ICsJaWYgKHIpCj4gKwkJcmV0dXJuIHI7Cj4gKwlyID0gYW1kZ3B1X2lycV9nZXQoYWRl diwgJmFkZXYtPnZpcnQuYWNrX2lycSwgMCk7Cj4gKwlpZiAocikgewo+ICsJCWFtZGdwdV9pcnFf cHV0KGFkZXYsICZhZGV2LT52aXJ0LnJjdl9pcnEsIDApOwo+ICsJCXJldHVybiByOwo+ICsJfQo+ ICsKPiArCUlOSVRfREVMQVlFRF9XT1JLKCZhZGV2LT52aXJ0LmZscl93b3JrLCB4Z3B1X3ZpX21h aWxib3hfZmxyX3dvcmspOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICt2b2lkIHhncHVf dmlfbWFpbGJveF9wdXRfaXJxKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICt7Cj4gKwlj YW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmFkZXYtPnZpcnQuZmxyX3dvcmspOwo+ICsJYW1kZ3B1 X2lycV9wdXQoYWRldiwgJmFkZXYtPnZpcnQuYWNrX2lycSwgMCk7Cj4gKwlhbWRncHVfaXJxX3B1 dChhZGV2LCAmYWRldi0+dmlydC5yY3ZfaXJxLCAwKTsKPiArfQo+ICsKPiArY29uc3Qgc3RydWN0 IGFtZGdwdV92aXJ0X29wcyB4Z3B1X3ZpX3ZpcnRfb3BzID0gewo+ICsJLnJlcV9mdWxsX2dwdQkJ PSB4Z3B1X3ZpX3JlcXVlc3RfZnVsbF9ncHVfYWNjZXNzLAo+ICsJLnJlbF9mdWxsX2dwdQkJPSB4 Z3B1X3ZpX3JlbGVhc2VfZnVsbF9ncHVfYWNjZXNzLAo+ICsJLnJlc2V0X2dwdQkJPSB4Z3B1X3Zp X3JlcXVlc3RfcmVzZXQsCj4gK307Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L214Z3B1X3ZpLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9teGdwdV92aS5o Cj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi5mZDYyMTZlCj4gLS0tIC9k ZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L214Z3B1X3ZpLmgKPiBA QCAtMCwwICsxLDU1IEBACj4gKy8qCj4gKyAqIENvcHlyaWdodCAyMDE3IEFkdmFuY2VkIE1pY3Jv IERldmljZXMsIEluYy4KPiArICoKPiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwg ZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKPiArICogY29weSBvZiB0 aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29m dHdhcmUiKSwKPiArICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlv biwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgo+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwg Y29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKPiAr ICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJz b25zIHRvIHdob20gdGhlCj4gKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3Vi amVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4gKyAqCj4gKyAqIFRoZSBhYm92ZSBj b3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1 ZGVkIGluCj4gKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNv ZnR3YXJlLgo+ICsgKgo+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lU SE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ICsgKiBJTVBMSUVELCBJTkNM VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU WSwKPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdF TUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCj4gKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9S IEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgo+ICsgKiBPVEhF UiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9U SEVSV0lTRSwKPiArICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRI IFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCj4gKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBT T0ZUV0FSRS4KPiArICovCj4gKwo+ICsjaWZuZGVmIF9fTVhHUFVfVklfSF9fCj4gKyNkZWZpbmUg X19NWEdQVV9WSV9IX18KPiArCj4gKyNkZWZpbmUgVklfTUFJTEJPWF9USU1FRE9VVAkxNTAKPiAr I2RlZmluZSBWSV9NQUlMQk9YX1JFU0VUX1RJTUUJMTIKPiArCj4gKy8qIFZJIG1haWxib3ggbWVz c2FnZXMgcmVxdWVzdCAqLwo+ICtlbnVtIGlkaF9yZXF1ZXN0IHsKPiArCUlESF9SRVFfR1BVX0lO SVRfQUNDRVNTCT0gMSwKPiArCUlESF9SRUxfR1BVX0lOSVRfQUNDRVNTLAo+ICsJSURIX1JFUV9H UFVfRklOSV9BQ0NFU1MsCj4gKwlJREhfUkVMX0dQVV9GSU5JX0FDQ0VTUywKPiArCUlESF9SRVFf R1BVX1JFU0VUX0FDQ0VTUwo+ICt9Owo+ICsKPiArLyogVkkgbWFpbGJveCBtZXNzYWdlcyBkYXRh ICovCj4gK2VudW0gaWRoX2V2ZW50IHsKPiArCUlESF9DTFJfTVNHX0JVRiA9IDAsCj4gKwlJREhf UkVBRFlfVE9fQUNDRVNTX0dQVSwKPiArCUlESF9GTFJfTk9USUZJQ0FUSU9OLAo+ICsJSURIX0ZM Ul9OT1RJRklDQVRJT05fQ01QTCwKPiArCUlESF9FVkVOVF9NQVgKPiArfTsKPiArCj4gK2V4dGVy biBjb25zdCBzdHJ1Y3QgYW1kZ3B1X3ZpcnRfb3BzIHhncHVfdmlfdmlydF9vcHM7Cj4gKwo+ICt2 b2lkIHhncHVfdmlfaW5pdF9nb2xkZW5fcmVnaXN0ZXJzKHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2KTsKPiArdm9pZCB4Z3B1X3ZpX21haWxib3hfc2V0X2lycV9mdW5jcyhzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldik7Cj4gK2ludCB4Z3B1X3ZpX21haWxib3hfYWRkX2lycV9pZChzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldik7Cj4gK2ludCB4Z3B1X3ZpX21haWxib3hfZ2V0X2lycShzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Cj4gK3ZvaWQgeGdwdV92aV9tYWlsYm94X3B1dF9pcnEo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwo+ICsKPiArI2VuZGlmCgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QK YW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==