From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 26079 invoked from network); 7 Aug 2022 15:51:20 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 7 Aug 2022 15:51:20 -0000 Content-Type: multipart/mixed; boundary="===============8805692163869432815==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_Subsurface?= To: ml@inbox.vuxu.org From: adbrown101 Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sun, 07 Aug 2022 17:51:20 +0200 List-Id: Message-ID: <20220807155120.p56YjvqSwNjlc3ESAbh8V_9JjHGYyYPVdkT5tYWEXc0@z> GitHub notification mails are now in MIME to allow UTF8. --===============8805692163869432815== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgYWRicm93bjEwMSBhZ2FpbnN0IG1h c3RlciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20v YWRicm93bjEwMS92b2lkLXBhY2thZ2VzIHN1YnN1cmZhY2UKaHR0cHM6Ly9naXRodWIuY29tL3Zv aWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM0MTg3CgpTdWJzdXJmYWNlCjwhLS0gVW5jb21t ZW50IHJlbGV2YW50IHNlY3Rpb25zIGFuZCBkZWxldGUgb3B0aW9ucyB3aGljaCBhcmUgbm90IGFw cGxpY2FibGUgLS0+DQoNCiMjIyMgVGVzdGluZyB0aGUgY2hhbmdlcw0KLSBJIHRlc3RlZCB0aGUg Y2hhbmdlcyBpbiB0aGlzIFBSOiAqKllFUyoqDQoNCiMjIyMgTmV3IHBhY2thZ2UNCi0gVGhpcyBu ZXcgcGFja2FnZSBjb25mb3JtcyB0byB0aGUgW3F1YWxpdHkgcmVxdWlyZW1lbnRzXShodHRwczov L2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL01hbnVhbC5t ZCNxdWFsaXR5LXJlcXVpcmVtZW50cyk6ICoqWUVTKioNCg0KDQo8IS0tIE5vdGU6IElmIHRoZSBi dWlsZCBpcyBsaWtlbHkgdG8gdGFrZSBtb3JlIHRoYW4gMiBob3VycywgcGxlYXNlIFtza2lwIENJ XShodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVy L0NPTlRSSUJVVElORy5tZCNjb250aW51b3VzLWludGVncmF0aW9uKQ0KYW5kIHRlc3QgYXQgbGVh c3Qgb25lIG5hdGl2ZSBidWlsZCBhbmQsIGlmIHN1cHBvcnRlZCwgYXQgbGVhc3Qgb25lIGNyb3Nz IGJ1aWxkLg0KSWdub3JlIHRoaXMgc2VjdGlvbiBpZiB0aGlzIFBSIGlzIG5vdCBza2lwcGluZyBD SS4NCi0tPg0KDQojIyMjIExvY2FsIGJ1aWxkIHRlc3RpbmcNCi0gSSBidWlsdCB0aGlzIFBSIGxv Y2FsbHkgZm9yIG15IG5hdGl2ZSBhcmNoaXRlY3R1cmUsIHg4Nl82NCwgeDg2XzY0LW11c2wsIGk2 ODYNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIHRoZXNlIGFyY2hpdGVjdHVyZXMgKGlm IHN1cHBvcnRlZC4gbWFyayBjcm9zc2J1aWxkcyk6DQogIC0gYWFyY2g2NCwgYWFyY2g2NC1tdXNs DQogDQpJIGhhdmUgYmVlbiB1c2luZyBzdWJzdXJmYWNlIGZvciBzb21lIHRpbWUgYW5kIGhhdmUg dXNlZCBvbiB4ODZfNjQgYW5kIHg4Nl82NC1tdXNsLiBXb3JrcyB3ZWxsIG9uIHZvaWQuDQoKCkEg cGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2Fn ZXMvcHVsbC8zNDE4Ny5wYXRjaCBpcyBhdHRhY2hlZA== --===============8805692163869432815== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-subsurface-34187.patch" RnJvbSA2NzA0OGQxNzBlMmZlMDUyNjc5ZmY4ZDIyMTBjMDhlZjY5OWIyZGEyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJyb3duIDxhZGJyb3duQHJvY2tldG1haWwuY29tPgpE YXRlOiBUaHUsIDI1IE5vdiAyMDIxIDE4OjIyOjE0ICswMDAwClN1YmplY3Q6IFtQQVRDSCAxLzNd IE5ldyBwYWNrYWdlOiBxdGxvY2F0aW9uLXBsdWdpbi1nb29nbGVtYXBzLTAuMC4wLjIKCi0tLQog c3JjcGtncy9xdGxvY2F0aW9uLXBsdWdpbi1nb29nbGVtYXBzL3RlbXBsYXRlIHwgMTggKysrKysr KysrKysrKysrKysrCiBzcmNwa2dzL3F0bG9jYXRpb24tcGx1Z2luLWdvb2dsZW1hcHMvdXBkYXRl ICAgfCAgMiArKwogMiBmaWxlcyBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9xdGxvY2F0aW9uLXBsdWdpbi1nb29nbGVtYXBzL3RlbXBsYXRlCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdGxvY2F0aW9uLXBsdWdpbi1nb29nbGVtYXBzL3Vw ZGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXRsb2NhdGlvbi1wbHVnaW4tZ29vZ2xlbWFwcy90 ZW1wbGF0ZSBiL3NyY3BrZ3MvcXRsb2NhdGlvbi1wbHVnaW4tZ29vZ2xlbWFwcy90ZW1wbGF0ZQpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmVmMzAxZDU0MjI3MwotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXRsb2NhdGlvbi1wbHVnaW4tZ29vZ2xlbWFwcy90ZW1w bGF0ZQpAQCAtMCwwICsxLDE4IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdxdGxvY2F0aW9uLXBs dWdpbi1nb29nbGVtYXBzJworcGtnbmFtZT1xdGxvY2F0aW9uLXBsdWdpbi1nb29nbGVtYXBzCit2 ZXJzaW9uPTAuMC4wLjIKK3JldmlzaW9uPTEKK3dya3NyYz1nb29nbGVtYXBzLXYuJHt2ZXJzaW9u fQorYnVpbGRfc3R5bGU9cW1ha2UKK2hvc3RtYWtlZGVwZW5kcz0icXQ1LXFtYWtlIHF0NS1kZXZl bCIKK21ha2VkZXBlbmRzPSJxdDUtZGV2ZWwgcXQ1LWxvY2F0aW9uLWRldmVsIHF0NS1kZWNsYXJh dGl2ZS1kZXZlbCIKK3Nob3J0X2Rlc2M9Ikdvb2dsZSBNYXBzIHBsdWdpbiBmb3IgUXRMb2NhdGlv biIKK21haW50YWluZXI9IkFsYW4gQnJvd24gPGFkYnJvd25Acm9ja2V0bWFpbC5jb20+IgorbGlj ZW5zZT0iTUlUIgoraG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHViLmNvbS92bGFkZXN0L2dvb2dsZW1h cHMiCitkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS92bGFkZXN0L2dvb2dsZW1hcHMvYXJj aGl2ZS92LiR7dmVyc2lvbn0udGFyLmd6IgorY2hlY2tzdW09YWFjMmY5OTU5MTdlNzVkZmYyODYx Y2UzODA0OWNjYmIxY2Q1MWQwNzhjYjQ1ZDc4MTU4Y2FhNDBhOTdhNWJmMAorCitwb3N0X2luc3Rh bGwoKSB7CisJdmxpY2Vuc2UgTElDRU5TRS50eHQKK30KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXRs b2NhdGlvbi1wbHVnaW4tZ29vZ2xlbWFwcy91cGRhdGUgYi9zcmNwa2dzL3F0bG9jYXRpb24tcGx1 Z2luLWdvb2dsZW1hcHMvdXBkYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uN2I2OGY5YmU2MmUzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdGxvY2F0aW9u LXBsdWdpbi1nb29nbGVtYXBzL3VwZGF0ZQpAQCAtMCwwICsxLDIgQEAKK3BrZ25hbWU9Z29vZ2xl bWFwcworcGF0dGVybj0idlwuXEtbXGRcLl0rKD89XC50YXJcLmd6KSIKCkZyb20gYmI4MzMwZjk3 Zjc3NWU3MjUzYThkY2U2Y2U5OTg3YWQxZDBlM2U3YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogQWxhbiBCcm93biA8YWRicm93bkByb2NrZXRtYWlsLmNvbT4KRGF0ZTogVGh1LCAyNSBO b3YgMjAyMSAxODoyMzowNCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMi8zXSBOZXcgcGFja2FnZTog bGliZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2UtNS4wLjkKCi0tLQogc3JjcGtncy9saWJkaXZlY29t cHV0ZXItc3Vic3VyZmFjZS1kZXZlbCAgICAgIHwgICAxICsKIC4uLi9wYXRjaGVzL1BBR0VTSVpF LnBhdGNoICAgICAgICAgICAgICAgICAgICB8IDg3NCArKysrKysrKysrKysrKysrKysKIHNyY3Br Z3MvbGliZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2UvdGVtcGxhdGUgICB8ICAzMCArCiBzcmNwa2dz L2xpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlL3VwZGF0ZSAgICAgfCAgIDIgKwogNCBmaWxlcyBj aGFuZ2VkLCA5MDcgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvbGli ZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2UtZGV2ZWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2xpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlL3BhdGNoZXMvUEFHRVNJWkUucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlL3RlbXBsYXRl CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saWJkaXZlY29tcHV0ZXItc3Vic3VyZmFjZS91 cGRhdGUKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlLWRl dmVsIGIvc3JjcGtncy9saWJkaXZlY29tcHV0ZXItc3Vic3VyZmFjZS1kZXZlbApuZXcgZmlsZSBt b2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMDAuLjM1MDBlMGI1YjBkNQotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvbGliZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2UtZGV2ZWwKQEAgLTAsMCAr MSBAQAorbGliZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2UKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm aWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlL3BhdGNo ZXMvUEFHRVNJWkUucGF0Y2ggYi9zcmNwa2dzL2xpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlL3Bh dGNoZXMvUEFHRVNJWkUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwLi42NDc2MjQ3YTU1NGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpYmRpdmVjb21w dXRlci1zdWJzdXJmYWNlL3BhdGNoZXMvUEFHRVNJWkUucGF0Y2gKQEAgLTAsMCArMSw4NzQgQEAK Ky0tLSBhL3NyYy9saXF1aXZpc2lvbl9seW54LmMKKysrKyBiL3NyYy9saXF1aXZpc2lvbl9seW54 LmMKK0BAIC02MSwxNiArNjEsMTYgQEAKKyAjZGVmaW5lIE1BWFJFVFJJRVMgMgorICNkZWZpbmUg TUFYUEFDS0VUIDEyCisgI2RlZmluZSBTRUdNRU5UU0laRSAweDQwMAorLSNkZWZpbmUgUEFHRVNJ WkUgICAgMHgxMDAwCisrI2RlZmluZSBYUEFHRVNJWkUgICAgMHgxMDAwCisgI2RlZmluZSBNRU1T SVpFICAgICAweDIwMDAwMAorIAorLSNkZWZpbmUgUkJfTE9HQk9PS19CRUdJTiAgICAgICAgICgx ICogUEFHRVNJWkUpCistI2RlZmluZSBSQl9MT0dCT09LX0VORCAgICAgICAgICAgKDI1ICogUEFH RVNJWkUpCisrI2RlZmluZSBSQl9MT0dCT09LX0JFR0lOICAgICAgICAgKDEgKiBYUEFHRVNJWkUp CisrI2RlZmluZSBSQl9MT0dCT09LX0VORCAgICAgICAgICAgKDI1ICogWFBBR0VTSVpFKQorICNk ZWZpbmUgUkJfTE9HQk9PS19TSVpFICAgICAgICAgIChSQl9MT0dCT09LX0VORCAtIFJCX0xPR0JP T0tfQkVHSU4pCisgI2RlZmluZSBSQl9MT0dCT09LX0RJU1RBTkNFKGEsYikgcmluZ2J1ZmZlcl9k aXN0YW5jZSAoYSwgYiwgMSwgUkJfTE9HQk9PS19CRUdJTiwgUkJfTE9HQk9PS19FTkQpCisgCist I2RlZmluZSBSQl9QUk9GSUxFX0JFR0lOICAgICAgICAgKDI1ICogUEFHRVNJWkUpCistI2RlZmlu ZSBSQl9QUk9GSUxFX0VORCAgICAgICAgICAgKDUwMCAqIFBBR0VTSVpFKQorKyNkZWZpbmUgUkJf UFJPRklMRV9CRUdJTiAgICAgICAgICgyNSAqIFhQQUdFU0laRSkKKysjZGVmaW5lIFJCX1BST0ZJ TEVfRU5EICAgICAgICAgICAoNTAwICogWFBBR0VTSVpFKQorICNkZWZpbmUgUkJfUFJPRklMRV9T SVpFICAgICAgICAgIChSQl9QUk9GSUxFX0VORCAtIFJCX1BST0ZJTEVfQkVHSU4pCisgI2RlZmlu ZSBSQl9QUk9GSUxFX0RJU1RBTkNFKGEsYikgcmluZ2J1ZmZlcl9kaXN0YW5jZSAoYSwgYiwgMSwg UkJfUFJPRklMRV9CRUdJTiwgUkJfUFJPRklMRV9FTkQpCisgCitAQCAtMzI5LDggKzMyOSw4IEBA IGxpcXVpdmlzaW9uX2x5bnhfZGV2aWNlX3JlYWQgKGRjX2RldmljZV90ICphYnN0cmFjdCwgdW5z aWduZWQgaW50IGFkZHJlc3MsIHVuc2lnCisgCQlyZXR1cm4gRENfU1RBVFVTX0lOVkFMSURBUkdT OworIAorIAkvLyBHZXQgdGhlIHBhZ2UgYW5kIHNlZ21lbnQgbnVtYmVyLgorLQl1bnNpZ25lZCBp bnQgcGFnZSAgICA9IChhZGRyZXNzIC8gUEFHRVNJWkUpOworLQl1bnNpZ25lZCBpbnQgc2VnbWVu dCA9IChhZGRyZXNzICUgUEFHRVNJWkUpIC8gU0VHTUVOVFNJWkU7CisrCXVuc2lnbmVkIGludCBw YWdlICAgID0gKGFkZHJlc3MgLyBYUEFHRVNJWkUpOworKwl1bnNpZ25lZCBpbnQgc2VnbWVudCA9 IChhZGRyZXNzICUgWFBBR0VTSVpFKSAvIFNFR01FTlRTSVpFOworIAorIAl1bnNpZ25lZCBpbnQg bmJ5dGVzID0gMDsKKyAJd2hpbGUgKG5ieXRlcyA8IHNpemUpIHsKK0BAIC0zNTQsNyArMzU0LDcg QEAgbGlxdWl2aXNpb25fbHlueF9kZXZpY2VfcmVhZCAoZGNfZGV2aWNlX3QgKmFic3RyYWN0LCB1 bnNpZ25lZCBpbnQgYWRkcmVzcywgdW5zaWcKKyAKKyAJCW5ieXRlcyArPSBTRUdNRU5UU0laRTsK KyAJCXNlZ21lbnQrKzsKKy0JCWlmIChzZWdtZW50ID09IChQQUdFU0laRSAvIFNFR01FTlRTSVpF KSkgeworKwkJaWYgKHNlZ21lbnQgPT0gKFhQQUdFU0laRSAvIFNFR01FTlRTSVpFKSkgeworIAkJ CXNlZ21lbnQgPSAwOworIAkJCXBhZ2UrKzsKKyAJCX0KK0BAIC00MjAsMTMgKzQyMCwxMyBAQCBs aXF1aXZpc2lvbl9seW54X2RldmljZV9mb3JlYWNoIChkY19kZXZpY2VfdCAqYWJzdHJhY3QsIGRj X2RpdmVfY2FsbGJhY2tfdCBjYWxsYgorIAl1bnNpZ25lZCBpbnQgaGVhZGVyc2l6ZSA9IChtb2Rl bCA9PSBYRU4pID8gU1pfSEVBREVSX1hFTiA6IFNaX0hFQURFUl9PVEhFUjsKKyAKKyAJLy8gR2V0 IHRoZSBudW1iZXIgb2YgaGVhZGVycyBwZXIgcGFnZS4KKy0JdW5zaWduZWQgaW50IG5wYWdlcyA9 IFBBR0VTSVpFIC8gaGVhZGVyc2l6ZTsKKysJdW5zaWduZWQgaW50IG5wYWdlcyA9IFhQQUdFU0la RSAvIGhlYWRlcnNpemU7CisgCisgCS8vIEdldCB0aGUgbG9nYm9vayBwb2ludGVycy4KKyAJdW5z aWduZWQgaW50IGJlZ2luID0gYXJyYXlfdWludDE2X2xlIChjb25maWcgKyAweDQ2KTsKKyAJdW5z aWduZWQgaW50IGVuZCAgID0gYXJyYXlfdWludDE2X2xlIChjb25maWcgKyAweDQ4KTsKKy0JdW5z aWduZWQgaW50IHJiX2xvZ2Jvb2tfYmVnaW4gPSBSQl9MT0dCT09LX0JFR0lOICsgKGJlZ2luIC8g bnBhZ2VzKSAqIFBBR0VTSVpFICsgKGJlZ2luICUgbnBhZ2VzKSAqIGhlYWRlcnNpemU7CistCXVu c2lnbmVkIGludCByYl9sb2dib29rX2VuZCAgID0gUkJfTE9HQk9PS19CRUdJTiArIChlbmQgICAv IG5wYWdlcykgKiBQQUdFU0laRSArIChlbmQgICAlIG5wYWdlcykgKiBoZWFkZXJzaXplOworKwl1 bnNpZ25lZCBpbnQgcmJfbG9nYm9va19iZWdpbiA9IFJCX0xPR0JPT0tfQkVHSU4gKyAoYmVnaW4g LyBucGFnZXMpICogWFBBR0VTSVpFICsgKGJlZ2luICUgbnBhZ2VzKSAqIGhlYWRlcnNpemU7Cisr CXVuc2lnbmVkIGludCByYl9sb2dib29rX2VuZCAgID0gUkJfTE9HQk9PS19CRUdJTiArIChlbmQg ICAvIG5wYWdlcykgKiBYUEFHRVNJWkUgKyAoZW5kICAgJSBucGFnZXMpICogaGVhZGVyc2l6ZTsK KyAJaWYgKHJiX2xvZ2Jvb2tfYmVnaW4gPCBSQl9MT0dCT09LX0JFR0lOIHx8IHJiX2xvZ2Jvb2tf YmVnaW4gPiBSQl9MT0dCT09LX0VORCB8fAorIAkJcmJfbG9nYm9va19lbmQgICA8IFJCX0xPR0JP T0tfQkVHSU4gfHwgcmJfbG9nYm9va19lbmQgICA+IFJCX0xPR0JPT0tfRU5EKSB7CisgCQlFUlJP UiAoYWJzdHJhY3QtPmNvbnRleHQsICJJbnZhbGlkIGxvZ2Jvb2sgcG9pbnRlcnMgKCUwNHgsICUw NHgpLiIsCitAQCAtNDg4LDggKzQ4OCw4IEBAIGxpcXVpdmlzaW9uX2x5bnhfZGV2aWNlX2ZvcmVh Y2ggKGRjX2RldmljZV90ICphYnN0cmFjdCwgZGNfZGl2ZV9jYWxsYmFja190IGNhbGxiCisgCQkJ YWRkcmVzcyA9IFJCX0xPR0JPT0tfRU5EOworIAorIAkJLy8gU2tpcCB0aGUgcGFkZGluZyBieXRl cy4KKy0JCWlmICgoYWRkcmVzcyAlIFBBR0VTSVpFKSA9PSAwKSB7CistCQkJdW5zaWduZWQgaW50 IHBhZGRpbmcgPSBQQUdFU0laRSAlIGhlYWRlcnNpemU7CisrCQlpZiAoKGFkZHJlc3MgJSBYUEFH RVNJWkUpID09IDApIHsKKysJCQl1bnNpZ25lZCBpbnQgcGFkZGluZyA9IFhQQUdFU0laRSAlIGhl YWRlcnNpemU7CisgCQkJdW5zaWduZWQgY2hhciBkdW1teVtTWl9IRUFERVJfTUFYXSA9IHswfTsK KyAJCQlzdGF0dXMgPSBkY19yYnN0cmVhbV9yZWFkIChyYmxvZ2Jvb2ssICZwcm9ncmVzcywgZHVt bXksIHBhZGRpbmcpOworIAkJCWlmIChzdGF0dXMgIT0gRENfU1RBVFVTX1NVQ0NFU1MpIHsKKy0t LSBhL3NyYy9vY2VhbmljX2F0b20yLmMKKysrKyBiL3NyYy9vY2VhbmljX2F0b20yLmMKK0BAIC0x MDExLDExICsxMDExLDExIEBAIG9jZWFuaWNfYXRvbTJfZGV2aWNlX3ZlcnNpb24gKGRjX2Rldmlj ZV90ICphYnN0cmFjdCwgdW5zaWduZWQgY2hhciBkYXRhW10sIHVuc2lnCisgCWlmICghSVNJTlNU QU5DRSAoYWJzdHJhY3QpKQorIAkJcmV0dXJuIERDX1NUQVRVU19JTlZBTElEQVJHUzsKKyAKKy0J aWYgKHNpemUgPCBQQUdFU0laRSkKKysJaWYgKHNpemUgPCBYUEFHRVNJWkUpCisgCQlyZXR1cm4g RENfU1RBVFVTX0lOVkFMSURBUkdTOworIAorIAl1bnNpZ25lZCBjaGFyIGNvbW1hbmRbXSA9IHtD TURfVkVSU0lPTn07CistCWRjX3N0YXR1c190IHJjID0gb2NlYW5pY19hdG9tMl90cmFuc2ZlciAo ZGV2aWNlLCBjb21tYW5kLCBzaXplb2YgKGNvbW1hbmQpLCBBQ0ssIGRhdGEsIFBBR0VTSVpFLCAx KTsKKysJZGNfc3RhdHVzX3QgcmMgPSBvY2VhbmljX2F0b20yX3RyYW5zZmVyIChkZXZpY2UsIGNv bW1hbmQsIHNpemVvZiAoY29tbWFuZCksIEFDSywgZGF0YSwgWFBBR0VTSVpFLCAxKTsKKyAJaWYg KHJjICE9IERDX1NUQVRVU19TVUNDRVNTKQorIAkJcmV0dXJuIHJjOworIAorQEAgLTEwMjksOCAr MTAyOSw4IEBAIG9jZWFuaWNfYXRvbTJfZGV2aWNlX3JlYWQgKGRjX2RldmljZV90ICphYnN0cmFj dCwgdW5zaWduZWQgaW50IGFkZHJlc3MsIHVuc2lnbmVkCisgCW9jZWFuaWNfYXRvbTJfZGV2aWNl X3QgKmRldmljZSA9IChvY2VhbmljX2F0b20yX2RldmljZV90KikgYWJzdHJhY3Q7CisgCWNvbnN0 IG9jZWFuaWNfY29tbW9uX2xheW91dF90ICpsYXlvdXQgPSBkZXZpY2UtPmJhc2UubGF5b3V0Owor IAorLQlpZiAoKGFkZHJlc3MgJSBQQUdFU0laRSAhPSAwKSB8fAorLQkJKHNpemUgICAgJSBQQUdF U0laRSAhPSAwKSkKKysJaWYgKChhZGRyZXNzICUgWFBBR0VTSVpFICE9IDApIHx8CisrCQkoc2l6 ZSAgICAlIFhQQUdFU0laRSAhPSAwKSkKKyAJCXJldHVybiBEQ19TVEFUVVNfSU5WQUxJREFSR1M7 CisgCisgCS8vIFBpY2sgdGhlIGNvcnJlY3QgcmVhZCBjb21tYW5kIGFuZCBudW1iZXIgb2YgY2hl Y2tzdW0gYnl0ZXMuCitAQCAtMTA1NCw3ICsxMDU0LDcgQEAgb2NlYW5pY19hdG9tMl9kZXZpY2Vf cmVhZCAoZGNfZGV2aWNlX3QgKmFic3RyYWN0LCB1bnNpZ25lZCBpbnQgYWRkcmVzcywgdW5zaWdu ZWQKKyAJfQorIAorIAkvLyBQaWNrIHRoZSBiZXN0IHBhZ2VzaXplIHRvIHVzZS4KKy0JdW5zaWdu ZWQgaW50IHBhZ2VzaXplID0gZGV2aWNlLT5iaWdwYWdlICogUEFHRVNJWkU7CisrCXVuc2lnbmVk IGludCBwYWdlc2l6ZSA9IGRldmljZS0+YmlncGFnZSAqIFhQQUdFU0laRTsKKyAKKyAJLy8gSGln aCBtZW1vcnkgc3RhdGUuCisgCXVuc2lnbmVkIGludCBoaWdobWVtID0gMDsKK0BAIC0xMDY2LDcg KzEwNjYsNyBAQCBvY2VhbmljX2F0b20yX2RldmljZV9yZWFkIChkY19kZXZpY2VfdCAqYWJzdHJh Y3QsIHVuc2lnbmVkIGludCBhZGRyZXNzLCB1bnNpZ25lZAorIAkJCWhpZ2htZW0gPSBsYXlvdXQt PmhpZ2htZW07CisgCQkJcmVhZF9jbWQgPSBDTURfUkVBRDE2SEk7CisgCQkJY3JjX3NpemUgPSAy OworLQkJCXBhZ2VzaXplID0gMTYgKiBQQUdFU0laRTsKKysJCQlwYWdlc2l6ZSA9IDE2ICogWFBB R0VTSVpFOworIAkJfQorIAorIAkJLy8gQ2FsY3VsYXRlIHRoZSBwYWdlIG51bWJlciBhZnRlciBt YXBwaW5nIHRoZSB2aXJ0dWFsIGhpZ2ggbWVtb3J5CitAQCAtMTA3NSw3ICsxMDc1LDcgQEAgb2Nl YW5pY19hdG9tMl9kZXZpY2VfcmVhZCAoZGNfZGV2aWNlX3QgKmFic3RyYWN0LCB1bnNpZ25lZCBp bnQgYWRkcmVzcywgdW5zaWduZWQKKyAKKyAJCWlmIChwYWdlICE9IGRldmljZS0+Y2FjaGVkX3Bh Z2UgfHwgaGlnaG1lbSAhPSBkZXZpY2UtPmNhY2hlZF9oaWdobWVtKSB7CisgCQkJLy8gUmVhZCB0 aGUgcGFja2FnZS4KKy0JCQl1bnNpZ25lZCBpbnQgbnVtYmVyID0gaGlnaG1lbSA/IHBhZ2UgOiBw YWdlICogZGV2aWNlLT5iaWdwYWdlOyAvLyBUaGlzIGlzIGFsd2F5cyBQQUdFU0laRSwgZXZlbiBp biBiaWcgcGFnZSBtb2RlLgorKwkJCXVuc2lnbmVkIGludCBudW1iZXIgPSBoaWdobWVtID8gcGFn ZSA6IHBhZ2UgKiBkZXZpY2UtPmJpZ3BhZ2U7IC8vIFRoaXMgaXMgYWx3YXlzIFhQQUdFU0laRSwg ZXZlbiBpbiBiaWcgcGFnZSBtb2RlLgorIAkJCXVuc2lnbmVkIGNoYXIgY29tbWFuZFtdID0ge3Jl YWRfY21kLAorIAkJCQkJKG51bWJlciA+PiA4KSAmIDB4RkYsIC8vIGhpZ2gKKyAJCQkJCShudW1i ZXIgICAgICkgJiAweEZGLCAvLyBsb3cKK0BAIC0xMTEwLDggKzExMTAsOCBAQCBvY2VhbmljX2F0 b20yX2RldmljZV93cml0ZSAoZGNfZGV2aWNlX3QgKmFic3RyYWN0LCB1bnNpZ25lZCBpbnQgYWRk cmVzcywgY29uc3QgdQorIHsKKyAJb2NlYW5pY19hdG9tMl9kZXZpY2VfdCAqZGV2aWNlID0gKG9j ZWFuaWNfYXRvbTJfZGV2aWNlX3QqKSBhYnN0cmFjdDsKKyAKKy0JaWYgKChhZGRyZXNzICUgUEFH RVNJWkUgIT0gMCkgfHwKKy0JCShzaXplICAgICUgUEFHRVNJWkUgIT0gMCkpCisrCWlmICgoYWRk cmVzcyAlIFhQQUdFU0laRSAhPSAwKSB8fAorKwkJKHNpemUgICAgJSBYUEFHRVNJWkUgIT0gMCkp CisgCQlyZXR1cm4gRENfU1RBVFVTX0lOVkFMSURBUkdTOworIAorIAkvLyBJbnZhbGlkYXRlIHRo ZSBjYWNoZS4KK0BAIC0xMTIxLDcgKzExMjEsNyBAQCBvY2VhbmljX2F0b20yX2RldmljZV93cml0 ZSAoZGNfZGV2aWNlX3QgKmFic3RyYWN0LCB1bnNpZ25lZCBpbnQgYWRkcmVzcywgY29uc3QgdQor IAl1bnNpZ25lZCBpbnQgbmJ5dGVzID0gMDsKKyAJd2hpbGUgKG5ieXRlcyA8IHNpemUpIHsKKyAJ CS8vIFByZXBhcmUgdG8gd3JpdGUgdGhlIHBhY2thZ2UuCistCQl1bnNpZ25lZCBpbnQgbnVtYmVy ID0gYWRkcmVzcyAvIFBBR0VTSVpFOworKwkJdW5zaWduZWQgaW50IG51bWJlciA9IGFkZHJlc3Mg LyBYUEFHRVNJWkU7CisgCQl1bnNpZ25lZCBjaGFyIHByZXBhcmVbXSA9IHtDTURfV1JJVEUsCisg CQkJCShudW1iZXIgPj4gOCkgJiAweEZGLCAvLyBoaWdoCisgCQkJCShudW1iZXIgICAgICkgJiAw eEZGLCAvLyBsb3cKK0BAIC0xMTMxLDE2ICsxMTMxLDE2IEBAIG9jZWFuaWNfYXRvbTJfZGV2aWNl X3dyaXRlIChkY19kZXZpY2VfdCAqYWJzdHJhY3QsIHVuc2lnbmVkIGludCBhZGRyZXNzLCBjb25z dCB1CisgCQkJcmV0dXJuIHJjOworIAorIAkJLy8gV3JpdGUgdGhlIHBhY2thZ2UuCistCQl1bnNp Z25lZCBjaGFyIGNvbW1hbmRbUEFHRVNJWkUgKyAxXSA9IHswfTsKKy0JCW1lbWNweSAoY29tbWFu ZCwgZGF0YSwgUEFHRVNJWkUpOworLQkJY29tbWFuZFtQQUdFU0laRV0gPSBjaGVja3N1bV9hZGRf dWludDggKGNvbW1hbmQsIFBBR0VTSVpFLCAweDAwKTsKKysJCXVuc2lnbmVkIGNoYXIgY29tbWFu ZFtYUEFHRVNJWkUgKyAxXSA9IHswfTsKKysJCW1lbWNweSAoY29tbWFuZCwgZGF0YSwgWFBBR0VT SVpFKTsKKysJCWNvbW1hbmRbWFBBR0VTSVpFXSA9IGNoZWNrc3VtX2FkZF91aW50OCAoY29tbWFu ZCwgWFBBR0VTSVpFLCAweDAwKTsKKyAJCXJjID0gb2NlYW5pY19hdG9tMl90cmFuc2ZlciAoZGV2 aWNlLCBjb21tYW5kLCBzaXplb2YgKGNvbW1hbmQpLCBBQ0ssIE5VTEwsIDAsIDApOworIAkJaWYg KHJjICE9IERDX1NUQVRVU19TVUNDRVNTKQorIAkJCXJldHVybiByYzsKKyAKKy0JCW5ieXRlcyAr PSBQQUdFU0laRTsKKy0JCWFkZHJlc3MgKz0gUEFHRVNJWkU7CistCQlkYXRhICs9IFBBR0VTSVpF OworKwkJbmJ5dGVzICs9IFhQQUdFU0laRTsKKysJCWFkZHJlc3MgKz0gWFBBR0VTSVpFOworKwkJ ZGF0YSArPSBYUEFHRVNJWkU7CisgCX0KKyAKKyAJcmV0dXJuIERDX1NUQVRVU19TVUNDRVNTOwor LS0tIGEvc3JjL29jZWFuaWNfYXRvbTJfcGFyc2VyLmMKKysrKyBiL3NyYy9vY2VhbmljX2F0b20y X3BhcnNlci5jCitAQCAtMTY3LDggKzE2Nyw4IEBAIG9jZWFuaWNfYXRvbTJfcGFyc2VyX2NyZWF0 ZSAoZGNfcGFyc2VyX3QgKipvdXQsIGRjX2NvbnRleHRfdCAqY29udGV4dCwgdW5zaWduZWQKKyAK KyAJLy8gU2V0IHRoZSBkZWZhdWx0IHZhbHVlcy4KKyAJcGFyc2VyLT5tb2RlbCA9IG1vZGVsOwor LQlwYXJzZXItPmhlYWRlcnNpemUgPSA5ICogUEFHRVNJWkUgLyAyOworLQlwYXJzZXItPmZvb3Rl cnNpemUgPSAyICogUEFHRVNJWkUgLyAyOworKwlwYXJzZXItPmhlYWRlcnNpemUgPSA5ICogWFBB R0VTSVpFIC8gMjsKKysJcGFyc2VyLT5mb290ZXJzaXplID0gMiAqIFhQQUdFU0laRSAvIDI7Cisg CWlmIChtb2RlbCA9PSBEQVRBTUFTSyB8fCBtb2RlbCA9PSBDT01QVU1BU0sgfHwKKyAJCW1vZGVs ID09IEdFTyB8fCBtb2RlbCA9PSBHRU8yMCB8fAorIAkJbW9kZWwgPT0gVkVPMjAgfHwgbW9kZWwg PT0gVkVPMzAgfHwKK0BAIC0xNzksMzEgKzE3OSwzMSBAQCBvY2VhbmljX2F0b20yX3BhcnNlcl9j cmVhdGUgKGRjX3BhcnNlcl90ICoqb3V0LCBkY19jb250ZXh0X3QgKmNvbnRleHQsIHVuc2lnbmVk CisgCQltb2RlbCA9PSBJMjAwIHx8IG1vZGVsID09IEkyMDBDIHx8CisgCQltb2RlbCA9PSBJMzAw QyB8fCBtb2RlbCA9PSBHRU80MCB8fAorIAkJbW9kZWwgPT0gVkVPNDAgfHwgbW9kZWwgPT0gSTQ3 MFRDKSB7CistCQlwYXJzZXItPmhlYWRlcnNpemUgLT0gUEFHRVNJWkU7CisrCQlwYXJzZXItPmhl YWRlcnNpemUgLT0gWFBBR0VTSVpFOworIAl9IGVsc2UgaWYgKG1vZGVsID09IFZUNCB8fCBtb2Rl bCA9PSBWVDQxKSB7CistCQlwYXJzZXItPmhlYWRlcnNpemUgKz0gUEFHRVNJWkU7CisrCQlwYXJz ZXItPmhlYWRlcnNpemUgKz0gWFBBR0VTSVpFOworIAl9IGVsc2UgaWYgKG1vZGVsID09IFRYMSkg eworLQkJcGFyc2VyLT5oZWFkZXJzaXplICs9IDIgKiBQQUdFU0laRTsKKysJCXBhcnNlci0+aGVh ZGVyc2l6ZSArPSAyICogWFBBR0VTSVpFOworIAl9IGVsc2UgaWYgKG1vZGVsID09IEFUT00xIHx8 IG1vZGVsID09IEkxMDAgfHwKKyAJCW1vZGVsID09IFBST1BMVVM0KSB7CistCQlwYXJzZXItPmhl YWRlcnNpemUgLT0gMiAqIFBBR0VTSVpFOworKwkJcGFyc2VyLT5oZWFkZXJzaXplIC09IDIgKiBY UEFHRVNJWkU7CisgCX0gZWxzZSBpZiAobW9kZWwgPT0gRjEwQSB8fCBtb2RlbCA9PSBGMTBCIHx8 CisgCQltb2RlbCA9PSBNVU5ESUFMMiB8fCBtb2RlbCA9PSBNVU5ESUFMMykgeworLQkJcGFyc2Vy LT5oZWFkZXJzaXplID0gMyAqIFBBR0VTSVpFOworKwkJcGFyc2VyLT5oZWFkZXJzaXplID0gMyAq IFhQQUdFU0laRTsKKyAJCXBhcnNlci0+Zm9vdGVyc2l6ZSA9IDA7CisgCX0gZWxzZSBpZiAobW9k ZWwgPT0gRjExQSB8fCBtb2RlbCA9PSBGMTFCKSB7CistCQlwYXJzZXItPmhlYWRlcnNpemUgPSA1 ICogUEFHRVNJWkU7CisrCQlwYXJzZXItPmhlYWRlcnNpemUgPSA1ICogWFBBR0VTSVpFOworIAkJ cGFyc2VyLT5mb290ZXJzaXplID0gMDsKKyAJfSBlbHNlIGlmIChtb2RlbCA9PSBBMzAwQ1MgfHwg bW9kZWwgPT0gVlRYIHx8CisgCQltb2RlbCA9PSBJNDUwVCB8fCBtb2RlbCA9PSBJNzUwVEMgfHwK KyAJCW1vZGVsID09IEk3NzBSIHx8IG1vZGVsID09IFNBR0UgfHwKKyAJCW1vZGVsID09IEJFQUNP TikgeworLQkJcGFyc2VyLT5oZWFkZXJzaXplID0gNSAqIFBBR0VTSVpFOworKwkJcGFyc2VyLT5o ZWFkZXJzaXplID0gNSAqIFhQQUdFU0laRTsKKyAJfSBlbHNlIGlmIChtb2RlbCA9PSBQUk9QTFVT WCkgeworLQkJcGFyc2VyLT5oZWFkZXJzaXplID0gMyAqIFBBR0VTSVpFOworKwkJcGFyc2VyLT5o ZWFkZXJzaXplID0gMyAqIFhQQUdFU0laRTsKKyAJfSBlbHNlIGlmIChtb2RlbCA9PSBJNTUwQyB8 fCBtb2RlbCA9PSBXSVNET000IHx8CisgCQltb2RlbCA9PSBJMjAwQ1YyKSB7CistCQlwYXJzZXIt PmhlYWRlcnNpemUgPSA1ICogUEFHRVNJWkUgLyAyOworKwkJcGFyc2VyLT5oZWFkZXJzaXplID0g NSAqIFhQQUdFU0laRSAvIDI7CisgCX0KKyAKKyAJcGFyc2VyLT5zZXJpYWwgPSBzZXJpYWw7CitA QCAtNDMzLDEyICs0MzMsMTIgQEAgb2NlYW5pY19hdG9tMl9wYXJzZXJfY2FjaGUgKG9jZWFuaWNf YXRvbTJfcGFyc2VyX3QgKnBhcnNlcikKKyAJCXJldHVybiBEQ19TVEFUVVNfREFUQUZPUk1BVDsK KyAKKyAJLy8gR2V0IHRoZSBvZmZzZXQgdG8gdGhlIGhlYWRlciBhbmQgZm9vdGVyIHNhbXBsZS4K Ky0JdW5zaWduZWQgaW50IGhlYWRlciA9IGhlYWRlcnNpemUgLSBQQUdFU0laRSAvIDI7CisrCXVu c2lnbmVkIGludCBoZWFkZXIgPSBoZWFkZXJzaXplIC0gWFBBR0VTSVpFIC8gMjsKKyAJdW5zaWdu ZWQgaW50IGZvb3RlciA9IHNpemUgLSBmb290ZXJzaXplOworIAlpZiAocGFyc2VyLT5tb2RlbCA9 PSBWVDQgfHwgcGFyc2VyLT5tb2RlbCA9PSBWVDQxIHx8CisgCQlwYXJzZXItPm1vZGVsID09IEEz MDBBSSB8fCBwYXJzZXItPm1vZGVsID09IFZJU0lPTiB8fAorIAkJcGFyc2VyLT5tb2RlbCA9PSBY UEFJUikgeworLQkJaGVhZGVyID0gMyAqIFBBR0VTSVpFOworKwkJaGVhZGVyID0gMyAqIFhQQUdF U0laRTsKKyAJfQorIAorIAkvLyBHZXQgdGhlIGRpdmUgbW9kZS4KK0BAIC02NjUsNyArNjY1LDcg QEAgb2NlYW5pY19hdG9tMl9wYXJzZXJfdmVuZG9yIChvY2VhbmljX2F0b20yX3BhcnNlcl90ICpw YXJzZXIsIGNvbnN0IHVuc2lnbmVkIGNoYXIKKyAJCS8vIEdldCB0aGUgc2FtcGxlIHNpemUuCisg CQl1bnNpZ25lZCBpbnQgbGVuZ3RoID0gc2FtcGxlc2l6ZTsKKyAJCWlmIChzYW1wbGV0eXBlID09 IDB4QkIpIHsKKy0JCQlsZW5ndGggPSBQQUdFU0laRTsKKysJCQlsZW5ndGggPSBYUEFHRVNJWkU7 CisgCQl9CisgCisgCQkvLyBWZW5kb3Igc3BlY2lmaWMgZGF0YQorQEAgLTcyMCw3ICs3MjAsNyBA QCBvY2VhbmljX2F0b20yX3BhcnNlcl9zYW1wbGVzX2ZvcmVhY2ggKGRjX3BhcnNlcl90ICphYnN0 cmFjdCwgZGNfc2FtcGxlX2NhbGxiYWNrXworIAkJfQorIAl9CisgCistCXVuc2lnbmVkIGludCBz YW1wbGVzaXplID0gUEFHRVNJWkUgLyAyOworKwl1bnNpZ25lZCBpbnQgc2FtcGxlc2l6ZSA9IFhQ QUdFU0laRSAvIDI7CisgCWlmIChwYXJzZXItPm1vZGUgPT0gRlJFRURJVkUpIHsKKyAJCWlmIChw YXJzZXItPm1vZGVsID09IEYxMEEgfHwgcGFyc2VyLT5tb2RlbCA9PSBGMTBCIHx8CisgCQkJcGFy c2VyLT5tb2RlbCA9PSBGMTFBIHx8IHBhcnNlci0+bW9kZWwgPT0gRjExQiB8fAorQEAgLTczNiw3 ICs3MzYsNyBAQCBvY2VhbmljX2F0b20yX3BhcnNlcl9zYW1wbGVzX2ZvcmVhY2ggKGRjX3BhcnNl cl90ICphYnN0cmFjdCwgZGNfc2FtcGxlX2NhbGxiYWNrXworIAkJcGFyc2VyLT5tb2RlbCA9PSBJ NzUwVEMgfHwgcGFyc2VyLT5tb2RlbCA9PSBQUk9QTFVTWCB8fAorIAkJcGFyc2VyLT5tb2RlbCA9 PSBJNzcwUiB8fCBwYXJzZXItPm1vZGVsID09IEk0NzBUQyB8fAorIAkJcGFyc2VyLT5tb2RlbCA9 PSBTQUdFIHx8IHBhcnNlci0+bW9kZWwgPT0gQkVBQ09OKSB7CistCQlzYW1wbGVzaXplID0gUEFH RVNJWkU7CisrCQlzYW1wbGVzaXplID0gWFBBR0VTSVpFOworIAl9CisgCisgCXVuc2lnbmVkIGlu dCBoYXZlX3RlbXBlcmF0dXJlID0gMSwgaGF2ZV9wcmVzc3VyZSA9IDE7CitAQCAtODA2LDcgKzgw Niw3IEBAIG9jZWFuaWNfYXRvbTJfcGFyc2VyX3NhbXBsZXNfZm9yZWFjaCAoZGNfcGFyc2VyX3Qg KmFic3RyYWN0LCBkY19zYW1wbGVfY2FsbGJhY2tfCisgCQkvLyBsYXJnZXIgc2l6ZS4gQ2hlY2sg d2hldGhlciB3ZSBoYXZlIHRoYXQgbWFueSBieXRlcyBhdmFpbGFibGUuCisgCQl1bnNpZ25lZCBp bnQgbGVuZ3RoID0gc2FtcGxlc2l6ZTsKKyAJCWlmIChzYW1wbGV0eXBlID09IDB4QkIpIHsKKy0J CQlsZW5ndGggPSBQQUdFU0laRTsKKysJCQlsZW5ndGggPSBYUEFHRVNJWkU7CisgCQkJaWYgKG9m ZnNldCArIGxlbmd0aCA+IHNpemUgLSBwYXJzZXItPmZvb3RlcnNpemUpIHsKKyAJCQkJRVJST1Ig KGFic3RyYWN0LT5jb250ZXh0LCAiQnVmZmVyIG92ZXJmbG93IGRldGVjdGVkISIpOworIAkJCQly ZXR1cm4gRENfU1RBVFVTX0RBVEFGT1JNQVQ7CistLS0gYS9zcmMvb2NlYW5pY19jb21tb24uYwor KysrIGIvc3JjL29jZWFuaWNfY29tbW9uLmMKK0BAIC0xMDQsNyArMTA0LDcgQEAgb2NlYW5pY19j b21tb25fbWF0Y2hfcGF0dGVybiAoY29uc3QgdW5zaWduZWQgY2hhciAqc3RyaW5nLCBjb25zdCB1 bnNpZ25lZCBjaGFyICoKKyAJdW5zaWduZWQgaW50IHZhbHVlID0gMDsKKyAJdW5zaWduZWQgaW50 IGNvdW50ID0gMDsKKyAKKy0JZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBQQUdFU0laRTsg KytpLCArK3BhdHRlcm4sICsrc3RyaW5nKSB7CisrCWZvciAodW5zaWduZWQgaW50IGkgPSAwOyBp IDwgWFBBR0VTSVpFOyArK2ksICsrcGF0dGVybiwgKytzdHJpbmcpIHsKKyAJCWlmICgqcGF0dGVy biAhPSAnXDAnKSB7CisgCQkJLy8gQ29tcGFyZSB0aGUgcGF0dGVybi4KKyAJCQlpZiAoKnBhdHRl cm4gIT0gKnN0cmluZykKK0BAIC0yMTAsNyArMjEwLDcgQEAgb2NlYW5pY19jb21tb25fZGV2aWNl X2R1bXAgKGRjX2RldmljZV90ICphYnN0cmFjdCwgZGNfYnVmZmVyX3QgKmJ1ZmZlcikKKyAKKyAJ Ly8gRG93bmxvYWQgdGhlIG1lbW9yeSBkdW1wLgorIAlzdGF0dXMgPSBkZXZpY2VfZHVtcF9yZWFk IChhYnN0cmFjdCwgMCwgZGNfYnVmZmVyX2dldF9kYXRhIChidWZmZXIpLAorLQkJZGNfYnVmZmVy X2dldF9zaXplIChidWZmZXIpLCBQQUdFU0laRSAqIGRldmljZS0+bXVsdGlwYWdlKTsKKysJCWRj X2J1ZmZlcl9nZXRfc2l6ZSAoYnVmZmVyKSwgWFBBR0VTSVpFICogZGV2aWNlLT5tdWx0aXBhZ2Up OworIAlpZiAoc3RhdHVzICE9IERDX1NUQVRVU19TVUNDRVNTKSB7CisgCQlyZXR1cm4gc3RhdHVz OworIAl9CitAQCAtMjYwLDcgKzI2MCw3IEBAIG9jZWFuaWNfY29tbW9uX2RldmljZV9sb2dib29r IChkY19kZXZpY2VfdCAqYWJzdHJhY3QsIGRjX2V2ZW50X3Byb2dyZXNzX3QgKnByb2dyCisgCX0K KyAKKyAJLy8gUmVhZCB0aGUgcG9pbnRlciBkYXRhLgorLQl1bnNpZ25lZCBjaGFyIHBvaW50ZXJz W1BBR0VTSVpFXSA9IHswfTsKKysJdW5zaWduZWQgY2hhciBwb2ludGVyc1tYUEFHRVNJWkVdID0g ezB9OworIAlyYyA9IGRjX2RldmljZV9yZWFkIChhYnN0cmFjdCwgbGF5b3V0LT5jZl9wb2ludGVy cywgcG9pbnRlcnMsIHNpemVvZiAocG9pbnRlcnMpKTsKKyAJaWYgKHJjICE9IERDX1NUQVRVU19T VUNDRVNTKSB7CisgCQlFUlJPUiAoYWJzdHJhY3QtPmNvbnRleHQsICJGYWlsZWQgdG8gcmVhZCB0 aGUgbWVtb3J5IHBhZ2UuIik7CitAQCAtMzA0LDggKzMwNCw4IEBAIG9jZWFuaWNfY29tbW9uX2Rl dmljZV9sb2dib29rIChkY19kZXZpY2VfdCAqYWJzdHJhY3QsIGRjX2V2ZW50X3Byb2dyZXNzX3Qg KnByb2dyCisgCX0KKyAKKyAJLy8gVXBkYXRlIGFuZCBlbWl0IGEgcHJvZ3Jlc3MgZXZlbnQuCist CXByb2dyZXNzLT5jdXJyZW50ICs9IFBBR0VTSVpFOworLQlwcm9ncmVzcy0+bWF4aW11bSArPSBQ QUdFU0laRTsKKysJcHJvZ3Jlc3MtPmN1cnJlbnQgKz0gWFBBR0VTSVpFOworKwlwcm9ncmVzcy0+ bWF4aW11bSArPSBYUEFHRVNJWkU7CisgCXByb2dyZXNzLT5tYXhpbXVtIC09IChsYXlvdXQtPnJi X2xvZ2Jvb2tfZW5kIC0gbGF5b3V0LT5yYl9sb2dib29rX2JlZ2luKSAtIHJiX2xvZ2Jvb2tfc2l6 ZTsKKyAJZGV2aWNlX2V2ZW50X2VtaXQgKGFic3RyYWN0LCBEQ19FVkVOVF9QUk9HUkVTUywgcHJv Z3Jlc3MpOworIAorQEAgLTMyMyw3ICszMjMsNyBAQCBvY2VhbmljX2NvbW1vbl9kZXZpY2VfbG9n Ym9vayAoZGNfZGV2aWNlX3QgKmFic3RyYWN0LCBkY19ldmVudF9wcm9ncmVzc190ICpwcm9ncgor IAorIAkvLyBDcmVhdGUgdGhlIHJpbmdidWZmZXIgc3RyZWFtLgorIAlkY19yYnN0cmVhbV90ICpy YnN0cmVhbSA9IE5VTEw7CistCXJjID0gZGNfcmJzdHJlYW1fbmV3ICgmcmJzdHJlYW0sIGFic3Ry YWN0LCBQQUdFU0laRSwgUEFHRVNJWkUgKiBkZXZpY2UtPm11bHRpcGFnZSwgbGF5b3V0LT5yYl9s b2dib29rX2JlZ2luLCBsYXlvdXQtPnJiX2xvZ2Jvb2tfZW5kLCByYl9sb2dib29rX2VuZCk7Cisr CXJjID0gZGNfcmJzdHJlYW1fbmV3ICgmcmJzdHJlYW0sIGFic3RyYWN0LCBYUEFHRVNJWkUsIFhQ QUdFU0laRSAqIGRldmljZS0+bXVsdGlwYWdlLCBsYXlvdXQtPnJiX2xvZ2Jvb2tfYmVnaW4sIGxh eW91dC0+cmJfbG9nYm9va19lbmQsIHJiX2xvZ2Jvb2tfZW5kKTsKKyAJaWYgKHJjICE9IERDX1NU QVRVU19TVUNDRVNTKSB7CisgCQlFUlJPUiAoYWJzdHJhY3QtPmNvbnRleHQsICJGYWlsZWQgdG8g Y3JlYXRlIHRoZSByaW5nYnVmZmVyIHN0cmVhbS4iKTsKKyAJCXJldHVybiByYzsKK0BAIC00MDAs NyArNDAwLDcgQEAgb2NlYW5pY19jb21tb25fZGV2aWNlX3Byb2ZpbGUgKGRjX2RldmljZV90ICph YnN0cmFjdCwgZGNfZXZlbnRfcHJvZ3Jlc3NfdCAqcHJvZ3IKKyAJY29uc3Qgb2NlYW5pY19jb21t b25fbGF5b3V0X3QgKmxheW91dCA9IGRldmljZS0+bGF5b3V0OworIAorIAkvLyBHZXQgdGhlIHBh Z2VzaXplCistCXVuc2lnbmVkIGludCBwYWdlc2l6ZSA9IGxheW91dC0+aGlnaG1lbSA/IDE2ICog UEFHRVNJWkUgOiBQQUdFU0laRTsKKysJdW5zaWduZWQgaW50IHBhZ2VzaXplID0gbGF5b3V0LT5o aWdobWVtID8gMTYgKiBYUEFHRVNJWkUgOiBYUEFHRVNJWkU7CisgCisgCS8vIENhY2hlIHRoZSBs b2dib29rIHBvaW50ZXIgYW5kIHNpemUuCisgCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmxvZ2Jvb2tz ID0gZGNfYnVmZmVyX2dldF9kYXRhIChsb2dib29rKTsKK0BAIC00ODUsNyArNDg1LDcgQEAgb2Nl YW5pY19jb21tb25fZGV2aWNlX3Byb2ZpbGUgKGRjX2RldmljZV90ICphYnN0cmFjdCwgZGNfZXZl bnRfcHJvZ3Jlc3NfdCAqcHJvZ3IKKyAKKyAJLy8gQ3JlYXRlIHRoZSByaW5nYnVmZmVyIHN0cmVh bS4KKyAJZGNfcmJzdHJlYW1fdCAqcmJzdHJlYW0gPSBOVUxMOworLQlyYyA9IGRjX3Jic3RyZWFt X25ldyAoJnJic3RyZWFtLCBhYnN0cmFjdCwgUEFHRVNJWkUsIFBBR0VTSVpFICogZGV2aWNlLT5t dWx0aXBhZ2UsIGxheW91dC0+cmJfcHJvZmlsZV9iZWdpbiwgbGF5b3V0LT5yYl9wcm9maWxlX2Vu ZCwgcmJfcHJvZmlsZV9lbmQpOworKwlyYyA9IGRjX3Jic3RyZWFtX25ldyAoJnJic3RyZWFtLCBh YnN0cmFjdCwgWFBBR0VTSVpFLCBYUEFHRVNJWkUgKiBkZXZpY2UtPm11bHRpcGFnZSwgbGF5b3V0 LT5yYl9wcm9maWxlX2JlZ2luLCBsYXlvdXQtPnJiX3Byb2ZpbGVfZW5kLCByYl9wcm9maWxlX2Vu ZCk7CisgCWlmIChyYyAhPSBEQ19TVEFUVVNfU1VDQ0VTUykgeworIAkJRVJST1IgKGFic3RyYWN0 LT5jb250ZXh0LCAiRmFpbGVkIHRvIGNyZWF0ZSB0aGUgcmluZ2J1ZmZlciBzdHJlYW0uIik7Cisg CQlyZXR1cm4gcmM7CitAQCAtNTc4LDcgKzU3OCw3IEBAIG9jZWFuaWNfY29tbW9uX2RldmljZV9w cm9maWxlIChkY19kZXZpY2VfdCAqYWJzdHJhY3QsIGRjX2V2ZW50X3Byb2dyZXNzX3QgKnByb2dy CisgCQkJdW5zaWduZWQgaW50IHZhbHVlX2hpID0gdmFsdWUgJiAweEUwMDA7CisgCQkJdW5zaWdu ZWQgaW50IHZhbHVlX2xvID0gdmFsdWUgJiAweDBGRkY7CisgCQkJdW5zaWduZWQgaW50IG5wYWdl cyA9ICgodmFsdWVfaGkgPj4gMSkgfCB2YWx1ZV9sbykgKyAxOworLQkJCXVuc2lnbmVkIGludCBs ZW5ndGggPSBucGFnZXMgKiBQQUdFU0laRTsKKysJCQl1bnNpZ25lZCBpbnQgbGVuZ3RoID0gbnBh Z2VzICogWFBBR0VTSVpFOworIAkJCWlmIChyYl9lbnRyeV9zaXplID4gbGVuZ3RoKSB7CisgCQkJ CXJiX2VudHJ5X3NpemUgPSBsZW5ndGg7CisgCQkJfQorQEAgLTYwOSw3ICs2MDksNyBAQCBvY2Vh bmljX2NvbW1vbl9kZXZpY2VfZm9yZWFjaCAoZGNfZGV2aWNlX3QgKmFic3RyYWN0LCBkY19kaXZl X2NhbGxiYWNrX3QgY2FsbGJhYworIAorIAkvLyBFbmFibGUgcHJvZ3Jlc3Mgbm90aWZpY2F0aW9u cy4KKyAJZGNfZXZlbnRfcHJvZ3Jlc3NfdCBwcm9ncmVzcyA9IEVWRU5UX1BST0dSRVNTX0lOSVRJ QUxJWkVSOworLQlwcm9ncmVzcy5tYXhpbXVtID0gUEFHRVNJWkUgKworKwlwcm9ncmVzcy5tYXhp bXVtID0gWFBBR0VTSVpFICsKKyAJCShsYXlvdXQtPnJiX2xvZ2Jvb2tfZW5kIC0gbGF5b3V0LT5y Yl9sb2dib29rX2JlZ2luKSArCisgCQkobGF5b3V0LT5yYl9wcm9maWxlX2VuZCAtIGxheW91dC0+ cmJfcHJvZmlsZV9iZWdpbik7CisgCWRldmljZV9ldmVudF9lbWl0IChhYnN0cmFjdCwgRENfRVZF TlRfUFJPR1JFU1MsICZwcm9ncmVzcyk7CitAQCAtNjIxLDcgKzYyMSw3IEBAIG9jZWFuaWNfY29t bW9uX2RldmljZV9mb3JlYWNoIChkY19kZXZpY2VfdCAqYWJzdHJhY3QsIGRjX2RpdmVfY2FsbGJh Y2tfdCBjYWxsYmFjCisgCWRldmljZV9ldmVudF9lbWl0IChhYnN0cmFjdCwgRENfRVZFTlRfVkVO RE9SLCAmdmVuZG9yKTsKKyAKKyAJLy8gUmVhZCB0aGUgZGV2aWNlIGlkLgorLQl1bnNpZ25lZCBj aGFyIGlkW1BBR0VTSVpFXSA9IHswfTsKKysJdW5zaWduZWQgY2hhciBpZFtYUEFHRVNJWkVdID0g ezB9OworIAlkY19zdGF0dXNfdCByYyA9IGRjX2RldmljZV9yZWFkIChhYnN0cmFjdCwgbGF5b3V0 LT5jZl9kZXZpbmZvLCBpZCwgc2l6ZW9mIChpZCkpOworIAlpZiAocmMgIT0gRENfU1RBVFVTX1NV Q0NFU1MpIHsKKyAJCUVSUk9SIChhYnN0cmFjdC0+Y29udGV4dCwgIkZhaWxlZCB0byByZWFkIHRo ZSBtZW1vcnkgcGFnZS4iKTsKK0BAIC02MjksNyArNjI5LDcgQEAgb2NlYW5pY19jb21tb25fZGV2 aWNlX2ZvcmVhY2ggKGRjX2RldmljZV90ICphYnN0cmFjdCwgZGNfZGl2ZV9jYWxsYmFja190IGNh bGxiYWMKKyAJfQorIAorIAkvLyBVcGRhdGUgYW5kIGVtaXQgYSBwcm9ncmVzcyBldmVudC4KKy0J cHJvZ3Jlc3MuY3VycmVudCArPSBQQUdFU0laRTsKKysJcHJvZ3Jlc3MuY3VycmVudCArPSBYUEFH RVNJWkU7CisgCWRldmljZV9ldmVudF9lbWl0IChhYnN0cmFjdCwgRENfRVZFTlRfUFJPR1JFU1Ms ICZwcm9ncmVzcyk7CisgCisgCS8vIEVtaXQgYSBkZXZpY2UgaW5mbyBldmVudC4KKy0tLSBhL3Ny Yy9vY2VhbmljX2NvbW1vbi5oCisrKysgYi9zcmMvb2NlYW5pY19jb21tb24uaAorQEAgLTI4LDcg KzI4LDcgQEAKKyBleHRlcm4gIkMiIHsKKyAjZW5kaWYgLyogX19jcGx1c3BsdXMgKi8KKyAKKy0j ZGVmaW5lIFBBR0VTSVpFIDB4MTAKKysjZGVmaW5lIFhQQUdFU0laRSAweDEwCisgI2RlZmluZSBG UE1BWFNJWkUgMHgyMAorIAorICNkZWZpbmUgT0NFQU5JQ19DT01NT05fTUFUQ0godmVyc2lvbixw YXR0ZXJucyxmaXJtd2FyZSkgXAorQEAgLTYyLDcgKzYyLDcgQEAgdHlwZWRlZiBzdHJ1Y3Qgb2Nl YW5pY19jb21tb25fbGF5b3V0X3QgeworIHR5cGVkZWYgc3RydWN0IG9jZWFuaWNfY29tbW9uX2Rl dmljZV90IHsKKyAJZGNfZGV2aWNlX3QgYmFzZTsKKyAJdW5zaWduZWQgaW50IGZpcm13YXJlOwor LQl1bnNpZ25lZCBjaGFyIHZlcnNpb25bUEFHRVNJWkVdOworKwl1bnNpZ25lZCBjaGFyIHZlcnNp b25bWFBBR0VTSVpFXTsKKyAJdW5zaWduZWQgY2hhciBmaW5nZXJwcmludFtGUE1BWFNJWkVdOwor IAljb25zdCBvY2VhbmljX2NvbW1vbl9sYXlvdXRfdCAqbGF5b3V0OworIAl1bnNpZ25lZCBpbnQg bXVsdGlwYWdlOworQEAgLTc1LDcgKzc1LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qgb2NlYW5pY19jb21t b25fZGV2aWNlX3Z0YWJsZV90IHsKKyB9IG9jZWFuaWNfY29tbW9uX2RldmljZV92dGFibGVfdDsK KyAKKyB0eXBlZGVmIHN0cnVjdCBvY2VhbmljX2NvbW1vbl92ZXJzaW9uX3QgeworLQl1bnNpZ25l ZCBjaGFyIHBhdHRlcm5bUEFHRVNJWkUgKyAxXTsKKysJdW5zaWduZWQgY2hhciBwYXR0ZXJuW1hQ QUdFU0laRSArIDFdOworIAl1bnNpZ25lZCBpbnQgZmlybXdhcmU7CisgCWNvbnN0IG9jZWFuaWNf Y29tbW9uX2xheW91dF90ICpsYXlvdXQ7CisgfSBvY2VhbmljX2NvbW1vbl92ZXJzaW9uX3Q7Cist LS0gYS9zcmMvb2NlYW5pY192ZW8yNTAuYworKysrIGIvc3JjL29jZWFuaWNfdmVvMjUwLmMKK0BA IC0zODQsMjQgKzM4NCwyNCBAQCBvY2VhbmljX3ZlbzI1MF9kZXZpY2VfdmVyc2lvbiAoZGNfZGV2 aWNlX3QgKmFic3RyYWN0LCB1bnNpZ25lZCBjaGFyIGRhdGFbXSwgdW5zaQorIAlpZiAoIUlTSU5T VEFOQ0UgKGFic3RyYWN0KSkKKyAJCXJldHVybiBEQ19TVEFUVVNfSU5WQUxJREFSR1M7CisgCist CWlmIChzaXplIDwgUEFHRVNJWkUpCisrCWlmIChzaXplIDwgWFBBR0VTSVpFKQorIAkJcmV0dXJu IERDX1NUQVRVU19JTlZBTElEQVJHUzsKKyAKKy0JdW5zaWduZWQgY2hhciBhbnN3ZXJbUEFHRVNJ WkUgKyAyXSA9IHswfTsKKysJdW5zaWduZWQgY2hhciBhbnN3ZXJbWFBBR0VTSVpFICsgMl0gPSB7 MH07CisgCXVuc2lnbmVkIGNoYXIgY29tbWFuZFsyXSA9IHsweDkwLCAweDAwfTsKKyAJZGNfc3Rh dHVzX3QgcmMgPSBvY2VhbmljX3ZlbzI1MF90cmFuc2ZlciAoZGV2aWNlLCBjb21tYW5kLCBzaXpl b2YgKGNvbW1hbmQpLCBhbnN3ZXIsIHNpemVvZiAoYW5zd2VyKSk7CisgCWlmIChyYyAhPSBEQ19T VEFUVVNfU1VDQ0VTUykKKyAJCXJldHVybiByYzsKKyAKKyAJLy8gVmVyaWZ5IHRoZSBjaGVja3N1 bSBvZiB0aGUgYW5zd2VyLgorLQl1bnNpZ25lZCBjaGFyIGNyYyA9IGFuc3dlcltQQUdFU0laRV07 CistCXVuc2lnbmVkIGNoYXIgY2NyYyA9IGNoZWNrc3VtX2FkZF91aW50OCAoYW5zd2VyLCBQQUdF U0laRSwgMHgwMCk7CisrCXVuc2lnbmVkIGNoYXIgY3JjID0gYW5zd2VyW1hQQUdFU0laRV07Cisr CXVuc2lnbmVkIGNoYXIgY2NyYyA9IGNoZWNrc3VtX2FkZF91aW50OCAoYW5zd2VyLCBYUEFHRVNJ WkUsIDB4MDApOworIAlpZiAoY3JjICE9IGNjcmMpIHsKKyAJCUVSUk9SIChhYnN0cmFjdC0+Y29u dGV4dCwgIlVuZXhwZWN0ZWQgYW5zd2VyIGNoZWNrc3VtLiIpOworIAkJcmV0dXJuIERDX1NUQVRV U19QUk9UT0NPTDsKKyAJfQorIAorLQltZW1jcHkgKGRhdGEsIGFuc3dlciwgUEFHRVNJWkUpOwor KwltZW1jcHkgKGRhdGEsIGFuc3dlciwgWFBBR0VTSVpFKTsKKyAKKyAJcmV0dXJuIERDX1NUQVRV U19TVUNDRVNTOworIH0KK0BAIC00MTIsMjggKzQxMiwyOCBAQCBvY2VhbmljX3ZlbzI1MF9kZXZp Y2VfcmVhZCAoZGNfZGV2aWNlX3QgKmFic3RyYWN0LCB1bnNpZ25lZCBpbnQgYWRkcmVzcywgdW5z aWduZQorIHsKKyAJb2NlYW5pY192ZW8yNTBfZGV2aWNlX3QgKmRldmljZSA9IChvY2VhbmljX3Zl bzI1MF9kZXZpY2VfdCopIGFic3RyYWN0OworIAorLQlpZiAoKGFkZHJlc3MgJSBQQUdFU0laRSAh PSAwKSB8fAorLQkJKHNpemUgICAgJSBQQUdFU0laRSAhPSAwKSkKKysJaWYgKChhZGRyZXNzICUg WFBBR0VTSVpFICE9IDApIHx8CisrCQkoc2l6ZSAgICAlIFhQQUdFU0laRSAhPSAwKSkKKyAJCXJl dHVybiBEQ19TVEFUVVNfSU5WQUxJREFSR1M7CisgCisgCXVuc2lnbmVkIGludCBuYnl0ZXMgPSAw OworIAl3aGlsZSAobmJ5dGVzIDwgc2l6ZSkgeworIAkJLy8gQ2FsY3VsYXRlIHRoZSBudW1iZXIg b2YgcGFja2FnZXMuCistCQl1bnNpZ25lZCBpbnQgbnBhY2tldHMgPSAoc2l6ZSAtIG5ieXRlcykg LyBQQUdFU0laRTsKKysJCXVuc2lnbmVkIGludCBucGFja2V0cyA9IChzaXplIC0gbmJ5dGVzKSAv IFhQQUdFU0laRTsKKyAJCWlmIChucGFja2V0cyA+IE1VTFRJUEFHRSkKKyAJCQlucGFja2V0cyA9 IE1VTFRJUEFHRTsKKyAKKyAJCS8vIFJlYWQgdGhlIHBhY2thZ2UuCistCQl1bnNpZ25lZCBpbnQg Zmlyc3QgPSAgYWRkcmVzcyAvIFBBR0VTSVpFOworKwkJdW5zaWduZWQgaW50IGZpcnN0ID0gIGFk ZHJlc3MgLyBYUEFHRVNJWkU7CisgCQl1bnNpZ25lZCBpbnQgbGFzdCAgPSBmaXJzdCArIG5wYWNr ZXRzIC0gMTsKKy0JCXVuc2lnbmVkIGNoYXIgYW5zd2VyWyhQQUdFU0laRSArIDEpICogTVVMVElQ QUdFICsgMV0gPSB7MH07CisrCQl1bnNpZ25lZCBjaGFyIGFuc3dlclsoWFBBR0VTSVpFICsgMSkg KiBNVUxUSVBBR0UgKyAxXSA9IHswfTsKKyAJCXVuc2lnbmVkIGNoYXIgY29tbWFuZFs2XSA9IHsw eDIwLAorIAkJCQkoZmlyc3QgICAgICkgJiAweEZGLCAvLyBsb3cKKyAJCQkJKGZpcnN0ID4+IDgp ICYgMHhGRiwgLy8gaGlnaAorIAkJCQkobGFzdCAgICAgKSAmIDB4RkYsIC8vIGxvdworIAkJCQko bGFzdCA+PiA4KSAmIDB4RkYsIC8vIGhpZ2gKKyAJCQkJMH07CistCQlkY19zdGF0dXNfdCByYyA9 IG9jZWFuaWNfdmVvMjUwX3RyYW5zZmVyIChkZXZpY2UsIGNvbW1hbmQsIHNpemVvZiAoY29tbWFu ZCksIGFuc3dlciwgKFBBR0VTSVpFICsgMSkgKiBucGFja2V0cyArIDEpOworKwkJZGNfc3RhdHVz X3QgcmMgPSBvY2VhbmljX3ZlbzI1MF90cmFuc2ZlciAoZGV2aWNlLCBjb21tYW5kLCBzaXplb2Yg KGNvbW1hbmQpLCBhbnN3ZXIsIChYUEFHRVNJWkUgKyAxKSAqIG5wYWNrZXRzICsgMSk7CisgCQlp ZiAocmMgIT0gRENfU1RBVFVTX1NVQ0NFU1MpCisgCQkJcmV0dXJuIHJjOworIAorQEAgLTQ0Miwx OSArNDQyLDE5IEBAIG9jZWFuaWNfdmVvMjUwX2RldmljZV9yZWFkIChkY19kZXZpY2VfdCAqYWJz dHJhY3QsIHVuc2lnbmVkIGludCBhZGRyZXNzLCB1bnNpZ25lCisgCQl1bnNpZ25lZCBpbnQgb2Zm c2V0ID0gMDsKKyAJCWZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgbnBhY2tldHM7ICsraSkg eworIAkJCS8vIFZlcmlmeSB0aGUgY2hlY2tzdW0gb2YgdGhlIGFuc3dlci4KKy0JCQl1bnNpZ25l ZCBjaGFyIGNyYyA9IGFuc3dlcltvZmZzZXQgKyBQQUdFU0laRV07CistCQkJdW5zaWduZWQgY2hh ciBjY3JjID0gY2hlY2tzdW1fYWRkX3VpbnQ4IChhbnN3ZXIgKyBvZmZzZXQsIFBBR0VTSVpFLCAw eDAwKTsKKysJCQl1bnNpZ25lZCBjaGFyIGNyYyA9IGFuc3dlcltvZmZzZXQgKyBYUEFHRVNJWkVd OworKwkJCXVuc2lnbmVkIGNoYXIgY2NyYyA9IGNoZWNrc3VtX2FkZF91aW50OCAoYW5zd2VyICsg b2Zmc2V0LCBYUEFHRVNJWkUsIDB4MDApOworIAkJCWlmIChjcmMgIT0gY2NyYykgeworIAkJCQlF UlJPUiAoYWJzdHJhY3QtPmNvbnRleHQsICJVbmV4cGVjdGVkIGFuc3dlciBjaGVja3N1bS4iKTsK KyAJCQkJcmV0dXJuIERDX1NUQVRVU19QUk9UT0NPTDsKKyAJCQl9CisgCistCQkJbWVtY3B5IChk YXRhLCBhbnN3ZXIgKyBvZmZzZXQsIFBBR0VTSVpFKTsKKysJCQltZW1jcHkgKGRhdGEsIGFuc3dl ciArIG9mZnNldCwgWFBBR0VTSVpFKTsKKyAKKy0JCQlvZmZzZXQgKz0gUEFHRVNJWkUgKyAxOwor LQkJCW5ieXRlcyArPSBQQUdFU0laRTsKKy0JCQlhZGRyZXNzICs9IFBBR0VTSVpFOworLQkJCWRh dGEgKz0gUEFHRVNJWkU7CisrCQkJb2Zmc2V0ICs9IFhQQUdFU0laRSArIDE7CisrCQkJbmJ5dGVz ICs9IFhQQUdFU0laRTsKKysJCQlhZGRyZXNzICs9IFhQQUdFU0laRTsKKysJCQlkYXRhICs9IFhQ QUdFU0laRTsKKyAJCX0KKyAJfQorIAorLS0tIGEvc3JjL29jZWFuaWNfdmVvMjUwX3BhcnNlci5j CisrKysgYi9zcmMvb2NlYW5pY192ZW8yNTBfcGFyc2VyLmMKK0BAIC0xNDIsNyArMTQyLDcgQEAg b2NlYW5pY192ZW8yNTBfcGFyc2VyX2dldF9maWVsZCAoZGNfcGFyc2VyX3QgKmFic3RyYWN0LCBk Y19maWVsZF90eXBlX3QgdHlwZSwgdW4KKyAJY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YSA9IGFi c3RyYWN0LT5kYXRhOworIAl1bnNpZ25lZCBpbnQgc2l6ZSA9IGFic3RyYWN0LT5zaXplOworIAor LQlpZiAoc2l6ZSA8IDcgKiBQQUdFU0laRSAvIDIpCisrCWlmIChzaXplIDwgNyAqIFhQQUdFU0la RSAvIDIpCisgCQlyZXR1cm4gRENfU1RBVFVTX0RBVEFGT1JNQVQ7CisgCisgCWlmICghcGFyc2Vy LT5jYWNoZWQpIHsKK0BAIC0xNTcsNyArMTU3LDcgQEAgb2NlYW5pY192ZW8yNTBfcGFyc2VyX2dl dF9maWVsZCAoZGNfcGFyc2VyX3QgKmFic3RyYWN0LCBkY19maWVsZF90eXBlX3QgdHlwZSwgdW4K KyAJCXBhcnNlci0+bWF4ZGVwdGggPSBzdGF0aXN0aWNzLm1heGRlcHRoOworIAl9CisgCistCXVu c2lnbmVkIGludCBmb290ZXIgPSBzaXplIC0gUEFHRVNJWkU7CisrCXVuc2lnbmVkIGludCBmb290 ZXIgPSBzaXplIC0gWFBBR0VTSVpFOworIAorIAlkY19nYXNtaXhfdCAqZ2FzbWl4ID0gKGRjX2dh c21peF90ICopIHZhbHVlOworIAorQEAgLTE5Niw3ICsxOTYsNyBAQCBvY2VhbmljX3ZlbzI1MF9w YXJzZXJfc2FtcGxlc19mb3JlYWNoIChkY19wYXJzZXJfdCAqYWJzdHJhY3QsIGRjX3NhbXBsZV9j YWxsYmFjaworIAljb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhID0gYWJzdHJhY3QtPmRhdGE7Cisg CXVuc2lnbmVkIGludCBzaXplID0gYWJzdHJhY3QtPnNpemU7CisgCistCWlmIChzaXplIDwgNyAq IFBBR0VTSVpFIC8gMikKKysJaWYgKHNpemUgPCA3ICogWFBBR0VTSVpFIC8gMikKKyAJCXJldHVy biBEQ19TVEFUVVNfREFUQUZPUk1BVDsKKyAKKyAJdW5zaWduZWQgaW50IHRpbWUgPSAwOworQEAg LTIyMSwxMyArMjIxLDEzIEBAIG9jZWFuaWNfdmVvMjUwX3BhcnNlcl9zYW1wbGVzX2ZvcmVhY2gg KGRjX3BhcnNlcl90ICphYnN0cmFjdCwgZGNfc2FtcGxlX2NhbGxiYWNrCisgCQlicmVhazsKKyAJ fQorIAorLQl1bnNpZ25lZCBpbnQgb2Zmc2V0ID0gNSAqIFBBR0VTSVpFIC8gMjsKKy0Jd2hpbGUg KG9mZnNldCArIFBBR0VTSVpFIC8gMiA8PSBzaXplIC0gUEFHRVNJWkUpIHsKKysJdW5zaWduZWQg aW50IG9mZnNldCA9IDUgKiBYUEFHRVNJWkUgLyAyOworKwl3aGlsZSAob2Zmc2V0ICsgWFBBR0VT SVpFIC8gMiA8PSBzaXplIC0gWFBBR0VTSVpFKSB7CisgCQlkY19zYW1wbGVfdmFsdWVfdCBzYW1w bGUgPSB7MH07CisgCisgCQkvLyBJZ25vcmUgZW1wdHkgc2FtcGxlcy4KKy0JCWlmIChhcnJheV9p c2VxdWFsIChkYXRhICsgb2Zmc2V0LCBQQUdFU0laRSAvIDIsIDB4MDApKSB7CistCQkJb2Zmc2V0 ICs9IFBBR0VTSVpFIC8gMjsKKysJCWlmIChhcnJheV9pc2VxdWFsIChkYXRhICsgb2Zmc2V0LCBY UEFHRVNJWkUgLyAyLCAweDAwKSkgeworKwkJCW9mZnNldCArPSBYUEFHRVNJWkUgLyAyOworIAkJ CWNvbnRpbnVlOworIAkJfQorIAorQEAgLTIzOCw3ICsyMzgsNyBAQCBvY2VhbmljX3ZlbzI1MF9w YXJzZXJfc2FtcGxlc19mb3JlYWNoIChkY19wYXJzZXJfdCAqYWJzdHJhY3QsIGRjX3NhbXBsZV9j YWxsYmFjaworIAorIAkJLy8gVmVuZG9yIHNwZWNpZmljIGRhdGEKKyAJCXNhbXBsZS52ZW5kb3Iu dHlwZSA9IFNBTVBMRV9WRU5ET1JfT0NFQU5JQ19WRU8yNTA7CistCQlzYW1wbGUudmVuZG9yLnNp emUgPSBQQUdFU0laRSAvIDI7CisrCQlzYW1wbGUudmVuZG9yLnNpemUgPSBYUEFHRVNJWkUgLyAy OworIAkJc2FtcGxlLnZlbmRvci5kYXRhID0gZGF0YSArIG9mZnNldDsKKyAJCWlmIChjYWxsYmFj aykgY2FsbGJhY2sgKERDX1NBTVBMRV9WRU5ET1IsIHNhbXBsZSwgdXNlcmRhdGEpOworIAorQEAg LTI4Myw3ICsyODMsNyBAQCBvY2VhbmljX3ZlbzI1MF9wYXJzZXJfc2FtcGxlc19mb3JlYWNoIChk Y19wYXJzZXJfdCAqYWJzdHJhY3QsIGRjX3NhbXBsZV9jYWxsYmFjaworIAkJCWlmIChjYWxsYmFj aykgY2FsbGJhY2sgKERDX1NBTVBMRV9ERUNPLCBzYW1wbGUsIHVzZXJkYXRhKTsKKyAJCX0KKyAK Ky0JCW9mZnNldCArPSBQQUdFU0laRSAvIDI7CisrCQlvZmZzZXQgKz0gWFBBR0VTSVpFIC8gMjsK KyAJfQorIAorIAlyZXR1cm4gRENfU1RBVFVTX1NVQ0NFU1M7CistLS0gYS9zcmMvb2NlYW5pY192 dHByby5jCisrKysgYi9zcmMvb2NlYW5pY192dHByby5jCitAQCAtMjk2LDcgKzI5Niw3IEBAIG9j ZWFuaWNfYWVyaXM1MDBhaV9kZXZpY2VfbG9nYm9vayAoZGNfZGV2aWNlX3QgKmFic3RyYWN0LCBk Y19ldmVudF9wcm9ncmVzc190ICpwCisgCisgCWFzc2VydCAoZGV2aWNlICE9IE5VTEwpOworIAlh c3NlcnQgKGRldmljZS0+YmFzZS5sYXlvdXQgIT0gTlVMTCk7CistCWFzc2VydCAoZGV2aWNlLT5i YXNlLmxheW91dC0+cmJfbG9nYm9va19lbnRyeV9zaXplID09IFBBR0VTSVpFIC8gMik7CisrCWFz c2VydCAoZGV2aWNlLT5iYXNlLmxheW91dC0+cmJfbG9nYm9va19lbnRyeV9zaXplID09IFhQQUdF U0laRSAvIDIpOworIAlhc3NlcnQgKGRldmljZS0+YmFzZS5sYXlvdXQtPnJiX2xvZ2Jvb2tfYmVn aW4gPT0gZGV2aWNlLT5iYXNlLmxheW91dC0+cmJfbG9nYm9va19lbmQpOworIAlhc3NlcnQgKHBy b2dyZXNzICE9IE5VTEwpOworIAorQEAgLTMwNyw3ICszMDcsNyBAQCBvY2VhbmljX2FlcmlzNTAw YWlfZGV2aWNlX2xvZ2Jvb2sgKGRjX2RldmljZV90ICphYnN0cmFjdCwgZGNfZXZlbnRfcHJvZ3Jl c3NfdCAqcAorIAkJcmV0dXJuIERDX1NUQVRVU19OT01FTU9SWTsKKyAKKyAJLy8gUmVhZCB0aGUg cG9pbnRlciBkYXRhLgorLQl1bnNpZ25lZCBjaGFyIHBvaW50ZXJzW1BBR0VTSVpFXSA9IHswfTsK KysJdW5zaWduZWQgY2hhciBwb2ludGVyc1tYUEFHRVNJWkVdID0gezB9OworIAlyYyA9IG9jZWFu aWNfdnRwcm9fZGV2aWNlX3JlYWQgKGFic3RyYWN0LCBsYXlvdXQtPmNmX3BvaW50ZXJzLCBwb2lu dGVycywgc2l6ZW9mIChwb2ludGVycykpOworIAlpZiAocmMgIT0gRENfU1RBVFVTX1NVQ0NFU1Mp IHsKKyAJCUVSUk9SIChhYnN0cmFjdC0+Y29udGV4dCwgIkZhaWxlZCB0byByZWFkIHRoZSBtZW1v cnkgcGFnZS4iKTsKK0BAIC0zMTgsMTIgKzMxOCwxMiBAQCBvY2VhbmljX2FlcmlzNTAwYWlfZGV2 aWNlX2xvZ2Jvb2sgKGRjX2RldmljZV90ICphYnN0cmFjdCwgZGNfZXZlbnRfcHJvZ3Jlc3NfdCAq cAorIAl1bnNpZ25lZCBpbnQgbGFzdCA9IHBvaW50ZXJzWzB4MDNdOworIAorIAkvLyBVcGRhdGUg YW5kIGVtaXQgYSBwcm9ncmVzcyBldmVudC4KKy0JcHJvZ3Jlc3MtPmN1cnJlbnQgKz0gUEFHRVNJ WkU7CistCXByb2dyZXNzLT5tYXhpbXVtICs9IFBBR0VTSVpFICsgKGxhc3QgKyAxKSAqIFBBR0VT SVpFIC8gMjsKKysJcHJvZ3Jlc3MtPmN1cnJlbnQgKz0gWFBBR0VTSVpFOworKwlwcm9ncmVzcy0+ bWF4aW11bSArPSBYUEFHRVNJWkUgKyAobGFzdCArIDEpICogWFBBR0VTSVpFIC8gMjsKKyAJZGV2 aWNlX2V2ZW50X2VtaXQgKGFic3RyYWN0LCBEQ19FVkVOVF9QUk9HUkVTUywgcHJvZ3Jlc3MpOwor IAorIAkvLyBBbGxvY2F0ZSBtZW1vcnkgZm9yIHRoZSBsb2dib29rIGVudHJpZXMuCistCWlmICgh ZGNfYnVmZmVyX3Jlc2VydmUgKGxvZ2Jvb2ssIChsYXN0ICsgMSkgKiBQQUdFU0laRSAvIDIpKQor KwlpZiAoIWRjX2J1ZmZlcl9yZXNlcnZlIChsb2dib29rLCAobGFzdCArIDEpICogWFBBR0VTSVpF IC8gMikpCisgCQlyZXR1cm4gRENfU1RBVFVTX05PTUVNT1JZOworIAorIAkvLyBTZW5kIHRoZSBs b2dib29rIGluZGV4IGNvbW1hbmQuCitAQCAtMzQwLDcgKzM0MCw3IEBAIG9jZWFuaWNfYWVyaXM1 MDBhaV9kZXZpY2VfbG9nYm9vayAoZGNfZGV2aWNlX3QgKmFic3RyYWN0LCBkY19ldmVudF9wcm9n cmVzc190ICpwCisgCS8vIFJlYWQgdGhlIGxvZ2Jvb2sgaW5kZXguCisgCWZvciAodW5zaWduZWQg aW50IGkgPSAwOyBpIDwgbGFzdCArIDE7ICsraSkgeworIAkJLy8gUmVjZWl2ZSB0aGUgYW5zd2Vy IG9mIHRoZSBkaXZlIGNvbXB1dGVyLgorLQkJdW5zaWduZWQgY2hhciBhbnN3ZXJbUEFHRVNJWkUg LyAyICsgMV0gPSB7MH07CisrCQl1bnNpZ25lZCBjaGFyIGFuc3dlcltYUEFHRVNJWkUgLyAyICsg MV0gPSB7MH07CisgCQlyYyA9IGRjX2lvc3RyZWFtX3JlYWQgKGRldmljZS0+aW9zdHJlYW0sIGFu c3dlciwgc2l6ZW9mKGFuc3dlciksIE5VTEwpOworIAkJaWYgKHJjICE9IERDX1NUQVRVU19TVUND RVNTKSB7CisgCQkJRVJST1IgKGFic3RyYWN0LT5jb250ZXh0LCAiRmFpbGVkIHRvIHJlY2VpdmUg dGhlIGFuc3dlci4iKTsKK0BAIC0zNDgsMjggKzM0OCwyOCBAQCBvY2VhbmljX2FlcmlzNTAwYWlf ZGV2aWNlX2xvZ2Jvb2sgKGRjX2RldmljZV90ICphYnN0cmFjdCwgZGNfZXZlbnRfcHJvZ3Jlc3Nf dCAqcAorIAkJfQorIAorIAkJLy8gVmVyaWZ5IHRoZSBjaGVja3N1bSBvZiB0aGUgYW5zd2VyLgor LQkJdW5zaWduZWQgY2hhciBjcmMgPSBhbnN3ZXJbUEFHRVNJWkUgLyAyXTsKKy0JCXVuc2lnbmVk IGNoYXIgY2NyYyA9IGNoZWNrc3VtX2FkZF91aW50NCAoYW5zd2VyLCBQQUdFU0laRSAvIDIsIDB4 MDApOworKwkJdW5zaWduZWQgY2hhciBjcmMgPSBhbnN3ZXJbWFBBR0VTSVpFIC8gMl07CisrCQl1 bnNpZ25lZCBjaGFyIGNjcmMgPSBjaGVja3N1bV9hZGRfdWludDQgKGFuc3dlciwgWFBBR0VTSVpF IC8gMiwgMHgwMCk7CisgCQlpZiAoY3JjICE9IGNjcmMpIHsKKyAJCQlFUlJPUiAoYWJzdHJhY3Qt PmNvbnRleHQsICJVbmV4cGVjdGVkIGFuc3dlciBjaGVja3N1bS4iKTsKKyAJCQlyZXR1cm4gRENf U1RBVFVTX1BST1RPQ09MOworIAkJfQorIAorIAkJLy8gVXBkYXRlIGFuZCBlbWl0IGEgcHJvZ3Jl c3MgZXZlbnQuCistCQlwcm9ncmVzcy0+Y3VycmVudCArPSBQQUdFU0laRSAvIDI7CisrCQlwcm9n cmVzcy0+Y3VycmVudCArPSBYUEFHRVNJWkUgLyAyOworIAkJZGV2aWNlX2V2ZW50X2VtaXQgKGFi c3RyYWN0LCBEQ19FVkVOVF9QUk9HUkVTUywgcHJvZ3Jlc3MpOworIAorIAkJLy8gSWdub3JlIHVu aW5pdGlhbGl6ZWQgZW50cmllcy4KKy0JCWlmIChhcnJheV9pc2VxdWFsIChhbnN3ZXIsIFBBR0VT SVpFIC8gMiwgMHhGRikpIHsKKysJCWlmIChhcnJheV9pc2VxdWFsIChhbnN3ZXIsIFhQQUdFU0la RSAvIDIsIDB4RkYpKSB7CisgCQkJV0FSTklORyAoYWJzdHJhY3QtPmNvbnRleHQsICJVbmluaXRp YWxpemVkIGxvZ2Jvb2sgZW50cmllcyBkZXRlY3RlZCEiKTsKKyAJCQljb250aW51ZTsKKyAJCX0K KyAKKyAJCS8vIENvbXBhcmUgdGhlIGZpbmdlcnByaW50IHRvIGlkZW50aWZ5IHByZXZpb3VzbHkg ZG93bmxvYWRlZCBlbnRyaWVzLgorLQkJaWYgKG1lbWNtcCAoYW5zd2VyLCBkZXZpY2UtPmJhc2Uu ZmluZ2VycHJpbnQsIFBBR0VTSVpFIC8gMikgPT0gMCkgeworKwkJaWYgKG1lbWNtcCAoYW5zd2Vy LCBkZXZpY2UtPmJhc2UuZmluZ2VycHJpbnQsIFhQQUdFU0laRSAvIDIpID09IDApIHsKKyAJCQlk Y19idWZmZXJfY2xlYXIgKGxvZ2Jvb2spOworIAkJfSBlbHNlIHsKKy0JCQlkY19idWZmZXJfYXBw ZW5kIChsb2dib29rLCBhbnN3ZXIsIFBBR0VTSVpFIC8gMik7CisrCQkJZGNfYnVmZmVyX2FwcGVu ZCAobG9nYm9vaywgYW5zd2VyLCBYUEFHRVNJWkUgLyAyKTsKKyAJCX0KKyAJfQorIAorQEAgLTU2 MCw3ICs1NjAsNyBAQCBvY2VhbmljX3Z0cHJvX2RldmljZV92ZXJzaW9uIChkY19kZXZpY2VfdCAq YWJzdHJhY3QsIHVuc2lnbmVkIGNoYXIgZGF0YVtdLCB1bnNpZworIAlpZiAoIUlTSU5TVEFOQ0Ug KGFic3RyYWN0KSkKKyAJCXJldHVybiBEQ19TVEFUVVNfSU5WQUxJREFSR1M7CisgCistCWlmIChz aXplIDwgUEFHRVNJWkUpCisrCWlmIChzaXplIDwgWFBBR0VTSVpFKQorIAkJcmV0dXJuIERDX1NU QVRVU19JTlZBTElEQVJHUzsKKyAKKyAJLy8gU3dpdGNoIHRoZSBkZXZpY2UgaW50byBkb3dubG9h ZCBtb2RlLiBUaGUgcmVzcG9uc2UgaXMgaWdub3JlZCBoZXJlLAorQEAgLTU2OCwxNCArNTY4LDE0 IEBAIG9jZWFuaWNfdnRwcm9fZGV2aWNlX3ZlcnNpb24gKGRjX2RldmljZV90ICphYnN0cmFjdCwg dW5zaWduZWQgY2hhciBkYXRhW10sIHVuc2lnCisgCS8vIHJlc3BvbnNlIG9mIHRoZSBmaXJzdCBw YXJ0IG9mIHRoZSBvdGhlciBjb21tYW5kIGluIHRoaXMgZnVuY3Rpb24uCisgCisgCXVuc2lnbmVk IGNoYXIgY21kWzJdID0gezB4ODgsIDB4MDB9OworLQl1bnNpZ25lZCBjaGFyIGFuc1tQQUdFU0la RSAvIDIgKyAxXSA9IHswfTsKKysJdW5zaWduZWQgY2hhciBhbnNbWFBBR0VTSVpFIC8gMiArIDFd ID0gezB9OworIAlkY19zdGF0dXNfdCByYyA9IG9jZWFuaWNfdnRwcm9fdHJhbnNmZXIgKGRldmlj ZSwgY21kLCBzaXplb2YgKGNtZCksIGFucywgc2l6ZW9mIChhbnMpKTsKKyAJaWYgKHJjICE9IERD X1NUQVRVU19TVUNDRVNTKQorIAkJcmV0dXJuIHJjOworIAorIAkvLyBWZXJpZnkgdGhlIGNoZWNr c3VtIG9mIHRoZSBhbnN3ZXIuCistCXVuc2lnbmVkIGNoYXIgY3JjID0gYW5zW1BBR0VTSVpFIC8g Ml07CistCXVuc2lnbmVkIGNoYXIgY2NyYyA9IGNoZWNrc3VtX2FkZF91aW50NCAoYW5zLCBQQUdF U0laRSAvIDIsIDB4MDApOworKwl1bnNpZ25lZCBjaGFyIGNyYyA9IGFuc1tYUEFHRVNJWkUgLyAy XTsKKysJdW5zaWduZWQgY2hhciBjY3JjID0gY2hlY2tzdW1fYWRkX3VpbnQ0IChhbnMsIFhQQUdF U0laRSAvIDIsIDB4MDApOworIAlpZiAoY3JjICE9IGNjcmMpIHsKKyAJCUVSUk9SIChhYnN0cmFj dC0+Y29udGV4dCwgIlVuZXhwZWN0ZWQgYW5zd2VyIGNoZWNrc3VtLiIpOworIAkJcmV0dXJuIERD X1NUQVRVU19QUk9UT0NPTDsKK0BAIC01ODYsMzEgKzU4NiwzMSBAQCBvY2VhbmljX3Z0cHJvX2Rl dmljZV92ZXJzaW9uIChkY19kZXZpY2VfdCAqYWJzdHJhY3QsIHVuc2lnbmVkIGNoYXIgZGF0YVtd LCB1bnNpZworIAkJLy8gc3BsaXQgb3ZlciB0d28gcGFja2V0cywgYnV0IHdlIGpvaW4gYm90aCBw YXJ0cyBhZ2Fpbi4KKyAJCWZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgMjsgKytpKSB7Cisg CQkJdW5zaWduZWQgY2hhciBjb21tYW5kWzRdID0gezB4NzIsIDB4MDMsIGkgKiAweDEwLCAweDAw fTsKKy0JCQl1bnNpZ25lZCBjaGFyIGFuc3dlcltQQUdFU0laRSAvIDIgKyAyXSA9IHswfTsKKysJ CQl1bnNpZ25lZCBjaGFyIGFuc3dlcltYUEFHRVNJWkUgLyAyICsgMl0gPSB7MH07CisgCQkJcmMg PSBvY2VhbmljX3Z0cHJvX3RyYW5zZmVyIChkZXZpY2UsIGNvbW1hbmQsIHNpemVvZiAoY29tbWFu ZCksIGFuc3dlciwgc2l6ZW9mIChhbnN3ZXIpKTsKKyAJCQlpZiAocmMgIT0gRENfU1RBVFVTX1NV Q0NFU1MpCisgCQkJCXJldHVybiByYzsKKyAKKyAJCQkvLyBWZXJpZnkgdGhlIGNoZWNrc3VtIG9m IHRoZSBhbnN3ZXIuCistCQkJY3JjID0gYW5zd2VyW1BBR0VTSVpFIC8gMl07CistCQkJY2NyYyA9 IGNoZWNrc3VtX2FkZF91aW50NCAoYW5zd2VyLCBQQUdFU0laRSAvIDIsIDB4MDApOworKwkJCWNy YyA9IGFuc3dlcltYUEFHRVNJWkUgLyAyXTsKKysJCQljY3JjID0gY2hlY2tzdW1fYWRkX3VpbnQ0 IChhbnN3ZXIsIFhQQUdFU0laRSAvIDIsIDB4MDApOworIAkJCWlmIChjcmMgIT0gY2NyYykgewor IAkJCQlFUlJPUiAoYWJzdHJhY3QtPmNvbnRleHQsICJVbmV4cGVjdGVkIGFuc3dlciBjaGVja3N1 bS4iKTsKKyAJCQkJcmV0dXJuIERDX1NUQVRVU19QUk9UT0NPTDsKKyAJCQl9CisgCisgCQkJLy8g VmVyaWZ5IHRoZSBsYXN0IGJ5dGUgb2YgdGhlIGFuc3dlci4KKy0JCQlpZiAoYW5zd2VyW1BBR0VT SVpFIC8gMiArIDFdICE9IEVORCkgeworKwkJCWlmIChhbnN3ZXJbWFBBR0VTSVpFIC8gMiArIDFd ICE9IEVORCkgeworIAkJCQlFUlJPUiAoYWJzdHJhY3QtPmNvbnRleHQsICJVbmV4cGVjdGVkIGFu c3dlciBieXRlLiIpOworIAkJCQlyZXR1cm4gRENfU1RBVFVTX1BST1RPQ09MOworIAkJCX0KKyAK KyAJCQkvLyBBcHBlbmQgdGhlIGFuc3dlciB0byB0aGUgb3V0cHV0IGJ1ZmZlci4KKy0JCQltZW1j cHkgKGRhdGEgKyBpICogUEFHRVNJWkUgLyAyLCBhbnN3ZXIsIFBBR0VTSVpFIC8gMik7CisrCQkJ bWVtY3B5IChkYXRhICsgaSAqIFhQQUdFU0laRSAvIDIsIGFuc3dlciwgWFBBR0VTSVpFIC8gMik7 CisgCQl9CisgCX0gZWxzZSB7CisgCQkvLyBSZXR1cm4gYW4gZW1wdHkgZGV2aWNlIGlkZW50aWZp Y2F0aW9uIHN0cmluZy4KKy0JCW1lbXNldCAoZGF0YSwgMHgwMCwgUEFHRVNJWkUpOworKwkJbWVt c2V0IChkYXRhLCAweDAwLCBYUEFHRVNJWkUpOworIAl9CisgCisgCXJldHVybiBEQ19TVEFUVVNf U1VDQ0VTUzsKK0BAIC02MjIsNDcgKzYyMiw0NyBAQCBvY2VhbmljX3Z0cHJvX2RldmljZV9yZWFk IChkY19kZXZpY2VfdCAqYWJzdHJhY3QsIHVuc2lnbmVkIGludCBhZGRyZXNzLCB1bnNpZ25lZAor IHsKKyAJb2NlYW5pY192dHByb19kZXZpY2VfdCAqZGV2aWNlID0gKG9jZWFuaWNfdnRwcm9fZGV2 aWNlX3QqKSBhYnN0cmFjdDsKKyAKKy0JaWYgKChhZGRyZXNzICUgUEFHRVNJWkUgIT0gMCkgfHwK Ky0JCShzaXplICAgICUgUEFHRVNJWkUgIT0gMCkpCisrCWlmICgoYWRkcmVzcyAlIFhQQUdFU0la RSAhPSAwKSB8fAorKwkJKHNpemUgICAgJSBYUEFHRVNJWkUgIT0gMCkpCisgCQlyZXR1cm4gRENf U1RBVFVTX0lOVkFMSURBUkdTOworIAorIAl1bnNpZ25lZCBpbnQgbmJ5dGVzID0gMDsKKyAJd2hp bGUgKG5ieXRlcyA8IHNpemUpIHsKKyAJCS8vIENhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIHBhY2th Z2VzLgorLQkJdW5zaWduZWQgaW50IG5wYWNrZXRzID0gKHNpemUgLSBuYnl0ZXMpIC8gUEFHRVNJ WkU7CisrCQl1bnNpZ25lZCBpbnQgbnBhY2tldHMgPSAoc2l6ZSAtIG5ieXRlcykgLyBYUEFHRVNJ WkU7CisgCQlpZiAobnBhY2tldHMgPiBNVUxUSVBBR0UpCisgCQkJbnBhY2tldHMgPSBNVUxUSVBB R0U7CisgCisgCQkvLyBSZWFkIHRoZSBwYWNrYWdlLgorLQkJdW5zaWduZWQgaW50IGZpcnN0ID0g IGFkZHJlc3MgLyBQQUdFU0laRTsKKysJCXVuc2lnbmVkIGludCBmaXJzdCA9ICBhZGRyZXNzIC8g WFBBR0VTSVpFOworIAkJdW5zaWduZWQgaW50IGxhc3QgID0gZmlyc3QgKyBucGFja2V0cyAtIDE7 CistCQl1bnNpZ25lZCBjaGFyIGFuc3dlclsoUEFHRVNJWkUgKyAxKSAqIE1VTFRJUEFHRV0gPSB7 MH07CisrCQl1bnNpZ25lZCBjaGFyIGFuc3dlclsoWFBBR0VTSVpFICsgMSkgKiBNVUxUSVBBR0Vd ID0gezB9OworIAkJdW5zaWduZWQgY2hhciBjb21tYW5kWzZdID0gezB4MzQsCisgCQkJCShmaXJz dCA+PiA4KSAmIDB4RkYsIC8vIGhpZ2gKKyAJCQkJKGZpcnN0ICAgICApICYgMHhGRiwgLy8gbG93 CisgCQkJCShsYXN0ID4+IDgpICYgMHhGRiwgLy8gaGlnaAorIAkJCQkobGFzdCAgICAgKSAmIDB4 RkYsIC8vIGxvdworIAkJCQkweDAwfTsKKy0JCWRjX3N0YXR1c190IHJjID0gb2NlYW5pY192dHBy b190cmFuc2ZlciAoZGV2aWNlLCBjb21tYW5kLCBzaXplb2YgKGNvbW1hbmQpLCBhbnN3ZXIsIChQ QUdFU0laRSArIDEpICogbnBhY2tldHMpOworKwkJZGNfc3RhdHVzX3QgcmMgPSBvY2VhbmljX3Z0 cHJvX3RyYW5zZmVyIChkZXZpY2UsIGNvbW1hbmQsIHNpemVvZiAoY29tbWFuZCksIGFuc3dlciwg KFhQQUdFU0laRSArIDEpICogbnBhY2tldHMpOworIAkJaWYgKHJjICE9IERDX1NUQVRVU19TVUND RVNTKQorIAkJCXJldHVybiByYzsKKyAKKyAJCXVuc2lnbmVkIGludCBvZmZzZXQgPSAwOworIAkJ Zm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBucGFja2V0czsgKytpKSB7CisgCQkJLy8gVmVy aWZ5IHRoZSBjaGVja3N1bSBvZiB0aGUgYW5zd2VyLgorLQkJCXVuc2lnbmVkIGNoYXIgY3JjID0g YW5zd2VyW29mZnNldCArIFBBR0VTSVpFXTsKKy0JCQl1bnNpZ25lZCBjaGFyIGNjcmMgPSBjaGVj a3N1bV9hZGRfdWludDggKGFuc3dlciArIG9mZnNldCwgUEFHRVNJWkUsIDB4MDApOworKwkJCXVu c2lnbmVkIGNoYXIgY3JjID0gYW5zd2VyW29mZnNldCArIFhQQUdFU0laRV07CisrCQkJdW5zaWdu ZWQgY2hhciBjY3JjID0gY2hlY2tzdW1fYWRkX3VpbnQ4IChhbnN3ZXIgKyBvZmZzZXQsIFhQQUdF U0laRSwgMHgwMCk7CisgCQkJaWYgKGNyYyAhPSBjY3JjKSB7CisgCQkJCUVSUk9SIChhYnN0cmFj dC0+Y29udGV4dCwgIlVuZXhwZWN0ZWQgYW5zd2VyIGNoZWNrc3VtLiIpOworIAkJCQlyZXR1cm4g RENfU1RBVFVTX1BST1RPQ09MOworIAkJCX0KKyAKKy0JCQltZW1jcHkgKGRhdGEsIGFuc3dlciAr IG9mZnNldCwgUEFHRVNJWkUpOworKwkJCW1lbWNweSAoZGF0YSwgYW5zd2VyICsgb2Zmc2V0LCBY UEFHRVNJWkUpOworIAorLQkJCW9mZnNldCArPSBQQUdFU0laRSArIDE7CistCQkJbmJ5dGVzICs9 IFBBR0VTSVpFOworLQkJCWFkZHJlc3MgKz0gUEFHRVNJWkU7CistCQkJZGF0YSArPSBQQUdFU0la RTsKKysJCQlvZmZzZXQgKz0gWFBBR0VTSVpFICsgMTsKKysJCQluYnl0ZXMgKz0gWFBBR0VTSVpF OworKwkJCWFkZHJlc3MgKz0gWFBBR0VTSVpFOworKwkJCWRhdGEgKz0gWFBBR0VTSVpFOworIAkJ fQorIAl9CisgCistLS0gYS9zcmMvb2NlYW5pY192dHByb19wYXJzZXIuYworKysrIGIvc3JjL29j ZWFuaWNfdnRwcm9fcGFyc2VyLmMKK0BAIC0xNTUsNyArMTU1LDcgQEAgb2NlYW5pY192dHByb19w YXJzZXJfZ2V0X2ZpZWxkIChkY19wYXJzZXJfdCAqYWJzdHJhY3QsIGRjX2ZpZWxkX3R5cGVfdCB0 eXBlLCB1bnMKKyAJY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YSA9IGFic3RyYWN0LT5kYXRhOwor IAl1bnNpZ25lZCBpbnQgc2l6ZSA9IGFic3RyYWN0LT5zaXplOworIAorLQlpZiAoc2l6ZSA8IDcg KiBQQUdFU0laRSAvIDIpCisrCWlmIChzaXplIDwgNyAqIFhQQUdFU0laRSAvIDIpCisgCQlyZXR1 cm4gRENfU1RBVFVTX0RBVEFGT1JNQVQ7CisgCisgCWlmICghcGFyc2VyLT5jYWNoZWQpIHsKK0BA IC0xNzAsNyArMTcwLDcgQEAgb2NlYW5pY192dHByb19wYXJzZXJfZ2V0X2ZpZWxkIChkY19wYXJz ZXJfdCAqYWJzdHJhY3QsIGRjX2ZpZWxkX3R5cGVfdCB0eXBlLCB1bnMKKyAJCXBhcnNlci0+bWF4 ZGVwdGggPSBzdGF0aXN0aWNzLm1heGRlcHRoOworIAl9CisgCistCXVuc2lnbmVkIGludCBmb290 ZXIgPSBzaXplIC0gUEFHRVNJWkU7CisrCXVuc2lnbmVkIGludCBmb290ZXIgPSBzaXplIC0gWFBB R0VTSVpFOworIAorIAl1bnNpZ25lZCBpbnQgb3h5Z2VuID0gMDsKKyAJdW5zaWduZWQgaW50IG1h eGRlcHRoID0gMDsKK0BAIC0yMzcsNyArMjM3LDcgQEAgb2NlYW5pY192dHByb19wYXJzZXJfc2Ft cGxlc19mb3JlYWNoIChkY19wYXJzZXJfdCAqYWJzdHJhY3QsIGRjX3NhbXBsZV9jYWxsYmFja18K KyAJY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YSA9IGFic3RyYWN0LT5kYXRhOworIAl1bnNpZ25l ZCBpbnQgc2l6ZSA9IGFic3RyYWN0LT5zaXplOworIAorLQlpZiAoc2l6ZSA8IDcgKiBQQUdFU0la RSAvIDIpCisrCWlmIChzaXplIDwgNyAqIFhQQUdFU0laRSAvIDIpCisgCQlyZXR1cm4gRENfU1RB VFVTX0RBVEFGT1JNQVQ7CisgCisgCXVuc2lnbmVkIGludCB0aW1lID0gMDsKK0BAIC0yNTksMTQg KzI1OSwxNCBAQCBvY2VhbmljX3Z0cHJvX3BhcnNlcl9zYW1wbGVzX2ZvcmVhY2ggKGRjX3BhcnNl cl90ICphYnN0cmFjdCwgZGNfc2FtcGxlX2NhbGxiYWNrXworIAkvLyBJbml0aWFsaXplIHRoZSBz dGF0ZSBmb3IgdGhlIHRpbWVzdGFtcCBwcm9jZXNzaW5nLgorIAl1bnNpZ25lZCBpbnQgdGltZXN0 YW1wID0gMCwgY291bnQgPSAwLCBpID0gMDsKKyAKKy0JdW5zaWduZWQgaW50IG9mZnNldCA9IDUg KiBQQUdFU0laRSAvIDI7CistCXdoaWxlIChvZmZzZXQgKyBQQUdFU0laRSAvIDIgPD0gc2l6ZSAt IFBBR0VTSVpFKSB7CisrCXVuc2lnbmVkIGludCBvZmZzZXQgPSA1ICogWFBBR0VTSVpFIC8gMjsK KysJd2hpbGUgKG9mZnNldCArIFhQQUdFU0laRSAvIDIgPD0gc2l6ZSAtIFhQQUdFU0laRSkgewor IAkJZGNfc2FtcGxlX3ZhbHVlX3Qgc2FtcGxlID0gezB9OworIAorIAkJLy8gSWdub3JlIGVtcHR5 IHNhbXBsZXMuCistCQlpZiAoYXJyYXlfaXNlcXVhbCAoZGF0YSArIG9mZnNldCwgUEFHRVNJWkUg LyAyLCAweDAwKSB8fAorLQkJCWFycmF5X2lzZXF1YWwgKGRhdGEgKyBvZmZzZXQsIFBBR0VTSVpF IC8gMiwgMHhGRikpIHsKKy0JCQlvZmZzZXQgKz0gUEFHRVNJWkUgLyAyOworKwkJaWYgKGFycmF5 X2lzZXF1YWwgKGRhdGEgKyBvZmZzZXQsIFhQQUdFU0laRSAvIDIsIDB4MDApIHx8CisrCQkJYXJy YXlfaXNlcXVhbCAoZGF0YSArIG9mZnNldCwgWFBBR0VTSVpFIC8gMiwgMHhGRikpIHsKKysJCQlv ZmZzZXQgKz0gWFBBR0VTSVpFIC8gMjsKKyAJCQljb250aW51ZTsKKyAJCX0KKyAKK0BAIC0yODgs MTIgKzI4OCwxMiBAQCBvY2VhbmljX3Z0cHJvX3BhcnNlcl9zYW1wbGVzX2ZvcmVhY2ggKGRjX3Bh cnNlcl90ICphYnN0cmFjdCwgZGNfc2FtcGxlX2NhbGxiYWNrXworIAkJCQkvLyBXaXRoIGEgZGVw dGggYmFzZWQgc2FtcGxlIGludGVydmFsLCB0aGUgZXhhY3QgbnVtYmVyCisgCQkJCS8vIG9mIHNh bXBsZXMgZm9yIGEgc2luZ2xlIHRpbWVzdGFtcCBuZWVkcyB0byBiZSBjb3VudGVkLgorIAkJCQlj b3VudCA9IDE7CistCQkJCXVuc2lnbmVkIGludCBpZHggPSBvZmZzZXQgKyBQQUdFU0laRSAvIDIg OworLQkJCQl3aGlsZSAoaWR4ICsgUEFHRVNJWkUgLyAyIDw9IHNpemUgLSBQQUdFU0laRSkgewor KwkJCQl1bnNpZ25lZCBpbnQgaWR4ID0gb2Zmc2V0ICsgWFBBR0VTSVpFIC8gMiA7CisrCQkJCXdo aWxlIChpZHggKyBYUEFHRVNJWkUgLyAyIDw9IHNpemUgLSBYUEFHRVNJWkUpIHsKKyAJCQkJCS8v IElnbm9yZSBlbXB0eSBzYW1wbGVzLgorLQkJCQkJaWYgKGFycmF5X2lzZXF1YWwgKGRhdGEgKyBp ZHgsIFBBR0VTSVpFIC8gMiwgMHgwMCkgfHwKKy0JCQkJCQlhcnJheV9pc2VxdWFsIChkYXRhICsg aWR4LCBQQUdFU0laRSAvIDIsIDB4RkYpKSB7CistCQkJCQkJaWR4ICs9IFBBR0VTSVpFIC8gMjsK KysJCQkJCWlmIChhcnJheV9pc2VxdWFsIChkYXRhICsgaWR4LCBYUEFHRVNJWkUgLyAyLCAweDAw KSB8fAorKwkJCQkJCWFycmF5X2lzZXF1YWwgKGRhdGEgKyBpZHgsIFhQQUdFU0laRSAvIDIsIDB4 RkYpKSB7CisrCQkJCQkJaWR4ICs9IFhQQUdFU0laRSAvIDI7CisgCQkJCQkJY29udGludWU7Cisg CQkJCQl9CisgCitAQCAtMzAxLDcgKzMwMSw3IEBAIG9jZWFuaWNfdnRwcm9fcGFyc2VyX3NhbXBs ZXNfZm9yZWFjaCAoZGNfcGFyc2VyX3QgKmFic3RyYWN0LCBkY19zYW1wbGVfY2FsbGJhY2tfCisg CQkJCQlpZiAobmV4dCAhPSBjdXJyZW50KQorIAkJCQkJCWJyZWFrOworIAorLQkJCQkJaWR4ICs9 IFBBR0VTSVpFIC8gMjsKKysJCQkJCWlkeCArPSBYUEFHRVNJWkUgLyAyOworIAkJCQkJY291bnQr KzsKKyAJCQkJfQorIAkJCX0KK0BAIC0zMTcsNyArMzE3LDcgQEAgb2NlYW5pY192dHByb19wYXJz ZXJfc2FtcGxlc19mb3JlYWNoIChkY19wYXJzZXJfdCAqYWJzdHJhY3QsIGRjX3NhbXBsZV9jYWxs YmFja18KKyAJCQl9CisgCQkJaWYgKGkgPj0gY291bnQpIHsKKyAJCQkJV0FSTklORyAoYWJzdHJh Y3QtPmNvbnRleHQsICJVbmV4cGVjdGVkIHNhbXBsZSB3aXRoIHRoZSBzYW1lIHRpbWVzdGFtcCBp Z25vcmVkLiIpOworLQkJCQlvZmZzZXQgKz0gUEFHRVNJWkUgLyAyOworKwkJCQlvZmZzZXQgKz0g WFBBR0VTSVpFIC8gMjsKKyAJCQkJY29udGludWU7CisgCQkJfQorIAkJfQorQEAgLTMzNSw3ICsz MzUsNyBAQCBvY2VhbmljX3Z0cHJvX3BhcnNlcl9zYW1wbGVzX2ZvcmVhY2ggKGRjX3BhcnNlcl90 ICphYnN0cmFjdCwgZGNfc2FtcGxlX2NhbGxiYWNrXworIAorIAkJLy8gVmVuZG9yIHNwZWNpZmlj IGRhdGEKKyAJCXNhbXBsZS52ZW5kb3IudHlwZSA9IFNBTVBMRV9WRU5ET1JfT0NFQU5JQ19WVFBS TzsKKy0JCXNhbXBsZS52ZW5kb3Iuc2l6ZSA9IFBBR0VTSVpFIC8gMjsKKysJCXNhbXBsZS52ZW5k b3Iuc2l6ZSA9IFhQQUdFU0laRSAvIDI7CisgCQlzYW1wbGUudmVuZG9yLmRhdGEgPSBkYXRhICsg b2Zmc2V0OworIAkJaWYgKGNhbGxiYWNrKSBjYWxsYmFjayAoRENfU0FNUExFX1ZFTkRPUiwgc2Ft cGxlLCB1c2VyZGF0YSk7CisgCitAQCAtMzc0LDcgKzM3NCw3IEBAIG9jZWFuaWNfdnRwcm9fcGFy c2VyX3NhbXBsZXNfZm9yZWFjaCAoZGNfcGFyc2VyX3QgKmFic3RyYWN0LCBkY19zYW1wbGVfY2Fs bGJhY2tfCisgCQkJaWYgKGNhbGxiYWNrKSBjYWxsYmFjayAoRENfU0FNUExFX0RFQ08sIHNhbXBs ZSwgdXNlcmRhdGEpOworIAkJfQorIAorLQkJb2Zmc2V0ICs9IFBBR0VTSVpFIC8gMjsKKysJCW9m ZnNldCArPSBYUEFHRVNJWkUgLyAyOworIAl9CisgCisgCXJldHVybiBEQ19TVEFUVVNfU1VDQ0VT UzsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2UvdGVtcGxh dGUgYi9zcmNwa2dzL2xpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlL3RlbXBsYXRlCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNWQzNTRjNTcyMzAyCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9saWJkaXZlY29tcHV0ZXItc3Vic3VyZmFjZS90ZW1wbGF0ZQpAQCAt MCwwICsxLDMwIEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdsaWJkaXZlY29tcHV0ZXItc3Vic3Vy ZmFjZScKK3BrZ25hbWU9bGliZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2UKK3ZlcnNpb249NS4wLjkK K3JldmlzaW9uPTEKK3dya3NyYz0ibGliZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2UtYnJhbmNoLSR7 dmVyc2lvbn0iCitidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCitob3N0bWFrZWRlcGVuZHM9Imxp YnRvb2wgYXV0b21ha2UgYXV0b2NvbmYgcGtnLWNvbmZpZyIKK21ha2VkZXBlbmRzPSJsaWJ1c2It ZGV2ZWwgbGlibXRwLWRldmVsIGhpZGFwaS1kZXZlbCBsaWJibHVldG9vdGgtZGV2ZWwiCitzaG9y dF9kZXNjPSJTdWJzdXJmYWNlIHZlcnNpb24gb2YgbGliZGl2ZWNvbXB1dGVyIgorbWFpbnRhaW5l cj0iQWxhbiBCcm93biA8YWRicm93bkByb2NrZXRtYWlsLmNvbT4iCitsaWNlbnNlPSJMR1BMLTIu MS1vbmx5IgoraG9tZXBhZ2U9Imh0dHBzOi8vc3Vic3VyZmFjZS1kaXZlbG9nLm9yZy8iCitkaXN0 ZmlsZXM9IiR7aG9tZXBhZ2V9L2Rvd25sb2Fkcy8ke3BrZ25hbWV9LWJyYW5jaC0ke3ZlcnNpb259 LnRneiIKK2NoZWNrc3VtPWRjNjRkMjM1Y2NlZDg4ZDhkYjQ0ZmQ5YjlkZWJkNzM1Y2FmN2NiZDE5 OWI3OWZhYmU2MWZlY2I4ZjY0Yzc5MDUKKworcHJlX2NvbmZpZ3VyZSgpIHsKKwlhdXRvcmVjb25m IC1maQorfQorCitsaWJkaXZlY29tcHV0ZXItc3Vic3VyZmFjZS1kZXZlbF9wYWNrYWdlKCkgewor CWRlcGVuZHM9IiR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlzaG9ydF9k ZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVz ci9pbmNsdWRlCisJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCisJCXZtb3ZlICJ1c3IvbGliLyou c28iCisJCXZtb3ZlICJ1c3IvbGliLyouYSIKKwkJdm1vdmUgdXNyL3NoYXJlL21hbi9tYW4zCisJ fQorfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJkaXZlY29tcHV0ZXItc3Vic3VyZmFjZS91cGRh dGUgYi9zcmNwa2dzL2xpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlL3VwZGF0ZQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjYxZmZmMjQ1OTc0NQotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvbGliZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2UvdXBkYXRlCkBAIC0wLDAg KzEsMiBAQAorc2l0ZT0iJHtob21lcGFnZX0vZG93bmxvYWRzIgorcGF0dGVybj0iJHtwa2duYW1l fS1icmFuY2gtXEtbXGRcLl0rKD89XC50Z3opIgoKRnJvbSBlM2MzOGViZTgzMDcxY2E3YmJhZjQ2 YmU0ZmJmMjBmZDM0OTIxMWM3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJy b3duIDxhZGJyb3duQHJvY2tldG1haWwuY29tPgpEYXRlOiBUaHUsIDI1IE5vdiAyMDIxIDE4OjIz OjM5ICswMDAwClN1YmplY3Q6IFtQQVRDSCAzLzNdIE5ldyBwYWNrYWdlOiBTdWJzdXJmYWNlLTUu MC45CgotLS0KIC4uLi9wYXRjaGVzL2NvcmUtZGVwZW5kcy1nZW5lcmF0ZWQtdWkucGF0Y2ggICB8 IDEwICsrKysrKysrKysKIC4uLi9TdWJzdXJmYWNlL3BhdGNoZXMvbWFrZS1vci1uaW5qYS5wYXRj aCAgICB8IDExICsrKysrKysrKysKIHNyY3BrZ3MvU3Vic3VyZmFjZS90ZW1wbGF0ZSAgICAgICAg ICAgICAgICAgICB8IDIwICsrKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgNDEg aW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvU3Vic3VyZmFjZS9wYXRj aGVzL2NvcmUtZGVwZW5kcy1nZW5lcmF0ZWQtdWkucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL1N1YnN1cmZhY2UvcGF0Y2hlcy9tYWtlLW9yLW5pbmphLnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9TdWJzdXJmYWNlL3RlbXBsYXRlCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9TdWJzdXJmYWNlL3BhdGNoZXMvY29yZS1kZXBlbmRzLWdlbmVyYXRlZC11aS5wYXRjaCBiL3Ny Y3BrZ3MvU3Vic3VyZmFjZS9wYXRjaGVzL2NvcmUtZGVwZW5kcy1nZW5lcmF0ZWQtdWkucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4wYzk0ZGY2ZTkxYWQKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL1N1YnN1cmZhY2UvcGF0Y2hlcy9jb3JlLWRlcGVuZHMt Z2VuZXJhdGVkLXVpLnBhdGNoCkBAIC0wLDAgKzEsMTAgQEAKKy0tLSBhL0NNYWtlTGlzdHMudHh0 CisrKysgYi9DTWFrZUxpc3RzLnR4dAorQEAgLTUwNyw2ICs1MDcsNyBAQCBlbHNlaWYgKFNVQlNV UkZBQ0VfVEFSR0VUX0VYRUNVVEFCTEUgTUFUQ0hFUyAiRGVza3RvcEV4ZWN1dGFibGUiKQorIAlh ZGRfZGVwZW5kZW5jaWVzKHN1YnN1cmZhY2VfaW50ZXJmYWNlIHN1YnN1cmZhY2VfZ2VuZXJhdGVk X3VpKQorIAlhZGRfZGVwZW5kZW5jaWVzKHN1YnN1cmZhY2VfcHJvZmlsZSBzdWJzdXJmYWNlX2dl bmVyYXRlZF91aSkKKyAJYWRkX2RlcGVuZGVuY2llcyhzdWJzdXJmYWNlX21vZGVsc19kZXNrdG9w IHN1YnN1cmZhY2VfZ2VuZXJhdGVkX3VpKQorKwlhZGRfZGVwZW5kZW5jaWVzKHN1YnN1cmZhY2Vf Y29yZWxpYiBzdWJzdXJmYWNlX2dlbmVyYXRlZF91aSkKKyAJYWRkX2RlcGVuZGVuY2llcyhzdWJz dXJmYWNlX2dlbmVyYXRlZF91aSB2ZXJzaW9uKQorIGVsc2VpZiAoU1VCU1VSRkFDRV9UQVJHRVRf RVhFQ1VUQUJMRSBNQVRDSEVTICJEb3dubG9hZGVyRXhlY3V0YWJsZSIpCisgCXNldChET1dOTE9B REVSX0FQUApkaWZmIC0tZ2l0IGEvc3JjcGtncy9TdWJzdXJmYWNlL3BhdGNoZXMvbWFrZS1vci1u aW5qYS5wYXRjaCBiL3NyY3BrZ3MvU3Vic3VyZmFjZS9wYXRjaGVzL21ha2Utb3ItbmluamEucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4wOGYxMWE0MzRiNTgK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL1N1YnN1cmZhY2UvcGF0Y2hlcy9tYWtlLW9yLW5p bmphLnBhdGNoCkBAIC0wLDAgKzEsMTEgQEAKKy0tLSBhL2NtYWtlL01vZHVsZXMvUnVuT25CdWls ZERpci5jbWFrZQorKysrIGIvY21ha2UvTW9kdWxlcy9SdW5PbkJ1aWxkRGlyLmNtYWtlCitAQCAt MjUsNyArMjUsNyBAQCBpZihOT1QgTk9fRE9DUykKKyAJYWRkX2N1c3RvbV90YXJnZXQoCisgCQlk b2N1bWVudGF0aW9uIEFMTAorIAkJQ09NTUFORAorLQkJJHtDTUFLRV9NQUtFX1BST0dSQU19IC1D ICR7Q01BS0VfU09VUkNFX0RJUn0vRG9jdW1lbnRhdGlvbiBPVVQ9JHtDTUFLRV9CSU5BUllfRElS fS9Eb2N1bWVudGF0aW9uLyBkb2MKKysJCW1ha2UgLUMgJHtDTUFLRV9TT1VSQ0VfRElSfS9Eb2N1 bWVudGF0aW9uIE9VVD0ke0NNQUtFX0JJTkFSWV9ESVJ9L0RvY3VtZW50YXRpb24vIGRvYworIAkJ REVQRU5EUyBkb2N1bWVudGF0aW9uTGluaworIAkpCisgZW5kaWYoKQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9TdWJzdXJmYWNlL3RlbXBsYXRlIGIvc3JjcGtncy9TdWJzdXJmYWNlL3RlbXBsYXRlCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNjMxMDlhOGI2NDg3Ci0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9TdWJzdXJmYWNlL3RlbXBsYXRlCkBAIC0wLDAgKzEsMjAg QEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ1N1YnN1cmZhY2UnCitwa2duYW1lPVN1YnN1cmZhY2UK K3ZlcnNpb249NS4wLjkKK3JldmlzaW9uPTEKK2J1aWxkX3N0eWxlPWNtYWtlCitjb25maWd1cmVf YXJncz0iLURTVUJTVVJGQUNFX1RBUkdFVF9FWEVDVVRBQkxFPURlc2t0b3BFeGVjdXRhYmxlCisg LURCVFNVUFBPUlQ9T04gLUROT19VU0VSTUFOVUFMPU9GRiAtRE5PX1BSSU5USU5HPU9GRiIKK2hv c3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBhdXRvY29uZiBhdXRvbWFrZSBsaWJ0b29sIHF0NS1k ZXZlbCIKK21ha2VkZXBlbmRzPSJsaWJkaXZlY29tcHV0ZXItc3Vic3VyZmFjZS1kZXZlbCBsaWJi bHVldG9vdGgtZGV2ZWwgbGliY3VybC1kZXZlbAorIHNxbGl0ZS1kZXZlbCBsaWJzc2gyLWRldmVs IGV1ZGV2LWxpYnVkZXYtZGV2ZWwgbGlidXNiLWRldmVsIGxpYnhtbDItZGV2ZWwKKyBsaWJ4c2x0 LWRldmVsIHF0NS1kZXZlbCBxdDUtY29ubmVjdGl2aXR5LWRldmVsIHF0NS1kZWNsYXJhdGl2ZS1k ZXZlbAorIHF0NS1sb2NhdGlvbi1kZXZlbCBxdDUtc2NyaXB0LWRldmVsIHF0NS1zdmctZGV2ZWwg cXQ1LXRvb2xzLWRldmVsCisgcXQ1LXdlYmtpdC1kZXZlbCBibHVlei1xdDUtZGV2ZWwgbGliZ2l0 Mi1kZXZlbCBsaWJ6aXAtZGV2ZWwgbGlibXRwLWRldmVsIgorZGVwZW5kcz0ibGliZGl2ZWNvbXB1 dGVyLXN1YnN1cmZhY2UgcXRsb2NhdGlvbi1wbHVnaW4tZ29vZ2xlbWFwcyIKK3Nob3J0X2Rlc2M9 Ik11bHRpLXBsYXRmb3JtIGRpdmVsb2cgc29mdHdhcmUiCittYWludGFpbmVyPSJBbGFuIEJyb3du IDxhZGJyb3duQHJvY2tldG1haWwuY29tPiIKK2xpY2Vuc2U9IkdQTC0yLjAtb25seSIKK2hvbWVw YWdlPSJodHRwczovL3N1YnN1cmZhY2UtZGl2ZWxvZy5vcmcvIgorZGlzdGZpbGVzPSIke2hvbWVw YWdlfS9kb3dubG9hZHMvJHtwa2duYW1lfS0ke3ZlcnNpb259LnRneiIKK2NoZWNrc3VtPTdhZDMy NGU5MzY3MjczMDBjYjA4Y2UwMzUwNzU3ODJmMGViZDEwMDNkZDgwZGY3MTE4NTg4NTkwYWZkZjYz YzEK --===============8805692163869432815==--