From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrzej Hajda Subject: [PATCH v2 3/3] drm/bridge: add Silicon Image SiI8620 driver Date: Fri, 08 Jan 2016 13:48:57 +0100 Message-ID: <1452257337-12334-4-git-send-email-a.hajda@samsung.com> References: <1452257337-12334-1-git-send-email-a.hajda@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-reply-to: <1452257337-12334-1-git-send-email-a.hajda@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: "open list:DRM DRIVERS" Cc: Mark Rutland , devicetree@vger.kernel.org, Pawel Moll , Bartlomiej Zolnierkiewicz , Ian Campbell , Andrzej Hajda , Kyungmin Park , Rob Herring , Kumar Gala , Thierry Reding , Marek Szyprowski List-Id: devicetree@vger.kernel.org U2lJODYyMCB0cmFuc21pdHRlciBjb252ZXJ0cyBlVE1EUy9IRE1JIHNpZ25hbCB0byBNSEwgMy4w LgpJdCBpcyBjb250cm9sbGVkIHZpYSBJMkMgYnVzLiBJdHMgaW50ZXJhY3Rpb24gd2l0aCBvdGhl cgpkZXZpY2VzIGluIHZpZGVvIHBpcGVsaW5lIGlzIHBlcmZvcm1lZCBtYWlubHkgb24gSFcgbGV2 ZWwuClRoZSBvbmx5IGludGVyYWN0aW9uIGl0IGRvZXMgb24gZGV2aWNlIGRyaXZlciBsZXZlbCBp cwpmaWx0ZXJpbmctb3V0IHVuc3VwcG9ydGVkIHZpZGVvIG1vZGVzLCBpdCBleHBvc2VzIGRybV9i cmlkZ2UKaW50ZXJmYWNlIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24uCgpTaWduZWQtb2ZmLWJ5 OiBBbmRyemVqIEhhamRhIDxhLmhhamRhQHNhbXN1bmcuY29tPgotLS0KdjI6Ci0gY2hhbmdlZCBz cGVjaWZpZXIgb2YgSU5UIHBpbiBmcm9tIGdwaW8gdG8gaW50ZXJydXB0IHByb3BlcnR5Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9LY29uZmlnICAgICAgIHwgICAgNyArCiBkcml2ZXJzL2dw dS9kcm0vYnJpZGdlL01ha2VmaWxlICAgICAgfCAgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9icmlk Z2Uvc2lsLXNpaTg2MjAuYyB8IDE1NjAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KwogZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWwtc2lpODYyMC5oIHwgMTUxNyArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMzA4NSBpbnNlcnRpb25z KCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWwtc2lpODYy MC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWwtc2lpODYy MC5oCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9LY29uZmlnIGIvZHJpdmVy cy9ncHUvZHJtL2JyaWRnZS9LY29uZmlnCmluZGV4IDI3ZTIwMjIuLmM5MTczNWYgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvS2NvbmZpZworKysgYi9kcml2ZXJzL2dwdS9kcm0v YnJpZGdlL0tjb25maWcKQEAgLTQwLDQgKzQwLDExIEBAIGNvbmZpZyBEUk1fUEFSQURFX1BTODYy MgogCS0tLWhlbHAtLS0KIAkgIFBhcmFkZSBlRFAtTFZEUyBicmlkZ2UgY2hpcCBkcml2ZXIuCiAK K2NvbmZpZyBEUk1fU0lMX1NJSTg2MjAKKwl0cmlzdGF0ZSAiU2lsaWNvbiBJbWFnZSBTSUk4NjIw IEhETUkvTUhMIGJyaWRnZSIKKwlkZXBlbmRzIG9uIE9GCisJc2VsZWN0IERSTV9LTVNfSEVMUEVS CisJaGVscAorCSAgU2lsaWNvbiBJbWFnZSBTSUk4NjIwIEhETUkvTUhMIGJyaWRnZSBjaGlwIGRy aXZlci4KKwogZW5kbWVudQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9NYWtl ZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvTWFrZWZpbGUKaW5kZXggZjEzYzMzZC4uNTBk ZDg0NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9NYWtlZmlsZQorKysgYi9k cml2ZXJzL2dwdS9kcm0vYnJpZGdlL01ha2VmaWxlCkBAIC00LDMgKzQsNCBAQCBvYmotJChDT05G SUdfRFJNX0RXX0hETUkpICs9IGR3LWhkbWkubwogb2JqLSQoQ09ORklHX0RSTV9EV19IRE1JX0FI Ql9BVURJTykgKz0gZHctaGRtaS1haGItYXVkaW8ubwogb2JqLSQoQ09ORklHX0RSTV9OWFBfUFRO MzQ2MCkgKz0gbnhwLXB0bjM0NjAubwogb2JqLSQoQ09ORklHX0RSTV9QQVJBREVfUFM4NjIyKSAr PSBwYXJhZGUtcHM4NjIyLm8KK29iai0kKENPTkZJR19EUk1fU0lMX1NJSTg2MjApICs9IHNpbC1z aWk4NjIwLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lsLXNpaTg2MjAu YyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lsLXNpaTg2MjAuYwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi4wYmQ4OTNmCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9n cHUvZHJtL2JyaWRnZS9zaWwtc2lpODYyMC5jCkBAIC0wLDAgKzEsMTU2MCBAQAorLyoKKyAqIERy aXZlciBmb3IgU2lsaWNvbiBJbWFnZSBTaUk4NjIwIE1vYmlsZSBIRCBUcmFuc21pdHRlcgorICoK KyAqIENvcHlyaWdodCAoQykgMjAxNSwgU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKyAq IEFuZHJ6ZWogSGFqZGEgPGEuaGFqZGFAc2Ftc3VuZy5jb20+CisgKgorICogVGhpcyBwcm9ncmFt IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkK KyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug dmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bi4KKyAqLworCisjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9l ZGlkLmg+CisKKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5o PgorI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9pMmMu aD4KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9pcnEuaD4K KyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisjaW5j bHVkZSA8bGludXgvbWhsLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8 bGludXgvbXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC9yZWd1bGF0b3IvY29uc3VtZXIuaD4KKyNp bmNsdWRlIDxsaW51eC9zbGFiLmg+CisKKyNpbmNsdWRlICJzaWwtc2lpODYyMC5oIgorCisjZGVm aW5lIFZBTF9SWF9IRE1JX0NUUkwyX0RFRlZBTAlWQUxfUlhfSERNSV9DVFJMMl9JRExFX0NOVCgz KQorCitlbnVtIHNpaTg2MjBfbW9kZSB7CisJQ01fRElTQ09OTkVDVEVELAorCUNNX0RJU0NPVkVS WSwKKwlDTV9NSEwxLAorCUNNX01ITDMsCisJQ01fRUNCVVNfUworfTsKKworZW51bSBzaWk4NjIw X3NpbmtfdHlwZSB7CisJU0lOS19OT05FLAorCVNJTktfSERNSSwKKwlTSU5LX0RWSQorfTsKKwor ZW51bSBzaWk4NjIwX210X3N0YXRlIHsKKwlNVF9TVEFURV9SRUFEWSwKKwlNVF9TVEFURV9CVVNZ LAorCU1UX1NUQVRFX0RPTkUKK307CisKK3N0cnVjdCBzaWk4NjIwIHsKKwlzdHJ1Y3QgZHJtX2Jy aWRnZSBicmlkZ2U7CisJc3RydWN0IGRldmljZSAqZGV2OworCXN0cnVjdCBjbGsgKmNsa194dGFs OworCXN0cnVjdCBncGlvX2Rlc2MgKmdwaW9fcmVzZXQ7CisJc3RydWN0IGdwaW9fZGVzYyAqZ3Bp b19pbnQ7CisJc3RydWN0IHJlZ3VsYXRvcl9idWxrX2RhdGEgc3VwcGxpZXNbMl07CisJc3RydWN0 IG11dGV4IGxvY2s7IC8qIGNvbnRleHQgbG9jaywgcHJvdGVjdHMgZmllbGRzIGJlbG93ICovCisJ aW50IGVycm9yOworCWVudW0gc2lpODYyMF9tb2RlIG1vZGU7CisJZW51bSBzaWk4NjIwX3Npbmtf dHlwZSBzaW5rX3R5cGU7CisJdTggY2J1c19zdGF0dXM7CisJdTggc3RhdFtNSExfRFNUX1NJWkVd OworCXU4IHhzdGF0W01ITF9YRFNfU0laRV07CisJdTggZGV2Y2FwW01ITF9EQ0FQX1NJWkVdOwor CXU4IHhkZXZjYXBbTUhMX1hEQ19TSVpFXTsKKwl1OCBhdmlmWzE5XTsKKwlzdHJ1Y3QgZWRpZCAq ZWRpZDsKKwl1bnNpZ25lZCBpbnQgZ2VuMl93cml0ZV9idXJzdDoxOworCWVudW0gc2lpODYyMF9t dF9zdGF0ZSBtdF9zdGF0ZTsKKwlzdHJ1Y3QgbGlzdF9oZWFkIG10X3F1ZXVlOworfTsKKworc3Ry dWN0IHNpaTg2MjBfbXRfbXNnOworCit0eXBlZGVmIHZvaWQgKCpzaWk4NjIwX210X21zZ19jYiko c3RydWN0IHNpaTg2MjAgKmN0eCwKKwkJCQkgIHN0cnVjdCBzaWk4NjIwX210X21zZyAqbXNnKTsK Kworc3RydWN0IHNpaTg2MjBfbXRfbXNnIHsKKwlzdHJ1Y3QgbGlzdF9oZWFkIG5vZGU7CisJdTgg cmVnWzRdOworCXU4IHJldDsKKwlzaWk4NjIwX210X21zZ19jYiBzZW5kOworCXNpaTg2MjBfbXRf bXNnX2NiIHJlY3Y7Cit9OworCitzdGF0aWMgY29uc3QgdTggc2lpODYyMF9pMmNfcGFnZVtdID0g eworCTB4MzksIC8qIE1haW4gU3lzdGVtICovCisJMHgzZCwgLyogVERNIGFuZCBIU0lDICovCisJ MHg0OSwgLyogVE1EUyBSZWNlaXZlciwgTUhMIEVESUQgKi8KKwkweDRkLCAvKiBlTVNDLCBIRENQ LCBIU0lDICovCisJMHg1ZCwgLyogTUhMIFNwZWMgKi8KKwkweDY0LCAvKiBNSEwgQ0JVUyAqLwor CTB4NTksIC8qIEhhcmR3YXJlIFRQSSAoVHJhbnNtaXR0ZXIgUHJvZ3JhbW1pbmcgSW50ZXJmYWNl KSAqLworCTB4NjEsIC8qIGVDQlVTLVMsIGVDQlVTLUQgKi8KK307CisKK3N0YXRpYyB2b2lkIHNp aTg2MjBfZmV0Y2hfZWRpZChzdHJ1Y3Qgc2lpODYyMCAqY3R4KTsKK3N0YXRpYyB2b2lkIHNpaTg2 MjBfc2V0X3Vwc3RyZWFtX2VkaWQoc3RydWN0IHNpaTg2MjAgKmN0eCk7CitzdGF0aWMgdm9pZCBz aWk4NjIwX2VuYWJsZV9ocGQoc3RydWN0IHNpaTg2MjAgKmN0eCk7CitzdGF0aWMgdm9pZCBzaWk4 NjIwX21obF9kaXNjb25uZWN0ZWQoc3RydWN0IHNpaTg2MjAgKmN0eCk7CisKK3N0YXRpYyBpbnQg c2lpODYyMF9jbGVhcl9lcnJvcihzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCWludCByZXQgPSBj dHgtPmVycm9yOworCisJY3R4LT5lcnJvciA9IDA7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGlj IHZvaWQgc2lpODYyMF9yZWFkX2J1ZihzdHJ1Y3Qgc2lpODYyMCAqY3R4LCB1MTYgYWRkciwgdTgg KmJ1ZiwgaW50IGxlbikKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBjdHgtPmRldjsKKwlzdHJ1 Y3QgaTJjX2NsaWVudCAqY2xpZW50ID0gdG9faTJjX2NsaWVudChkZXYpOworCXU4IGRhdGEgPSBh ZGRyOworCXN0cnVjdCBpMmNfbXNnIG1zZ1tdID0geworCQl7CisJCQkuYWRkciA9IHNpaTg2MjBf aTJjX3BhZ2VbYWRkciA+PiA4XSwKKwkJCS5mbGFncyA9IGNsaWVudC0+ZmxhZ3MsCisJCQkubGVu ID0gMSwKKwkJCS5idWYgPSAmZGF0YQorCQl9LAorCQl7CisJCQkuYWRkciA9IHNpaTg2MjBfaTJj X3BhZ2VbYWRkciA+PiA4XSwKKwkJCS5mbGFncyA9IGNsaWVudC0+ZmxhZ3MgfCBJMkNfTV9SRCwK KwkJCS5sZW4gPSBsZW4sCisJCQkuYnVmID0gYnVmCisJCX0sCisJfTsKKwlpbnQgcmV0OworCisJ aWYgKGN0eC0+ZXJyb3IpCisJCXJldHVybjsKKworCXJldCA9IGkyY190cmFuc2ZlcihjbGllbnQt PmFkYXB0ZXIsIG1zZywgMik7CisJZGV2X2RiZyhkZXYsICJyZWFkIGF0ICUwNHg6ICUqcGgsICVk XG4iLCBhZGRyLCBsZW4sIGJ1ZiwgcmV0KTsKKworCWlmIChyZXQgIT0gMikgeworCQlkZXZfZXJy KGRldiwgIlJlYWQgYXQgJSMwNnggb2YgJWQgYnl0ZXMgZmFpbGVkIHdpdGggY29kZSAlZC5cbiIs CisJCQlhZGRyLCBsZW4sIHJldCk7CisJCWN0eC0+ZXJyb3IgPSByZXQgPCAwID8gcmV0IDogLUVJ TzsKKwl9Cit9CisKK3N0YXRpYyB1OCBzaWk4NjIwX3JlYWRiKHN0cnVjdCBzaWk4NjIwICpjdHgs IHUxNiBhZGRyKQoreworCXU4IHJldDsKKworCXNpaTg2MjBfcmVhZF9idWYoY3R4LCBhZGRyLCAm cmV0LCAxKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX3dyaXRlX2J1 ZihzdHJ1Y3Qgc2lpODYyMCAqY3R4LCB1MTYgYWRkciwgY29uc3QgdTggKmJ1ZiwKKwkJCSAgICAg IGludCBsZW4pCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gY3R4LT5kZXY7CisJc3RydWN0IGky Y19jbGllbnQgKmNsaWVudCA9IHRvX2kyY19jbGllbnQoZGV2KTsKKwl1OCBkYXRhWzJdOworCXN0 cnVjdCBpMmNfbXNnIG1zZyA9IHsKKwkJLmFkZHIgPSBzaWk4NjIwX2kyY19wYWdlW2FkZHIgPj4g OF0sCisJCS5mbGFncyA9IGNsaWVudC0+ZmxhZ3MsCisJCS5sZW4gPSBsZW4gKyAxLAorCX07CisJ aW50IHJldDsKKworCWlmIChjdHgtPmVycm9yKQorCQlyZXR1cm47CisKKwlpZiAobGVuID4gMSkg eworCQltc2cuYnVmID0ga21hbGxvYyhsZW4gKyAxLCBHRlBfS0VSTkVMKTsKKwkJaWYgKCFtc2cu YnVmKSB7CisJCQljdHgtPmVycm9yID0gLUVOT01FTTsKKwkJCXJldHVybjsKKwkJfQorCQltZW1j cHkobXNnLmJ1ZiArIDEsIGJ1ZiwgbGVuKTsKKwl9IGVsc2UgeworCQltc2cuYnVmID0gZGF0YTsK KwkJbXNnLmJ1ZlsxXSA9ICpidWY7CisJfQorCisJbXNnLmJ1ZlswXSA9IGFkZHI7CisKKwlyZXQg PSBpMmNfdHJhbnNmZXIoY2xpZW50LT5hZGFwdGVyLCAmbXNnLCAxKTsKKwlkZXZfZGJnKGRldiwg IndyaXRlIGF0ICUwNHg6ICUqcGgsICVkXG4iLCBhZGRyLCBsZW4sIGJ1ZiwgcmV0KTsKKworCWlm IChyZXQgIT0gMSkgeworCQlkZXZfZXJyKGRldiwgIldyaXRlIGF0ICUjMDZ4IG9mICUqcGggZmFp bGVkIHdpdGggY29kZSAlZC5cbiIsCisJCQlhZGRyLCBsZW4sIGJ1ZiwgcmV0KTsKKwkJY3R4LT5l cnJvciA9IHJldCA/OiAtRUlPOworCX0KKworCWlmIChsZW4gPiAxKQorCQlrZnJlZShtc2cuYnVm KTsKK30KKworI2RlZmluZSBzaWk4NjIwX3dyaXRlKGN0eCwgYWRkciwgYXJyLi4uKSBcCisoe1wK Kwl1OCBkW10gPSB7IGFyciB9OyBcCisJc2lpODYyMF93cml0ZV9idWYoY3R4LCBhZGRyLCBkLCBB UlJBWV9TSVpFKGQpKTsgXAorfSkKKworc3RhdGljIHZvaWQgX19zaWk4NjIwX3dyaXRlX3NlcShz dHJ1Y3Qgc2lpODYyMCAqY3R4LCB1MTYgKnNlcSwgaW50IGxlbikKK3sKKwlpbnQgaTsKKworCWZv ciAoaSA9IDA7IGkgPCBsZW47IGkgKz0gMikKKwkJc2lpODYyMF93cml0ZShjdHgsIHNlcVtpXSwg c2VxW2kgKyAxXSk7Cit9CisKKyNkZWZpbmUgc2lpODYyMF93cml0ZV9zZXEoY3R4LCBzZXEuLi4p IFwKKyh7XAorCXUxNiBkW10gPSB7IHNlcSB9OyBcCisJX19zaWk4NjIwX3dyaXRlX3NlcShjdHgs IGQsIEFSUkFZX1NJWkUoZCkpOyBcCit9KQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX3NldGJpdHMo c3RydWN0IHNpaTg2MjAgKmN0eCwgdTE2IGFkZHIsIHU4IG1hc2ssIHU4IHZhbCkKK3sKKwl2YWwg PSAodmFsICYgbWFzaykgfCAoc2lpODYyMF9yZWFkYihjdHgsIGFkZHIpICYgfm1hc2spOworCXNp aTg2MjBfd3JpdGUoY3R4LCBhZGRyLCB2YWwpOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX210 X2NsZWFudXAoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlzdHJ1Y3Qgc2lpODYyMF9tdF9tc2cg Km1zZywgKm47CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUobXNnLCBuLCAmY3R4LT5tdF9x dWV1ZSwgbm9kZSkgeworCQlsaXN0X2RlbCgmbXNnLT5ub2RlKTsKKwkJa2ZyZWUobXNnKTsKKwl9 CisJY3R4LT5tdF9zdGF0ZSA9IE1UX1NUQVRFX1JFQURZOworfQorCitzdGF0aWMgdm9pZCBzaWk4 NjIwX210X3dvcmsoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlzdHJ1Y3Qgc2lpODYyMF9tdF9t c2cgKm1zZzsKKworCWlmIChjdHgtPmVycm9yKQorCQlyZXR1cm47CisJaWYgKGN0eC0+bXRfc3Rh dGUgPT0gTVRfU1RBVEVfQlVTWSB8fCBsaXN0X2VtcHR5KCZjdHgtPm10X3F1ZXVlKSkKKwkJcmV0 dXJuOworCisJaWYgKGN0eC0+bXRfc3RhdGUgPT0gTVRfU1RBVEVfRE9ORSkgeworCQljdHgtPm10 X3N0YXRlID0gTVRfU1RBVEVfUkVBRFk7CisJCW1zZyA9IGxpc3RfZmlyc3RfZW50cnkoJmN0eC0+ bXRfcXVldWUsIHN0cnVjdCBzaWk4NjIwX210X21zZywKKwkJCQkgICAgICAgbm9kZSk7CisJCWlm IChtc2ctPnJlY3YpCisJCQltc2ctPnJlY3YoY3R4LCBtc2cpOworCQlsaXN0X2RlbCgmbXNnLT5u b2RlKTsKKwkJa2ZyZWUobXNnKTsKKwl9CisKKwlpZiAoY3R4LT5tdF9zdGF0ZSAhPSBNVF9TVEFU RV9SRUFEWSB8fCBsaXN0X2VtcHR5KCZjdHgtPm10X3F1ZXVlKSkKKwkJcmV0dXJuOworCisJY3R4 LT5tdF9zdGF0ZSA9IE1UX1NUQVRFX0JVU1k7CisJbXNnID0gbGlzdF9maXJzdF9lbnRyeSgmY3R4 LT5tdF9xdWV1ZSwgc3RydWN0IHNpaTg2MjBfbXRfbXNnLCBub2RlKTsKKwlpZiAobXNnLT5zZW5k KQorCQltc2ctPnNlbmQoY3R4LCBtc2cpOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX210X21z Y19jbWRfc2VuZChzdHJ1Y3Qgc2lpODYyMCAqY3R4LAorCQkJCSAgICAgICBzdHJ1Y3Qgc2lpODYy MF9tdF9tc2cgKm1zZykKK3sKKwlzd2l0Y2ggKG1zZy0+cmVnWzBdKSB7CisJY2FzZSBNSExfV1JJ VEVfU1RBVDoKKwljYXNlIE1ITF9TRVRfSU5UOgorCQlzaWk4NjIwX3dyaXRlX2J1ZihjdHgsIFJF R19NU0NfQ01EX09SX09GRlNFVCwgbXNnLT5yZWcgKyAxLCAyKTsKKwkJc2lpODYyMF93cml0ZShj dHgsIFJFR19NU0NfQ09NTUFORF9TVEFSVCwKKwkJCSAgICAgIEJJVF9NU0NfQ09NTUFORF9TVEFS VF9XUklURV9TVEFUKTsKKwkJYnJlYWs7CisJY2FzZSBNSExfTVNDX01TRzoKKwkJc2lpODYyMF93 cml0ZV9idWYoY3R4LCBSRUdfTVNDX0NNRF9PUl9PRkZTRVQsIG1zZy0+cmVnLCAzKTsKKwkJc2lp ODYyMF93cml0ZShjdHgsIFJFR19NU0NfQ09NTUFORF9TVEFSVCwKKwkJCSAgICAgIEJJVF9NU0Nf Q09NTUFORF9TVEFSVF9NU0NfTVNHKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJZGV2X2Vycihj dHgtPmRldiwgIiVzOiBjb21tYW5kICUjeCBub3Qgc3VwcG9ydGVkXG4iLCBfX2Z1bmNfXywKKwkJ CW1zZy0+cmVnWzBdKTsKKwl9Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgc2lpODYyMF9tdF9tc2cgKnNp aTg2MjBfbXRfbXNnX25ldyhzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXN0cnVjdCBzaWk4NjIw X210X21zZyAqbXNnID0ga3phbGxvYyhzaXplb2YoKm1zZyksIEdGUF9LRVJORUwpOworCisJaWYg KCFtc2cpCisJCWN0eC0+ZXJyb3IgPSAtRU5PTUVNOworCWVsc2UKKwkJbGlzdF9hZGRfdGFpbCgm bXNnLT5ub2RlLCAmY3R4LT5tdF9xdWV1ZSk7CisKKwlyZXR1cm4gbXNnOworfQorCitzdGF0aWMg dm9pZCBzaWk4NjIwX210X21zY19jbWQoc3RydWN0IHNpaTg2MjAgKmN0eCwgdTggY21kLCB1OCBh cmcxLCB1OCBhcmcyKQoreworCXN0cnVjdCBzaWk4NjIwX210X21zZyAqbXNnID0gc2lpODYyMF9t dF9tc2dfbmV3KGN0eCk7CisKKwlpZiAoIW1zZykKKwkJcmV0dXJuOworCisJbXNnLT5yZWdbMF0g PSBjbWQ7CisJbXNnLT5yZWdbMV0gPSBhcmcxOworCW1zZy0+cmVnWzJdID0gYXJnMjsKKwltc2ct PnNlbmQgPSBzaWk4NjIwX210X21zY19jbWRfc2VuZDsKK30KKworc3RhdGljIHZvaWQgc2lpODYy MF9tdF93cml0ZV9zdGF0KHN0cnVjdCBzaWk4NjIwICpjdHgsIHU4IHJlZywgdTggdmFsKQorewor CXNpaTg2MjBfbXRfbXNjX2NtZChjdHgsIE1ITF9XUklURV9TVEFULCByZWcsIHZhbCk7Cit9CisK K3N0YXRpYyBpbmxpbmUgdm9pZCBzaWk4NjIwX210X3NldF9pbnQoc3RydWN0IHNpaTg2MjAgKmN0 eCwgdTggaXJxLCB1OCBtYXNrKQoreworCXNpaTg2MjBfbXRfbXNjX2NtZChjdHgsIE1ITF9TRVRf SU5ULCBpcnEsIG1hc2spOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX210X21zY19tc2coc3Ry dWN0IHNpaTg2MjAgKmN0eCwgdTggY21kLCB1OCBkYXRhKQoreworCXNpaTg2MjBfbXRfbXNjX2Nt ZChjdHgsIE1ITF9NU0NfTVNHLCBjbWQsIGRhdGEpOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIw X210X3JhcChzdHJ1Y3Qgc2lpODYyMCAqY3R4LCB1OCBjb2RlKQoreworCXNpaTg2MjBfbXRfbXNj X21zZyhjdHgsIE1ITF9NU0NfTVNHX1JBUCwgY29kZSk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2 MjBfbXRfcmVhZF9kZXZjYXBfc2VuZChzdHJ1Y3Qgc2lpODYyMCAqY3R4LAorCQkJCQlzdHJ1Y3Qg c2lpODYyMF9tdF9tc2cgKm1zZykKK3sKKwl1OCBjdHJsID0gQklUX0VESURfQ1RSTF9ERVZDQVBf U0VMRUNUX0RFVkNBUAorCQkJfCBCSVRfRURJRF9DVFJMX0VESURfRklGT19BRERSX0FVVE8KKwkJ CXwgQklUX0VESURfQ1RSTF9FRElEX01PREVfRU47CisKKwlpZiAobXNnLT5yZWdbMF0gPT0gTUhM X1JFQURfWERFVkNBUCkKKwkJY3RybCB8PSBCSVRfRURJRF9DVFJMX1hERVZDQVBfRU47CisKKwlz aWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJFR19JTlRSOV9NQVNLLCBCSVRfSU5UUjlfREVWQ0FQ X0RPTkUsCisJCVJFR19FRElEX0NUUkwsIGN0cmwsCisJCVJFR19UUElfQ0JVU19TVEFSVCwgQklU X1RQSV9DQlVTX1NUQVJUX0dFVF9ERVZDQVBfU1RBUlQKKwkpOworfQorCisvKiBjb3B5IHNyYyB0 byBkc3QgYW5kIHNldCBjaGFuZ2VkIGJpdHMgaW4gc3JjICovCitzdGF0aWMgdm9pZCBzaWk4NjIw X3VwZGF0ZV9hcnJheSh1OCAqZHN0LCB1OCAqc3JjLCBpbnQgY291bnQpCit7CisJd2hpbGUgKC0t Y291bnQgPj0gMCkgeworCQkqc3JjIF49ICpkc3Q7CisJCSpkc3QrKyBePSAqc3JjKys7CisJfQor fQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX21yX2RldmNhcChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQor eworCXN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc2lua19zdHJbXSA9IHsKKwkJW1NJTktfTk9O RV0gPSAiTk9ORSIsCisJCVtTSU5LX0hETUldID0gIkhETUkiLAorCQlbU0lOS19EVkldID0gIkRW SSIKKwl9OworCisJdTggZGNhcFtNSExfRENBUF9TSVpFXTsKKworCXNpaTg2MjBfcmVhZF9idWYo Y3R4LCBSRUdfRURJRF9GSUZPX1JEX0RBVEEsIGRjYXAsIE1ITF9EQ0FQX1NJWkUpOworCXNpaTg2 MjBfdXBkYXRlX2FycmF5KGN0eC0+ZGV2Y2FwLCBkY2FwLCBNSExfRENBUF9TSVpFKTsKKworCWlm ICghKGRjYXBbTUhMX0RDQVBfQ0FUXSAmIE1ITF9EQ0FQX0NBVF9TSU5LKSkKKwkJcmV0dXJuOwor CisJc2lpODYyMF9mZXRjaF9lZGlkKGN0eCk7CisJaWYgKCFjdHgtPmVkaWQpIHsKKwkJZGV2X2Vy cihjdHgtPmRldiwgIkNhbm5vdCBmZXRjaCBFRElEXG4iKTsKKwkJc2lpODYyMF9taGxfZGlzY29u bmVjdGVkKGN0eCk7CisJCXJldHVybjsKKwl9CisKKwlpZiAoZHJtX2RldGVjdF9oZG1pX21vbml0 b3IoY3R4LT5lZGlkKSkKKwkJY3R4LT5zaW5rX3R5cGUgPSBTSU5LX0hETUk7CisJZWxzZQorCQlj dHgtPnNpbmtfdHlwZSA9IFNJTktfRFZJOworCisJZGV2X2luZm8oY3R4LT5kZXYsICJkZXRlY3Rl ZCBkb25nbGU6ICVzLCBwYWNrZWQgcGl4ZWwgc3VwcG9ydDogJWRcbiIsCisJCSBzaW5rX3N0cltj dHgtPnNpbmtfdHlwZV0sCisJCSAhIShjdHgtPmRldmNhcFtNSExfRENBUF9WSURfTElOS19NT0RF XQorCQkgICAmIE1ITF9EQ0FQX1ZJRF9MSU5LX1BQSVhFTCkpOworCXNpaTg2MjBfc2V0X3Vwc3Ry ZWFtX2VkaWQoY3R4KTsKKwlzaWk4NjIwX2VuYWJsZV9ocGQoY3R4KTsKK30KKworc3RhdGljIHZv aWQgc2lpODYyMF9tcl94ZGV2Y2FwKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc2lpODYyMF9y ZWFkX2J1ZihjdHgsIFJFR19FRElEX0ZJRk9fUkRfREFUQSwgY3R4LT54ZGV2Y2FwLAorCQkJIE1I TF9YRENfU0laRSk7CisKKwlzaWk4NjIwX210X3dyaXRlX3N0YXQoY3R4LCBNSExfWERTX1JFRyhD VVJSX0VDQlVTX01PREUpLAorCQkJICAgICAgTUhMX1hEU19FQ0JVU19TIHwgTUhMX1hEU19TTE9U X01PREVfOEJJVCk7CisJc2lpODYyMF9tdF9yYXAoY3R4LCBNSExfUkFQX0NCVVNfTU9ERV9VUCk7 Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfbXRfcmVhZF9kZXZjYXBfcmVjdihzdHJ1Y3Qgc2lp ODYyMCAqY3R4LAorCQkJCQlzdHJ1Y3Qgc2lpODYyMF9tdF9tc2cgKm1zZykKK3sKKwl1OCBjdHJs ID0gQklUX0VESURfQ1RSTF9ERVZDQVBfU0VMRUNUX0RFVkNBUAorCQl8IEJJVF9FRElEX0NUUkxf RURJRF9GSUZPX0FERFJfQVVUTworCQl8IEJJVF9FRElEX0NUUkxfRURJRF9NT0RFX0VOOworCisJ aWYgKG1zZy0+cmVnWzBdID09IE1ITF9SRUFEX1hERVZDQVApCisJCWN0cmwgfD0gQklUX0VESURf Q1RSTF9YREVWQ0FQX0VOOworCisJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQlSRUdfSU5UUjlf TUFTSywgQklUX0lOVFI5X0RFVkNBUF9ET05FIHwgQklUX0lOVFI5X0VESURfRE9ORQorCQkJfCBC SVRfSU5UUjlfRURJRF9FUlJPUiwKKwkJUkVHX0VESURfQ1RSTCwgY3RybCwKKwkJUkVHX0VESURf RklGT19BRERSLCAwCisJKTsKKworCWlmIChtc2ctPnJlZ1swXSA9PSBNSExfUkVBRF9YREVWQ0FQ KQorCQlzaWk4NjIwX21yX3hkZXZjYXAoY3R4KTsKKwllbHNlCisJCXNpaTg2MjBfbXJfZGV2Y2Fw KGN0eCk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfbXRfcmVhZF9kZXZjYXAoc3RydWN0IHNp aTg2MjAgKmN0eCwgYm9vbCB4ZGV2Y2FwKQoreworCXN0cnVjdCBzaWk4NjIwX210X21zZyAqbXNn ID0gc2lpODYyMF9tdF9tc2dfbmV3KGN0eCk7CisKKwlpZiAoIW1zZykKKwkJcmV0dXJuOworCisJ bXNnLT5yZWdbMF0gPSB4ZGV2Y2FwID8gTUhMX1JFQURfWERFVkNBUCA6IE1ITF9SRUFEX0RFVkNB UDsKKwltc2ctPnNlbmQgPSBzaWk4NjIwX210X3JlYWRfZGV2Y2FwX3NlbmQ7CisJbXNnLT5yZWN2 ID0gc2lpODYyMF9tdF9yZWFkX2RldmNhcF9yZWN2OworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIw X2ZldGNoX2VkaWQoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwl1OCBsbV9kZGMsIGRkY19jbWQs IGludDMsIGNidXM7CisJaW50IGZldGNoZWQsIGk7CisJaW50IGVkaWRfbGVuID0gRURJRF9MRU5H VEg7CisJdTggKmVkaWQ7CisKKwlzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX0NCVVNfU1RBVFVTKTsK KwlsbV9kZGMgPSBzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX0xNX0REQyk7CisJZGRjX2NtZCA9IHNp aTg2MjBfcmVhZGIoY3R4LCBSRUdfRERDX0NNRCk7CisKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgs CisJCVJFR19JTlRSOV9NQVNLLCAwLAorCQlSRUdfRURJRF9DVFJMLCBCSVRfRURJRF9DVFJMX0VE SURfRklGT19BRERSX0FVVE8sCisJCVJFR19IRENQMlhfUE9MTF9DUywgMHg3MSwKKwkJUkVHX0hE Q1AyWF9DVFJMXzAsIEJJVF9IRENQMlhfQ1RSTF8wX0hEQ1AyWF9IRENQVFgsCisJCVJFR19MTV9E REMsIGxtX2RkYyB8IEJJVF9MTV9ERENfU1dfVFBJX0VOX0RJU0FCTEVELAorCSk7CisKKwlmb3Ig KGkgPSAwOyBpIDwgMjU2OyArK2kpIHsKKwkJdTggZGRjX3N0YXQgPSBzaWk4NjIwX3JlYWRiKGN0 eCwgUkVHX0REQ19TVEFUVVMpOworCisJCWlmICghKGRkY19zdGF0ICYgQklUX0REQ19TVEFUVVNf RERDX0kyQ19JTl9QUk9HKSkKKwkJCWJyZWFrOworCQlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0RE Q19TVEFUVVMsCisJCQkgICAgICAgQklUX0REQ19TVEFUVVNfRERDX0ZJRk9fRU1QVFkpOworCX0K KworCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfRERDX0FERFIsIDB4NTAgPDwgMSk7CisKKwllZGlk ID0ga21hbGxvYyhFRElEX0xFTkdUSCwgR0ZQX0tFUk5FTCk7CisJaWYgKCFlZGlkKSB7CisJCWN0 eC0+ZXJyb3IgPSAtRU5PTUVNOworCQlyZXR1cm47CisJfQorCisjZGVmaW5lIEZFVENIX1NJWkUg MTYKKwlmb3IgKGZldGNoZWQgPSAwOyBmZXRjaGVkIDwgZWRpZF9sZW47IGZldGNoZWQgKz0gRkVU Q0hfU0laRSkgeworCQlzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX0REQ19TVEFUVVMpOworCQlzaWk4 NjIwX3dyaXRlX3NlcShjdHgsCisJCQlSRUdfRERDX0NNRCwgZGRjX2NtZCB8IFZBTF9ERENfQ01E X0REQ19DTURfQUJPUlQsCisJCQlSRUdfRERDX0NNRCwgZGRjX2NtZCB8IFZBTF9ERENfQ01EX0RE Q19DTURfQ0xFQVJfRklGTywKKwkJCVJFR19ERENfU1RBVFVTLCBCSVRfRERDX1NUQVRVU19ERENf RklGT19FTVBUWQorCQkpOworCQlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCQlSRUdfRERDX1NF R00sIGZldGNoZWQgPj4gOCwKKwkJCVJFR19ERENfT0ZGU0VULCBmZXRjaGVkICYgMHhmZiwKKwkJ CVJFR19ERENfRElOX0NOVDEsIEZFVENIX1NJWkUsCisJCQlSRUdfRERDX0RJTl9DTlQyLCAwLAor CQkJUkVHX0REQ19DTUQsIGRkY19jbWQgfCBWQUxfRERDX0NNRF9FTkhfRERDX1JFQURfTk9fQUNL CisJCSk7CisKKwkJZG8geworCQkJaW50MyA9IHNpaTg2MjBfcmVhZGIoY3R4LCBSRUdfSU5UUjMp OworCQkJY2J1cyA9IHNpaTg2MjBfcmVhZGIoY3R4LCBSRUdfQ0JVU19TVEFUVVMpOworCisJCQlp ZiAoaW50MyAmIEJJVF9ERENfQ01EX0RPTkUpCisJCQkJYnJlYWs7CisKKwkJCWlmICghKGNidXMg JiBCSVRfQ0JVU19TVEFUVVNfQ0JVU19DT05ORUNURUQpKSB7CisJCQkJa2ZyZWUoZWRpZCk7CisJ CQkJZWRpZCA9IE5VTEw7CisJCQkJZ290byBlbmQ7CisJCQl9CisJCX0gd2hpbGUgKDEpOworCisJ CXNpaTg2MjBfcmVhZGIoY3R4LCBSRUdfRERDX1NUQVRVUyk7CisJCXdoaWxlIChzaWk4NjIwX3Jl YWRiKGN0eCwgUkVHX0REQ19ET1VUX0NOVCkgPCBGRVRDSF9TSVpFKQorCQkJdXNsZWVwX3Jhbmdl KDEwLCAyMCk7CisKKwkJc2lpODYyMF9yZWFkX2J1ZihjdHgsIFJFR19ERENfREFUQSwgZWRpZCAr IGZldGNoZWQsIEZFVENIX1NJWkUpOworCQlpZiAoZmV0Y2hlZCArIEZFVENIX1NJWkUgPT0gRURJ RF9MRU5HVEgpIHsKKwkJCXU4IGV4dCA9ICgoc3RydWN0IGVkaWQgKillZGlkKS0+ZXh0ZW5zaW9u czsKKworCQkJaWYgKGV4dCkgeworCQkJCXU4ICpuZXdfZWRpZDsKKworCQkJCWVkaWRfbGVuICs9 IGV4dCAqIEVESURfTEVOR1RIOworCQkJCW5ld19lZGlkID0ga3JlYWxsb2MoZWRpZCwgZWRpZF9s ZW4sIEdGUF9LRVJORUwpOworCQkJCWlmICghbmV3X2VkaWQpIHsKKwkJCQkJa2ZyZWUoZWRpZCk7 CisJCQkJCWN0eC0+ZXJyb3IgPSAtRU5PTUVNOworCQkJCQlyZXR1cm47CisJCQkJfQorCQkJCWVk aWQgPSBuZXdfZWRpZDsKKwkJCX0KKwkJfQorCisJCWlmIChmZXRjaGVkICsgRkVUQ0hfU0laRSA9 PSBlZGlkX2xlbikKKwkJCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfSU5UUjMsIGludDMpOworCX0K KworCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfTE1fRERDLCBsbV9kZGMpOworCitlbmQ6CisJa2Zy ZWUoY3R4LT5lZGlkKTsKKwljdHgtPmVkaWQgPSAoc3RydWN0IGVkaWQgKillZGlkOworfQorCitz dGF0aWMgdm9pZCBzaWk4NjIwX3NldF91cHN0cmVhbV9lZGlkKHN0cnVjdCBzaWk4NjIwICpjdHgp Cit7CisJc2lpODYyMF9zZXRiaXRzKGN0eCwgUkVHX0RQRCwgQklUX0RQRF9QRE5SWDEyIHwgQklU X0RQRF9QRElEQ0tfTgorCQkJfCBCSVRfRFBEX1BEX01ITF9DTEtfTiwgMHhmZik7CisKKwlzaWk4 NjIwX3dyaXRlX3NlcShjdHgsCisJCVJFR19SWF9IRE1JX0NUUkwzLCAweDAwLAorCQlSRUdfUEtU X0ZJTFRFUl8wLCAweEZGLAorCQlSRUdfUEtUX0ZJTFRFUl8xLCAweEZGLAorCQlSRUdfQUxJQ0Uw X0JXX0kyQywgMHgwNgorCSk7CisKKwlzaWk4NjIwX3NldGJpdHMoY3R4LCBSRUdfUlhfSERNSV9D TFJfQlVGRkVSLAorCQkJQklUX1JYX0hETUlfQ0xSX0JVRkZFUl9WU0lfQ0xSX0VOLCAweGZmKTsK KworCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJUkVHX0VESURfQ1RSTCwgQklUX0VESURfQ1RS TF9FRElEX0ZJRk9fQUREUl9BVVRPCisJCQl8IEJJVF9FRElEX0NUUkxfRURJRF9NT0RFX0VOLAor CQlSRUdfRURJRF9GSUZPX0FERFIsIDAsCisJKTsKKworCXNpaTg2MjBfd3JpdGVfYnVmKGN0eCwg UkVHX0VESURfRklGT19XUl9EQVRBLCAodTggKiljdHgtPmVkaWQsCisJCQkoY3R4LT5lZGlkLT5l eHRlbnNpb25zICsgMSkgKiBFRElEX0xFTkdUSCk7CisKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgs CisJCVJFR19FRElEX0NUUkwsIEJJVF9FRElEX0NUUkxfRURJRF9QUklNRV9WQUxJRAorCQkJfCBC SVRfRURJRF9DVFJMX0VESURfRklGT19BRERSX0FVVE8KKwkJCXwgQklUX0VESURfQ1RSTF9FRElE X01PREVfRU4sCisJCVJFR19JTlRSNV9NQVNLLCBCSVRfSU5UUl9TQ0RUX0NIQU5HRSwKKwkJUkVH X0lOVFI5X01BU0ssIDAKKwkpOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX3h0YWxfc2V0X3Jh dGUoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlzdGF0aWMgY29uc3Qgc3RydWN0IHsKKwkJdW5z aWduZWQgaW50IHJhdGU7CisJCXU4IGRpdjsKKwkJdTggdHAxOworCX0gcmF0ZXNbXSA9IHsKKwkJ eyAxOTIwMCwgMHgwNCwgMHg1MyB9LAorCQl7IDIwMDAwLCAweDA0LCAweDYyIH0sCisJCXsgMjQw MDAsIDB4MDUsIDB4NzUgfSwKKwkJeyAzMDAwMCwgMHgwNiwgMHg5MiB9LAorCQl7IDM4NDAwLCAw eDBjLCAweGJjIH0sCisJfTsKKwl1bnNpZ25lZCBsb25nIHJhdGUgPSBjbGtfZ2V0X3JhdGUoY3R4 LT5jbGtfeHRhbCkgLyAxMDAwOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJ WkUocmF0ZXMpIC0gMTsgKytpKQorCQlpZiAocmF0ZSA8PSByYXRlc1tpXS5yYXRlKQorCQkJYnJl YWs7CisKKwlpZiAocmF0ZSAhPSByYXRlc1tpXS5yYXRlKQorCQlkZXZfZXJyKGN0eC0+ZGV2LCAi eHRhbCBjbG9jayByYXRlKCVsdWtIeikgbm90IHN1cHBvcnRlZCwgc2V0dGluZyBNSEwgZm9yICV1 a0h6LlxuIiwKKwkJCXJhdGUsIHJhdGVzW2ldLnJhdGUpOworCisJc2lpODYyMF93cml0ZShjdHgs IFJFR19ESVZfQ1RMX01BSU4sIHJhdGVzW2ldLmRpdik7CisJc2lpODYyMF93cml0ZShjdHgsIFJF R19IRENQMlhfVFAxLCByYXRlc1tpXS50cDEpOworfQorCitzdGF0aWMgaW50IHNpaTg2MjBfaHdf b24oc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlpbnQgcmV0OworCisJcmV0ID0gcmVndWxhdG9y X2J1bGtfZW5hYmxlKEFSUkFZX1NJWkUoY3R4LT5zdXBwbGllcyksIGN0eC0+c3VwcGxpZXMpOwor CWlmICghcmV0KQorCQlncGlvZF9zZXRfdmFsdWUoY3R4LT5ncGlvX3Jlc2V0LCAxKTsKKwlpZiAo IXJldCkKKwkJcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKGN0eC0+Y2xrX3h0YWwpOworCisJcmV0 dXJuIHJldDsKK30KKworc3RhdGljIGludCBzaWk4NjIwX2h3X29mZihzdHJ1Y3Qgc2lpODYyMCAq Y3R4KQoreworCWludCByZXQ7CisKKwljbGtfZGlzYWJsZV91bnByZXBhcmUoY3R4LT5jbGtfeHRh bCk7CisJZ3Bpb2Rfc2V0X3ZhbHVlKGN0eC0+Z3Bpb19yZXNldCwgMCk7CisJcmV0ID0gcmVndWxh dG9yX2J1bGtfZGlzYWJsZShBUlJBWV9TSVpFKGN0eC0+c3VwcGxpZXMpLCBjdHgtPnN1cHBsaWVz KTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfaHdfcmVzZXQoc3Ry dWN0IHNpaTg2MjAgKmN0eCkKK3sKKwl1c2xlZXBfcmFuZ2UoMTAwMDAsIDIwMDAwKTsKKwlncGlv ZF9zZXRfdmFsdWUoY3R4LT5ncGlvX3Jlc2V0LCAxKTsKKwl1c2xlZXBfcmFuZ2UoNTAwMCwgMjAw MDApOworCWdwaW9kX3NldF92YWx1ZShjdHgtPmdwaW9fcmVzZXQsIDApOworCXVzbGVlcF9yYW5n ZSgxMDAwMCwgMjAwMDApOworCWdwaW9kX3NldF92YWx1ZShjdHgtPmdwaW9fcmVzZXQsIDEpOwor CW1zbGVlcCgzMCk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfY2J1c19yZXNldChzdHJ1Y3Qg c2lpODYyMCAqY3R4KQoreworCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJUkVHX1BXRF9TUlNU LCBCSVRfUFdEX1NSU1RfQ0JVU19SU1QKKwkJCXwgQklUX1BXRF9TUlNUX0NCVVNfUlNUX1NXX0VO LAorCQlSRUdfUFdEX1NSU1QsIEJJVF9QV0RfU1JTVF9DQlVTX1JTVF9TV19FTgorCSk7Cit9CisK K3N0YXRpYyB2b2lkIHNpaTg2MjBfc2V0X2F1dG9fem9uZShzdHJ1Y3Qgc2lpODYyMCAqY3R4KQor eworCWlmIChjdHgtPm1vZGUgIT0gQ01fTUhMMSkgeworCQlzaWk4NjIwX3dyaXRlX3NlcShjdHgs CisJCQlSRUdfVFhfWk9ORV9DVEwxLCAweDAsCisJCQlSRUdfTUhMX1BMTF9DVEwwLCBWQUxfTUhM X1BMTF9DVEwwX0hETUlfQ0xLX1JBVElPXzFYCisJCQkJfCBCSVRfTUhMX1BMTF9DVEwwX0NSWVNU QUxfQ0xLX1NFTAorCQkJCXwgQklUX01ITF9QTExfQ1RMMF9aT05FX01BU0tfT0UKKwkJKTsKKwl9 IGVsc2UgeworCQlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCQlSRUdfVFhfWk9ORV9DVEwxLCBW QUxfVFhfWk9ORV9DVEwxX1RYX1pPTkVfQ1RSTF9NT0RFLAorCQkJUkVHX01ITF9QTExfQ1RMMCwg VkFMX01ITF9QTExfQ1RMMF9IRE1JX0NMS19SQVRJT18xWAorCQkJCXwgQklUX01ITF9QTExfQ1RM MF9aT05FX01BU0tfT0UKKwkJKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfc3RvcF92 aWRlbyhzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXU4IHVuaW5pdGlhbGl6ZWRfdmFyKHZhbCk7 CisKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJFR19UUElfSU5UUl9FTiwgMCwKKwkJUkVH X0hEQ1AyWF9JTlRSMF9NQVNLLCAwLAorCQlSRUdfVFBJX0NPUFBfREFUQTIsIDAsCisJCVJFR19U UElfSU5UUl9TVDAsIH4wLAorCSk7CisKKwlzd2l0Y2ggKGN0eC0+c2lua190eXBlKSB7CisJY2Fz ZSBTSU5LX0RWSToKKwkJdmFsID0gQklUX1RQSV9TQ19SRUdfVE1EU19PRV9QT1dFUl9ET1dOCisJ CQl8IEJJVF9UUElfU0NfVFBJX0FWX01VVEU7CisJCWJyZWFrOworCWNhc2UgU0lOS19IRE1JOgor CQl2YWwgPSBCSVRfVFBJX1NDX1JFR19UTURTX09FX1BPV0VSX0RPV04KKwkJCXwgQklUX1RQSV9T Q19UUElfQVZfTVVURQorCQkJfCBCSVRfVFBJX1NDX1RQSV9PVVRQVVRfTU9ERV8wX0hETUk7CisJ CWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybjsKKwl9CisKKwlzaWk4NjIwX3dyaXRlKGN0eCwg UkVHX1RQSV9TQywgdmFsKTsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9zdGFydF9oZG1pKHN0 cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQlSRUdfUlhf SERNSV9DVFJMMiwgVkFMX1JYX0hETUlfQ1RSTDJfREVGVkFMCisJCQl8IEJJVF9SWF9IRE1JX0NU UkwyX1VTRV9BVl9NVVRFLAorCQlSRUdfVklEX09WUlJELCBCSVRfVklEX09WUlJEX1BQX0FVVE9f RElTQUJMRQorCQkJfCBCSVRfVklEX09WUlJEX00xMDgwUF9PVlJSRCwKKwkJUkVHX1ZJRF9NT0RF LCAwLAorCQlSRUdfTUhMX1RPUF9DVEwsIDB4MSwKKwkJUkVHX01ITFRYX0NUTDYsIDB4YTAsCisJ CVJFR19UUElfSU5QVVQsIFZBTF9UUElfRk9STUFUKFJHQiwgRlVMTCksCisJCVJFR19UUElfT1VU UFVULCBWQUxfVFBJX0ZPUk1BVChSR0IsIEZVTEwpLAorCSk7CisKKwlzaWk4NjIwX210X3dyaXRl X3N0YXQoY3R4LCBNSExfRFNUX1JFRyhMSU5LX01PREUpLAorCQkJTUhMX0RTVF9MTV9DTEtfTU9E RV9OT1JNQUwgfCBNSExfRFNUX0xNX1BBVEhfRU5BQkxFRCk7CisKKwlzaWk4NjIwX3NldF9hdXRv X3pvbmUoY3R4KTsKKworCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfVFBJX1NDLCBCSVRfVFBJX1ND X1RQSV9PVVRQVVRfTU9ERV8wX0hETUkpOworCisJc2lpODYyMF93cml0ZV9idWYoY3R4LCBSRUdf VFBJX0FWSV9DSFNVTSwgY3R4LT5hdmlmLAorCQkJICBBUlJBWV9TSVpFKGN0eC0+YXZpZikpOwor CisJc2lpODYyMF93cml0ZShjdHgsIFJFR19QS1RfRklMVEVSXzAsIDB4YTEsIDB4Mik7Cit9CisK K3N0YXRpYyB2b2lkIHNpaTg2MjBfc3RhcnRfdmlkZW8oc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sK KwlpZiAoY3R4LT5tb2RlIDwgQ01fTUhMMykKKwkJc2lpODYyMF9zdG9wX3ZpZGVvKGN0eCk7CisK Kwlzd2l0Y2ggKGN0eC0+c2lua190eXBlKSB7CisJY2FzZSBTSU5LX0hETUk6CisJCXNpaTg2MjBf c3RhcnRfaGRtaShjdHgpOworCQlicmVhazsKKwljYXNlIFNJTktfRFZJOgorCWRlZmF1bHQ6CisJ CWJyZWFrOworCX0KK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9kaXNhYmxlX2hwZChzdHJ1Y3Qg c2lpODYyMCAqY3R4KQoreworCXNpaTg2MjBfc2V0Yml0cyhjdHgsIFJFR19FRElEX0NUUkwsIEJJ VF9FRElEX0NUUkxfRURJRF9QUklNRV9WQUxJRCwgMCk7CisJc2lpODYyMF93cml0ZV9zZXEoY3R4 LAorCQlSRUdfSFBEX0NUUkwsIEJJVF9IUERfQ1RSTF9IUERfT1VUX09WUl9FTiwKKwkJUkVHX0lO VFI4X01BU0ssIDAKKwkpOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX2VuYWJsZV9ocGQoc3Ry dWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlzaWk4NjIwX3NldGJpdHMoY3R4LCBSRUdfVE1EU19DU1RB VF9QMywKKwkJCUJJVF9UTURTX0NTVEFUX1AzX1NDRFRfQ0xSX0FWSV9ESVMKKwkJCXwgQklUX1RN RFNfQ1NUQVRfUDNfQ0xSX0FWSSwgfjApOworCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJUkVH X0hQRF9DVFJMLCBCSVRfSFBEX0NUUkxfSFBEX09VVF9PVlJfRU4KKwkJCXwgQklUX0hQRF9DVFJM X0hQRF9ISUdILAorCSk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfZW5hYmxlX2dlbjJfd3Jp dGVfYnVyc3Qoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlpZiAoY3R4LT5nZW4yX3dyaXRlX2J1 cnN0KQorCQlyZXR1cm47CisKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJFR19NRFRfUkNW X1RJTUVPVVQsIDEwMCwKKwkJUkVHX01EVF9SQ1ZfQ1RSTCwgQklUX01EVF9SQ1ZfQ1RSTF9NRFRf UkNWX0VOCisJKTsKKwljdHgtPmdlbjJfd3JpdGVfYnVyc3QgPSAxOworfQorCitzdGF0aWMgdm9p ZCBzaWk4NjIwX2Rpc2FibGVfZ2VuMl93cml0ZV9idXJzdChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQor eworCWlmICghY3R4LT5nZW4yX3dyaXRlX2J1cnN0KQorCQlyZXR1cm47CisKKwlzaWk4NjIwX3dy aXRlX3NlcShjdHgsCisJCVJFR19NRFRfWE1JVF9DVFJMLCAwLAorCQlSRUdfTURUX1JDVl9DVFJM LCAwCisJKTsKKwljdHgtPmdlbjJfd3JpdGVfYnVyc3QgPSAwOworfQorCitzdGF0aWMgdm9pZCBz aWk4NjIwX3N0YXJ0X2dlbjJfd3JpdGVfYnVyc3Qoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlz aWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJFR19NRFRfSU5UXzFfTUFTSywgQklUX01EVF9SQ1Zf VElNRU9VVAorCQkJfCBCSVRfTURUX1JDVl9TTV9BQk9SVF9QS1RfUkNWRCB8IEJJVF9NRFRfUkNW X1NNX0VSUk9SCisJCQl8IEJJVF9NRFRfWE1JVF9USU1FT1VUIHwgQklUX01EVF9YTUlUX1NNX0FC T1JUX1BLVF9SQ1ZECisJCQl8IEJJVF9NRFRfWE1JVF9TTV9FUlJPUiwKKwkJUkVHX01EVF9JTlRf MF9NQVNLLCBCSVRfTURUX1hGSUZPX0VNUFRZCisJCQl8IEJJVF9NRFRfSURMRV9BRlRFUl9IQVdC X0RJU0FCTEUKKwkJCXwgQklUX01EVF9SRklGT19EQVRBX1JEWQorCSk7CisJc2lpODYyMF9lbmFi bGVfZ2VuMl93cml0ZV9idXJzdChjdHgpOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX21obF9k aXNjb3ZlcihzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwK KwkJUkVHX0RJU0NfQ1RSTDksIEJJVF9ESVNDX0NUUkw5X1dBS0VfRFJWRkxUCisJCQl8IEJJVF9E SVNDX0NUUkw5X0RJU0NfUFVMU0VfUFJPQ0VFRCwKKwkJUkVHX0RJU0NfQ1RSTDQsIFZBTF9ESVND X0NUUkw0KFZBTF9QVVBfNUssIFZBTF9QVVBfMjBLKSwKKwkJUkVHX0NCVVNfRElTQ19JTlRSMF9N QVNLLCBCSVRfTUhMM19FU1RfSU5UCisJCQl8IEJJVF9NSExfRVNUX0lOVAorCQkJfCBCSVRfTk9U X01ITF9FU1RfSU5UCisJCQl8IEJJVF9DQlVTX01ITDNfRElTQ09OX0lOVAorCQkJfCBCSVRfQ0JV U19NSEwxMl9ESVNDT05fSU5UCisJCQl8IEJJVF9SR05EX1JFQURZX0lOVCwKKwkJUkVHX01ITF9Q TExfQ1RMMCwgVkFMX01ITF9QTExfQ1RMMF9IRE1JX0NMS19SQVRJT18xWAorCQkJfCBCSVRfTUhM X1BMTF9DVEwwX0NSWVNUQUxfQ0xLX1NFTAorCQkJfCBCSVRfTUhMX1BMTF9DVEwwX1pPTkVfTUFT S19PRSwKKwkJUkVHX01ITF9EUF9DVEwwLCBCSVRfTUhMX0RQX0NUTDBfRFBfT0UKKwkJCXwgQklU X01ITF9EUF9DVEwwX1RYX09FX09WUiwKKwkJUkVHX00zX0NUUkwsIFZBTF9NM19DVFJMX01ITDNf VkFMVUUsCisJCVJFR19NSExfRFBfQ1RMMSwgMHhBMiwKKwkJUkVHX01ITF9EUF9DVEwyLCAweDAz LAorCQlSRUdfTUhMX0RQX0NUTDMsIDB4MzUsCisJCVJFR19NSExfRFBfQ1RMNSwgMHgwMiwKKwkJ UkVHX01ITF9EUF9DVEw2LCAweDAyLAorCQlSRUdfTUhMX0RQX0NUTDcsIDB4MDMsCisJCVJFR19D T0NfQ1RMQywgMHhGRiwKKwkJUkVHX0RQRCwgQklUX0RQRF9QV1JPTl9QTEwgfCBCSVRfRFBEX1BE TlRYMTIKKwkJCXwgQklUX0RQRF9PU0NfRU4gfCBCSVRfRFBEX1BXUk9OX0hTSUMsCisJCVJFR19D T0NfSU5UUl9NQVNLLCBCSVRfQ09DX1BMTF9MT0NLX1NUQVRVU19DSEFOR0UKKwkJCXwgQklUX0NP Q19DQUxJQlJBVElPTl9ET05FLAorCQlSRUdfQ0JVU19JTlRfMV9NQVNLLCBCSVRfQ0JVU19NU0Nf QUJPUlRfUkNWRAorCQkJfCBCSVRfQ0JVU19DTURfQUJPUlQsCisJCVJFR19DQlVTX0lOVF8wX01B U0ssIEJJVF9DQlVTX01TQ19NVF9ET05FCisJCQl8IEJJVF9DQlVTX0hQRF9DSEcKKwkJCXwgQklU X0NCVVNfTVNDX01SX1dSSVRFX1NUQVQKKwkJCXwgQklUX0NCVVNfTVNDX01SX01TQ19NU0cKKwkJ CXwgQklUX0NCVVNfTVNDX01SX1dSSVRFX0JVUlNUCisJCQl8IEJJVF9DQlVTX01TQ19NUl9TRVRf SU5UCisJCQl8IEJJVF9DQlVTX01TQ19NVF9ET05FX05BQ0sKKwkpOworfQorCitzdGF0aWMgdm9p ZCBzaWk4NjIwX3BlZXJfc3BlY2lmaWNfaW5pdChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCWlm IChjdHgtPm1vZGUgPT0gQ01fTUhMMykKKwkJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQkJUkVH X1NZU19DVFJMMSwgQklUX1NZU19DVFJMMV9CTE9DS19ERENfQllfSFBELAorCQkJUkVHX0VNU0NJ TlRSTUFTSzEsCisJCQkJQklUX0VNU0NJTlRSMV9FTVNDX1RSQUlOSU5HX0NPTU1BX0VSUgorCQkp OworCWVsc2UKKwkJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQkJUkVHX0hEQ1AyWF9JTlRSMF9N QVNLLCAweDAwLAorCQkJUkVHX0VNU0NJTlRSTUFTSzEsIDB4MDAsCisJCQlSRUdfSERDUDJYX0lO VFIwLCAweEZGLAorCQkJUkVHX0lOVFIxLCAweEZGLAorCQkJUkVHX1NZU19DVFJMMSwgQklUX1NZ U19DVFJMMV9CTE9DS19ERENfQllfSFBECisJCQkJfCBCSVRfU1lTX0NUUkwxX1RYX0NUUkxfSERN SQorCQkpOworfQorCisjZGVmaW5lIFNJSTg2MjBfTUhMX1ZFUlNJT04JCQkweDMyCisjZGVmaW5l IFNJSTg2MjBfU0NSQVRDSFBBRF9TSVpFCQkJMTYKKyNkZWZpbmUgU0lJODYyMF9JTlRfU1RBVF9T SVpFCQkJMHgzMworCitzdGF0aWMgdm9pZCBzaWk4NjIwX3NldF9kZXZfY2FwKHN0cnVjdCBzaWk4 NjIwICpjdHgpCit7CisJc3RhdGljIGNvbnN0IHU4IGRldmNhcFtNSExfRENBUF9TSVpFXSA9IHsK KwkJW01ITF9EQ0FQX01ITF9WRVJTSU9OXSA9IFNJSTg2MjBfTUhMX1ZFUlNJT04sCisJCVtNSExf RENBUF9DQVRdID0gTUhMX0RDQVBfQ0FUX1NPVVJDRSB8IE1ITF9EQ0FQX0NBVF9QT1dFUiwKKwkJ W01ITF9EQ0FQX0FET1BURVJfSURfSF0gPSAweDAxLAorCQlbTUhMX0RDQVBfQURPUFRFUl9JRF9M XSA9IDB4NDEsCisJCVtNSExfRENBUF9WSURfTElOS19NT0RFXSA9IE1ITF9EQ0FQX1ZJRF9MSU5L X1JHQjQ0NAorCQkJfCBNSExfRENBUF9WSURfTElOS19QUElYRUwKKwkJCXwgTUhMX0RDQVBfVklE X0xJTktfMTZCUFAsCisJCVtNSExfRENBUF9BVURfTElOS19NT0RFXSA9IE1ITF9EQ0FQX0FVRF9M SU5LXzJDSCwKKwkJW01ITF9EQ0FQX1ZJREVPX1RZUEVdID0gTUhMX0RDQVBfVlRfR1JBUEhJQ1Ms CisJCVtNSExfRENBUF9MT0dfREVWX01BUF0gPSBNSExfRENBUF9MRF9HVUksCisJCVtNSExfRENB UF9CQU5EV0lEVEhdID0gMHgwZiwKKwkJW01ITF9EQ0FQX0ZFQVRVUkVfRkxBR10gPSBNSExfRENB UF9GRUFUVVJFX1JDUF9TVVBQT1JUCisJCQl8IE1ITF9EQ0FQX0ZFQVRVUkVfUkFQX1NVUFBPUlQK KwkJCXwgTUhMX0RDQVBfRkVBVFVSRV9TUF9TVVBQT1JULAorCQlbTUhMX0RDQVBfU0NSQVRDSFBB RF9TSVpFXSA9IFNJSTg2MjBfU0NSQVRDSFBBRF9TSVpFLAorCQlbTUhMX0RDQVBfSU5UX1NUQVRf U0laRV0gPSBTSUk4NjIwX0lOVF9TVEFUX1NJWkUsCisJfTsKKwlzdGF0aWMgY29uc3QgdTggeGRj YXBbTUhMX1hEQ19TSVpFXSA9IHsKKwkJW01ITF9YRENfRUNCVVNfU1BFRURTXSA9IE1ITF9YRENf RUNCVVNfU18wNzUKKwkJCXwgTUhMX1hEQ19FQ0JVU19TXzhCSVQsCisJCVtNSExfWERDX1RNRFNf U1BFRURTXSA9IE1ITF9YRENfVE1EU18xNTAKKwkJCXwgTUhMX1hEQ19UTURTXzMwMCB8IE1ITF9Y RENfVE1EU182MDAsCisJCVtNSExfWERDX0VDQlVTX1JPTEVTXSA9IE1ITF9YRENfREVWX0hPU1Qs CisJCVtNSExfWERDX0xPR19ERVZfTUFQWF0gPSBNSExfWERDX0xEX1BIT05FLAorCX07CisKKwlz aWk4NjIwX3dyaXRlX2J1ZihjdHgsIFJFR19NSExfREVWQ0FQXzAsIGRldmNhcCwgQVJSQVlfU0la RShkZXZjYXApKTsKKwlzaWk4NjIwX3dyaXRlX2J1ZihjdHgsIFJFR19NSExfRVhUREVWQ0FQXzAs IHhkY2FwLCBBUlJBWV9TSVpFKHhkY2FwKSk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfbWhs X2luaXQoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJ CVJFR19ESVNDX0NUUkw0LCBWQUxfRElTQ19DVFJMNChWQUxfUFVQX09GRiwgVkFMX1BVUF8yMEsp LAorCQlSRUdfQ0JVU19NU0NfQ09NUEFUX0NUUkwsCisJCQlCSVRfQ0JVU19NU0NfQ09NUEFUX0NU UkxfWERFVkNBUF9FTiwKKwkpOworCisJc2lpODYyMF9wZWVyX3NwZWNpZmljX2luaXQoY3R4KTsK KworCXNpaTg2MjBfZGlzYWJsZV9ocGQoY3R4KTsKKworCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwK KwkJUkVHX0VESURfQ1RSTCwgQklUX0VESURfQ1RSTF9FRElEX0ZJRk9fQUREUl9BVVRPLAorCQlS RUdfRElTQ19DVFJMOSwgQklUX0RJU0NfQ1RSTDlfV0FLRV9EUlZGTFQKKwkJCXwgQklUX0RJU0Nf Q1RSTDlfV0FLRV9QVUxTRV9CWVBBU1MsCisJCVJFR19UTURTMF9DQ1RSTDEsIDB4OTAsCisJCVJF R19UTURTX0NMS19FTiwgMHgwMSwKKwkJUkVHX1RNRFNfQ0hfRU4sIDB4MTEsCisJCVJFR19CR1Jf QklBUywgMHg4NywKKwkJUkVHX0FMSUNFMF9aT05FX0NUUkwsIDB4RTgsCisJCVJFR19BTElDRTBf TU9ERV9DVFJMLCAweDA0LAorCSk7CisJc2lpODYyMF9zZXRiaXRzKGN0eCwgUkVHX0xNX0REQywg QklUX0xNX0REQ19TV19UUElfRU5fRElTQUJMRUQsIDApOworCXNpaTg2MjBfd3JpdGVfc2VxKGN0 eCwKKwkJUkVHX1RQSV9IV19PUFQzLCAweDc2LAorCQlSRUdfVE1EU19DQ1RSTCwgQklUX1RNRFNf Q0NUUkxfVE1EU19PRSwKKwkJUkVHX1RQSV9EVERfQjIsIDc5LAorCSk7CisJc2lpODYyMF9zZXRf ZGV2X2NhcChjdHgpOworCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJUkVHX01EVF9YTUlUX1RJ TUVPVVQsIDEwMCwKKwkJUkVHX01EVF9YTUlUX0NUUkwsIDB4MDMsCisJCVJFR19NRFRfWEZJRk9f U1RBVCwgMHgwMCwKKwkJUkVHX01EVF9SQ1ZfVElNRU9VVCwgMTAwLAorCQlSRUdfQ0JVU19MSU5L X0NUUkxfOCwgMHgxRCwKKwkpOworCisJc2lpODYyMF9zdGFydF9nZW4yX3dyaXRlX2J1cnN0KGN0 eCk7CisJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQlSRUdfQklTVF9DVFJMLCAweDAwLAorCQlS RUdfQ09DX0NUTDEsIDB4MTAsCisJCVJFR19DT0NfQ1RMMiwgMHgxOCwKKwkJUkVHX0NPQ19DVExG LCAweDA3LAorCQlSRUdfQ09DX0NUTDExLCAweEY4LAorCQlSRUdfQ09DX0NUTDE3LCAweDYxLAor CQlSRUdfQ09DX0NUTDE4LCAweDQ2LAorCQlSRUdfQ09DX0NUTDE5LCAweDE1LAorCQlSRUdfQ09D X0NUTDFBLCAweDAxLAorCQlSRUdfTUhMX0NPQ19DVEwzLCBCSVRfTUhMX0NPQ19DVEwzX0NPQ19B RUNIT19FTiwKKwkJUkVHX01ITF9DT0NfQ1RMNCwgMHgyRCwKKwkJUkVHX01ITF9DT0NfQ1RMNSwg MHhGOSwKKwkJUkVHX01TQ19IRUFSVEJFQVRfQ1RSTCwgMHgyNywKKwkpOworCXNpaTg2MjBfZGlz YWJsZV9nZW4yX3dyaXRlX2J1cnN0KGN0eCk7CisKKwkvKiBjdXJyZW50bHkgTUhMMyBpcyBub3Qg c3VwcG9ydGVkLCBzbyB3ZSBmb3JjZSB2ZXJzaW9uIHRvIDAgKi8KKwlzaWk4NjIwX210X3dyaXRl X3N0YXQoY3R4LCBNSExfRFNUX1JFRyhWRVJTSU9OKSwgMCk7CisJc2lpODYyMF9tdF93cml0ZV9z dGF0KGN0eCwgTUhMX0RTVF9SRUcoQ09OTkVDVEVEX1JEWSksCisJCQkgICAgICBNSExfRFNUX0NP Tk5fRENBUF9SRFkgfCBNSExfRFNUX0NPTk5fWERFVkNBUFBfU1VQUAorCQkJICAgICAgfCBNSExf RFNUX0NPTk5fUE9XX1NUQVQpOworCXNpaTg2MjBfbXRfc2V0X2ludChjdHgsIE1ITF9JTlRfUkVH KFJDSEFOR0UpLCBNSExfSU5UX1JDX0RDQVBfQ0hHKTsKK30KKworc3RhdGljIHZvaWQgc2lpODYy MF9zZXRfbW9kZShzdHJ1Y3Qgc2lpODYyMCAqY3R4LCBlbnVtIHNpaTg2MjBfbW9kZSBtb2RlKQor eworCWlmIChjdHgtPm1vZGUgPT0gbW9kZSkKKwkJcmV0dXJuOworCisJY3R4LT5tb2RlID0gbW9k ZTsKKworCXN3aXRjaCAobW9kZSkgeworCWNhc2UgQ01fTUhMMToKKwkJc2lpODYyMF93cml0ZV9z ZXEoY3R4LAorCQkJUkVHX0NCVVNfTVNDX0NPTVBBVF9DVFJMLCAweDAyLAorCQkJUkVHX00zX0NU UkwsIFZBTF9NM19DVFJMX01ITDFfMl9WQUxVRSwKKwkJCVJFR19EUEQsIEJJVF9EUERfUFdST05f UExMIHwgQklUX0RQRF9QRE5UWDEyCisJCQkJfCBCSVRfRFBEX09TQ19FTiwKKwkJCVJFR19DT0Nf SU5UUl9NQVNLLCAwCisJCSk7CisJCWJyZWFrOworCWNhc2UgQ01fTUhMMzoKKwkJc2lpODYyMF93 cml0ZV9zZXEoY3R4LAorCQkJUkVHX00zX0NUUkwsIFZBTF9NM19DVFJMX01ITDNfVkFMVUUsCisJ CQlSRUdfQ09DX0NUTDAsIDB4NDAsCisJCQlSRUdfTUhMX0NPQ19DVEwxLCAweDA3CisJCSk7CisJ CWJyZWFrOworCWNhc2UgQ01fRElTQ09OTkVDVEVEOgorCQlicmVhazsKKwlkZWZhdWx0OgorCQlk ZXZfZXJyKGN0eC0+ZGV2LCAiJXMgbW9kZSAlZCBub3Qgc3VwcG9ydGVkXG4iLCBfX2Z1bmNfXywg bW9kZSk7CisJCWJyZWFrOworCX07CisKKwlzaWk4NjIwX3NldF9hdXRvX3pvbmUoY3R4KTsKKwor CWlmIChtb2RlICE9IENNX01ITDEpCisJCXJldHVybjsKKworCXNpaTg2MjBfd3JpdGVfc2VxKGN0 eCwKKwkJUkVHX01ITF9EUF9DVEwwLCAweEJDLAorCQlSRUdfTUhMX0RQX0NUTDEsIDB4QkIsCisJ CVJFR19NSExfRFBfQ1RMMywgMHg0OCwKKwkJUkVHX01ITF9EUF9DVEw1LCAweDM5LAorCQlSRUdf TUhMX0RQX0NUTDIsIDB4MkEsCisJCVJFR19NSExfRFBfQ1RMNiwgMHgyQSwKKwkJUkVHX01ITF9E UF9DVEw3LCAweDA4CisJKTsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9kaXNjb25uZWN0KHN0 cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc2lpODYyMF9kaXNhYmxlX2dlbjJfd3JpdGVfYnVyc3Qo Y3R4KTsKKwlzaWk4NjIwX3N0b3BfdmlkZW8oY3R4KTsKKwltc2xlZXAoNTApOworCXNpaTg2MjBf Y2J1c19yZXNldChjdHgpOworCXNpaTg2MjBfc2V0X21vZGUoY3R4LCBDTV9ESVNDT05ORUNURUQp OworCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJUkVHX0NPQ19DVEwwLCAweDQwLAorCQlSRUdf Q0JVUzNfQ05WVCwgMHg4NCwKKwkJUkVHX0NPQ19DVEwxNCwgMHgwMCwKKwkJUkVHX0NPQ19DVEww LCAweDQwLAorCQlSRUdfSFJYQ1RSTDMsIDB4MDcsCisJCVJFR19NSExfUExMX0NUTDAsIFZBTF9N SExfUExMX0NUTDBfSERNSV9DTEtfUkFUSU9fMVgKKwkJCXwgQklUX01ITF9QTExfQ1RMMF9DUllT VEFMX0NMS19TRUwKKwkJCXwgQklUX01ITF9QTExfQ1RMMF9aT05FX01BU0tfT0UsCisJCVJFR19N SExfRFBfQ1RMMCwgQklUX01ITF9EUF9DVEwwX0RQX09FCisJCQl8IEJJVF9NSExfRFBfQ1RMMF9U WF9PRV9PVlIsCisJCVJFR19NSExfRFBfQ1RMMSwgMHhCQiwKKwkJUkVHX01ITF9EUF9DVEwzLCAw eDQ4LAorCQlSRUdfTUhMX0RQX0NUTDUsIDB4M0YsCisJCVJFR19NSExfRFBfQ1RMMiwgMHgyRiwK KwkJUkVHX01ITF9EUF9DVEw2LCAweDJBLAorCQlSRUdfTUhMX0RQX0NUTDcsIDB4MDMKKwkpOwor CXNpaTg2MjBfZGlzYWJsZV9ocGQoY3R4KTsKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJF R19NM19DVFJMLCBWQUxfTTNfQ1RSTF9NSEwzX1ZBTFVFLAorCQlSRUdfTUhMX0NPQ19DVEwxLCAw eDA3LAorCQlSRUdfRElTQ19DVFJMNCwgVkFMX0RJU0NfQ1RSTDQoVkFMX1BVUF9PRkYsIFZBTF9Q VVBfMjBLKSwKKwkJUkVHX0RJU0NfQ1RSTDgsIDB4MDAsCisJCVJFR19ESVNDX0NUUkw5LCBCSVRf RElTQ19DVFJMOV9XQUtFX0RSVkZMVAorCQkJfCBCSVRfRElTQ19DVFJMOV9XQUtFX1BVTFNFX0JZ UEFTUywKKwkJUkVHX0lOVF9DVFJMLCAweDAwLAorCQlSRUdfTVNDX0hFQVJUQkVBVF9DVFJMLCAw eDI3LAorCQlSRUdfRElTQ19DVFJMMSwgMHgyNSwKKwkJUkVHX0NCVVNfRElTQ19JTlRSMCwgKHU4 KX5CSVRfUkdORF9SRUFEWV9JTlQsCisJCVJFR19DQlVTX0RJU0NfSU5UUjBfTUFTSywgQklUX1JH TkRfUkVBRFlfSU5ULAorCQlSRUdfTURUX0lOVF8xLCAweGZmLAorCQlSRUdfTURUX0lOVF8xX01B U0ssIDB4MDAsCisJCVJFR19NRFRfSU5UXzAsIDB4ZmYsCisJCVJFR19NRFRfSU5UXzBfTUFTSywg MHgwMCwKKwkJUkVHX0NPQ19JTlRSLCAweGZmLAorCQlSRUdfQ09DX0lOVFJfTUFTSywgMHgwMCwK KwkJUkVHX1RSWElOVEgsIDB4ZmYsCisJCVJFR19UUlhJTlRNSCwgMHgwMCwKKwkJUkVHX0NCVVNf SU5UXzAsIDB4ZmYsCisJCVJFR19DQlVTX0lOVF8wX01BU0ssIDB4MDAsCisJCVJFR19DQlVTX0lO VF8xLCAweGZmLAorCQlSRUdfQ0JVU19JTlRfMV9NQVNLLCAweDAwLAorCQlSRUdfRU1TQ0lOVFIs IDB4ZmYsCisJCVJFR19FTVNDSU5UUk1BU0ssIDB4MDAsCisJCVJFR19FTVNDSU5UUjEsIDB4ZmYs CisJCVJFR19FTVNDSU5UUk1BU0sxLCAweDAwLAorCQlSRUdfSU5UUjgsIDB4ZmYsCisJCVJFR19J TlRSOF9NQVNLLCAweDAwLAorCQlSRUdfVFBJX0lOVFJfU1QwLCAweGZmLAorCQlSRUdfVFBJX0lO VFJfRU4sIDB4MDAsCisJCVJFR19IRENQMlhfSU5UUjAsIDB4ZmYsCisJCVJFR19IRENQMlhfSU5U UjBfTUFTSywgMHgwMCwKKwkJUkVHX0lOVFI5LCAweGZmLAorCQlSRUdfSU5UUjlfTUFTSywgMHgw MCwKKwkJUkVHX0lOVFIzLCAweGZmLAorCQlSRUdfSU5UUjNfTUFTSywgMHgwMCwKKwkJUkVHX0lO VFI1LCAweGZmLAorCQlSRUdfSU5UUjVfTUFTSywgMHgwMCwKKwkJUkVHX0lOVFIyLCAweGZmLAor CQlSRUdfSU5UUjJfTUFTSywgMHgwMCwKKwkpOworCW1lbXNldChjdHgtPnN0YXQsIDAsIHNpemVv ZihjdHgtPnN0YXQpKTsKKwltZW1zZXQoY3R4LT54c3RhdCwgMCwgc2l6ZW9mKGN0eC0+eHN0YXQp KTsKKwltZW1zZXQoY3R4LT5kZXZjYXAsIDAsIHNpemVvZihjdHgtPmRldmNhcCkpOworCW1lbXNl dChjdHgtPnhkZXZjYXAsIDAsIHNpemVvZihjdHgtPnhkZXZjYXApKTsKKwljdHgtPmNidXNfc3Rh dHVzID0gMDsKKwljdHgtPnNpbmtfdHlwZSA9IFNJTktfTk9ORTsKKwlrZnJlZShjdHgtPmVkaWQp OworCWN0eC0+ZWRpZCA9IE5VTEw7CisJc2lpODYyMF9tdF9jbGVhbnVwKGN0eCk7Cit9CisKK3N0 YXRpYyB2b2lkIHNpaTg2MjBfbWhsX2Rpc2Nvbm5lY3RlZChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQor eworCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJUkVHX0RJU0NfQ1RSTDQsIFZBTF9ESVNDX0NU Ukw0KFZBTF9QVVBfT0ZGLCBWQUxfUFVQXzIwSyksCisJCVJFR19DQlVTX01TQ19DT01QQVRfQ1RS TCwKKwkJCUJJVF9DQlVTX01TQ19DT01QQVRfQ1RSTF9YREVWQ0FQX0VOCisJKTsKKwlzaWk4NjIw X2Rpc2Nvbm5lY3QoY3R4KTsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9pcnFfZGlzYyhzdHJ1 Y3Qgc2lpODYyMCAqY3R4KQoreworCXU4IHN0YXQgPSBzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX0NC VVNfRElTQ19JTlRSMCk7CisKKwlpZiAoc3RhdCAmIFZBTF9DQlVTX01ITF9ESVNDT04pCisJCXNp aTg2MjBfbWhsX2Rpc2Nvbm5lY3RlZChjdHgpOworCisJaWYgKHN0YXQgJiBCSVRfUkdORF9SRUFE WV9JTlQpIHsKKwkJdTggc3RhdDIgPSBzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX0RJU0NfU1RBVDIp OworCisJCWlmICgoc3RhdDIgJiBNU0tfRElTQ19TVEFUMl9SR05EKSA9PSBWQUxfUkdORF8xSykK KwkJCXNpaTg2MjBfbWhsX2Rpc2NvdmVyKGN0eCk7CisJCWVsc2UgeworCQkJc2lpODYyMF93cml0 ZV9zZXEoY3R4LAorCQkJCVJFR19ESVNDX0NUUkw5LCBCSVRfRElTQ19DVFJMOV9XQUtFX0RSVkZM VAorCQkJCQl8IEJJVF9ESVNDX0NUUkw5X05PTUhMX0VTVAorCQkJCQl8IEJJVF9ESVNDX0NUUkw5 X1dBS0VfUFVMU0VfQllQQVNTLAorCQkJCVJFR19DQlVTX0RJU0NfSU5UUjBfTUFTSywgQklUX1JH TkRfUkVBRFlfSU5UCisJCQkJCXwgQklUX0NCVVNfTUhMM19ESVNDT05fSU5UCisJCQkJCXwgQklU X0NCVVNfTUhMMTJfRElTQ09OX0lOVAorCQkJCQl8IEJJVF9OT1RfTUhMX0VTVF9JTlQKKwkJCSk7 CisJCX0KKwl9CisJaWYgKHN0YXQgJiBCSVRfTUhMX0VTVF9JTlQpCisJCXNpaTg2MjBfbWhsX2lu aXQoY3R4KTsKKworCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfQ0JVU19ESVNDX0lOVFIwLCBzdGF0 KTsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9pcnFfZzJ3YihzdHJ1Y3Qgc2lpODYyMCAqY3R4 KQoreworCXU4IHN0YXQgPSBzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX01EVF9JTlRfMCk7CisKKwlp ZiAoc3RhdCAmIEJJVF9NRFRfSURMRV9BRlRFUl9IQVdCX0RJU0FCTEUpCisJCWRldl9kYmcoY3R4 LT5kZXYsICJIQVdCIGlkbGVcbiIpOworCisJc2lpODYyMF93cml0ZShjdHgsIFJFR19NRFRfSU5U XzAsIHN0YXQpOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX3N0YXR1c19jaGFuZ2VkX2RjYXAo c3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlpZiAoY3R4LT5zdGF0W01ITF9EU1RfQ09OTkVDVEVE X1JEWV0gJiBNSExfRFNUX0NPTk5fRENBUF9SRFkpIHsKKwkJc2lpODYyMF9zZXRfbW9kZShjdHgs IENNX01ITDEpOworCQlzaWk4NjIwX3BlZXJfc3BlY2lmaWNfaW5pdChjdHgpOworCQlzaWk4NjIw X3dyaXRlKGN0eCwgUkVHX0lOVFI5X01BU0ssIEJJVF9JTlRSOV9ERVZDQVBfRE9ORQorCQkJICAg ICAgIHwgQklUX0lOVFI5X0VESURfRE9ORSB8IEJJVF9JTlRSOV9FRElEX0VSUk9SKTsKKwl9Cit9 CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfc3RhdHVzX2NoYW5nZWRfcGF0aChzdHJ1Y3Qgc2lpODYy MCAqY3R4KQoreworCWlmIChjdHgtPnN0YXRbTUhMX0RTVF9MSU5LX01PREVdICYgTUhMX0RTVF9M TV9QQVRIX0VOQUJMRUQpIHsKKwkJc2lpODYyMF9tdF93cml0ZV9zdGF0KGN0eCwgTUhMX0RTVF9S RUcoTElOS19NT0RFKSwKKwkJCQkgICAgICBNSExfRFNUX0xNX0NMS19NT0RFX05PUk1BTAorCQkJ CSAgICAgIHwgTUhMX0RTVF9MTV9QQVRIX0VOQUJMRUQpOworCQlzaWk4NjIwX210X3JlYWRfZGV2 Y2FwKGN0eCwgZmFsc2UpOworCX0gZWxzZSB7CisJCXNpaTg2MjBfbXRfd3JpdGVfc3RhdChjdHgs IE1ITF9EU1RfUkVHKExJTktfTU9ERSksCisJCQkJICAgICAgTUhMX0RTVF9MTV9DTEtfTU9ERV9O T1JNQUwpOworCX0KK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9tc2NfbXJfd3JpdGVfc3RhdChz dHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXU4IHN0W01ITF9EU1RfU0laRV0sIHhzdFtNSExfWERT X1NJWkVdOworCisJc2lpODYyMF9yZWFkX2J1ZihjdHgsIFJFR19NSExfU1RBVF8wLCBzdCwgTUhM X0RTVF9TSVpFKTsKKwlzaWk4NjIwX3JlYWRfYnVmKGN0eCwgUkVHX01ITF9FWFRTVEFUXzAsIHhz dCwgTUhMX1hEU19TSVpFKTsKKworCXNpaTg2MjBfdXBkYXRlX2FycmF5KGN0eC0+c3RhdCwgc3Qs IE1ITF9EU1RfU0laRSk7CisJc2lpODYyMF91cGRhdGVfYXJyYXkoY3R4LT54c3RhdCwgeHN0LCBN SExfWERTX1NJWkUpOworCisJaWYgKHN0W01ITF9EU1RfQ09OTkVDVEVEX1JEWV0gJiBNSExfRFNU X0NPTk5fRENBUF9SRFkpCisJCXNpaTg2MjBfc3RhdHVzX2NoYW5nZWRfZGNhcChjdHgpOworCisJ aWYgKHN0W01ITF9EU1RfTElOS19NT0RFXSAmIE1ITF9EU1RfTE1fUEFUSF9FTkFCTEVEKQorCQlz aWk4NjIwX3N0YXR1c19jaGFuZ2VkX3BhdGgoY3R4KTsKK30KKworc3RhdGljIHZvaWQgc2lpODYy MF9tc2NfbXJfc2V0X2ludChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXU4IGludHNbTUhMX0lO VF9TSVpFXTsKKworCXNpaTg2MjBfcmVhZF9idWYoY3R4LCBSRUdfTUhMX0lOVF8wLCBpbnRzLCBN SExfSU5UX1NJWkUpOworCXNpaTg2MjBfd3JpdGVfYnVmKGN0eCwgUkVHX01ITF9JTlRfMCwgaW50 cywgTUhMX0lOVF9TSVpFKTsKK30KKworc3RhdGljIHN0cnVjdCBzaWk4NjIwX210X21zZyAqc2lp ODYyMF9tc2NfbXNnX2ZpcnN0KHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc3RydWN0IGRldmlj ZSAqZGV2ID0gY3R4LT5kZXY7CisKKwlpZiAobGlzdF9lbXB0eSgmY3R4LT5tdF9xdWV1ZSkpIHsK KwkJZGV2X2VycihkZXYsICJ1bmV4cGVjdGVkIE1TQyBNVCByZXNwb25zZVxuIik7CisJCXJldHVy biBOVUxMOworCX0KKworCXJldHVybiBsaXN0X2ZpcnN0X2VudHJ5KCZjdHgtPm10X3F1ZXVlLCBz dHJ1Y3Qgc2lpODYyMF9tdF9tc2csIG5vZGUpOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX21z Y19tdF9kb25lKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc3RydWN0IHNpaTg2MjBfbXRfbXNn ICptc2cgPSBzaWk4NjIwX21zY19tc2dfZmlyc3QoY3R4KTsKKworCWlmICghbXNnKQorCQlyZXR1 cm47CisKKwltc2ctPnJldCA9IHNpaTg2MjBfcmVhZGIoY3R4LCBSRUdfTVNDX01UX1JDVkRfREFU QTApOworCWN0eC0+bXRfc3RhdGUgPSBNVF9TVEFURV9ET05FOworfQorCitzdGF0aWMgdm9pZCBz aWk4NjIwX21zY19tcl9tc2NfbXNnKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc3RydWN0IHNp aTg2MjBfbXRfbXNnICptc2cgPSBzaWk4NjIwX21zY19tc2dfZmlyc3QoY3R4KTsKKwl1OCBidWZb Ml07CisKKwlpZiAoIW1zZykKKwkJcmV0dXJuOworCisJc2lpODYyMF9yZWFkX2J1ZihjdHgsIFJF R19NU0NfTVJfTVNDX01TR19SQ1ZEXzFTVF9EQVRBLCBidWYsIDIpOworCisJc3dpdGNoIChidWZb MF0pIHsKKwljYXNlIE1ITF9NU0NfTVNHX1JBUEs6CisJCW1zZy0+cmV0ID0gYnVmWzFdOworCQlj dHgtPm10X3N0YXRlID0gTVRfU1RBVEVfRE9ORTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJZGV2 X2VycihjdHgtPmRldiwgIiVzIG1lc3NhZ2UgdHlwZSAlZCwlZCBub3Qgc3VwcG9ydGVkIiwKKwkJ CV9fZnVuY19fLCBidWZbMF0sIGJ1ZlsxXSk7CisJfQorfQorCitzdGF0aWMgdm9pZCBzaWk4NjIw X2lycV9tc2Moc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwl1OCBzdGF0ID0gc2lpODYyMF9yZWFk YihjdHgsIFJFR19DQlVTX0lOVF8wKTsKKworCWlmIChzdGF0ICYgfkJJVF9DQlVTX0hQRF9DSEcp CisJCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfQ0JVU19JTlRfMCwgc3RhdCAmIH5CSVRfQ0JVU19I UERfQ0hHKTsKKworCWlmIChzdGF0ICYgQklUX0NCVVNfSFBEX0NIRykgeworCQl1OCBjYnVzX3N0 YXQgPSBzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX0NCVVNfU1RBVFVTKTsKKworCQlpZiAoKGNidXNf c3RhdCBeIGN0eC0+Y2J1c19zdGF0dXMpICYgQklUX0NCVVNfU1RBVFVTX0NCVVNfSFBEKSB7CisJ CQlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0NCVVNfSU5UXzAsIEJJVF9DQlVTX0hQRF9DSEcpOwor CQl9IGVsc2UgeworCQkJc3RhdCBePSBCSVRfQ0JVU19TVEFUVVNfQ0JVU19IUEQ7CisJCQljYnVz X3N0YXQgXj0gQklUX0NCVVNfU1RBVFVTX0NCVVNfSFBEOworCQl9CisJCWN0eC0+Y2J1c19zdGF0 dXMgPSBjYnVzX3N0YXQ7CisJfQorCisJaWYgKHN0YXQgJiBCSVRfQ0JVU19NU0NfTVJfV1JJVEVf U1RBVCkKKwkJc2lpODYyMF9tc2NfbXJfd3JpdGVfc3RhdChjdHgpOworCisJaWYgKHN0YXQgJiBC SVRfQ0JVU19NU0NfTVJfU0VUX0lOVCkKKwkJc2lpODYyMF9tc2NfbXJfc2V0X2ludChjdHgpOwor CisJaWYgKHN0YXQgJiBCSVRfQ0JVU19NU0NfTVRfRE9ORSkKKwkJc2lpODYyMF9tc2NfbXRfZG9u ZShjdHgpOworCisJaWYgKHN0YXQgJiBCSVRfQ0JVU19NU0NfTVJfTVNDX01TRykKKwkJc2lpODYy MF9tc2NfbXJfbXNjX21zZyhjdHgpOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX2lycV9jb2Mo c3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwl1OCBzdGF0ID0gc2lpODYyMF9yZWFkYihjdHgsIFJF R19DT0NfSU5UUik7CisKKwlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0NPQ19JTlRSLCBzdGF0KTsK K30KKworc3RhdGljIHZvaWQgc2lpODYyMF9pcnFfbWVycihzdHJ1Y3Qgc2lpODYyMCAqY3R4KQor eworCXU4IHN0YXQgPSBzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX0NCVVNfSU5UXzEpOworCisJc2lp ODYyMF93cml0ZShjdHgsIFJFR19DQlVTX0lOVF8xLCBzdGF0KTsKK30KKworc3RhdGljIHZvaWQg c2lpODYyMF9pcnFfZWRpZChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXU4IHN0YXQgPSBzaWk4 NjIwX3JlYWRiKGN0eCwgUkVHX0lOVFI5KTsKKworCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfSU5U UjksIHN0YXQpOworCisJaWYgKHN0YXQgJiBCSVRfSU5UUjlfREVWQ0FQX0RPTkUpCisJCWN0eC0+ bXRfc3RhdGUgPSBNVF9TVEFURV9ET05FOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX3NjZHRf aGlnaChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJ UkVHX0lOVFI4X01BU0ssIEJJVF9DRUFfTkVXX0FWSSB8IEJJVF9DRUFfTkVXX1ZTSSwKKwkJUkVH X1RQSV9TQywgQklUX1RQSV9TQ19UUElfT1VUUFVUX01PREVfMF9IRE1JLAorCSk7Cit9CisKK3N0 YXRpYyB2b2lkIHNpaTg2MjBfc2NkdF9sb3coc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlzaWk4 NjIwX3dyaXRlKGN0eCwgUkVHX1RNRFNfQ1NUQVRfUDMsCisJCSAgICAgICBCSVRfVE1EU19DU1RB VF9QM19TQ0RUX0NMUl9BVklfRElTCisJCSAgICAgICB8IEJJVF9UTURTX0NTVEFUX1AzX0NMUl9B VkkpOworCisJc2lpODYyMF9zdG9wX3ZpZGVvKGN0eCk7CisKKwlzaWk4NjIwX3dyaXRlKGN0eCwg UkVHX0lOVFI4X01BU0ssIDApOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX2lycV9zY2R0KHN0 cnVjdCBzaWk4NjIwICpjdHgpCit7CisJdTggc3RhdCA9IHNpaTg2MjBfcmVhZGIoY3R4LCBSRUdf SU5UUjUpOworCisJaWYgKHN0YXQgJiBCSVRfSU5UUl9TQ0RUX0NIQU5HRSkgeworCQl1OCBjc3Rh dCA9IHNpaTg2MjBfcmVhZGIoY3R4LCBSRUdfVE1EU19DU1RBVF9QMyk7CisKKwkJaWYgKGNzdGF0 ICYgQklUX1RNRFNfQ1NUQVRfUDNfU0NEVCkKKwkJCXNpaTg2MjBfc2NkdF9oaWdoKGN0eCk7CisJ CWVsc2UKKwkJCXNpaTg2MjBfc2NkdF9sb3coY3R4KTsKKwl9CisKKwlzaWk4NjIwX3dyaXRlKGN0 eCwgUkVHX0lOVFI1LCBzdGF0KTsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9uZXdfdnNpKHN0 cnVjdCBzaWk4NjIwICpjdHgpCit7CisJdTggdnNpZlsxMV07CisKKwlzaWk4NjIwX3dyaXRlKGN0 eCwgUkVHX1JYX0hETUlfQ1RSTDIsCisJCSAgICAgICBWQUxfUlhfSERNSV9DVFJMMl9ERUZWQUwK KwkJICAgICAgIHwgQklUX1JYX0hETUlfQ1RSTDJfVlNJX01PTl9TRUxfVlNJKTsKKwlzaWk4NjIw X3JlYWRfYnVmKGN0eCwgUkVHX1JYX0hETUlfTU9OX1BLVF9IRUFERVIxLCB2c2lmLAorCQkJIEFS UkFZX1NJWkUodnNpZikpOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX25ld19hdmkoc3RydWN0 IHNpaTg2MjAgKmN0eCkKK3sKKwlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX1JYX0hETUlfQ1RSTDIs IFZBTF9SWF9IRE1JX0NUUkwyX0RFRlZBTCk7CisJc2lpODYyMF9yZWFkX2J1ZihjdHgsIFJFR19S WF9IRE1JX01PTl9QS1RfSEVBREVSMSwgY3R4LT5hdmlmLAorCQkJIEFSUkFZX1NJWkUoY3R4LT5h dmlmKSk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfaXJxX2luZnIoc3RydWN0IHNpaTg2MjAg KmN0eCkKK3sKKwl1OCBzdGF0ID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19JTlRSOCkKKwkJJiAo QklUX0NFQV9ORVdfVlNJIHwgQklUX0NFQV9ORVdfQVZJKTsKKworCXNpaTg2MjBfd3JpdGUoY3R4 LCBSRUdfSU5UUjgsIHN0YXQpOworCisJaWYgKHN0YXQgJiBCSVRfQ0VBX05FV19WU0kpCisJCXNp aTg2MjBfbmV3X3ZzaShjdHgpOworCisJaWYgKHN0YXQgJiBCSVRfQ0VBX05FV19BVkkpCisJCXNp aTg2MjBfbmV3X2F2aShjdHgpOworCisJaWYgKHN0YXQgJiAoQklUX0NFQV9ORVdfVlNJIHwgQklU X0NFQV9ORVdfQVZJKSkKKwkJc2lpODYyMF9zdGFydF92aWRlbyhjdHgpOworfQorCisvKiBlbmRp YW4gYWdub3N0aWMsIG5vbi12b2xhdGlsZSB2ZXJzaW9uIG9mIHRlc3RfYml0ICovCitzdGF0aWMg Ym9vbCBzaWk4NjIwX3Rlc3RfYml0KHVuc2lnbmVkIGludCBuciwgY29uc3QgdTggKmFkZHIpCit7 CisJcmV0dXJuIDEgJiAoYWRkcltuciAvIEJJVFNfUEVSX0JZVEVdID4+IChuciAlIEJJVFNfUEVS X0JZVEUpKTsKK30KKworc3RhdGljIGlycXJldHVybl90IHNpaTg2MjBfaXJxX3RocmVhZChpbnQg aXJxLCB2b2lkICpkYXRhKQoreworCXN0YXRpYyBjb25zdCBzdHJ1Y3QgeworCQlpbnQgYml0Owor CQl2b2lkICgqaGFuZGxlcikoc3RydWN0IHNpaTg2MjAgKmN0eCk7CisJfSBpcnFfdmVjW10gPSB7 CisJCXsgQklUX0ZBU1RfSU5UUl9TVEFUX0RJU0MsIHNpaTg2MjBfaXJxX2Rpc2MgfSwKKwkJeyBC SVRfRkFTVF9JTlRSX1NUQVRfRzJXQiwgc2lpODYyMF9pcnFfZzJ3YiB9LAorCQl7IEJJVF9GQVNU X0lOVFJfU1RBVF9DT0MsIHNpaTg2MjBfaXJxX2NvYyB9LAorCQl7IEJJVF9GQVNUX0lOVFJfU1RB VF9NU0MsIHNpaTg2MjBfaXJxX21zYyB9LAorCQl7IEJJVF9GQVNUX0lOVFJfU1RBVF9NRVJSLCBz aWk4NjIwX2lycV9tZXJyIH0sCisJCXsgQklUX0ZBU1RfSU5UUl9TVEFUX0VESUQsIHNpaTg2MjBf aXJxX2VkaWQgfSwKKwkJeyBCSVRfRkFTVF9JTlRSX1NUQVRfU0NEVCwgc2lpODYyMF9pcnFfc2Nk dCB9LAorCQl7IEJJVF9GQVNUX0lOVFJfU1RBVF9JTkZSLCBzaWk4NjIwX2lycV9pbmZyIH0sCisJ fTsKKwlzdHJ1Y3Qgc2lpODYyMCAqY3R4ID0gZGF0YTsKKwl1OCBzdGF0c1tMRU5fRkFTVF9JTlRS X1NUQVRdOworCWludCBpLCByZXQ7CisKKwltdXRleF9sb2NrKCZjdHgtPmxvY2spOworCisJc2lp ODYyMF9yZWFkX2J1ZihjdHgsIFJFR19GQVNUX0lOVFJfU1RBVCwgc3RhdHMsIEFSUkFZX1NJWkUo c3RhdHMpKTsKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShpcnFfdmVjKTsgKytpKQorCQlp ZiAoc2lpODYyMF90ZXN0X2JpdChpcnFfdmVjW2ldLmJpdCwgc3RhdHMpKQorCQkJaXJxX3ZlY1tp XS5oYW5kbGVyKGN0eCk7CisKKwlzaWk4NjIwX210X3dvcmsoY3R4KTsKKworCXJldCA9IHNpaTg2 MjBfY2xlYXJfZXJyb3IoY3R4KTsKKwlpZiAocmV0KSB7CisJCWRldl9lcnIoY3R4LT5kZXYsICJF cnJvciBkdXJpbmcgSVJRIGhhbmRsaW5nLCAlZC5cbiIsIHJldCk7CisJCXNpaTg2MjBfbWhsX2Rp c2Nvbm5lY3RlZChjdHgpOworCX0KKwltdXRleF91bmxvY2soJmN0eC0+bG9jayk7CisKKwlyZXR1 cm4gSVJRX0hBTkRMRUQ7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfY2FibGVfaW4oc3RydWN0 IHNpaTg2MjAgKmN0eCkKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBjdHgtPmRldjsKKwl1OCB2 ZXJbNV07CisJaW50IHJldDsKKworCXNpaTg2MjBfaHdfb24oY3R4KTsKKwlzaWk4NjIwX2h3X3Jl c2V0KGN0eCk7CisKKwlzaWk4NjIwX3JlYWRfYnVmKGN0eCwgUkVHX1ZORF9JREwsIHZlciwgQVJS QVlfU0laRSh2ZXIpKTsKKwlyZXQgPSBzaWk4NjIwX2NsZWFyX2Vycm9yKGN0eCk7CisJaWYgKHJl dCkgeworCQlkZXZfZXJyKGRldiwgIkVycm9yIGFjY2Vzc2luZyBJMkMgYnVzLCAlZC5cbiIsIHJl dCk7CisJCXJldHVybjsKKwl9CisKKwlkZXZfaW5mbyhkZXYsICJDaGlwSUQgJTAyeCUwMng6JTAy eCUwMnggcmV2ICUwMnguXG4iLCB2ZXJbMV0sIHZlclswXSwKKwkJIHZlclszXSwgdmVyWzJdLCB2 ZXJbNF0pOworCisJc2lpODYyMF93cml0ZShjdHgsIFJFR19EUEQsCisJCQlCSVRfRFBEX1BXUk9O X1BMTCB8IEJJVF9EUERfUEROVFgxMiB8IEJJVF9EUERfT1NDX0VOKTsKKworCXNpaTg2MjBfeHRh bF9zZXRfcmF0ZShjdHgpOworCXNpaTg2MjBfZGlzY29ubmVjdChjdHgpOworCisJc2lpODYyMF93 cml0ZV9zZXEoY3R4LAorCQlSRUdfTUhMX0NCVVNfQ1RMMCwgVkFMX01ITF9DQlVTX0NUTDBfQ0JV U19EUlZfU0VMX1NUUk9ORworCQkJfCBWQUxfTUhMX0NCVVNfQ1RMMF9DQlVTX1JHTkRfVkJJQVNf NzM0LAorCQlSRUdfTUhMX0NCVVNfQ1RMMSwgVkFMX01ITF9DQlVTX0NUTDFfMTExNV9PSE0sCisJ CVJFR19EUEQsIEJJVF9EUERfUFdST05fUExMIHwgQklUX0RQRF9QRE5UWDEyIHwgQklUX0RQRF9P U0NfRU4sCisJKTsKKworCXJldCA9IHNpaTg2MjBfY2xlYXJfZXJyb3IoY3R4KTsKKwlpZiAocmV0 KSB7CisJCWRldl9lcnIoZGV2LCAiRXJyb3IgYWNjZXNzaW5nIEkyQyBidXMsICVkLlxuIiwgcmV0 KTsKKwkJcmV0dXJuOworCX0KKworCWVuYWJsZV9pcnEodG9faTJjX2NsaWVudChjdHgtPmRldikt PmlycSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHNpaTg2MjAgKmJyaWRnZV90b19zaWk4 NjIwKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCit7CisJcmV0dXJuIGNvbnRhaW5lcl9vZihi cmlkZ2UsIHN0cnVjdCBzaWk4NjIwLCBicmlkZ2UpOworfQorCit2b2lkIHNpaTg2MjBfYnJpZGdl X2R1bW15KHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCit7CisKK30KKworYm9vbCBzaWk4NjIw X21vZGVfZml4dXAoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKKwkJICAgY29uc3Qgc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCisJCSAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICph ZGp1c3RlZF9tb2RlKQoreworCXN0cnVjdCBzaWk4NjIwICpjdHggPSBicmlkZ2VfdG9fc2lpODYy MChicmlkZ2UpOworCWJvb2wgcmV0ID0gZmFsc2U7CisJaW50IG1heF9jbG9jayA9IDc0MjUwOwor CisJbXV0ZXhfbG9jaygmY3R4LT5sb2NrKTsKKworCWlmIChtb2RlLT5mbGFncyAmIERSTV9NT0RF X0ZMQUdfSU5URVJMQUNFKQorCQlnb3RvIG91dDsKKworCWlmIChjdHgtPmRldmNhcFtNSExfRENB UF9WSURfTElOS19NT0RFXSAmIE1ITF9EQ0FQX1ZJRF9MSU5LX1BQSVhFTCkKKwkJbWF4X2Nsb2Nr ID0gMzAwMDAwOworCisJcmV0ID0gbW9kZS0+Y2xvY2sgPD0gbWF4X2Nsb2NrOworCitvdXQ6CisJ bXV0ZXhfdW5sb2NrKCZjdHgtPmxvY2spOworCisJcmV0dXJuIHJldDsKK30KKworCitzdGF0aWMg Y29uc3Qgc3RydWN0IGRybV9icmlkZ2VfZnVuY3Mgc2lpODYyMF9icmlkZ2VfZnVuY3MgPSB7CisJ LnByZV9lbmFibGUgPSBzaWk4NjIwX2JyaWRnZV9kdW1teSwKKwkuZW5hYmxlID0gc2lpODYyMF9i cmlkZ2VfZHVtbXksCisJLmRpc2FibGUgPSBzaWk4NjIwX2JyaWRnZV9kdW1teSwKKwkucG9zdF9k aXNhYmxlID0gc2lpODYyMF9icmlkZ2VfZHVtbXksCisJLm1vZGVfZml4dXAgPSBzaWk4NjIwX21v ZGVfZml4dXAsCit9OworCitzdGF0aWMgaW50IHNpaTg2MjBfcHJvYmUoc3RydWN0IGkyY19jbGll bnQgKmNsaWVudCwKKwkJCSBjb25zdCBzdHJ1Y3QgaTJjX2RldmljZV9pZCAqaWQpCit7CisJc3Ry dWN0IGRldmljZSAqZGV2ID0gJmNsaWVudC0+ZGV2OworCXN0cnVjdCBzaWk4NjIwICpjdHg7CisJ aW50IHJldDsKKworCWN0eCA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqY3R4KSwgR0ZQX0tF Uk5FTCk7CisJaWYgKCFjdHgpCisJCXJldHVybiAtRU5PTUVNOworCisJY3R4LT5kZXYgPSBkZXY7 CisJbXV0ZXhfaW5pdCgmY3R4LT5sb2NrKTsKKwlJTklUX0xJU1RfSEVBRCgmY3R4LT5tdF9xdWV1 ZSk7CisKKwljdHgtPmNsa194dGFsID0gZGV2bV9jbGtfZ2V0KGRldiwgInh0YWwiKTsKKwlpZiAo SVNfRVJSKGN0eC0+Y2xrX3h0YWwpKSB7CisJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdldCB4 dGFsIGNsb2NrIGZyb20gRFRcbiIpOworCQlyZXR1cm4gUFRSX0VSUihjdHgtPmNsa194dGFsKTsK Kwl9CisKKwlpZiAoIWNsaWVudC0+aXJxKSB7CisJCWRldl9lcnIoZGV2LCAibm8gaXJxIHByb3Zp ZGVkXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCWlycV9zZXRfc3RhdHVzX2ZsYWdzKGNs aWVudC0+aXJxLCBJUlFfTk9BVVRPRU4pOworCXJldCA9IGRldm1fcmVxdWVzdF90aHJlYWRlZF9p cnEoZGV2LCBjbGllbnQtPmlycSwgTlVMTCwKKwkJCXNpaTg2MjBfaXJxX3RocmVhZCwgSVJRRl9U UklHR0VSX0hJR0ggfCBJUlFGX09ORVNIT1QsCisJCQkic2lpODYyMCIsIGN0eCk7CisKKwljdHgt PmdwaW9fcmVzZXQgPSBkZXZtX2dwaW9kX2dldChkZXYsICJyZXNldCIsIEdQSU9EX09VVF9ISUdI KTsKKwlpZiAoSVNfRVJSKGN0eC0+Z3Bpb19yZXNldCkpIHsKKwkJZGV2X2VycihkZXYsICJmYWls ZWQgdG8gZ2V0IHJlc2V0IGdwaW8gZnJvbSBEVFxuIik7CisJCXJldHVybiBQVFJfRVJSKGN0eC0+ Z3Bpb19yZXNldCk7CisJfQorCisJY3R4LT5zdXBwbGllc1swXS5zdXBwbHkgPSAiY3ZjYzEwIjsK KwljdHgtPnN1cHBsaWVzWzFdLnN1cHBseSA9ICJpb3ZjYzE4IjsKKwlyZXQgPSBkZXZtX3JlZ3Vs YXRvcl9idWxrX2dldChkZXYsIDIsIGN0eC0+c3VwcGxpZXMpOworCWlmIChyZXQpCisJCXJldHVy biByZXQ7CisKKwlpMmNfc2V0X2NsaWVudGRhdGEoY2xpZW50LCBjdHgpOworCisJc2lpODYyMF9j YWJsZV9pbihjdHgpOworCisJY3R4LT5icmlkZ2UuZnVuY3MgPSAmc2lpODYyMF9icmlkZ2VfZnVu Y3M7CisJY3R4LT5icmlkZ2Uub2Zfbm9kZSA9IGRldi0+b2Zfbm9kZTsKKwlkcm1fYnJpZGdlX2Fk ZCgmY3R4LT5icmlkZ2UpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgc2lpODYyMF9y ZW1vdmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCkKK3sKKwlzdHJ1Y3Qgc2lpODYyMCAqY3R4 ID0gaTJjX2dldF9jbGllbnRkYXRhKGNsaWVudCk7CisKKwlkaXNhYmxlX2lycSh0b19pMmNfY2xp ZW50KGN0eC0+ZGV2KS0+aXJxKTsKKwltdXRleF9sb2NrKCZjdHgtPmxvY2spOworCWRybV9icmlk Z2VfcmVtb3ZlKCZjdHgtPmJyaWRnZSk7CisJc2lpODYyMF9od19vZmYoY3R4KTsKKwltdXRleF91 bmxvY2soJmN0eC0+bG9jayk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVj dCBvZl9kZXZpY2VfaWQgc2lpODYyMF9kdF9tYXRjaFtdID0geworCXsgLmNvbXBhdGlibGUgPSAi c2lsLHNpaTg2MjAiIH0sCisJeyB9LAorfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHNpaTg2 MjBfZHRfbWF0Y2gpOworCitzdGF0aWMgY29uc3Qgc3RydWN0IGkyY19kZXZpY2VfaWQgc2lpODYy MF9pZFtdID0geworCXsgIlNJSTg2MjAiLCAwIH0sCisJeyB9LAorfTsKKworTU9EVUxFX0RFVklD RV9UQUJMRShpMmMsIHNpaTg2MjBfaWQpOworc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIHNpaTg2 MjBfZHJpdmVyID0geworCS5kcml2ZXIgPSB7CisJCS5uYW1lCT0gInNpaTg2MjAiLAorCQkub3du ZXIJPSBUSElTX01PRFVMRSwKKwkJLm9mX21hdGNoX3RhYmxlID0gb2ZfbWF0Y2hfcHRyKHNpaTg2 MjBfZHRfbWF0Y2gpLAorCX0sCisJLnByb2JlCQk9IHNpaTg2MjBfcHJvYmUsCisJLnJlbW92ZQkJ PSBzaWk4NjIwX3JlbW92ZSwKKwkuaWRfdGFibGUgPSBzaWk4NjIwX2lkLAorfTsKKworbW9kdWxl X2kyY19kcml2ZXIoc2lpODYyMF9kcml2ZXIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWwtc2lpODYyMC5oIGIvZHJpdmVy cy9ncHUvZHJtL2JyaWRnZS9zaWwtc2lpODYyMC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjZmZjYxNmEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJp ZGdlL3NpbC1zaWk4NjIwLmgKQEAgLTAsMCArMSwxNTE3IEBACisvKgorICogUmVnaXN0ZXJzIG9m IFNpbGljb24gSW1hZ2UgU2lJODYyMCBNb2JpbGUgSEQgVHJhbnNtaXR0ZXIKKyAqCisgKiBDb3B5 cmlnaHQgKEMpIDIwMTUsIFNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisgKiBBbmRyemVq IEhhamRhIDxhLmhhamRhQHNhbXN1bmcuY29tPgorICoKKyAqIEJhc2VkIG9uIE1ITCBkcml2ZXIg Zm9yIEFuZHJvaWQgZGV2aWNlcy4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE0IFNpbGljb24g SW1hZ2UsIEluYy4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hl ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisKKyNpZm5kZWYgX19TSUxf U0lJODYyMF9IX18KKyNkZWZpbmUgX19TSUxfU0lJODYyMF9IX18KKworLyogVmVuZG9yIElEIExv dyBieXRlLCBkZWZhdWx0IHZhbHVlOiAweDAxICovCisjZGVmaW5lIFJFR19WTkRfSURMCQkJCTB4 MDAwMAorCisvKiBWZW5kb3IgSUQgSGlnaCBieXRlLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisj ZGVmaW5lIFJFR19WTkRfSURICQkJCTB4MDAwMQorCisvKiBEZXZpY2UgSUQgTG93IGJ5dGUsIGRl ZmF1bHQgdmFsdWU6IDB4NjAgKi8KKyNkZWZpbmUgUkVHX0RFVl9JREwJCQkJMHgwMDAyCisKKy8q IERldmljZSBJRCBIaWdoIGJ5dGUsIGRlZmF1bHQgdmFsdWU6IDB4ODYgKi8KKyNkZWZpbmUgUkVH X0RFVl9JREgJCQkJMHgwMDAzCisKKy8qIERldmljZSBSZXZpc2lvbiwgZGVmYXVsdCB2YWx1ZTog MHgxMCAqLworI2RlZmluZSBSRUdfREVWX1JFVgkJCQkweDAwMDQKKworLyogT1RQIERCWVRFNTEw LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19PVFBfREJZVEU1MTAJCQkweDAw MDYKKworLyogU3lzdGVtIENvbnRyb2wgIzEsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZp bmUgUkVHX1NZU19DVFJMMQkJCQkweDAwMDgKKyNkZWZpbmUgQklUX1NZU19DVFJMMV9PVFBWTVVU RU9WUl9TRVQJCUJJVCg3KQorI2RlZmluZSBCSVRfU1lTX0NUUkwxX1ZTWU5DUElOCQkJQklUKDYp CisjZGVmaW5lIEJJVF9TWVNfQ1RSTDFfT1RQQURST1BPVlJfU0VUCQlCSVQoNSkKKyNkZWZpbmUg QklUX1NZU19DVFJMMV9CTE9DS19ERENfQllfSFBECQlCSVQoNCkKKyNkZWZpbmUgQklUX1NZU19D VFJMMV9PVFAyWFZPVlJfRU4JCUJJVCgzKQorI2RlZmluZSBCSVRfU1lTX0NUUkwxX09UUDJYQU9W Ul9FTgkJQklUKDIpCisjZGVmaW5lIEJJVF9TWVNfQ1RSTDFfVFhfQ1RSTF9IRE1JCQlCSVQoMSkK KyNkZWZpbmUgQklUX1NZU19DVFJMMV9PVFBBTVVURU9WUl9TRVQJCUJJVCgwKQorCisvKiBTeXN0 ZW0gQ29udHJvbCBEUEQsIGRlZmF1bHQgdmFsdWU6IDB4OTAgKi8KKyNkZWZpbmUgUkVHX0RQRAkJ CQkJMHgwMDBiCisjZGVmaW5lIEJJVF9EUERfUFdST05fUExMCQkJQklUKDcpCisjZGVmaW5lIEJJ VF9EUERfUEROVFgxMgkJCQlCSVQoNikKKyNkZWZpbmUgQklUX0RQRF9QRE5SWDEyCQkJCUJJVCg1 KQorI2RlZmluZSBCSVRfRFBEX09TQ19FTgkJCQlCSVQoNCkKKyNkZWZpbmUgQklUX0RQRF9QV1JP Tl9IU0lDCQkJQklUKDMpCisjZGVmaW5lIEJJVF9EUERfUERJRENLX04JCQlCSVQoMikKKyNkZWZp bmUgQklUX0RQRF9QRF9NSExfQ0xLX04JCQlCSVQoMSkKKworLyogRHVhbCBsaW5rIENvbnRyb2ws IGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0RDVEwJCQkJMHgwMDBkCisjZGVm aW5lIEJJVF9EQ1RMX1RETV9MQ0xLX1BIQVNFCQkJQklUKDcpCisjZGVmaW5lIEJJVF9EQ1RMX0hT SUNfQ0xLX1BIQVNFCQkJQklUKDYpCisjZGVmaW5lIEJJVF9EQ1RMX0NUU19UQ0tfUEhBU0UJCQlC SVQoNSkKKyNkZWZpbmUgQklUX0RDVExfRVhUX0REQ19TRUwJCQlCSVQoNCkKKyNkZWZpbmUgQklU X0RDVExfVFJBTlNDT0RFCQkJQklUKDMpCisjZGVmaW5lIEJJVF9EQ1RMX0hTSUNfUlhfU1RST0JF X1BIQVNFCQlCSVQoMikKKyNkZWZpbmUgQklUX0RDVExfSFNJQ19UWF9CSVNUX1NUQVJUX1NFTAkJ QklUKDEpCisjZGVmaW5lIEJJVF9EQ1RMX1RDTEtOWF9QSEFTRQkJCUJJVCgwKQorCisvKiBQV0Qg U29mdHdhcmUgUmVzZXQsIGRlZmF1bHQgdmFsdWU6IDB4MjAgKi8KKyNkZWZpbmUgUkVHX1BXRF9T UlNUCQkJCTB4MDAwZQorI2RlZmluZSBCSVRfUFdEX1NSU1RfQ09DX0RPQ19SU1QJCUJJVCg3KQor I2RlZmluZSBCSVRfUFdEX1NSU1RfQ0JVU19SU1RfU1cJCUJJVCg2KQorI2RlZmluZSBCSVRfUFdE X1NSU1RfQ0JVU19SU1RfU1dfRU4JCUJJVCg1KQorI2RlZmluZSBCSVRfUFdEX1NSU1RfTUhMRklG T19SU1QJCUJJVCg0KQorI2RlZmluZSBCSVRfUFdEX1NSU1RfQ0JVU19SU1QJCQlCSVQoMykKKyNk ZWZpbmUgQklUX1BXRF9TUlNUX1NXX1JTVF9BVVRPCQlCSVQoMikKKyNkZWZpbmUgQklUX1BXRF9T UlNUX0hEQ1AyWF9TV19SU1QJCUJJVCgxKQorI2RlZmluZSBCSVRfUFdEX1NSU1RfU1dfUlNUCQkJ QklUKDApCisKKy8qIEFLU1ZfMSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdf QUtTVl8xCQkJCTB4MDAxZAorCisvKiBWaWRlbyBIIFJlc29sdXRpb24gIzEsIGRlZmF1bHQgdmFs dWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0hfUkVTTAkJCQkweDAwM2EKKworLyogVmlkZW8gTW9k ZSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVklEX01PREUJCQkJMHgwMDRh CisjZGVmaW5lIEJJVF9WSURfTU9ERV9NMTA4MFAJCQlCSVQoNikKKworLyogVmlkZW8gSW5wdXQg TW9kZSwgZGVmYXVsdCB2YWx1ZTogMHhjMCAqLworI2RlZmluZSBSRUdfVklEX09WUlJECQkJCTB4 MDA1MQorI2RlZmluZSBCSVRfVklEX09WUlJEX1BQX0FVVE9fRElTQUJMRQkJQklUKDcpCisjZGVm aW5lIEJJVF9WSURfT1ZSUkRfTTEwODBQX09WUlJECQlCSVQoNikKKyNkZWZpbmUgQklUX1ZJRF9P VlJSRF9NSU5JVlNZTkNfT04JCUJJVCg1KQorI2RlZmluZSBCSVRfVklEX09WUlJEXzNEQ09OVl9F Tl9GUkFNRV9QQUNLCUJJVCg0KQorI2RlZmluZSBCSVRfVklEX09WUlJEX0VOQUJMRV9BVVRPX1BB VEhfRU4JQklUKDMpCisjZGVmaW5lIEJJVF9WSURfT1ZSUkRfRU5SR0IyWUNCQ1JfT1ZSUkQJCUJJ VCgyKQorI2RlZmluZSBCSVRfVklEX09WUlJEX0VORE9XTlNBTVBMRV9PVlJSRAlCSVQoMCkKKwor LyogSTJDIEFkZHJlc3MgcmVhc3NpZ25tZW50LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVm aW5lIFJFR19QQUdFX01ITFNQRUNfQUREUgkJCTB4MDA1NworI2RlZmluZSBSRUdfUEFHRTdfQURE UgkJCQkweDAwNTgKKyNkZWZpbmUgUkVHX1BBR0U4X0FERFIJCQkJMHgwMDVjCisKKy8qIEZhc3Qg SW50ZXJydXB0IFN0YXR1cywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRkFT VF9JTlRSX1NUQVQJCQkweDAwNWYKKyNkZWZpbmUgTEVOX0ZBU1RfSU5UUl9TVEFUCQkJNworI2Rl ZmluZSBCSVRfRkFTVF9JTlRSX1NUQVRfVElNUgkJCTgKKyNkZWZpbmUgQklUX0ZBU1RfSU5UUl9T VEFUX0lOVDIJCQk5CisjZGVmaW5lIEJJVF9GQVNUX0lOVFJfU1RBVF9EREMJCQkxMAorI2RlZmlu ZSBCSVRfRkFTVF9JTlRSX1NUQVRfU0NEVAkJCTExCisjZGVmaW5lIEJJVF9GQVNUX0lOVFJfU1RB VF9JTkZSCQkJMTMKKyNkZWZpbmUgQklUX0ZBU1RfSU5UUl9TVEFUX0VESUQJCQkxNAorI2RlZmlu ZSBCSVRfRkFTVF9JTlRSX1NUQVRfSERDUAkJCTE1CisjZGVmaW5lIEJJVF9GQVNUX0lOVFJfU1RB VF9NU0MJCQkxNgorI2RlZmluZSBCSVRfRkFTVF9JTlRSX1NUQVRfTUVSUgkJCTE3CisjZGVmaW5l IEJJVF9GQVNUX0lOVFJfU1RBVF9HMldCCQkJMTgKKyNkZWZpbmUgQklUX0ZBU1RfSU5UUl9TVEFU X0cyV0JfRVJSCQkxOQorI2RlZmluZSBCSVRfRkFTVF9JTlRSX1NUQVRfRElTQwkJCTI4CisjZGVm aW5lIEJJVF9GQVNUX0lOVFJfU1RBVF9CTE9DSwkJMzAKKyNkZWZpbmUgQklUX0ZBU1RfSU5UUl9T VEFUX0xUUk4JCQkzMQorI2RlZmluZSBCSVRfRkFTVF9JTlRSX1NUQVRfSERDUDIJCTMyCisjZGVm aW5lIEJJVF9GQVNUX0lOVFJfU1RBVF9URE0JCQk0MgorI2RlZmluZSBCSVRfRkFTVF9JTlRSX1NU QVRfQ09DCQkJNTEKKworLyogR1BJTyBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDE1ICovCisj ZGVmaW5lIFJFR19HUElPX0NUUkwxCQkJCTB4MDA2ZQorI2RlZmluZSBCSVRfQ1RSTDFfR1BJT19J XzgJCQlCSVQoNSkKKyNkZWZpbmUgQklUX0NUUkwxX0dQSU9fT0VOXzgJCQlCSVQoNCkKKyNkZWZp bmUgQklUX0NUUkwxX0dQSU9fSV83CQkJQklUKDMpCisjZGVmaW5lIEJJVF9DVFJMMV9HUElPX09F Tl83CQkJQklUKDIpCisjZGVmaW5lIEJJVF9DVFJMMV9HUElPX0lfNgkJCUJJVCgxKQorI2RlZmlu ZSBCSVRfQ1RSTDFfR1BJT19PRU5fNgkJCUJJVCgwKQorCisvKiBJbnRlcnJ1cHQgQ29udHJvbCwg ZGVmYXVsdCB2YWx1ZTogMHgwNiAqLworI2RlZmluZSBSRUdfSU5UX0NUUkwJCQkJMHgwMDZmCisj ZGVmaW5lIEJJVF9JTlRfQ1RSTF9TT0ZUV0FSRV9XUAkJQklUKDcpCisjZGVmaW5lIEJJVF9JTlRf Q1RSTF9JTlRSX09ECQkJQklUKDIpCisjZGVmaW5lIEJJVF9JTlRfQ1RSTF9JTlRSX1BPTEFSSVRZ CQlCSVQoMSkKKworLyogSW50ZXJydXB0IFN0YXRlLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisj ZGVmaW5lIFJFR19JTlRSX1NUQVRFCQkJCTB4MDA3MAorI2RlZmluZSBCSVRfSU5UUl9TVEFURV9J TlRSX1NUQVRFCQlCSVQoMCkKKworLyogSW50ZXJydXB0IFNvdXJjZSAjMSwgZGVmYXVsdCB2YWx1 ZTogMHgwMCAqLworI2RlZmluZSBSRUdfSU5UUjEJCQkJMHgwMDcxCisKKy8qIEludGVycnVwdCBT b3VyY2UgIzIsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0lOVFIyCQkJCTB4 MDA3MgorCisvKiBJbnRlcnJ1cHQgU291cmNlICMzLCBkZWZhdWx0IHZhbHVlOiAweDAxICovCisj ZGVmaW5lIFJFR19JTlRSMwkJCQkweDAwNzMKKyNkZWZpbmUgQklUX0REQ19DTURfRE9ORQkJCUJJ VCgzKQorCisvKiBJbnRlcnJ1cHQgU291cmNlICM1LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisj ZGVmaW5lIFJFR19JTlRSNQkJCQkweDAwNzQKKworLyogSW50ZXJydXB0ICMxIE1hc2ssIGRlZmF1 bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0lOVFIxX01BU0sJCQkJMHgwMDc1CisKKy8q IEludGVycnVwdCAjMiBNYXNrLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19J TlRSMl9NQVNLCQkJCTB4MDA3NgorCisvKiBJbnRlcnJ1cHQgIzMgTWFzaywgZGVmYXVsdCB2YWx1 ZTogMHgwMCAqLworI2RlZmluZSBSRUdfSU5UUjNfTUFTSwkJCQkweDAwNzcKKworLyogSW50ZXJy dXB0ICM1IE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0lOVFI1X01B U0sJCQkJMHgwMDc4CisjZGVmaW5lIEJJVF9JTlRSX1NDRFRfQ0hBTkdFCQkJQklUKDApCisKKy8q IEhvdCBQbHVnIENvbm5lY3Rpb24gQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHg0NSAqLworI2Rl ZmluZSBSRUdfSFBEX0NUUkwJCQkJMHgwMDc5CisjZGVmaW5lIEJJVF9IUERfQ1RSTF9IUERfRFNf U0lHTkFMCQlCSVQoNykKKyNkZWZpbmUgQklUX0hQRF9DVFJMX0hQRF9PVVRfT0RfRU4JCUJJVCg2 KQorI2RlZmluZSBCSVRfSFBEX0NUUkxfSFBEX0hJR0gJCQlCSVQoNSkKKyNkZWZpbmUgQklUX0hQ RF9DVFJMX0hQRF9PVVRfT1ZSX0VOCQlCSVQoNCkKKyNkZWZpbmUgQklUX0hQRF9DVFJMX0dQSU9f SV8xCQkJQklUKDMpCisjZGVmaW5lIEJJVF9IUERfQ1RSTF9HUElPX09FTl8xCQkJQklUKDIpCisj ZGVmaW5lIEJJVF9IUERfQ1RSTF9HUElPX0lfMAkJCUJJVCgxKQorI2RlZmluZSBCSVRfSFBEX0NU UkxfR1BJT19PRU5fMAkJCUJJVCgwKQorCisvKiBHUElPIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6 IDB4NTUgKi8KKyNkZWZpbmUgUkVHX0dQSU9fQ1RSTAkJCQkweDAwN2EKKyNkZWZpbmUgQklUX0NU UkxfR1BJT19JXzUJCQlCSVQoNykKKyNkZWZpbmUgQklUX0NUUkxfR1BJT19PRU5fNQkJCUJJVCg2 KQorI2RlZmluZSBCSVRfQ1RSTF9HUElPX0lfNAkJCUJJVCg1KQorI2RlZmluZSBCSVRfQ1RSTF9H UElPX09FTl80CQkJQklUKDQpCisjZGVmaW5lIEJJVF9DVFJMX0dQSU9fSV8zCQkJQklUKDMpCisj ZGVmaW5lIEJJVF9DVFJMX0dQSU9fT0VOXzMJCQlCSVQoMikKKyNkZWZpbmUgQklUX0NUUkxfR1BJ T19JXzIJCQlCSVQoMSkKKyNkZWZpbmUgQklUX0NUUkxfR1BJT19PRU5fMgkJCUJJVCgwKQorCisv KiBJbnRlcnJ1cHQgU291cmNlIDcsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVH X0lOVFI3CQkJCTB4MDA3YgorCisvKiBJbnRlcnJ1cHQgU291cmNlIDgsIGRlZmF1bHQgdmFsdWU6 IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0lOVFI4CQkJCTB4MDA3YworCisvKiBJbnRlcnJ1cHQgIzcg TWFzaywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfSU5UUjdfTUFTSwkJCQkw eDAwN2QKKworLyogSW50ZXJydXB0ICM4IE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNk ZWZpbmUgUkVHX0lOVFI4X01BU0sJCQkJMHgwMDdlCisjZGVmaW5lIEJJVF9DRUFfTkVXX1ZTSQkJ CQlCSVQoMikKKyNkZWZpbmUgQklUX0NFQV9ORVdfQVZJCQkJCUJJVCgxKQorCisvKiBJRUVFLCBk ZWZhdWx0IHZhbHVlOiAweDEwICovCisjZGVmaW5lIFJFR19UTURTX0NDVFJMCQkJCTB4MDA4MAor I2RlZmluZSBCSVRfVE1EU19DQ1RSTF9UTURTX09FCQkJQklUKDQpCisKKy8qIFRNRFMgQ29udHJv bCAjNCwgZGVmYXVsdCB2YWx1ZTogMHgwMiAqLworI2RlZmluZSBSRUdfVE1EU19DVFJMNAkJCQkw eDAwODUKKyNkZWZpbmUgQklUX1RNRFNfQ1RSTDRfU0NEVF9DS0RUX1NFTAkJQklUKDEpCisjZGVm aW5lIEJJVF9UTURTX0NUUkw0X1RYX0VOX0JZX1NDRFQJCUJJVCgwKQorCisvKiBCSVNUIENOVEws IGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0JJU1RfQ1RSTAkJCQkweDAwYmIK KyNkZWZpbmUgQklUX1JYQklTVF9WR0JfRU4JCQlCSVQoNykKKyNkZWZpbmUgQklUX1RYQklTVF9W R0JfRU4JCQlCSVQoNikKKyNkZWZpbmUgQklUX0JJU1RfU1RBUlRfU0VMCQkJQklUKDUpCisjZGVm aW5lIEJJVF9CSVNUX1NUQVJUX0JJVAkJCUJJVCg0KQorI2RlZmluZSBCSVRfQklTVF9BTFdBWVNf T04JCQlCSVQoMykKKyNkZWZpbmUgQklUX0JJU1RfVFJBTlMJCQkJQklUKDIpCisjZGVmaW5lIEJJ VF9CSVNUX1JFU0VUCQkJCUJJVCgxKQorI2RlZmluZSBCSVRfQklTVF9FTgkJCQlCSVQoMCkKKwor LyogQklTVCBEVVJBVElPTjAsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0JJ U1RfVEVTVF9TRUwJCQkweDAwYmQKKyNkZWZpbmUgTVNLX0JJU1RfVEVTVF9TRUxfQklTVF9QQVRU X1NFTAkJMHgwZgorCisvKiBCSVNUIFZJREVPX01PREUsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8K KyNkZWZpbmUgUkVHX0JJU1RfVklERU9fTU9ERQkJCTB4MDBiZQorI2RlZmluZSBNU0tfQklTVF9W SURFT19NT0RFX0JJU1RfVklERU9fTU9ERV8zXzAJMHgwZgorCisvKiBCSVNUIERVUkFUSU9OMCwg ZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQklTVF9EVVJBVElPTl8wCQkJMHgw MGJmCisKKy8qIEJJU1QgRFVSQVRJT04xLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5l IFJFR19CSVNUX0RVUkFUSU9OXzEJCQkweDAwYzAKKworLyogQklTVCBEVVJBVElPTjIsIGRlZmF1 bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0JJU1RfRFVSQVRJT05fMgkJCTB4MDBjMQor CisvKiBCSVNUIDhCSVRfUEFUVEVSTiwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBS RUdfQklTVF84QklUX1BBVFRFUk4JCQkweDAwYzIKKworLyogTE0gRERDLCBkZWZhdWx0IHZhbHVl OiAweDgwICovCisjZGVmaW5lIFJFR19MTV9EREMJCQkJMHgwMGM3CisjZGVmaW5lIEJJVF9MTV9E RENfU1dfVFBJX0VOX0RJU0FCTEVECQlCSVQoNykKKworI2RlZmluZSBCSVRfTE1fRERDX1ZJREVP X01VVEVfRU4JCUJJVCg1KQorI2RlZmluZSBCSVRfTE1fRERDX0REQ19UUElfU1cJCQlCSVQoMikK KyNkZWZpbmUgQklUX0xNX0REQ19ERENfR1JBTlQJCQlCSVQoMSkKKyNkZWZpbmUgQklUX0xNX0RE Q19ERENfR1BVX1JFUVVFU1QJCUJJVCgwKQorCisvKiBEREMgSTJDIE1hbnVhbCwgZGVmYXVsdCB2 YWx1ZTogMHgwMyAqLworI2RlZmluZSBSRUdfRERDX01BTlVBTAkJCQkweDAwZWMKKyNkZWZpbmUg QklUX0REQ19NQU5VQUxfTUFOX0REQwkJCUJJVCg3KQorI2RlZmluZSBCSVRfRERDX01BTlVBTF9W UF9TRUwJCQlCSVQoNikKKyNkZWZpbmUgQklUX0REQ19NQU5VQUxfRFNEQQkJCUJJVCg1KQorI2Rl ZmluZSBCSVRfRERDX01BTlVBTF9EU0NMCQkJQklUKDQpCisjZGVmaW5lIEJJVF9ERENfTUFOVUFM X0dDUF9IV19DVExfRU4JCUJJVCgzKQorI2RlZmluZSBCSVRfRERDX01BTlVBTF9ERENNX0FCT1JU X1dQCQlCSVQoMikKKyNkZWZpbmUgQklUX0REQ19NQU5VQUxfSU9fRFNEQQkJCUJJVCgxKQorI2Rl ZmluZSBCSVRfRERDX01BTlVBTF9JT19EU0NMCQkJQklUKDApCisKKy8qIEREQyBJMkMgVGFyZ2V0 IFNsYXZlIEFkZHJlc3MsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0REQ19B RERSCQkJCTB4MDBlZAorI2RlZmluZSBNU0tfRERDX0FERFJfRERDX0FERFIJCQkweGZlCisKKy8q IEREQyBJMkMgVGFyZ2V0IFNlZ21lbnQgQWRkcmVzcywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwor I2RlZmluZSBSRUdfRERDX1NFR00JCQkJMHgwMGVlCisKKy8qIEREQyBJMkMgVGFyZ2V0IE9mZnNl dCBBZGRyZXNzLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19ERENfT0ZGU0VU CQkJCTB4MDBlZgorCisvKiBEREMgSTJDIERhdGEgSW4gY291bnQgIzEsIGRlZmF1bHQgdmFsdWU6 IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0REQ19ESU5fQ05UMQkJCTB4MDBmMAorCisvKiBEREMgSTJD IERhdGEgSW4gY291bnQgIzIsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0RE Q19ESU5fQ05UMgkJCTB4MDBmMQorI2RlZmluZSBNU0tfRERDX0RJTl9DTlQyX0REQ19ESU5fQ05U XzlfOAkweDAzCisKKy8qIEREQyBJMkMgU3RhdHVzLCBkZWZhdWx0IHZhbHVlOiAweDA0ICovCisj ZGVmaW5lIFJFR19ERENfU1RBVFVTCQkJCTB4MDBmMgorI2RlZmluZSBCSVRfRERDX1NUQVRVU19E RENfQlVTX0xPVwkJQklUKDYpCisjZGVmaW5lIEJJVF9ERENfU1RBVFVTX0REQ19OT19BQ0sJCUJJ VCg1KQorI2RlZmluZSBCSVRfRERDX1NUQVRVU19ERENfSTJDX0lOX1BST0cJCUJJVCg0KQorI2Rl ZmluZSBCSVRfRERDX1NUQVRVU19ERENfRklGT19GVUxMCQlCSVQoMykKKyNkZWZpbmUgQklUX0RE Q19TVEFUVVNfRERDX0ZJRk9fRU1QVFkJCUJJVCgyKQorI2RlZmluZSBCSVRfRERDX1NUQVRVU19E RENfRklGT19SRUFEX0lOX1NVRQlCSVQoMSkKKyNkZWZpbmUgQklUX0REQ19TVEFUVVNfRERDX0ZJ Rk9fV1JJVEVfSU5fVVNFCUJJVCgwKQorCisvKiBEREMgSTJDIENvbW1hbmQsIGRlZmF1bHQgdmFs dWU6IDB4NzAgKi8KKyNkZWZpbmUgUkVHX0REQ19DTUQJCQkJMHgwMGYzCisjZGVmaW5lIEJJVF9E RENfQ01EX0hEQ1BfRERDX0VOCQkJQklUKDYpCisjZGVmaW5lIEJJVF9ERENfQ01EX1NEQV9ERUxf RU4JCQlCSVQoNSkKKyNkZWZpbmUgQklUX0REQ19DTURfRERDX0ZMVF9FTgkJCUJJVCg0KQorCisj ZGVmaW5lIE1TS19ERENfQ01EX0REQ19DTUQJCQkweDBmCisjZGVmaW5lIFZBTF9ERENfQ01EX0VO SF9ERENfUkVBRF9OT19BQ0sJCTB4MDQKKyNkZWZpbmUgVkFMX0REQ19DTURfRERDX0NNRF9DTEVB Ul9GSUZPCQkweDA5CisjZGVmaW5lIFZBTF9ERENfQ01EX0REQ19DTURfQUJPUlQJCTB4MGYKKwor LyogRERDIEkyQyBGSUZPIERhdGEgSW4vT3V0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVm aW5lIFJFR19ERENfREFUQQkJCQkweDAwZjQKKworLyogRERDIEkyQyBEYXRhIE91dCBDb3VudGVy LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19ERENfRE9VVF9DTlQJCQkweDAw ZjUKKyNkZWZpbmUgQklUX0REQ19ET1VUX0NOVF9ERENfREVMQVlfQ05UXzgJQklUKDcpCisjZGVm aW5lIE1TS19ERENfRE9VVF9DTlRfRERDX0RBVEFfT1VUX0NOVAkweDFmCisKKy8qIEREQyBJMkMg RGVsYXkgQ291bnQsIGRlZmF1bHQgdmFsdWU6IDB4MTQgKi8KKyNkZWZpbmUgUkVHX0REQ19ERUxB WV9DTlQJCQkweDAwZjYKKworLyogVGVzdCBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDgwICov CisjZGVmaW5lIFJFR19URVNUX1RYQ1RSTAkJCQkweDAwZjcKKyNkZWZpbmUgQklUX1RFU1RfVFhD VFJMX1JDTEtfUkVGX1NFTAkJQklUKDcpCisjZGVmaW5lIEJJVF9URVNUX1RYQ1RSTF9QQ0xLX1JF Rl9TRUwJCUJJVCg2KQorI2RlZmluZSBNU0tfVEVTVF9UWENUUkxfQllQQVNTX1BMTF9DTEsJCTB4 M2MKKyNkZWZpbmUgQklUX1RFU1RfVFhDVFJMX0hETUlfTU9ERQkJQklUKDEpCisjZGVmaW5lIEJJ VF9URVNUX1RYQ1RSTF9UU1RfUExMQ0sJCUJJVCgwKQorCisvKiBDQlVTIEFkZHJlc3MsIGRlZmF1 bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1BBR0VfQ0JVU19BRERSCQkJMHgwMGY4CisK Ky8qIEkyQyBEZXZpY2UgQWRkcmVzcyByZS1hc3NpZ25tZW50ICovCisjZGVmaW5lIFJFR19QQUdF MV9BRERSCQkJCTB4MDBmYworI2RlZmluZSBSRUdfUEFHRTJfQUREUgkJCQkweDAwZmQKKyNkZWZp bmUgUkVHX1BBR0UzX0FERFIJCQkJMHgwMGZlCisjZGVmaW5lIFJFR19IV19UUElfQUREUgkJCQkw eDAwZmYKKworLyogVVNCVCBDVFJMMCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBS RUdfVVRTUlNUCQkJCTB4MDEwMAorI2RlZmluZSBCSVRfVVRTUlNUX0ZDX1NSU1QJCQlCSVQoNSkK KyNkZWZpbmUgQklUX1VUU1JTVF9LRUVQRVJfU1JTVAkJCUJJVCg0KQorI2RlZmluZSBCSVRfVVRT UlNUX0hUWF9TUlNUCQkJQklUKDMpCisjZGVmaW5lIEJJVF9VVFNSU1RfVFJYX1NSU1QJCQlCSVQo MikKKyNkZWZpbmUgQklUX1VUU1JTVF9UVFhfU1JTVAkJCUJJVCgxKQorI2RlZmluZSBCSVRfVVRT UlNUX0hSWF9TUlNUCQkJQklUKDApCisKKy8qIEhTSUMgUlggQ29udHJvbDMsIGRlZmF1bHQgdmFs dWU6IDB4MDcgKi8KKyNkZWZpbmUgUkVHX0hSWENUUkwzCQkJCTB4MDEwNAorI2RlZmluZSBNU0tf SFJYQ1RSTDNfSFJYX0FGRkNUUkwJCTB4ZjAKKyNkZWZpbmUgQklUX0hSWENUUkwzX0hSWF9PVVRf RU4JCQlCSVQoMikKKyNkZWZpbmUgQklUX0hSWENUUkwzX1NUQVRVU19FTgkJCUJJVCgxKQorI2Rl ZmluZSBCSVRfSFJYQ1RSTDNfSFJYX1NUQVlfUkVTRVQJCUJJVCgwKQorCisvKiBIU0lDIFJYIElO VCBSZWdpc3RlcnMgKi8KKyNkZWZpbmUgUkVHX0hSWElOVEwJCQkJMHgwMTExCisjZGVmaW5lIFJF R19IUlhJTlRICQkJCTB4MDExMgorCisvKiBURE0gVFggTlVNQklUUywgZGVmYXVsdCB2YWx1ZTog MHgwYyAqLworI2RlZmluZSBSRUdfVFRYTlVNQgkJCQkweDAxMTYKKyNkZWZpbmUgTVNLX1RUWE5V TUJfVFRYX0FGRkNUUkxfM18wCQkweGYwCisjZGVmaW5lIEJJVF9UVFhOVU1CX1RUWF9DT00xX0FU X1NZTkNfV0FJVAlCSVQoMykKKyNkZWZpbmUgTVNLX1RUWE5VTUJfVFRYX05VTUJQU18yXzAJCTB4 MDcKKworLyogVERNIFRYIE5VTVNQSVNZTSwgZGVmYXVsdCB2YWx1ZTogMHgwNCAqLworI2RlZmlu ZSBSRUdfVFRYU1BJTlVNUwkJCQkweDAxMTcKKworLyogVERNIFRYIE5VTUhTSUNTWU0sIGRlZmF1 bHQgdmFsdWU6IDB4MTQgKi8KKyNkZWZpbmUgUkVHX1RUWEhTSUNOVU1TCQkJCTB4MDExOAorCisv KiBURE0gVFggTlVNVE9UU1lNLCBkZWZhdWx0IHZhbHVlOiAweDE4ICovCisjZGVmaW5lIFJFR19U VFhUT1ROVU1TCQkJCTB4MDExOQorCisvKiBURE0gVFggSU5UIExvdywgZGVmYXVsdCB2YWx1ZTog MHgwMCAqLworI2RlZmluZSBSRUdfVFRYSU5UTAkJCQkweDAxMzYKKyNkZWZpbmUgQklUX1RUWElO VExfVFRYX0lOVFI3CQkJQklUKDcpCisjZGVmaW5lIEJJVF9UVFhJTlRMX1RUWF9JTlRSNgkJCUJJ VCg2KQorI2RlZmluZSBCSVRfVFRYSU5UTF9UVFhfSU5UUjUJCQlCSVQoNSkKKyNkZWZpbmUgQklU X1RUWElOVExfVFRYX0lOVFI0CQkJQklUKDQpCisjZGVmaW5lIEJJVF9UVFhJTlRMX1RUWF9JTlRS MwkJCUJJVCgzKQorI2RlZmluZSBCSVRfVFRYSU5UTF9UVFhfSU5UUjIJCQlCSVQoMikKKyNkZWZp bmUgQklUX1RUWElOVExfVFRYX0lOVFIxCQkJQklUKDEpCisjZGVmaW5lIEJJVF9UVFhJTlRMX1RU WF9JTlRSMAkJCUJJVCgwKQorCisvKiBURE0gVFggSU5UIEhpZ2gsIGRlZmF1bHQgdmFsdWU6IDB4 MDAgKi8KKyNkZWZpbmUgUkVHX1RUWElOVEgJCQkJMHgwMTM3CisjZGVmaW5lIEJJVF9UVFhJTlRI X1RUWF9JTlRSMTUJCQlCSVQoNykKKyNkZWZpbmUgQklUX1RUWElOVEhfVFRYX0lOVFIxNAkJCUJJ VCg2KQorI2RlZmluZSBCSVRfVFRYSU5USF9UVFhfSU5UUjEzCQkJQklUKDUpCisjZGVmaW5lIEJJ VF9UVFhJTlRIX1RUWF9JTlRSMTIJCQlCSVQoNCkKKyNkZWZpbmUgQklUX1RUWElOVEhfVFRYX0lO VFIxMQkJCUJJVCgzKQorI2RlZmluZSBCSVRfVFRYSU5USF9UVFhfSU5UUjEwCQkJQklUKDIpCisj ZGVmaW5lIEJJVF9UVFhJTlRIX1RUWF9JTlRSOQkJCUJJVCgxKQorI2RlZmluZSBCSVRfVFRYSU5U SF9UVFhfSU5UUjgJCQlCSVQoMCkKKworLyogVERNIFJYIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6 IDB4MWMgKi8KKyNkZWZpbmUgUkVHX1RSWENUUkwJCQkJMHgwMTNiCisjZGVmaW5lIEJJVF9UUlhD VFJMX1RSWF9DTFJfV1ZBTExPVwkJQklUKDQpCisjZGVmaW5lIEJJVF9UUlhDVFJMX1RSWF9GUk9N X1NFX0NPQwkJQklUKDMpCisjZGVmaW5lIE1TS19UUlhDVFJMX1RSWF9OVU1CUFNfMl8wCQkweDA3 CisKKy8qIFRETSBSWCBOVU1TUElTWU0sIGRlZmF1bHQgdmFsdWU6IDB4MDQgKi8KKyNkZWZpbmUg UkVHX1RSWFNQSU5VTVMJCQkJMHgwMTNjCisKKy8qIFRETSBSWCBOVU1IU0lDU1lNLCBkZWZhdWx0 IHZhbHVlOiAweDE0ICovCisjZGVmaW5lIFJFR19UUlhIU0lDTlVNUwkJCQkweDAxM2QKKworLyog VERNIFJYIE5VTVRPVFNZTSwgZGVmYXVsdCB2YWx1ZTogMHgxOCAqLworI2RlZmluZSBSRUdfVFJY VE9UTlVNUwkJCQkweDAxM2UKKworLyogVERNIFJYIFN0YXR1cyAybmQsIGRlZmF1bHQgdmFsdWU6 IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RSWFNUQTIJCQkJMHgwMTVjCisKKy8qIFRETSBSWCBJTlQg TG93LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19UUlhJTlRMCQkJCTB4MDE2 MworCisvKiBURE0gUlggSU5UIEhpZ2gsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUg UkVHX1RSWElOVEgJCQkJMHgwMTY0CisKKy8qIFRETSBSWCBJTlRNQVNLIEhpZ2gsIGRlZmF1bHQg dmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RSWElOVE1ICQkJCTB4MDE2NgorCisvKiBIU0lD IFRYIENSVEwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0hUWENUUkwJCQkJ MHgwMTY5CisjZGVmaW5lIEJJVF9IVFhDVFJMX0hUWF9BTExTQkVfU09QCQlCSVQoNCkKKyNkZWZp bmUgQklUX0hUWENUUkxfSFRYX1JHRElOVl9VU0IJCUJJVCgzKQorI2RlZmluZSBCSVRfSFRYQ1RS TF9IVFhfUlNQVERNX0JVU1kJCUJJVCgyKQorI2RlZmluZSBCSVRfSFRYQ1RSTF9IVFhfRFJWQ09O TjEJCUJJVCgxKQorI2RlZmluZSBCSVRfSFRYQ1RSTF9IVFhfRFJWUlNUMQkJCUJJVCgwKQorCisv KiBIU0lDIFRYIElOVCBMb3csIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0hU WElOVEwJCQkJMHgwMTdkCisKKy8qIEhTSUMgVFggSU5UIEhpZ2gsIGRlZmF1bHQgdmFsdWU6IDB4 MDAgKi8KKyNkZWZpbmUgUkVHX0hUWElOVEgJCQkJMHgwMTdlCisKKy8qIEhTSUMgS2VlcGVyLCBk ZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19LRUVQRVIJCQkJMHgwMTgxCisjZGVm aW5lIE1TS19LRUVQRVJfS0VFUEVSX01PREVfMV8wCQkweDAzCisKKy8qIEhTSUMgRmxvdyBDb250 cm9sIEdlbmVyYWwsIGRlZmF1bHQgdmFsdWU6IDB4MDIgKi8KKyNkZWZpbmUgUkVHX0ZDR0MJCQkJ MHgwMTgzCisjZGVmaW5lIEJJVF9GQ0dDX0hTSUNfRkNfSE9TVE1PREUJCUJJVCgxKQorI2RlZmlu ZSBCSVRfRkNHQ19IU0lDX0ZDX0VOQUJMRQkJCUJJVCgwKQorCisvKiBIU0lDIEZsb3cgQ29udHJv bCBDVFIxMywgZGVmYXVsdCB2YWx1ZTogMHhmYyAqLworI2RlZmluZSBSRUdfRkNDVFIxMwkJCQkw eDAxOTEKKworLyogSFNJQyBGbG93IENvbnRyb2wgQ1RSMTQsIGRlZmF1bHQgdmFsdWU6IDB4ZmYg Ki8KKyNkZWZpbmUgUkVHX0ZDQ1RSMTQJCQkJMHgwMTkyCisKKy8qIEhTSUMgRmxvdyBDb250cm9s IENUUjE1LCBkZWZhdWx0IHZhbHVlOiAweGZmICovCisjZGVmaW5lIFJFR19GQ0NUUjE1CQkJCTB4 MDE5MworCisvKiBIU0lDIEZsb3cgQ29udHJvbCBDVFI1MCwgZGVmYXVsdCB2YWx1ZTogMHgwMyAq LworI2RlZmluZSBSRUdfRkNDVFI1MAkJCQkweDAxYjYKKworLyogSFNJQyBGbG93IENvbnRyb2wg SU5UUjAsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0ZDSU5UUjAJCQkJMHgw MWVjCisjZGVmaW5lIFJFR19GQ0lOVFIxCQkJCTB4MDFlZAorI2RlZmluZSBSRUdfRkNJTlRSMgkJ CQkweDAxZWUKKyNkZWZpbmUgUkVHX0ZDSU5UUjMJCQkJMHgwMWVmCisjZGVmaW5lIFJFR19GQ0lO VFI0CQkJCTB4MDFmMAorI2RlZmluZSBSRUdfRkNJTlRSNQkJCQkweDAxZjEKKyNkZWZpbmUgUkVH X0ZDSU5UUjYJCQkJMHgwMWYyCisjZGVmaW5lIFJFR19GQ0lOVFI3CQkJCTB4MDFmMworCisvKiBU RE0gTG93IExhdGVuY3ksIGRlZmF1bHQgdmFsdWU6IDB4MjAgKi8KKyNkZWZpbmUgUkVHX1RETUxM Q1RMCQkJCTB4MDFmYworI2RlZmluZSBNU0tfVERNTExDVExfVFJYX0xMX1NFTF9NQU5VQUwJCTB4 YzAKKyNkZWZpbmUgTVNLX1RETUxMQ1RMX1RSWF9MTF9TRUxfTU9ERQkJMHgzMAorI2RlZmluZSBN U0tfVERNTExDVExfVFRYX0xMX1NFTF9NQU5VQUwJCTB4MGMKKyNkZWZpbmUgQklUX1RETUxMQ1RM X1RUWF9MTF9USUVfTE9XCQlCSVQoMSkKKyNkZWZpbmUgQklUX1RETUxMQ1RMX1RUWF9MTF9TRUxf TU9ERQkJQklUKDApCisKKy8qIFRNRFMgMCBDbG9jayBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAw eDEwICovCisjZGVmaW5lIFJFR19UTURTMF9DQ1RSTDEJCQkweDAyMTAKKyNkZWZpbmUgTVNLX1RN RFMwX0NDVFJMMV9URVNUX1NFTAkJMHhjMAorI2RlZmluZSBNU0tfVE1EUzBfQ0NUUkwxX0NMSzFY X0NUTAkJMHgzMAorCisvKiBUTURTIENsb2NrIEVuYWJsZSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAq LworI2RlZmluZSBSRUdfVE1EU19DTEtfRU4JCQkJMHgwMjExCisjZGVmaW5lIEJJVF9UTURTX0NM S19FTl9DTEtfRU4JCQlCSVQoMCkKKworLyogVE1EUyBDaGFubmVsIEVuYWJsZSwgZGVmYXVsdCB2 YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVE1EU19DSF9FTgkJCQkweDAyMTIKKyNkZWZpbmUg QklUX1RNRFNfQ0hfRU5fQ0gwX0VOCQkJQklUKDQpCisjZGVmaW5lIEJJVF9UTURTX0NIX0VOX0NI MTJfRU4JCQlCSVQoMCkKKworLyogQkdSX0JJQVMsIGRlZmF1bHQgdmFsdWU6IDB4MDcgKi8KKyNk ZWZpbmUgUkVHX0JHUl9CSUFTCQkJCTB4MDIxNQorI2RlZmluZSBCSVRfQkdSX0JJQVNfQkdSX0VO CQkJQklUKDcpCisjZGVmaW5lIE1TS19CR1JfQklBU19CSUFTX0JHUl9ECQkJMHgwZgorCisvKiBU TURTIDAgRGlnaXRhbCBJMkMgQlcsIGRlZmF1bHQgdmFsdWU6IDB4MGEgKi8KKyNkZWZpbmUgUkVH X0FMSUNFMF9CV19JMkMJCQkweDAyMzEKKworLyogVE1EUyAwIERpZ2l0YWwgWm9uZSBDb250cm9s LCBkZWZhdWx0IHZhbHVlOiAweGUwICovCisjZGVmaW5lIFJFR19BTElDRTBfWk9ORV9DVFJMCQkJ MHgwMjRjCisjZGVmaW5lIEJJVF9BTElDRTBfWk9ORV9DVFJMX0lDUlNUX04JCUJJVCg3KQorI2Rl ZmluZSBCSVRfQUxJQ0UwX1pPTkVfQ1RSTF9VU0VfSU5UX0RJVjIwCUJJVCg2KQorI2RlZmluZSBN U0tfQUxJQ0UwX1pPTkVfQ1RSTF9TWk9ORV9JMkMJCTB4MzAKKyNkZWZpbmUgTVNLX0FMSUNFMF9a T05FX0NUUkxfWk9ORV9DVFJMCQkweDBmCisKKy8qIFRNRFMgMCBEaWdpdGFsIFBMTCBNb2RlIENv bnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0FMSUNFMF9NT0RFX0NU UkwJCQkweDAyNGQKKyNkZWZpbmUgTVNLX0FMSUNFMF9NT0RFX0NUUkxfUExMX01PREVfSTJDCTB4 MGMKKyNkZWZpbmUgTVNLX0FMSUNFMF9NT0RFX0NUUkxfRElWMjBfQ1RSTAkJMHgwMworCisvKiBN SEwgVHggQ29udHJvbCA2dGgsIGRlZmF1bHQgdmFsdWU6IDB4YTAgKi8KKyNkZWZpbmUgUkVHX01I TFRYX0NUTDYJCQkJMHgwMjg1CisjZGVmaW5lIE1TS19NSExUWF9DVEw2X0VNSV9TRUwJCQkweGUw CisjZGVmaW5lIE1TS19NSExUWF9DVEw2X1RYX0NMS19TSEFQRV85XzgJCTB4MDMKKworLyogUGFj a2V0IEZpbHRlcjAsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1BLVF9GSUxU RVJfMAkJCTB4MDI5MAorI2RlZmluZSBCSVRfUEtUX0ZJTFRFUl8wX0RST1BfQ0VBX0dBTVVUX1BL VAlCSVQoNykKKyNkZWZpbmUgQklUX1BLVF9GSUxURVJfMF9EUk9QX0NFQV9DUF9QS1QJQklUKDYp CisjZGVmaW5lIEJJVF9QS1RfRklMVEVSXzBfRFJPUF9NUEVHX1BLVAkJQklUKDUpCisjZGVmaW5l IEJJVF9QS1RfRklMVEVSXzBfRFJPUF9TUElGX1BLVAkJQklUKDQpCisjZGVmaW5lIEJJVF9QS1Rf RklMVEVSXzBfRFJPUF9BSUZfUEtUCQlCSVQoMykKKyNkZWZpbmUgQklUX1BLVF9GSUxURVJfMF9E Uk9QX0FWSV9QS1QJCUJJVCgyKQorI2RlZmluZSBCSVRfUEtUX0ZJTFRFUl8wX0RST1BfQ1RTX1BL VAkJQklUKDEpCisjZGVmaW5lIEJJVF9QS1RfRklMVEVSXzBfRFJPUF9HQ1BfUEtUCQlCSVQoMCkK KworLyogUGFja2V0IEZpbHRlcjEsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVH X1BLVF9GSUxURVJfMQkJCTB4MDI5MQorI2RlZmluZSBCSVRfUEtUX0ZJTFRFUl8xX1ZTSV9PVkVS UklERV9ESVMJQklUKDcpCisjZGVmaW5lIEJJVF9QS1RfRklMVEVSXzFfQVZJX09WRVJSSURFX0RJ UwlCSVQoNikKKyNkZWZpbmUgQklUX1BLVF9GSUxURVJfMV9EUk9QX0FVRElPX1BLVAkJQklUKDMp CisjZGVmaW5lIEJJVF9QS1RfRklMVEVSXzFfRFJPUF9HRU4yX1BLVAkJQklUKDIpCisjZGVmaW5l IEJJVF9QS1RfRklMVEVSXzFfRFJPUF9HRU5fUEtUCQlCSVQoMSkKKyNkZWZpbmUgQklUX1BLVF9G SUxURVJfMV9EUk9QX1ZTSUZfUEtUCQlCSVQoMCkKKworLyogVE1EUyBDbG9jayBTdGF0dXMsIGRl ZmF1bHQgdmFsdWU6IDB4MTAgKi8KKyNkZWZpbmUgUkVHX1RNRFNfQ1NUQVRfUDMJCQkweDAyYTAK KyNkZWZpbmUgQklUX1RNRFNfQ1NUQVRfUDNfUlhfSERNSV9DUF9DTFJfTVVURQlCSVQoNykKKyNk ZWZpbmUgQklUX1RNRFNfQ1NUQVRfUDNfUlhfSERNSV9DUF9TRVRfTVVURQlCSVQoNikKKyNkZWZp bmUgQklUX1RNRFNfQ1NUQVRfUDNfUlhfSERNSV9DUF9ORVdfQ1AJQklUKDUpCisjZGVmaW5lIEJJ VF9UTURTX0NTVEFUX1AzX0NMUl9BVkkJCUJJVCgzKQorI2RlZmluZSBCSVRfVE1EU19DU1RBVF9Q M19TQ0RUX0NMUl9BVklfRElTCUJJVCgyKQorI2RlZmluZSBCSVRfVE1EU19DU1RBVF9QM19TQ0RU CQkJQklUKDEpCisjZGVmaW5lIEJJVF9UTURTX0NTVEFUX1AzX0NLRFQJCQlCSVQoMCkKKworLyog UlhfSERNSSBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDEwICovCisjZGVmaW5lIFJFR19SWF9I RE1JX0NUUkwwCQkJMHgwMmExCisjZGVmaW5lIEJJVF9SWF9IRE1JX0NUUkwwX0JZUF9EVklGSUxU X1NZTkMJQklUKDUpCisjZGVmaW5lIEJJVF9SWF9IRE1JX0NUUkwwX0hETUlfTU9ERV9FTl9JVFNF TEZfQ0xSIEJJVCg0KQorI2RlZmluZSBCSVRfUlhfSERNSV9DVFJMMF9IRE1JX01PREVfU1dfVkFM VUUJQklUKDMpCisjZGVmaW5lIEJJVF9SWF9IRE1JX0NUUkwwX0hETUlfTU9ERV9PVkVSV1JJVEUJ QklUKDIpCisjZGVmaW5lIEJJVF9SWF9IRE1JX0NUUkwwX1JYX0hETUlfSERNSV9NT0RFX0VOCUJJ VCgxKQorI2RlZmluZSBCSVRfUlhfSERNSV9DVFJMMF9SWF9IRE1JX0hETUlfTU9ERQlCSVQoMCkK KworLyogUlhfSERNSSBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDM4ICovCisjZGVmaW5lIFJF R19SWF9IRE1JX0NUUkwyCQkJMHgwMmEzCisjZGVmaW5lIE1TS19SWF9IRE1JX0NUUkwyX0lETEVf Q05UCQkweGYwCisjZGVmaW5lIFZBTF9SWF9IRE1JX0NUUkwyX0lETEVfQ05UKG4pCQkoKG4pIDw8 IDQpCisjZGVmaW5lIEJJVF9SWF9IRE1JX0NUUkwyX1VTRV9BVl9NVVRFCQlCSVQoMykKKyNkZWZp bmUgQklUX1JYX0hETUlfQ1RSTDJfVlNJX01PTl9TRUxfVlNJCUJJVCgwKQorCisvKiBSWF9IRE1J IENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4MGYgKi8KKyNkZWZpbmUgUkVHX1JYX0hETUlfQ1RS TDMJCQkweDAyYTQKKyNkZWZpbmUgTVNLX1JYX0hETUlfQ1RSTDNfUFBfTU9ERV9DTEtfRU4JMHgw ZgorCisvKiByeF9oZG1pIENsZWFyIEJ1ZmZlciwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2Rl ZmluZSBSRUdfUlhfSERNSV9DTFJfQlVGRkVSCQkJMHgwMmFjCisjZGVmaW5lIE1TS19SWF9IRE1J X0NMUl9CVUZGRVJfQUlGNFZTSV9DTVAJMHhjMAorI2RlZmluZSBCSVRfUlhfSERNSV9DTFJfQlVG RkVSX1VTRV9BSUY0VlNJCUJJVCg1KQorI2RlZmluZSBCSVRfUlhfSERNSV9DTFJfQlVGRkVSX1ZT SV9DTFJfV19BVkkJQklUKDQpCisjZGVmaW5lIEJJVF9SWF9IRE1JX0NMUl9CVUZGRVJfVlNJX0lF RUVfSURfQ0hLX0VOIEJJVCgzKQorI2RlZmluZSBCSVRfUlhfSERNSV9DTFJfQlVGRkVSX1NXQVBf VlNJX0lFRUVfSUQJQklUKDIpCisjZGVmaW5lIEJJVF9SWF9IRE1JX0NMUl9CVUZGRVJfQUlGX0NM Ul9FTglCSVQoMSkKKyNkZWZpbmUgQklUX1JYX0hETUlfQ0xSX0JVRkZFUl9WU0lfQ0xSX0VOCUJJ VCgwKQorCisvKiBSWF9IRE1JIFZTSSBIZWFkZXIxLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisj ZGVmaW5lIFJFR19SWF9IRE1JX01PTl9QS1RfSEVBREVSMQkJMHgwMmI4CisKKy8qIFJYX0hETUkg VlNJIE1ITCBNb25pdG9yLCBkZWZhdWx0IHZhbHVlOiAweDNjICovCisjZGVmaW5lIFJFR19SWF9I RE1JX1ZTSUZfTUhMX01PTgkJMHgwMmQ3CisKKyNkZWZpbmUgTVNLX1JYX0hETUlfVlNJRl9NSExf TU9OX1JYX0hETUlfTUhMXzNEX0ZPUk1BVCAweDNjCisjZGVmaW5lIE1TS19SWF9IRE1JX1ZTSUZf TUhMX01PTl9SWF9IRE1JX01ITF9WSURfRk9STUFUIDB4MDMKKworLyogSW50ZXJydXB0IFNvdXJj ZSA5LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19JTlRSOQkJCQkweDAyZTAK KyNkZWZpbmUgQklUX0lOVFI5X0VESURfRVJST1IJCQlCSVQoNikKKyNkZWZpbmUgQklUX0lOVFI5 X0VESURfRE9ORQkJCUJJVCg1KQorI2RlZmluZSBCSVRfSU5UUjlfREVWQ0FQX0RPTkUJCQlCSVQo NCkKKworLyogSW50ZXJydXB0IDkgTWFzaywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmlu ZSBSRUdfSU5UUjlfTUFTSwkJCQkweDAyZTEKKworLyogVFBJIENCVVMgU3RhcnQsIGRlZmF1bHQg dmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RQSV9DQlVTX1NUQVJUCQkJMHgwMmUyCisjZGVm aW5lIEJJVF9UUElfQ0JVU19TVEFSVF9SQ1BfUkVRX1NUQVJUCUJJVCg3KQorI2RlZmluZSBCSVRf VFBJX0NCVVNfU1RBUlRfUkNQS19SRVBMWV9TVEFSVAlCSVQoNikKKyNkZWZpbmUgQklUX1RQSV9D QlVTX1NUQVJUX1JDUEVfUkVQTFlfU1RBUlQJQklUKDUpCisjZGVmaW5lIEJJVF9UUElfQ0JVU19T VEFSVF9QVVRfTElOS19NT0RFX1NUQVJUCUJJVCg0KQorI2RlZmluZSBCSVRfVFBJX0NCVVNfU1RB UlRfUFVUX0RDQVBDSEdfU1RBUlQJQklUKDMpCisjZGVmaW5lIEJJVF9UUElfQ0JVU19TVEFSVF9Q VVRfRENBUFJEWV9TVEFSVAlCSVQoMikKKyNkZWZpbmUgQklUX1RQSV9DQlVTX1NUQVJUX0dFVF9F RElEX1NUQVJUXzAJQklUKDEpCisjZGVmaW5lIEJJVF9UUElfQ0JVU19TVEFSVF9HRVRfREVWQ0FQ X1NUQVJUCUJJVCgwKQorCisvKiBFRElEIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4MTAgKi8K KyNkZWZpbmUgUkVHX0VESURfQ1RSTAkJCQkweDAyZTMKKyNkZWZpbmUgQklUX0VESURfQ1RSTF9F RElEX1BSSU1FX1ZBTElECQlCSVQoNykKKyNkZWZpbmUgQklUX0VESURfQ1RSTF9YREVWQ0FQX0VO CQlCSVQoNikKKyNkZWZpbmUgQklUX0VESURfQ1RSTF9ERVZDQVBfU0VMRUNUX0RFVkNBUAlCSVQo NSkKKyNkZWZpbmUgQklUX0VESURfQ1RSTF9FRElEX0ZJRk9fQUREUl9BVVRPCUJJVCg0KQorI2Rl ZmluZSBCSVRfRURJRF9DVFJMX0VESURfRklGT19BQ0NFU1NfQUxXQVlTX0VOIEJJVCgzKQorI2Rl ZmluZSBCSVRfRURJRF9DVFJMX0VESURfRklGT19CTE9DS19TRUwJQklUKDIpCisjZGVmaW5lIEJJ VF9FRElEX0NUUkxfSU5WQUxJRF9CS1NWCQlCSVQoMSkKKyNkZWZpbmUgQklUX0VESURfQ1RSTF9F RElEX01PREVfRU4JCUJJVCgwKQorCisvKiBFRElEIEZJRk8gQWRkciwgZGVmYXVsdCB2YWx1ZTog MHgwMCAqLworI2RlZmluZSBSRUdfRURJRF9GSUZPX0FERFIJCQkweDAyZTkKKworLyogRURJRCBG SUZPIFdyaXRlIERhdGEsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0VESURf RklGT19XUl9EQVRBCQkJMHgwMmVhCisKKy8qIEVESUQvREVWQ0FQIEZJRk8gSW50ZXJuYWwgQWRk ciwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRURJRF9GSUZPX0FERFJfTU9O CQkJMHgwMmViCisKKy8qIEVESUQgRklGTyBSZWFkIERhdGEsIGRlZmF1bHQgdmFsdWU6IDB4MDAg Ki8KKyNkZWZpbmUgUkVHX0VESURfRklGT19SRF9EQVRBCQkJMHgwMmVjCisKKy8qIEVESUQgRERD IFNlZ21lbnQgUG9pbnRlciwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRURJ RF9TVEFSVF9FWFQJCQkweDAyZWQKKworLyogVFggSVAgQklTVCBDTlRMIGFuZCBTdGF0dXMsIGRl ZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RYX0lQX0JJU1RfQ05UTFNUQQkJCTB4 MDJmMgorI2RlZmluZSBCSVRfVFhfSVBfQklTVF9DTlRMU1RBX1RYQklTVF9RVUFSVEVSX0NMS19T RUwgQklUKDYpCisjZGVmaW5lIEJJVF9UWF9JUF9CSVNUX0NOVExTVEFfVFhCSVNUX0RPTkUJQklU KDUpCisjZGVmaW5lIEJJVF9UWF9JUF9CSVNUX0NOVExTVEFfVFhCSVNUX09OCUJJVCg0KQorI2Rl ZmluZSBCSVRfVFhfSVBfQklTVF9DTlRMU1RBX1RYQklTVF9SVU4JQklUKDMpCisjZGVmaW5lIEJJ VF9UWF9JUF9CSVNUX0NOVExTVEFfVFhDTEtfSEFMRl9TRUwJQklUKDIpCisjZGVmaW5lIEJJVF9U WF9JUF9CSVNUX0NOVExTVEFfVFhCSVNUX0VOCUJJVCgxKQorI2RlZmluZSBCSVRfVFhfSVBfQklT VF9DTlRMU1RBX1RYQklTVF9TRUwJQklUKDApCisKKy8qIFRYIElQIEJJU1QgSU5TVCBMT1csIGRl ZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RYX0lQX0JJU1RfSU5TVF9MT1cJCQkw eDAyZjMKKyNkZWZpbmUgUkVHX1RYX0lQX0JJU1RfSU5TVF9ISUdICQkweDAyZjQKKworLyogVFgg SVAgQklTVCBQQVRURVJOIExPVywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdf VFhfSVBfQklTVF9QQVRfTE9XCQkJMHgwMmY1CisjZGVmaW5lIFJFR19UWF9JUF9CSVNUX1BBVF9I SUdICQkJMHgwMmY2CisKKy8qIFRYIElQIEJJU1QgQ09ORklHVVJFIExPVywgZGVmYXVsdCB2YWx1 ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVFhfSVBfQklTVF9DT05GX0xPVwkJCTB4MDJmNworI2Rl ZmluZSBSRUdfVFhfSVBfQklTVF9DT05GX0hJR0gJCTB4MDJmOAorCisvKiBFLU1TQyBHZW5lcmFs IENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4ODAgKi8KKyNkZWZpbmUgUkVHX0dFTkNUTAkJCQkw eDAzMDAKKyNkZWZpbmUgQklUX0dFTkNUTF9TUEVDX1RSQU5TX0RJUwkJQklUKDcpCisjZGVmaW5l IEJJVF9HRU5DVExfRElTX1hNSVRfRVJSX1NUQVRFCQlCSVQoNikKKyNkZWZpbmUgQklUX0dFTkNU TF9TUElfTUlTT19FREdFCQlCSVQoNSkKKyNkZWZpbmUgQklUX0dFTkNUTF9TUElfTU9TSV9FREdF CQlCSVQoNCkKKyNkZWZpbmUgQklUX0dFTkNUTF9DTFJfRU1TQ19SRklGTwkJQklUKDMpCisjZGVm aW5lIEJJVF9HRU5DVExfQ0xSX0VNU0NfWEZJRk8JCUJJVCgyKQorI2RlZmluZSBCSVRfR0VOQ1RM X1NUQVJUX1RSQUlOX1NFUQkJQklUKDEpCisjZGVmaW5lIEJJVF9HRU5DVExfRU1TQ19FTgkJCUJJ VCgwKQorCisvKiBFLU1TQyBDb21tYSBFcnJvckNOVCwgZGVmYXVsdCB2YWx1ZTogMHgwMyAqLwor I2RlZmluZSBSRUdfQ09NTUVDTlQJCQkJMHgwMzA1CisjZGVmaW5lIEJJVF9DT01NRUNOVF9JMkNf VE9fRU1TQ19FTgkJQklUKDcpCisjZGVmaW5lIE1TS19DT01NRUNOVF9DT01NQV9DSEFSX0VSUl9D TlQJCTB4MGYKKworLyogRS1NU0MgUkZJRk8gQnl0ZUNudCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAq LworI2RlZmluZSBSRUdfRU1TQ1JGSUZPQkNOVEwJCQkweDAzMWEKKyNkZWZpbmUgUkVHX0VNU0NS RklGT0JDTlRICQkJMHgwMzFiCisKKy8qIFNQSSBCdXJzdCBDbnQgU3RhdHVzLCBkZWZhdWx0IHZh bHVlOiAweDAwICovCisjZGVmaW5lIFJFR19TUElCVVJTVENOVAkJCQkweDAzMWUKKworLyogU1BJ IEJ1cnN0IFN0YXR1cyBhbmQgU1dSU1QsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUg UkVHX1NQSUJVUlNUU1RBVAkJCTB4MDMyMgorI2RlZmluZSBCSVRfU1BJQlVSU1RTVEFUX1NQSV9I RENQUlNUCQlCSVQoNykKKyNkZWZpbmUgQklUX1NQSUJVUlNUU1RBVF9TUElfQ0JVU1JTVAkJQklU KDYpCisjZGVmaW5lIEJJVF9TUElCVVJTVFNUQVRfU1BJX1NSU1QJCUJJVCg1KQorI2RlZmluZSBC SVRfU1BJQlVSU1RTVEFUX0VNU0NfTk9STUFMX01PREUJQklUKDApCisKKy8qIEUtTVNDIDFzdCBJ bnRlcnJ1cHQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0VNU0NJTlRSCQkJ CTB4MDMyMworI2RlZmluZSBCSVRfRU1TQ0lOVFJfRU1TQ19YRklGT19FTVBUWQkJQklUKDcpCisj ZGVmaW5lIEJJVF9FTVNDSU5UUl9FTVNDX1hNSVRfQUNLX1RPVVQJCUJJVCg2KQorI2RlZmluZSBC SVRfRU1TQ0lOVFJfRU1TQ19SRklGT19SRUFEX0VSUglCSVQoNSkKKyNkZWZpbmUgQklUX0VNU0NJ TlRSX0VNU0NfWEZJRk9fV1JJVEVfRVJSCUJJVCg0KQorI2RlZmluZSBCSVRfRU1TQ0lOVFJfRU1T Q19DT01NQV9DSEFSX0VSUglCSVQoMykKKyNkZWZpbmUgQklUX0VNU0NJTlRSX0VNU0NfWE1JVF9E T05FCQlCSVQoMikKKyNkZWZpbmUgQklUX0VNU0NJTlRSX0VNU0NfWE1JVF9HTlRfVE9VVAkJQklU KDEpCisjZGVmaW5lIEJJVF9FTVNDSU5UUl9TUElfRFZMRAkJQklUKDApCisKKy8qIEUtTVNDIElu dGVycnVwdCBNYXNrLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19FTVNDSU5U Uk1BU0sJCQkweDAzMjQKKworLyogSTJDIEUtTVNDIFhNSVQgRklGTyBXcml0ZSBQb3J0LCBkZWZh dWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19FTVNDX1hNSVRfV1JJVEVfUE9SVAkJMHgw MzJhCisKKy8qIEkyQyBFLU1TQyBSQ1YgRklGTyBXcml0ZSBQb3J0LCBkZWZhdWx0IHZhbHVlOiAw eDAwICovCisjZGVmaW5lIFJFR19FTVNDX1JDVl9SRUFEX1BPUlQJCQkweDAzMmIKKworLyogRS1N U0MgMm5kIEludGVycnVwdCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRU1T Q0lOVFIxCQkJCTB4MDMyYworI2RlZmluZSBCSVRfRU1TQ0lOVFIxX0VNU0NfVFJBSU5JTkdfQ09N TUFfRVJSCUJJVCgwKQorCisvKiBFLU1TQyBJbnRlcnJ1cHQgTWFzaywgZGVmYXVsdCB2YWx1ZTog MHgwMCAqLworI2RlZmluZSBSRUdfRU1TQ0lOVFJNQVNLMQkJCTB4MDMyZAorI2RlZmluZSBCSVRf RU1TQ0lOVFJNQVNLMV9FTVNDX0lOVFJNQVNLMV8wCUJJVCgwKQorCisvKiBNSEwgVG9wIEN0bCwg ZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfTUhMX1RPUF9DVEwJCQkJMHgwMzMw CisjZGVmaW5lIEJJVF9NSExfVE9QX0NUTF9NSEwzX0RPQ19TRUwJCUJJVCg3KQorI2RlZmluZSBC SVRfTUhMX1RPUF9DVExfTUhMX1BQX1NFTAkJQklUKDYpCisjZGVmaW5lIE1TS19NSExfVE9QX0NU TF9JRl9USU1JTkdfQ1RMCQkweDAzCisKKy8qIE1ITCBEYXRhUGF0aCAxc3QgQ3RsLCBkZWZhdWx0 IHZhbHVlOiAweGJjICovCisjZGVmaW5lIFJFR19NSExfRFBfQ1RMMAkJCQkweDAzMzEKKyNkZWZp bmUgQklUX01ITF9EUF9DVEwwX0RQX09FCQkJQklUKDcpCisjZGVmaW5lIEJJVF9NSExfRFBfQ1RM MF9UWF9PRV9PVlIJCUJJVCg2KQorI2RlZmluZSBNU0tfTUhMX0RQX0NUTDBfVFhfT0UJCQkweDNm CisKKy8qIE1ITCBEYXRhUGF0aCAybmQgQ3RsLCBkZWZhdWx0IHZhbHVlOiAweGJiICovCisjZGVm aW5lIFJFR19NSExfRFBfQ1RMMQkJCQkweDAzMzIKKyNkZWZpbmUgTVNLX01ITF9EUF9DVEwxX0NL X1NXSU5HX0NUTAkJMHhmMAorI2RlZmluZSBNU0tfTUhMX0RQX0NUTDFfRFRfU1dJTkdfQ1RMCQkw eDBmCisKKy8qIE1ITCBEYXRhUGF0aCAzcmQgQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDJmICovCisj ZGVmaW5lIFJFR19NSExfRFBfQ1RMMgkJCQkweDAzMzMKKyNkZWZpbmUgQklUX01ITF9EUF9DVEwy X0NMS19CWVBBU1NfRU4JCUJJVCg3KQorI2RlZmluZSBNU0tfTUhMX0RQX0NUTDJfREFNUF9URVJN X1NFTAkJMHgzMAorI2RlZmluZSBNU0tfTUhMX0RQX0NUTDJfQ0tfVEVSTV9TRUwJCTB4MGMKKyNk ZWZpbmUgTVNLX01ITF9EUF9DVEwyX0RUX1RFUk1fU0VMCQkweDAzCisKKy8qIE1ITCBEYXRhUGF0 aCA0dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDQ4ICovCisjZGVmaW5lIFJFR19NSExfRFBfQ1RM MwkJCQkweDAzMzQKKyNkZWZpbmUgTVNLX01ITF9EUF9DVEwzX0RUX0RSVl9WTkJDX0NUTAkJMHhm MAorI2RlZmluZSBNU0tfTUhMX0RQX0NUTDNfRFRfRFJWX1ZOQl9DVEwJCTB4MGYKKworLyogTUhM IERhdGFQYXRoIDV0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4NDggKi8KKyNkZWZpbmUgUkVHX01I TF9EUF9DVEw0CQkJCTB4MDMzNQorI2RlZmluZSBNU0tfTUhMX0RQX0NUTDRfQ0tfRFJWX1ZOQkNf Q1RMCQkweGYwCisjZGVmaW5lIE1TS19NSExfRFBfQ1RMNF9DS19EUlZfVk5CX0NUTAkJMHgwZgor CisvKiBNSEwgRGF0YVBhdGggNnRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgzZiAqLworI2RlZmlu ZSBSRUdfTUhMX0RQX0NUTDUJCQkJMHgwMzM2CisjZGVmaW5lIEJJVF9NSExfRFBfQ1RMNV9SU0VO X0VOX09WUgkJQklUKDcpCisjZGVmaW5lIEJJVF9NSExfRFBfQ1RMNV9SU0VOX0VOCQkJQklUKDYp CisjZGVmaW5lIE1TS19NSExfRFBfQ1RMNV9EQU1QX1RFUk1fVkdTX0NUTAkweDMwCisjZGVmaW5l IE1TS19NSExfRFBfQ1RMNV9DS19URVJNX1ZHU19DVEwJCTB4MGMKKyNkZWZpbmUgTVNLX01ITF9E UF9DVEw1X0RUX1RFUk1fVkdTX0NUTAkJMHgwMworCisvKiBNSEwgUExMIDFzdCBDdGwsIGRlZmF1 bHQgdmFsdWU6IDB4MDUgKi8KKyNkZWZpbmUgUkVHX01ITF9QTExfQ1RMMAkJCTB4MDMzNworI2Rl ZmluZSBCSVRfTUhMX1BMTF9DVEwwX0FVRF9DTEtfRU4JCUJJVCg3KQorCisjZGVmaW5lIE1TS19N SExfUExMX0NUTDBfQVVEX0NMS19SQVRJTwkJMHg3MAorI2RlZmluZSBWQUxfTUhMX1BMTF9DVEww X0FVRF9DTEtfUkFUSU9fNV8xMAkweDcwCisjZGVmaW5lIFZBTF9NSExfUExMX0NUTDBfQVVEX0NM S19SQVRJT181XzYJMHg2MAorI2RlZmluZSBWQUxfTUhMX1BMTF9DVEwwX0FVRF9DTEtfUkFUSU9f NV80CTB4NTAKKyNkZWZpbmUgVkFMX01ITF9QTExfQ1RMMF9BVURfQ0xLX1JBVElPXzVfMgkweDQw CisjZGVmaW5lIFZBTF9NSExfUExMX0NUTDBfQVVEX0NMS19SQVRJT181XzUJMHgzMAorI2RlZmlu ZSBWQUxfTUhMX1BMTF9DVEwwX0FVRF9DTEtfUkFUSU9fNV8zCTB4MjAKKyNkZWZpbmUgVkFMX01I TF9QTExfQ1RMMF9BVURfQ0xLX1JBVElPXzVfMl9QUklNRSAweDEwCisjZGVmaW5lIFZBTF9NSExf UExMX0NUTDBfQVVEX0NMS19SQVRJT181XzEJMHgwMAorCisjZGVmaW5lIE1TS19NSExfUExMX0NU TDBfSERNSV9DTEtfUkFUSU8JCTB4MGMKKyNkZWZpbmUgVkFMX01ITF9QTExfQ1RMMF9IRE1JX0NM S19SQVRJT180WAkweDBjCisjZGVmaW5lIFZBTF9NSExfUExMX0NUTDBfSERNSV9DTEtfUkFUSU9f MlgJMHgwOAorI2RlZmluZSBWQUxfTUhMX1BMTF9DVEwwX0hETUlfQ0xLX1JBVElPXzFYCTB4MDQK KyNkZWZpbmUgVkFMX01ITF9QTExfQ1RMMF9IRE1JX0NMS19SQVRJT19IQUxGX1gJMHgwMAorCisj ZGVmaW5lIEJJVF9NSExfUExMX0NUTDBfQ1JZU1RBTF9DTEtfU0VMCUJJVCgxKQorI2RlZmluZSBC SVRfTUhMX1BMTF9DVEwwX1pPTkVfTUFTS19PRQkJQklUKDApCisKKy8qIE1ITCBQTEwgM3JkIEN0 bCwgZGVmYXVsdCB2YWx1ZTogMHg4MCAqLworI2RlZmluZSBSRUdfTUhMX1BMTF9DVEwyCQkJMHgw MzM5CisjZGVmaW5lIEJJVF9NSExfUExMX0NUTDJfQ0xLREVURUNUX0VOCQlCSVQoNykKKyNkZWZp bmUgQklUX01ITF9QTExfQ1RMMl9NRUFTX0ZWQ08JCUJJVCgzKQorI2RlZmluZSBCSVRfTUhMX1BM TF9DVEwyX1BMTF9GQVNUX0xPQ0sJCUJJVCgyKQorI2RlZmluZSBNU0tfTUhMX1BMTF9DVEwyX1BM TF9MRl9TRUwJCTB4MDMKKworLyogTUhMIENCVVMgMXN0IEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgx MiAqLworI2RlZmluZSBSRUdfTUhMX0NCVVNfQ1RMMAkJCTB4MDM0MAorI2RlZmluZSBCSVRfTUhM X0NCVVNfQ1RMMF9DQlVTX1JHTkRfVEVTVF9NT0RFCUJJVCg3KQorCisjZGVmaW5lIE1TS19NSExf Q0JVU19DVEwwX0NCVVNfUkdORF9WVEhfQ1RMCTB4MzAKKyNkZWZpbmUgVkFMX01ITF9DQlVTX0NU TDBfQ0JVU19SR05EX1ZCSUFTXzczNAkweDAwCisjZGVmaW5lIFZBTF9NSExfQ0JVU19DVEwwX0NC VVNfUkdORF9WQklBU183NDcJMHgxMAorI2RlZmluZSBWQUxfTUhMX0NCVVNfQ1RMMF9DQlVTX1JH TkRfVkJJQVNfNzQwCTB4MjAKKyNkZWZpbmUgVkFMX01ITF9DQlVTX0NUTDBfQ0JVU19SR05EX1ZC SUFTXzc1NAkweDMwCisKKyNkZWZpbmUgTVNLX01ITF9DQlVTX0NUTDBfQ0JVU19SRVNfVEVTVF9T RUwJMHgwYworCisjZGVmaW5lIE1TS19NSExfQ0JVU19DVEwwX0NCVVNfRFJWX1NFTAkJMHgwMwor I2RlZmluZSBWQUxfTUhMX0NCVVNfQ1RMMF9DQlVTX0RSVl9TRUxfV0VBS0VTVAkweDAwCisjZGVm aW5lIFZBTF9NSExfQ0JVU19DVEwwX0NCVVNfRFJWX1NFTF9XRUFLCTB4MDEKKyNkZWZpbmUgVkFM X01ITF9DQlVTX0NUTDBfQ0JVU19EUlZfU0VMX1NUUk9ORwkweDAyCisjZGVmaW5lIFZBTF9NSExf Q0JVU19DVEwwX0NCVVNfRFJWX1NFTF9TVFJPTkdFU1QgMHgwMworCisvKiBNSEwgQ0JVUyAybmQg Q3RsLCBkZWZhdWx0IHZhbHVlOiAweDAzICovCisjZGVmaW5lIFJFR19NSExfQ0JVU19DVEwxCQkJ MHgwMzQxCisjZGVmaW5lIE1TS19NSExfQ0JVU19DVEwxX0NCVVNfUkdORF9SRVNfQ1RMCTB4MDcK KyNkZWZpbmUgVkFMX01ITF9DQlVTX0NUTDFfMDg4OF9PSE0JCTB4MDAKKyNkZWZpbmUgVkFMX01I TF9DQlVTX0NUTDFfMTExNV9PSE0JCTB4MDQKKyNkZWZpbmUgVkFMX01ITF9DQlVTX0NUTDFfMTM3 OF9PSE0JCTB4MDcKKworLyogTUhMIENvQyAxc3QgQ3RsLCBkZWZhdWx0IHZhbHVlOiAweGMzICov CisjZGVmaW5lIFJFR19NSExfQ09DX0NUTDAJCQkweDAzNDIKKyNkZWZpbmUgQklUX01ITF9DT0Nf Q1RMMF9DT0NfQklBU19FTgkJQklUKDcpCisjZGVmaW5lIE1TS19NSExfQ09DX0NUTDBfQ09DX0JJ QVNfQ1RMCQkweDcwCisjZGVmaW5lIE1TS19NSExfQ09DX0NUTDBfQ09DX1RFUk1fQ1RMCQkweDA3 CisKKy8qIE1ITCBDb0MgMm5kIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHg4NyAqLworI2RlZmluZSBS RUdfTUhMX0NPQ19DVEwxCQkJMHgwMzQzCisjZGVmaW5lIEJJVF9NSExfQ09DX0NUTDFfQ09DX0VO CQkJQklUKDcpCisjZGVmaW5lIE1TS19NSExfQ09DX0NUTDFfQ09DX0RSVl9DVEwJCTB4M2YKKwor LyogTUhMIENvQyA0dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19N SExfQ09DX0NUTDMJCQkweDAzNDUKKyNkZWZpbmUgQklUX01ITF9DT0NfQ1RMM19DT0NfQUVDSE9f RU4JCUJJVCgwKQorCisvKiBNSEwgQ29DIDV0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MjggKi8K KyNkZWZpbmUgUkVHX01ITF9DT0NfQ1RMNAkJCTB4MDM0NgorI2RlZmluZSBNU0tfTUhMX0NPQ19D VEw0X0NPQ19JRl9DVEwJCTB4ZjAKKyNkZWZpbmUgTVNLX01ITF9DT0NfQ1RMNF9DT0NfU0xFV19D VEwJCTB4MGYKKworLyogTUhMIENvQyA2dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDBkICovCisj ZGVmaW5lIFJFR19NSExfQ09DX0NUTDUJCQkweDAzNDcKKworLyogTUhMIERvQyAxc3QgQ3RsLCBk ZWZhdWx0IHZhbHVlOiAweDE4ICovCisjZGVmaW5lIFJFR19NSExfRE9DX0NUTDAJCQkweDAzNDkK KyNkZWZpbmUgQklUX01ITF9ET0NfQ1RMMF9ET0NfUlhEQVRBX0VOCQlCSVQoNykKKyNkZWZpbmUg TVNLX01ITF9ET0NfQ1RMMF9ET0NfRE1fVEVSTQkJMHgzOAorI2RlZmluZSBNU0tfTUhMX0RPQ19D VEwwX0RPQ19PUE1PREUJCTB4MDYKKyNkZWZpbmUgQklUX01ITF9ET0NfQ1RMMF9ET0NfUlhCSUFT X0VOCQlCSVQoMCkKKworLyogTUhMIERhdGFQYXRoIDd0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4 MmEgKi8KKyNkZWZpbmUgUkVHX01ITF9EUF9DVEw2CQkJCTB4MDM1MAorI2RlZmluZSBCSVRfTUhM X0RQX0NUTDZfRFBfVEFQMl9TR04JCUJJVCg1KQorI2RlZmluZSBCSVRfTUhMX0RQX0NUTDZfRFBf VEFQMl9FTgkJQklUKDQpCisjZGVmaW5lIEJJVF9NSExfRFBfQ1RMNl9EUF9UQVAxX1NHTgkJQklU KDMpCisjZGVmaW5lIEJJVF9NSExfRFBfQ1RMNl9EUF9UQVAxX0VOCQlCSVQoMikKKyNkZWZpbmUg QklUX01ITF9EUF9DVEw2X0RUX1BSRURSVl9GRUVEQ0FQX0VOCUJJVCgxKQorI2RlZmluZSBCSVRf TUhMX0RQX0NUTDZfRFBfUFJFX1BPU1RfU0VMCQlCSVQoMCkKKworLyogTUhMIERhdGFQYXRoIDh0 aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDYgKi8KKyNkZWZpbmUgUkVHX01ITF9EUF9DVEw3CQkJ CTB4MDM1MQorI2RlZmluZSBNU0tfTUhMX0RQX0NUTDdfRFRfRFJWX1ZCSUFTX0NBU0NUTAkweGYw CisjZGVmaW5lIE1TS19NSExfRFBfQ1RMN19EVF9EUlZfSVJFRl9DVEwJCTB4MGYKKworLyogVHgg Wm9uZSBDdGwxLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19UWF9aT05FX0NU TDEJCQkweDAzNjEKKyNkZWZpbmUgVkFMX1RYX1pPTkVfQ1RMMV9UWF9aT05FX0NUUkxfTU9ERQkw eDA4CisKKy8qIE1ITDMgVHggWm9uZSBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZp bmUgUkVHX01ITDNfVFhfWk9ORV9DVEwJCQkweDAzNjQKKyNkZWZpbmUgQklUX01ITDNfVFhfWk9O RV9DVExfTUhMMl9JTlRQTFRfWk9ORV9NQU5VX0VOIEJJVCg3KQorI2RlZmluZSBNU0tfTUhMM19U WF9aT05FX0NUTF9NSEwzX1RYX1pPTkUJMHgwMworCisjZGVmaW5lIE1TS19UWF9aT05FX0NUTDNf VFhfWk9ORQkJMHgwMworI2RlZmluZSBWQUxfVFhfWk9ORV9DVEwzX1RYX1pPTkVfNkdCUFMJCTB4 MDAKKyNkZWZpbmUgVkFMX1RYX1pPTkVfQ1RMM19UWF9aT05FXzNHQlBTCQkweDAxCisjZGVmaW5l IFZBTF9UWF9aT05FX0NUTDNfVFhfWk9ORV8xXzVHQlBTCTB4MDIKKworLyogSERDUCBQb2xsaW5n IENvbnRyb2wgYW5kIFN0YXR1cywgZGVmYXVsdCB2YWx1ZTogMHg3MCAqLworI2RlZmluZSBSRUdf SERDUDJYX1BPTExfQ1MJCQkweDAzOTEKKworI2RlZmluZSBCSVRfSERDUDJYX1BPTExfQ1NfSERD UDJYX01TR19TWl9DTFJfT1BUSU9OIEJJVCg2KQorI2RlZmluZSBCSVRfSERDUDJYX1BPTExfQ1Nf SERDUDJYX1JQVF9SRUFEWV9DTFJfT1BUSU9OIEJJVCg1KQorI2RlZmluZSBCSVRfSERDUDJYX1BP TExfQ1NfSERDUDJYX1JFQVVUSF9SRVFfQ0xSX09QVElPTiBCSVQoNCkKKyNkZWZpbmUgTVNLX0hE Q1AyWF9QT0xMX0NTXwkJCTB4MGMKKyNkZWZpbmUgQklUX0hEQ1AyWF9QT0xMX0NTX0hEQ1AyWF9E SVNfUE9MTF9HTlQJQklUKDEpCisjZGVmaW5lIEJJVF9IRENQMlhfUE9MTF9DU19IRENQMlhfRElT X1BPTExfRU4JQklUKDApCisKKy8qIEhEQ1AgSW50ZXJydXB0IDAsIGRlZmF1bHQgdmFsdWU6IDB4 MDAgKi8KKyNkZWZpbmUgUkVHX0hEQ1AyWF9JTlRSMAkJCTB4MDM5OAorCisvKiBIRENQIEludGVy cnVwdCAwIE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0hEQ1AyWF9J TlRSMF9NQVNLCQkJMHgwMzk5CisKKy8qIEhEQ1AgR2VuZXJhbCBDb250cm9sIDAsIGRlZmF1bHQg dmFsdWU6IDB4MDIgKi8KKyNkZWZpbmUgUkVHX0hEQ1AyWF9DVFJMXzAJCQkweDAzYTAKKyNkZWZp bmUgQklUX0hEQ1AyWF9DVFJMXzBfSERDUDJYX0VOQ1JZUFRfRU4JQklUKDcpCisjZGVmaW5lIEJJ VF9IRENQMlhfQ1RSTF8wX0hEQ1AyWF9QT0xJTlRfU0VMCUJJVCg2KQorI2RlZmluZSBCSVRfSERD UDJYX0NUUkxfMF9IRENQMlhfUE9MSU5UX09WUglCSVQoNSkKKyNkZWZpbmUgQklUX0hEQ1AyWF9D VFJMXzBfSERDUDJYX1BSRUNPTVBVVEUJQklUKDQpCisjZGVmaW5lIEJJVF9IRENQMlhfQ1RSTF8w X0hEQ1AyWF9IRE1JTU9ERQlCSVQoMykKKyNkZWZpbmUgQklUX0hEQ1AyWF9DVFJMXzBfSERDUDJY X1JFUEVBVEVSCUJJVCgyKQorI2RlZmluZSBCSVRfSERDUDJYX0NUUkxfMF9IRENQMlhfSERDUFRY CQlCSVQoMSkKKyNkZWZpbmUgQklUX0hEQ1AyWF9DVFJMXzBfSERDUDJYX0VOCQlCSVQoMCkKKwor LyogSERDUCBHZW5lcmFsIENvbnRyb2wgMSwgZGVmYXVsdCB2YWx1ZTogMHgwOCAqLworI2RlZmlu ZSBSRUdfSERDUDJYX0NUUkxfMQkJCTB4MDNhMQorI2RlZmluZSBNU0tfSERDUDJYX0NUUkxfMV9I RENQMlhfUkVBVVRIX01TS18zXzAJMHhmMAorI2RlZmluZSBCSVRfSERDUDJYX0NUUkxfMV9IRENQ MlhfSFBEX1NXCQlCSVQoMykKKyNkZWZpbmUgQklUX0hEQ1AyWF9DVFJMXzFfSERDUDJYX0hQRF9P VlIJQklUKDIpCisjZGVmaW5lIEJJVF9IRENQMlhfQ1RSTF8xX0hEQ1AyWF9DVEwzTVNLCUJJVCgx KQorI2RlZmluZSBCSVRfSERDUDJYX0NUUkxfMV9IRENQMlhfUkVBVVRIX1NXCUJJVCgwKQorCisv KiBIRENQIE1pc2MgQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdf SERDUDJYX01JU0NfQ1RSTAkJCTB4MDNhNQorI2RlZmluZSBCSVRfSERDUDJYX01JU0NfQ1RSTF9I RENQMlhfUlBUX1NNTkdfWEZFUl9TVEFSVCBCSVQoNCkKKyNkZWZpbmUgQklUX0hEQ1AyWF9NSVND X0NUUkxfSERDUDJYX1JQVF9TTU5HX1dSX1NUQVJUIEJJVCgzKQorI2RlZmluZSBCSVRfSERDUDJY X01JU0NfQ1RSTF9IRENQMlhfUlBUX1NNTkdfV1IJQklUKDIpCisjZGVmaW5lIEJJVF9IRENQMlhf TUlTQ19DVFJMX0hEQ1AyWF9SUFRfUkNWSURfUkRfU1RBUlQgQklUKDEpCisjZGVmaW5lIEJJVF9I RENQMlhfTUlTQ19DVFJMX0hEQ1AyWF9SUFRfUkNWSURfUkQJQklUKDApCisKKy8qIEhEQ1AgUlBU IFNNTkcgSywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfSERDUDJYX1JQVF9T TU5HX0sJCQkweDAzYTYKKworLyogSERDUCBSUFQgU01ORyBJbiwgZGVmYXVsdCB2YWx1ZTogMHgw MCAqLworI2RlZmluZSBSRUdfSERDUDJYX1JQVF9TTU5HX0lOCQkJMHgwM2E3CisKKy8qIEhEQ1Ag QXV0aCBTdGF0dXMsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0hEQ1AyWF9B VVRIX1NUQVQJCQkweDAzYWEKKworLyogSERDUCBSUFQgUkNWSUQgT3V0LCBkZWZhdWx0IHZhbHVl OiAweDAwICovCisjZGVmaW5lIFJFR19IRENQMlhfUlBUX1JDVklEX09VVAkJMHgwM2FjCisKKy8q IEhEQ1AgVFAxLCBkZWZhdWx0IHZhbHVlOiAweDYyICovCisjZGVmaW5lIFJFR19IRENQMlhfVFAx CQkJCTB4MDNiNAorCisvKiBIRENQIEdQIE91dCAwLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisj ZGVmaW5lIFJFR19IRENQMlhfR1BfT1VUMAkJCTB4MDNjNworCisvKiBIRENQIFJlcGVhdGVyIFJD VlIgSUQgMCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfSERDUDJYX1JQVF9S Q1ZSX0lEMAkJCTB4MDNkMQorCisvKiBIRENQIEREQ00gU3RhdHVzLCBkZWZhdWx0IHZhbHVlOiAw eDAwICovCisjZGVmaW5lIFJFR19IRENQMlhfRERDTV9TVFMJCQkweDAzZDgKKyNkZWZpbmUgTVNL X0hEQ1AyWF9ERENNX1NUU19IRENQMlhfRERDTV9FUlJfU1RTXzNfMCAweGYwCisjZGVmaW5lIE1T S19IRENQMlhfRERDTV9TVFNfSERDUDJYX0REQ01fQ1RMX0NTXzNfMCAweDBmCisKKy8qIEhETUky TUhMMyBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDBhICovCisjZGVmaW5lIFJFR19NM19DVFJM CQkJCTB4MDNlMAorI2RlZmluZSBCSVRfTTNfQ1RSTF9IMk1fU1dSU1QJCQlCSVQoNCkKKyNkZWZp bmUgQklUX00zX0NUUkxfU1dfTUhMM19TRUwJCQlCSVQoMykKKyNkZWZpbmUgQklUX00zX0NUUkxf TTNBVl9FTgkJCUJJVCgyKQorI2RlZmluZSBCSVRfTTNfQ1RSTF9FTkNfVE1EUwkJCUJJVCgxKQor I2RlZmluZSBCSVRfTTNfQ1RSTF9NSEwzX01BU1RFUl9FTgkJQklUKDApCisKKyNkZWZpbmUgVkFM X00zX0NUUkxfTUhMMV8yX1ZBTFVFIChCSVRfTTNfQ1RSTF9TV19NSEwzX1NFTCBcCisJCQkJICB8 IEJJVF9NM19DVFJMX0VOQ19UTURTKQorI2RlZmluZSBWQUxfTTNfQ1RSTF9NSEwzX1ZBTFVFIChC SVRfTTNfQ1RSTF9TV19NSEwzX1NFTCBcCisJCQkJfCBCSVRfTTNfQ1RSTF9NM0FWX0VOIFwKKwkJ CQl8IEJJVF9NM19DVFJMX0VOQ19UTURTIFwKKwkJCQl8IEJJVF9NM19DVFJMX01ITDNfTUFTVEVS X0VOKQorCisvKiBIRE1JMk1ITDMgUG9ydDAgQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHgwNCAq LworI2RlZmluZSBSRUdfTTNfUDBDVFJMCQkJCTB4MDNlMQorI2RlZmluZSBCSVRfTTNfUDBDVFJM X01ITDNfUDBfSERDUF9FTkNfRU4JQklUKDQpCisjZGVmaW5lIEJJVF9NM19QMENUUkxfTUhMM19Q MF9VTkxJTUlUX0VOCUJJVCgzKQorI2RlZmluZSBCSVRfTTNfUDBDVFJMX01ITDNfUDBfSERDUF9F TgkJQklUKDIpCisjZGVmaW5lIEJJVF9NM19QMENUUkxfTUhMM19QMF9QSVhFTF9NT0RFX1BBQ0tF RAlCSVQoMSkKKyNkZWZpbmUgQklUX00zX1AwQ1RSTF9NSEwzX1AwX1BPUlRfRU4JCUJJVCgwKQor CisjZGVmaW5lIFJFR19NM19QT1NUTQkJCQkweDAzZTIKKyNkZWZpbmUgTVNLX00zX1BPU1RNX1JS UF9ERUNPREUJCQkweGY4CisjZGVmaW5lIE1TS19NM19QT1NUTV9NSEwzX1AwX1NUTV9JRAkJMHgw NworCisvKiBIRE1JMk1ITDMgU2NyYW1ibGUgQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHg0MSAq LworI2RlZmluZSBSRUdfTTNfU0NUUkwJCQkJMHgwM2U2CisjZGVmaW5lIE1TS19NM19TQ1RSTF9N SEwzX1NSX0xFTkdUSAkJMHhmMAorI2RlZmluZSBCSVRfTTNfU0NUUkxfTUhMM19TQ1JBTUJMRVJf RU4JCUJJVCgwKQorCisvKiBIU0lDIERpdiBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDUgKi8KKyNk ZWZpbmUgUkVHX0RJVl9DVExfTUFJTgkJCTB4MDNmMgorI2RlZmluZSBNU0tfRElWX0NUTF9NQUlO X1BSRV9ESVZfQ1RMX01BSU4JMHgxYworI2RlZmluZSBNU0tfRElWX0NUTF9NQUlOX0ZCX0RJVl9D VExfTUFJTgkweDAzCisKKy8qIE1ITCBDYXBhYmlsaXR5IDFzdCBCeXRlLCBkZWZhdWx0IHZhbHVl OiAweDAwICovCisjZGVmaW5lIFJFR19NSExfREVWQ0FQXzAJCQkweDA0MDAKKworLyogTUhMIElu dGVycnVwdCAxc3QgQnl0ZSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfTUhM X0lOVF8wCQkJCTB4MDQyMAorCisvKiBEZXZpY2UgU3RhdHVzIDFzdCBieXRlLCBkZWZhdWx0IHZh bHVlOiAweDAwICovCisjZGVmaW5lIFJFR19NSExfU1RBVF8wCQkJCTB4MDQzMAorCisvKiBDQlVT IFNjcmF0Y2ggUGFkIDFzdCBCeXRlLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJF R19NSExfU0NSUEFEXzAJCQkweDA0NDAKKworLyogTUhMIEV4dGVuZGVkIENhcGFiaWxpdHkgMXN0 IEJ5dGUsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX01ITF9FWFRERVZDQVBf MAkJCTB4MDQ4MAorCisvKiBEZXZpY2UgRXh0ZW5kZWQgU3RhdHVzIDFzdCBieXRlLCBkZWZhdWx0 IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19NSExfRVhUU1RBVF8wCQkJMHgwNDkwCisKKy8q IFRQSSBEVEQgQnl0ZTIsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RQSV9E VERfQjIJCQkJMHgwNjAyCisKKyNkZWZpbmUgVkFMX1RQSV9RVUFOX1JBTkdFX0xJTUlURUQJCTB4 MDEKKyNkZWZpbmUgVkFMX1RQSV9RVUFOX1JBTkdFX0ZVTEwJCQkweDAyCisjZGVmaW5lIFZBTF9U UElfRk9STUFUX1JHQgkJCTB4MDAKKyNkZWZpbmUgVkFMX1RQSV9GT1JNQVRfWUNCQ1I0NDQJCQkw eDAxCisjZGVmaW5lIFZBTF9UUElfRk9STUFUX1lDQkNSNDIyCQkJMHgwMgorI2RlZmluZSBWQUxf VFBJX0ZPUk1BVF9JTlRFUk5BTF9SR0IJCTB4MDMKKyNkZWZpbmUgVkFMX1RQSV9GT1JNQVQoX2Zt dCwgX3FyKSBcCisJCShWQUxfVFBJX0ZPUk1BVF8jI19mbXQgfCAoVkFMX1RQSV9RVUFOX1JBTkdF XyMjX3FyIDw8IDIpKQorCisvKiBJbnB1dCBGb3JtYXQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8K KyNkZWZpbmUgUkVHX1RQSV9JTlBVVAkJCQkweDA2MDkKKyNkZWZpbmUgQklUX1RQSV9JTlBVVF9F WFRFTkRFREJJVE1PREUJCUJJVCg3KQorI2RlZmluZSBCSVRfVFBJX0lOUFVUX0VORElUSEVSCQkJ QklUKDYpCisjZGVmaW5lIE1TS19UUElfSU5QVVRfSU5QVVRfUVVBTl9SQU5HRQkJMHgwYworI2Rl ZmluZSBNU0tfVFBJX0lOUFVUX0lOUFVUX0ZPUk1BVAkJMHgwMworCisvKiBPdXRwdXQgRm9ybWF0 LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19UUElfT1VUUFVUCQkJCTB4MDYw YQorI2RlZmluZSBCSVRfVFBJX09VVFBVVF9DU0NNT0RFNzA5CQlCSVQoNCkKKyNkZWZpbmUgTVNL X1RQSV9PVVRQVVRfT1VUUFVUX1FVQU5fUkFOR0UJMHgwYworI2RlZmluZSBNU0tfVFBJX09VVFBV VF9PVVRQVVRfRk9STUFUCQkweDAzCisKKy8qIFRQSSBBVkkgQ2hlY2sgU3VtLCBkZWZhdWx0IHZh bHVlOiAweDAwICovCisjZGVmaW5lIFJFR19UUElfQVZJX0NIU1VNCQkJMHgwNjBjCisKKy8qIFRQ SSBTeXN0ZW0gQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVFBJ X1NDCQkJCTB4MDYxYQorI2RlZmluZSBCSVRfVFBJX1NDX1RQSV9VUERBVEVfRkxHCQlCSVQoNykK KyNkZWZpbmUgQklUX1RQSV9TQ19UUElfUkVBVVRIX0NUTAkJQklUKDYpCisjZGVmaW5lIEJJVF9U UElfU0NfVFBJX09VVFBVVF9NT0RFXzEJCUJJVCg1KQorI2RlZmluZSBCSVRfVFBJX1NDX1JFR19U TURTX09FX1BPV0VSX0RPV04JQklUKDQpCisjZGVmaW5lIEJJVF9UUElfU0NfVFBJX0FWX01VVEUJ CQlCSVQoMykKKyNkZWZpbmUgQklUX1RQSV9TQ19ERENfR1BVX1JFUVVFU1QJCUJJVCgyKQorI2Rl ZmluZSBCSVRfVFBJX1NDX0REQ19UUElfU1cJCQlCSVQoMSkKKyNkZWZpbmUgQklUX1RQSV9TQ19U UElfT1VUUFVUX01PREVfMF9IRE1JCUJJVCgwKQorCisvKiBUUEkgQ09QUCBRdWVyeSBEYXRhLCBk ZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19UUElfQ09QUF9EQVRBMQkJCTB4MDYy OQorI2RlZmluZSBCSVRfVFBJX0NPUFBfREFUQTFfQ09QUF9HUFJPVAkJQklUKDcpCisjZGVmaW5l IEJJVF9UUElfQ09QUF9EQVRBMV9DT1BQX0xQUk9UCQlCSVQoNikKKyNkZWZpbmUgTVNLX1RQSV9D T1BQX0RBVEExX0NPUFBfTElOS19TVEFUVVMJMHgzMAorI2RlZmluZSBWQUxfVFBJX0NPUFBfTElO S19TVEFUVVNfTk9STUFMCQkweDAwCisjZGVmaW5lIFZBTF9UUElfQ09QUF9MSU5LX1NUQVRVU19M SU5LX0xPU1QJMHgxMAorI2RlZmluZSBWQUxfVFBJX0NPUFBfTElOS19TVEFUVVNfUkVORUdPVElB VElPTl9SRVEgMHgyMAorI2RlZmluZSBWQUxfVFBJX0NPUFBfTElOS19TVEFUVVNfTElOS19TVVNQ RU5ERUQJMHgzMAorI2RlZmluZSBCSVRfVFBJX0NPUFBfREFUQTFfQ09QUF9IRENQX1JFUAlCSVQo MykKKyNkZWZpbmUgQklUX1RQSV9DT1BQX0RBVEExX0NPUFBfQ09OTlRZUEVfMAlCSVQoMikKKyNk ZWZpbmUgQklUX1RQSV9DT1BQX0RBVEExX0NPUFBfUFJPVFlQRQkJQklUKDEpCisjZGVmaW5lIEJJ VF9UUElfQ09QUF9EQVRBMV9DT1BQX0NPTk5UWVBFXzEJQklUKDApCisKKy8qIFRQSSBDT1BQIENv bnRyb2wgRGF0YSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVFBJX0NPUFBf REFUQTIJCQkweDA2MmEKKyNkZWZpbmUgQklUX1RQSV9DT1BQX0RBVEEyX0lOVFJfRU5DUllQVElP TglCSVQoNSkKKyNkZWZpbmUgQklUX1RQSV9DT1BQX0RBVEEyX0tTVl9GT1JXQVJECQlCSVQoNCkK KyNkZWZpbmUgQklUX1RQSV9DT1BQX0RBVEEyX0lOVEVSTV9SSV9DSEVDS19FTglCSVQoMykKKyNk ZWZpbmUgQklUX1RQSV9DT1BQX0RBVEEyX0RPVUJMRV9SSV9DSEVDSwlCSVQoMikKKyNkZWZpbmUg QklUX1RQSV9DT1BQX0RBVEEyX0REQ19TSE9SVF9SSV9SRAlCSVQoMSkKKyNkZWZpbmUgQklUX1RQ SV9DT1BQX0RBVEEyX0NPUFBfUFJPVExFVkVMCUJJVCgwKQorCisvKiBUUEkgSW50ZXJydXB0IEVu YWJsZSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVFBJX0lOVFJfRU4JCQkJ MHgwNjNjCisKKy8qIFRQSSBJbnRlcnJ1cHQgU3RhdHVzIExvdyBCeXRlLCBkZWZhdWx0IHZhbHVl OiAweDAwICovCisjZGVmaW5lIFJFR19UUElfSU5UUl9TVDAJCQkweDA2M2QKKyNkZWZpbmUgQklU X1RQSV9JTlRSX1NUMF9UUElfQVVUSF9DSE5HRV9TVEFUCUJJVCg3KQorI2RlZmluZSBCSVRfVFBJ X0lOVFJfU1QwX1RQSV9WX1JEWV9TVEFUCQlCSVQoNikKKyNkZWZpbmUgQklUX1RQSV9JTlRSX1NU MF9UUElfQ09QUF9DSE5HRV9TVEFUCUJJVCg1KQorI2RlZmluZSBCSVRfVFBJX0lOVFJfU1QwX0tT Vl9GSUZPX0ZJUlNUX1NUQVQJQklUKDMpCisjZGVmaW5lIEJJVF9UUElfSU5UUl9TVDBfUkVBRF9C S1NWX0JDQVBTX0RPTkVfU1RBVCBCSVQoMikKKyNkZWZpbmUgQklUX1RQSV9JTlRSX1NUMF9SRUFE X0JLU1ZfQkNBUFNfRVJSX1NUQVQgQklUKDEpCisjZGVmaW5lIEJJVF9UUElfSU5UUl9TVDBfUkVB RF9CS1NWX0VSUl9TVEFUCUJJVCgwKQorCisvKiBUUEkgRFMgQkNBUFMgU3RhdHVzLCBkZWZhdWx0 IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19UUElfRFNfQkNBUFMJCQkweDA2NDQKKworLyog VFBJIEJTdGF0dXMxLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19UUElfQlNU QVRVUzEJCQkweDA2NDUKKyNkZWZpbmUgQklUX1RQSV9CU1RBVFVTMV9EU19ERVZfRVhDRUVECQlC SVQoNykKKyNkZWZpbmUgTVNLX1RQSV9CU1RBVFVTMV9EU19ERVZfQ05UCQkweDdmCisKKy8qIFRQ SSBCU3RhdHVzMiwgZGVmYXVsdCB2YWx1ZTogMHgxMCAqLworI2RlZmluZSBSRUdfVFBJX0JTVEFU VVMyCQkJMHgwNjQ2CisjZGVmaW5lIE1TS19UUElfQlNUQVRVUzJfRFNfQlNUQVRVUwkJMHhlMAor I2RlZmluZSBCSVRfVFBJX0JTVEFUVVMyX0RTX0hETUlfTU9ERQkJQklUKDQpCisjZGVmaW5lIEJJ VF9UUElfQlNUQVRVUzJfRFNfQ0FTQ19FWENFRUQJCUJJVCgzKQorI2RlZmluZSBNU0tfVFBJX0JT VEFUVVMyX0RTX0RFUFRICQkweDA3CisKKy8qIFRQSSBIVyBPcHRpbWl6YXRpb24gQ29udHJvbCAj MywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVFBJX0hXX09QVDMJCQkJMHgw NmJiCisjZGVmaW5lIEJJVF9UUElfSFdfT1BUM19ERENfREVCVUcJCUJJVCg3KQorI2RlZmluZSBC SVRfVFBJX0hXX09QVDNfUklfQ0hFQ0tfU0tJUAkJQklUKDMpCisjZGVmaW5lIEJJVF9UUElfSFdf T1BUM19UUElfRERDX0JVUlNUX01PREUJQklUKDIpCisjZGVmaW5lIE1TS19UUElfSFdfT1BUM19U UElfRERDX1JFUV9MRVZFTAkweDAzCisKKy8qIFRQSSBJbmZvIEZyYW1lIFNlbGVjdCwgZGVmYXVs dCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVFBJX0lORk9fRlNFTAkJCTB4MDZiZgorI2Rl ZmluZSBCSVRfVFBJX0lORk9fRlNFTF9UUElfSU5GT19FTgkJQklUKDcpCisjZGVmaW5lIEJJVF9U UElfSU5GT19GU0VMX1RQSV9JTkZPX1JQVAkJQklUKDYpCisjZGVmaW5lIEJJVF9UUElfSU5GT19G U0VMX1RQSV9JTkZPX1JFQURfRkxBRwlCSVQoNSkKKyNkZWZpbmUgTVNLX1RQSV9JTkZPX0ZTRUxf VFBJX0lORk9fU0VMCQkweDA3CisKKy8qIFRQSSBJbmZvIEJ5dGUgIzAsIGRlZmF1bHQgdmFsdWU6 IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RQSV9JTkZPX0IwCQkJCTB4MDZjMAorCisvKiBDb0MgU3Rh dHVzLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19DT0NfU1RBVF8wCQkJCTB4 MDcwMAorI2RlZmluZSBSRUdfQ09DX1NUQVRfMQkJCQkweDA3MDEKKyNkZWZpbmUgUkVHX0NPQ19T VEFUXzIJCQkJMHgwNzAyCisjZGVmaW5lIFJFR19DT0NfU1RBVF8zCQkJCTB4MDcwMworI2RlZmlu ZSBSRUdfQ09DX1NUQVRfNAkJCQkweDA3MDQKKyNkZWZpbmUgUkVHX0NPQ19TVEFUXzUJCQkJMHgw NzA1CisKKy8qIENvQyAxc3QgQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDQwICovCisjZGVmaW5lIFJF R19DT0NfQ1RMMAkJCQkweDA3MTAKKworLyogQ29DIDJuZCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4 MGEgKi8KKyNkZWZpbmUgUkVHX0NPQ19DVEwxCQkJCTB4MDcxMQorI2RlZmluZSBNU0tfQ09DX0NU TDFfQ09DX0NUUkwxXzdfNgkJMHhjMAorI2RlZmluZSBNU0tfQ09DX0NUTDFfQ09DX0NUUkwxXzVf MAkJMHgzZgorCisvKiBDb0MgM3JkIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgxNCAqLworI2RlZmlu ZSBSRUdfQ09DX0NUTDIJCQkJMHgwNzEyCisjZGVmaW5lIE1TS19DT0NfQ1RMMl9DT0NfQ1RSTDJf N182CQkweGMwCisjZGVmaW5lIE1TS19DT0NfQ1RMMl9DT0NfQ1RSTDJfNV8wCQkweDNmCisKKy8q IENvQyA0dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDQwICovCisjZGVmaW5lIFJFR19DT0NfQ1RM MwkJCQkweDA3MTMKKyNkZWZpbmUgQklUX0NPQ19DVEwzX0NPQ19DVFJMM183CQlCSVQoNykKKyNk ZWZpbmUgTVNLX0NPQ19DVEwzX0NPQ19DVFJMM182XzAJCTB4N2YKKworLyogQ29DIDd0aCBDdGws IGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NPQ19DVEw2CQkJCTB4MDcxNgor I2RlZmluZSBCSVRfQ09DX0NUTDZfQ09DX0NUUkw2XzcJCUJJVCg3KQorI2RlZmluZSBCSVRfQ09D X0NUTDZfQ09DX0NUUkw2XzYJCUJJVCg2KQorI2RlZmluZSBNU0tfQ09DX0NUTDZfQ09DX0NUUkw2 XzVfMAkJMHgzZgorCisvKiBDb0MgOHRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwNiAqLworI2Rl ZmluZSBSRUdfQ09DX0NUTDcJCQkJMHgwNzE3CisjZGVmaW5lIEJJVF9DT0NfQ1RMN19DT0NfQ1RS TDdfNwkJQklUKDcpCisjZGVmaW5lIEJJVF9DT0NfQ1RMN19DT0NfQ1RSTDdfNgkJQklUKDYpCisj ZGVmaW5lIEJJVF9DT0NfQ1RMN19DT0NfQ1RSTDdfNQkJQklUKDUpCisjZGVmaW5lIE1TS19DT0Nf Q1RMN19DT0NfQ1RSTDdfNF8zCQkweDE4CisjZGVmaW5lIE1TS19DT0NfQ1RMN19DT0NfQ1RSTDdf Ml8wCQkweDA3CisKKy8qIENvQyAxMHRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2Rl ZmluZSBSRUdfQ09DX0NUTDkJCQkJMHgwNzE5CisKKy8qIENvQyAxMXRoIEN0bCwgZGVmYXVsdCB2 YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQ09DX0NUTEEJCQkJMHgwNzFhCisKKy8qIENvQyAx MnRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQ09DX0NUTEIJCQkJ MHgwNzFiCisKKy8qIENvQyAxM3RoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwZiAqLworI2RlZmlu ZSBSRUdfQ09DX0NUTEMJCQkJMHgwNzFjCisKKy8qIENvQyAxNHRoIEN0bCwgZGVmYXVsdCB2YWx1 ZTogMHgwYSAqLworI2RlZmluZSBSRUdfQ09DX0NUTEQJCQkJMHgwNzFkCisjZGVmaW5lIEJJVF9D T0NfQ1RMRF9DT0NfQ1RSTERfNwkJQklUKDcpCisjZGVmaW5lIE1TS19DT0NfQ1RMRF9DT0NfQ1RS TERfNl8wCQkweDdmCisKKy8qIENvQyAxNXRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwYSAqLwor I2RlZmluZSBSRUdfQ09DX0NUTEUJCQkJMHgwNzFlCisjZGVmaW5lIEJJVF9DT0NfQ1RMRV9DT0Nf Q1RSTEVfNwkJQklUKDcpCisjZGVmaW5lIE1TS19DT0NfQ1RMRV9DT0NfQ1RSTEVfNl8wCQkweDdm CisKKy8qIENvQyAxNnRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdf Q09DX0NUTEYJCQkJMHgwNzFmCisjZGVmaW5lIE1TS19DT0NfQ1RMRl9DT0NfQ1RSTEZfN18zCQkw eGY4CisjZGVmaW5lIE1TS19DT0NfQ1RMRl9DT0NfQ1RSTEZfMl8wCQkweDA3CisKKy8qIENvQyAx OHRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgzMiAqLworI2RlZmluZSBSRUdfQ09DX0NUTDExCQkJ CTB4MDcyMQorI2RlZmluZSBNU0tfQ09DX0NUTDExX0NPQ19DVFJMMTFfN180CQkweGYwCisjZGVm aW5lIE1TS19DT0NfQ1RMMTFfQ09DX0NUUkwxMV8zXzAJCTB4MGYKKworLyogQ29DIDIxc3QgQ3Rs LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19DT0NfQ1RMMTQJCQkJMHgwNzI0 CisjZGVmaW5lIE1TS19DT0NfQ1RMMTRfQ09DX0NUUkwxNF83XzQJCTB4ZjAKKyNkZWZpbmUgTVNL X0NPQ19DVEwxNF9DT0NfQ1RSTDE0XzNfMAkJMHgwZgorCisvKiBDb0MgMjJuZCBDdGwsIGRlZmF1 bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NPQ19DVEwxNQkJCQkweDA3MjUKKyNkZWZp bmUgQklUX0NPQ19DVEwxNV9DT0NfQ1RSTDE1XzcJCUJJVCg3KQorI2RlZmluZSBNU0tfQ09DX0NU TDE1X0NPQ19DVFJMMTVfNl80CQkweDcwCisjZGVmaW5lIE1TS19DT0NfQ1RMMTVfQ09DX0NUUkwx NV8zXzAJCTB4MGYKKworLyogQ29DIEludGVycnVwdCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwor I2RlZmluZSBSRUdfQ09DX0lOVFIJCQkJMHgwNzI2CisKKy8qIENvQyBJbnRlcnJ1cHQgTWFzaywg ZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQ09DX0lOVFJfTUFTSwkJCTB4MDcy NworI2RlZmluZSBCSVRfQ09DX1BMTF9MT0NLX1NUQVRVU19DSEFOR0UJCUJJVCgwKQorI2RlZmlu ZSBCSVRfQ09DX0NBTElCUkFUSU9OX0RPTkUJCUJJVCgxKQorCisvKiBDb0MgTWlzYyBDdGwsIGRl ZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NPQ19NSVNDX0NUTDAJCQkweDA3MjgK KyNkZWZpbmUgQklUX0NPQ19NSVNDX0NUTDBfRlNNX01PTgkJQklUKDcpCisKKy8qIENvQyAyNHRo IEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQ09DX0NUTDE3CQkJCTB4 MDcyYQorI2RlZmluZSBNU0tfQ09DX0NUTDE3X0NPQ19DVFJMMTdfN180CQkweGYwCisjZGVmaW5l IE1TS19DT0NfQ1RMMTdfQ09DX0NUUkwxN18zXzAJCTB4MGYKKworLyogQ29DIDI1dGggQ3RsLCBk ZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19DT0NfQ1RMMTgJCQkJMHgwNzJiCisj ZGVmaW5lIE1TS19DT0NfQ1RMMThfQ09DX0NUUkwxOF83XzQJCTB4ZjAKKyNkZWZpbmUgTVNLX0NP Q19DVEwxOF9DT0NfQ1RSTDE4XzNfMAkJMHgwZgorCisvKiBDb0MgMjZ0aCBDdGwsIGRlZmF1bHQg dmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NPQ19DVEwxOQkJCQkweDA3MmMKKyNkZWZpbmUg TVNLX0NPQ19DVEwxOV9DT0NfQ1RSTDE5XzdfNAkJMHhmMAorI2RlZmluZSBNU0tfQ09DX0NUTDE5 X0NPQ19DVFJMMTlfM18wCQkweDBmCisKKy8qIENvQyAyN3RoIEN0bCwgZGVmYXVsdCB2YWx1ZTog MHgwMCAqLworI2RlZmluZSBSRUdfQ09DX0NUTDFBCQkJCTB4MDcyZAorI2RlZmluZSBNU0tfQ09D X0NUTDFBX0NPQ19DVFJMMUFfN18yCQkweGZjCisjZGVmaW5lIE1TS19DT0NfQ1RMMUFfQ09DX0NU UkwxQV8xXzAJCTB4MDMKKworLyogRG9DIDl0aCBTdGF0dXMsIGRlZmF1bHQgdmFsdWU6IDB4MDAg Ki8KKyNkZWZpbmUgUkVHX0RPQ19TVEFUXzgJCQkJMHgwNzQwCisKKy8qIERvQyAxMHRoIFN0YXR1 cywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRE9DX1NUQVRfOQkJCQkweDA3 NDEKKworLyogRG9DIDV0aCBDRkcsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVH X0RPQ19DRkc0CQkJCTB4MDc0ZQorI2RlZmluZSBNU0tfRE9DX0NGRzRfREJHX1NUQVRFX0RPQ19G U00JCTB4MGYKKworLyogRG9DIDFzdCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4NDAgKi8KKyNkZWZp bmUgUkVHX0RPQ19DVEwwCQkJCTB4MDc1MQorCisvKiBEb0MgN3RoIEN0bCwgZGVmYXVsdCB2YWx1 ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRE9DX0NUTDYJCQkJMHgwNzU3CisjZGVmaW5lIEJJVF9E T0NfQ1RMNl9ET0NfQ1RSTDZfNwkJQklUKDcpCisjZGVmaW5lIEJJVF9ET0NfQ1RMNl9ET0NfQ1RS TDZfNgkJQklUKDYpCisjZGVmaW5lIE1TS19ET0NfQ1RMNl9ET0NfQ1RSTDZfNV80CQkweDMwCisj ZGVmaW5lIE1TS19ET0NfQ1RMNl9ET0NfQ1RSTDZfM18wCQkweDBmCisKKy8qIERvQyA4dGggQ3Rs LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19ET0NfQ1RMNwkJCQkweDA3NTgK KyNkZWZpbmUgQklUX0RPQ19DVEw3X0RPQ19DVFJMN183CQlCSVQoNykKKyNkZWZpbmUgQklUX0RP Q19DVEw3X0RPQ19DVFJMN182CQlCSVQoNikKKyNkZWZpbmUgQklUX0RPQ19DVEw3X0RPQ19DVFJM N181CQlCSVQoNSkKKyNkZWZpbmUgTVNLX0RPQ19DVEw3X0RPQ19DVFJMN180XzMJCTB4MTgKKyNk ZWZpbmUgTVNLX0RPQ19DVEw3X0RPQ19DVFJMN18yXzAJCTB4MDcKKworLyogRG9DIDl0aCBDdGws IGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0RPQ19DVEw4CQkJCTB4MDc2Ywor I2RlZmluZSBCSVRfRE9DX0NUTDhfRE9DX0NUUkw4XzcJCUJJVCg3KQorI2RlZmluZSBNU0tfRE9D X0NUTDhfRE9DX0NUUkw4XzZfNAkJMHg3MAorI2RlZmluZSBNU0tfRE9DX0NUTDhfRE9DX0NUUkw4 XzNfMgkJMHgwYworI2RlZmluZSBNU0tfRE9DX0NUTDhfRE9DX0NUUkw4XzFfMAkJMHgwMworCisv KiBEb0MgMTB0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0RPQ19D VEw5CQkJCTB4MDc2ZAorCisvKiBEb0MgMTF0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8K KyNkZWZpbmUgUkVHX0RPQ19DVExBCQkJCTB4MDc2ZQorCisvKiBEb0MgMTV0aCBDdGwsIGRlZmF1 bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0RPQ19DVExFCQkJCTB4MDc3MgorI2RlZmlu ZSBCSVRfRE9DX0NUTEVfRE9DX0NUUkxFXzcJCUJJVCg3KQorI2RlZmluZSBCSVRfRE9DX0NUTEVf RE9DX0NUUkxFXzYJCUJJVCg2KQorI2RlZmluZSBNU0tfRE9DX0NUTEVfRE9DX0NUUkxFXzVfNAkJ MHgzMAorI2RlZmluZSBNU0tfRE9DX0NUTEVfRE9DX0NUUkxFXzNfMAkJMHgwZgorCisvKiBJbnRl cnJ1cHQgTWFzayAxc3QsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX01ITF9J TlRfMF9NQVNLCQkJMHgwNTgwCisKKy8qIEludGVycnVwdCBNYXNrIDJuZCwgZGVmYXVsdCB2YWx1 ZTogMHgwMCAqLworI2RlZmluZSBSRUdfTUhMX0lOVF8xX01BU0sJCQkweDA1ODEKKworLyogSW50 ZXJydXB0IE1hc2sgM3JkLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19NSExf SU5UXzJfTUFTSwkJCTB4MDU4MgorCisvKiBJbnRlcnJ1cHQgTWFzayA0dGgsIGRlZmF1bHQgdmFs dWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX01ITF9JTlRfM19NQVNLCQkJMHgwNTgzCisKKy8qIE1E VCBSZWNlaXZlIFRpbWUgT3V0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19N RFRfUkNWX1RJTUVPVVQJCQkweDA1ODQKKworLyogTURUIFRyYW5zbWl0IFRpbWUgT3V0LCBkZWZh dWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19NRFRfWE1JVF9USU1FT1VUCQkJMHgwNTg1 CisKKy8qIE1EVCBSZWNlaXZlIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZp bmUgUkVHX01EVF9SQ1ZfQ1RSTAkJCTB4MDU4NgorI2RlZmluZSBCSVRfTURUX1JDVl9DVFJMX01E VF9SQ1ZfRU4JCUJJVCg3KQorI2RlZmluZSBCSVRfTURUX1JDVl9DVFJMX01EVF9ERUxBWV9SQ1Zf RU4JQklUKDYpCisjZGVmaW5lIEJJVF9NRFRfUkNWX0NUUkxfTURUX1JGSUZPX09WRVJfV1JfRU4J QklUKDQpCisjZGVmaW5lIEJJVF9NRFRfUkNWX0NUUkxfTURUX1hGSUZPX09WRVJfV1JfRU4JQklU KDMpCisjZGVmaW5lIEJJVF9NRFRfUkNWX0NUUkxfTURUX0RJU0FCTEUJCUJJVCgyKQorI2RlZmlu ZSBCSVRfTURUX1JDVl9DVFJMX01EVF9SRklGT19DTFJfQUxMCUJJVCgxKQorI2RlZmluZSBCSVRf TURUX1JDVl9DVFJMX01EVF9SRklGT19DTFJfQ1VSCUJJVCgwKQorCisvKiBNRFQgUmVjZWl2ZSBS ZWFkIFBvcnQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX01EVF9SQ1ZfUkVB RF9QT1JUCQkJMHgwNTg3CisKKy8qIE1EVCBUcmFuc21pdCBDb250cm9sLCBkZWZhdWx0IHZhbHVl OiAweDcwICovCisjZGVmaW5lIFJFR19NRFRfWE1JVF9DVFJMCQkJMHgwNTg4CisjZGVmaW5lIEJJ VF9NRFRfWE1JVF9DVFJMX01EVF9YTUlUX0VOCQlCSVQoNykKKyNkZWZpbmUgQklUX01EVF9YTUlU X0NUUkxfTURUX1hNSVRfQ01EX01FUkdFX0VOCUJJVCg2KQorI2RlZmluZSBCSVRfTURUX1hNSVRf Q1RSTF9NRFRfWE1JVF9GSVhFRF9CVVJTVF9MRU4gQklUKDUpCisjZGVmaW5lIEJJVF9NRFRfWE1J VF9DVFJMX01EVF9YTUlUX0ZJWEVEX0FJRAlCSVQoNCkKKyNkZWZpbmUgQklUX01EVF9YTUlUX0NU UkxfTURUX1hNSVRfU0lOR0xFX1JVTl9FTiBCSVQoMykKKyNkZWZpbmUgQklUX01EVF9YTUlUX0NU UkxfTURUX0NMUl9BQk9SVF9XQUlUCUJJVCgyKQorI2RlZmluZSBCSVRfTURUX1hNSVRfQ1RSTF9N RFRfWEZJRk9fQ0xSX0FMTAlCSVQoMSkKKyNkZWZpbmUgQklUX01EVF9YTUlUX0NUUkxfTURUX1hG SUZPX0NMUl9DVVIJQklUKDApCisKKy8qIE1EVCBSZWNlaXZlIFdSSVRFIFBvcnQsIGRlZmF1bHQg dmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX01EVF9YTUlUX1dSSVRFX1BPUlQJCQkweDA1ODkK KworLyogTURUIFJGSUZPIFN0YXR1cywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBS RUdfTURUX1JGSUZPX1NUQVQJCQkweDA1OGEKKyNkZWZpbmUgTVNLX01EVF9SRklGT19TVEFUX01E VF9SRklGT19DTlQJMHhlMAorI2RlZmluZSBNU0tfTURUX1JGSUZPX1NUQVRfTURUX1JGSUZPX0NV Ul9CWVRFX0NOVCAweDFmCisKKy8qIE1EVCBYRklGTyBTdGF0dXMsIGRlZmF1bHQgdmFsdWU6IDB4 ODAgKi8KKyNkZWZpbmUgUkVHX01EVF9YRklGT19TVEFUCQkJMHgwNThiCisjZGVmaW5lIE1TS19N RFRfWEZJRk9fU1RBVF9NRFRfWEZJRk9fTEVWRUxfQVZBSUwgMHhlMAorI2RlZmluZSBCSVRfTURU X1hGSUZPX1NUQVRfTURUX1hNSVRfUFJFX0hTX0VOCUJJVCg0KQorI2RlZmluZSBNU0tfTURUX1hG SUZPX1NUQVRfTURUX1dSSVRFX0JVUlNUX0xFTgkweDBmCisKKy8qIE1EVCBJbnRlcnJ1cHQgMCwg ZGVmYXVsdCB2YWx1ZTogMHgwYyAqLworI2RlZmluZSBSRUdfTURUX0lOVF8wCQkJCTB4MDU4Ywor I2RlZmluZSBCSVRfTURUX1JGSUZPX0RBVEFfUkRZCQkJQklUKDApCisjZGVmaW5lIEJJVF9NRFRf SURMRV9BRlRFUl9IQVdCX0RJU0FCTEUJCUJJVCgyKQorI2RlZmluZSBCSVRfTURUX1hGSUZPX0VN UFRZCQkJQklUKDMpCisKKy8qIE1EVCBJbnRlcnJ1cHQgMCBNYXNrLCBkZWZhdWx0IHZhbHVlOiAw eDAwICovCisjZGVmaW5lIFJFR19NRFRfSU5UXzBfTUFTSwkJCTB4MDU4ZAorCisvKiBNRFQgSW50 ZXJydXB0IDEsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX01EVF9JTlRfMQkJ CQkweDA1OGUKKyNkZWZpbmUgQklUX01EVF9SQ1ZfVElNRU9VVAkJCUJJVCgwKQorI2RlZmluZSBC SVRfTURUX1JDVl9TTV9BQk9SVF9QS1RfUkNWRAkJQklUKDEpCisjZGVmaW5lIEJJVF9NRFRfUkNW X1NNX0VSUk9SCQkJQklUKDIpCisjZGVmaW5lIEJJVF9NRFRfWE1JVF9USU1FT1VUCQkJQklUKDUp CisjZGVmaW5lIEJJVF9NRFRfWE1JVF9TTV9BQk9SVF9QS1RfUkNWRAkJQklUKDYpCisjZGVmaW5l IEJJVF9NRFRfWE1JVF9TTV9FUlJPUgkJCUJJVCg3KQorCisvKiBNRFQgSW50ZXJydXB0IDEgTWFz aywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfTURUX0lOVF8xX01BU0sJCQkw eDA1OGYKKworLyogQ0JVUyBWZW5kb3IgSUQsIGRlZmF1bHQgdmFsdWU6IDB4MDEgKi8KKyNkZWZp bmUgUkVHX0NCVVNfVkVORE9SX0lECQkJMHgwNTkwCisKKy8qIENCVVMgQ29ubmVjdGlvbiBTdGF0 dXMsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NCVVNfU1RBVFVTCQkJCTB4 MDU5MQorI2RlZmluZSBCSVRfQ0JVU19TVEFUVVNfTUhMX0NBQkxFX1BSRVNFTlQJQklUKDQpCisj ZGVmaW5lIEJJVF9DQlVTX1NUQVRVU19NU0NfSEJfU1VDQ0VTUwkJQklUKDMpCisjZGVmaW5lIEJJ VF9DQlVTX1NUQVRVU19DQlVTX0hQRAkJQklUKDIpCisjZGVmaW5lIEJJVF9DQlVTX1NUQVRVU19N SExfTU9ERQkJQklUKDEpCisjZGVmaW5lIEJJVF9DQlVTX1NUQVRVU19DQlVTX0NPTk5FQ1RFRAkJ QklUKDApCisKKy8qIENCVVMgSW50ZXJydXB0IDFzdCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwor I2RlZmluZSBSRUdfQ0JVU19JTlRfMAkJCQkweDA1OTIKKyNkZWZpbmUgQklUX0NCVVNfTVNDX01U X0RPTkVfTkFDSwkJQklUKDcpCisjZGVmaW5lIEJJVF9DQlVTX01TQ19NUl9TRVRfSU5UCQkJQklU KDYpCisjZGVmaW5lIEJJVF9DQlVTX01TQ19NUl9XUklURV9CVVJTVAkJQklUKDUpCisjZGVmaW5l IEJJVF9DQlVTX01TQ19NUl9NU0NfTVNHCQkJQklUKDQpCisjZGVmaW5lIEJJVF9DQlVTX01TQ19N Ul9XUklURV9TVEFUCQlCSVQoMykKKyNkZWZpbmUgQklUX0NCVVNfSFBEX0NIRwkJCUJJVCgyKQor I2RlZmluZSBCSVRfQ0JVU19NU0NfTVRfRE9ORQkJCUJJVCgxKQorI2RlZmluZSBCSVRfQ0JVU19D TlhfQ0hHCQkJQklUKDApCisKKy8qIENCVVMgSW50ZXJydXB0IE1hc2sgMXN0LCBkZWZhdWx0IHZh bHVlOiAweDAwICovCisjZGVmaW5lIFJFR19DQlVTX0lOVF8wX01BU0sJCQkweDA1OTMKKworLyog Q0JVUyBJbnRlcnJ1cHQgMm5kLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19D QlVTX0lOVF8xCQkJCTB4MDU5NAorI2RlZmluZSBCSVRfQ0JVU19DTURfQUJPUlQJCQlCSVQoNikK KyNkZWZpbmUgQklUX0NCVVNfTVNDX0FCT1JUX1JDVkQJCQlCSVQoMykKKyNkZWZpbmUgQklUX0NC VVNfRERDX0FCT1JUCQkJQklUKDIpCisjZGVmaW5lIEJJVF9DQlVTX0NFQ19BQk9SVAkJCUJJVCgx KQorCisvKiBDQlVTIEludGVycnVwdCBNYXNrIDJuZCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwor I2RlZmluZSBSRUdfQ0JVU19JTlRfMV9NQVNLCQkJMHgwNTk1CisKKy8qIENCVVMgRERDIEFib3J0 IEludGVycnVwdCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRERDX0FCT1JU X0lOVAkJCTB4MDU5OAorCisvKiBDQlVTIEREQyBBYm9ydCBJbnRlcnJ1cHQgTWFzaywgZGVmYXVs dCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRERDX0FCT1JUX0lOVF9NQVNLCQkJMHgwNTk5 CisKKy8qIENCVVMgTVNDIFJlcXVlc3RlciBBYm9ydCBJbnRlcnJ1cHQsIGRlZmF1bHQgdmFsdWU6 IDB4MDAgKi8KKyNkZWZpbmUgUkVHX01TQ19NVF9BQk9SVF9JTlQJCQkweDA1OWEKKworLyogQ0JV UyBNU0MgUmVxdWVzdGVyIEFib3J0IEludGVycnVwdCBNYXNrLCBkZWZhdWx0IHZhbHVlOiAweDAw ICovCisjZGVmaW5lIFJFR19NU0NfTVRfQUJPUlRfSU5UX01BU0sJCTB4MDU5YgorCisvKiBDQlVT IE1TQyBSZXNwb25kZXIgQWJvcnQgSW50ZXJydXB0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisj ZGVmaW5lIFJFR19NU0NfTVJfQUJPUlRfSU5UCQkJMHgwNTljCisKKy8qIENCVVMgTVNDIFJlc3Bv bmRlciBBYm9ydCBJbnRlcnJ1cHQgTWFzaywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmlu ZSBSRUdfTVNDX01SX0FCT1JUX0lOVF9NQVNLCQkweDA1OWQKKworLyogQ0JVUyBSWCBESVNDT1ZF UlkgaW50ZXJydXB0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19DQlVTX1JY X0RJU0NfSU5UMAkJCTB4MDU5ZQorCisvKiBDQlVTIFJYIERJU0NPVkVSWSBJbnRlcnJ1cHQgTWFz aywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQ0JVU19SWF9ESVNDX0lOVDBf TUFTSwkJMHgwNTlmCisKKy8qIENCVVNfTGlua19MYXllciBDb250cm9sICM4LCBkZWZhdWx0IHZh bHVlOiAweDAwICovCisjZGVmaW5lIFJFR19DQlVTX0xJTktfQ1RSTF84CQkJMHgwNWE3CisKKy8q IE1EVCBTdGF0ZSBNYWNoaW5lIFN0YXR1cywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmlu ZSBSRUdfTURUX1NNX1NUQVQJCQkJMHgwNWI1CisjZGVmaW5lIE1TS19NRFRfU01fU1RBVF9NRFRf UkNWX1NUQVRFCQkweGYwCisjZGVmaW5lIE1TS19NRFRfU01fU1RBVF9NRFRfWE1JVF9TVEFURQkJ MHgwZgorCisvKiBDQlVTIE1TQyBjb21tYW5kIHRyaWdnZXIsIGRlZmF1bHQgdmFsdWU6IDB4MDAg Ki8KKyNkZWZpbmUgUkVHX01TQ19DT01NQU5EX1NUQVJUCQkJMHgwNWI4CisjZGVmaW5lIEJJVF9N U0NfQ09NTUFORF9TVEFSVF9ERUJVRwkJQklUKDUpCisjZGVmaW5lIEJJVF9NU0NfQ09NTUFORF9T VEFSVF9XUklURV9CVVJTVAlCSVQoNCkKKyNkZWZpbmUgQklUX01TQ19DT01NQU5EX1NUQVJUX1dS SVRFX1NUQVQJQklUKDMpCisjZGVmaW5lIEJJVF9NU0NfQ09NTUFORF9TVEFSVF9SRUFEX0RFVkNB UAlCSVQoMikKKyNkZWZpbmUgQklUX01TQ19DT01NQU5EX1NUQVJUX01TQ19NU0cJCUJJVCgxKQor I2RlZmluZSBCSVRfTVNDX0NPTU1BTkRfU1RBUlRfUEVFUgkJQklUKDApCisKKy8qIENCVVMgTVND IENvbW1hbmQvT2Zmc2V0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19NU0Nf Q01EX09SX09GRlNFVAkJCTB4MDViOQorCisvKiBDQlVTIE1TQyBUcmFuc21pdCBEYXRhICovCisj ZGVmaW5lIFJFR19NU0NfMVNUX1RSQU5TTUlUX0RBVEEJCTB4MDViYQorI2RlZmluZSBSRUdfTVND XzJORF9UUkFOU01JVF9EQVRBCQkweDA1YmIKKworLyogQ0JVUyBNU0MgUmVxdWVzdGVyIFJlY2Vp dmVkIERhdGEgKi8KKyNkZWZpbmUgUkVHX01TQ19NVF9SQ1ZEX0RBVEEwCQkJMHgwNWJjCisjZGVm aW5lIFJFR19NU0NfTVRfUkNWRF9EQVRBMQkJCTB4MDViZAorCisvKiBDQlVTIE1TQyBSZXNwb25k ZXIgTVNDX01TRyBSZWNlaXZlZCBEYXRhICovCisjZGVmaW5lIFJFR19NU0NfTVJfTVNDX01TR19S Q1ZEXzFTVF9EQVRBCTB4MDViZgorI2RlZmluZSBSRUdfTVNDX01SX01TQ19NU0dfUkNWRF8yTkRf REFUQQkweDA1YzAKKworLyogQ0JVUyBNU0MgSGVhcnRiZWF0IENvbnRyb2wsIGRlZmF1bHQgdmFs dWU6IDB4MjcgKi8KKyNkZWZpbmUgUkVHX01TQ19IRUFSVEJFQVRfQ1RSTAkJCTB4MDVjNAorI2Rl ZmluZSBCSVRfTVNDX0hFQVJUQkVBVF9DVFJMX01TQ19IQl9FTglCSVQoNykKKyNkZWZpbmUgTVNL X01TQ19IRUFSVEJFQVRfQ1RSTF9NU0NfSEJfRkFJTF9MSU1JVCAweDcwCisjZGVmaW5lIE1TS19N U0NfSEVBUlRCRUFUX0NUUkxfTVNDX0hCX1BFUklPRF9NU0IgMHgwZgorCisvKiBDQlVTIE1TQyBD b21wYXRpYmlsaXR5IENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4MDIgKi8KKyNkZWZpbmUgUkVH X0NCVVNfTVNDX0NPTVBBVF9DVFJMCQkweDA1YzcKKyNkZWZpbmUgQklUX0NCVVNfTVNDX0NPTVBB VF9DVFJMX1hERVZDQVBfRU4JQklUKDcpCisjZGVmaW5lIEJJVF9DQlVTX01TQ19DT01QQVRfQ1RS TF9ESVNBQkxFX01TQ19PTl9DQlVTIEJJVCg2KQorI2RlZmluZSBCSVRfQ0JVU19NU0NfQ09NUEFU X0NUUkxfRElTQUJMRV9ERENfT05fQ0JVUyBCSVQoNSkKKyNkZWZpbmUgQklUX0NCVVNfTVNDX0NP TVBBVF9DVFJMX0RJU0FCTEVfR0VUX0REQ19FUlJPUkNPREUgQklUKDMpCisjZGVmaW5lIEJJVF9D QlVTX01TQ19DT01QQVRfQ1RSTF9ESVNBQkxFX0dFVF9WUzFfRVJST1JDT0RFIEJJVCgyKQorCisv KiBDQlVTMyBDb252ZXJ0ZXIgQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHgyNCAqLworI2RlZmlu ZSBSRUdfQ0JVUzNfQ05WVAkJCQkweDA1ZGMKKyNkZWZpbmUgTVNLX0NCVVMzX0NOVlRfQ0JVUzNf UkVUUllMTVQJCTB4ZjAKKyNkZWZpbmUgTVNLX0NCVVMzX0NOVlRfQ0JVUzNfUEVFUlRPVVRfU0VM CTB4MGMKKyNkZWZpbmUgQklUX0NCVVMzX0NOVlRfVEVBUkNCVVNfRU4JCUJJVCgxKQorI2RlZmlu ZSBCSVRfQ0JVUzNfQ05WVF9DQlVTM0NOVlRfRU4JCUJJVCgwKQorCisvKiBEaXNjb3ZlcnkgQ29u dHJvbDEsIGRlZmF1bHQgdmFsdWU6IDB4MjQgKi8KKyNkZWZpbmUgUkVHX0RJU0NfQ1RSTDEJCQkJ MHgwNWUwCisjZGVmaW5lIEJJVF9ESVNDX0NUUkwxX0NCVVNfSU5UUl9FTgkJQklUKDcpCisjZGVm aW5lIEJJVF9ESVNDX0NUUkwxX0hCX09OTFkJCQlCSVQoNikKKyNkZWZpbmUgTVNLX0RJU0NfQ1RS TDFfRElTQ19BVFQJCQkweDMwCisjZGVmaW5lIE1TS19ESVNDX0NUUkwxX0RJU0NfQ1lDCQkJMHgw YworI2RlZmluZSBCSVRfRElTQ19DVFJMMV9ESVNDX0VOCQkJQklUKDApCisKKyNkZWZpbmUgVkFM X1BVUF9PRkYJCQkJMAorI2RlZmluZSBWQUxfUFVQXzIwSwkJCQkxCisjZGVmaW5lIFZBTF9QVVBf NUsJCQkJMgorCisvKiBEaXNjb3ZlcnkgQ29udHJvbDQsIGRlZmF1bHQgdmFsdWU6IDB4ODAgKi8K KyNkZWZpbmUgUkVHX0RJU0NfQ1RSTDQJCQkJMHgwNWUzCisjZGVmaW5lIE1TS19ESVNDX0NUUkw0 X0NCVVNESVNDX1BVUF9TRUwJCTB4YzAKKyNkZWZpbmUgTVNLX0RJU0NfQ1RSTDRfQ0JVU0lETEVf UFVQX1NFTAkJMHgzMAorI2RlZmluZSBWQUxfRElTQ19DVFJMNChwdXBfZGlzYywgcHVwX2lkbGUp ICgoKHB1cF9kaXNjKSA8PCA2KSB8IChwdXBfaWRsZSA8PCA0KSkKKworLyogRGlzY292ZXJ5IENv bnRyb2w1LCBkZWZhdWx0IHZhbHVlOiAweDAzICovCisjZGVmaW5lIFJFR19ESVNDX0NUUkw1CQkJ CTB4MDVlNAorI2RlZmluZSBCSVRfRElTQ19DVFJMNV9EU01fT1ZSSURFCQlCSVQoMykKKyNkZWZp bmUgTVNLX0RJU0NfQ1RSTDVfQ0JVU01ITF9QVVBfU0VMCQkweDAzCisKKy8qIERpc2NvdmVyeSBD b250cm9sOCwgZGVmYXVsdCB2YWx1ZTogMHg4MSAqLworI2RlZmluZSBSRUdfRElTQ19DVFJMOAkJ CQkweDA1ZTcKKyNkZWZpbmUgQklUX0RJU0NfQ1RSTDhfTk9NSExJTlRfQ0xSX0JZUEFTUwlCSVQo NykKKyNkZWZpbmUgQklUX0RJU0NfQ1RSTDhfREVMQVlfQ0JVU19JTlRSX0VOCUJJVCgwKQorCisv KiBEaXNjb3ZlcnkgQ29udHJvbDksIGRlZmF1bHQgdmFsdWU6IDB4NTQgKi8KKyNkZWZpbmUgUkVH X0RJU0NfQ1RSTDkJCQkweDA1ZTgKKyNkZWZpbmUgQklUX0RJU0NfQ1RSTDlfTUhMM19SU0VOX0JZ UAkJQklUKDcpCisjZGVmaW5lIEJJVF9ESVNDX0NUUkw5X01ITDNESVNDX0VOCQlCSVQoNikKKyNk ZWZpbmUgQklUX0RJU0NfQ1RSTDlfV0FLRV9EUlZGTFQJCUJJVCg0KQorI2RlZmluZSBCSVRfRElT Q19DVFJMOV9OT01ITF9FU1QJCUJJVCgzKQorI2RlZmluZSBCSVRfRElTQ19DVFJMOV9ESVNDX1BV TFNFX1BST0NFRUQJQklUKDIpCisjZGVmaW5lIEJJVF9ESVNDX0NUUkw5X1dBS0VfUFVMU0VfQllQ QVNTCUJJVCgxKQorI2RlZmluZSBCSVRfRElTQ19DVFJMOV9WQlVTX09VVFBVVF9DQVBBQklMSVRZ X1NSQyBCSVQoMCkKKworLyogRGlzY292ZXJ5IFN0YXR1czEsIGRlZmF1bHQgdmFsdWU6IDB4MDAg Ki8KKyNkZWZpbmUgUkVHX0RJU0NfU1RBVDEJCQkJMHgwNWViCisjZGVmaW5lIEJJVF9ESVNDX1NU QVQxX1BTTV9PVlJJREUJCUJJVCg1KQorI2RlZmluZSBNU0tfRElTQ19TVEFUMV9ESVNDX1NNCQkJ MHgwZgorCisvKiBEaXNjb3ZlcnkgU3RhdHVzMiwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2Rl ZmluZSBSRUdfRElTQ19TVEFUMgkJCQkweDA1ZWMKKyNkZWZpbmUgQklUX0RJU0NfU1RBVDJfQ0JV U19PRV9QT0wJCUJJVCg2KQorI2RlZmluZSBCSVRfRElTQ19TVEFUMl9DQlVTX1NBVFVTCQlCSVQo NSkKKyNkZWZpbmUgQklUX0RJU0NfU1RBVDJfUlNFTgkJCUJJVCg0KQorCisjZGVmaW5lIE1TS19E SVNDX1NUQVQyX01ITF9WUlNOCQkJMHgwYworI2RlZmluZSBWQUxfRElTQ19TVEFUMl9ERUZBVUxU CQkJMHgwMAorI2RlZmluZSBWQUxfRElTQ19TVEFUMl9NSEwxXzIJCQkweDA0CisjZGVmaW5lIFZB TF9ESVNDX1NUQVQyX01ITDMJCQkweDA4CisjZGVmaW5lIFZBTF9ESVNDX1NUQVQyX1JFU0VSVkVE CQkJMHgwYworCisjZGVmaW5lIE1TS19ESVNDX1NUQVQyX1JHTkQJCQkweDAzCisjZGVmaW5lIFZB TF9SR05EX09QRU4JCQkJMHgwMAorI2RlZmluZSBWQUxfUkdORF8ySwkJCQkweDAxCisjZGVmaW5l IFZBTF9SR05EXzFLCQkJCTB4MDIKKyNkZWZpbmUgVkFMX1JHTkRfU0hPUlQJCQkJMHgwMworCisv KiBJbnRlcnJ1cHQgQ0JVU19yZWcxIElOVFIwLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVm aW5lIFJFR19DQlVTX0RJU0NfSU5UUjAJCQkweDA1ZWQKKyNkZWZpbmUgQklUX1JHTkRfUkVBRFlf SU5UCQkJQklUKDYpCisjZGVmaW5lIEJJVF9DQlVTX01ITDEyX0RJU0NPTl9JTlQJCUJJVCg1KQor I2RlZmluZSBCSVRfQ0JVU19NSEwzX0RJU0NPTl9JTlQJCUJJVCg0KQorI2RlZmluZSBCSVRfTk9U X01ITF9FU1RfSU5UCQkJQklUKDMpCisjZGVmaW5lIEJJVF9NSExfRVNUX0lOVAkJCQlCSVQoMikK KyNkZWZpbmUgQklUX01ITDNfRVNUX0lOVAkJCUJJVCgxKQorI2RlZmluZSBWQUxfQ0JVU19NSExf RElTQ09OIChCSVRfQ0JVU19NSEwxMl9ESVNDT05fSU5UIFwKKwkJCSAgICB8IEJJVF9DQlVTX01I TDNfRElTQ09OX0lOVCBcCisJCQkgICAgfCBCSVRfTk9UX01ITF9FU1RfSU5UKQorCisvKiBJbnRl cnJ1cHQgQ0JVU19yZWcxIElOVFIwIE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZp bmUgUkVHX0NCVVNfRElTQ19JTlRSMF9NQVNLCQkweDA1ZWUKKworI2VuZGlmIC8qIF9fU0lMX1NJ STg2MjBfSF9fICovCi0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9kcmktZGV2ZWwK