From mboxrd@z Thu Jan 1 00:00:00 1970 From: Xiangliang Yu Subject: [V2 06/11] drm/amdgpu/virt: implement VI virt operation interfaces Date: Tue, 10 Jan 2017 18:00:45 +0800 Message-ID: <1484042450-22987-7-git-send-email-Xiangliang.Yu@amd.com> References: <1484042450-22987-1-git-send-email-Xiangliang.Yu@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1484042450-22987-1-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: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Xiangliang Yu VkkgaGFzIGFzaWMgc3BlY2lmaWMgdmlydCBzdXBwb3J0LCB3aGljaCBpbmNsdWRpbmcgbWFpbGJv eCBhbmQKZ29sZGVuIHJlZ2lzdGVycyBpbml0LgoKU2lnbmVkLW9mZi1ieTogWGlhbmdsaWFuZyBZ dSA8WGlhbmdsaWFuZy5ZdUBhbWQuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L01ha2VmaWxlICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV92aXJ0LmggfCAgIDMgKwogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbXhncHVfdmkuYyAg ICB8IDU5MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9teGdwdV92aS5oICAgIHwgIDU1ICsrKwogNCBmaWxlcyBjaGFuZ2VkLCA2NTEg aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L214Z3B1X3ZpLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9teGdwdV92aS5oCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9NYWtl ZmlsZQppbmRleCAwYjhlNDcwLi4zODhlN2IwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9NYWtl ZmlsZQpAQCAtNDAsNyArNDAsNyBAQCBhbWRncHUtJChDT05GSUdfRFJNX0FNREdQVV9DSUspKz0g Y2lrLm8gY2lrX2loLm8ga3Zfc21jLm8ga3ZfZHBtLm8gXAogYW1kZ3B1LSQoQ09ORklHX0RSTV9B TURHUFVfU0kpKz0gc2kubyBnbWNfdjZfMC5vIGdmeF92Nl8wLm8gc2lfaWgubyBzaV9kbWEubyBk Y2VfdjZfMC5vIHNpX2RwbS5vIHNpX3NtYy5vCiAKIGFtZGdwdS15ICs9IFwKLQl2aS5vCisJdmku byBteGdwdV92aS5vCiAKICMgYWRkIEdNQyBibG9jawogYW1kZ3B1LXkgKz0gXApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZpcnQuaCBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmgKaW5kZXggM2Y4ZmMwZi4uNjExNjc2YiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZpcnQuaAorKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmlydC5oCkBAIC00NSw2ICs0NSw5IEBA IHN0cnVjdCBhbWRncHVfdmlydCB7CiAJdWludDMyX3QJCXZhbF9vZmZzOwogCXN0cnVjdCBtdXRl eAkJbG9jazsKIAorCXN0cnVjdCBhbWRncHVfaXJxX3NyYwkJYWNrX2lycTsKKwlzdHJ1Y3QgYW1k Z3B1X2lycV9zcmMJCXJjdl9pcnE7CisJc3RydWN0IGRlbGF5ZWRfd29yawkJZmxyX3dvcms7CiAJ Y29uc3Qgc3RydWN0IGFtZGdwdV92aXJ0X29wcwkqb3BzOwogfTsKIApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbXhncHVfdmkuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L214Z3B1X3ZpLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Q0 NDY2MwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L214Z3B1 X3ZpLmMKQEAgLTAsMCArMSw1OTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNyBBZHZhbmNlZCBN aWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwg ZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhp cyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3 YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBp bmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwg bW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9v ciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3 aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRo ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxs IGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICog VEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5Z IEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQg VE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxM CisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBB TlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBB Q1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBP VVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisg KiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yczogWGlhbmds aWFuZy5ZdUBhbWQuY29tCisgKi8KKworI2luY2x1ZGUgImFtZGdwdS5oIgorI2luY2x1ZGUgInZp LmgiCisjaW5jbHVkZSAiYmlmL2JpZl81XzBfZC5oIgorI2luY2x1ZGUgImJpZi9iaWZfNV8wX3No X21hc2suaCIKKyNpbmNsdWRlICJ2aWQuaCIKKyNpbmNsdWRlICJnY2EvZ2Z4XzhfMF9kLmgiCisj aW5jbHVkZSAiZ2NhL2dmeF84XzBfc2hfbWFzay5oIgorI2luY2x1ZGUgImdtY192OF8wLmgiCisj aW5jbHVkZSAiZ2Z4X3Y4XzAuaCIKKyNpbmNsdWRlICJzZG1hX3YzXzAuaCIKKyNpbmNsdWRlICJ0 b25nYV9paC5oIgorI2luY2x1ZGUgImdtYy9nbWNfOF8yX2QuaCIKKyNpbmNsdWRlICJnbWMvZ21j XzhfMl9zaF9tYXNrLmgiCisjaW5jbHVkZSAib3NzL29zc18zXzBfZC5oIgorI2luY2x1ZGUgIm9z cy9vc3NfM18wX3NoX21hc2suaCIKKyNpbmNsdWRlICJnY2EvZ2Z4XzhfMF9zaF9tYXNrLmgiCisj aW5jbHVkZSAiZGNlL2RjZV8xMF8wX2QuaCIKKyNpbmNsdWRlICJkY2UvZGNlXzEwXzBfc2hfbWFz ay5oIgorI2luY2x1ZGUgInNtdS9zbXVfN18xXzNfZC5oIgorI2luY2x1ZGUgIm14Z3B1X3ZpLmgi CisKKy8qIFZJIGdvbGRlbiBzZXR0aW5nICovCitzdGF0aWMgY29uc3QgdTMyIHhncHVfZmlqaV9t Z2NnX2NnY2dfaW5pdFtdID0geworCW1tUkxDX0NHVFRfTUdDR19PVkVSUklERSwgMHhmZmZmZmZm ZiwgMHhmZmZmZmZmZiwKKwltbUdSQk1fR0ZYX0lOREVYLCAweGZmZmZmZmZmLCAweGUwMDAwMDAw LAorCW1tQ0JfQ0dUVF9TQ0xLX0NUUkwsIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsCisJbW1DR1RU X0JDSV9DTEtfQ1RSTCwgMHhmZmZmZmZmZiwgMHgwMDAwMDEwMCwKKwltbUNHVFRfQ1BfQ0xLX0NU UkwsIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsCisJbW1DR1RUX0NQQ19DTEtfQ1RSTCwgMHhmZmZm ZmZmZiwgMHgwMDAwMDEwMCwKKwltbUNHVFRfQ1BGX0NMS19DVFJMLCAweGZmZmZmZmZmLCAweDQw MDAwMTAwLAorCW1tQ0dUVF9EUk1fQ0xLX0NUUkwwLCAweGZmZmZmZmZmLCAweDAwNjAwMTAwLAor CW1tQ0dUVF9HRFNfQ0xLX0NUUkwsIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsCisJbW1DR1RUX0lB X0NMS19DVFJMLCAweGZmZmZmZmZmLCAweDA2MDAwMTAwLAorCW1tQ0dUVF9QQV9DTEtfQ1RSTCwg MHhmZmZmZmZmZiwgMHgwMDAwMDEwMCwKKwltbUNHVFRfV0RfQ0xLX0NUUkwsIDB4ZmZmZmZmZmYs IDB4MDYwMDAxMDAsCisJbW1DR1RUX1BDX0NMS19DVFJMLCAweGZmZmZmZmZmLCAweDAwMDAwMTAw LAorCW1tQ0dUVF9STENfQ0xLX0NUUkwsIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsCisJbW1DR1RU X1NDX0NMS19DVFJMLCAweGZmZmZmZmZmLCAweDAwMDAwMTAwLAorCW1tQ0dUVF9TUElfQ0xLX0NU UkwsIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsCisJbW1DR1RUX1NRX0NMS19DVFJMLCAweGZmZmZm ZmZmLCAweDAwMDAwMTAwLAorCW1tQ0dUVF9TUUdfQ0xLX0NUUkwsIDB4ZmZmZmZmZmYsIDB4MDAw MDAxMDAsCisJbW1DR1RUX1NYX0NMS19DVFJMMCwgMHhmZmZmZmZmZiwgMHgwMDAwMDEwMCwKKwlt bUNHVFRfU1hfQ0xLX0NUUkwxLCAweGZmZmZmZmZmLCAweDAwMDAwMTAwLAorCW1tQ0dUVF9TWF9D TEtfQ1RSTDIsIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsCisJbW1DR1RUX1NYX0NMS19DVFJMMywg MHhmZmZmZmZmZiwgMHgwMDAwMDEwMCwKKwltbUNHVFRfU1hfQ0xLX0NUUkw0LCAweGZmZmZmZmZm LCAweDAwMDAwMTAwLAorCW1tQ0dUVF9UQ0lfQ0xLX0NUUkwsIDB4ZmZmZmZmZmYsIDB4MDAwMDAx MDAsCisJbW1DR1RUX1RDUF9DTEtfQ1RSTCwgMHhmZmZmZmZmZiwgMHgwMDAwMDEwMCwKKwltbUNH VFRfVkdUX0NMS19DVFJMLCAweGZmZmZmZmZmLCAweDA2MDAwMTAwLAorCW1tREJfQ0dUVF9DTEtf Q1RSTF8wLCAweGZmZmZmZmZmLCAweDAwMDAwMTAwLAorCW1tVEFfQ0dUVF9DVFJMLCAweGZmZmZm ZmZmLCAweDAwMDAwMTAwLAorCW1tVENBX0NHVFRfU0NMS19DVFJMLCAweGZmZmZmZmZmLCAweDAw MDAwMTAwLAorCW1tVENDX0NHVFRfU0NMS19DVFJMLCAweGZmZmZmZmZmLCAweDAwMDAwMTAwLAor CW1tVERfQ0dUVF9DVFJMLCAweGZmZmZmZmZmLCAweDAwMDAwMTAwLAorCW1tR1JCTV9HRlhfSU5E RVgsIDB4ZmZmZmZmZmYsIDB4ZTAwMDAwMDAsCisJbW1DR1RTX1NNX0NUUkxfUkVHLCAweGZmZmZm ZmZmLCAweDk2ZTAwMjAwLAorCW1tQ1BfUkJfV1BUUl9QT0xMX0NOVEwsIDB4ZmZmZmZmZmYsIDB4 MDA5MDAxMDAsCisJbW1STENfQ0dDR19DR0xTX0NUUkwsIDB4ZmZmZmZmZmYsIDB4MDAyMDAwM2Ms CisJbW1QQ0lFX0lOREVYLCAweGZmZmZmZmZmLCAweDAxNDAwMDFjLAorCW1tUENJRV9EQVRBLCAw eDAwMGYwMDAwLCAweDAwMDAwMDAwLAorCW1tU01DX0lORF9JTkRFWF80LCAweGZmZmZmZmZmLCAw eEMwNjAwMDBDLAorCW1tU01DX0lORF9EQVRBXzQsIDB4YzAwMDBmZmYsIDB4MDAwMDAxMDAsCisJ bW1YRE1BX0NMT0NLX0dBVElOR19DTlRMLCAweGZmZmZmZmZmLCAweDAwMDAwMTAwLAorCW1tWERN QV9NRU1fUE9XRVJfQ05UTCwgMHgwMDAwMDEwMSwgMHgwMDAwMDAwMCwKKwltbU1DX01FTV9QT1dF Ul9MUywgMHhmZmZmZmZmZiwgMHgwMDAwMDEwNCwKKwltbUNHVFRfRFJNX0NMS19DVFJMMCwgMHhm ZjAwMGZmZiwgMHgwMDAwMDEwMCwKKwltbUhEUF9YRFBfQ0dUVF9CTEtfQ1RSTCwgMHhjMDAwMGZm ZiwgMHgwMDAwMDEwNCwKKwltbUNQX01FTV9TTFBfQ05UTCwgMHgwMDAwMDAwMSwgMHgwMDAwMDAw MSwKKwltbVNETUEwX0NMS19DVFJMLCAweGZmMDAwZmYwLCAweDAwMDAwMTAwLAorCW1tU0RNQTFf Q0xLX0NUUkwsIDB4ZmYwMDBmZjAsIDB4MDAwMDAxMDAsCit9OworCitzdGF0aWMgY29uc3QgdTMy IHhncHVfZmlqaV9nb2xkZW5fc2V0dGluZ3NfYTEwW10gPSB7CisJbW1DQl9IV19DT05UUk9MXzMs IDB4MDAwMDAxZmYsIDB4MDAwMDAwNDAsCisJbW1EQl9ERUJVRzIsIDB4ZjAwZmZmZmYsIDB4MDAw MDA0MDAsCisJbW1EQ0lfQ0xLX0NOVEwsIDB4MDAwMDAwODAsIDB4MDAwMDAwMDAsCisJbW1GQkNf REVCVUdfQ09NUCwgMHgwMDAwMDBmMCwgMHgwMDAwMDA3MCwKKwltbUZCQ19NSVNDLCAweDFmMzEx ZmZmLCAweDEyMzAwMDAwLAorCW1tSERNSV9DT05UUk9MLCAweDMxMDAwMTExLCAweDAwMDAwMDEx LAorCW1tUEFfU0NfRU5IQU5DRSwgMHhmZmZmZmZmZiwgMHgyMDAwMDAwMSwKKwltbVBBX1NDX0xJ TkVfU1RJUFBMRV9TVEFURSwgMHgwMDAwZmYwZiwgMHgwMDAwMDAwMCwKKwltbVNETUEwX0NISUNL RU5fQklUUywgMHhmYzkxMDAwNywgMHgwMDgxMDAwNywKKwltbVNETUEwX0dGWF9JQl9DTlRMLCAw eDgwMGYwMTExLCAweDAwMDAwMTAwLAorCW1tU0RNQTBfUkxDMF9JQl9DTlRMLCAweDgwMGYwMTEx LCAweDAwMDAwMTAwLAorCW1tU0RNQTBfUkxDMV9JQl9DTlRMLCAweDgwMGYwMTExLCAweDAwMDAw MTAwLAorCW1tU0RNQTFfQ0hJQ0tFTl9CSVRTLCAweGZjOTEwMDA3LCAweDAwODEwMDA3LAorCW1t U0RNQTFfR0ZYX0lCX0NOVEwsIDB4ODAwZjAxMTEsIDB4MDAwMDAxMDAsCisJbW1TRE1BMV9STEMw X0lCX0NOVEwsIDB4ODAwZjAxMTEsIDB4MDAwMDAxMDAsCisJbW1TRE1BMV9STEMxX0lCX0NOVEws IDB4ODAwZjAxMTEsIDB4MDAwMDAxMDAsCisJbW1TUV9SQU5ET01fV0FWRV9QUkksIDB4MDAxZmZm ZmYsIDB4MDAwMDA2ZmQsCisJbW1UQV9DTlRMX0FVWCwgMHgwMDBmMDAwZiwgMHgwMDBiMDAwMCwK KwltbVRDQ19FWEVfRElTQUJMRSwgMHgwMDAwMDAwMiwgMHgwMDAwMDAwMiwKKwltbVRDUF9BRERS X0NPTkZJRywgMHgwMDAwMDNmZiwgMHgwMDAwMDBmZiwKKwltbVZHVF9SRVNFVF9ERUJVRywgMHgw MDAwMDAwNCwgMHgwMDAwMDAwNCwKKwltbVZNX1BSVF9BUEVSVFVSRTBfTE9XX0FERFIsIDB4MGZm ZmZmZmYsIDB4MGZmZmZmZmYsCisJbW1WTV9QUlRfQVBFUlRVUkUxX0xPV19BRERSLCAweDBmZmZm ZmZmLCAweDBmZmZmZmZmLAorCW1tVk1fUFJUX0FQRVJUVVJFMl9MT1dfQUREUiwgMHgwZmZmZmZm ZiwgMHgwZmZmZmZmZiwKKwltbVZNX1BSVF9BUEVSVFVSRTNfTE9XX0FERFIsIDB4MGZmZmZmZmYs IDB4MGZmZmZmZmYsCit9OworCitzdGF0aWMgY29uc3QgdTMyIHhncHVfZmlqaV9nb2xkZW5fY29t bW9uX2FsbFtdID0geworCW1tR1JCTV9HRlhfSU5ERVgsIDB4ZmZmZmZmZmYsIDB4ZTAwMDAwMDAs CisJbW1QQV9TQ19SQVNURVJfQ09ORklHLCAweGZmZmZmZmZmLCAweDNhMDAxNjFhLAorCW1tUEFf U0NfUkFTVEVSX0NPTkZJR18xLCAweGZmZmZmZmZmLCAweDAwMDAwMDJlLAorCW1tR0JfQUREUl9D T05GSUcsIDB4ZmZmZmZmZmYsIDB4MjIwMTEwMDMsCisJbW1TUElfUkVTT1VSQ0VfUkVTRVJWRV9D VV8wLCAweGZmZmZmZmZmLCAweDAwMDAwODAwLAorCW1tU1BJX1JFU09VUkNFX1JFU0VSVkVfQ1Vf MSwgMHhmZmZmZmZmZiwgMHgwMDAwMDgwMCwKKwltbVNQSV9SRVNPVVJDRV9SRVNFUlZFX0VOX0NV XzAsIDB4ZmZmZmZmZmYsIDB4MDAwMDdGQkYsCisJbW1TUElfUkVTT1VSQ0VfUkVTRVJWRV9FTl9D VV8xLCAweGZmZmZmZmZmLCAweDAwMDA3RkFGLAorCW1tR1JCTV9HRlhfSU5ERVgsIDB4ZmZmZmZm ZmYsIDB4ZTAwMDAwMDAsCisJbW1TUElfQ09ORklHX0NOVExfMSwgMHgwMDAwMDAwZiwgMHgwMDAw MDAwOSwKK307CisKK3N0YXRpYyBjb25zdCB1MzIgeGdwdV90b25nYV9tZ2NnX2NnY2dfaW5pdFtd ID0geworCW1tUkxDX0NHVFRfTUdDR19PVkVSUklERSwgICAweGZmZmZmZmZmLCAweGZmZmZmZmZm LAorCW1tR1JCTV9HRlhfSU5ERVgsICAgICAgICAgICAweGZmZmZmZmZmLCAweGUwMDAwMDAwLAor CW1tQ0JfQ0dUVF9TQ0xLX0NUUkwsICAgICAgICAweGZmZmZmZmZmLCAweDAwMDAwMTAwLAorCW1t Q0dUVF9CQ0lfQ0xLX0NUUkwsICAgICAgICAweGZmZmZmZmZmLCAweDAwMDAwMTAwLAorCW1tQ0dU VF9DUF9DTEtfQ1RSTCwgICAgICAgICAweGZmZmZmZmZmLCAweDAwMDAwMTAwLAorCW1tQ0dUVF9D UENfQ0xLX0NUUkwsICAgICAgICAweGZmZmZmZmZmLCAweDAwMDAwMTAwLAorCW1tQ0dUVF9DUEZf Q0xLX0NUUkwsICAgICAgICAweGZmZmZmZmZmLCAweDQwMDAwMTAwLAorCW1tQ0dUVF9EUk1fQ0xL X0NUUkwwLCAgICAgICAweGZmZmZmZmZmLCAweDAwNjAwMTAwLAorCW1tQ0dUVF9HRFNfQ0xLX0NU UkwsICAgICAgICAweGZmZmZmZmZmLCAweDAwMDAwMTAwLAorCW1tQ0dUVF9JQV9DTEtfQ1RSTCwg ICAgICAgICAweGZmZmZmZmZmLCAweDA2MDAwMTAwLAorCW1tQ0dUVF9QQV9DTEtfQ1RSTCwgICAg ICAgICAweGZmZmZmZmZmLCAweDAwMDAwMTAwLAorCW1tQ0dUVF9XRF9DTEtfQ1RSTCwgICAgICAg ICAweGZmZmZmZmZmLCAweDA2MDAwMTAwLAorCW1tQ0dUVF9QQ19DTEtfQ1RSTCwgICAgICAgICAw eGZmZmZmZmZmLCAweDAwMDAwMTAwLAorCW1tQ0dUVF9STENfQ0xLX0NUUkwsICAgICAgICAweGZm ZmZmZmZmLCAweDAwMDAwMTAwLAorCW1tQ0dUVF9TQ19DTEtfQ1RSTCwgICAgICAgICAweGZmZmZm ZmZmLCAweDAwMDAwMTAwLAorCW1tQ0dUVF9TUElfQ0xLX0NUUkwsICAgICAgICAweGZmZmZmZmZm LCAweDAwMDAwMTAwLAorCW1tQ0dUVF9TUV9DTEtfQ1RSTCwgICAgICAgICAweGZmZmZmZmZmLCAw eDAwMDAwMTAwLAorCW1tQ0dUVF9TUUdfQ0xLX0NUUkwsICAgICAgICAweGZmZmZmZmZmLCAweDAw MDAwMTAwLAorCW1tQ0dUVF9TWF9DTEtfQ1RSTDAsICAgICAgICAweGZmZmZmZmZmLCAweDAwMDAw MTAwLAorCW1tQ0dUVF9TWF9DTEtfQ1RSTDEsICAgICAgICAweGZmZmZmZmZmLCAweDAwMDAwMTAw LAorCW1tQ0dUVF9TWF9DTEtfQ1RSTDIsICAgICAgICAweGZmZmZmZmZmLCAweDAwMDAwMTAwLAor CW1tQ0dUVF9TWF9DTEtfQ1RSTDMsICAgICAgICAweGZmZmZmZmZmLCAweDAwMDAwMTAwLAorCW1t Q0dUVF9TWF9DTEtfQ1RSTDQsICAgICAgICAweGZmZmZmZmZmLCAweDAwMDAwMTAwLAorCW1tQ0dU VF9UQ0lfQ0xLX0NUUkwsICAgICAgICAweGZmZmZmZmZmLCAweDAwMDAwMTAwLAorCW1tQ0dUVF9U Q1BfQ0xLX0NUUkwsICAgICAgICAweGZmZmZmZmZmLCAweDAwMDAwMTAwLAorCW1tQ0dUVF9WR1Rf Q0xLX0NUUkwsICAgICAgICAweGZmZmZmZmZmLCAweDA2MDAwMTAwLAorCW1tREJfQ0dUVF9DTEtf Q1RSTF8wLCAgICAgICAweGZmZmZmZmZmLCAweDAwMDAwMTAwLAorCW1tVEFfQ0dUVF9DVFJMLCAg ICAgICAgICAgICAweGZmZmZmZmZmLCAweDAwMDAwMTAwLAorCW1tVENBX0NHVFRfU0NMS19DVFJM LCAgICAgICAweGZmZmZmZmZmLCAweDAwMDAwMTAwLAorCW1tVENDX0NHVFRfU0NMS19DVFJMLCAg ICAgICAweGZmZmZmZmZmLCAweDAwMDAwMTAwLAorCW1tVERfQ0dUVF9DVFJMLCAgICAgICAgICAg ICAweGZmZmZmZmZmLCAweDAwMDAwMTAwLAorCW1tR1JCTV9HRlhfSU5ERVgsICAgICAgICAgICAw eGZmZmZmZmZmLCAweGUwMDAwMDAwLAorCW1tQ0dUU19DVTBfU1AwX0NUUkxfUkVHLCAgICAweGZm ZmZmZmZmLCAweDAwMDEwMDAwLAorCW1tQ0dUU19DVTBfTERTX1NRX0NUUkxfUkVHLCAweGZmZmZm ZmZmLCAweDAwMDMwMDAyLAorCW1tQ0dUU19DVTBfVEFfU1FDX0NUUkxfUkVHLCAweGZmZmZmZmZm LCAweDAwMDQwMDA3LAorCW1tQ0dUU19DVTBfU1AxX0NUUkxfUkVHLCAgICAweGZmZmZmZmZmLCAw eDAwMDYwMDA1LAorCW1tQ0dUU19DVTBfVERfVENQX0NUUkxfUkVHLCAweGZmZmZmZmZmLCAweDAw MDkwMDA4LAorCW1tQ0dUU19DVTFfU1AwX0NUUkxfUkVHLCAgICAweGZmZmZmZmZmLCAweDAwMDEw MDAwLAorCW1tQ0dUU19DVTFfTERTX1NRX0NUUkxfUkVHLCAweGZmZmZmZmZmLCAweDAwMDMwMDAy LAorCW1tQ0dUU19DVTFfVEFfQ1RSTF9SRUcsICAgICAweGZmZmZmZmZmLCAweDAwMDQwMDA3LAor CW1tQ0dUU19DVTFfU1AxX0NUUkxfUkVHLCAgICAweGZmZmZmZmZmLCAweDAwMDYwMDA1LAorCW1t Q0dUU19DVTFfVERfVENQX0NUUkxfUkVHLCAweGZmZmZmZmZmLCAweDAwMDkwMDA4LAorCW1tQ0dU U19DVTJfU1AwX0NUUkxfUkVHLCAgICAweGZmZmZmZmZmLCAweDAwMDEwMDAwLAorCW1tQ0dUU19D VTJfTERTX1NRX0NUUkxfUkVHLCAweGZmZmZmZmZmLCAweDAwMDMwMDAyLAorCW1tQ0dUU19DVTJf VEFfQ1RSTF9SRUcsICAgICAweGZmZmZmZmZmLCAweDAwMDQwMDA3LAorCW1tQ0dUU19DVTJfU1Ax X0NUUkxfUkVHLCAgICAweGZmZmZmZmZmLCAweDAwMDYwMDA1LAorCW1tQ0dUU19DVTJfVERfVENQ X0NUUkxfUkVHLCAweGZmZmZmZmZmLCAweDAwMDkwMDA4LAorCW1tQ0dUU19DVTNfU1AwX0NUUkxf UkVHLCAgICAweGZmZmZmZmZmLCAweDAwMDEwMDAwLAorCW1tQ0dUU19DVTNfTERTX1NRX0NUUkxf UkVHLCAweGZmZmZmZmZmLCAweDAwMDMwMDAyLAorCW1tQ0dUU19DVTNfVEFfQ1RSTF9SRUcsICAg ICAweGZmZmZmZmZmLCAweDAwMDQwMDA3LAorCW1tQ0dUU19DVTNfU1AxX0NUUkxfUkVHLCAgICAw eGZmZmZmZmZmLCAweDAwMDYwMDA1LAorCW1tQ0dUU19DVTNfVERfVENQX0NUUkxfUkVHLCAweGZm ZmZmZmZmLCAweDAwMDkwMDA4LAorCW1tQ0dUU19DVTRfU1AwX0NUUkxfUkVHLCAgICAweGZmZmZm ZmZmLCAweDAwMDEwMDAwLAorCW1tQ0dUU19DVTRfTERTX1NRX0NUUkxfUkVHLCAweGZmZmZmZmZm LCAweDAwMDMwMDAyLAorCW1tQ0dUU19DVTRfVEFfU1FDX0NUUkxfUkVHLCAweGZmZmZmZmZmLCAw eDAwMDQwMDA3LAorCW1tQ0dUU19DVTRfU1AxX0NUUkxfUkVHLCAgICAweGZmZmZmZmZmLCAweDAw MDYwMDA1LAorCW1tQ0dUU19DVTRfVERfVENQX0NUUkxfUkVHLCAweGZmZmZmZmZmLCAweDAwMDkw MDA4LAorCW1tQ0dUU19DVTVfU1AwX0NUUkxfUkVHLCAgICAweGZmZmZmZmZmLCAweDAwMDEwMDAw LAorCW1tQ0dUU19DVTVfTERTX1NRX0NUUkxfUkVHLCAweGZmZmZmZmZmLCAweDAwMDMwMDAyLAor CW1tQ0dUU19DVTVfVEFfQ1RSTF9SRUcsICAgICAweGZmZmZmZmZmLCAweDAwMDQwMDA3LAorCW1t Q0dUU19DVTVfU1AxX0NUUkxfUkVHLCAgICAweGZmZmZmZmZmLCAweDAwMDYwMDA1LAorCW1tQ0dU U19DVTVfVERfVENQX0NUUkxfUkVHLCAweGZmZmZmZmZmLCAweDAwMDkwMDA4LAorCW1tQ0dUU19D VTZfU1AwX0NUUkxfUkVHLCAgICAweGZmZmZmZmZmLCAweDAwMDEwMDAwLAorCW1tQ0dUU19DVTZf TERTX1NRX0NUUkxfUkVHLCAweGZmZmZmZmZmLCAweDAwMDMwMDAyLAorCW1tQ0dUU19DVTZfVEFf Q1RSTF9SRUcsICAgICAweGZmZmZmZmZmLCAweDAwMDQwMDA3LAorCW1tQ0dUU19DVTZfU1AxX0NU UkxfUkVHLCAgICAweGZmZmZmZmZmLCAweDAwMDYwMDA1LAorCW1tQ0dUU19DVTZfVERfVENQX0NU UkxfUkVHLCAweGZmZmZmZmZmLCAweDAwMDkwMDA4LAorCW1tQ0dUU19DVTdfU1AwX0NUUkxfUkVH LCAgICAweGZmZmZmZmZmLCAweDAwMDEwMDAwLAorCW1tQ0dUU19DVTdfTERTX1NRX0NUUkxfUkVH LCAweGZmZmZmZmZmLCAweDAwMDMwMDAyLAorCW1tQ0dUU19DVTdfVEFfQ1RSTF9SRUcsICAgICAw eGZmZmZmZmZmLCAweDAwMDQwMDA3LAorCW1tQ0dUU19DVTdfU1AxX0NUUkxfUkVHLCAgICAweGZm ZmZmZmZmLCAweDAwMDYwMDA1LAorCW1tQ0dUU19DVTdfVERfVENQX0NUUkxfUkVHLCAweGZmZmZm ZmZmLCAweDAwMDkwMDA4LAorCW1tQ0dUU19TTV9DVFJMX1JFRywgICAgICAgICAweGZmZmZmZmZm LCAweDk2ZTAwMjAwLAorCW1tQ1BfUkJfV1BUUl9QT0xMX0NOVEwsICAgICAweGZmZmZmZmZmLCAw eDAwOTAwMTAwLAorCW1tUkxDX0NHQ0dfQ0dMU19DVFJMLCAgICAgICAweGZmZmZmZmZmLCAweDAw MjAwMDNjLAorCW1tUENJRV9JTkRFWCwgICAgICAgICAgICAgICAweGZmZmZmZmZmLCAweDAxNDAw MDFjLAorCW1tUENJRV9EQVRBLCAgICAgICAgICAgICAgICAweDAwMGYwMDAwLCAweDAwMDAwMDAw LAorCW1tU01DX0lORF9JTkRFWF80LCAgICAgICAgICAweGZmZmZmZmZmLCAweEMwNjAwMDBDLAor CW1tU01DX0lORF9EQVRBXzQsICAgICAgICAgICAweGMwMDAwZmZmLCAweDAwMDAwMTAwLAorCW1t WERNQV9DTE9DS19HQVRJTkdfQ05UTCwgICAweGZmZmZmZmZmLCAweDAwMDAwMTAwLAorCW1tWERN QV9NRU1fUE9XRVJfQ05UTCwgICAgICAweDAwMDAwMTAxLCAweDAwMDAwMDAwLAorCW1tTUNfTUVN X1BPV0VSX0xTLCAgICAgICAgICAweGZmZmZmZmZmLCAweDAwMDAwMTA0LAorCW1tQ0dUVF9EUk1f Q0xLX0NUUkwwLCAgICAgICAweGZmMDAwZmZmLCAweDAwMDAwMTAwLAorCW1tSERQX1hEUF9DR1RU X0JMS19DVFJMLCAgICAweGMwMDAwZmZmLCAweDAwMDAwMTA0LAorCW1tQ1BfTUVNX1NMUF9DTlRM LCAgICAgICAgICAweDAwMDAwMDAxLCAweDAwMDAwMDAxLAorCW1tU0RNQTBfQ0xLX0NUUkwsICAg ICAgICAgICAweGZmMDAwZmYwLCAweDAwMDAwMTAwLAorCW1tU0RNQTFfQ0xLX0NUUkwsICAgICAg ICAgICAweGZmMDAwZmYwLCAweDAwMDAwMTAwLAorfTsKKworc3RhdGljIGNvbnN0IHUzMiB4Z3B1 X3RvbmdhX2dvbGRlbl9zZXR0aW5nc19hMTFbXSA9IHsKKwltbUNCX0hXX0NPTlRST0wsIDB4ZmZm ZGYzY2YsIDB4MDAwMDcyMDgsCisJbW1DQl9IV19DT05UUk9MXzMsIDB4MDAwMDAwNDAsIDB4MDAw MDAwNDAsCisJbW1EQl9ERUJVRzIsIDB4ZjAwZmZmZmYsIDB4MDAwMDA0MDAsCisJbW1EQ0lfQ0xL X0NOVEwsIDB4MDAwMDAwODAsIDB4MDAwMDAwMDAsCisJbW1GQkNfREVCVUdfQ09NUCwgMHgwMDAw MDBmMCwgMHgwMDAwMDA3MCwKKwltbUZCQ19NSVNDLCAweDFmMzExZmZmLCAweDEyMzAwMDAwLAor CW1tR0JfR1BVX0lELCAweDAwMDAwMDBmLCAweDAwMDAwMDAwLAorCW1tSERNSV9DT05UUk9MLCAw eDMxMDAwMTExLCAweDAwMDAwMDExLAorCW1tTUNfQVJCX1dUTV9HUlBXVF9SRCwgMHgwMDAwMDAw MywgMHgwMDAwMDAwMCwKKwltbU1DX0hVQl9SRFJFUV9ETUlGX0xJTUlULCAweDAwMDAwMDdmLCAw eDAwMDAwMDI4LAorCW1tTUNfSFVCX1dEUF9VTUMsIDB4MDAwMDdmYjYsIDB4MDAwMDA5OTEsCisJ bW1QQV9TQ19FTkhBTkNFLCAweGZmZmZmZmZmLCAweDIwMDAwMDAxLAorCW1tUEFfU0NfRklGT19E RVBUSF9DTlRMLCAweDAwMDAwM2ZmLCAweDAwMDAwMGZjLAorCW1tUEFfU0NfTElORV9TVElQUExF X1NUQVRFLCAweDAwMDBmZjBmLCAweDAwMDAwMDAwLAorCW1tUkxDX0NHQ0dfQ0dMU19DVFJMLCAw eDAwMDAwMDAzLCAweDAwMDAwMDNjLAorCW1tU0RNQTBfQ0hJQ0tFTl9CSVRTLCAweGZjOTEwMDA3 LCAweDAwODEwMDA3LAorCW1tU0RNQTBfQ0xLX0NUUkwsIDB4ZmYwMDBmZmYsIDB4MDAwMDAwMDAs CisJbW1TRE1BMF9HRlhfSUJfQ05UTCwgMHg4MDBmMDExMSwgMHgwMDAwMDEwMCwKKwltbVNETUEw X1JMQzBfSUJfQ05UTCwgMHg4MDBmMDExMSwgMHgwMDAwMDEwMCwKKwltbVNETUEwX1JMQzFfSUJf Q05UTCwgMHg4MDBmMDExMSwgMHgwMDAwMDEwMCwKKwltbVNETUExX0NISUNLRU5fQklUUywgMHhm YzkxMDAwNywgMHgwMDgxMDAwNywKKwltbVNETUExX0NMS19DVFJMLCAweGZmMDAwZmZmLCAweDAw MDAwMDAwLAorCW1tU0RNQTFfR0ZYX0lCX0NOVEwsIDB4ODAwZjAxMTEsIDB4MDAwMDAxMDAsCisJ bW1TRE1BMV9STEMwX0lCX0NOVEwsIDB4ODAwZjAxMTEsIDB4MDAwMDAxMDAsCisJbW1TRE1BMV9S TEMxX0lCX0NOVEwsIDB4ODAwZjAxMTEsIDB4MDAwMDAxMDAsCisJbW1TUV9SQU5ET01fV0FWRV9Q UkksIDB4MDAxZmZmZmYsIDB4MDAwMDA2ZmQsCisJbW1UQV9DTlRMX0FVWCwgMHgwMDBmMDAwZiwg MHgwMDBiMDAwMCwKKwltbVRDQ19DVFJMLCAweDAwMTAwMDAwLCAweGYzMWZmZjdmLAorCW1tVEND X0VYRV9ESVNBQkxFLCAweDAwMDAwMDAyLCAweDAwMDAwMDAyLAorCW1tVENQX0FERFJfQ09ORklH LCAweDAwMDAwM2ZmLCAweDAwMDAwMmZiLAorCW1tVENQX0NIQU5fU1RFRVJfSEksIDB4ZmZmZmZm ZmYsIDB4MDAwMDU0M2IsCisJbW1UQ1BfQ0hBTl9TVEVFUl9MTywgMHhmZmZmZmZmZiwgMHhhOTIx MDg3NiwKKwltbVZHVF9SRVNFVF9ERUJVRywgMHgwMDAwMDAwNCwgMHgwMDAwMDAwNCwKKwltbVZN X1BSVF9BUEVSVFVSRTBfTE9XX0FERFIsIDB4MGZmZmZmZmYsIDB4MGZmZmZmZmYsCisJbW1WTV9Q UlRfQVBFUlRVUkUxX0xPV19BRERSLCAweDBmZmZmZmZmLCAweDBmZmZmZmZmLAorCW1tVk1fUFJU X0FQRVJUVVJFMl9MT1dfQUREUiwgMHgwZmZmZmZmZiwgMHgwZmZmZmZmZiwKKwltbVZNX1BSVF9B UEVSVFVSRTNfTE9XX0FERFIsIDB4MGZmZmZmZmYsIDB4MGZmZmZmZmYsCit9OworCitzdGF0aWMg Y29uc3QgdTMyIHhncHVfdG9uZ2FfZ29sZGVuX2NvbW1vbl9hbGxbXSA9IHsKKwltbUdSQk1fR0ZY X0lOREVYLCAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYsIDB4ZTAwMDAwMDAsCisJbW1QQV9TQ19S QVNURVJfQ09ORklHLCAgICAgICAgICAweGZmZmZmZmZmLCAweDE2MDAwMDEyLAorCW1tUEFfU0Nf UkFTVEVSX0NPTkZJR18xLCAgICAgICAgMHhmZmZmZmZmZiwgMHgwMDAwMDAyQSwKKwltbUdCX0FE RFJfQ09ORklHLCAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYsIDB4MjIwMTEwMDIsCisJbW1TUElf UkVTT1VSQ0VfUkVTRVJWRV9DVV8wLCAgICAweGZmZmZmZmZmLCAweDAwMDAwODAwLAorCW1tU1BJ X1JFU09VUkNFX1JFU0VSVkVfQ1VfMSwgICAgMHhmZmZmZmZmZiwgMHgwMDAwMDgwMCwKKwltbVNQ SV9SRVNPVVJDRV9SRVNFUlZFX0VOX0NVXzAsIDB4ZmZmZmZmZmYsIDB4MDAwMDdGQkYsCit9Owor Cit2b2lkIHhncHVfdmlfaW5pdF9nb2xkZW5fcmVnaXN0ZXJzKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KQoreworCXN3aXRjaCAoYWRldi0+YXNpY190eXBlKSB7CisJY2FzZSBDSElQX0ZJSkk6 CisJCWFtZGdwdV9wcm9ncmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsCisJCQkJCQkgeGdwdV9m aWppX21nY2dfY2djZ19pbml0LAorCQkJCQkJIChjb25zdCB1MzIpQVJSQVlfU0laRSgKKwkJCQkJ CSB4Z3B1X2ZpamlfbWdjZ19jZ2NnX2luaXQpKTsKKwkJYW1kZ3B1X3Byb2dyYW1fcmVnaXN0ZXJf c2VxdWVuY2UoYWRldiwKKwkJCQkJCSB4Z3B1X2ZpamlfZ29sZGVuX3NldHRpbmdzX2ExMCwKKwkJ CQkJCSAoY29uc3QgdTMyKUFSUkFZX1NJWkUoCisJCQkJCQkgeGdwdV9maWppX2dvbGRlbl9zZXR0 aW5nc19hMTApKTsKKwkJYW1kZ3B1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwKKwkJ CQkJCSB4Z3B1X2ZpamlfZ29sZGVuX2NvbW1vbl9hbGwsCisJCQkJCQkgKGNvbnN0IHUzMilBUlJB WV9TSVpFKAorCQkJCQkJIHhncHVfZmlqaV9nb2xkZW5fY29tbW9uX2FsbCkpOworCQlicmVhazsK KwljYXNlIENISVBfVE9OR0E6CisJCWFtZGdwdV9wcm9ncmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFk ZXYsCisJCQkJCQkgeGdwdV90b25nYV9tZ2NnX2NnY2dfaW5pdCwKKwkJCQkJCSAoY29uc3QgdTMy KUFSUkFZX1NJWkUoCisJCQkJCQkgeGdwdV90b25nYV9tZ2NnX2NnY2dfaW5pdCkpOworCQlhbWRn cHVfcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LAorCQkJCQkJIHhncHVfdG9uZ2FfZ29s ZGVuX3NldHRpbmdzX2ExMSwKKwkJCQkJCSAoY29uc3QgdTMyKUFSUkFZX1NJWkUoCisJCQkJCQkg eGdwdV90b25nYV9nb2xkZW5fc2V0dGluZ3NfYTExKSk7CisJCWFtZGdwdV9wcm9ncmFtX3JlZ2lz dGVyX3NlcXVlbmNlKGFkZXYsCisJCQkJCQkgeGdwdV90b25nYV9nb2xkZW5fY29tbW9uX2FsbCwK KwkJCQkJCSAoY29uc3QgdTMyKUFSUkFZX1NJWkUoCisJCQkJCQkgeGdwdV90b25nYV9nb2xkZW5f Y29tbW9uX2FsbCkpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlCVUdfT04oIkRvZXNuJ3Qgc3Vw cG9ydCBjaGlwIHR5cGUuXG4iKTsKKwkJYnJlYWs7CisJfQorfQorCisvKgorICogTWFpbGJveCBj b21tdW5pY2F0aW9uIGJldHdlZW4gR1BVIGh5cGVydmlzb3IgYW5kIFZGcworICovCitzdGF0aWMg dm9pZCB4Z3B1X3ZpX21haWxib3hfc2VuZF9hY2soc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYp Cit7CisJdTMyIHJlZzsKKworCXJlZyA9IFJSRUczMihtbU1BSUxCT1hfQ09OVFJPTCk7CisJcmVn ID0gUkVHX1NFVF9GSUVMRChyZWcsIE1BSUxCT1hfQ09OVFJPTCwgUkNWX01TR19BQ0ssIDEpOwor CVdSRUczMihtbU1BSUxCT1hfQ09OVFJPTCwgcmVnKTsKK30KKworc3RhdGljIHZvaWQgeGdwdV92 aV9tYWlsYm94X3NldF92YWxpZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgYm9vbCB2YWwp Cit7CisJdTMyIHJlZzsKKworCXJlZyA9IFJSRUczMihtbU1BSUxCT1hfQ09OVFJPTCk7CisJcmVn ID0gUkVHX1NFVF9GSUVMRChyZWcsIE1BSUxCT1hfQ09OVFJPTCwKKwkJCQkgVFJOX01TR19WQUxJ RCwgdmFsID8gMSA6IDApOworCVdSRUczMihtbU1BSUxCT1hfQ09OVFJPTCwgcmVnKTsKK30KKwor c3RhdGljIHZvaWQgeGdwdV92aV9tYWlsYm94X3RyYW5zX21zZyhzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiwKKwkJCQkgICAgICBlbnVtIGlkaF9ldmVudCBldmVudCkKK3sKKwl1MzIgcmVnOwor CisJcmVnID0gUlJFRzMyKG1tTUFJTEJPWF9NU0dCVUZfVFJOX0RXMCk7CisJcmVnID0gUkVHX1NF VF9GSUVMRChyZWcsIE1BSUxCT1hfTVNHQlVGX1RSTl9EVzAsCisJCQkJIE1TR0JVRl9EQVRBLCBl dmVudCk7CisJV1JFRzMyKG1tTUFJTEJPWF9NU0dCVUZfVFJOX0RXMCwgcmVnKTsKKworCXhncHVf dmlfbWFpbGJveF9zZXRfdmFsaWQoYWRldiwgdHJ1ZSk7Cit9CisKK3N0YXRpYyBpbnQgeGdwdV92 aV9tYWlsYm94X3Jjdl9tc2coc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCisJCQkJICAgZW51 bSBpZGhfZXZlbnQgZXZlbnQpCit7CisJdTMyIHJlZzsKKworCXJlZyA9IFJSRUczMihtbU1BSUxC T1hfTVNHQlVGX1JDVl9EVzApOworCWlmIChyZWcgIT0gZXZlbnQpCisJCXJldHVybiAtRU5PRU5U OworCisJLyogc2VuZCBhY2sgdG8gUEYgKi8KKwl4Z3B1X3ZpX21haWxib3hfc2VuZF9hY2soYWRl dik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB4Z3B1X3ZpX3BvbGxfYWNrKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2KQoreworCWludCByID0gMCwgdGltZW91dCA9IFZJX01BSUxC T1hfVElNRURPVVQ7CisJdTMyIG1hc2sgPSBSRUdfRklFTERfTUFTSyhNQUlMQk9YX0NPTlRST0ws IFRSTl9NU0dfQUNLKTsKKwl1MzIgcmVnOworCisJcmVnID0gUlJFRzMyKG1tTUFJTEJPWF9DT05U Uk9MKTsKKwl3aGlsZSAoIShyZWcgJiBtYXNrKSkgeworCQlpZiAodGltZW91dCA8PSAwKSB7CisJ CQlwcl9lcnIoIkRvZXNuJ3QgZ2V0IGFjayBmcm9tIHBmLlxuIik7CisJCQlyID0gLUVUSU1FOwor CQkJYnJlYWs7CisJCX0KKwkJbXNsZWVwKDEpOworCQl0aW1lb3V0IC09IDE7CisKKwkJcmVnID0g UlJFRzMyKG1tTUFJTEJPWF9DT05UUk9MKTsKKwl9CisKKwlyZXR1cm4gcjsKK30KKworc3RhdGlj IGludCB4Z3B1X3ZpX3BvbGxfbXNnKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBlbnVtIGlk aF9ldmVudCBldmVudCkKK3sKKwlpbnQgciA9IDAsIHRpbWVvdXQgPSBWSV9NQUlMQk9YX1RJTUVE T1VUOworCisJciA9IHhncHVfdmlfbWFpbGJveF9yY3ZfbXNnKGFkZXYsIGV2ZW50KTsKKwl3aGls ZSAocikgeworCQlpZiAodGltZW91dCA8PSAwKSB7CisJCQlwcl9lcnIoIkRvZXNuJ3QgZ2V0IGFj ayBmcm9tIHBmLlxuIik7CisJCQlyID0gLUVUSU1FOworCQkJYnJlYWs7CisJCX0KKwkJbXNsZWVw KDEpOworCQl0aW1lb3V0IC09IDE7CisKKwkJciA9IHhncHVfdmlfbWFpbGJveF9yY3ZfbXNnKGFk ZXYsIGV2ZW50KTsKKwl9CisKKwlyZXR1cm4gcjsKK30KKworc3RhdGljIGludCB4Z3B1X3ZpX3Nl bmRfYWNjZXNzX3JlcXVlc3RzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQkJCQllbnVt IGlkaF9yZXF1ZXN0IHJlcXVlc3QpCit7CisJaW50IHI7CisKKwl4Z3B1X3ZpX21haWxib3hfdHJh bnNfbXNnKGFkZXYsIHJlcXVlc3QpOworCisJLyogc3RhcnQgdG8gcG9sbCBhY2sgKi8KKwlyID0g eGdwdV92aV9wb2xsX2FjayhhZGV2KTsKKwlpZiAocikKKwkJcmV0dXJuIHI7CisKKwl4Z3B1X3Zp X21haWxib3hfc2V0X3ZhbGlkKGFkZXYsIGZhbHNlKTsKKworCS8qIHN0YXJ0IHRvIGNoZWNrIG1z ZyBpZiByZXF1ZXN0IGlzIGlkaF9yZXFfZ3B1X2luaXRfYWNjZXNzICovCisJaWYgKHJlcXVlc3Qg PT0gSURIX1JFUV9HUFVfSU5JVF9BQ0NFU1MpIHsKKwkJciA9IHhncHVfdmlfcG9sbF9tc2coYWRl diwgSURIX1JFQURZX1RPX0FDQ0VTU19HUFUpOworCQlpZiAocikKKwkJCXJldHVybiByOworCX0K KworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHhncHVfdmlfcmVxdWVzdF9yZXNldChzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3sKKwlyZXR1cm4geGdwdV92aV9zZW5kX2FjY2Vzc19y ZXF1ZXN0cyhhZGV2LCBJREhfUkVRX0dQVV9SRVNFVF9BQ0NFU1MpOworfQorCitzdGF0aWMgaW50 IHhncHVfdmlfcmVxdWVzdF9mdWxsX2dwdV9hY2Nlc3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYsCisJCQkJCSAgIGJvb2wgaW5pdCkKK3sKKwllbnVtIGlkaF9ldmVudCBldmVudDsKKworCWV2 ZW50ID0gaW5pdCA/IElESF9SRVFfR1BVX0lOSVRfQUNDRVNTIDogSURIX1JFUV9HUFVfRklOSV9B Q0NFU1M7CisJcmV0dXJuIHhncHVfdmlfc2VuZF9hY2Nlc3NfcmVxdWVzdHMoYWRldiwgZXZlbnQp OworfQorCitzdGF0aWMgaW50IHhncHVfdmlfcmVsZWFzZV9mdWxsX2dwdV9hY2Nlc3Moc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYsCisJCQkJCSAgIGJvb2wgaW5pdCkKK3sKKwllbnVtIGlkaF9l dmVudCBldmVudDsKKwlpbnQgciA9IDA7CisKKwlldmVudCA9IGluaXQgPyBJREhfUkVMX0dQVV9J TklUX0FDQ0VTUyA6IElESF9SRUxfR1BVX0ZJTklfQUNDRVNTOworCXIgPSB4Z3B1X3ZpX3NlbmRf YWNjZXNzX3JlcXVlc3RzKGFkZXYsIGV2ZW50KTsKKworCXJldHVybiByOworfQorCisvKiBhZGQg c3VwcG9ydCBtYWlsYm94IGludGVycnVwdHMgKi8KK3N0YXRpYyBpbnQgeGdwdV92aV9tYWlsYm94 X2Fja19pcnEoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCisJCQkJICAgc3RydWN0IGFtZGdw dV9pcnFfc3JjICpzb3VyY2UsCisJCQkJICAgc3RydWN0IGFtZGdwdV9pdl9lbnRyeSAqZW50cnkp Cit7CisJRFJNX0RFQlVHKCJnZXQgYWNrIGludHIgYW5kIGRvIG5vdGhpbmcuXG4iKTsKKwlyZXR1 cm4gMDsKK30KKworc3RhdGljIGludCB4Z3B1X3ZpX3NldF9tYWlsYm94X2Fja19pcnEoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYsCisJCQkJICAgICAgIHN0cnVjdCBhbWRncHVfaXJxX3NyYyAq c3JjLAorCQkJCSAgICAgICB1bnNpZ25lZCB0eXBlLAorCQkJCSAgICAgICBlbnVtIGFtZGdwdV9p bnRlcnJ1cHRfc3RhdGUgc3RhdGUpCit7CisJdTMyIHRtcCA9IFJSRUczMihtbU1BSUxCT1hfSU5U X0NOVEwpOworCisJdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIE1BSUxCT1hfSU5UX0NOVEwsIEFD S19JTlRfRU4sCisJCQkJIChzdGF0ZSA9PSBBTURHUFVfSVJRX1NUQVRFX0VOQUJMRSkgPyAxIDog MCk7CisJV1JFRzMyKG1tTUFJTEJPWF9JTlRfQ05UTCwgdG1wKTsKKworCXJldHVybiAwOworfQor CitzdGF0aWMgdm9pZCB4Z3B1X3ZpX21haWxib3hfZmxyX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0 ICp3b3JrKQoreworCXN0cnVjdCBhbWRncHVfdmlydCAqdmlydCA9IGNvbnRhaW5lcl9vZih3b3Jr LAorCQkJCQlzdHJ1Y3QgYW1kZ3B1X3ZpcnQsIGZscl93b3JrLndvcmspOworCXN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2ID0gY29udGFpbmVyX29mKHZpcnQsCisJCQkJCXN0cnVjdCBhbWRncHVf ZGV2aWNlLCB2aXJ0KTsKKwlpbnQgciA9IDA7CisKKwlyID0geGdwdV92aV9wb2xsX21zZyhhZGV2 LCBJREhfRkxSX05PVElGSUNBVElPTl9DTVBMKTsKKwlpZiAocikKKwkJRFJNX0VSUk9SKCJmYWls ZWQgdG8gZ2V0IGZsciBjbXBsIG1zZyBmcm9tIGh5cGVydmlvci5cbiIpOworCisJLyogVE9ETzog bmVlZCB0byByZXN0b3JlIGdmeCBzdGF0ZXMgKi8KK30KKworc3RhdGljIGludCB4Z3B1X3ZpX3Nl dF9tYWlsYm94X3Jjdl9pcnEoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCisJCQkJICAgICAg IHN0cnVjdCBhbWRncHVfaXJxX3NyYyAqc3JjLAorCQkJCSAgICAgICB1bnNpZ25lZCB0eXBlLAor CQkJCSAgICAgICBlbnVtIGFtZGdwdV9pbnRlcnJ1cHRfc3RhdGUgc3RhdGUpCit7CisJdTMyIHRt cCA9IFJSRUczMihtbU1BSUxCT1hfSU5UX0NOVEwpOworCisJdG1wID0gUkVHX1NFVF9GSUVMRCh0 bXAsIE1BSUxCT1hfSU5UX0NOVEwsIFZBTElEX0lOVF9FTiwKKwkJCQkgKHN0YXRlID09IEFNREdQ VV9JUlFfU1RBVEVfRU5BQkxFKSA/IDEgOiAwKTsKKwlXUkVHMzIobW1NQUlMQk9YX0lOVF9DTlRM LCB0bXApOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgeGdwdV92aV9tYWlsYm94X3Jj dl9pcnEoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCisJCQkJICAgc3RydWN0IGFtZGdwdV9p cnFfc3JjICpzb3VyY2UsCisJCQkJICAgc3RydWN0IGFtZGdwdV9pdl9lbnRyeSAqZW50cnkpCit7 CisJaW50IHI7CisKKwlhZGV2LT52aXJ0LmNhcHMgJj0gfkFNREdQVV9TUklPVl9DQVBTX1JVTlRJ TUU7CisJciA9IHhncHVfdmlfbWFpbGJveF9yY3ZfbXNnKGFkZXYsIElESF9GTFJfTk9USUZJQ0FU SU9OKTsKKwkvKiBkbyBub3RoaW5nIGZvciBvdGhlciBtc2cgKi8KKwlpZiAocikKKwkJcmV0dXJu IDA7CisKKwkvKiBUT0RPOiBuZWVkIHRvIHNhdmUgZ2Z4IHN0YXRlcyAqLworCXNjaGVkdWxlX2Rl bGF5ZWRfd29yaygmYWRldi0+dmlydC5mbHJfd29yaywKKwkJCSAgICAgIG1zZWNzX3RvX2ppZmZp ZXMoVklfTUFJTEJPWF9SRVNFVF9USU1FKSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNv bnN0IHN0cnVjdCBhbWRncHVfaXJxX3NyY19mdW5jcyB4Z3B1X3ZpX21haWxib3hfYWNrX2lycV9m dW5jcyA9IHsKKwkuc2V0ID0geGdwdV92aV9zZXRfbWFpbGJveF9hY2tfaXJxLAorCS5wcm9jZXNz ID0geGdwdV92aV9tYWlsYm94X2Fja19pcnEsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGFt ZGdwdV9pcnFfc3JjX2Z1bmNzIHhncHVfdmlfbWFpbGJveF9yY3ZfaXJxX2Z1bmNzID0geworCS5z ZXQgPSB4Z3B1X3ZpX3NldF9tYWlsYm94X3Jjdl9pcnEsCisJLnByb2Nlc3MgPSB4Z3B1X3ZpX21h aWxib3hfcmN2X2lycSwKK307CisKK3ZvaWQgeGdwdV92aV9tYWlsYm94X3NldF9pcnFfZnVuY3Mo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCit7CisJYWRldi0+dmlydC5hY2tfaXJxLm51bV90 eXBlcyA9IDE7CisJYWRldi0+dmlydC5hY2tfaXJxLmZ1bmNzID0gJnhncHVfdmlfbWFpbGJveF9h Y2tfaXJxX2Z1bmNzOworCWFkZXYtPnZpcnQucmN2X2lycS5udW1fdHlwZXMgPSAxOworCWFkZXYt PnZpcnQucmN2X2lycS5mdW5jcyA9ICZ4Z3B1X3ZpX21haWxib3hfcmN2X2lycV9mdW5jczsKK30K KworaW50IHhncHVfdmlfbWFpbGJveF9hZGRfaXJxX2lkKHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2KQoreworCWludCByOworCisJciA9IGFtZGdwdV9pcnFfYWRkX2lkKGFkZXYsIDEzNSwgJmFk ZXYtPnZpcnQucmN2X2lycSk7CisJaWYgKHIpCisJCXJldHVybiByOworCisJciA9IGFtZGdwdV9p cnFfYWRkX2lkKGFkZXYsIDEzOCwgJmFkZXYtPnZpcnQuYWNrX2lycSk7CisJaWYgKHIpIHsKKwkJ YW1kZ3B1X2lycV9wdXQoYWRldiwgJmFkZXYtPnZpcnQucmN2X2lycSwgMCk7CisJCXJldHVybiBy OworCX0KKworCXJldHVybiAwOworfQorCitpbnQgeGdwdV92aV9tYWlsYm94X2dldF9pcnEoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCit7CisJaW50IHI7CisKKwlyID0gYW1kZ3B1X2lycV9n ZXQoYWRldiwgJmFkZXYtPnZpcnQucmN2X2lycSwgMCk7CisJaWYgKHIpCisJCXJldHVybiByOwor CXIgPSBhbWRncHVfaXJxX2dldChhZGV2LCAmYWRldi0+dmlydC5hY2tfaXJxLCAwKTsKKwlpZiAo cikgeworCQlhbWRncHVfaXJxX3B1dChhZGV2LCAmYWRldi0+dmlydC5yY3ZfaXJxLCAwKTsKKwkJ cmV0dXJuIHI7CisJfQorCisJSU5JVF9ERUxBWUVEX1dPUksoJmFkZXYtPnZpcnQuZmxyX3dvcmss IHhncHVfdmlfbWFpbGJveF9mbHJfd29yayk7CisKKwlyZXR1cm4gMDsKK30KKwordm9pZCB4Z3B1 X3ZpX21haWxib3hfcHV0X2lycShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3sKKwljYW5j ZWxfZGVsYXllZF93b3JrX3N5bmMoJmFkZXYtPnZpcnQuZmxyX3dvcmspOworCWFtZGdwdV9pcnFf cHV0KGFkZXYsICZhZGV2LT52aXJ0LmFja19pcnEsIDApOworCWFtZGdwdV9pcnFfcHV0KGFkZXYs ICZhZGV2LT52aXJ0LnJjdl9pcnEsIDApOworfQorCitjb25zdCBzdHJ1Y3QgYW1kZ3B1X3ZpcnRf b3BzIHhncHVfdmlfdmlydF9vcHMgPSB7CisJLnJlcV9mdWxsX2dwdQkJPSB4Z3B1X3ZpX3JlcXVl c3RfZnVsbF9ncHVfYWNjZXNzLAorCS5yZWxfZnVsbF9ncHUJCT0geGdwdV92aV9yZWxlYXNlX2Z1 bGxfZ3B1X2FjY2VzcywKKwkucmVzZXRfZ3B1CQk9IHhncHVfdmlfcmVxdWVzdF9yZXNldCwKK307 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9teGdwdV92aS5oIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbXhncHVfdmkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5mZDYyMTZlCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvbXhncHVfdmkuaApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0 IDIwMTcgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMg aGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBh CisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBm aWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91 dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0 cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1Ymxp Y2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVy bWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBz bywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3Zl IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5j bHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNv ZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VU IFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcg QlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAq IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJ TiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9SKFMp IEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFks IFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAq IEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUg T1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisK KyNpZm5kZWYgX19NWEdQVV9WSV9IX18KKyNkZWZpbmUgX19NWEdQVV9WSV9IX18KKworI2RlZmlu ZSBWSV9NQUlMQk9YX1RJTUVET1VUCTE1MAorI2RlZmluZSBWSV9NQUlMQk9YX1JFU0VUX1RJTUUJ MTIKKworLyogVkkgbWFpbGJveCBtZXNzYWdlcyByZXF1ZXN0ICovCitlbnVtIGlkaF9yZXF1ZXN0 IHsKKwlJREhfUkVRX0dQVV9JTklUX0FDQ0VTUwk9IDEsCisJSURIX1JFTF9HUFVfSU5JVF9BQ0NF U1MsCisJSURIX1JFUV9HUFVfRklOSV9BQ0NFU1MsCisJSURIX1JFTF9HUFVfRklOSV9BQ0NFU1Ms CisJSURIX1JFUV9HUFVfUkVTRVRfQUNDRVNTCit9OworCisvKiBWSSBtYWlsYm94IG1lc3NhZ2Vz IGRhdGEgKi8KK2VudW0gaWRoX2V2ZW50IHsKKwlJREhfQ0xSX01TR19CVUYgPSAwLAorCUlESF9S RUFEWV9UT19BQ0NFU1NfR1BVLAorCUlESF9GTFJfTk9USUZJQ0FUSU9OLAorCUlESF9GTFJfTk9U SUZJQ0FUSU9OX0NNUEwsCisJSURIX0VWRU5UX01BWAorfTsKKworZXh0ZXJuIGNvbnN0IHN0cnVj dCBhbWRncHVfdmlydF9vcHMgeGdwdV92aV92aXJ0X29wczsKKwordm9pZCB4Z3B1X3ZpX2luaXRf Z29sZGVuX3JlZ2lzdGVycyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Cit2b2lkIHhncHVf dmlfbWFpbGJveF9zZXRfaXJxX2Z1bmNzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKK2lu dCB4Z3B1X3ZpX21haWxib3hfYWRkX2lycV9pZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7 CitpbnQgeGdwdV92aV9tYWlsYm94X2dldF9pcnEoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYp Owordm9pZCB4Z3B1X3ZpX21haWxib3hfcHV0X2lycShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dik7CisKKyNlbmRpZgotLSAKMi43LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v YW1kLWdmeAo=