From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from metis.ext.pengutronix.de ([2001:6f8:1178:4:290:27ff:fe1d:cc33]) by merlin.infradead.org with esmtps (Exim 4.76 #1 (Red Hat Linux)) id 1TG6BI-0005TX-KT for barebox@lists.infradead.org; Mon, 24 Sep 2012 10:46:58 +0000 From: Sascha Hauer Date: Mon, 24 Sep 2012 12:46:11 +0200 Message-Id: <1348483583-12586-3-git-send-email-s.hauer@pengutronix.de> In-Reply-To: <1348483583-12586-1-git-send-email-s.hauer@pengutronix.de> References: <1348483583-12586-1-git-send-email-s.hauer@pengutronix.de> MIME-Version: 1.0 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: barebox-bounces@lists.infradead.org Errors-To: barebox-bounces+u.kleine-koenig=pengutronix.de@lists.infradead.org Subject: =?UTF-8?q?=5BPATCH=2002/14=5D=20ARM=20i=2EMX35=3A=20give=20register=20base=20addresses=20a=20proper=20MX35=5F=20prefix?= To: barebox@lists.infradead.org U2lnbmVkLW9mZi1ieTogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgotLS0K IGFyY2gvYXJtL2JvYXJkcy9ldWtyZWFfY3B1aW14MzUvZXVrcmVhX2NwdWlteDM1LmMgIHwgIDEw MCArKysrKystLS0tLS0KIGFyY2gvYXJtL2JvYXJkcy9ldWtyZWFfY3B1aW14MzUvbG93bGV2ZWwu YyAgICAgICAgIHwgICAyNCArLS0KIGFyY2gvYXJtL2JvYXJkcy9mcmVlc2NhbGUtbXgzNS0zLXN0 YWNrLzNzdGFjay5jICAgIHwgICA3OCArKysrKy0tLS0tCiAuLi4vYm9hcmRzL2ZyZWVzY2FsZS1t eDM1LTMtc3RhY2svbG93bGV2ZWxfaW5pdC5TICB8ICAgIDYgKy0KIGFyY2gvYXJtL2JvYXJkcy9n dWYtY3VwaWQvYm9hcmQuYyAgICAgICAgICAgICAgICAgIHwgICA3NCArKysrLS0tLS0KIGFyY2gv YXJtL2JvYXJkcy9ndWYtY3VwaWQvbG93bGV2ZWwuYyAgICAgICAgICAgICAgIHwgICAyOCArKy0t CiBhcmNoL2FybS9ib2FyZHMvcGNtMDQzL2xvd2xldmVsLmMgICAgICAgICAgICAgICAgICB8ICAg MjYgKystLQogYXJjaC9hcm0vYm9hcmRzL3BjbTA0My9wY20wNDMuYyAgICAgICAgICAgICAgICAg ICAgfCAgIDc4ICsrKysrLS0tLS0KIGFyY2gvYXJtL21hY2gtaW14L2lteDM1LmMgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAxNCArLQogYXJjaC9hcm0vbWFjaC1pbXgvaW5jbHVkZS9tYWNo L2RldmljZXMtaW14MzUuaCAgICAgfCAgIDM0ICsrLS0KIGFyY2gvYXJtL21hY2gtaW14L2luY2x1 ZGUvbWFjaC9pbXgzNS1yZWdzLmggICAgICAgIHwgIDE2MiArKysrKysrKysrKysrKy0tLS0tLQog YXJjaC9hcm0vbWFjaC1pbXgvc3BlZWQtaW14MzUuYyAgICAgICAgICAgICAgICAgICAgfCAgIDMw ICsrLS0KIDEyIGZpbGVzIGNoYW5nZWQsIDM2OCBpbnNlcnRpb25zKCspLCAyODYgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9hcmRzL2V1a3JlYV9jcHVpbXgzNS9ldWtyZWFf Y3B1aW14MzUuYyBiL2FyY2gvYXJtL2JvYXJkcy9ldWtyZWFfY3B1aW14MzUvZXVrcmVhX2NwdWlt eDM1LmMKaW5kZXggM2M3ZmI2OS4uNTNjYzQyOCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vYm9hcmRz L2V1a3JlYV9jcHVpbXgzNS9ldWtyZWFfY3B1aW14MzUuYworKysgYi9hcmNoL2FybS9ib2FyZHMv ZXVrcmVhX2NwdWlteDM1L2V1a3JlYV9jcHVpbXgzNS5jCkBAIC05NywyMSArOTcsMjEgQEAgc3Rh dGljIHZvaWQgaW14MzVfdXNiX2luaXQodm9pZCkKIAl1bnNpZ25lZCBpbnQgdG1wOwogCiAJLyog SG9zdCAxICovCi0JdG1wID0gcmVhZGwoSU1YX09UR19CQVNFICsgMHg2MDApOworCXRtcCA9IHJl YWRsKE1YMzVfVVNCX09UR19CQVNFX0FERFIgKyAweDYwMCk7CiAJdG1wICY9IH4oTVgzNV9IMV9T SUNfTUFTSyB8IE1YMzVfSDFfUE1fQklUIHwgTVgzNV9IMV9UTExfQklUIHwKIAkJTVgzNV9IMV9V U0JURV9CSVQgfCBNWDM1X0gxX0lQUFVFX0RPV05fQklUIHwgTVgzNV9IMV9JUFBVRV9VUF9CSVQp OwogCXRtcCB8PSAoTVhDX0VIQ0lfSU5URVJGQUNFX1NJTkdMRV9VTkkpIDw8IE1YMzVfSDFfU0lD X1NISUZUOwogCXRtcCB8PSBNWDM1X0gxX1VTQlRFX0JJVCB8IE1YMzVfSDFfUE1fQklUIHwgTVgz NV9IMV9UTExfQklUIDsKIAl0bXAgfD0gTVgzNV9IMV9JUFBVRV9ET1dOX0JJVDsKLQl3cml0ZWwo dG1wLCBJTVhfT1RHX0JBU0UgKyAweDYwMCk7CisJd3JpdGVsKHRtcCwgTVgzNV9VU0JfT1RHX0JB U0VfQUREUiArIDB4NjAwKTsKIAotCXRtcCA9IHJlYWRsKElNWF9PVEdfQkFTRSArIDB4NTg0KTsK Kwl0bXAgPSByZWFkbChNWDM1X1VTQl9PVEdfQkFTRV9BRERSICsgMHg1ODQpOwogCXRtcCB8PSAz IDw8IDMwOwotCXdyaXRlbCh0bXAsIElNWF9PVEdfQkFTRSArIDB4NTg0KTsKKwl3cml0ZWwodG1w LCBNWDM1X1VTQl9PVEdfQkFTRV9BRERSICsgMHg1ODQpOwogCiAJLyogU2V0IHRvIEhvc3QgbW9k ZSAqLwotCXRtcCA9IHJlYWRsKElNWF9PVEdfQkFTRSArIDB4NWE4KTsKLQl3cml0ZWwodG1wIHwg MHgzLCBJTVhfT1RHX0JBU0UgKyAweDVhOCk7CisJdG1wID0gcmVhZGwoTVgzNV9VU0JfT1RHX0JB U0VfQUREUiArIDB4NWE4KTsKKwl3cml0ZWwodG1wIHwgMHgzLCBNWDM1X1VTQl9PVEdfQkFTRV9B RERSICsgMHg1YTgpOwogfQogI2VuZGlmCiAKQEAgLTEyNCw3ICsxMjQsNyBAQCBzdGF0aWMgc3Ry dWN0IGZzbF91c2IyX3BsYXRmb3JtX2RhdGEgdXNiX3BkYXRhID0gewogCiBzdGF0aWMgaW50IGV1 a3JlYV9jcHVpbXgzNV9tZW1faW5pdCh2b2lkKQogewotCWFybV9hZGRfbWVtX2RldmljZSgicmFt MCIsIElNWF9TRFJBTV9DUzAsIDEyOCAqIDEwMjQgKiAxMDI0KTsKKwlhcm1fYWRkX21lbV9kZXZp Y2UoInJhbTAiLCBNWDM1X0NTRDBfQkFTRV9BRERSLCAxMjggKiAxMDI0ICogMTAyNCk7CiAKIAly ZXR1cm4gMDsKIH0KQEAgLTIxNiwxMyArMjE2LDEzIEBAIHN0YXRpYyBpbnQgZXVrcmVhX2NwdWlt eDM1X2RldmljZXNfaW5pdCh2b2lkKQogCiAjaWZkZWYgQ09ORklHX1VTQgogCWlteDM1X3VzYl9p bml0KCk7Ci0JYWRkX2dlbmVyaWNfdXNiX2VoY2lfZGV2aWNlKERFVklDRV9JRF9EWU5BTUlDLCBJ TVhfT1RHX0JBU0UgKyAweDQwMCwgTlVMTCk7CisJYWRkX2dlbmVyaWNfdXNiX2VoY2lfZGV2aWNl KERFVklDRV9JRF9EWU5BTUlDLCBNWDM1X1VTQl9IU19CQVNFX0FERFIsIE5VTEwpOwogI2VuZGlm CiAjaWZkZWYgQ09ORklHX1VTQl9HQURHRVQKIAkvKiBXb3JrYXJvdW5kIEVOR2NtMDkxNTIgKi8K LQl0bXAgPSByZWFkbChJTVhfT1RHX0JBU0UgKyAweDYwOCk7Ci0Jd3JpdGVsKHRtcCB8ICgxIDw8 IDIzKSwgSU1YX09UR19CQVNFICsgMHg2MDgpOwotCWFkZF9nZW5lcmljX2RldmljZSgiZnNsLXVk YyIsIERFVklDRV9JRF9EWU5BTUlDLCBOVUxMLCBJTVhfT1RHX0JBU0UsIDB4MjAwLAorCXRtcCA9 IHJlYWRsKE1YMzVfVVNCX09UR19CQVNFX0FERFIgKyAweDYwOCk7CisJd3JpdGVsKHRtcCB8ICgx IDw8IDIzKSwgTVgzNV9VU0JfT1RHX0JBU0VfQUREUiArIDB4NjA4KTsKKwlhZGRfZ2VuZXJpY19k ZXZpY2UoImZzbC11ZGMiLCBERVZJQ0VfSURfRFlOQU1JQywgTlVMTCwgTVgzNV9VU0JfT1RHX0JB U0VfQUREUiwgMHgyMDAsCiAJCQkgICBJT1JFU09VUkNFX01FTSwgJnVzYl9wZGF0YSk7CiAjZW5k aWYKIAlhcm1saW51eF9zZXRfYm9vdHBhcmFtcygodm9pZCAqKTB4ODAwMDAxMDApOwpAQCAtMjQ2 LDcwICsyNDYsNzAgQEAgc3RhdGljIGludCBldWtyZWFfY3B1aW14MzVfY29yZV9pbml0KHZvaWQp CiAJdTMyIHJlZzsKIAogCS8qIGVuYWJsZSBjbG9jayBmb3IgSTJDMSwgU0RIQzEsIFVTQiBhbmQg RkVDICovCi0JcmVnID0gcmVhZGwoSU1YX0NDTV9CQVNFICsgQ0NNX0NHUjEpOworCXJlZyA9IHJl YWRsKE1YMzVfQ0NNX0JBU0VfQUREUiArIENDTV9DR1IxKTsKIAlyZWcgfD0gMHgzIDw8IENDTV9D R1IxX0ZFQ19TSElGVDsKIAlyZWcgfD0gMHgzIDw8IENDTV9DR1IxX1NESEMxX1NISUZUOwogCXJl ZyB8PSAweDMgPDwgQ0NNX0NHUjFfSTJDMV9TSElGVCwKLQlyZWcgPSB3cml0ZWwocmVnLCBJTVhf Q0NNX0JBU0UgKyBDQ01fQ0dSMSk7Ci0JcmVnID0gcmVhZGwoSU1YX0NDTV9CQVNFICsgQ0NNX0NH UjIpOworCXJlZyA9IHdyaXRlbChyZWcsIE1YMzVfQ0NNX0JBU0VfQUREUiArIENDTV9DR1IxKTsK KwlyZWcgPSByZWFkbChNWDM1X0NDTV9CQVNFX0FERFIgKyBDQ01fQ0dSMik7CiAJcmVnIHw9IDB4 MyA8PCBDQ01fQ0dSMl9VU0JfU0hJRlQ7Ci0JcmVnID0gd3JpdGVsKHJlZywgSU1YX0NDTV9CQVNF ICsgQ0NNX0NHUjIpOworCXJlZyA9IHdyaXRlbChyZWcsIE1YMzVfQ0NNX0JBU0VfQUREUiArIEND TV9DR1IyKTsKIAogCS8qIEFJUFMgc2V0dXAgLSBPbmx5IHNldHVwIE1QUk9UeCByZWdpc3RlcnMu IFRoZSBQQUNSIGRlZmF1bHQgdmFsdWVzIGFyZSBnb29kLiovCiAJLyoKIAkgKiBTZXQgYWxsIE1Q Uk9UeCB0byBiZSBub24tYnVmZmVyYWJsZSwgdHJ1c3RlZCBmb3IgUi9XLAogCSAqIG5vdCBmb3Jj ZWQgdG8gdXNlci1tb2RlLgogCSAqLwotCXdyaXRlbCgweDc3Nzc3Nzc3LCBJTVhfQUlQUzFfQkFT RSk7Ci0Jd3JpdGVsKDB4Nzc3Nzc3NzcsIElNWF9BSVBTMV9CQVNFICsgMHg0KTsKLQl3cml0ZWwo MHg3Nzc3Nzc3NywgSU1YX0FJUFMyX0JBU0UpOwotCXdyaXRlbCgweDc3Nzc3Nzc3LCBJTVhfQUlQ UzJfQkFTRSArIDB4NCk7CisJd3JpdGVsKDB4Nzc3Nzc3NzcsIE1YMzVfQUlQUzFfQkFTRV9BRERS KTsKKwl3cml0ZWwoMHg3Nzc3Nzc3NywgTVgzNV9BSVBTMV9CQVNFX0FERFIgKyAweDQpOworCXdy aXRlbCgweDc3Nzc3Nzc3LCBNWDM1X0FJUFMyX0JBU0VfQUREUik7CisJd3JpdGVsKDB4Nzc3Nzc3 NzcsIE1YMzVfQUlQUzJfQkFTRV9BRERSICsgMHg0KTsKIAogCS8qCiAJICogQ2xlYXIgdGhlIG9u IGFuZCBvZmYgcGVyaXBoZXJhbCBtb2R1bGVzIFN1cGVydmlzb3IgUHJvdGVjdCBiaXQKIAkgKiBm b3IgU0RNQSB0byBhY2Nlc3MgdGhlbS4gRGlkIG5vdCBjaGFuZ2UgdGhlIEFJUFMgY29udHJvbCBy ZWdpc3RlcnMKIAkgKiAob2Zmc2V0IDB4MjApIGFjY2VzcyB0eXBlCiAJICovCi0Jd3JpdGVsKDB4 MCwgSU1YX0FJUFMxX0JBU0UgKyAweDQwKTsKLQl3cml0ZWwoMHgwLCBJTVhfQUlQUzFfQkFTRSAr IDB4NDQpOwotCXdyaXRlbCgweDAsIElNWF9BSVBTMV9CQVNFICsgMHg0OCk7Ci0Jd3JpdGVsKDB4 MCwgSU1YX0FJUFMxX0JBU0UgKyAweDRDKTsKLQlyZWcgPSByZWFkbChJTVhfQUlQUzFfQkFTRSAr IDB4NTApOworCXdyaXRlbCgweDAsIE1YMzVfQUlQUzFfQkFTRV9BRERSICsgMHg0MCk7CisJd3Jp dGVsKDB4MCwgTVgzNV9BSVBTMV9CQVNFX0FERFIgKyAweDQ0KTsKKwl3cml0ZWwoMHgwLCBNWDM1 X0FJUFMxX0JBU0VfQUREUiArIDB4NDgpOworCXdyaXRlbCgweDAsIE1YMzVfQUlQUzFfQkFTRV9B RERSICsgMHg0Qyk7CisJcmVnID0gcmVhZGwoTVgzNV9BSVBTMV9CQVNFX0FERFIgKyAweDUwKTsK IAlyZWcgJj0gMHgwMEZGRkZGRjsKLQl3cml0ZWwocmVnLCBJTVhfQUlQUzFfQkFTRSArIDB4NTAp OworCXdyaXRlbChyZWcsIE1YMzVfQUlQUzFfQkFTRV9BRERSICsgMHg1MCk7CiAKLQl3cml0ZWwo MHgwLCBJTVhfQUlQUzJfQkFTRSArIDB4NDApOwotCXdyaXRlbCgweDAsIElNWF9BSVBTMl9CQVNF ICsgMHg0NCk7Ci0Jd3JpdGVsKDB4MCwgSU1YX0FJUFMyX0JBU0UgKyAweDQ4KTsKLQl3cml0ZWwo MHgwLCBJTVhfQUlQUzJfQkFTRSArIDB4NEMpOwotCXJlZyA9IHJlYWRsKElNWF9BSVBTMl9CQVNF ICsgMHg1MCk7CisJd3JpdGVsKDB4MCwgTVgzNV9BSVBTMl9CQVNFX0FERFIgKyAweDQwKTsKKwl3 cml0ZWwoMHgwLCBNWDM1X0FJUFMyX0JBU0VfQUREUiArIDB4NDQpOworCXdyaXRlbCgweDAsIE1Y MzVfQUlQUzJfQkFTRV9BRERSICsgMHg0OCk7CisJd3JpdGVsKDB4MCwgTVgzNV9BSVBTMl9CQVNF X0FERFIgKyAweDRDKTsKKwlyZWcgPSByZWFkbChNWDM1X0FJUFMyX0JBU0VfQUREUiArIDB4NTAp OwogCXJlZyAmPSAweDAwRkZGRkZGOwotCXdyaXRlbChyZWcsIElNWF9BSVBTMl9CQVNFICsgMHg1 MCk7CisJd3JpdGVsKHJlZywgTVgzNV9BSVBTMl9CQVNFX0FERFIgKyAweDUwKTsKIAogCS8qIE1B WCAoTXVsdGktTGF5ZXIgQUhCIENyb3NzYmFyIFN3aXRjaCkgc2V0dXAgKi8KIAogCS8qIE1QUiAt IHByaW9yaXR5IGlzIE00ID4gTTIgPiBNMyA+IE01ID4gTTAgPiBNMSAqLwogI2RlZmluZSBNQVhf UEFSQU0xIDB4MDAzMDIxNTQKLQl3cml0ZWwoTUFYX1BBUkFNMSwgSU1YX01BWF9CQVNFICsgMHgw MDApOyAvKiBmb3IgUzAgKi8KLQl3cml0ZWwoTUFYX1BBUkFNMSwgSU1YX01BWF9CQVNFICsgMHgx MDApOyAvKiBmb3IgUzEgKi8KLQl3cml0ZWwoTUFYX1BBUkFNMSwgSU1YX01BWF9CQVNFICsgMHgy MDApOyAvKiBmb3IgUzIgKi8KLQl3cml0ZWwoTUFYX1BBUkFNMSwgSU1YX01BWF9CQVNFICsgMHgz MDApOyAvKiBmb3IgUzMgKi8KLQl3cml0ZWwoTUFYX1BBUkFNMSwgSU1YX01BWF9CQVNFICsgMHg0 MDApOyAvKiBmb3IgUzQgKi8KKwl3cml0ZWwoTUFYX1BBUkFNMSwgTVgzNV9NQVhfQkFTRV9BRERS ICsgMHgwMDApOyAvKiBmb3IgUzAgKi8KKwl3cml0ZWwoTUFYX1BBUkFNMSwgTVgzNV9NQVhfQkFT RV9BRERSICsgMHgxMDApOyAvKiBmb3IgUzEgKi8KKwl3cml0ZWwoTUFYX1BBUkFNMSwgTVgzNV9N QVhfQkFTRV9BRERSICsgMHgyMDApOyAvKiBmb3IgUzIgKi8KKwl3cml0ZWwoTUFYX1BBUkFNMSwg TVgzNV9NQVhfQkFTRV9BRERSICsgMHgzMDApOyAvKiBmb3IgUzMgKi8KKwl3cml0ZWwoTUFYX1BB UkFNMSwgTVgzNV9NQVhfQkFTRV9BRERSICsgMHg0MDApOyAvKiBmb3IgUzQgKi8KIAogCS8qIFNH UENSIC0gYWx3YXlzIHBhcmsgb24gbGFzdCBtYXN0ZXIgKi8KLQl3cml0ZWwoMHgxMCwgSU1YX01B WF9CQVNFICsgMHgxMCk7CS8qIGZvciBTMCAqLwotCXdyaXRlbCgweDEwLCBJTVhfTUFYX0JBU0Ug KyAweDExMCk7CS8qIGZvciBTMSAqLwotCXdyaXRlbCgweDEwLCBJTVhfTUFYX0JBU0UgKyAweDIx MCk7CS8qIGZvciBTMiAqLwotCXdyaXRlbCgweDEwLCBJTVhfTUFYX0JBU0UgKyAweDMxMCk7CS8q IGZvciBTMyAqLwotCXdyaXRlbCgweDEwLCBJTVhfTUFYX0JBU0UgKyAweDQxMCk7CS8qIGZvciBT NCAqLworCXdyaXRlbCgweDEwLCBNWDM1X01BWF9CQVNFX0FERFIgKyAweDEwKTsJLyogZm9yIFMw ICovCisJd3JpdGVsKDB4MTAsIE1YMzVfTUFYX0JBU0VfQUREUiArIDB4MTEwKTsJLyogZm9yIFMx ICovCisJd3JpdGVsKDB4MTAsIE1YMzVfTUFYX0JBU0VfQUREUiArIDB4MjEwKTsJLyogZm9yIFMy ICovCisJd3JpdGVsKDB4MTAsIE1YMzVfTUFYX0JBU0VfQUREUiArIDB4MzEwKTsJLyogZm9yIFMz ICovCisJd3JpdGVsKDB4MTAsIE1YMzVfTUFYX0JBU0VfQUREUiArIDB4NDEwKTsJLyogZm9yIFM0 ICovCiAKIAkvKiBNR1BDUiAtIHJlc3RvcmUgZGVmYXVsdCB2YWx1ZXMgKi8KLQl3cml0ZWwoMHgw LCBJTVhfTUFYX0JBU0UgKyAweDgwMCk7CS8qIGZvciBNMCAqLwotCXdyaXRlbCgweDAsIElNWF9N QVhfQkFTRSArIDB4OTAwKTsJLyogZm9yIE0xICovCi0Jd3JpdGVsKDB4MCwgSU1YX01BWF9CQVNF ICsgMHhhMDApOwkvKiBmb3IgTTIgKi8KLQl3cml0ZWwoMHgwLCBJTVhfTUFYX0JBU0UgKyAweGIw MCk7CS8qIGZvciBNMyAqLwotCXdyaXRlbCgweDAsIElNWF9NQVhfQkFTRSArIDB4YzAwKTsJLyog Zm9yIE00ICovCi0Jd3JpdGVsKDB4MCwgSU1YX01BWF9CQVNFICsgMHhkMDApOwkvKiBmb3IgTTUg Ki8KKwl3cml0ZWwoMHgwLCBNWDM1X01BWF9CQVNFX0FERFIgKyAweDgwMCk7CS8qIGZvciBNMCAq LworCXdyaXRlbCgweDAsIE1YMzVfTUFYX0JBU0VfQUREUiArIDB4OTAwKTsJLyogZm9yIE0xICov CisJd3JpdGVsKDB4MCwgTVgzNV9NQVhfQkFTRV9BRERSICsgMHhhMDApOwkvKiBmb3IgTTIgKi8K Kwl3cml0ZWwoMHgwLCBNWDM1X01BWF9CQVNFX0FERFIgKyAweGIwMCk7CS8qIGZvciBNMyAqLwor CXdyaXRlbCgweDAsIE1YMzVfTUFYX0JBU0VfQUREUiArIDB4YzAwKTsJLyogZm9yIE00ICovCisJ d3JpdGVsKDB4MCwgTVgzNV9NQVhfQkFTRV9BRERSICsgMHhkMDApOwkvKiBmb3IgTTUgKi8KIAog CS8qCiAJICogTTNJRiBDb250cm9sIFJlZ2lzdGVyIChNM0lGQ1RMKQpAQCAtMzI0LDcgKzMyNCw3 IEBAIHN0YXRpYyBpbnQgZXVrcmVhX2NwdWlteDM1X2NvcmVfaW5pdCh2b2lkKQogCSAqICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLS0tLS0t LS0tLQogCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwMDAwMDQwCiAJICovCi0Jd3JpdGVsKDB4NDAsIElNWF9NM0lGX0JBU0UpOwor CXdyaXRlbCgweDQwLCBNWDM1X00zSUZfQkFTRV9BRERSKTsKIAogCXJldHVybiAwOwogfQpAQCAt MzQ1LDEwICszNDUsMTAgQEAgc3RhdGljIGludCBkb19jcHVmcmVxKGludCBhcmdjLCBjaGFyICph cmd2W10pCiAKIAlzd2l0Y2ggKGZyZXEpIHsKIAljYXNlIDM5OToKLQkJd3JpdGVsKE1QQ1RMX1BB UkFNXzM5OSwgSU1YX0NDTV9CQVNFICsgQ0NNX01QQ1RMKTsKKwkJd3JpdGVsKE1QQ1RMX1BBUkFN XzM5OSwgTVgzNV9DQ01fQkFTRV9BRERSICsgQ0NNX01QQ1RMKTsKIAkJYnJlYWs7CiAJY2FzZSA1 MzI6Ci0JCXdyaXRlbChNUENUTF9QQVJBTV81MzIsIElNWF9DQ01fQkFTRSArIENDTV9NUENUTCk7 CisJCXdyaXRlbChNUENUTF9QQVJBTV81MzIsIE1YMzVfQ0NNX0JBU0VfQUREUiArIENDTV9NUENU TCk7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCXJldHVybiBDT01NQU5EX0VSUk9SX1VTQUdFOwpk aWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9hcmRzL2V1a3JlYV9jcHVpbXgzNS9sb3dsZXZlbC5jIGIv YXJjaC9hcm0vYm9hcmRzL2V1a3JlYV9jcHVpbXgzNS9sb3dsZXZlbC5jCmluZGV4IGI0MjFkZmMu LjYwYTQzOGEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2JvYXJkcy9ldWtyZWFfY3B1aW14MzUvbG93 bGV2ZWwuYworKysgYi9hcmNoL2FybS9ib2FyZHMvZXVrcmVhX2NwdWlteDM1L2xvd2xldmVsLmMK QEAgLTQwLDEwICs0MCwxMCBAQCBzdGF0aWMgdm9pZCBfX2JhcmVfaW5pdCBfX25ha2VkIGluc2Ry YW0odm9pZCkKIAl1aW50MzJfdCByOwogCiAJLyogU3BlZWQgdXAgTkFORCBjb250cm9sbGVyIGJ5 IGFkanVzdGluZyB0aGUgTkZDIGRpdmlkZXIgKi8KLQlyID0gcmVhZGwoSU1YX0NDTV9CQVNFICsg Q0NNX1BEUjQpOworCXIgPSByZWFkbChNWDM1X0NDTV9CQVNFX0FERFIgKyBDQ01fUERSNCk7CiAJ ciAmPSB+KDB4ZiA8PCAyOCk7CiAJciB8PSAweDEgPDwgMjg7Ci0Jd3JpdGVsKHIsIElNWF9DQ01f QkFTRSArIENDTV9QRFI0KTsKKwl3cml0ZWwociwgTVgzNV9DQ01fQkFTRV9BRERSICsgQ0NNX1BE UjQpOwogCiAJLyogc2V0dXAgYSBzdGFjayB0byBiZSBhYmxlIHRvIGNhbGwgaW14X25hbmRfbG9h ZF9pbWFnZSgpICovCiAJciA9IFNUQUNLX0JBU0UgKyBTVEFDS19TSVpFIC0gMTI7CkBAIC01OCw3 ICs1OCw3IEBAIHN0YXRpYyB2b2lkIF9fYmFyZV9pbml0IF9fbmFrZWQgaW5zZHJhbSh2b2lkKQog dm9pZCBfX2JhcmVfaW5pdCBfX25ha2VkIGJvYXJkX2luaXRfbG93bGV2ZWwodm9pZCkKIHsKIAl1 aW50MzJfdCByLCBzOwotCXVuc2lnbmVkIGxvbmcgY2NtX2Jhc2UgPSBJTVhfQ0NNX0JBU0U7CisJ dW5zaWduZWQgbG9uZyBjY21fYmFzZSA9IE1YMzVfQ0NNX0JBU0VfQUREUjsKICNpZmRlZiBDT05G SUdfTkFORF9JTVhfQk9PVAogCXVuc2lnbmVkIGludCAqdHJnLCAqc3JjOwogCWludCBpOwpAQCAt MTI1LDkgKzEyNSw5IEBAIHZvaWQgX19iYXJlX2luaXQgX19uYWtlZCBib2FyZF9pbml0X2xvd2xl dmVsKHZvaWQpCiAJciB8PSAweDAzMDAwMDAwOwogCXdyaXRlbChyLCBjY21fYmFzZSArIENDTV9D R1IyKTsKIAotCXIgPSByZWFkbChJTVhfTDJDQ19CQVNFICsgTDJYMF9BVVhfQ1RSTCk7CisJciA9 IHJlYWRsKE1YMzVfTDJDQ19CQVNFX0FERFIgKyBMMlgwX0FVWF9DVFJMKTsKIAlyIHw9IDB4MTAw MDsKLQl3cml0ZWwociwgSU1YX0wyQ0NfQkFTRSArIEwyWDBfQVVYX0NUUkwpOworCXdyaXRlbChy LCBNWDM1X0wyQ0NfQkFTRV9BRERSICsgTDJYMF9BVVhfQ1RSTCk7CiAKIAkvKiBTa2lwIFNEUkFN IGluaXRpYWxpemF0aW9uIGlmIHdlIHJ1biBmcm9tIFJBTSAqLwogCXIgPSBnZXRfcGMoKTsKQEAg LTE0MywyMiArMTQzLDIyIEBAIHZvaWQgX19iYXJlX2luaXQgX19uYWtlZCBib2FyZF9pbml0X2xv d2xldmVsKHZvaWQpCiAKIAl3cml0ZWwoMHgwMDA5NTcyQiwgRVNEQ0ZHMCk7CiAJd3JpdGVsKDB4 OTIyMjAwMDAsIEVTRENUTDApOwotCXdyaXRlYigweGRhLCBJTVhfU0RSQU1fQ1MwICsgMHg0MDAp OworCXdyaXRlYigweGRhLCBNWDM1X0NTRDBfQkFTRV9BRERSICsgMHg0MDApOwogCXdyaXRlbCgw eEEyMjIwMDAwLCBFU0RDVEwwKTsKLQl3cml0ZWIoMHhkYSwgSU1YX1NEUkFNX0NTMCk7Ci0Jd3Jp dGViKDB4ZGEsIElNWF9TRFJBTV9DUzApOworCXdyaXRlYigweGRhLCBNWDM1X0NTRDBfQkFTRV9B RERSKTsKKwl3cml0ZWIoMHhkYSwgTVgzNV9DU0QwX0JBU0VfQUREUik7CiAJd3JpdGVsKDB4QjIy MjAwMDAsIEVTRENUTDApOwotCXdyaXRlYigweGRhLCBJTVhfU0RSQU1fQ1MwICsgMHgzMyk7Ci0J d3JpdGViKDB4ZGEsIElNWF9TRFJBTV9DUzAgKyAweDIwMDAwMDApOworCXdyaXRlYigweGRhLCBN WDM1X0NTRDBfQkFTRV9BRERSICsgMHgzMyk7CisJd3JpdGViKDB4ZGEsIE1YMzVfQ1NEMF9CQVNF X0FERFIgKyAweDIwMDAwMDApOwogCXdyaXRlbCgweDgyMjI4MDgwLCBFU0RDVEwwKTsKIAogI2lm ZGVmIENPTkZJR19OQU5EX0lNWF9CT09UCiAJLyogc2tpcCBOQU5EIGJvb3QgaWYgbm90IHJ1bm5p bmcgZnJvbSBORkMgc3BhY2UgKi8KIAlyID0gZ2V0X3BjKCk7Ci0JaWYgKHIgPCBJTVhfTkZDX0JB U0UgfHwgciA+IElNWF9ORkNfQkFTRSArIDB4ODAwKQorCWlmIChyIDwgTVgzNV9ORkNfQkFTRV9B RERSIHx8IHIgPiBNWDM1X05GQ19CQVNFX0FERFIgKyAweDgwMCkKIAkJYm9hcmRfaW5pdF9sb3ds ZXZlbF9yZXR1cm4oKTsKIAotCXNyYyA9ICh1bnNpZ25lZCBpbnQgKilJTVhfTkZDX0JBU0U7CisJ c3JjID0gKHVuc2lnbmVkIGludCAqKU1YMzVfTkZDX0JBU0VfQUREUjsKIAl0cmcgPSAodW5zaWdu ZWQgaW50ICopX3RleHQ7CiAKIAkvKiBNb3ZlIG91cnNlbHZlcyBvdXQgb2YgTkZDIFNSQU0gKi8K ZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2JvYXJkcy9mcmVlc2NhbGUtbXgzNS0zLXN0YWNrLzNzdGFj ay5jIGIvYXJjaC9hcm0vYm9hcmRzL2ZyZWVzY2FsZS1teDM1LTMtc3RhY2svM3N0YWNrLmMKaW5k ZXggMTk5ODQxZi4uM2Q0YTljZiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vYm9hcmRzL2ZyZWVzY2Fs ZS1teDM1LTMtc3RhY2svM3N0YWNrLmMKKysrIGIvYXJjaC9hcm0vYm9hcmRzL2ZyZWVzY2FsZS1t eDM1LTMtc3RhY2svM3N0YWNrLmMKQEAgLTEyOCw4ICsxMjgsOCBAQCBzdGF0aWMgdm9pZCBzZXRf Ym9hcmRfcmV2KGludCByZXYpCiAKIHN0YXRpYyBpbnQgZjNzX21lbV9pbml0KHZvaWQpCiB7Ci0J YXJtX2FkZF9tZW1fZGV2aWNlKCJyYW0wIiwgSU1YX1NEUkFNX0NTMCwgMTI4ICogMTAyNCAqIDEw MjQpOwotCWFybV9hZGRfbWVtX2RldmljZSgicmFtMSIsIElNWF9TRFJBTV9DUzEsIDEyOCAqIDEw MjQgKiAxMDI0KTsKKwlhcm1fYWRkX21lbV9kZXZpY2UoInJhbTAiLCBNWDM1X0NTRDBfQkFTRV9B RERSLCAxMjggKiAxMDI0ICogMTAyNCk7CisJYXJtX2FkZF9tZW1fZGV2aWNlKCJyYW0xIiwgTVgz NV9DU0QxX0JBU0VfQUREUiwgMTI4ICogMTAyNCAqIDEwMjQpOwogCiAJcmV0dXJuIDA7CiB9CkBA IC0xNDQsNyArMTQ0LDcgQEAgc3RhdGljIGludCBmM3NfZGV2aWNlc19pbml0KHZvaWQpCiAJd3Jp dGVsKDB4MTAwMDBkMDMsIENTQ1JfTCgwKSk7CiAJd3JpdGVsKDB4MDA3MjA5MDAsIENTQ1JfQSgw KSk7CiAKLQlyZWcgPSByZWFkbChJTVhfQ0NNX0JBU0UgKyBDQ01fUkNTUik7CisJcmVnID0gcmVh ZGwoTVgzNV9DQ01fQkFTRV9BRERSICsgQ0NNX1JDU1IpOwogCS8qIHNvbWUgZnVzZXMgcHJvdmlk ZSB1cyB2aXRhbCBpbmZvcm1hdGlvbiBhYm91dCBjb25uZWN0ZWQgaGFyZHdhcmUgKi8KIAlpZiAo cmVnICYgMHgyMDAwMDAwMCkKIAkJbmFuZF9pbmZvLndpZHRoID0gMjsJLyogMTYgYml0ICovCkBA IC0xNTUsNyArMTU1LDcgQEAgc3RhdGljIGludCBmM3NfZGV2aWNlc19pbml0KHZvaWQpCiAJICog VGhpcyBwbGF0Zm9ybSBzdXBwb3J0cyBOT1IgYW5kIE5BTkQKIAkgKi8KIAlpbXgzNV9hZGRfbmFu ZCgmbmFuZF9pbmZvKTsKLQlhZGRfY2ZpX2ZsYXNoX2RldmljZShERVZJQ0VfSURfRFlOQU1JQywg SU1YX0NTMF9CQVNFLCA2NCAqIDEwMjQgKiAxMDI0LCAwKTsKKwlhZGRfY2ZpX2ZsYXNoX2Rldmlj ZShERVZJQ0VfSURfRFlOQU1JQywgTVgzNV9DUzBfQkFTRV9BRERSLCA2NCAqIDEwMjQgKiAxMDI0 LCAwKTsKIAogCXN3aXRjaCAoKHJlZyA+PiAyNSkgJiAweDMpIHsKIAljYXNlIDB4MDE6CQkvKiBO QU5EIGlzIHRoZSBzb3VyY2UgKi8KQEAgLTE3OCw3ICsxNzgsNyBAQCBzdGF0aWMgaW50IGYzc19k ZXZpY2VzX2luaXQodm9pZCkKIAlpbXgzNV9hZGRfaTJjMChOVUxMKTsKIAogCWlteDM1X2FkZF9m ZWMoJmZlY19pbmZvKTsKLQlhZGRfZ2VuZXJpY19kZXZpY2UoInNtYzkxMXgiLCBERVZJQ0VfSURf RFlOQU1JQywgTlVMTCwJSU1YX0NTNV9CQVNFLCBJTVhfQ1M1X1JBTkdFLAorCWFkZF9nZW5lcmlj X2RldmljZSgic21jOTExeCIsIERFVklDRV9JRF9EWU5BTUlDLCBOVUxMLAlNWDM1X0NTNV9CQVNF X0FERFIsIE1YMzVfQ1M1X1NJWkUsCiAJCQlJT1JFU09VUkNFX01FTSwgTlVMTCk7CiAKIAlpbXgz NV9hZGRfbW1jMChOVUxMKTsKQEAgLTI4Myw2NiArMjgzLDY2IEBAIHN0YXRpYyBpbnQgZjNzX2Nv cmVfaW5pdCh2b2lkKQogCXdyaXRlbCgweDIyMjIwQTAwLCBDU0NSX0EoNSkpOwogCiAJLyogZW5h YmxlIGNsb2NrIGZvciBJMkMxIGFuZCBGRUMgKi8KLQlyZWcgPSByZWFkbChJTVhfQ0NNX0JBU0Ug KyBDQ01fQ0dSMSk7CisJcmVnID0gcmVhZGwoTVgzNV9DQ01fQkFTRV9BRERSICsgQ0NNX0NHUjEp OwogCXJlZyB8PSAweDMgPDwgQ0NNX0NHUjFfRkVDX1NISUZUOwogCXJlZyB8PSAweDMgPDwgQ0NN X0NHUjFfSTJDMV9TSElGVDsKLQlyZWcgPSB3cml0ZWwocmVnLCBJTVhfQ0NNX0JBU0UgKyBDQ01f Q0dSMSk7CisJcmVnID0gd3JpdGVsKHJlZywgTVgzNV9DQ01fQkFTRV9BRERSICsgQ0NNX0NHUjEp OwogCiAJLyogQUlQUyBzZXR1cCAtIE9ubHkgc2V0dXAgTVBST1R4IHJlZ2lzdGVycy4gVGhlIFBB Q1IgZGVmYXVsdCB2YWx1ZXMgYXJlIGdvb2QuKi8KIAkvKgogCSAqIFNldCBhbGwgTVBST1R4IHRv IGJlIG5vbi1idWZmZXJhYmxlLCB0cnVzdGVkIGZvciBSL1csCiAJICogbm90IGZvcmNlZCB0byB1 c2VyLW1vZGUuCiAJICovCi0Jd3JpdGVsKDB4Nzc3Nzc3NzcsIElNWF9BSVBTMV9CQVNFKTsKLQl3 cml0ZWwoMHg3Nzc3Nzc3NywgSU1YX0FJUFMxX0JBU0UgKyAweDQpOwotCXdyaXRlbCgweDc3Nzc3 Nzc3LCBJTVhfQUlQUzJfQkFTRSk7Ci0Jd3JpdGVsKDB4Nzc3Nzc3NzcsIElNWF9BSVBTMl9CQVNF ICsgMHg0KTsKKwl3cml0ZWwoMHg3Nzc3Nzc3NywgTVgzNV9BSVBTMV9CQVNFX0FERFIpOworCXdy aXRlbCgweDc3Nzc3Nzc3LCBNWDM1X0FJUFMxX0JBU0VfQUREUiArIDB4NCk7CisJd3JpdGVsKDB4 Nzc3Nzc3NzcsIE1YMzVfQUlQUzJfQkFTRV9BRERSKTsKKwl3cml0ZWwoMHg3Nzc3Nzc3NywgTVgz NV9BSVBTMl9CQVNFX0FERFIgKyAweDQpOwogCiAJLyoKIAkgKiBDbGVhciB0aGUgb24gYW5kIG9m ZiBwZXJpcGhlcmFsIG1vZHVsZXMgU3VwZXJ2aXNvciBQcm90ZWN0IGJpdAogCSAqIGZvciBTRE1B IHRvIGFjY2VzcyB0aGVtLiBEaWQgbm90IGNoYW5nZSB0aGUgQUlQUyBjb250cm9sIHJlZ2lzdGVy cwogCSAqIChvZmZzZXQgMHgyMCkgYWNjZXNzIHR5cGUKIAkgKi8KLQl3cml0ZWwoMHgwLCBJTVhf QUlQUzFfQkFTRSArIDB4NDApOwotCXdyaXRlbCgweDAsIElNWF9BSVBTMV9CQVNFICsgMHg0NCk7 Ci0Jd3JpdGVsKDB4MCwgSU1YX0FJUFMxX0JBU0UgKyAweDQ4KTsKLQl3cml0ZWwoMHgwLCBJTVhf QUlQUzFfQkFTRSArIDB4NEMpOwotCXJlZyA9IHJlYWRsKElNWF9BSVBTMV9CQVNFICsgMHg1MCk7 CisJd3JpdGVsKDB4MCwgTVgzNV9BSVBTMV9CQVNFX0FERFIgKyAweDQwKTsKKwl3cml0ZWwoMHgw LCBNWDM1X0FJUFMxX0JBU0VfQUREUiArIDB4NDQpOworCXdyaXRlbCgweDAsIE1YMzVfQUlQUzFf QkFTRV9BRERSICsgMHg0OCk7CisJd3JpdGVsKDB4MCwgTVgzNV9BSVBTMV9CQVNFX0FERFIgKyAw eDRDKTsKKwlyZWcgPSByZWFkbChNWDM1X0FJUFMxX0JBU0VfQUREUiArIDB4NTApOwogCXJlZyAm PSAweDAwRkZGRkZGOwotCXdyaXRlbChyZWcsIElNWF9BSVBTMV9CQVNFICsgMHg1MCk7CisJd3Jp dGVsKHJlZywgTVgzNV9BSVBTMV9CQVNFX0FERFIgKyAweDUwKTsKIAotCXdyaXRlbCgweDAsIElN WF9BSVBTMl9CQVNFICsgMHg0MCk7Ci0Jd3JpdGVsKDB4MCwgSU1YX0FJUFMyX0JBU0UgKyAweDQ0 KTsKLQl3cml0ZWwoMHgwLCBJTVhfQUlQUzJfQkFTRSArIDB4NDgpOwotCXdyaXRlbCgweDAsIElN WF9BSVBTMl9CQVNFICsgMHg0Qyk7Ci0JcmVnID0gcmVhZGwoSU1YX0FJUFMyX0JBU0UgKyAweDUw KTsKKwl3cml0ZWwoMHgwLCBNWDM1X0FJUFMyX0JBU0VfQUREUiArIDB4NDApOworCXdyaXRlbCgw eDAsIE1YMzVfQUlQUzJfQkFTRV9BRERSICsgMHg0NCk7CisJd3JpdGVsKDB4MCwgTVgzNV9BSVBT Ml9CQVNFX0FERFIgKyAweDQ4KTsKKwl3cml0ZWwoMHgwLCBNWDM1X0FJUFMyX0JBU0VfQUREUiAr IDB4NEMpOworCXJlZyA9IHJlYWRsKE1YMzVfQUlQUzJfQkFTRV9BRERSICsgMHg1MCk7CiAJcmVn ICY9IDB4MDBGRkZGRkY7Ci0Jd3JpdGVsKHJlZywgSU1YX0FJUFMyX0JBU0UgKyAweDUwKTsKKwl3 cml0ZWwocmVnLCBNWDM1X0FJUFMyX0JBU0VfQUREUiArIDB4NTApOwogCiAJLyogTUFYIChNdWx0 aS1MYXllciBBSEIgQ3Jvc3NiYXIgU3dpdGNoKSBzZXR1cCAqLwogCiAJLyogTVBSIC0gcHJpb3Jp dHkgaXMgTTQgPiBNMiA+IE0zID4gTTUgPiBNMCA+IE0xICovCiAjZGVmaW5lIE1BWF9QQVJBTTEg MHgwMDMwMjE1NAotCXdyaXRlbChNQVhfUEFSQU0xLCBJTVhfTUFYX0JBU0UgKyAweDAwMCk7IC8q IGZvciBTMCAqLwotCXdyaXRlbChNQVhfUEFSQU0xLCBJTVhfTUFYX0JBU0UgKyAweDEwMCk7IC8q IGZvciBTMSAqLwotCXdyaXRlbChNQVhfUEFSQU0xLCBJTVhfTUFYX0JBU0UgKyAweDIwMCk7IC8q IGZvciBTMiAqLwotCXdyaXRlbChNQVhfUEFSQU0xLCBJTVhfTUFYX0JBU0UgKyAweDMwMCk7IC8q IGZvciBTMyAqLwotCXdyaXRlbChNQVhfUEFSQU0xLCBJTVhfTUFYX0JBU0UgKyAweDQwMCk7IC8q IGZvciBTNCAqLworCXdyaXRlbChNQVhfUEFSQU0xLCBNWDM1X01BWF9CQVNFX0FERFIgKyAweDAw MCk7IC8qIGZvciBTMCAqLworCXdyaXRlbChNQVhfUEFSQU0xLCBNWDM1X01BWF9CQVNFX0FERFIg KyAweDEwMCk7IC8qIGZvciBTMSAqLworCXdyaXRlbChNQVhfUEFSQU0xLCBNWDM1X01BWF9CQVNF X0FERFIgKyAweDIwMCk7IC8qIGZvciBTMiAqLworCXdyaXRlbChNQVhfUEFSQU0xLCBNWDM1X01B WF9CQVNFX0FERFIgKyAweDMwMCk7IC8qIGZvciBTMyAqLworCXdyaXRlbChNQVhfUEFSQU0xLCBN WDM1X01BWF9CQVNFX0FERFIgKyAweDQwMCk7IC8qIGZvciBTNCAqLwogCiAJLyogU0dQQ1IgLSBh bHdheXMgcGFyayBvbiBsYXN0IG1hc3RlciAqLwotCXdyaXRlbCgweDEwLCBJTVhfTUFYX0JBU0Ug KyAweDEwKTsJLyogZm9yIFMwICovCi0Jd3JpdGVsKDB4MTAsIElNWF9NQVhfQkFTRSArIDB4MTEw KTsJLyogZm9yIFMxICovCi0Jd3JpdGVsKDB4MTAsIElNWF9NQVhfQkFTRSArIDB4MjEwKTsJLyog Zm9yIFMyICovCi0Jd3JpdGVsKDB4MTAsIElNWF9NQVhfQkFTRSArIDB4MzEwKTsJLyogZm9yIFMz ICovCi0Jd3JpdGVsKDB4MTAsIElNWF9NQVhfQkFTRSArIDB4NDEwKTsJLyogZm9yIFM0ICovCisJ d3JpdGVsKDB4MTAsIE1YMzVfTUFYX0JBU0VfQUREUiArIDB4MTApOwkvKiBmb3IgUzAgKi8KKwl3 cml0ZWwoMHgxMCwgTVgzNV9NQVhfQkFTRV9BRERSICsgMHgxMTApOwkvKiBmb3IgUzEgKi8KKwl3 cml0ZWwoMHgxMCwgTVgzNV9NQVhfQkFTRV9BRERSICsgMHgyMTApOwkvKiBmb3IgUzIgKi8KKwl3 cml0ZWwoMHgxMCwgTVgzNV9NQVhfQkFTRV9BRERSICsgMHgzMTApOwkvKiBmb3IgUzMgKi8KKwl3 cml0ZWwoMHgxMCwgTVgzNV9NQVhfQkFTRV9BRERSICsgMHg0MTApOwkvKiBmb3IgUzQgKi8KIAog CS8qIE1HUENSIC0gcmVzdG9yZSBkZWZhdWx0IHZhbHVlcyAqLwotCXdyaXRlbCgweDAsIElNWF9N QVhfQkFTRSArIDB4ODAwKTsJLyogZm9yIE0wICovCi0Jd3JpdGVsKDB4MCwgSU1YX01BWF9CQVNF ICsgMHg5MDApOwkvKiBmb3IgTTEgKi8KLQl3cml0ZWwoMHgwLCBJTVhfTUFYX0JBU0UgKyAweGEw MCk7CS8qIGZvciBNMiAqLwotCXdyaXRlbCgweDAsIElNWF9NQVhfQkFTRSArIDB4YjAwKTsJLyog Zm9yIE0zICovCi0Jd3JpdGVsKDB4MCwgSU1YX01BWF9CQVNFICsgMHhjMDApOwkvKiBmb3IgTTQg Ki8KLQl3cml0ZWwoMHgwLCBJTVhfTUFYX0JBU0UgKyAweGQwMCk7CS8qIGZvciBNNSAqLworCXdy aXRlbCgweDAsIE1YMzVfTUFYX0JBU0VfQUREUiArIDB4ODAwKTsJLyogZm9yIE0wICovCisJd3Jp dGVsKDB4MCwgTVgzNV9NQVhfQkFTRV9BRERSICsgMHg5MDApOwkvKiBmb3IgTTEgKi8KKwl3cml0 ZWwoMHgwLCBNWDM1X01BWF9CQVNFX0FERFIgKyAweGEwMCk7CS8qIGZvciBNMiAqLworCXdyaXRl bCgweDAsIE1YMzVfTUFYX0JBU0VfQUREUiArIDB4YjAwKTsJLyogZm9yIE0zICovCisJd3JpdGVs KDB4MCwgTVgzNV9NQVhfQkFTRV9BRERSICsgMHhjMDApOwkvKiBmb3IgTTQgKi8KKwl3cml0ZWwo MHgwLCBNWDM1X01BWF9CQVNFX0FERFIgKyAweGQwMCk7CS8qIGZvciBNNSAqLwogCiAJcmV0dXJu IDA7CiB9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib2FyZHMvZnJlZXNjYWxlLW14MzUtMy1zdGFj ay9sb3dsZXZlbF9pbml0LlMgYi9hcmNoL2FybS9ib2FyZHMvZnJlZXNjYWxlLW14MzUtMy1zdGFj ay9sb3dsZXZlbF9pbml0LlMKaW5kZXggZDFiZTdlOC4uZjVmMDk5OCAxMDA2NDQKLS0tIGEvYXJj aC9hcm0vYm9hcmRzL2ZyZWVzY2FsZS1teDM1LTMtc3RhY2svbG93bGV2ZWxfaW5pdC5TCisrKyBi L2FyY2gvYXJtL2JvYXJkcy9mcmVlc2NhbGUtbXgzNS0zLXN0YWNrL2xvd2xldmVsX2luaXQuUwpA QCAtNTIsNyArNTIsNyBAQCBDQ01fUERSMF9XOgkJLndvcmQJMHgwMDAwMTAwMAogTVBDVExfUEFS QU1fMzk5X1c6CS53b3JkCU1QQ1RMX1BBUkFNXzM5OQogTVBDVExfUEFSQU1fNTMyX1c6CS53b3Jk CU1QQ1RMX1BBUkFNXzUzMgogUFBDVExfUEFSQU1fVzoJCS53b3JkCVBQQ1RMX1BBUkFNXzMwMAot Q0NNX0JBU0VfQUREUl9XOgkud29yZAlJTVhfQ0NNX0JBU0UKK0NDTV9CQVNFX0FERFJfVzoJLndv cmQJTVgzNV9DQ01fQkFTRV9BRERSCiAKIC5nbG9ibCBib2FyZF9pbml0X2xvd2xldmVsCiBib2Fy ZF9pbml0X2xvd2xldmVsOgpAQCAtMTU1LDggKzE1NSw4IEBAIGJvYXJkX2luaXRfbG93bGV2ZWw6 CiAjaWZkZWYgQ09ORklHX05BTkRfSU1YX0JPT1QKIAlsZHIJc3AsID1TVEFDS19CQVNFICsgU1RB Q0tfU0laRSAtIDEyCQkvKiBTZXR1cCBhIHRlbXBvcmFyeSBzdGFjayBpbiBTRFJBTSAqLwogCi0J bGRyCXIwLCA9SU1YX05GQ19CQVNFCQkvKiBzdGFydCBvZiBORkMgU1JBTSAqLwotCWxkcglyMiwg PUlNWF9ORkNfQkFTRSArIDB4ODAwCS8qIGVuZCBvZiBORkMgU1JBTSAqLworCWxkcglyMCwgPU1Y MzVfTkZDX0JBU0VfQUREUgkJLyogc3RhcnQgb2YgTkZDIFNSQU0gKi8KKwlsZHIJcjIsID1NWDM1 X05GQ19CQVNFX0FERFIgKyAweDgwMAkvKiBlbmQgb2YgTkZDIFNSQU0gKi8KIAogCS8qIHNraXAg TkFORCBib290IGlmIG5vdCBydW5uaW5nIGZyb20gTkZDIHNwYWNlICovCiAJY21wCXBjLCByMApk aWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9hcmRzL2d1Zi1jdXBpZC9ib2FyZC5jIGIvYXJjaC9hcm0v Ym9hcmRzL2d1Zi1jdXBpZC9ib2FyZC5jCmluZGV4IGQ1ZjIyOTEuLjk3N2Q3MWMgMTAwNjQ0Ci0t LSBhL2FyY2gvYXJtL2JvYXJkcy9ndWYtY3VwaWQvYm9hcmQuYworKysgYi9hcmNoL2FybS9ib2Fy ZHMvZ3VmLWN1cGlkL2JvYXJkLmMKQEAgLTk1LDcgKzk1LDcgQEAgc3RhdGljIHN0cnVjdCBpbXhf aXB1X2ZiX3BsYXRmb3JtX2RhdGEgaXB1X2ZiX2RhdGEgPSB7CiAKIHN0YXRpYyBpbnQgY3VwaWRf bWVtX2luaXQodm9pZCkKIHsKLQlhcm1fYWRkX21lbV9kZXZpY2UoInJhbTAiLCBJTVhfU0RSQU1f Q1MwLCAxMjggKiAxMDI0ICogMTAyNCk7CisJYXJtX2FkZF9tZW1fZGV2aWNlKCJyYW0wIiwgTVgz NV9DU0QwX0JBU0VfQUREUiwgMTI4ICogMTAyNCAqIDEwMjQpOwogCiAJcmV0dXJuIDA7CiB9CkBA IC0xMTYsNyArMTE2LDcgQEAgc3RhdGljIGludCBjdXBpZF9kZXZpY2VzX2luaXQodm9pZCkKIAln cGlvX2RpcmVjdGlvbl9vdXRwdXQoR1BJT19MQ0RfRU5BQkxFLCAwKTsKIAlncGlvX2RpcmVjdGlv bl9vdXRwdXQoR1BJT19MQ0RfQkFDS0xJR0hULCAwKTsKIAotCXJlZyA9IHJlYWRsKElNWF9DQ01f QkFTRSArIENDTV9SQ1NSKTsKKwlyZWcgPSByZWFkbChNWDM1X0NDTV9CQVNFX0FERFIgKyBDQ01f UkNTUik7CiAJLyogc29tZSBmdXNlcyBwcm92aWRlIHVzIHZpdGFsIGluZm9ybWF0aW9uIGFib3V0 IGNvbm5lY3RlZCBoYXJkd2FyZSAqLwogCWlmIChyZWcgJiAweDIwMDAwMDAwKQogCQluYW5kX2lu Zm8ud2lkdGggPSAyOyAgICAvKiAxNiBiaXQgKi8KQEAgLTI1MCw1NiArMjUwLDU2IEBAIHN0YXRp YyBpbnQgY3VwaWRfY29yZV9zZXR1cCh2b2lkKQogCSAqIFNldCBhbGwgTVBST1R4IHRvIGJlIG5v bi1idWZmZXJhYmxlLCB0cnVzdGVkIGZvciBSL1csCiAJICogbm90IGZvcmNlZCB0byB1c2VyLW1v ZGUuCiAJICovCi0Jd3JpdGVsKDB4Nzc3Nzc3NzcsIElNWF9BSVBTMV9CQVNFKTsKLQl3cml0ZWwo MHg3Nzc3Nzc3NywgSU1YX0FJUFMxX0JBU0UgKyAweDQpOwotCXdyaXRlbCgweDc3Nzc3Nzc3LCBJ TVhfQUlQUzJfQkFTRSk7Ci0Jd3JpdGVsKDB4Nzc3Nzc3NzcsIElNWF9BSVBTMl9CQVNFICsgMHg0 KTsKKwl3cml0ZWwoMHg3Nzc3Nzc3NywgTVgzNV9BSVBTMV9CQVNFX0FERFIpOworCXdyaXRlbCgw eDc3Nzc3Nzc3LCBNWDM1X0FJUFMxX0JBU0VfQUREUiArIDB4NCk7CisJd3JpdGVsKDB4Nzc3Nzc3 NzcsIE1YMzVfQUlQUzJfQkFTRV9BRERSKTsKKwl3cml0ZWwoMHg3Nzc3Nzc3NywgTVgzNV9BSVBT Ml9CQVNFX0FERFIgKyAweDQpOwogCiAJLyoKIAkgKiBDbGVhciB0aGUgb24gYW5kIG9mZiBwZXJp cGhlcmFsIG1vZHVsZXMgU3VwZXJ2aXNvciBQcm90ZWN0IGJpdAogCSAqIGZvciBTRE1BIHRvIGFj Y2VzcyB0aGVtLiBEaWQgbm90IGNoYW5nZSB0aGUgQUlQUyBjb250cm9sIHJlZ2lzdGVycwogCSAq IChvZmZzZXQgMHgyMCkgYWNjZXNzIHR5cGUKIAkgKi8KLQl3cml0ZWwoMHgwLCBJTVhfQUlQUzFf QkFTRSArIDB4NDApOwotCXdyaXRlbCgweDAsIElNWF9BSVBTMV9CQVNFICsgMHg0NCk7Ci0Jd3Jp dGVsKDB4MCwgSU1YX0FJUFMxX0JBU0UgKyAweDQ4KTsKLQl3cml0ZWwoMHgwLCBJTVhfQUlQUzFf QkFTRSArIDB4NEMpOwotCXRtcCA9IHJlYWRsKElNWF9BSVBTMV9CQVNFICsgMHg1MCk7CisJd3Jp dGVsKDB4MCwgTVgzNV9BSVBTMV9CQVNFX0FERFIgKyAweDQwKTsKKwl3cml0ZWwoMHgwLCBNWDM1 X0FJUFMxX0JBU0VfQUREUiArIDB4NDQpOworCXdyaXRlbCgweDAsIE1YMzVfQUlQUzFfQkFTRV9B RERSICsgMHg0OCk7CisJd3JpdGVsKDB4MCwgTVgzNV9BSVBTMV9CQVNFX0FERFIgKyAweDRDKTsK Kwl0bXAgPSByZWFkbChNWDM1X0FJUFMxX0JBU0VfQUREUiArIDB4NTApOwogCXRtcCAmPSAweDAw RkZGRkZGOwotCXdyaXRlbCh0bXAsIElNWF9BSVBTMV9CQVNFICsgMHg1MCk7CisJd3JpdGVsKHRt cCwgTVgzNV9BSVBTMV9CQVNFX0FERFIgKyAweDUwKTsKIAotCXdyaXRlbCgweDAsIElNWF9BSVBT Ml9CQVNFICsgMHg0MCk7Ci0Jd3JpdGVsKDB4MCwgSU1YX0FJUFMyX0JBU0UgKyAweDQ0KTsKLQl3 cml0ZWwoMHgwLCBJTVhfQUlQUzJfQkFTRSArIDB4NDgpOwotCXdyaXRlbCgweDAsIElNWF9BSVBT Ml9CQVNFICsgMHg0Qyk7Ci0JdG1wID0gcmVhZGwoSU1YX0FJUFMyX0JBU0UgKyAweDUwKTsKKwl3 cml0ZWwoMHgwLCBNWDM1X0FJUFMyX0JBU0VfQUREUiArIDB4NDApOworCXdyaXRlbCgweDAsIE1Y MzVfQUlQUzJfQkFTRV9BRERSICsgMHg0NCk7CisJd3JpdGVsKDB4MCwgTVgzNV9BSVBTMl9CQVNF X0FERFIgKyAweDQ4KTsKKwl3cml0ZWwoMHgwLCBNWDM1X0FJUFMyX0JBU0VfQUREUiArIDB4NEMp OworCXRtcCA9IHJlYWRsKE1YMzVfQUlQUzJfQkFTRV9BRERSICsgMHg1MCk7CiAJdG1wICY9IDB4 MDBGRkZGRkY7Ci0Jd3JpdGVsKHRtcCwgSU1YX0FJUFMyX0JBU0UgKyAweDUwKTsKKwl3cml0ZWwo dG1wLCBNWDM1X0FJUFMyX0JBU0VfQUREUiArIDB4NTApOwogCiAJLyogTUFYIChNdWx0aS1MYXll ciBBSEIgQ3Jvc3NiYXIgU3dpdGNoKSBzZXR1cCAqLwogCiAJLyogTVBSIC0gcHJpb3JpdHkgaXMg TTQgPiBNMiA+IE0zID4gTTUgPiBNMCA+IE0xICovCiAjZGVmaW5lIE1BWF9QQVJBTTEgMHgwMDMw MjE1NAotCXdyaXRlbChNQVhfUEFSQU0xLCBJTVhfTUFYX0JBU0UgKyAweDApOyAgIC8qIGZvciBT MCAqLwotCXdyaXRlbChNQVhfUEFSQU0xLCBJTVhfTUFYX0JBU0UgKyAweDEwMCk7IC8qIGZvciBT MSAqLwotCXdyaXRlbChNQVhfUEFSQU0xLCBJTVhfTUFYX0JBU0UgKyAweDIwMCk7IC8qIGZvciBT MiAqLwotCXdyaXRlbChNQVhfUEFSQU0xLCBJTVhfTUFYX0JBU0UgKyAweDMwMCk7IC8qIGZvciBT MyAqLwotCXdyaXRlbChNQVhfUEFSQU0xLCBJTVhfTUFYX0JBU0UgKyAweDQwMCk7IC8qIGZvciBT NCAqLworCXdyaXRlbChNQVhfUEFSQU0xLCBNWDM1X01BWF9CQVNFX0FERFIgKyAweDApOyAgIC8q IGZvciBTMCAqLworCXdyaXRlbChNQVhfUEFSQU0xLCBNWDM1X01BWF9CQVNFX0FERFIgKyAweDEw MCk7IC8qIGZvciBTMSAqLworCXdyaXRlbChNQVhfUEFSQU0xLCBNWDM1X01BWF9CQVNFX0FERFIg KyAweDIwMCk7IC8qIGZvciBTMiAqLworCXdyaXRlbChNQVhfUEFSQU0xLCBNWDM1X01BWF9CQVNF X0FERFIgKyAweDMwMCk7IC8qIGZvciBTMyAqLworCXdyaXRlbChNQVhfUEFSQU0xLCBNWDM1X01B WF9CQVNFX0FERFIgKyAweDQwMCk7IC8qIGZvciBTNCAqLwogCiAJLyogU0dQQ1IgLSBhbHdheXMg cGFyayBvbiBsYXN0IG1hc3RlciAqLwotCXdyaXRlbCgweDEwLCBJTVhfTUFYX0JBU0UgKyAweDEw KTsJLyogZm9yIFMwICovCi0Jd3JpdGVsKDB4MTAsIElNWF9NQVhfQkFTRSArIDB4MTEwKTsJLyog Zm9yIFMxICovCi0Jd3JpdGVsKDB4MTAsIElNWF9NQVhfQkFTRSArIDB4MjEwKTsJLyogZm9yIFMy ICovCi0Jd3JpdGVsKDB4MTAsIElNWF9NQVhfQkFTRSArIDB4MzEwKTsJLyogZm9yIFMzICovCi0J d3JpdGVsKDB4MTAsIElNWF9NQVhfQkFTRSArIDB4NDEwKTsJLyogZm9yIFM0ICovCisJd3JpdGVs KDB4MTAsIE1YMzVfTUFYX0JBU0VfQUREUiArIDB4MTApOwkvKiBmb3IgUzAgKi8KKwl3cml0ZWwo MHgxMCwgTVgzNV9NQVhfQkFTRV9BRERSICsgMHgxMTApOwkvKiBmb3IgUzEgKi8KKwl3cml0ZWwo MHgxMCwgTVgzNV9NQVhfQkFTRV9BRERSICsgMHgyMTApOwkvKiBmb3IgUzIgKi8KKwl3cml0ZWwo MHgxMCwgTVgzNV9NQVhfQkFTRV9BRERSICsgMHgzMTApOwkvKiBmb3IgUzMgKi8KKwl3cml0ZWwo MHgxMCwgTVgzNV9NQVhfQkFTRV9BRERSICsgMHg0MTApOwkvKiBmb3IgUzQgKi8KIAogCS8qIE1H UENSIC0gcmVzdG9yZSBkZWZhdWx0IHZhbHVlcyAqLwotCXdyaXRlbCgweDAsIElNWF9NQVhfQkFT RSArIDB4ODAwKTsJLyogZm9yIE0wICovCi0Jd3JpdGVsKDB4MCwgSU1YX01BWF9CQVNFICsgMHg5 MDApOwkvKiBmb3IgTTEgKi8KLQl3cml0ZWwoMHgwLCBJTVhfTUFYX0JBU0UgKyAweGEwMCk7CS8q IGZvciBNMiAqLwotCXdyaXRlbCgweDAsIElNWF9NQVhfQkFTRSArIDB4YjAwKTsJLyogZm9yIE0z ICovCi0Jd3JpdGVsKDB4MCwgSU1YX01BWF9CQVNFICsgMHhjMDApOwkvKiBmb3IgTTQgKi8KLQl3 cml0ZWwoMHgwLCBJTVhfTUFYX0JBU0UgKyAweGQwMCk7CS8qIGZvciBNNSAqLworCXdyaXRlbCgw eDAsIE1YMzVfTUFYX0JBU0VfQUREUiArIDB4ODAwKTsJLyogZm9yIE0wICovCisJd3JpdGVsKDB4 MCwgTVgzNV9NQVhfQkFTRV9BRERSICsgMHg5MDApOwkvKiBmb3IgTTEgKi8KKwl3cml0ZWwoMHgw LCBNWDM1X01BWF9CQVNFX0FERFIgKyAweGEwMCk7CS8qIGZvciBNMiAqLworCXdyaXRlbCgweDAs IE1YMzVfTUFYX0JBU0VfQUREUiArIDB4YjAwKTsJLyogZm9yIE0zICovCisJd3JpdGVsKDB4MCwg TVgzNV9NQVhfQkFTRV9BRERSICsgMHhjMDApOwkvKiBmb3IgTTQgKi8KKwl3cml0ZWwoMHgwLCBN WDM1X01BWF9CQVNFX0FERFIgKyAweGQwMCk7CS8qIGZvciBNNSAqLwogCiAJd3JpdGVsKDB4MDAw MERDRjYsIENTQ1JfVSgwKSk7IC8qIENTMDogTk9SIEZsYXNoICovCiAJd3JpdGVsKDB4NDQ0QTQ1 NDEsIENTQ1JfTCgwKSk7CkBAIC0zMTgsNyArMzE4LDcgQEAgc3RhdGljIGludCBjdXBpZF9jb3Jl X3NldHVwKHZvaWQpCiAJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tCiAJICogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDAKIAkgKi8KLQl3cml0ZWwo MHg0MCwgSU1YX00zSUZfQkFTRSk7CisJd3JpdGVsKDB4NDAsIE1YMzVfTTNJRl9CQVNFX0FERFIp OwogCiAJcmV0dXJuIDA7CiB9CkBAIC0zMzksMTAgKzMzOSwxMCBAQCBzdGF0aWMgaW50IGRvX2Nw dWZyZXEoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAogCXN3aXRjaCAoZnJlcSkgewogCWNhc2Ug Mzk5OgotCQl3cml0ZWwoTVBDVExfUEFSQU1fMzk5LCBJTVhfQ0NNX0JBU0UgKyBDQ01fTVBDVEwp OworCQl3cml0ZWwoTVBDVExfUEFSQU1fMzk5LCBNWDM1X0NDTV9CQVNFX0FERFIgKyBDQ01fTVBD VEwpOwogCQlicmVhazsKIAljYXNlIDUzMjoKLQkJd3JpdGVsKE1QQ1RMX1BBUkFNXzUzMiwgSU1Y X0NDTV9CQVNFICsgQ0NNX01QQ1RMKTsKKwkJd3JpdGVsKE1QQ1RMX1BBUkFNXzUzMiwgTVgzNV9D Q01fQkFTRV9BRERSICsgQ0NNX01QQ1RMKTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcmV0dXJu IENPTU1BTkRfRVJST1JfVVNBR0U7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib2FyZHMvZ3VmLWN1 cGlkL2xvd2xldmVsLmMgYi9hcmNoL2FybS9ib2FyZHMvZ3VmLWN1cGlkL2xvd2xldmVsLmMKaW5k ZXggMGY3ZDc1My4uMDE2MDE0NCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vYm9hcmRzL2d1Zi1jdXBp ZC9sb3dsZXZlbC5jCisrKyBiL2FyY2gvYXJtL2JvYXJkcy9ndWYtY3VwaWQvbG93bGV2ZWwuYwpA QCAtNDcsMTAgKzQ3LDEwIEBAIHN0YXRpYyB2b2lkIF9fYmFyZV9pbml0IF9fbmFrZWQgaW5zZHJh bSh2b2lkKQogCXVpbnQzMl90IHI7CiAKIAkvKiBTcGVlZCB1cCBOQU5EIGNvbnRyb2xsZXIgYnkg YWRqdXN0aW5nIHRoZSBORkMgZGl2aWRlciAqLwotCXIgPSByZWFkbChJTVhfQ0NNX0JBU0UgKyBD Q01fUERSNCk7CisJciA9IHJlYWRsKE1YMzVfQ0NNX0JBU0VfQUREUiArIENDTV9QRFI0KTsKIAly ICY9IH4oMHhmIDw8IDI4KTsKIAlyIHw9IDB4MSA8PCAyODsKLQl3cml0ZWwociwgSU1YX0NDTV9C QVNFICsgQ0NNX1BEUjQpOworCXdyaXRlbChyLCBNWDM1X0NDTV9CQVNFX0FERFIgKyBDQ01fUERS NCk7CiAKIAkvKiBzZXR1cCBhIHN0YWNrIHRvIGJlIGFibGUgdG8gY2FsbCBpbXhfbmFuZF9sb2Fk X2ltYWdlKCkgKi8KIAlyID0gU1RBQ0tfQkFTRSArIFNUQUNLX1NJWkUgLSAxMjsKQEAgLTY1LDcg KzY1LDcgQEAgc3RhdGljIHZvaWQgX19iYXJlX2luaXQgX19uYWtlZCBpbnNkcmFtKHZvaWQpCiBz dGF0aWMgdm9pZCBfX2JhcmVfaW5pdCBub2lubGluZSBzZXR1cF9zZHJhbSh1MzIgbWVtc2l6ZSwg dTMyIG1vZGUsIHUzMiBzZHJhbV9hZGRyKQogewogCXZvbGF0aWxlIGludCBsb29wOwotCXZvaWQg KnI5ID0gKHZvaWQgKilJTVhfU0RSQU1fQ1MwOworCXZvaWQgKnI5ID0gKHZvaWQgKilNWDM1X0NT RDBfQkFTRV9BRERSOwogCXUzMiByMTEgPSAweGRhOyAvKiBkdW1teSBjb25zdGFudCAqLwogCXUz MiByMSwgcjA7CiAKQEAgLTI0Niw3ICsyNDYsNyBAQCB2b2lkIF9fYmFyZV9pbml0IF9fbmFrZWQg Ym9hcmRfaW5pdF9sb3dsZXZlbCh2b2lkKQogCiAjZGVmaW5lCVdET0dfV01DUiAweDgKIAkvKiBz aWxlbmNlIHJlc2V0IFdET0cgKi8KLQl3cml0ZXcoMCwgSU1YX1dET0dfQkFTRSArIFdET0dfV01D Uik7CisJd3JpdGV3KDAsIE1YMzVfV0RPR19CQVNFX0FERFIgKyBXRE9HX1dNQ1IpOwogCiAJLyog U2tpcCBTRFJBTSBpbml0aWFsaXphdGlvbiBpZiB3ZSBydW4gZnJvbSBSQU0gKi8KIAlyMCA9IGdl dF9wYygpOwpAQCAtMjk2LDI3ICsyOTYsMjcgQEAgdm9pZCBfX2JhcmVfaW5pdCBfX25ha2VkIGJv YXJkX2luaXRfbG93bGV2ZWwodm9pZCkKIAkvKiBDb25maWd1cmUgY2xvY2tzICovCiAKIAkvKiBz ZXR1cCBjcHUvYnVzIGNsb2NrcyAqLwotCXdyaXRlbCgweDAwM2Y0MjA4LCBJTVhfQ0NNX0JBU0Ug KyBDQ01fQ0NNUik7CisJd3JpdGVsKDB4MDAzZjQyMDgsIE1YMzVfQ0NNX0JBU0VfQUREUiArIEND TV9DQ01SKTsKIAogCS8qIGNvbmZpZ3VyZSBNUExMICovCi0Jd3JpdGVsKE1QQ1RMX1BBUkFNXzUz MiwgSU1YX0NDTV9CQVNFICsgQ0NNX01QQ1RMKTsKKwl3cml0ZWwoTVBDVExfUEFSQU1fNTMyLCBN WDM1X0NDTV9CQVNFX0FERFIgKyBDQ01fTVBDVEwpOwogCiAJLyogY29uZmlndXJlIFBQTEwgKi8K LQl3cml0ZWwoUFBDVExfUEFSQU1fMzAwLCBJTVhfQ0NNX0JBU0UgKyBDQ01fUFBDVEwpOworCXdy aXRlbChQUENUTF9QQVJBTV8zMDAsIE1YMzVfQ0NNX0JBU0VfQUREUiArIENDTV9QUENUTCk7CiAK IAkvKiBjb25maWd1cmUgY29yZSBkaXZpZGVycyAqLwogCXIwID0gUERSMF9DQ01fUEVSX0FIQigx KSB8IFBEUjBfSFNQX1BPREYoMik7CiAKLQl3cml0ZWwocjAsIElNWF9DQ01fQkFTRSArIENDTV9Q RFIwKTsKKwl3cml0ZWwocjAsIE1YMzVfQ0NNX0JBU0VfQUREUiArIENDTV9QRFIwKTsKIAogCS8q IGNvbmZpZ3VyZSBjbG9jay1nYXRlcyAqLwotCXIwID0gcmVhZGwoSU1YX0NDTV9CQVNFICsgQ0NN X0NHUjApOworCXIwID0gcmVhZGwoTVgzNV9DQ01fQkFTRV9BRERSICsgQ0NNX0NHUjApOwogCXIw IHw9IDB4MDAzMDAwMDA7Ci0Jd3JpdGVsKHIwLCBJTVhfQ0NNX0JBU0UgKyBDQ01fQ0dSMCk7CisJ d3JpdGVsKHIwLCBNWDM1X0NDTV9CQVNFX0FERFIgKyBDQ01fQ0dSMCk7CiAKLQlyMCA9IHJlYWRs KElNWF9DQ01fQkFTRSArIENDTV9DR1IxKTsKKwlyMCA9IHJlYWRsKE1YMzVfQ0NNX0JBU0VfQURE UiArIENDTV9DR1IxKTsKIAlyMCB8PSAweDAwMDAwYzAzOwotCXdyaXRlbChyMCwgSU1YX0NDTV9C QVNFICsgQ0NNX0NHUjEpOworCXdyaXRlbChyMCwgTVgzNV9DQ01fQkFTRV9BRERSICsgQ0NNX0NH UjEpOwogCiAJLyogQ29uZmlndXJlIFNEUkFNICovCiAJLyogVHJ5IDMyLUJpdCAyNTYgTUIgRERS IG1lbW9yeSAqLwpAQCAtMzI2LDEwICszMjYsMTAgQEAgdm9pZCBfX2JhcmVfaW5pdCBfX25ha2Vk IGJvYXJkX2luaXRfbG93bGV2ZWwodm9pZCkKICNpZmRlZiBDT05GSUdfTkFORF9JTVhfQk9PVAog CS8qIHNraXAgTkFORCBib290IGlmIG5vdCBydW5uaW5nIGZyb20gTkZDIHNwYWNlICovCiAJcjAg PSBnZXRfcGMoKTsKLQlpZiAocjAgPCBJTVhfTkZDX0JBU0UgfHwgcjAgPiBJTVhfTkZDX0JBU0Ug KyAweDgwMCkKKwlpZiAocjAgPCBNWDM1X05GQ19CQVNFX0FERFIgfHwgcjAgPiBNWDM1X05GQ19C QVNFX0FERFIgKyAweDgwMCkKIAkJYm9hcmRfaW5pdF9sb3dsZXZlbF9yZXR1cm4oKTsKIAotCXNy YyA9ICh1bnNpZ25lZCBpbnQgKilJTVhfTkZDX0JBU0U7CisJc3JjID0gKHVuc2lnbmVkIGludCAq KU1YMzVfTkZDX0JBU0VfQUREUjsKIAl0cmcgPSAodW5zaWduZWQgaW50ICopX3RleHQ7CiAKIAkv KiBNb3ZlIG91cnNlbHZlcyBvdXQgb2YgTkZDIFNSQU0gKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJt L2JvYXJkcy9wY20wNDMvbG93bGV2ZWwuYyBiL2FyY2gvYXJtL2JvYXJkcy9wY20wNDMvbG93bGV2 ZWwuYwppbmRleCAzMmQxMmRkLi5jZmY3MzMwIDEwMDY0NAotLS0gYS9hcmNoL2FybS9ib2FyZHMv cGNtMDQzL2xvd2xldmVsLmMKKysrIGIvYXJjaC9hcm0vYm9hcmRzL3BjbTA0My9sb3dsZXZlbC5j CkBAIC00NSwxMCArNDUsMTAgQEAgc3RhdGljIHZvaWQgX19iYXJlX2luaXQgX19uYWtlZCBpbnNk cmFtKHZvaWQpCiAJdWludDMyX3QgcjsKIAogCS8qIFNwZWVkIHVwIE5BTkQgY29udHJvbGxlciBi eSBhZGp1c3RpbmcgdGhlIE5GQyBkaXZpZGVyICovCi0JciA9IHJlYWRsKElNWF9DQ01fQkFTRSAr IENDTV9QRFI0KTsKKwlyID0gcmVhZGwoTVgzNV9DQ01fQkFTRV9BRERSICsgQ0NNX1BEUjQpOwog CXIgJj0gfigweGYgPDwgMjgpOwogCXIgfD0gMHgxIDw8IDI4OwotCXdyaXRlbChyLCBJTVhfQ0NN X0JBU0UgKyBDQ01fUERSNCk7CisJd3JpdGVsKHIsIE1YMzVfQ0NNX0JBU0VfQUREUiArIENDTV9Q RFI0KTsKIAogCS8qIHNldHVwIGEgc3RhY2sgdG8gYmUgYWJsZSB0byBjYWxsIGlteF9uYW5kX2xv YWRfaW1hZ2UoKSAqLwogCXIgPSBTVEFDS19CQVNFICsgU1RBQ0tfU0laRSAtIDEyOwpAQCAtNjMs OCArNjMsOCBAQCBzdGF0aWMgdm9pZCBfX2JhcmVfaW5pdCBfX25ha2VkIGluc2RyYW0odm9pZCkK IHZvaWQgX19iYXJlX2luaXQgX19uYWtlZCBib2FyZF9pbml0X2xvd2xldmVsKHZvaWQpCiB7CiAJ dWludDMyX3QgciwgczsKLQl1bnNpZ25lZCBsb25nIGNjbV9iYXNlID0gSU1YX0NDTV9CQVNFOwot CXVuc2lnbmVkIGxvbmcgaW9tdXhjX2Jhc2UgPSBJTVhfSU9NVVhDX0JBU0U7CisJdW5zaWduZWQg bG9uZyBjY21fYmFzZSA9IE1YMzVfQ0NNX0JBU0VfQUREUjsKKwl1bnNpZ25lZCBsb25nIGlvbXV4 Y19iYXNlID0gTVgzNV9JT01VWENfQkFTRV9BRERSOwogI2lmZGVmIENPTkZJR19OQU5EX0lNWF9C T09UCiAJdW5zaWduZWQgaW50ICp0cmcsICpzcmM7CiAJaW50IGk7CkBAIC0xMTUsNyArMTE1LDcg QEAgdm9pZCBfX2JhcmVfaW5pdCBfX25ha2VkIGJvYXJkX2luaXRfbG93bGV2ZWwodm9pZCkKIAl3 cml0ZWwoUFBDVExfUEFSQU1fMzAwLCBjY21fYmFzZSArIENDTV9QUENUTCk7CiAKIAkvKiBDaGVj ayBzaWxpY29uIHJldmlzaW9uIGFuZCB1c2UgNTMyTUh6IGlmID49Mi4xICovCi0JciA9IHJlYWRs KElNWF9JSU1fQkFTRSArIDB4MjQpOworCXIgPSByZWFkbChNWDM1X0lJTV9CQVNFX0FERFIgKyAw eDI0KTsKIAlpZiAociA+PSBJTVgzNV9DSElQX1JFVklTSU9OXzJfMSkKIAkJd3JpdGVsKENDTV9Q RFIwXzUzMiwgY2NtX2Jhc2UgKyBDQ01fUERSMCk7CiAJZWxzZQpAQCAtMTMwLDkgKzEzMCw5IEBA IHZvaWQgX19iYXJlX2luaXQgX19uYWtlZCBib2FyZF9pbml0X2xvd2xldmVsKHZvaWQpCiAJciB8 PSAweDAwMDAwMDAzOwogCXdyaXRlbChyLCBjY21fYmFzZSArIENDTV9DR1IxKTsKIAotCXIgPSBy ZWFkbChJTVhfTDJDQ19CQVNFICsgTDJYMF9BVVhfQ1RSTCk7CisJciA9IHJlYWRsKE1YMzVfTDJD Q19CQVNFX0FERFIgKyBMMlgwX0FVWF9DVFJMKTsKIAlyIHw9IDB4MTAwMDsKLQl3cml0ZWwociwg SU1YX0wyQ0NfQkFTRSArIEwyWDBfQVVYX0NUUkwpOworCXdyaXRlbChyLCBNWDM1X0wyQ0NfQkFT RV9BRERSICsgTDJYMF9BVVhfQ1RSTCk7CiAKIAkvKiBTa2lwIFNEUkFNIGluaXRpYWxpemF0aW9u IGlmIHdlIHJ1biBmcm9tIFJBTSAqLwogCXIgPSBnZXRfcGMoKTsKQEAgLTE1OCw3ICsxNTgsNyBA QCB2b2lkIF9fYmFyZV9pbml0IF9fbmFrZWQgYm9hcmRfaW5pdF9sb3dsZXZlbCh2b2lkKQogCS8q IHNlbGVjdCBQcmVjaGFyZ2UtQWxsIG1vZGUgKi8KIAl3cml0ZWwoMHg5MjIyMDAwMCwgRVNEQ1RM MCk7CiAJLyogUHJlY2hhcmdlLUFsbCAqLwotCXdyaXRlbCgweDEyMzQ1Njc4LCBJTVhfU0RSQU1f Q1MwICsgMHg0MDApOworCXdyaXRlbCgweDEyMzQ1Njc4LCBNWDM1X0NTRDBfQkFTRV9BRERSICsg MHg0MDApOwogCiAJLyogc2VsZWN0IExvYWQtTW9kZS1SZWdpc3RlciBtb2RlICovCiAJd3JpdGVs KDB4QjgwMDEwMDAsIEVTRENUTDApOwpAQCAtMTc0LDEzICsxNzQsMTMgQEAgdm9pZCBfX2JhcmVf aW5pdCBfX25ha2VkIGJvYXJkX2luaXRfbG93bGV2ZWwodm9pZCkKIAkvKiBzZWxlY3QgUHJlY2hh cmdlLUFsbCBtb2RlICovCiAJd3JpdGVsKDB4OTIyMjAwMDAsIEVTRENUTDApOwogCS8qIFByZWNo YXJnZS1BbGwgKi8KLQl3cml0ZWwoMHgxMjM0NTY3OCwgSU1YX1NEUkFNX0NTMCArIDB4NDAwKTsK Kwl3cml0ZWwoMHgxMjM0NTY3OCwgTVgzNV9DU0QwX0JBU0VfQUREUiArIDB4NDAwKTsKIAogCS8q IHNlbGVjdCBNYW51YWwtUmVmcmVzaCBtb2RlICovCiAJd3JpdGVsKDB4QTIyMjAwMDAsIEVTRENU TDApOwogCS8qIE1hbnVhbC1SZWZyZXNoIDIgdGltZXMgKi8KLQl3cml0ZWwoMHg4NzY1NDMyMSwg SU1YX1NEUkFNX0NTMCk7Ci0Jd3JpdGVsKDB4ODc2NTQzMjEsIElNWF9TRFJBTV9DUzApOworCXdy aXRlbCgweDg3NjU0MzIxLCBNWDM1X0NTRDBfQkFTRV9BRERSKTsKKwl3cml0ZWwoMHg4NzY1NDMy MSwgTVgzNV9DU0QwX0JBU0VfQUREUik7CiAKIAkvKiBzZWxlY3QgTG9hZC1Nb2RlLVJlZ2lzdGVy IG1vZGUgKi8KIAl3cml0ZWwoMHhCMjIyMDAwMCwgRVNEQ1RMMCk7CkBAIC0yMDUsMTAgKzIwNSwx MCBAQCB2b2lkIF9fYmFyZV9pbml0IF9fbmFrZWQgYm9hcmRfaW5pdF9sb3dsZXZlbCh2b2lkKQog I2lmZGVmIENPTkZJR19OQU5EX0lNWF9CT09UCiAJLyogc2tpcCBOQU5EIGJvb3QgaWYgbm90IHJ1 bm5pbmcgZnJvbSBORkMgc3BhY2UgKi8KIAlyID0gZ2V0X3BjKCk7Ci0JaWYgKHIgPCBJTVhfTkZD X0JBU0UgfHwgciA+IElNWF9ORkNfQkFTRSArIDB4ODAwKQorCWlmIChyIDwgTVgzNV9ORkNfQkFT RV9BRERSIHx8IHIgPiBNWDM1X05GQ19CQVNFX0FERFIgKyAweDgwMCkKIAkJYm9hcmRfaW5pdF9s b3dsZXZlbF9yZXR1cm4oKTsKIAotCXNyYyA9ICh1bnNpZ25lZCBpbnQgKilJTVhfTkZDX0JBU0U7 CisJc3JjID0gKHVuc2lnbmVkIGludCAqKU1YMzVfTkZDX0JBU0VfQUREUjsKIAl0cmcgPSAodW5z aWduZWQgaW50ICopX3RleHQ7CiAKIAkvKiBNb3ZlIG91cnNlbHZlcyBvdXQgb2YgTkZDIFNSQU0g Ki8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2JvYXJkcy9wY20wNDMvcGNtMDQzLmMgYi9hcmNoL2Fy bS9ib2FyZHMvcGNtMDQzL3BjbTA0My5jCmluZGV4IDMxNzAxNjEuLjNiNGVjNzcgMTAwNjQ0Ci0t LSBhL2FyY2gvYXJtL2JvYXJkcy9wY20wNDMvcGNtMDQzLmMKKysrIGIvYXJjaC9hcm0vYm9hcmRz L3BjbTA0My9wY20wNDMuYwpAQCAtOTMsMTMgKzkzLDEzIEBAIHN0YXRpYyBzdHJ1Y3QgZmJfdmlk ZW9tb2RlIHBjbTA0M19mYl9tb2RlW10gPSB7CiBzdGF0aWMgc3RydWN0IGlteF9pcHVfZmJfcGxh dGZvcm1fZGF0YSBpcHVfZmJfZGF0YSA9IHsKIAkubW9kZQkJCT0gcGNtMDQzX2ZiX21vZGUsCiAJ Lm51bV9tb2RlcwkJPSBBUlJBWV9TSVpFKHBjbTA0M19mYl9tb2RlKSwKLQkuZnJhbWVidWZmZXJf b3ZsCT0gKHZvaWQgKikgKElNWF9TRFJBTV9DUzAgKyBTWl8xMjhNIC0gU1pfMU0pLAorCS5mcmFt ZWJ1ZmZlcl9vdmwJPSAodm9pZCAqKSAoTVgzNV9DU0QwX0JBU0VfQUREUiArIFNaXzEyOE0gLSBT Wl8xTSksCiAJLmJwcAkJCT0gMTYsCiB9OwogCiBzdGF0aWMgaW50IHBjbTA0M19tZW1faW5pdCh2 b2lkKQogewotCWFybV9hZGRfbWVtX2RldmljZSgicmFtMCIsIElNWF9TRFJBTV9DUzAsIFNaXzEy OE0pOworCWFybV9hZGRfbWVtX2RldmljZSgicmFtMCIsIE1YMzVfQ1NEMF9CQVNFX0FERFIsIFNa XzEyOE0pOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xMjgsNyArMTI4LDcgQEAgc3RhdGljIGludCBp bXgzNV9kZXZpY2VzX2luaXQodm9pZCkKIAogCWxlZF9ncGlvX3JlZ2lzdGVyKCZsZWQwKTsKIAot CXJlZyA9IHJlYWRsKElNWF9DQ01fQkFTRSArIENDTV9SQ1NSKTsKKwlyZWcgPSByZWFkbChNWDM1 X0NDTV9CQVNFX0FERFIgKyBDQ01fUkNTUik7CiAJLyogc29tZSBmdXNlcyBwcm92aWRlIHVzIHZp dGFsIGluZm9ybWF0aW9uIGFib3V0IGNvbm5lY3RlZCBoYXJkd2FyZSAqLwogCWlmIChyZWcgJiAw eDIwMDAwMDAwKQogCQluYW5kX2luZm8ud2lkdGggPSAyOyAgICAvKiAxNiBiaXQgKi8KQEAgLTE0 NCw3ICsxNDQsNyBAQCBzdGF0aWMgaW50IGlteDM1X2RldmljZXNfaW5pdCh2b2lkKQogCSAqIFVw IHRvIDMyTWlCIE5PUiB0eXBlIGZsYXNoLCBjb25uZWN0ZWQgdG8KIAkgKiBDUyBsaW5lIDAsIGRh dGEgd2lkdGggaXMgMTYgYml0CiAJICovCi0JYWRkX2NmaV9mbGFzaF9kZXZpY2UoREVWSUNFX0lE X0RZTkFNSUMsIElNWF9DUzBfQkFTRSwgMzIgKiAxMDI0ICogMTAyNCwgMCk7CisJYWRkX2NmaV9m bGFzaF9kZXZpY2UoREVWSUNFX0lEX0RZTkFNSUMsIE1YMzVfQ1MwX0JBU0VfQUREUiwgMzIgKiAx MDI0ICogMTAyNCwgMCk7CiAKIAlpZiAoKHJlZyAmIDB4YzAwKSA9PSAweDgwMCkgeyAgIC8qIHJl c2V0IG1vZGU6IGV4dGVybmFsIGJvb3QgKi8KIAkJc3dpdGNoICggKHJlZyA+PiAyNSkgJiAweDMp IHsKQEAgLTIyNCw1NiArMjI0LDU2IEBAIHN0YXRpYyBpbnQgcGNtMDQzX2NvcmVfc2V0dXAodm9p ZCkKIAkgKiBTZXQgYWxsIE1QUk9UeCB0byBiZSBub24tYnVmZmVyYWJsZSwgdHJ1c3RlZCBmb3Ig Ui9XLAogCSAqIG5vdCBmb3JjZWQgdG8gdXNlci1tb2RlLgogCSAqLwotCXdyaXRlbCgweDc3Nzc3 Nzc3LCBJTVhfQUlQUzFfQkFTRSk7Ci0Jd3JpdGVsKDB4Nzc3Nzc3NzcsIElNWF9BSVBTMV9CQVNF ICsgMHg0KTsKLQl3cml0ZWwoMHg3Nzc3Nzc3NywgSU1YX0FJUFMyX0JBU0UpOwotCXdyaXRlbCgw eDc3Nzc3Nzc3LCBJTVhfQUlQUzJfQkFTRSArIDB4NCk7CisJd3JpdGVsKDB4Nzc3Nzc3NzcsIE1Y MzVfQUlQUzFfQkFTRV9BRERSKTsKKwl3cml0ZWwoMHg3Nzc3Nzc3NywgTVgzNV9BSVBTMV9CQVNF X0FERFIgKyAweDQpOworCXdyaXRlbCgweDc3Nzc3Nzc3LCBNWDM1X0FJUFMyX0JBU0VfQUREUik7 CisJd3JpdGVsKDB4Nzc3Nzc3NzcsIE1YMzVfQUlQUzJfQkFTRV9BRERSICsgMHg0KTsKIAogCS8q CiAJICogQ2xlYXIgdGhlIG9uIGFuZCBvZmYgcGVyaXBoZXJhbCBtb2R1bGVzIFN1cGVydmlzb3Ig UHJvdGVjdCBiaXQKIAkgKiBmb3IgU0RNQSB0byBhY2Nlc3MgdGhlbS4gRGlkIG5vdCBjaGFuZ2Ug dGhlIEFJUFMgY29udHJvbCByZWdpc3RlcnMKIAkgKiAob2Zmc2V0IDB4MjApIGFjY2VzcyB0eXBl CiAJICovCi0Jd3JpdGVsKDB4MCwgSU1YX0FJUFMxX0JBU0UgKyAweDQwKTsKLQl3cml0ZWwoMHgw LCBJTVhfQUlQUzFfQkFTRSArIDB4NDQpOwotCXdyaXRlbCgweDAsIElNWF9BSVBTMV9CQVNFICsg MHg0OCk7Ci0Jd3JpdGVsKDB4MCwgSU1YX0FJUFMxX0JBU0UgKyAweDRDKTsKLQl0bXAgPSByZWFk bChJTVhfQUlQUzFfQkFTRSArIDB4NTApOworCXdyaXRlbCgweDAsIE1YMzVfQUlQUzFfQkFTRV9B RERSICsgMHg0MCk7CisJd3JpdGVsKDB4MCwgTVgzNV9BSVBTMV9CQVNFX0FERFIgKyAweDQ0KTsK Kwl3cml0ZWwoMHgwLCBNWDM1X0FJUFMxX0JBU0VfQUREUiArIDB4NDgpOworCXdyaXRlbCgweDAs IE1YMzVfQUlQUzFfQkFTRV9BRERSICsgMHg0Qyk7CisJdG1wID0gcmVhZGwoTVgzNV9BSVBTMV9C QVNFX0FERFIgKyAweDUwKTsKIAl0bXAgJj0gMHgwMEZGRkZGRjsKLQl3cml0ZWwodG1wLCBJTVhf QUlQUzFfQkFTRSArIDB4NTApOworCXdyaXRlbCh0bXAsIE1YMzVfQUlQUzFfQkFTRV9BRERSICsg MHg1MCk7CiAKLQl3cml0ZWwoMHgwLCBJTVhfQUlQUzJfQkFTRSArIDB4NDApOwotCXdyaXRlbCgw eDAsIElNWF9BSVBTMl9CQVNFICsgMHg0NCk7Ci0Jd3JpdGVsKDB4MCwgSU1YX0FJUFMyX0JBU0Ug KyAweDQ4KTsKLQl3cml0ZWwoMHgwLCBJTVhfQUlQUzJfQkFTRSArIDB4NEMpOwotCXRtcCA9IHJl YWRsKElNWF9BSVBTMl9CQVNFICsgMHg1MCk7CisJd3JpdGVsKDB4MCwgTVgzNV9BSVBTMl9CQVNF X0FERFIgKyAweDQwKTsKKwl3cml0ZWwoMHgwLCBNWDM1X0FJUFMyX0JBU0VfQUREUiArIDB4NDQp OworCXdyaXRlbCgweDAsIE1YMzVfQUlQUzJfQkFTRV9BRERSICsgMHg0OCk7CisJd3JpdGVsKDB4 MCwgTVgzNV9BSVBTMl9CQVNFX0FERFIgKyAweDRDKTsKKwl0bXAgPSByZWFkbChNWDM1X0FJUFMy X0JBU0VfQUREUiArIDB4NTApOwogCXRtcCAmPSAweDAwRkZGRkZGOwotCXdyaXRlbCh0bXAsIElN WF9BSVBTMl9CQVNFICsgMHg1MCk7CisJd3JpdGVsKHRtcCwgTVgzNV9BSVBTMl9CQVNFX0FERFIg KyAweDUwKTsKIAogCS8qIE1BWCAoTXVsdGktTGF5ZXIgQUhCIENyb3NzYmFyIFN3aXRjaCkgc2V0 dXAgKi8KIAogCS8qIE1QUiAtIHByaW9yaXR5IGlzIE00ID4gTTIgPiBNMyA+IE01ID4gTTAgPiBN MSAqLwogI2RlZmluZSBNQVhfUEFSQU0xIDB4MDAzMDIxNTQKLQl3cml0ZWwoTUFYX1BBUkFNMSwg SU1YX01BWF9CQVNFICsgMHgwKTsgICAvKiBmb3IgUzAgKi8KLQl3cml0ZWwoTUFYX1BBUkFNMSwg SU1YX01BWF9CQVNFICsgMHgxMDApOyAvKiBmb3IgUzEgKi8KLQl3cml0ZWwoTUFYX1BBUkFNMSwg SU1YX01BWF9CQVNFICsgMHgyMDApOyAvKiBmb3IgUzIgKi8KLQl3cml0ZWwoTUFYX1BBUkFNMSwg SU1YX01BWF9CQVNFICsgMHgzMDApOyAvKiBmb3IgUzMgKi8KLQl3cml0ZWwoTUFYX1BBUkFNMSwg SU1YX01BWF9CQVNFICsgMHg0MDApOyAvKiBmb3IgUzQgKi8KKwl3cml0ZWwoTUFYX1BBUkFNMSwg TVgzNV9NQVhfQkFTRV9BRERSICsgMHgwKTsgICAvKiBmb3IgUzAgKi8KKwl3cml0ZWwoTUFYX1BB UkFNMSwgTVgzNV9NQVhfQkFTRV9BRERSICsgMHgxMDApOyAvKiBmb3IgUzEgKi8KKwl3cml0ZWwo TUFYX1BBUkFNMSwgTVgzNV9NQVhfQkFTRV9BRERSICsgMHgyMDApOyAvKiBmb3IgUzIgKi8KKwl3 cml0ZWwoTUFYX1BBUkFNMSwgTVgzNV9NQVhfQkFTRV9BRERSICsgMHgzMDApOyAvKiBmb3IgUzMg Ki8KKwl3cml0ZWwoTUFYX1BBUkFNMSwgTVgzNV9NQVhfQkFTRV9BRERSICsgMHg0MDApOyAvKiBm b3IgUzQgKi8KIAogCS8qIFNHUENSIC0gYWx3YXlzIHBhcmsgb24gbGFzdCBtYXN0ZXIgKi8KLQl3 cml0ZWwoMHgxMCwgSU1YX01BWF9CQVNFICsgMHgxMCk7CS8qIGZvciBTMCAqLwotCXdyaXRlbCgw eDEwLCBJTVhfTUFYX0JBU0UgKyAweDExMCk7CS8qIGZvciBTMSAqLwotCXdyaXRlbCgweDEwLCBJ TVhfTUFYX0JBU0UgKyAweDIxMCk7CS8qIGZvciBTMiAqLwotCXdyaXRlbCgweDEwLCBJTVhfTUFY X0JBU0UgKyAweDMxMCk7CS8qIGZvciBTMyAqLwotCXdyaXRlbCgweDEwLCBJTVhfTUFYX0JBU0Ug KyAweDQxMCk7CS8qIGZvciBTNCAqLworCXdyaXRlbCgweDEwLCBNWDM1X01BWF9CQVNFX0FERFIg KyAweDEwKTsJLyogZm9yIFMwICovCisJd3JpdGVsKDB4MTAsIE1YMzVfTUFYX0JBU0VfQUREUiAr IDB4MTEwKTsJLyogZm9yIFMxICovCisJd3JpdGVsKDB4MTAsIE1YMzVfTUFYX0JBU0VfQUREUiAr IDB4MjEwKTsJLyogZm9yIFMyICovCisJd3JpdGVsKDB4MTAsIE1YMzVfTUFYX0JBU0VfQUREUiAr IDB4MzEwKTsJLyogZm9yIFMzICovCisJd3JpdGVsKDB4MTAsIE1YMzVfTUFYX0JBU0VfQUREUiAr IDB4NDEwKTsJLyogZm9yIFM0ICovCiAKIAkvKiBNR1BDUiAtIHJlc3RvcmUgZGVmYXVsdCB2YWx1 ZXMgKi8KLQl3cml0ZWwoMHgwLCBJTVhfTUFYX0JBU0UgKyAweDgwMCk7CS8qIGZvciBNMCAqLwot CXdyaXRlbCgweDAsIElNWF9NQVhfQkFTRSArIDB4OTAwKTsJLyogZm9yIE0xICovCi0Jd3JpdGVs KDB4MCwgSU1YX01BWF9CQVNFICsgMHhhMDApOwkvKiBmb3IgTTIgKi8KLQl3cml0ZWwoMHgwLCBJ TVhfTUFYX0JBU0UgKyAweGIwMCk7CS8qIGZvciBNMyAqLwotCXdyaXRlbCgweDAsIElNWF9NQVhf QkFTRSArIDB4YzAwKTsJLyogZm9yIE00ICovCi0Jd3JpdGVsKDB4MCwgSU1YX01BWF9CQVNFICsg MHhkMDApOwkvKiBmb3IgTTUgKi8KKwl3cml0ZWwoMHgwLCBNWDM1X01BWF9CQVNFX0FERFIgKyAw eDgwMCk7CS8qIGZvciBNMCAqLworCXdyaXRlbCgweDAsIE1YMzVfTUFYX0JBU0VfQUREUiArIDB4 OTAwKTsJLyogZm9yIE0xICovCisJd3JpdGVsKDB4MCwgTVgzNV9NQVhfQkFTRV9BRERSICsgMHhh MDApOwkvKiBmb3IgTTIgKi8KKwl3cml0ZWwoMHgwLCBNWDM1X01BWF9CQVNFX0FERFIgKyAweGIw MCk7CS8qIGZvciBNMyAqLworCXdyaXRlbCgweDAsIE1YMzVfTUFYX0JBU0VfQUREUiArIDB4YzAw KTsJLyogZm9yIE00ICovCisJd3JpdGVsKDB4MCwgTVgzNV9NQVhfQkFTRV9BRERSICsgMHhkMDAp OwkvKiBmb3IgTTUgKi8KIAogCS8qCiAJICogTTNJRiBDb250cm9sIFJlZ2lzdGVyIChNM0lGQ1RM KQpAQCAtMjg4LDcgKzI4OCw3IEBAIHN0YXRpYyBpbnQgcGNtMDQzX2NvcmVfc2V0dXAodm9pZCkK IAkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAtLS0tLS0tLS0tLS0KIAkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MAogCSAqLwotCXdyaXRlbCgweDQwLCBJTVhfTTNJ Rl9CQVNFKTsKKwl3cml0ZWwoMHg0MCwgTVgzNV9NM0lGX0JBU0VfQUREUik7CiAKIAlyZXR1cm4g MDsKIH0KQEAgLTMwOSwxMCArMzA5LDEwIEBAIHN0YXRpYyBpbnQgZG9fY3B1ZnJlcShpbnQgYXJn YywgY2hhciAqYXJndltdKQogCiAJc3dpdGNoIChmcmVxKSB7CiAJY2FzZSAzOTk6Ci0JCXdyaXRl bChNUENUTF9QQVJBTV8zOTksIElNWF9DQ01fQkFTRSArIENDTV9NUENUTCk7CisJCXdyaXRlbChN UENUTF9QQVJBTV8zOTksIE1YMzVfQ0NNX0JBU0VfQUREUiArIENDTV9NUENUTCk7CiAJCWJyZWFr OwogCWNhc2UgNTMyOgotCQl3cml0ZWwoTVBDVExfUEFSQU1fNTMyLCBJTVhfQ0NNX0JBU0UgKyBD Q01fTVBDVEwpOworCQl3cml0ZWwoTVBDVExfUEFSQU1fNTMyLCBNWDM1X0NDTV9CQVNFX0FERFIg KyBDQ01fTVBDVEwpOwogCQlicmVhazsKIAlkZWZhdWx0OgogCQlyZXR1cm4gQ09NTUFORF9FUlJP Ul9VU0FHRTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtaW14L2lteDM1LmMgYi9hcmNoL2Fy bS9tYWNoLWlteC9pbXgzNS5jCmluZGV4IDU3OWUxNDguLjJlOTRmMTcgMTAwNjQ0Ci0tLSBhL2Fy Y2gvYXJtL21hY2gtaW14L2lteDM1LmMKKysrIGIvYXJjaC9hcm0vbWFjaC1pbXgvaW14MzUuYwpA QCAtMjIsNyArMjIsNyBAQAogaW50IGlteF9zaWxpY29uX3JldmlzaW9uKCkKIHsKIAl1aW50MzJf dCByZWc7Ci0JcmVnID0gcmVhZGwoSU1YX0lJTV9CQVNFICsgSUlNX1NSRVYpOworCXJlZyA9IHJl YWRsKE1YMzVfSUlNX0JBU0VfQUREUiArIElJTV9TUkVWKTsKIAkvKiAww5cwMCA9IFRPIDEuMCwg Rmlyc3Qgc2lsaWNvbiAqLwogCXJlZyArPSBJTVhfQ0hJUF9SRVZfMV8wOwogCkBAIC00MSw3ICs0 MSw3IEBAIGludCBpbXhfc2lsaWNvbl9yZXZpc2lvbigpCiAKIHN0YXRpYyBpbnQgaW14MzVfbDJf Zml4KHZvaWQpCiB7Ci0Jd3JpdGVsKDB4NTE1LCBJTVhfQ0xLQ1RMX0JBU0UgKyBMMl9NRU1fVkFM KTsKKwl3cml0ZWwoMHg1MTUsIE1YMzVfQ0xLQ1RMX0JBU0VfQUREUiArIEwyX01FTV9WQUwpOwog CiAJcmV0dXJuIDA7CiB9CkBAIC00OSwxMyArNDksMTMgQEAgY29yZV9pbml0Y2FsbChpbXgzNV9s Ml9maXgpOwogCiBzdGF0aWMgaW50IGlteDM1X2luaXQodm9pZCkKIHsKLQlhZGRfZ2VuZXJpY19k ZXZpY2UoImlteF9paW0iLCAwLCBOVUxMLCBJTVhfSUlNX0JBU0UsIFNaXzRLLAorCWFkZF9nZW5l cmljX2RldmljZSgiaW14X2lpbSIsIDAsIE5VTEwsIE1YMzVfSUlNX0JBU0VfQUREUiwgU1pfNEss CiAJCQlJT1JFU09VUkNFX01FTSwgTlVMTCk7CiAKLQlhZGRfZ2VuZXJpY19kZXZpY2UoImlteDMx LWdwdCIsIDAsIE5VTEwsIDB4NTNmOTAwMDAsIDB4MTAwLCBJT1JFU09VUkNFX01FTSwgTlVMTCk7 Ci0JYWRkX2dlbmVyaWNfZGV2aWNlKCJpbXgzMS1ncGlvIiwgMCwgTlVMTCwgMHg1M2ZjYzAwMCwg MHgxMDAwLCBJT1JFU09VUkNFX01FTSwgTlVMTCk7Ci0JYWRkX2dlbmVyaWNfZGV2aWNlKCJpbXgz MS1ncGlvIiwgMSwgTlVMTCwgMHg1M2ZkMDAwMCwgMHgxMDAwLCBJT1JFU09VUkNFX01FTSwgTlVM TCk7Ci0JYWRkX2dlbmVyaWNfZGV2aWNlKCJpbXgzMS1ncGlvIiwgMiwgTlVMTCwgMHg1M2ZhNDAw MCwgMHgxMDAwLCBJT1JFU09VUkNFX01FTSwgTlVMTCk7CisJYWRkX2dlbmVyaWNfZGV2aWNlKCJp bXgzMS1ncHQiLCAwLCBOVUxMLCBNWDM1X0dQVDFfQkFTRV9BRERSLCAweDEwMCwgSU9SRVNPVVJD RV9NRU0sIE5VTEwpOworCWFkZF9nZW5lcmljX2RldmljZSgiaW14LWdwaW8iLCAwLCBOVUxMLCBN WDM1X0dQSU8xX0JBU0VfQUREUiwgMHgxMDAwLCBJT1JFU09VUkNFX01FTSwgTlVMTCk7CisJYWRk X2dlbmVyaWNfZGV2aWNlKCJpbXgtZ3BpbyIsIDEsIE5VTEwsIE1YMzVfR1BJTzJfQkFTRV9BRERS LCAweDEwMDAsIElPUkVTT1VSQ0VfTUVNLCBOVUxMKTsKKwlhZGRfZ2VuZXJpY19kZXZpY2UoImlt eC1ncGlvIiwgMiwgTlVMTCwgTVgzNV9HUElPM19CQVNFX0FERFIsIDB4MTAwMCwgSU9SRVNPVVJD RV9NRU0sIE5VTEwpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNo LWlteC9pbmNsdWRlL21hY2gvZGV2aWNlcy1pbXgzNS5oIGIvYXJjaC9hcm0vbWFjaC1pbXgvaW5j bHVkZS9tYWNoL2RldmljZXMtaW14MzUuaAppbmRleCA5ZWNhYTM1Li4yN2M0OWU3IDEwMDY0NAot LS0gYS9hcmNoL2FybS9tYWNoLWlteC9pbmNsdWRlL21hY2gvZGV2aWNlcy1pbXgzNS5oCisrKyBi L2FyY2gvYXJtL21hY2gtaW14L2luY2x1ZGUvbWFjaC9kZXZpY2VzLWlteDM1LmgKQEAgLTMsNjAg KzMsNzAgQEAKIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgZGV2aWNlX2QgKmlteDM1X2FkZF9pMmMw KHN0cnVjdCBpMmNfcGxhdGZvcm1fZGF0YSAqcGRhdGEpCiB7Ci0JcmV0dXJuIGlteF9hZGRfaTJj KCh2b2lkICopSU1YX0kyQzFfQkFTRSwgMCwgcGRhdGEpOworCXJldHVybiBpbXhfYWRkX2kyYygo dm9pZCAqKU1YMzVfSTJDMV9CQVNFX0FERFIsIDAsIHBkYXRhKTsKIH0KIAogc3RhdGljIGlubGlu ZSBzdHJ1Y3QgZGV2aWNlX2QgKmlteDM1X2FkZF9pMmMxKHN0cnVjdCBpMmNfcGxhdGZvcm1fZGF0 YSAqcGRhdGEpCiB7Ci0JcmV0dXJuIGlteF9hZGRfaTJjKCh2b2lkICopSU1YX0kyQzJfQkFTRSwg MSwgcGRhdGEpOworCXJldHVybiBpbXhfYWRkX2kyYygodm9pZCAqKU1YMzVfSTJDMl9CQVNFX0FE RFIsIDEsIHBkYXRhKTsKIH0KIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgZGV2aWNlX2QgKmlteDM1 X2FkZF9pMmMyKHN0cnVjdCBpMmNfcGxhdGZvcm1fZGF0YSAqcGRhdGEpCiB7Ci0JcmV0dXJuIGlt eF9hZGRfaTJjKCh2b2lkICopSU1YX0kyQzNfQkFTRSwgMiwgcGRhdGEpOworCXJldHVybiBpbXhf YWRkX2kyYygodm9pZCAqKU1YMzVfSTJDM19CQVNFX0FERFIsIDIsIHBkYXRhKTsKIH0KIAogc3Rh dGljIGlubGluZSBzdHJ1Y3QgZGV2aWNlX2QgKmlteDM1X2FkZF9zcGkwKHN0cnVjdCBzcGlfaW14 X21hc3RlciAqcGRhdGEpCiB7Ci0JcmV0dXJuIGlteF9hZGRfc3BpKCh2b2lkICopSU1YX0NTUEkx X0JBU0UsIDAsIHBkYXRhKTsKKwlyZXR1cm4gaW14X2FkZF9zcGkoKHZvaWQgKilNWDM1X0NTUEkx X0JBU0VfQUREUiwgMCwgcGRhdGEpOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBkZXZpY2Vf ZCAqaW14MzVfYWRkX3NwaShzdHJ1Y3Qgc3BpX2lteF9tYXN0ZXIgKnBkYXRhKQoreworCXJldHVy biBpbXhfYWRkX3NwaSgodm9pZCAqKU1YMzVfQ1NQSTJfQkFTRV9BRERSLCAxLCBwZGF0YSk7CiB9 CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IGRldmljZV9kICppbXgzNV9hZGRfdWFydDAodm9pZCkK IHsKLQlyZXR1cm4gaW14X2FkZF91YXJ0KCh2b2lkICopSU1YX1VBUlQxX0JBU0UsIDApOworCXJl dHVybiBpbXhfYWRkX3VhcnQoKHZvaWQgKilNWDM1X1VBUlQxX0JBU0VfQUREUiwgMCk7CiB9CiAK IHN0YXRpYyBpbmxpbmUgc3RydWN0IGRldmljZV9kICppbXgzNV9hZGRfdWFydDEodm9pZCkKIHsK LQlyZXR1cm4gaW14X2FkZF91YXJ0KCh2b2lkICopSU1YX1VBUlQyX0JBU0UsIDEpOworCXJldHVy biBpbXhfYWRkX3VhcnQoKHZvaWQgKilNWDM1X1VBUlQyX0JBU0VfQUREUiwgMSk7Cit9CisKK3N0 YXRpYyBpbmxpbmUgc3RydWN0IGRldmljZV9kICppbXgzNV9hZGRfdWFydDIodm9pZCkKK3sKKwly ZXR1cm4gaW14X2FkZF91YXJ0KCh2b2lkICopTVgzNV9VQVJUM19CQVNFX0FERFIsIDIpOwogfQog CiBzdGF0aWMgaW5saW5lIHN0cnVjdCBkZXZpY2VfZCAqaW14MzVfYWRkX25hbmQoc3RydWN0IGlt eF9uYW5kX3BsYXRmb3JtX2RhdGEgKnBkYXRhKQogewotCXJldHVybiBpbXhfYWRkX25hbmQoKHZv aWQgKilJTVhfTkZDX0JBU0UsIHBkYXRhKTsKKwlyZXR1cm4gaW14X2FkZF9uYW5kKCh2b2lkICop TVgzNV9ORkNfQkFTRV9BRERSLCBwZGF0YSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IGRl dmljZV9kICppbXgzNV9hZGRfZmIoc3RydWN0IGlteF9pcHVfZmJfcGxhdGZvcm1fZGF0YSAqcGRh dGEpCiB7Ci0JcmV0dXJuIGlteF9hZGRfaXB1ZmIoKHZvaWQgKilJTVhfSVBVX0JBU0UsIHBkYXRh KTsKKwlyZXR1cm4gaW14X2FkZF9pcHVmYigodm9pZCAqKU1YMzVfSVBVX0NUUkxfQkFTRV9BRERS LCBwZGF0YSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IGRldmljZV9kICppbXgzNV9hZGRf ZmVjKHN0cnVjdCBmZWNfcGxhdGZvcm1fZGF0YSAqcGRhdGEpCiB7Ci0JcmV0dXJuIGlteF9hZGRf ZmVjKCh2b2lkICopSU1YX0ZFQ19CQVNFLCBwZGF0YSk7CisJcmV0dXJuIGlteF9hZGRfZmVjKCh2 b2lkICopTVgzNV9GRUNfQkFTRV9BRERSLCBwZGF0YSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgc3Ry dWN0IGRldmljZV9kICppbXgzNV9hZGRfbW1jMChzdHJ1Y3QgZXNkaGNfcGxhdGZvcm1fZGF0YSAq cGRhdGEpCiB7Ci0JcmV0dXJuIGlteF9hZGRfZXNkaGMoKHZvaWQgKilJTVhfU0RIQzFfQkFTRSwg MCwgcGRhdGEpOworCXJldHVybiBpbXhfYWRkX2VzZGhjKCh2b2lkICopTVgzNV9FU0RIQzFfQkFT RV9BRERSLCAwLCBwZGF0YSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IGRldmljZV9kICpp bXgzNV9hZGRfbW1jMShzdHJ1Y3QgZXNkaGNfcGxhdGZvcm1fZGF0YSAqcGRhdGEpCiB7Ci0JcmV0 dXJuIGlteF9hZGRfZXNkaGMoKHZvaWQgKilJTVhfU0RIQzJfQkFTRSwgMSwgcGRhdGEpOworCXJl dHVybiBpbXhfYWRkX2VzZGhjKCh2b2lkICopTVgzNV9FU0RIQzJfQkFTRV9BRERSLCAxLCBwZGF0 YSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IGRldmljZV9kICppbXgzNV9hZGRfbW1jMihz dHJ1Y3QgZXNkaGNfcGxhdGZvcm1fZGF0YSAqcGRhdGEpCiB7Ci0JcmV0dXJuIGlteF9hZGRfZXNk aGMoKHZvaWQgKilJTVhfU0RIQzNfQkFTRSwgMiwgcGRhdGEpOworCXJldHVybiBpbXhfYWRkX2Vz ZGhjKCh2b2lkICopTVgzNV9FU0RIQzNfQkFTRV9BRERSLCAyLCBwZGF0YSk7CiB9CmRpZmYgLS1n aXQgYS9hcmNoL2FybS9tYWNoLWlteC9pbmNsdWRlL21hY2gvaW14MzUtcmVncy5oIGIvYXJjaC9h cm0vbWFjaC1pbXgvaW5jbHVkZS9tYWNoL2lteDM1LXJlZ3MuaAppbmRleCA1YTRhYjkwLi4wYTRm NDIzIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWlteC9pbmNsdWRlL21hY2gvaW14MzUtcmVn cy5oCisrKyBiL2FyY2gvYXJtL21hY2gtaW14L2luY2x1ZGUvbWFjaC9pbXgzNS1yZWdzLmgKQEAg LTE5LDYgKzE5LDggQEAKICNpZm5kZWYgX19BU01fQVJDSF9NWDM1X1JFR1NfSAogI2RlZmluZSBf X0FTTV9BUkNIX01YMzVfUkVHU19ICiAKKyNpbmNsdWRlIDxzaXplcy5oPgorCiAvKgogICogc2Fu aXR5IGNoZWNrCiAgKi8KQEAgLTI2LDMyICsyOCwxMjEgQEAKICMgZXJyb3IgIlBsZWFzZSBkbyBu b3QgaW5jbHVkZSBkaXJlY3RseS4gVXNlIGlteC1yZWdzLmggaW5zdGVhZC4iCiAjZW5kaWYKIAot I2RlZmluZSBJTVhfTDJDQ19CQVNFCQkweDMwMDAwMDAwCi0jZGVmaW5lIElNWF9DTEtDVExfQkFT RQkJMHg0M0YwQzAwMAotI2RlZmluZSBJTVhfVUFSVDFfQkFTRQkJMHg0M0Y5MDAwMAotI2RlZmlu ZSBJTVhfVUFSVDJfQkFTRQkJMHg0M0Y5NDAwMAotI2RlZmluZSBJTVhfVElNMV9CQVNFCQkweDUz RjkwMDAwCi0jZGVmaW5lIElNWF9JT01VWENfQkFTRQkJMHg0M0ZBQzAwMAotI2RlZmluZSBJTVhf V0RUX0JBU0UJCTB4NTNGREMwMDAKLSNkZWZpbmUgSU1YX01BWF9CQVNFCQkweDQzRjA0MDAwCi0j ZGVmaW5lIElNWF9FU0RfQkFTRQkJMHhiODAwMTAwMAotI2RlZmluZSBJTVhfQUlQUzFfQkFTRQkJ MHg0M0YwMDAwMAotI2RlZmluZSBJTVhfQUlQUzJfQkFTRQkJMHg1M0YwMDAwMAotI2RlZmluZSBJ TVhfQ0NNX0JBU0UJCTB4NTNGODAwMDAKLSNkZWZpbmUgSU1YX0lJTV9CQVNFCQkweDUzRkYwMDAw Ci0jZGVmaW5lIElNWF9NM0lGX0JBU0UJCTB4QjgwMDMwMDAKLSNkZWZpbmUgSU1YX05GQ19CQVNF CQkweEJCMDAwMDAwCi0jZGVmaW5lIElNWF9GRUNfQkFTRQkJMHg1MDAzODAwMAotI2RlZmluZSBJ TVhfSTJDMV9CQVNFCQkweDQzRjgwMDAwCi0jZGVmaW5lIElNWF9JMkMyX0JBU0UJCTB4NDNGOTgw MDAKLSNkZWZpbmUgSU1YX0kyQzNfQkFTRQkJMHg0M0Y4NDAwMAotI2RlZmluZSBJTVhfQ1NQSTFf QkFTRQkJMHg0M0ZBNDAwMAotI2RlZmluZSBJTVhfU0RIQzFfQkFTRQkJMHg1M0ZCNDAwMAotI2Rl ZmluZSBJTVhfU0RIQzJfQkFTRQkJMHg1M0ZCODAwMAotI2RlZmluZSBJTVhfU0RIQzNfQkFTRQkJ MHg1M0ZCQzAwMAotI2RlZmluZSBJTVhfSVBVX0JBU0UJCTB4NTNGQzAwMDAKLSNkZWZpbmUgSU1Y X09UR19CQVNFCQkweDUzRkY0MDAwCi0jZGVmaW5lIElNWF9XRE9HX0JBU0UJCTB4NTNmZGMwMDAK KyNkZWZpbmUgTVgzNV9JUkFNX0JBU0VfQUREUgkJMHgxMDAwMDAwMAkvKiBpbnRlcm5hbCByYW0g Ki8KKyNkZWZpbmUgTVgzNV9JUkFNX1NJWkUJCQlTWl8xMjhLCisKKyNkZWZpbmUgTVgzNV9MMkND X0JBU0VfQUREUgkJMHgzMDAwMDAwMAorI2RlZmluZSBNWDM1X0wyQ0NfU0laRQkJCVNaXzFNCisK KyNkZWZpbmUgTVgzNV9BSVBTMV9CQVNFX0FERFIJCTB4NDNmMDAwMDAKKyNkZWZpbmUgTVgzNV9B SVBTMV9TSVpFCQkJU1pfMU0KKyNkZWZpbmUgTVgzNV9NQVhfQkFTRV9BRERSCQkJKE1YMzVfQUlQ UzFfQkFTRV9BRERSICsgMHgwNDAwMCkKKyNkZWZpbmUgTVgzNV9FVlRNT05fQkFTRV9BRERSCQkJ KE1YMzVfQUlQUzFfQkFTRV9BRERSICsgMHgwODAwMCkKKyNkZWZpbmUgTVgzNV9DTEtDVExfQkFT RV9BRERSCQkJKE1YMzVfQUlQUzFfQkFTRV9BRERSICsgMHgwYzAwMCkKKyNkZWZpbmUgTVgzNV9F VEJfU0xPVDRfQkFTRV9BRERSCQkoTVgzNV9BSVBTMV9CQVNFX0FERFIgKyAweDEwMDAwKQorI2Rl ZmluZSBNWDM1X0VUQl9TTE9UNV9CQVNFX0FERFIJCShNWDM1X0FJUFMxX0JBU0VfQUREUiArIDB4 MTQwMDApCisjZGVmaW5lIE1YMzVfRUNUX0NUSU9fQkFTRV9BRERSCQkJKE1YMzVfQUlQUzFfQkFT RV9BRERSICsgMHgxODAwMCkKKyNkZWZpbmUgTVgzNV9JMkMxX0JBU0VfQUREUgkJCShNWDM1X0FJ UFMxX0JBU0VfQUREUiArIDB4ODAwMDApCisjZGVmaW5lIE1YMzVfSTJDM19CQVNFX0FERFIJCQko TVgzNV9BSVBTMV9CQVNFX0FERFIgKyAweDg0MDAwKQorI2RlZmluZSBNWDM1X1VBUlQxX0JBU0Vf QUREUgkJCShNWDM1X0FJUFMxX0JBU0VfQUREUiArIDB4OTAwMDApCisjZGVmaW5lIE1YMzVfVUFS VDJfQkFTRV9BRERSCQkJKE1YMzVfQUlQUzFfQkFTRV9BRERSICsgMHg5NDAwMCkKKyNkZWZpbmUg TVgzNV9JMkMyX0JBU0VfQUREUgkJCShNWDM1X0FJUFMxX0JBU0VfQUREUiArIDB4OTgwMDApCisj ZGVmaW5lIE1YMzVfT1dJUkVfQkFTRV9BRERSCQkJKE1YMzVfQUlQUzFfQkFTRV9BRERSICsgMHg5 YzAwMCkKKyNkZWZpbmUgTVgzNV9TU0kxX0JBU0VfQUREUgkJCShNWDM1X0FJUFMxX0JBU0VfQURE UiArIDB4YTAwMDApCisjZGVmaW5lIE1YMzVfQ1NQSTFfQkFTRV9BRERSCQkJKE1YMzVfQUlQUzFf QkFTRV9BRERSICsgMHhhNDAwMCkKKyNkZWZpbmUgTVgzNV9LUFBfQkFTRV9BRERSCQkJKE1YMzVf QUlQUzFfQkFTRV9BRERSICsgMHhhODAwMCkKKyNkZWZpbmUgTVgzNV9JT01VWENfQkFTRV9BRERS CQkJKE1YMzVfQUlQUzFfQkFTRV9BRERSICsgMHhhYzAwMCkKKyNkZWZpbmUgTVgzNV9FQ1RfSVAx X0JBU0VfQUREUgkJCShNWDM1X0FJUFMxX0JBU0VfQUREUiArIDB4YjgwMDApCisjZGVmaW5lIE1Y MzVfRUNUX0lQMl9CQVNFX0FERFIJCQkoTVgzNV9BSVBTMV9CQVNFX0FERFIgKyAweGJjMDAwKQor CisjZGVmaW5lIE1YMzVfU1BCQTBfQkFTRV9BRERSCQkweDUwMDAwMDAwCisjZGVmaW5lIE1YMzVf U1BCQTBfU0laRQkJCVNaXzFNCisjZGVmaW5lIE1YMzVfVUFSVDNfQkFTRV9BRERSCQkJKE1YMzVf U1BCQTBfQkFTRV9BRERSICsgMHgwYzAwMCkKKyNkZWZpbmUgTVgzNV9DU1BJMl9CQVNFX0FERFIJ CQkoTVgzNV9TUEJBMF9CQVNFX0FERFIgKyAweDEwMDAwKQorI2RlZmluZSBNWDM1X1NTSTJfQkFT RV9BRERSCQkJKE1YMzVfU1BCQTBfQkFTRV9BRERSICsgMHgxNDAwMCkKKyNkZWZpbmUgTVgzNV9B VEFfQkFTRV9BRERSCQkJKE1YMzVfU1BCQTBfQkFTRV9BRERSICsgMHgyMDAwMCkKKyNkZWZpbmUg TVgzNV9NU0hDMV9CQVNFX0FERFIJCQkoTVgzNV9TUEJBMF9CQVNFX0FERFIgKyAweDI0MDAwKQor I2RlZmluZSBNWDM1X0ZFQ19CQVNFX0FERFIJCTB4NTAwMzgwMDAKKyNkZWZpbmUgTVgzNV9TUEJB X0NUUkxfQkFTRV9BRERSCQkoTVgzNV9TUEJBMF9CQVNFX0FERFIgKyAweDNjMDAwKQorCisjZGVm aW5lIE1YMzVfQUlQUzJfQkFTRV9BRERSCQkweDUzZjAwMDAwCisjZGVmaW5lIE1YMzVfQUlQUzJf U0laRQkJCVNaXzFNCisjZGVmaW5lIE1YMzVfQ0NNX0JBU0VfQUREUgkJCShNWDM1X0FJUFMyX0JB U0VfQUREUiArIDB4ODAwMDApCisjZGVmaW5lIE1YMzVfR1BUMV9CQVNFX0FERFIJCQkoTVgzNV9B SVBTMl9CQVNFX0FERFIgKyAweDkwMDAwKQorI2RlZmluZSBNWDM1X0VQSVQxX0JBU0VfQUREUgkJ CShNWDM1X0FJUFMyX0JBU0VfQUREUiArIDB4OTQwMDApCisjZGVmaW5lIE1YMzVfRVBJVDJfQkFT RV9BRERSCQkJKE1YMzVfQUlQUzJfQkFTRV9BRERSICsgMHg5ODAwMCkKKyNkZWZpbmUgTVgzNV9H UElPM19CQVNFX0FERFIJCQkoTVgzNV9BSVBTMl9CQVNFX0FERFIgKyAweGE0MDAwKQorI2RlZmlu ZSBNWDM1X1NDQ19CQVNFX0FERFIJCQkoTVgzNV9BSVBTMl9CQVNFX0FERFIgKyAweGFjMDAwKQor I2RlZmluZSBNWDM1X1JOR0FfQkFTRV9BRERSCQkJKE1YMzVfQUlQUzJfQkFTRV9BRERSICsgMHhi MDAwMCkKKyNkZWZpbmUgTVgzNV9FU0RIQzFfQkFTRV9BRERSCQkJKE1YMzVfQUlQUzJfQkFTRV9B RERSICsgMHhiNDAwMCkKKyNkZWZpbmUgTVgzNV9FU0RIQzJfQkFTRV9BRERSCQkJKE1YMzVfQUlQ UzJfQkFTRV9BRERSICsgMHhiODAwMCkKKyNkZWZpbmUgTVgzNV9FU0RIQzNfQkFTRV9BRERSCQkJ KE1YMzVfQUlQUzJfQkFTRV9BRERSICsgMHhiYzAwMCkKKyNkZWZpbmUgTVgzNV9JUFVfQ1RSTF9C QVNFX0FERFIJCQkoTVgzNV9BSVBTMl9CQVNFX0FERFIgKyAweGMwMDAwKQorI2RlZmluZSBNWDM1 X0FVRE1VWF9CQVNFX0FERFIJCQkoTVgzNV9BSVBTMl9CQVNFX0FERFIgKyAweGM0MDAwKQorI2Rl ZmluZSBNWDM1X0dQSU8xX0JBU0VfQUREUgkJCShNWDM1X0FJUFMyX0JBU0VfQUREUiArIDB4Y2Mw MDApCisjZGVmaW5lIE1YMzVfR1BJTzJfQkFTRV9BRERSCQkJKE1YMzVfQUlQUzJfQkFTRV9BRERS ICsgMHhkMDAwMCkKKyNkZWZpbmUgTVgzNV9TRE1BX0JBU0VfQUREUgkJCShNWDM1X0FJUFMyX0JB U0VfQUREUiArIDB4ZDQwMDApCisjZGVmaW5lIE1YMzVfUlRDX0JBU0VfQUREUgkJCShNWDM1X0FJ UFMyX0JBU0VfQUREUiArIDB4ZDgwMDApCisjZGVmaW5lIE1YMzVfV0RPR19CQVNFX0FERFIJCQko TVgzNV9BSVBTMl9CQVNFX0FERFIgKyAweGRjMDAwKQorI2RlZmluZSBNWDM1X1BXTV9CQVNFX0FE RFIJCQkoTVgzNV9BSVBTMl9CQVNFX0FERFIgKyAweGUwMDAwKQorI2RlZmluZSBNWDM1X0NBTjFf QkFTRV9BRERSCQkJKE1YMzVfQUlQUzJfQkFTRV9BRERSICsgMHhlNDAwMCkKKyNkZWZpbmUgTVgz NV9DQU4yX0JBU0VfQUREUgkJCShNWDM1X0FJUFMyX0JBU0VfQUREUiArIDB4ZTgwMDApCisjZGVm aW5lIE1YMzVfUlRJQ19CQVNFX0FERFIJCQkoTVgzNV9BSVBTMl9CQVNFX0FERFIgKyAweGVjMDAw KQorI2RlZmluZSBNWDM1X0lJTV9CQVNFX0FERFIJCQkoTVgzNV9BSVBTMl9CQVNFX0FERFIgKyAw eGYwMDAwKQorI2RlZmluZSBNWDM1X1VTQl9CQVNFX0FERFIJCQkoTVgzNV9BSVBTMl9CQVNFX0FE RFIgKyAweGY0MDAwKQorI2RlZmluZSBNWDM1X1VTQl9PVEdfQkFTRV9BRERSCQkJKE1YMzVfVVNC X0JBU0VfQUREUiArIDB4MDAwMCkKKworLyoKKyAqIFRoZSBSZWZlcmVuY2UgTWFudWFsIChJTVgz NVJNLCBSZXYuIDIsIDMvMjAwOSkgY2xhaW1zIGFuIG9mZnNldCBvZiAweDIwMCBmb3IKKyAqIEhT LiAgV2hlbiBob3N0IHN1cHBvcnQgd2FzIGltcGxlbWVudGVkIG9ubHkgYSBwcmVsaW1pbmFyeSBk b2N1bWVudCB3YXMKKyAqIGF2YWlsYWJsZSwgd2hpY2ggdG9sZCAweDQwMC4gIFRoaXMgd29ya3Mg ZmluZS4KKyAqLworI2RlZmluZSBNWDM1X1VTQl9IU19CQVNFX0FERFIJCQkoTVgzNV9VU0JfQkFT RV9BRERSICsgMHgwNDAwKQorCisjZGVmaW5lIE1YMzVfUk9NUF9CQVNFX0FERFIJCTB4NjAwMDAw MDAKKyNkZWZpbmUgTVgzNV9ST01QX1NJWkUJCQlTWl8xTQorCisjZGVmaW5lIE1YMzVfQVZJQ19C QVNFX0FERFIJCTB4NjgwMDAwMDAKKyNkZWZpbmUgTVgzNV9BVklDX1NJWkUJCQlTWl8xTQorCisv KgorICogTWVtb3J5IHJlZ2lvbnMgYW5kIENTCisgKi8KKyNkZWZpbmUgTVgzNV9JUFVfTUVNX0JB U0VfQUREUgkJMHg3MDAwMDAwMAorI2RlZmluZSBNWDM1X0NTRDBfQkFTRV9BRERSCQkweDgwMDAw MDAwCisjZGVmaW5lIE1YMzVfQ1NEMV9CQVNFX0FERFIJCTB4OTAwMDAwMDAKKworI2RlZmluZSBN WDM1X0NTMF9CQVNFX0FERFIJCTB4YTAwMDAwMDAKKyNkZWZpbmUgTVgzNV9DUzFfQkFTRV9BRERS CQkweGE4MDAwMDAwCisjZGVmaW5lIE1YMzVfQ1MyX0JBU0VfQUREUgkJMHhiMDAwMDAwMAorI2Rl ZmluZSBNWDM1X0NTM19CQVNFX0FERFIJCTB4YjIwMDAwMDAKKworI2RlZmluZSBNWDM1X0NTNF9C QVNFX0FERFIJCTB4YjQwMDAwMDAKKyNkZWZpbmUgTVgzNV9DUzRfU0laRQkJCVNaXzMyTQorCisj ZGVmaW5lIE1YMzVfQ1M1X0JBU0VfQUREUgkJMHhiNjAwMDAwMAorI2RlZmluZSBNWDM1X0NTNV9T SVpFCQkJU1pfMzJNCisKKy8qCisgKiBOQU5ELCBTRFJBTSwgV0VJTSwgTTNJRiwgRU1JIGNvbnRy b2xsZXJzCisgKi8KKyNkZWZpbmUgTVgzNV9YX01FTUNfQkFTRV9BRERSCQkweGI4MDAwMDAwCisj ZGVmaW5lIE1YMzVfWF9NRU1DX1NJWkUJCVNaXzY0SworI2RlZmluZSBNWDM1X0VTRENUTF9CQVNF X0FERFIJCQkoTVgzNV9YX01FTUNfQkFTRV9BRERSICsgMHgxMDAwKQorI2RlZmluZSBNWDM1X1dF SU1fQkFTRV9BRERSCQkJKE1YMzVfWF9NRU1DX0JBU0VfQUREUiArIDB4MjAwMCkKKyNkZWZpbmUg TVgzNV9NM0lGX0JBU0VfQUREUgkJCShNWDM1X1hfTUVNQ19CQVNFX0FERFIgKyAweDMwMDApCisj ZGVmaW5lIE1YMzVfRU1JX0NUTF9CQVNFX0FERFIJCQkoTVgzNV9YX01FTUNfQkFTRV9BRERSICsg MHg0MDAwKQorI2RlZmluZSBNWDM1X1BDTUNJQV9DVExfQkFTRV9BRERSCQlNWDM1X0VNSV9DVExf QkFTRV9BRERSCisKKyNkZWZpbmUgTVgzNV9ORkNfQkFTRV9BRERSCQkweGJiMDAwMDAwCisjZGVm aW5lIE1YMzVfUENNQ0lBX01FTV9CQVNFX0FERFIJMHhiYzAwMDAwMAorCisvKiBGSVhNRTogR2V0 IHJpZCBvZiB0aGVzZSAqLworI2RlZmluZSBJTVhfV0RUX0JBU0UJTVgzNV9XRE9HX0JBU0VfQURE UgorI2RlZmluZSBJTVhfVElNMV9CQVNFCU1YMzVfR1BUMV9CQVNFX0FERFIKKyNkZWZpbmUgSU1Y X0VTRF9CQVNFCU1YMzVfRVNEQ1RMX0JBU0VfQUREUgorI2RlZmluZSBJTVhfSU9NVVhDX0JBU0UJ TVgzNV9JT01VWENfQkFTRV9BRERSCisjZGVmaW5lIElNWF9DQ01fQkFTRQlNWDM1X0NDTV9CQVNF X0FERFIKIAogLyoKICAqIENsb2NrIENvbnRyb2xsZXIgTW9kdWxlIChDQ00pCkBAIC04OCwyNSAr MTc5LDYgQEAKICNkZWZpbmUgUERSMF9BVVRPX0NPTgkJKDEgPDwgMCkKICNkZWZpbmUgUERSMF9Q RVJfU0VMCQkoMSA8PCAyNikKIAotLyoKLSAqIEFkcmVzc2VzIGFuZCByYW5nZXMgb2YgdGhlIGV4 dGVybmFsIGNoaXAgc2VsZWN0IGxpbmVzCi0gKi8KLSNkZWZpbmUgSU1YX0NTMF9CQVNFCTB4QTAw MDAwMDAKLSNkZWZpbmUgSU1YX0NTMF9SQU5HRQkoMTI4ICogMTAyNCAqIDEwMjQpCi0jZGVmaW5l IElNWF9DUzFfQkFTRQkweEE4MDAwMDAwCi0jZGVmaW5lIElNWF9DUzFfUkFOR0UJKDEyOCAqIDEw MjQgKiAxMDI0KQotI2RlZmluZSBJTVhfQ1MyX0JBU0UJMHhCMDAwMDAwMAotI2RlZmluZSBJTVhf Q1MyX1JBTkdFCSgzMiAqIDEwMjQgKiAxMDI0KQotI2RlZmluZSBJTVhfQ1MzX0JBU0UJMHhCMjAw MDAwMAotI2RlZmluZSBJTVhfQ1MzX1JBTkdFCSgzMiAqIDEwMjQgKiAxMDI0KQotI2RlZmluZSBJ TVhfQ1M0X0JBU0UJMHhCNDAwMDAwMAotI2RlZmluZSBJTVhfQ1M0X1JBTkdFCSgzMiAqIDEwMjQg KiAxMDI0KQotI2RlZmluZSBJTVhfQ1M1X0JBU0UJMHhCNjAwMDAwMAotI2RlZmluZSBJTVhfQ1M1 X1JBTkdFCSgzMiAqIDEwMjQgKiAxMDI0KQotCi0jZGVmaW5lIElNWF9TRFJBTV9DUzAgIDB4ODAw MDAwMDAKLSNkZWZpbmUgSU1YX1NEUkFNX0NTMSAgMHg5MDAwMDAwMAotCiAjZGVmaW5lIFdFSU1f QkFTRSAweGI4MDAyMDAwCiAjZGVmaW5lIENTQ1JfVSh4KSAgICAgKFdFSU1fQkFTRSArICh4KSAq IDB4MTApCiAjZGVmaW5lIENTQ1JfTCh4KSAgICAgKFdFSU1fQkFTRSArIDQgKyAoeCkgKiAweDEw KQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1pbXgvc3BlZWQtaW14MzUuYyBiL2FyY2gvYXJt L21hY2gtaW14L3NwZWVkLWlteDM1LmMKaW5kZXggYTRlMDEyMC4uYTgwNjNmMiAxMDA2NDQKLS0t IGEvYXJjaC9hcm0vbWFjaC1pbXgvc3BlZWQtaW14MzUuYworKysgYi9hcmNoL2FybS9tYWNoLWlt eC9zcGVlZC1pbXgzNS5jCkBAIC0yMSwxMyArMjEsMTMgQEAKIAogdW5zaWduZWQgbG9uZyBpbXhf Z2V0X21wbGxjbGsodm9pZCkKIHsKLQl1bG9uZyBtcGN0bCA9IHJlYWRsKElNWF9DQ01fQkFTRSAr IENDTV9NUENUTCk7CisJdWxvbmcgbXBjdGwgPSByZWFkbChNWDM1X0NDTV9CQVNFX0FERFIgKyBD Q01fTVBDVEwpOwogCXJldHVybiBpbXhfZGVjb2RlX3BsbChtcGN0bCwgQ09ORklHX01YMzVfSENM S19GUkVRKTsKIH0KIAogc3RhdGljIHVuc2lnbmVkIGxvbmcgaW14X2dldF9wcGxsY2xrKHZvaWQp CiB7Ci0JdWxvbmcgcHBjdGwgPSByZWFkbChJTVhfQ0NNX0JBU0UgKyBDQ01fUFBDVEwpOworCXVs b25nIHBwY3RsID0gcmVhZGwoTVgzNV9DQ01fQkFTRV9BRERSICsgQ0NNX1BQQ1RMKTsKIAlyZXR1 cm4gaW14X2RlY29kZV9wbGwocHBjdGwsIENPTkZJR19NWDM1X0hDTEtfRlJFUSk7CiB9CiAKQEAg LTU2LDcgKzU2LDcgQEAgc3RhdGljIHN0cnVjdCBhcm1fYWhiX2RpdiBjbGtfY29uc3VtZXJbXSA9 IHsKIAogc3RhdGljIHVuc2lnbmVkIGxvbmcgaW14X2dldF9hcm1jbGsodm9pZCkKIHsKLQl1bnNp Z25lZCBsb25nIHBkcjAgPSByZWFkbChJTVhfQ0NNX0JBU0UgKyBDQ01fUERSMCk7CisJdW5zaWdu ZWQgbG9uZyBwZHIwID0gcmVhZGwoTVgzNV9DQ01fQkFTRV9BRERSICsgQ0NNX1BEUjApOwogCXN0 cnVjdCBhcm1fYWhiX2RpdiAqYWFkOwogCXVuc2lnbmVkIGxvbmcgZnJlZiA9IGlteF9nZXRfbXBs bGNsaygpOwogCkBAIC03MCw3ICs3MCw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGlteF9nZXRf YXJtY2xrKHZvaWQpCiAKIHVuc2lnbmVkIGxvbmcgaW14X2dldF9haGJjbGsodm9pZCkKIHsKLQl1 bnNpZ25lZCBsb25nIHBkcjAgPSByZWFkbChJTVhfQ0NNX0JBU0UgKyBDQ01fUERSMCk7CisJdW5z aWduZWQgbG9uZyBwZHIwID0gcmVhZGwoTVgzNV9DQ01fQkFTRV9BRERSICsgQ0NNX1BEUjApOwog CXN0cnVjdCBhcm1fYWhiX2RpdiAqYWFkOwogCXVuc2lnbmVkIGxvbmcgZnJlZiA9IGlteF9nZXRf bXBsbGNsaygpOwogCkBAIC0xMDAsOCArMTAwLDggQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgZ2V0 XzZfZGl2KHVuc2lnbmVkIGxvbmcgaW4pCiAKIHN0YXRpYyB1bnNpZ25lZCBsb25nIGlteF9nZXRf aXBnX3BlcmNsayh2b2lkKQogewotCXVsb25nIHBkcjAgPSByZWFkbChJTVhfQ0NNX0JBU0UgKyBD Q01fUERSMCk7Ci0JdWxvbmcgcGRyNCA9IHJlYWRsKElNWF9DQ01fQkFTRSArIENDTV9QRFI0KTsK Kwl1bG9uZyBwZHIwID0gcmVhZGwoTVgzNV9DQ01fQkFTRV9BRERSICsgQ0NNX1BEUjApOworCXVs b25nIHBkcjQgPSByZWFkbChNWDM1X0NDTV9CQVNFX0FERFIgKyBDQ01fUERSNCk7CiAJdWxvbmcg ZGl2OwogCXVsb25nIGZyZWY7CiAKQEAgLTEyOSw3ICsxMjksNyBAQCB1bnNpZ25lZCBsb25nIGlt eF9nZXRfZ3B0Y2xrKHZvaWQpCiAgKi8KIHVuc2lnbmVkIGxvbmcgaW14X2dldF9sY2RjbGsodm9p ZCkKIHsKLQl1bnNpZ25lZCBsb25nIGhzcF9wb2RmID0gKHJlYWRsKElNWF9DQ01fQkFTRSArIEND TV9QRFIwKSA+PiAyMCkgJiAweDAzOworCXVuc2lnbmVkIGxvbmcgaHNwX3BvZGYgPSAocmVhZGwo TVgzNV9DQ01fQkFTRV9BRERSICsgQ0NNX1BEUjApID4+IDIwKSAmIDB4MDM7CiAJdW5zaWduZWQg bG9uZyBiYXNlX2NsayA9IGlteF9nZXRfYXJtY2xrKCk7CiAKIAlpZiAoYmFzZV9jbGsgPiA0MDAg KiAxMDAwICogMTAwMCkgewpAQCAtMTU2LDggKzE1Niw4IEBAIHVuc2lnbmVkIGxvbmcgaW14X2dl dF9sY2RjbGsodm9pZCkKIAogdW5zaWduZWQgbG9uZyBpbXhfZ2V0X3VhcnRjbGsodm9pZCkKIHsK LQl1bnNpZ25lZCBsb25nIHBkcjMgPSByZWFkbChJTVhfQ0NNX0JBU0UgKyBDQ01fUERSMyk7Ci0J dW5zaWduZWQgbG9uZyBwZHI0ID0gcmVhZGwoSU1YX0NDTV9CQVNFICsgQ0NNX1BEUjQpOworCXVu c2lnbmVkIGxvbmcgcGRyMyA9IHJlYWRsKE1YMzVfQ0NNX0JBU0VfQUREUiArIENDTV9QRFIzKTsK Kwl1bnNpZ25lZCBsb25nIHBkcjQgPSByZWFkbChNWDM1X0NDTV9CQVNFX0FERFIgKyBDQ01fUERS NCk7CiAJdW5zaWduZWQgbG9uZyBkaXYgPSBnZXRfM18zX2RpdihwZHI0ID4+IDEwKTsKIAogCWlm IChwZHIzICYgKDEgPDwgMTQpKQpAQCAtMTY5LDcgKzE2OSw3IEBAIHVuc2lnbmVkIGxvbmcgaW14 X2dldF91YXJ0Y2xrKHZvaWQpCiAvKiBtbWMwIGNsayBvbmx5ICovCiB1bnNpZ25lZCBsb25nIGlt eF9nZXRfbW1jY2xrKHZvaWQpCiB7Ci0JdW5zaWduZWQgbG9uZyBwZHIzID0gcmVhZGwoSU1YX0ND TV9CQVNFICsgQ0NNX1BEUjMpOworCXVuc2lnbmVkIGxvbmcgcGRyMyA9IHJlYWRsKE1YMzVfQ0NN X0JBU0VfQUREUiArIENDTV9QRFIzKTsKIAl1bnNpZ25lZCBsb25nIGRpdiA9IGdldF82X2Rpdihw ZHIzKTsKIAogCWlmIChwZHIzICYgKDEgPDwgNikpCkBAIC0yMTMsNyArMjEzLDcgQEAgdm9pZCBp bXhfZHVtcF9jbG9ja3Modm9pZCkKICAqLwogaW50IGlteF9jbGtvX3NldF9kaXYoaW50IG51bSwg aW50IGRpdikKIHsKLQl1bnNpZ25lZCBsb25nIGNvc3IgPSByZWFkbChJTVhfQ0NNX0JBU0UgKyBD Q01fQ09TUik7CisJdW5zaWduZWQgbG9uZyBjb3NyID0gcmVhZGwoTVgzNV9DQ01fQkFTRV9BRERS ICsgQ0NNX0NPU1IpOwogCiAJaWYgKG51bSAhPSAxKQogCQlyZXR1cm4gLUVOT0RFVjsKQEAgLTIy NCw3ICsyMjQsNyBAQCBpbnQgaW14X2Nsa29fc2V0X2RpdihpbnQgbnVtLCBpbnQgZGl2KQogCWNv c3IgJj0gfigweDNmIDw8IDEwKTsKIAljb3NyIHw9IGRpdiA8PCAxMDsKIAotCXdyaXRlbChjb3Ny LCBJTVhfQ0NNX0JBU0UgKyBDQ01fQ09TUik7CisJd3JpdGVsKGNvc3IsIE1YMzVfQ0NNX0JBU0Vf QUREUiArIENDTV9DT1NSKTsKIAogCXJldHVybiBkaXYgKyAxOwogfQpAQCAtMjM0LDE0ICsyMzQs MTQgQEAgaW50IGlteF9jbGtvX3NldF9kaXYoaW50IG51bSwgaW50IGRpdikKICAqLwogdm9pZCBp bXhfY2xrb19zZXRfc3JjKGludCBudW0sIGludCBzcmMpCiB7Ci0JdW5zaWduZWQgbG9uZyBjb3Ny ID0gcmVhZGwoSU1YX0NDTV9CQVNFICsgQ0NNX0NPU1IpOworCXVuc2lnbmVkIGxvbmcgY29zciA9 IHJlYWRsKE1YMzVfQ0NNX0JBU0VfQUREUiArIENDTV9DT1NSKTsKIAogCWlmIChudW0gIT0gMSkK IAkJcmV0dXJuOwogCiAJaWYgKHNyYyA8IDApIHsKIAkJY29zciAmPSB+KDEgPDwgNSk7Ci0JCXdy aXRlbChjb3NyLCBJTVhfQ0NNX0JBU0UgKyBDQ01fQ09TUik7CisJCXdyaXRlbChjb3NyLCBNWDM1 X0NDTV9CQVNFX0FERFIgKyBDQ01fQ09TUik7CiAJCXJldHVybjsKIAl9CiAKQEAgLTI1MCw2ICsy NTAsNiBAQCB2b2lkIGlteF9jbGtvX3NldF9zcmMoaW50IG51bSwgaW50IHNyYykKIAljb3NyICY9 IH4oMSA8PCA2KTsKIAljb3NyIHw9IHNyYyAmIDB4MWY7CiAKLQl3cml0ZWwoY29zciwgSU1YX0ND TV9CQVNFICsgQ0NNX0NPU1IpOworCXdyaXRlbChjb3NyLCBNWDM1X0NDTV9CQVNFX0FERFIgKyBD Q01fQ09TUik7CiB9CiAKLS0gCjEuNy4xMC40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KYmFyZWJveCBtYWlsaW5nIGxpc3QKYmFyZWJveEBsaXN0cy5p bmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8v YmFyZWJveAo=