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 autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 25111 invoked from network); 3 Mar 2021 15:15:36 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 3 Mar 2021 15:15:36 -0000 Content-Type: multipart/mixed; boundary="===============3186496409405593280==" MIME-Version: 1.0 Subject: =?utf8?b?UmU6IFtQUiBQQVRDSF0gW1VwZGF0ZWRdIFtXSVBdIGNocm9taXVtOiB1cGRhdGUgdG8gODkuMC40Mzg5Ljcy?= To: ml@inbox.vuxu.org From: pullmoll Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Wed, 03 Mar 2021 16:15:36 +0100 List-Id: Message-ID: <20210303151536.SIDtzIQVBDXEHnaDowbPZwRVkJpKY97m6c1pZcHbEAY@z> GitHub notification mails are now in MIME to allow UTF8. --===============3186496409405593280== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgcHVsbG1vbGwgYWdhaW5zdCBtYXN0 ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL3B1 bGxtb2xsL3ZvaWQtcGFja2FnZXMgY2hyb21pdW0KaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGlu dXgvdm9pZC1wYWNrYWdlcy9wdWxsLzI5MjA1CgpbV0lQXSBjaHJvbWl1bTogdXBkYXRlIHRvIDg5 LjAuNDM4OS43MgorIHg4Nl82NCBwYXRjaCBzZXQgdXBkYXRlZCwgYnVpbHQsIHRlc3RlZCB2ZXJ5 IGN1cnNvcnkgYW5kIHNlZW1zIHRvIHdvcmsNCisgaTY4NiBwYXRjaGVzIGFwcGx5IHcvbyBjaGFu Z2VzLCBub3QgeWV0IGJ1aWx0LCBub3QgeWV0IHRlc3RlZA0KKyB4ODZfNjQtbXVzbCBwYXRjaGVz IG5vdCB5ZXQgd29ya2luZywgc3RpbGwgdHJ5aW5nIHRvIGFkanVzdCB0aGVtDQorIHBwYzY0bGUg cGF0Y2ggcmVtb3ZlZCBmb3Igbm93IGFzIG5vdGhpbmcgYXBwbGllcyAoYWxyZWFkeSB1cHN0cmVh bWVkPykNCisgb3B1cyBkaXNhYmxlZCBiZWNhdXNlIHRoZSBnZW5lcmF0ZWQgc2hpbSBoZWFkZXIg b3B1cy5oIHRyaWVzIHRvIGluY2x1ZGUgPG9wdXMuaD4gYW5kIGZhaWxzDQorIG5vdCBzdXJlIGlm IGxpYmNfbWFsbG9jLnBhdGNoIGlzIG9rLCBpLmUuIHNpbXBseSB1c2UgbWFsbG9jKCkgaW5zdGVh ZCBvZiBfX2xpYmNfbWFsbG9jKCkuDQorIG1vcmUgdG8gZG8NCg0KW2NpIHNraXBdDQoNCklmIHlv dSBkb24ndCB3YW50IHRvIGJ1aWxkIHlvdXJzZWxmIGh0dHBzOi8vcmVwby52b2lkbGludXguZGUv eDg2XzY0L2Nocm9taXVtLTg5LjAuNDM4OS43Ml8xLng4Nl82NC54YnBzDQoKCkEgcGF0Y2ggZmls ZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8y OTIwNS5wYXRjaCBpcyBhdHRhY2hlZA== --===============3186496409405593280== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-chromium-29205.patch" RnJvbSA1YWFiZDljZjBkNjhlYTBjMTkxNzhjZjBkYzczMWZkZGM1YzkxZmU4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1CQ3JnZW49MjBCdWNobT1DMz1CQ2xs ZXI/PSA8cHVsbG1vbGxAdC1vbmxpbmUuZGU+CkRhdGU6IFdlZCwgMyBNYXIgMjAyMSAxNTowNjoz OCArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIGNocm9taXVtOiB1cGRhdGUgdG8gODkuMC40Mzg5Ljcy CgorIHg4Nl82NCBwYXRjaCBzZXQgdXBkYXRlZCwgYnVpbHQsIHRlc3RlZCB2ZXJ5IGN1cnNvcnkg YW5kIHNlZW1zIHRvIHdvcmsKKyBpNjg2IHBhdGNoIGFwcGxpZXMgdy9vIGNoYW5nZSwgYnVpbHQs IG5vdCB5ZXQgdGVzdGVkCisgeDg2XzY0LW11c2wgcGF0Y2ggc2V0IHVwZGF0ZWQsIGN1cnJlbnRs eSBidWxkaW5nLCBub3QgeWV0IHRlc3RlZAorIHBwYzY0bGUgcGF0Y2ggcmVtb3ZlZCBmb3Igbm93 IGFzIG5vdGhpbmcgYXBwbGllcyAoYWxyZWFkeSB1cHN0cmVhbWVkPykKKyBvcHVzIGRpc2FibGVk IGJlY2F1c2UgdGhlIGdlbmVyYXRlZCBzaGltIGhlYWRlciBvcHVzLmggdHJpZXMgdG8gaW5jbHVk ZSA8b3B1cy5oPiBhbmQgZmFpbHMKKyBub3Qgc3VyZSBpZiBsaWJjX21hbGxvYy5wYXRjaCBpcyBv aywgaS5lLiBzaW1wbHkgdXNlIG1hbGxvYygpIGluc3RlYWQgb2YgX19saWJjX21hbGxvYygpLgor IG1vcmUgdG8gZG8KCltjaSBza2lwXQotLS0KIC4uLi9kZWZhdWx0LXB0aHJlYWQtc3RhY2tzaXpl LnBhdGNoICAgICAgICAgICB8ICAgIDQgKy0KIC4uLi9maWxlcy9tdXNsLXBhdGNoZXMvbXVzbC1m aXhlcy5wYXRjaCAgICAgICB8ICAgNDAgKy0KIC4uLi9maWxlcy9tdXNsLXBhdGNoZXMvbXVzbC1o YWNrcy5wYXRjaCAgICAgICB8ICAgIDQgKy0KIC4uLi9maWxlcy9tdXNsLXBhdGNoZXMvbXVzbC1s aWJjKysucGF0Y2ggICAgICB8ICAgIDYgKy0KIC4uLi9maWxlcy9tdXNsLXBhdGNoZXMvbXVzbC1z YW5kYm94LnBhdGNoICAgICB8ICAgMTIgKy0KIC4uLi9maWxlcy9tdXNsLXBhdGNoZXMvbm8tbWFs bGluZm8ucGF0Y2ggICAgICB8ICAgIDYgKy0KIC4uLi9maWxlcy9tdXNsLXBhdGNoZXMvcmVzb2x2 ZXIucGF0Y2ggICAgICAgICB8ICAgIDIgKy0KIC4uLi9tdXNsLXBhdGNoZXMveHh4LXBwYzY0bGUt c3VwcG9ydC5wYXRjaCAgICB8ICAxMTAgKy0KIHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9icm93 c2VyLXNpemVfdC5wYXRjaCB8ICAgMTAgLQogLi4uL2Nocm9taXVtLTg4LUFYVHJlZUZvcm1hdHRl ci1pbmNsdWRlLnBhdGNoIHwgICAyNyAtCiAuLi5pdW0tODgtQm9va21hcmtNb2RlbE9ic2VydmVy LWluY2x1ZGUucGF0Y2ggfCAgIDIxIC0KIC4uLnVtLTg4LUNvbXBvc2l0b3JGcmFtZVJlcG9ydGVy LWRjaGVjay5wYXRjaCB8ICAgMzYgLQogLi4uL2Nocm9taXVtLTg4LVN0cmluZ1Bvb2wtaW5jbHVk ZS5wYXRjaCAgICAgIHwgICAyMCAtCiAuLi5yb21pdW0tODgtZmVkZXJhdGVkX2xlYXJuaW5nLWlu Y2x1ZGUucGF0Y2ggfCAgIDIxIC0KIC4uLi9wYXRjaGVzL2Nocm9taXVtLTg4LWdsaWJjLTIuMzMu cGF0Y2ggICAgICB8ICAxNDQgLQogLi4uaHJvbWl1bS04OC1pZGVvZ3JhcGhpY1NwYWNlQ2hhcmFj dGVyLnBhdGNoIHwgICAyNyAtCiAuLi4vcGF0Y2hlcy9jaHJvbWl1bS04OC1pdHlwLWluY2x1ZGUu cGF0Y2ggICAgfCAgIDI1IC0KIC4uLi9wYXRjaGVzL2Nocm9taXVtLTg4LXZhYXBpLWF0dHJpYnV0 ZS5wYXRjaCB8ICAgMzkgLQogLi4udW0tODktQ29tcG9zaXRvckZyYW1lUmVwb3J0ZXItZGNoZWNr LnBhdGNoIHwgICAxMSArCiBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbGliY19tYWxsb2MucGF0 Y2ggICAgfCAgIDIzICstCiAuLi5yZW1vdmUtdW5zdXBwb3J0ZWQtY29tcGlsZXItd2FybmluZ3Mu cGF0Y2ggfCAgIDI2IC0KIC4uLi12OC1tb25vdG9uaWMtcHRocmVhZC1jb250X3RpbWVkd2FpdC5w YXRjaCB8ICAgMjQgLQogc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL25vLWV4ZWNpbmZvLnBhdGNo ICAgIHwgICA3MiAtCiBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbm8tZ2V0Y29udGV4dC5wYXRj aCAgfCAgIDI3IC0KIHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9uby1zdGQtdGltZS5wYXRjaCAg ICB8ICAgMTEgKwogLi4uL2Nocm9taXVtL3BhdGNoZXMvc2FuZGJveC1tZW1iYXJyaWVyLnBhdGNo IHwgICA2MCAtCiAuLi4vcGF0Y2hlcy94eHgtcHBjNjRsZS1zdXBwb3J0LnBhdGNoICAgICAgICAg fCAzNjU2IC0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlICAgICAg ICAgICAgICAgICAgICAgfCAgICA4ICstCiAyOCBmaWxlcyBjaGFuZ2VkLCA1OSBpbnNlcnRpb25z KCspLCA0NDEzIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21p dW0vcGF0Y2hlcy9icm93c2VyLXNpemVfdC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1BWFRyZWVGb3JtYXR0ZXItaW5jbHVkZS5w YXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1 bS04OC1Cb29rbWFya01vZGVsT2JzZXJ2ZXItaW5jbHVkZS5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1Db21wb3NpdG9yRnJhbWVS ZXBvcnRlci1kY2hlY2sucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVt L3BhdGNoZXMvY2hyb21pdW0tODgtU3RyaW5nUG9vbC1pbmNsdWRlLnBhdGNoCiBkZWxldGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LWZlZGVyYXRlZF9s ZWFybmluZy1pbmNsdWRlLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1 bS9wYXRjaGVzL2Nocm9taXVtLTg4LWdsaWJjLTIuMzMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtaWRlb2dyYXBoaWNTcGFjZUNo YXJhY3Rlci5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hl cy9jaHJvbWl1bS04OC1pdHlwLWluY2x1ZGUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtdmFhcGktYXR0cmlidXRlLnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg5LUNv bXBvc2l0b3JGcmFtZVJlcG9ydGVyLWRjaGVjay5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9sbHZtLXJlbW92ZS11bnN1cHBvcnRlZC1jb21waWxlci13 YXJuaW5ncy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hl cy9tdXNsLXY4LW1vbm90b25pYy1wdGhyZWFkLWNvbnRfdGltZWR3YWl0LnBhdGNoCiBkZWxldGUg bW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL25vLWV4ZWNpbmZvLnBhdGNoCiBk ZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL25vLWdldGNvbnRleHQu cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbm8tc3Rk LXRpbWUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMv c2FuZGJveC1tZW1iYXJyaWVyLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJv bWl1bS9wYXRjaGVzL3h4eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNw a2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9kZWZhdWx0LXB0aHJlYWQtc3RhY2tzaXpl LnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvZGVmYXVsdC1wdGhy ZWFkLXN0YWNrc2l6ZS5wYXRjaAppbmRleCAxNmU0ZDIxZTZlZC4uOGJmOWEzZGZiMzQgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL2RlZmF1bHQtcHRocmVh ZC1zdGFja3NpemUucGF0Y2gKKysrIGIvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNo ZXMvZGVmYXVsdC1wdGhyZWFkLXN0YWNrc2l6ZS5wYXRjaApAQCAtMSwxMiArMSwxMiBAQAogLS0t IGJhc2UvdGhyZWFkaW5nL3BsYXRmb3JtX3RocmVhZF9saW51eC5jYy5vcmlnCiArKysgYmFzZS90 aHJlYWRpbmcvcGxhdGZvcm1fdGhyZWFkX2xpbnV4LmNjCi1AQCAtOTkgKzk5LDIgQEAgc2l6ZV90 IEdldERlZmF1bHRUaHJlYWRTdGFja1NpemUoY29uc3QgcAorQEAgLTQ0MCArNDQwLDIgQEAgc2l6 ZV90IEdldERlZmF1bHRUaHJlYWRTdGFja1NpemUoY29uc3QgcAogLSAgcmV0dXJuIDA7CiArICAv LyB1c2UgOG1iIGxpa2UgZ2xpYmMgdG8gYXZvaWQgcnVubmluZyBvdXQgb2Ygc3BhY2UKICsgIHJl dHVybiAoMSA8PCAyMyk7CiAtLS0gY2hyb21lL2FwcC9zaHV0ZG93bl9zaWduYWxfaGFuZGxlcnNf cG9zaXguY2Mub3JpZwogKysrIGNocm9tZS9hcHAvc2h1dGRvd25fc2lnbmFsX2hhbmRsZXJzX3Bv c2l4LmNjCi1AQCAtMTg0LDExICsxODQsMTkgQEAKK0BAIC0xODcsMTEgKzE4NywxOSBAQAogICAg Z19zaHV0ZG93bl9waXBlX3JlYWRfZmQgPSBwaXBlZmRbMF07CiAgICBnX3NodXRkb3duX3BpcGVf d3JpdGVfZmQgPSBwaXBlZmRbMV07CiAgI2lmICFkZWZpbmVkKEFERFJFU1NfU0FOSVRJWkVSKQpk aWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvbXVzbC1maXhl cy5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL211c2wtZml4ZXMu cGF0Y2gKaW5kZXggYTc4MzJmZjMyZTguLjFmMTJmZjhiMDhkIDEwMDY0NAotLS0gYS9zcmNwa2dz L2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9tdXNsLWZpeGVzLnBhdGNoCisrKyBiL3NyY3Br Z3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL211c2wtZml4ZXMucGF0Y2gKQEAgLTEsNiAr MSw2IEBACiAtLS0gLi90aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0Lmgub3Jp ZwogKysrIC4vdGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oCi1AQCAtMTEy Nyw2ICsxMTI3LDEyIEBACitAQCAtMTI1OCw2ICsxMjU4LDEyIEBACiAgI2lmbmRlZiBfX05SX2Zh bGxvY2F0ZQogICNkZWZpbmUgX19OUl9mYWxsb2NhdGUgICAgICAgICAgMjg1CiAgI2VuZGlmCkBA IC0xNSw3ICsxNSw3IEBACiAgI2lmIF9NSVBTX1NJTSA9PSBfTUlQU19TSU1fQUJJMzIKIC0tLSAu L3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0 ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5oLm9yaWcKICsrKyAuL3RoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0 X3JlYWRlci5oCi1AQCAtMzcsNiArMzcsMTAgQEAKK0BAIC0zOCw2ICszOCwxMCBAQAogICNpbmNs dWRlICJjb21tb24vbWVtb3J5LmgiCiAgI2luY2x1ZGUgImdvb2dsZV9icmVha3BhZC9jb21tb24v bWluaWR1bXBfZm9ybWF0LmgiCiAgCkBAIC0yOCw3ICsyOCw3IEBACiAgLy8gV3JhcHMgcGxhdGZv cm0tZGVwZW5kZW50IGltcGxlbWVudGF0aW9ucyBvZiBhY2Nlc3NvcnMgdG8gdWNvbnRleHRfdCBz dHJ1Y3RzLgogLS0tIC4vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9s aW51eC9lbGZfY29yZV9kdW1wLmgub3JpZwogKysrIC4vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZfY29yZV9kdW1wLmgKLUBAIC0zNiw2ICszNiw3IEBA CitAQCAtMzcsNiArMzcsNyBAQAogICNpbmNsdWRlIDxlbGYuaD4KICAjaW5jbHVkZSA8bGluay5o PgogICNpbmNsdWRlIDxzdGRkZWYuaD4KQEAgLTM4LDcgKzM4LDcgQEAKICAKIC0tLSAuL3NhbmRi b3gvbGludXgvc3VpZC9wcm9jZXNzX3V0aWwuaC5vcmlnCiArKysgLi9zYW5kYm94L2xpbnV4L3N1 aWQvcHJvY2Vzc191dGlsLmgKLUBAIC0xMSw2ICsxMSwxNCBAQAorQEAgLTEyLDYgKzEyLDE0IEBA CiAgI2luY2x1ZGUgPHN0ZGJvb2wuaD4KICAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAgCkBAIC02 Niw3ICs2Niw3IEBACiAgI2lmIGRlZmluZWQoX19taXBzX18pCiAtLS0gLi90aGlyZF9wYXJ0eS9m Zm1wZWcvbGliYXZ1dGlsL2NwdS5jLm9yaWcKICsrKyAuL3RoaXJkX3BhcnR5L2ZmbXBlZy9saWJh dnV0aWwvY3B1LmMKLUBAIC0zOCw3ICszOCw2IEBACitAQCAtNDEsNyArNDEsNiBAQAogICNpbmNs dWRlIDxzeXMvcGFyYW0uaD4KICAjZW5kaWYKICAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CkBAIC03 NCwyOCArNzQsNiBAQAogICNlbmRpZgogICNpZiBIQVZFX1VOSVNURF9ICiAgI2luY2x1ZGUgPHVu aXN0ZC5oPgotZGlmZiAtLWdpdCBhL2Nocm9tZS9icm93c2VyL21ldHJpY3MvY2hyb21lX2Jyb3dz ZXJfbWFpbl9leHRyYV9wYXJ0c19tZXRyaWNzLmNjIGIvY2hyb21lL2Jyb3dzZXIvbWV0cmljcy9j aHJvbWVfYnJvd3Nlcl9tYWluX2V4dHJhX3BhcnRzX21ldHJpY3MuY2MKLS0tLSBjaHJvbWUvYnJv d3Nlci9tZXRyaWNzL2Nocm9tZV9icm93c2VyX21haW5fZXh0cmFfcGFydHNfbWV0cmljcy5jYwot KysrIGNocm9tZS9icm93c2VyL21ldHJpY3MvY2hyb21lX2Jyb3dzZXJfbWFpbl9leHRyYV9wYXJ0 c19tZXRyaWNzLmNjCi1AQCAtMzksNyArMzksOSBAQAotICNlbmRpZiAgLy8gZGVmaW5lZChPU19B TkRST0lEKSAmJiBkZWZpbmVkKF9fYXJtX18pCi0gCi0gI2lmIGRlZmluZWQoT1NfTElOVVgpICYm ICFkZWZpbmVkKE9TX0NIUk9NRU9TKQotKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKLSAjaW5jbHVk ZSA8Z251L2xpYmMtdmVyc2lvbi5oPgotKyNlbmRpZgotIAotICNpbmNsdWRlICJiYXNlL2xpbnV4 X3V0aWwuaCIKLSAjaW5jbHVkZSAiYmFzZS9zdHJpbmdzL3N0cmluZ19zcGxpdC5oIgotQEAgLTI5 NSw3ICsyOTcsNyBAQCB2b2lkIFJlY29yZExpbnV4RGlzdHJvKCkgewotICNlbmRpZiAgLy8gZGVm aW5lZChPU19MSU5VWCkgJiYgIWRlZmluZWQoT1NfQ0hST01FT1MpCi0gCi0gdm9pZCBSZWNvcmRM aW51eEdsaWJjVmVyc2lvbigpIHsKLS0jaWYgZGVmaW5lZChPU19MSU5VWCkgJiYgIWRlZmluZWQo T1NfQ0hST01FT1MpCi0rI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChPU19DSFJP TUVPUykKLSAgIGJhc2U6OlZlcnNpb24gdmVyc2lvbihnbnVfZ2V0X2xpYmNfdmVyc2lvbigpKTsK LSAKLSAgIFVNQUxpbnV4R2xpYmNWZXJzaW9uIGdsaWJjX3ZlcnNpb25fcmVzdWx0ID0gVU1BX0xJ TlVYX0dMSUJDX05PVF9QQVJTRUFCTEU7CiAtLS0gc2VydmljZXMvZGV2aWNlL3NlcmlhbC9zZXJp YWxfaW9faGFuZGxlcl9wb3NpeC5jYy5vcmlnCTIwMTktMDctMDMgMTA6NTc6MzIuNTY4MTcxODM1 IC0wNDAwCiArKysgc2VydmljZXMvZGV2aWNlL3NlcmlhbC9zZXJpYWxfaW9faGFuZGxlcl9wb3Np eC5jYwkyMDE5LTA3LTAzIDEwOjU3OjE2Ljg2Nzk4MzAzMSAtMDQwMAogQEAgLTYsNiArNiw3IEBA CkBAIC0xMzEsNyArMTA5LDcgQEAgZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L290cy9pbmNsdWRl L29wZW50eXBlLXNhbml0aXNlci5oIGIvdGhpcmRfcGFydHkvb3RzL2luY2wKICAgICAgYmFzZTo6 ZGVidWc6OlN0YWNrVHJhY2Ugc3RhY2tfdHJhY2U7CiAtLS0gLi90aGlyZF9wYXJ0eS9ibGluay9y ZW5kZXJlci9wbGF0Zm9ybS93dGYvc3RhY2tfdXRpbC5jYy5vcmlnCiArKysgLi90aGlyZF9wYXJ0 eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS93dGYvc3RhY2tfdXRpbC5jYwotQEAgLTI4LDcgKzI4 LDcgQEAKK0BAIC0yOSw3ICsyOSw3IEBACiAgLy8gRklYTUU6IE9uIE1hYyBPU1ggYW5kIExpbnV4 LCB0aGlzIG1ldGhvZCBjYW5ub3QgZXN0aW1hdGUgc3RhY2sgc2l6ZQogIC8vIGNvcnJlY3RseSBm b3IgdGhlIG1haW4gdGhyZWFkLgogIApAQCAtMTQwLDcgKzExOCw3IEBAIGRpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9vdHMvaW5jbHVkZS9vcGVudHlwZS1zYW5pdGlzZXIuaCBiL3RoaXJkX3BhcnR5 L290cy9pbmNsCiAgICAgIGRlZmluZWQoT1NfRlVDSFNJQSkKICAgIC8vIHB0aHJlYWRfZ2V0YXR0 cl9ucCgpIGNhbiBmYWlsIGlmIHRoZSB0aHJlYWQgaXMgbm90IGludm9rZWQgYnkKICAgIC8vIHB0 aHJlYWRfY3JlYXRlKCkgKGUuZy4sIHRoZSBtYWluIHRocmVhZCBvZiBibGlua191bml0dGVzdHMp LgotQEAgLTk2LDcgKzk2LDcgQEAKK0BAIC05Nyw3ICs5Nyw3IEBACiAgfQogIAogIHZvaWQqIEdl dFN0YWNrU3RhcnQoKSB7CkBAIC0xNTEsNyArMTI5LDcgQEAgZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L290cy9pbmNsdWRlL29wZW50eXBlLXNhbml0aXNlci5oIGIvdGhpcmRfcGFydHkvb3RzL2lu Y2wKICAgIGludCBlcnJvcjsKIC0tLSAuL25ldC9kbnMvZG5zX2NvbmZpZ19zZXJ2aWNlX3Bvc2l4 LmNjLm9yaWcKICsrKyAuL25ldC9kbnMvZG5zX2NvbmZpZ19zZXJ2aWNlX3Bvc2l4LmNjCi1AQCAt MTIyLDcgKzEyMiw3IEBACitAQCAtMTUwLDcgKzE1MCw3IEBACiAgICBDb25maWdQYXJzZVBvc2l4 UmVzdWx0IHJlc3VsdDsKICAgIGNvbmZpZy0+dW5oYW5kbGVkX29wdGlvbnMgPSBmYWxzZTsKICAv LyBUT0RPKGZ1Y2hzaWEpOiBVc2UgcmVzX25pbml0KCkgd2hlbiBpdCdzIGltcGxlbWVudGVkIG9u IEZ1Y2hzaWEuCkBAIC0xODEsNyArMTU5LDcgQEAgZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L290 cy9pbmNsdWRlL29wZW50eXBlLXNhbml0aXNlci5oIGIvdGhpcmRfcGFydHkvb3RzL2luY2wKICAK IC0tLSB0aGlyZF9wYXJ0eS9uYXNtL25hc21saWIvcmVhbHBhdGguYy5vcmlnCTIwMTktMDctMDMg MTI6MjM6MDUuMDIxOTQ5ODk1IC0wNDAwCiArKysgdGhpcmRfcGFydHkvbmFzbS9uYXNtbGliL3Jl YWxwYXRoLmMJMjAxOS0wNy0wMyAxMjoyNDoyNC4yNDY4NjI2NjUgLTA0MDAKLUBAIC00OSw3ICs0 OSw3IEBACitAQCAtNDcsNyArNDcsNyBAQAogIAogICNpbmNsdWRlICJuYXNtbGliLmgiCiAgCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9tdXNsLWhhY2tz LnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvbXVzbC1oYWNrcy5w YXRjaAppbmRleCBlZGMxYjA2MGRmYi4uOTI3NmU0OGFiOGUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv Y2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL211c2wtaGFja3MucGF0Y2gKKysrIGIvc3JjcGtn cy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvbXVzbC1oYWNrcy5wYXRjaApAQCAtMSw2ICsx LDYgQEAKIC0tLSBiYXNlL2RlYnVnL3N0YWNrX3RyYWNlLmNjLm9yaWcJMjAxOC0xMi0wOCAxNDox MToyNS4zMDM0NzUxMTYgKzAxMDAKICsrKyBiYXNlL2RlYnVnL3N0YWNrX3RyYWNlLmNjCTIwMTgt MTItMDggMTg6MDA6NDMuODc0OTQ2OTk5ICswMTAwCi1AQCAtMjI5LDcgKzIyOSw3IEBACitAQCAt MjI1LDcgKzIyNSw3IEBACiAgfQogIHN0ZDo6c3RyaW5nIFN0YWNrVHJhY2U6OlRvU3RyaW5nV2l0 aFByZWZpeChjb25zdCBjaGFyKiBwcmVmaXhfc3RyaW5nKSBjb25zdCB7CiAgICBzdGQ6OnN0cmlu Z3N0cmVhbSBzdHJlYW07CkBAIC0xMSw3ICsxMSw3IEBACiAgICByZXR1cm4gc3RyZWFtLnN0cigp OwogLS0tIG5ldC9zb2NrZXQvdWRwX3NvY2tldF9wb3NpeC5jYy5vcmlnCTIwMTktMDctMDMgMTM6 MTM6NDYuMDM0MzQyNjQ5IC0wNDAwCiArKysgbmV0L3NvY2tldC91ZHBfc29ja2V0X3Bvc2l4LmNj CTIwMTktMDctMDMgMTM6MjM6NTMuMTE3MDgxOTA5IC0wNDAwCi1AQCAtMTE5NCw3ICsxMTk0LDcg QEAKK0BAIC0xMTUzLDcgKzExNTMsNyBAQAogICAgICBtc2dfaW92LT5wdXNoX2JhY2soe2NvbnN0 X2Nhc3Q8Y2hhcio+KGJ1ZmZlci0+ZGF0YSgpKSwgYnVmZmVyLT5sZW5ndGgoKX0pOwogICAgbXNn dmVjLT5yZXNlcnZlKGJ1ZmZlcnMuc2l6ZSgpKTsKICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwg YnVmZmVycy5zaXplKCk7IGorKykKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMv bXVzbC1wYXRjaGVzL211c2wtbGliYysrLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9t dXNsLXBhdGNoZXMvbXVzbC1saWJjKysucGF0Y2gKaW5kZXggMDg4ZDgwZmFkNTIuLmUwNzc2ODIz NDAyIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9tdXNs LWxpYmMrKy5wYXRjaAorKysgYi9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9t dXNsLWxpYmMrKy5wYXRjaApAQCAtMiw3ICsyLDcgQEAgZGlmZiAtLWdpdCBhL2J1aWxkdG9vbHMv dGhpcmRfcGFydHkvbGliYysrL3RydW5rL2luY2x1ZGUvbG9jYWxlIGIvYnVpbGR0b29scy90aGkK IGluZGV4IGQyOWEyZGMuLjUzOTk4YmMgMTAwNjQ0CiAtLS0gYnVpbGR0b29scy90aGlyZF9wYXJ0 eS9saWJjKysvdHJ1bmsvaW5jbHVkZS9sb2NhbGUKICsrKyBidWlsZHRvb2xzL3RoaXJkX3BhcnR5 L2xpYmMrKy90cnVuay9pbmNsdWRlL2xvY2FsZQotQEAgLTExLDYgKzExLDE1IEBACitAQCAtMTAs NiArMTAsMTUgQEAKICAjaWZuZGVmIF9MSUJDUFBfTE9DQUxFCiAgI2RlZmluZSBfTElCQ1BQX0xP Q0FMRQogIApAQCAtMjIsNyArMjIsNyBAQCBkaWZmIC0tZ2l0IGEvYnVpbGR0b29scy90aGlyZF9w YXJ0eS9saWJjKysvdHJ1bmsvc3JjL2xvY2FsZS5jcHAgYi9idWlsZHRvb2xzL3RoaQogaW5kZXgg NDE2M2MyYy4uM2QxOTAyYSAxMDA2NDQKIC0tLSBhL2J1aWxkdG9vbHMvdGhpcmRfcGFydHkvbGli YysrL3RydW5rL3NyYy9sb2NhbGUuY3BwCiArKysgYnVpbGR0b29scy90aGlyZF9wYXJ0eS9saWJj KysvdHJ1bmsvc3JjL2xvY2FsZS5jcHAKLUBAIC0xMDI4LDExICsxMDI4LDExIEBAIGN0eXBlPGNo YXI+Ojpkb19uYXJyb3coY29uc3QgY2hhcl90eXBlKiBsb3csIGNvbnN0IGNoYXJfdHlwZSogaGln aCwgY2hhciBkZmF1bHQsCitAQCAtMTAxOSwxMSArMTAxOSwxMSBAQCBjdHlwZTxjaGFyPjo6ZG9f bmFycm93KGNvbnN0IGNoYXJfdHlwZSogbG93LCBjb25zdCBjaGFyX3R5cGUqIGhpZ2gsIGNoYXIg ZGZhdWx0LAogICAgICByZXR1cm4gbG93OwogIH0KICAKQEAgLTM2LDcgKzM2LDcgQEAgaW5kZXgg NDE2M2MyYy4uM2QxOTAyYSAxMDA2NDQKICAKICAjaWZkZWYgX0xJQkNQUF9QUk9WSURFU19ERUZB VUxUX1JVTkVfVEFCTEUKICBjb25zdCBjdHlwZTxjaGFyPjo6bWFzayoKLUBAIC0xMTM2LDEyICsx MTM2LDEwIEBAIGN0eXBlPGNoYXI+OjpjbGFzc2ljX3RhYmxlKCkgIF9OT0VYQ0VQVAorQEAgLTEx MjcsMTIgKzExMjcsMTAgQEAgY3R5cGU8Y2hhcj46OmNsYXNzaWNfdGFibGUoKSAgX05PRVhDRVBU CiAgI2VsaWYgZGVmaW5lZChfQUlYKQogICAgICByZXR1cm4gKGNvbnN0IHVuc2lnbmVkIGludCAq KV9fbGNfY3R5cGVfcHRyLT5vYmotPm1hc2s7CiAgI2Vsc2UKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Y2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL211c2wtc2FuZGJveC5wYXRjaCBiL3NyY3BrZ3Mv Y2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL211c2wtc2FuZGJveC5wYXRjaAppbmRleCAyMzBi YjdiYmQyOS4uMGI5ODI1M2Y0ZDYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMv bXVzbC1wYXRjaGVzL211c2wtc2FuZGJveC5wYXRjaAorKysgYi9zcmNwa2dzL2Nocm9taXVtL2Zp bGVzL211c2wtcGF0Y2hlcy9tdXNsLXNhbmRib3gucGF0Y2gKQEAgLTEsNiArMSw2IEBACiAtLS0g Li9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jl c3RyaWN0aW9ucy5jYy5vcmlnCTIwMTktMDctMDMgMTE6NTM6MjEuMjEzNDc5NzM2IC0wNDAwCiAr KysgLi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJz X3Jlc3RyaWN0aW9ucy5jYwkyMDE5LTA3LTAzIDExOjU3OjAxLjMwNDk5ODI1MyAtMDQwMAotQEAg LTE0MCwzMSArMTQwLDE0IEBACitAQCAtMTMxLDMxICsxMzEsMTQgQEAKICBSZXN1bHRFeHByIFJl c3RyaWN0Q2xvbmVUb1RocmVhZHNBbmRFUEVSTUZvcmsoKSB7CiAgICBjb25zdCBBcmc8dW5zaWdu ZWQgbG9uZz4gZmxhZ3MoMCk7CiAgCkBAIC00MSw3ICs0MSw3IEBACiAgCiAtLS0gLi9zYW5kYm94 L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjLm9yaWcKICsrKyAuL3Nh bmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKLUBAIC00OTQs NiArNDk0LDcgQEAKK0BAIC01MjEsNiArNTIxLDcgQEAKICAgICAgY2FzZSBfX05SX21sb2NrOgog ICAgICBjYXNlIF9fTlJfbXVubG9jazoKICAgICAgY2FzZSBfX05SX211bm1hcDoKQEAgLTQ5LDcg KzQ5LDcgQEAKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgY2FzZSBfX05SX21hZHZpc2U6CiAg ICAgIGNhc2UgX19OUl9taW5jb3JlOgotQEAgLTUwOSw3ICs1MTAsNiBAQAorQEAgLTU0MCw3ICs1 NDAsNiBAQAogICAgICBjYXNlIF9fTlJfbW9kaWZ5X2xkdDoKICAjZW5kaWYKICAgICAgY2FzZSBf X05SX21wcm90ZWN0OgpAQCAtNjEsNyArNjEsNyBAQCBkaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51 eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYyBiL3NhbmRib3gvbGludXgvcwog aW5kZXggODBmMDJjMC4uMjFmYmUyMSAxMDA2NDQKIC0tLSBzYW5kYm94L2xpbnV4L3NlY2NvbXAt YnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCiArKysgc2FuZGJveC9saW51eC9zZWNjb21wLWJw Zi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYwotQEAgLTM3Myw2ICszNzMsNyBAQCBib29sIFN5c2Nh bGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRPckRlYXRoKGludCBzeXNubykgeworQEAgLTQw MCw2ICs0MDAsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRPckRl YXRoKGludCBzeXNubykgewogICNpZiBkZWZpbmVkKF9faTM4Nl9fKQogICAgICBjYXNlIF9fTlJf d2FpdHBpZDoKICAjZW5kaWYKQEAgLTY5LDcgKzY5LDcgQEAgaW5kZXggODBmMDJjMC4uMjFmYmUy MSAxMDA2NDQKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgY2FzZSBfX05SX2Nsb25lOiAgLy8g U2hvdWxkIGJlIHBhcmFtZXRlci1yZXN0cmljdGVkLgogICAgICBjYXNlIF9fTlJfc2V0bnM6ICAv LyBQcml2aWxlZ2VkLgotQEAgLTM4NSw3ICszODYsNiBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0Fs bG93ZWRQcm9jZXNzU3RhcnRPckRlYXRoKGludCBzeXNubykgeworQEAgLTQxMyw3ICs0MTMsNiBA QCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRPckRlYXRoKGludCBzeXNu bykgewogICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRl ZmluZWQoX19taXBzX18pCiAgICAgIGNhc2UgX19OUl9zZXRfdGhyZWFkX2FyZWE6CiAgI2VuZGlm CkBAIC03OSw3ICs3OSw3IEBAIGluZGV4IDgwZjAyYzAuLjIxZmJlMjEgMTAwNjQ0CiAgICAgIGNh c2UgX19OUl92Zm9yazoKIC0tLSBzYW5kYm94L3BvbGljeS9saW51eC9icGZfcmVuZGVyZXJfcG9s aWN5X2xpbnV4LmNjCiArKysgc2FuZGJveC9wb2xpY3kvbGludXgvYnBmX3JlbmRlcmVyX3BvbGlj eV9saW51eC5jYwotQEAgLTEwMCw5ICsxMDAsOSBAQAorQEAgLTk1LDkgKzk1LDkgQEAKICAgICAg Y2FzZSBfX05SX3VuYW1lOgogICAgICBjYXNlIF9fTlJfc2NoZWRfZ2V0cGFyYW06CiAgICAgIGNh c2UgX19OUl9zY2hlZF9nZXRzY2hlZHVsZXI6CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVt L2ZpbGVzL211c2wtcGF0Y2hlcy9uby1tYWxsaW5mby5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0v ZmlsZXMvbXVzbC1wYXRjaGVzL25vLW1hbGxpbmZvLnBhdGNoCmluZGV4IDI1NGExZjYzMmRhLi4x NmU3ZTM2ODE3NSAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNo ZXMvbm8tbWFsbGluZm8ucGF0Y2gKKysrIGIvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBh dGNoZXMvbm8tbWFsbGluZm8ucGF0Y2gKQEAgLTEsNiArMSw2IEBACiAtLS0gYmFzZS90cmFjZV9l dmVudC9tYWxsb2NfZHVtcF9wcm92aWRlci5jYy5vcmlnCiArKysgYmFzZS90cmFjZV9ldmVudC9t YWxsb2NfZHVtcF9wcm92aWRlci5jYwotQEAgLTI0Myw3ICsyNDMsNyBAQAorQEAgLTE4NCw3ICsx ODQsNyBAQAogICAgYWxsb2NhdGVkX29iamVjdHNfY291bnQgPSBtYWluX2hlYXBfaW5mby5ibG9j a19jb3VudDsKICAjZWxpZiBkZWZpbmVkKE9TX0ZVQ0hTSUEpCiAgLy8gVE9ETyhmdWNoc2lhKTog UG9ydCwgc2VlIGh0dHBzOi8vY3JidWcuY29tLzcwNjU5Mi4KQEAgLTMwLDcgKzMwLDcgQEAKICAj ZW5kaWYKIC0tLSB0aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLXN1Ynpl cm8vbGliL1N1cHBvcnQvVW5peC9Qcm9jZXNzLmluYwogKysrIHRoaXJkX3BhcnR5L3N3aWZ0c2hh ZGVyL3RoaXJkX3BhcnR5L2xsdm0tc3ViemVyby9saWIvU3VwcG9ydC9Vbml4L1Byb2Nlc3MuaW5j Lm9yaWcKLUBAIC04NCw3ICs4NCw3IEBACitAQCAtODYsNyArODYsNyBAQAogIH0KICAKICBzaXpl X3QgUHJvY2Vzczo6R2V0TWFsbG9jVXNhZ2UoKSB7CkBAIC00Miw3ICs0Miw3IEBACiAKIC0tLSB0 aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLTEwLjAvY29uZmlncy9saW51 eC9pbmNsdWRlL2xsdm0vQ29uZmlnL2NvbmZpZy5oLm9yaWcJMjAxOS0wOS0zMCAxMzowMzo0Mi41 NTY4ODA1MzcgLTA0MDAKICsrKyB0aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9s bHZtLTEwLjAvY29uZmlncy9saW51eC9pbmNsdWRlL2xsdm0vQ29uZmlnL2NvbmZpZy5oCTIwMTkt MDktMzAgMTM6MDc6MjcuOTg5ODIxMjI3IC0wNDAwCi1AQCAtMTIyLDcgKzEyMiw5IEBACitAQCAt MTI1LDcgKzEyNSw5IEBACiAgLyogI3VuZGVmIEhBVkVfTUFMTENUTCAqLwogIAogIC8qIERlZmlu ZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbWFsbGluZm8nIGZ1bmN0aW9uLiAqLwpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvcmVzb2x2ZXIucGF0Y2ggYi9z cmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9yZXNvbHZlci5wYXRjaAppbmRleCAy OWZlMmQyZjFmMy4uMGNlNzdjOTZhNjAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vZmls ZXMvbXVzbC1wYXRjaGVzL3Jlc29sdmVyLnBhdGNoCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vZmls ZXMvbXVzbC1wYXRjaGVzL3Jlc29sdmVyLnBhdGNoCkBAIC0xLDYgKzEsNiBAQAogLS0tIG5ldC9k bnMvaG9zdF9yZXNvbHZlcl9tYW5hZ2VyLmNjLm9yaWcJMjAyMC0xMC0wOSAxNjozOToxMi4wNjQw Njk4MzUgLTA0MDAKICsrKyBuZXQvZG5zL2hvc3RfcmVzb2x2ZXJfbWFuYWdlci5jYwkyMDIwLTEw LTA5IDE2OjQyOjQ5LjczODMwMjc3MiAtMDQwMAotQEAgLTI3NzksOCArMjc3OSw3IEBACitAQCAt MjU2Miw4ICsyNTYyLDcgQEAKICAgIE5ldHdvcmtDaGFuZ2VOb3RpZmllcjo6QWRkQ29ubmVjdGlv blR5cGVPYnNlcnZlcih0aGlzKTsKICAgIGlmIChzeXN0ZW1fZG5zX2NvbmZpZ19ub3RpZmllcl8p CiAgICAgIHN5c3RlbV9kbnNfY29uZmlnX25vdGlmaWVyXy0+QWRkT2JzZXJ2ZXIodGhpcyk7CmRp ZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy94eHgtcHBjNjRs ZS1zdXBwb3J0LnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMveHh4 LXBwYzY0bGUtc3VwcG9ydC5wYXRjaAppbmRleCA5MDAxYTJhODU0ZC4uMWJlOTMyMzEyZWYgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL3h4eC1wcGM2NGxl LXN1cHBvcnQucGF0Y2gKKysrIGIvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMv eHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRjaApAQCAtMSw0NiArMSwzIEBACi1kaWZmIC0tZ2l0IHNh bmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oIHNhbmRib3gvbGludXgvYnBmX2Rz bC9zZWNjb21wX21hY3Jvcy5oCi1pbmRleCBhNmFlYzU0NGUuLjJhNGE3ZjFiYyAxMDA2NDQKLS0t LSBzYW5kYm94L2xpbnV4L2JwZl9kc2wvc2VjY29tcF9tYWNyb3MuaAotKysrIHNhbmRib3gvbGlu dXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oCi1AQCAtMTYsNyArMTYsNyBAQAotICNpZiBkZWZp bmVkKF9fbWlwc19fKQotIC8vIHN5cy91c2VyLmggaW4gZWdsaWJjIG1pc3NlcyBzaXplX3QgZGVm aW5pdGlvbgotICNpbmNsdWRlIDxzdGRkZWYuaD4KLS0jZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykK LSAvLyBNYW51YWxseSBkZWZpbmUgZ3JlZ190IG9uIHBwYzY0Ci0gdHlwZWRlZiB1bnNpZ25lZCBs b25nIGxvbmcgZ3JlZ190OwotICNlbmRpZgotQEAgLTM2MSwxMSArMzYxLDExIEBAIHR5cGVkZWYg c3RydWN0IHB0X3JlZ3MgcmVnc19zdHJ1Y3Q7Ci0gI2RlZmluZSBTRUNDT01QX0FSQ0ggQVVESVRf QVJDSF9QUEM2NAotICNlbmRpZgotIAotLSNkZWZpbmUgU0VDQ09NUF9SRUcoX2N0eCwgX3JlZykg KChfY3R4KS0+dWNfbWNvbnRleHQucmVncy0+Z3ByW19yZWddKQotKyNkZWZpbmUgU0VDQ09NUF9S RUcoX2N0eCwgX3JlZykgKCgoc3RydWN0IHB0X3JlZ3MgKikoX2N0eCktPnVjX21jb250ZXh0LnJl Z3MpLT5ncHJbX3JlZ10pCi0gCi0gI2RlZmluZSBTRUNDT01QX1JFU1VMVChfY3R4KSBTRUNDT01Q X1JFRyhfY3R4LCAzKQotICNkZWZpbmUgU0VDQ09NUF9TWVNDQUxMKF9jdHgpIFNFQ0NPTVBfUkVH KF9jdHgsIDApCi0tI2RlZmluZSBTRUNDT01QX0lQKF9jdHgpIChfY3R4KS0+dWNfbWNvbnRleHQu cmVncy0+bmlwCi0rI2RlZmluZSBTRUNDT01QX0lQKF9jdHgpICgoc3RydWN0IHB0X3JlZ3MgKiko X2N0eCktPnVjX21jb250ZXh0LnJlZ3MpLT5uaXAKLSAjZGVmaW5lIFNFQ0NPTVBfUEFSTTEoX2N0 eCkgU0VDQ09NUF9SRUcoX2N0eCwgMykKLSAjZGVmaW5lIFNFQ0NPTVBfUEFSTTIoX2N0eCkgU0VD Q09NUF9SRUcoX2N0eCwgNCkKLSAjZGVmaW5lIFNFQ0NPTVBfUEFSTTMoX2N0eCkgU0VDQ09NUF9S RUcoX2N0eCwgNSkKLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi9zeXNjYWxs LmNjIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYwotaW5kZXggZDUzYTdmZjU2 Li5jMjkwZjBlOTIgMTAwNjQ0Ci0tLS0gc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi9zeXNjYWxs LmNjCi0rKysgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi9zeXNjYWxsLmNjCi1AQCAtNDk5LDkg KzQ5OSw5IEBAIHZvaWQgU3lzY2FsbDo6UHV0VmFsdWVJblVjb250ZXh0KGludHB0cl90IHJldF92 YWwsIHVjb250ZXh0X3QqIGN0eCkgewotICAgLy8gU2FtZSBhcyBNSVBTLCBuZWVkIHRvIGludmVy dCByZXQgYW5kIHNldCBlcnJvciByZWdpc3RlciAoY3IwLlNPKQotICAgaWYgKHJldF92YWwgPD0g LTEgJiYgcmV0X3ZhbCA+PSAtNDA5NSkgewotICAgICByZXRfdmFsID0gLXJldF92YWw7Ci0tICAg IGN0eC0+dWNfbWNvbnRleHQucmVncy0+Y2NyIHw9ICgxIDw8IDI4KTsKLSsgICAgKChzdHJ1Y3Qg cHRfcmVncyAqKWN0eC0+dWNfbWNvbnRleHQucmVncyktPmNjciB8PSAoMSA8PCAyOCk7Ci0gICB9 IGVsc2UgewotLSAgICBjdHgtPnVjX21jb250ZXh0LnJlZ3MtPmNjciAmPSB+KDEgPDwgMjgpOwot KyAgICAoKHN0cnVjdCBwdF9yZWdzICopY3R4LT51Y19tY29udGV4dC5yZWdzKS0+Y2NyICY9IH4o MSA8PCAyOCk7Ci0gICB9Ci0gI2VuZGlmCi0gICBTRUNDT01QX1JFU1VMVChjdHgpID0gc3RhdGlj X2Nhc3Q8Z3JlZ190PihyZXRfdmFsKTsKIGRpZmYgLS1naXQgdGhpcmRfcGFydHkvYWJzZWlsLWNw cC9hYnNsL2Jhc2UvaW50ZXJuYWwvdW5zY2FsZWRjeWNsZWNsb2NrLmggdGhpcmRfcGFydHkvYWJz ZWlsLWNwcC9hYnNsL2Jhc2UvaW50ZXJuYWwvdW5zY2FsZWRjeWNsZWNsb2NrLmgKIGluZGV4IGNk Y2U5YmY4Li43M2Q3N2RkYSAxMDA2NDQKIC0tLSB0aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wv YmFzZS9pbnRlcm5hbC91bnNjYWxlZGN5Y2xlY2xvY2suaApAQCAtNTYsNyArMTMsNyBAQCBpbmRl eCBjZGNlOWJmOC4uNzNkNzdkZGEgMTAwNjQ0CiAgI2Vsc2UKIC0tLSB0aGlyZF9wYXJ0eS9hYnNl aWwtY3BwL2Fic2wvZGVidWdnaW5nL2ludGVybmFsL3N0YWNrdHJhY2VfY29uZmlnLmgKICsrKyB0 aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wvZGVidWdnaW5nL2ludGVybmFsL3N0YWNrdHJhY2Vf Y29uZmlnLmgKLUBAIC02NCw3ICs2NCw3IEBACitAQCAtNTksNyArNTksNyBAQAogICNlbGlmIGRl ZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKICAjZGVmaW5lIEFCU0xfU1RB Q0tUUkFDRV9JTkxfSEVBREVSIFwKICAgICJhYnNsL2RlYnVnZ2luZy9pbnRlcm5hbC9zdGFja3Ry YWNlX3g4Ni1pbmwuaW5jIgpAQCAtNjUsMjMgKzIyLDExIEBAIGluZGV4IGNkY2U5YmY4Li43M2Q3 N2RkYSAxMDA2NDQKICAjZGVmaW5lIEFCU0xfU1RBQ0tUUkFDRV9JTkxfSEVBREVSIFwKICAgICJh YnNsL2RlYnVnZ2luZy9pbnRlcm5hbC9zdGFja3RyYWNlX3Bvd2VycGMtaW5sLmluYyIKICAjZWxp ZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9C VUlMRC5nbiB0aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlMRC5nbgotaW5kZXggZjlhNjBlMzcuLjI1 ZjNhMGI3IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL0JVSUxELmduCi0rKysgdGhp cmRfcGFydHkvYnJlYWtwYWQvQlVJTEQuZ24KLUBAIC02MzcsNiArNjM3LDcgQEAgaWYgKGlzX2xp bnV4IHx8IGlzX2FuZHJvaWQpIHsKLSAKLSAgICAgaWYgKGN1cnJlbnRfY3B1ID09ICJwcGM2NCIp IHsKLSAgICAgICAgIGRlZmluZXMgPSBbICJIQVZFX0dFVENPTlRFWFQiIF0KLSsgICAgICAgIGxp YnMgKz0gWyAidWNvbnRleHQiIF0KLSAgICAgfSBlbHNlIHsKLSAgICAgICAgIHNvdXJjZXMgKz0g WwotICAgICAgICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2JyZWFrcGFkX2dldGNv bnRleHQuUyIKIGRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MgdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhy ZWFkX2luZm8uY2MKIGluZGV4IDAzYWZlYzdhLi4wMjY0ZWNmMSAxMDA2NDQKIC0tLSB0aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1v bi90aHJlYWRfaW5mby5jYwogKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmNjCi1AQCAtMjczLDYg KzI3Myw5IEBAIHZvaWQgVGhyZWFkSW5mbzo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSog b3V0KSBjb25zdCB7CitAQCAtMjEwLDYgKzIxMCw5IEBAIHZvaWQgVGhyZWFkSW5mbzo6RmlsbENQ VUNvbnRleHQoUmF3Q29udGV4dENQVSogb3V0KSBjb25zdCB7CiAgCiAgI2VsaWYgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQogIApAQCAtOTEsMjMgKzM2LDExIEBAIGluZGV4IDAzYWZlYzdhLi4wMjY0 ZWNmMSAxMDA2NDQKICB1aW50cHRyX3QgVGhyZWFkSW5mbzo6R2V0SW5zdHJ1Y3Rpb25Qb2ludGVy KCkgY29uc3QgewogICAgICByZXR1cm4gbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdOwogIH0KLUBA IC0yOTAsOSArMjkzLDkgQEAgdm9pZCBUaHJlYWRJbmZvOjpGaWxsQ1BVQ29udGV4dChSYXdDb250 ZXh0Q1BVKiBvdXQpIGNvbnN0IHsKLSAgICAgb3V0LT5jdHIgPSBtY29udGV4dC5ncF9yZWdzW1BU X0NUUl07Ci0gICAgIAotICAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0ZMT0FUSU5HU0FWRUFS RUFfUFBDX0ZQUl9DT1VOVDsgaSsrKQotLSAgICAgICAgb3V0LT5mbG9hdF9zYXZlLmZwcmVnc1tp XSA9IG1jb250ZXh0LmZwX3JlZ3NbaV07Ci0rICAgICAgICBvdXQtPmZsb2F0X3NhdmUuZnByZWdz W2ldID0gKCh1aW50NjRfdCAqKSZtY29udGV4dC5mcF9yZWdzKVtpXTsKLSAKLS0gICAgb3V0LT5m bG9hdF9zYXZlLmZwc2NyID0gbWNvbnRleHQuZnBfcmVnc1tORlBSRUctMV07Ci0rICAgIG91dC0+ ZmxvYXRfc2F2ZS5mcHNjciA9ICgodWludDY0X3QgKikmbWNvbnRleHQuZnBfcmVncylbRUxGX05G UFJFRy0xXTsKLSAKLSAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9WRUNUT1JTQVZFQVJFQV9Q UENfVlJfQ09VTlQ7IGkrKykKLSAgICAgICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXSA9 IFwKIGRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNjIHRoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250 ZXh0X3JlYWRlci5jYwogaW5kZXggMTA5MDQ3MGYuLmU1ODAyMzNkIDEwMDY0NAogLS0tIHRoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29t bW9uL3Vjb250ZXh0X3JlYWRlci5jYwogKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYwot QEAgLTI1Nyw2ICsyNTcsOSBAQCB2b2lkIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChS YXdDb250ZXh0Q1BVICpvdXQsIGNvbnN0IHVjb250ZXh0X3QgKnVjKSB7CitAQCAtMjEwLDYgKzIx MCw5IEBAIHZvaWQgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUg Km91dCwgY29uc3QgdWNvbnRleHRfdCAqdWMpIHsKICAKICAjZWxpZiBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCiAgCkBAIC0xMTcsMTggKzUwLDYgQEAgaW5kZXggMTA5MDQ3MGYuLmU1ODAyMzNkIDEw MDY0NAogIHVpbnRwdHJfdCBVQ29udGV4dFJlYWRlcjo6R2V0U3RhY2tQb2ludGVyKGNvbnN0IHVj b250ZXh0X3QqIHVjKSB7CiAgICAgIHJldHVybiB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tNRF9D T05URVhUX1BQQzY0X1JFR19TUF07CiAgfQotQEAgLTI4MCw5ICsyODMsOSBAQCB2b2lkIFVDb250 ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVKiBvdXQsIGNvbnN0IHVjb250 ZXh0X3QqIHVjLAotICAgICBvdXQtPmN0ciA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0NU Ul07Ci0gICAgIAotICAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0ZMT0FUSU5HU0FWRUFSRUFf UFBDX0ZQUl9DT1VOVDsgaSsrKQotLSAgICAgICAgb3V0LT5mbG9hdF9zYXZlLmZwcmVnc1tpXSA9 IHVjLT51Y19tY29udGV4dC5mcF9yZWdzW2ldOwotKyAgICAgICAgb3V0LT5mbG9hdF9zYXZlLmZw cmVnc1tpXSA9ICgodWludDY0X3QgKikmdWMtPnVjX21jb250ZXh0LmZwX3JlZ3MpW2ldOwotIAot LSAgICBvdXQtPmZsb2F0X3NhdmUuZnBzY3IgPSB1Yy0+dWNfbWNvbnRleHQuZnBfcmVnc1tORlBS RUctMV07Ci0rICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHNjciA9ICgodWludDY0X3QgKikmdWMtPnVj X21jb250ZXh0LmZwX3JlZ3MpW0VMRl9ORlBSRUctMV07Ci0gCi0gICAgIGZvciAoaW50IGkgPSAw OyBpIDwgTURfVkVDVE9SU0FWRUFSRUFfUFBDX1ZSX0NPVU5UOyBpKyspCi0gICAgICAgICBvdXQt PnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0gPQogZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2Mg dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4 Y2VwdGlvbl9oYW5kbGVyLmNjCiBpbmRleCA1YTdhYjUwYy4uZWU4Yjg1OGMgMTAwNjQ0CiAtLS0g dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4 Y2VwdGlvbl9oYW5kbGVyLmNjCkBAIC0xNDUsMzEgKzY2LDYgQEAgaW5kZXggNWE3YWI1MGMuLmVl OGI4NThjIDEwMDY0NAogIG5hbWVzcGFjZSBnb29nbGVfYnJlYWtwYWQgewogIAogIG5hbWVzcGFj ZSB7Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xp bnV4L3NpZ25hbF9jb250ZXh0LmggdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNo b3QvbGludXgvc2lnbmFsX2NvbnRleHQuaAotaW5kZXggOGUzMzVhMDkuLmIyYTBmMTU1IDEwMDY0 NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3NpZ25h bF9jb250ZXh0LmgKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9s aW51eC9zaWduYWxfY29udGV4dC5oCi1AQCAtNDY5LDcgKzQ2OSw3IEBAIHN0cnVjdCBNQ29udGV4 dDY0IHsKLSAgIFNpZ25hbFRocmVhZENvbnRleHQ2NCBncF9yZWdzOwotICAgU2lnbmFsRmxvYXRD b250ZXh0NjQgIGZwX3JlZ3M7Ci0gICBTaWduYWxWZWN0b3JDb250ZXh0NjQgKnZfcmVnczsKLS0g IGludDY0X3Qgdm14X3Jlc2VydmVbNjldOwotKyAgaW50NjRfdCB2bXhfcmVzZXJ2ZVsxMDFdOwot IH07Ci0gCi0gc3RydWN0IENvbnRleHRUcmFpdHM2NCA6IHB1YmxpYyBUcmFpdHM2NCB7Ci1kaWZm IC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2lu Zm8uaCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVhZF9pbmZv LmgKLWluZGV4IGRlYTBkMWYzLi5iMjAzZTViMiAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVhZF9pbmZvLmgKLSsrKyB0aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVhZF9pbmZvLmgKLUBAIC0zMCw2ICszMCw3 IEBACi0gCi0gI2lmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotICNpbmNsdWRlIDxz eXMvdWNvbnRleHQuaD4KLSsjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgotICNlbmRpZgotIAotIG5h bWVzcGFjZSBjcmFzaHBhZCB7CiBkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNj YWxsX3N1cHBvcnQuaCB0aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKIGlu ZGV4IDk5NTVjZTQ0Li40YzFjYzQ4OCAxMDA2NDQKIC0tLSB0aGlyZF9wYXJ0eS9sc3MvbGludXhf c3lzY2FsbF9zdXBwb3J0LmgKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9i cm93c2VyLXNpemVfdC5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9icm93c2VyLXNp emVfdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmEyMTRkOTg3ZDYuLjAw MDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9icm93c2VyLXNpemVfdC5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLS0tLSBjaHJvbWUvYnJvd3Nlci9z ZWFyY2gvYmFja2dyb3VuZC9udHBfYmFja2dyb3VuZHMuaAkyMDIwLTA4LTEwIDIwOjM5OjIwLjAw MDAwMDAwMCArMDIwMAotKysrIGNocm9tZS9icm93c2VyL3NlYXJjaC9iYWNrZ3JvdW5kL250cF9i YWNrZ3JvdW5kcy5oCTIwMjAtMDktMDQgMTM6NDg6MjIuNjQwMDIzMjU2ICswMjAwCi1AQCAtNiw2 ICs2LDcgQEAKLSAjZGVmaW5lIENIUk9NRV9CUk9XU0VSX1NFQVJDSF9CQUNLR1JPVU5EX05UUF9C QUNLR1JPVU5EU19IXwotIAotICNpbmNsdWRlIDxhcnJheT4KLSsjaW5jbHVkZSA8Y3N0ZGRlZj4K LSAKLSBjbGFzcyBHVVJMOwotIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVz L2Nocm9taXVtLTg4LUFYVHJlZUZvcm1hdHRlci1pbmNsdWRlLnBhdGNoIGIvc3JjcGtncy9jaHJv bWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LUFYVHJlZUZvcm1hdHRlci1pbmNsdWRlLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NDc4MTA5ODkyMC4uMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LUFYVHJlZUZvcm1hdHRlci1p bmNsdWRlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotRnJvbSA2ZTQwMmQ5 N2MyZGVjNTcyNmYzN2U5NWY5N2I3ZjdlMTJiMWQzYjFkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQotRnJvbTogSm9zZSBEYXBlbmEgUGF6IDxqZGFwZW5hQGlnYWxpYS5jb20+Ci1EYXRlOiBXZWQs IDExIE5vdiAyMDIwIDExOjAyOjEzICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIElXWVU6IGluY2x1 ZGUgaGVhZGVycyBmb3Igc3RkOjp2ZWN0b3IgYW5kIHN0ZDo6dW5pcXVlX3B0ciBpbiBBWFRyZWVG b3JtYXR0ZXIKLQotRml4IHRoZXNlIGJ1aWxkIGVycm9ycyB3aXRoIGxpYnN0ZGMrKzoKLS4uLy4u L3VpL2FjY2Vzc2liaWxpdHkvcGxhdGZvcm0vaW5zcGVjdC90cmVlX2Zvcm1hdHRlci5oOjM1OjEy OiBlcnJvcjog4oCYc3RkOjp2ZWN0b3LigJkgaGFzIG5vdCBiZWVuIGRlY2xhcmVkCi0uLi8uLi91 aS9hY2Nlc3NpYmlsaXR5L3BsYXRmb3JtL2luc3BlY3QvdHJlZV9mb3JtYXR0ZXIuaDo2MToxNjog ZXJyb3I6IOKAmHVuaXF1ZV9wdHLigJkgaW4gbmFtZXNwYWNlIOKAmHN0ZOKAmSBkb2VzIG5vdCBu YW1lIGEgdGVtcGxhdGUgdHlwZQotCi1CdWc6IDk1NzUxOQotQ2hhbmdlLUlkOiBJNDAyYWMwNjQ0 MjU1YjNjZDQ5MzJmZjJmZTcyZDk5OWIxMjVhNzg5NQotLS0tCi0KLWRpZmYgLS1naXQgYS91aS9h Y2Nlc3NpYmlsaXR5L3BsYXRmb3JtL2luc3BlY3QvdHJlZV9mb3JtYXR0ZXIuaCBiL3VpL2FjY2Vz c2liaWxpdHkvcGxhdGZvcm0vaW5zcGVjdC90cmVlX2Zvcm1hdHRlci5oCi1pbmRleCA0YTcwYTRk Li5iYjIzNzY4IDEwMDY0NAotLS0tIHVpL2FjY2Vzc2liaWxpdHkvcGxhdGZvcm0vaW5zcGVjdC90 cmVlX2Zvcm1hdHRlci5oCi0rKysgdWkvYWNjZXNzaWJpbGl0eS9wbGF0Zm9ybS9pbnNwZWN0L3Ry ZWVfZm9ybWF0dGVyLmgKLUBAIC01LDYgKzUsOSBAQAotICNpZm5kZWYgVUlfQUNDRVNTSUJJTElU WV9QTEFURk9STV9JTlNQRUNUX1RSRUVfRk9STUFUVEVSX0hfCi0gI2RlZmluZSBVSV9BQ0NFU1NJ QklMSVRZX1BMQVRGT1JNX0lOU1BFQ1RfVFJFRV9GT1JNQVRURVJfSF8KLSAKLSsjaW5jbHVkZSA8 bWVtb3J5PgotKyNpbmNsdWRlIDx2ZWN0b3I+Ci0rCi0gI2luY2x1ZGUgInVpL2FjY2Vzc2liaWxp dHkvcGxhdGZvcm0vaW5zcGVjdC9pbnNwZWN0LmgiCi0gCi0gI2luY2x1ZGUgInVpL2dmeC9uYXRp dmVfd2lkZ2V0X3R5cGVzLmgiCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMv Y2hyb21pdW0tODgtQm9va21hcmtNb2RlbE9ic2VydmVyLWluY2x1ZGUucGF0Y2ggYi9zcmNwa2dz L2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtQm9va21hcmtNb2RlbE9ic2VydmVyLWluY2x1 ZGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBiMjZhNjBhMzZlLi4wMDAw MDAwMDAwMAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtQm9va21h cmtNb2RlbE9ic2VydmVyLWluY2x1ZGUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCww IEBACi1Gcm9tIDEyN2VjM2IxYmYyNmFiMzdmMmFlODMzM2YyODQwMDg4Njg3NTYyNzQgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTdGVwaGFuIEhhcnRtYW5uIDxzdGhhMDlAZ29vZ2xl bWFpbC5jb20+Ci1EYXRlOiBTYXQsIDIxIE5vdiAyMDIwIDE1OjU5OjIzICswMDAwCi1TdWJqZWN0 OiBbUEFUQ0hdIElXWVU6IHNpemVfdCBpcyBkZWZpbmVkIHN0ZGRlZi5oCi0KLUNoYW5nZS1JZDog STQ0MDBhYzdjNjAwNGI0OWVjNmU3MmM0NGYyNzU0ZTIxNjY2NDJmODgKLS0tLQotCi1kaWZmIC0t Z2l0IGEvY29tcG9uZW50cy9ib29rbWFya3MvYnJvd3Nlci9ib29rbWFya19tb2RlbF9vYnNlcnZl ci5oIGIvY29tcG9uZW50cy9ib29rbWFya3MvYnJvd3Nlci9ib29rbWFya19tb2RlbF9vYnNlcnZl ci5oCi1pbmRleCA2OWM0MGU3Li4wZTVlYjk2IDEwMDY0NAotLS0tIGNvbXBvbmVudHMvYm9va21h cmtzL2Jyb3dzZXIvYm9va21hcmtfbW9kZWxfb2JzZXJ2ZXIuaAotKysrIGNvbXBvbmVudHMvYm9v a21hcmtzL2Jyb3dzZXIvYm9va21hcmtfbW9kZWxfb2JzZXJ2ZXIuaAotQEAgLTcsNiArNyw4IEBA Ci0gCi0gI2luY2x1ZGUgPHNldD4KLSAKLSsjaW5jbHVkZSA8c3RkZGVmLmg+Ci0rCi0gY2xhc3Mg R1VSTDsKLSAKLSBuYW1lc3BhY2UgYm9va21hcmtzIHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hy b21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1Db21wb3NpdG9yRnJhbWVSZXBvcnRlci1kY2hlY2su cGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtQ29tcG9zaXRvckZy YW1lUmVwb3J0ZXItZGNoZWNrLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBh YTFjNTJlMGI3ZS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2No cm9taXVtLTg4LUNvbXBvc2l0b3JGcmFtZVJlcG9ydGVyLWRjaGVjay5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDM2ICswLDAgQEAKLUZyb20gNTZjNjU0YTkxNjAwZTNiZjI1NGFhOWY2NmMxMTUx YjA4NTBiNmVlNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEpvc2UgRGFwZW5hIFBh eiA8amRhcGVuYUBpZ2FsaWEuY29tPgotRGF0ZTogV2VkLCAxMSBOb3YgMjAyMCAxMDoyNDo0NyAr MDEwMAotU3ViamVjdDogW1BBVENIXSBHQ0M6IGRvIG5vdCBwYXNzIHVuaXF1ZV9wdHIgdG8gRENI RUNLX05FLCBidXQgdGhlIGFjdHVhbCBwb2ludGVyLCBpbiBDb21wb3NpdG9yRnJhbWVSZXBvcnRl cgotCi1EQ0hFQ0tfTkUgY29tcGFyaXNvbiByZXF1aXJlcyBDaGVja09wVmFsdWVTdHIgdG8gYmUg ZGVmaW5lZCBmb3IgdGhlCi10eXBlLCBvciBwcm92aWRpbmcgYW4gb3V0cHV0IHN0cmVhbSBvcGVy YXRvci4gQSB1bmlxdWVfcHRyIGRvZXMgbm90Ci1wcm92aWRlIGFueS4KLQotQ29tcGlsYXRpb24g aW4gR0NDIGlzIGZhaWxpbmcgaW4gQ29tcG9zaXRvckZyYW1lUmVwb3J0ZXIgYmVjYXVzZSBvZgot dGhpczoKLS4uLy4uL2NjL21ldHJpY3MvY29tcG9zaXRvcl9mcmFtZV9yZXBvcnRlci5jYzogSW4g bWVtYmVyIGZ1bmN0aW9uIOKAmHZvaWQgY2M6OkNvbXBvc2l0b3JGcmFtZVJlcG9ydGVyOjpSZXBv cnRFdmVudExhdGVuY3lIaXN0b2dyYW1zKCkgY29uc3TigJk6Ci0uLi8uLi9iYXNlL2NoZWNrX29w Lmg6MjI0OjU5OiBlcnJvcjogbm8gbWF0Y2hpbmcgZnVuY3Rpb24gZm9yIGNhbGwgdG8g4oCYQ2hl Y2tPcFZhbHVlU3RyKGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxjYzo6RXZlbnRNZXRyaWNzPiYp4oCZ Ci0KLUZpeGVkIGNvbXBhcmluZyB0aGUgcmVzdWx0IG9mIGdldCgpIG1ldGhvZCBmb3IgdW5pcXVl X3B0ciBpbnN0ZWFkIG9mCi10aGUgdW5pcXVlX3B0ci4KLQotQnVnOiA4MTkyOTQKLUNoYW5nZS1J ZDogSTExMTAzZDE4NjdjNzE5NmMxZGU5MmU3MmY5ZjEyZGNmZDMxYzI5ZjEKLQotKHVwZGF0ZWQg dG8gdXNlIERDSEVDSyBhcyBzdWdnZXN0ZWQgaW4gY29tbWVudHMpCi0tLS0KLQotZGlmZiAtLWdp dCBhL2NjL21ldHJpY3MvY29tcG9zaXRvcl9mcmFtZV9yZXBvcnRlci5jYyBiL2NjL21ldHJpY3Mv Y29tcG9zaXRvcl9mcmFtZV9yZXBvcnRlci5jYwotaW5kZXggNzI1YmViMC4uZmFmZDBmMyAxMDA2 NDQKLS0tLSBjYy9tZXRyaWNzL2NvbXBvc2l0b3JfZnJhbWVfcmVwb3J0ZXIuY2MKLSsrKyBjYy9t ZXRyaWNzL2NvbXBvc2l0b3JfZnJhbWVfcmVwb3J0ZXIuY2MKLUBAIC02ODYsNyArNjg2LDcgQEAK LSAKLSB2b2lkIENvbXBvc2l0b3JGcmFtZVJlcG9ydGVyOjpSZXBvcnRFdmVudExhdGVuY3lIaXN0 b2dyYW1zKCkgY29uc3QgewotICAgZm9yIChjb25zdCBhdXRvJiBldmVudF9tZXRyaWNzIDogZXZl bnRzX21ldHJpY3NfKSB7Ci0tICAgIERDSEVDS19ORShldmVudF9tZXRyaWNzLCBudWxscHRyKTsK LSsgICAgRENIRUNLKGV2ZW50X21ldHJpY3MpOwotICAgICBjb25zdCBzdGQ6OnN0cmluZyBoaXN0 b2dyYW1fYmFzZV9uYW1lID0KLSAgICAgICAgIEdldEV2ZW50TGF0ZW5jeUhpc3RvZ3JhbUJhc2VO YW1lKCpldmVudF9tZXRyaWNzKTsKLSAgICAgY29uc3QgaW50IGV2ZW50X3R5cGVfaW5kZXggPSBz dGF0aWNfY2FzdDxpbnQ+KGV2ZW50X21ldHJpY3MtPnR5cGUoKSk7CmRpZmYgLS1naXQgYS9zcmNw a2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtU3RyaW5nUG9vbC1pbmNsdWRlLnBhdGNo IGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LVN0cmluZ1Bvb2wtaW5jbHVk ZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTU1YmJhZTJlY2UuLjAwMDAw MDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1TdHJpbmdQ b29sLWluY2x1ZGUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1Gcm9tIDM3 MjM2NmI0MTgwNTMzZjI3ZDMyNTBhNTA4MTA4MjgzNzBkNjk3YjAgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBTdGVwaGFuIEhhcnRtYW5uIDxzdGhhMDlAZ29vZ2xlbWFpbC5jb20+Ci1E YXRlOiBTYXQsIDIxIE5vdiAyMDIwIDE2OjEyOjE4ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0hdIElX WVU6IGluY2x1ZGUgbGltaXRzIGZvciBzdGQ6Om51bWVyaWNfbGltaXRzCi0KLUNoYW5nZS1JZDog SWE1MjI2ZTE0MzJhNjIyZjRmNGFiYzhmMWIxOGJjYWI4NjM4YTczYzYKLS0tLQotCi1kaWZmIC0t Z2l0IGEvc3JjL3RyYWNlX3Byb2Nlc3Nvci9jb250YWluZXJzL3N0cmluZ19wb29sLmggYi9zcmMv dHJhY2VfcHJvY2Vzc29yL2NvbnRhaW5lcnMvc3RyaW5nX3Bvb2wuaAotaW5kZXggMTFhZTkxYy4u NThjNmRiMiAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9wZXJmZXR0by9zcmMvdHJhY2VfcHJvY2Vz c29yL2NvbnRhaW5lcnMvc3RyaW5nX3Bvb2wuaAotKysrIHRoaXJkX3BhcnR5L3BlcmZldHRvL3Ny Yy90cmFjZV9wcm9jZXNzb3IvY29udGFpbmVycy9zdHJpbmdfcG9vbC5oCi1AQCAtMjIsNiArMjIs NyBAQAotIAotICNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgotICNpbmNsdWRlIDx2ZWN0b3I+Ci0r I2luY2x1ZGUgPGxpbWl0cz4KLSAKLSAjaW5jbHVkZSAicGVyZmV0dG8vZXh0L2Jhc2Uvb3B0aW9u YWwuaCIKLSAjaW5jbHVkZSAicGVyZmV0dG8vZXh0L2Jhc2UvcGFnZWRfbWVtb3J5LmgiCmRpZmYg LS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtZmVkZXJhdGVkX2xl YXJuaW5nLWluY2x1ZGUucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0t ODgtZmVkZXJhdGVkX2xlYXJuaW5nLWluY2x1ZGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDNlYjE1MzdkODAxLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2Nocm9taXVt L3BhdGNoZXMvY2hyb21pdW0tODgtZmVkZXJhdGVkX2xlYXJuaW5nLWluY2x1ZGUucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi1Gcm9tIGJjYjIwYmFiZWU2MDJiNTVmZTRiZDAy NmUxM2E0MWQxMGI4OTYzMmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTdGVwaGFu IEhhcnRtYW5uIDxzdGhhMDlAZ29vZ2xlbWFpbC5jb20+Ci1EYXRlOiBTYXQsIDIxIE5vdiAyMDIw IDE1OjU1OjAyICswMDAwCi1TdWJqZWN0OiBbUEFUQ0hdIElXWVU6IGluY2x1ZGUgbGltaXRzIGZv ciBzdGQ6Om51bWVyaWNfbGltaXRzCi0KLUNoYW5nZS1JZDogSTFiNmIwN2ViYjM5N2EyOWM4NGQz ZWQ1MWFlNDE1MjNlM2VjYWI0OTcKLS0tLQotCi1kaWZmIC0tZ2l0IGEvY29tcG9uZW50cy9mZWRl cmF0ZWRfbGVhcm5pbmcvZmxvY19jb25zdGFudHMuY2MgYi9jb21wb25lbnRzL2ZlZGVyYXRlZF9s ZWFybmluZy9mbG9jX2NvbnN0YW50cy5jYwotaW5kZXggZGY2NmU1ZC4uMmViNTBmMSAxMDA2NDQK LS0tLSBjb21wb25lbnRzL2ZlZGVyYXRlZF9sZWFybmluZy9mbG9jX2NvbnN0YW50cy5jYwotKysr IGNvbXBvbmVudHMvZmVkZXJhdGVkX2xlYXJuaW5nL2Zsb2NfY29uc3RhbnRzLmNjCi1AQCAtNCw2 ICs0LDggQEAKLSAKLSAjaW5jbHVkZSAiY29tcG9uZW50cy9mZWRlcmF0ZWRfbGVhcm5pbmcvZmxv Y19jb25zdGFudHMuaCIKLSAKLSsjaW5jbHVkZSA8bGltaXRzPgotKwotIG5hbWVzcGFjZSBmZWRl cmF0ZWRfbGVhcm5pbmcgewotIAotIC8vIFRoaXMgaXMgb25seSBmb3IgZXhwZXJpbWVudGF0aW9u IGFuZCB3b24ndCBiZSBzZXJ2ZWQgdG8gd2Vic2l0ZXMuCmRpZmYgLS1naXQgYS9zcmNwa2dzL2No cm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtZ2xpYmMtMi4zMy5wYXRjaCBiL3NyY3BrZ3MvY2hy b21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1nbGliYy0yLjMzLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCA2NDMwNmQ1ZTQyOS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9j aHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LWdsaWJjLTIuMzMucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSwxNDQgKzAsMCBAQAotIyBQYXRjaCBtYWRlIGJ5IEtldmluIEtvZmxlciA8S2V2aW5A dGlnY2MudGljYWxjLm9yZz4KLSMgaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVn LmNnaT9pZD0xOTA0NjUyCi0KLWRpZmYgLXVwIGNocm9taXVtLTg4LjAuNDMyNC45Ni9zYW5kYm94 L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5LmNjLmZzdGF0Zml4IGNo cm9taXVtLTg4LjAuNDMyNC45Ni9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFz ZWxpbmVfcG9saWN5LmNjCi0tLS0gc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jh c2VsaW5lX3BvbGljeS5jYy5mc3RhdGZpeAkyMDIxLTAxLTI1IDEwOjExOjQ1LjQyNzQzNjM5OCAt MDUwMAotKysrIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9iYXNlbGluZV9wb2xp Y3kuY2MJMjAyMS0wMS0yNSAxMDoxMjo1MS4zMzc2OTkwMDMgLTA1MDAKLUBAIC0yNTcsNiArMjU3 LDE4IEBAIFJlc3VsdEV4cHIgRXZhbHVhdGVTeXNjYWxsSW1wbChpbnQgZnNfZGUKLSAgICAgcmV0 dXJuIFJlc3RyaWN0S2lsbFRhcmdldChjdXJyZW50X3BpZCwgc3lzbm8pOwotICAgfQotIAotKyNp ZiBkZWZpbmVkKF9fTlJfbmV3ZnN0YXRhdCkKLSsgIGlmIChzeXNubyA9PSBfX05SX25ld2ZzdGF0 YXQpIHsKLSsgICAgcmV0dXJuIFJld3JpdGVGc3RhdGF0U0lHU1lTKCk7Ci0rICB9Ci0rI2VuZGlm Ci0rCi0rI2lmIGRlZmluZWQoX19OUl9mc3RhdGF0NjQpCi0rICBpZiAoc3lzbm8gPT0gX19OUl9m c3RhdGF0NjQpIHsKLSsgICAgcmV0dXJuIFJld3JpdGVGc3RhdGF0U0lHU1lTKCk7Ci0rICB9Ci0r I2VuZGlmCi0rCi0gICBpZiAoU3lzY2FsbFNldHM6OklzRmlsZVN5c3RlbShzeXNubykgfHwKLSAg ICAgICBTeXNjYWxsU2V0czo6SXNDdXJyZW50RGlyZWN0b3J5KHN5c25vKSkgewotICAgICByZXR1 cm4gRXJyb3IoZnNfZGVuaWVkX2Vycm5vKTsKLWRpZmYgLXVwIGNocm9taXVtLTg4LjAuNDMyNC45 Ni9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc2lnc3lzX2hhbmRsZXJzLmNjLmZz dGF0Zml4IGNocm9taXVtLTg4LjAuNDMyNC45Ni9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhl bHBlcnMvc2lnc3lzX2hhbmRsZXJzLmNjCi0tLS0gc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1o ZWxwZXJzL3NpZ3N5c19oYW5kbGVycy5jYy5mc3RhdGZpeAkyMDIxLTAxLTI1IDEwOjEzOjEwLjE3 OTc3NDA4MSAtMDUwMAotKysrIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zaWdz eXNfaGFuZGxlcnMuY2MJMjAyMS0wMS0yNSAxMDoxNjoxOC43OTA1MjU3NDYgLTA1MDAKLUBAIC02 LDYgKzYsOCBAQAotIAotICNpbmNsdWRlICJzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBl cnMvc2lnc3lzX2hhbmRsZXJzLmgiCi0gCi0rI2luY2x1ZGUgPGVycm5vLmg+Ci0rI2luY2x1ZGUg PGZjbnRsLmg+Ci0gI2luY2x1ZGUgPHN0ZGRlZi5oPgotICNpbmNsdWRlIDxzdGRpbnQuaD4KLSAj aW5jbHVkZSA8c3RyaW5nLmg+Ci1AQCAtMzU1LDYgKzM1NywzNSBAQCBpbnRwdHJfdCBTSUdTWVNT Y2hlZEhhbmRsZXIoY29uc3Qgc3RydWN0Ci0gICByZXR1cm4gLUVOT1NZUzsKLSB9Ci0gCi0raW50 cHRyX3QgU0lHU1lTRnN0YXRhdEhhbmRsZXIoY29uc3Qgc3RydWN0IGFyY2hfc2VjY29tcF9kYXRh JiBhcmdzLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGF1eCkgewotKyAg c3dpdGNoIChhcmdzLm5yKSB7Ci0rI2lmIGRlZmluZWQoX19OUl9uZXdmc3RhdGF0KQotKyAgICBj YXNlIF9fTlJfbmV3ZnN0YXRhdDoKLSsjZW5kaWYKLSsjaWYgZGVmaW5lZChfX05SX2ZzdGF0YXQ2 NCkKLSsgICAgY2FzZSBfX05SX2ZzdGF0YXQ2NDoKLSsjZW5kaWYKLSsjaWYgZGVmaW5lZChfX05S X25ld2ZzdGF0YXQpIHx8IGRlZmluZWQoX19OUl9mc3RhdGF0NjQpCi0rICAgICAgaWYgKCpyZWlu dGVycHJldF9jYXN0PGNvbnN0IGNoYXIgKj4oYXJncy5hcmdzWzFdKSA9PSAnXDAnCi0rICAgICAg ICAgICYmIGFyZ3MuYXJnc1szXSA9PSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oQVRfRU1QVFlfUEFU SCkpIHsKLSsgICAgICAgIHJldHVybiBzYW5kYm94OjpzeXNfZnN0YXQ2NChzdGF0aWNfY2FzdDxp bnQ+KGFyZ3MuYXJnc1swXSksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmVpbnRlcnByZXRfY2FzdDxzdHJ1Y3Qgc3RhdDY0ICo+KGFyZ3MuYXJnc1syXSkpOwotKyAgICAg IH0gZWxzZSB7Ci0rICAgICAgICBlcnJubyA9IEVBQ0NFUzsKLSsgICAgICAgIHJldHVybiAtMTsK LSsgICAgICB9Ci0rICAgICAgYnJlYWs7Ci0rI2VuZGlmCi0rICB9Ci0rCi0rICBDcmFzaFNJR1NZ U19IYW5kbGVyKGFyZ3MsIGF1eCk7Ci0rCi0rICAvLyBTaG91bGQgbmV2ZXIgYmUgcmVhY2hlZC4K LSsgIFJBV19DSEVDSyhmYWxzZSk7Ci0rICByZXR1cm4gLUVOT1NZUzsKLSt9Ci0rCi0gYnBmX2Rz bDo6UmVzdWx0RXhwciBDcmFzaFNJR1NZUygpIHsKLSAgIHJldHVybiBicGZfZHNsOjpUcmFwKENy YXNoU0lHU1lTX0hhbmRsZXIsIE5VTEwpOwotIH0KLUBAIC0zODcsNiArNDE4LDEwIEBAIGJwZl9k c2w6OlJlc3VsdEV4cHIgUmV3cml0ZVNjaGVkU0lHU1lTKCkKLSAgIHJldHVybiBicGZfZHNsOjpU cmFwKFNJR1NZU1NjaGVkSGFuZGxlciwgTlVMTCk7Ci0gfQotIAotK2JwZl9kc2w6OlJlc3VsdEV4 cHIgUmV3cml0ZUZzdGF0YXRTSUdTWVMoKSB7Ci0rICByZXR1cm4gYnBmX2RzbDo6VHJhcChTSUdT WVNGc3RhdGF0SGFuZGxlciwgTlVMTCk7Ci0rfQotKwotIHZvaWQgQWxsb2NhdGVDcmFzaEtleXMo KSB7Ci0gI2lmICFkZWZpbmVkKE9TX05BQ0xfTk9OU0ZJKQotICAgaWYgKHNlY2NvbXBfY3Jhc2hf a2V5KQotZGlmZiAtdXAgY2hyb21pdW0tODguMC40MzI0Ljk2L3NhbmRib3gvbGludXgvc2VjY29t cC1icGYtaGVscGVycy9zaWdzeXNfaGFuZGxlcnMuaC5mc3RhdGZpeCBjaHJvbWl1bS04OC4wLjQz MjQuOTYvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3NpZ3N5c19oYW5kbGVycy5o Ci0tLS0gc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3NpZ3N5c19oYW5kbGVycy5o LmZzdGF0Zml4CTIwMjEtMDEtMjUgMTA6MTY6MzYuOTgyNTk4MjM2IC0wNTAwCi0rKysgc2FuZGJv eC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3NpZ3N5c19oYW5kbGVycy5oCTIwMjEtMDEtMjUg MTA6MTg6NDUuNzA1MTExMDI3IC0wNTAwCi1AQCAtNjIsNiArNjIsMTAgQEAgU0FOREJPWF9FWFBP UlQgaW50cHRyX3QgU0lHU1lTUHRyYWNlRmFpbAotIC8vIHNjaGVkX3NldHBhcmFtKCksIHNjaGVk X3NldHNjaGVkdWxlcigpCi0gU0FOREJPWF9FWFBPUlQgaW50cHRyX3QgU0lHU1lTU2NoZWRIYW5k bGVyKGNvbnN0IGFyY2hfc2VjY29tcF9kYXRhJiBhcmdzLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBhdXgpOwotKy8vIElmIHRoZSBmc3RhdGF0IHN5 c2NhbGwgaXMgYWN0dWFsbHkgYSBkaXNndWlzZWQgZnN0YXQsIGNhbGxzIHRoZSByZWd1bGFyIGZz dGF0Ci0rLy8gc3lzY2FsbCwgb3RoZXJ3aXNlLCBjcmFzaGVzIGluIHRoZSBzYW1lIHdheSBhcyBD cmFzaFNJR1NZU19IYW5kbGVyLgotK1NBTkRCT1hfRVhQT1JUIGludHB0cl90IFNJR1NZU0ZzdGF0 YXRIYW5kbGVyKGNvbnN0IHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSYgYXJncywgCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogYXV4KTsKLSAKLSAv LyBWYXJpYW50cyBvZiB0aGUgYWJvdmUgZnVuY3Rpb25zIGZvciB1c2Ugd2l0aCBicGZfZHNsLgot IFNBTkRCT1hfRVhQT1JUIGJwZl9kc2w6OlJlc3VsdEV4cHIgQ3Jhc2hTSUdTWVMoKTsKLUBAIC03 Miw2ICs3Niw3IEBAIFNBTkRCT1hfRVhQT1JUIGJwZl9kc2w6OlJlc3VsdEV4cHIgQ3Jhc2gKLSBT QU5EQk9YX0VYUE9SVCBicGZfZHNsOjpSZXN1bHRFeHByIENyYXNoU0lHU1lTRnV0ZXgoKTsKLSBT QU5EQk9YX0VYUE9SVCBicGZfZHNsOjpSZXN1bHRFeHByIENyYXNoU0lHU1lTUHRyYWNlKCk7Ci0g U0FOREJPWF9FWFBPUlQgYnBmX2RzbDo6UmVzdWx0RXhwciBSZXdyaXRlU2NoZWRTSUdTWVMoKTsK LStTQU5EQk9YX0VYUE9SVCBicGZfZHNsOjpSZXN1bHRFeHByIFJld3JpdGVGc3RhdGF0U0lHU1lT KCk7Ci0gCi0gLy8gQWxsb2NhdGVzIGEgY3Jhc2gga2V5IHNvIHRoYXQgU2VjY29tcCBpbmZvcm1h dGlvbiBjYW4gYmUgcmVjb3JkZWQuCi0gdm9pZCBBbGxvY2F0ZUNyYXNoS2V5cygpOwotZGlmZiAt dXAgY2hyb21pdW0tODguMC40MzI0Ljk2L3NhbmRib3gvbGludXgvc2VydmljZXMvc3lzY2FsbF93 cmFwcGVycy5jYy5mc3RhdGZpeCBjaHJvbWl1bS04OC4wLjQzMjQuOTYvc2FuZGJveC9saW51eC9z ZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmNjCi0tLS0gc2FuZGJveC9saW51eC9zZXJ2aWNlcy9z eXNjYWxsX3dyYXBwZXJzLmNjLmZzdGF0Zml4CTIwMjEtMDEtMjUgMTA6MTg6NTMuMzA3MTQxMzEx IC0wNTAwCi0rKysgc2FuZGJveC9saW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmNjCTIw MjEtMDEtMjUgMTA6MTk6NDYuOTgyMzU1MjkzIC0wNTAwCi1AQCAtMjYxLDQgKzI2MSwxMyBAQCBp bnQgc3lzX3NpZ2FjdGlvbihpbnQgc2lnbnVtLAotIAotICNlbmRpZiAgLy8gZGVmaW5lZChNRU1P UllfU0FOSVRJWkVSKQotIAotK1NBTkRCT1hfRVhQT1JUIGludCBzeXNfZnN0YXQ2NChpbnQgZmQs IHN0cnVjdCBzdGF0NjQgKmJ1ZikKLSt7Ci0rI2lmIGRlZmluZWQoX19OUl9mc3RhdDY0KQotKyAg ICByZXR1cm4gc3lzY2FsbChfX05SX2ZzdGF0NjQsIGZkLCBidWYpOwotKyNlbHNlCi0rICAgIHJl dHVybiBzeXNjYWxsKF9fTlJfZnN0YXQsIGZkLCBidWYpOwotKyNlbmRpZgotK30KLSsKLSB9ICAv LyBuYW1lc3BhY2Ugc2FuZGJveAotZGlmZiAtdXAgY2hyb21pdW0tODguMC40MzI0Ljk2L3NhbmRi b3gvbGludXgvc2VydmljZXMvc3lzY2FsbF93cmFwcGVycy5oLmZzdGF0Zml4IGNocm9taXVtLTg4 LjAuNDMyNC45Ni9zYW5kYm94L2xpbnV4L3NlcnZpY2VzL3N5c2NhbGxfd3JhcHBlcnMuaAotLS0t IHNhbmRib3gvbGludXgvc2VydmljZXMvc3lzY2FsbF93cmFwcGVycy5oLmZzdGF0Zml4CTIwMjEt MDEtMjUgMTA6MTk6NTMuMTE1Mzc5NzQxIC0wNTAwCi0rKysgc2FuZGJveC9saW51eC9zZXJ2aWNl cy9zeXNjYWxsX3dyYXBwZXJzLmgJMjAyMS0wMS0yNSAxMDoyMDo0NS40ODU1ODg0MjEgLTA1MDAK LUBAIC0xNyw2ICsxNyw3IEBAIHN0cnVjdCBzb2NrX2Zwcm9nOwotIHN0cnVjdCBybGltaXQ2NDsK LSBzdHJ1Y3QgY2FwX2hkcjsKLSBzdHJ1Y3QgY2FwX2RhdGE7Ci0rc3RydWN0IHN0YXQ2NDsKLSAK LSBuYW1lc3BhY2Ugc2FuZGJveCB7Ci0gCi1AQCAtODQsNiArODUsOSBAQCBTQU5EQk9YX0VYUE9S VCBpbnQgc3lzX3NpZ2FjdGlvbihpbnQgc2lnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3Qgc3RydWN0IHNpZ2FjdGlvbiogYWN0LAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCBzaWdhY3Rpb24qIG9sZGFjdCk7Ci0gCi0rLy8gUmVjZW50IGds aWJjIHJld3JpdGVzIGZzdGF0IHRvIGZzdGF0YXQuCi0rU0FOREJPWF9FWFBPUlQgaW50IHN5c19m c3RhdDY0KGludCBmZCwgc3RydWN0IHN0YXQ2NCAqYnVmKTsKLSsKLSB9ICAvLyBuYW1lc3BhY2Ug c2FuZGJveAotIAotICNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TRVJWSUNFU19TWVNDQUxMX1dS QVBQRVJTX0hfCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0t ODgtaWRlb2dyYXBoaWNTcGFjZUNoYXJhY3Rlci5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0 Y2hlcy9jaHJvbWl1bS04OC1pZGVvZ3JhcGhpY1NwYWNlQ2hhcmFjdGVyLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOGExMTQyM2IyZC4uMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LWlkZW9ncmFwaGljU3BhY2VDaGFyYWN0 ZXIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi1Gcm9tIDc1ZmY4ODJiYjVm MmZjZDE0NDMxZTY1ZmE2MzhhZTcyYmRiNDcwODYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1G cm9tOiBTdGVwaGFuIEhhcnRtYW5uIDxzdGhhMDlAZ29vZ2xlbWFpbC5jb20+Ci1EYXRlOiBTdW4s IDE1IE5vdiAyMDIwIDE0OjMxOjIzICswMDAwCi1TdWJqZWN0OiBbUEFUQ0hdIGZpeCBpZGVvZ3Jh cGhpY1NwYWNlQ2hhcmFjdGVyIGNvbnN0YW50IGZvciBzeXN0ZW0gaWN1Ci0KLWh0dHBzOi8vY2hy b21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8xNjg3NDExCi1y ZW5hbWVkIGlkZW9ncmFwaGljU3BhY2VDaGFyYWN0ZXIgdG8ga0lkZW9ncmFwaGljU3BhY2VDaGFy YWN0ZXIuCi0tLS0KLSB0aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS93dGYvdGV4 dC90ZXh0X2NvZGVjX2ljdS5jYyB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24o KyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRl cmVyL3BsYXRmb3JtL3d0Zi90ZXh0L3RleHRfY29kZWNfaWN1LmNjIGIvdGhpcmRfcGFydHkvYmxp bmsvcmVuZGVyZXIvcGxhdGZvcm0vd3RmL3RleHQvdGV4dF9jb2RlY19pY3UuY2MKLWluZGV4IGZi OGFiMDUuLjVkNGVhMTMgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxh dGZvcm0vd3RmL3RleHQvdGV4dF9jb2RlY19pY3UuY2MKLSsrKyB0aGlyZF9wYXJ0eS9ibGluay9y ZW5kZXJlci9wbGF0Zm9ybS93dGYvdGV4dC90ZXh0X2NvZGVjX2ljdS5jYwotQEAgLTQzMiw3ICs0 MzIsNyBAQCBTdHJpbmcgVGV4dENvZGVjSUNVOjpEZWNvZGUoY29uc3QgY2hhciogYnl0ZXMsCi0g ICAvLyBJQ1UgZGVjb2RlcyBpdCBhcyBVK0U1RTUuCi0gICBpZiAoIXN0cmNtcChlbmNvZGluZ18u R2V0TmFtZSgpLCAiR0JLIikpIHsKLSAgICAgaWYgKEVxdWFsSWdub3JpbmdBU0NJSUNhc2UoZW5j b2RpbmdfLkdldE5hbWUoKSwgImdiMTgwMzAiKSkKLS0gICAgICByZXN1bHRTdHJpbmcuUmVwbGFj ZSgweEU1RTUsIGlkZW9ncmFwaGljU3BhY2VDaGFyYWN0ZXIpOwotKyAgICAgIHJlc3VsdFN0cmlu Zy5SZXBsYWNlKDB4RTVFNSwga0lkZW9ncmFwaGljU3BhY2VDaGFyYWN0ZXIpOwotICAgICAvLyBN YWtlIEdCSyBjb21wbGlhbnQgdG8gdGhlIGVuY29kaW5nIHNwZWMgYW5kIGFsaWduIHdpdGggR0Ix ODAzMAotICAgICByZXN1bHRTdHJpbmcuUmVwbGFjZSgweDAxRjksIDB4RTdDOCk7Ci0gICAgIC8v IEZJWE1FOiBPbmNlIGh0dHBzOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/ aWQ9Mjg3NDAjYzMKLS0tIAotMi4yNi4yCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0v cGF0Y2hlcy9jaHJvbWl1bS04OC1pdHlwLWluY2x1ZGUucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVt L3BhdGNoZXMvY2hyb21pdW0tODgtaXR5cC1pbmNsdWRlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCBjNTRiNmZmZmQ1NC4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJv bWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LWl0eXAtaW5jbHVkZS5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDI1ICswLDAgQEAKLUZyb20gYmMzODNhNWRkN2ZhOGYyYjUzNWYyODgxNWZkNjkzMmZi YzBkMmE0NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXBoYW4gSGFydG1hbm4g PHN0aGEwOUBnb29nbGVtYWlsLmNvbT4KLURhdGU6IFdlZCwgMjggT2N0IDIwMjAgMTY6MDA6MzUg KzAwMDAKLVN1YmplY3Q6IFtQQVRDSF0gSVdZVTogaW5jbHVkZSBzdGRkZWYuaCBmb3Igc2l6ZV90 Ci0KLS0tLQotIHRoaXJkX3BhcnR5L2Rhd24vc3JjL2NvbW1vbi9pdHlwX2FycmF5LmggfCAyICsr Ci0gMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvZGF3bi9zcmMvY29tbW9uL2l0eXBfYXJyYXkuaCBiL3RoaXJkX3BhcnR5L2Rhd24vc3Jj L2NvbW1vbi9pdHlwX2FycmF5LmgKLWluZGV4IDQ4ZTA4MGYuLmM3ODQxOTggMTAwNjQ0Ci0tLS0g dGhpcmRfcGFydHkvZGF3bi9zcmMvY29tbW9uL2l0eXBfYXJyYXkuaAotKysrIHRoaXJkX3BhcnR5 L2Rhd24vc3JjL2NvbW1vbi9pdHlwX2FycmF5LmgKLUBAIC0yMSw2ICsyMSw4IEBACi0gI2luY2x1 ZGUgPGFycmF5PgotICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KLSAKLSsjaW5jbHVkZSA8c3RkZGVm Lmg+Ci0rCi0gbmFtZXNwYWNlIGl0eXAgewotIAotICAgICAvLyBpdHlwOjphcnJheSBpcyBhIGhl bHBlciBjbGFzcyB0aGF0IHdyYXBzIHN0ZDo6YXJyYXkgd2l0aCB0aGUgcmVzdHJpY3Rpb24gdGhh dAotLS0gCi0yLjI2LjIKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2No cm9taXVtLTg4LXZhYXBpLWF0dHJpYnV0ZS5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hl cy9jaHJvbWl1bS04OC12YWFwaS1hdHRyaWJ1dGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IGU0MTYxYWY0NWM3Li4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2Nocm9taXVt L3BhdGNoZXMvY2hyb21pdW0tODgtdmFhcGktYXR0cmlidXRlLnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsMzkgKzAsMCBAQAotRnJvbSA0ZjQ2MDQ4NzdmM2I2NjZhYzdhMzczYWU0NDNlM2MzNzk1 NDI0NTY5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3RlcGhhbiBIYXJ0bWFubiA8 c3RoYTA5QGdvb2dsZW1haWwuY29tPgotRGF0ZTogRnJpLCA2IE5vdiAyMDIwIDExOjE4OjQyICsw MDAwCi1TdWJqZWN0OiBbUEFUQ0hdIEdDQzogZml4IGF0dHJpYnV0ZSBvbiBmdW5jdGlvbiBkZWZp bml0aW9uCi0KLUdDQyBkb2VzIG5vdCBhY2NlcHQgYXR0cmlidXRlcyBhdCB0aGUgZW5kIGZvciBm dW5jdGlvbiBkZWZpbml0aW9ucy4KLVNvbHV0aW9uIGlzIHRvIG1vdmUgaXQgYmVmb3JlIGZ1bmN0 aW9uIG5hbWUuIE90aGVyd2lzZSBHQ0MgZmFpbHMgbGlrZQotdGhpczoKLQotLi4vLi4vYmFzZS9j b21waWxlcl9zcGVjaWZpYy5oOjk3OjI4OiBlcnJvcjogYXR0cmlidXRlcyBhcmUgbm90IGFsbG93 ZWQKLW9uIGEgZnVuY3Rpb24tZGVmaW5pdGlvbgotICAgOTcgfCAjZGVmaW5lIFdBUk5fVU5VU0VE X1JFU1VMVCBfX2F0dHJpYnV0ZV9fKCh3YXJuX3VudXNlZF9yZXN1bHQpKQotICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+Ci0JIC4uLy4uL21lZGlhL2dw dS92YWFwaS92YWFwaV93cmFwcGVyLmg6MzIyOjM2OiBub3RlOiBpbgotCSBleHBhbnNpb24gb2Yg bWFjcm8gJ1dBUk5fVU5VU0VEX1JFU1VMVCcKLQkgICAzMjIgfCAgICAgICAgICAgICAgICAgICAg IGNvbnN0IFQqIGRhdGEpIFdBUk5fVU5VU0VEX1JFU1VMVCB7Ci0JICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn4KLS0tLQotIG1lZGlh L2dwdS92YWFwaS92YWFwaV93cmFwcGVyLmggfCA0ICsrLS0KLSAxIGZpbGUgY2hhbmdlZCwgMiBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbWVkaWEvZ3B1L3Zh YXBpL3ZhYXBpX3dyYXBwZXIuaCBiL21lZGlhL2dwdS92YWFwaS92YWFwaV93cmFwcGVyLmgKLWlu ZGV4IGZkMWZkODIuLmRlZWRhMWYgMTAwNjQ0Ci0tLS0gbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3dy YXBwZXIuaAotKysrIG1lZGlhL2dwdS92YWFwaS92YWFwaV93cmFwcGVyLmgKLUBAIC0zMTgsOCAr MzE4LDggQEAgY2xhc3MgTUVESUFfR1BVX0VYUE9SVCBWYWFwaVdyYXBwZXIKLSAgIC8vIENvbnZl bmllbnQgdGVtcGxhdGl6ZWQgdmVyc2lvbiBvZiBTdWJtaXRCdWZmZXIoKSB3aGVyZSB8c2l6ZXwg aXMgZGVkdWNlZCB0bwotICAgLy8gYmUgdGhlIHNpemUgb2YgdGhlIHR5cGUgb2YgfCpkYXRhfC4K LSAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotLSAgYm9vbCBTdWJtaXRCdWZmZXIoVkFCdWZmZXJU eXBlIHZhX2J1ZmZlcl90eXBlLAotLSAgICAgICAgICAgICAgICAgICAgY29uc3QgVCogZGF0YSkg V0FSTl9VTlVTRURfUkVTVUxUIHsKLSsgIGJvb2wgV0FSTl9VTlVTRURfUkVTVUxUIFN1Ym1pdEJ1 ZmZlcihWQUJ1ZmZlclR5cGUgdmFfYnVmZmVyX3R5cGUsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgVCogZGF0YSkgewotICAgICByZXR1cm4gU3VibWl0QnVm ZmVyKHZhX2J1ZmZlcl90eXBlLCBzaXplb2YoVCksIGRhdGEpOwotICAgfQotICAgLy8gQmF0Y2gt dmVyc2lvbiBvZiBTdWJtaXRCdWZmZXIoKSwgd2hlcmUgdGhlIGxvY2sgZm9yIGFjY2Vzc2luZyBs aWJ2YSBpcwotLS0gCi0yLjI2LjIKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRj aGVzL2Nocm9taXVtLTg5LUNvbXBvc2l0b3JGcmFtZVJlcG9ydGVyLWRjaGVjay5wYXRjaCBiL3Ny Y3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OS1Db21wb3NpdG9yRnJhbWVSZXBvcnRl ci1kY2hlY2sucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQz MWFkN2ZlYzQ4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2No cm9taXVtLTg5LUNvbXBvc2l0b3JGcmFtZVJlcG9ydGVyLWRjaGVjay5wYXRjaApAQCAtMCwwICsx LDExIEBACistLS0gbmV0L3RoaXJkX3BhcnR5L3F1aWNoZS9zcmMvcXVpYy9jb3JlL3F1aWNfcGF0 aF92YWxpZGF0b3IuY2Mub3JpZwkyMDIxLTAzLTAyIDE4OjQ4OjA2LjAwMDAwMDAwMCArMDEwMAor KysrIG5ldC90aGlyZF9wYXJ0eS9xdWljaGUvc3JjL3F1aWMvY29yZS9xdWljX3BhdGhfdmFsaWRh dG9yLmNjCTIwMjEtMDMtMDMgMTM6MTc6NTYuNjI0MjgxNDc1ICswMTAwCitAQCAtNjgsNyArNjgs NyBAQAorIHZvaWQgUXVpY1BhdGhWYWxpZGF0b3I6OlN0YXJ0UGF0aFZhbGlkYXRpb24oCisgICAg IHN0ZDo6dW5pcXVlX3B0cjxRdWljUGF0aFZhbGlkYXRpb25Db250ZXh0PiBjb250ZXh0LAorICAg ICBzdGQ6OnVuaXF1ZV9wdHI8UmVzdWx0RGVsZWdhdGU+IHJlc3VsdF9kZWxlZ2F0ZSkgeworLSAg RENIRUNLX05FKG51bGxwdHIsIGNvbnRleHQpOworKyAgRENIRUNLKGNvbnRleHQpOworICAgUVVJ Q19ETE9HKElORk8pIDw8ICJTdGFydCB2YWxpZGF0aW5nIHBhdGggIiA8PCAqY29udGV4dAorICAg ICAgICAgICAgICAgICAgIDw8ICIgdmlhIHdyaXRlcjogIiA8PCBjb250ZXh0LT5Xcml0ZXJUb1Vz ZSgpOworICAgaWYgKHBhdGhfY29udGV4dF8gIT0gbnVsbHB0cikgewpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9jaHJvbWl1bS9wYXRjaGVzL2xpYmNfbWFsbG9jLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1 bS9wYXRjaGVzL2xpYmNfbWFsbG9jLnBhdGNoCmluZGV4IGVkYTExZWM4NjYzLi5mOGQ4ZDY2ZGEx OCAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2xpYmNfbWFsbG9jLnBhdGNo CisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9saWJjX21hbGxvYy5wYXRjaApAQCAtMSwy NiArMSwxMSBAQAotLS0tIGJhc2UvcHJvY2Vzcy9tZW1vcnlfbGludXguY2Mub3JpZwkyMDE3LTA5 LTE1IDA4OjQxOjQzLjAwMDAwMDAwMCArMDAwMAotKysrIGJhc2UvcHJvY2Vzcy9tZW1vcnlfbGlu dXguY2MJMjAxNy0wOS0xNSAwODo0NDozOS44MDQ5OTU0NjkgKzAwMDAKLUBAIC0yMSw2ICsyMSwx MiBAQAotICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS90Y21hbGxvYy9jaHJvbWl1bS9zcmMvZ3BlcmZ0 b29scy90Y21hbGxvYy5oIgotICNlbmRpZgotIAotKyNpZiBkZWZpbmVkKExJQkNfR0xJQkMpCi0r ZXh0ZXJuICJDIiB7Ci0rZXh0ZXJuIHZvaWQgKl9fbGliY19tYWxsb2Moc2l6ZV90IHNpemUpOwot K30KLSsjZW5kaWYKLSsKLSBuYW1lc3BhY2UgYmFzZSB7Ci0gCi0gc2l6ZV90IGdfb29tX3NpemUg PSAwVTsKLS0tLSBiYXNlL3Byb2Nlc3MvbWVtb3J5X2xpbnV4LmNjLm9yaWcJMjAyMC0wOC0zMCAx NDoxODozNS40MDExMzI1OTMgLTA0MDAKLSsrKyBiYXNlL3Byb2Nlc3MvbWVtb3J5X2xpbnV4LmNj CTIwMjAtMDgtMzAgMTQ6MTk6MDguMDMwMTk5MTg5IC0wNDAwCi1AQCAtMTQxLDcgKzE0MSw3IEBA CistLS0gYmFzZS9wcm9jZXNzL21lbW9yeV9saW51eC5jYy5vcmlnCTIwMjEtMDMtMDIgMTg6NDQ6 NTguMDAwMDAwMDAwICswMTAwCisrKysgYmFzZS9wcm9jZXNzL21lbW9yeV9saW51eC5jYwkyMDIx LTAzLTAzIDEyOjA1OjU3Ljk1MjI5Njk4NCArMDEwMAorQEAgLTE1MSw3ICsxNTEsNyBAQAogICAg ICAoIWRlZmluZWQoTElCQ19HTElCQykgJiYgIUJVSUxERkxBRyhVU0VfVENNQUxMT0MpKQogICAg KnJlc3VsdCA9IG1hbGxvYyhzaXplKTsKICAjZWxpZiBkZWZpbmVkKExJQkNfR0xJQkMpICYmICFC VUlMREZMQUcoVVNFX1RDTUFMTE9DKQogLSAgKnJlc3VsdCA9IF9fbGliY19tYWxsb2Moc2l6ZSk7 Ci0rICAqcmVzdWx0ID0gOjpfX2xpYmNfbWFsbG9jKHNpemUpOworKyAgKnJlc3VsdCA9IG1hbGxv YyhzaXplKTsKICAjZWxpZiBCVUlMREZMQUcoVVNFX1RDTUFMTE9DKQogICAgKnJlc3VsdCA9IHRj X21hbGxvY19za2lwX25ld19oYW5kbGVyKHNpemUpOwogICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9jaHJvbWl1bS9wYXRjaGVzL2xsdm0tcmVtb3ZlLXVuc3VwcG9ydGVkLWNvbXBpbGVyLXdh cm5pbmdzLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2xsdm0tcmVtb3ZlLXVuc3Vw cG9ydGVkLWNvbXBpbGVyLXdhcm5pbmdzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAzMDE2YjA2NTIxMi4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRj aGVzL2xsdm0tcmVtb3ZlLXVuc3VwcG9ydGVkLWNvbXBpbGVyLXdhcm5pbmdzLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotLS0tIGJ1aWxkL2NvbmZpZy9jb21waWxlci9CVUlM RC5nbi5vcmlnCTIwMjEtMDEtMjAgMDk6MDE6NDQuMzYyMTE0MzExIC0wNTAwCi0rKysgYnVpbGQv Y29uZmlnL2NvbXBpbGVyL0JVSUxELmduCTIwMjEtMDEtMjAgMDk6MDM6NDEuODgwMjMyMjQ4IC0w NTAwCi1AQCAtMTUzNCw5ICsxNTM0LDYgQEAKLSAKLSAgICAgICAgICAgIyBUT0RPKGh0dHBzOi8v Y3JidWcuY29tLzEwMjgxMTApOiBFdmFsdWF0ZSBhbmQgcG9zc2libGUgZW5hYmxlLgotICAgICAg ICAgICAiLVduby1kZXByZWNhdGVkLWNvcHkiLAotLQotLSAgICAgICAgICAjIFRPRE8oaHR0cHM6 Ly9jcmJ1Zy5jb20vMTA1MDI4MSk6IENsZWFuIHVwLCBlbmFibGUuCi0tICAgICAgICAgICItV25v LW5vbi1jLXR5cGVkZWYtZm9yLWxpbmthZ2UiLAotICAgICAgICAgXQotIAotICAgICAgICAgY2Zs YWdzX2MgKz0gWwotQEAgLTE1NDgsMTMgKzE1NDUsNiBAQAotICAgICAgICAgICAjIFRPRE8oaHR0 cHM6Ly9jcmJ1Zy5jb20vMTE0MzcwMCk6IENsZWFuIHVwIGFuZCByZS1lbmFibGUuCi0gICAgICAg ICAgIGNmbGFnc19vYmpjID0gWyAiLVduby1nbnUtZm9sZGluZy1jb25zdGFudCIgXQotICAgICAg ICAgfQotLQotLSAgICAgICAgaWYgKGVuYWJsZV93bWF4X3Rva2VucykgewotLSAgICAgICAgICBj ZmxhZ3MgKz0gWyAiLVdtYXgtdG9rZW5zIiBdCi0tICAgICAgICB9IGVsc2UgewotLSAgICAgICAg ICAjIFRPRE8oaHR0cHM6Ly9jcmJ1Zy5jb20vMTA0OTU2OSk6IFJlbW92ZSBhZnRlciBDbGFuZyA4 N2IyMzVkYi4KLS0gICAgICAgICAgY2ZsYWdzICs9IFsgIi1Xbm8tbWF4LXRva2VucyIgXQotLSAg ICAgICAgfQotICAgICAgIH0KLSAgICAgfQotICAgfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJv bWl1bS9wYXRjaGVzL211c2wtdjgtbW9ub3RvbmljLXB0aHJlYWQtY29udF90aW1lZHdhaXQucGF0 Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbXVzbC12OC1tb25vdG9uaWMtcHRocmVhZC1j b250X3RpbWVkd2FpdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzNhOGVh MzJjOWMuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9tdXNsLXY4 LW1vbm90b25pYy1wdGhyZWFkLWNvbnRfdGltZWR3YWl0LnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsMjQgKzAsMCBAQAotVXNlIG1vbm90b25pYyBjbG9jayBmb3IgcHRocmVhZF9jb25kX3RpbWVk d2FpdCB3aXRoIG11c2wgdG9vLgotCi1kaWZmIC0tZ2l0IGEvdjgvc3JjL2Jhc2UvcGxhdGZvcm0v Y29uZGl0aW9uLXZhcmlhYmxlLmNjIGIvdjgvc3JjL2Jhc2UvcGxhdGZvcm0vY29uZGl0aW9uLXZh cmlhYmxlLmNjCi1pbmRleCA1ZWE3MDgzLi5jMTMwMjdlIDEwMDY0NAotLS0tIC4vdjgvc3JjL2Jh c2UvcGxhdGZvcm0vY29uZGl0aW9uLXZhcmlhYmxlLmNjCi0rKysgLi92OC9zcmMvYmFzZS9wbGF0 Zm9ybS9jb25kaXRpb24tdmFyaWFibGUuY2MKLUBAIC0xNiw3ICsxNiw3IEBAIG5hbWVzcGFjZSBi YXNlIHsKLSAKLSBDb25kaXRpb25WYXJpYWJsZTo6Q29uZGl0aW9uVmFyaWFibGUoKSB7Ci0gI2lm IChWOF9PU19GUkVFQlNEIHx8IFY4X09TX05FVEJTRCB8fCBWOF9PU19PUEVOQlNEIHx8IFwKLS0g ICAgIChWOF9PU19MSU5VWCAmJiBWOF9MSUJDX0dMSUJDKSkKLSsgICAgIFY4X09TX0xJTlVYKQot ICAgLy8gT24gRnJlZS9OZXQvT3BlbkJTRCBhbmQgTGludXggd2l0aCBnbGliYyB3ZSBjYW4gY2hh bmdlIHRoZSB0aW1lCi0gICAvLyBzb3VyY2UgZm9yIHB0aHJlYWRfY29uZF90aW1lZHdhaXQoKSB0 byB1c2UgdGhlIG1vbm90b25pYyBjbG9jay4KLSAgIHB0aHJlYWRfY29uZGF0dHJfdCBhdHRyOwot QEAgLTkyLDcgKzkyLDcgQEAgYm9vbCBDb25kaXRpb25WYXJpYWJsZTo6V2FpdEZvcihNdXRleCog bXV0ZXgsIGNvbnN0IFRpbWVEZWx0YSYgcmVsX3RpbWUpIHsKLSAgICAgICAmbmF0aXZlX2hhbmRs ZV8sICZtdXRleC0+bmF0aXZlX2hhbmRsZSgpLCAmdHMpOwotICNlbHNlCi0gI2lmIChWOF9PU19G UkVFQlNEIHx8IFY4X09TX05FVEJTRCB8fCBWOF9PU19PUEVOQlNEIHx8IFwKLS0gICAgIChWOF9P U19MSU5VWCAmJiBWOF9MSUJDX0dMSUJDKSkKLSsgICAgIFY4X09TX0xJTlVYKQotICAgLy8gT24g RnJlZS9OZXQvT3BlbkJTRCBhbmQgTGludXggd2l0aCBnbGliYyB3ZSBjYW4gY2hhbmdlIHRoZSB0 aW1lCi0gICAvLyBzb3VyY2UgZm9yIHB0aHJlYWRfY29uZF90aW1lZHdhaXQoKSB0byB1c2UgdGhl IG1vbm90b25pYyBjbG9jay4KLSAgIHJlc3VsdCA9IGNsb2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RP TklDLCAmdHMpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL25vLWV4ZWNp bmZvLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL25vLWV4ZWNpbmZvLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzODY5OTdlOGVkMS4uMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL25vLWV4ZWNpbmZvLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsNzIgKzAsMCBAQAotLS0tIGJhc2UvZGVidWcvc3RhY2tfdHJhY2VfcG9zaXguY2Mu b3JpZwkyMDE5LTA1LTE0IDE0OjQ5OjQ0LjAwMDAwMDAwMCAtMDQwMAotKysrIGJhc2UvZGVidWcv c3RhY2tfdHJhY2VfcG9zaXguY2MJMjAxOS0wNy0wMiAxMDo0Mzo0My40OTAwNDUwMTMgLTA0MDAK LUBAIC0yNyw3ICsyNyw3IEBACi0gI2lmICFkZWZpbmVkKFVTRV9TWU1CT0xJWkUpCi0gI2luY2x1 ZGUgPGN4eGFiaS5oPgotICNlbmRpZgotLSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVm aW5lZChfQUlYKQotKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKLSAj aW5jbHVkZSA8ZXhlY2luZm8uaD4KLSAjZW5kaWYKLSAKLUBAIC04Niw3ICs4Niw3IEBACi0gICAv LyBOb3RlOiBjb2RlIGluIHRoaXMgZnVuY3Rpb24gaXMgTk9UIGFzeW5jLXNpZ25hbCBzYWZlIChz dGQ6OnN0cmluZyB1c2VzCi0gICAvLyBtYWxsb2MgaW50ZXJuYWxseSkuCi0gCi0tI2lmICFkZWZp bmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCi0rI2lmIGRlZmluZWQoX19HTElCQ19f KSAmJiAhZGVmaW5lZChfQUlYKQotICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBzZWFyY2hfZnJv bSA9IDA7Ci0gICB3aGlsZSAoc2VhcmNoX2Zyb20gPCB0ZXh0LT5zaXplKCkpIHsKLSAgICAgLy8g TG9vayBmb3IgdGhlIHN0YXJ0IG9mIGEgbWFuZ2xlZCBzeW1ib2wsIGZyb20gc2VhcmNoX2Zyb20u Ci1AQCAtMTIxLDcgKzEyMSw3IEBACi0gICAgICAgc2VhcmNoX2Zyb20gPSBtYW5nbGVkX3N0YXJ0 ICsgMjsKLSAgICAgfQotICAgfQotLSNlbmRpZiAgLy8gIWRlZmluZWQoX19VQ0xJQkNfXykgJiYg IWRlZmluZWQoX0FJWCkKLSsjZW5kaWYgIC8vIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5l ZChfQUlYKQotIH0KLSAjZW5kaWYgIC8vICFkZWZpbmVkKFVTRV9TWU1CT0xJWkUpCi0gCi1AQCAt MTMzLDcgKzEzMyw3IEBACi0gICB2aXJ0dWFsIH5CYWNrdHJhY2VPdXRwdXRIYW5kbGVyKCkgPSBk ZWZhdWx0OwotIH07Ci0gCi0tI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9B SVgpCi0rI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQotIHZvaWQgT3V0 cHV0UG9pbnRlcih2b2lkKiBwb2ludGVyLCBCYWNrdHJhY2VPdXRwdXRIYW5kbGVyKiBoYW5kbGVy KSB7Ci0gICAvLyBUaGlzIHNob3VsZCBiZSBtb3JlIHRoYW4gZW5vdWdoIHRvIHN0b3JlIGEgNjQt Yml0IG51bWJlciBpbiBoZXg6Ci0gICAvLyAxNiBoZXggZGlnaXRzICsgMSBmb3IgbnVsbC10ZXJt aW5hdG9yLgotQEAgLTIxNiw3ICsyMTYsNyBAQAotICAgfQotICNlbmRpZiAgLy8gZGVmaW5lZChV U0VfU1lNQk9MSVpFKQotIH0KLS0jZW5kaWYgIC8vICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFk ZWZpbmVkKF9BSVgpCi0rI2VuZGlmICAvLyBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQo X0FJWCkKLSAKLSB2b2lkIFByaW50VG9TdGRlcnIoY29uc3QgY2hhciogb3V0cHV0KSB7Ci0gICAv LyBOT1RFOiBUaGlzIGNvZGUgTVVTVCBiZSBhc3luYy1zaWduYWwgc2FmZSAoaXQncyB1c2VkIGJ5 IGluLXByb2Nlc3MKLUBAIC04MTIsNyArODEyLDcgQEAKLSAgIC8vIE5PVEU6IFRoaXMgY29kZSBN VVNUIGJlIGFzeW5jLXNpZ25hbCBzYWZlIChpdCdzIHVzZWQgYnkgaW4tcHJvY2VzcwotICAgLy8g c3RhY2sgZHVtcGluZyBzaWduYWwgaGFuZGxlcikuIE5PIG1hbGxvYyBvciBzdGRpbyBpcyBhbGxv d2VkIGhlcmUuCi0gCi0tI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgp Ci0rI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQotICAgLy8gVGhvdWdo IHRoZSBiYWNrdHJhY2UgQVBJIG1hbiBwYWdlIGRvZXMgbm90IGxpc3QgYW55IHBvc3NpYmxlIG5l Z2F0aXZlCi0gICAvLyByZXR1cm4gdmFsdWVzLCB3ZSB0YWtlIG5vIGNoYW5jZS4KLSAgIHJldHVy biBiYXNlOjpzYXR1cmF0ZWRfY2FzdDxzaXplX3Q+KGJhY2t0cmFjZSh0cmFjZSwgY291bnQpKTsK LUBAIC04MjUsMTMgKzgyNSwxMyBAQAotIC8vIE5PVEU6IFRoaXMgY29kZSBNVVNUIGJlIGFzeW5j LXNpZ25hbCBzYWZlIChpdCdzIHVzZWQgYnkgaW4tcHJvY2VzcwotIC8vIHN0YWNrIGR1bXBpbmcg c2lnbmFsIGhhbmRsZXIpLiBOTyBtYWxsb2Mgb3Igc3RkaW8gaXMgYWxsb3dlZCBoZXJlLgotIAot LSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQotKyNpZiBkZWZpbmVk KF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKLSAgIFByaW50QmFja3RyYWNlT3V0cHV0SGFu ZGxlciBoYW5kbGVyOwotICAgUHJvY2Vzc0JhY2t0cmFjZSh0cmFjZV8sIGNvdW50XywgcHJlZml4 X3N0cmluZywgJmhhbmRsZXIpOwotICNlbmRpZgotIH0KLSAKLS0jaWYgIWRlZmluZWQoX19VQ0xJ QkNfXykgJiYgIWRlZmluZWQoX0FJWCkKLSsjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZp bmVkKF9BSVgpCi0gdm9pZCBTdGFja1RyYWNlOjpPdXRwdXRUb1N0cmVhbVdpdGhQcmVmaXgoc3Rk Ojpvc3RyZWFtKiBvcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBjaGFyKiBwcmVmaXhfc3RyaW5nKSBjb25zdCB7Ci0gICBTdHJlYW1CYWNrdHJhY2VP dXRwdXRIYW5kbGVyIGhhbmRsZXIob3MpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9w YXRjaGVzL25vLWdldGNvbnRleHQucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbm8t Z2V0Y29udGV4dC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjJhNDk4NzM0 YzkuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9uby1nZXRjb250 ZXh0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotLS0tIHRoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFu ZGxlci5jYy5vcmlnCTIwMTUtMTItMDYgMDk6NTk6NTUuNTU0NTM2NjQ2ICswMTAwCi0rKysgdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2Vw dGlvbl9oYW5kbGVyLmNjCTIwMTUtMTItMDYgMTA6MDE6MTYuODE4MjM4MDM1ICswMTAwCi1AQCAt NDc3LDcgKzQ3Nyw5IEBAIGJvb2wgRXhjZXB0aW9uSGFuZGxlcjo6U2ltdWxhdGVTaWduYWxEZWwK LSAgIHNpZ2luZm8uc2lfY29kZSA9IFNJX1VTRVI7Ci0gICBzaWdpbmZvLnNpX3BpZCA9IGdldHBp ZCgpOwotICAgdWNvbnRleHRfdCBjb250ZXh0OwotKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKLSAg IGdldGNvbnRleHQoJmNvbnRleHQpOwotKyNlbmRpZgotICAgcmV0dXJuIEhhbmRsZVNpZ25hbChz aWcsICZzaWdpbmZvLCAmY29udGV4dCk7Ci0gfQotIAotQEAgLTY0Nyw5ICs2NDksMTQgQEAgYm9v bCBFeGNlcHRpb25IYW5kbGVyOjpXcml0ZU1pbmlkdW1wKCkgewotICAgc3lzX3ByY3RsKFBSX1NF VF9EVU1QQUJMRSwgMSwgMCwgMCwgMCk7Ci0gCi0gICBDcmFzaENvbnRleHQgY29udGV4dDsKLSsK LSsjaWYgZGVmaW5lZChfX0dMSUJDX18pCi0gICBpbnQgZ2V0Y29udGV4dF9yZXN1bHQgPSBnZXRj b250ZXh0KCZjb250ZXh0LmNvbnRleHQpOwotICAgaWYgKGdldGNvbnRleHRfcmVzdWx0KQotICAg ICByZXR1cm4gZmFsc2U7Ci0rI2Vsc2UKLSsgIHJldHVybiBmYWxzZTsKLSsjZW5kaWYKLSAKLSAj aWYgZGVmaW5lZChfX2kzODZfXykKLSAgIC8vIEluIENQVUZpbGxGcm9tVUNvbnRleHQgaW4gbWlu aWR1bXB3cml0ZXIuY2MgdGhlIHN0YWNrIHBvaW50ZXIgaXMgcmV0cmlldmVkCmRpZmYgLS1naXQg YS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbm8tc3RkLXRpbWUucGF0Y2ggYi9zcmNwa2dzL2No cm9taXVtL3BhdGNoZXMvbm8tc3RkLXRpbWUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLjdmMzVjMjJmMDgxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9j aHJvbWl1bS9wYXRjaGVzL25vLXN0ZC10aW1lLnBhdGNoCkBAIC0wLDAgKzEsMTEgQEAKKy0tLSB1 aS9hY2Nlc3NpYmlsaXR5L2F4X3RyZWVfc2VyaWFsaXplci5oLm9yaWcJMjAyMS0wMy0wMiAxODo0 NjowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyB1aS9hY2Nlc3NpYmlsaXR5L2F4X3RyZWVfc2VyaWFs aXplci5oCTIwMjEtMDMtMDMgMTQ6MDM6NDMuOTI2MTYwMzMzICswMTAwCitAQCAtNzQ2LDcgKzc0 Niw3IEBACisgI2VuZGlmICAvLyBkZWZpbmVkKEFYX0ZBSUxfRkFTVF9CVUlMRCkKKyAgICAgICAg IHN0YXRpYyBib29sIGhhc19zZW50X2R1cGVfaWRfZXJyID0gZmFsc2U7CisgICAgICAgICBpZiAo IWhhc19zZW50X2R1cGVfaWRfZXJyKSB7CistICAgICAgICAgIHN0ZDo6c3JhbmQoc3RkOjp0aW1l KG51bGxwdHIpKTsgIC8vIHVzZSBjdXJyZW50IHRpbWUgYXMgc2VlZC4KKysgICAgICAgICAgc3Rk OjpzcmFuZCh0aW1lKG51bGxwdHIpKTsgIC8vIHVzZSBjdXJyZW50IHRpbWUgYXMgc2VlZC4KKyAg ICAgICAgICAgaWYgKHN0ZDo6cmFuZCgpICUgNTAgPT0gMCkgeyAgICAgLy8gUm91Z2hseSAyJSBv ZiB0aGUgdGltZS4KKyAgICAgICAgICAgICBiYXNlOjpkZWJ1Zzo6RHVtcFdpdGhvdXRDcmFzaGlu ZygpOworICAgICAgICAgICAgIGhhc19zZW50X2R1cGVfaWRfZXJyID0gdHJ1ZTsgIC8vIE9ubHkg c2VuZCBvbmNlLgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3NhbmRib3gt bWVtYmFycmllci5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9zYW5kYm94LW1lbWJh cnJpZXIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEzMWE5ZjZhNWU5Li4w MDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvc2FuZGJveC1tZW1iYXJy aWVyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotLS0tIHNhbmRib3gvbGlu dXgvc3lzdGVtX2hlYWRlcnMvYXJtNjRfbGludXhfc3lzY2FsbHMuaAotKysrIHNhbmRib3gvbGlu dXgvc3lzdGVtX2hlYWRlcnMvYXJtNjRfbGludXhfc3lzY2FsbHMuaAotQEAgLTEwNjMsNCArMTA2 Myw4IEBACi0gI2RlZmluZSBfX05SX21lbWZkX2NyZWF0ZSAyNzkKLSAjZW5kaWYKLSAKLSsjaWYg IWRlZmluZWQoX19OUl9tZW1iYXJyaWVyKQotKyNkZWZpbmUgX19OUl9tZW1iYXJyaWVyIDI4Mwot KyNlbmRpZgotKwotICNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19BUk02 NF9MSU5VWF9TWVNDQUxMU19IXwotCi0tLS0gc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9h cm1fbGludXhfc3lzY2FsbHMuaAotKysrIHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvYXJt X2xpbnV4X3N5c2NhbGxzLmgKLUBAIC0xMzg1LDYgKzEzODUsMTAgQEAKLSAjZGVmaW5lIF9fTlJf bWVtZmRfY3JlYXRlIChfX05SX1NZU0NBTExfQkFTRSszODUpCi0gI2VuZGlmCi0gCi0rI2lmICFk ZWZpbmVkKF9fTlJfbWVtYmFycmllcikKLSsjZGVmaW5lIF9fTlJfbWVtYmFycmllciAoX19OUl9T WVNDQUxMX0JBU0UrMzg5KQotKyNlbmRpZgotKwotIC8vIEFSTSBwcml2YXRlIHN5c2NhbGxzLgot ICNpZiAhZGVmaW5lZChfX0FSTV9OUl9CQVNFKQotICNkZWZpbmUgX19BUk1fTlJfQkFTRSAoX19O Ul9TWVNDQUxMX0JBU0UgKyAweEYwMDAwKQotCi0tLS0gc2FuZGJveC9saW51eC9zeXN0ZW1faGVh ZGVycy94ODZfMzJfbGludXhfc3lzY2FsbHMuaAotKysrIHNhbmRib3gvbGludXgvc3lzdGVtX2hl YWRlcnMveDg2XzMyX2xpbnV4X3N5c2NhbGxzLmgKLUBAIC0xNDIyLDUgKzE0MjIsOSBAQAotICNk ZWZpbmUgX19OUl9tZW1mZF9jcmVhdGUgMzU2Ci0gI2VuZGlmCi0gCi0rI2lmICFkZWZpbmVkKF9f TlJfbWVtYmFycmllcikKLSsjZGVmaW5lIF9fTlJfbWVtYmFycmllciAzNzUKLSsjZW5kaWYKLSsK LSAjZW5kaWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfWDg2XzMyX0xJTlVYX1NZ U0NBTExTX0hfCi0gCi0tLS0gc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy94ODZfNjRfbGlu dXhfc3lzY2FsbHMuaAotKysrIHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMveDg2XzY0X2xp bnV4X3N5c2NhbGxzLmgKLUBAIC0xMjkwLDUgKzEyOTAsOSBAQAotICNkZWZpbmUgX19OUl9tZW1m ZF9jcmVhdGUgMzE5Ci0gI2VuZGlmCi0gCi0rI2lmICFkZWZpbmVkKF9fTlJfbWVtYmFycmllcikK LSsjZGVmaW5lIF9fTlJfbWVtYmFycmllciAzMjQKLSsjZW5kaWYKLSsKLSAjZW5kaWYgIC8vIFNB TkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfWDg2XzY0X0xJTlVYX1NZU0NBTExTX0hfCi0gCi0t LS0gc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYwotKysr IHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKLUBAIC0z NzAsNiArMzcwLDcgQEAKLSAgIHN3aXRjaCAoc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX2V4aXQ6 Ci0gICAgIGNhc2UgX19OUl9leGl0X2dyb3VwOgotKyAgICBjYXNlIF9fTlJfbWVtYmFycmllcjoK LSAgICAgY2FzZSBfX05SX3dhaXQ0OgotICAgICBjYXNlIF9fTlJfd2FpdGlkOgotICNpZiBkZWZp bmVkKF9faTM4Nl9fKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3h4eC1w cGM2NGxlLXN1cHBvcnQucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMveHh4LXBwYzY0 bGUtc3VwcG9ydC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODA1NzU1YzIx MjUuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy94eHgtcHBjNjRs ZS1zdXBwb3J0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzY1NiArMCwwIEBACi1jb21taXQg ZTc5NDRjMTYyY2ExM2IyYzMwYjE4MGMwNmY5MTdmNDU2NDNiOGNjYQotQXV0aG9yOiBxNjYgPGRh bmllbEBvY3RhZm9yZ2Uub3JnPgotRGF0ZTogICBUdWUgQXVnIDQgMTk6NTc6NDggMjAyMCArMDIw MAotCi0gICAgcHBjNjRsZSBzdXBwb3J0Ci0KLWRpZmYgLS1naXQgYnVpbGQvZG93bmxvYWRfbmFj bF90b29sY2hhaW5zLnB5IGJ1aWxkL2Rvd25sb2FkX25hY2xfdG9vbGNoYWlucy5weQotaW5kZXgg Mjg2YTkyYTI3Li5lYzM2YTg1ZDMgMTAwNzU1Ci0tLS0gYnVpbGQvZG93bmxvYWRfbmFjbF90b29s Y2hhaW5zLnB5Ci0rKysgYnVpbGQvZG93bmxvYWRfbmFjbF90b29sY2hhaW5zLnB5Ci1AQCAtMTMs NiArMTMsMTAgQEAgaW1wb3J0IHN5cwotIAotIAotIGRlZiBNYWluKGFyZ3MpOgotKyAgIyBJZiBg ZGlzYWJsZV9uYWNsPTFgIGlzIGluIEdZUF9ERUZJTkVTLCBleGl0Ci0rICBpZiAnZGlzYWJsZV9u YWNsPTEnIGluIG9zLmVudmlyb24uZ2V0KCdHWVBfREVGSU5FUycsICcnKToKLSsgICAgcmV0dXJu IDAKLSsKLSAgIHNjcmlwdF9kaXIgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5hYnNwYXRoKF9f ZmlsZV9fKSkKLSAgIHNyY19kaXIgPSBvcy5wYXRoLmRpcm5hbWUoc2NyaXB0X2RpcikKLSAgIG5h Y2xfZGlyID0gb3MucGF0aC5qb2luKHNyY19kaXIsICduYXRpdmVfY2xpZW50JykKLWRpZmYgLS1n aXQgY2hyb21lL2luc3RhbGxlci9saW51eC9CVUlMRC5nbiBjaHJvbWUvaW5zdGFsbGVyL2xpbnV4 L0JVSUxELmduCi1pbmRleCBiMTAxYjBjYjIuLjlmZDVhNzYxNyAxMDA2NDQKLS0tLSBjaHJvbWUv aW5zdGFsbGVyL2xpbnV4L0JVSUxELmduCi0rKysgY2hyb21lL2luc3RhbGxlci9saW51eC9CVUlM RC5nbgotQEAgLTkyLDggKzkyLDYgQEAgcGFja2FnaW5nX2ZpbGVzID0gcGFja2FnaW5nX2ZpbGVz X2JpbmFyaWVzICsgWwotICAgICAgICAgICAgICAgICAgICAgIiRyb290X291dF9kaXIveGRnLW1p bWUiLAotICAgICAgICAgICAgICAgICAgICAgIiRyb290X291dF9kaXIveGRnLXNldHRpbmdzIiwK LSAgICAgICAgICAgICAgICAgICAgICIkcm9vdF9vdXRfZGlyL2xvY2FsZXMvZW4tVVMucGFrIiwK LS0gICAgICAgICAgICAgICAgICAgICIkcm9vdF9vdXRfZGlyL01FSVByZWxvYWQvbWFuaWZlc3Qu anNvbiIsCi0tICAgICAgICAgICAgICAgICAgICAiJHJvb3Rfb3V0X2Rpci9NRUlQcmVsb2FkL3By ZWxvYWRlZF9kYXRhLnBiIiwKLSAgICAgICAgICAgICAgICAgICBdCi0gCi0gYWN0aW9uX2ZvcmVh Y2goImNhbGN1bGF0ZV9kZWJfZGVwZW5kZW5jaWVzIikgewotQEAgLTMyOSw3ICszMjcsNiBAQCBn cm91cCgiaW5zdGFsbGVyX2RlcHMiKSB7Ci0gICAgICI6dGhlbWVfZmlsZXMiLAotICAgICAiLy9j aHJvbWUiLAotICAgICAiLy9jaHJvbWU6cGFja2VkX3Jlc291cmNlcyIsCi0tICAgICIvL2Nocm9t ZS9icm93c2VyL3Jlc291cmNlcy9tZWRpYS9tZWlfcHJlbG9hZDpjb21wb25lbnQiLAotICAgICAi Ly9zYW5kYm94L2xpbnV4OmNocm9tZV9zYW5kYm94IiwKLSAgICAgIi8vdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvaGFuZGxlcjpjcmFzaHBhZF9oYW5kbGVyIiwKLSAgIF0KLWRpZmYgLS1n aXQgc2FuZGJveC9mZWF0dXJlcy5nbmkgc2FuZGJveC9mZWF0dXJlcy5nbmkKLWluZGV4IDA5Mjgw ZDM1Zi4uNDI1MTQxNTdmIDEwMDY0NAotLS0tIHNhbmRib3gvZmVhdHVyZXMuZ25pCi0rKysgc2Fu ZGJveC9mZWF0dXJlcy5nbmkKLUBAIC0xMSw2ICsxMSw3IEBAIGltcG9ydCgiLy9idWlsZC9jb25m aWcvbmFjbC9jb25maWcuZ25pIikKLSB1c2Vfc2VjY29tcF9icGYgPSAoaXNfbGludXggfHwgaXNf YW5kcm9pZCkgJiYKLSAgICAgICAgICAgICAgICAgICAoY3VycmVudF9jcHUgPT0gIng4NiIgfHwg Y3VycmVudF9jcHUgPT0gIng2NCIgfHwKLSAgICAgICAgICAgICAgICAgICAgY3VycmVudF9jcHUg PT0gImFybSIgfHwgY3VycmVudF9jcHUgPT0gImFybTY0IiB8fAotLSAgICAgICAgICAgICAgICAg ICBjdXJyZW50X2NwdSA9PSAibWlwc2VsIiB8fCBjdXJyZW50X2NwdSA9PSAibWlwczY0ZWwiKQot KyAgICAgICAgICAgICAgICAgICBjdXJyZW50X2NwdSA9PSAibWlwc2VsIiB8fCBjdXJyZW50X2Nw dSA9PSAibWlwczY0ZWwiIHx8Ci0rICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfY3B1ID09ICJw cGM2NCIpCi0gCi0gdXNlX3NlY2NvbXBfYnBmID0gdXNlX3NlY2NvbXBfYnBmIHx8IGlzX25hY2xf bm9uc2ZpCi1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvQlVJTEQuZ24gc2FuZGJveC9saW51eC9C VUlMRC5nbgotaW5kZXggYzI3MzUxZjlhLi45MTQxZTEyMzkgMTAwNjQ0Ci0tLS0gc2FuZGJveC9s aW51eC9CVUlMRC5nbgotKysrIHNhbmRib3gvbGludXgvQlVJTEQuZ24KLUBAIC00MDcsNiArNDA3 LDggQEAgY29tcG9uZW50KCJzYW5kYm94X3NlcnZpY2VzIikgewotIAotIHNvdXJjZV9zZXQoInNh bmRib3hfc2VydmljZXNfaGVhZGVycyIpIHsKLSAgIHNvdXJjZXMgPSBbCi0rICAgICJzeXN0ZW1f aGVhZGVycy9wcGM2NF9saW51eF9zeXNjYWxscy5oIiwKLSsgICAgInN5c3RlbV9oZWFkZXJzL3Bw YzY0X2xpbnV4X3Vjb250ZXh0LmgiLAotICAgICAic3lzdGVtX2hlYWRlcnMvYXJtNjRfbGludXhf c3lzY2FsbHMuaCIsCi0gICAgICJzeXN0ZW1faGVhZGVycy9hcm1fbGludXhfc3lzY2FsbHMuaCIs Ci0gICAgICJzeXN0ZW1faGVhZGVycy9hcm1fbGludXhfdWNvbnRleHQuaCIsCi1kaWZmIC0tZ2l0 IHNhbmRib3gvbGludXgvYnBmX2RzbC9saW51eF9zeXNjYWxsX3Jhbmdlcy5oIHNhbmRib3gvbGlu dXgvYnBmX2RzbC9saW51eF9zeXNjYWxsX3Jhbmdlcy5oCi1pbmRleCAzMTM1MTFmMjIuLjBjYTNh MzI2ZiAxMDA2NDQKLS0tLSBzYW5kYm94L2xpbnV4L2JwZl9kc2wvbGludXhfc3lzY2FsbF9yYW5n ZXMuaAotKysrIHNhbmRib3gvbGludXgvYnBmX2RzbC9saW51eF9zeXNjYWxsX3Jhbmdlcy5oCi1A QCAtNTYsNiArNTYsMTMgQEAKLSAjZGVmaW5lIE1BWF9QVUJMSUNfU1lTQ0FMTCBfX05SX3N5c2Nh bGxzCi0gI2RlZmluZSBNQVhfU1lTQ0FMTCBNQVhfUFVCTElDX1NZU0NBTEwKLSAKLSsjZWxpZiBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rCi0rI2luY2x1ZGUgPGFzbS91bmlzdGQuaD4KLSsjZGVm aW5lIE1JTl9TWVNDQUxMIDB1Ci0rI2RlZmluZSBNQVhfUFVCTElDX1NZU0NBTEwgMzg2dQotKyNk ZWZpbmUgTUFYX1NZU0NBTEwgTUFYX1BVQkxJQ19TWVNDQUxMCi0rCi0gI2Vsc2UKLSAjZXJyb3Ig IlVuc3VwcG9ydGVkIGFyY2hpdGVjdHVyZSIKLSAjZW5kaWYKLWRpZmYgLS1naXQgc2FuZGJveC9s aW51eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9zLmggc2FuZGJveC9saW51eC9icGZfZHNsL3NlY2Nv bXBfbWFjcm9zLmgKLWluZGV4IDFhNDA3Yjk1Mi4uYTZhZWM1NDRlIDEwMDY0NAotLS0tIHNhbmRi b3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oCi0rKysgc2FuZGJveC9saW51eC9icGZf ZHNsL3NlY2NvbXBfbWFjcm9zLmgKLUBAIC0xNiw2ICsxNiw5IEBACi0gI2lmIGRlZmluZWQoX19t aXBzX18pCi0gLy8gc3lzL3VzZXIuaCBpbiBlZ2xpYmMgbWlzc2VzIHNpemVfdCBkZWZpbml0aW9u Ci0gI2luY2x1ZGUgPHN0ZGRlZi5oPgotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsv LyBNYW51YWxseSBkZWZpbmUgZ3JlZ190IG9uIHBwYzY0Ci0rdHlwZWRlZiB1bnNpZ25lZCBsb25n IGxvbmcgZ3JlZ190OwotICNlbmRpZgotICNlbmRpZgotIAotQEAgLTM0Niw2ICszNDksNTEgQEAg c3RydWN0IHJlZ3Nfc3RydWN0IHsKLSAjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTQoX3JlZ3MpIChf cmVncykucmVnc1szXQotICNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNNShfcmVncykgKF9yZWdzKS5y ZWdzWzRdCi0gI2RlZmluZSBTRUNDT01QX1BUX1BBUk02KF9yZWdzKSAoX3JlZ3MpLnJlZ3NbNV0K LSsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rI2luY2x1ZGUgPGFzbS9wdHJhY2Uu aD4KLSsKLSt0eXBlZGVmIHN0cnVjdCBwdF9yZWdzIHJlZ3Nfc3RydWN0OwotKwotKyNpZmRlZiBB UkNIX0NQVV9MSVRUTEVfRU5ESUFOCi0rI2RlZmluZSBTRUNDT01QX0FSQ0ggQVVESVRfQVJDSF9Q UEM2NExFCi0rI2Vsc2UKLSsjZGVmaW5lIFNFQ0NPTVBfQVJDSCBBVURJVF9BUkNIX1BQQzY0Ci0r I2VuZGlmCi0rCi0rI2RlZmluZSBTRUNDT01QX1JFRyhfY3R4LCBfcmVnKSAoKF9jdHgpLT51Y19t Y29udGV4dC5yZWdzLT5ncHJbX3JlZ10pCi0rCi0rI2RlZmluZSBTRUNDT01QX1JFU1VMVChfY3R4 KSBTRUNDT01QX1JFRyhfY3R4LCAzKQotKyNkZWZpbmUgU0VDQ09NUF9TWVNDQUxMKF9jdHgpIFNF Q0NPTVBfUkVHKF9jdHgsIDApCi0rI2RlZmluZSBTRUNDT01QX0lQKF9jdHgpIChfY3R4KS0+dWNf bWNvbnRleHQucmVncy0+bmlwCi0rI2RlZmluZSBTRUNDT01QX1BBUk0xKF9jdHgpIFNFQ0NPTVBf UkVHKF9jdHgsIDMpCi0rI2RlZmluZSBTRUNDT01QX1BBUk0yKF9jdHgpIFNFQ0NPTVBfUkVHKF9j dHgsIDQpCi0rI2RlZmluZSBTRUNDT01QX1BBUk0zKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDUp Ci0rI2RlZmluZSBTRUNDT01QX1BBUk00KF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDYpCi0rI2Rl ZmluZSBTRUNDT01QX1BBUk01KF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDcpCi0rI2RlZmluZSBT RUNDT01QX1BBUk02KF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDgpCi0rCi0rI2RlZmluZSBTRUND T01QX05SX0lEWCAob2Zmc2V0b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBucikpCi0rI2Rl ZmluZSBTRUNDT01QX0FSQ0hfSURYIChvZmZzZXRvZihzdHJ1Y3QgYXJjaF9zZWNjb21wX2RhdGEs IGFyY2gpKQotKyNkZWZpbmUgU0VDQ09NUF9JUF9NU0JfSURYIFwKLSsgIChvZmZzZXRvZihzdHJ1 Y3QgYXJjaF9zZWNjb21wX2RhdGEsIGluc3RydWN0aW9uX3BvaW50ZXIpICsgNCkKLSsjZGVmaW5l IFNFQ0NPTVBfSVBfTFNCX0lEWCBcCi0rICAob2Zmc2V0b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9k YXRhLCBpbnN0cnVjdGlvbl9wb2ludGVyKSArIDApCi0rI2RlZmluZSBTRUNDT01QX0FSR19NU0Jf SURYKG5yKSBcCi0rICAob2Zmc2V0b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBhcmdzKSAr IDggKiAobnIpICsgNCkKLSsjZGVmaW5lIFNFQ0NPTVBfQVJHX0xTQl9JRFgobnIpIFwKLSsgIChv ZmZzZXRvZihzdHJ1Y3QgYXJjaF9zZWNjb21wX2RhdGEsIGFyZ3MpICsgOCAqIChucikgKyAwKQot KwotKyNkZWZpbmUgU0VDQ09NUF9QVF9SRVNVTFQoX3JlZ3MpIChfcmVncykuZ3ByWzNdCi0rI2Rl ZmluZSBTRUNDT01QX1BUX1NZU0NBTEwoX3JlZ3MpIChfcmVncykuZ3ByWzBdCi0rI2RlZmluZSBT RUNDT01QX1BUX0lQKF9yZWdzKSAoX3JlZ3MpLm5pcAotKyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJN MShfcmVncykgKF9yZWdzKS5ncHJbM10KLSsjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTIoX3JlZ3Mp IChfcmVncykuZ3ByWzRdCi0rI2RlZmluZSBTRUNDT01QX1BUX1BBUk0zKF9yZWdzKSAoX3JlZ3Mp Lmdwcls1XQotKyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNNChfcmVncykgKF9yZWdzKS5ncHJbNl0K LSsjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTUoX3JlZ3MpIChfcmVncykuZ3ByWzddCi0rI2RlZmlu ZSBTRUNDT01QX1BUX1BBUk02KF9yZWdzKSAoX3JlZ3MpLmdwcls4XQotKwotICNlbHNlCi0gI2Vy cm9yIFVuc3VwcG9ydGVkIHRhcmdldCBwbGF0Zm9ybQotIAotZGlmZiAtLWdpdCBzYW5kYm94L2xp bnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5LmNjIHNhbmRib3gvbGludXgv c2VjY29tcC1icGYtaGVscGVycy9iYXNlbGluZV9wb2xpY3kuY2MKLWluZGV4IGE2ZDJjMGRmYi4u MzdmZGMxNzlhIDEwMDY0NAotLS0tIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9i YXNlbGluZV9wb2xpY3kuY2MKLSsrKyBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMv YmFzZWxpbmVfcG9saWN5LmNjCi1AQCAtODgsNyArODgsOCBAQCBib29sIElzQmFzZWxpbmVQb2xp Y3lXYXRjaGVkKGludCBzeXNubykgewotICAgICAgICAgIFN5c2NhbGxTZXRzOjpJc1ByY3RsKHN5 c25vKSB8fAotICAgICAgICAgIFN5c2NhbGxTZXRzOjpJc1Byb2Nlc3NHcm91cE9yU2Vzc2lvbihz eXNubykgfHwKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNI X0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRl ZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykp IHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICAgICAgIFN5c2NhbGxTZXRz OjpJc1NvY2tldENhbGwoc3lzbm8pIHx8Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19hcm1fXykK LUBAIC0yMTAsNyArMjExLDcgQEAgUmVzdWx0RXhwciBFdmFsdWF0ZVN5c2NhbGxJbXBsKGludCBm c19kZW5pZWRfZXJybm8sCi0gICB9Ci0gCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmlu ZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotLSAgICBkZWZpbmVkKF9f YWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0gICBpZiAoc3lzbm8gPT0gX19OUl9tbWFwKQotICAgICByZXR1cm4gUmVzdHJpY3RN bWFwRmxhZ3MoKTsKLSAjZW5kaWYKLUBAIC0yMjgsNyArMjI5LDcgQEAgUmVzdWx0RXhwciBFdmFs dWF0ZVN5c2NhbGxJbXBsKGludCBmc19kZW5pZWRfZXJybm8sCi0gICAgIHJldHVybiBSZXN0cmlj dFByY3RsKCk7Ci0gCi0gI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9f KSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pCi0r ICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgIGlm IChzeXNubyA9PSBfX05SX3NvY2tldHBhaXIpIHsKLSAgICAgLy8gT25seSBhbGxvdyBBRl9VTklY LCBQRl9VTklYLiBDcmFzaCBpZiBhbnl0aGluZyBlbHNlIGlzIHNlZW4uCi0gICAgIHN0YXRpY19h c3NlcnQoQUZfVU5JWCA9PSBQRl9VTklYLAotQEAgLTI2OCw3ICsyNjksOCBAQCBSZXN1bHRFeHBy IEV2YWx1YXRlU3lzY2FsbEltcGwoaW50IGZzX2RlbmllZF9lcnJubywKLSAgIH0KLSAKLSAjaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlM WSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVf TUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotICAgaWYgKFN5c2NhbGxTZXRzOjpJc1NvY2tldENhbGwoc3lz bm8pKQotICAgICByZXR1cm4gUmVzdHJpY3RTb2NrZXRjYWxsQ29tbWFuZCgpOwotICNlbmRpZgot ZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9s aWN5X3VuaXR0ZXN0LmNjIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9iYXNlbGlu ZV9wb2xpY3lfdW5pdHRlc3QuY2MKLWluZGV4IGZjMzYxODdjOS4uMWFmZmM5MTg5IDEwMDY0NAot LS0tIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9iYXNlbGluZV9wb2xpY3lfdW5p dHRlc3QuY2MKLSsrKyBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVf cG9saWN5X3VuaXR0ZXN0LmNjCi1AQCAtMjkxLDggKzI5MSwxMCBAQCBURVNUX0JBU0VMSU5FX1NJ R1NZUyhfX05SX3RpbWVyX2NyZWF0ZSkKLSAjaWYgIWRlZmluZWQoX19hYXJjaDY0X18pCi0gVEVT VF9CQVNFTElORV9TSUdTWVMoX19OUl9ldmVudGZkKQotIFRFU1RfQkFTRUxJTkVfU0lHU1lTKF9f TlJfaW5vdGlmeV9pbml0KQotKyNpZiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIFRFU1RfQkFT RUxJTkVfU0lHU1lTKF9fTlJfdnNlcnZlcikKLSAjZW5kaWYKLSsjZW5kaWYKLSAKLSAjaWYgZGVm aW5lZChMSUJDX0dMSUJDKSAmJiAhZGVmaW5lZChPU19DSFJPTUVPUykKLSBCUEZfVEVTVF9DKEJh c2VsaW5lUG9saWN5LCBGdXRleEVJTlZBTCwgQmFzZWxpbmVQb2xpY3kpIHsKLWRpZmYgLS1naXQg c2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0 cmljdGlvbnMuY2Mgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFy YW1ldGVyc19yZXN0cmljdGlvbnMuY2MKLWluZGV4IGY1MTkxNWVkYy4uY2EyZjRmMTA2IDEwMDY0 NAotLS0tIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRl cnNfcmVzdHJpY3Rpb25zLmNjCi0rKysgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJz L3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuY2MKLUBAIC00MCw3ICs0MCw4IEBACi0g I2luY2x1ZGUgPHN5cy9wdHJhY2UuaD4KLSAjaWYgKGRlZmluZWQoT1NfTElOVVgpIHx8IEJVSUxE RkxBRyhJU19DSFJPTUVPU19MQUNST1MpKSAmJiBcCi0gICAgICFkZWZpbmVkKF9fYXJtX18pICYm ICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAgICAgICAgICAgXAotLSAgICAhZGVmaW5lZChQVFJB Q0VfR0VUX1RIUkVBRF9BUkVBKQotKyAgICAhZGVmaW5lZChQVFJBQ0VfR0VUX1RIUkVBRF9BUkVB KSAmJgkJCSAgICBcCi0rICAgICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gLy8gQWxzbyBpbmNs dWRlIGFzbS9wdHJhY2UtYWJpLmggc2luY2UgcHRyYWNlLmggaW4gb2xkZXIgbGliYyAoZm9yIGlu c3RhbmNlCi0gLy8gdGhlIG9uZSBpbiBVYnVudHUgMTYuMDQgTFRTKSBpcyBtaXNzaW5nIFBUUkFD RV9HRVRfVEhSRUFEX0FSRUEuCi0gLy8gYXNtL3B0cmFjZS1hYmkuaCBkb2Vzbid0IGV4aXN0IG9u IGFybTMyIGFuZCBQVFJBQ0VfR0VUX1RIUkVBRF9BUkVBIGlzbid0Ci1AQCAtNDksNiArNTAsMTEg QEAKLSAjZW5kaWYKLSAjZW5kaWYgIC8vICFPU19OQUNMX05PTlNGSQotIAotKy8vIE9uIFBQQzY0 LCBUQ0dFVFMgaXMgZGVmaW5lZCBpbiB0ZXJtcyBvZiBzdHJ1Y3QgdGVybWlvcywgc28gd2UgbXVz dCBpbmNsdWRlIHRlcm1pb3MuaAotKyNpZmRlZiBfX3Bvd2VycGM2NF9fCi0rI2luY2x1ZGUgPHRl cm1pb3MuaD4KLSsjZW5kaWYKLSsKLSAjaWYgZGVmaW5lZChPU19BTkRST0lEKQotIAotICNpZiAh ZGVmaW5lZChGX0RVUEZEX0NMT0VYRUMpCi1AQCAtOTgsNiArMTA0LDE1IEBACi0gI2VuZGlmCi0g fQotIAotK2lubGluZSBib29sIElzQXJjaGl0ZWN0dXJlUFBDNjQoKSB7Ci0rI2lmIGRlZmluZWQo X19wb3dlcnBjNjRfXykKLSsgIHJldHVybiB0cnVlOwotKyNlbHNlCi0rICByZXR1cm4gZmFsc2U7 Ci0rI2VuZGlmCi0rfQotKwotKwotIC8vIFVidW50dSdzIHZlcnNpb24gb2YgZ2xpYmMgaGFzIGEg cmFjZSBjb25kaXRpb24gaW4gc2VtX3Bvc3QgdGhhdCBjYW4gY2F1c2UKLSAvLyBpdCB0byBjYWxs IGZ1dGV4KDIpIHdpdGggYm9ndXMgb3AgYXJndW1lbnRzLiBUbyB3b3JrYXJvdW5kIHRoaXMsIHdl IG5lZWQKLSAvLyB0byBhbGxvdyB0aG9zZSBmdXRleCgyKSBjYWxscyB0byBmYWlsIHdpdGggRUlO VkFMLCBpbnN0ZWFkIG9mIGNyYXNoaW5nIHRoZQotQEAgLTIzOSw2ICsyNTQsOCBAQAotICAgdWlu dDY0X3Qga09MYXJnZUZpbGVGbGFnID0gT19MQVJHRUZJTEU7Ci0gICBpZiAoSXNBcmNoaXRlY3R1 cmVYODZfNjQoKSB8fCBJc0FyY2hpdGVjdHVyZUkzODYoKSB8fCBJc0FyY2hpdGVjdHVyZU1pcHMo KSkKLSAgICAga09MYXJnZUZpbGVGbGFnID0gMDEwMDAwMDsKLSsgIGVsc2UgaWYgKElzQXJjaGl0 ZWN0dXJlUFBDNjQoKSkKLSsgICAga09MYXJnZUZpbGVGbGFnID0gMDIwMDAwMDsKLSAKLSAgIGNv bnN0IEFyZzxpbnQ+IGNtZCgxKTsKLSAgIGNvbnN0IEFyZzxsb25nPiBsb25nX2FyZygyKTsKLUBA IC0yNTMsMTQgKzI3MCwyMyBAQAotICAgICAgICAgICAgICAgRl9TRVRMS1csCi0gICAgICAgICAg ICAgICBGX0dFVExLLAotICAgICAgICAgICAgICAgRl9EVVBGRCwKLS0gICAgICAgICAgICAgIEZf RFVQRkRfQ0xPRVhFQyksCi0tICAgICAgICAgICAgIEFsbG93KCkpCi0rICAgICAgICAgICAgICBG X0RVUEZEX0NMT0VYRUMKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKy8vIE9uIFBQQzY0 LCBGX1NFVExLLCBGX0dFVExLLCBGX1NFVExLVyBhcmUgZGVmaW5lZCBhcyB0aGUgNjQtYml0IHZh cmlhbnRzCi0rLy8gYnV0IGdsaWJjIHdpbGwgc29tZXRpbWVzIHN0aWxsIHVzZSB0aGUgMzItYml0 IHZlcnNpb25zLiBBbGxvdyBib3RoLgotKyAgICAgICAgICAgICAgLAotKyAgICAgICAgICAgICAg NSwgLyogRl9HRVRMSyAoMzIpICovCi0rICAgICAgICAgICAgICA2LCAvKiBGX1NFVExLICgzMikg Ki8KLSsgICAgICAgICAgICAgIDcgIC8qIEZfU0VUTEtXICgzMikgKi8KLSsjZW5kaWYKLSsgICAg ICAgICAgICAgICksCi0rICAgICAgICAgICAgQWxsb3coKSkKLSAgICAgICAuQ2FzZShGX1NFVEZM LAotICAgICAgICAgICAgIElmKChsb25nX2FyZyAmIH5rQWxsb3dlZE1hc2spID09IDAsIEFsbG93 KCkpLkVsc2UoQ3Jhc2hTSUdTWVMoKSkpCi0gICAgICAgLkRlZmF1bHQoQ3Jhc2hTSUdTWVMoKSk7 Ci0gfQotIAotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQotKyNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0gUmVzdWx0RXhwciBSZXN0cmljdFNvY2tldGNhbGxDb21tYW5kKCkgewotICAg Ly8gVW5mb3J0dW5hdGVseSwgd2UgYXJlIHVuYWJsZSB0byByZXN0cmljdCB0aGUgZmlyc3QgcGFy YW1ldGVyIHRvCi0gICAvLyBzb2NrZXRwYWlyKDIpLiBXaGlsc3QgaW5pdGlhbGx5IHNvdW5kaW5n IGJhZCwgaXQncyBub3Rld29ydGh5IHRoYXQgdmVyeQotQEAgLTQxMyw3ICs0MzksNyBAQAotICNl bmRpZgotICAgcmV0dXJuIFN3aXRjaChyZXF1ZXN0KQotICAgICAgIC5DQVNFUygoCi0tI2lmICFk ZWZpbmVkKF9fYWFyY2g2NF9fKQotKyNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSAgICAgICAgICAgICAgICAgIFBUUkFDRV9HRVRSRUdTLCBQVFJB Q0VfR0VURlBSRUdTLCBQVFJBQ0VfR0VUX1RIUkVBRF9BUkVBLAotICAgICAgICAgICAgICAgICAg UFRSQUNFX0dFVFJFR1NFVCwKLSAjZW5kaWYKLQotZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3Nl Y2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5oIHNhbmRi b3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rp b25zLmgKLWluZGV4IGJhNDI4OWYwNS4uOWE0ZDVhYjJkIDEwMDY0NAotLS0tIHNhbmRib3gvbGlu dXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmgK LSsrKyBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJz X3Jlc3RyaWN0aW9ucy5oCi1AQCAtNDgsNyArNDgsNyBAQCBTQU5EQk9YX0VYUE9SVCBicGZfZHNs OjpSZXN1bHRFeHByIFJlc3RyaWN0TXByb3RlY3RGbGFncygpOwotIC8vIE9fTk9OQkxPQ0sgfCBP X1NZTkMgfCBPX0xBUkdFRklMRSB8IE9fQ0xPRVhFQyB8IE9fTk9BVElNRS4KLSBTQU5EQk9YX0VY UE9SVCBicGZfZHNsOjpSZXN1bHRFeHByIFJlc3RyaWN0RmNudGxDb21tYW5kcygpOwotIAotLSNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9f aTM4Nl9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0g Ly8gUmVzdHJpY3Qgc29ja2V0Y2FsbCgyKSB0byBvbmx5IGFsbG93IHNvY2tldHBhaXIoMiksIHNl bmQoMiksIHJlY3YoMiksCi0gLy8gc2VuZHRvKDIpLCByZWN2ZnJvbSgyKSwgc2h1dGRvd24oMiks IHNlbmRtc2coMikgYW5kIHJlY3Ztc2coMikuCi0gU0FOREJPWF9FWFBPUlQgYnBmX2RzbDo6UmVz dWx0RXhwciBSZXN0cmljdFNvY2tldGNhbGxDb21tYW5kKCk7Ci1kaWZmIC0tZ2l0IHNhbmRib3gv bGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2Mgc2FuZGJveC9saW51eC9z ZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYwotaW5kZXggZDM2OTNmZDc4Li5kNDky Y2Y5NGIgMTAwNjQ0Ci0tLS0gc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2Nh bGxfc2V0cy5jYwotKysrIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxs X3NldHMuY2MKLUBAIC0yOSw3ICsyOSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdl dHRpbWUoaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9n ZXR0aW1lb2ZkYXk6Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRf XykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChB UkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYm IGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotICAgICBjYXNlIF9fTlJfdGltZToKLSAjZW5kaWYKLSAgICAgICByZXR1cm4gdHJ1ZTsK LUBAIC00MSwxMiArNDIsMTQgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkR2V0dGltZShp bnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX2Nsb2NrX25hbm9zbGVlcDogIC8vIFBhcmFtZXRl cnMgZmlsdGVyZWQgYnkgUmVzdHJpY3RDbG9ja0lEKCkuCi0gICAgIGNhc2UgX19OUl9jbG9ja19z ZXR0aW1lOiAgICAvLyBQcml2aWxlZ2VkLgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0t ICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMy X0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChB UkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAg IGNhc2UgX19OUl9mdGltZTogIC8vIE9ic29sZXRlLgotICNlbmRpZgotICAgICBjYXNlIF9fTlJf c2V0dGltZW9mZGF5OiAgLy8gUHJpdmlsZWdlZC4KLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwg XAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQ VV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmlu ZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot ICAgICBjYXNlIF9fTlJfc3RpbWU6Ci0gI2VuZGlmCi0gICAgIGRlZmF1bHQ6Ci1AQCAtMTEyLDcg KzExNSw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmlsZVN5c3RlbShpbnQgc3lzbm8pIHsKLSAg ICAgY2FzZSBfX05SX2ZhY2Nlc3NhdDogIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgotICAg ICBjYXNlIF9fTlJfZmNobW9kYXQ6Ci0gICAgIGNhc2UgX19OUl9mY2hvd25hdDogIC8vIFNob3Vs ZCBiZSBjYWxsZWQgY2hvd25hdCA/Ci0tI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5l ZChfX2FhcmNoNjRfXykKLSsjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYWFy Y2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9uZXdmc3Rh dGF0OiAgLy8gZnN0YXRhdCgpLiBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLSAjZWxpZiBkZWZp bmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLSAgICAgKGRlZmluZWQoQVJD SF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi1AQCAtMTMx LDcgKzEzNCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmlsZVN5c3RlbShpbnQgc3lzbm8pIHsK LSAgICAgY2FzZSBfX05SX21lbWZkX2NyZWF0ZToKLSAgICAgY2FzZSBfX05SX21rZGlyYXQ6Ci0g ICAgIGNhc2UgX19OUl9ta25vZGF0OgotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKQotKyNpZiBkZWZp bmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9v bGRsc3RhdDoKLSAgICAgY2FzZSBfX05SX29sZHN0YXQ6Ci0gI2VuZGlmCi1AQCAtMTQ1LDcgKzE0 OCw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmlsZVN5c3RlbShpbnQgc3lzbm8pIHsKLSAjZW5k aWYKLSAgICAgY2FzZSBfX05SX3N0YXRmczogIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgot ICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAgKGRl ZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykp Ci0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BV XzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBf X05SX3N0YXRmczY0OgotICNlbmRpZgotICAgICBjYXNlIF9fTlJfc3ltbGlua2F0OgotQEAgLTE1 NSw3ICsxNTksOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0ZpbGVTeXN0ZW0oaW50IHN5c25vKSB7 Ci0gICAgIGNhc2UgX19OUl90cnVuY2F0ZTY0OgotICNlbmRpZgotICAgICBjYXNlIF9fTlJfdW5s aW5rYXQ6Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwg ZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4 Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSAgICAgY2FzZSBfX05SX3V0aW1lOgotICNlbmRpZgotICAgICBjYXNlIF9fTlJfdXRp bWVuc2F0OiAgLy8gTmV3LgotQEAgLTE3NCw3ICsxNzksOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJ c0FsbG93ZWRGaWxlU3lzdGVtQWNjZXNzVmlhRmQoaW50IHN5c25vKSB7Ci0gI2VuZGlmCi0gICAg ICAgcmV0dXJuIHRydWU7Ci0gLy8gVE9ETyhqbG4pOiB0aGVzZSBzaG91bGQgYmUgZGVuaWVkIGdy YWNlZnVsbHkgYXMgd2VsbCAobW92ZWQgYmVsb3cpLgotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQo X19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwg XAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9mYWR2aXNlNjQ6 ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX2kz ODZfXykKLUBAIC0xODcsMTEgKzE5MywxMiBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRG aWxlU3lzdGVtQWNjZXNzVmlhRmQoaW50IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9mbG9jazog ICAgICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLSAgICAgY2FzZSBfX05SX2ZzdGF0ZnM6 ICAgIC8vIEdpdmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHdob2xlIGZpbGVzeXN0ZW0uCi0gI2lm IGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAgICAoZGVmaW5l ZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsg ICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJf QklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJf ZnN0YXRmczY0OgotICNlbmRpZgotICAgICBjYXNlIF9fTlJfZnN5bmM6ICAvLyBFUEVSTSBub3Qg YSB2YWxpZCBlcnJuby4KLS0jaWYgZGVmaW5lZChfX2kzODZfXykKLSsjaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfb2xkZnN0YXQ6 Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykg fHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotQEAgLTE5OSw2ICsyMDYsOCBAQCBib29sIFN5c2Nh bGxTZXRzOjpJc0FsbG93ZWRGaWxlU3lzdGVtQWNjZXNzVmlhRmQoaW50IHN5c25vKSB7Ci0gICAg IGNhc2UgX19OUl9zeW5jX2ZpbGVfcmFuZ2U6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4K LSAjZWxpZiBkZWZpbmVkKF9fYXJtX18pCi0gICAgIGNhc2UgX19OUl9hcm1fc3luY19maWxlX3Jh bmdlOiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotKyAgICBjYXNlIF9fTlJfc3luY19maWxlX3JhbmdlMjogLy8gRVBFUk0gbm90IGEg dmFsaWQgZXJybm8uCi0gI2VuZGlmCi0gICAgIGRlZmF1bHQ6Ci0gICAgICAgcmV0dXJuIGZhbHNl OwotQEAgLTIyNCw3ICsyMzMsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0RlbmllZEZpbGVTeXN0 ZW1BY2Nlc3NWaWFGZChpbnQgc3lzbm8pIHsKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX2dldGRl bnRzNjQ6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLSAjaWYgZGVmaW5lZChfX2kzODZf XykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChB UkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYm IGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotICAgICBjYXNlIF9fTlJfcmVhZGRpcjoKLSAjZW5kaWYKLSAgICAgICByZXR1cm4gdHJ1 ZTsKLUBAIC0yNjUsNyArMjc1LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNHZXRTaW1wbGVJZChp bnQgc3lzbm8pIHsKLSBib29sIFN5c2NhbGxTZXRzOjpJc1Byb2Nlc3NQcml2aWxlZ2VDaGFuZ2Uo aW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9jYXBzZXQ6 Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKLSsjaWYgZGVm aW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0gICAgIGNhc2UgX19OUl9pb3Blcm06ICAvLyBJbnRlbCBwcml2aWxlZ2UuCi0gICAg IGNhc2UgX19OUl9pb3BsOiAgICAvLyBJbnRlbCBwcml2aWxlZ2UuCi0gI2VuZGlmCi1AQCAtMzE2 LDcgKzMyNiw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFNpZ25hbEhhbmRsaW5nKGlu dCBzeXNubykgewotICAgICBjYXNlIF9fTlJfcnRfc2lncmV0dXJuOgotICAgICBjYXNlIF9fTlJf cnRfc2lndGltZWR3YWl0OgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJt X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQo QVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAm JiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSAgICAgY2FzZSBfX05SX3NpZ2FjdGlvbjoKLSAgICAgY2FzZSBfX05SX3NpZ3Byb2Nt YXNrOgotICAgICBjYXNlIF9fTlJfc2lncmV0dXJuOgotQEAgLTMzMiw3ICszNDMsOCBAQCBib29s IFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRTaWduYWxIYW5kbGluZyhpbnQgc3lzbm8pIHsKLSAjZW5k aWYKLSAgICAgY2FzZSBfX05SX3NpZ25hbGZkNDoKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwg ZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZ KSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9zaWdwZW5kaW5nOgotICAgICBjYXNl IF9fTlJfc2lnc3VzcGVuZDoKLSAjZW5kaWYKLUBAIC0zNTYsNyArMzY4LDcgQEAgYm9vbCBTeXNj YWxsU2V0czo6SXNBbGxvd2VkT3BlcmF0aW9uT25GZChpbnQgc3lzbm8pIHsKLSAjZW5kaWYKLSAg ICAgY2FzZSBfX05SX2R1cDM6Ci0gI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChf X2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0 X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykK LSAgICAgY2FzZSBfX05SX3NodXRkb3duOgotICNlbmRpZgotICAgICAgIHJldHVybiB0cnVlOwot QEAgLTM5MCw3ICs0MDIsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3Rh cnRPckRlYXRoKGludCBzeXNubykgewotICAgICBjYXNlIF9fTlJfbWVtYmFycmllcjoKLSAgICAg Y2FzZSBfX05SX3dhaXQ0OgotICAgICBjYXNlIF9fTlJfd2FpdGlkOgotLSNpZiBkZWZpbmVkKF9f aTM4Nl9fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0gICAgIGNhc2UgX19OUl93YWl0cGlkOgotICNlbmRpZgotICAgICAgIHJldHVybiB0cnVlOwot QEAgLTQwNyw3ICs0MTksNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3Rh cnRPckRlYXRoKGludCBzeXNubykgewotICNlbmRpZgotICAgICBjYXNlIF9fTlJfc2V0X3RpZF9h ZGRyZXNzOgotICAgICBjYXNlIF9fTlJfdW5zaGFyZToKLS0jaWYgIWRlZmluZWQoX19taXBzX18p ICYmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyNpZiAhZGVmaW5lZChfX21pcHNfXykgJiYgIWRl ZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBf X05SX3Zmb3JrOgotICNlbmRpZgotICAgICBkZWZhdWx0OgotQEAgLTQ1Niw3ICs0NjgsNyBAQCBi b29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRHZXRPck1vZGlmeVNvY2tldChpbnQgc3lzbm8pIHsK LSAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgZGVmYXVsdDoKLSAjaWYgZGVmaW5lZChfX3g4Nl82 NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAg ZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfc29ja2V0cGFpcjogIC8vIFdlIHdpbGwg d2FudCB0byBpbnNwZWN0IGl0cyBhcmd1bWVudC4KLSAjZW5kaWYKLSAgICAgICByZXR1cm4gZmFs c2U7Ci1AQCAtNDY2LDcgKzQ3OCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdldE9y TW9kaWZ5U29ja2V0KGludCBzeXNubykgewotIGJvb2wgU3lzY2FsbFNldHM6OklzRGVuaWVkR2V0 T3JNb2RpZnlTb2NrZXQoaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0gI2lmIGRl ZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19f KSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0 X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2FjY2VwdDoKLSAg ICAgY2FzZSBfX05SX2FjY2VwdDQ6Ci0gICAgIGNhc2UgX19OUl9iaW5kOgotQEAgLTQ4MSw3ICs0 OTMsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0RlbmllZEdldE9yTW9kaWZ5U29ja2V0KGludCBz eXNubykgewotIH0KLSAKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5l ZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsg ICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJf QklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIC8vIEJpZyBtdWx0aXBs ZXhpbmcgc3lzdGVtIGNhbGwgZm9yIHNvY2tldHMuCi0gYm9vbCBTeXNjYWxsU2V0czo6SXNTb2Nr ZXRDYWxsKGludCBzeXNubykgewotICAgc3dpdGNoIChzeXNubykgewotQEAgLTQ5NSw3ICs1MDgs OCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc1NvY2tldENhbGwoaW50IHN5c25vKSB7Ci0gfQotICNl bmRpZgotIAotLSNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwg ZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9f YXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotIGJvb2wgU3lzY2FsbFNldHM6OklzTmV0d29ya1NvY2tldEluZm9ybWF0aW9uKGludCBz eXNubykgewotICAgc3dpdGNoIChzeXNubykgewotICAgICBjYXNlIF9fTlJfZ2V0cGVlcm5hbWU6 Ci1AQCAtNTIwLDcgKzUzNCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEFkZHJlc3NT cGFjZUFjY2VzcyhpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX21pbmNvcmU6Ci0gICAgIGNh c2UgX19OUl9tbG9ja2FsbDoKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4 Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0 X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykK LSAgICAgY2FzZSBfX05SX21tYXA6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IGRlZmluZWQoX19hcm1fXykgfHwgXAotQEAgLTU1MCw3ICs1NjQsOCBAQCBib29sIFN5c2NhbGxT ZXRzOjpJc0FsbG93ZWRHZW5lcmFsSW8oaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7 Ci0gICAgIGNhc2UgX19OUl9sc2VlazoKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX2FybV9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBk ZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZB TUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9fbGxzZWVrOgotICNlbmRpZgotICNpZiAhZGVm aW5lZChfX2FhcmNoNjRfXykKLUBAIC01NjIsMjYgKzU3NywyOCBAQCBib29sIFN5c2NhbGxTZXRz OjpJc0FsbG93ZWRHZW5lcmFsSW8oaW50IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9yZWFkdjoK LSAgICAgY2FzZSBfX05SX3ByZWFkNjQ6Ci0gI2lmIGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAg ICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9C SVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJD SF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBj YXNlIF9fTlJfcmVjdjoKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZp bmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2Fh cmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotICAgICBjYXNlIF9fTlJfcmVjdmZyb206ICAvLyBDb3VsZCBzcGVjaWZ5IHNvdXJjZS4K LSAgICAgY2FzZSBfX05SX3JlY3Ztc2c6ICAgLy8gQ291bGQgc3BlY2lmeSBzb3VyY2UuCi0gI2Vu ZGlmCi0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKLSsjaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9zZWxlY3Q6Ci0gI2VuZGlmCi0tI2lmIGRlZmluZWQo X19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19f KSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9fbmV3c2VsZWN0Ogot ICNlbmRpZgotICNpZiBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8 fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3NlbmQ6Ci0g I2VuZGlmCi0gI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBk ZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRl ZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBf X05SX3NlbmRtc2c6ICAvLyBDb3VsZCBzcGVjaWZ5IGRlc3RpbmF0aW9uLgotICAgICBjYXNlIF9f TlJfc2VuZHRvOiAgIC8vIENvdWxkIHNwZWNpZnkgZGVzdGluYXRpb24uCi0gI2VuZGlmCi1AQCAt NjM4LDcgKzY1NSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEJhc2ljU2NoZWR1bGVy KGludCBzeXNubykgewotICAgICAgIHJldHVybiB0cnVlOwotICAgICBjYXNlIF9fTlJfZ2V0cHJp b3JpdHk6Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAot LSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8z Ml9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQo QVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAg ICBjYXNlIF9fTlJfbmljZToKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX3NldHByaW9yaXR5Ogot QEAgLTY1MCw3ICs2NjgsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRCYXNpY1NjaGVk dWxlcihpbnQgc3lzbm8pIHsKLSBib29sIFN5c2NhbGxTZXRzOjpJc0FkbWluT3BlcmF0aW9uKGlu dCBzeXNubykgewotICAgc3dpdGNoIChzeXNubykgewotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1J TFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2JkZmx1c2g6Ci0gI2VuZGlmCi0g ICAgIGNhc2UgX19OUl9rZXhlY19sb2FkOgotQEAgLTY2Niw3ICs2ODUsOCBAQCBib29sIFN5c2Nh bGxTZXRzOjpJc0FkbWluT3BlcmF0aW9uKGludCBzeXNubykgewotIAotIGJvb2wgU3lzY2FsbFNl dHM6OklzS2VybmVsTW9kdWxlKGludCBzeXNubykgewotICAgc3dpdGNoIChzeXNubykgewotLSNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19t aXBzX18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwg ZGVmaW5lZChfX21pcHNfXykgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAg IGNhc2UgX19OUl9jcmVhdGVfbW9kdWxlOgotICAgICBjYXNlIF9fTlJfZ2V0X2tlcm5lbF9zeW1z OiAgLy8gU2hvdWxkIEVOT1NZUy4KLSAgICAgY2FzZSBfX05SX3F1ZXJ5X21vZHVsZToKLUBAIC02 OTksNyArNzE5LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNGc0NvbnRyb2woaW50IHN5c25vKSB7 Ci0gICAgIGNhc2UgX19OUl9zd2Fwb2ZmOgotICAgICBjYXNlIF9fTlJfc3dhcG9uOgotICNpZiBk ZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZ KSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl91bW91bnQ6Ci0gI2VuZGlmCi0gICAg IGNhc2UgX19OUl91bW91bnQyOgotQEAgLTcxNSw3ICs3MzYsNyBAQCBib29sIFN5c2NhbGxTZXRz OjpJc051bWEoaW50IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9nZXRjcHU6Ci0gICAgIGNhc2Ug X19OUl9tYmluZDoKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9f KSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pCi0r ICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAg Y2FzZSBfX05SX21pZ3JhdGVfcGFnZXM6Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl9tb3ZlX3Bh Z2VzOgotQEAgLTc0NCwxNCArNzY1LDE1IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzR2xvYmFsUHJv Y2Vzc0Vudmlyb25tZW50KGludCBzeXNubykgewotICAgc3dpdGNoIChzeXNubykgewotICAgICBj YXNlIF9fTlJfYWNjdDogIC8vIFByaXZpbGVnZWQuCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotLSAgICBkZWZp bmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9nZXRybGltaXQ6Ci0gI2VuZGlmCi0tI2lmIGRl ZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykKLSsjaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNh c2UgX19OUl91Z2V0cmxpbWl0OgotICNlbmRpZgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBc Ci0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BV XzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5l ZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0g ICAgIGNhc2UgX19OUl91bGltaXQ6Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl9nZXRydXNhZ2U6 Ci1AQCAtNzg1LDcgKzgwNyw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzR2xvYmFsU3lzdGVtU3Rh dHVzKGludCBzeXNubykgewotICNlbmRpZgotICAgICBjYXNlIF9fTlJfc3lzaW5mbzoKLSAgICAg Y2FzZSBfX05SX3VuYW1lOgotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKQotKyNpZiBkZWZpbmVkKF9f aTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9vbGR1bmFt ZToKLSAgICAgY2FzZSBfX05SX29sZG9sZHVuYW1lOgotICNlbmRpZgotQEAgLTg0Nyw4ICs4Njks MTYgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNTeXN0ZW1WU2VtYXBob3JlcyhpbnQgc3lzbm8pIHsK LSB9Ci0gI2VuZGlmCi0gCi0rLyogc2hpdHR5IGhhY2sgYXJvdW5kIFZvaWQncyA0LjE5IGtlcm5l bCBoZWFkZXJzIG1pc3NpbmcgdGhvc2UgbnVtYmVycyAqLwotKyNpZiBkZWZpbmVkKF9fcG93ZXJw YzY0X18pICYmICFkZWZpbmVkKF9fTlJfc2htZ2V0KQotKyNkZWZpbmUgX19OUl9zaG1nZXQgMzk1 Ci0rI2RlZmluZSBfX05SX3NobWN0bCAzOTYKLSsjZGVmaW5lIF9fTlJfc2htYXQgMzk3Ci0rI2Rl ZmluZSBfX05SX3NobWR0IDM5OAotKyNlbmRpZgotKwotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAgICBkZWZp bmVkKF9fYWFyY2g2NF9fKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAotKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18p IHx8IFwKLSAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJD SF9DUFVfNjRfQklUUykpCi0gLy8gVGhlc2UgZ2l2ZSBhIGxvdCBvZiBhbWJpZW50IGF1dGhvcml0 eSBhbmQgYnlwYXNzIHRoZSBzZXR1aWQgc2FuZGJveC4KLSBib29sIFN5c2NhbGxTZXRzOjpJc1N5 c3RlbVZTaGFyZWRNZW1vcnkoaW50IHN5c25vKSB7Ci1AQCAtODgwLDcgKzkxMCw4IEBAIGJvb2wg U3lzY2FsbFNldHM6OklzU3lzdGVtVk1lc3NhZ2VRdWV1ZShpbnQgc3lzbm8pIHsKLSAjZW5kaWYK LSAKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQo QVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwK LSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIC8vIEJpZyBzeXN0ZW0gViBtdWx0aXBsZXhp bmcgc3lzdGVtIGNhbGwuCi0gYm9vbCBTeXNjYWxsU2V0czo6SXNTeXN0ZW1WSXBjKGludCBzeXNu bykgewotICAgc3dpdGNoIChzeXNubykgewotQEAgLTkwMCw3ICs5MzEsOCBAQCBib29sIFN5c2Nh bGxTZXRzOjpJc0FueVN5c3RlbVYoaW50IHN5c25vKSB7Ci0gICByZXR1cm4gSXNTeXN0ZW1WTWVz c2FnZVF1ZXVlKHN5c25vKSB8fCBJc1N5c3RlbVZTZW1hcGhvcmVzKHN5c25vKSB8fAotICAgICAg ICAgIElzU3lzdGVtVlNoYXJlZE1lbW9yeShzeXNubyk7Ci0gI2VsaWYgZGVmaW5lZChfX2kzODZf XykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChB UkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYm IGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotICAgcmV0dXJuIElzU3lzdGVtVklwYyhzeXNubyk7Ci0gI2VuZGlmCi0gfQotQEAgLTk1 Myw3ICs5ODUsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0ZhTm90aWZ5KGludCBzeXNubykgewot IGJvb2wgU3lzY2FsbFNldHM6OklzVGltZXIoaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25v KSB7Ci0gICAgIGNhc2UgX19OUl9nZXRpdGltZXI6Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChf X2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBc Ci0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2FsYXJtOgotICNl bmRpZgotICAgICBjYXNlIF9fTlJfc2V0aXRpbWVyOgotQEAgLTEwMTIsMTggKzEwNDUsMjIgQEAg Ym9vbCBTeXNjYWxsU2V0czo6SXNNaXNjKGludCBzeXNubykgewotICAgICBjYXNlIF9fTlJfc3lu Y2ZzOgotICAgICBjYXNlIF9fTlJfdmhhbmd1cDoKLSAvLyBUaGUgc3lzdGVtIGNhbGxzIGJlbG93 IGFyZSBub3QgaW1wbGVtZW50ZWQuCi0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQo X194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykg fHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0rICAgIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2Fmc19zeXNjYWxsOgotICNlbmRp ZgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01J UFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChB UkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAot KyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9icmVhazoKLSAjZW5k aWYKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZp bmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0 X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQotICAgICBjYXNlIF9fTlJfZ2V0cG1zZzoKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX2kzODZf XykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChB UkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYm IGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotICAgICBjYXNlIF9fTlJfZ3R0eToKLSAgICAgY2FzZSBfX05SX2lkbGU6Ci0gICAgIGNh c2UgX19OUl9sb2NrOgotQEAgLTEwMzEsMjAgKzEwNjgsMjIgQEAgYm9vbCBTeXNjYWxsU2V0czo6 SXNNaXNjKGludCBzeXNubykgewotICAgICBjYXNlIF9fTlJfcHJvZjoKLSAgICAgY2FzZSBfX05S X3Byb2ZpbDoKLSAjZW5kaWYKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4 Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBk ZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLSsgICAgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfcHV0cG1zZzoKLSAjZW5kaWYKLSAjaWYg ZGVmaW5lZChfX3g4Nl82NF9fKQotICAgICBjYXNlIF9fTlJfc2VjdXJpdHk6Ci0gI2VuZGlmCi0g I2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19G QU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hf Q1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAg IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3N0dHk6Ci0gI2VuZGlmCi0t I2lmIGRlZmluZWQoX194ODZfNjRfXykKLSsjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl90dXhjYWxsOgotICNlbmRpZgotLSNp ZiAhZGVmaW5lZChfX2FhcmNoNjRfXykKLSsjaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl92c2VydmVyOgotICNlbmRpZgot ICAgICAgIHJldHVybiB0cnVlOwotZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBm LWhlbHBlcnMvc3lzY2FsbF9zZXRzLmggc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJz L3N5c2NhbGxfc2V0cy5oCi1pbmRleCA5MjM1MzNlYzkuLjQxMWY3MmFjZCAxMDA2NDQKLS0tLSBz YW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmgKLSsrKyBzYW5k Ym94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmgKLUBAIC00MywxMyAr NDMsMTQgQEAgY2xhc3MgU0FOREJPWF9FWFBPUlQgU3lzY2FsbFNldHMgewotICAgc3RhdGljIGJv b2wgSXNEZW5pZWRHZXRPck1vZGlmeVNvY2tldChpbnQgc3lzbm8pOwotIAotICNpZiBkZWZpbmVk KF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBk ZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZB TUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCi0gICAvLyBCaWcgbXVsdGlwbGV4aW5nIHN5c3RlbSBjYWxsIGZvciBzb2Nr ZXRzLgotICAgc3RhdGljIGJvb2wgSXNTb2NrZXRDYWxsKGludCBzeXNubyk7Ci0gI2VuZGlmCi0g Ci0gI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVk KF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQo X19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgIHN0YXRpYyBib29sIElz TmV0d29ya1NvY2tldEluZm9ybWF0aW9uKGludCBzeXNubyk7Ci0gI2VuZGlmCi0gCi1AQCAtNzYs NyArNzcsNyBAQCBjbGFzcyBTQU5EQk9YX0VYUE9SVCBTeXNjYWxsU2V0cyB7Ci0gICBzdGF0aWMg Ym9vbCBJc1N5c3RlbVZTZW1hcGhvcmVzKGludCBzeXNubyk7Ci0gI2VuZGlmCi0gI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8 fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQo X19wb3dlcnBjNjRfXykgfHwgXAotICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkg JiYgZGVmaW5lZChBUkNIX0NQVV82NF9CSVRTKSkKLSAgIC8vIFRoZXNlIGdpdmUgYSBsb3Qgb2Yg YW1iaWVudCBhdXRob3JpdHkgYW5kIGJ5cGFzcyB0aGUgc2V0dWlkIHNhbmRib3guCi0gICBzdGF0 aWMgYm9vbCBJc1N5c3RlbVZTaGFyZWRNZW1vcnkoaW50IHN5c25vKTsKLUBAIC04OCw3ICs4OSw4 IEBAIGNsYXNzIFNBTkRCT1hfRVhQT1JUIFN5c2NhbGxTZXRzIHsKLSAjZW5kaWYKLSAKLSAjaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlM WSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVf TUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotICAgLy8gQmlnIHN5c3RlbSBWIG11bHRpcGxleGluZyBzeXN0 ZW0gY2FsbC4KLSAgIHN0YXRpYyBib29sIElzU3lzdGVtVklwYyhpbnQgc3lzbm8pOwotICNlbmRp ZgotZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3N5c2NhbGwuY2Mgc2FuZGJv eC9saW51eC9zZWNjb21wLWJwZi9zeXNjYWxsLmNjCi1pbmRleCBlNDdlOThiZjUuLmQ1M2E3ZmY1 NiAxMDA2NDQKLS0tLSBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3N5c2NhbGwuY2MKLSsrKyBz YW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3N5c2NhbGwuY2MKLUBAIC0xOCw3ICsxOCw3IEBAIG5h bWVzcGFjZSBzYW5kYm94IHsKLSBuYW1lc3BhY2UgewotIAotICNpZiBkZWZpbmVkKEFSQ0hfQ1BV X1g4Nl9GQU1JTFkpIHx8IGRlZmluZWQoQVJDSF9DUFVfQVJNX0ZBTUlMWSkgfHwgXAotLSAgICBk ZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotKyAgICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNf RkFNSUxZKSB8fCBkZWZpbmVkIChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0gLy8gTnVtYmVyIHRo YXQncyBub3QgY3VycmVudGx5IHVzZWQgYnkgYW55IExpbnV4IGtlcm5lbCBBQklzLgotIGNvbnN0 IGludCBrSW52YWxpZFN5c2NhbGxOdW1iZXIgPSAweDM1MWQzOwotICNlbHNlCi1AQCAtMzEwLDEy ICszMTAsNTYgQEAgYXNtKC8vIFdlIG5lZWQgdG8gYmUgYWJsZSB0byB0ZWxsIHRoZSBrZXJuZWwg ZXhhY3RseSB3aGVyZSB3ZSBtYWRlIGEKLSAgICAgLy8gRW50ZXIgdGhlIGtlcm5lbAotICAgICAi c3ZjIDBcbiIKLSAgICAgIjI6cmV0XG4iCi0rICAgICIuY2ZpX2VuZHByb2NcbiIKLSsgICAgIi5z aXplIFN5c2NhbGxBc20sIC4tU3lzY2FsbEFzbVxuIgotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSsgICAgIi50ZXh0XG4iCi0rICAgICIuYWxpZ24gNFxuIgotKyAgICAiLnR5cGUgU3lz Y2FsbEFzbSBAZnVuY3Rpb25cbiIKLSsgICAgIlN5c2NhbGxBc206XG4iCi0rICAgICIuY2ZpX3N0 YXJ0cHJvY1xuIgotKwotKyAgICAvLyBDaGVjayBpZiByMyBpcyBuZWdhdGl2ZQotKyAgICAiY21w ZGkgMywgMFxuIgotKyAgICAiYmd0IDJmXG4iCi0rCi0rICAgIC8vIExvYWQgYWRkcmVzcyBvZiAz ZiBpbnRvIHIzIGFuZCByZXR1cm4KLSsgICAgIm1mbHIgMTBcbiIKLSsgICAgImJsIDFmXG4iCi0r ICAgICIxOiBtZmxyIDNcbiIKLSsgICAgIm10bHIgMTBcbiIKLSsgICAgImFkZGkgMywgMywgNCox M1xuIgotKyAgICAiYmxyXG4iCi0rCi0rICAgIC8vIExvYWQgYXJndW1lbnRzIGZyb20gYXJyYXkg aW50byByMy04Ci0rICAgIC8vIHNhdmUgcGFyYW0gMyBpbiByMTAKLSsgICAgIjI6XG4iCi0rICAg ICJtciAwLCAzXG4iCi0rICAgICJsZCAzLCAwKDQpXG4iCi0rICAgICJsZCA1LCAxNig0KVxuIgot KyAgICAibGQgNiwgMjQoNClcbiIKLSsgICAgImxkIDcsIDMyKDQpXG4iCi0rICAgICJsZCA4LCA0 MCg0KVxuIgotKyAgICAibGQgNCwgOCg0KVxuIgotKyAgICAibGkgOSwgMFxuIgotKwotKyAgICAv LyBFbnRlciBrZXJuZWwKLSsgICAgInNjXG4iCi0rCi0rICAgIC8vIE1hZ2ljIHJldHVybiBhZGRy ZXNzCi0rICAgICIzOlxuIgotKyAgICAvLyBMaWtlIE1JUFMsIHBwYzY0IHJldHVybiB2YWx1ZXMg YXJlIGFsd2F5cyBwb3NpdGl2ZS4KLSsgICAgLy8gQ2hlY2sgZm9yIGVycm9yIGluIGNyMC5TTyBh bmQgbmVnYXRlIHVwb24gZXJyb3IKLSsgICAgImJjIDQsIDMsIDRmXG4iCi0rICAgICJuZWcgMywg M1xuIgotKyAgICAiNDogYmxyXG4iCi0rCi0gICAgICIuY2ZpX2VuZHByb2NcbiIKLSAgICAgIi5z aXplIFN5c2NhbGxBc20sIC4tU3lzY2FsbEFzbVxuIgotICNlbmRpZgotICAgICApOyAgLy8gYXNt Ci0gCi0tI2lmIGRlZmluZWQoX194ODZfNjRfXykKLSsjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8 fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gZXh0ZXJuICJDIiB7Ci0gaW50cHRyX3QgU3lzY2Fs bEFzbShpbnRwdHJfdCBuciwgY29uc3QgaW50cHRyX3QgYXJnc1s2XSk7Ci0gfQotQEAgLTQyOSw2 ICs0NzMsOCBAQCBpbnRwdHJfdCBTeXNjYWxsOjpDYWxsKGludCBuciwKLSAgICAgcmV0ID0gaW5v dXQ7Ci0gICB9Ci0gCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgaW50cHRyX3Qg cmV0ID0gU3lzY2FsbEFzbShuciwgYXJncyk7Ci0gI2Vsc2UKLSAjZXJyb3IgIlVuaW1wbGVtZW50 ZWQgYXJjaGl0ZWN0dXJlIgotICNlbmRpZgotQEAgLTQ0NSw4ICs0OTEsMTggQEAgdm9pZCBTeXNj YWxsOjpQdXRWYWx1ZUluVWNvbnRleHQoaW50cHRyX3QgcmV0X3ZhbCwgdWNvbnRleHRfdCogY3R4 KSB7Ci0gICAgIC8vIG5lZWRzIHRvIGJlIGNoYW5nZWQgYmFjay4KLSAgICAgcmV0X3ZhbCA9IC1y ZXRfdmFsOwotICAgICBTRUNDT01QX1BBUk00KGN0eCkgPSAxOwotLSAgfSBlbHNlCi0rICB9IGVs c2UgewotICAgICBTRUNDT01QX1BBUk00KGN0eCkgPSAwOwotKyAgfQotKyNlbmRpZgotKyNpZiBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAvLyBTYW1lIGFzIE1JUFMsIG5lZWQgdG8gaW52ZXJ0 IHJldCBhbmQgc2V0IGVycm9yIHJlZ2lzdGVyIChjcjAuU08pCi0rICBpZiAocmV0X3ZhbCA8PSAt MSAmJiByZXRfdmFsID49IC00MDk1KSB7Ci0rICAgIHJldF92YWwgPSAtcmV0X3ZhbDsKLSsgICAg Y3R4LT51Y19tY29udGV4dC5yZWdzLT5jY3IgfD0gKDEgPDwgMjgpOwotKyAgfSBlbHNlIHsKLSsg ICAgY3R4LT51Y19tY29udGV4dC5yZWdzLT5jY3IgJj0gfigxIDw8IDI4KTsKLSsgIH0KLSAjZW5k aWYKLSAgIFNFQ0NPTVBfUkVTVUxUKGN0eCkgPSBzdGF0aWNfY2FzdDxncmVnX3Q+KHJldF92YWwp OwotIH0KLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi90cmFwLmNjIHNhbmRi b3gvbGludXgvc2VjY29tcC1icGYvdHJhcC5jYwotaW5kZXggOTg4NGJlOGJiLi45OGU0MzcxYWEg MTAwNjQ0Ci0tLS0gc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi90cmFwLmNjCi0rKysgc2FuZGJv eC9saW51eC9zZWNjb21wLWJwZi90cmFwLmNjCi1AQCAtMjMyLDYgKzIzMiwyMCBAQCB2b2lkIFRy YXA6OlNpZ1N5cyhpbnQgbnIsIExpbnV4U2lnSW5mbyogaW5mbywgdWNvbnRleHRfdCogY3R4KSB7 Ci0gICAgICAgU2V0SXNJblNpZ0hhbmRsZXIoKTsKLSAgICAgfQotIAotKyNpZiBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCi0rICAgIC8vIE9uIHBwYzY0K2dsaWJjLCBzb21lIHN5c2NhbGxzIHNlZW0g dG8gYWNjaWRlbnRhbGx5IG5lZ2F0ZSB0aGUgZmlyc3QKLSsgICAgLy8gcGFyYW1ldGVyIHdoaWNo IGNhdXNlcyBjaGVja3MgYWdhaW5zdCBpdCB0byBmYWlsLiBGb3Igbm93LCBtYW51YWxseQotKyAg ICAvLyBuZWdhdGUgdGhlbSBiYWNrLgotKyAgICAvLyBUT0RPKHNoYXduQGFuYXN0YXMuaW8pOiBp bnZlc3RpZ2F0ZSB0aGlzIGlzc3VlIGZ1cnRoZXIKLSsgICAgYXV0byBuciA9IFNFQ0NPTVBfU1lT Q0FMTChjdHgpOwotKyAgICBpZiAobnIgPT0gX19OUl9vcGVuYXQgfHwgbnIgPT0gX19OUl9ta2Rp cmF0IHx8IG5yID09IF9fTlJfZmFjY2Vzc2F0IHx8IG5yID09IF9fTlJfcmVhZGxpbmthdCB8fAot KyAgICAgICAgbnIgPT0gX19OUl9yZW5hbWVhdCB8fCBuciA9PSBfX05SX3JlbmFtZWF0MiB8fCBu ciA9PSBfX05SX25ld2ZzdGF0YXQgfHwgbnIgPT0gX19OUl91bmxpbmthdCkgewotKyAgICAgICAg aWYgKHN0YXRpY19jYXN0PGludD4oU0VDQ09NUF9QQVJNMShjdHgpKSA+IDApIHsKLSsgICAgICAg ICAgICBTRUNDT01QX1BBUk0xKGN0eCkgPSAtU0VDQ09NUF9QQVJNMShjdHgpOwotKyAgICAgICAg fQotKyAgICB9Ci0rI2VuZGlmCi0rCi0gICAgIC8vIENvcHkgdGhlIHNlY2NvbXAtc3BlY2lmaWMg ZGF0YSBpbnRvIGEgYXJjaF9zZWNjb21wX2RhdGEgc3RydWN0dXJlLiBUaGlzCi0gICAgIC8vIGlz IHdoYXQgd2UgYXJlIHNob3dpbmcgdG8gVHJhcEZuYyBjYWxsYmFja3MgdGhhdCB0aGUgc3lzdGVt IGNhbGwKLSAgICAgLy8gZXZhbHVhdG9yIHJlZ2lzdGVyZWQgd2l0aCB0aGUgc2FuZGJveC4KLWRp ZmYgLS1naXQgc2FuZGJveC9saW51eC9zZXJ2aWNlcy9jcmVkZW50aWFscy5jYyBzYW5kYm94L2xp bnV4L3NlcnZpY2VzL2NyZWRlbnRpYWxzLmNjCi1pbmRleCBkN2I1ZDhjNDQuLjRhZGM2ZDBkNCAx MDA2NDQKLS0tLSBzYW5kYm94L2xpbnV4L3NlcnZpY2VzL2NyZWRlbnRpYWxzLmNjCi0rKysgc2Fu ZGJveC9saW51eC9zZXJ2aWNlcy9jcmVkZW50aWFscy5jYwotQEAgLTgxLDcgKzgxLDcgQEAgYm9v bCBDaHJvb3RUb1NhZmVFbXB0eURpcigpIHsKLSAgIHBpZF90IHBpZCA9IC0xOwotICAgYWxpZ25h cygxNikgY2hhciBzdGFja19idWZbUFRIUkVBRF9TVEFDS19NSU5dOwotICNpZiBkZWZpbmVkKEFS Q0hfQ1BVX1g4Nl9GQU1JTFkpIHx8IGRlZmluZWQoQVJDSF9DUFVfQVJNX0ZBTUlMWSkgfHwgXAot LSAgICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotKyAgICBkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSAgIC8vIFRo ZSBzdGFjayBncm93cyBkb3dud2FyZC4KLSAgIHZvaWQqIHN0YWNrID0gc3RhY2tfYnVmICsgc2l6 ZW9mKHN0YWNrX2J1Zik7Ci0gI2Vsc2UKLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9zZXJ2aWNl cy9zeXNjYWxsX3dyYXBwZXJzLmNjIHNhbmRib3gvbGludXgvc2VydmljZXMvc3lzY2FsbF93cmFw cGVycy5jYwotaW5kZXggZmNmZDJhYTEyLi5mNmViMzJmYjcgMTAwNjQ0Ci0tLS0gc2FuZGJveC9s aW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmNjCi0rKysgc2FuZGJveC9saW51eC9zZXJ2 aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmNjCi1AQCAtNTgsNyArNTgsNyBAQCBsb25nIHN5c19jbG9u ZSh1bnNpZ25lZCBsb25nIGZsYWdzLAotICNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl82NCkKLSAg IHJldHVybiBzeXNjYWxsKF9fTlJfY2xvbmUsIGZsYWdzLCBjaGlsZF9zdGFjaywgcHRpZCwgY3Rp ZCwgdGxzKTsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4NikgfHwgZGVmaW5lZChBUkNIX0NQ VV9BUk1fRkFNSUxZKSB8fCBcCi0tICAgIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0r ICAgIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpIHx8IGRlZmluZWQoQVJDSF9DUFVfUFBD NjRfRkFNSUxZKQotICAgLy8gQ09ORklHX0NMT05FX0JBQ0tXQVJEUyBkZWZpbmVkLgotICAgcmV0 dXJuIHN5c2NhbGwoX19OUl9jbG9uZSwgZmxhZ3MsIGNoaWxkX3N0YWNrLCBwdGlkLCB0bHMsIGN0 aWQpOwotICNlbmRpZgotZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3N5c2NhbGxfYnJva2VyL2Jy b2tlcl9wcm9jZXNzLmNjIHNhbmRib3gvbGludXgvc3lzY2FsbF9icm9rZXIvYnJva2VyX3Byb2Nl c3MuY2MKLWluZGV4IDgzMjFkMjM3OS4uN2U1YWQxZGUzIDEwMDY0NAotLS0tIHNhbmRib3gvbGlu dXgvc3lzY2FsbF9icm9rZXIvYnJva2VyX3Byb2Nlc3MuY2MKLSsrKyBzYW5kYm94L2xpbnV4L3N5 c2NhbGxfYnJva2VyL2Jyb2tlcl9wcm9jZXNzLmNjCi1AQCAtMTU3LDcgKzE1Nyw3IEBAIGJvb2wg QnJva2VyUHJvY2Vzczo6SXNTeXNjYWxsQWxsb3dlZChpbnQgc3lzbm8pIGNvbnN0IHsKLSAjaWYg ZGVmaW5lZChfX05SX2ZzdGF0YXQpCi0gICAgIGNhc2UgX19OUl9mc3RhdGF0OgotICNlbmRpZgot LSNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pCi0rI2lmIGRl ZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfbmV3ZnN0YXRhdDoKLSAjZW5kaWYKLSAgICAgICBy ZXR1cm4gIWZhc3RfY2hlY2tfaW5fY2xpZW50XyB8fCBhbGxvd2VkX2NvbW1hbmRfc2V0Xy50ZXN0 KENPTU1BTkRfU1RBVCk7Ci1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMv bGludXhfc2VjY29tcC5oIHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc2VjY29t cC5oCi1pbmRleCBhNjBmZTJhZDMuLjlkY2NkYjUxZCAxMDA2NDQKLS0tLSBzYW5kYm94L2xpbnV4 L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NlY2NvbXAuaAotKysrIHNhbmRib3gvbGludXgvc3lzdGVt X2hlYWRlcnMvbGludXhfc2VjY29tcC5oCi1AQCAtMjksNiArMjksOSBAQAotICNpZm5kZWYgRU1f QUFSQ0g2NAotICNkZWZpbmUgRU1fQUFSQ0g2NCAxODMKLSAjZW5kaWYKLSsjaWZuZGVmIEVNX1BQ QzY0Ci0rI2RlZmluZSBFTV9QUEM2NCAyMQotKyNlbmRpZgotIAotICNpZm5kZWYgX19BVURJVF9B UkNIXzY0QklUCi0gI2RlZmluZSBfX0FVRElUX0FSQ0hfNjRCSVQgMHg4MDAwMDAwMAotQEAgLTU0 LDYgKzU3LDEyIEBACi0gI2lmbmRlZiBBVURJVF9BUkNIX0FBUkNINjQKLSAjZGVmaW5lIEFVRElU X0FSQ0hfQUFSQ0g2NCAoRU1fQUFSQ0g2NCB8IF9fQVVESVRfQVJDSF82NEJJVCB8IF9fQVVESVRf QVJDSF9MRSkKLSAjZW5kaWYKLSsjaWZuZGVmIEFVRElUX0FSQ0hfUFBDNjQKLSsjZGVmaW5lIEFV RElUX0FSQ0hfUFBDNjQgKEVNX1BQQzY0IHwgX19BVURJVF9BUkNIXzY0QklUKQotKyNlbmRpZgot KyNpZm5kZWYgQVVESVRfQVJDSF9QUEM2NExFCi0rI2RlZmluZSBBVURJVF9BUkNIX1BQQzY0TEUg KEVNX1BQQzY0IHwgX19BVURJVF9BUkNIXzY0QklUIHwgX19BVURJVF9BUkNIX0xFKQotKyNlbmRp ZgotIAotIC8vIEZvciBwcmN0bC5oCi0gI2lmbmRlZiBQUl9TRVRfU0VDQ09NUAotZGlmZiAtLWdp dCBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NpZ25hbC5oIHNhbmRib3gvbGlu dXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc2lnbmFsLmgKLWluZGV4IGY1YTczNjc2MS4uNTE1YjIx YTVmIDEwMDY0NAotLS0tIHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc2lnbmFs LmgKLSsrKyBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NpZ25hbC5oCi1AQCAt MTMsNyArMTMsNyBAQAotIC8vIChub3QgdW5kZWZpbmVkLCBidXQgZGVmaW5lZCBkaWZmZXJlbnQg dmFsdWVzIGFuZCBpbiBkaWZmZXJlbnQgbWVtb3J5Ci0gLy8gbGF5b3V0cykuIFNvLCBmaWxsIHRo ZSBnYXAgaGVyZS4KLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9f KSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsg ICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIAotICNk ZWZpbmUgTElOVVhfU0lHSFVQIDEKLSAjZGVmaW5lIExJTlVYX1NJR0lOVCAyCi1kaWZmIC0tZ2l0 IHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc3lzY2FsbHMuaCBzYW5kYm94L2xp bnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N5c2NhbGxzLmgKLWluZGV4IDJiNzhhMGNjMy4uMGE3 MGY1ZWE1IDEwMDY0NAotLS0tIHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc3lz Y2FsbHMuaAotKysrIHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc3lzY2FsbHMu aAotQEAgLTM1LDUgKzM1LDkgQEAKLSAjaW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVh ZGVycy9hcm02NF9saW51eF9zeXNjYWxscy5oIgotICNlbmRpZgotIAotKyNpZiBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCi0rI2luY2x1ZGUgInNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvcHBj NjRfbGludXhfc3lzY2FsbHMuaCIKLSsjZW5kaWYKLSsKLSAjZW5kaWYgIC8vIFNBTkRCT1hfTElO VVhfU1lTVEVNX0hFQURFUlNfTElOVVhfU1lTQ0FMTFNfSF8KLSAKLWRpZmYgLS1naXQgc2FuZGJv eC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF91Y29udGV4dC5oIHNhbmRib3gvbGludXgvc3lz dGVtX2hlYWRlcnMvbGludXhfdWNvbnRleHQuaAotaW5kZXggMjJjZTc4MDI3Li5hNjliMDI0YzIg MTAwNjQ0Ci0tLS0gc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF91Y29udGV4dC5o Ci0rKysgc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF91Y29udGV4dC5oCi1AQCAt MTEsNiArMTEsOCBAQAotICNpbmNsdWRlICJzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2Fy bV9saW51eF91Y29udGV4dC5oIgotICNlbGlmIGRlZmluZWQoX19pMzg2X18pCi0gI2luY2x1ZGUg InNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvaTM4Nl9saW51eF91Y29udGV4dC5oIgotKyNl bGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsjaW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0 ZW1faGVhZGVycy9wcGM2NF9saW51eF91Y29udGV4dC5oIgotICNlbHNlCi0gI2Vycm9yICJObyBz dXBwb3J0IGZvciB5b3VyIGFyY2hpdGVjdHVyZSBpbiBQTmFDbCBoZWFkZXIiCi0gI2VuZGlmCi1k aWZmIC0tZ2l0IHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhfc3lzY2Fs bHMuaCBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3N5c2NhbGxzLmgK LW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMDAuLmNjYWNmZmUyMgotLS0tIC9k ZXYvbnVsbAotKysrIHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhfc3lz Y2FsbHMuaAotQEAgLTAsMCArMSwxMiBAQAotKy8vIENvcHlyaWdodCAyMDE0IFRoZSBDaHJvbWl1 bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBj b2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSsvLyBm b3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotKwotKyNpZm5kZWYgU0FOREJPWF9MSU5VWF9TWVNU RU1fSEVBREVSU19QUEM2NF9MSU5VWF9TWVNDQUxMU19IXwotKyNkZWZpbmUgU0FOREJPWF9MSU5V WF9TWVNURU1fSEVBREVSU19QUEM2NF9MSU5VWF9TWVNDQUxMU19IXwotKwotKyNpbmNsdWRlIDxh c20vdW5pc3RkLmg+Ci0rCi0rLy9UT0RPOiBpcyBpdCBuZWNlc3NhcnkgdG8gcmVkZWZpbmUgc3lz Y2FsbCBudW1iZXJzIGZvciBQUEM2ND8KLSsKLSsjZW5kaWYgIC8vIFNBTkRCT1hfTElOVVhfU1lT VEVNX0hFQURFUlNfUFBDNjRfTElOVVhfU1lTQ0FMTFNfSF8KLWRpZmYgLS1naXQgc2FuZGJveC9s aW51eC9zeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF91Y29udGV4dC5oIHNhbmRib3gvbGludXgv c3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhfdWNvbnRleHQuaAotbmV3IGZpbGUgbW9kZSAxMDA2 NDQKLWluZGV4IDAwMDAwMDAwMC4uMDc3MjhlMDg3Ci0tLS0gL2Rldi9udWxsCi0rKysgc2FuZGJv eC9saW51eC9zeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF91Y29udGV4dC5oCi1AQCAtMCwwICsx LDEyIEBACi0rLy8gQ29weXJpZ2h0IDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdo dHMgcmVzZXJ2ZWQuCi0rLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg YSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNF IGZpbGUuCi0rCi0rI2lmbmRlZiBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQQzY0X0xJ TlVYX1VDT05URVhUX0hfCi0rI2RlZmluZSBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQ QzY0X0xJTlVYX1VDT05URVhUX0hfCi0rCi0rI2luY2x1ZGUgPHN5cy91Y29udGV4dC5oPgotKwot Ky8vVE9ETzogaXMgaXQgbmVjZXNzYXJ5IHRvIHJlZGVmaW5lIHVjb250ZXh0IG9uIFBQQzY0Pwot KwotKyNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19QUEM2NF9MSU5VWF9V Q09OVEVYVF9IXwotZGlmZiAtLWdpdCBzZXJ2aWNlcy9zZXJ2aWNlX21hbmFnZXIvc2FuZGJveC9s aW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjIHNlcnZpY2VzL3NlcnZpY2VfbWFuYWdl ci9zYW5kYm94L2xpbnV4L2JwZl9yZW5kZXJlcl9wb2xpY3lfbGludXguY2MKLWluZGV4IGZiODli MzM1Ni4uMWU5ODQ3MzFlIDEwMDY0NAotLS0tIHNhbmRib3gvcG9saWN5L2xpbnV4L2JwZl9yZW5k ZXJlcl9wb2xpY3lfbGludXguY2MKLSsrKyBzYW5kYm94L3BvbGljeS9saW51eC9icGZfcmVuZGVy ZXJfcG9saWN5X2xpbnV4LmNjCi1AQCAtMTUsNiArMTUsMTEgQEAKLSAjaW5jbHVkZSAic2FuZGJv eC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zeXNjYWxscy5oIgotICNpbmNsdWRlICJzZXJ2 aWNlcy9zZXJ2aWNlX21hbmFnZXIvc2FuZGJveC9saW51eC9zYW5kYm94X2xpbnV4LmgiCi0gCi0r Ly8gT24gUFBDNjQsIFRDR0VUUyBpcyBkZWZpbmVkIGluIHRlcm1zIG9mIHN0cnVjdCB0ZXJtaW9z LCBzbyB3ZSBtdXN0IGluY2x1ZGUgdGVybWlvcy5oCi0rI2lmZGVmIF9fcG93ZXJwYzY0X18KLSsj aW5jbHVkZSA8dGVybWlvcy5oPgotKyNlbmRpZgotKwotIC8vIFRPRE8odmlnbmF0dGkpOiByZXBs YWNlIHRoZSBsb2NhbCBkZWZpbml0aW9ucyBiZWxvdyB3aXRoICNpbmNsdWRlCi0gLy8gPGxpbnV4 L2RtYS1idWYuaD4gb25jZSBrZXJuZWwgdmVyc2lvbiA0LjYgYmVjb21lcyB3aWRlbHkgdXNlZC4K LSAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYW5nbGUv c3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvSW5mb1NpbmsuaCB0aGlyZF9wYXJ0eS9hbmdsZS9zcmMv Y29tcGlsZXIvdHJhbnNsYXRvci9JbmZvU2luay5oCi1pbmRleCAzYTgwN2UxZS4uNTI1ODYxN2Eg MTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYW5nbGUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvSW5m b1NpbmsuaAotKysrIHRoaXJkX3BhcnR5L2FuZ2xlL3NyYy9jb21waWxlci90cmFuc2xhdG9yL0lu Zm9TaW5rLmgKLUBAIC05Miw3ICs5MiwxNiBAQCBjbGFzcyBUSW5mb1NpbmtCYXNlCi0gICAgICAg ICAgICAgc3RyZWFtLnByZWNpc2lvbig4KTsKLSAgICAgICAgICAgICBzdHJlYW0gPDwgZjsKLSAg ICAgICAgIH0KLS0gICAgICAgIHNpbmsuYXBwZW5kKHN0cmVhbS5zdHIoKSk7Ci0rCi0rICAgICAg ICAvLyBIYWNrIHRvIHdvcmsgYXJvdW5kIGEgYnVnIHdoZXJlIG5lZ2F0aXZlIGZsb2F0aW5nIHBv aW50IHZhbHVlcwotKyAgICAgICAgLy8gYXJlIHJlbmRlcmVkIGxpa2UgJy4wLjUnIGluc3RlYWQg b2YgJy0wLjUnCi0rICAgICAgICBzdGQ6OnN0cmluZyByZXMoc3RyZWFtLnN0cigpKTsKLSsKLSsg ICAgICAgIGlmIChzaWduYml0KGYpKSB7IC8vIHRlc3QgaWYgZiBpcyBuZWdhdGl2ZQotKyAgICAg ICAgICAgIHJlc1swXSA9ICctJzsKLSsgICAgICAgIH0KLSsKLSsgICAgICAgIHNpbmsuYXBwZW5k KHJlcyk7Ci0gICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgIH0KLSAgICAgLy8gV3JpdGUgYm9v bGVhbiB2YWx1ZXMgYXMgdGhlaXIgbmFtZXMgaW5zdGVhZCBvZiBpbnRlZ3JhbCB2YWx1ZS4KLWRp ZmYgLS1naXQgdGhpcmRfcGFydHkvYW5nbGUvc3JjL2xpYkFOR0xFL0NvbnN0YW50cy5oIHRoaXJk X3BhcnR5L2FuZ2xlL3NyYy9saWJBTkdMRS9Db25zdGFudHMuaAotaW5kZXggNDI5NjRjYzEuLjY2 MDdkZWViIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2FuZ2xlL3NyYy9saWJBTkdMRS9Db25zdGFu dHMuaAotKysrIHRoaXJkX3BhcnR5L2FuZ2xlL3NyYy9saWJBTkdMRS9Db25zdGFudHMuaAotQEAg LTksNiArOSw3IEBACi0gI2lmbmRlZiBMSUJBTkdMRV9DT05TVEFOVFNfSF8KLSAjZGVmaW5lIExJ QkFOR0xFX0NPTlNUQU5UU19IXwotIAotKyNpbmNsdWRlIDxjc3RkZGVmPgotICNpbmNsdWRlICJj b21tb24vcGxhdGZvcm0uaCIKLSAKLSAjaW5jbHVkZSA8c3RkaW50Lmg+Ci1kaWZmIC0tZ2l0IHRo aXJkX3BhcnR5L2JvcmluZ3NzbC9CVUlMRC5nbiB0aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvQlVJTEQu Z24KLWluZGV4IGI0MzU0OTlmNC4uYWM4YTg0YjZkIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2Jv cmluZ3NzbC9CVUlMRC5nbgotKysrIHRoaXJkX3BhcnR5L2JvcmluZ3NzbC9CVUlMRC5nbgotQEAg LTEwMSw2ICsxMDEsMTMgQEAgaWYgKGlzX3dpbiAmJiAhaXNfbXNhbiAmJiBjdXJyZW50X2NwdSAh PSAiYXJtNjQiKSB7Ci0gICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHB1YmxpY19jb25maWdzID0g WyAiOm5vX2FzbV9jb25maWciIF0KLSAgICAgICB9Ci0rICAgIH0gZWxzZSBpZiAoY3VycmVudF9j cHUgPT0gInBwYzY0IikgewotKyAgICAgIGlmIChpc19saW51eCkgewotKyAgICAgICAgIyBUT0RP OiBwcGM2NCAoYmUpIGNoZWNrCi0rICAgICAgICBzb3VyY2VzICs9IGNyeXB0b19zb3VyY2VzX2xp bnV4X3BwYzY0bGUKLSsgICAgICB9IGVsc2UgewotKyAgICAgICAgcHVibGljX2NvbmZpZ3MgPSBb ICI6bm9fYXNtX2NvbmZpZyIgXQotKyAgICAgIH0KLSAgICAgfSBlbHNlIHsKLSAgICAgICBwdWJs aWNfY29uZmlncyA9IFsgIjpub19hc21fY29uZmlnIiBdCi0gICAgIH0KLWRpZmYgLS1naXQgdGhp cmRfcGFydHkvYnJlYWtwYWQvQlVJTEQuZ24gdGhpcmRfcGFydHkvYnJlYWtwYWQvQlVJTEQuZ24K LWluZGV4IDU2MTdkZTg4Li5kYzhiYzE3NiAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3Bh ZC9CVUlMRC5nbgotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL0JVSUxELmduCi1AQCAtNTk4LDcg KzU5OCw2IEBAIGlmIChpc19saW51eCB8fCBpc19hbmRyb2lkKSB7Ci0gICAgICAgImJyZWFrcGFk L3NyYy9jbGllbnQvbWluaWR1bXBfZmlsZV93cml0ZXIuaCIsCi0gICAgICAgImJyZWFrcGFkL3Ny Yy9jb21tb24vY29udmVydF9VVEYuY2MiLAotICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2Nv bnZlcnRfVVRGLmgiLAotLSAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2JyZWFrcGFk X2dldGNvbnRleHQuUyIsCi0gICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmX2Nv cmVfZHVtcC5jYyIsCi0gICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmX2NvcmVf ZHVtcC5oIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZ1dGlscy5jYyIs Ci1AQCAtNjM2LDYgKzYzNSwxNCBAQCBpZiAoaXNfbGludXggfHwgaXNfYW5kcm9pZCkgewotIAot ICAgICBsaWJzID0gWyAiZGwiIF0KLSAKLSsgICAgaWYgKGN1cnJlbnRfY3B1ID09ICJwcGM2NCIp IHsKLSsgICAgICAgIGRlZmluZXMgPSBbICJIQVZFX0dFVENPTlRFWFQiIF0KLSsgICAgfSBlbHNl IHsKLSsgICAgICAgIHNvdXJjZXMgKz0gWwotKyAgICAgICAgICAgICJicmVha3BhZC9zcmMvY29t bW9uL2xpbnV4L2JyZWFrcGFkX2dldGNvbnRleHQuUyIKLSsgICAgICAgIF0KLSsgICAgfQotKwot ICAgICBpbmNsdWRlX2RpcnMgPSBbCi0gICAgICAgIi4iLAotICAgICAgICJicmVha3BhZC9zcmMi LAotQEAgLTY4Niw3ICs2OTMsNiBAQCBpZiAoaXNfbGludXggfHwgaXNfYW5kcm9pZCkgewotICAg ICAgICJicmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93 cml0ZXJfdW5pdHRlc3QuY2MiLAotICAgICAgICJicmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21p bmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXJfdW5pdHRlc3RfdXRpbHMuY2MiLAotICAgICAg ICJicmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9wcm9jX2NwdWluZm9f cmVhZGVyX3VuaXR0ZXN0LmNjIiwKLS0gICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9i cmVha3BhZF9nZXRjb250ZXh0X3VuaXR0ZXN0LmNjIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2Nv bW1vbi9saW51eC9lbGZfY29yZV9kdW1wX3VuaXR0ZXN0LmNjIiwKLSAgICAgICAiYnJlYWtwYWQv c3JjL2NvbW1vbi9saW51eC9maWxlX2lkX3VuaXR0ZXN0LmNjIiwKLSAgICAgICAiYnJlYWtwYWQv c3JjL2NvbW1vbi9saW51eC9saW51eF9saWJjX3N1cHBvcnRfdW5pdHRlc3QuY2MiLAotZGlmZiAt LWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBf d3JpdGVyX2NvbW1vbi9yYXdfY29udGV4dF9jcHUuaCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi9yYXdfY29udGV4dF9jcHUu aAotaW5kZXggMDdkOTE3MWEuLjlhZWQ0Y2IzIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Jhd19jb250 ZXh0X2NwdS5oCi0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9kdW1wX3dyaXRlcl9jb21tb24vcmF3X2NvbnRleHRfY3B1LmgKLUBAIC00NCw2ICs0NCw4 IEBAIHR5cGVkZWYgTURSYXdDb250ZXh0QVJNIFJhd0NvbnRleHRDUFU7Ci0gdHlwZWRlZiBNRFJh d0NvbnRleHRBUk02NF9PbGQgUmF3Q29udGV4dENQVTsKLSAjZWxpZiBkZWZpbmVkKF9fbWlwc19f KQotIHR5cGVkZWYgTURSYXdDb250ZXh0TUlQUyBSYXdDb250ZXh0Q1BVOwotKyNlbGlmIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSt0eXBlZGVmIE1EUmF3Q29udGV4dFBQQzY0IFJhd0NvbnRleHRD UFU7Ci0gI2Vsc2UKLSAjZXJyb3IgIlRoaXMgY29kZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlv dXIgcGxhdGZvcm0geWV0LiIKLSAjZW5kaWYKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2lu Zm8uY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1w X3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MKLWluZGV4IGFhZTFkYzEzLi4wM2FmZWM3YSAx MDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4 L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9p bmZvLmNjCi1AQCAtMjcwLDcgKzI3MCw0MiBAQCB2b2lkIFRocmVhZEluZm86OkZpbGxDUFVDb250 ZXh0KFJhd0NvbnRleHRDUFUqIG91dCkgY29uc3QgewotICAgb3V0LT5mbG9hdF9zYXZlLmZpciA9 IG1jb250ZXh0LmZwY19laXI7Ci0gI2VuZGlmCi0gfQotLSNlbmRpZiAgLy8gX19taXBzX18KLSsK LSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rCi0rdWludHB0cl90IFRocmVhZEluZm86 OkdldEluc3RydWN0aW9uUG9pbnRlcigpIGNvbnN0IHsKLSsgICAgcmV0dXJuIG1jb250ZXh0Lmdw X3JlZ3NbUFRfTklQXTsKLSt9Ci0rCi0rdm9pZCBUaHJlYWRJbmZvOjpGaWxsQ1BVQ29udGV4dChS YXdDb250ZXh0Q1BVKiBvdXQpIGNvbnN0IHsKLSsgICAgb3V0LT5jb250ZXh0X2ZsYWdzID0gTURf Q09OVEVYVF9QUEM2NF9GVUxMOwotKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0NPTlRFWFRf UFBDNjRfR1BSX0NPVU5UOyBpKyspCi0rICAgICAgICBvdXQtPmdwcltpXSA9IG1jb250ZXh0Lmdw X3JlZ3NbaV07Ci0rCi0rICAgIG91dC0+bHIgPSBtY29udGV4dC5ncF9yZWdzW1BUX0xOS107Ci0r ICAgIG91dC0+c3JyMCA9IG1jb250ZXh0LmdwX3JlZ3NbUFRfTklQXTsKLSsgICAgb3V0LT5zcnIx ID0gbWNvbnRleHQuZ3BfcmVnc1tQVF9NU1JdOwotKyAgICBvdXQtPmNyID0gbWNvbnRleHQuZ3Bf cmVnc1tQVF9DQ1JdOwotKyAgICBvdXQtPnhlciA9IG1jb250ZXh0LmdwX3JlZ3NbUFRfWEVSXTsK LSsgICAgb3V0LT5jdHIgPSBtY29udGV4dC5ncF9yZWdzW1BUX0NUUl07Ci0rICAgIAotKyAgICBm b3IgKGludCBpID0gMDsgaSA8IE1EX0ZMT0FUSU5HU0FWRUFSRUFfUFBDX0ZQUl9DT1VOVDsgaSsr KQotKyAgICAgICAgb3V0LT5mbG9hdF9zYXZlLmZwcmVnc1tpXSA9IG1jb250ZXh0LmZwX3JlZ3Nb aV07Ci0rCi0rICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHNjciA9IG1jb250ZXh0LmZwX3JlZ3NbTkZQ UkVHLTFdOwotKwotKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX1ZFQ1RPUlNBVkVBUkVBX1BQ Q19WUl9DT1VOVDsgaSsrKQotKyAgICAgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldID0g XAotKyAgICAgICAgICAgIHsoKCh1aW50NjRfdCl2cmVncy52cnJlZ3NbaV1bMF0pIDw8IDMyKSAK LSsgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdnJlZ3MudnJyZWdzW2ldWzFdLCAKLSsgICAg ICAgICAgICAoKCh1aW50NjRfdCl2cmVncy52cnJlZ3NbaV1bMl0pIDw8IDMyKQotKyAgICAgICAg ICAgICAgICAgICAgICAgICB8IHZyZWdzLnZycmVnc1tpXVszXX07Ci0rCi0rICAgIG91dC0+dnJz YXZlID0gdnJlZ3MudnJzYXZlOwotKyAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVfdnNjciA9IHsw LCB2cmVncy52c2NyLnZzY3Jfd29yZH07Ci0rICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92cnZh bGlkID0gMHhGRkZGRkZGRjsgCi0rfQotKyNlbmRpZiAgLy8gX19wb3dlcnBjNjRfXwotIAotIHZv aWQgVGhyZWFkSW5mbzo6R2V0R2VuZXJhbFB1cnBvc2VSZWdpc3RlcnModm9pZCoqIGdwX3JlZ3Ms IHNpemVfdCogc2l6ZSkgewotICAgYXNzZXJ0KGdwX3JlZ3MgfHwgc2l6ZSk7Ci1AQCAtMjc5LDYg KzMxNCwxMSBAQCB2b2lkIFRocmVhZEluZm86OkdldEdlbmVyYWxQdXJwb3NlUmVnaXN0ZXJzKHZv aWQqKiBncF9yZWdzLCBzaXplX3QqIHNpemUpIHsKLSAgICAgKmdwX3JlZ3MgPSBtY29udGV4dC5n cmVnczsKLSAgIGlmIChzaXplKQotICAgICAqc2l6ZSA9IHNpemVvZihtY29udGV4dC5ncmVncyk7 Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgaWYgKGdwX3JlZ3MpCi0rICAgICpn cF9yZWdzID0gbWNvbnRleHQuZ3BfcmVnczsKLSsgIGlmIChzaXplKQotKyAgICAqc2l6ZSA9IHNp emVvZihtY29udGV4dC5ncF9yZWdzKTsKLSAjZWxzZQotICAgaWYgKGdwX3JlZ3MpCi0gICAgICpn cF9yZWdzID0gJnJlZ3M7Ci1AQCAtMjk0LDYgKzMzNCwxMSBAQCB2b2lkIFRocmVhZEluZm86Okdl dEZsb2F0aW5nUG9pbnRSZWdpc3RlcnModm9pZCoqIGZwX3JlZ3MsIHNpemVfdCogc2l6ZSkgewot ICAgICAqZnBfcmVncyA9ICZtY29udGV4dC5mcHJlZ3M7Ci0gICBpZiAoc2l6ZSkKLSAgICAgKnNp emUgPSBzaXplb2YobWNvbnRleHQuZnByZWdzKTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCi0rICBpZiAoZnBfcmVncykKLSsgICAgKmZwX3JlZ3MgPSAmbWNvbnRleHQuZnBfcmVnczsK LSsgIGlmIChzaXplKQotKyAgICAqc2l6ZSA9IHNpemVvZihtY29udGV4dC5mcF9yZWdzKTsKLSAj ZWxzZQotICAgaWYgKGZwX3JlZ3MpCi0gICAgICpmcF9yZWdzID0gJmZwcmVnczsKLUBAIC0zMDIs NCArMzQ3LDEzIEBAIHZvaWQgVGhyZWFkSW5mbzo6R2V0RmxvYXRpbmdQb2ludFJlZ2lzdGVycyh2 b2lkKiogZnBfcmVncywgc2l6ZV90KiBzaXplKSB7Ci0gI2VuZGlmCi0gfQotIAotKyNpZiBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCi0rdm9pZCBUaHJlYWRJbmZvOjpHZXRWZWN0b3JSZWdpc3RlcnMo dm9pZCoqIHZfcmVncywgc2l6ZV90KiBzaXplKSB7Ci0rICAgIGlmICh2X3JlZ3MpCi0rICAgICAg ICAqdl9yZWdzID0gJnZyZWdzOwotKyAgICBpZiAoc2l6ZSkKLSsgICAgICAgICpzaXplID0gc2l6 ZW9mKHZyZWdzKTsKLSt9Ci0rI2VuZGlmCi0rCi0gfSAgLy8gbmFtZXNwYWNlIGdvb2dsZV9icmVh a3BhZAotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5oIHRoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9p bmZvLmgKLWluZGV4IGZiMjE2ZmE2Li41OTNhYWM4MiAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJl YWRfaW5mby5oCi0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uaAotQEAgLTY4LDYgKzY4LDEwIEBA IHN0cnVjdCBUaHJlYWRJbmZvIHsKLSAgIC8vIFVzZSB0aGUgc3RydWN0dXJlcyBkZWZpbmVkIGlu IDxzeXMvdXNlci5oPgotICAgc3RydWN0IHVzZXJfcmVnc19zdHJ1Y3QgcmVnczsKLSAgIHN0cnVj dCB1c2VyX2Zwc2ltZF9zdHJ1Y3QgZnByZWdzOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRf XykKLSsgIC8vIFVzZSB0aGUgc3RydWN0dXJlcyBkZWZpbmVkIGluIDxzeXMvdWNvbnRleHQuaD4u Ci0rICBtY29udGV4dF90IG1jb250ZXh0OwotKyAgdnJyZWdzZXRfdCB2cmVnczsKLSAjZWxpZiBk ZWZpbmVkKF9fbWlwc19fKQotICAgLy8gVXNlIHRoZSBzdHJ1Y3R1cmUgZGVmaW5lZCBpbiA8c3lz L3Vjb250ZXh0Lmg+LgotICAgbWNvbnRleHRfdCBtY29udGV4dDsKLUBAIC04NCw2ICs4OCwxMSBA QCBzdHJ1Y3QgVGhyZWFkSW5mbyB7Ci0gCi0gICAvLyBSZXR1cm5zIHRoZSBwb2ludGVyIGFuZCBz aXplIG9mIGZsb2F0IHBvaW50IHJlZ2lzdGVyIGFyZWEuCi0gICB2b2lkIEdldEZsb2F0aW5nUG9p bnRSZWdpc3RlcnModm9pZCoqIGZwX3JlZ3MsIHNpemVfdCogc2l6ZSk7Ci0rCi0rI2lmIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSsgIC8vIFJldHVybnMgdGhlIHBvaW50ZXIgYW5kIHNpemUgb2Yg dGhlIHZlY3RvciByZWdpc3RlciBhcmVhLiAoUFBDNjQgb25seSkKLSsgIHZvaWQgR2V0VmVjdG9y UmVnaXN0ZXJzKHZvaWQqKiB2X3JlZ3MsIHNpemVfdCogc2l6ZSk7Ci0rI2VuZGlmCi0gfTsKLSAK LSB9ICAvLyBuYW1lc3BhY2UgZ29vZ2xlX2JyZWFrcGFkCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vj b250ZXh0X3JlYWRlci5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuY2MKLWluZGV4IGVlNTE1 YzQxLi4xMDkwNDcwZiAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuY2MKLSsr KyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3Jp dGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuY2MKLUBAIC0yNTQsNiArMjU0LDQ4IEBAIHZvaWQg VUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUgKm91dCwgY29uc3Qg dWNvbnRleHRfdCAqdWMpIHsKLSAgIG91dC0+ZmxvYXRfc2F2ZS5maXIgPSB1Yy0+dWNfbWNvbnRl eHQuZnBjX2VpcjsgIC8vIFVudXNlZC4KLSAjZW5kaWYKLSB9Ci0rCi0rI2VsaWYgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQotKwotK3VpbnRwdHJfdCBVQ29udGV4dFJlYWRlcjo6R2V0U3RhY2tQb2lu dGVyKGNvbnN0IHVjb250ZXh0X3QqIHVjKSB7Ci0rICAgIHJldHVybiB1Yy0+dWNfbWNvbnRleHQu Z3BfcmVnc1tNRF9DT05URVhUX1BQQzY0X1JFR19TUF07Ci0rfQotKwotK3VpbnRwdHJfdCBVQ29u dGV4dFJlYWRlcjo6R2V0SW5zdHJ1Y3Rpb25Qb2ludGVyKGNvbnN0IHVjb250ZXh0X3QqIHVjKSB7 Ci0rICAgIHJldHVybiB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdOwotK30KLSsKLSt2 b2lkIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVKiBvdXQsIGNv bnN0IHVjb250ZXh0X3QqIHVjLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IHZycmVnc2V0X3QqIHZyZWdzKSB7Ci0rICAgIG91dC0+Y29udGV4dF9mbGFncyA9IE1E X0NPTlRFWFRfUFBDNjRfRlVMTDsKLSsKLSsgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9DT05U RVhUX1BQQzY0X0dQUl9DT1VOVDsgaSsrKQotKyAgICAgICAgb3V0LT5ncHJbaV0gPSB1Yy0+dWNf bWNvbnRleHQuZ3BfcmVnc1tpXTsKLSsKLSsgICAgb3V0LT5sciA9IHVjLT51Y19tY29udGV4dC5n cF9yZWdzW1BUX0xOS107ICAgIAotKyAgICBvdXQtPnNycjAgPSB1Yy0+dWNfbWNvbnRleHQuZ3Bf cmVnc1tQVF9OSVBdOwotKyAgICBvdXQtPnNycjEgPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQ VF9NU1JdOwotKyAgICBvdXQtPmNyID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfQ0NSXTsK LSsgICAgb3V0LT54ZXIgPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9YRVJdOwotKyAgICBv dXQtPmN0ciA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0NUUl07Ci0rICAgIAotKyAgICBm b3IgKGludCBpID0gMDsgaSA8IE1EX0ZMT0FUSU5HU0FWRUFSRUFfUFBDX0ZQUl9DT1VOVDsgaSsr KQotKyAgICAgICAgb3V0LT5mbG9hdF9zYXZlLmZwcmVnc1tpXSA9IHVjLT51Y19tY29udGV4dC5m cF9yZWdzW2ldOwotKwotKyAgICBvdXQtPmZsb2F0X3NhdmUuZnBzY3IgPSB1Yy0+dWNfbWNvbnRl eHQuZnBfcmVnc1tORlBSRUctMV07Ci0rCi0rICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfVkVD VE9SU0FWRUFSRUFfUFBDX1ZSX0NPVU5UOyBpKyspCi0rICAgICAgICBvdXQtPnZlY3Rvcl9zYXZl LnNhdmVfdnJbaV0gPQotKyAgICAgICAgICAgIHsoKCh1aW50NjRfdCl2cmVncy0+dnJyZWdzW2ld WzBdKSA8PCAzMikgCi0rICAgICAgICAgICAgICAgICAgICAgICAgIHwgdnJlZ3MtPnZycmVnc1tp XVsxXSwgCi0rICAgICAgICAgICAgICgoKHVpbnQ2NF90KXZyZWdzLT52cnJlZ3NbaV1bMl0pIDw8 IDMyKQotKyAgICAgICAgICAgICAgICAgICAgICAgICB8IHZyZWdzLT52cnJlZ3NbaV1bM119Owot KwotKyAgICBvdXQtPnZyc2F2ZSA9IHZyZWdzLT52cnNhdmU7Ci0rICAgIG91dC0+dmVjdG9yX3Nh dmUuc2F2ZV92c2NyID0gezAsIHZyZWdzLT52c2NyLnZzY3Jfd29yZH07Ci0rICAgIG91dC0+dmVj dG9yX3NhdmUuc2F2ZV92cnZhbGlkID0gMHhGRkZGRkZGRjsgCi0rfQotKwotICNlbmRpZgotIAot IH0gIC8vIG5hbWVzcGFjZSBnb29nbGVfYnJlYWtwYWQKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNv bnRleHRfcmVhZGVyLmggdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmgKLWluZGV4IDhlNzRhOGE1 Li43Y2I2NjdhNyAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuaAotKysrIHRo aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJf Y29tbW9uL3Vjb250ZXh0X3JlYWRlci5oCi1AQCAtNTUsNiArNTUsOSBAQCBzdHJ1Y3QgVUNvbnRl eHRSZWFkZXIgewotICNlbGlmIGRlZmluZWQoX19hYXJjaDY0X18pCi0gICBzdGF0aWMgdm9pZCBG aWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVICpvdXQsIGNvbnN0IHVjb250ZXh0X3QgKnVjLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGZwc2ltZF9jb250ZXh0 KiBmcHJlZ3MpOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIHN0YXRpYyB2b2lk IEZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUgKm91dCwgY29uc3QgdWNvbnRleHRfdCAqdWMs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2cnJlZ3NldF90KiB2cmVncyk7 Ci0gI2Vsc2UKLSAgIHN0YXRpYyB2b2lkIEZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUgKm91 dCwgY29uc3QgdWNvbnRleHRfdCAqdWMpOwotICNlbmRpZgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hh bmRsZXIuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9o YW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCi1pbmRleCBjNjVmZWFhMS4uNWE3YWI1MGMgMTAw NjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9o YW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCi0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCi1AQCAt NDYxLDkgKzQ2MSwxNiBAQCBib29sIEV4Y2VwdGlvbkhhbmRsZXI6OkhhbmRsZVNpZ25hbChpbnQg LypzaWcqLywgc2lnaW5mb190KiBpbmZvLCB2b2lkKiB1YykgewotICAgICBtZW1jcHkoJmdfY3Jh c2hfY29udGV4dF8uZmxvYXRfc3RhdGUsIGZwX3B0ciwKLSAgICAgICAgICAgIHNpemVvZihnX2Ny YXNoX2NvbnRleHRfLmZsb2F0X3N0YXRlKSk7Ci0gICB9Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotKyAgLy8gT24gUFBDNjQsIHdlIG11c3QgY29weSBWUiBzdGF0ZQotKyAgdWNvbnRl eHRfdCogdWNfcHRyID0gKHVjb250ZXh0X3QqKXVjOwotKyAgaWYgKHVjX3B0ci0+dWNfbWNvbnRl eHQudl9yZWdzKSB7Ci0rICAgIG1lbWNweSgmZ19jcmFzaF9jb250ZXh0Xy52ZWN0b3Jfc3RhdGUs IHVjX3B0ci0+dWNfbWNvbnRleHQudl9yZWdzLAotKyAgICAgICAgICAgc2l6ZW9mKGdfY3Jhc2hf Y29udGV4dF8udmVjdG9yX3N0YXRlKSk7Ci0rICB9Ci0gI2VsaWYgIWRlZmluZWQoX19BUk1fRUFC SV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSAgIC8vIEZQIHN0YXRlIGlzIG5vdCBwYXJ0IG9m IHVzZXIgQUJJIG9uIEFSTSBMaW51eC4KLS0gIC8vIEluIGNhc2Ugb2YgTUlQUyBMaW51eCBGUCBz dGF0ZSBpcyBhbHJlYWR5IHBhcnQgb2YgdWNvbnRleHRfdAotKyAgLy8gSW4gY2FzZSBvZiBNSVBT LCBMaW51eCBGUCBzdGF0ZSBpcyBhbHJlYWR5IHBhcnQgb2YgdWNvbnRleHRfdAotICAgLy8gYW5k ICdmbG9hdF9zdGF0ZScgaXMgbm90IGEgbWVtYmVyIG9mIENyYXNoQ29udGV4dC4KLSAgIHVjb250 ZXh0X3QqIHVjX3B0ciA9ICh1Y29udGV4dF90Kil1YzsKLSAgIGlmICh1Y19wdHItPnVjX21jb250 ZXh0LmZwcmVncykgewotQEAgLTcwMSwxMSArNzA4LDE5IEBAIGJvb2wgRXhjZXB0aW9uSGFuZGxl cjo6V3JpdGVNaW5pZHVtcCgpIHsKLSAgIH0KLSAjZW5kaWYKLSAKLS0jaWYgIWRlZmluZWQoX19B Uk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmluZWQoX19taXBzX18p Ci0rI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19hYXJjaDY0X18pICYm ICFkZWZpbmVkKF9fbWlwc19fKSBcCi0rICAgICYmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0g ICAvLyBGUFUgc3RhdGUgaXMgbm90IHBhcnQgb2YgQVJNIEVBQkkgdWNvbnRleHRfdC4KLSAgIG1l bWNweSgmY29udGV4dC5mbG9hdF9zdGF0ZSwgY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0LmZw cmVncywKLSAgICAgICAgICBzaXplb2YoY29udGV4dC5mbG9hdF9zdGF0ZSkpOwotICNlbmRpZgot KwotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAvLyBWZWN0b3IgcmVnaXN0ZXJzIG11 c3QgYmUgY29waWVkIG9uIFBQQzY0Ci0rICBtZW1jcHkoJmNvbnRleHQudmVjdG9yX3N0YXRlLCBj b250ZXh0LmNvbnRleHQudWNfbWNvbnRleHQudl9yZWdzLAotKyAgICAgICAgIHNpemVvZihjb250 ZXh0LnZlY3Rvcl9zdGF0ZSkpOwotKyNlbmRpZgotKwotICAgY29udGV4dC50aWQgPSBzeXNfZ2V0 dGlkKCk7Ci0gCi0gICAvLyBBZGQgYW4gZXhjZXB0aW9uIHN0cmVhbSB0byB0aGUgbWluaWR1bXAg Zm9yIGJldHRlciByZXBvcnRpbmcuCi1AQCAtNzI2LDYgKzc0MSw5IEBAIGJvb2wgRXhjZXB0aW9u SGFuZGxlcjo6V3JpdGVNaW5pZHVtcCgpIHsKLSAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQotICAg Y29udGV4dC5zaWdpbmZvLnNpX2FkZHIgPQotICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+ KGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC5wYyk7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotKyAgY29udGV4dC5zaWdpbmZvLnNpX2FkZHIgPQotKyAgICAgIHJlaW50ZXJwcmV0 X2Nhc3Q8dm9pZCo+KGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC5ncF9yZWdzW1BUX05JUF0p OwotICNlbHNlCi0gI2Vycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB5b3Vy IHBsYXRmb3JtIHlldC4iCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5oIHRo aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNl cHRpb25faGFuZGxlci5oCi1pbmRleCBmNDQ0ODNmZi4uMzZjZTZkNmMgMTAwNjQ0Ci0tLS0gdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2Vw dGlvbl9oYW5kbGVyLmgKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuaAotQEAgLTE5Miw3ICsxOTIsMTEg QEAgY2xhc3MgRXhjZXB0aW9uSGFuZGxlciB7Ci0gICAgIHNpZ2luZm9fdCBzaWdpbmZvOwotICAg ICBwaWRfdCB0aWQ7ICAvLyB0aGUgY3Jhc2hpbmcgdGhyZWFkLgotICAgICB1Y29udGV4dF90IGNv bnRleHQ7Ci0tI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18p Ci0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAgLy8gUFBDNjQncyBGUCBzdGF0ZSBp cyBhIHBhcnQgb2YgdWNvbnRleHRfdCBsaWtlIE1JUFMgYnV0IHRoZSB2ZWN0b3IKLSsgICAgLy8g c3RhdGUgaXMgbm90LCBzbyBhIHN0cnVjdCBpcyBuZWVkZWQuCi0rICAgIHZzdGF0ZV90IHZlY3Rv cl9zdGF0ZTsKLSsjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlw c19fKQotICAgICAvLyAjaWZkZWYgdGhpcyBvdXQgYmVjYXVzZSBGUCBzdGF0ZSBpcyBub3QgcGFy dCBvZiB1c2VyIEFCSSBmb3IgTGludXggQVJNLgotICAgICAvLyBJbiBjYXNlIG9mIE1JUFMgTGlu dXggRlAgc3RhdGUgaXMgYWxyZWFkeSBwYXJ0IG9mIHVjb250ZXh0X3Qgc28KLSAgICAgLy8gJ2Zs b2F0X3N0YXRlJyBpcyBub3QgcmVxdWlyZWQuCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlcl91 bml0dGVzdC5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4 L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXJfdW5pdHRlc3QuY2MKLWluZGV4IDhkODgwOWZhLi5l MmViMDMxZSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXJfdW5pdHRlc3QuY2MKLSsrKyB0aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0 aW9uX2hhbmRsZXJfdW5pdHRlc3QuY2MKLUBAIC0zMDcsNyArMzA3LDcgQEAgVEVTVChFeGNlcHRp b25IYW5kbGVyVGVzdCwgUGFyYWxsZWxDaGlsZENyYXNoZXNEb250SGFuZykgewotICAgfQotIAot ICAgLy8gV2FpdCBhIHdoaWxlIHVudGlsIHRoZSBjaGlsZCBzaG91bGQgaGF2ZSBjcmFzaGVkLgot LSAgdXNsZWVwKDEwMDAwMDApOwotKyAgdXNsZWVwKDIwMDAwMDApOwotICAgLy8gS2lsbCB0aGUg Y2hpbGQgaWYgaXQgaXMgc3RpbGwgcnVubmluZy4KLSAgIGtpbGwoY2hpbGQsIFNJR0tJTEwpOwot IAotQEAgLTU1OSw2ICs1NTksOCBAQCBjb25zdCB1bnNpZ25lZCBjaGFyIGtJbGxlZ2FsSW5zdHJ1 Y3Rpb25bXSA9IHsKLSAjaWYgZGVmaW5lZChfX21pcHNfXykKLSAgIC8vIG1mYzIgemVybyxJbXBs IC0gdXN1YWxseSBpbGxlZ2FsIGluIHVzZXJzcGFjZS4KLSAgIDB4NDgsIDB4MDAsIDB4MDAsIDB4 NDgKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAweDAxLCAweDAxLCAweDAxLCAw eDAxIC8vIENyYXNoZXMgb24gYSB0ZXN0ZWQgUE9XRVI5IGNwdQotICNlbHNlCi0gICAvLyBUaGlz IGNyYXNoZXMgd2l0aCBTSUdJTEwgb24geDg2L3g4Ni02NC9hcm0uCi0gICAweGZmLCAweGZmLCAw eGZmLCAweGZmCi1AQCAtNzU0LDEwICs3NTYsMTAgQEAgVEVTVChFeGNlcHRpb25IYW5kbGVyVGVz dCwgSW5zdHJ1Y3Rpb25Qb2ludGVyTWVtb3J5TWF4Qm91bmQpIHsKLSAKLSAgIC8vIFRoZXNlIGFy ZSBkZWZpbmVkIGhlcmUgc28gdGhlIHBhcmVudCBjYW4gdXNlIHRoZW0gdG8gY2hlY2sgdGhlCi0g ICAvLyBkYXRhIGZyb20gdGhlIG1pbmlkdW1wIGFmdGVyd2FyZHMuCi0tICAvLyBVc2UgNGsgaGVy ZSBiZWNhdXNlIHRoZSBPUyB3aWxsIGhhbmQgb3V0IGEgc2luZ2xlIHBhZ2UgZXZlbgotKyAgLy8g VXNlIHRoZSBwYWdlIHNpemUgaGVyZSBiZWNhdXNlIHRoZSBPUyB3aWxsIGhhbmQgb3V0IGEgc2lu Z2xlIHBhZ2UgZXZlbgotICAgLy8gaWYgYSBzbWFsbGVyIHNpemUgaXMgcmVxdWVzdGVkLCBhbmQg dGhpcyB0ZXN0IHdhbnRzIHRvCi0gICAvLyB0ZXN0IHRoZSB1cHBlciBib3VuZCBvZiB0aGUgbWVt b3J5IHJhbmdlLgotLSAgY29uc3QgdWludDMyX3Qga01lbW9yeVNpemUgPSA0MDk2OyAgLy8gYnl0 ZXMKLSsgIGNvbnN0IHVpbnQzMl90IGtNZW1vcnlTaXplID0gZ2V0cGFnZXNpemUoKTsgIC8vIGJ5 dGVzCi0gICBjb25zdCBpbnQga09mZnNldCA9IGtNZW1vcnlTaXplIC0gc2l6ZW9mKGtJbGxlZ2Fs SW5zdHJ1Y3Rpb24pOwotIAotICAgY29uc3QgcGlkX3QgY2hpbGQgPSBmb3JrKCk7Ci1kaWZmIC0t Z2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9k dW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVyLmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVyLmNj Ci1pbmRleCBmYTNjMTcxMy4uNmNlNzA5ZTIgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1bXBfd3JpdGVyL21pY3JvZHVtcF93 cml0ZXIuY2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlci5jYwotQEAgLTEzOCw3ICsxMzgs OSBAQCBjbGFzcyBNaWNyb2R1bXBXcml0ZXIgewotICAgICAgICAgICAgICAgICAgIGNvbnN0IE1p Y3JvZHVtcEV4dHJhSW5mbyYgbWljcm9kdW1wX2V4dHJhX2luZm8sCi0gICAgICAgICAgICAgICAg ICAgTGludXhEdW1wZXIqIGR1bXBlcikKLSAgICAgICA6IHVjb250ZXh0Xyhjb250ZXh0ID8gJmNv bnRleHQtPmNvbnRleHQgOiBOVUxMKSwKLS0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAh ZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgICAgICAg dmVjdG9yX3N0YXRlXyhjb250ZXh0ID8gJmNvbnRleHQtPnZlY3Rvcl9zdGF0ZSA6IE5VTEwpLAot KyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0gICAg ICAgICBmbG9hdF9zdGF0ZV8oY29udGV4dCA/ICZjb250ZXh0LT5mbG9hdF9zdGF0ZSA6IE5VTEwp LAotICNlbmRpZgotICAgICAgICAgZHVtcGVyXyhkdW1wZXIpLAotQEAgLTMzNyw2ICszMzksOCBA QCBjbGFzcyBNaWNyb2R1bXBXcml0ZXIgewotICMgZWxzZQotICMgIGVycm9yICJUaGlzIG1pcHMg QUJJIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkIChuMzIpIgotICNlbmRpZgotKyNlbGlmIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAgY29uc3QgY2hhciBrQXJjaFtdID0gInBwYzY0IjsK LSAjZWxzZQotICNlcnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8geW91ciBw bGF0Zm9ybSB5ZXQiCi0gI2VuZGlmCi1AQCAtNDA5LDcgKzQxMyw5IEBAIGNsYXNzIE1pY3JvZHVt cFdyaXRlciB7Ci0gICB2b2lkIER1bXBDUFVTdGF0ZSgpIHsKLSAgICAgUmF3Q29udGV4dENQVSBj cHU7Ci0gICAgIG15X21lbXNldCgmY3B1LCAwLCBzaXplb2YoUmF3Q29udGV4dENQVSkpOwotLSNp ZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCi0rICAgIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dCgm Y3B1LCB1Y29udGV4dF8sIHZlY3Rvcl9zdGF0ZV8pOwotKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VB QklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0gICAgIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BV Q29udGV4dCgmY3B1LCB1Y29udGV4dF8sIGZsb2F0X3N0YXRlXyk7Ci0gI2Vsc2UKLSAgICAgVUNv bnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KCZjcHUsIHVjb250ZXh0Xyk7Ci1AQCAtNjA1LDcg KzYxMSw5IEBAIGNsYXNzIE1pY3JvZHVtcFdyaXRlciB7Ci0gICB2b2lkKiBBbGxvYyh1bnNpZ25l ZCBieXRlcykgeyByZXR1cm4gZHVtcGVyXy0+YWxsb2NhdG9yKCktPkFsbG9jKGJ5dGVzKTsgfQot IAotICAgY29uc3QgdWNvbnRleHRfdCogY29uc3QgdWNvbnRleHRfOwotLSNpZiAhZGVmaW5lZChf X0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0rICBjb25zdCBnb29nbGVfYnJlYWtwYWQ6OnZzdGF0ZV90KiBjb25zdCB2ZWN0b3Jf c3RhdGVfOwotKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBz X18pCi0gICBjb25zdCBnb29nbGVfYnJlYWtwYWQ6OmZwc3RhdGVfdCogY29uc3QgZmxvYXRfc3Rh dGVfOwotICNlbmRpZgotICAgTGludXhEdW1wZXIqIGR1bXBlcl87Ci1kaWZmIC0tZ2l0IHRoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRl ci9taWNyb2R1bXBfd3JpdGVyX3VuaXR0ZXN0LmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVyX3Vu aXR0ZXN0LmNjCi1pbmRleCA2MzM5YWMwYy4uMjkxYWYxMDYgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1bXBfd3JpdGVyL21p Y3JvZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlcl91 bml0dGVzdC5jYwotQEAgLTI3OSwxMCArMjc5LDE5IEBAIFRFU1QoTWljcm9kdW1wV3JpdGVyVGVz dCwgQmFzaWNXaXRoTWFwcGluZ3MpIHsKLSAgIENyYXNoQW5kR2V0TWljcm9kdW1wKG1hcHBpbmdz LCBNaWNyb2R1bXBFeHRyYUluZm8oKSwgJmJ1Zik7Ci0gICBBU1NFUlRfVFJVRShDb250YWluc01p Y3JvZHVtcChidWYpKTsKLSAKLSsgIGludCBwYWdlX3NpemUgPSBnZXRwYWdlc2l6ZSgpOwotICNp ZmRlZiBfX0xQNjRfXwotLSAgQVNTRVJUX05FKHN0ZDo6c3RyaW5nOjpucG9zLAotLSAgICAgICAg ICAgIGJ1Zi5maW5kKCJNIDAwMDAwMDAwMDAwMDEwMDAgMDAwMDAwMDAwMDAwMDAyQSAwMDAwMDAw MDAwMDAxMDAwICIKLS0gICAgICAgICAgICAgICAgICAgICAiMzMyMjExMDA1NTQ0Nzc2Njg4OTlB QUJCQ0NEREVFRkYwIGxpYmZvby5zbyIpKTsKLSsgIC8vIFRoaXMgdGVzdCBpcyBvbmx5IGF2YWls YWJsZSBmb3IgdGhlIGZvbGxvd2luZyBwYWdlIHNpemVzCi0rICBBU1NFUlRfVFJVRSgocGFnZV9z aXplID09IDQwOTYpIHx8IChwYWdlX3NpemUgPT0gNjU1MzYpKTsKLSsgIGlmIChwYWdlX3NpemUg PT0gNDA5NikgeyAKLSsgICAgQVNTRVJUX05FKHN0ZDo6c3RyaW5nOjpucG9zLAotKyAgICAgICAg ICAgICAgYnVmLmZpbmQoIk0gMDAwMDAwMDAwMDAwMTAwMCAwMDAwMDAwMDAwMDAwMDJBIDAwMDAw MDAwMDAwMDEwMDAgIgotKyAgICAgICAgICAgICAgICAgICAgICAgIjMzMjIxMTAwNTU0NDc3NjY4 ODk5QUFCQkNDRERFRUZGMCBsaWJmb28uc28iKSk7Ci0rICB9IGVsc2UgewotKyAgICBBU1NFUlRf TkUoc3RkOjpzdHJpbmc6Om5wb3MsCi0rICAgICAgICAgICAgICBidWYuZmluZCgiTSAwMDAwMDAw MDAwMDEwMDAwIDAwMDAwMDAwMDAwMDAwMkEgMDAwMDAwMDAwMDAxMDAwMCAiCi0rICAgICAgICAg ICAgICAgICAgICAgICAiMzMyMjExMDA1NTQ0Nzc2Njg4OTlBQUJCQ0NEREVFRkYwIGxpYmZvby5z byIpKTsKLSsgIH0KLSAjZWxzZQotICAgQVNTRVJUX05FKHN0ZDo6c3RyaW5nOjpucG9zLAotICAg ICAgICAgICAgIGJ1Zi5maW5kKCJNIDAwMDAxMDAwIDAwMDAwMDJBIDAwMDAxMDAwICIKLWRpZmYg LS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5p ZHVtcF93cml0ZXIvbGludXhfY29yZV9kdW1wZXIuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfY29yZV9kdW1wZXIu Y2MKLWluZGV4IDQxNTA2ODk4Li5iOTNlNGFmYyAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9jb3Jl X2R1bXBlci5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2NvcmVfZHVtcGVyLmNjCi1AQCAtMTEyLDYgKzEx Miw5IEBAIGJvb2wgTGludXhDb3JlRHVtcGVyOjpHZXRUaHJlYWRJbmZvQnlJbmRleChzaXplX3Qg aW5kZXgsIFRocmVhZEluZm8qIGluZm8pIHsKLSAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQotICAg c3RhY2tfcG9pbnRlciA9Ci0gICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oaW5mby0+ bWNvbnRleHQuZ3JlZ3NbTURfQ09OVEVYVF9NSVBTX1JFR19TUF0pOwotKyNlbGlmIGRlZmluZWQo X19wb3dlcnBjNjRfXykKLSsgIHN0YWNrX3BvaW50ZXIgPQotKyAgICAgIHJlaW50ZXJwcmV0X2Nh c3Q8dWludDhfdCo+KGluZm8tPm1jb250ZXh0LmdwX3JlZ3NbTURfQ09OVEVYVF9QUEM2NF9SRUdf U1BdKTsKLSAjZWxzZQotICNlcnJvciAiVGhpcyBjb2RlIGhhc24ndCBiZWVuIHBvcnRlZCB0byB5 b3VyIHBsYXRmb3JtIHlldC4iCi0gI2VuZGlmCi1AQCAtMTk3LDcgKzIwMCwxMCBAQCBib29sIExp bnV4Q29yZUR1bXBlcjo6RW51bWVyYXRlVGhyZWFkcygpIHsKLSAgICAgICAgIG1lbXNldCgmaW5m bywgMCwgc2l6ZW9mKFRocmVhZEluZm8pKTsKLSAgICAgICAgIGluZm8udGdpZCA9IHN0YXR1cy0+ cHJfcGdycDsKLSAgICAgICAgIGluZm8ucHBpZCA9IHN0YXR1cy0+cHJfcHBpZDsKLS0jaWYgZGVm aW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgICAgICAgZm9y IChpbnQgaSA9IDA7IGkgPCAzMTsgaSsrKQotKyAgICAgICAgICAgIGluZm8ubWNvbnRleHQuZ3Bf cmVnc1tpXSA9IHN0YXR1cy0+cHJfcmVnW2ldOwotKyNlbGlmIGRlZmluZWQoX19taXBzX18pCi0g I2lmIGRlZmluZWQoX19BTkRST0lEX18pCi0gICAgICAgICBmb3IgKGludCBpID0gRUZfUjA7IGkg PD0gRUZfUjMxOyBpKyspCi0gICAgICAgICAgIGluZm8ubWNvbnRleHQuZ3JlZ3NbaSAtIEVGX1Iw XSA9IHN0YXR1cy0+cHJfcmVnW2ldOwotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIuY2Mg dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93 cml0ZXIvbGludXhfZHVtcGVyLmNjCi1pbmRleCAxMTEyMDM1Yi4uODUyM2RhZDYgMTAwNjQ0Ci0t LS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVt cF93cml0ZXIvbGludXhfZHVtcGVyLmNjCi0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmNjCi1AQCAt NzY1LDcgKzc2NSw5IEBAIGJvb2wgTGludXhEdW1wZXI6OkdldFN0YWNrSW5mbyhjb25zdCB2b2lk Kiogc3RhY2ssIHNpemVfdCogc3RhY2tfbGVuLAotICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWlu dDhfdCo+KGludF9zdGFja19wb2ludGVyICYgfihwYWdlX3NpemUgLSAxKSk7Ci0gCi0gICAvLyBU aGUgbnVtYmVyIG9mIGJ5dGVzIG9mIHN0YWNrIHdoaWNoIHdlIHRyeSB0byBjYXB0dXJlLgotLSAg c3RhdGljIGNvbnN0IHB0cmRpZmZfdCBrU3RhY2tUb0NhcHR1cmUgPSAzMiAqIDEwMjQ7Ci0rICAv LyBUaGlzIG5vdyBkZXBlbmRzIG9uIHBhZ2Vfc2l6ZSB0byBhdm9pZCBtaXNzaW5nIGRhdGEKLSsg IC8vIG9uIHN5c3RlbXMgd2l0aCBsYXJnZXIgcGFnZSBzaXplcy4KLSsgIHN0YXRpYyBjb25zdCBw dHJkaWZmX3Qga1N0YWNrVG9DYXB0dXJlID0gOCAqIHBhZ2Vfc2l6ZTsKLSAKLSAgIGNvbnN0IE1h cHBpbmdJbmZvKiBtYXBwaW5nID0gRmluZE1hcHBpbmcoc3RhY2tfcG9pbnRlcik7Ci0gICBpZiAo IW1hcHBpbmcpCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5oIHRoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1 bXBlci5oCi1pbmRleCBmNGE3NWQ5MC4uMDIwOTgxZjUgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhf ZHVtcGVyLmgKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIuaAotQEAgLTYzLDcgKzYzLDggQEAgbmFt ZXNwYWNlIGdvb2dsZV9icmVha3BhZCB7Ci0gIChkZWZpbmVkKF9fbWlwc19fKSAmJiBfTUlQU19T SU0gPT0gX0FCSU8zMikKLSB0eXBlZGVmIEVsZjMyX2F1eHZfdCBlbGZfYXV4X2VudHJ5OwotICNl bGlmIGRlZmluZWQoX194ODZfNjQpIHx8IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IFwKLS0gICAg IChkZWZpbmVkKF9fbWlwc19fKSAmJiBfTUlQU19TSU0gIT0gX0FCSU8zMikKLSsgICAgIChkZWZp bmVkKF9fbWlwc19fKSAmJiBfTUlQU19TSU0gIT0gX0FCSU8zMikgfHwgXAotKyAgICAgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotIHR5cGVkZWYgRWxmNjRfYXV4dl90IGVsZl9hdXhfZW50cnk7Ci0g I2VuZGlmCi0gCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlcl91bml0dGVzdF9oZWxwZXIu Y2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVt cF93cml0ZXIvbGludXhfZHVtcGVyX3VuaXR0ZXN0X2hlbHBlci5jYwotaW5kZXggM2FkNDhlNTAu LjE2ODhjMzY1IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlcl91bml0dGVzdF9oZWxwZXIu Y2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21p bmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXJfdW5pdHRlc3RfaGVscGVyLmNjCi1AQCAtNTEsNiAr NTEsOCBAQAotICNkZWZpbmUgVElEX1BUUl9SRUdJU1RFUiAicmN4IgotICNlbGlmIGRlZmluZWQo X19taXBzX18pCi0gI2RlZmluZSBUSURfUFRSX1JFR0lTVEVSICIkMSIKLSsjZWxpZiBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0rI2RlZmluZSBUSURfUFRSX1JFR0lTVEVSICJyOCIKLSAjZWxzZQot ICNlcnJvciBUaGlzIHRlc3QgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB0aGlzIHBsYXRmb3JtLgot ICNlbmRpZgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyLmNjIHRoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xp bnV4X3B0cmFjZV9kdW1wZXIuY2MKLWluZGV4IGUzZGRiODFhLi5mYTI4NTc1ZSAxMDA2NDQKLS0t LSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1w X3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyLmNjCi0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1 bXBlci5jYwotQEAgLTE0OSwxOSArMTQ5LDI3IEBAIGJvb2wgTGludXhQdHJhY2VEdW1wZXI6OkNv cHlGcm9tUHJvY2Vzcyh2b2lkKiBkZXN0LCBwaWRfdCBjaGlsZCwKLSAgIHJldHVybiB0cnVlOwot IH0KLSAKLS1ib29sIExpbnV4UHRyYWNlRHVtcGVyOjpSZWFkUmVnaXN0ZXJTZXQoVGhyZWFkSW5m byogaW5mbywgcGlkX3QgdGlkKQotLXsKLStib29sIExpbnV4UHRyYWNlRHVtcGVyOjpSZWFkUmVn aXN0ZXJTZXQoVGhyZWFkSW5mbyogaW5mbywgcGlkX3QgdGlkKSB7Ci0gI2lmZGVmIFBUUkFDRV9H RVRSRUdTRVQKLSAgIHN0cnVjdCBpb3ZlYyBpbzsKLSAgIGluZm8tPkdldEdlbmVyYWxQdXJwb3Nl UmVnaXN0ZXJzKCZpby5pb3ZfYmFzZSwgJmlvLmlvdl9sZW4pOwotLSAgaWYgKHN5c19wdHJhY2Uo UFRSQUNFX0dFVFJFR1NFVCwgdGlkLCAodm9pZCopTlRfUFJTVEFUVVMsICh2b2lkKikmaW8pID09 IC0xKSB7Ci0rICBpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgKHZvaWQqKU5UX1BS U1RBVFVTLCAodm9pZCopJmlvKSA9PSAtMSkgewotICAgICByZXR1cm4gZmFsc2U7Ci0gICB9Ci0g Ci0gICBpbmZvLT5HZXRGbG9hdGluZ1BvaW50UmVnaXN0ZXJzKCZpby5pb3ZfYmFzZSwgJmlvLmlv dl9sZW4pOwotLSAgaWYgKHN5c19wdHJhY2UoUFRSQUNFX0dFVFJFR1NFVCwgdGlkLCAodm9pZCop TlRfRlBSRUdTRVQsICh2b2lkKikmaW8pID09IC0xKSB7Ci0rICBpZiAocHRyYWNlKFBUUkFDRV9H RVRSRUdTRVQsIHRpZCwgKHZvaWQqKU5UX0ZQUkVHU0VULCAodm9pZCopJmlvKSA9PSAtMSkgewot ICAgICByZXR1cm4gZmFsc2U7Ci0gICB9Ci0rCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykK LSsgIC8vIEdyYWIgdGhlIHZlY3RvciByZWdpc3RlcnMgb24gUFBDNjQgdG9vCi0rICBpbmZvLT5H ZXRWZWN0b3JSZWdpc3RlcnMoJmlvLmlvdl9iYXNlLCAmaW8uaW92X2xlbik7Ci0rICBpZiAocHRy YWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgKHZvaWQqKU5UX1BQQ19WTVgsICh2b2lkKikmaW8p ID09IC0xKSB7Ci0rICAgIHJldHVybiBmYWxzZTsKLSsgIH0KLSsjZW5kaWYgLy8gZGVmaW5lZChf X3Bvd2VycGM2NF9fKQotKwotICAgcmV0dXJuIHRydWU7Ci0gI2Vsc2UKLSAgIHJldHVybiBmYWxz ZTsKLUBAIC0yOTgsNiArMzA2LDkgQEAgYm9vbCBMaW51eFB0cmFjZUR1bXBlcjo6R2V0VGhyZWFk SW5mb0J5SW5kZXgoc2l6ZV90IGluZGV4LCBUaHJlYWRJbmZvKiBpbmZvKSB7Ci0gI2VsaWYgZGVm aW5lZChfX21pcHNfXykKLSAgIHN0YWNrX3BvaW50ZXIgPQotICAgICAgIHJlaW50ZXJwcmV0X2Nh c3Q8dWludDhfdCo+KGluZm8tPm1jb250ZXh0LmdyZWdzW01EX0NPTlRFWFRfTUlQU19SRUdfU1Bd KTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICBzdGFja19wb2ludGVyID0KLSsg ICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihpbmZvLT5tY29udGV4dC5ncF9yZWdzW01E X0NPTlRFWFRfUFBDNjRfUkVHX1NQXSk7Ci0gI2Vsc2UKLSAjZXJyb3IgIlRoaXMgY29kZSBoYXNu J3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQuIgotICNlbmRpZgotZGlmZiAtLWdp dCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1w X3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyX3VuaXR0ZXN0LmNjIHRoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFj ZV9kdW1wZXJfdW5pdHRlc3QuY2MKLWluZGV4IGVhNmI5YTEyLi45YjMxOGZlMCAxMDA2NDQKLS0t LSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1w X3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyX3VuaXR0ZXN0LmNjCi0rKysgdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhf cHRyYWNlX2R1bXBlcl91bml0dGVzdC5jYwotQEAgLTQ2Miw2ICs0NjIsOSBAQCBURVNUKExpbnV4 UHRyYWNlRHVtcGVyVGVzdCwgVmVyaWZ5U3RhY2tSZWFkV2l0aE11bHRpcGxlVGhyZWFkcykgewot ICNlbGlmIGRlZmluZWQoX19taXBzX18pCi0gICAgIHBpZF90KiBwcm9jZXNzX3RpZF9sb2NhdGlv biA9Ci0gICAgICAgICByZWludGVycHJldF9jYXN0PHBpZF90Kj4ob25lX3RocmVhZC5tY29udGV4 dC5ncmVnc1sxXSk7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgICBwaWRfdCog cHJvY2Vzc190aWRfbG9jYXRpb24gPQotKyAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxwaWRfdCo+ KG9uZV90aHJlYWQubWNvbnRleHQuZ3BfcmVnc1s4XSk7Ci0gI2Vsc2UKLSAjZXJyb3IgVGhpcyB0 ZXN0IGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8gdGhpcyBwbGF0Zm9ybS4KLSAjZW5kaWYKLUBAIC01 NTksNiArNTYyLDggQEAgVEVTVF9GKExpbnV4UHRyYWNlRHVtcGVyVGVzdCwgU2FuaXRpemVTdGFj a0NvcHkpIHsKLSAgIHVpbnRwdHJfdCBoZWFwX2FkZHIgPSB0aHJlYWRfaW5mby5yZWdzLnJjeDsK LSAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQotICAgdWludHB0cl90IGhlYXBfYWRkciA9IHRocmVh ZF9pbmZvLm1jb250ZXh0LmdyZWdzWzFdOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykK LSsgIHVpbnRwdHJfdCBoZWFwX2FkZHIgPSB0aHJlYWRfaW5mby5tY29udGV4dC5ncF9yZWdzWzhd OwotICNlbHNlCi0gI2Vycm9yIFRoaXMgdGVzdCBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHRoaXMg cGxhdGZvcm0uCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5jYyB0 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dy aXRlci9taW5pZHVtcF93cml0ZXIuY2MKLWluZGV4IGY4Y2RmMmExLi5jYjgwOGMxNSAxMDA2NDQK LS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlk dW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuY2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIu Y2MKLUBAIC0xMzYsNyArMTM2LDkgQEAgY2xhc3MgTWluaWR1bXBXcml0ZXIgewotICAgICAgIDog ZmRfKG1pbmlkdW1wX2ZkKSwKLSAgICAgICAgIHBhdGhfKG1pbmlkdW1wX3BhdGgpLAotICAgICAg ICAgdWNvbnRleHRfKGNvbnRleHQgPyAmY29udGV4dC0+Y29udGV4dCA6IE5VTEwpLAotLSNpZiAh ZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0rICAgICAgICB2ZWN0b3Jfc3RhdGVfKGNvbnRleHQgPyAmY29udGV4 dC0+dmVjdG9yX3N0YXRlIDogTlVMTCksCi0rI2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAm JiAhZGVmaW5lZChfX21pcHNfXykKLSAgICAgICAgIGZsb2F0X3N0YXRlXyhjb250ZXh0ID8gJmNv bnRleHQtPmZsb2F0X3N0YXRlIDogTlVMTCksCi0gI2VuZGlmCi0gICAgICAgICBkdW1wZXJfKGR1 bXBlciksCi1AQCAtNDY4LDcgKzQ3MCw5IEBAIGNsYXNzIE1pbmlkdW1wV3JpdGVyIHsKLSAgICAg ICAgIGlmICghY3B1LkFsbG9jYXRlKCkpCi0gICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAg ICAgIG15X21lbXNldChjcHUuZ2V0KCksIDAsIHNpemVvZihSYXdDb250ZXh0Q1BVKSk7Ci0tI2lm ICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSsgICAgICAgIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4 dChjcHUuZ2V0KCksIHVjb250ZXh0XywgdmVjdG9yX3N0YXRlXyk7Ci0rI2VsaWYgIWRlZmluZWQo X19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSAgICAgICAgIFVDb250ZXh0UmVh ZGVyOjpGaWxsQ1BVQ29udGV4dChjcHUuZ2V0KCksIHVjb250ZXh0XywgZmxvYXRfc3RhdGVfKTsK LSAjZWxzZQotICAgICAgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KGNwdS5nZXQo KSwgdWNvbnRleHRfKTsKLUBAIC04OTcsNyArOTAxLDcgQEAgY2xhc3MgTWluaWR1bXBXcml0ZXIg ewotICAgICBkaXJlbnQtPmxvY2F0aW9uLnJ2YSA9IDA7Ci0gICB9Ci0gCi0tI2lmIGRlZmluZWQo X19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsj aWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9f bWlwc19fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICBib29sIFdyaXRlQ1BVSW5mb3Jt YXRpb24oTURSYXdTeXN0ZW1JbmZvKiBzeXNfaW5mbykgewotICAgICBjaGFyIHZlbmRvcl9pZFtz aXplb2Yoc3lzX2luZm8tPmNwdS54ODZfY3B1X2luZm8udmVuZG9yX2lkKSArIDFdID0gezB9Owot ICAgICBzdGF0aWMgY29uc3QgY2hhciB2ZW5kb3JfaWRfbmFtZVtdID0gInZlbmRvcl9pZCI7Ci1A QCAtOTE3LDcgKzkyMSw5IEBAIGNsYXNzIE1pbmlkdW1wV3JpdGVyIHsKLSAKLSAgICAgLy8gcHJv Y2Vzc29yX2FyY2hpdGVjdHVyZSBzaG91bGQgYWx3YXlzIGJlIHNldCwgZG8gdGhpcyBmaXJzdAot ICAgICBzeXNfaW5mby0+cHJvY2Vzc29yX2FyY2hpdGVjdHVyZSA9Ci0tI2lmIGRlZmluZWQoX19t aXBzX18pCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAgICAgIE1EX0NQVV9BUkNI SVRFQ1RVUkVfUFBDNjQ7Ci0rI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAjIGlmIF9NSVBTX1NJ TSA9PSBfQUJJTzMyCi0gICAgICAgICBNRF9DUFVfQVJDSElURUNUVVJFX01JUFM7Ci0gIyBlbGlm IF9NSVBTX1NJTSA9PSBfQUJJNjQKLUBAIC0xMzMzLDcgKzEzMzksOSBAQCBjbGFzcyBNaW5pZHVt cFdyaXRlciB7Ci0gICBjb25zdCBjaGFyKiBwYXRoXzsgIC8vIFBhdGggdG8gdGhlIGZpbGUgd2hl cmUgdGhlIG1pbmlkdW0gc2hvdWxkIGJlIHdyaXR0ZW4uCi0gCi0gICBjb25zdCB1Y29udGV4dF90 KiBjb25zdCB1Y29udGV4dF87ICAvLyBhbHNvIGZyb20gdGhlIHNpZ25hbCBoYW5kbGVyCi0tI2lm ICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSsgIGNvbnN0IGdvb2dsZV9icmVha3BhZDo6dnN0YXRlX3QqIGNv bnN0IHZlY3Rvcl9zdGF0ZV87Ci0rI2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVm aW5lZChfX21pcHNfXykKLSAgIGNvbnN0IGdvb2dsZV9icmVha3BhZDo6ZnBzdGF0ZV90KiBjb25z dCBmbG9hdF9zdGF0ZV87ICAvLyBkaXR0bwotICNlbmRpZgotICAgTGludXhEdW1wZXIqIGR1bXBl cl87Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5oIHRoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dy aXRlci5oCi1pbmRleCBlM2IwYjE2ZC4uY2NkOGFhMGEgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1 bXBfd3JpdGVyLmgKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuaAotQEAgLTQ4LDYgKzQ4LDgg QEAgY2xhc3MgRXhjZXB0aW9uSGFuZGxlcjsKLSAKLSAjaWYgZGVmaW5lZChfX2FhcmNoNjRfXykK LSB0eXBlZGVmIHN0cnVjdCBmcHNpbWRfY29udGV4dCBmcHN0YXRlX3Q7Ci0rI2VsaWYgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotK3R5cGVkZWYgdnJyZWdzZXRfdCB2c3RhdGVfdDsKLSAjZWxpZiAh ZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotIHR5cGVkZWYgc3Rk OjpyZW1vdmVfcG9pbnRlcjxmcHJlZ3NldF90Pjo6dHlwZSBmcHN0YXRlX3Q7Ci0gI2VuZGlmCi1k aWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgv bWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlcl91bml0dGVzdC5jYyB0aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVt cF93cml0ZXJfdW5pdHRlc3QuY2MKLWluZGV4IDMwMTdhNDlhLi4zNjRlZmQ3OSAxMDA2NDQKLS0t LSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1w X3dyaXRlci9taW5pZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93 cml0ZXJfdW5pdHRlc3QuY2MKLUBAIC03MTUsNiArNzE1LDkgQEAgVEVTVChNaW5pZHVtcFdyaXRl clRlc3QsIEludmFsaWRTdGFja1BvaW50ZXIpIHsKLSAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQot ICAgY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0LmdyZWdzW01EX0NPTlRFWFRfTUlQU19SRUdf U1BdID0KLSAgICAgICBpbnZhbGlkX3N0YWNrX3BvaW50ZXI7Ci0rI2VsaWYgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotKyAgY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0LmdwX3JlZ3NbTURfQ09O VEVYVF9QUEM2NF9SRUdfU1BdID0KLSsgICAgICBpbnZhbGlkX3N0YWNrX3BvaW50ZXI7Ci0gI2Vs c2UKLSAjIGVycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRm b3JtIHlldC4iCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlLmNjIHRoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlLmNjCi1p bmRleCA0ZTkzODI2OS4uZjBmZjE1ZDkgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGUuY2MKLSsrKyB0aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRf ZmlsZS5jYwotQEAgLTY1LDggKzY1LDcgQEAgYm9vbCBNZW1vcnlNYXBwZWRGaWxlOjpNYXAoY29u c3QgY2hhciogcGF0aCwgc2l6ZV90IG9mZnNldCkgewotICAgfQotIAotICNpZiBkZWZpbmVkKF9f eDg2XzY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IFwKLS0gICAoZGVmaW5lZChfX21p cHNfXykgJiYgX01JUFNfU0lNID09IF9BQkk2NCkKLS0KLSsgICAoZGVmaW5lZChfX21pcHNfXykg JiYgX01JUFNfU0lNID09IF9BQkk2NCkgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgc3Ry dWN0IGtlcm5lbF9zdGF0IHN0OwotICAgaWYgKHN5c19mc3RhdChmZCwgJnN0KSA9PSAtMSB8fCBz dC5zdF9zaXplIDwgMCkgewotICNlbHNlCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlX3VuaXR0ZXN0LmNj IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21h cHBlZF9maWxlX3VuaXR0ZXN0LmNjCi1pbmRleCBmYWQ1OWY0MC4uNjE2NDk2ZDYgMTAwNjQ0Ci0t LS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlf bWFwcGVkX2ZpbGVfdW5pdHRlc3QuY2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZV91bml0dGVzdC5jYwotQEAgLTE3 Niw5ICsxNzYsMTAgQEAgVEVTVF9GKE1lbW9yeU1hcHBlZEZpbGVUZXN0LCBSZW1hcEFmdGVyTWFw KSB7Ci0gVEVTVF9GKE1lbW9yeU1hcHBlZEZpbGVUZXN0LCBNYXBXaXRoT2Zmc2V0KSB7Ci0gICAv LyBQdXQgbW9yZSBkYXRhIGluIHRoZSB0ZXN0IGZpbGUgdGhpcyB0aW1lLiBPZmZzZXRzIGNhbiBv bmx5IGJlCi0gICAvLyBkb25lIG9uIHBhZ2UgYm91bmRhcmllcywgc28gd2UgbmVlZCBhIHR3byBw YWdlIGZpbGUgdG8gdGVzdCB0aGlzLgotLSAgY29uc3QgaW50IHBhZ2Vfc2l6ZSA9IDQwOTY7Ci0t ICBjaGFyIGRhdGExWzIgKiBwYWdlX3NpemVdOwotLSAgc2l6ZV90IGRhdGExX3NpemUgPSBzaXpl b2YoZGF0YTEpOwotKyAgY29uc3QgaW50IHBhZ2Vfc2l6ZSA9IGdldHBhZ2VzaXplKCk7Ci0rICBj aGFyICpkYXRhMSA9IHN0YXRpY19jYXN0PGNoYXIqPihtYWxsb2MoMiAqIHBhZ2Vfc2l6ZSkpOwot KyAgRVhQRUNUX1RSVUUoZGF0YTEgIT0gTlVMTCk7Ci0rICBzaXplX3QgZGF0YTFfc2l6ZSA9ICgy ICogcGFnZV9zaXplKTsKLSAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZGF0YTFfc2l6ZTsgKytp KSB7Ci0gICAgIGRhdGExW2ldID0gaSAmIDB4N2Y7Ci0gICB9Ci1kaWZmIC0tZ2l0IHRoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbWVtb3J5X2FsbG9jYXRvcl91bml0dGVz dC5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL21lbW9yeV9hbGxv Y2F0b3JfdW5pdHRlc3QuY2MKLWluZGV4IDQzYzg2MzE0Li4yNzMyNWI4MSAxMDA2NDQKLS0tLSB0 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL21lbW9yeV9hbGxvY2F0b3Jf dW5pdHRlc3QuY2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9u L21lbW9yeV9hbGxvY2F0b3JfdW5pdHRlc3QuY2MKLUBAIC01Nyw4ICs1Nyw5IEBACi0gCi0gICBF WFBFQ1RfRVEoMFUsIGFsbG9jYXRvci5wYWdlc19hbGxvY2F0ZWQoKSk7Ci0gICB1aW50OF90KiBw ID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oYWxsb2NhdG9yLkFsbG9jKDEwMDAwKSk7Ci0r ICB1aW50NjRfdCBleHBlY3RlZF9wYWdlcyA9IDEgKyAoKDEwMDAwIC0gMSkgLyBnZXRwYWdlc2l6 ZSgpKTsKLSAgIEFTU0VSVF9GQUxTRShwID09IE5VTEwpOwotLSAgRVhQRUNUX0VRKDNVLCBhbGxv Y2F0b3IucGFnZXNfYWxsb2NhdGVkKCkpOwotKyAgRVhQRUNUX0VRKGV4cGVjdGVkX3BhZ2VzLCBh bGxvY2F0b3IucGFnZXNfYWxsb2NhdGVkKCkpOwotICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8 IDEwOyArK2kpIHsKLSAgICAgdWludDhfdCogcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+ KGFsbG9jYXRvci5BbGxvYyhpKSk7Ci0gICAgIEFTU0VSVF9GQUxTRShwID09IE5VTEwpOwotZGlm ZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4cGxv aXRhYmlsaXR5X2xpbnV4LmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9j ZXNzb3IvZXhwbG9pdGFiaWxpdHlfbGludXguY2MKLWluZGV4IGNjYzlmMTQ1Li5kZWJhZWQ0ZCAx MDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4 cGxvaXRhYmlsaXR5X2xpbnV4LmNjCi0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV9saW51eC5jYwotQEAgLTIwMiwxMiArMjAyLDE0 IEBAIGJvb2wgRXhwbG9pdGFiaWxpdHlMaW51eDo6RW5kZWRPbklsbGVnYWxXcml0ZSh1aW50NjRf dCBpbnN0cnVjdGlvbl9wdHIpIHsKLSAgIC8vIENoZWNrIGFyY2hpdGVjdHVyZSBhbmQgc2V0IGFy Y2hpdGVjdHVyZSB2YXJpYWJsZSB0byBjb3JyZXNwb25kaW5nIGZsYWcKLSAgIC8vIGluIG9iamR1 bXAuCi0gICBzd2l0Y2ggKGNvbnRleHQtPkdldENvbnRleHRDUFUoKSkgewotKyNpZiBkZWZpbmVk KF9faTM4NikgfHwgZGVmaW5lZChfX3g4Nl82NCkKLSAgICAgY2FzZSBNRF9DT05URVhUX1g4NjoK LSAgICAgICBhcmNoaXRlY3R1cmUgPSAiaTM4NiI7Ci0gICAgICAgYnJlYWs7Ci0gICAgIGNhc2Ug TURfQ09OVEVYVF9BTUQ2NDoKLSAgICAgICBhcmNoaXRlY3R1cmUgPSAiaTM4Njp4ODYtNjQiOwot ICAgICAgIGJyZWFrOwotKyNlbmRpZgotICAgICBkZWZhdWx0OgotICAgICAgIC8vIFVuc3VwcG9y dGVkIGFyY2hpdGVjdHVyZS4gTm90ZSB0aGF0IEFSTSBhcmNoaXRlY3R1cmVzIGFyZSBub3QKLSAg ICAgICAvLyBzdXBwb3J0ZWQgYmVjYXVzZSBvYmpkdW1wIGRvZXMgbm90IHN1cHBvcnQgQVJNLgot ZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4 cGxvaXRhYmlsaXR5X3VuaXR0ZXN0LmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9wcm9jZXNzb3IvZXhwbG9pdGFiaWxpdHlfdW5pdHRlc3QuY2MKLWluZGV4IDUyOGVlNWYyLi43 Mjc2NGQ2YyAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvcHJv Y2Vzc29yL2V4cGxvaXRhYmlsaXR5X3VuaXR0ZXN0LmNjCi0rKysgdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV91bml0dGVzdC5jYwotQEAg LTEwNCw2ICsxMDQsOCBAQCBFeHBsb2l0YWJpbGl0eUZvcihjb25zdCBzdHJpbmcmIGZpbGVuYW1l KSB7Ci0gfQotIAotIFRFU1QoRXhwbG9pdGFiaWxpdHlUZXN0LCBUZXN0V2luZG93c0VuZ2luZSkg ewotKy8vIFRoZSBmb2xsb3dpbmcgdGVzdHMgYXJlIG9ubHkgZXhlY3V0YWJsZSBvbiBhbiB4ODYt Y2xhc3MgbGludXggbWFjaGluZS4KLSsjaWYgIWRlZmluZWQoX1dJTjMyKSAmJiAoZGVmaW5lZChf X2kzODYpIHx8IGRlZmluZWQoX194ODZfNjQpKQotICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3Bh ZDo6RVhQTE9JVEFCSUxJVFlfSElHSCwKLSAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigi YXNjaWlfcmVhZF9hdi5kbXAiKSk7Ci0gICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBM T0lUQUJJTElUWV9ISUdILAotQEAgLTEzNiw5ICsxMzgsMTIgQEAgVEVTVChFeHBsb2l0YWJpbGl0 eVRlc3QsIFRlc3RXaW5kb3dzRW5naW5lKSB7Ci0gICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlG b3IoInJlYWRfYXZfY2xvYmJlcl93cml0ZS5kbXAiKSk7Ci0gICBBU1NFUlRfRVEoZ29vZ2xlX2Jy ZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9MT1csCi0gICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlG b3IoInJlYWRfYXZfY29uZGl0aW9uYWwuZG1wIikpOwotKyNlbmRpZgotIH0KLSAKLSBURVNUKEV4 cGxvaXRhYmlsaXR5VGVzdCwgVGVzdExpbnV4RW5naW5lKSB7Ci0rLy8gVGhlIGZvbGxvd2luZyB0 ZXN0cyBhcmUgb25seSBleGVjdXRhYmxlIG9uIGFuIHg4Ni1jbGFzcyBsaW51eCBtYWNoaW5lLgot KyNpZiBkZWZpbmVkKF9faTM4NikgfHwgZGVmaW5lZChfX3g4Nl82NCkKLSAgIEFTU0VSVF9FUShn b29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0lOVEVSRVNUSU5HLAotICAgICAgICAgICAg IEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF9udWxsX3JlYWRfYXYuZG1wIikpOwotICAgQVNTRVJU X0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSElHSCwKLUBAIC0xNzEsNyArMTc2 LDggQEAgVEVTVChFeHBsb2l0YWJpbGl0eVRlc3QsIFRlc3RMaW51eEVuZ2luZSkgewotICAgICAg ICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF9leGVjdXRhYmxlX2hlYXAuZG1wIikpOwot ICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSElHSCwKLSAgICAg ICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigibGludXhfam1wX3RvX21vZHVsZV9ub3RfZXhlX3Jl Z2lvbi5kbXAiKSk7Ci0tI2lmbmRlZiBfV0lOMzIKLSsjZW5kaWYKLSsjaWYgIWRlZmluZWQoX1dJ TjMyKSAmJiAoZGVmaW5lZChfX2kzODYpIHx8IGRlZmluZWQoX194ODZfNjQpKQotICAgQVNTRVJU X0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSElHSCwKLSAgICAgICAgICAgICBF eHBsb2l0YWJpbGl0eUZvcigibGludXhfd3JpdGVfdG9fbm9ud3JpdGFibGVfbW9kdWxlLmRtcCIp KTsKLSAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0hJR0gsCi1A QCAtMTgyLDEwICsxODgsMTAgQEAgVEVTVChFeHBsb2l0YWJpbGl0eVRlc3QsIFRlc3RMaW51eEVu Z2luZSkgewotICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF93cml0ZV90b19v dXRzaWRlX21vZHVsZV92aWFfbWF0aC5kbXAiKSk7Ci0gICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFr cGFkOjpFWFBMT0lUQUJJTElUWV9JTlRFUkVTVElORywKLSAgICAgICAgICAgICBFeHBsb2l0YWJp bGl0eUZvcigibGludXhfd3JpdGVfdG9fdW5kZXJfNGsuZG1wIikpOwotLSNlbmRpZiAgLy8gX1dJ TjMyCi0rI2VuZGlmICAvLyAhZGVmaW5lZChfV0lOMzIpICYmICghZGVmaW5lZChfX2kzODYpICYm ICFkZWZpbmVkKF9feDg2XzY0KSkKLSB9Ci0gCi0tI2lmbmRlZiBfV0lOMzIKLSsjaWYgIWRlZmlu ZWQoX1dJTjMyKSAmJiAoZGVmaW5lZChfX2kzODYpIHx8IGRlZmluZWQoX194ODZfNjQpKQotIFRF U1QoRXhwbG9pdGFiaWxpdHlMaW51eFV0aWxzVGVzdCwgRGlzYXNzZW1ibGVCeXRlc1Rlc3QpIHsK LSAgIEFTU0VSVF9GQUxTRShFeHBsb2l0YWJpbGl0eUxpbnV4VGVzdDo6RGlzYXNzZW1ibGVCeXRl cygiIiwgTlVMTCwgNSwgTlVMTCkpOwotICAgdWludDhfdCBieXRlc1s2XSA9IHsweGM3LCAweDAs IDB4NSwgMHgwLCAweDAsIDB4MH07Ci1AQCAtMzAxLDYgKzMwNyw3IEBAIFRFU1QoRXhwbG9pdGFi aWxpdHlMaW51eFV0aWxzVGVzdCwgQ2FsY3VsYXRlQWRkcmVzc1Rlc3QpIHsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICZ3cml0ZV9hZGRyZXNzKSk7Ci0gfQotLSNlbmRpZiAgLy8gX1dJTjMyCi0rI2VuZGlmICAvLyAh ZGVmaW5lZChfV0lOMzIpICYmIChkZWZpbmVkKF9faTM4NikgfHwgZGVmaW5lZChfX3g4Nl82NCkp Ci0rCi0gCi0gfSAgLy8gbmFtZXNwYWNlCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy90b29scy9saW51eC9tZDJjb3JlL21pbmlkdW1wLTItY29yZS5jYyB0aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvdG9vbHMvbGludXgvbWQyY29yZS9taW5pZHVt cC0yLWNvcmUuY2MKLWluZGV4IGE2MGJlMzIzLi4zNWIxMWI2ZCAxMDA2NDQKLS0tLSB0aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvdG9vbHMvbGludXgvbWQyY29yZS9taW5pZHVtcC0y LWNvcmUuY2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvdG9vbHMvbGlu dXgvbWQyY29yZS9taW5pZHVtcC0yLWNvcmUuY2MKLUBAIC03Nyw2ICs3Nyw4IEBACi0gICAjZGVm aW5lIEVMRl9BUkNIICBFTV9NSVBTCi0gI2VsaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKLSAgICNk ZWZpbmUgRUxGX0FSQ0ggIEVNX0FBUkNINjQKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0rICAjZGVmaW5lIEVMRl9BUkNIICBFTV9QUEM2NAotICNlbmRpZgotIAotICNpZiBkZWZpbmVk KF9fYXJtX18pCi1AQCAtODcsNiArODksOCBAQCB0eXBlZGVmIHVzZXJfcmVncyB1c2VyX3JlZ3Nf c3RydWN0OwotICNlbGlmIGRlZmluZWQgKF9fbWlwc19fKQotIC8vIFRoaXMgZmlsZS1sb2NhbCB0 eXBlZGVmIHNpbXBsaWZpZXMgdGhlIHNvdXJjZSBjb2RlLgotIHR5cGVkZWYgZ3JlZ3NldF90IHVz ZXJfcmVnc19zdHJ1Y3Q7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotK3R5cGVkZWYg c3RydWN0IHB0X3JlZ3MgdXNlcl9yZWdzX3N0cnVjdDsKLSAjZW5kaWYKLSAKLSB1c2luZyBnb29n bGVfYnJlYWtwYWQ6Ok1EVHlwZUhlbHBlcjsKLUBAIC0zMjEsNiArMzI1LDkgQEAgc3RydWN0IENy YXNoZWRQcm9jZXNzIHsKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKLSAgICAg dXNlcl9mcHNpbWRfc3RydWN0IGZwcmVnczsKLSsjZW5kaWYKLSsjaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotKyAgICBtY29udGV4dF90IG1jb250ZXh0OwotICNlbmRpZgotICAgICB1aW50cHRy X3Qgc3RhY2tfYWRkcjsKLSAgICAgY29uc3QgdWludDhfdCogc3RhY2s7Ci1AQCAtNTM1LDYgKzU0 MiwzOCBAQCBQYXJzZVRocmVhZFJlZ2lzdGVycyhDcmFzaGVkUHJvY2Vzczo6VGhyZWFkKiB0aHJl YWQsCi0gICB0aHJlYWQtPm1jb250ZXh0LmZwY19laXIgPSByYXdyZWdzLT5mbG9hdF9zYXZlLmZp cjsKLSAjZW5kaWYKLSB9Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotK3N0YXRpYyB2 b2lkCi0rUGFyc2VUaHJlYWRSZWdpc3RlcnMoQ3Jhc2hlZFByb2Nlc3M6OlRocmVhZCogdGhyZWFk LAotKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IE1pbmlkdW1wTWVtb3J5UmFuZ2UmIHJhbmdl KSB7Ci0rICBjb25zdCBNRFJhd0NvbnRleHRQUEM2NCogcmF3cmVncyA9IHJhbmdlLkdldERhdGE8 TURSYXdDb250ZXh0UFBDNjQ+KDApOwotKwotKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9DT05U RVhUX1BQQzY0X0dQUl9DT1VOVDsgaSsrKQotKyAgICB0aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3Nb aV0gPSByYXdyZWdzLT5ncHJbaV07Ci0rCi0rICB0aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRf TE5LXSA9IHJhd3JlZ3MtPmxyOwotKyAgdGhyZWFkLT5tY29udGV4dC5ncF9yZWdzW1BUX05JUF0g PSByYXdyZWdzLT5zcnIwOwotKyAgdGhyZWFkLT5tY29udGV4dC5ncF9yZWdzW1BUX01TUl0gPSBy YXdyZWdzLT5zcnIxOwotKyAgdGhyZWFkLT5tY29udGV4dC5ncF9yZWdzW1BUX0NDUl0gPSByYXdy ZWdzLT5jcjsKLSsgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQVF9YRVJdID0gcmF3cmVncy0+ eGVyOwotKyAgdGhyZWFkLT5tY29udGV4dC5ncF9yZWdzW1BUX0NUUl0gPSByYXdyZWdzLT5jdHI7 Ci0rICB0aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+dnJzYXZlID0gcmF3cmVncy0+dnJzYXZlOwot KwotKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9GTE9BVElOR1NBVkVBUkVBX1BQQ19GUFJfQ09V TlQ7IGkrKykKLSsgICAgICB0aHJlYWQtPm1jb250ZXh0LmZwX3JlZ3NbaV0gPSByYXdyZWdzLT5m bG9hdF9zYXZlLmZwcmVnc1tpXTsKLSsKLSsgIHRocmVhZC0+bWNvbnRleHQuZnBfcmVnc1tORlBS RUctMV0gPSByYXdyZWdzLT5mbG9hdF9zYXZlLmZwc2NyOwotKwotKyAgZm9yIChpbnQgaSA9IDA7 IGkgPCBNRF9WRUNUT1JTQVZFQVJFQV9QUENfVlJfQ09VTlQ7IGkrKykgewotKyAgICAgIHRocmVh ZC0+bWNvbnRleHQudl9yZWdzLT52cnJlZ3NbaV1bMF0gPSByYXdyZWdzLT52ZWN0b3Jfc2F2ZS5z YXZlX3ZyW2ldLmhpZ2ggPj4gMzI7Ci0rICAgICAgdGhyZWFkLT5tY29udGV4dC52X3JlZ3MtPnZy cmVnc1tpXVsxXSA9IHJhd3JlZ3MtPnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0uaGlnaDsKLSsgICAg ICB0aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+dnJyZWdzW2ldWzJdID0gcmF3cmVncy0+dmVjdG9y X3NhdmUuc2F2ZV92cltpXS5sb3cgPj4gMzI7Ci0rICAgICAgdGhyZWFkLT5tY29udGV4dC52X3Jl Z3MtPnZycmVnc1tpXVszXSA9IHJhd3JlZ3MtPnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0ubG93Owot KyAgfQotKwotKyAgdGhyZWFkLT5tY29udGV4dC52X3JlZ3MtPnZzY3IudnNjcl93b3JkID0gcmF3 cmVncy0+dmVjdG9yX3NhdmUuc2F2ZV92c2NyLmxvdyAmIDB4RkZGRkZGRkY7Ci0rfQotKwotICNl bHNlCi0gI2Vycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRm b3JtIHlldCIKLSAjZW5kaWYKLUBAIC02MjMsNiArNjYyLDEyIEBAIFBhcnNlU3lzdGVtSW5mbyhj b25zdCBPcHRpb25zJiBvcHRpb25zLCBDcmFzaGVkUHJvY2VzcyogY3Jhc2hpbmZvLAotICMgZWxz ZQotICMgIGVycm9yICJUaGlzIG1pcHMgQUJJIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkIChu MzIpIgotICMgZW5kaWYKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICBpZiAoc3lz aW5mby0+cHJvY2Vzc29yX2FyY2hpdGVjdHVyZSAhPSBNRF9DUFVfQVJDSElURUNUVVJFX1BQQzY0 KSB7Ci0rICAgIGZwcmludGYoc3RkZXJyLAotKyAgICAgICAgICAgICJUaGlzIHZlcnNpb24gb2Yg bWluaWR1bXAtMi1jb3JlIG9ubHkgc3VwcG9ydHMgUFBDNjQuXG4iKTsKLSsgICAgZXhpdCgxKTsK LSsgIH0KLSAjZWxzZQotICNlcnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8g eW91ciBwbGF0Zm9ybSB5ZXQiCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL0NPTlRSSUJVVE9SUyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9D T05UUklCVVRPUlMKLWluZGV4IDg3MjRiN2YzLi44ZTI5NDI0ZSAxMDA2NDQKLS0tLSB0aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9DT05UUklCVVRPUlMKLSsrKyB0aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9DT05UUklCVVRPUlMKLUBAIC0xMywzICsxMyw0IEBAIE1hcmsgTWVudG92 YWkgPG1hcmtAY2hyb21pdW0ub3JnPgotIFJvYmVydCBTZXNlayA8cnNlc2VrQGNocm9taXVtLm9y Zz4KLSBTY290dCBHcmFoYW0gPHNjb3R0bWdAY2hyb21pdW0ub3JnPgotIEpvc2h1YSBQZXJhemEg PGpwZXJhemFAY2hyb21pdW0ub3JnPgotK1NoYXduIEFuYXN0YXNpbyA8c2hhd25AYW5hc3Rhcy5p bz4KLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvY29tcGF0L2xpbnV4 L3N5cy91c2VyLmggdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvY29tcGF0L2xpbnV4L3N5 cy91c2VyLmgKLWluZGV4IDZlZDc3YTk4Li4xZmQ4MzQ2OSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9jb21wYXQvbGludXgvc3lzL3VzZXIuaAotKysrIHRoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL2NvbXBhdC9saW51eC9zeXMvdXNlci5oCi1AQCAtMTUsNiAr MTUsNyBAQAotICNpZm5kZWYgQ1JBU0hQQURfQ09NUEFUX0xJTlVYX1NZU19VU0VSX0hfCi0gI2Rl ZmluZSBDUkFTSFBBRF9DT01QQVRfTElOVVhfU1lTX1VTRVJfSF8KLSAKLSsjaW5jbHVkZSA8Y3N0 ZGRlZj4KLSAjaW5jbHVkZV9uZXh0IDxzeXMvdXNlci5oPgotIAotICNpbmNsdWRlIDxmZWF0dXJl cy5oPgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9t aW5pZHVtcF9jb250ZXh0LmggdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAv bWluaWR1bXBfY29udGV4dC5oCi1pbmRleCAzYTNlNjAzYy4uMzExOGQ5ZTkgMTAwNjQ0Ci0tLS0g dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dC5o Ci0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29u dGV4dC5oCi1AQCAtNTkyLDYgKzU5Miw3MCBAQCBzdHJ1Y3QgTWluaWR1bXBDb250ZXh0TUlQUzY0 IHsKLSAgIHVpbnQ2NF90IGZpcjsKLSB9OwotIAotKy8vISBcYnJpZWYgcHBjNjQtc3BlY2lmaWMg ZmxhZ3MgZm9yIE1pbmlkdW1wUFBDNjQ6OmNvbnRleHRfZmxhZ3MKLSsvLyEgQmFzZWQgb24gbWlu aWR1bXBfY3B1X3BwYzY0LmggZnJvbSBicmVha3BhZAotK2VudW0gTWluaWR1bXBDb250ZXh0UFBD NjRGbGFncyA6IHVpbnQzMl90IHsKLSsgIC8vISBcYnJpZWYgSWRlbnRpZmllcyB0aGUgY29udGV4 dCBhcyBQUEM2NC4KLSsgIGtNaW5pZHVtcENvbnRleHRQUEM2NCA9IDB4MDEwMDAwMDAsCi0rCi0r ICAvLyEgXGJyaWVmIEluZGljYXRlcyB0aGUgdmFsaWRpdHkgb2YgZ2VuZXJhbCBwdXJwb3NlIHJl Z2lzdGVycy4KLSsgIC8vIQotKyAgLy8hIFJlZ2lzdGVycyBgcjBgLWByMzFgLCBgbmlwYCwgYG1z cmAsIGBscmAsIGV0Yy4gYXJlIHZhbGlkLgotKyAga01pbmlkdW1wQ29udGV4dFBQQzY0QmFzZSA9 IGtNaW5pZHVtcENvbnRleHRQUEM2NCB8IDB4MDAwMDAwMDEsCi0rCi0rICAvLyEgXGJyaWVmIElu ZGljYXRlcyB0aGUgdmFsaWRpdHkgb2YgZmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJzLgotKyAgLy8h Ci0rICAvLyEgUmVnaXN0ZXJzIGBmcDBgLWBmcDMxYCwgYGZwc2NyYCBhcmUgdmFsaWQuCi0rICBr TWluaWR1bXBDb250ZXh0UFBDNjRGbG9hdGluZyA9IGtNaW5pZHVtcENvbnRleHRQUEM2NCB8IDB4 MDAwMDAwMDgsCi0rCi0rICAvLyEgXGJyaWVmIEluZGljYXRlcyB0aGUgdmFsaWRpdHkgb2YgQWx0 aXZlYy9WTVggcmVnaXN0ZXJzLgotKyAgLy8hCi0rICAvLyEgUmVnaXN0ZXJzIGB2MGAtYHYzMWAs IGB2c2NyYCwgYHZyc2F2ZWAuCi0rICBrTWluaWR1bXBDb250ZXh0UFBDNjRWZWN0b3IgPSBrTWlu aWR1bXBDb250ZXh0UFBDNjQgfCAweDAwMDAwMDIwLAotKwotKyAgLy8hIFxicmllZiBJbmRpY2F0 ZXMgdGhlIHZhbGlkaXR5IG9mIGFsbCByZWdpc3RlcnMKLSsgIGtNaW5pZHVtcENvbnRleHRQUEM2 NEFsbCA9IGtNaW5pZHVtcENvbnRleHRQUEM2NEJhc2UgICAgIHwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGtNaW5pZHVtcENvbnRleHRQUEM2NEZsb2F0aW5nIHwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGtNaW5pZHVtcENvbnRleHRQUEM2NFZlY3RvcgotK307Ci0rCi0r Ly8hIFxicmllZiBBIFBQQzY0IENQVSBjb250ZXh0IGNhcnJpZWQgaW4gYSBtaW5pZHVtcCBmaWxl LgotKy8vISBCYXNlZCBvbiBtaW5pZHVtcF9jcHVfcHBjNjQuaCBmcm9tIGJyZWFrcGFkLgotK3N0 cnVjdCBNaW5pZHVtcENvbnRleHRQUEM2NCB7Ci0rICB1aW50NjRfdCBjb250ZXh0X2ZsYWdzOwot KwotKyAgLy8hIFxicmllZiBHZW5lcmFsIHB1cnBvc2UgcmVnaXN0ZXJzLgotKyAgdWludDY0X3Qg bmlwOwotKyAgdWludDY0X3QgbXNyOwotKyAgdWludDY0X3QgcmVnc1szMl07Ci0rICB1aW50NjRf dCBjY3I7Ci0rICB1aW50NjRfdCB4ZXI7Ci0rICB1aW50NjRfdCBsbms7Ci0rICB1aW50NjRfdCBj dHI7Ci0rCi0rICAvLyEgXGJyaWVmIEZsb2F0aW5nIHBvaW50IHJlZ2lzdGVycy4KLSsgIGRvdWJs ZSBmcHJlZ3NbMzJdOwotKwotKyAgLy8hIFxicmllZiBGUFUgc3RhdHVzIHJlZ2lzdGVyLgotKyAg ZG91YmxlIGZwc2NyOwotKwotKyAgLy8hIFxicmllZiBBbHRpdmVjL1ZNWCB2ZWN0b3IgcmVnaXN0 ZXJzLgotKyAgc3RydWN0IHsKLSsgICAgICAvLyEgXGJyaWVmIFZlY3RvciByZWdpc3RlcnMgYXJl IDEyOGJpdHMuCi0rICAgICAgdWludDEyOF9zdHJ1Y3Qgc2F2ZV92clszMl07Ci0rICAgICAgdWlu dDEyOF9zdHJ1Y3Qgc2F2ZV92c2NyOwotKwotKyAgICAgIC8vISBcYnJpZWYgUGFkZGluZyBpbmNs dWRlZCBmb3IgYnJlYWtwYWQgY29tcGF0aWJpbHRpeS4KLSsgICAgICB1aW50MzJfdCBzYXZlX3Bh ZDVbNF07Ci0rCi0rICAgICAgLy8hIFxicmllZiBWUlNBVkUgcmVnaXN0ZXIuCi0rICAgICAgdWlu dDMyX3Qgc2F2ZV92cnNhdmU7Ci0rCi0rICAgICAgLy8hIFxicmllZiBQYWRkaW5nIGluY2x1ZGVk IGZvciBicmVha3BhZCBjb21wYXRpYmlsdGl5LgotKyAgICAgIHVpbnQzMl90IHNhdmVfcGFkNls3 XTsKLSsgIH0gdnJlZ3M7Ci0rfTsKLSsKLSB9ICAvLyBuYW1lc3BhY2UgY3Jhc2hwYWQKLSAKLSAj ZW5kaWYgIC8vIENSQVNIUEFEX01JTklEVU1QX01JTklEVU1QX0NPTlRFWFRfSF8KLWRpZmYgLS1n aXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4 dF93cml0ZXIuY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1 bXBfY29udGV4dF93cml0ZXIuY2MKLWluZGV4IGQ3ZTUzYTQ5Li5kODllYjllMCAxMDA2NDQKLS0t LSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0 X3dyaXRlci5jYwotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21p bmlkdW1wX2NvbnRleHRfd3JpdGVyLmNjCi1AQCAtMTAxLDYgKzEwMSwxMyBAQCBNaW5pZHVtcENv bnRleHRXcml0ZXI6OkNyZWF0ZUZyb21TbmFwc2hvdChjb25zdCBDUFVDb250ZXh0KiBjb250ZXh0 X3NuYXBzaG90KSB7Ci0gICAgICAgYnJlYWs7Ci0gICAgIH0KLSAKLSsgICAgY2FzZSBrQ1BVQXJj aGl0ZWN0dXJlUFBDNjQ6IHsKLSsgICAgICBjb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxNaW5p ZHVtcENvbnRleHRQUEM2NFdyaXRlcj4oKTsKLSsgICAgICByZWludGVycHJldF9jYXN0PE1pbmlk dW1wQ29udGV4dFBQQzY0V3JpdGVyKj4oY29udGV4dC5nZXQoKSkKLSsgICAgICAgICAgLT5Jbml0 YWxpemVGcm9tU25hcHNob3QoY29udGV4dF9zbmFwc2hvdC0+cHBjNjQpOwotKyAgICAgIGJyZWFr OwotKyAgICB9Ci0rCi0gICAgIGRlZmF1bHQ6IHsKLSAgICAgICBMT0coRVJST1IpIDw8ICJ1bmtu b3duIGNvbnRleHQgYXJjaGl0ZWN0dXJlICIKLSAgICAgICAgICAgICAgICAgIDw8IGNvbnRleHRf c25hcHNob3QtPmFyY2hpdGVjdHVyZTsKLUBAIC00NTMsNCArNDYwLDQ3IEBAIHNpemVfdCBNaW5p ZHVtcENvbnRleHRNSVBTNjRXcml0ZXI6OkNvbnRleHRTaXplKCkgY29uc3QgewotICAgcmV0dXJu IHNpemVvZihjb250ZXh0Xyk7Ci0gfQotIAotK01pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyOjpN aW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcigpCi0rICA6IE1pbmlkdW1wQ29udGV4dFdyaXRlcigp LCBjb250ZXh0XygpIHsKLSsgICAgY29udGV4dF8uY29udGV4dF9mbGFncyA9IGtNaW5pZHVtcENv bnRleHRQUEM2NDsKLSt9Ci0rCi0rTWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXI6On5NaW5pZHVt cENvbnRleHRQUEM2NFdyaXRlcigpID0gZGVmYXVsdDsKLSsKLSt2b2lkIE1pbmlkdW1wQ29udGV4 dFBQQzY0V3JpdGVyOjpJbml0YWxpemVGcm9tU25hcHNob3QoCi0rICAgIGNvbnN0IENQVUNvbnRl eHRQUEM2NCogY29udGV4dF9zbmFwc2hvdCkgewotKyAgRENIRUNLX0VRKHN0YXRlKCksIGtTdGF0 ZU11dGFibGUpOwotKyAgRENIRUNLX0VRKGNvbnRleHRfLmNvbnRleHRfZmxhZ3MsIGtNaW5pZHVt cENvbnRleHRQUEM2NCk7Ci0rCi0rICBjb250ZXh0Xy5jb250ZXh0X2ZsYWdzID0ga01pbmlkdW1w Q29udGV4dFBQQzY0QWxsOwotKwotKyAgbWVtY3B5KGNvbnRleHRfLnJlZ3MsIGNvbnRleHRfc25h cHNob3QtPnJlZ3MsIHNpemVvZihjb250ZXh0Xy5yZWdzKSk7Ci0rICBjb250ZXh0Xy5uaXAgPSBj b250ZXh0X3NuYXBzaG90LT5uaXA7Ci0rICBjb250ZXh0Xy5tc3IgPSBjb250ZXh0X3NuYXBzaG90 LT5tc3I7Ci0rICBjb250ZXh0Xy5jY3IgPSBjb250ZXh0X3NuYXBzaG90LT5jY3I7Ci0rICBjb250 ZXh0Xy54ZXIgPSBjb250ZXh0X3NuYXBzaG90LT54ZXI7Ci0rICBjb250ZXh0Xy5sbmsgPSBjb250 ZXh0X3NuYXBzaG90LT5sbms7Ci0rICBjb250ZXh0Xy5jdHIgPSBjb250ZXh0X3NuYXBzaG90LT5j dHI7Ci0rCi0rICBtZW1jcHkoY29udGV4dF8uZnByZWdzLCBjb250ZXh0X3NuYXBzaG90LT5mcHJl Z3MsIHNpemVvZihjb250ZXh0Xy5mcHJlZ3MpKTsKLSsgIGNvbnRleHRfLmZwc2NyID0gY29udGV4 dF9zbmFwc2hvdC0+ZnBzY3I7Ci0rCi0rICBtZW1jcHkoY29udGV4dF8udnJlZ3Muc2F2ZV92ciwg Y29udGV4dF9zbmFwc2hvdC0+dnJlZ3Muc2F2ZV92ciwKLSsgICAgICAgICBzaXplb2YoY29udGV4 dF8udnJlZ3Muc2F2ZV92cikpOwotKyAgbWVtY3B5KCZjb250ZXh0Xy52cmVncy5zYXZlX3ZzY3Is ICZjb250ZXh0X3NuYXBzaG90LT52cmVncy5zYXZlX3ZzY3IsCi0rICAgICAgICAgc2l6ZW9mKGNv bnRleHRfLnZyZWdzLnNhdmVfdnNjcikpOwotKyAgY29udGV4dF8udnJlZ3Muc2F2ZV92cnNhdmUg PSBjb250ZXh0X3NuYXBzaG90LT52cmVncy5zYXZlX3Zyc2F2ZTsKLSt9Ci0rCi0rYm9vbCBNaW5p ZHVtcENvbnRleHRQUEM2NFdyaXRlcjo6V3JpdGVPYmplY3QoCi0rICAgIEZpbGVXcml0ZXJJbnRl cmZhY2UqIGZpbGVfd3JpdGVyKSB7Ci0rICBEQ0hFQ0tfRVEoc3RhdGUoKSwga1N0YXRlV3JpdGFi bGUpOwotKyAgcmV0dXJuIGZpbGVfd3JpdGVyLT5Xcml0ZSgmY29udGV4dF8sIHNpemVvZihjb250 ZXh0XykpOwotK30KLSsKLStzaXplX3QgTWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXI6OkNvbnRl eHRTaXplKCkgY29uc3QgewotKyAgRENIRUNLX0dFKHN0YXRlKCksIGtTdGF0ZUZyb3plbik7Ci0r ICByZXR1cm4gc2l6ZW9mKGNvbnRleHRfKTsKLSt9Ci0rCi0gfSAgLy8gbmFtZXNwYWNlIGNyYXNo cGFkCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21p bmlkdW1wX2NvbnRleHRfd3JpdGVyLmggdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWlu aWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXIuaAotaW5kZXggZDRhYjkzNmUuLjFkMjJmYzU5 IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlk dW1wX2NvbnRleHRfd3JpdGVyLmgKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9t aW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlci5oCi1AQCAtMzE1LDYgKzMxNSw0NSBAQCBj bGFzcyBNaW5pZHVtcENvbnRleHRNSVBTNjRXcml0ZXIgZmluYWwgOiBwdWJsaWMgTWluaWR1bXBD b250ZXh0V3JpdGVyIHsKLSAgIERJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihNaW5pZHVtcENvbnRl eHRNSVBTNjRXcml0ZXIpOwotIH07Ci0gCi0rY2xhc3MgTWluaWR1bXBDb250ZXh0UFBDNjRXcml0 ZXIgZmluYWwgOiBwdWJsaWMgTWluaWR1bXBDb250ZXh0V3JpdGVyIHsKLSsgcHVibGljOgotKyAg TWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIoKTsKLSsgIH5NaW5pZHVtcENvbnRleHRQUEM2NFdy aXRlcigpIG92ZXJyaWRlOwotKwotKyAgLy8hIFxicmllZiBJbml0YWxpemVzIHRoZSBNaW5pZHVt cENvbnRleHRQUEM2NCBiYXNlZCBvbiBcYSBjb250ZXh0X3NuYXBzaG90LgotKyAgLy8hCi0rICAv LyEgXHBhcmFtW2luXSBjb250ZXh0X3NuYXBzaG90IFRoZSBjb250ZXh0IHNuYXBzaG90IHRvIHVz ZSBhcyBzb3VyY2UgZGF0YS4KLSsgIC8vIQotKyAgLy8hIFxub3RlIFZhbGlkIGluICNrU3RhdGVN dXRhYmxlLiBObyBtdXRhdGlvbiBvZiBjb250ZXh0KCkgbWF5IGJlIGRvbmUgYmVmb3JlCi0rICAv LyEgICAgIGNhbGxpbmcgdGhpcyBtZXRob2QsIGFuZCBpdCBpcyBub3Qgbm9ybWFsbHkgbmVjZXNz YXJ5IHRvIGFsdGVyCi0rICAvLyEgICAgIGNvbnRleHQoKSBhZnRlciBjYWxsaW5nIHRoaXMgbWV0 aG9kLgotKyAgdm9pZCBJbml0YWxpemVGcm9tU25hcHNob3QoY29uc3QgQ1BVQ29udGV4dFBQQzY0 KiBjb250ZXh0X3NuYXBzaG90KTsKLSsKLSsgIC8vISBcYnJpZWYgUmV0dXJucyBhIHBvaW50ZXIg dG8gdGhlIGNvbnRleHQgc3RydWN0dXJlIHRoYXQgdGhpcyBvYmplY3Qgd2lsbAotKyAgLy8hICAg ICB3cml0ZS4KLSsgIC8vIQotKyAgLy8hIFxhdHRlbnRpb24gVGhpcyByZXR1cm5zIGEgbm9uLWBj b25zdGAgcG9pbnRlciB0byB0aGlzIG9iamVjdOKAmXMgcHJpdmF0ZQotKyAgLy8hICAgICBkYXRh IHNvIHRoYXQgYSBjYWxsZXIgY2FuIHBvcHVsYXRlIHRoZSBjb250ZXh0IHN0cnVjdHVyZSBkaXJl Y3RseS4KLSsgIC8vISAgICAgVGhpcyBpcyBkb25lIGJlY2F1c2UgcHJvdmlkaW5nIHNldHRlciBp bnRlcmZhY2VzIHRvIGVhY2ggZmllbGQgaW4gdGhlCi0rICAvLyEgICAgIGNvbnRleHQgc3RydWN0 dXJlIHdvdWxkIGJlIHVud2llbGR5IGFuZCBjdW1iZXJzb21lLiBDYXJlIG11c3QgYmUgdGFrZW4K LSsgIC8vISAgICAgdG8gcG9wdWxhdGUgdGhlIGNvbnRleHQgc3RydWN0dXJlIGNvcnJlY3RseS4g VGhlIGNvbnRleHQgc3RydWN0dXJlCi0rICAvLyEgICAgIG11c3Qgb25seSBiZSBtb2RpZmllZCB3 aGlsZSB0aGlzIG9iamVjdCBpcyBpbiB0aGUgI2tTdGF0ZU11dGFibGUKLSsgIC8vISAgICAgc3Rh dGUuCi0rICBNaW5pZHVtcENvbnRleHRQUEM2NCogY29udGV4dCgpIHsgcmV0dXJuICZjb250ZXh0 XzsgfQotKwotKyBwcm90ZWN0ZWQ6Ci0rICAvLyBNaW5pZHVtcFdyaXRhYmxlOgotKyAgYm9vbCBX cml0ZU9iamVjdChGaWxlV3JpdGVySW50ZXJmYWNlKiBmaWxlX3dyaXRlcikgb3ZlcnJpZGU7Ci0r Ci0rICAvLyBNaW5pZHVtcENvbnRleHRXcml0ZXI6Ci0rICBzaXplX3QgQ29udGV4dFNpemUoKSBj b25zdCBvdmVycmlkZTsKLSsKLSsgcHJpdmF0ZToKLSsgIE1pbmlkdW1wQ29udGV4dFBQQzY0IGNv bnRleHRfOwotKwotKyAgRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOKE1pbmlkdW1wQ29udGV4dFBQ QzY0V3JpdGVyKTsKLSt9OwotKwotIH0gIC8vIG5hbWVzcGFjZSBjcmFzaHBhZAotIAotICNlbmRp ZiAgLy8gQ1JBU0hQQURfTUlOSURVTVBfTUlOSURVTVBfQ09OVEVYVF9XUklURVJfSF8KLWRpZmYg LS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29u dGV4dF93cml0ZXJfdGVzdC5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVt cC9taW5pZHVtcF9jb250ZXh0X3dyaXRlcl90ZXN0LmNjCi1pbmRleCAzMjE2YTkwNi4uYTlmY2Jl OWQgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWlu aWR1bXBfY29udGV4dF93cml0ZXJfdGVzdC5jYwotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyX3Rlc3QuY2MKLUBAIC0yMTMs NiArMjEzLDIxIEBAIFRFU1QoTWluaWR1bXBDb250ZXh0V3JpdGVyLCBNSVBTNjRfRnJvbVNuYXBz aG90KSB7Ci0gICAgICAgY29udGV4dCwgRXhwZWN0TWluaWR1bXBDb250ZXh0TUlQUzY0LCBrU2Vl ZCk7Ci0gfQotIAotK1RFU1QoTWluaWR1bXBDb250ZXh0V3JpdGVyLCBQUEM2NF9aZXJvcykgewot KyAgRW1wdHlDb250ZXh0VGVzdDxNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlciwgTWluaWR1bXBD b250ZXh0UFBDNjQ+KAotKyAgICBFeHBlY3RNaW5pZHVtcENvbnRleHRQUEM2NCk7Ci0rfQotKwot K1RFU1QoTWluaWR1bXBDb250ZXh0V3JpdGVyLCBQUEM2NF9Gcm9tU25hcHNob3QpIHsKLSsgIGNv bnN0ZXhwciB1aW50MzJfdCBrU2VlZCA9IDY0OwotKyAgQ1BVQ29udGV4dFBQQzY0IGNvbnRleHRf cHBjNjQ7Ci0rICBDUFVDb250ZXh0IGNvbnRleHQ7Ci0rICBjb250ZXh0LnBwYzY0ID0gJmNvbnRl eHRfcHBjNjQ7Ci0rICBJbml0aWFsaXplQ1BVQ29udGV4dFBQQzY0KCZjb250ZXh0LCBrU2VlZCk7 Ci0rICBGcm9tU25hcHNob3RUZXN0PE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyLCBNaW5pZHVt cENvbnRleHRQUEM2ND4oCi0rICAgICAgY29udGV4dCwgRXhwZWN0TWluaWR1bXBDb250ZXh0UFBD NjQsIGtTZWVkKTsKLSt9Ci0rCi0gfSAgLy8gbmFtZXNwYWNlCi0gfSAgLy8gbmFtZXNwYWNlIHRl c3QKLSB9ICAvLyBuYW1lc3BhY2UgY3Jhc2hwYWQKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfbWlzY19pbmZvX3dyaXRlci5jYyB0aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9taXNjX2luZm9fd3Jp dGVyLmNjCi1pbmRleCBhMTM0MDc2MC4uOTVkYzkyNTIgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfbWlzY19pbmZvX3dyaXRlci5jYwot KysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX21pc2Nf aW5mb193cml0ZXIuY2MKLUBAIC0xMjYsNiArMTI2LDggQEAgc3RkOjpzdHJpbmcgTWluaWR1bXBN aXNjSW5mb0RlYnVnQnVpbGRTdHJpbmcoKSB7Ci0gICBzdGF0aWMgY29uc3RleHByIGNoYXIga0NQ VVtdID0gIm1pcHMiOwotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQUzY0RUwpCi0gICBzdGF0 aWMgY29uc3RleHByIGNoYXIga0NQVVtdID0gIm1pcHM2NCI7Ci0rI2VsaWYgZGVmaW5lZChBUkNI X0NQVV9QUEM2NCkKLSsgIHN0YXRpYyBjb25zdGV4cHIgY2hhciBrQ1BVW10gPSAicHBjNjQiOwot ICNlbHNlCi0gI2Vycm9yIGRlZmluZSBrQ1BVIGZvciB0aGlzIENQVQotICNlbmRpZgotZGlmZiAt LWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jYXB0dXJlX21lbW9y eS5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jYXB0dXJlX21lbW9y eS5jYwotaW5kZXggYTUxNjI2Y2MuLjYxZTBiMjBhIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NhcHR1cmVfbWVtb3J5LmNjCi0rKysgdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY2FwdHVyZV9tZW1vcnkuY2MKLUBAIC0xMTEs NiArMTExLDExIEBAIHZvaWQgQ2FwdHVyZU1lbW9yeTo6UG9pbnRlZFRvQnlDb250ZXh0KGNvbnN0 IENQVUNvbnRleHQmIGNvbnRleHQsCi0gICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGJhc2U6OnNp emUoY29udGV4dC5taXBzZWwtPnJlZ3MpOyArK2kpIHsKLSAgICAgTWF5YmVDYXB0dXJlTWVtb3J5 QXJvdW5kKGRlbGVnYXRlLCBjb250ZXh0Lm1pcHNlbC0+cmVnc1tpXSk7Ci0gICB9Ci0rI2VsaWYg ZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICBNYXliZUNhcHR1cmVNZW1vcnlBcm91 bmQoZGVsZWdhdGUsIGNvbnRleHQucHBjNjQtPm5pcCk7Ci0rICBmb3IgKHNpemVfdCBpID0gMDsg aSA8IGJhc2U6OnNpemUoY29udGV4dC5wcGM2NC0+cmVncyk7ICsraSkgewotKyAgICBNYXliZUNh cHR1cmVNZW1vcnlBcm91bmQoZGVsZWdhdGUsIGNvbnRleHQucHBjNjQtPnJlZ3NbaV0pOwotKyAg fQotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9hcmNoaXRlY3R1cmUuaCB0aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfYXJjaGl0ZWN0dXJlLmgKLWluZGV4IDgx MWE3MjA5Li5mNGY4Mzk4MSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9zbmFwc2hvdC9jcHVfYXJjaGl0ZWN0dXJlLmgKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC9zbmFwc2hvdC9jcHVfYXJjaGl0ZWN0dXJlLmgKLUBAIC00Myw3ICs0MywxMCBAQCBl bnVtIENQVUFyY2hpdGVjdHVyZSB7Ci0gICBrQ1BVQXJjaGl0ZWN0dXJlTUlQU0VMLAotIAotICAg Ly8hIFxicmllZiA2NC1iaXQgTUlQU0VMLgotLSAga0NQVUFyY2hpdGVjdHVyZU1JUFM2NEVMCi0r ICBrQ1BVQXJjaGl0ZWN0dXJlTUlQUzY0RUwsCi0rCi0rICAvLyEgXGJyaWVmIDY0LWJpdCBQUEM2 NC4KLSsgIGtDUFVBcmNoaXRlY3R1cmVQUEM2NAotIH07Ci0gCi0gfSAgLy8gbmFtZXNwYWNlIGNy YXNocGFkCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90 L2NwdV9jb250ZXh0LmNjIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2Nw dV9jb250ZXh0LmNjCi1pbmRleCA2ZmI4ZDdlNy4uYjAxZjdjYWQgMTAwNjQ0Ci0tLS0gdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2NvbnRleHQuY2MKLSsrKyB0aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5jYwotQEAgLTE2 OSw2ICsxNjksOCBAQCB1aW50NjRfdCBDUFVDb250ZXh0OjpJbnN0cnVjdGlvblBvaW50ZXIoKSBj b25zdCB7Ci0gICAgICAgcmV0dXJuIGFybS0+cGM7Ci0gICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVy ZUFSTTY0OgotICAgICAgIHJldHVybiBhcm02NC0+cGM7Ci0rICAgIGNhc2Uga0NQVUFyY2hpdGVj dHVyZVBQQzY0OgotKyAgICAgIHJldHVybiBwcGM2NC0+bmlwOwotICAgICBkZWZhdWx0OgotICAg ICAgIE5PVFJFQUNIRUQoKTsKLSAgICAgICByZXR1cm4gfjB1bGw7Ci1AQCAtMTg1LDYgKzE4Nyw4 IEBAIHVpbnQ2NF90IENQVUNvbnRleHQ6OlN0YWNrUG9pbnRlcigpIGNvbnN0IHsKLSAgICAgICBy ZXR1cm4gYXJtLT5zcDsKLSAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlQVJNNjQ6Ci0gICAgICAg cmV0dXJuIGFybTY0LT5zcDsKLSsgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQ6Ci0rICAg ICAgcmV0dXJuIHBwYzY0LT5yZWdzWzFdOwotICAgICBkZWZhdWx0OgotICAgICAgIE5PVFJFQUNI RUQoKTsKLSAgICAgICByZXR1cm4gfjB1bGw7Ci1AQCAtMTk2LDYgKzIwMCw3IEBAIGJvb2wgQ1BV Q29udGV4dDo6SXM2NEJpdCgpIGNvbnN0IHsKLSAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlWDg2 XzY0OgotICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVBUk02NDoKLSAgICAgY2FzZSBrQ1BVQXJj aGl0ZWN0dXJlTUlQUzY0RUw6Ci0rICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZVBQQzY0OgotICAg ICAgIHJldHVybiB0cnVlOwotICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVYODY6Ci0gICAgIGNh c2Uga0NQVUFyY2hpdGVjdHVyZUFSTToKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvc25hcHNob3QvY3B1X2NvbnRleHQuaCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5oCi1pbmRleCBmYjIzYzQ2Ny4uZWViZWRlNjMgMTAw NjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2NvbnRl eHQuaAotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9jb250 ZXh0LmgKLUBAIC0zNTIsNiArMzUyLDI0IEBAIHN0cnVjdCBDUFVDb250ZXh0TUlQUzY0IHsKLSAg IHVpbnQ2NF90IGZpcjsKLSB9OwotIAotKy8vISBcYnJpZWYgQSBjb250ZXh0IHN0cnVjdHVyZSBj YXJyeWluZyBQUEM2NCBDUFUgc3RhdGUuCi0rc3RydWN0IENQVUNvbnRleHRQUEM2NCB7Ci0rICB1 aW50NjRfdCBuaXA7Ci0rICB1aW50NjRfdCBtc3I7Ci0rICB1aW50NjRfdCByZWdzWzMyXTsKLSsg IHVpbnQ2NF90IGNjcjsKLSsgIHVpbnQ2NF90IHhlcjsKLSsgIHVpbnQ2NF90IGxuazsKLSsgIHVp bnQ2NF90IGN0cjsKLSsgIGRvdWJsZSBmcHJlZ3NbMzJdOwotKyAgZG91YmxlIGZwc2NyOwotKyAg c3RydWN0IHsKLSsgICAgdWludDEyOF9zdHJ1Y3Qgc2F2ZV92clszMl07Ci0rICAgIHVpbnQxMjhf c3RydWN0IHNhdmVfdnNjcjsKLSsgICAgdWludDMyX3Qgc2F2ZV92cnNhdmU7Ci0rICB9IHZyZWdz OwotK307Ci0rCi0gLy8hIFxicmllZiBBIGNvbnRleHQgc3RydWN0dXJlIGNhcGFibGUgb2YgY2Fy cnlpbmcgdGhlIGNvbnRleHQgb2YgYW55IHN1cHBvcnRlZAotIC8vISAgICAgQ1BVIGFyY2hpdGVj dHVyZS4KLSBzdHJ1Y3QgQ1BVQ29udGV4dCB7Ci1AQCAtMzgyLDYgKzQwMCw3IEBAIHN0cnVjdCBD UFVDb250ZXh0IHsKLSAgICAgQ1BVQ29udGV4dEFSTTY0KiBhcm02NDsKLSAgICAgQ1BVQ29udGV4 dE1JUFMqIG1pcHNlbDsKLSAgICAgQ1BVQ29udGV4dE1JUFM2NCogbWlwczY0OwotKyAgICBDUFVD b250ZXh0UFBDNjQqIHBwYzY0OwotICAgfTsKLSB9OwotIAotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9jcHVfY29udGV4dF9saW51eC5oIHRo aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2NwdV9jb250ZXh0X2xp bnV4LmgKLWluZGV4IDlmNDZhNDg5Li5hYTY3N2M0ZSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9jcHVfY29udGV4dF9saW51eC5oCi0rKysg dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvY3B1X2NvbnRleHRf bGludXguaAotQEAgLTE1LDYgKzE1LDcgQEAKLSAjaWZuZGVmIENSQVNIUEFEX1NOQVBTSE9UX0xJ TlVYX0NQVV9DT05URVhUX0xJTlVYX0hfCi0gI2RlZmluZSBDUkFTSFBBRF9TTkFQU0hPVF9MSU5V WF9DUFVfQ09OVEVYVF9MSU5VWF9IXwotIAotKyNpbmNsdWRlIDxjc3RyaW5nPgotICNpbmNsdWRl ICJidWlsZC9idWlsZF9jb25maWcuaCIKLSAjaW5jbHVkZSAic25hcHNob3QvY3B1X2NvbnRleHQu aCIKLSAjaW5jbHVkZSAic25hcHNob3QvbGludXgvc2lnbmFsX2NvbnRleHQuaCIKLUBAIC0xNzQs NiArMTc1LDc4IEBAIHZvaWQgSW5pdGlhbGl6ZUNQVUNvbnRleHRNSVBTKAotIAotICNlbmRpZiAg Ly8gQVJDSF9DUFVfTUlQU19GQU1JTFkgfHwgRE9YWUdFTgotIAotKyNpZiBkZWZpbmVkKEFSQ0hf Q1BVX1BQQzY0X0ZBTUlMWSkgfHwgRE9YWUdFTgotKwotKy8vISBcYnJpZWYgSW5pdGFsaXplcyBh IENQVUNvbnRleHRQUEM2NCBzdHJ1Y3R1cmUgZnJvbSBuYXRpdmUgY29udGV4dAotKy8vISAgICAg c3RydWN0dXJlcyBvbiBMaW51eC4KLSsvLyEKLSsvLyEgXHBhcmFtW2luXSB0aHJlYWRfY29udGV4 dCBUaGUgbmF0aXZlIHRocmVhZCBjb250ZXh0LgotKy8vISBccGFyYW1baW5dIGZsb2F0X2NvbnRl eHQgVGhlIG5hdGl2ZSBmbG9hdCBjb250ZXh0LgotKy8vISBccGFyYW1baW5dIHZlY3Rvcl9jb250 ZXh0IFRoZSBuYXRpdmUgdmVjdG9yIGNvbnRleHQuCi0rLy8hIFxwYXJhbVtvdXRdIGNvbnRleHQg VGhlIENQVUNvbnRleHRQUEM2NCBzdHJ1Y3R1cmUgdG8gaW5pdGFsaXplLgotK3RlbXBsYXRlIDx0 eXBlbmFtZSBUcmFpdHM+Ci0rdm9pZCBJbml0aWFsaXplQ1BVQ29udGV4dFBQQzY0KAotKyAgICBj b25zdCBUaHJlYWRDb250ZXh0Ojp0NjRfdCYgdGhyZWFkX2NvbnRleHQsCi0rICAgIGNvbnN0IEZs b2F0Q29udGV4dDo6ZjY0X3QmIGZsb2F0X2NvbnRleHQsCi0rICAgIGNvbnN0IFZlY3RvckNvbnRl eHQ6OnY2NF90JiB2ZWN0b3JfY29udGV4dCwKLSsgICAgdHlwZW5hbWUgVHJhaXRzOjpDUFVDb250 ZXh0KiBjb250ZXh0KSB7Ci0rCi0rICBtZW1jcHkoY29udGV4dC0+cmVncywgdGhyZWFkX2NvbnRl eHQuZ3ByLCBzaXplb2YoY29udGV4dC0+cmVncykpOwotKyAgY29udGV4dC0+bmlwID0gdGhyZWFk X2NvbnRleHQubmlwOwotKyAgY29udGV4dC0+bXNyID0gdGhyZWFkX2NvbnRleHQubXNyOwotKyAg Y29udGV4dC0+Y2NyID0gdGhyZWFkX2NvbnRleHQuY2NyOwotKyAgY29udGV4dC0+eGVyID0gdGhy ZWFkX2NvbnRleHQueGVyOwotKyAgY29udGV4dC0+bG5rID0gdGhyZWFkX2NvbnRleHQubG5rOwot KyAgY29udGV4dC0+Y3RyID0gdGhyZWFkX2NvbnRleHQuY3RyOwotKwotKyAgbWVtY3B5KGNvbnRl eHQtPmZwcmVncywgZmxvYXRfY29udGV4dC5mcHJlZ3MsIHNpemVvZihjb250ZXh0LT5mcHJlZ3Mp KTsKLSsgIGNvbnRleHQtPmZwc2NyID0gZmxvYXRfY29udGV4dC5mcHNjcjsKLSsKLSsgIGZvciAo dWludDhfdCBpID0gMDsgaSA8IDMyOyBpKyspIHsKLSsgICAgY29udGV4dC0+dnJlZ3Muc2F2ZV92 cltpXSA9IHsKLSsgICAgICAoKCh1aW50NjRfdCl2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bMF0p IDw8IDMyKSB8Ci0rICAgICAgICB2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bMV0sCi0rICAgICAg KCgodWludDY0X3QpdmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzJdKSA8PCAzMikgfAotKyAgICAg ICAgdmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzNdCi0rICAgIH07Ci0rICB9Ci0rICBjb250ZXh0 LT52cmVncy5zYXZlX3Zyc2F2ZSA9IHZlY3Rvcl9jb250ZXh0LnZyc2F2ZTsKLSsgIGNvbnRleHQt PnZyZWdzLnNhdmVfdnNjciA9IHswLCAodWludDY0X3QpdmVjdG9yX2NvbnRleHQudnNjci52c2Ny X3dvcmR9OwotK30KLSsKLSt0ZW1wbGF0ZSA8dHlwZW5hbWUgVHJhaXRzPgotK3ZvaWQgSW5pdGlh bGl6ZUNQVUNvbnRleHRQUEM2NCgKLSsgICAgY29uc3QgU2lnbmFsVGhyZWFkQ29udGV4dDY0ICZ0 aHJlYWRfY29udGV4dCwKLSsgICAgY29uc3QgU2lnbmFsRmxvYXRDb250ZXh0NjQgJmZsb2F0X2Nv bnRleHQsCi0rICAgIGNvbnN0IFNpZ25hbFZlY3RvckNvbnRleHQ2NCAmdmVjdG9yX2NvbnRleHQs Ci0rICAgIHR5cGVuYW1lIFRyYWl0czo6Q1BVQ29udGV4dCogY29udGV4dCkgewotKwotKyAgbWVt Y3B5KGNvbnRleHQtPnJlZ3MsIHRocmVhZF9jb250ZXh0LnJlZ3MsIHNpemVvZihjb250ZXh0LT5y ZWdzKSk7Ci0rICBjb250ZXh0LT5uaXAgPSB0aHJlYWRfY29udGV4dC5uaXA7Ci0rICBjb250ZXh0 LT5tc3IgPSB0aHJlYWRfY29udGV4dC5tc3I7Ci0rICBjb250ZXh0LT5jY3IgPSB0aHJlYWRfY29u dGV4dC5jY3I7Ci0rICBjb250ZXh0LT54ZXIgPSB0aHJlYWRfY29udGV4dC54ZXI7Ci0rICBjb250 ZXh0LT5sbmsgPSB0aHJlYWRfY29udGV4dC5sbms7Ci0rICBjb250ZXh0LT5jdHIgPSB0aHJlYWRf Y29udGV4dC5jdHI7Ci0rCi0rICBtZW1jcHkoY29udGV4dC0+ZnByZWdzLCBmbG9hdF9jb250ZXh0 LnJlZ3MsIHNpemVvZihjb250ZXh0LT5mcHJlZ3MpKTsKLSsgIGNvbnRleHQtPmZwc2NyID0gZmxv YXRfY29udGV4dC5mcHNjcjsKLSsKLSsgIGZvciAodWludDhfdCBpID0gMDsgaSA8IDMyOyBpKysp IHsKLSsgICAgY29udGV4dC0+dnJlZ3Muc2F2ZV92cltpXSA9IHsKLSsgICAgICAoKCh1aW50NjRf dCl2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bMF0pIDw8IDMyKSB8Ci0rICAgICAgICB2ZWN0b3Jf Y29udGV4dC52cnJlZ3NbaV1bMV0sCi0rICAgICAgKCgodWludDY0X3QpdmVjdG9yX2NvbnRleHQu dnJyZWdzW2ldWzJdKSA8PCAzMikgfAotKyAgICAgICAgdmVjdG9yX2NvbnRleHQudnJyZWdzW2ld WzNdCi0rICAgIH07Ci0rICB9Ci0rICBjb250ZXh0LT52cmVncy5zYXZlX3Zyc2F2ZSA9IHZlY3Rv cl9jb250ZXh0LnZyc2F2ZTsKLSsgIGNvbnRleHQtPnZyZWdzLnNhdmVfdnNjciA9IHswLCAodWlu dDY0X3QpdmVjdG9yX2NvbnRleHQudnNjci52c2NyX3dvcmR9OwotK30KLSsKLSsKLSsjZW5kaWYK LSsKLSB9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKLSB9ICAvLyBuYW1lc3BhY2UgY3Jhc2hwYWQK LSAKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGlu dXgvZGVidWdfcmVuZGV6dm91c190ZXN0LmNjIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3NuYXBzaG90L2xpbnV4L2RlYnVnX3JlbmRlenZvdXNfdGVzdC5jYwotaW5kZXggYmUyMmM5MDMu LmM1ZGYyM2QxIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBz aG90L2xpbnV4L2RlYnVnX3JlbmRlenZvdXNfdGVzdC5jYwotKysrIHRoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2RlYnVnX3JlbmRlenZvdXNfdGVzdC5jYwotQEAg LTE1OSw5ICsxNTksMTEgQEAgdm9pZCBUZXN0QWdhaW5zdFRhcmdldChQdHJhY2VDb25uZWN0aW9u KiBjb25uZWN0aW9uKSB7Ci0gICAgICAgICAgIGNvbnN0IGJvb2wgaXNfdmRzb19tYXBwaW5nID0K LSAgICAgICAgICAgICAgIGRldmljZSA9PSAwICYmIGlub2RlID09IDAgJiYgbWFwcGluZ19uYW1l ID09ICJbdmRzb10iOwotICAgICAgICAgICBzdGF0aWMgY29uc3RleHByIGNoYXIga1ByZWZpeFtd ID0gImxpbnV4LXZkc28uc28uIjsKLSsgICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGtQ cmVmaXg2NFtdID0gImxpbnV4LXZkc282NC5zby4iOwotICAgICAgICAgICByZXR1cm4gaXNfdmRz b19tYXBwaW5nID09Ci0gICAgICAgICAgICAgICAgICAobW9kdWxlX25hbWUuZW1wdHkoKSB8fAot LSAgICAgICAgICAgICAgICAgIG1vZHVsZV9uYW1lLmNvbXBhcmUoMCwgc3RybGVuKGtQcmVmaXgp LCBrUHJlZml4KSA9PSAwKTsKLSsgICAgICAgICAgICAgICAgICBtb2R1bGVfbmFtZS5jb21wYXJl KDAsIHN0cmxlbihrUHJlZml4KSwga1ByZWZpeCkgPT0gMCB8fAotKyAgICAgICAgICAgICAgICAg IG1vZHVsZV9uYW1lLmNvbXBhcmUoMCwgc3RybGVuKGtQcmVmaXg2NCksIGtQcmVmaXg2NCkgPT0g MCk7Ci0gICAgICAgICB9LAotICAgICAgICAgbW9kdWxlX21hcHBpbmctPm5hbWUsCi0gICAgICAg ICBtb2R1bGVfbWFwcGluZy0+ZGV2aWNlLAotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXguY2MgdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBz aG90X2xpbnV4LmNjCi1pbmRleCBjZDQwYjNiMS4uNmJjZjIzYjYgMTAwNjQ0Ci0tLS0gdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90 X2xpbnV4LmNjCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGlu dXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmNjCi1AQCAtMzIzLDYgKzMyMyw2OSBAQCBib29s IEV4Y2VwdGlvblNuYXBzaG90TGludXg6OlJlYWRDb250ZXh0PENvbnRleHRUcmFpdHM2ND4oCi0g ICAgICAgcmVhZGVyLCBjb250ZXh0X2FkZHJlc3MsIGNvbnRleHRfLm1pcHM2NCk7Ci0gfQotIAot KyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKwotK3RlbXBsYXRlIDx0eXBl bmFtZSBUcmFpdHM+Ci0rc3RhdGljIGJvb2wgUmVhZENvbnRleHQoUHJvY2Vzc1JlYWRlckxpbnV4 KiByZWFkZXIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgTGludXhWTUFkZHJlc3MgY29udGV4 dF9hZGRyZXNzLAotKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIFRyYWl0czo6Q1BV Q29udGV4dCogZGVzdF9jb250ZXh0KSB7Ci0rICBjb25zdCBQcm9jZXNzTWVtb3J5KiBtZW1vcnkg PSByZWFkZXItPk1lbW9yeSgpOwotKwotKyAgTGludXhWTUFkZHJlc3MgZ3BfcmVnc19hZGRyZXNz ID0gY29udGV4dF9hZGRyZXNzICsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG9mZnNldG9mKFVDb250ZXh0LCBtY29udGV4dCkgKwotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb2Zmc2V0b2YodHlwZW5hbWUgVHJhaXRzOjpNQ29udGV4dCwgZ3BfcmVncyk7 Ci0rCi0rICB0eXBlbmFtZSBUcmFpdHM6OlNpZ25hbFRocmVhZENvbnRleHQgdGhyZWFkX2NvbnRl eHQ7Ci0rICBpZiAoIW1lbW9yeS0+UmVhZChncF9yZWdzX2FkZHJlc3MsIHNpemVvZih0aHJlYWRf Y29udGV4dCksICZ0aHJlYWRfY29udGV4dCkpIHsKLSsgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRu J3QgcmVhZCBncF9yZWdzISI7Ci0rICAgIHJldHVybiBmYWxzZTsKLSsgIH0KLSsKLSsgIExpbnV4 Vk1BZGRyZXNzIGZwX3JlZ3NfYWRkcmVzcyA9IGNvbnRleHRfYWRkcmVzcyArCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZihVQ29udGV4dCwgbWNvbnRleHQpICsK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKHR5cGVuYW1lIFRy YWl0czo6TUNvbnRleHQsIGZwX3JlZ3MpOwotKwotKyAgdHlwZW5hbWUgVHJhaXRzOjpTaWduYWxG bG9hdENvbnRleHQgZnBfY29udGV4dDsKLSsgIGlmICghbWVtb3J5LT5SZWFkKGZwX3JlZ3NfYWRk cmVzcywgc2l6ZW9mKGZwX2NvbnRleHQpLCAmZnBfY29udGV4dCkpIHsKLSsgICAgTE9HKEVSUk9S KSA8PCAiQ291bGRuJ3QgcmVhZCBmcF9yZWdzISI7Ci0rICAgIHJldHVybiBmYWxzZTsKLSsgIH0K LSsKLSsgIExpbnV4Vk1BZGRyZXNzIHZfcmVnc19wdHJfYWRkcmVzcyA9IGNvbnRleHRfYWRkcmVz cyArCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKFVDb250ZXh0 LCBtY29udGV4dCkgKwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRv Zih0eXBlbmFtZSBUcmFpdHM6Ok1Db250ZXh0LCB2bXhfcmVzZXJ2ZSkgKyA4OwotKwotKyAgdHlw ZW5hbWUgVHJhaXRzOjpTaWduYWxWZWN0b3JDb250ZXh0IHZfY29udGV4dDsKLSsgIGlmICghbWVt b3J5LT5SZWFkKHZfcmVnc19wdHJfYWRkcmVzcywgc2l6ZW9mKHZfY29udGV4dCksICZ2X2NvbnRl eHQpKSB7Ci0rICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IHJlYWQgdl9yZWdzISI7Ci0rICAg IHJldHVybiBmYWxzZTsKLSsgIH0KLSsKLSsgIEluaXRpYWxpemVDUFVDb250ZXh0UFBDNjQ8Q29u dGV4dFRyYWl0czY0Pih0aHJlYWRfY29udGV4dCwgZnBfY29udGV4dCwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdl9jb250ZXh0LCBkZXN0X2NvbnRleHQpOwotKwotKyAgcmV0dXJuIHRy dWU7Ci0rfQotKwotK3RlbXBsYXRlPD4KLStib29sIEV4Y2VwdGlvblNuYXBzaG90TGludXg6OlJl YWRDb250ZXh0PENvbnRleHRUcmFpdHM2ND4oCi0rICAgIFByb2Nlc3NSZWFkZXJMaW51eCogcmVh ZGVyLAotKyAgICBMaW51eFZNQWRkcmVzcyBjb250ZXh0X2FkZHJlc3MpIHsKLSsgIGNvbnRleHRf LmFyY2hpdGVjdHVyZSA9IGtDUFVBcmNoaXRlY3R1cmVQUEM2NDsKLSsgIGNvbnRleHRfLnBwYzY0 ID0gJmNvbnRleHRfdW5pb25fLnBwYzY0OwotKwotKyAgcmV0dXJuIGludGVybmFsOjpSZWFkQ29u dGV4dDxDb250ZXh0VHJhaXRzNjQ+KAotKyAgICAgIHJlYWRlciwgY29udGV4dF9hZGRyZXNzLCBj b250ZXh0Xy5wcGM2NCk7Ci0rfQotKwotK3RlbXBsYXRlPD4KLStib29sIEV4Y2VwdGlvblNuYXBz aG90TGludXg6OlJlYWRDb250ZXh0PENvbnRleHRUcmFpdHMzMj4oCi0rICAgIFByb2Nlc3NSZWFk ZXJMaW51eCogcmVhZGVyLAotKyAgICBMaW51eFZNQWRkcmVzcyBjb250ZXh0X2FkZHJlc3MpIHsK LSsgIC8vIFBQQzY0IGlzIDY0LWJpdAotKyAgcmV0dXJuIGZhbHNlOwotK30KLSsKLSAjZW5kaWYg IC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKLSAKLSBib29sIEV4Y2VwdGlvblNuYXBzaG90TGludXg6 OkluaXRpYWxpemUoUHJvY2Vzc1JlYWRlckxpbnV4KiBwcm9jZXNzX3JlYWRlciwKLWRpZmYgLS1n aXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9u X3NuYXBzaG90X2xpbnV4LmggdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv bGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmgKLWluZGV4IGVhMGNkMjEwLi5lNDJkZjUy MCAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51 eC9leGNlcHRpb25fc25hcHNob3RfbGludXguaAotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5oCi1AQCAtODQs NiArODQsOCBAQCBjbGFzcyBFeGNlcHRpb25TbmFwc2hvdExpbnV4IGZpbmFsIDogcHVibGljIEV4 Y2VwdGlvblNuYXBzaG90IHsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQot ICAgICBDUFVDb250ZXh0TUlQUyBtaXBzZWw7Ci0gICAgIENQVUNvbnRleHRNSVBTNjQgbWlwczY0 OwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgICBDUFVDb250ZXh0 UFBDNjQgcHBjNjQ7Ci0gI2VuZGlmCi0gICB9IGNvbnRleHRfdW5pb25fOwotICAgQ1BVQ29udGV4 dCBjb250ZXh0XzsKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25h cHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4X3Rlc3QuY2MgdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4 X3Rlc3QuY2MKLWluZGV4IGU0ZmYxYWI3Li4yNTUzNGRkMCAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGlu dXhfdGVzdC5jYwotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xp bnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eF90ZXN0LmNjCi1AQCAtMjk2LDcgKzI5NiwyOCBA QCB2b2lkIEV4cGVjdENvbnRleHQoY29uc3QgQ1BVQ29udGV4dCYgYWN0dWFsLCBjb25zdCBOYXRp dmVDUFVDb250ZXh0JiBleHBlY3RlZCkgewotICAgICAgICAgICAgIDApOwotICN1bmRlZiBDUFVf QVJDSF9OQU1FCi0gfQotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotK3Vz aW5nIE5hdGl2ZUNQVUNvbnRleHQgPSB1Y29udGV4dF90OwotKwotK3ZvaWQgSW5pdGlhbGl6ZUNv bnRleHQoTmF0aXZlQ1BVQ29udGV4dCogY29udGV4dCkgewotKyAgZm9yIChzaXplX3QgcmVnID0g MDsgcmVnIDwgMzI7ICsrcmVnKSB7Ci0rICAgIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb cmVnXSA9IHJlZzsKLSsgIH0KLSsKLSsgIG1lbXNldCgmY29udGV4dC0+dWNfbWNvbnRleHQuZnBf cmVncywgNDQsCi0rICAgICAgc2l6ZW9mKGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3MpKTsK LSt9Ci0gCi0rdm9pZCBFeHBlY3RDb250ZXh0KGNvbnN0IENQVUNvbnRleHQmIGFjdHVhbCwgY29u c3QgTmF0aXZlQ1BVQ29udGV4dCYgZXhwZWN0ZWQpIHsKLSsgIEVYUEVDVF9FUShhY3R1YWwuYXJj aGl0ZWN0dXJlLCBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQpOwotKwotKyAgZm9yIChzaXplX3QgcmVn ID0gMDsgcmVnIDwgMzI7ICsrcmVnKSB7Ci0rICAgIEVYUEVDVF9FUShhY3R1YWwucHBjNjQtPnJl Z3NbcmVnXSwgZXhwZWN0ZWQudWNfbWNvbnRleHQuZ3BfcmVnc1tyZWddKTsKLSsgIH0KLSsKLSsg IEVYUEVDVF9FUShtZW1jbXAoYWN0dWFsLnBwYzY0LT5mcHJlZ3MsIGV4cGVjdGVkLnVjX21jb250 ZXh0LmZwX3JlZ3MsCi0rICAgICAgICAgICAgc2l6ZW9mKGFjdHVhbC5wcGM2NC0+ZnByZWdzKSks IDApOwotK30KLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZgotZGlmZiAtLWdpdCB0aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9wcm9jZXNzX3JlYWRlcl9s aW51eC5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9wcm9j ZXNzX3JlYWRlcl9saW51eC5jYwotaW5kZXggYjk2YWJmZTcuLmRmMTJjYTU2IDEwMDY0NAotLS0t IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Byb2Nlc3NfcmVh ZGVyX2xpbnV4LmNjCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv bGludXgvcHJvY2Vzc19yZWFkZXJfbGludXguY2MKLUBAIC0xMDgsNiArMTA4LDggQEAgdm9pZCBQ cm9jZXNzUmVhZGVyTGludXg6OlRocmVhZDo6SW5pdGlhbGl6ZVN0YWNrKFByb2Nlc3NSZWFkZXJM aW51eCogcmVhZGVyKSB7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAg IHN0YWNrX3BvaW50ZXIgPSByZWFkZXItPklzNjRCaXQoKSA/IHRocmVhZF9pbmZvLnRocmVhZF9j b250ZXh0LnQ2NC5yZWdzWzI5XQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDogdGhyZWFkX2luZm8udGhyZWFkX2NvbnRleHQudDMyLnJlZ3NbMjldOwotKyNlbGlmIGRlZmlu ZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgc3RhY2tfcG9pbnRlciA9IHRocmVhZF9pbmZv LnRocmVhZF9jb250ZXh0LnQ2NC5ncHJbMV07Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5k aWYKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGlu dXgvcHJvY2Vzc19yZWFkZXJfbGludXhfdGVzdC5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC9zbmFwc2hvdC9saW51eC9wcm9jZXNzX3JlYWRlcl9saW51eF90ZXN0LmNjCi1pbmRleCA1 YjU3MjM2MS4uMDQ5YzMyODUgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvc25hcHNob3QvbGludXgvcHJvY2Vzc19yZWFkZXJfbGludXhfdGVzdC5jYwotKysrIHRoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Byb2Nlc3NfcmVhZGVyX2xp bnV4X3Rlc3QuY2MKLUBAIC02MTIsNiArNjEyLDggQEAgYm9vbCBXcml0ZVRlc3RNb2R1bGUoY29u c3QgYmFzZTo6RmlsZVBhdGgmIG1vZHVsZV9wYXRoKSB7Ci0gICBtb2R1bGUuZWhkci5lX21hY2hp bmUgPSBFTV9BQVJDSDY0OwotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU0VMKSB8fCBkZWZp bmVkKEFSQ0hfQ1BVX01JUFM2NEVMKQotICAgbW9kdWxlLmVoZHIuZV9tYWNoaW5lID0gRU1fTUlQ UzsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0KQotKyAgbW9kdWxlLmVoZHIuZV9tYWNo aW5lID0gRU1fUFBDNjQ7Ci0gI2VuZGlmCi0gCi0gICBtb2R1bGUuZWhkci5lX3ZlcnNpb24gPSBF Vl9DVVJSRU5UOwotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFw c2hvdC9saW51eC9zaWduYWxfY29udGV4dC5oIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3NuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250ZXh0LmgKLWluZGV4IDExMDAyNDY4Li44ZTMzNWEw OSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51 eC9zaWduYWxfY29udGV4dC5oCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25h cHNob3QvbGludXgvc2lnbmFsX2NvbnRleHQuaAotQEAgLTQyMiw2ICs0MjIsODkgQEAgc3RhdGlj X2Fzc2VydChvZmZzZXRvZihVQ29udGV4dDxDb250ZXh0VHJhaXRzNjQ+LCBtY29udGV4dC5mcHJl Z3MpID09Ci0gICAgICAgICAgICAgICAiY29udGV4dCBvZmZzZXQgbWlzbWF0Y2giKTsKLSAjZW5k aWYKLSAKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsKLStzdHJ1Y3Qg U2lnbmFsVGhyZWFkQ29udGV4dDY0IHsKLSsgIHVpbnQ2NF90IHJlZ3NbMzJdOwotKyAgdWludDY0 X3QgbmlwOwotKyAgdWludDY0X3QgbXNyOwotKyAgdWludDY0X3Qgb3JpZ19yMzsKLSsgIHVpbnQ2 NF90IGN0cjsKLSsgIHVpbnQ2NF90IGxuazsKLSsgIHVpbnQ2NF90IHhlcjsKLSsgIHVpbnQ2NF90 IGNjcjsKLSsgIHVpbnQ2NF90IHNvZnRlOwotKyAgdWludDY0X3QgdHJhcDsKLSsgIHVpbnQ2NF90 IGRhcjsKLSsgIHVpbnQ2NF90IGRzaXNyOwotKyAgdWludDY0X3QgcmVzdWx0OwotKyAgdWludDY0 X3QgZHNjcjsKLSsgIHVpbnQ2NF90IGZwcjBbM107Ci0rfTsKLSsKLStzdHJ1Y3QgU2lnbmFsRmxv YXRDb250ZXh0NjQgewotKyAgZG91YmxlIHJlZ3NbMzJdOwotKyAgZG91YmxlIGZwc2NyOwotK307 Ci0rCi0rc3RydWN0IFNpZ25hbFZlY3RvckNvbnRleHQ2NCB7Ci0rICBpbnQzMl90IHZycmVnc1sz Ml1bNF07Ci0rICBzdHJ1Y3QgewotKyAgICBpbnQzMl90IF9fcGFkWzNdOwotKyAgICBpbnQzMl90 IHZzY3Jfd29yZDsKLSsgIH0gdnNjcjsKLSsgIGludDMyX3QgdnJzYXZlOwotKyAgaW50MzJfdCBf X3BhZFszXTsKLSt9IF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKDE2KSkpOwotKwotKwotKyNw cmFnbWEgcGFjayhwb3ApCi0rc3RydWN0IE1Db250ZXh0NjQgewotKyAgdWludDY0X3QgcmVzZXJ2 ZWRbNF07Ci0rICBpbnQzMl90IHNpZ25hbDsKLSsgIGludDMyX3QgX19wYWQwOwotKyAgdWludDY0 X3QgaGFuZGxlcjsKLSsgIHVpbnQ2NF90IG9sZG1hc2s7Ci0rICB1aW50NjRfdCBwdF9yZWdzX3B0 cjsKLSsgIFNpZ25hbFRocmVhZENvbnRleHQ2NCBncF9yZWdzOwotKyAgU2lnbmFsRmxvYXRDb250 ZXh0NjQgIGZwX3JlZ3M7Ci0rICBTaWduYWxWZWN0b3JDb250ZXh0NjQgKnZfcmVnczsKLSsgIGlu dDY0X3Qgdm14X3Jlc2VydmVbNjldOwotK307Ci0rCi0rc3RydWN0IENvbnRleHRUcmFpdHM2NCA6 IHB1YmxpYyBUcmFpdHM2NCB7Ci0rICB1c2luZyBNQ29udGV4dCA9IE1Db250ZXh0NjQ7Ci0rICB1 c2luZyBTaWduYWxUaHJlYWRDb250ZXh0ID0gU2lnbmFsVGhyZWFkQ29udGV4dDY0OwotKyAgdXNp bmcgU2lnbmFsRmxvYXRDb250ZXh0ID0gU2lnbmFsRmxvYXRDb250ZXh0NjQ7Ci0rICB1c2luZyBT aWduYWxWZWN0b3JDb250ZXh0ID0gU2lnbmFsVmVjdG9yQ29udGV4dDY0OwotKyAgdXNpbmcgQ1BV Q29udGV4dCA9IENQVUNvbnRleHRQUEM2NDsKLSt9OwotKwotK3N0cnVjdCBDb250ZXh0VHJhaXRz MzIgOiBwdWJsaWMgVHJhaXRzMzIge307Ci0rCi0rc3RydWN0IFVDb250ZXh0IHsKLSsgIHVpbnQ2 NF90IGZsYWdzOwotKyAgdWludDY0X3QgbGluazsKLSsgIFNpZ25hbFN0YWNrPENvbnRleHRUcmFp dHM2ND4gc3RhY2s7Ci0rICBTaWdzZXQ8Q29udGV4dFRyYWl0czY0PiBzaWdtYXNrOwotKyAgTUNv bnRleHQ2NCBtY29udGV4dDsKLSt9OwotKyNwcmFnbWEgcGFjayhwdXNoLCAxKQotKwotK3N0YXRp Y19hc3NlcnQoc2l6ZW9mKFVDb250ZXh0KSA9PSBzaXplb2YodWNvbnRleHRfdCksCi0rICAgICAg ICAgICAgICAidWNvbnRleHRfdCBzaXplIG1pc21hdGNoIik7Ci0rc3RhdGljX2Fzc2VydChzaXpl b2YoTUNvbnRleHQ2NCkgPT0gc2l6ZW9mKG1jb250ZXh0X3QpLAotKyAgICAgICAgICAgICAgIm1j b250ZXh0X3Qgc2l6ZSBtaXNtYXRjaCIpOwotK3N0YXRpY19hc3NlcnQoc2l6ZW9mKFNpZ25hbFRo cmVhZENvbnRleHQ2NCkgPT0gc2l6ZW9mKGdyZWdzZXRfdCksCi0rICAgICAgICAgICAgICAiZ3Jl Z3NldF90IHNpemUgbWlzbWF0Y2giKTsKLStzdGF0aWNfYXNzZXJ0KHNpemVvZihTaWduYWxGbG9h dENvbnRleHQ2NCkgPT0gc2l6ZW9mKGZwcmVnc2V0X3QpLAotKyAgICAgICAgICAgICAgImZwcmVn c2V0X3Qgc2l6ZSBtaXNtYXRjaCIpOwotK3N0YXRpY19hc3NlcnQoc2l6ZW9mKFNpZ25hbFZlY3Rv ckNvbnRleHQ2NCkgPT0gc2l6ZW9mKHZycmVnc2V0X3QpLAotKyAgICAgICAgICAgICAgInZycmVn c2V0X3Qgc2l6ZSBtaXNtYXRjaCIpOwotK3N0YXRpY19hc3NlcnQob2Zmc2V0b2YoVUNvbnRleHQs IG1jb250ZXh0KSA9PQotKyAgICAgICAgICAgICAgb2Zmc2V0b2YodWNvbnRleHRfdCwgdWNfbWNv bnRleHQpLCAibWNvbnRleHQgb2Zmc2V0IG1pc21hdGNoIik7Ci0rc3RhdGljX2Fzc2VydChvZmZz ZXRvZihNQ29udGV4dDY0LCBncF9yZWdzKSA9PQotKyAgICAgICAgICAgICAgb2Zmc2V0b2YobWNv bnRleHRfdCwgZ3BfcmVncyksICJncF9yZWdzIG9mZnNldCBtaXNtYXRjaCIpOwotICNlbHNlCi0g I2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCi1kaWZmIC0tZ2l0 IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3N5c3RlbV9zbmFw c2hvdF9saW51eC5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51 eC9zeXN0ZW1fc25hcHNob3RfbGludXguY2MKLWluZGV4IDg1NjRkM2Q0Li5iNjkwZWNkNCAxMDA2 NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zeXN0 ZW1fc25hcHNob3RfbGludXguY2MKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9z bmFwc2hvdC9saW51eC9zeXN0ZW1fc25hcHNob3RfbGludXguY2MKLUBAIC0yMDMsNiArMjAzLDgg QEAgQ1BVQXJjaGl0ZWN0dXJlIFN5c3RlbVNuYXBzaG90TGludXg6OkdldENQVUFyY2hpdGVjdHVy ZSgpIGNvbnN0IHsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotICAgcmV0 dXJuIHByb2Nlc3NfcmVhZGVyXy0+SXM2NEJpdCgpID8ga0NQVUFyY2hpdGVjdHVyZU1JUFM2NEVM Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBrQ1BVQXJjaGl0ZWN0dXJl TUlQU0VMOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgcmV0dXJu IGtDUFVBcmNoaXRlY3R1cmVQUEM2NDsKLSAjZWxzZQotICNlcnJvciBwb3J0IHRvIHlvdXIgYXJj aGl0ZWN0dXJlCi0gI2VuZGlmCi1AQCAtMjE4LDYgKzIyMCw5IEBAIHVpbnQzMl90IFN5c3RlbVNu YXBzaG90TGludXg6OkNQVVJldmlzaW9uKCkgY29uc3QgewotICNlbGlmIGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpCi0gICAvLyBOb3QgaW1wbGVtZW50YWJsZSBvbiBNSVBTCi0gICByZXR1 cm4gMDsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgIC8vIE5vdCB5 ZXQgaW1wbGVtZW50ZWQgb24gUFBDNjQKLSsgIHJldHVybiAwOwotICNlbHNlCi0gI2Vycm9yIHBv cnQgdG8geW91ciBhcmNoaXRlY3R1cmUKLSAjZW5kaWYKLUBAIC0yMzgsNiArMjQzLDkgQEAgc3Rk OjpzdHJpbmcgU3lzdGVtU25hcHNob3RMaW51eDo6Q1BVVmVuZG9yKCkgY29uc3QgewotICNlbGlm IGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0gICAvLyBOb3QgaW1wbGVtZW50YWJsZSBv biBNSVBTCi0gICByZXR1cm4gc3RkOjpzdHJpbmcoKTsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BV X1BQQzY0X0ZBTUlMWSkKLSsgIC8vIE5vdCB5ZXQgaW1wbGVtZW50ZWQgb24gUFBDNjQKLSsgIHJl dHVybiBzdGQ6OnN0cmluZygpOwotICNlbHNlCi0gI2Vycm9yIHBvcnQgdG8geW91ciBhcmNoaXRl Y3R1cmUKLSAjZW5kaWYKLUBAIC0zNzEsNiArMzc5LDkgQEAgYm9vbCBTeXN0ZW1TbmFwc2hvdExp bnV4OjpOWEVuYWJsZWQoKSBjb25zdCB7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZB TUlMWSkKLSAgIC8vIE5vdCBpbXBsZW1lbnRhYmxlIG9uIE1JUFMKLSAgIHJldHVybiBmYWxzZTsK LSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgIC8vIE5vdCB5ZXQgaW1w bGVtZW50ZWQgb24gUFBDNjQKLSsgIHJldHVybiBmYWxzZTsKLSAjZWxzZQotICNlcnJvciBQb3J0 LgotICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90aHJlYWRfc25hcHNob3RfbGludXgu Y2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGhyZWFkX3Nu YXBzaG90X2xpbnV4LmNjCi1pbmRleCBlM2UyYmViZC4uOGVmNDM3NTIgMTAwNjQ0Ci0tLS0gdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90 X2xpbnV4LmNjCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGlu dXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmNjCi1AQCAtMTg2LDYgKzE4NiwxNCBAQCBib29sIFRo cmVhZFNuYXBzaG90TGludXg6OkluaXRpYWxpemUoUHJvY2Vzc1JlYWRlckxpbnV4KiBwcm9jZXNz X3JlYWRlciwKLSAgICAgICAgIHRocmVhZC50aHJlYWRfaW5mby5mbG9hdF9jb250ZXh0LmYzMiwK LSAgICAgICAgIGNvbnRleHRfLm1pcHNlbCk7Ci0gICB9Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQ VV9QUEM2NF9GQU1JTFkpCi0rICBjb250ZXh0Xy5hcmNoaXRlY3R1cmUgPSBrQ1BVQXJjaGl0ZWN0 dXJlUFBDNjQ7Ci0rICBjb250ZXh0Xy5wcGM2NCA9ICZjb250ZXh0X3VuaW9uXy5wcGM2NDsKLSsg IEluaXRpYWxpemVDUFVDb250ZXh0UFBDNjQ8Q29udGV4dFRyYWl0czY0PigKLSsgICAgICB0aHJl YWQudGhyZWFkX2luZm8udGhyZWFkX2NvbnRleHQudDY0LAotKyAgICAgIHRocmVhZC50aHJlYWRf aW5mby5mbG9hdF9jb250ZXh0LmY2NCwKLSsgICAgICB0aHJlYWQudGhyZWFkX2luZm8udmVjdG9y X2NvbnRleHQudjY0LAotKyAgICAgIGNvbnRleHRfLnBwYzY0KTsKLSAjZWxzZQotICNlcnJvciBQ b3J0LgotICNlbmRpZgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9z bmFwc2hvdC9saW51eC90aHJlYWRfc25hcHNob3RfbGludXguaCB0aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90aHJlYWRfc25hcHNob3RfbGludXguaAotaW5kZXgg NDRjYzZmNmQuLmQ0MTM2NDYxIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5oCi0rKysgdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4 LmgKLUBAIC02OCw2ICs2OCw4IEBAIGNsYXNzIFRocmVhZFNuYXBzaG90TGludXggZmluYWwgOiBw dWJsaWMgVGhyZWFkU25hcHNob3QgewotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1J TFkpCi0gICAgIENQVUNvbnRleHRNSVBTIG1pcHNlbDsKLSAgICAgQ1BVQ29udGV4dE1JUFM2NCBt aXBzNjQ7Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAgIENQVUNv bnRleHRQUEM2NCBwcGM2NDsKLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZiAgLy8gQVJD SF9DUFVfWDg2X0ZBTUlMWQotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC91dGlsL2xpbnV4L2F1eGlsaWFyeV92ZWN0b3IuY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvdXRpbC9saW51eC9hdXhpbGlhcnlfdmVjdG9yLmNjCi1pbmRleCBkM2Q1ZWJkZi4uM2Zk NzMwY2IgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51 eC9hdXhpbGlhcnlfdmVjdG9yLmNjCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv dXRpbC9saW51eC9hdXhpbGlhcnlfdmVjdG9yLmNjCi1AQCAtNTYsNiArNTYsMTEgQEAgYm9vbCBB dXhpbGlhcnlWZWN0b3I6OlJlYWQoUHRyYWNlQ29ubmVjdGlvbiogY29ubmVjdGlvbikgewotICAg ICBpZiAodHlwZSA9PSBBVF9JR05PUkUpIHsKLSAgICAgICBjb250aW51ZTsKLSAgICAgfQotKyNp ZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgICAgaWYgKHR5cGUgPT0gQVRfSUdO T1JFUFBDKSB7Ci0rICAgICAgY29udGludWU7Ci0rICAgIH0KLSsjZW5kaWYKLSAgICAgaWYgKCFN YXBJbnNlcnRPclJlcGxhY2UoJnZhbHVlc18sIHR5cGUsIHZhbHVlLCBudWxscHRyKSkgewotICAg ICAgIExPRyhFUlJPUikgPDwgImR1cGxpY2F0ZSBhdXh2IGVudHJ5IjsKLSAgICAgICByZXR1cm4g ZmFsc2U7Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGlu dXgvcHRyYWNlX2Jyb2tlci5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xp bnV4L3B0cmFjZV9icm9rZXIuY2MKLWluZGV4IDE1NWExZTBjLi41ZTUwY2ViNSAxMDA2NDQKLS0t LSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZV9icm9rZXIu Y2MKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZV9i cm9rZXIuY2MKLUBAIC05NCw4ICs5NCw4IEBAIGludCBQdHJhY2VCcm9rZXI6OlJ1bigpIHsKLSB9 Ci0gCi0gYm9vbCBQdHJhY2VCcm9rZXI6OkFsbG9jYXRlQXR0YWNobWVudHMoKSB7Ci0tICBjb25z dGV4cHIgc2l6ZV90IHBhZ2Vfc2l6ZSA9IDQwOTY7Ci0tICBjb25zdGV4cHIgc2l6ZV90IGFsbG9j X3NpemUgPQotKyAgc3RhdGljIHNpemVfdCBwYWdlX3NpemUgPSBnZXRwYWdlc2l6ZSgpOwotKyAg c2l6ZV90IGFsbG9jX3NpemUgPQotICAgICAgIChzaXplb2YoU2NvcGVkUHRyYWNlQXR0YWNoKSAr IHBhZ2Vfc2l6ZSAtIDEpICYgfihwYWdlX3NpemUgLSAxKTsKLSAgIHZvaWQqIGFsbG9jID0gc2Jy ayhhbGxvY19zaXplKTsKLSAgIGlmIChyZWludGVycHJldF9jYXN0PGludHB0cl90PihhbGxvYykg PT0gLTEpIHsKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9s aW51eC9wdHJhY2VyLmNjIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgv cHRyYWNlci5jYwotaW5kZXggNTU3ZTBkMzYuLjA4YWU0MzRiIDEwMDY0NAotLS0tIHRoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNlci5jYwotKysrIHRoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNlci5jYwotQEAgLTM5OCw2ICsz OTgsNjQgQEAgYm9vbCBHZXRUaHJlYWRBcmVhNjQocGlkX3QgdGlkLAotICAgcmV0dXJuIHRydWU7 Ci0gfQotIAotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKy8vIFBQQzY0 IGhhcyBoYWQgSEFWRV9BUkNIX1RSQUNFSE9PSyBzZXQgc2luY2UgMi42LjI3IChldmVuIGJlZm9y ZSB4ODYgaGFkIGl0KS4KLSsvLyBUaGF0IG1lYW5zIHdlIGNhbiBzaW1wbHkgdXNlIFBUUkFDRV9H RVRSRUdFU0VULgotKwotK3RlbXBsYXRlIDx0eXBlbmFtZSBEZXN0aW5hdGlvbj4KLStib29sIEdl dFJlZ2lzdGVyU2V0KHBpZF90IHRpZCwgaW50IHNldCwgRGVzdGluYXRpb24qIGRlc3QsIGJvb2wg Y2FuX2xvZykgewotKyAgaW92ZWMgaW92OwotKyAgaW92Lmlvdl9iYXNlID0gcmVpbnRlcnByZXRf Y2FzdDx2b2lkKj4oZGVzdCk7Ci0rICBpb3YuaW92X2xlbiA9IHNpemVvZigqZGVzdCk7Ci0rICBp ZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4o c2V0KSwgJmlvdikgIT0gMCkgewotKyAgICBQTE9HX0lGKEVSUk9SLCBjYW5fbG9nKSA8PCAicHRy YWNlIjsKLSsgICAgcmV0dXJuIGZhbHNlOwotKyAgfQotKyAgaWYgKGlvdi5pb3ZfbGVuICE9IHNp emVvZigqZGVzdCkpIHsKLSsgICAgTE9HX0lGKEVSUk9SLCBjYW5fbG9nKSA8PCAiVW5leHBlY3Rl ZCByZWdpc3RlcnMgc2l6ZSI7Ci0rICAgIHJldHVybiBmYWxzZTsKLSsgIH0KLSsgIHJldHVybiB0 cnVlOwotK30KLSsKLStib29sIEdldFZlY3RvclJlZ2lzdGVyczY0KHBpZF90IHRpZCwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgIFZlY3RvckNvbnRleHQqIGNvbnRleHQsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsKLSsgIHJldHVybiBHZXRSZWdpc3RlclNl dCh0aWQsIE5UX1BQQ19WTVgsICZjb250ZXh0LT52NjQsIGNhbl9sb2cpOwotK30KLSsKLStib29s IEdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnM2NChwaWRfdCB0aWQsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRmxvYXRDb250ZXh0KiBjb250ZXh0LAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgewotKyAgcmV0dXJuIEdldFJlZ2lzdGVy U2V0KHRpZCwgTlRfUFJGUFJFRywgJmNvbnRleHQtPmY2NCwgY2FuX2xvZyk7Ci0rfQotKwotK2Jv b2wgR2V0VGhyZWFkQXJlYTY0KHBpZF90IHRpZCwKLSsgICAgICAgICAgICAgICAgICAgICBjb25z dCBUaHJlYWRDb250ZXh0JiBjb250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgIExpbnV4Vk1B ZGRyZXNzKiBhZGRyZXNzLAotKyAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgewot KyAgLy8gUFBDNjQgZG9lc24ndCBoYXZlIFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEgc2luY2UgdGhl IHRocmVhZCBwb2ludGVyCi0rICAvLyBpcyBzdG9yZWQgaW4gR1BSIDEzLgotKyAgVGhyZWFkQ29u dGV4dDo6dDY0X3QgdGM7Ci0rICBpZiAoIUdldFJlZ2lzdGVyU2V0KHRpZCwgTlRfUFJTVEFUVVMs ICZ0YywgY2FuX2xvZykpIHsKLSsgICAgTE9HX0lGKEVSUk9SLCBjYW5fbG9nKSA8PCAiVW5hYmxl IHRvIGdldCB0aHJlYWQgcG9pbnRlciEiOwotKyAgICByZXR1cm4gZmFsc2U7Ci0rICB9Ci0rCi0r ICAqYWRkcmVzcyA9IHRjLmdwclsxM107Ci0rCi0rICByZXR1cm4gdHJ1ZTsKLSt9Ci0rCi0rLy8g U3R1YnMgZm9yIDMyLWJpdCBmdW5jdGlvbnMgbm90IGFwcGxpY2FibGUgb24gUFBDNjQKLStib29s IEdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnMzMihwaWRfdCB0aWQsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRmxvYXRDb250ZXh0KiBjb250ZXh0LAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgeyByZXR1cm4gZmFsc2U7IH0KLStib29s IEdldFRocmVhZEFyZWEzMihwaWRfdCB0aWQsCi0rICAgICAgICAgICAgICAgICAgICAgY29uc3Qg VGhyZWFkQ29udGV4dCAmY29udGV4dCwKLSsgICAgICAgICAgICAgICAgICAgICBMaW51eFZNQWRk cmVzcyAqYWRkcmVzcywKLSsgICAgICAgICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsgcmV0 dXJuIGZhbHNlOyB9Ci0rCi0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYgIC8vIEFSQ0hf Q1BVX1g4Nl9GQU1JTFkKLUBAIC00OTQsNiArNTUyLDkgQEAgYm9vbCBQdHJhY2VyOjpHZXRUaHJl YWRJbmZvKHBpZF90IHRpZCwgVGhyZWFkSW5mbyogaW5mbykgewotICAgaWYgKGlzXzY0X2JpdF8p IHsKLSAgICAgcmV0dXJuIEdldEdlbmVyYWxQdXJwb3NlUmVnaXN0ZXJzNjQodGlkLCAmaW5mby0+ dGhyZWFkX2NvbnRleHQsIGNhbl9sb2dfKSAmJgotICAgICAgICAgICAgR2V0RmxvYXRpbmdQb2lu dFJlZ2lzdGVyczY0KHRpZCwgJmluZm8tPmZsb2F0X2NvbnRleHQsIGNhbl9sb2dfKSAmJgotKyNp ZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgICAgICAgICAgIEdldFZlY3RvclJl Z2lzdGVyczY0KHRpZCwgJmluZm8tPnZlY3Rvcl9jb250ZXh0LCBjYW5fbG9nXykgJiYKLSsjZW5k aWYKLSAgICAgICAgICAgIEdldFRocmVhZEFyZWE2NCh0aWQsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW5mby0+dGhyZWFkX2NvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgJmluZm8tPnRocmVhZF9zcGVjaWZpY19kYXRhX2FkZHJlc3MsCi1kaWZmIC0tZ2l0IHRoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaCB0aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVhZF9pbmZvLmgKLWluZGV4IDVi NTVjMjRhLi5kZWEwZDFmMyAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC91dGlsL2xpbnV4L3RocmVhZF9pbmZvLmgKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC91dGlsL2xpbnV4L3RocmVhZF9pbmZvLmgKLUBAIC0yOCw2ICsyOCwxMCBAQAotICNpbmNs dWRlIDxhbmRyb2lkL2FwaS1sZXZlbC5oPgotICNlbmRpZgotIAotKyNpZiBkZWZpbmVkKEFSQ0hf Q1BVX1BQQzY0X0ZBTUlMWSkKLSsjaW5jbHVkZSA8c3lzL3Vjb250ZXh0Lmg+Ci0rI2VuZGlmCi0r Ci0gbmFtZXNwYWNlIGNyYXNocGFkIHsKLSAKLSAvLyEgXGJyaWVmIFRoZSBzZXQgb2YgZ2VuZXJh bCBwdXJwb3NlIHJlZ2lzdGVycyBmb3IgYW4gYXJjaGl0ZWN0dXJlIGZhbWlseS4KLUBAIC03OSw2 ICs4Myw4IEBAIHVuaW9uIFRocmVhZENvbnRleHQgewotICAgICB1aW50MzJfdCBjcDBfc3RhdHVz OwotICAgICB1aW50MzJfdCBjcDBfY2F1c2U7Ci0gICAgIHVpbnQzMl90IHBhZGRpbmcxXzsKLSsj ZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgICAgLy8gUFBDNjQgaXMgNjQt Yml0Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1J TFkKLUBAIC0xMzIsNiArMTM4LDIxIEBAIHVuaW9uIFRocmVhZENvbnRleHQgewotICAgICB1aW50 NjRfdCBjcDBfYmFkdmFkZHI7Ci0gICAgIHVpbnQ2NF90IGNwMF9zdGF0dXM7Ci0gICAgIHVpbnQ2 NF90IGNwMF9jYXVzZTsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsg ICAgLy8gUmVmbGVjdHMgc3RydWN0IHB0X3JlZ3MgaW4gYXNtL3B0cmFjZS5oLgotKyAgICB1aW50 NjRfdCBncHJbMzJdOwotKyAgICB1aW50NjRfdCBuaXA7Ci0rICAgIHVpbnQ2NF90IG1zcjsKLSsg ICAgdWludDY0X3Qgb3JpZ19ncHIzOwotKyAgICB1aW50NjRfdCBjdHI7Ci0rICAgIHVpbnQ2NF90 IGxuazsKLSsgICAgdWludDY0X3QgeGVyOwotKyAgICB1aW50NjRfdCBjY3I7Ci0rICAgIHVpbnQ2 NF90IHNvZnRlOwotKyAgICB1aW50NjRfdCB0cmFwOwotKyAgICB1aW50NjRfdCBkYXI7Ci0rICAg IHVpbnQ2NF90IGRzaXNyOwotKyAgICB1aW50NjRfdCByZXN1bHQ7Ci0gI2Vsc2UKLSAjZXJyb3Ig UG9ydC4KLSAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKLUBAIC0xNDMsNiArMTY0LDgg QEAgdW5pb24gVGhyZWFkQ29udGV4dCB7Ci0gICB1c2luZyBOYXRpdmVUaHJlYWRDb250ZXh0ID0g dXNlcl9yZWdzOwotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0gLy8gTm8g YXBwcm9wcmlhdGUgTmF0aXZlVGhyZWFkc0NvbnRleHQgdHlwZSBhdmFpbGFibGUgZm9yIE1JUFMK LSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgIHVzaW5nIE5hdGl2ZVRo cmVhZENvbnRleHQgPSBzdHJ1Y3QgcHRfcmVnczsKLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNl bmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWSB8fCBBUkNIX0NQVV9BUk02NAotQEAgLTIxOCw2 ICsyNDEsOSBAQCB1bmlvbiBGbG9hdENvbnRleHQgewotICAgICB9IGZwcmVnc1szMl07Ci0gICAg IHVpbnQzMl90IGZwY3NyOwotICAgICB1aW50MzJfdCBmcHVfaWQ7Ci0rI2VsaWYgZGVmaW5lZChB UkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAgIC8vIENyYXNocGFkJ3MgUFBDIHN1cHBvcnQgaXMg NjQtYml0IG9ubHksIHNvIHRoaXMKLSsgICAgLy8gMzJiaXQtb25seSBzdHJ1Y3QgaXMgZGVjbGFy ZWQgYXMgZW1wdHkuCi0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYgIC8vIEFSQ0hfQ1BV X1g4Nl9GQU1JTFkKLUBAIC0yNTIsNiArMjc4LDEwIEBAIHVuaW9uIEZsb2F0Q29udGV4dCB7Ci0g ICAgIGRvdWJsZSBmcHJlZ3NbMzJdOwotICAgICB1aW50MzJfdCBmcGNzcjsKLSAgICAgdWludDMy X3QgZnB1X2lkOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgICAv LyBSZWZsZWN0cyBmcHJlZ3NldF90IGluIHN5cy91Y29udGV4dC5oCi0rICAgIGRvdWJsZSBmcHJl Z3NbMzJdOwotKyAgICBkb3VibGUgZnBzY3I7Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5k aWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKLUBAIC0yODAsNiArMzEwLDggQEAgdW5pb24gRmxv YXRDb250ZXh0IHsKLSAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKGY2NCkgPT0gc2l6ZW9mKHVzZXJf ZnBzaW1kX3N0cnVjdCksICJTaXplIG1pc21hdGNoIik7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQ VV9NSVBTX0ZBTUlMWSkKLSAvLyBObyBhcHByb3ByaWF0ZSBmbG9hdGluZyBwb2ludCBjb250ZXh0 IG5hdGl2ZSB0eXBlIGZvciBhdmFpbGFibGUgTUlQUy4KLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BV X1BQQzY0X0ZBTUlMWSkKLSsgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKGY2NCkgPT0gc2l6ZW9mKGZw cmVnc2V0X3QpLCAiU2l6ZSBtaXNtYXRjaCIpOwotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2Vu ZGlmICAvLyBBUkNIX0NQVV9YODYKLUBAIC0yODcsNiArMzE5LDI2IEBAIHVuaW9uIEZsb2F0Q29u dGV4dCB7Ci0gc3RhdGljX2Fzc2VydChzdGQ6OmlzX3N0YW5kYXJkX2xheW91dDxGbG9hdENvbnRl eHQ+Ojp2YWx1ZSwKLSAgICAgICAgICAgICAgICJOb3Qgc3RhbmRhcmQgbGF5b3V0Iik7Ci0gCi0r Ly8hIFxicmllZiBUaGUgdmVjdG9yIHJlZ2lzdGVycyB1c2VkIGZvciBhbiBhcmNoaXRlY3R1cmUg ZmFtaWx5Ci0rdW5pb24gVmVjdG9yQ29udGV4dCB7Ci0rICBzdHJ1Y3QgdjMyX3Qge30gdjMyOwot KyNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgIF9fYXR0cmlidXRlX18oKF9f YWxpZ25lZF9fKDE2KSkpIC8vIFZlY3RvciBjb250ZXh0IG11c3QgYmUgZG91Ymxld29yZCBhbGln bmVkLgotKyNlbmRpZgotKyAgc3RydWN0IHY2NF90IHsKLSsjaWYgZGVmaW5lZChBUkNIX0NQVV9Q UEM2NF9GQU1JTFkpCi0rICAgIC8vIFJlZmxlY3RzIHZycmVnc2V0X3QgaW4gc3lzL3Vjb250ZXh0 LmgKLSsgICAgdWludDMyX3QgdnJyZWdzWzMyXVs0XTsKLSsgICAgc3RydWN0IHsKLSsgICAgICB1 aW50MzJfdCBfX3BhZFszXTsKLSsgICAgICB1aW50MzJfdCB2c2NyX3dvcmQ7Ci0rICAgIH0gdnNj cjsKLSsgICAgdWludDMyX3QgdnJzYXZlOwotKyAgICB1aW50MzJfdCBfX3BhZFszXTsKLSsjZW5k aWYKLSsgIH0gdjY0OwotK307Ci0rCi0gLy8hIFxicmllZiBBIGNvbGxlY3Rpb24gb2YgYHB0cmFj ZWAtYWJsZSBpbmZvcm1hdGlvbiBhYm91dCBhIHRocmVhZC4KLSBzdHJ1Y3QgVGhyZWFkSW5mbyB7 Ci0gICBUaHJlYWRJbmZvKCk7Ci1AQCAtMjk4LDYgKzM1MCw5IEBAIHN0cnVjdCBUaHJlYWRJbmZv IHsKLSAgIC8vISBcYnJpZWYgVGhlIGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVycyBmb3IgdGhlIHRo cmVhZC4KLSAgIEZsb2F0Q29udGV4dCBmbG9hdF9jb250ZXh0OwotIAotKyAgLy8hIFxicmllZiAo T3B0aW9uYWwpIFRoZSB2ZWN0b3IgcmVnaXN0ZXJzIHVzZWQgZm9yIHRoZSB0aHJlYWQuCi0rICBW ZWN0b3JDb250ZXh0IHZlY3Rvcl9jb250ZXh0OwotKwotICAgLy8hIFxicmllZiBUaGUgdGhyZWFk LWxvY2FsIHN0b3JhZ2UgYWRkcmVzcyBmb3IgdGhlIHRocmVhZC4KLSAgIExpbnV4Vk1BZGRyZXNz IHRocmVhZF9zcGVjaWZpY19kYXRhX2FkZHJlc3M7Ci0gfTsKLWRpZmYgLS1naXQgdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dC5oIHRoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHQuaAotaW5kZXgg M2ZmNzExODQuLjNlODJmNGI5IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHQuaAotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHQuaAotQEAgLTY4LDYgKzY4LDcgQEAg dXNpbmcgTmF0aXZlQ1BVQ29udGV4dCA9IHVjb250ZXh0X3Q7Ci0gLy8hICAgICBtYWNPUy9MaW51 eC9GdWNoc2lhIHwgeDg2XzY0ICAgICAgIHwgYCUlcmRpYAotIC8vISAgICAgTGludXggICAgICAg ICAgICAgICB8IEFSTS9BUk02NCAgICB8IGByMGAvYHgwYAotIC8vISAgICAgTGludXggICAgICAg ICAgICAgICB8IE1JUFMvTUlQUzY0ICB8IGAkYTBgCi0rLy8hICAgICBMaW51eCAgICAgICAgICAg ICAgIHwgUFBDNjQgICAgICAgIHwgYHIzYAotIC8vIQotIC8vISAgICAgQWRkaXRpb25hbGx5LCB0 aGUgdmFsdWUgYExSYCBvbiBBUk0vQVJNNjQgd2lsbCBiZSB0aGUgcmV0dXJuIGFkZHJlc3Mgb2YK LSAvLyEgICAgIHRoaXMgZnVuY3Rpb24uCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfbGludXguUyB0aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X2xpbnV4LlMKLWluZGV4 IDUyMjE1ZWU1Li5iM2U0YTNlYyAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X2xpbnV4LlMKLSsrKyB0aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X2xpbnV4LlMKLUBAIC0z Miw3ICszMiw3IEBACi0gICAuYmFsaWduIDQsIDB4MAotICAgLnR5cGUgQ0FQVFVSRUNPTlRFWFRf U1lNQk9MLCAlZnVuY3Rpb24KLSAgIC50eXBlIENBUFRVUkVDT05URVhUX1NZTUJPTDIsICVmdW5j dGlvbgotLSNlbGlmIGRlZmluZWQoX19taXBzX18pCi0rI2VsaWYgZGVmaW5lZChfX21pcHNfXykg fHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgLmJhbGlnbiA0LCAweDAKLSAjZW5kaWYKLSAK LUBAIC00MjMsNCArNDIzLDIxNCBAQCBDQVBUVVJFQ09OVEVYVF9TWU1CT0wyOgotICAganIgJHJh Ci0gCi0gICAuc2V0IGF0Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgLy8gU3Rv cmUgcjAtcjMxCi0rICBzdGQgMCwgMHhlOCgzKSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbMF0KLSsgIHN0ZCAxLCAweGYwKDMpICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3Bf cmVnc1sxXQotKyAgc3RkIDIsIDB4ZjgoMykgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9y ZWdzWzJdCi0rICAvLyBub3RlIHRoYXQgcjMncyBvcmlnaW5hbCB2YWx1ZSB3YXMgbG9zdAotKyAg c3RkIDMsIDB4MTAwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzNdCi0rICBz dGQgNCwgMHgxMDgoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbNF0KLSsgIHN0 ZCA1LCAweDExMCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1s1XQotKyAgc3Rk IDYsIDB4MTE4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzZdCi0rICBzdGQg NywgMHgxMjAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbN10KLSsgIHN0ZCA4 LCAweDEyOCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1s4XQotKyAgc3RkIDks IDB4MTMwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzldCi0rICBzdGQgMTAs IDB4MTM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTBdCi0rICBzdGQgMTEs IDB4MTQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTFdCi0rICBzdGQgMTIs IDB4MTQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTJdCi0rICBzdGQgMTMs IDB4MTUwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTNdCi0rICBzdGQgMTQs IDB4MTU4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTRdCi0rICBzdGQgMTUs IDB4MTYwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTVdCi0rICBzdGQgMTYs IDB4MTY4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTZdCi0rICBzdGQgMTcs IDB4MTcwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTddCi0rICBzdGQgMTgs IDB4MTc4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMThdCi0rICBzdGQgMTks IDB4MTgwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTldCi0rICBzdGQgMjAs IDB4MTg4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjBdCi0rICBzdGQgMjEs IDB4MTkwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjFdCi0rICBzdGQgMjIs IDB4MTk4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjJdCi0rICBzdGQgMjMs IDB4MWEwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjNdCi0rICBzdGQgMjQs IDB4MWE4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjRdCi0rICBzdGQgMjUs IDB4MWIwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjVdCi0rICBzdGQgMjYs IDB4MWI4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjZdCi0rICBzdGQgMjcs IDB4MWMwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjddCi0rICBzdGQgMjgs IDB4MWM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjhdCi0rICBzdGQgMjks IDB4MWQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjldCi0rICBzdGQgMzAs IDB4MWQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMzBdCi0rICBzdGQgMzEs IDB4MWUwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMzFdCi0rCi0rICAvLyBG b3IgTklQLCB3ZSBjYW4gdXNlIHRoZSB2YWx1ZSBpbiB0aGUgbGluayByZWdpc3RlcgotKyAgbWZs ciAwCi0rICBzdGQgMCwgMHgxZTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQ VF9OSVBdCi0rCi0rICAvLyBDVFIKLSsgIG1mY3RyIDAKLSsgIHN0ZCAwLCAweDIwMCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0NUUl0KLSsKLSsgIC8vIEZvciBMTkssIHdl J2xsIHVzZSB0aGUgY2FsbGVyJ3MgTFIgc2F2ZSBhcmVhICgyIHN0YWNrIGZyYW1lcyB1cCkuCi0r ICAvLyByNCBjYW4gYmUgdXNlZCBhcyBhIHNjcmF0Y2ggcmVnaXN0ZXIgc2luY2UgaXQgaGFzIGFs cmVhZHkgYmVlbiBzYXZlZC4KLSsgIGxkIDQsIDAoMSkKLSsgIGxkIDQsIDE2KDQpCi0rICBzdGQg NCwgMHgyMDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9MTktdCi0rCi0r ICAvLyBYRVIKLSsgIG1meGVyIDAKLSsgIHN0ZCAwLCAweDIxMCgzKSAvLyBjb250ZXh0LT51Y19t Y29udGV4dC5ncF9yZWdzW1BUX1hFUl0KLSsKLSsgIC8vIENDUgotKyAgbWZjciAwCi0rICBzdGQg MCwgMHgyMTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9DQ1JdCi0rCi0r ICAvLyBNU1IsIG9yaWdfcjMsIE1RLCBUUkFQLCBEQVIsIERTSVNSLCBSRVNVTFQsIERTQ1IsCi0r ICAvLyBub3QgdXNlZCBvciBub3QgcmVsZXZhbnQsICB6ZXJvIHRoZW0gb3V0LgotKyAgbGkgNCwg MAotKyAgc3RkIDQsIDB4MWYwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRf TVNSXQotKyAgc3RkIDQsIDB4MWY4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb UFRfT1JJR19SM10KLSsgIHN0ZCA0LCAweDIyMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5n cF9yZWdzW1BUX01RXQotKyAgc3RkIDQsIDB4MjI4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbUFRfVFJBUF0KLSsgIHN0ZCA0LCAweDIzMCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzW1BUX0RBUl0KLSsgIHN0ZCA0LCAweDIzOCgzKSAvLyBjb250ZXh0LT51Y19t Y29udGV4dC5ncF9yZWdzW1BUX0RTSVNSXQotKyAgc3RkIDQsIDB4MjQwKDMpIC8vIGNvbnRleHQt PnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfUkVTVUxUXQotKyAgc3RkIDQsIDB4MjQ4KDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfRFNDUl0KLSsKLSsgIC8vIFVwZGF0ZSBjb250 ZXh0LT51Y19tY29udGV4dC5yZWdzIHRvIHBvaW50IHRvIGdwX3JlZ3MKLSsgIGFkZGkgMCwgMywg MHhlOAotKyAgc3RkIDAsIDB4ZTAoMykKLSsKLSsgIC8vIFNhdmUgZmxvYXRpbmcgcG9pbnQgcmVn aXN0ZXJzIDAtMzEKLSsgIHN0ZmQgMCwgMHgyNjgoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmZwX3JlZ3NbMF0KLSsgIHN0ZmQgMSwgMHgyNzAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmZwX3JlZ3NbMV0KLSsgIHN0ZmQgMiwgMHgyNzgoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmZwX3JlZ3NbMl0KLSsgIHN0ZmQgMywgMHgyODAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmZwX3JlZ3NbM10KLSsgIHN0ZmQgNCwgMHgyODgoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmZwX3JlZ3NbNF0KLSsgIHN0ZmQgNSwgMHgyOTAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmZwX3JlZ3NbNV0KLSsgIHN0ZmQgNiwgMHgyOTgoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmZwX3JlZ3NbNl0KLSsgIHN0ZmQgNywgMHgyYTAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmZwX3JlZ3NbN10KLSsgIHN0ZmQgOCwgMHgyYTgoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmZwX3JlZ3NbOF0KLSsgIHN0ZmQgOSwgMHgyYjAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmZwX3JlZ3NbOV0KLSsgIHN0ZmQgMTAsIDB4MmI4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmZwX3JlZ3NbMTBdCi0rICBzdGZkIDExLCAweDJjMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4 dC5mcF9yZWdzWzExXQotKyAgc3RmZCAxMiwgMHgyYzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1sxMl0KLSsgIHN0ZmQgMTMsIDB4MmQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmZwX3JlZ3NbMTNdCi0rICBzdGZkIDE0LCAweDJkOCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5mcF9yZWdzWzE0XQotKyAgc3RmZCAxNSwgMHgyZTAoMykgLy8gY29udGV4dC0+dWNfbWNv bnRleHQuZnBfcmVnc1sxNV0KLSsgIHN0ZmQgMTYsIDB4MmU4KDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmZwX3JlZ3NbMTZdCi0rICBzdGZkIDE3LCAweDJmMCgzKSAvLyBjb250ZXh0LT51Y19t Y29udGV4dC5mcF9yZWdzWzE3XQotKyAgc3RmZCAxOCwgMHgyZjgoMykgLy8gY29udGV4dC0+dWNf bWNvbnRleHQuZnBfcmVnc1sxOF0KLSsgIHN0ZmQgMTksIDB4MzAwKDMpIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LmZwX3JlZ3NbMTldCi0rICBzdGZkIDIwLCAweDMwOCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5mcF9yZWdzWzIwXQotKyAgc3RmZCAyMSwgMHgzMTAoMykgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQuZnBfcmVnc1syMV0KLSsgIHN0ZmQgMjIsIDB4MzE4KDMpIC8vIGNvbnRleHQt PnVjX21jb250ZXh0LmZwX3JlZ3NbMjJdCi0rICBzdGZkIDIzLCAweDMyMCgzKSAvLyBjb250ZXh0 LT51Y19tY29udGV4dC5mcF9yZWdzWzIzXQotKyAgc3RmZCAyNCwgMHgzMjgoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syNF0KLSsgIHN0ZmQgMjUsIDB4MzMwKDMpIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjVdCi0rICBzdGZkIDI2LCAweDMzOCgzKSAvLyBjb250 ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzI2XQotKyAgc3RmZCAyNywgMHgzNDAoMykgLy8gY29u dGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syN10KLSsgIHN0ZmQgMjgsIDB4MzQ4KDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjhdCi0rICBzdGZkIDI5LCAweDM1MCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzI5XQotKyAgc3RmZCAzMCwgMHgzNTgoMykgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1szMF0KLSsgIHN0ZmQgMzEsIDB4MzYwKDMpIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMzFdCi0rCi0rICAvLyBGUFNDUgotKyAgbWZm cyAwCi0rICBzdGZkIDAsIDB4MzY4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3Nb MzJdCi0rCi0rICAvLyBTYXZlIFZNWCBWZWN0b3IgcmVnaXN0ZXJzCi0rICAvLyBVcGRhdGUgcjQg dG8gY29udGFpbiB0aGUgYmFzZSBhZGRyZXNzIG9mIHZteF9yZXNlcnZlCi0rICBhZGRpIDQsIDMs IDB4Mzc4Ci0rICAvLyBFbnN1cmUgdGhhdCBpdCBpcyBxdWFkd29yZCBhbGlnbmVkCi0rICBhbmRp LiA1LCA0LCAweEYKLSsgIGJlcSAxZiAvLyBObyBhbGlnbm1lbnQgaXMgbmVjZXNzYXJ5Ci0rICAv LyBBZGRyZXNzIGlzIGRvdWJsZXdvcmQgYWxpZ25lZCBhbmQgbm90IHF1YWR3b3JkIGFsaWduZWQs IGFkZCA4Ci0rICBhZGRpIDQsIDQsIDgKLSsKLSsxOgotKyAgLy8gU3RvcmUgVk1YIHJlZ2lzdGVy cyAwLTMxCi0rICAvLyByNCB3aWxsIGNvbnRhaW4gdGhlIGJhc2UgYWRkcmVzcwotKyAgLy8gcjUg d2lsbCBjb250YWluIHRoZSBpbmRleAotKyAgbGkgNSwgMAotKyAgc3R2eCAwLCA0LCA1ICAgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDBdCi0rICBhZGRpIDUs IDUsIDE2Ci0rICBzdHZ4IDEsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVz ZXJ2ZVsoYWxpZ24pICsgMV0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMiwgNCwgNSAgIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyXQotKyAgYWRkaSA1 LCA1LCAxNgotKyAgc3R2eCAzLCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jl c2VydmVbKGFsaWduKSArIDNdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDQsIDQsIDUgICAv LyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgNF0KLSsgIGFkZGkg NSwgNSwgMTYKLSsgIHN0dnggNSwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9y ZXNlcnZlWyhhbGlnbikgKyA1XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCA2LCA0LCA1ICAg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDZdCi0rICBhZGRp IDUsIDUsIDE2Ci0rICBzdHZ4IDcsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhf cmVzZXJ2ZVsoYWxpZ24pICsgN10KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggOCwgNCwgNSAg IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyA4XQotKyAgYWRk aSA1LCA1LCAxNgotKyAgc3R2eCA5LCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14 X3Jlc2VydmVbKGFsaWduKSArIDldCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDEwLCA0LCA1 ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTBdCi0rICBh ZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDExLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52 bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTFdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDEyLCA0 LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTJdCi0r ICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDEzLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4 dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTNdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE0 LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTRd Ci0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE1LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29u dGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTVdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4 IDE2LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsg MTZdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE3LCA0LCA1ICAvLyBjb250ZXh0LT51Y19t Y29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTddCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBz dHZ4IDE4LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24p ICsgMThdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE5LCA0LCA1ICAvLyBjb250ZXh0LT51 Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTldCi0rICBhZGRpIDUsIDUsIDE2Ci0r ICBzdHZ4IDIwLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxp Z24pICsgMjBdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDIxLCA0LCA1ICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjFdCi0rICBhZGRpIDUsIDUsIDE2 Ci0rICBzdHZ4IDIyLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVso YWxpZ24pICsgMjJdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDIzLCA0LCA1ICAvLyBjb250 ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjNdCi0rICBhZGRpIDUsIDUs IDE2Ci0rICBzdHZ4IDI0LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2 ZVsoYWxpZ24pICsgMjRdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDI1LCA0LCA1ICAvLyBj b250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjVdCi0rICBhZGRpIDUs IDUsIDE2Ci0rICBzdHZ4IDI2LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVz ZXJ2ZVsoYWxpZ24pICsgMjZdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDI3LCA0LCA1ICAv LyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjddCi0rICBhZGRp IDUsIDUsIDE2Ci0rICBzdHZ4IDI4LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhf cmVzZXJ2ZVsoYWxpZ24pICsgMjhdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDI5LCA0LCA1 ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjldCi0rICBh ZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDMwLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52 bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMzBdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDMxLCA0 LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMzFdCi0r ICBhZGRpIDUsIDUsIDE2Ci0rCi0rICAvLyBWU0NSCi0rICBtZnZzY3IgMAotKyAgc3R2eCAwLCA0 LCA1Ci0rICBhZGRpIDUsIDUsIDE2Ci0rCi0rICAvLyBWUlNBVkUKLSsgIG1mdnJzYXZlIDAKLSsg IHN0d3ggMCwgNCwgNQotKwotKyAgLy8gVXBkYXRlIGNvbnRleHQtPnVjX21jb250ZXh0LnZfcmVn cyB0byBwb2ludCB0byB2bXhfcmVzZXJ2ZSArIGFsaWdubWVudC4KLSsgIHN0ZCA0LCAweDM3MCgz KQotKwotKyAgLy8gWmVybyBvdXQgYWxsIHVudXNlZCBmaWVsZHMKLSsgIGxpIDQsIDAKLSsgIHN0 ZCA0LCAweGM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnNpZ25hbAotKyAgc3RkIDQsIDB4 ZDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuaGFuZGxlcgotKyAgc3RkIDQsIDB4ZDgoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQub2xkbWFzawotKwotKyAgYmxyCi0gI2VuZGlmICAvLyBf X2kzODZfXwotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21p c2MvY2FwdHVyZV9jb250ZXh0X3Rlc3QuY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv dXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90ZXN0LmNjCi1pbmRleCBjZjIzYzJkZS4uNWYyNjRi YzkgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2Nh cHR1cmVfY29udGV4dF90ZXN0LmNjCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv dXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90ZXN0LmNjCi1AQCAtNTcsNyArNTcsNyBAQCB2b2lk IFRlc3RDYXB0dXJlQ29udGV4dCgpIHsKLSAgIHVpbnRwdHJfdCBwYyA9IFByb2dyYW1Db3VudGVy RnJvbUNvbnRleHQoY29udGV4dF8xKTsKLSAKLSAjaWYgIWRlZmluZWQoQUREUkVTU19TQU5JVEla RVIpICYmICFkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBcCi0tICAgICFkZWZpbmVk KE1FTU9SWV9TQU5JVElaRVIpCi0rICAgICFkZWZpbmVkKE1FTU9SWV9TQU5JVElaRVIpICYmICFk ZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSAgIC8vIFNhbml0aXplcnMgY2FuIGNhdXNl IGVub3VnaCBjb2RlIGJsb2F0IHRoYXQgdGhlIOKAnG5lYXJieeKAnSBjaGVjayB3b3VsZAotICAg Ly8gbGlrZWx5IGZhaWwuCi0gICBjb25zdCB1aW50cHRyX3Qga1JlZmVyZW5jZVBDID0KLWRpZmYg LS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29u dGV4dF90ZXN0X3V0aWxfbGludXguY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRp bC9taXNjL2NhcHR1cmVfY29udGV4dF90ZXN0X3V0aWxfbGludXguY2MKLWluZGV4IDlmYzVkYjI4 Li41ZjY5ZjhkYyAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGls L21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3RfdXRpbF9saW51eC5jYwotKysrIHRoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfdGVzdF91dGlsX2xp bnV4LmNjCi1AQCAtMzYsNiArMzYsOCBAQCB2b2lkIFNhbml0eUNoZWNrQ29udGV4dChjb25zdCBO YXRpdmVDUFVDb250ZXh0JiBjb250ZXh0KSB7Ci0gICBFWFBFQ1RfRVEoY29udGV4dC51Y19tY29u dGV4dC5yZWdzWzBdLCBGcm9tUG9pbnRlckNhc3Q8dWludHB0cl90PigmY29udGV4dCkpOwotICNl bGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0gICBFWFBFQ1RfRVEoY29udGV4dC51 Y19tY29udGV4dC5ncmVnc1s0XSwgRnJvbVBvaW50ZXJDYXN0PHVpbnRwdHJfdD4oJmNvbnRleHQp KTsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgIEVYUEVDVF9FUShj b250ZXh0LnVjX21jb250ZXh0LmdwX3JlZ3NbM10sIEZyb21Qb2ludGVyQ2FzdDx1aW50cHRyX3Q+ KCZjb250ZXh0KSk7Ci0gI2VuZGlmCi0gfQotIAotQEAgLTUwLDYgKzUyLDggQEAgdWludHB0cl90 IFByb2dyYW1Db3VudGVyRnJvbUNvbnRleHQoY29uc3QgTmF0aXZlQ1BVQ29udGV4dCYgY29udGV4 dCkgewotICAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQucGM7Ci0gI2VsaWYgZGVmaW5lZChB UkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAgIHJldHVybiBjb250ZXh0LnVjX21jb250ZXh0LnBjOwot KyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgcmV0dXJuIGNvbnRleHQu dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdOwotICNlbmRpZgotIH0KLSAKLUBAIC02NCw2ICs2 OCw4IEBAIHVpbnRwdHJfdCBTdGFja1BvaW50ZXJGcm9tQ29udGV4dChjb25zdCBOYXRpdmVDUFVD b250ZXh0JiBjb250ZXh0KSB7Ci0gICByZXR1cm4gY29udGV4dC51Y19tY29udGV4dC5zcDsKLSAj ZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotICAgcmV0dXJuIGNvbnRleHQudWNf bWNvbnRleHQuZ3JlZ3NbMjldOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZ KQotKyAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQuZ3BfcmVnc1sxXTsKLSAjZW5kaWYKLSB9 Ci0gCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvcG9zaXgv c2lnbmFsc190ZXN0LmNjIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvcG9zaXgv c2lnbmFsc190ZXN0LmNjCi1pbmRleCA1OGJmYThmOC4uOGZjMzdjNDYgMTAwNjQ0Ci0tLS0gdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9wb3NpeC9zaWduYWxzX3Rlc3QuY2Mub3Jp ZwkyMDIwLTExLTE3IDEzOjM5OjQ3LjAwMDAwMDAwMCAtMDUwMAotKysrIHRoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3V0aWwvcG9zaXgvc2lnbmFsc190ZXN0LmNjCTIwMjAtMTEtMTggMjE6 MDY6MzMuNDMzNDA4NjIzIC0wNTAwCi1AQCAtNDYsOSArNDYsOSBAQAotICAgcmV0dXJuIHNpZyA9 PSBTSUdBQlJUIHx8Ci0gICAgICAgICAgc2lnID09IFNJR0FMUk0gfHwKLSAgICAgICAgICBzaWcg PT0gU0lHQlVTIHx8Ci0tI2lmICFkZWZpbmVkKEFSQ0hfQ1BVX0FSTTY0KQotKyNpZiAhZGVmaW5l ZChBUkNIX0NQVV9BUk02NCkgJiYgIWRlZmluZWQoQVJDSF9DUFVfUFBDNjQpCi0gICAgICAgICAg c2lnID09IFNJR0ZQRSB8fAotLSNlbmRpZiAgLy8gIWRlZmluZWQoQVJDSF9DUFVfQVJNNjQpCi0r I2VuZGlmICAvLyAhZGVmaW5lZChBUkNIX0NQVV9BUk02NCkgJiYgIWRlZmluZWQoQVJDSF9DUFVf UFBDNjQpCi0gI2lmIGRlZmluZWQoQVJDSF9DUFVfWDg2X0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNI X0NQVV9BUk1FTCkKLSAgICAgICAgICBzaWcgPT0gU0lHSUxMIHx8Ci0gI2VuZGlmICAvLyBkZWZp bmVkKEFSQ0hfQ1BVX1g4Nl9GQU1JTFkpIHx8IGRlZmluZWQoQVJDSF9DUFVfQVJNRUwpCi1AQCAt MTE3LDkgKzExNywxMSBAQAotICAgICAgIGJyZWFrOwotICAgICB9Ci0gCi0tI2lmICFkZWZpbmVk KEFSQ0hfQ1BVX0FSTTY0KQotKyNpZiAhZGVmaW5lZChBUkNIX0NQVV9BUk02NCkgJiYgIWRlZmlu ZWQoQVJDSF9DUFVfUFBDNjQpCi0gICAgIC8vIEFSTTY0IGhhcyBoYXJkd2FyZSBpbnRlZ2VyIGRp dmlzaW9uIGluc3RydWN0aW9ucyB0aGF0IGRvbuKAmXQgZ2VuZXJhdGUgYQotICAgICAvLyB0cmFw IGZvciBkaXZpZGUtYnktemVybywgc28gdGhpcyBkb2VzbuKAmXQgcHJvZHVjZSBTSUdGUEUuCi0r ICAgIC8vCi0rICAgIC8vIFBQQzY0IGZpeGVkLXBvaW50IGRpdmlzaW9uIGJ5IHplcm8gYWxzbyBk b2Vzbid0IHByb2R1Y2UgYSBTSUdGUEUuCi0gICAgIGNhc2UgU0lHRlBFOiB7Ci0gICAgICAgLy8g T3B0aW1pemF0aW9uIG1ha2VzIHRoaXMgdHJpY2t5LCBzbyBnZXQgemVybyBmcm9tIGEgc3lzdGVt IGNhbGwgbGlrZWx5Ci0gICAgICAgLy8gdG8gc3VjY2VlZCwgYW5kIHRyeSB0byBkbyBzb21ldGhp bmcgd2l0aCB0aGUgcmVzdWx0LgotQEAgLTEzNyw3ICsxMzksNyBAQAotICAgICAgIGZzdGF0KHF1 b3RpZW50LCAmc3RhdF9idWYpOwotICAgICAgIGJyZWFrOwotICAgICB9Ci0tI2VuZGlmICAvLyBB UkNIX0NQVV9BUk02NAotKyNlbmRpZiAgLy8gIWRlZmluZWQoQVJDSF9DUFVfQVJNNjQpICYmICFk ZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0KQotIAotICNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9GQU1J TFkpIHx8IGRlZmluZWQoQVJDSF9DUFVfQVJNRUwpCi0gICAgIGNhc2UgU0lHSUxMOiB7Ci1kaWZm IC0tZ2l0IHRoaXJkX3BhcnR5L2RhdjFkL0JVSUxELmduIHRoaXJkX3BhcnR5L2RhdjFkL0JVSUxE LmduCi1pbmRleCA3ODhkYzZjZi4uNWZkN2U4ZmQgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvZGF2 MWQvQlVJTEQuZ24KLSsrKyB0aGlyZF9wYXJ0eS9kYXYxZC9CVUlMRC5nbgotQEAgLTE4Miw2ICsx ODIsOCBAQCBzdGF0aWNfbGlicmFyeSgiZGF2MWRfOGJpdCIpIHsKLSAgICAgc291cmNlcyArPSBh cm1fdGVtcGxhdGVfc291cmNlcwotICAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAiYXJtNjQi KSB7Ci0gICAgIHNvdXJjZXMgKz0gYXJtX3RlbXBsYXRlX3NvdXJjZXMKLSsgIH0gZWxzZSBpZiAo Y3VycmVudF9jcHUgPT0gInBwYzY0IikgewotKyAgICBzb3VyY2VzICs9IHBwYzY0X3RlbXBsYXRl X3NvdXJjZXMKLSAgIH0KLSAKLSAgIGNmbGFncyA9IGRhdjFkX2NvcHRzCi1AQCAtMjEwLDYgKzIx Miw4IEBAIHN0YXRpY19saWJyYXJ5KCJkYXYxZF8xMGJpdCIpIHsKLSAgICAgc291cmNlcyArPSBh cm1fdGVtcGxhdGVfc291cmNlcwotICAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAiYXJtNjQi KSB7Ci0gICAgIHNvdXJjZXMgKz0gYXJtX3RlbXBsYXRlX3NvdXJjZXMKLSsgIH0gZWxzZSBpZiAo Y3VycmVudF9jcHUgPT0gInBwYzY0IikgewotKyAgICBzb3VyY2VzICs9IHBwYzY0X3RlbXBsYXRl X3NvdXJjZXMKLSAgIH0KLSAKLSAgIGNmbGFncyA9IGRhdjFkX2NvcHRzCi1AQCAtMjU2LDYgKzI2 MCwyMSBAQCBpZiAoY3VycmVudF9jcHUgPT0gIng4NiIgfHwgY3VycmVudF9jcHUgPT0gIng2NCIp IHsKLSAgICAgICAiOmRhdjFkX2NvbmZpZyIsCi0gICAgIF0KLSAKLSsgICAgY2ZsYWdzID0gZGF2 MWRfY29wdHMKLSsgIH0KLSt9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJwcGM2NCIpIHsKLSsg IHN0YXRpY19saWJyYXJ5KCJkYXYxZF9wcGMiKSB7Ci0rICAgIHNvdXJjZXMgPSBbCi0rICAgICAg ImxpYmRhdjFkL3NyYy9wcGMvY3B1LmMiLAotKyAgICAgICJsaWJkYXYxZC9zcmMvcHBjL2NwdS5o IiwKLSsgICAgXQotKwotKyAgICBjb25maWdzIC09IFsgIi8vYnVpbGQvY29uZmlnL2NvbXBpbGVy OmNocm9taXVtX2NvZGUiIF0KLSsgICAgY29uZmlncyArPSBbCi0rICAgICAgIi8vYnVpbGQvY29u ZmlnL2NvbXBpbGVyOm5vX2Nocm9taXVtX2NvZGUiLAotKyAgICAgICI6ZGF2MWRfY29uZmlnIiwK LSsgICAgXQotKwotICAgICBjZmxhZ3MgPSBkYXYxZF9jb3B0cwotICAgfQotIH0KLUBAIC0yODUs NSArMzA0LDcgQEAgc3RhdGljX2xpYnJhcnkoImRhdjFkIikgewotICAgICB9Ci0gICB9IGVsc2Ug aWYgKGN1cnJlbnRfY3B1ID09ICJhcm0iIHx8IGN1cnJlbnRfY3B1ID09ICJhcm02NCIpIHsKLSAg ICAgZGVwcyArPSBbICI6ZGF2MWRfYXJtIiBdCi0rICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09 ICJwcGM2NCIpIHsKLSsgICAgZGVwcyArPSBbICI6ZGF2MWRfcHBjIiBdCi0gICB9Ci0gfQotZGlm ZiAtLWdpdCB0aGlyZF9wYXJ0eS9kYXYxZC9jb25maWcvbGludXgvcHBjNjQvY29uZmlnLmggdGhp cmRfcGFydHkvZGF2MWQvY29uZmlnL2xpbnV4L3BwYzY0L2NvbmZpZy5oCi1uZXcgZmlsZSBtb2Rl IDEwMDY0NAotaW5kZXggMDAwMDAwMDAuLmY2Y2E1N2Y3Ci0tLS0gL2Rldi9udWxsCi0rKysgdGhp cmRfcGFydHkvZGF2MWQvY29uZmlnL2xpbnV4L3BwYzY0L2NvbmZpZy5oCi1AQCAtMCwwICsxLDM5 IEBACi0rLyoKLSsgKiBBdXRvZ2VuZXJhdGVkIGJ5IHRoZSBNZXNvbiBidWlsZCBzeXN0ZW0uCi0r ICogRG8gbm90IGVkaXQsIHlvdXIgY2hhbmdlcyB3aWxsIGJlIGxvc3QuCi0rICovCi0rCi0rI3By YWdtYSBvbmNlCi0rCi0rI2RlZmluZSBBUkNIX0FBUkNINjQgMAotKwotKyNkZWZpbmUgQVJDSF9B Uk0gMAotKwotKyNkZWZpbmUgQVJDSF9QUEM2NExFIDEKLSsKLSsjZGVmaW5lIEFSQ0hfWDg2IDAK LSsKLSsjZGVmaW5lIEFSQ0hfWDg2XzMyIDAKLSsKLSsjZGVmaW5lIEFSQ0hfWDg2XzY0IDAKLSsK LSsjZGVmaW5lIENPTkZJR18xNkJQQyAxCi0rCi0rI2RlZmluZSBDT05GSUdfOEJQQyAxCi0rCi0r Ly8gI2RlZmluZSBDT05GSUdfTE9HIDEgLS0gTG9nZ2luZyBpcyBjb250cm9sbGVkIGJ5IENocm9t aXVtCi0rCi0rI2RlZmluZSBFTkRJQU5ORVNTX0JJRyAwCi0rCi0rI2RlZmluZSBIQVZFX0FTTSAx Ci0rCi0rI2RlZmluZSBIQVZFX0NMT0NLX0dFVFRJTUUgMQotKwotKyNkZWZpbmUgSEFWRV9ETFNZ TSAxCi0rCi0rI2RlZmluZSBIQVZFX0dFVEFVWFZBTCAxCi0rCi0rI2RlZmluZSBIQVZFX1BPU0lY X01FTUFMSUdOIDEKLSsKLSsjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotKwotZGlmZiAtLWdpdCB0 aGlyZF9wYXJ0eS9kYXYxZC9kYXYxZF9nZW5lcmF0ZWQuZ25pIHRoaXJkX3BhcnR5L2RhdjFkL2Rh djFkX2dlbmVyYXRlZC5nbmkKLWluZGV4IDhiZWNhYzAyLi5kNWY0ZmNhYyAxMDA2NDQKLS0tLSB0 aGlyZF9wYXJ0eS9kYXYxZC9kYXYxZF9nZW5lcmF0ZWQuZ25pCi0rKysgdGhpcmRfcGFydHkvZGF2 MWQvZGF2MWRfZ2VuZXJhdGVkLmduaQotQEAgLTcxLDYgKzcxLDExIEBAIGFybV90ZW1wbGF0ZV9z b3VyY2VzID0gWwotICAgImxpYmRhdjFkL3NyYy9hcm0vbWNfaW5pdF90bXBsLmMiLAotIF0KLSAK LStwcGM2NF90ZW1wbGF0ZV9zb3VyY2VzID0gWwotKyAgImxpYmRhdjFkL3NyYy9wcGMvY2RlZl9p bml0X3RtcGwuYyIsCi0rICAibGliZGF2MWQvc3JjL3BwYy9sb29wcmVzdG9yYXRpb25faW5pdF90 bXBsLmMiLAotK10KLSsKLSB0ZW1wbGF0ZV9zb3VyY2VzID0gWwotICAgImxpYmRhdjFkL3NyYy9j ZGVmX2FwcGx5X3RtcGwuYyIsCi0gICAibGliZGF2MWQvc3JjL2NkZWZfdG1wbC5jIiwKLWRpZmYg LS1naXQgdGhpcmRfcGFydHkvZGF2MWQvZ2VuZXJhdGVfc291cmNlLnB5IHRoaXJkX3BhcnR5L2Rh djFkL2dlbmVyYXRlX3NvdXJjZS5weQotaW5kZXggOWFiNWUwMGIuLmFkM2ZlZmZlIDEwMDc1NQot LS0tIHRoaXJkX3BhcnR5L2RhdjFkL2dlbmVyYXRlX3NvdXJjZS5weQotKysrIHRoaXJkX3BhcnR5 L2RhdjFkL2dlbmVyYXRlX3NvdXJjZS5weQotQEAgLTUwLDcgKzUwLDggQEAgZGVmIFdyaXRlR24o ZmQpOgotICAgV3JpdGVBcnJheShmZCwgImFybTMyX2FzbV9zb3VyY2VzIiwgZ2xvYi5nbG9iKCJs aWJkYXYxZC9zcmMvYXJtLzMyLyouUyIpKQotICAgV3JpdGVBcnJheShmZCwgImFybTY0X2FzbV9z b3VyY2VzIiwgZ2xvYi5nbG9iKCJsaWJkYXYxZC9zcmMvYXJtLzY0LyouUyIpKQotICAgV3JpdGVB cnJheShmZCwgImFybV90ZW1wbGF0ZV9zb3VyY2VzIiwgZ2xvYi5nbG9iKCJsaWJkYXYxZC9zcmMv YXJtLypfdG1wbC5jIikpCi0tCi0rICBXcml0ZUFycmF5KGZkLCAicHBjNjRfdGVtcGxhdGVfc291 cmNlcyIsIGdsb2IuZ2xvYigibGliZGF2MWQvc3JjL3BwYy8qX3RtcGwuYyIpKQotKyAKLSAgIHRl bXBsYXRlX3NvdXJjZXMgPSBnbG9iLmdsb2IoImxpYmRhdjFkL3NyYy8qX3RtcGwuYyIpCi0gICBX cml0ZUFycmF5KGZkLCAidGVtcGxhdGVfc291cmNlcyIsIHRlbXBsYXRlX3NvdXJjZXMpCi0gCi1k aWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2RhdjFkL2xpYmRhdjFkL3NyYy9wcGMvdHlwZXMuaCB0aGly ZF9wYXJ0eS9kYXYxZC9saWJkYXYxZC9zcmMvcHBjL3R5cGVzLmgKLWluZGV4IDBiNGJkNzJmLi5h MGNhYTVlNyAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9kYXYxZC9saWJkYXYxZC9zcmMvcHBjL3R5 cGVzLmgKLSsrKyB0aGlyZF9wYXJ0eS9kYXYxZC9saWJkYXYxZC9zcmMvcHBjL3R5cGVzLmgKLUBA IC01MSw0ICs1MSwxOSBAQAotICNkZWZpbmUgdTE2bF90b19pMzIodikgKChpMzJ4NCkgdmVjX21l cmdlbCgodTE2eDgpIHYsIHZlY19zcGxhdF91MTYoMCkpKQotICNkZWZpbmUgaTE2bF90b19pMzIo dikgKChpMzJ4NCkgdmVjX3VucGFja2woKGkxNng4KXYpKQotIAotKyNpZiBkZWZpbmVkKF9fY2xh bmdfXykKLSsjdW5kZWYgdmVjX3NwbGF0cwotKyNkZWZpbmUgdmVjX3NwbGF0cyhOKSAgICAgICAg ICAgICAgICAgICAgIFwKLSsgICAgX0dlbmVyaWMoKE4pLCAgICAgICAgICAgICAgICAgICAgICAg ICBcCi0rICAgICAgICB1bnNpZ25lZCBjaGFyOiAgICAgICgodTh4MTYpKE4pKSwgXAotKyAgICAg ICAgc2lnbmVkIGNoYXI6ICAgICAgICAoKGk4eDE2KShOKSksIFwKLSsgICAgICAgIHVuc2lnbmVk IHNob3J0OiAgICAgKCh1MTZ4OCkoTikpLCBcCi0rICAgICAgICBzaWduZWQgc2hvcnQ6ICAgICAg ICgoaTE2eDgpKE4pKSwgXAotKyAgICAgICAgdW5zaWduZWQgaW50OiAgICAgICAoKHUzMng0KShO KSksIFwKLSsgICAgICAgIHNpZ25lZCBpbnQ6ICAgICAgICAgKChpMzJ4NCkoTikpLCBcCi0rICAg ICAgICB1bnNpZ25lZCBsb25nIGxvbmc6ICgodTY0eDIpKE4pKSwgXAotKyAgICAgICAgc2lnbmVk IGxvbmcgbG9uZzogICAoKGk2NHgyKShOKSkgIFwKLSsgICAgKQotKyNlbmRpZgotKwotICNlbmRp ZiAvKiBEQVYxRF9TUkNfUFBDX1RZUEVTX0ggKi8KLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvbHNz L2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oIHRoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1 cHBvcnQuaAotaW5kZXggZDJiYWVlOWQuLjk5NTVjZTQ0IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5 L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAotKysrIHRoaXJkX3BhcnR5L2xzcy9saW51eF9z eXNjYWxsX3N1cHBvcnQuaAotQEAgLTM5MjIsNyArMzkyMiw3IEBAIHN0cnVjdCBrZXJuZWxfc3Rh dGZzIHsKLSAgICAgICBMU1NfUkVHKDIsIGJ1Zik7Ci0gICAgICAgTFNTX0JPRFkodm9pZCosIG1t YXAyLCAiMCIoX19yMikpOwotICAgICB9Ci0tI2Vsc2UKLSsjZWxpZiAhZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKSAvKiBwcGM2NCBkb2Vzbid0IGhhdmUgbW1hcDIgKi8KLSAgICAgI2RlZmluZSBfX05S X19tbWFwMiBfX05SX21tYXAyCi0gICAgIExTU19JTkxJTkUgX3N5c2NhbGw2KHZvaWQqLCBfbW1h cDIsICAgICAgICAgICAgdm9pZCosIHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVf dCwgICAgICAgICAgICAgICAgICAgbCwgaW50LCAgICAgICAgICAgICAgIHAsCi1AQCAtNDAzMyw3 ICs0MDMzLDcgQEAgc3RydWN0IGtlcm5lbF9zdGF0ZnMgewotICAgI2lmIGRlZmluZWQoX19pMzg2 X18pIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKLSAgICAgICBkZWZpbmVkKF9fQVJNX0FSQ0hfM19fKSB8fCBkZWZpbmVkKF9fQVJNX0VBQklf XykgfHwgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAoZGVmaW5lZChfX21pcHNfXykgJiYg X01JUFNfU0lNID09IF9NSVBTX1NJTV9BQkkzMikgfHwgICAgICAgICAgICAgICAgICAgXAotLSAg ICAgIGRlZmluZWQoX19QUENfXykgfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKLSsgICAgIChkZWZpbmVkKF9fUFBDX18pICYmICFkZWZpbmVk KF9fcG93ZXJwYzY0X18pKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAotICAgICAgKGRlZmluZWQoX19zMzkwX18pICYmICFkZWZpbmVkKF9f czM5MHhfXykpCi0gICAgIC8qIE9uIHRoZXNlIGFyY2hpdGVjdHVyZXMsIGltcGxlbWVudCBtbWFw KCkgd2l0aCBtbWFwMigpLiAqLwotICAgICBMU1NfSU5MSU5FIHZvaWQqIExTU19OQU1FKG1tYXAp KHZvaWQgKnMsIHNpemVfdCBsLCBpbnQgcCwgaW50IGYsIGludCBkLAotZGlmZiAtLWdpdCB0aGly ZF9wYXJ0eS9wZmZmdC9zcmMvcGZmZnQuYyB0aGlyZF9wYXJ0eS9wZmZmdC9zcmMvcGZmZnQuYwot aW5kZXggYmRhYzRkNzg0Li41MWUwZjJjYWMgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvcGZmZnQv c3JjL3BmZmZ0LmMKLSsrKyB0aGlyZF9wYXJ0eS9wZmZmdC9zcmMvcGZmZnQuYwotQEAgLTEwMCw2 ICsxMDAsNyBAQAotICAgIEFsdGl2ZWMgc3VwcG9ydCBtYWNyb3MgCi0gKi8KLSAjaWYgIWRlZmlu ZWQoUEZGRlRfU0lNRF9ESVNBQkxFKSAmJiAoZGVmaW5lZChfX3BwY19fKSB8fCBkZWZpbmVkKF9f cHBjNjRfXykpCi0rI2luY2x1ZGUgPGFsdGl2ZWMuaD4KLSB0eXBlZGVmIHZlY3RvciBmbG9hdCB2 NHNmOwotICMgIGRlZmluZSBTSU1EX1NaIDQKLSAjICBkZWZpbmUgVlpFUk8oKSAoKHZlY3RvciBm bG9hdCkgdmVjX3NwbGF0X3U4KDApKQotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9za2lhL3NyYy9z a3NsL1NrU0xTdHJpbmcuY3BwIHRoaXJkX3BhcnR5L3NraWEvc3JjL3Nrc2wvU2tTTFN0cmluZy5j cHAKLWluZGV4IDg4ZWIxYzdkLi40YmUzM2ZhNSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9za2lh L3NyYy9za3NsL1NrU0xTdHJpbmcuY3BwCi0rKysgdGhpcmRfcGFydHkvc2tpYS9zcmMvc2tzbC9T a1NMU3RyaW5nLmNwcAotQEAgLTI0MCw3ICsyNDAsMTIgQEAgU3RyaW5nIHRvX3N0cmluZyhkb3Vi bGUgdmFsdWUpIHsKLSAgICAgaWYgKG5lZWRzRG90WmVybykgewotICAgICAgICAgYnVmZmVyIDw8 ICIuMCI7Ci0gICAgIH0KLS0gICAgcmV0dXJuIFN0cmluZyhidWZmZXIuc3RyKCkuY19zdHIoKSk7 Ci0rCi0rICAgIHN0ZDo6c3RyaW5nIHJldChidWZmZXIuc3RyKCkpOwotKyAgICBpZiAoc2lnbmJp dCh2YWx1ZSkgJiYgcmV0WzBdID09ICcuJykgewotKyAgICAgICAgcmV0WzBdID0gJy0nOwotKyAg ICB9Ci0rICAgIHJldHVybiBTdHJpbmcocmV0LmNfc3RyKCkpOwotIH0KLSAKLSBTS1NMX0lOVCBz dG9pKGNvbnN0IFN0cmluZyYgcykgewotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9zcWxpdGUvc3Jj L2FtYWxnYW1hdGlvbi9zcWxpdGUzLmMgdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9hbWFsZ2FtYXRp b24vc3FsaXRlMy5jCi1pbmRleCAxYjJjMmVjNy4uNzU5M2RiYTEgMTAwNjQ0Ci0tLS0gdGhpcmRf cGFydHkvc3FsaXRlL3NyYy9hbWFsZ2FtYXRpb24vc3FsaXRlMy5jCi0rKysgdGhpcmRfcGFydHkv c3FsaXRlL3NyYy9hbWFsZ2FtYXRpb24vc3FsaXRlMy5jCi1AQCAtMTQ0MDAsNyArMTQ0MDAsOCBA QCB0eXBlZGVmIElOVDE2X1RZUEUgTG9nRXN0OwotICMgaWYgZGVmaW5lZChpMzg2KSAgICAgIHx8 IGRlZmluZWQoX19pMzg2X18pICAgICAgfHwgZGVmaW5lZChfTV9JWDg2KSB8fCAgICBcCi0gICAg ICBkZWZpbmVkKF9feDg2XzY0KSAgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSAgICB8fCBkZWZpbmVk KF9NX1g2NCkgIHx8ICAgIFwKLSAgICAgIGRlZmluZWQoX01fQU1ENjQpICB8fCBkZWZpbmVkKF9N X0FSTSkgICAgICAgIHx8IGRlZmluZWQoX194ODYpICAgfHwgICAgXAotLSAgICAgZGVmaW5lZChf X0FSTUVMX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwgZGVmaW5lZChfTV9BUk02NCkK LSsgICAgIGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRl ZmluZWQoX01fQVJNNjQpIHx8ICAgXAotKyAgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAo X19CWVRFX09SREVSX18gPT0gX19PUkRFUl9MSVRUTEVfRU5ESUFOX18pCi0gIyAgIGRlZmluZSBT UUxJVEVfQllURU9SREVSICAgIDEyMzQKLSAjIGVsaWYgZGVmaW5lZChzcGFyYykgICAgIHx8IGRl ZmluZWQoX19wcGNfXykgfHwgXAotICAgICAgICBkZWZpbmVkKF9fQVJNRUJfXykgfHwgZGVmaW5l ZChfX0FBUkNINjRFQl9fKQotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxn YW1hdGlvbl9kZXYvc3FsaXRlMy5jIHRoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9u X2Rldi9zcWxpdGUzLmMKLWluZGV4IDE5Yzg3Njg5Li5jN2FiMDM5ZSAxMDA2NDQKLS0tLSB0aGly ZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbl9kZXYvc3FsaXRlMy5jCi0rKysgdGhpcmRf cGFydHkvc3FsaXRlL3NyYy9hbWFsZ2FtYXRpb25fZGV2L3NxbGl0ZTMuYwotQEAgLTE0NDEzLDcg KzE0NDEzLDggQEAgdHlwZWRlZiBJTlQxNl9UWVBFIExvZ0VzdDsKLSAjIGlmIGRlZmluZWQoaTM4 NikgICAgICB8fCBkZWZpbmVkKF9faTM4Nl9fKSAgICAgIHx8IGRlZmluZWQoX01fSVg4NikgfHwg ICAgXAotICAgICAgZGVmaW5lZChfX3g4Nl82NCkgIHx8IGRlZmluZWQoX194ODZfNjRfXykgICAg fHwgZGVmaW5lZChfTV9YNjQpICB8fCAgICBcCi0gICAgICBkZWZpbmVkKF9NX0FNRDY0KSAgfHwg ZGVmaW5lZChfTV9BUk0pICAgICAgICB8fCBkZWZpbmVkKF9feDg2KSAgIHx8ICAgIFwKLS0gICAg IGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRlZmluZWQo X01fQVJNNjQpCi0rICAgICBkZWZpbmVkKF9fQVJNRUxfXykgfHwgZGVmaW5lZChfX0FBUkNINjRF TF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0KSB8fCAgIFwKLSsgICAgIGRlZmluZWQoX19wb3dlcnBj NjRfXykgJiYgKF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfTElUVExFX0VORElBTl9fKQotICMg ICBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICAxMjM0Ci0gIyBlbGlmIGRlZmluZWQoc3BhcmMp ICAgICB8fCBkZWZpbmVkKF9fcHBjX18pIHx8IFwKLSAgICAgICAgZGVmaW5lZChfX0FSTUVCX18p IHx8IGRlZmluZWQoX19BQVJDSDY0RUJfXykKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvc3FsaXRl L3NyYy9leHQvcnRyZWUvcnRyZWUuYyB0aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2V4dC9ydHJlZS9y dHJlZS5jCi1pbmRleCBlZmFlZjgxMy4uNGNkNTdkNTUgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkv c3FsaXRlL3NyYy9leHQvcnRyZWUvcnRyZWUuYwotKysrIHRoaXJkX3BhcnR5L3NxbGl0ZS9zcmMv ZXh0L3J0cmVlL3J0cmVlLmMKLUBAIC00MzIsNyArNDMyLDcgQEAgc3RydWN0IFJ0cmVlTWF0Y2hB cmcgewotICNpZiBkZWZpbmVkKGkzODYpICAgICB8fCBkZWZpbmVkKF9faTM4Nl9fKSAgIHx8IGRl ZmluZWQoX01fSVg4NikgfHwgICAgXAotICAgICBkZWZpbmVkKF9feDg2XzY0KSB8fCBkZWZpbmVk KF9feDg2XzY0X18pIHx8IGRlZmluZWQoX01fWDY0KSAgfHwgICAgXAotICAgICBkZWZpbmVkKF9N X0FNRDY0KSB8fCBkZWZpbmVkKF9NX0FSTSkgICAgIHx8IGRlZmluZWQoX194ODYpICAgfHwgICAg XAotLSAgICBkZWZpbmVkKF9fYXJtX18pCi0rICAgIGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKSAmJiAoX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9MSVRUTEVfRU5E SUFOX18pCi0gIyBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICAxMjM0Ci0gI2VsaWYgZGVmaW5l ZChzcGFyYykgICAgfHwgZGVmaW5lZChfX3BwY19fKQotICMgZGVmaW5lIFNRTElURV9CWVRFT1JE RVIgICAgNDMyMQotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL3NyYy9zcWxpdGVJ bnQuaCB0aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL3NyYy9zcWxpdGVJbnQuaAotaW5kZXggMTIyZTI2 YWQuLmVjMjFkY2I1IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvc3JjL3NxbGl0 ZUludC5oCi0rKysgdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9zcmMvc3FsaXRlSW50LmgKLUBAIC04 NjgsNyArODY4LDggQEAgdHlwZWRlZiBJTlQxNl9UWVBFIExvZ0VzdDsKLSAjIGlmIGRlZmluZWQo aTM4NikgICAgICB8fCBkZWZpbmVkKF9faTM4Nl9fKSAgICAgIHx8IGRlZmluZWQoX01fSVg4Nikg fHwgICAgXAotICAgICAgZGVmaW5lZChfX3g4Nl82NCkgIHx8IGRlZmluZWQoX194ODZfNjRfXykg ICAgfHwgZGVmaW5lZChfTV9YNjQpICB8fCAgICBcCi0gICAgICBkZWZpbmVkKF9NX0FNRDY0KSAg fHwgZGVmaW5lZChfTV9BUk0pICAgICAgICB8fCBkZWZpbmVkKF9feDg2KSAgIHx8ICAgIFwKLS0g ICAgIGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRlZmlu ZWQoX01fQVJNNjQpCi0rICAgICBkZWZpbmVkKF9fQVJNRUxfXykgfHwgZGVmaW5lZChfX0FBUkNI NjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0KSB8fCBcCi0rICAgICBkZWZpbmVkKF9fcG93ZXJw YzY0X18pICYmIChfX0JZVEVfT1JERVJfXyA9PSBfX09SREVSX0xJVFRMRV9FTkRJQU5fXykKLSAj ICAgZGVmaW5lIFNRTElURV9CWVRFT1JERVIgICAgMTIzNAotICMgZWxpZiBkZWZpbmVkKHNwYXJj KSAgICAgfHwgZGVmaW5lZChfX3BwY19fKSB8fCBcCi0gICAgICAgIGRlZmluZWQoX19BUk1FQl9f KSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVCX18pCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L3dlYnJ0 Yy9tb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9kaWZmZXJfYmxvY2suY2MgdGhpcmRfcGFydHkvd2Vi cnRjL21vZHVsZXMvZGVza3RvcF9jYXB0dXJlL2RpZmZlcl9ibG9jay5jYwotaW5kZXggZGQ5YWI0 NTcuLmMwMDVkOTU5IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0 b3BfY2FwdHVyZS9kaWZmZXJfYmxvY2suY2Mub3JpZwkyMDIwLTExLTE3IDEzOjQyOjAyLjAwMDAw MDAwMCAtMDUwMAotKysrIHRoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0b3BfY2FwdHVy ZS9kaWZmZXJfYmxvY2suY2MJMjAyMC0xMS0xOCAyMToxMTowMy4wMzk5MDUzNjAgLTA1MDAKLUBA IC0zMCwxMSArMzAsNyBAQAotICAgc3RhdGljIGJvb2wgKCpkaWZmX3Byb2MpKGNvbnN0IHVpbnQ4 X3QqLCBjb25zdCB1aW50OF90KikgPSBudWxscHRyOwotIAotICAgaWYgKCFkaWZmX3Byb2MpIHsK LS0jaWYgZGVmaW5lZChXRUJSVENfQVJDSF9BUk1fRkFNSUxZKSB8fCBkZWZpbmVkKFdFQlJUQ19B UkNIX01JUFNfRkFNSUxZKQotLSAgICAvLyBGb3IgQVJNIGFuZCBNSVBTIHByb2Nlc3NvcnMsIGFs d2F5cyB1c2UgQyB2ZXJzaW9uLgotLSAgICAvLyBUT0RPKGhjbGFtKTogSW1wbGVtZW50IGEgTkVP TiB2ZXJzaW9uLgotLSAgICBkaWZmX3Byb2MgPSAmVmVjdG9yRGlmZmVyZW5jZV9DOwotLSNlbHNl Ci0rI2lmIGRlZmluZWQoV0VCUlRDX0FSQ0hfWDg2X0ZBTUlMWSkKLSAgICAgYm9vbCBoYXZlX3Nz ZTIgPSBHZXRDUFVJbmZvKGtTU0UyKSAhPSAwOwotICAgICAvLyBGb3IgeDg2IHByb2Nlc3NvcnMs IGNoZWNrIGlmIFNTRTIgaXMgc3VwcG9ydGVkLgotICAgICBpZiAoaGF2ZV9zc2UyICYmIGtCbG9j a1NpemUgPT0gMzIpIHsKLUBAIC00NCw2ICs0MCwxMCBAQAotICAgICB9IGVsc2UgewotICAgICAg IGRpZmZfcHJvYyA9ICZWZWN0b3JEaWZmZXJlbmNlX0M7Ci0gICAgIH0KLSsjZWxzZQotKyAgICAv LyBGb3Igb3RoZXIgcHJvY2Vzc29ycywgYWx3YXlzIHVzZSBDIHZlcnNpb24uCi0rICAgIC8vIFRP RE8oaGNsYW0pOiBJbXBsZW1lbnQgYSBORU9OIHZlcnNpb24uCi0rICAgIGRpZmZfcHJvYyA9ICZW ZWN0b3JEaWZmZXJlbmNlX0M7Ci0gI2VuZGlmCi0gICB9Ci0gCi1kaWZmIC0tZ2l0IHRoaXJkX3Bh cnR5L3dlYnJ0Yy9ydGNfYmFzZS9zeXN0ZW0vYXJjaC5oIHRoaXJkX3BhcnR5L3dlYnJ0Yy9ydGNf YmFzZS9zeXN0ZW0vYXJjaC5oCi1pbmRleCBlZDIxNmU2Ni4uMjVkMzZjMDcgMTAwNjQ0Ci0tLS0g dGhpcmRfcGFydHkvd2VicnRjL3J0Y19iYXNlL3N5c3RlbS9hcmNoLmgKLSsrKyB0aGlyZF9wYXJ0 eS93ZWJydGMvcnRjX2Jhc2Uvc3lzdGVtL2FyY2guaAotQEAgLTUwLDYgKzUwLDE4IEBACi0gI2Vs aWYgZGVmaW5lZChfX0VNU0NSSVBURU5fXykKLSAjZGVmaW5lIFdFQlJUQ19BUkNIXzMyX0JJVFMK LSAjZGVmaW5lIFdFQlJUQ19BUkNIX0xJVFRMRV9FTkRJQU4KLSsjZWxpZiBkZWZpbmVkKF9fUFBD X18pCi0rI2RlZmluZSBXRUJSVENfQVJDSF9QUENfRkFNSUxZCi0rI2lmIF9fQllURV9PUkRFUl9f ID09IF9fT1JERVJfTElUVExFX0VORElBTl9fCi0rI2RlZmluZSBXRUJSVENfQVJDSF9MSVRUTEVf RU5ESUFOCi0rI2Vsc2UKLSsjZGVmaW5lIFdFQlJUQ19BUkNIX0JJR19FTkRJQU4KLSsjZW5kaWYK LSsjaWYgZGVmaW5lZChfX0xQNjRfXykKLSsjZGVmaW5lIFdFQlJUQ19BUkNIXzY0X0JJVFMKLSsj ZWxzZQotKyNkZWZpbmUgV0VCUlRDX0FSQ0hfMzJfQklUUwotKyNlbmRpZgotICNlbHNlCi0gI2Vy cm9yIFBsZWFzZSBhZGQgc3VwcG9ydCBmb3IgeW91ciBhcmNoaXRlY3R1cmUgaW4gcnRjX2Jhc2Uv c3lzdGVtL2FyY2guaAotICNlbmRpZgotIGRpZmYgLS1naXQgdjgvQlVJTEQuZ24gdjgvQlVJTEQu Z24KLWluZGV4IDE2N2U2MzUwMy4uMTI1YzQ0NWVhIDEwMDY0NAotLS0tIHY4L0JVSUxELmduCi0r KysgdjgvQlVJTEQuZ24KLUBAIC02OTYsNiArNjk2LDEyIEBAIGNvbmZpZygidG9vbGNoYWluIikg ewotICAgICB9Ci0gICAgIGlmIChob3N0X2J5dGVvcmRlciA9PSAibGl0dGxlIikgewotICAgICAg IGRlZmluZXMgKz0gWyAiVjhfVEFSR0VUX0FSQ0hfUFBDX0xFIiBdCi0rICAgICAgICBjZmxhZ3Mg Kz0gWwotKyAgICAgICAgIyBFbmFibGUgdXNhZ2Ugb2YgQWx0aVZlYywgVlNYLCBhbmQgb3RoZXIg UE9XRVI4IGFuZCBoaWdoZXIgZmVhdHVyZXMKLSsgICAgICAgICItbWNwdT1wb3dlcjgiLAotKyAg ICAgICAgIi1tYWx0aXZlYyIsCi0rICAgICAgICAiLW12c3giLAotKyAgICAgIF0KLSAgICAgfSBl bHNlIGlmIChob3N0X2J5dGVvcmRlciA9PSAiYmlnIikgewotICAgICAgIGRlZmluZXMgKz0gWyAi VjhfVEFSR0VUX0FSQ0hfUFBDX0JFIiBdCi0gICAgICAgaWYgKGN1cnJlbnRfb3MgPT0gImFpeCIp IHsKLWRpZmYgLS1naXQgdWkvZ2wvZmVhdHVyZXMuZ25pIHVpL2dsL2ZlYXR1cmVzLmduaQotaW5k ZXggY2IyYzk4NjQ5Li41ZTA5YmMxZjcgMTAwNjQ0Ci0tLS0gdWkvZ2wvZmVhdHVyZXMuZ25pCi0r KysgdWkvZ2wvZmVhdHVyZXMuZ25pCi1AQCAtMjUsNSArMjUsNiBAQCBkZWNsYXJlX2FyZ3MoKSB7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgaXNfY2hyb21lb3MgfHwgaXNfZnVjaHNpYSkgJiYK LSAgICAgICAgICAgICAgICAgICAgICAgICh0YXJnZXRfY3B1ID09ICJ4ODYiIHx8IHRhcmdldF9j cHUgPT0gIng2NCIgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfY3B1ID09ICJh cm0iIHx8IHRhcmdldF9jcHUgPT0gImFybTY0IiB8fAotLSAgICAgICAgICAgICAgICAgICAgICAg IHRhcmdldF9jcHUgPT0gIm1pcHNlbCIgfHwgdGFyZ2V0X2NwdSA9PSAibWlwczY0ZWwiKQotKyAg ICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9jcHUgPT0gIm1pcHNlbCIgfHwgdGFyZ2V0X2Nw dSA9PSAibWlwczY0ZWwiIHx8Ci0rICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2NwdSA9 PSAicHBjNjQiKQotIH0KLWRpZmYgLS1naXQgdjgvdGVzdC9CVUlMRC5nbiB2OC90ZXN0L0JVSUxE LmduCi1pbmRleCBmNmQzMDUzN2EuLjI4N2IyNzA4MCAxMDA2NDQKLS0tLSB2OC90ZXN0L0JVSUxE LmduCi0rKysgdjgvdGVzdC9CVUlMRC5nbgotQEAgLTMxLDcgKzMxLDcgQEAgZ3JvdXAoImduX2Fs bCIpIHsKLSAgICAgZGVwcyArPSBbCi0gICAgICAgImNjdGVzdDpjY3Rlc3QiLAotICAgICAgICJj Y3Rlc3Q6Z2VuZXJhdGUtYnl0ZWNvZGUtZXhwZWN0YXRpb25zIiwKLS0gICAgICAidW5pdHRlc3Rz OnVuaXR0ZXN0cyIsCi0rICAgICAgIyJ1bml0dGVzdHM6dW5pdHRlc3RzIiwKLSAgICAgXQotICAg fQotIH0KLUBAIC03Myw3ICs3Myw3IEBAIGdyb3VwKCJ2OF9ib3RfZGVmYXVsdCIpIHsKLSAgICAg Im1lc3NhZ2U6djhfbWVzc2FnZSIsCi0gICAgICJtanN1bml0OnY4X21qc3VuaXQiLAotICAgICAi bWtncm9rZHVtcDpta2dyb2tkdW1wIiwKLS0gICAgInVuaXR0ZXN0czp1bml0dGVzdHMiLAotKyAg ICAjInVuaXR0ZXN0czp1bml0dGVzdHMiLAotICAgICAid2FzbS1hcGktdGVzdHM6d2FzbV9hcGlf dGVzdHMiLAotICAgICAid2FzbS1qczp2OF93YXNtX2pzIiwKLSAgICAgIndhc20tc3BlYy10ZXN0 czp2OF93YXNtX3NwZWNfdGVzdHMiLAotQEAgLTkzLDcgKzkzLDcgQEAgZ3JvdXAoInY4X2RlZmF1 bHQiKSB7Ci0gICAgICJtZXNzYWdlOnY4X21lc3NhZ2UiLAotICAgICAibWpzdW5pdDp2OF9tanN1 bml0IiwKLSAgICAgIm1rZ3Jva2R1bXA6bWtncm9rZHVtcCIsCi0tICAgICJ1bml0dGVzdHM6dW5p dHRlc3RzIiwKLSsgICAgIyJ1bml0dGVzdHM6dW5pdHRlc3RzIiwKLSAgICAgIndhc20tYXBpLXRl c3RzOndhc21fYXBpX3Rlc3RzIiwKLSAgICAgIndhc20tanM6djhfd2FzbV9qcyIsCi0gICAgICJ3 YXNtLXNwZWMtdGVzdHM6djhfd2FzbV9zcGVjX3Rlc3RzIiwKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Y2hyb21pdW0vdGVtcGxhdGUgYi9zcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlCmluZGV4IDA5OGNi OTA0ZGE5Li5jMDhjOWE2MDA0ZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAnY2hyb21pdW0nCiBwa2duYW1lPWNocm9taXVtCiAjIFNlZSBodHRwOi8v d3d3LmNocm9taXVtLm9yZy9kZXZlbG9wZXJzL2NhbGVuZGFyIGZvciB0aGUgbGF0ZXN0IHZlcnNp b24KLXZlcnNpb249ODguMC40MzI0LjE4MgordmVyc2lvbj04OS4wLjQzODkuNzIKIHJldmlzaW9u PTEKIGFyY2hzPSJpNjg2KiB4ODZfNjQqIGFhcmNoNjQqIGFybXY3bCogcHBjNjRsZSoiCiBzaG9y dF9kZXNjPSJHb29nbGUncyBhdHRlbXB0IGF0IGNyZWF0aW5nIGEgc2FmZXIsIGZhc3RlciwgYW5k IG1vcmUgc3RhYmxlIGJyb3dzZXIiCkBAIC05LDcgKzksNyBAQCBtYWludGFpbmVyPSJFbm5vIEJv bGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iQlNELTMtQ2xhdXNlIgogaG9t ZXBhZ2U9Imh0dHBzOi8vd3d3LmNocm9taXVtLm9yZy8iCiBkaXN0ZmlsZXM9Imh0dHBzOi8vY29t bW9uZGF0YXN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vY2hyb21pdW0tYnJvd3Nlci1vZmZpY2lhbC8k e3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MzA0MTFmYzNlYzJkMzNkZjRj NWNhZDQxZjIxYWZmYTM4MjNjODBmN2RiZDM5NGY2ZDY4ZjlhMWU4MTAxNWI4MQorY2hlY2tzdW09 OTQ2YTBiNjVhYWQxMGUwZjc3YTUzOTEwMzg5MjA5OWI3MjM4MzEwYzczM2YyNWI0MWQ1OGI3NmY2 YWMwYmM0Zgogbm9jcm9zcz15ZXMKIAogbGliMzJkaXNhYmxlZD15ZXMKQEAgLTM0LDcgKzM0LDcg QEAgbWFrZWRlcGVuZHM9ImxpYnBuZy1kZXZlbCBndGsrLWRldmVsIGd0ayszLWRldmVsIG5zcy1k ZXZlbCBwY2l1dGlscy1kZXZlbAogIGxpYlhjdXJzb3ItZGV2ZWwgbGliZmxhYy1kZXZlbCBzcGVl eC1kZXZlbCBsaWJtdHAtZGV2ZWwgbGlid2VicC1kZXZlbAogIGxpYmpwZWctdHVyYm8tZGV2ZWwg bGliZXZlbnQtZGV2ZWwganNvbi1jLWRldmVsIGhhcmZidXp6LWRldmVsCiAgbWluaXppcC1kZXZl bCBqc29uY3BwLWRldmVsIHpsaWItZGV2ZWwgbGliY2FwLWRldmVsIGxpYlhkYW1hZ2UtZGV2ZWwK LSByZTItZGV2ZWwgZm9udGNvbmZpZy1kZXZlbCBmcmVldHlwZS1kZXZlbCBvcHVzLWRldmVsCisg cmUyLWRldmVsIGZvbnRjb25maWctZGV2ZWwgZnJlZXR5cGUtZGV2ZWwKICBmZm1wZWctZGV2ZWwg bGlidmEtZGV2ZWwgcHl0aG9uLXNldHVwdG9vbHMgeGNiLXByb3RvCiAgJCh2b3B0X2lmIHBpcGV3 aXJlIGxpYnBpcGV3aXJlMC4yLWRldmVsKSAkKHZvcHRfaWYgc25kaW8gc25kaW8tZGV2ZWwpIgog ZGVwZW5kcz0ibGliZXhpZiBod2lkcyBkZXNrdG9wLWZpbGUtdXRpbHMgaGljb2xvci1pY29uLXRo ZW1lIHhkZy11dGlscyIKQEAgLTExOSw2ICsxMTksNyBAQCBkb19jb25maWd1cmUoKSB7CiAJIyB1 c2Vfc3lzdGVtX3Y4PTEKIAkjIHVzZV9zeXN0ZW1femxpYj0xCiAJIyBiemlwMiBqc29uY3BwIG1p bml6aXAgeGRnX3V0aWxzIHNwZWV4CisJIyBvcHVzIGZhaWxzIGJlY2F1c2UgdGhlIGdlbmVyYXRl ZCBzaGltIGhlYWRlciBvcHVzLmggdHJpZXMgdG8gaW5jbHVkZSA8b3B1cy5oPgogCXN5c3RlbT0i CiAJCWZmbXBlZwogCQlmbGFjCkBAIC0xMzIsNyArMTMzLDYgQEAgZG9fY29uZmlndXJlKCkgewog CQlsaWJ3ZWJwCiAJCWxpYnhtbAogCQlsaWJ4c2x0Ci0JCW9wdXMKIAkJcmUyCiAJCXNuYXBweQog CSIK --===============3186496409405593280==--