From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrzej Hajda Subject: [PATCH 3/3] drm/bridge: add Silicon Image SiI8620 driver Date: Tue, 08 Dec 2015 14:49:06 +0100 Message-ID: <1449582546-18667-4-git-send-email-a.hajda@samsung.com> References: <1449582546-18667-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: <1449582546-18667-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 OiBBbmRyemVqIEhhamRhIDxhLmhhamRhQHNhbXN1bmcuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2Ry bS9icmlkZ2UvS2NvbmZpZyAgICAgICB8ICAgIDcgKwogZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9N YWtlZmlsZSAgICAgIHwgICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3NpbC1zaWk4NjIw LmMgfCAxNTY3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1 L2RybS9icmlkZ2Uvc2lsLXNpaTg2MjAuaCB8IDE1MTcgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMzA5MiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWwtc2lpODYyMC5jCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWwtc2lpODYyMC5oCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRn ZS9LY29uZmlnCmluZGV4IDZkZGRkMzkuLjFmMTNjZWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9icmlkZ2UvS2NvbmZpZworKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL0tjb25maWcK QEAgLTQxLDQgKzQxLDExIEBAIGNvbmZpZyBEUk1fUEFSQURFX1BTODYyMgogCS0tLWhlbHAtLS0K IAkgIFBhcmFkZSBlRFAtTFZEUyBicmlkZ2UgY2hpcCBkcml2ZXIuCiAKK2NvbmZpZyBEUk1fU0lM X1NJSTg2MjAKKwl0cmlzdGF0ZSAiU2lsaWNvbiBJbWFnZSBTSUk4NjIwIEhETUkvTUhMIGJyaWRn ZSIKKwlkZXBlbmRzIG9uIE9GCisJc2VsZWN0IERSTV9LTVNfSEVMUEVSCisJaGVscAorCSAgU2ls aWNvbiBJbWFnZSBTSUk4NjIwIEhETUkvTUhMIGJyaWRnZSBjaGlwIGRyaXZlci4KKwogZW5kbWVu dQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9NYWtlZmlsZSBiL2RyaXZlcnMv Z3B1L2RybS9icmlkZ2UvTWFrZWZpbGUKaW5kZXggZDRlMjhiZS4uOWVjMjlkNSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0v YnJpZGdlL01ha2VmaWxlCkBAIC00LDMgKzQsNCBAQCBvYmotJChDT05GSUdfRFJNX0RXX0hETUkp ICs9IGR3X2hkbWkubwogb2JqLSQoQ09ORklHX0RSTV9EV19IRE1JX0FIQl9BVURJTykgKz0gZHdf aGRtaS1haGItYXVkaW8ubwogb2JqLSQoQ09ORklHX0RSTV9OWFBfUFROMzQ2MCkgKz0gbnhwLXB0 bjM0NjAubwogb2JqLSQoQ09ORklHX0RSTV9QQVJBREVfUFM4NjIyKSArPSBwYXJhZGUtcHM4NjIy Lm8KK29iai0kKENPTkZJR19EUk1fU0lMX1NJSTg2MjApICs9IHNpbC1zaWk4NjIwLm8KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lsLXNpaTg2MjAuYyBiL2RyaXZlcnMvZ3B1 L2RybS9icmlkZ2Uvc2lsLXNpaTg2MjAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi43MDAxNGI3Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9z aWwtc2lpODYyMC5jCkBAIC0wLDAgKzEsMTU2NyBAQAorLyoKKyAqIERyaXZlciBmb3IgU2lsaWNv biBJbWFnZSBTaUk4NjIwIE1vYmlsZSBIRCBUcmFuc21pdHRlcgorICoKKyAqIENvcHlyaWdodCAo QykgMjAxNSwgU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKyAqIEFuZHJ6ZWogSGFqZGEg PGEuaGFqZGFAc2Ftc3VuZy5jb20+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisg KiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqLworCisjaW5j bHVkZSA8ZHJtL2RybV9jcnRjLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9lZGlkLmg+CisKKyNpbmNs dWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxp bnV4L2dwaW8vY29uc3VtZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4KKyNpbmNsdWRlIDxs aW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9pcnEuaD4KKyNpbmNsdWRlIDxsaW51 eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisjaW5jbHVkZSA8bGludXgvbWhs Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4K KyNpbmNsdWRlIDxsaW51eC9yZWd1bGF0b3IvY29uc3VtZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9z bGFiLmg+CisKKyNpbmNsdWRlICJzaWwtc2lpODYyMC5oIgorCisjZGVmaW5lIFZBTF9SWF9IRE1J X0NUUkwyX0RFRlZBTAlWQUxfUlhfSERNSV9DVFJMMl9JRExFX0NOVCgzKQorCitlbnVtIHNpaTg2 MjBfbW9kZSB7CisJQ01fRElTQ09OTkVDVEVELAorCUNNX0RJU0NPVkVSWSwKKwlDTV9NSEwxLAor CUNNX01ITDMsCisJQ01fRUNCVVNfUworfTsKKworZW51bSBzaWk4NjIwX3NpbmtfdHlwZSB7CisJ U0lOS19OT05FLAorCVNJTktfSERNSSwKKwlTSU5LX0RWSQorfTsKKworZW51bSBzaWk4NjIwX210 X3N0YXRlIHsKKwlNVF9TVEFURV9SRUFEWSwKKwlNVF9TVEFURV9CVVNZLAorCU1UX1NUQVRFX0RP TkUKK307CisKK3N0cnVjdCBzaWk4NjIwIHsKKwlzdHJ1Y3QgZHJtX2JyaWRnZSBicmlkZ2U7CisJ c3RydWN0IGRldmljZSAqZGV2OworCXN0cnVjdCBjbGsgKmNsa194dGFsOworCXN0cnVjdCBncGlv X2Rlc2MgKmdwaW9fcmVzZXQ7CisJc3RydWN0IGdwaW9fZGVzYyAqZ3Bpb19pbnQ7CisJaW50IGly cTsKKwlzdHJ1Y3QgcmVndWxhdG9yX2J1bGtfZGF0YSBzdXBwbGllc1syXTsKKwlzdHJ1Y3QgbXV0 ZXggbG9jazsgLyogY29udGV4dCBsb2NrLCBwcm90ZWN0cyBmaWVsZHMgYmVsb3cgKi8KKwlpbnQg ZXJyb3I7CisJZW51bSBzaWk4NjIwX21vZGUgbW9kZTsKKwllbnVtIHNpaTg2MjBfc2lua190eXBl IHNpbmtfdHlwZTsKKwl1OCBjYnVzX3N0YXR1czsKKwl1OCBzdGF0W01ITF9EU1RfU0laRV07CisJ dTggeHN0YXRbTUhMX1hEU19TSVpFXTsKKwl1OCBkZXZjYXBbTUhMX0RDQVBfU0laRV07CisJdTgg eGRldmNhcFtNSExfWERDX1NJWkVdOworCXU4IGF2aWZbMTldOworCXN0cnVjdCBlZGlkICplZGlk OworCXVuc2lnbmVkIGludCBnZW4yX3dyaXRlX2J1cnN0OjE7CisJZW51bSBzaWk4NjIwX210X3N0 YXRlIG10X3N0YXRlOworCXN0cnVjdCBsaXN0X2hlYWQgbXRfcXVldWU7Cit9OworCitzdHJ1Y3Qg c2lpODYyMF9tdF9tc2c7CisKK3R5cGVkZWYgdm9pZCAoKnNpaTg2MjBfbXRfbXNnX2NiKShzdHJ1 Y3Qgc2lpODYyMCAqY3R4LAorCQkJCSAgc3RydWN0IHNpaTg2MjBfbXRfbXNnICptc2cpOworCitz dHJ1Y3Qgc2lpODYyMF9tdF9tc2cgeworCXN0cnVjdCBsaXN0X2hlYWQgbm9kZTsKKwl1OCByZWdb NF07CisJdTggcmV0OworCXNpaTg2MjBfbXRfbXNnX2NiIHNlbmQ7CisJc2lpODYyMF9tdF9tc2df Y2IgcmVjdjsKK307CisKK3N0YXRpYyBjb25zdCB1OCBzaWk4NjIwX2kyY19wYWdlW10gPSB7CisJ MHgzOSwgLyogTWFpbiBTeXN0ZW0gKi8KKwkweDNkLCAvKiBURE0gYW5kIEhTSUMgKi8KKwkweDQ5 LCAvKiBUTURTIFJlY2VpdmVyLCBNSEwgRURJRCAqLworCTB4NGQsIC8qIGVNU0MsIEhEQ1AsIEhT SUMgKi8KKwkweDVkLCAvKiBNSEwgU3BlYyAqLworCTB4NjQsIC8qIE1ITCBDQlVTICovCisJMHg1 OSwgLyogSGFyZHdhcmUgVFBJIChUcmFuc21pdHRlciBQcm9ncmFtbWluZyBJbnRlcmZhY2UpICov CisJMHg2MSwgLyogZUNCVVMtUywgZUNCVVMtRCAqLworfTsKKworc3RhdGljIHZvaWQgc2lpODYy MF9mZXRjaF9lZGlkKHN0cnVjdCBzaWk4NjIwICpjdHgpOworc3RhdGljIHZvaWQgc2lpODYyMF9z ZXRfdXBzdHJlYW1fZWRpZChzdHJ1Y3Qgc2lpODYyMCAqY3R4KTsKK3N0YXRpYyB2b2lkIHNpaTg2 MjBfZW5hYmxlX2hwZChzdHJ1Y3Qgc2lpODYyMCAqY3R4KTsKK3N0YXRpYyB2b2lkIHNpaTg2MjBf bWhsX2Rpc2Nvbm5lY3RlZChzdHJ1Y3Qgc2lpODYyMCAqY3R4KTsKKworc3RhdGljIGludCBzaWk4 NjIwX2NsZWFyX2Vycm9yKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJaW50IHJldCA9IGN0eC0+ ZXJyb3I7CisKKwljdHgtPmVycm9yID0gMDsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9p ZCBzaWk4NjIwX3JlYWRfYnVmKHN0cnVjdCBzaWk4NjIwICpjdHgsIHUxNiBhZGRyLCB1OCAqYnVm LCBpbnQgbGVuKQoreworCXN0cnVjdCBkZXZpY2UgKmRldiA9IGN0eC0+ZGV2OworCXN0cnVjdCBp MmNfY2xpZW50ICpjbGllbnQgPSB0b19pMmNfY2xpZW50KGRldik7CisJdTggZGF0YSA9IGFkZHI7 CisJc3RydWN0IGkyY19tc2cgbXNnW10gPSB7CisJCXsKKwkJCS5hZGRyID0gc2lpODYyMF9pMmNf cGFnZVthZGRyID4+IDhdLAorCQkJLmZsYWdzID0gY2xpZW50LT5mbGFncywKKwkJCS5sZW4gPSAx LAorCQkJLmJ1ZiA9ICZkYXRhCisJCX0sCisJCXsKKwkJCS5hZGRyID0gc2lpODYyMF9pMmNfcGFn ZVthZGRyID4+IDhdLAorCQkJLmZsYWdzID0gY2xpZW50LT5mbGFncyB8IEkyQ19NX1JELAorCQkJ LmxlbiA9IGxlbiwKKwkJCS5idWYgPSBidWYKKwkJfSwKKwl9OworCWludCByZXQ7CisKKwlpZiAo Y3R4LT5lcnJvcikKKwkJcmV0dXJuOworCisJcmV0ID0gaTJjX3RyYW5zZmVyKGNsaWVudC0+YWRh cHRlciwgbXNnLCAyKTsKKwlkZXZfZGJnKGRldiwgIiVzOiAlMDR4OiAlKnBoLCAlZFxuIiwgX19m dW5jX18sIGFkZHIsIGxlbiwgYnVmLCByZXQpOworCisJaWYgKHJldCAhPSAyKSB7CisJCWRldl9l cnIoZGV2LCAiUmVhZCBhdCAlIzA2eCBvZiAlZCBieXRlcyBmYWlsZWQgd2l0aCBjb2RlICVkLlxu IiwKKwkJCWFkZHIsIGxlbiwgcmV0KTsKKwkJY3R4LT5lcnJvciA9IHJldCA8IDAgPyByZXQgOiAt RUlPOworCX0KK30KKworc3RhdGljIHU4IHNpaTg2MjBfcmVhZGIoc3RydWN0IHNpaTg2MjAgKmN0 eCwgdTE2IGFkZHIpCit7CisJdTggcmV0OworCisJc2lpODYyMF9yZWFkX2J1ZihjdHgsIGFkZHIs ICZyZXQsIDEpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfd3JpdGVf YnVmKHN0cnVjdCBzaWk4NjIwICpjdHgsIHUxNiBhZGRyLCBjb25zdCB1OCAqYnVmLAorCQkJICAg ICAgaW50IGxlbikKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBjdHgtPmRldjsKKwlzdHJ1Y3Qg aTJjX2NsaWVudCAqY2xpZW50ID0gdG9faTJjX2NsaWVudChkZXYpOworCXU4IGRhdGFbMl07CisJ c3RydWN0IGkyY19tc2cgbXNnID0geworCQkuYWRkciA9IHNpaTg2MjBfaTJjX3BhZ2VbYWRkciA+ PiA4XSwKKwkJLmZsYWdzID0gY2xpZW50LT5mbGFncywKKwkJLmxlbiA9IGxlbiArIDEsCisJfTsK KwlpbnQgcmV0OworCisJaWYgKGN0eC0+ZXJyb3IpCisJCXJldHVybjsKKworCWlmIChsZW4gPiAx KSB7CisJCW1zZy5idWYgPSBrbWFsbG9jKGxlbiArIDEsIEdGUF9LRVJORUwpOworCQlpZiAoIW1z Zy5idWYpIHsKKwkJCWN0eC0+ZXJyb3IgPSAtRU5PTUVNOworCQkJcmV0dXJuOworCQl9CisJCW1l bWNweShtc2cuYnVmICsgMSwgYnVmLCBsZW4pOworCX0gZWxzZSB7CisJCW1zZy5idWYgPSBkYXRh OworCQltc2cuYnVmWzFdID0gKmJ1ZjsKKwl9CisKKwltc2cuYnVmWzBdID0gYWRkcjsKKworCXJl dCA9IGkyY190cmFuc2ZlcihjbGllbnQtPmFkYXB0ZXIsICZtc2csIDEpOworCWRldl9kYmcoZGV2 LCAiJXM6ICUwNHg6ICUqcGgsICVkXG4iLCBfX2Z1bmNfXywgYWRkciwgbGVuLCBidWYsIHJldCk7 CisKKwlpZiAocmV0ICE9IDEpIHsKKwkJZGV2X2VycihkZXYsICJXcml0ZSBhdCAlIzA2eCBvZiAl KnBoIGZhaWxlZCB3aXRoIGNvZGUgJWQuXG4iLAorCQkJYWRkciwgbGVuLCBidWYsIHJldCk7CisJ CWN0eC0+ZXJyb3IgPSByZXQgPzogLUVJTzsKKwl9CisKKwlpZiAobGVuID4gMSkKKwkJa2ZyZWUo bXNnLmJ1Zik7Cit9CisKKyNkZWZpbmUgc2lpODYyMF93cml0ZShjdHgsIGFkZHIsIGFyci4uLikg XAorKHtcCisJdTggZFtdID0geyBhcnIgfTsgXAorCXNpaTg2MjBfd3JpdGVfYnVmKGN0eCwgYWRk ciwgZCwgQVJSQVlfU0laRShkKSk7IFwKK30pCisKK3N0YXRpYyB2b2lkIF9fc2lpODYyMF93cml0 ZV9zZXEoc3RydWN0IHNpaTg2MjAgKmN0eCwgdTE2ICpzZXEsIGludCBsZW4pCit7CisJaW50IGk7 CisKKwlmb3IgKGkgPSAwOyBpIDwgbGVuOyBpICs9IDIpCisJCXNpaTg2MjBfd3JpdGUoY3R4LCBz ZXFbaV0sIHNlcVtpICsgMV0pOworfQorCisjZGVmaW5lIHNpaTg2MjBfd3JpdGVfc2VxKGN0eCwg c2VxLi4uKSBcCisoe1wKKwl1MTYgZFtdID0geyBzZXEgfTsgXAorCV9fc2lpODYyMF93cml0ZV9z ZXEoY3R4LCBkLCBBUlJBWV9TSVpFKGQpKTsgXAorfSkKKworc3RhdGljIHZvaWQgc2lpODYyMF9z ZXRiaXRzKHN0cnVjdCBzaWk4NjIwICpjdHgsIHUxNiBhZGRyLCB1OCBtYXNrLCB1OCB2YWwpCit7 CisJdmFsID0gKHZhbCAmIG1hc2spIHwgKHNpaTg2MjBfcmVhZGIoY3R4LCBhZGRyKSAmIH5tYXNr KTsKKwlzaWk4NjIwX3dyaXRlKGN0eCwgYWRkciwgdmFsKTsKK30KKworc3RhdGljIHZvaWQgc2lp ODYyMF9tdF9jbGVhbnVwKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc3RydWN0IHNpaTg2MjBf bXRfbXNnICptc2csICpuOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKG1zZywgbiwgJmN0 eC0+bXRfcXVldWUsIG5vZGUpIHsKKwkJbGlzdF9kZWwoJm1zZy0+bm9kZSk7CisJCWtmcmVlKG1z Zyk7CisJfQorCWN0eC0+bXRfc3RhdGUgPSBNVF9TVEFURV9SRUFEWTsKK30KKworc3RhdGljIHZv aWQgc2lpODYyMF9tdF93b3JrKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc3RydWN0IHNpaTg2 MjBfbXRfbXNnICptc2c7CisKKwlpZiAoY3R4LT5lcnJvcikKKwkJcmV0dXJuOworCWlmIChjdHgt Pm10X3N0YXRlID09IE1UX1NUQVRFX0JVU1kgfHwgbGlzdF9lbXB0eSgmY3R4LT5tdF9xdWV1ZSkp CisJCXJldHVybjsKKworCWlmIChjdHgtPm10X3N0YXRlID09IE1UX1NUQVRFX0RPTkUpIHsKKwkJ Y3R4LT5tdF9zdGF0ZSA9IE1UX1NUQVRFX1JFQURZOworCQltc2cgPSBsaXN0X2ZpcnN0X2VudHJ5 KCZjdHgtPm10X3F1ZXVlLCBzdHJ1Y3Qgc2lpODYyMF9tdF9tc2csCisJCQkJICAgICAgIG5vZGUp OworCQlpZiAobXNnLT5yZWN2KQorCQkJbXNnLT5yZWN2KGN0eCwgbXNnKTsKKwkJbGlzdF9kZWwo Jm1zZy0+bm9kZSk7CisJCWtmcmVlKG1zZyk7CisJfQorCisJaWYgKGN0eC0+bXRfc3RhdGUgIT0g TVRfU1RBVEVfUkVBRFkgfHwgbGlzdF9lbXB0eSgmY3R4LT5tdF9xdWV1ZSkpCisJCXJldHVybjsK KworCWN0eC0+bXRfc3RhdGUgPSBNVF9TVEFURV9CVVNZOworCW1zZyA9IGxpc3RfZmlyc3RfZW50 cnkoJmN0eC0+bXRfcXVldWUsIHN0cnVjdCBzaWk4NjIwX210X21zZywgbm9kZSk7CisJaWYgKG1z Zy0+c2VuZCkKKwkJbXNnLT5zZW5kKGN0eCwgbXNnKTsKK30KKworc3RhdGljIHZvaWQgc2lpODYy MF9tdF9tc2NfY21kX3NlbmQoc3RydWN0IHNpaTg2MjAgKmN0eCwKKwkJCQkgICAgICAgc3RydWN0 IHNpaTg2MjBfbXRfbXNnICptc2cpCit7CisJc3dpdGNoIChtc2ctPnJlZ1swXSkgeworCWNhc2Ug TUhMX1dSSVRFX1NUQVQ6CisJY2FzZSBNSExfU0VUX0lOVDoKKwkJc2lpODYyMF93cml0ZV9idWYo Y3R4LCBSRUdfTVNDX0NNRF9PUl9PRkZTRVQsIG1zZy0+cmVnICsgMSwgMik7CisJCXNpaTg2MjBf d3JpdGUoY3R4LCBSRUdfTVNDX0NPTU1BTkRfU1RBUlQsCisJCQkgICAgICBCSVRfTVNDX0NPTU1B TkRfU1RBUlRfV1JJVEVfU1RBVCk7CisJCWJyZWFrOworCWNhc2UgTUhMX01TQ19NU0c6CisJCXNp aTg2MjBfd3JpdGVfYnVmKGN0eCwgUkVHX01TQ19DTURfT1JfT0ZGU0VULCBtc2ctPnJlZywgMyk7 CisJCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfTVNDX0NPTU1BTkRfU1RBUlQsCisJCQkgICAgICBC SVRfTVNDX0NPTU1BTkRfU1RBUlRfTVNDX01TRyk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWRl dl9lcnIoY3R4LT5kZXYsICIlczogY29tbWFuZCAlI3ggbm90IHN1cHBvcnRlZFxuIiwgX19mdW5j X18sCisJCQltc2ctPnJlZ1swXSk7CisJfQorfQorCitzdGF0aWMgc3RydWN0IHNpaTg2MjBfbXRf bXNnICpzaWk4NjIwX210X21zZ19uZXcoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlzdHJ1Y3Qg c2lpODYyMF9tdF9tc2cgKm1zZyA9IGt6YWxsb2Moc2l6ZW9mKCptc2cpLCBHRlBfS0VSTkVMKTsK KworCWlmICghbXNnKQorCQljdHgtPmVycm9yID0gLUVOT01FTTsKKwllbHNlCisJCWxpc3RfYWRk X3RhaWwoJm1zZy0+bm9kZSwgJmN0eC0+bXRfcXVldWUpOworCisJcmV0dXJuIG1zZzsKK30KKwor c3RhdGljIHZvaWQgc2lpODYyMF9tdF9tc2NfY21kKHN0cnVjdCBzaWk4NjIwICpjdHgsIHU4IGNt ZCwgdTggYXJnMSwgdTggYXJnMikKK3sKKwlzdHJ1Y3Qgc2lpODYyMF9tdF9tc2cgKm1zZyA9IHNp aTg2MjBfbXRfbXNnX25ldyhjdHgpOworCisJaWYgKCFtc2cpCisJCXJldHVybjsKKworCW1zZy0+ cmVnWzBdID0gY21kOworCW1zZy0+cmVnWzFdID0gYXJnMTsKKwltc2ctPnJlZ1syXSA9IGFyZzI7 CisJbXNnLT5zZW5kID0gc2lpODYyMF9tdF9tc2NfY21kX3NlbmQ7Cit9CisKK3N0YXRpYyB2b2lk IHNpaTg2MjBfbXRfd3JpdGVfc3RhdChzdHJ1Y3Qgc2lpODYyMCAqY3R4LCB1OCByZWcsIHU4IHZh bCkKK3sKKwlzaWk4NjIwX210X21zY19jbWQoY3R4LCBNSExfV1JJVEVfU1RBVCwgcmVnLCB2YWwp OworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgc2lpODYyMF9tdF9zZXRfaW50KHN0cnVjdCBzaWk4 NjIwICpjdHgsIHU4IGlycSwgdTggbWFzaykKK3sKKwlzaWk4NjIwX210X21zY19jbWQoY3R4LCBN SExfU0VUX0lOVCwgaXJxLCBtYXNrKTsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9tdF9tc2Nf bXNnKHN0cnVjdCBzaWk4NjIwICpjdHgsIHU4IGNtZCwgdTggZGF0YSkKK3sKKwlzaWk4NjIwX210 X21zY19jbWQoY3R4LCBNSExfTVNDX01TRywgY21kLCBkYXRhKTsKK30KKworc3RhdGljIHZvaWQg c2lpODYyMF9tdF9yYXAoc3RydWN0IHNpaTg2MjAgKmN0eCwgdTggY29kZSkKK3sKKwlzaWk4NjIw X210X21zY19tc2coY3R4LCBNSExfTVNDX01TR19SQVAsIGNvZGUpOworfQorCitzdGF0aWMgdm9p ZCBzaWk4NjIwX210X3JlYWRfZGV2Y2FwX3NlbmQoc3RydWN0IHNpaTg2MjAgKmN0eCwKKwkJCQkJ c3RydWN0IHNpaTg2MjBfbXRfbXNnICptc2cpCit7CisJdTggY3RybCA9IEJJVF9FRElEX0NUUkxf REVWQ0FQX1NFTEVDVF9ERVZDQVAKKwkJCXwgQklUX0VESURfQ1RSTF9FRElEX0ZJRk9fQUREUl9B VVRPCisJCQl8IEJJVF9FRElEX0NUUkxfRURJRF9NT0RFX0VOOworCisJaWYgKG1zZy0+cmVnWzBd ID09IE1ITF9SRUFEX1hERVZDQVApCisJCWN0cmwgfD0gQklUX0VESURfQ1RSTF9YREVWQ0FQX0VO OworCisJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQlSRUdfSU5UUjlfTUFTSywgQklUX0lOVFI5 X0RFVkNBUF9ET05FLAorCQlSRUdfRURJRF9DVFJMLCBjdHJsLAorCQlSRUdfVFBJX0NCVVNfU1RB UlQsIEJJVF9UUElfQ0JVU19TVEFSVF9HRVRfREVWQ0FQX1NUQVJUCisJKTsKK30KKworLyogY29w eSBzcmMgdG8gZHN0IGFuZCBzZXQgY2hhbmdlZCBiaXRzIGluIHNyYyAqLworc3RhdGljIHZvaWQg c2lpODYyMF91cGRhdGVfYXJyYXkodTggKmRzdCwgdTggKnNyYywgaW50IGNvdW50KQoreworCXdo aWxlICgtLWNvdW50ID49IDApIHsKKwkJKnNyYyBePSAqZHN0OworCQkqZHN0KysgXj0gKnNyYysr OworCX0KK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9tcl9kZXZjYXAoc3RydWN0IHNpaTg2MjAg KmN0eCkKK3sKKwlzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNpbmtfc3RyW10gPSB7CisJCVtT SU5LX05PTkVdID0gIk5PTkUiLAorCQlbU0lOS19IRE1JXSA9ICJIRE1JIiwKKwkJW1NJTktfRFZJ XSA9ICJEVkkiCisJfTsKKworCXU4IGRjYXBbTUhMX0RDQVBfU0laRV07CisKKwlzaWk4NjIwX3Jl YWRfYnVmKGN0eCwgUkVHX0VESURfRklGT19SRF9EQVRBLCBkY2FwLCBNSExfRENBUF9TSVpFKTsK KwlzaWk4NjIwX3VwZGF0ZV9hcnJheShjdHgtPmRldmNhcCwgZGNhcCwgTUhMX0RDQVBfU0laRSk7 CisKKwlpZiAoIShkY2FwW01ITF9EQ0FQX0NBVF0gJiBNSExfRENBUF9DQVRfU0lOSykpCisJCXJl dHVybjsKKworCXNpaTg2MjBfZmV0Y2hfZWRpZChjdHgpOworCWlmICghY3R4LT5lZGlkKSB7CisJ CWRldl9lcnIoY3R4LT5kZXYsICJDYW5ub3QgZmV0Y2ggRURJRFxuIik7CisJCXNpaTg2MjBfbWhs X2Rpc2Nvbm5lY3RlZChjdHgpOworCQlyZXR1cm47CisJfQorCisJaWYgKGRybV9kZXRlY3RfaGRt aV9tb25pdG9yKGN0eC0+ZWRpZCkpCisJCWN0eC0+c2lua190eXBlID0gU0lOS19IRE1JOworCWVs c2UKKwkJY3R4LT5zaW5rX3R5cGUgPSBTSU5LX0RWSTsKKworCWRldl9pbmZvKGN0eC0+ZGV2LCAi ZGV0ZWN0ZWQgZG9uZ2xlOiAlcywgcGFja2VkIHBpeGVsIHN1cHBvcnQ6ICVkXG4iLAorCQkgc2lu a19zdHJbY3R4LT5zaW5rX3R5cGVdLAorCQkgISEoY3R4LT5kZXZjYXBbTUhMX0RDQVBfVklEX0xJ TktfTU9ERV0KKwkJICAgJiBNSExfRENBUF9WSURfTElOS19QUElYRUwpKTsKKwlzaWk4NjIwX3Nl dF91cHN0cmVhbV9lZGlkKGN0eCk7CisJc2lpODYyMF9lbmFibGVfaHBkKGN0eCk7Cit9CisKK3N0 YXRpYyB2b2lkIHNpaTg2MjBfbXJfeGRldmNhcChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXNp aTg2MjBfcmVhZF9idWYoY3R4LCBSRUdfRURJRF9GSUZPX1JEX0RBVEEsIGN0eC0+eGRldmNhcCwK KwkJCSBNSExfWERDX1NJWkUpOworCisJc2lpODYyMF9tdF93cml0ZV9zdGF0KGN0eCwgTUhMX1hE U19SRUcoQ1VSUl9FQ0JVU19NT0RFKSwKKwkJCSAgICAgIE1ITF9YRFNfRUNCVVNfUyB8IE1ITF9Y RFNfU0xPVF9NT0RFXzhCSVQpOworCXNpaTg2MjBfbXRfcmFwKGN0eCwgTUhMX1JBUF9DQlVTX01P REVfVVApOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX210X3JlYWRfZGV2Y2FwX3JlY3Yoc3Ry dWN0IHNpaTg2MjAgKmN0eCwKKwkJCQkJc3RydWN0IHNpaTg2MjBfbXRfbXNnICptc2cpCit7CisJ dTggY3RybCA9IEJJVF9FRElEX0NUUkxfREVWQ0FQX1NFTEVDVF9ERVZDQVAKKwkJfCBCSVRfRURJ RF9DVFJMX0VESURfRklGT19BRERSX0FVVE8KKwkJfCBCSVRfRURJRF9DVFJMX0VESURfTU9ERV9F TjsKKworCWlmIChtc2ctPnJlZ1swXSA9PSBNSExfUkVBRF9YREVWQ0FQKQorCQljdHJsIHw9IEJJ VF9FRElEX0NUUkxfWERFVkNBUF9FTjsKKworCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJUkVH X0lOVFI5X01BU0ssIEJJVF9JTlRSOV9ERVZDQVBfRE9ORSB8IEJJVF9JTlRSOV9FRElEX0RPTkUK KwkJCXwgQklUX0lOVFI5X0VESURfRVJST1IsCisJCVJFR19FRElEX0NUUkwsIGN0cmwsCisJCVJF R19FRElEX0ZJRk9fQUREUiwgMAorCSk7CisKKwlpZiAobXNnLT5yZWdbMF0gPT0gTUhMX1JFQURf WERFVkNBUCkKKwkJc2lpODYyMF9tcl94ZGV2Y2FwKGN0eCk7CisJZWxzZQorCQlzaWk4NjIwX21y X2RldmNhcChjdHgpOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX210X3JlYWRfZGV2Y2FwKHN0 cnVjdCBzaWk4NjIwICpjdHgsIGJvb2wgeGRldmNhcCkKK3sKKwlzdHJ1Y3Qgc2lpODYyMF9tdF9t c2cgKm1zZyA9IHNpaTg2MjBfbXRfbXNnX25ldyhjdHgpOworCisJaWYgKCFtc2cpCisJCXJldHVy bjsKKworCW1zZy0+cmVnWzBdID0geGRldmNhcCA/IE1ITF9SRUFEX1hERVZDQVAgOiBNSExfUkVB RF9ERVZDQVA7CisJbXNnLT5zZW5kID0gc2lpODYyMF9tdF9yZWFkX2RldmNhcF9zZW5kOworCW1z Zy0+cmVjdiA9IHNpaTg2MjBfbXRfcmVhZF9kZXZjYXBfcmVjdjsKK30KKworc3RhdGljIHZvaWQg c2lpODYyMF9mZXRjaF9lZGlkKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJdTggbG1fZGRjLCBk ZGNfY21kLCBpbnQzLCBjYnVzOworCWludCBmZXRjaGVkLCBpOworCWludCBlZGlkX2xlbiA9IEVE SURfTEVOR1RIOworCXU4ICplZGlkOworCisJc2lpODYyMF9yZWFkYihjdHgsIFJFR19DQlVTX1NU QVRVUyk7CisJbG1fZGRjID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19MTV9EREMpOworCWRkY19j bWQgPSBzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX0REQ19DTUQpOworCisJc2lpODYyMF93cml0ZV9z ZXEoY3R4LAorCQlSRUdfSU5UUjlfTUFTSywgMCwKKwkJUkVHX0VESURfQ1RSTCwgQklUX0VESURf Q1RSTF9FRElEX0ZJRk9fQUREUl9BVVRPLAorCQlSRUdfSERDUDJYX1BPTExfQ1MsIDB4NzEsCisJ CVJFR19IRENQMlhfQ1RSTF8wLCBCSVRfSERDUDJYX0NUUkxfMF9IRENQMlhfSERDUFRYLAorCQlS RUdfTE1fRERDLCBsbV9kZGMgfCBCSVRfTE1fRERDX1NXX1RQSV9FTl9ESVNBQkxFRCwKKwkpOwor CisJZm9yIChpID0gMDsgaSA8IDI1NjsgKytpKSB7CisJCXU4IGRkY19zdGF0ID0gc2lpODYyMF9y ZWFkYihjdHgsIFJFR19ERENfU1RBVFVTKTsKKworCQlpZiAoIShkZGNfc3RhdCAmIEJJVF9ERENf U1RBVFVTX0REQ19JMkNfSU5fUFJPRykpCisJCQlicmVhazsKKwkJc2lpODYyMF93cml0ZShjdHgs IFJFR19ERENfU1RBVFVTLAorCQkJICAgICAgIEJJVF9ERENfU1RBVFVTX0REQ19GSUZPX0VNUFRZ KTsKKwl9CisKKwlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0REQ19BRERSLCAweDUwIDw8IDEpOwor CisJZWRpZCA9IGttYWxsb2MoRURJRF9MRU5HVEgsIEdGUF9LRVJORUwpOworCWlmICghZWRpZCkg eworCQljdHgtPmVycm9yID0gLUVOT01FTTsKKwkJcmV0dXJuOworCX0KKworI2RlZmluZSBGRVRD SF9TSVpFIDE2CisJZm9yIChmZXRjaGVkID0gMDsgZmV0Y2hlZCA8IGVkaWRfbGVuOyBmZXRjaGVk ICs9IEZFVENIX1NJWkUpIHsKKwkJc2lpODYyMF9yZWFkYihjdHgsIFJFR19ERENfU1RBVFVTKTsK KwkJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQkJUkVHX0REQ19DTUQsIGRkY19jbWQgfCBWQUxf RERDX0NNRF9ERENfQ01EX0FCT1JULAorCQkJUkVHX0REQ19DTUQsIGRkY19jbWQgfCBWQUxfRERD X0NNRF9ERENfQ01EX0NMRUFSX0ZJRk8sCisJCQlSRUdfRERDX1NUQVRVUywgQklUX0REQ19TVEFU VVNfRERDX0ZJRk9fRU1QVFkKKwkJKTsKKwkJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQkJUkVH X0REQ19TRUdNLCBmZXRjaGVkID4+IDgsCisJCQlSRUdfRERDX09GRlNFVCwgZmV0Y2hlZCAmIDB4 ZmYsCisJCQlSRUdfRERDX0RJTl9DTlQxLCBGRVRDSF9TSVpFLAorCQkJUkVHX0REQ19ESU5fQ05U MiwgMCwKKwkJCVJFR19ERENfQ01ELCBkZGNfY21kIHwgVkFMX0REQ19DTURfRU5IX0REQ19SRUFE X05PX0FDSworCQkpOworCisJCWRvIHsKKwkJCWludDMgPSBzaWk4NjIwX3JlYWRiKGN0eCwgUkVH X0lOVFIzKTsKKwkJCWNidXMgPSBzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX0NCVVNfU1RBVFVTKTsK KworCQkJaWYgKGludDMgJiBCSVRfRERDX0NNRF9ET05FKQorCQkJCWJyZWFrOworCisJCQlpZiAo IShjYnVzICYgQklUX0NCVVNfU1RBVFVTX0NCVVNfQ09OTkVDVEVEKSkgeworCQkJCWtmcmVlKGVk aWQpOworCQkJCWVkaWQgPSBOVUxMOworCQkJCWdvdG8gZW5kOworCQkJfQorCQl9IHdoaWxlICgx KTsKKworCQlzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX0REQ19TVEFUVVMpOworCQl3aGlsZSAoc2lp ODYyMF9yZWFkYihjdHgsIFJFR19ERENfRE9VVF9DTlQpIDwgRkVUQ0hfU0laRSkKKwkJCXVzbGVl cF9yYW5nZSgxMCwgMjApOworCisJCXNpaTg2MjBfcmVhZF9idWYoY3R4LCBSRUdfRERDX0RBVEEs IGVkaWQgKyBmZXRjaGVkLCBGRVRDSF9TSVpFKTsKKwkJaWYgKGZldGNoZWQgKyBGRVRDSF9TSVpF ID09IEVESURfTEVOR1RIKSB7CisJCQl1OCBleHQgPSAoKHN0cnVjdCBlZGlkICopZWRpZCktPmV4 dGVuc2lvbnM7CisKKwkJCWlmIChleHQpIHsKKwkJCQl1OCAqbmV3X2VkaWQ7CisKKwkJCQllZGlk X2xlbiArPSBleHQgKiBFRElEX0xFTkdUSDsKKwkJCQluZXdfZWRpZCA9IGtyZWFsbG9jKGVkaWQs IGVkaWRfbGVuLCBHRlBfS0VSTkVMKTsKKwkJCQlpZiAoIW5ld19lZGlkKSB7CisJCQkJCWtmcmVl KGVkaWQpOworCQkJCQljdHgtPmVycm9yID0gLUVOT01FTTsKKwkJCQkJcmV0dXJuOworCQkJCX0K KwkJCQllZGlkID0gbmV3X2VkaWQ7CisJCQl9CisJCX0KKworCQlpZiAoZmV0Y2hlZCArIEZFVENI X1NJWkUgPT0gZWRpZF9sZW4pCisJCQlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0lOVFIzLCBpbnQz KTsKKwl9CisKKwlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0xNX0REQywgbG1fZGRjKTsKKworZW5k OgorCWtmcmVlKGN0eC0+ZWRpZCk7CisJY3R4LT5lZGlkID0gKHN0cnVjdCBlZGlkICopZWRpZDsK K30KKworc3RhdGljIHZvaWQgc2lpODYyMF9zZXRfdXBzdHJlYW1fZWRpZChzdHJ1Y3Qgc2lpODYy MCAqY3R4KQoreworCXNpaTg2MjBfc2V0Yml0cyhjdHgsIFJFR19EUEQsIEJJVF9EUERfUEROUlgx MiB8IEJJVF9EUERfUERJRENLX04KKwkJCXwgQklUX0RQRF9QRF9NSExfQ0xLX04sIDB4ZmYpOwor CisJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQlSRUdfUlhfSERNSV9DVFJMMywgMHgwMCwKKwkJ UkVHX1BLVF9GSUxURVJfMCwgMHhGRiwKKwkJUkVHX1BLVF9GSUxURVJfMSwgMHhGRiwKKwkJUkVH X0FMSUNFMF9CV19JMkMsIDB4MDYKKwkpOworCisJc2lpODYyMF9zZXRiaXRzKGN0eCwgUkVHX1JY X0hETUlfQ0xSX0JVRkZFUiwKKwkJCUJJVF9SWF9IRE1JX0NMUl9CVUZGRVJfVlNJX0NMUl9FTiwg MHhmZik7CisKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJFR19FRElEX0NUUkwsIEJJVF9F RElEX0NUUkxfRURJRF9GSUZPX0FERFJfQVVUTworCQkJfCBCSVRfRURJRF9DVFJMX0VESURfTU9E RV9FTiwKKwkJUkVHX0VESURfRklGT19BRERSLCAwLAorCSk7CisKKwlzaWk4NjIwX3dyaXRlX2J1 ZihjdHgsIFJFR19FRElEX0ZJRk9fV1JfREFUQSwgKHU4ICopY3R4LT5lZGlkLAorCQkJKGN0eC0+ ZWRpZC0+ZXh0ZW5zaW9ucyArIDEpICogRURJRF9MRU5HVEgpOworCisJc2lpODYyMF93cml0ZV9z ZXEoY3R4LAorCQlSRUdfRURJRF9DVFJMLCBCSVRfRURJRF9DVFJMX0VESURfUFJJTUVfVkFMSUQK KwkJCXwgQklUX0VESURfQ1RSTF9FRElEX0ZJRk9fQUREUl9BVVRPCisJCQl8IEJJVF9FRElEX0NU UkxfRURJRF9NT0RFX0VOLAorCQlSRUdfSU5UUjVfTUFTSywgQklUX0lOVFJfU0NEVF9DSEFOR0Us CisJCVJFR19JTlRSOV9NQVNLLCAwCisJKTsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF94dGFs X3NldF9yYXRlKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc3RhdGljIGNvbnN0IHN0cnVjdCB7 CisJCXVuc2lnbmVkIGludCByYXRlOworCQl1OCBkaXY7CisJCXU4IHRwMTsKKwl9IHJhdGVzW10g PSB7CisJCXsgMTkyMDAsIDB4MDQsIDB4NTMgfSwKKwkJeyAyMDAwMCwgMHgwNCwgMHg2MiB9LAor CQl7IDI0MDAwLCAweDA1LCAweDc1IH0sCisJCXsgMzAwMDAsIDB4MDYsIDB4OTIgfSwKKwkJeyAz ODQwMCwgMHgwYywgMHhiYyB9LAorCX07CisJdW5zaWduZWQgbG9uZyByYXRlID0gY2xrX2dldF9y YXRlKGN0eC0+Y2xrX3h0YWwpIC8gMTAwMDsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBB UlJBWV9TSVpFKHJhdGVzKSAtIDE7ICsraSkKKwkJaWYgKHJhdGUgPD0gcmF0ZXNbaV0ucmF0ZSkK KwkJCWJyZWFrOworCisJaWYgKHJhdGUgIT0gcmF0ZXNbaV0ucmF0ZSkKKwkJZGV2X2VycihjdHgt PmRldiwgInh0YWwgY2xvY2sgcmF0ZSglbHVrSHopIG5vdCBzdXBwb3J0ZWQsIHNldHRpbmcgTUhM IGZvciAldWtIei5cbiIsCisJCQlyYXRlLCByYXRlc1tpXS5yYXRlKTsKKworCXNpaTg2MjBfd3Jp dGUoY3R4LCBSRUdfRElWX0NUTF9NQUlOLCByYXRlc1tpXS5kaXYpOworCXNpaTg2MjBfd3JpdGUo Y3R4LCBSRUdfSERDUDJYX1RQMSwgcmF0ZXNbaV0udHAxKTsKK30KKworc3RhdGljIGludCBzaWk4 NjIwX2h3X29uKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJaW50IHJldDsKKworCXJldCA9IHJl Z3VsYXRvcl9idWxrX2VuYWJsZShBUlJBWV9TSVpFKGN0eC0+c3VwcGxpZXMpLCBjdHgtPnN1cHBs aWVzKTsKKwlpZiAoIXJldCkKKwkJZ3Bpb2Rfc2V0X3ZhbHVlKGN0eC0+Z3Bpb19yZXNldCwgMSk7 CisJaWYgKCFyZXQpCisJCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShjdHgtPmNsa194dGFsKTsK KworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgc2lpODYyMF9od19vZmYoc3RydWN0IHNp aTg2MjAgKmN0eCkKK3sKKwlpbnQgcmV0OworCisJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGN0eC0+ Y2xrX3h0YWwpOworCWdwaW9kX3NldF92YWx1ZShjdHgtPmdwaW9fcmVzZXQsIDApOworCXJldCA9 IHJlZ3VsYXRvcl9idWxrX2Rpc2FibGUoQVJSQVlfU0laRShjdHgtPnN1cHBsaWVzKSwgY3R4LT5z dXBwbGllcyk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX2h3X3Jl c2V0KHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJdXNsZWVwX3JhbmdlKDEwMDAwLCAyMDAwMCk7 CisJZ3Bpb2Rfc2V0X3ZhbHVlKGN0eC0+Z3Bpb19yZXNldCwgMSk7CisJdXNsZWVwX3JhbmdlKDUw MDAsIDIwMDAwKTsKKwlncGlvZF9zZXRfdmFsdWUoY3R4LT5ncGlvX3Jlc2V0LCAwKTsKKwl1c2xl ZXBfcmFuZ2UoMTAwMDAsIDIwMDAwKTsKKwlncGlvZF9zZXRfdmFsdWUoY3R4LT5ncGlvX3Jlc2V0 LCAxKTsKKwltc2xlZXAoMzApOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX2NidXNfcmVzZXQo c3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJFR19Q V0RfU1JTVCwgQklUX1BXRF9TUlNUX0NCVVNfUlNUCisJCQl8IEJJVF9QV0RfU1JTVF9DQlVTX1JT VF9TV19FTiwKKwkJUkVHX1BXRF9TUlNULCBCSVRfUFdEX1NSU1RfQ0JVU19SU1RfU1dfRU4KKwkp OworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX3NldF9hdXRvX3pvbmUoc3RydWN0IHNpaTg2MjAg KmN0eCkKK3sKKwlpZiAoY3R4LT5tb2RlICE9IENNX01ITDEpIHsKKwkJc2lpODYyMF93cml0ZV9z ZXEoY3R4LAorCQkJUkVHX1RYX1pPTkVfQ1RMMSwgMHgwLAorCQkJUkVHX01ITF9QTExfQ1RMMCwg VkFMX01ITF9QTExfQ1RMMF9IRE1JX0NMS19SQVRJT18xWAorCQkJCXwgQklUX01ITF9QTExfQ1RM MF9DUllTVEFMX0NMS19TRUwKKwkJCQl8IEJJVF9NSExfUExMX0NUTDBfWk9ORV9NQVNLX09FCisJ CSk7CisJfSBlbHNlIHsKKwkJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQkJUkVHX1RYX1pPTkVf Q1RMMSwgVkFMX1RYX1pPTkVfQ1RMMV9UWF9aT05FX0NUUkxfTU9ERSwKKwkJCVJFR19NSExfUExM X0NUTDAsIFZBTF9NSExfUExMX0NUTDBfSERNSV9DTEtfUkFUSU9fMVgKKwkJCQl8IEJJVF9NSExf UExMX0NUTDBfWk9ORV9NQVNLX09FCisJCSk7CisJfQorfQorCitzdGF0aWMgdm9pZCBzaWk4NjIw X3N0b3BfdmlkZW8oc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwl1OCB1bmluaXRpYWxpemVkX3Zh cih2YWwpOworCisJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQlSRUdfVFBJX0lOVFJfRU4sIDAs CisJCVJFR19IRENQMlhfSU5UUjBfTUFTSywgMCwKKwkJUkVHX1RQSV9DT1BQX0RBVEEyLCAwLAor CQlSRUdfVFBJX0lOVFJfU1QwLCB+MCwKKwkpOworCisJc3dpdGNoIChjdHgtPnNpbmtfdHlwZSkg eworCWNhc2UgU0lOS19EVkk6CisJCXZhbCA9IEJJVF9UUElfU0NfUkVHX1RNRFNfT0VfUE9XRVJf RE9XTgorCQkJfCBCSVRfVFBJX1NDX1RQSV9BVl9NVVRFOworCQlicmVhazsKKwljYXNlIFNJTktf SERNSToKKwkJdmFsID0gQklUX1RQSV9TQ19SRUdfVE1EU19PRV9QT1dFUl9ET1dOCisJCQl8IEJJ VF9UUElfU0NfVFBJX0FWX01VVEUKKwkJCXwgQklUX1RQSV9TQ19UUElfT1VUUFVUX01PREVfMF9I RE1JOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm47CisJfQorCisJc2lpODYyMF93cml0 ZShjdHgsIFJFR19UUElfU0MsIHZhbCk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfc3RhcnRf aGRtaShzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJ UkVHX1JYX0hETUlfQ1RSTDIsIFZBTF9SWF9IRE1JX0NUUkwyX0RFRlZBTAorCQkJfCBCSVRfUlhf SERNSV9DVFJMMl9VU0VfQVZfTVVURSwKKwkJUkVHX1ZJRF9PVlJSRCwgQklUX1ZJRF9PVlJSRF9Q UF9BVVRPX0RJU0FCTEUKKwkJCXwgQklUX1ZJRF9PVlJSRF9NMTA4MFBfT1ZSUkQsCisJCVJFR19W SURfTU9ERSwgMCwKKwkJUkVHX01ITF9UT1BfQ1RMLCAweDEsCisJCVJFR19NSExUWF9DVEw2LCAw eGEwLAorCQlSRUdfVFBJX0lOUFVULCBWQUxfVFBJX0ZPUk1BVChSR0IsIEZVTEwpLAorCQlSRUdf VFBJX09VVFBVVCwgVkFMX1RQSV9GT1JNQVQoUkdCLCBGVUxMKSwKKwkpOworCisJc2lpODYyMF9t dF93cml0ZV9zdGF0KGN0eCwgTUhMX0RTVF9SRUcoTElOS19NT0RFKSwKKwkJCU1ITF9EU1RfTE1f Q0xLX01PREVfTk9STUFMIHwgTUhMX0RTVF9MTV9QQVRIX0VOQUJMRUQpOworCisJc2lpODYyMF9z ZXRfYXV0b196b25lKGN0eCk7CisKKwlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX1RQSV9TQywgQklU X1RQSV9TQ19UUElfT1VUUFVUX01PREVfMF9IRE1JKTsKKworCXNpaTg2MjBfd3JpdGVfYnVmKGN0 eCwgUkVHX1RQSV9BVklfQ0hTVU0sIGN0eC0+YXZpZiwKKwkJCSAgQVJSQVlfU0laRShjdHgtPmF2 aWYpKTsKKworCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfUEtUX0ZJTFRFUl8wLCAweGExLCAweDIp OworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX3N0YXJ0X3ZpZGVvKHN0cnVjdCBzaWk4NjIwICpj dHgpCit7CisJaWYgKGN0eC0+bW9kZSA8IENNX01ITDMpCisJCXNpaTg2MjBfc3RvcF92aWRlbyhj dHgpOworCisJc3dpdGNoIChjdHgtPnNpbmtfdHlwZSkgeworCWNhc2UgU0lOS19IRE1JOgorCQlz aWk4NjIwX3N0YXJ0X2hkbWkoY3R4KTsKKwkJYnJlYWs7CisJY2FzZSBTSU5LX0RWSToKKwlkZWZh dWx0OgorCQlicmVhazsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfZGlzYWJsZV9ocGQo c3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlzaWk4NjIwX3NldGJpdHMoY3R4LCBSRUdfRURJRF9D VFJMLCBCSVRfRURJRF9DVFJMX0VESURfUFJJTUVfVkFMSUQsIDApOworCXNpaTg2MjBfd3JpdGVf c2VxKGN0eCwKKwkJUkVHX0hQRF9DVFJMLCBCSVRfSFBEX0NUUkxfSFBEX09VVF9PVlJfRU4sCisJ CVJFR19JTlRSOF9NQVNLLCAwCisJKTsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9lbmFibGVf aHBkKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc2lpODYyMF9zZXRiaXRzKGN0eCwgUkVHX1RN RFNfQ1NUQVRfUDMsCisJCQlCSVRfVE1EU19DU1RBVF9QM19TQ0RUX0NMUl9BVklfRElTCisJCQl8 IEJJVF9UTURTX0NTVEFUX1AzX0NMUl9BVkksIH4wKTsKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgs CisJCVJFR19IUERfQ1RSTCwgQklUX0hQRF9DVFJMX0hQRF9PVVRfT1ZSX0VOCisJCQl8IEJJVF9I UERfQ1RSTF9IUERfSElHSCwKKwkpOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX2VuYWJsZV9n ZW4yX3dyaXRlX2J1cnN0KHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJaWYgKGN0eC0+Z2VuMl93 cml0ZV9idXJzdCkKKwkJcmV0dXJuOworCisJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQlSRUdf TURUX1JDVl9USU1FT1VULCAxMDAsCisJCVJFR19NRFRfUkNWX0NUUkwsIEJJVF9NRFRfUkNWX0NU UkxfTURUX1JDVl9FTgorCSk7CisJY3R4LT5nZW4yX3dyaXRlX2J1cnN0ID0gMTsKK30KKworc3Rh dGljIHZvaWQgc2lpODYyMF9kaXNhYmxlX2dlbjJfd3JpdGVfYnVyc3Qoc3RydWN0IHNpaTg2MjAg KmN0eCkKK3sKKwlpZiAoIWN0eC0+Z2VuMl93cml0ZV9idXJzdCkKKwkJcmV0dXJuOworCisJc2lp ODYyMF93cml0ZV9zZXEoY3R4LAorCQlSRUdfTURUX1hNSVRfQ1RSTCwgMCwKKwkJUkVHX01EVF9S Q1ZfQ1RSTCwgMAorCSk7CisJY3R4LT5nZW4yX3dyaXRlX2J1cnN0ID0gMDsKK30KKworc3RhdGlj IHZvaWQgc2lpODYyMF9zdGFydF9nZW4yX3dyaXRlX2J1cnN0KHN0cnVjdCBzaWk4NjIwICpjdHgp Cit7CisJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQlSRUdfTURUX0lOVF8xX01BU0ssIEJJVF9N RFRfUkNWX1RJTUVPVVQKKwkJCXwgQklUX01EVF9SQ1ZfU01fQUJPUlRfUEtUX1JDVkQgfCBCSVRf TURUX1JDVl9TTV9FUlJPUgorCQkJfCBCSVRfTURUX1hNSVRfVElNRU9VVCB8IEJJVF9NRFRfWE1J VF9TTV9BQk9SVF9QS1RfUkNWRAorCQkJfCBCSVRfTURUX1hNSVRfU01fRVJST1IsCisJCVJFR19N RFRfSU5UXzBfTUFTSywgQklUX01EVF9YRklGT19FTVBUWQorCQkJfCBCSVRfTURUX0lETEVfQUZU RVJfSEFXQl9ESVNBQkxFCisJCQl8IEJJVF9NRFRfUkZJRk9fREFUQV9SRFkKKwkpOworCXNpaTg2 MjBfZW5hYmxlX2dlbjJfd3JpdGVfYnVyc3QoY3R4KTsKK30KKworc3RhdGljIHZvaWQgc2lpODYy MF9taGxfZGlzY292ZXIoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlzaWk4NjIwX3dyaXRlX3Nl cShjdHgsCisJCVJFR19ESVNDX0NUUkw5LCBCSVRfRElTQ19DVFJMOV9XQUtFX0RSVkZMVAorCQkJ fCBCSVRfRElTQ19DVFJMOV9ESVNDX1BVTFNFX1BST0NFRUQsCisJCVJFR19ESVNDX0NUUkw0LCBW QUxfRElTQ19DVFJMNChWQUxfUFVQXzVLLCBWQUxfUFVQXzIwSyksCisJCVJFR19DQlVTX0RJU0Nf SU5UUjBfTUFTSywgQklUX01ITDNfRVNUX0lOVAorCQkJfCBCSVRfTUhMX0VTVF9JTlQKKwkJCXwg QklUX05PVF9NSExfRVNUX0lOVAorCQkJfCBCSVRfQ0JVU19NSEwzX0RJU0NPTl9JTlQKKwkJCXwg QklUX0NCVVNfTUhMMTJfRElTQ09OX0lOVAorCQkJfCBCSVRfUkdORF9SRUFEWV9JTlQsCisJCVJF R19NSExfUExMX0NUTDAsIFZBTF9NSExfUExMX0NUTDBfSERNSV9DTEtfUkFUSU9fMVgKKwkJCXwg QklUX01ITF9QTExfQ1RMMF9DUllTVEFMX0NMS19TRUwKKwkJCXwgQklUX01ITF9QTExfQ1RMMF9a T05FX01BU0tfT0UsCisJCVJFR19NSExfRFBfQ1RMMCwgQklUX01ITF9EUF9DVEwwX0RQX09FCisJ CQl8IEJJVF9NSExfRFBfQ1RMMF9UWF9PRV9PVlIsCisJCVJFR19NM19DVFJMLCBWQUxfTTNfQ1RS TF9NSEwzX1ZBTFVFLAorCQlSRUdfTUhMX0RQX0NUTDEsIDB4QTIsCisJCVJFR19NSExfRFBfQ1RM MiwgMHgwMywKKwkJUkVHX01ITF9EUF9DVEwzLCAweDM1LAorCQlSRUdfTUhMX0RQX0NUTDUsIDB4 MDIsCisJCVJFR19NSExfRFBfQ1RMNiwgMHgwMiwKKwkJUkVHX01ITF9EUF9DVEw3LCAweDAzLAor CQlSRUdfQ09DX0NUTEMsIDB4RkYsCisJCVJFR19EUEQsIEJJVF9EUERfUFdST05fUExMIHwgQklU X0RQRF9QRE5UWDEyCisJCQl8IEJJVF9EUERfT1NDX0VOIHwgQklUX0RQRF9QV1JPTl9IU0lDLAor CQlSRUdfQ09DX0lOVFJfTUFTSywgQklUX0NPQ19QTExfTE9DS19TVEFUVVNfQ0hBTkdFCisJCQl8 IEJJVF9DT0NfQ0FMSUJSQVRJT05fRE9ORSwKKwkJUkVHX0NCVVNfSU5UXzFfTUFTSywgQklUX0NC VVNfTVNDX0FCT1JUX1JDVkQKKwkJCXwgQklUX0NCVVNfQ01EX0FCT1JULAorCQlSRUdfQ0JVU19J TlRfMF9NQVNLLCBCSVRfQ0JVU19NU0NfTVRfRE9ORQorCQkJfCBCSVRfQ0JVU19IUERfQ0hHCisJ CQl8IEJJVF9DQlVTX01TQ19NUl9XUklURV9TVEFUCisJCQl8IEJJVF9DQlVTX01TQ19NUl9NU0Nf TVNHCisJCQl8IEJJVF9DQlVTX01TQ19NUl9XUklURV9CVVJTVAorCQkJfCBCSVRfQ0JVU19NU0Nf TVJfU0VUX0lOVAorCQkJfCBCSVRfQ0JVU19NU0NfTVRfRE9ORV9OQUNLCisJKTsKK30KKworc3Rh dGljIHZvaWQgc2lpODYyMF9wZWVyX3NwZWNpZmljX2luaXQoc3RydWN0IHNpaTg2MjAgKmN0eCkK K3sKKwlpZiAoY3R4LT5tb2RlID09IENNX01ITDMpCisJCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwK KwkJCVJFR19TWVNfQ1RSTDEsIEJJVF9TWVNfQ1RSTDFfQkxPQ0tfRERDX0JZX0hQRCwKKwkJCVJF R19FTVNDSU5UUk1BU0sxLAorCQkJCUJJVF9FTVNDSU5UUjFfRU1TQ19UUkFJTklOR19DT01NQV9F UlIKKwkJKTsKKwllbHNlCisJCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJCVJFR19IRENQMlhf SU5UUjBfTUFTSywgMHgwMCwKKwkJCVJFR19FTVNDSU5UUk1BU0sxLCAweDAwLAorCQkJUkVHX0hE Q1AyWF9JTlRSMCwgMHhGRiwKKwkJCVJFR19JTlRSMSwgMHhGRiwKKwkJCVJFR19TWVNfQ1RSTDEs IEJJVF9TWVNfQ1RSTDFfQkxPQ0tfRERDX0JZX0hQRAorCQkJCXwgQklUX1NZU19DVFJMMV9UWF9D VFJMX0hETUkKKwkJKTsKK30KKworI2RlZmluZSBTSUk4NjIwX01ITF9WRVJTSU9OCQkJMHgzMgor I2RlZmluZSBTSUk4NjIwX1NDUkFUQ0hQQURfU0laRQkJCTE2CisjZGVmaW5lIFNJSTg2MjBfSU5U X1NUQVRfU0laRQkJCTB4MzMKKworc3RhdGljIHZvaWQgc2lpODYyMF9zZXRfZGV2X2NhcChzdHJ1 Y3Qgc2lpODYyMCAqY3R4KQoreworCXN0YXRpYyBjb25zdCB1OCBkZXZjYXBbTUhMX0RDQVBfU0la RV0gPSB7CisJCVtNSExfRENBUF9NSExfVkVSU0lPTl0gPSBTSUk4NjIwX01ITF9WRVJTSU9OLAor CQlbTUhMX0RDQVBfQ0FUXSA9IE1ITF9EQ0FQX0NBVF9TT1VSQ0UgfCBNSExfRENBUF9DQVRfUE9X RVIsCisJCVtNSExfRENBUF9BRE9QVEVSX0lEX0hdID0gMHgwMSwKKwkJW01ITF9EQ0FQX0FET1BU RVJfSURfTF0gPSAweDQxLAorCQlbTUhMX0RDQVBfVklEX0xJTktfTU9ERV0gPSBNSExfRENBUF9W SURfTElOS19SR0I0NDQKKwkJCXwgTUhMX0RDQVBfVklEX0xJTktfUFBJWEVMCisJCQl8IE1ITF9E Q0FQX1ZJRF9MSU5LXzE2QlBQLAorCQlbTUhMX0RDQVBfQVVEX0xJTktfTU9ERV0gPSBNSExfRENB UF9BVURfTElOS18yQ0gsCisJCVtNSExfRENBUF9WSURFT19UWVBFXSA9IE1ITF9EQ0FQX1ZUX0dS QVBISUNTLAorCQlbTUhMX0RDQVBfTE9HX0RFVl9NQVBdID0gTUhMX0RDQVBfTERfR1VJLAorCQlb TUhMX0RDQVBfQkFORFdJRFRIXSA9IDB4MGYsCisJCVtNSExfRENBUF9GRUFUVVJFX0ZMQUddID0g TUhMX0RDQVBfRkVBVFVSRV9SQ1BfU1VQUE9SVAorCQkJfCBNSExfRENBUF9GRUFUVVJFX1JBUF9T VVBQT1JUCisJCQl8IE1ITF9EQ0FQX0ZFQVRVUkVfU1BfU1VQUE9SVCwKKwkJW01ITF9EQ0FQX1ND UkFUQ0hQQURfU0laRV0gPSBTSUk4NjIwX1NDUkFUQ0hQQURfU0laRSwKKwkJW01ITF9EQ0FQX0lO VF9TVEFUX1NJWkVdID0gU0lJODYyMF9JTlRfU1RBVF9TSVpFLAorCX07CisJc3RhdGljIGNvbnN0 IHU4IHhkY2FwW01ITF9YRENfU0laRV0gPSB7CisJCVtNSExfWERDX0VDQlVTX1NQRUVEU10gPSBN SExfWERDX0VDQlVTX1NfMDc1CisJCQl8IE1ITF9YRENfRUNCVVNfU184QklULAorCQlbTUhMX1hE Q19UTURTX1NQRUVEU10gPSBNSExfWERDX1RNRFNfMTUwCisJCQl8IE1ITF9YRENfVE1EU18zMDAg fCBNSExfWERDX1RNRFNfNjAwLAorCQlbTUhMX1hEQ19FQ0JVU19ST0xFU10gPSBNSExfWERDX0RF Vl9IT1NULAorCQlbTUhMX1hEQ19MT0dfREVWX01BUFhdID0gTUhMX1hEQ19MRF9QSE9ORSwKKwl9 OworCisJc2lpODYyMF93cml0ZV9idWYoY3R4LCBSRUdfTUhMX0RFVkNBUF8wLCBkZXZjYXAsIEFS UkFZX1NJWkUoZGV2Y2FwKSk7CisJc2lpODYyMF93cml0ZV9idWYoY3R4LCBSRUdfTUhMX0VYVERF VkNBUF8wLCB4ZGNhcCwgQVJSQVlfU0laRSh4ZGNhcCkpOworfQorCitzdGF0aWMgdm9pZCBzaWk4 NjIwX21obF9pbml0KHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc2lpODYyMF93cml0ZV9zZXEo Y3R4LAorCQlSRUdfRElTQ19DVFJMNCwgVkFMX0RJU0NfQ1RSTDQoVkFMX1BVUF9PRkYsIFZBTF9Q VVBfMjBLKSwKKwkJUkVHX0NCVVNfTVNDX0NPTVBBVF9DVFJMLAorCQkJQklUX0NCVVNfTVNDX0NP TVBBVF9DVFJMX1hERVZDQVBfRU4sCisJKTsKKworCXNpaTg2MjBfcGVlcl9zcGVjaWZpY19pbml0 KGN0eCk7CisKKwlzaWk4NjIwX2Rpc2FibGVfaHBkKGN0eCk7CisKKwlzaWk4NjIwX3dyaXRlX3Nl cShjdHgsCisJCVJFR19FRElEX0NUUkwsIEJJVF9FRElEX0NUUkxfRURJRF9GSUZPX0FERFJfQVVU TywKKwkJUkVHX0RJU0NfQ1RSTDksIEJJVF9ESVNDX0NUUkw5X1dBS0VfRFJWRkxUCisJCQl8IEJJ VF9ESVNDX0NUUkw5X1dBS0VfUFVMU0VfQllQQVNTLAorCQlSRUdfVE1EUzBfQ0NUUkwxLCAweDkw LAorCQlSRUdfVE1EU19DTEtfRU4sIDB4MDEsCisJCVJFR19UTURTX0NIX0VOLCAweDExLAorCQlS RUdfQkdSX0JJQVMsIDB4ODcsCisJCVJFR19BTElDRTBfWk9ORV9DVFJMLCAweEU4LAorCQlSRUdf QUxJQ0UwX01PREVfQ1RSTCwgMHgwNCwKKwkpOworCXNpaTg2MjBfc2V0Yml0cyhjdHgsIFJFR19M TV9EREMsIEJJVF9MTV9ERENfU1dfVFBJX0VOX0RJU0FCTEVELCAwKTsKKwlzaWk4NjIwX3dyaXRl X3NlcShjdHgsCisJCVJFR19UUElfSFdfT1BUMywgMHg3NiwKKwkJUkVHX1RNRFNfQ0NUUkwsIEJJ VF9UTURTX0NDVFJMX1RNRFNfT0UsCisJCVJFR19UUElfRFREX0IyLCA3OSwKKwkpOworCXNpaTg2 MjBfc2V0X2Rldl9jYXAoY3R4KTsKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJFR19NRFRf WE1JVF9USU1FT1VULCAxMDAsCisJCVJFR19NRFRfWE1JVF9DVFJMLCAweDAzLAorCQlSRUdfTURU X1hGSUZPX1NUQVQsIDB4MDAsCisJCVJFR19NRFRfUkNWX1RJTUVPVVQsIDEwMCwKKwkJUkVHX0NC VVNfTElOS19DVFJMXzgsIDB4MUQsCisJKTsKKworCXNpaTg2MjBfc3RhcnRfZ2VuMl93cml0ZV9i dXJzdChjdHgpOworCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJUkVHX0JJU1RfQ1RSTCwgMHgw MCwKKwkJUkVHX0NPQ19DVEwxLCAweDEwLAorCQlSRUdfQ09DX0NUTDIsIDB4MTgsCisJCVJFR19D T0NfQ1RMRiwgMHgwNywKKwkJUkVHX0NPQ19DVEwxMSwgMHhGOCwKKwkJUkVHX0NPQ19DVEwxNywg MHg2MSwKKwkJUkVHX0NPQ19DVEwxOCwgMHg0NiwKKwkJUkVHX0NPQ19DVEwxOSwgMHgxNSwKKwkJ UkVHX0NPQ19DVEwxQSwgMHgwMSwKKwkJUkVHX01ITF9DT0NfQ1RMMywgQklUX01ITF9DT0NfQ1RM M19DT0NfQUVDSE9fRU4sCisJCVJFR19NSExfQ09DX0NUTDQsIDB4MkQsCisJCVJFR19NSExfQ09D X0NUTDUsIDB4RjksCisJCVJFR19NU0NfSEVBUlRCRUFUX0NUUkwsIDB4MjcsCisJKTsKKwlzaWk4 NjIwX2Rpc2FibGVfZ2VuMl93cml0ZV9idXJzdChjdHgpOworCisJLyogY3VycmVudGx5IE1ITDMg aXMgbm90IHN1cHBvcnRlZCwgc28gd2UgZm9yY2UgdmVyc2lvbiB0byAwICovCisJc2lpODYyMF9t dF93cml0ZV9zdGF0KGN0eCwgTUhMX0RTVF9SRUcoVkVSU0lPTiksIDApOworCXNpaTg2MjBfbXRf d3JpdGVfc3RhdChjdHgsIE1ITF9EU1RfUkVHKENPTk5FQ1RFRF9SRFkpLAorCQkJICAgICAgTUhM X0RTVF9DT05OX0RDQVBfUkRZIHwgTUhMX0RTVF9DT05OX1hERVZDQVBQX1NVUFAKKwkJCSAgICAg IHwgTUhMX0RTVF9DT05OX1BPV19TVEFUKTsKKwlzaWk4NjIwX210X3NldF9pbnQoY3R4LCBNSExf SU5UX1JFRyhSQ0hBTkdFKSwgTUhMX0lOVF9SQ19EQ0FQX0NIRyk7Cit9CisKK3N0YXRpYyB2b2lk IHNpaTg2MjBfc2V0X21vZGUoc3RydWN0IHNpaTg2MjAgKmN0eCwgZW51bSBzaWk4NjIwX21vZGUg bW9kZSkKK3sKKwlpZiAoY3R4LT5tb2RlID09IG1vZGUpCisJCXJldHVybjsKKworCWN0eC0+bW9k ZSA9IG1vZGU7CisKKwlzd2l0Y2ggKG1vZGUpIHsKKwljYXNlIENNX01ITDE6CisJCXNpaTg2MjBf d3JpdGVfc2VxKGN0eCwKKwkJCVJFR19DQlVTX01TQ19DT01QQVRfQ1RSTCwgMHgwMiwKKwkJCVJF R19NM19DVFJMLCBWQUxfTTNfQ1RSTF9NSEwxXzJfVkFMVUUsCisJCQlSRUdfRFBELCBCSVRfRFBE X1BXUk9OX1BMTCB8IEJJVF9EUERfUEROVFgxMgorCQkJCXwgQklUX0RQRF9PU0NfRU4sCisJCQlS RUdfQ09DX0lOVFJfTUFTSywgMAorCQkpOworCQlicmVhazsKKwljYXNlIENNX01ITDM6CisJCXNp aTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJCVJFR19NM19DVFJMLCBWQUxfTTNfQ1RSTF9NSEwzX1ZB TFVFLAorCQkJUkVHX0NPQ19DVEwwLCAweDQwLAorCQkJUkVHX01ITF9DT0NfQ1RMMSwgMHgwNwor CQkpOworCQlicmVhazsKKwljYXNlIENNX0RJU0NPTk5FQ1RFRDoKKwkJYnJlYWs7CisJZGVmYXVs dDoKKwkJZGV2X2VycihjdHgtPmRldiwgIiVzIG1vZGUgJWQgbm90IHN1cHBvcnRlZFxuIiwgX19m dW5jX18sIG1vZGUpOworCQlicmVhazsKKwl9OworCisJc2lpODYyMF9zZXRfYXV0b196b25lKGN0 eCk7CisKKwlpZiAobW9kZSAhPSBDTV9NSEwxKQorCQlyZXR1cm47CisKKwlzaWk4NjIwX3dyaXRl X3NlcShjdHgsCisJCVJFR19NSExfRFBfQ1RMMCwgMHhCQywKKwkJUkVHX01ITF9EUF9DVEwxLCAw eEJCLAorCQlSRUdfTUhMX0RQX0NUTDMsIDB4NDgsCisJCVJFR19NSExfRFBfQ1RMNSwgMHgzOSwK KwkJUkVHX01ITF9EUF9DVEwyLCAweDJBLAorCQlSRUdfTUhMX0RQX0NUTDYsIDB4MkEsCisJCVJF R19NSExfRFBfQ1RMNywgMHgwOAorCSk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfZGlzY29u bmVjdChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXNpaTg2MjBfZGlzYWJsZV9nZW4yX3dyaXRl X2J1cnN0KGN0eCk7CisJc2lpODYyMF9zdG9wX3ZpZGVvKGN0eCk7CisJbXNsZWVwKDUwKTsKKwlz aWk4NjIwX2NidXNfcmVzZXQoY3R4KTsKKwlzaWk4NjIwX3NldF9tb2RlKGN0eCwgQ01fRElTQ09O TkVDVEVEKTsKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJFR19DT0NfQ1RMMCwgMHg0MCwK KwkJUkVHX0NCVVMzX0NOVlQsIDB4ODQsCisJCVJFR19DT0NfQ1RMMTQsIDB4MDAsCisJCVJFR19D T0NfQ1RMMCwgMHg0MCwKKwkJUkVHX0hSWENUUkwzLCAweDA3LAorCQlSRUdfTUhMX1BMTF9DVEww LCBWQUxfTUhMX1BMTF9DVEwwX0hETUlfQ0xLX1JBVElPXzFYCisJCQl8IEJJVF9NSExfUExMX0NU TDBfQ1JZU1RBTF9DTEtfU0VMCisJCQl8IEJJVF9NSExfUExMX0NUTDBfWk9ORV9NQVNLX09FLAor CQlSRUdfTUhMX0RQX0NUTDAsIEJJVF9NSExfRFBfQ1RMMF9EUF9PRQorCQkJfCBCSVRfTUhMX0RQ X0NUTDBfVFhfT0VfT1ZSLAorCQlSRUdfTUhMX0RQX0NUTDEsIDB4QkIsCisJCVJFR19NSExfRFBf Q1RMMywgMHg0OCwKKwkJUkVHX01ITF9EUF9DVEw1LCAweDNGLAorCQlSRUdfTUhMX0RQX0NUTDIs IDB4MkYsCisJCVJFR19NSExfRFBfQ1RMNiwgMHgyQSwKKwkJUkVHX01ITF9EUF9DVEw3LCAweDAz CisJKTsKKwlzaWk4NjIwX2Rpc2FibGVfaHBkKGN0eCk7CisJc2lpODYyMF93cml0ZV9zZXEoY3R4 LAorCQlSRUdfTTNfQ1RSTCwgVkFMX00zX0NUUkxfTUhMM19WQUxVRSwKKwkJUkVHX01ITF9DT0Nf Q1RMMSwgMHgwNywKKwkJUkVHX0RJU0NfQ1RSTDQsIFZBTF9ESVNDX0NUUkw0KFZBTF9QVVBfT0ZG LCBWQUxfUFVQXzIwSyksCisJCVJFR19ESVNDX0NUUkw4LCAweDAwLAorCQlSRUdfRElTQ19DVFJM OSwgQklUX0RJU0NfQ1RSTDlfV0FLRV9EUlZGTFQKKwkJCXwgQklUX0RJU0NfQ1RSTDlfV0FLRV9Q VUxTRV9CWVBBU1MsCisJCVJFR19JTlRfQ1RSTCwgMHgwMCwKKwkJUkVHX01TQ19IRUFSVEJFQVRf Q1RSTCwgMHgyNywKKwkJUkVHX0RJU0NfQ1RSTDEsIDB4MjUsCisJCVJFR19DQlVTX0RJU0NfSU5U UjAsICh1OCl+QklUX1JHTkRfUkVBRFlfSU5ULAorCQlSRUdfQ0JVU19ESVNDX0lOVFIwX01BU0ss IEJJVF9SR05EX1JFQURZX0lOVCwKKwkJUkVHX01EVF9JTlRfMSwgMHhmZiwKKwkJUkVHX01EVF9J TlRfMV9NQVNLLCAweDAwLAorCQlSRUdfTURUX0lOVF8wLCAweGZmLAorCQlSRUdfTURUX0lOVF8w X01BU0ssIDB4MDAsCisJCVJFR19DT0NfSU5UUiwgMHhmZiwKKwkJUkVHX0NPQ19JTlRSX01BU0ss IDB4MDAsCisJCVJFR19UUlhJTlRILCAweGZmLAorCQlSRUdfVFJYSU5UTUgsIDB4MDAsCisJCVJF R19DQlVTX0lOVF8wLCAweGZmLAorCQlSRUdfQ0JVU19JTlRfMF9NQVNLLCAweDAwLAorCQlSRUdf Q0JVU19JTlRfMSwgMHhmZiwKKwkJUkVHX0NCVVNfSU5UXzFfTUFTSywgMHgwMCwKKwkJUkVHX0VN U0NJTlRSLCAweGZmLAorCQlSRUdfRU1TQ0lOVFJNQVNLLCAweDAwLAorCQlSRUdfRU1TQ0lOVFIx LCAweGZmLAorCQlSRUdfRU1TQ0lOVFJNQVNLMSwgMHgwMCwKKwkJUkVHX0lOVFI4LCAweGZmLAor CQlSRUdfSU5UUjhfTUFTSywgMHgwMCwKKwkJUkVHX1RQSV9JTlRSX1NUMCwgMHhmZiwKKwkJUkVH X1RQSV9JTlRSX0VOLCAweDAwLAorCQlSRUdfSERDUDJYX0lOVFIwLCAweGZmLAorCQlSRUdfSERD UDJYX0lOVFIwX01BU0ssIDB4MDAsCisJCVJFR19JTlRSOSwgMHhmZiwKKwkJUkVHX0lOVFI5X01B U0ssIDB4MDAsCisJCVJFR19JTlRSMywgMHhmZiwKKwkJUkVHX0lOVFIzX01BU0ssIDB4MDAsCisJ CVJFR19JTlRSNSwgMHhmZiwKKwkJUkVHX0lOVFI1X01BU0ssIDB4MDAsCisJCVJFR19JTlRSMiwg MHhmZiwKKwkJUkVHX0lOVFIyX01BU0ssIDB4MDAsCisJKTsKKwltZW1zZXQoY3R4LT5zdGF0LCAw LCBzaXplb2YoY3R4LT5zdGF0KSk7CisJbWVtc2V0KGN0eC0+eHN0YXQsIDAsIHNpemVvZihjdHgt PnhzdGF0KSk7CisJbWVtc2V0KGN0eC0+ZGV2Y2FwLCAwLCBzaXplb2YoY3R4LT5kZXZjYXApKTsK KwltZW1zZXQoY3R4LT54ZGV2Y2FwLCAwLCBzaXplb2YoY3R4LT54ZGV2Y2FwKSk7CisJY3R4LT5j YnVzX3N0YXR1cyA9IDA7CisJY3R4LT5zaW5rX3R5cGUgPSBTSU5LX05PTkU7CisJa2ZyZWUoY3R4 LT5lZGlkKTsKKwljdHgtPmVkaWQgPSBOVUxMOworCXNpaTg2MjBfbXRfY2xlYW51cChjdHgpOwor fQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX21obF9kaXNjb25uZWN0ZWQoc3RydWN0IHNpaTg2MjAg KmN0eCkKK3sKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJFR19ESVNDX0NUUkw0LCBWQUxf RElTQ19DVFJMNChWQUxfUFVQX09GRiwgVkFMX1BVUF8yMEspLAorCQlSRUdfQ0JVU19NU0NfQ09N UEFUX0NUUkwsCisJCQlCSVRfQ0JVU19NU0NfQ09NUEFUX0NUUkxfWERFVkNBUF9FTgorCSk7CisJ c2lpODYyMF9kaXNjb25uZWN0KGN0eCk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfaXJxX2Rp c2Moc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwl1OCBzdGF0ID0gc2lpODYyMF9yZWFkYihjdHgs IFJFR19DQlVTX0RJU0NfSU5UUjApOworCisJaWYgKHN0YXQgJiBWQUxfQ0JVU19NSExfRElTQ09O KQorCQlzaWk4NjIwX21obF9kaXNjb25uZWN0ZWQoY3R4KTsKKworCWlmIChzdGF0ICYgQklUX1JH TkRfUkVBRFlfSU5UKSB7CisJCXU4IHN0YXQyID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19ESVND X1NUQVQyKTsKKworCQlpZiAoKHN0YXQyICYgTVNLX0RJU0NfU1RBVDJfUkdORCkgPT0gVkFMX1JH TkRfMUspCisJCQlzaWk4NjIwX21obF9kaXNjb3ZlcihjdHgpOworCQllbHNlIHsKKwkJCXNpaTg2 MjBfd3JpdGVfc2VxKGN0eCwKKwkJCQlSRUdfRElTQ19DVFJMOSwgQklUX0RJU0NfQ1RSTDlfV0FL RV9EUlZGTFQKKwkJCQkJfCBCSVRfRElTQ19DVFJMOV9OT01ITF9FU1QKKwkJCQkJfCBCSVRfRElT Q19DVFJMOV9XQUtFX1BVTFNFX0JZUEFTUywKKwkJCQlSRUdfQ0JVU19ESVNDX0lOVFIwX01BU0ss IEJJVF9SR05EX1JFQURZX0lOVAorCQkJCQl8IEJJVF9DQlVTX01ITDNfRElTQ09OX0lOVAorCQkJ CQl8IEJJVF9DQlVTX01ITDEyX0RJU0NPTl9JTlQKKwkJCQkJfCBCSVRfTk9UX01ITF9FU1RfSU5U CisJCQkpOworCQl9CisJfQorCWlmIChzdGF0ICYgQklUX01ITF9FU1RfSU5UKQorCQlzaWk4NjIw X21obF9pbml0KGN0eCk7CisKKwlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0NCVVNfRElTQ19JTlRS MCwgc3RhdCk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfaXJxX2cyd2Ioc3RydWN0IHNpaTg2 MjAgKmN0eCkKK3sKKwl1OCBzdGF0ID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19NRFRfSU5UXzAp OworCisJaWYgKHN0YXQgJiBCSVRfTURUX0lETEVfQUZURVJfSEFXQl9ESVNBQkxFKQorCQlkZXZf ZGJnKGN0eC0+ZGV2LCAiSEFXQiBpZGxlXG4iKTsKKworCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdf TURUX0lOVF8wLCBzdGF0KTsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9zdGF0dXNfY2hhbmdl ZF9kY2FwKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJaWYgKGN0eC0+c3RhdFtNSExfRFNUX0NP Tk5FQ1RFRF9SRFldICYgTUhMX0RTVF9DT05OX0RDQVBfUkRZKSB7CisJCXNpaTg2MjBfc2V0X21v ZGUoY3R4LCBDTV9NSEwxKTsKKwkJc2lpODYyMF9wZWVyX3NwZWNpZmljX2luaXQoY3R4KTsKKwkJ c2lpODYyMF93cml0ZShjdHgsIFJFR19JTlRSOV9NQVNLLCBCSVRfSU5UUjlfREVWQ0FQX0RPTkUK KwkJCSAgICAgICB8IEJJVF9JTlRSOV9FRElEX0RPTkUgfCBCSVRfSU5UUjlfRURJRF9FUlJPUik7 CisJfQorfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX3N0YXR1c19jaGFuZ2VkX3BhdGgoc3RydWN0 IHNpaTg2MjAgKmN0eCkKK3sKKwlpZiAoY3R4LT5zdGF0W01ITF9EU1RfTElOS19NT0RFXSAmIE1I TF9EU1RfTE1fUEFUSF9FTkFCTEVEKSB7CisJCXNpaTg2MjBfbXRfd3JpdGVfc3RhdChjdHgsIE1I TF9EU1RfUkVHKExJTktfTU9ERSksCisJCQkJICAgICAgTUhMX0RTVF9MTV9DTEtfTU9ERV9OT1JN QUwKKwkJCQkgICAgICB8IE1ITF9EU1RfTE1fUEFUSF9FTkFCTEVEKTsKKwkJc2lpODYyMF9tdF9y ZWFkX2RldmNhcChjdHgsIGZhbHNlKTsKKwl9IGVsc2UgeworCQlzaWk4NjIwX210X3dyaXRlX3N0 YXQoY3R4LCBNSExfRFNUX1JFRyhMSU5LX01PREUpLAorCQkJCSAgICAgIE1ITF9EU1RfTE1fQ0xL X01PREVfTk9STUFMKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfbXNjX21yX3dyaXRl X3N0YXQoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwl1OCBzdFtNSExfRFNUX1NJWkVdLCB4c3Rb TUhMX1hEU19TSVpFXTsKKworCXNpaTg2MjBfcmVhZF9idWYoY3R4LCBSRUdfTUhMX1NUQVRfMCwg c3QsIE1ITF9EU1RfU0laRSk7CisJc2lpODYyMF9yZWFkX2J1ZihjdHgsIFJFR19NSExfRVhUU1RB VF8wLCB4c3QsIE1ITF9YRFNfU0laRSk7CisKKwlzaWk4NjIwX3VwZGF0ZV9hcnJheShjdHgtPnN0 YXQsIHN0LCBNSExfRFNUX1NJWkUpOworCXNpaTg2MjBfdXBkYXRlX2FycmF5KGN0eC0+eHN0YXQs IHhzdCwgTUhMX1hEU19TSVpFKTsKKworCWlmIChzdFtNSExfRFNUX0NPTk5FQ1RFRF9SRFldICYg TUhMX0RTVF9DT05OX0RDQVBfUkRZKQorCQlzaWk4NjIwX3N0YXR1c19jaGFuZ2VkX2RjYXAoY3R4 KTsKKworCWlmIChzdFtNSExfRFNUX0xJTktfTU9ERV0gJiBNSExfRFNUX0xNX1BBVEhfRU5BQkxF RCkKKwkJc2lpODYyMF9zdGF0dXNfY2hhbmdlZF9wYXRoKGN0eCk7Cit9CisKK3N0YXRpYyB2b2lk IHNpaTg2MjBfbXNjX21yX3NldF9pbnQoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwl1OCBpbnRz W01ITF9JTlRfU0laRV07CisKKwlzaWk4NjIwX3JlYWRfYnVmKGN0eCwgUkVHX01ITF9JTlRfMCwg aW50cywgTUhMX0lOVF9TSVpFKTsKKwlzaWk4NjIwX3dyaXRlX2J1ZihjdHgsIFJFR19NSExfSU5U XzAsIGludHMsIE1ITF9JTlRfU0laRSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgc2lpODYyMF9tdF9t c2cgKnNpaTg2MjBfbXNjX21zZ19maXJzdChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXN0cnVj dCBkZXZpY2UgKmRldiA9IGN0eC0+ZGV2OworCisJaWYgKGxpc3RfZW1wdHkoJmN0eC0+bXRfcXVl dWUpKSB7CisJCWRldl9lcnIoZGV2LCAidW5leHBlY3RlZCBNU0MgTVQgcmVzcG9uc2VcbiIpOwor CQlyZXR1cm4gTlVMTDsKKwl9CisKKwlyZXR1cm4gbGlzdF9maXJzdF9lbnRyeSgmY3R4LT5tdF9x dWV1ZSwgc3RydWN0IHNpaTg2MjBfbXRfbXNnLCBub2RlKTsKK30KKworc3RhdGljIHZvaWQgc2lp ODYyMF9tc2NfbXRfZG9uZShzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXN0cnVjdCBzaWk4NjIw X210X21zZyAqbXNnID0gc2lpODYyMF9tc2NfbXNnX2ZpcnN0KGN0eCk7CisKKwlpZiAoIW1zZykK KwkJcmV0dXJuOworCisJbXNnLT5yZXQgPSBzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX01TQ19NVF9S Q1ZEX0RBVEEwKTsKKwljdHgtPm10X3N0YXRlID0gTVRfU1RBVEVfRE9ORTsKK30KKworc3RhdGlj IHZvaWQgc2lpODYyMF9tc2NfbXJfbXNjX21zZyhzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXN0 cnVjdCBzaWk4NjIwX210X21zZyAqbXNnID0gc2lpODYyMF9tc2NfbXNnX2ZpcnN0KGN0eCk7CisJ dTggYnVmWzJdOworCisJaWYgKCFtc2cpCisJCXJldHVybjsKKworCXNpaTg2MjBfcmVhZF9idWYo Y3R4LCBSRUdfTVNDX01SX01TQ19NU0dfUkNWRF8xU1RfREFUQSwgYnVmLCAyKTsKKworCXN3aXRj aCAoYnVmWzBdKSB7CisJY2FzZSBNSExfTVNDX01TR19SQVBLOgorCQltc2ctPnJldCA9IGJ1Zlsx XTsKKwkJY3R4LT5tdF9zdGF0ZSA9IE1UX1NUQVRFX0RPTkU7CisJCWJyZWFrOworCWRlZmF1bHQ6 CisJCWRldl9lcnIoY3R4LT5kZXYsICIlcyBtZXNzYWdlIHR5cGUgJWQsJWQgbm90IHN1cHBvcnRl ZCIsCisJCQlfX2Z1bmNfXywgYnVmWzBdLCBidWZbMV0pOworCX0KK30KKworc3RhdGljIHZvaWQg c2lpODYyMF9pcnFfbXNjKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJdTggc3RhdCA9IHNpaTg2 MjBfcmVhZGIoY3R4LCBSRUdfQ0JVU19JTlRfMCk7CisKKwlpZiAoc3RhdCAmIH5CSVRfQ0JVU19I UERfQ0hHKQorCQlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0NCVVNfSU5UXzAsIHN0YXQgJiB+QklU X0NCVVNfSFBEX0NIRyk7CisKKwlpZiAoc3RhdCAmIEJJVF9DQlVTX0hQRF9DSEcpIHsKKwkJdTgg Y2J1c19zdGF0ID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19DQlVTX1NUQVRVUyk7CisKKwkJaWYg KChjYnVzX3N0YXQgXiBjdHgtPmNidXNfc3RhdHVzKSAmIEJJVF9DQlVTX1NUQVRVU19DQlVTX0hQ RCkgeworCQkJc2lpODYyMF93cml0ZShjdHgsIFJFR19DQlVTX0lOVF8wLCBCSVRfQ0JVU19IUERf Q0hHKTsKKwkJfSBlbHNlIHsKKwkJCXN0YXQgXj0gQklUX0NCVVNfU1RBVFVTX0NCVVNfSFBEOwor CQkJY2J1c19zdGF0IF49IEJJVF9DQlVTX1NUQVRVU19DQlVTX0hQRDsKKwkJfQorCQljdHgtPmNi dXNfc3RhdHVzID0gY2J1c19zdGF0OworCX0KKworCWlmIChzdGF0ICYgQklUX0NCVVNfTVNDX01S X1dSSVRFX1NUQVQpCisJCXNpaTg2MjBfbXNjX21yX3dyaXRlX3N0YXQoY3R4KTsKKworCWlmIChz dGF0ICYgQklUX0NCVVNfTVNDX01SX1NFVF9JTlQpCisJCXNpaTg2MjBfbXNjX21yX3NldF9pbnQo Y3R4KTsKKworCWlmIChzdGF0ICYgQklUX0NCVVNfTVNDX01UX0RPTkUpCisJCXNpaTg2MjBfbXNj X210X2RvbmUoY3R4KTsKKworCWlmIChzdGF0ICYgQklUX0NCVVNfTVNDX01SX01TQ19NU0cpCisJ CXNpaTg2MjBfbXNjX21yX21zY19tc2coY3R4KTsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9p cnFfY29jKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJdTggc3RhdCA9IHNpaTg2MjBfcmVhZGIo Y3R4LCBSRUdfQ09DX0lOVFIpOworCisJc2lpODYyMF93cml0ZShjdHgsIFJFR19DT0NfSU5UUiwg c3RhdCk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfaXJxX21lcnIoc3RydWN0IHNpaTg2MjAg KmN0eCkKK3sKKwl1OCBzdGF0ID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19DQlVTX0lOVF8xKTsK KworCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfQ0JVU19JTlRfMSwgc3RhdCk7Cit9CisKK3N0YXRp YyB2b2lkIHNpaTg2MjBfaXJxX2VkaWQoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwl1OCBzdGF0 ID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19JTlRSOSk7CisKKwlzaWk4NjIwX3dyaXRlKGN0eCwg UkVHX0lOVFI5LCBzdGF0KTsKKworCWlmIChzdGF0ICYgQklUX0lOVFI5X0RFVkNBUF9ET05FKQor CQljdHgtPm10X3N0YXRlID0gTVRfU1RBVEVfRE9ORTsKK30KKworc3RhdGljIHZvaWQgc2lpODYy MF9zY2R0X2hpZ2goc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlzaWk4NjIwX3dyaXRlX3NlcShj dHgsCisJCVJFR19JTlRSOF9NQVNLLCBCSVRfQ0VBX05FV19BVkkgfCBCSVRfQ0VBX05FV19WU0ks CisJCVJFR19UUElfU0MsIEJJVF9UUElfU0NfVFBJX09VVFBVVF9NT0RFXzBfSERNSSwKKwkpOwor fQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX3NjZHRfbG93KHN0cnVjdCBzaWk4NjIwICpjdHgpCit7 CisJc2lpODYyMF93cml0ZShjdHgsIFJFR19UTURTX0NTVEFUX1AzLAorCQkgICAgICAgQklUX1RN RFNfQ1NUQVRfUDNfU0NEVF9DTFJfQVZJX0RJUworCQkgICAgICAgfCBCSVRfVE1EU19DU1RBVF9Q M19DTFJfQVZJKTsKKworCXNpaTg2MjBfc3RvcF92aWRlbyhjdHgpOworCisJc2lpODYyMF93cml0 ZShjdHgsIFJFR19JTlRSOF9NQVNLLCAwKTsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9pcnFf c2NkdChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXU4IHN0YXQgPSBzaWk4NjIwX3JlYWRiKGN0 eCwgUkVHX0lOVFI1KTsKKworCWlmIChzdGF0ICYgQklUX0lOVFJfU0NEVF9DSEFOR0UpIHsKKwkJ dTggY3N0YXQgPSBzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX1RNRFNfQ1NUQVRfUDMpOworCisJCWlm IChjc3RhdCAmIEJJVF9UTURTX0NTVEFUX1AzX1NDRFQpCisJCQlzaWk4NjIwX3NjZHRfaGlnaChj dHgpOworCQllbHNlCisJCQlzaWk4NjIwX3NjZHRfbG93KGN0eCk7CisJfQorCisJc2lpODYyMF93 cml0ZShjdHgsIFJFR19JTlRSNSwgc3RhdCk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfbmV3 X3ZzaShzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXU4IHZzaWZbMTFdOworCisJc2lpODYyMF93 cml0ZShjdHgsIFJFR19SWF9IRE1JX0NUUkwyLAorCQkgICAgICAgVkFMX1JYX0hETUlfQ1RSTDJf REVGVkFMCisJCSAgICAgICB8IEJJVF9SWF9IRE1JX0NUUkwyX1ZTSV9NT05fU0VMX1ZTSSk7CisJ c2lpODYyMF9yZWFkX2J1ZihjdHgsIFJFR19SWF9IRE1JX01PTl9QS1RfSEVBREVSMSwgdnNpZiwK KwkJCSBBUlJBWV9TSVpFKHZzaWYpKTsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9uZXdfYXZp KHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc2lpODYyMF93cml0ZShjdHgsIFJFR19SWF9IRE1J X0NUUkwyLCBWQUxfUlhfSERNSV9DVFJMMl9ERUZWQUwpOworCXNpaTg2MjBfcmVhZF9idWYoY3R4 LCBSRUdfUlhfSERNSV9NT05fUEtUX0hFQURFUjEsIGN0eC0+YXZpZiwKKwkJCSBBUlJBWV9TSVpF KGN0eC0+YXZpZikpOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX2lycV9pbmZyKHN0cnVjdCBz aWk4NjIwICpjdHgpCit7CisJdTggc3RhdCA9IHNpaTg2MjBfcmVhZGIoY3R4LCBSRUdfSU5UUjgp CisJCSYgKEJJVF9DRUFfTkVXX1ZTSSB8IEJJVF9DRUFfTkVXX0FWSSk7CisKKwlzaWk4NjIwX3dy aXRlKGN0eCwgUkVHX0lOVFI4LCBzdGF0KTsKKworCWlmIChzdGF0ICYgQklUX0NFQV9ORVdfVlNJ KQorCQlzaWk4NjIwX25ld192c2koY3R4KTsKKworCWlmIChzdGF0ICYgQklUX0NFQV9ORVdfQVZJ KQorCQlzaWk4NjIwX25ld19hdmkoY3R4KTsKKworCWlmIChzdGF0ICYgKEJJVF9DRUFfTkVXX1ZT SSB8IEJJVF9DRUFfTkVXX0FWSSkpCisJCXNpaTg2MjBfc3RhcnRfdmlkZW8oY3R4KTsKK30KKwor LyogZW5kaWFuIGFnbm9zdGljLCBub24tdm9sYXRpbGUgdmVyc2lvbiBvZiB0ZXN0X2JpdCAqLwor c3RhdGljIGJvb2wgc2lpODYyMF90ZXN0X2JpdCh1bnNpZ25lZCBpbnQgbnIsIGNvbnN0IHU4ICph ZGRyKQoreworCXJldHVybiAxICYgKGFkZHJbbnIgLyBCSVRTX1BFUl9CWVRFXSA+PiAobnIgJSBC SVRTX1BFUl9CWVRFKSk7Cit9CisKK3N0YXRpYyBpcnFyZXR1cm5fdCBzaWk4NjIwX2lycV90aHJl YWQoaW50IGlycSwgdm9pZCAqZGF0YSkKK3sKKwlzdGF0aWMgY29uc3Qgc3RydWN0IHsKKwkJaW50 IGJpdDsKKwkJdm9pZCAoKmhhbmRsZXIpKHN0cnVjdCBzaWk4NjIwICpjdHgpOworCX0gaXJxX3Zl Y1tdID0geworCQl7IEJJVF9GQVNUX0lOVFJfU1RBVF9ESVNDLCBzaWk4NjIwX2lycV9kaXNjIH0s CisJCXsgQklUX0ZBU1RfSU5UUl9TVEFUX0cyV0IsIHNpaTg2MjBfaXJxX2cyd2IgfSwKKwkJeyBC SVRfRkFTVF9JTlRSX1NUQVRfQ09DLCBzaWk4NjIwX2lycV9jb2MgfSwKKwkJeyBCSVRfRkFTVF9J TlRSX1NUQVRfTVNDLCBzaWk4NjIwX2lycV9tc2MgfSwKKwkJeyBCSVRfRkFTVF9JTlRSX1NUQVRf TUVSUiwgc2lpODYyMF9pcnFfbWVyciB9LAorCQl7IEJJVF9GQVNUX0lOVFJfU1RBVF9FRElELCBz aWk4NjIwX2lycV9lZGlkIH0sCisJCXsgQklUX0ZBU1RfSU5UUl9TVEFUX1NDRFQsIHNpaTg2MjBf aXJxX3NjZHQgfSwKKwkJeyBCSVRfRkFTVF9JTlRSX1NUQVRfSU5GUiwgc2lpODYyMF9pcnFfaW5m ciB9LAorCX07CisJc3RydWN0IHNpaTg2MjAgKmN0eCA9IGRhdGE7CisJdTggc3RhdHNbTEVOX0ZB U1RfSU5UUl9TVEFUXTsKKwlpbnQgaSwgcmV0OworCisJbXV0ZXhfbG9jaygmY3R4LT5sb2NrKTsK KworCXNpaTg2MjBfcmVhZF9idWYoY3R4LCBSRUdfRkFTVF9JTlRSX1NUQVQsIHN0YXRzLCBBUlJB WV9TSVpFKHN0YXRzKSk7CisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoaXJxX3ZlYyk7ICsr aSkKKwkJaWYgKHNpaTg2MjBfdGVzdF9iaXQoaXJxX3ZlY1tpXS5iaXQsIHN0YXRzKSkKKwkJCWly cV92ZWNbaV0uaGFuZGxlcihjdHgpOworCisJc2lpODYyMF9tdF93b3JrKGN0eCk7CisKKwlyZXQg PSBzaWk4NjIwX2NsZWFyX2Vycm9yKGN0eCk7CisJaWYgKHJldCkgeworCQlkZXZfZXJyKGN0eC0+ ZGV2LCAiRXJyb3IgZHVyaW5nIElSUSBoYW5kbGluZywgJWQuXG4iLCByZXQpOworCQlzaWk4NjIw X21obF9kaXNjb25uZWN0ZWQoY3R4KTsKKwl9CisJbXV0ZXhfdW5sb2NrKCZjdHgtPmxvY2spOwor CisJcmV0dXJuIElSUV9IQU5ETEVEOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX2NhYmxlX2lu KHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gY3R4LT5kZXY7 CisJdTggdmVyWzVdOworCWludCByZXQ7CisKKwlzaWk4NjIwX2h3X29uKGN0eCk7CisJc2lpODYy MF9od19yZXNldChjdHgpOworCisJc2lpODYyMF9yZWFkX2J1ZihjdHgsIFJFR19WTkRfSURMLCB2 ZXIsIEFSUkFZX1NJWkUodmVyKSk7CisJcmV0ID0gc2lpODYyMF9jbGVhcl9lcnJvcihjdHgpOwor CWlmIChyZXQpIHsKKwkJZGV2X2VycihkZXYsICJFcnJvciBhY2Nlc3NpbmcgSTJDIGJ1cywgJWQu XG4iLCByZXQpOworCQlyZXR1cm47CisJfQorCisJZGV2X2luZm8oZGV2LCAiQ2hpcElEICUwMngl MDJ4OiUwMnglMDJ4IHJldiAlMDJ4LlxuIiwgdmVyWzFdLCB2ZXJbMF0sCisJCSB2ZXJbM10sIHZl clsyXSwgdmVyWzRdKTsKKworCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfRFBELAorCQkJQklUX0RQ RF9QV1JPTl9QTEwgfCBCSVRfRFBEX1BETlRYMTIgfCBCSVRfRFBEX09TQ19FTik7CisKKwlzaWk4 NjIwX3h0YWxfc2V0X3JhdGUoY3R4KTsKKwlzaWk4NjIwX2Rpc2Nvbm5lY3QoY3R4KTsKKworCXNp aTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJUkVHX01ITF9DQlVTX0NUTDAsIFZBTF9NSExfQ0JVU19D VEwwX0NCVVNfRFJWX1NFTF9TVFJPTkcKKwkJCXwgVkFMX01ITF9DQlVTX0NUTDBfQ0JVU19SR05E X1ZCSUFTXzczNCwKKwkJUkVHX01ITF9DQlVTX0NUTDEsIFZBTF9NSExfQ0JVU19DVEwxXzExMTVf T0hNLAorCQlSRUdfRFBELCBCSVRfRFBEX1BXUk9OX1BMTCB8IEJJVF9EUERfUEROVFgxMiB8IEJJ VF9EUERfT1NDX0VOLAorCSk7CisKKwlyZXQgPSBzaWk4NjIwX2NsZWFyX2Vycm9yKGN0eCk7CisJ aWYgKHJldCkgeworCQlkZXZfZXJyKGRldiwgIkVycm9yIGFjY2Vzc2luZyBJMkMgYnVzLCAlZC5c biIsIHJldCk7CisJCXJldHVybjsKKwl9CisKKwllbmFibGVfaXJxKGN0eC0+aXJxKTsKK30KKwor c3RhdGljIGlubGluZSBzdHJ1Y3Qgc2lpODYyMCAqYnJpZGdlX3RvX3NpaTg2MjAoc3RydWN0IGRy bV9icmlkZ2UgKmJyaWRnZSkKK3sKKwlyZXR1cm4gY29udGFpbmVyX29mKGJyaWRnZSwgc3RydWN0 IHNpaTg2MjAsIGJyaWRnZSk7Cit9CisKK3ZvaWQgc2lpODYyMF9icmlkZ2VfZHVtbXkoc3RydWN0 IGRybV9icmlkZ2UgKmJyaWRnZSkKK3sKKworfQorCitib29sIHNpaTg2MjBfbW9kZV9maXh1cChz dHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAorCQkgICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqbW9kZSwKKwkJICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUp Cit7CisJc3RydWN0IHNpaTg2MjAgKmN0eCA9IGJyaWRnZV90b19zaWk4NjIwKGJyaWRnZSk7CisJ Ym9vbCByZXQgPSBmYWxzZTsKKwlpbnQgbWF4X2Nsb2NrID0gNzQyNTA7CisKKwltdXRleF9sb2Nr KCZjdHgtPmxvY2spOworCisJaWYgKG1vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19JTlRFUkxB Q0UpCisJCWdvdG8gb3V0OworCisJaWYgKGN0eC0+ZGV2Y2FwW01ITF9EQ0FQX1ZJRF9MSU5LX01P REVdICYgTUhMX0RDQVBfVklEX0xJTktfUFBJWEVMKQorCQltYXhfY2xvY2sgPSAzMDAwMDA7CisK KwlyZXQgPSBtb2RlLT5jbG9jayA8PSBtYXhfY2xvY2s7CisKK291dDoKKwltdXRleF91bmxvY2so JmN0eC0+bG9jayk7CisKKwlyZXR1cm4gcmV0OworfQorCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg ZHJtX2JyaWRnZV9mdW5jcyBzaWk4NjIwX2JyaWRnZV9mdW5jcyA9IHsKKwkucHJlX2VuYWJsZSA9 IHNpaTg2MjBfYnJpZGdlX2R1bW15LAorCS5lbmFibGUgPSBzaWk4NjIwX2JyaWRnZV9kdW1teSwK KwkuZGlzYWJsZSA9IHNpaTg2MjBfYnJpZGdlX2R1bW15LAorCS5wb3N0X2Rpc2FibGUgPSBzaWk4 NjIwX2JyaWRnZV9kdW1teSwKKwkubW9kZV9maXh1cCA9IHNpaTg2MjBfbW9kZV9maXh1cCwKK307 CisKK3N0YXRpYyBpbnQgc2lpODYyMF9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAor CQkJIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkICppZCkKK3sKKwlzdHJ1Y3QgZGV2aWNlICpk ZXYgPSAmY2xpZW50LT5kZXY7CisJc3RydWN0IHNpaTg2MjAgKmN0eDsKKwlpbnQgcmV0OworCisJ Y3R4ID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpjdHgpLCBHRlBfS0VSTkVMKTsKKwlpZiAo IWN0eCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwljdHgtPmRldiA9IGRldjsKKwltdXRleF9pbml0 KCZjdHgtPmxvY2spOworCUlOSVRfTElTVF9IRUFEKCZjdHgtPm10X3F1ZXVlKTsKKworCWN0eC0+ Y2xrX3h0YWwgPSBkZXZtX2Nsa19nZXQoZGV2LCAieHRhbCIpOworCWlmIChJU19FUlIoY3R4LT5j bGtfeHRhbCkpIHsKKwkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gZ2V0IHh0YWwgY2xvY2sgZnJv bSBEVFxuIik7CisJCXJldHVybiBQVFJfRVJSKGN0eC0+Y2xrX3h0YWwpOworCX0KKworCWN0eC0+ Z3Bpb19pbnQgPSBkZXZtX2dwaW9kX2dldChkZXYsICJpbnQiLCBHUElPRF9BU0lTKTsKKwlpZiAo SVNfRVJSKGN0eC0+Z3Bpb19pbnQpKSB7CisJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdldCBp bnQgZ3BpbyBmcm9tIERUXG4iKTsKKwkJcmV0dXJuIFBUUl9FUlIoY3R4LT5ncGlvX2ludCk7CisJ fQorCisJY3R4LT5pcnEgPSBncGlvZF90b19pcnEoY3R4LT5ncGlvX2ludCk7CisJaWYgKGN0eC0+ aXJxIDwgMCkgeworCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBnZXQgaXJxXG4iKTsKKwkJcmV0 dXJuIGN0eC0+aXJxOworCX0KKwlpcnFfc2V0X3N0YXR1c19mbGFncyhjdHgtPmlycSwgSVJRX05P QVVUT0VOKTsKKwlyZXQgPSBkZXZtX3JlcXVlc3RfdGhyZWFkZWRfaXJxKGRldiwgY3R4LT5pcnEs IE5VTEwsIHNpaTg2MjBfaXJxX3RocmVhZCwKKwkJCUlSUUZfVFJJR0dFUl9ISUdIIHwgSVJRRl9P TkVTSE9ULCAic2lpODYyMCIsIGN0eCk7CisKKwljdHgtPmdwaW9fcmVzZXQgPSBkZXZtX2dwaW9k X2dldChkZXYsICJyZXNldCIsIEdQSU9EX09VVF9ISUdIKTsKKwlpZiAoSVNfRVJSKGN0eC0+Z3Bp b19yZXNldCkpIHsKKwkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gZ2V0IHJlc2V0IGdwaW8gZnJv bSBEVFxuIik7CisJCXJldHVybiBQVFJfRVJSKGN0eC0+Z3Bpb19yZXNldCk7CisJfQorCisJY3R4 LT5zdXBwbGllc1swXS5zdXBwbHkgPSAiY3ZjYzEwIjsKKwljdHgtPnN1cHBsaWVzWzFdLnN1cHBs eSA9ICJpb3ZjYzE4IjsKKwlyZXQgPSBkZXZtX3JlZ3VsYXRvcl9idWxrX2dldChkZXYsIDIsIGN0 eC0+c3VwcGxpZXMpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlpMmNfc2V0X2NsaWVu dGRhdGEoY2xpZW50LCBjdHgpOworCisJc2lpODYyMF9jYWJsZV9pbihjdHgpOworCisJY3R4LT5i cmlkZ2UuZnVuY3MgPSAmc2lpODYyMF9icmlkZ2VfZnVuY3M7CisJY3R4LT5icmlkZ2Uub2Zfbm9k ZSA9IGRldi0+b2Zfbm9kZTsKKwlkcm1fYnJpZGdlX2FkZCgmY3R4LT5icmlkZ2UpOworCisJcmV0 dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgc2lpODYyMF9yZW1vdmUoc3RydWN0IGkyY19jbGllbnQg KmNsaWVudCkKK3sKKwlzdHJ1Y3Qgc2lpODYyMCAqY3R4ID0gaTJjX2dldF9jbGllbnRkYXRhKGNs aWVudCk7CisKKwlkaXNhYmxlX2lycShjdHgtPmlycSk7CisJbXV0ZXhfbG9jaygmY3R4LT5sb2Nr KTsKKwlkcm1fYnJpZGdlX3JlbW92ZSgmY3R4LT5icmlkZ2UpOworCXNpaTg2MjBfaHdfb2ZmKGN0 eCk7CisJbXV0ZXhfdW5sb2NrKCZjdHgtPmxvY2spOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRp YyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHNpaTg2MjBfZHRfbWF0Y2hbXSA9IHsKKwl7IC5j b21wYXRpYmxlID0gInNpbCxzaWk4NjIwIiB9LAorCXsgfSwKK307CitNT0RVTEVfREVWSUNFX1RB QkxFKG9mLCBzaWk4NjIwX2R0X21hdGNoKTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpMmNfZGV2 aWNlX2lkIHNpaTg2MjBfaWRbXSA9IHsKKwl7ICJTSUk4NjIwIiwgMCB9LAorCXsgfSwKK307CisK K01PRFVMRV9ERVZJQ0VfVEFCTEUoaTJjLCBzaWk4NjIwX2lkKTsKK3N0YXRpYyBzdHJ1Y3QgaTJj X2RyaXZlciBzaWk4NjIwX2RyaXZlciA9IHsKKwkuZHJpdmVyID0geworCQkubmFtZQk9ICJzaWk4 NjIwIiwKKwkJLm93bmVyCT0gVEhJU19NT0RVTEUsCisJCS5vZl9tYXRjaF90YWJsZSA9IG9mX21h dGNoX3B0cihzaWk4NjIwX2R0X21hdGNoKSwKKwl9LAorCS5wcm9iZQkJPSBzaWk4NjIwX3Byb2Jl LAorCS5yZW1vdmUJCT0gc2lpODYyMF9yZW1vdmUsCisJLmlkX3RhYmxlID0gc2lpODYyMF9pZCwK K307CisKK21vZHVsZV9pMmNfZHJpdmVyKHNpaTg2MjBfZHJpdmVyKTsKK01PRFVMRV9MSUNFTlNF KCJHUEwgdjIiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lsLXNpaTg2 MjAuaCBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lsLXNpaTg2MjAuaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZmY2MTZhCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2JyaWRnZS9zaWwtc2lpODYyMC5oCkBAIC0wLDAgKzEsMTUxNyBAQAorLyoKKyAq IFJlZ2lzdGVycyBvZiBTaWxpY29uIEltYWdlIFNpSTg2MjAgTW9iaWxlIEhEIFRyYW5zbWl0dGVy CisgKgorICogQ29weXJpZ2h0IChDKSAyMDE1LCBTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTHRk LgorICogQW5kcnplaiBIYWpkYSA8YS5oYWpkYUBzYW1zdW5nLmNvbT4KKyAqCisgKiBCYXNlZCBv biBNSEwgZHJpdmVyIGZvciBBbmRyb2lkIGRldmljZXMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMt MjAxNCBTaWxpY29uIEltYWdlLCBJbmMuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFz CisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqLworCisj aWZuZGVmIF9fU0lMX1NJSTg2MjBfSF9fCisjZGVmaW5lIF9fU0lMX1NJSTg2MjBfSF9fCisKKy8q IFZlbmRvciBJRCBMb3cgYnl0ZSwgZGVmYXVsdCB2YWx1ZTogMHgwMSAqLworI2RlZmluZSBSRUdf Vk5EX0lETAkJCQkweDAwMDAKKworLyogVmVuZG9yIElEIEhpZ2ggYnl0ZSwgZGVmYXVsdCB2YWx1 ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVk5EX0lESAkJCQkweDAwMDEKKworLyogRGV2aWNlIElE IExvdyBieXRlLCBkZWZhdWx0IHZhbHVlOiAweDYwICovCisjZGVmaW5lIFJFR19ERVZfSURMCQkJ CTB4MDAwMgorCisvKiBEZXZpY2UgSUQgSGlnaCBieXRlLCBkZWZhdWx0IHZhbHVlOiAweDg2ICov CisjZGVmaW5lIFJFR19ERVZfSURICQkJCTB4MDAwMworCisvKiBEZXZpY2UgUmV2aXNpb24sIGRl ZmF1bHQgdmFsdWU6IDB4MTAgKi8KKyNkZWZpbmUgUkVHX0RFVl9SRVYJCQkJMHgwMDA0CisKKy8q IE9UUCBEQllURTUxMCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfT1RQX0RC WVRFNTEwCQkJMHgwMDA2CisKKy8qIFN5c3RlbSBDb250cm9sICMxLCBkZWZhdWx0IHZhbHVlOiAw eDAwICovCisjZGVmaW5lIFJFR19TWVNfQ1RSTDEJCQkJMHgwMDA4CisjZGVmaW5lIEJJVF9TWVNf Q1RSTDFfT1RQVk1VVEVPVlJfU0VUCQlCSVQoNykKKyNkZWZpbmUgQklUX1NZU19DVFJMMV9WU1lO Q1BJTgkJCUJJVCg2KQorI2RlZmluZSBCSVRfU1lTX0NUUkwxX09UUEFEUk9QT1ZSX1NFVAkJQklU KDUpCisjZGVmaW5lIEJJVF9TWVNfQ1RSTDFfQkxPQ0tfRERDX0JZX0hQRAkJQklUKDQpCisjZGVm aW5lIEJJVF9TWVNfQ1RSTDFfT1RQMlhWT1ZSX0VOCQlCSVQoMykKKyNkZWZpbmUgQklUX1NZU19D VFJMMV9PVFAyWEFPVlJfRU4JCUJJVCgyKQorI2RlZmluZSBCSVRfU1lTX0NUUkwxX1RYX0NUUkxf SERNSQkJQklUKDEpCisjZGVmaW5lIEJJVF9TWVNfQ1RSTDFfT1RQQU1VVEVPVlJfU0VUCQlCSVQo MCkKKworLyogU3lzdGVtIENvbnRyb2wgRFBELCBkZWZhdWx0IHZhbHVlOiAweDkwICovCisjZGVm aW5lIFJFR19EUEQJCQkJCTB4MDAwYgorI2RlZmluZSBCSVRfRFBEX1BXUk9OX1BMTAkJCUJJVCg3 KQorI2RlZmluZSBCSVRfRFBEX1BETlRYMTIJCQkJQklUKDYpCisjZGVmaW5lIEJJVF9EUERfUERO UlgxMgkJCQlCSVQoNSkKKyNkZWZpbmUgQklUX0RQRF9PU0NfRU4JCQkJQklUKDQpCisjZGVmaW5l IEJJVF9EUERfUFdST05fSFNJQwkJCUJJVCgzKQorI2RlZmluZSBCSVRfRFBEX1BESURDS19OCQkJ QklUKDIpCisjZGVmaW5lIEJJVF9EUERfUERfTUhMX0NMS19OCQkJQklUKDEpCisKKy8qIER1YWwg bGluayBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19EQ1RMCQkJ CTB4MDAwZAorI2RlZmluZSBCSVRfRENUTF9URE1fTENMS19QSEFTRQkJCUJJVCg3KQorI2RlZmlu ZSBCSVRfRENUTF9IU0lDX0NMS19QSEFTRQkJCUJJVCg2KQorI2RlZmluZSBCSVRfRENUTF9DVFNf VENLX1BIQVNFCQkJQklUKDUpCisjZGVmaW5lIEJJVF9EQ1RMX0VYVF9ERENfU0VMCQkJQklUKDQp CisjZGVmaW5lIEJJVF9EQ1RMX1RSQU5TQ09ERQkJCUJJVCgzKQorI2RlZmluZSBCSVRfRENUTF9I U0lDX1JYX1NUUk9CRV9QSEFTRQkJQklUKDIpCisjZGVmaW5lIEJJVF9EQ1RMX0hTSUNfVFhfQklT VF9TVEFSVF9TRUwJCUJJVCgxKQorI2RlZmluZSBCSVRfRENUTF9UQ0xLTlhfUEhBU0UJCQlCSVQo MCkKKworLyogUFdEIFNvZnR3YXJlIFJlc2V0LCBkZWZhdWx0IHZhbHVlOiAweDIwICovCisjZGVm aW5lIFJFR19QV0RfU1JTVAkJCQkweDAwMGUKKyNkZWZpbmUgQklUX1BXRF9TUlNUX0NPQ19ET0Nf UlNUCQlCSVQoNykKKyNkZWZpbmUgQklUX1BXRF9TUlNUX0NCVVNfUlNUX1NXCQlCSVQoNikKKyNk ZWZpbmUgQklUX1BXRF9TUlNUX0NCVVNfUlNUX1NXX0VOCQlCSVQoNSkKKyNkZWZpbmUgQklUX1BX RF9TUlNUX01ITEZJRk9fUlNUCQlCSVQoNCkKKyNkZWZpbmUgQklUX1BXRF9TUlNUX0NCVVNfUlNU CQkJQklUKDMpCisjZGVmaW5lIEJJVF9QV0RfU1JTVF9TV19SU1RfQVVUTwkJQklUKDIpCisjZGVm aW5lIEJJVF9QV0RfU1JTVF9IRENQMlhfU1dfUlNUCQlCSVQoMSkKKyNkZWZpbmUgQklUX1BXRF9T UlNUX1NXX1JTVAkJCUJJVCgwKQorCisvKiBBS1NWXzEsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8K KyNkZWZpbmUgUkVHX0FLU1ZfMQkJCQkweDAwMWQKKworLyogVmlkZW8gSCBSZXNvbHV0aW9uICMx LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19IX1JFU0wJCQkJMHgwMDNhCisK Ky8qIFZpZGVvIE1vZGUsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1ZJRF9N T0RFCQkJCTB4MDA0YQorI2RlZmluZSBCSVRfVklEX01PREVfTTEwODBQCQkJQklUKDYpCisKKy8q IFZpZGVvIElucHV0IE1vZGUsIGRlZmF1bHQgdmFsdWU6IDB4YzAgKi8KKyNkZWZpbmUgUkVHX1ZJ RF9PVlJSRAkJCQkweDAwNTEKKyNkZWZpbmUgQklUX1ZJRF9PVlJSRF9QUF9BVVRPX0RJU0FCTEUJ CUJJVCg3KQorI2RlZmluZSBCSVRfVklEX09WUlJEX00xMDgwUF9PVlJSRAkJQklUKDYpCisjZGVm aW5lIEJJVF9WSURfT1ZSUkRfTUlOSVZTWU5DX09OCQlCSVQoNSkKKyNkZWZpbmUgQklUX1ZJRF9P VlJSRF8zRENPTlZfRU5fRlJBTUVfUEFDSwlCSVQoNCkKKyNkZWZpbmUgQklUX1ZJRF9PVlJSRF9F TkFCTEVfQVVUT19QQVRIX0VOCUJJVCgzKQorI2RlZmluZSBCSVRfVklEX09WUlJEX0VOUkdCMllD QkNSX09WUlJECQlCSVQoMikKKyNkZWZpbmUgQklUX1ZJRF9PVlJSRF9FTkRPV05TQU1QTEVfT1ZS UkQJQklUKDApCisKKy8qIEkyQyBBZGRyZXNzIHJlYXNzaWdubWVudCwgZGVmYXVsdCB2YWx1ZTog MHgwMCAqLworI2RlZmluZSBSRUdfUEFHRV9NSExTUEVDX0FERFIJCQkweDAwNTcKKyNkZWZpbmUg UkVHX1BBR0U3X0FERFIJCQkJMHgwMDU4CisjZGVmaW5lIFJFR19QQUdFOF9BRERSCQkJCTB4MDA1 YworCisvKiBGYXN0IEludGVycnVwdCBTdGF0dXMsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNk ZWZpbmUgUkVHX0ZBU1RfSU5UUl9TVEFUCQkJMHgwMDVmCisjZGVmaW5lIExFTl9GQVNUX0lOVFJf U1RBVAkJCTcKKyNkZWZpbmUgQklUX0ZBU1RfSU5UUl9TVEFUX1RJTVIJCQk4CisjZGVmaW5lIEJJ VF9GQVNUX0lOVFJfU1RBVF9JTlQyCQkJOQorI2RlZmluZSBCSVRfRkFTVF9JTlRSX1NUQVRfRERD CQkJMTAKKyNkZWZpbmUgQklUX0ZBU1RfSU5UUl9TVEFUX1NDRFQJCQkxMQorI2RlZmluZSBCSVRf RkFTVF9JTlRSX1NUQVRfSU5GUgkJCTEzCisjZGVmaW5lIEJJVF9GQVNUX0lOVFJfU1RBVF9FRElE CQkJMTQKKyNkZWZpbmUgQklUX0ZBU1RfSU5UUl9TVEFUX0hEQ1AJCQkxNQorI2RlZmluZSBCSVRf RkFTVF9JTlRSX1NUQVRfTVNDCQkJMTYKKyNkZWZpbmUgQklUX0ZBU1RfSU5UUl9TVEFUX01FUlIJ CQkxNworI2RlZmluZSBCSVRfRkFTVF9JTlRSX1NUQVRfRzJXQgkJCTE4CisjZGVmaW5lIEJJVF9G QVNUX0lOVFJfU1RBVF9HMldCX0VSUgkJMTkKKyNkZWZpbmUgQklUX0ZBU1RfSU5UUl9TVEFUX0RJ U0MJCQkyOAorI2RlZmluZSBCSVRfRkFTVF9JTlRSX1NUQVRfQkxPQ0sJCTMwCisjZGVmaW5lIEJJ VF9GQVNUX0lOVFJfU1RBVF9MVFJOCQkJMzEKKyNkZWZpbmUgQklUX0ZBU1RfSU5UUl9TVEFUX0hE Q1AyCQkzMgorI2RlZmluZSBCSVRfRkFTVF9JTlRSX1NUQVRfVERNCQkJNDIKKyNkZWZpbmUgQklU X0ZBU1RfSU5UUl9TVEFUX0NPQwkJCTUxCisKKy8qIEdQSU8gQ29udHJvbCwgZGVmYXVsdCB2YWx1 ZTogMHgxNSAqLworI2RlZmluZSBSRUdfR1BJT19DVFJMMQkJCQkweDAwNmUKKyNkZWZpbmUgQklU X0NUUkwxX0dQSU9fSV84CQkJQklUKDUpCisjZGVmaW5lIEJJVF9DVFJMMV9HUElPX09FTl84CQkJ QklUKDQpCisjZGVmaW5lIEJJVF9DVFJMMV9HUElPX0lfNwkJCUJJVCgzKQorI2RlZmluZSBCSVRf Q1RSTDFfR1BJT19PRU5fNwkJCUJJVCgyKQorI2RlZmluZSBCSVRfQ1RSTDFfR1BJT19JXzYJCQlC SVQoMSkKKyNkZWZpbmUgQklUX0NUUkwxX0dQSU9fT0VOXzYJCQlCSVQoMCkKKworLyogSW50ZXJy dXB0IENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4MDYgKi8KKyNkZWZpbmUgUkVHX0lOVF9DVFJM CQkJCTB4MDA2ZgorI2RlZmluZSBCSVRfSU5UX0NUUkxfU09GVFdBUkVfV1AJCUJJVCg3KQorI2Rl ZmluZSBCSVRfSU5UX0NUUkxfSU5UUl9PRAkJCUJJVCgyKQorI2RlZmluZSBCSVRfSU5UX0NUUkxf SU5UUl9QT0xBUklUWQkJQklUKDEpCisKKy8qIEludGVycnVwdCBTdGF0ZSwgZGVmYXVsdCB2YWx1 ZTogMHgwMCAqLworI2RlZmluZSBSRUdfSU5UUl9TVEFURQkJCQkweDAwNzAKKyNkZWZpbmUgQklU X0lOVFJfU1RBVEVfSU5UUl9TVEFURQkJQklUKDApCisKKy8qIEludGVycnVwdCBTb3VyY2UgIzEs IGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0lOVFIxCQkJCTB4MDA3MQorCisv KiBJbnRlcnJ1cHQgU291cmNlICMyLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJF R19JTlRSMgkJCQkweDAwNzIKKworLyogSW50ZXJydXB0IFNvdXJjZSAjMywgZGVmYXVsdCB2YWx1 ZTogMHgwMSAqLworI2RlZmluZSBSRUdfSU5UUjMJCQkJMHgwMDczCisjZGVmaW5lIEJJVF9ERENf Q01EX0RPTkUJCQlCSVQoMykKKworLyogSW50ZXJydXB0IFNvdXJjZSAjNSwgZGVmYXVsdCB2YWx1 ZTogMHgwMCAqLworI2RlZmluZSBSRUdfSU5UUjUJCQkJMHgwMDc0CisKKy8qIEludGVycnVwdCAj MSBNYXNrLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19JTlRSMV9NQVNLCQkJ CTB4MDA3NQorCisvKiBJbnRlcnJ1cHQgIzIgTWFzaywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwor I2RlZmluZSBSRUdfSU5UUjJfTUFTSwkJCQkweDAwNzYKKworLyogSW50ZXJydXB0ICMzIE1hc2ss IGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0lOVFIzX01BU0sJCQkJMHgwMDc3 CisKKy8qIEludGVycnVwdCAjNSBNYXNrLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5l IFJFR19JTlRSNV9NQVNLCQkJCTB4MDA3OAorI2RlZmluZSBCSVRfSU5UUl9TQ0RUX0NIQU5HRQkJ CUJJVCgwKQorCisvKiBIb3QgUGx1ZyBDb25uZWN0aW9uIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6 IDB4NDUgKi8KKyNkZWZpbmUgUkVHX0hQRF9DVFJMCQkJCTB4MDA3OQorI2RlZmluZSBCSVRfSFBE X0NUUkxfSFBEX0RTX1NJR05BTAkJQklUKDcpCisjZGVmaW5lIEJJVF9IUERfQ1RSTF9IUERfT1VU X09EX0VOCQlCSVQoNikKKyNkZWZpbmUgQklUX0hQRF9DVFJMX0hQRF9ISUdICQkJQklUKDUpCisj ZGVmaW5lIEJJVF9IUERfQ1RSTF9IUERfT1VUX09WUl9FTgkJQklUKDQpCisjZGVmaW5lIEJJVF9I UERfQ1RSTF9HUElPX0lfMQkJCUJJVCgzKQorI2RlZmluZSBCSVRfSFBEX0NUUkxfR1BJT19PRU5f MQkJCUJJVCgyKQorI2RlZmluZSBCSVRfSFBEX0NUUkxfR1BJT19JXzAJCQlCSVQoMSkKKyNkZWZp bmUgQklUX0hQRF9DVFJMX0dQSU9fT0VOXzAJCQlCSVQoMCkKKworLyogR1BJTyBDb250cm9sLCBk ZWZhdWx0IHZhbHVlOiAweDU1ICovCisjZGVmaW5lIFJFR19HUElPX0NUUkwJCQkJMHgwMDdhCisj ZGVmaW5lIEJJVF9DVFJMX0dQSU9fSV81CQkJQklUKDcpCisjZGVmaW5lIEJJVF9DVFJMX0dQSU9f T0VOXzUJCQlCSVQoNikKKyNkZWZpbmUgQklUX0NUUkxfR1BJT19JXzQJCQlCSVQoNSkKKyNkZWZp bmUgQklUX0NUUkxfR1BJT19PRU5fNAkJCUJJVCg0KQorI2RlZmluZSBCSVRfQ1RSTF9HUElPX0lf MwkJCUJJVCgzKQorI2RlZmluZSBCSVRfQ1RSTF9HUElPX09FTl8zCQkJQklUKDIpCisjZGVmaW5l IEJJVF9DVFJMX0dQSU9fSV8yCQkJQklUKDEpCisjZGVmaW5lIEJJVF9DVFJMX0dQSU9fT0VOXzIJ CQlCSVQoMCkKKworLyogSW50ZXJydXB0IFNvdXJjZSA3LCBkZWZhdWx0IHZhbHVlOiAweDAwICov CisjZGVmaW5lIFJFR19JTlRSNwkJCQkweDAwN2IKKworLyogSW50ZXJydXB0IFNvdXJjZSA4LCBk ZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19JTlRSOAkJCQkweDAwN2MKKworLyog SW50ZXJydXB0ICM3IE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0lO VFI3X01BU0sJCQkJMHgwMDdkCisKKy8qIEludGVycnVwdCAjOCBNYXNrLCBkZWZhdWx0IHZhbHVl OiAweDAwICovCisjZGVmaW5lIFJFR19JTlRSOF9NQVNLCQkJCTB4MDA3ZQorI2RlZmluZSBCSVRf Q0VBX05FV19WU0kJCQkJQklUKDIpCisjZGVmaW5lIEJJVF9DRUFfTkVXX0FWSQkJCQlCSVQoMSkK KworLyogSUVFRSwgZGVmYXVsdCB2YWx1ZTogMHgxMCAqLworI2RlZmluZSBSRUdfVE1EU19DQ1RS TAkJCQkweDAwODAKKyNkZWZpbmUgQklUX1RNRFNfQ0NUUkxfVE1EU19PRQkJCUJJVCg0KQorCisv KiBUTURTIENvbnRyb2wgIzQsIGRlZmF1bHQgdmFsdWU6IDB4MDIgKi8KKyNkZWZpbmUgUkVHX1RN RFNfQ1RSTDQJCQkJMHgwMDg1CisjZGVmaW5lIEJJVF9UTURTX0NUUkw0X1NDRFRfQ0tEVF9TRUwJ CUJJVCgxKQorI2RlZmluZSBCSVRfVE1EU19DVFJMNF9UWF9FTl9CWV9TQ0RUCQlCSVQoMCkKKwor LyogQklTVCBDTlRMLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19CSVNUX0NU UkwJCQkJMHgwMGJiCisjZGVmaW5lIEJJVF9SWEJJU1RfVkdCX0VOCQkJQklUKDcpCisjZGVmaW5l IEJJVF9UWEJJU1RfVkdCX0VOCQkJQklUKDYpCisjZGVmaW5lIEJJVF9CSVNUX1NUQVJUX1NFTAkJ CUJJVCg1KQorI2RlZmluZSBCSVRfQklTVF9TVEFSVF9CSVQJCQlCSVQoNCkKKyNkZWZpbmUgQklU X0JJU1RfQUxXQVlTX09OCQkJQklUKDMpCisjZGVmaW5lIEJJVF9CSVNUX1RSQU5TCQkJCUJJVCgy KQorI2RlZmluZSBCSVRfQklTVF9SRVNFVAkJCQlCSVQoMSkKKyNkZWZpbmUgQklUX0JJU1RfRU4J CQkJQklUKDApCisKKy8qIEJJU1QgRFVSQVRJT04wLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisj ZGVmaW5lIFJFR19CSVNUX1RFU1RfU0VMCQkJMHgwMGJkCisjZGVmaW5lIE1TS19CSVNUX1RFU1Rf U0VMX0JJU1RfUEFUVF9TRUwJCTB4MGYKKworLyogQklTVCBWSURFT19NT0RFLCBkZWZhdWx0IHZh bHVlOiAweDAwICovCisjZGVmaW5lIFJFR19CSVNUX1ZJREVPX01PREUJCQkweDAwYmUKKyNkZWZp bmUgTVNLX0JJU1RfVklERU9fTU9ERV9CSVNUX1ZJREVPX01PREVfM18wCTB4MGYKKworLyogQklT VCBEVVJBVElPTjAsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0JJU1RfRFVS QVRJT05fMAkJCTB4MDBiZgorCisvKiBCSVNUIERVUkFUSU9OMSwgZGVmYXVsdCB2YWx1ZTogMHgw MCAqLworI2RlZmluZSBSRUdfQklTVF9EVVJBVElPTl8xCQkJMHgwMGMwCisKKy8qIEJJU1QgRFVS QVRJT04yLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19CSVNUX0RVUkFUSU9O XzIJCQkweDAwYzEKKworLyogQklTVCA4QklUX1BBVFRFUk4sIGRlZmF1bHQgdmFsdWU6IDB4MDAg Ki8KKyNkZWZpbmUgUkVHX0JJU1RfOEJJVF9QQVRURVJOCQkJMHgwMGMyCisKKy8qIExNIEREQywg ZGVmYXVsdCB2YWx1ZTogMHg4MCAqLworI2RlZmluZSBSRUdfTE1fRERDCQkJCTB4MDBjNworI2Rl ZmluZSBCSVRfTE1fRERDX1NXX1RQSV9FTl9ESVNBQkxFRAkJQklUKDcpCisKKyNkZWZpbmUgQklU X0xNX0REQ19WSURFT19NVVRFX0VOCQlCSVQoNSkKKyNkZWZpbmUgQklUX0xNX0REQ19ERENfVFBJ X1NXCQkJQklUKDIpCisjZGVmaW5lIEJJVF9MTV9ERENfRERDX0dSQU5UCQkJQklUKDEpCisjZGVm aW5lIEJJVF9MTV9ERENfRERDX0dQVV9SRVFVRVNUCQlCSVQoMCkKKworLyogRERDIEkyQyBNYW51 YWwsIGRlZmF1bHQgdmFsdWU6IDB4MDMgKi8KKyNkZWZpbmUgUkVHX0REQ19NQU5VQUwJCQkJMHgw MGVjCisjZGVmaW5lIEJJVF9ERENfTUFOVUFMX01BTl9EREMJCQlCSVQoNykKKyNkZWZpbmUgQklU X0REQ19NQU5VQUxfVlBfU0VMCQkJQklUKDYpCisjZGVmaW5lIEJJVF9ERENfTUFOVUFMX0RTREEJ CQlCSVQoNSkKKyNkZWZpbmUgQklUX0REQ19NQU5VQUxfRFNDTAkJCUJJVCg0KQorI2RlZmluZSBC SVRfRERDX01BTlVBTF9HQ1BfSFdfQ1RMX0VOCQlCSVQoMykKKyNkZWZpbmUgQklUX0REQ19NQU5V QUxfRERDTV9BQk9SVF9XUAkJQklUKDIpCisjZGVmaW5lIEJJVF9ERENfTUFOVUFMX0lPX0RTREEJ CQlCSVQoMSkKKyNkZWZpbmUgQklUX0REQ19NQU5VQUxfSU9fRFNDTAkJCUJJVCgwKQorCisvKiBE REMgSTJDIFRhcmdldCBTbGF2ZSBBZGRyZXNzLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVm aW5lIFJFR19ERENfQUREUgkJCQkweDAwZWQKKyNkZWZpbmUgTVNLX0REQ19BRERSX0REQ19BRERS CQkJMHhmZQorCisvKiBEREMgSTJDIFRhcmdldCBTZWdtZW50IEFkZHJlc3MsIGRlZmF1bHQgdmFs dWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0REQ19TRUdNCQkJCTB4MDBlZQorCisvKiBEREMgSTJD IFRhcmdldCBPZmZzZXQgQWRkcmVzcywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBS RUdfRERDX09GRlNFVAkJCQkweDAwZWYKKworLyogRERDIEkyQyBEYXRhIEluIGNvdW50ICMxLCBk ZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19ERENfRElOX0NOVDEJCQkweDAwZjAK KworLyogRERDIEkyQyBEYXRhIEluIGNvdW50ICMyLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisj ZGVmaW5lIFJFR19ERENfRElOX0NOVDIJCQkweDAwZjEKKyNkZWZpbmUgTVNLX0REQ19ESU5fQ05U Ml9ERENfRElOX0NOVF85XzgJMHgwMworCisvKiBEREMgSTJDIFN0YXR1cywgZGVmYXVsdCB2YWx1 ZTogMHgwNCAqLworI2RlZmluZSBSRUdfRERDX1NUQVRVUwkJCQkweDAwZjIKKyNkZWZpbmUgQklU X0REQ19TVEFUVVNfRERDX0JVU19MT1cJCUJJVCg2KQorI2RlZmluZSBCSVRfRERDX1NUQVRVU19E RENfTk9fQUNLCQlCSVQoNSkKKyNkZWZpbmUgQklUX0REQ19TVEFUVVNfRERDX0kyQ19JTl9QUk9H CQlCSVQoNCkKKyNkZWZpbmUgQklUX0REQ19TVEFUVVNfRERDX0ZJRk9fRlVMTAkJQklUKDMpCisj ZGVmaW5lIEJJVF9ERENfU1RBVFVTX0REQ19GSUZPX0VNUFRZCQlCSVQoMikKKyNkZWZpbmUgQklU X0REQ19TVEFUVVNfRERDX0ZJRk9fUkVBRF9JTl9TVUUJQklUKDEpCisjZGVmaW5lIEJJVF9ERENf U1RBVFVTX0REQ19GSUZPX1dSSVRFX0lOX1VTRQlCSVQoMCkKKworLyogRERDIEkyQyBDb21tYW5k LCBkZWZhdWx0IHZhbHVlOiAweDcwICovCisjZGVmaW5lIFJFR19ERENfQ01ECQkJCTB4MDBmMwor I2RlZmluZSBCSVRfRERDX0NNRF9IRENQX0REQ19FTgkJCUJJVCg2KQorI2RlZmluZSBCSVRfRERD X0NNRF9TREFfREVMX0VOCQkJQklUKDUpCisjZGVmaW5lIEJJVF9ERENfQ01EX0REQ19GTFRfRU4J CQlCSVQoNCkKKworI2RlZmluZSBNU0tfRERDX0NNRF9ERENfQ01ECQkJMHgwZgorI2RlZmluZSBW QUxfRERDX0NNRF9FTkhfRERDX1JFQURfTk9fQUNLCQkweDA0CisjZGVmaW5lIFZBTF9ERENfQ01E X0REQ19DTURfQ0xFQVJfRklGTwkJMHgwOQorI2RlZmluZSBWQUxfRERDX0NNRF9ERENfQ01EX0FC T1JUCQkweDBmCisKKy8qIEREQyBJMkMgRklGTyBEYXRhIEluL091dCwgZGVmYXVsdCB2YWx1ZTog MHgwMCAqLworI2RlZmluZSBSRUdfRERDX0RBVEEJCQkJMHgwMGY0CisKKy8qIEREQyBJMkMgRGF0 YSBPdXQgQ291bnRlciwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRERDX0RP VVRfQ05UCQkJMHgwMGY1CisjZGVmaW5lIEJJVF9ERENfRE9VVF9DTlRfRERDX0RFTEFZX0NOVF84 CUJJVCg3KQorI2RlZmluZSBNU0tfRERDX0RPVVRfQ05UX0REQ19EQVRBX09VVF9DTlQJMHgxZgor CisvKiBEREMgSTJDIERlbGF5IENvdW50LCBkZWZhdWx0IHZhbHVlOiAweDE0ICovCisjZGVmaW5l IFJFR19ERENfREVMQVlfQ05UCQkJMHgwMGY2CisKKy8qIFRlc3QgQ29udHJvbCwgZGVmYXVsdCB2 YWx1ZTogMHg4MCAqLworI2RlZmluZSBSRUdfVEVTVF9UWENUUkwJCQkJMHgwMGY3CisjZGVmaW5l IEJJVF9URVNUX1RYQ1RSTF9SQ0xLX1JFRl9TRUwJCUJJVCg3KQorI2RlZmluZSBCSVRfVEVTVF9U WENUUkxfUENMS19SRUZfU0VMCQlCSVQoNikKKyNkZWZpbmUgTVNLX1RFU1RfVFhDVFJMX0JZUEFT U19QTExfQ0xLCQkweDNjCisjZGVmaW5lIEJJVF9URVNUX1RYQ1RSTF9IRE1JX01PREUJCUJJVCgx KQorI2RlZmluZSBCSVRfVEVTVF9UWENUUkxfVFNUX1BMTENLCQlCSVQoMCkKKworLyogQ0JVUyBB ZGRyZXNzLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19QQUdFX0NCVVNfQURE UgkJCTB4MDBmOAorCisvKiBJMkMgRGV2aWNlIEFkZHJlc3MgcmUtYXNzaWdubWVudCAqLworI2Rl ZmluZSBSRUdfUEFHRTFfQUREUgkJCQkweDAwZmMKKyNkZWZpbmUgUkVHX1BBR0UyX0FERFIJCQkJ MHgwMGZkCisjZGVmaW5lIFJFR19QQUdFM19BRERSCQkJCTB4MDBmZQorI2RlZmluZSBSRUdfSFdf VFBJX0FERFIJCQkJMHgwMGZmCisKKy8qIFVTQlQgQ1RSTDAsIGRlZmF1bHQgdmFsdWU6IDB4MDAg Ki8KKyNkZWZpbmUgUkVHX1VUU1JTVAkJCQkweDAxMDAKKyNkZWZpbmUgQklUX1VUU1JTVF9GQ19T UlNUCQkJQklUKDUpCisjZGVmaW5lIEJJVF9VVFNSU1RfS0VFUEVSX1NSU1QJCQlCSVQoNCkKKyNk ZWZpbmUgQklUX1VUU1JTVF9IVFhfU1JTVAkJCUJJVCgzKQorI2RlZmluZSBCSVRfVVRTUlNUX1RS WF9TUlNUCQkJQklUKDIpCisjZGVmaW5lIEJJVF9VVFNSU1RfVFRYX1NSU1QJCQlCSVQoMSkKKyNk ZWZpbmUgQklUX1VUU1JTVF9IUlhfU1JTVAkJCUJJVCgwKQorCisvKiBIU0lDIFJYIENvbnRyb2wz LCBkZWZhdWx0IHZhbHVlOiAweDA3ICovCisjZGVmaW5lIFJFR19IUlhDVFJMMwkJCQkweDAxMDQK KyNkZWZpbmUgTVNLX0hSWENUUkwzX0hSWF9BRkZDVFJMCQkweGYwCisjZGVmaW5lIEJJVF9IUlhD VFJMM19IUlhfT1VUX0VOCQkJQklUKDIpCisjZGVmaW5lIEJJVF9IUlhDVFJMM19TVEFUVVNfRU4J CQlCSVQoMSkKKyNkZWZpbmUgQklUX0hSWENUUkwzX0hSWF9TVEFZX1JFU0VUCQlCSVQoMCkKKwor LyogSFNJQyBSWCBJTlQgUmVnaXN0ZXJzICovCisjZGVmaW5lIFJFR19IUlhJTlRMCQkJCTB4MDEx MQorI2RlZmluZSBSRUdfSFJYSU5USAkJCQkweDAxMTIKKworLyogVERNIFRYIE5VTUJJVFMsIGRl ZmF1bHQgdmFsdWU6IDB4MGMgKi8KKyNkZWZpbmUgUkVHX1RUWE5VTUIJCQkJMHgwMTE2CisjZGVm aW5lIE1TS19UVFhOVU1CX1RUWF9BRkZDVFJMXzNfMAkJMHhmMAorI2RlZmluZSBCSVRfVFRYTlVN Ql9UVFhfQ09NMV9BVF9TWU5DX1dBSVQJQklUKDMpCisjZGVmaW5lIE1TS19UVFhOVU1CX1RUWF9O VU1CUFNfMl8wCQkweDA3CisKKy8qIFRETSBUWCBOVU1TUElTWU0sIGRlZmF1bHQgdmFsdWU6IDB4 MDQgKi8KKyNkZWZpbmUgUkVHX1RUWFNQSU5VTVMJCQkJMHgwMTE3CisKKy8qIFRETSBUWCBOVU1I U0lDU1lNLCBkZWZhdWx0IHZhbHVlOiAweDE0ICovCisjZGVmaW5lIFJFR19UVFhIU0lDTlVNUwkJ CQkweDAxMTgKKworLyogVERNIFRYIE5VTVRPVFNZTSwgZGVmYXVsdCB2YWx1ZTogMHgxOCAqLwor I2RlZmluZSBSRUdfVFRYVE9UTlVNUwkJCQkweDAxMTkKKworLyogVERNIFRYIElOVCBMb3csIGRl ZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RUWElOVEwJCQkJMHgwMTM2CisjZGVm aW5lIEJJVF9UVFhJTlRMX1RUWF9JTlRSNwkJCUJJVCg3KQorI2RlZmluZSBCSVRfVFRYSU5UTF9U VFhfSU5UUjYJCQlCSVQoNikKKyNkZWZpbmUgQklUX1RUWElOVExfVFRYX0lOVFI1CQkJQklUKDUp CisjZGVmaW5lIEJJVF9UVFhJTlRMX1RUWF9JTlRSNAkJCUJJVCg0KQorI2RlZmluZSBCSVRfVFRY SU5UTF9UVFhfSU5UUjMJCQlCSVQoMykKKyNkZWZpbmUgQklUX1RUWElOVExfVFRYX0lOVFIyCQkJ QklUKDIpCisjZGVmaW5lIEJJVF9UVFhJTlRMX1RUWF9JTlRSMQkJCUJJVCgxKQorI2RlZmluZSBC SVRfVFRYSU5UTF9UVFhfSU5UUjAJCQlCSVQoMCkKKworLyogVERNIFRYIElOVCBIaWdoLCBkZWZh dWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19UVFhJTlRICQkJCTB4MDEzNworI2RlZmlu ZSBCSVRfVFRYSU5USF9UVFhfSU5UUjE1CQkJQklUKDcpCisjZGVmaW5lIEJJVF9UVFhJTlRIX1RU WF9JTlRSMTQJCQlCSVQoNikKKyNkZWZpbmUgQklUX1RUWElOVEhfVFRYX0lOVFIxMwkJCUJJVCg1 KQorI2RlZmluZSBCSVRfVFRYSU5USF9UVFhfSU5UUjEyCQkJQklUKDQpCisjZGVmaW5lIEJJVF9U VFhJTlRIX1RUWF9JTlRSMTEJCQlCSVQoMykKKyNkZWZpbmUgQklUX1RUWElOVEhfVFRYX0lOVFIx MAkJCUJJVCgyKQorI2RlZmluZSBCSVRfVFRYSU5USF9UVFhfSU5UUjkJCQlCSVQoMSkKKyNkZWZp bmUgQklUX1RUWElOVEhfVFRYX0lOVFI4CQkJQklUKDApCisKKy8qIFRETSBSWCBDb250cm9sLCBk ZWZhdWx0IHZhbHVlOiAweDFjICovCisjZGVmaW5lIFJFR19UUlhDVFJMCQkJCTB4MDEzYgorI2Rl ZmluZSBCSVRfVFJYQ1RSTF9UUlhfQ0xSX1dWQUxMT1cJCUJJVCg0KQorI2RlZmluZSBCSVRfVFJY Q1RSTF9UUlhfRlJPTV9TRV9DT0MJCUJJVCgzKQorI2RlZmluZSBNU0tfVFJYQ1RSTF9UUlhfTlVN QlBTXzJfMAkJMHgwNworCisvKiBURE0gUlggTlVNU1BJU1lNLCBkZWZhdWx0IHZhbHVlOiAweDA0 ICovCisjZGVmaW5lIFJFR19UUlhTUElOVU1TCQkJCTB4MDEzYworCisvKiBURE0gUlggTlVNSFNJ Q1NZTSwgZGVmYXVsdCB2YWx1ZTogMHgxNCAqLworI2RlZmluZSBSRUdfVFJYSFNJQ05VTVMJCQkJ MHgwMTNkCisKKy8qIFRETSBSWCBOVU1UT1RTWU0sIGRlZmF1bHQgdmFsdWU6IDB4MTggKi8KKyNk ZWZpbmUgUkVHX1RSWFRPVE5VTVMJCQkJMHgwMTNlCisKKy8qIFRETSBSWCBTdGF0dXMgMm5kLCBk ZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19UUlhTVEEyCQkJCTB4MDE1YworCisv KiBURE0gUlggSU5UIExvdywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVFJY SU5UTAkJCQkweDAxNjMKKworLyogVERNIFJYIElOVCBIaWdoLCBkZWZhdWx0IHZhbHVlOiAweDAw ICovCisjZGVmaW5lIFJFR19UUlhJTlRICQkJCTB4MDE2NAorCisvKiBURE0gUlggSU5UTUFTSyBI aWdoLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19UUlhJTlRNSAkJCQkweDAx NjYKKworLyogSFNJQyBUWCBDUlRMLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJF R19IVFhDVFJMCQkJCTB4MDE2OQorI2RlZmluZSBCSVRfSFRYQ1RSTF9IVFhfQUxMU0JFX1NPUAkJ QklUKDQpCisjZGVmaW5lIEJJVF9IVFhDVFJMX0hUWF9SR0RJTlZfVVNCCQlCSVQoMykKKyNkZWZp bmUgQklUX0hUWENUUkxfSFRYX1JTUFRETV9CVVNZCQlCSVQoMikKKyNkZWZpbmUgQklUX0hUWENU UkxfSFRYX0RSVkNPTk4xCQlCSVQoMSkKKyNkZWZpbmUgQklUX0hUWENUUkxfSFRYX0RSVlJTVDEJ CQlCSVQoMCkKKworLyogSFNJQyBUWCBJTlQgTG93LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisj ZGVmaW5lIFJFR19IVFhJTlRMCQkJCTB4MDE3ZAorCisvKiBIU0lDIFRYIElOVCBIaWdoLCBkZWZh dWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19IVFhJTlRICQkJCTB4MDE3ZQorCisvKiBI U0lDIEtlZXBlciwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfS0VFUEVSCQkJ CTB4MDE4MQorI2RlZmluZSBNU0tfS0VFUEVSX0tFRVBFUl9NT0RFXzFfMAkJMHgwMworCisvKiBI U0lDIEZsb3cgQ29udHJvbCBHZW5lcmFsLCBkZWZhdWx0IHZhbHVlOiAweDAyICovCisjZGVmaW5l IFJFR19GQ0dDCQkJCTB4MDE4MworI2RlZmluZSBCSVRfRkNHQ19IU0lDX0ZDX0hPU1RNT0RFCQlC SVQoMSkKKyNkZWZpbmUgQklUX0ZDR0NfSFNJQ19GQ19FTkFCTEUJCQlCSVQoMCkKKworLyogSFNJ QyBGbG93IENvbnRyb2wgQ1RSMTMsIGRlZmF1bHQgdmFsdWU6IDB4ZmMgKi8KKyNkZWZpbmUgUkVH X0ZDQ1RSMTMJCQkJMHgwMTkxCisKKy8qIEhTSUMgRmxvdyBDb250cm9sIENUUjE0LCBkZWZhdWx0 IHZhbHVlOiAweGZmICovCisjZGVmaW5lIFJFR19GQ0NUUjE0CQkJCTB4MDE5MgorCisvKiBIU0lD IEZsb3cgQ29udHJvbCBDVFIxNSwgZGVmYXVsdCB2YWx1ZTogMHhmZiAqLworI2RlZmluZSBSRUdf RkNDVFIxNQkJCQkweDAxOTMKKworLyogSFNJQyBGbG93IENvbnRyb2wgQ1RSNTAsIGRlZmF1bHQg dmFsdWU6IDB4MDMgKi8KKyNkZWZpbmUgUkVHX0ZDQ1RSNTAJCQkJMHgwMWI2CisKKy8qIEhTSUMg RmxvdyBDb250cm9sIElOVFIwLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19G Q0lOVFIwCQkJCTB4MDFlYworI2RlZmluZSBSRUdfRkNJTlRSMQkJCQkweDAxZWQKKyNkZWZpbmUg UkVHX0ZDSU5UUjIJCQkJMHgwMWVlCisjZGVmaW5lIFJFR19GQ0lOVFIzCQkJCTB4MDFlZgorI2Rl ZmluZSBSRUdfRkNJTlRSNAkJCQkweDAxZjAKKyNkZWZpbmUgUkVHX0ZDSU5UUjUJCQkJMHgwMWYx CisjZGVmaW5lIFJFR19GQ0lOVFI2CQkJCTB4MDFmMgorI2RlZmluZSBSRUdfRkNJTlRSNwkJCQkw eDAxZjMKKworLyogVERNIExvdyBMYXRlbmN5LCBkZWZhdWx0IHZhbHVlOiAweDIwICovCisjZGVm aW5lIFJFR19URE1MTENUTAkJCQkweDAxZmMKKyNkZWZpbmUgTVNLX1RETUxMQ1RMX1RSWF9MTF9T RUxfTUFOVUFMCQkweGMwCisjZGVmaW5lIE1TS19URE1MTENUTF9UUlhfTExfU0VMX01PREUJCTB4 MzAKKyNkZWZpbmUgTVNLX1RETUxMQ1RMX1RUWF9MTF9TRUxfTUFOVUFMCQkweDBjCisjZGVmaW5l IEJJVF9URE1MTENUTF9UVFhfTExfVElFX0xPVwkJQklUKDEpCisjZGVmaW5lIEJJVF9URE1MTENU TF9UVFhfTExfU0VMX01PREUJCUJJVCgwKQorCisvKiBUTURTIDAgQ2xvY2sgQ29udHJvbCwgZGVm YXVsdCB2YWx1ZTogMHgxMCAqLworI2RlZmluZSBSRUdfVE1EUzBfQ0NUUkwxCQkJMHgwMjEwCisj ZGVmaW5lIE1TS19UTURTMF9DQ1RSTDFfVEVTVF9TRUwJCTB4YzAKKyNkZWZpbmUgTVNLX1RNRFMw X0NDVFJMMV9DTEsxWF9DVEwJCTB4MzAKKworLyogVE1EUyBDbG9jayBFbmFibGUsIGRlZmF1bHQg dmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RNRFNfQ0xLX0VOCQkJCTB4MDIxMQorI2RlZmlu ZSBCSVRfVE1EU19DTEtfRU5fQ0xLX0VOCQkJQklUKDApCisKKy8qIFRNRFMgQ2hhbm5lbCBFbmFi bGUsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RNRFNfQ0hfRU4JCQkJMHgw MjEyCisjZGVmaW5lIEJJVF9UTURTX0NIX0VOX0NIMF9FTgkJCUJJVCg0KQorI2RlZmluZSBCSVRf VE1EU19DSF9FTl9DSDEyX0VOCQkJQklUKDApCisKKy8qIEJHUl9CSUFTLCBkZWZhdWx0IHZhbHVl OiAweDA3ICovCisjZGVmaW5lIFJFR19CR1JfQklBUwkJCQkweDAyMTUKKyNkZWZpbmUgQklUX0JH Ul9CSUFTX0JHUl9FTgkJCUJJVCg3KQorI2RlZmluZSBNU0tfQkdSX0JJQVNfQklBU19CR1JfRAkJ CTB4MGYKKworLyogVE1EUyAwIERpZ2l0YWwgSTJDIEJXLCBkZWZhdWx0IHZhbHVlOiAweDBhICov CisjZGVmaW5lIFJFR19BTElDRTBfQldfSTJDCQkJMHgwMjMxCisKKy8qIFRNRFMgMCBEaWdpdGFs IFpvbmUgQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHhlMCAqLworI2RlZmluZSBSRUdfQUxJQ0Uw X1pPTkVfQ1RSTAkJCTB4MDI0YworI2RlZmluZSBCSVRfQUxJQ0UwX1pPTkVfQ1RSTF9JQ1JTVF9O CQlCSVQoNykKKyNkZWZpbmUgQklUX0FMSUNFMF9aT05FX0NUUkxfVVNFX0lOVF9ESVYyMAlCSVQo NikKKyNkZWZpbmUgTVNLX0FMSUNFMF9aT05FX0NUUkxfU1pPTkVfSTJDCQkweDMwCisjZGVmaW5l IE1TS19BTElDRTBfWk9ORV9DVFJMX1pPTkVfQ1RSTAkJMHgwZgorCisvKiBUTURTIDAgRGlnaXRh bCBQTEwgTW9kZSBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19B TElDRTBfTU9ERV9DVFJMCQkJMHgwMjRkCisjZGVmaW5lIE1TS19BTElDRTBfTU9ERV9DVFJMX1BM TF9NT0RFX0kyQwkweDBjCisjZGVmaW5lIE1TS19BTElDRTBfTU9ERV9DVFJMX0RJVjIwX0NUUkwJ CTB4MDMKKworLyogTUhMIFR4IENvbnRyb2wgNnRoLCBkZWZhdWx0IHZhbHVlOiAweGEwICovCisj ZGVmaW5lIFJFR19NSExUWF9DVEw2CQkJCTB4MDI4NQorI2RlZmluZSBNU0tfTUhMVFhfQ1RMNl9F TUlfU0VMCQkJMHhlMAorI2RlZmluZSBNU0tfTUhMVFhfQ1RMNl9UWF9DTEtfU0hBUEVfOV84CQkw eDAzCisKKy8qIFBhY2tldCBGaWx0ZXIwLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5l IFJFR19QS1RfRklMVEVSXzAJCQkweDAyOTAKKyNkZWZpbmUgQklUX1BLVF9GSUxURVJfMF9EUk9Q X0NFQV9HQU1VVF9QS1QJQklUKDcpCisjZGVmaW5lIEJJVF9QS1RfRklMVEVSXzBfRFJPUF9DRUFf Q1BfUEtUCUJJVCg2KQorI2RlZmluZSBCSVRfUEtUX0ZJTFRFUl8wX0RST1BfTVBFR19QS1QJCUJJ VCg1KQorI2RlZmluZSBCSVRfUEtUX0ZJTFRFUl8wX0RST1BfU1BJRl9QS1QJCUJJVCg0KQorI2Rl ZmluZSBCSVRfUEtUX0ZJTFRFUl8wX0RST1BfQUlGX1BLVAkJQklUKDMpCisjZGVmaW5lIEJJVF9Q S1RfRklMVEVSXzBfRFJPUF9BVklfUEtUCQlCSVQoMikKKyNkZWZpbmUgQklUX1BLVF9GSUxURVJf MF9EUk9QX0NUU19QS1QJCUJJVCgxKQorI2RlZmluZSBCSVRfUEtUX0ZJTFRFUl8wX0RST1BfR0NQ X1BLVAkJQklUKDApCisKKy8qIFBhY2tldCBGaWx0ZXIxLCBkZWZhdWx0IHZhbHVlOiAweDAwICov CisjZGVmaW5lIFJFR19QS1RfRklMVEVSXzEJCQkweDAyOTEKKyNkZWZpbmUgQklUX1BLVF9GSUxU RVJfMV9WU0lfT1ZFUlJJREVfRElTCUJJVCg3KQorI2RlZmluZSBCSVRfUEtUX0ZJTFRFUl8xX0FW SV9PVkVSUklERV9ESVMJQklUKDYpCisjZGVmaW5lIEJJVF9QS1RfRklMVEVSXzFfRFJPUF9BVURJ T19QS1QJCUJJVCgzKQorI2RlZmluZSBCSVRfUEtUX0ZJTFRFUl8xX0RST1BfR0VOMl9QS1QJCUJJ VCgyKQorI2RlZmluZSBCSVRfUEtUX0ZJTFRFUl8xX0RST1BfR0VOX1BLVAkJQklUKDEpCisjZGVm aW5lIEJJVF9QS1RfRklMVEVSXzFfRFJPUF9WU0lGX1BLVAkJQklUKDApCisKKy8qIFRNRFMgQ2xv Y2sgU3RhdHVzLCBkZWZhdWx0IHZhbHVlOiAweDEwICovCisjZGVmaW5lIFJFR19UTURTX0NTVEFU X1AzCQkJMHgwMmEwCisjZGVmaW5lIEJJVF9UTURTX0NTVEFUX1AzX1JYX0hETUlfQ1BfQ0xSX01V VEUJQklUKDcpCisjZGVmaW5lIEJJVF9UTURTX0NTVEFUX1AzX1JYX0hETUlfQ1BfU0VUX01VVEUJ QklUKDYpCisjZGVmaW5lIEJJVF9UTURTX0NTVEFUX1AzX1JYX0hETUlfQ1BfTkVXX0NQCUJJVCg1 KQorI2RlZmluZSBCSVRfVE1EU19DU1RBVF9QM19DTFJfQVZJCQlCSVQoMykKKyNkZWZpbmUgQklU X1RNRFNfQ1NUQVRfUDNfU0NEVF9DTFJfQVZJX0RJUwlCSVQoMikKKyNkZWZpbmUgQklUX1RNRFNf Q1NUQVRfUDNfU0NEVAkJCUJJVCgxKQorI2RlZmluZSBCSVRfVE1EU19DU1RBVF9QM19DS0RUCQkJ QklUKDApCisKKy8qIFJYX0hETUkgQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHgxMCAqLworI2Rl ZmluZSBSRUdfUlhfSERNSV9DVFJMMAkJCTB4MDJhMQorI2RlZmluZSBCSVRfUlhfSERNSV9DVFJM MF9CWVBfRFZJRklMVF9TWU5DCUJJVCg1KQorI2RlZmluZSBCSVRfUlhfSERNSV9DVFJMMF9IRE1J X01PREVfRU5fSVRTRUxGX0NMUiBCSVQoNCkKKyNkZWZpbmUgQklUX1JYX0hETUlfQ1RSTDBfSERN SV9NT0RFX1NXX1ZBTFVFCUJJVCgzKQorI2RlZmluZSBCSVRfUlhfSERNSV9DVFJMMF9IRE1JX01P REVfT1ZFUldSSVRFCUJJVCgyKQorI2RlZmluZSBCSVRfUlhfSERNSV9DVFJMMF9SWF9IRE1JX0hE TUlfTU9ERV9FTglCSVQoMSkKKyNkZWZpbmUgQklUX1JYX0hETUlfQ1RSTDBfUlhfSERNSV9IRE1J X01PREUJQklUKDApCisKKy8qIFJYX0hETUkgQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHgzOCAq LworI2RlZmluZSBSRUdfUlhfSERNSV9DVFJMMgkJCTB4MDJhMworI2RlZmluZSBNU0tfUlhfSERN SV9DVFJMMl9JRExFX0NOVAkJMHhmMAorI2RlZmluZSBWQUxfUlhfSERNSV9DVFJMMl9JRExFX0NO VChuKQkJKChuKSA8PCA0KQorI2RlZmluZSBCSVRfUlhfSERNSV9DVFJMMl9VU0VfQVZfTVVURQkJ QklUKDMpCisjZGVmaW5lIEJJVF9SWF9IRE1JX0NUUkwyX1ZTSV9NT05fU0VMX1ZTSQlCSVQoMCkK KworLyogUlhfSERNSSBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDBmICovCisjZGVmaW5lIFJF R19SWF9IRE1JX0NUUkwzCQkJMHgwMmE0CisjZGVmaW5lIE1TS19SWF9IRE1JX0NUUkwzX1BQX01P REVfQ0xLX0VOCTB4MGYKKworLyogcnhfaGRtaSBDbGVhciBCdWZmZXIsIGRlZmF1bHQgdmFsdWU6 IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1JYX0hETUlfQ0xSX0JVRkZFUgkJCTB4MDJhYworI2RlZmlu ZSBNU0tfUlhfSERNSV9DTFJfQlVGRkVSX0FJRjRWU0lfQ01QCTB4YzAKKyNkZWZpbmUgQklUX1JY X0hETUlfQ0xSX0JVRkZFUl9VU0VfQUlGNFZTSQlCSVQoNSkKKyNkZWZpbmUgQklUX1JYX0hETUlf Q0xSX0JVRkZFUl9WU0lfQ0xSX1dfQVZJCUJJVCg0KQorI2RlZmluZSBCSVRfUlhfSERNSV9DTFJf QlVGRkVSX1ZTSV9JRUVFX0lEX0NIS19FTiBCSVQoMykKKyNkZWZpbmUgQklUX1JYX0hETUlfQ0xS X0JVRkZFUl9TV0FQX1ZTSV9JRUVFX0lECUJJVCgyKQorI2RlZmluZSBCSVRfUlhfSERNSV9DTFJf QlVGRkVSX0FJRl9DTFJfRU4JQklUKDEpCisjZGVmaW5lIEJJVF9SWF9IRE1JX0NMUl9CVUZGRVJf VlNJX0NMUl9FTglCSVQoMCkKKworLyogUlhfSERNSSBWU0kgSGVhZGVyMSwgZGVmYXVsdCB2YWx1 ZTogMHgwMCAqLworI2RlZmluZSBSRUdfUlhfSERNSV9NT05fUEtUX0hFQURFUjEJCTB4MDJiOAor CisvKiBSWF9IRE1JIFZTSSBNSEwgTW9uaXRvciwgZGVmYXVsdCB2YWx1ZTogMHgzYyAqLworI2Rl ZmluZSBSRUdfUlhfSERNSV9WU0lGX01ITF9NT04JCTB4MDJkNworCisjZGVmaW5lIE1TS19SWF9I RE1JX1ZTSUZfTUhMX01PTl9SWF9IRE1JX01ITF8zRF9GT1JNQVQgMHgzYworI2RlZmluZSBNU0tf UlhfSERNSV9WU0lGX01ITF9NT05fUlhfSERNSV9NSExfVklEX0ZPUk1BVCAweDAzCisKKy8qIElu dGVycnVwdCBTb3VyY2UgOSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfSU5U UjkJCQkJMHgwMmUwCisjZGVmaW5lIEJJVF9JTlRSOV9FRElEX0VSUk9SCQkJQklUKDYpCisjZGVm aW5lIEJJVF9JTlRSOV9FRElEX0RPTkUJCQlCSVQoNSkKKyNkZWZpbmUgQklUX0lOVFI5X0RFVkNB UF9ET05FCQkJQklUKDQpCisKKy8qIEludGVycnVwdCA5IE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4 MDAgKi8KKyNkZWZpbmUgUkVHX0lOVFI5X01BU0sJCQkJMHgwMmUxCisKKy8qIFRQSSBDQlVTIFN0 YXJ0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19UUElfQ0JVU19TVEFSVAkJ CTB4MDJlMgorI2RlZmluZSBCSVRfVFBJX0NCVVNfU1RBUlRfUkNQX1JFUV9TVEFSVAlCSVQoNykK KyNkZWZpbmUgQklUX1RQSV9DQlVTX1NUQVJUX1JDUEtfUkVQTFlfU1RBUlQJQklUKDYpCisjZGVm aW5lIEJJVF9UUElfQ0JVU19TVEFSVF9SQ1BFX1JFUExZX1NUQVJUCUJJVCg1KQorI2RlZmluZSBC SVRfVFBJX0NCVVNfU1RBUlRfUFVUX0xJTktfTU9ERV9TVEFSVAlCSVQoNCkKKyNkZWZpbmUgQklU X1RQSV9DQlVTX1NUQVJUX1BVVF9EQ0FQQ0hHX1NUQVJUCUJJVCgzKQorI2RlZmluZSBCSVRfVFBJ X0NCVVNfU1RBUlRfUFVUX0RDQVBSRFlfU1RBUlQJQklUKDIpCisjZGVmaW5lIEJJVF9UUElfQ0JV U19TVEFSVF9HRVRfRURJRF9TVEFSVF8wCUJJVCgxKQorI2RlZmluZSBCSVRfVFBJX0NCVVNfU1RB UlRfR0VUX0RFVkNBUF9TVEFSVAlCSVQoMCkKKworLyogRURJRCBDb250cm9sLCBkZWZhdWx0IHZh bHVlOiAweDEwICovCisjZGVmaW5lIFJFR19FRElEX0NUUkwJCQkJMHgwMmUzCisjZGVmaW5lIEJJ VF9FRElEX0NUUkxfRURJRF9QUklNRV9WQUxJRAkJQklUKDcpCisjZGVmaW5lIEJJVF9FRElEX0NU UkxfWERFVkNBUF9FTgkJQklUKDYpCisjZGVmaW5lIEJJVF9FRElEX0NUUkxfREVWQ0FQX1NFTEVD VF9ERVZDQVAJQklUKDUpCisjZGVmaW5lIEJJVF9FRElEX0NUUkxfRURJRF9GSUZPX0FERFJfQVVU TwlCSVQoNCkKKyNkZWZpbmUgQklUX0VESURfQ1RSTF9FRElEX0ZJRk9fQUNDRVNTX0FMV0FZU19F TiBCSVQoMykKKyNkZWZpbmUgQklUX0VESURfQ1RSTF9FRElEX0ZJRk9fQkxPQ0tfU0VMCUJJVCgy KQorI2RlZmluZSBCSVRfRURJRF9DVFJMX0lOVkFMSURfQktTVgkJQklUKDEpCisjZGVmaW5lIEJJ VF9FRElEX0NUUkxfRURJRF9NT0RFX0VOCQlCSVQoMCkKKworLyogRURJRCBGSUZPIEFkZHIsIGRl ZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0VESURfRklGT19BRERSCQkJMHgwMmU5 CisKKy8qIEVESUQgRklGTyBXcml0ZSBEYXRhLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVm aW5lIFJFR19FRElEX0ZJRk9fV1JfREFUQQkJCTB4MDJlYQorCisvKiBFRElEL0RFVkNBUCBGSUZP IEludGVybmFsIEFkZHIsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0VESURf RklGT19BRERSX01PTgkJCTB4MDJlYgorCisvKiBFRElEIEZJRk8gUmVhZCBEYXRhLCBkZWZhdWx0 IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19FRElEX0ZJRk9fUkRfREFUQQkJCTB4MDJlYwor CisvKiBFRElEIEREQyBTZWdtZW50IFBvaW50ZXIsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNk ZWZpbmUgUkVHX0VESURfU1RBUlRfRVhUCQkJMHgwMmVkCisKKy8qIFRYIElQIEJJU1QgQ05UTCBh bmQgU3RhdHVzLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19UWF9JUF9CSVNU X0NOVExTVEEJCQkweDAyZjIKKyNkZWZpbmUgQklUX1RYX0lQX0JJU1RfQ05UTFNUQV9UWEJJU1Rf UVVBUlRFUl9DTEtfU0VMIEJJVCg2KQorI2RlZmluZSBCSVRfVFhfSVBfQklTVF9DTlRMU1RBX1RY QklTVF9ET05FCUJJVCg1KQorI2RlZmluZSBCSVRfVFhfSVBfQklTVF9DTlRMU1RBX1RYQklTVF9P TglCSVQoNCkKKyNkZWZpbmUgQklUX1RYX0lQX0JJU1RfQ05UTFNUQV9UWEJJU1RfUlVOCUJJVCgz KQorI2RlZmluZSBCSVRfVFhfSVBfQklTVF9DTlRMU1RBX1RYQ0xLX0hBTEZfU0VMCUJJVCgyKQor I2RlZmluZSBCSVRfVFhfSVBfQklTVF9DTlRMU1RBX1RYQklTVF9FTglCSVQoMSkKKyNkZWZpbmUg QklUX1RYX0lQX0JJU1RfQ05UTFNUQV9UWEJJU1RfU0VMCUJJVCgwKQorCisvKiBUWCBJUCBCSVNU IElOU1QgTE9XLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19UWF9JUF9CSVNU X0lOU1RfTE9XCQkJMHgwMmYzCisjZGVmaW5lIFJFR19UWF9JUF9CSVNUX0lOU1RfSElHSAkJMHgw MmY0CisKKy8qIFRYIElQIEJJU1QgUEFUVEVSTiBMT1csIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8K KyNkZWZpbmUgUkVHX1RYX0lQX0JJU1RfUEFUX0xPVwkJCTB4MDJmNQorI2RlZmluZSBSRUdfVFhf SVBfQklTVF9QQVRfSElHSAkJCTB4MDJmNgorCisvKiBUWCBJUCBCSVNUIENPTkZJR1VSRSBMT1cs IGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RYX0lQX0JJU1RfQ09ORl9MT1cJ CQkweDAyZjcKKyNkZWZpbmUgUkVHX1RYX0lQX0JJU1RfQ09ORl9ISUdICQkweDAyZjgKKworLyog RS1NU0MgR2VuZXJhbCBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDgwICovCisjZGVmaW5lIFJF R19HRU5DVEwJCQkJMHgwMzAwCisjZGVmaW5lIEJJVF9HRU5DVExfU1BFQ19UUkFOU19ESVMJCUJJ VCg3KQorI2RlZmluZSBCSVRfR0VOQ1RMX0RJU19YTUlUX0VSUl9TVEFURQkJQklUKDYpCisjZGVm aW5lIEJJVF9HRU5DVExfU1BJX01JU09fRURHRQkJQklUKDUpCisjZGVmaW5lIEJJVF9HRU5DVExf U1BJX01PU0lfRURHRQkJQklUKDQpCisjZGVmaW5lIEJJVF9HRU5DVExfQ0xSX0VNU0NfUkZJRk8J CUJJVCgzKQorI2RlZmluZSBCSVRfR0VOQ1RMX0NMUl9FTVNDX1hGSUZPCQlCSVQoMikKKyNkZWZp bmUgQklUX0dFTkNUTF9TVEFSVF9UUkFJTl9TRVEJCUJJVCgxKQorI2RlZmluZSBCSVRfR0VOQ1RM X0VNU0NfRU4JCQlCSVQoMCkKKworLyogRS1NU0MgQ29tbWEgRXJyb3JDTlQsIGRlZmF1bHQgdmFs dWU6IDB4MDMgKi8KKyNkZWZpbmUgUkVHX0NPTU1FQ05UCQkJCTB4MDMwNQorI2RlZmluZSBCSVRf Q09NTUVDTlRfSTJDX1RPX0VNU0NfRU4JCUJJVCg3KQorI2RlZmluZSBNU0tfQ09NTUVDTlRfQ09N TUFfQ0hBUl9FUlJfQ05UCQkweDBmCisKKy8qIEUtTVNDIFJGSUZPIEJ5dGVDbnQsIGRlZmF1bHQg dmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0VNU0NSRklGT0JDTlRMCQkJMHgwMzFhCisjZGVm aW5lIFJFR19FTVNDUkZJRk9CQ05USAkJCTB4MDMxYgorCisvKiBTUEkgQnVyc3QgQ250IFN0YXR1 cywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfU1BJQlVSU1RDTlQJCQkJMHgw MzFlCisKKy8qIFNQSSBCdXJzdCBTdGF0dXMgYW5kIFNXUlNULCBkZWZhdWx0IHZhbHVlOiAweDAw ICovCisjZGVmaW5lIFJFR19TUElCVVJTVFNUQVQJCQkweDAzMjIKKyNkZWZpbmUgQklUX1NQSUJV UlNUU1RBVF9TUElfSERDUFJTVAkJQklUKDcpCisjZGVmaW5lIEJJVF9TUElCVVJTVFNUQVRfU1BJ X0NCVVNSU1QJCUJJVCg2KQorI2RlZmluZSBCSVRfU1BJQlVSU1RTVEFUX1NQSV9TUlNUCQlCSVQo NSkKKyNkZWZpbmUgQklUX1NQSUJVUlNUU1RBVF9FTVNDX05PUk1BTF9NT0RFCUJJVCgwKQorCisv KiBFLU1TQyAxc3QgSW50ZXJydXB0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJF R19FTVNDSU5UUgkJCQkweDAzMjMKKyNkZWZpbmUgQklUX0VNU0NJTlRSX0VNU0NfWEZJRk9fRU1Q VFkJCUJJVCg3KQorI2RlZmluZSBCSVRfRU1TQ0lOVFJfRU1TQ19YTUlUX0FDS19UT1VUCQlCSVQo NikKKyNkZWZpbmUgQklUX0VNU0NJTlRSX0VNU0NfUkZJRk9fUkVBRF9FUlIJQklUKDUpCisjZGVm aW5lIEJJVF9FTVNDSU5UUl9FTVNDX1hGSUZPX1dSSVRFX0VSUglCSVQoNCkKKyNkZWZpbmUgQklU X0VNU0NJTlRSX0VNU0NfQ09NTUFfQ0hBUl9FUlIJQklUKDMpCisjZGVmaW5lIEJJVF9FTVNDSU5U Ul9FTVNDX1hNSVRfRE9ORQkJQklUKDIpCisjZGVmaW5lIEJJVF9FTVNDSU5UUl9FTVNDX1hNSVRf R05UX1RPVVQJCUJJVCgxKQorI2RlZmluZSBCSVRfRU1TQ0lOVFJfU1BJX0RWTEQJCUJJVCgwKQor CisvKiBFLU1TQyBJbnRlcnJ1cHQgTWFzaywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmlu ZSBSRUdfRU1TQ0lOVFJNQVNLCQkJMHgwMzI0CisKKy8qIEkyQyBFLU1TQyBYTUlUIEZJRk8gV3Jp dGUgUG9ydCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRU1TQ19YTUlUX1dS SVRFX1BPUlQJCTB4MDMyYQorCisvKiBJMkMgRS1NU0MgUkNWIEZJRk8gV3JpdGUgUG9ydCwgZGVm YXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRU1TQ19SQ1ZfUkVBRF9QT1JUCQkJMHgw MzJiCisKKy8qIEUtTVNDIDJuZCBJbnRlcnJ1cHQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNk ZWZpbmUgUkVHX0VNU0NJTlRSMQkJCQkweDAzMmMKKyNkZWZpbmUgQklUX0VNU0NJTlRSMV9FTVND X1RSQUlOSU5HX0NPTU1BX0VSUglCSVQoMCkKKworLyogRS1NU0MgSW50ZXJydXB0IE1hc2ssIGRl ZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0VNU0NJTlRSTUFTSzEJCQkweDAzMmQK KyNkZWZpbmUgQklUX0VNU0NJTlRSTUFTSzFfRU1TQ19JTlRSTUFTSzFfMAlCSVQoMCkKKworLyog TUhMIFRvcCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX01ITF9UT1Bf Q1RMCQkJCTB4MDMzMAorI2RlZmluZSBCSVRfTUhMX1RPUF9DVExfTUhMM19ET0NfU0VMCQlCSVQo NykKKyNkZWZpbmUgQklUX01ITF9UT1BfQ1RMX01ITF9QUF9TRUwJCUJJVCg2KQorI2RlZmluZSBN U0tfTUhMX1RPUF9DVExfSUZfVElNSU5HX0NUTAkJMHgwMworCisvKiBNSEwgRGF0YVBhdGggMXN0 IEN0bCwgZGVmYXVsdCB2YWx1ZTogMHhiYyAqLworI2RlZmluZSBSRUdfTUhMX0RQX0NUTDAJCQkJ MHgwMzMxCisjZGVmaW5lIEJJVF9NSExfRFBfQ1RMMF9EUF9PRQkJCUJJVCg3KQorI2RlZmluZSBC SVRfTUhMX0RQX0NUTDBfVFhfT0VfT1ZSCQlCSVQoNikKKyNkZWZpbmUgTVNLX01ITF9EUF9DVEww X1RYX09FCQkJMHgzZgorCisvKiBNSEwgRGF0YVBhdGggMm5kIEN0bCwgZGVmYXVsdCB2YWx1ZTog MHhiYiAqLworI2RlZmluZSBSRUdfTUhMX0RQX0NUTDEJCQkJMHgwMzMyCisjZGVmaW5lIE1TS19N SExfRFBfQ1RMMV9DS19TV0lOR19DVEwJCTB4ZjAKKyNkZWZpbmUgTVNLX01ITF9EUF9DVEwxX0RU X1NXSU5HX0NUTAkJMHgwZgorCisvKiBNSEwgRGF0YVBhdGggM3JkIEN0bCwgZGVmYXVsdCB2YWx1 ZTogMHgyZiAqLworI2RlZmluZSBSRUdfTUhMX0RQX0NUTDIJCQkJMHgwMzMzCisjZGVmaW5lIEJJ VF9NSExfRFBfQ1RMMl9DTEtfQllQQVNTX0VOCQlCSVQoNykKKyNkZWZpbmUgTVNLX01ITF9EUF9D VEwyX0RBTVBfVEVSTV9TRUwJCTB4MzAKKyNkZWZpbmUgTVNLX01ITF9EUF9DVEwyX0NLX1RFUk1f U0VMCQkweDBjCisjZGVmaW5lIE1TS19NSExfRFBfQ1RMMl9EVF9URVJNX1NFTAkJMHgwMworCisv KiBNSEwgRGF0YVBhdGggNHRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHg0OCAqLworI2RlZmluZSBS RUdfTUhMX0RQX0NUTDMJCQkJMHgwMzM0CisjZGVmaW5lIE1TS19NSExfRFBfQ1RMM19EVF9EUlZf Vk5CQ19DVEwJCTB4ZjAKKyNkZWZpbmUgTVNLX01ITF9EUF9DVEwzX0RUX0RSVl9WTkJfQ1RMCQkw eDBmCisKKy8qIE1ITCBEYXRhUGF0aCA1dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDQ4ICovCisj ZGVmaW5lIFJFR19NSExfRFBfQ1RMNAkJCQkweDAzMzUKKyNkZWZpbmUgTVNLX01ITF9EUF9DVEw0 X0NLX0RSVl9WTkJDX0NUTAkJMHhmMAorI2RlZmluZSBNU0tfTUhMX0RQX0NUTDRfQ0tfRFJWX1ZO Ql9DVEwJCTB4MGYKKworLyogTUhMIERhdGFQYXRoIDZ0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4 M2YgKi8KKyNkZWZpbmUgUkVHX01ITF9EUF9DVEw1CQkJCTB4MDMzNgorI2RlZmluZSBCSVRfTUhM X0RQX0NUTDVfUlNFTl9FTl9PVlIJCUJJVCg3KQorI2RlZmluZSBCSVRfTUhMX0RQX0NUTDVfUlNF Tl9FTgkJCUJJVCg2KQorI2RlZmluZSBNU0tfTUhMX0RQX0NUTDVfREFNUF9URVJNX1ZHU19DVEwJ MHgzMAorI2RlZmluZSBNU0tfTUhMX0RQX0NUTDVfQ0tfVEVSTV9WR1NfQ1RMCQkweDBjCisjZGVm aW5lIE1TS19NSExfRFBfQ1RMNV9EVF9URVJNX1ZHU19DVEwJCTB4MDMKKworLyogTUhMIFBMTCAx c3QgQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDA1ICovCisjZGVmaW5lIFJFR19NSExfUExMX0NUTDAJ CQkweDAzMzcKKyNkZWZpbmUgQklUX01ITF9QTExfQ1RMMF9BVURfQ0xLX0VOCQlCSVQoNykKKwor I2RlZmluZSBNU0tfTUhMX1BMTF9DVEwwX0FVRF9DTEtfUkFUSU8JCTB4NzAKKyNkZWZpbmUgVkFM X01ITF9QTExfQ1RMMF9BVURfQ0xLX1JBVElPXzVfMTAJMHg3MAorI2RlZmluZSBWQUxfTUhMX1BM TF9DVEwwX0FVRF9DTEtfUkFUSU9fNV82CTB4NjAKKyNkZWZpbmUgVkFMX01ITF9QTExfQ1RMMF9B VURfQ0xLX1JBVElPXzVfNAkweDUwCisjZGVmaW5lIFZBTF9NSExfUExMX0NUTDBfQVVEX0NMS19S QVRJT181XzIJMHg0MAorI2RlZmluZSBWQUxfTUhMX1BMTF9DVEwwX0FVRF9DTEtfUkFUSU9fNV81 CTB4MzAKKyNkZWZpbmUgVkFMX01ITF9QTExfQ1RMMF9BVURfQ0xLX1JBVElPXzVfMwkweDIwCisj ZGVmaW5lIFZBTF9NSExfUExMX0NUTDBfQVVEX0NMS19SQVRJT181XzJfUFJJTUUgMHgxMAorI2Rl ZmluZSBWQUxfTUhMX1BMTF9DVEwwX0FVRF9DTEtfUkFUSU9fNV8xCTB4MDAKKworI2RlZmluZSBN U0tfTUhMX1BMTF9DVEwwX0hETUlfQ0xLX1JBVElPCQkweDBjCisjZGVmaW5lIFZBTF9NSExfUExM X0NUTDBfSERNSV9DTEtfUkFUSU9fNFgJMHgwYworI2RlZmluZSBWQUxfTUhMX1BMTF9DVEwwX0hE TUlfQ0xLX1JBVElPXzJYCTB4MDgKKyNkZWZpbmUgVkFMX01ITF9QTExfQ1RMMF9IRE1JX0NMS19S QVRJT18xWAkweDA0CisjZGVmaW5lIFZBTF9NSExfUExMX0NUTDBfSERNSV9DTEtfUkFUSU9fSEFM Rl9YCTB4MDAKKworI2RlZmluZSBCSVRfTUhMX1BMTF9DVEwwX0NSWVNUQUxfQ0xLX1NFTAlCSVQo MSkKKyNkZWZpbmUgQklUX01ITF9QTExfQ1RMMF9aT05FX01BU0tfT0UJCUJJVCgwKQorCisvKiBN SEwgUExMIDNyZCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4ODAgKi8KKyNkZWZpbmUgUkVHX01ITF9Q TExfQ1RMMgkJCTB4MDMzOQorI2RlZmluZSBCSVRfTUhMX1BMTF9DVEwyX0NMS0RFVEVDVF9FTgkJ QklUKDcpCisjZGVmaW5lIEJJVF9NSExfUExMX0NUTDJfTUVBU19GVkNPCQlCSVQoMykKKyNkZWZp bmUgQklUX01ITF9QTExfQ1RMMl9QTExfRkFTVF9MT0NLCQlCSVQoMikKKyNkZWZpbmUgTVNLX01I TF9QTExfQ1RMMl9QTExfTEZfU0VMCQkweDAzCisKKy8qIE1ITCBDQlVTIDFzdCBDdGwsIGRlZmF1 bHQgdmFsdWU6IDB4MTIgKi8KKyNkZWZpbmUgUkVHX01ITF9DQlVTX0NUTDAJCQkweDAzNDAKKyNk ZWZpbmUgQklUX01ITF9DQlVTX0NUTDBfQ0JVU19SR05EX1RFU1RfTU9ERQlCSVQoNykKKworI2Rl ZmluZSBNU0tfTUhMX0NCVVNfQ1RMMF9DQlVTX1JHTkRfVlRIX0NUTAkweDMwCisjZGVmaW5lIFZB TF9NSExfQ0JVU19DVEwwX0NCVVNfUkdORF9WQklBU183MzQJMHgwMAorI2RlZmluZSBWQUxfTUhM X0NCVVNfQ1RMMF9DQlVTX1JHTkRfVkJJQVNfNzQ3CTB4MTAKKyNkZWZpbmUgVkFMX01ITF9DQlVT X0NUTDBfQ0JVU19SR05EX1ZCSUFTXzc0MAkweDIwCisjZGVmaW5lIFZBTF9NSExfQ0JVU19DVEww X0NCVVNfUkdORF9WQklBU183NTQJMHgzMAorCisjZGVmaW5lIE1TS19NSExfQ0JVU19DVEwwX0NC VVNfUkVTX1RFU1RfU0VMCTB4MGMKKworI2RlZmluZSBNU0tfTUhMX0NCVVNfQ1RMMF9DQlVTX0RS Vl9TRUwJCTB4MDMKKyNkZWZpbmUgVkFMX01ITF9DQlVTX0NUTDBfQ0JVU19EUlZfU0VMX1dFQUtF U1QJMHgwMAorI2RlZmluZSBWQUxfTUhMX0NCVVNfQ1RMMF9DQlVTX0RSVl9TRUxfV0VBSwkweDAx CisjZGVmaW5lIFZBTF9NSExfQ0JVU19DVEwwX0NCVVNfRFJWX1NFTF9TVFJPTkcJMHgwMgorI2Rl ZmluZSBWQUxfTUhMX0NCVVNfQ1RMMF9DQlVTX0RSVl9TRUxfU1RST05HRVNUIDB4MDMKKworLyog TUhMIENCVVMgMm5kIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwMyAqLworI2RlZmluZSBSRUdfTUhM X0NCVVNfQ1RMMQkJCTB4MDM0MQorI2RlZmluZSBNU0tfTUhMX0NCVVNfQ1RMMV9DQlVTX1JHTkRf UkVTX0NUTAkweDA3CisjZGVmaW5lIFZBTF9NSExfQ0JVU19DVEwxXzA4ODhfT0hNCQkweDAwCisj ZGVmaW5lIFZBTF9NSExfQ0JVU19DVEwxXzExMTVfT0hNCQkweDA0CisjZGVmaW5lIFZBTF9NSExf Q0JVU19DVEwxXzEzNzhfT0hNCQkweDA3CisKKy8qIE1ITCBDb0MgMXN0IEN0bCwgZGVmYXVsdCB2 YWx1ZTogMHhjMyAqLworI2RlZmluZSBSRUdfTUhMX0NPQ19DVEwwCQkJMHgwMzQyCisjZGVmaW5l IEJJVF9NSExfQ09DX0NUTDBfQ09DX0JJQVNfRU4JCUJJVCg3KQorI2RlZmluZSBNU0tfTUhMX0NP Q19DVEwwX0NPQ19CSUFTX0NUTAkJMHg3MAorI2RlZmluZSBNU0tfTUhMX0NPQ19DVEwwX0NPQ19U RVJNX0NUTAkJMHgwNworCisvKiBNSEwgQ29DIDJuZCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4ODcg Ki8KKyNkZWZpbmUgUkVHX01ITF9DT0NfQ1RMMQkJCTB4MDM0MworI2RlZmluZSBCSVRfTUhMX0NP Q19DVEwxX0NPQ19FTgkJCUJJVCg3KQorI2RlZmluZSBNU0tfTUhMX0NPQ19DVEwxX0NPQ19EUlZf Q1RMCQkweDNmCisKKy8qIE1ITCBDb0MgNHRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwor I2RlZmluZSBSRUdfTUhMX0NPQ19DVEwzCQkJMHgwMzQ1CisjZGVmaW5lIEJJVF9NSExfQ09DX0NU TDNfQ09DX0FFQ0hPX0VOCQlCSVQoMCkKKworLyogTUhMIENvQyA1dGggQ3RsLCBkZWZhdWx0IHZh bHVlOiAweDI4ICovCisjZGVmaW5lIFJFR19NSExfQ09DX0NUTDQJCQkweDAzNDYKKyNkZWZpbmUg TVNLX01ITF9DT0NfQ1RMNF9DT0NfSUZfQ1RMCQkweGYwCisjZGVmaW5lIE1TS19NSExfQ09DX0NU TDRfQ09DX1NMRVdfQ1RMCQkweDBmCisKKy8qIE1ITCBDb0MgNnRoIEN0bCwgZGVmYXVsdCB2YWx1 ZTogMHgwZCAqLworI2RlZmluZSBSRUdfTUhMX0NPQ19DVEw1CQkJMHgwMzQ3CisKKy8qIE1ITCBE b0MgMXN0IEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgxOCAqLworI2RlZmluZSBSRUdfTUhMX0RPQ19D VEwwCQkJMHgwMzQ5CisjZGVmaW5lIEJJVF9NSExfRE9DX0NUTDBfRE9DX1JYREFUQV9FTgkJQklU KDcpCisjZGVmaW5lIE1TS19NSExfRE9DX0NUTDBfRE9DX0RNX1RFUk0JCTB4MzgKKyNkZWZpbmUg TVNLX01ITF9ET0NfQ1RMMF9ET0NfT1BNT0RFCQkweDA2CisjZGVmaW5lIEJJVF9NSExfRE9DX0NU TDBfRE9DX1JYQklBU19FTgkJQklUKDApCisKKy8qIE1ITCBEYXRhUGF0aCA3dGggQ3RsLCBkZWZh dWx0IHZhbHVlOiAweDJhICovCisjZGVmaW5lIFJFR19NSExfRFBfQ1RMNgkJCQkweDAzNTAKKyNk ZWZpbmUgQklUX01ITF9EUF9DVEw2X0RQX1RBUDJfU0dOCQlCSVQoNSkKKyNkZWZpbmUgQklUX01I TF9EUF9DVEw2X0RQX1RBUDJfRU4JCUJJVCg0KQorI2RlZmluZSBCSVRfTUhMX0RQX0NUTDZfRFBf VEFQMV9TR04JCUJJVCgzKQorI2RlZmluZSBCSVRfTUhMX0RQX0NUTDZfRFBfVEFQMV9FTgkJQklU KDIpCisjZGVmaW5lIEJJVF9NSExfRFBfQ1RMNl9EVF9QUkVEUlZfRkVFRENBUF9FTglCSVQoMSkK KyNkZWZpbmUgQklUX01ITF9EUF9DVEw2X0RQX1BSRV9QT1NUX1NFTAkJQklUKDApCisKKy8qIE1I TCBEYXRhUGF0aCA4dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDA2ICovCisjZGVmaW5lIFJFR19N SExfRFBfQ1RMNwkJCQkweDAzNTEKKyNkZWZpbmUgTVNLX01ITF9EUF9DVEw3X0RUX0RSVl9WQklB U19DQVNDVEwJMHhmMAorI2RlZmluZSBNU0tfTUhMX0RQX0NUTDdfRFRfRFJWX0lSRUZfQ1RMCQkw eDBmCisKKy8qIFR4IFpvbmUgQ3RsMSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBS RUdfVFhfWk9ORV9DVEwxCQkJMHgwMzYxCisjZGVmaW5lIFZBTF9UWF9aT05FX0NUTDFfVFhfWk9O RV9DVFJMX01PREUJMHgwOAorCisvKiBNSEwzIFR4IFpvbmUgQ3RsLCBkZWZhdWx0IHZhbHVlOiAw eDAwICovCisjZGVmaW5lIFJFR19NSEwzX1RYX1pPTkVfQ1RMCQkJMHgwMzY0CisjZGVmaW5lIEJJ VF9NSEwzX1RYX1pPTkVfQ1RMX01ITDJfSU5UUExUX1pPTkVfTUFOVV9FTiBCSVQoNykKKyNkZWZp bmUgTVNLX01ITDNfVFhfWk9ORV9DVExfTUhMM19UWF9aT05FCTB4MDMKKworI2RlZmluZSBNU0tf VFhfWk9ORV9DVEwzX1RYX1pPTkUJCTB4MDMKKyNkZWZpbmUgVkFMX1RYX1pPTkVfQ1RMM19UWF9a T05FXzZHQlBTCQkweDAwCisjZGVmaW5lIFZBTF9UWF9aT05FX0NUTDNfVFhfWk9ORV8zR0JQUwkJ MHgwMQorI2RlZmluZSBWQUxfVFhfWk9ORV9DVEwzX1RYX1pPTkVfMV81R0JQUwkweDAyCisKKy8q IEhEQ1AgUG9sbGluZyBDb250cm9sIGFuZCBTdGF0dXMsIGRlZmF1bHQgdmFsdWU6IDB4NzAgKi8K KyNkZWZpbmUgUkVHX0hEQ1AyWF9QT0xMX0NTCQkJMHgwMzkxCisKKyNkZWZpbmUgQklUX0hEQ1Ay WF9QT0xMX0NTX0hEQ1AyWF9NU0dfU1pfQ0xSX09QVElPTiBCSVQoNikKKyNkZWZpbmUgQklUX0hE Q1AyWF9QT0xMX0NTX0hEQ1AyWF9SUFRfUkVBRFlfQ0xSX09QVElPTiBCSVQoNSkKKyNkZWZpbmUg QklUX0hEQ1AyWF9QT0xMX0NTX0hEQ1AyWF9SRUFVVEhfUkVRX0NMUl9PUFRJT04gQklUKDQpCisj ZGVmaW5lIE1TS19IRENQMlhfUE9MTF9DU18JCQkweDBjCisjZGVmaW5lIEJJVF9IRENQMlhfUE9M TF9DU19IRENQMlhfRElTX1BPTExfR05UCUJJVCgxKQorI2RlZmluZSBCSVRfSERDUDJYX1BPTExf Q1NfSERDUDJYX0RJU19QT0xMX0VOCUJJVCgwKQorCisvKiBIRENQIEludGVycnVwdCAwLCBkZWZh dWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19IRENQMlhfSU5UUjAJCQkweDAzOTgKKwor LyogSERDUCBJbnRlcnJ1cHQgMCBNYXNrLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5l IFJFR19IRENQMlhfSU5UUjBfTUFTSwkJCTB4MDM5OQorCisvKiBIRENQIEdlbmVyYWwgQ29udHJv bCAwLCBkZWZhdWx0IHZhbHVlOiAweDAyICovCisjZGVmaW5lIFJFR19IRENQMlhfQ1RSTF8wCQkJ MHgwM2EwCisjZGVmaW5lIEJJVF9IRENQMlhfQ1RSTF8wX0hEQ1AyWF9FTkNSWVBUX0VOCUJJVCg3 KQorI2RlZmluZSBCSVRfSERDUDJYX0NUUkxfMF9IRENQMlhfUE9MSU5UX1NFTAlCSVQoNikKKyNk ZWZpbmUgQklUX0hEQ1AyWF9DVFJMXzBfSERDUDJYX1BPTElOVF9PVlIJQklUKDUpCisjZGVmaW5l IEJJVF9IRENQMlhfQ1RSTF8wX0hEQ1AyWF9QUkVDT01QVVRFCUJJVCg0KQorI2RlZmluZSBCSVRf SERDUDJYX0NUUkxfMF9IRENQMlhfSERNSU1PREUJQklUKDMpCisjZGVmaW5lIEJJVF9IRENQMlhf Q1RSTF8wX0hEQ1AyWF9SRVBFQVRFUglCSVQoMikKKyNkZWZpbmUgQklUX0hEQ1AyWF9DVFJMXzBf SERDUDJYX0hEQ1BUWAkJQklUKDEpCisjZGVmaW5lIEJJVF9IRENQMlhfQ1RSTF8wX0hEQ1AyWF9F TgkJQklUKDApCisKKy8qIEhEQ1AgR2VuZXJhbCBDb250cm9sIDEsIGRlZmF1bHQgdmFsdWU6IDB4 MDggKi8KKyNkZWZpbmUgUkVHX0hEQ1AyWF9DVFJMXzEJCQkweDAzYTEKKyNkZWZpbmUgTVNLX0hE Q1AyWF9DVFJMXzFfSERDUDJYX1JFQVVUSF9NU0tfM18wCTB4ZjAKKyNkZWZpbmUgQklUX0hEQ1Ay WF9DVFJMXzFfSERDUDJYX0hQRF9TVwkJQklUKDMpCisjZGVmaW5lIEJJVF9IRENQMlhfQ1RSTF8x X0hEQ1AyWF9IUERfT1ZSCUJJVCgyKQorI2RlZmluZSBCSVRfSERDUDJYX0NUUkxfMV9IRENQMlhf Q1RMM01TSwlCSVQoMSkKKyNkZWZpbmUgQklUX0hEQ1AyWF9DVFJMXzFfSERDUDJYX1JFQVVUSF9T VwlCSVQoMCkKKworLyogSERDUCBNaXNjIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8K KyNkZWZpbmUgUkVHX0hEQ1AyWF9NSVNDX0NUUkwJCQkweDAzYTUKKyNkZWZpbmUgQklUX0hEQ1Ay WF9NSVNDX0NUUkxfSERDUDJYX1JQVF9TTU5HX1hGRVJfU1RBUlQgQklUKDQpCisjZGVmaW5lIEJJ VF9IRENQMlhfTUlTQ19DVFJMX0hEQ1AyWF9SUFRfU01OR19XUl9TVEFSVCBCSVQoMykKKyNkZWZp bmUgQklUX0hEQ1AyWF9NSVNDX0NUUkxfSERDUDJYX1JQVF9TTU5HX1dSCUJJVCgyKQorI2RlZmlu ZSBCSVRfSERDUDJYX01JU0NfQ1RSTF9IRENQMlhfUlBUX1JDVklEX1JEX1NUQVJUIEJJVCgxKQor I2RlZmluZSBCSVRfSERDUDJYX01JU0NfQ1RSTF9IRENQMlhfUlBUX1JDVklEX1JECUJJVCgwKQor CisvKiBIRENQIFJQVCBTTU5HIEssIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVH X0hEQ1AyWF9SUFRfU01OR19LCQkJMHgwM2E2CisKKy8qIEhEQ1AgUlBUIFNNTkcgSW4sIGRlZmF1 bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0hEQ1AyWF9SUFRfU01OR19JTgkJCTB4MDNh NworCisvKiBIRENQIEF1dGggU3RhdHVzLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5l IFJFR19IRENQMlhfQVVUSF9TVEFUCQkJMHgwM2FhCisKKy8qIEhEQ1AgUlBUIFJDVklEIE91dCwg ZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfSERDUDJYX1JQVF9SQ1ZJRF9PVVQJ CTB4MDNhYworCisvKiBIRENQIFRQMSwgZGVmYXVsdCB2YWx1ZTogMHg2MiAqLworI2RlZmluZSBS RUdfSERDUDJYX1RQMQkJCQkweDAzYjQKKworLyogSERDUCBHUCBPdXQgMCwgZGVmYXVsdCB2YWx1 ZTogMHgwMCAqLworI2RlZmluZSBSRUdfSERDUDJYX0dQX09VVDAJCQkweDAzYzcKKworLyogSERD UCBSZXBlYXRlciBSQ1ZSIElEIDAsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVH X0hEQ1AyWF9SUFRfUkNWUl9JRDAJCQkweDAzZDEKKworLyogSERDUCBERENNIFN0YXR1cywgZGVm YXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfSERDUDJYX0REQ01fU1RTCQkJMHgwM2Q4 CisjZGVmaW5lIE1TS19IRENQMlhfRERDTV9TVFNfSERDUDJYX0REQ01fRVJSX1NUU18zXzAgMHhm MAorI2RlZmluZSBNU0tfSERDUDJYX0REQ01fU1RTX0hEQ1AyWF9ERENNX0NUTF9DU18zXzAgMHgw ZgorCisvKiBIRE1JMk1ITDMgQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHgwYSAqLworI2RlZmlu ZSBSRUdfTTNfQ1RSTAkJCQkweDAzZTAKKyNkZWZpbmUgQklUX00zX0NUUkxfSDJNX1NXUlNUCQkJ QklUKDQpCisjZGVmaW5lIEJJVF9NM19DVFJMX1NXX01ITDNfU0VMCQkJQklUKDMpCisjZGVmaW5l IEJJVF9NM19DVFJMX00zQVZfRU4JCQlCSVQoMikKKyNkZWZpbmUgQklUX00zX0NUUkxfRU5DX1RN RFMJCQlCSVQoMSkKKyNkZWZpbmUgQklUX00zX0NUUkxfTUhMM19NQVNURVJfRU4JCUJJVCgwKQor CisjZGVmaW5lIFZBTF9NM19DVFJMX01ITDFfMl9WQUxVRSAoQklUX00zX0NUUkxfU1dfTUhMM19T RUwgXAorCQkJCSAgfCBCSVRfTTNfQ1RSTF9FTkNfVE1EUykKKyNkZWZpbmUgVkFMX00zX0NUUkxf TUhMM19WQUxVRSAoQklUX00zX0NUUkxfU1dfTUhMM19TRUwgXAorCQkJCXwgQklUX00zX0NUUkxf TTNBVl9FTiBcCisJCQkJfCBCSVRfTTNfQ1RSTF9FTkNfVE1EUyBcCisJCQkJfCBCSVRfTTNfQ1RS TF9NSEwzX01BU1RFUl9FTikKKworLyogSERNSTJNSEwzIFBvcnQwIENvbnRyb2wsIGRlZmF1bHQg dmFsdWU6IDB4MDQgKi8KKyNkZWZpbmUgUkVHX00zX1AwQ1RSTAkJCQkweDAzZTEKKyNkZWZpbmUg QklUX00zX1AwQ1RSTF9NSEwzX1AwX0hEQ1BfRU5DX0VOCUJJVCg0KQorI2RlZmluZSBCSVRfTTNf UDBDVFJMX01ITDNfUDBfVU5MSU1JVF9FTglCSVQoMykKKyNkZWZpbmUgQklUX00zX1AwQ1RSTF9N SEwzX1AwX0hEQ1BfRU4JCUJJVCgyKQorI2RlZmluZSBCSVRfTTNfUDBDVFJMX01ITDNfUDBfUElY RUxfTU9ERV9QQUNLRUQJQklUKDEpCisjZGVmaW5lIEJJVF9NM19QMENUUkxfTUhMM19QMF9QT1JU X0VOCQlCSVQoMCkKKworI2RlZmluZSBSRUdfTTNfUE9TVE0JCQkJMHgwM2UyCisjZGVmaW5lIE1T S19NM19QT1NUTV9SUlBfREVDT0RFCQkJMHhmOAorI2RlZmluZSBNU0tfTTNfUE9TVE1fTUhMM19Q MF9TVE1fSUQJCTB4MDcKKworLyogSERNSTJNSEwzIFNjcmFtYmxlIENvbnRyb2wsIGRlZmF1bHQg dmFsdWU6IDB4NDEgKi8KKyNkZWZpbmUgUkVHX00zX1NDVFJMCQkJCTB4MDNlNgorI2RlZmluZSBN U0tfTTNfU0NUUkxfTUhMM19TUl9MRU5HVEgJCTB4ZjAKKyNkZWZpbmUgQklUX00zX1NDVFJMX01I TDNfU0NSQU1CTEVSX0VOCQlCSVQoMCkKKworLyogSFNJQyBEaXYgQ3RsLCBkZWZhdWx0IHZhbHVl OiAweDA1ICovCisjZGVmaW5lIFJFR19ESVZfQ1RMX01BSU4JCQkweDAzZjIKKyNkZWZpbmUgTVNL X0RJVl9DVExfTUFJTl9QUkVfRElWX0NUTF9NQUlOCTB4MWMKKyNkZWZpbmUgTVNLX0RJVl9DVExf TUFJTl9GQl9ESVZfQ1RMX01BSU4JMHgwMworCisvKiBNSEwgQ2FwYWJpbGl0eSAxc3QgQnl0ZSwg ZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfTUhMX0RFVkNBUF8wCQkJMHgwNDAw CisKKy8qIE1ITCBJbnRlcnJ1cHQgMXN0IEJ5dGUsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNk ZWZpbmUgUkVHX01ITF9JTlRfMAkJCQkweDA0MjAKKworLyogRGV2aWNlIFN0YXR1cyAxc3QgYnl0 ZSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfTUhMX1NUQVRfMAkJCQkweDA0 MzAKKworLyogQ0JVUyBTY3JhdGNoIFBhZCAxc3QgQnl0ZSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAq LworI2RlZmluZSBSRUdfTUhMX1NDUlBBRF8wCQkJMHgwNDQwCisKKy8qIE1ITCBFeHRlbmRlZCBD YXBhYmlsaXR5IDFzdCBCeXRlLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19N SExfRVhUREVWQ0FQXzAJCQkweDA0ODAKKworLyogRGV2aWNlIEV4dGVuZGVkIFN0YXR1cyAxc3Qg Ynl0ZSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfTUhMX0VYVFNUQVRfMAkJ CTB4MDQ5MAorCisvKiBUUEkgRFREIEJ5dGUyLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVm aW5lIFJFR19UUElfRFREX0IyCQkJCTB4MDYwMgorCisjZGVmaW5lIFZBTF9UUElfUVVBTl9SQU5H RV9MSU1JVEVECQkweDAxCisjZGVmaW5lIFZBTF9UUElfUVVBTl9SQU5HRV9GVUxMCQkJMHgwMgor I2RlZmluZSBWQUxfVFBJX0ZPUk1BVF9SR0IJCQkweDAwCisjZGVmaW5lIFZBTF9UUElfRk9STUFU X1lDQkNSNDQ0CQkJMHgwMQorI2RlZmluZSBWQUxfVFBJX0ZPUk1BVF9ZQ0JDUjQyMgkJCTB4MDIK KyNkZWZpbmUgVkFMX1RQSV9GT1JNQVRfSU5URVJOQUxfUkdCCQkweDAzCisjZGVmaW5lIFZBTF9U UElfRk9STUFUKF9mbXQsIF9xcikgXAorCQkoVkFMX1RQSV9GT1JNQVRfIyNfZm10IHwgKFZBTF9U UElfUVVBTl9SQU5HRV8jI19xciA8PCAyKSkKKworLyogSW5wdXQgRm9ybWF0LCBkZWZhdWx0IHZh bHVlOiAweDAwICovCisjZGVmaW5lIFJFR19UUElfSU5QVVQJCQkJMHgwNjA5CisjZGVmaW5lIEJJ VF9UUElfSU5QVVRfRVhURU5ERURCSVRNT0RFCQlCSVQoNykKKyNkZWZpbmUgQklUX1RQSV9JTlBV VF9FTkRJVEhFUgkJCUJJVCg2KQorI2RlZmluZSBNU0tfVFBJX0lOUFVUX0lOUFVUX1FVQU5fUkFO R0UJCTB4MGMKKyNkZWZpbmUgTVNLX1RQSV9JTlBVVF9JTlBVVF9GT1JNQVQJCTB4MDMKKworLyog T3V0cHV0IEZvcm1hdCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVFBJX09V VFBVVAkJCQkweDA2MGEKKyNkZWZpbmUgQklUX1RQSV9PVVRQVVRfQ1NDTU9ERTcwOQkJQklUKDQp CisjZGVmaW5lIE1TS19UUElfT1VUUFVUX09VVFBVVF9RVUFOX1JBTkdFCTB4MGMKKyNkZWZpbmUg TVNLX1RQSV9PVVRQVVRfT1VUUFVUX0ZPUk1BVAkJMHgwMworCisvKiBUUEkgQVZJIENoZWNrIFN1 bSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVFBJX0FWSV9DSFNVTQkJCTB4 MDYwYworCisvKiBUUEkgU3lzdGVtIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNk ZWZpbmUgUkVHX1RQSV9TQwkJCQkweDA2MWEKKyNkZWZpbmUgQklUX1RQSV9TQ19UUElfVVBEQVRF X0ZMRwkJQklUKDcpCisjZGVmaW5lIEJJVF9UUElfU0NfVFBJX1JFQVVUSF9DVEwJCUJJVCg2KQor I2RlZmluZSBCSVRfVFBJX1NDX1RQSV9PVVRQVVRfTU9ERV8xCQlCSVQoNSkKKyNkZWZpbmUgQklU X1RQSV9TQ19SRUdfVE1EU19PRV9QT1dFUl9ET1dOCUJJVCg0KQorI2RlZmluZSBCSVRfVFBJX1ND X1RQSV9BVl9NVVRFCQkJQklUKDMpCisjZGVmaW5lIEJJVF9UUElfU0NfRERDX0dQVV9SRVFVRVNU CQlCSVQoMikKKyNkZWZpbmUgQklUX1RQSV9TQ19ERENfVFBJX1NXCQkJQklUKDEpCisjZGVmaW5l IEJJVF9UUElfU0NfVFBJX09VVFBVVF9NT0RFXzBfSERNSQlCSVQoMCkKKworLyogVFBJIENPUFAg UXVlcnkgRGF0YSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVFBJX0NPUFBf REFUQTEJCQkweDA2MjkKKyNkZWZpbmUgQklUX1RQSV9DT1BQX0RBVEExX0NPUFBfR1BST1QJCUJJ VCg3KQorI2RlZmluZSBCSVRfVFBJX0NPUFBfREFUQTFfQ09QUF9MUFJPVAkJQklUKDYpCisjZGVm aW5lIE1TS19UUElfQ09QUF9EQVRBMV9DT1BQX0xJTktfU1RBVFVTCTB4MzAKKyNkZWZpbmUgVkFM X1RQSV9DT1BQX0xJTktfU1RBVFVTX05PUk1BTAkJMHgwMAorI2RlZmluZSBWQUxfVFBJX0NPUFBf TElOS19TVEFUVVNfTElOS19MT1NUCTB4MTAKKyNkZWZpbmUgVkFMX1RQSV9DT1BQX0xJTktfU1RB VFVTX1JFTkVHT1RJQVRJT05fUkVRIDB4MjAKKyNkZWZpbmUgVkFMX1RQSV9DT1BQX0xJTktfU1RB VFVTX0xJTktfU1VTUEVOREVECTB4MzAKKyNkZWZpbmUgQklUX1RQSV9DT1BQX0RBVEExX0NPUFBf SERDUF9SRVAJQklUKDMpCisjZGVmaW5lIEJJVF9UUElfQ09QUF9EQVRBMV9DT1BQX0NPTk5UWVBF XzAJQklUKDIpCisjZGVmaW5lIEJJVF9UUElfQ09QUF9EQVRBMV9DT1BQX1BST1RZUEUJCUJJVCgx KQorI2RlZmluZSBCSVRfVFBJX0NPUFBfREFUQTFfQ09QUF9DT05OVFlQRV8xCUJJVCgwKQorCisv KiBUUEkgQ09QUCBDb250cm9sIERhdGEsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUg UkVHX1RQSV9DT1BQX0RBVEEyCQkJMHgwNjJhCisjZGVmaW5lIEJJVF9UUElfQ09QUF9EQVRBMl9J TlRSX0VOQ1JZUFRJT04JQklUKDUpCisjZGVmaW5lIEJJVF9UUElfQ09QUF9EQVRBMl9LU1ZfRk9S V0FSRAkJQklUKDQpCisjZGVmaW5lIEJJVF9UUElfQ09QUF9EQVRBMl9JTlRFUk1fUklfQ0hFQ0tf RU4JQklUKDMpCisjZGVmaW5lIEJJVF9UUElfQ09QUF9EQVRBMl9ET1VCTEVfUklfQ0hFQ0sJQklU KDIpCisjZGVmaW5lIEJJVF9UUElfQ09QUF9EQVRBMl9ERENfU0hPUlRfUklfUkQJQklUKDEpCisj ZGVmaW5lIEJJVF9UUElfQ09QUF9EQVRBMl9DT1BQX1BST1RMRVZFTAlCSVQoMCkKKworLyogVFBJ IEludGVycnVwdCBFbmFibGUsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RQ SV9JTlRSX0VOCQkJCTB4MDYzYworCisvKiBUUEkgSW50ZXJydXB0IFN0YXR1cyBMb3cgQnl0ZSwg ZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVFBJX0lOVFJfU1QwCQkJMHgwNjNk CisjZGVmaW5lIEJJVF9UUElfSU5UUl9TVDBfVFBJX0FVVEhfQ0hOR0VfU1RBVAlCSVQoNykKKyNk ZWZpbmUgQklUX1RQSV9JTlRSX1NUMF9UUElfVl9SRFlfU1RBVAkJQklUKDYpCisjZGVmaW5lIEJJ VF9UUElfSU5UUl9TVDBfVFBJX0NPUFBfQ0hOR0VfU1RBVAlCSVQoNSkKKyNkZWZpbmUgQklUX1RQ SV9JTlRSX1NUMF9LU1ZfRklGT19GSVJTVF9TVEFUCUJJVCgzKQorI2RlZmluZSBCSVRfVFBJX0lO VFJfU1QwX1JFQURfQktTVl9CQ0FQU19ET05FX1NUQVQgQklUKDIpCisjZGVmaW5lIEJJVF9UUElf SU5UUl9TVDBfUkVBRF9CS1NWX0JDQVBTX0VSUl9TVEFUIEJJVCgxKQorI2RlZmluZSBCSVRfVFBJ X0lOVFJfU1QwX1JFQURfQktTVl9FUlJfU1RBVAlCSVQoMCkKKworLyogVFBJIERTIEJDQVBTIFN0 YXR1cywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVFBJX0RTX0JDQVBTCQkJ MHgwNjQ0CisKKy8qIFRQSSBCU3RhdHVzMSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmlu ZSBSRUdfVFBJX0JTVEFUVVMxCQkJMHgwNjQ1CisjZGVmaW5lIEJJVF9UUElfQlNUQVRVUzFfRFNf REVWX0VYQ0VFRAkJQklUKDcpCisjZGVmaW5lIE1TS19UUElfQlNUQVRVUzFfRFNfREVWX0NOVAkJ MHg3ZgorCisvKiBUUEkgQlN0YXR1czIsIGRlZmF1bHQgdmFsdWU6IDB4MTAgKi8KKyNkZWZpbmUg UkVHX1RQSV9CU1RBVFVTMgkJCTB4MDY0NgorI2RlZmluZSBNU0tfVFBJX0JTVEFUVVMyX0RTX0JT VEFUVVMJCTB4ZTAKKyNkZWZpbmUgQklUX1RQSV9CU1RBVFVTMl9EU19IRE1JX01PREUJCUJJVCg0 KQorI2RlZmluZSBCSVRfVFBJX0JTVEFUVVMyX0RTX0NBU0NfRVhDRUVECQlCSVQoMykKKyNkZWZp bmUgTVNLX1RQSV9CU1RBVFVTMl9EU19ERVBUSAkJMHgwNworCisvKiBUUEkgSFcgT3B0aW1pemF0 aW9uIENvbnRyb2wgIzMsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RQSV9I V19PUFQzCQkJCTB4MDZiYgorI2RlZmluZSBCSVRfVFBJX0hXX09QVDNfRERDX0RFQlVHCQlCSVQo NykKKyNkZWZpbmUgQklUX1RQSV9IV19PUFQzX1JJX0NIRUNLX1NLSVAJCUJJVCgzKQorI2RlZmlu ZSBCSVRfVFBJX0hXX09QVDNfVFBJX0REQ19CVVJTVF9NT0RFCUJJVCgyKQorI2RlZmluZSBNU0tf VFBJX0hXX09QVDNfVFBJX0REQ19SRVFfTEVWRUwJMHgwMworCisvKiBUUEkgSW5mbyBGcmFtZSBT ZWxlY3QsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RQSV9JTkZPX0ZTRUwJ CQkweDA2YmYKKyNkZWZpbmUgQklUX1RQSV9JTkZPX0ZTRUxfVFBJX0lORk9fRU4JCUJJVCg3KQor I2RlZmluZSBCSVRfVFBJX0lORk9fRlNFTF9UUElfSU5GT19SUFQJCUJJVCg2KQorI2RlZmluZSBC SVRfVFBJX0lORk9fRlNFTF9UUElfSU5GT19SRUFEX0ZMQUcJQklUKDUpCisjZGVmaW5lIE1TS19U UElfSU5GT19GU0VMX1RQSV9JTkZPX1NFTAkJMHgwNworCisvKiBUUEkgSW5mbyBCeXRlICMwLCBk ZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19UUElfSU5GT19CMAkJCQkweDA2YzAK KworLyogQ29DIFN0YXR1cywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQ09D X1NUQVRfMAkJCQkweDA3MDAKKyNkZWZpbmUgUkVHX0NPQ19TVEFUXzEJCQkJMHgwNzAxCisjZGVm aW5lIFJFR19DT0NfU1RBVF8yCQkJCTB4MDcwMgorI2RlZmluZSBSRUdfQ09DX1NUQVRfMwkJCQkw eDA3MDMKKyNkZWZpbmUgUkVHX0NPQ19TVEFUXzQJCQkJMHgwNzA0CisjZGVmaW5lIFJFR19DT0Nf U1RBVF81CQkJCTB4MDcwNQorCisvKiBDb0MgMXN0IEN0bCwgZGVmYXVsdCB2YWx1ZTogMHg0MCAq LworI2RlZmluZSBSRUdfQ09DX0NUTDAJCQkJMHgwNzEwCisKKy8qIENvQyAybmQgQ3RsLCBkZWZh dWx0IHZhbHVlOiAweDBhICovCisjZGVmaW5lIFJFR19DT0NfQ1RMMQkJCQkweDA3MTEKKyNkZWZp bmUgTVNLX0NPQ19DVEwxX0NPQ19DVFJMMV83XzYJCTB4YzAKKyNkZWZpbmUgTVNLX0NPQ19DVEwx X0NPQ19DVFJMMV81XzAJCTB4M2YKKworLyogQ29DIDNyZCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4 MTQgKi8KKyNkZWZpbmUgUkVHX0NPQ19DVEwyCQkJCTB4MDcxMgorI2RlZmluZSBNU0tfQ09DX0NU TDJfQ09DX0NUUkwyXzdfNgkJMHhjMAorI2RlZmluZSBNU0tfQ09DX0NUTDJfQ09DX0NUUkwyXzVf MAkJMHgzZgorCisvKiBDb0MgNHRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHg0MCAqLworI2RlZmlu ZSBSRUdfQ09DX0NUTDMJCQkJMHgwNzEzCisjZGVmaW5lIEJJVF9DT0NfQ1RMM19DT0NfQ1RSTDNf NwkJQklUKDcpCisjZGVmaW5lIE1TS19DT0NfQ1RMM19DT0NfQ1RSTDNfNl8wCQkweDdmCisKKy8q IENvQyA3dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19DT0NfQ1RM NgkJCQkweDA3MTYKKyNkZWZpbmUgQklUX0NPQ19DVEw2X0NPQ19DVFJMNl83CQlCSVQoNykKKyNk ZWZpbmUgQklUX0NPQ19DVEw2X0NPQ19DVFJMNl82CQlCSVQoNikKKyNkZWZpbmUgTVNLX0NPQ19D VEw2X0NPQ19DVFJMNl81XzAJCTB4M2YKKworLyogQ29DIDh0aCBDdGwsIGRlZmF1bHQgdmFsdWU6 IDB4MDYgKi8KKyNkZWZpbmUgUkVHX0NPQ19DVEw3CQkJCTB4MDcxNworI2RlZmluZSBCSVRfQ09D X0NUTDdfQ09DX0NUUkw3XzcJCUJJVCg3KQorI2RlZmluZSBCSVRfQ09DX0NUTDdfQ09DX0NUUkw3 XzYJCUJJVCg2KQorI2RlZmluZSBCSVRfQ09DX0NUTDdfQ09DX0NUUkw3XzUJCUJJVCg1KQorI2Rl ZmluZSBNU0tfQ09DX0NUTDdfQ09DX0NUUkw3XzRfMwkJMHgxOAorI2RlZmluZSBNU0tfQ09DX0NU TDdfQ09DX0NUUkw3XzJfMAkJMHgwNworCisvKiBDb0MgMTB0aCBDdGwsIGRlZmF1bHQgdmFsdWU6 IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NPQ19DVEw5CQkJCTB4MDcxOQorCisvKiBDb0MgMTF0aCBD dGwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NPQ19DVExBCQkJCTB4MDcx YQorCisvKiBDb0MgMTJ0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVH X0NPQ19DVExCCQkJCTB4MDcxYgorCisvKiBDb0MgMTN0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4 MGYgKi8KKyNkZWZpbmUgUkVHX0NPQ19DVExDCQkJCTB4MDcxYworCisvKiBDb0MgMTR0aCBDdGws IGRlZmF1bHQgdmFsdWU6IDB4MGEgKi8KKyNkZWZpbmUgUkVHX0NPQ19DVExECQkJCTB4MDcxZAor I2RlZmluZSBCSVRfQ09DX0NUTERfQ09DX0NUUkxEXzcJCUJJVCg3KQorI2RlZmluZSBNU0tfQ09D X0NUTERfQ09DX0NUUkxEXzZfMAkJMHg3ZgorCisvKiBDb0MgMTV0aCBDdGwsIGRlZmF1bHQgdmFs dWU6IDB4MGEgKi8KKyNkZWZpbmUgUkVHX0NPQ19DVExFCQkJCTB4MDcxZQorI2RlZmluZSBCSVRf Q09DX0NUTEVfQ09DX0NUUkxFXzcJCUJJVCg3KQorI2RlZmluZSBNU0tfQ09DX0NUTEVfQ09DX0NU UkxFXzZfMAkJMHg3ZgorCisvKiBDb0MgMTZ0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8K KyNkZWZpbmUgUkVHX0NPQ19DVExGCQkJCTB4MDcxZgorI2RlZmluZSBNU0tfQ09DX0NUTEZfQ09D X0NUUkxGXzdfMwkJMHhmOAorI2RlZmluZSBNU0tfQ09DX0NUTEZfQ09DX0NUUkxGXzJfMAkJMHgw NworCisvKiBDb0MgMTh0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MzIgKi8KKyNkZWZpbmUgUkVH X0NPQ19DVEwxMQkJCQkweDA3MjEKKyNkZWZpbmUgTVNLX0NPQ19DVEwxMV9DT0NfQ1RSTDExXzdf NAkJMHhmMAorI2RlZmluZSBNU0tfQ09DX0NUTDExX0NPQ19DVFJMMTFfM18wCQkweDBmCisKKy8q IENvQyAyMXN0IEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQ09DX0NU TDE0CQkJCTB4MDcyNAorI2RlZmluZSBNU0tfQ09DX0NUTDE0X0NPQ19DVFJMMTRfN180CQkweGYw CisjZGVmaW5lIE1TS19DT0NfQ1RMMTRfQ09DX0NUUkwxNF8zXzAJCTB4MGYKKworLyogQ29DIDIy bmQgQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19DT0NfQ1RMMTUJCQkJ MHgwNzI1CisjZGVmaW5lIEJJVF9DT0NfQ1RMMTVfQ09DX0NUUkwxNV83CQlCSVQoNykKKyNkZWZp bmUgTVNLX0NPQ19DVEwxNV9DT0NfQ1RSTDE1XzZfNAkJMHg3MAorI2RlZmluZSBNU0tfQ09DX0NU TDE1X0NPQ19DVFJMMTVfM18wCQkweDBmCisKKy8qIENvQyBJbnRlcnJ1cHQsIGRlZmF1bHQgdmFs dWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NPQ19JTlRSCQkJCTB4MDcyNgorCisvKiBDb0MgSW50 ZXJydXB0IE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NPQ19JTlRS X01BU0sJCQkweDA3MjcKKyNkZWZpbmUgQklUX0NPQ19QTExfTE9DS19TVEFUVVNfQ0hBTkdFCQlC SVQoMCkKKyNkZWZpbmUgQklUX0NPQ19DQUxJQlJBVElPTl9ET05FCQlCSVQoMSkKKworLyogQ29D IE1pc2MgQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19DT0NfTUlTQ19D VEwwCQkJMHgwNzI4CisjZGVmaW5lIEJJVF9DT0NfTUlTQ19DVEwwX0ZTTV9NT04JCUJJVCg3KQor CisvKiBDb0MgMjR0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NP Q19DVEwxNwkJCQkweDA3MmEKKyNkZWZpbmUgTVNLX0NPQ19DVEwxN19DT0NfQ1RSTDE3XzdfNAkJ MHhmMAorI2RlZmluZSBNU0tfQ09DX0NUTDE3X0NPQ19DVFJMMTdfM18wCQkweDBmCisKKy8qIENv QyAyNXRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQ09DX0NUTDE4 CQkJCTB4MDcyYgorI2RlZmluZSBNU0tfQ09DX0NUTDE4X0NPQ19DVFJMMThfN180CQkweGYwCisj ZGVmaW5lIE1TS19DT0NfQ1RMMThfQ09DX0NUUkwxOF8zXzAJCTB4MGYKKworLyogQ29DIDI2dGgg Q3RsLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19DT0NfQ1RMMTkJCQkJMHgw NzJjCisjZGVmaW5lIE1TS19DT0NfQ1RMMTlfQ09DX0NUUkwxOV83XzQJCTB4ZjAKKyNkZWZpbmUg TVNLX0NPQ19DVEwxOV9DT0NfQ1RSTDE5XzNfMAkJMHgwZgorCisvKiBDb0MgMjd0aCBDdGwsIGRl ZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NPQ19DVEwxQQkJCQkweDA3MmQKKyNk ZWZpbmUgTVNLX0NPQ19DVEwxQV9DT0NfQ1RSTDFBXzdfMgkJMHhmYworI2RlZmluZSBNU0tfQ09D X0NUTDFBX0NPQ19DVFJMMUFfMV8wCQkweDAzCisKKy8qIERvQyA5dGggU3RhdHVzLCBkZWZhdWx0 IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19ET0NfU1RBVF84CQkJCTB4MDc0MAorCisvKiBE b0MgMTB0aCBTdGF0dXMsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0RPQ19T VEFUXzkJCQkJMHgwNzQxCisKKy8qIERvQyA1dGggQ0ZHLCBkZWZhdWx0IHZhbHVlOiAweDAwICov CisjZGVmaW5lIFJFR19ET0NfQ0ZHNAkJCQkweDA3NGUKKyNkZWZpbmUgTVNLX0RPQ19DRkc0X0RC R19TVEFURV9ET0NfRlNNCQkweDBmCisKKy8qIERvQyAxc3QgQ3RsLCBkZWZhdWx0IHZhbHVlOiAw eDQwICovCisjZGVmaW5lIFJFR19ET0NfQ1RMMAkJCQkweDA3NTEKKworLyogRG9DIDd0aCBDdGws IGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0RPQ19DVEw2CQkJCTB4MDc1Nwor I2RlZmluZSBCSVRfRE9DX0NUTDZfRE9DX0NUUkw2XzcJCUJJVCg3KQorI2RlZmluZSBCSVRfRE9D X0NUTDZfRE9DX0NUUkw2XzYJCUJJVCg2KQorI2RlZmluZSBNU0tfRE9DX0NUTDZfRE9DX0NUUkw2 XzVfNAkJMHgzMAorI2RlZmluZSBNU0tfRE9DX0NUTDZfRE9DX0NUUkw2XzNfMAkJMHgwZgorCisv KiBEb0MgOHRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRE9DX0NU TDcJCQkJMHgwNzU4CisjZGVmaW5lIEJJVF9ET0NfQ1RMN19ET0NfQ1RSTDdfNwkJQklUKDcpCisj ZGVmaW5lIEJJVF9ET0NfQ1RMN19ET0NfQ1RSTDdfNgkJQklUKDYpCisjZGVmaW5lIEJJVF9ET0Nf Q1RMN19ET0NfQ1RSTDdfNQkJQklUKDUpCisjZGVmaW5lIE1TS19ET0NfQ1RMN19ET0NfQ1RSTDdf NF8zCQkweDE4CisjZGVmaW5lIE1TS19ET0NfQ1RMN19ET0NfQ1RSTDdfMl8wCQkweDA3CisKKy8q IERvQyA5dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19ET0NfQ1RM OAkJCQkweDA3NmMKKyNkZWZpbmUgQklUX0RPQ19DVEw4X0RPQ19DVFJMOF83CQlCSVQoNykKKyNk ZWZpbmUgTVNLX0RPQ19DVEw4X0RPQ19DVFJMOF82XzQJCTB4NzAKKyNkZWZpbmUgTVNLX0RPQ19D VEw4X0RPQ19DVFJMOF8zXzIJCTB4MGMKKyNkZWZpbmUgTVNLX0RPQ19DVEw4X0RPQ19DVFJMOF8x XzAJCTB4MDMKKworLyogRG9DIDEwdGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVm aW5lIFJFR19ET0NfQ1RMOQkJCQkweDA3NmQKKworLyogRG9DIDExdGggQ3RsLCBkZWZhdWx0IHZh bHVlOiAweDAwICovCisjZGVmaW5lIFJFR19ET0NfQ1RMQQkJCQkweDA3NmUKKworLyogRG9DIDE1 dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19ET0NfQ1RMRQkJCQkw eDA3NzIKKyNkZWZpbmUgQklUX0RPQ19DVExFX0RPQ19DVFJMRV83CQlCSVQoNykKKyNkZWZpbmUg QklUX0RPQ19DVExFX0RPQ19DVFJMRV82CQlCSVQoNikKKyNkZWZpbmUgTVNLX0RPQ19DVExFX0RP Q19DVFJMRV81XzQJCTB4MzAKKyNkZWZpbmUgTVNLX0RPQ19DVExFX0RPQ19DVFJMRV8zXzAJCTB4 MGYKKworLyogSW50ZXJydXB0IE1hc2sgMXN0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVm aW5lIFJFR19NSExfSU5UXzBfTUFTSwkJCTB4MDU4MAorCisvKiBJbnRlcnJ1cHQgTWFzayAybmQs IGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX01ITF9JTlRfMV9NQVNLCQkJMHgw NTgxCisKKy8qIEludGVycnVwdCBNYXNrIDNyZCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2Rl ZmluZSBSRUdfTUhMX0lOVF8yX01BU0sJCQkweDA1ODIKKworLyogSW50ZXJydXB0IE1hc2sgNHRo LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19NSExfSU5UXzNfTUFTSwkJCTB4 MDU4MworCisvKiBNRFQgUmVjZWl2ZSBUaW1lIE91dCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwor I2RlZmluZSBSRUdfTURUX1JDVl9USU1FT1VUCQkJMHgwNTg0CisKKy8qIE1EVCBUcmFuc21pdCBU aW1lIE91dCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfTURUX1hNSVRfVElN RU9VVAkJCTB4MDU4NQorCisvKiBNRFQgUmVjZWl2ZSBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAw eDAwICovCisjZGVmaW5lIFJFR19NRFRfUkNWX0NUUkwJCQkweDA1ODYKKyNkZWZpbmUgQklUX01E VF9SQ1ZfQ1RSTF9NRFRfUkNWX0VOCQlCSVQoNykKKyNkZWZpbmUgQklUX01EVF9SQ1ZfQ1RSTF9N RFRfREVMQVlfUkNWX0VOCUJJVCg2KQorI2RlZmluZSBCSVRfTURUX1JDVl9DVFJMX01EVF9SRklG T19PVkVSX1dSX0VOCUJJVCg0KQorI2RlZmluZSBCSVRfTURUX1JDVl9DVFJMX01EVF9YRklGT19P VkVSX1dSX0VOCUJJVCgzKQorI2RlZmluZSBCSVRfTURUX1JDVl9DVFJMX01EVF9ESVNBQkxFCQlC SVQoMikKKyNkZWZpbmUgQklUX01EVF9SQ1ZfQ1RSTF9NRFRfUkZJRk9fQ0xSX0FMTAlCSVQoMSkK KyNkZWZpbmUgQklUX01EVF9SQ1ZfQ1RSTF9NRFRfUkZJRk9fQ0xSX0NVUglCSVQoMCkKKworLyog TURUIFJlY2VpdmUgUmVhZCBQb3J0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJF R19NRFRfUkNWX1JFQURfUE9SVAkJCTB4MDU4NworCisvKiBNRFQgVHJhbnNtaXQgQ29udHJvbCwg ZGVmYXVsdCB2YWx1ZTogMHg3MCAqLworI2RlZmluZSBSRUdfTURUX1hNSVRfQ1RSTAkJCTB4MDU4 OAorI2RlZmluZSBCSVRfTURUX1hNSVRfQ1RSTF9NRFRfWE1JVF9FTgkJQklUKDcpCisjZGVmaW5l IEJJVF9NRFRfWE1JVF9DVFJMX01EVF9YTUlUX0NNRF9NRVJHRV9FTglCSVQoNikKKyNkZWZpbmUg QklUX01EVF9YTUlUX0NUUkxfTURUX1hNSVRfRklYRURfQlVSU1RfTEVOIEJJVCg1KQorI2RlZmlu ZSBCSVRfTURUX1hNSVRfQ1RSTF9NRFRfWE1JVF9GSVhFRF9BSUQJQklUKDQpCisjZGVmaW5lIEJJ VF9NRFRfWE1JVF9DVFJMX01EVF9YTUlUX1NJTkdMRV9SVU5fRU4gQklUKDMpCisjZGVmaW5lIEJJ VF9NRFRfWE1JVF9DVFJMX01EVF9DTFJfQUJPUlRfV0FJVAlCSVQoMikKKyNkZWZpbmUgQklUX01E VF9YTUlUX0NUUkxfTURUX1hGSUZPX0NMUl9BTEwJQklUKDEpCisjZGVmaW5lIEJJVF9NRFRfWE1J VF9DVFJMX01EVF9YRklGT19DTFJfQ1VSCUJJVCgwKQorCisvKiBNRFQgUmVjZWl2ZSBXUklURSBQ b3J0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19NRFRfWE1JVF9XUklURV9Q T1JUCQkJMHgwNTg5CisKKy8qIE1EVCBSRklGTyBTdGF0dXMsIGRlZmF1bHQgdmFsdWU6IDB4MDAg Ki8KKyNkZWZpbmUgUkVHX01EVF9SRklGT19TVEFUCQkJMHgwNThhCisjZGVmaW5lIE1TS19NRFRf UkZJRk9fU1RBVF9NRFRfUkZJRk9fQ05UCTB4ZTAKKyNkZWZpbmUgTVNLX01EVF9SRklGT19TVEFU X01EVF9SRklGT19DVVJfQllURV9DTlQgMHgxZgorCisvKiBNRFQgWEZJRk8gU3RhdHVzLCBkZWZh dWx0IHZhbHVlOiAweDgwICovCisjZGVmaW5lIFJFR19NRFRfWEZJRk9fU1RBVAkJCTB4MDU4Ygor I2RlZmluZSBNU0tfTURUX1hGSUZPX1NUQVRfTURUX1hGSUZPX0xFVkVMX0FWQUlMIDB4ZTAKKyNk ZWZpbmUgQklUX01EVF9YRklGT19TVEFUX01EVF9YTUlUX1BSRV9IU19FTglCSVQoNCkKKyNkZWZp bmUgTVNLX01EVF9YRklGT19TVEFUX01EVF9XUklURV9CVVJTVF9MRU4JMHgwZgorCisvKiBNRFQg SW50ZXJydXB0IDAsIGRlZmF1bHQgdmFsdWU6IDB4MGMgKi8KKyNkZWZpbmUgUkVHX01EVF9JTlRf MAkJCQkweDA1OGMKKyNkZWZpbmUgQklUX01EVF9SRklGT19EQVRBX1JEWQkJCUJJVCgwKQorI2Rl ZmluZSBCSVRfTURUX0lETEVfQUZURVJfSEFXQl9ESVNBQkxFCQlCSVQoMikKKyNkZWZpbmUgQklU X01EVF9YRklGT19FTVBUWQkJCUJJVCgzKQorCisvKiBNRFQgSW50ZXJydXB0IDAgTWFzaywgZGVm YXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfTURUX0lOVF8wX01BU0sJCQkweDA1OGQK KworLyogTURUIEludGVycnVwdCAxLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJF R19NRFRfSU5UXzEJCQkJMHgwNThlCisjZGVmaW5lIEJJVF9NRFRfUkNWX1RJTUVPVVQJCQlCSVQo MCkKKyNkZWZpbmUgQklUX01EVF9SQ1ZfU01fQUJPUlRfUEtUX1JDVkQJCUJJVCgxKQorI2RlZmlu ZSBCSVRfTURUX1JDVl9TTV9FUlJPUgkJCUJJVCgyKQorI2RlZmluZSBCSVRfTURUX1hNSVRfVElN RU9VVAkJCUJJVCg1KQorI2RlZmluZSBCSVRfTURUX1hNSVRfU01fQUJPUlRfUEtUX1JDVkQJCUJJ VCg2KQorI2RlZmluZSBCSVRfTURUX1hNSVRfU01fRVJST1IJCQlCSVQoNykKKworLyogTURUIElu dGVycnVwdCAxIE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX01EVF9J TlRfMV9NQVNLCQkJMHgwNThmCisKKy8qIENCVVMgVmVuZG9yIElELCBkZWZhdWx0IHZhbHVlOiAw eDAxICovCisjZGVmaW5lIFJFR19DQlVTX1ZFTkRPUl9JRAkJCTB4MDU5MAorCisvKiBDQlVTIENv bm5lY3Rpb24gU3RhdHVzLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19DQlVT X1NUQVRVUwkJCQkweDA1OTEKKyNkZWZpbmUgQklUX0NCVVNfU1RBVFVTX01ITF9DQUJMRV9QUkVT RU5UCUJJVCg0KQorI2RlZmluZSBCSVRfQ0JVU19TVEFUVVNfTVNDX0hCX1NVQ0NFU1MJCUJJVCgz KQorI2RlZmluZSBCSVRfQ0JVU19TVEFUVVNfQ0JVU19IUEQJCUJJVCgyKQorI2RlZmluZSBCSVRf Q0JVU19TVEFUVVNfTUhMX01PREUJCUJJVCgxKQorI2RlZmluZSBCSVRfQ0JVU19TVEFUVVNfQ0JV U19DT05ORUNURUQJCUJJVCgwKQorCisvKiBDQlVTIEludGVycnVwdCAxc3QsIGRlZmF1bHQgdmFs dWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NCVVNfSU5UXzAJCQkJMHgwNTkyCisjZGVmaW5lIEJJ VF9DQlVTX01TQ19NVF9ET05FX05BQ0sJCUJJVCg3KQorI2RlZmluZSBCSVRfQ0JVU19NU0NfTVJf U0VUX0lOVAkJCUJJVCg2KQorI2RlZmluZSBCSVRfQ0JVU19NU0NfTVJfV1JJVEVfQlVSU1QJCUJJ VCg1KQorI2RlZmluZSBCSVRfQ0JVU19NU0NfTVJfTVNDX01TRwkJCUJJVCg0KQorI2RlZmluZSBC SVRfQ0JVU19NU0NfTVJfV1JJVEVfU1RBVAkJQklUKDMpCisjZGVmaW5lIEJJVF9DQlVTX0hQRF9D SEcJCQlCSVQoMikKKyNkZWZpbmUgQklUX0NCVVNfTVNDX01UX0RPTkUJCQlCSVQoMSkKKyNkZWZp bmUgQklUX0NCVVNfQ05YX0NIRwkJCUJJVCgwKQorCisvKiBDQlVTIEludGVycnVwdCBNYXNrIDFz dCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQ0JVU19JTlRfMF9NQVNLCQkJ MHgwNTkzCisKKy8qIENCVVMgSW50ZXJydXB0IDJuZCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwor I2RlZmluZSBSRUdfQ0JVU19JTlRfMQkJCQkweDA1OTQKKyNkZWZpbmUgQklUX0NCVVNfQ01EX0FC T1JUCQkJQklUKDYpCisjZGVmaW5lIEJJVF9DQlVTX01TQ19BQk9SVF9SQ1ZECQkJQklUKDMpCisj ZGVmaW5lIEJJVF9DQlVTX0REQ19BQk9SVAkJCUJJVCgyKQorI2RlZmluZSBCSVRfQ0JVU19DRUNf QUJPUlQJCQlCSVQoMSkKKworLyogQ0JVUyBJbnRlcnJ1cHQgTWFzayAybmQsIGRlZmF1bHQgdmFs dWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NCVVNfSU5UXzFfTUFTSwkJCTB4MDU5NQorCisvKiBD QlVTIEREQyBBYm9ydCBJbnRlcnJ1cHQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUg UkVHX0REQ19BQk9SVF9JTlQJCQkweDA1OTgKKworLyogQ0JVUyBEREMgQWJvcnQgSW50ZXJydXB0 IE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0REQ19BQk9SVF9JTlRf TUFTSwkJCTB4MDU5OQorCisvKiBDQlVTIE1TQyBSZXF1ZXN0ZXIgQWJvcnQgSW50ZXJydXB0LCBk ZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19NU0NfTVRfQUJPUlRfSU5UCQkJMHgw NTlhCisKKy8qIENCVVMgTVNDIFJlcXVlc3RlciBBYm9ydCBJbnRlcnJ1cHQgTWFzaywgZGVmYXVs dCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfTVNDX01UX0FCT1JUX0lOVF9NQVNLCQkweDA1 OWIKKworLyogQ0JVUyBNU0MgUmVzcG9uZGVyIEFib3J0IEludGVycnVwdCwgZGVmYXVsdCB2YWx1 ZTogMHgwMCAqLworI2RlZmluZSBSRUdfTVNDX01SX0FCT1JUX0lOVAkJCTB4MDU5YworCisvKiBD QlVTIE1TQyBSZXNwb25kZXIgQWJvcnQgSW50ZXJydXB0IE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4 MDAgKi8KKyNkZWZpbmUgUkVHX01TQ19NUl9BQk9SVF9JTlRfTUFTSwkJMHgwNTlkCisKKy8qIENC VVMgUlggRElTQ09WRVJZIGludGVycnVwdCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmlu ZSBSRUdfQ0JVU19SWF9ESVNDX0lOVDAJCQkweDA1OWUKKworLyogQ0JVUyBSWCBESVNDT1ZFUlkg SW50ZXJydXB0IE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NCVVNf UlhfRElTQ19JTlQwX01BU0sJCTB4MDU5ZgorCisvKiBDQlVTX0xpbmtfTGF5ZXIgQ29udHJvbCAj OCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQ0JVU19MSU5LX0NUUkxfOAkJ CTB4MDVhNworCisvKiBNRFQgU3RhdGUgTWFjaGluZSBTdGF0dXMsIGRlZmF1bHQgdmFsdWU6IDB4 MDAgKi8KKyNkZWZpbmUgUkVHX01EVF9TTV9TVEFUCQkJCTB4MDViNQorI2RlZmluZSBNU0tfTURU X1NNX1NUQVRfTURUX1JDVl9TVEFURQkJMHhmMAorI2RlZmluZSBNU0tfTURUX1NNX1NUQVRfTURU X1hNSVRfU1RBVEUJCTB4MGYKKworLyogQ0JVUyBNU0MgY29tbWFuZCB0cmlnZ2VyLCBkZWZhdWx0 IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19NU0NfQ09NTUFORF9TVEFSVAkJCTB4MDViOAor I2RlZmluZSBCSVRfTVNDX0NPTU1BTkRfU1RBUlRfREVCVUcJCUJJVCg1KQorI2RlZmluZSBCSVRf TVNDX0NPTU1BTkRfU1RBUlRfV1JJVEVfQlVSU1QJQklUKDQpCisjZGVmaW5lIEJJVF9NU0NfQ09N TUFORF9TVEFSVF9XUklURV9TVEFUCUJJVCgzKQorI2RlZmluZSBCSVRfTVNDX0NPTU1BTkRfU1RB UlRfUkVBRF9ERVZDQVAJQklUKDIpCisjZGVmaW5lIEJJVF9NU0NfQ09NTUFORF9TVEFSVF9NU0Nf TVNHCQlCSVQoMSkKKyNkZWZpbmUgQklUX01TQ19DT01NQU5EX1NUQVJUX1BFRVIJCUJJVCgwKQor CisvKiBDQlVTIE1TQyBDb21tYW5kL09mZnNldCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2Rl ZmluZSBSRUdfTVNDX0NNRF9PUl9PRkZTRVQJCQkweDA1YjkKKworLyogQ0JVUyBNU0MgVHJhbnNt aXQgRGF0YSAqLworI2RlZmluZSBSRUdfTVNDXzFTVF9UUkFOU01JVF9EQVRBCQkweDA1YmEKKyNk ZWZpbmUgUkVHX01TQ18yTkRfVFJBTlNNSVRfREFUQQkJMHgwNWJiCisKKy8qIENCVVMgTVNDIFJl cXVlc3RlciBSZWNlaXZlZCBEYXRhICovCisjZGVmaW5lIFJFR19NU0NfTVRfUkNWRF9EQVRBMAkJ CTB4MDViYworI2RlZmluZSBSRUdfTVNDX01UX1JDVkRfREFUQTEJCQkweDA1YmQKKworLyogQ0JV UyBNU0MgUmVzcG9uZGVyIE1TQ19NU0cgUmVjZWl2ZWQgRGF0YSAqLworI2RlZmluZSBSRUdfTVND X01SX01TQ19NU0dfUkNWRF8xU1RfREFUQQkweDA1YmYKKyNkZWZpbmUgUkVHX01TQ19NUl9NU0Nf TVNHX1JDVkRfMk5EX0RBVEEJMHgwNWMwCisKKy8qIENCVVMgTVNDIEhlYXJ0YmVhdCBDb250cm9s LCBkZWZhdWx0IHZhbHVlOiAweDI3ICovCisjZGVmaW5lIFJFR19NU0NfSEVBUlRCRUFUX0NUUkwJ CQkweDA1YzQKKyNkZWZpbmUgQklUX01TQ19IRUFSVEJFQVRfQ1RSTF9NU0NfSEJfRU4JQklUKDcp CisjZGVmaW5lIE1TS19NU0NfSEVBUlRCRUFUX0NUUkxfTVNDX0hCX0ZBSUxfTElNSVQgMHg3MAor I2RlZmluZSBNU0tfTVNDX0hFQVJUQkVBVF9DVFJMX01TQ19IQl9QRVJJT0RfTVNCIDB4MGYKKwor LyogQ0JVUyBNU0MgQ29tcGF0aWJpbGl0eSBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDAyICov CisjZGVmaW5lIFJFR19DQlVTX01TQ19DT01QQVRfQ1RSTAkJMHgwNWM3CisjZGVmaW5lIEJJVF9D QlVTX01TQ19DT01QQVRfQ1RSTF9YREVWQ0FQX0VOCUJJVCg3KQorI2RlZmluZSBCSVRfQ0JVU19N U0NfQ09NUEFUX0NUUkxfRElTQUJMRV9NU0NfT05fQ0JVUyBCSVQoNikKKyNkZWZpbmUgQklUX0NC VVNfTVNDX0NPTVBBVF9DVFJMX0RJU0FCTEVfRERDX09OX0NCVVMgQklUKDUpCisjZGVmaW5lIEJJ VF9DQlVTX01TQ19DT01QQVRfQ1RSTF9ESVNBQkxFX0dFVF9ERENfRVJST1JDT0RFIEJJVCgzKQor I2RlZmluZSBCSVRfQ0JVU19NU0NfQ09NUEFUX0NUUkxfRElTQUJMRV9HRVRfVlMxX0VSUk9SQ09E RSBCSVQoMikKKworLyogQ0JVUzMgQ29udmVydGVyIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4 MjQgKi8KKyNkZWZpbmUgUkVHX0NCVVMzX0NOVlQJCQkJMHgwNWRjCisjZGVmaW5lIE1TS19DQlVT M19DTlZUX0NCVVMzX1JFVFJZTE1UCQkweGYwCisjZGVmaW5lIE1TS19DQlVTM19DTlZUX0NCVVMz X1BFRVJUT1VUX1NFTAkweDBjCisjZGVmaW5lIEJJVF9DQlVTM19DTlZUX1RFQVJDQlVTX0VOCQlC SVQoMSkKKyNkZWZpbmUgQklUX0NCVVMzX0NOVlRfQ0JVUzNDTlZUX0VOCQlCSVQoMCkKKworLyog RGlzY292ZXJ5IENvbnRyb2wxLCBkZWZhdWx0IHZhbHVlOiAweDI0ICovCisjZGVmaW5lIFJFR19E SVNDX0NUUkwxCQkJCTB4MDVlMAorI2RlZmluZSBCSVRfRElTQ19DVFJMMV9DQlVTX0lOVFJfRU4J CUJJVCg3KQorI2RlZmluZSBCSVRfRElTQ19DVFJMMV9IQl9PTkxZCQkJQklUKDYpCisjZGVmaW5l IE1TS19ESVNDX0NUUkwxX0RJU0NfQVRUCQkJMHgzMAorI2RlZmluZSBNU0tfRElTQ19DVFJMMV9E SVNDX0NZQwkJCTB4MGMKKyNkZWZpbmUgQklUX0RJU0NfQ1RSTDFfRElTQ19FTgkJCUJJVCgwKQor CisjZGVmaW5lIFZBTF9QVVBfT0ZGCQkJCTAKKyNkZWZpbmUgVkFMX1BVUF8yMEsJCQkJMQorI2Rl ZmluZSBWQUxfUFVQXzVLCQkJCTIKKworLyogRGlzY292ZXJ5IENvbnRyb2w0LCBkZWZhdWx0IHZh bHVlOiAweDgwICovCisjZGVmaW5lIFJFR19ESVNDX0NUUkw0CQkJCTB4MDVlMworI2RlZmluZSBN U0tfRElTQ19DVFJMNF9DQlVTRElTQ19QVVBfU0VMCQkweGMwCisjZGVmaW5lIE1TS19ESVNDX0NU Ukw0X0NCVVNJRExFX1BVUF9TRUwJCTB4MzAKKyNkZWZpbmUgVkFMX0RJU0NfQ1RSTDQocHVwX2Rp c2MsIHB1cF9pZGxlKSAoKChwdXBfZGlzYykgPDwgNikgfCAocHVwX2lkbGUgPDwgNCkpCisKKy8q IERpc2NvdmVyeSBDb250cm9sNSwgZGVmYXVsdCB2YWx1ZTogMHgwMyAqLworI2RlZmluZSBSRUdf RElTQ19DVFJMNQkJCQkweDA1ZTQKKyNkZWZpbmUgQklUX0RJU0NfQ1RSTDVfRFNNX09WUklERQkJ QklUKDMpCisjZGVmaW5lIE1TS19ESVNDX0NUUkw1X0NCVVNNSExfUFVQX1NFTAkJMHgwMworCisv KiBEaXNjb3ZlcnkgQ29udHJvbDgsIGRlZmF1bHQgdmFsdWU6IDB4ODEgKi8KKyNkZWZpbmUgUkVH X0RJU0NfQ1RSTDgJCQkJMHgwNWU3CisjZGVmaW5lIEJJVF9ESVNDX0NUUkw4X05PTUhMSU5UX0NM Ul9CWVBBU1MJQklUKDcpCisjZGVmaW5lIEJJVF9ESVNDX0NUUkw4X0RFTEFZX0NCVVNfSU5UUl9F TglCSVQoMCkKKworLyogRGlzY292ZXJ5IENvbnRyb2w5LCBkZWZhdWx0IHZhbHVlOiAweDU0ICov CisjZGVmaW5lIFJFR19ESVNDX0NUUkw5CQkJMHgwNWU4CisjZGVmaW5lIEJJVF9ESVNDX0NUUkw5 X01ITDNfUlNFTl9CWVAJCUJJVCg3KQorI2RlZmluZSBCSVRfRElTQ19DVFJMOV9NSEwzRElTQ19F TgkJQklUKDYpCisjZGVmaW5lIEJJVF9ESVNDX0NUUkw5X1dBS0VfRFJWRkxUCQlCSVQoNCkKKyNk ZWZpbmUgQklUX0RJU0NfQ1RSTDlfTk9NSExfRVNUCQlCSVQoMykKKyNkZWZpbmUgQklUX0RJU0Nf Q1RSTDlfRElTQ19QVUxTRV9QUk9DRUVECUJJVCgyKQorI2RlZmluZSBCSVRfRElTQ19DVFJMOV9X QUtFX1BVTFNFX0JZUEFTUwlCSVQoMSkKKyNkZWZpbmUgQklUX0RJU0NfQ1RSTDlfVkJVU19PVVRQ VVRfQ0FQQUJJTElUWV9TUkMgQklUKDApCisKKy8qIERpc2NvdmVyeSBTdGF0dXMxLCBkZWZhdWx0 IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19ESVNDX1NUQVQxCQkJCTB4MDVlYgorI2RlZmlu ZSBCSVRfRElTQ19TVEFUMV9QU01fT1ZSSURFCQlCSVQoNSkKKyNkZWZpbmUgTVNLX0RJU0NfU1RB VDFfRElTQ19TTQkJCTB4MGYKKworLyogRGlzY292ZXJ5IFN0YXR1czIsIGRlZmF1bHQgdmFsdWU6 IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0RJU0NfU1RBVDIJCQkJMHgwNWVjCisjZGVmaW5lIEJJVF9E SVNDX1NUQVQyX0NCVVNfT0VfUE9MCQlCSVQoNikKKyNkZWZpbmUgQklUX0RJU0NfU1RBVDJfQ0JV U19TQVRVUwkJQklUKDUpCisjZGVmaW5lIEJJVF9ESVNDX1NUQVQyX1JTRU4JCQlCSVQoNCkKKwor I2RlZmluZSBNU0tfRElTQ19TVEFUMl9NSExfVlJTTgkJCTB4MGMKKyNkZWZpbmUgVkFMX0RJU0Nf U1RBVDJfREVGQVVMVAkJCTB4MDAKKyNkZWZpbmUgVkFMX0RJU0NfU1RBVDJfTUhMMV8yCQkJMHgw NAorI2RlZmluZSBWQUxfRElTQ19TVEFUMl9NSEwzCQkJMHgwOAorI2RlZmluZSBWQUxfRElTQ19T VEFUMl9SRVNFUlZFRAkJCTB4MGMKKworI2RlZmluZSBNU0tfRElTQ19TVEFUMl9SR05ECQkJMHgw MworI2RlZmluZSBWQUxfUkdORF9PUEVOCQkJCTB4MDAKKyNkZWZpbmUgVkFMX1JHTkRfMksJCQkJ MHgwMQorI2RlZmluZSBWQUxfUkdORF8xSwkJCQkweDAyCisjZGVmaW5lIFZBTF9SR05EX1NIT1JU CQkJCTB4MDMKKworLyogSW50ZXJydXB0IENCVVNfcmVnMSBJTlRSMCwgZGVmYXVsdCB2YWx1ZTog MHgwMCAqLworI2RlZmluZSBSRUdfQ0JVU19ESVNDX0lOVFIwCQkJMHgwNWVkCisjZGVmaW5lIEJJ VF9SR05EX1JFQURZX0lOVAkJCUJJVCg2KQorI2RlZmluZSBCSVRfQ0JVU19NSEwxMl9ESVNDT05f SU5UCQlCSVQoNSkKKyNkZWZpbmUgQklUX0NCVVNfTUhMM19ESVNDT05fSU5UCQlCSVQoNCkKKyNk ZWZpbmUgQklUX05PVF9NSExfRVNUX0lOVAkJCUJJVCgzKQorI2RlZmluZSBCSVRfTUhMX0VTVF9J TlQJCQkJQklUKDIpCisjZGVmaW5lIEJJVF9NSEwzX0VTVF9JTlQJCQlCSVQoMSkKKyNkZWZpbmUg VkFMX0NCVVNfTUhMX0RJU0NPTiAoQklUX0NCVVNfTUhMMTJfRElTQ09OX0lOVCBcCisJCQkgICAg fCBCSVRfQ0JVU19NSEwzX0RJU0NPTl9JTlQgXAorCQkJICAgIHwgQklUX05PVF9NSExfRVNUX0lO VCkKKworLyogSW50ZXJydXB0IENCVVNfcmVnMSBJTlRSMCBNYXNrLCBkZWZhdWx0IHZhbHVlOiAw eDAwICovCisjZGVmaW5lIFJFR19DQlVTX0RJU0NfSU5UUjBfTUFTSwkJMHgwNWVlCisKKyNlbmRp ZiAvKiBfX1NJTF9TSUk4NjIwX0hfXyAqLwotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRl dmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==