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 3206 invoked from network); 24 Feb 2023 12:52:48 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 24 Feb 2023 12:52:48 -0000 Content-Type: multipart/mixed; boundary="===============0494883733954537174==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_=5BREDO=5D_New_package=3A_qt6-webengine-6=2E4=2E2=2E?= To: ml@inbox.vuxu.org From: sgn Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Fri, 24 Feb 2023 13:52:48 +0100 List-Id: Message-ID: <20230224125248.ccN-g2n0kmm8OAbUDWip95hceWHm60XRAFVjqWoTepk@z> GitHub notification mails are now in MIME to allow UTF8. --===============0494883733954537174== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgc2duIGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9zZ24vdm9p ZC1wYWNrYWdlcyBxdDYtd2ViZW5naW5lCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3Zv aWQtcGFja2FnZXMvcHVsbC80MjIyNAoKW1JFRE9dIE5ldyBwYWNrYWdlOiBxdDYtd2ViZW5naW5l LTYuNC4yLgo8IS0tIFVuY29tbWVudCByZWxldmFudCBzZWN0aW9ucyBhbmQgZGVsZXRlIG9wdGlv bnMgd2hpY2ggYXJlIG5vdCBhcHBsaWNhYmxlIC0tPg0KDQojIyMjIFRlc3RpbmcgdGhlIGNoYW5n ZXMNCi0gSSB0ZXN0ZWQgdGhlIGNoYW5nZXMgaW4gdGhpcyBQUjogKipicmllZmx5KioNCg0KPCEt LQ0KIyMjIyBOZXcgcGFja2FnZQ0KLSBUaGlzIG5ldyBwYWNrYWdlIGNvbmZvcm1zIHRvIHRoZSBb cGFja2FnZSByZXF1aXJlbWVudHNdKGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQt cGFja2FnZXMvYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kI3BhY2thZ2UtcmVxdWlyZW1lbnRz KTogKipZRVMqKnwqKk5PKioNCi0tPg0KDQo8IS0tIE5vdGU6IElmIHRoZSBidWlsZCBpcyBsaWtl bHkgdG8gdGFrZSBtb3JlIHRoYW4gMiBob3VycywgcGxlYXNlIGFkZCBjaSBza2lwIHRhZyBhcyBk ZXNjcmliZWQgaW4NCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMv YmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kI2NvbnRpbnVvdXMtaW50ZWdyYXRpb24NCmFuZCB0 ZXN0IGF0IGxlYXN0IG9uZSBuYXRpdmUgYnVpbGQgYW5kLCBpZiBzdXBwb3J0ZWQsIGF0IGxlYXN0 IG9uZSBjcm9zcyBidWlsZC4NCklnbm9yZSB0aGlzIHNlY3Rpb24gaWYgdGhpcyBQUiBpcyBub3Qg c2tpcHBpbmcgQ0kuDQotLT4NCg0KIyMjIyBMb2NhbCBidWlsZCB0ZXN0aW5nDQotIEkgYnVpbHQg dGhpcyBQUiBsb2NhbGx5IGZvciBteSBuYXRpdmUgYXJjaGl0ZWN0dXJlOg0KICAgIC0gW3hdIGB4 ODZfNjRgDQogICAgLSBbeF0gYHg4Nl82NC1tdXNsYA0KLSBJIGJ1aWx0IHRoaXMgUFIgbG9jYWxs eSBmb3IgdGhlc2UgYXJjaGl0ZWN0dXJlcyAoaWYgc3VwcG9ydGVkLiBtYXJrIGNyb3NzYnVpbGRz KToNCiAgICAtIFsgXSBhYXJjaDY0DQogICAgLSBbIF0gYWFyY2g2NC1tdXNsDQogICAgLSBbIF0g aTY4Ng0KICAgIC0gWyBdIGFybXY3LW11c2wNCiAgICAtIFsgXSBhcm12Nw0KDQoNCgoKQSBwYXRj aCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9w dWxsLzQyMjI0LnBhdGNoIGlzIGF0dGFjaGVk --===============0494883733954537174== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-qt6-webengine-42224.patch" RnJvbSAxNmM2MTc3NWU2MGFiOGZmMDQzMDUyMjAxNGUxMTcxMTFlNGU1NTNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1B N249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9u LCA4IEF1ZyAyMDIyIDE3OjEzOjExICswNzAwClN1YmplY3Q6IFtQQVRDSF0gTmV3IHBhY2thZ2U6 IHF0Ni13ZWJlbmdpbmUtNi4zLjEuCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgNyArCiBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUtZGV2ZWwgICAg ICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjcGtncy9xdDYtd2ViZW5naW5lLWV4YW1wbGVzICAg ICAgICAgICAgICAgIHwgICAxICsKIC4uLi9wYXRjaGVzLzAwMDEtTm9uZS1uby1kZWJ1Zy5wYXRj aCAgICAgICAgICB8ICAxMSArCiAuLi4vcGF0Y2hlcy8wMDAzLWNyb3NzLWhhY2sucGF0Y2ggICAg ICAgICAgICAgfCAgMTAgKwogLi4uL3BhdGNoZXMvMDA1MC1uby1nbGliYy1jbWFrZS1jaGVjay5w YXRjaCAgIHwgIDE0ICsKIC4uLi8wMTAwLWNocm9taXVtLXJldmVydC05ZDA4MGMwLnBhdGNoICAg ICAgICB8IDE1NCArKysrCiAuLi5vbWl1bS0xMDItZmVuY2VkX2ZyYW1lX3V0aWxzLWluY2x1ZGUu cGF0Y2ggfCAgMjAgKwogLi4uMTAyLWNocm9taXVtLTEwMi1yZWdleF9wYXR0ZXJuLWFycmF5LnBh dGNoIHwgIDE0ICsKIC4uLjAxMDMtY2hyb21pdW0taTY4Ni12YWFwaS1mcGVybWlzc2l2ZS5wYXRj aCB8ICAyMyArCiAuLi4vMDEwNC1jaHJvbWl1bS1saWJ4bWwtdW5idW5kbGUucGF0Y2ggICAgICAg fCAgMTAgKwogLi4uLWNocm9taXVtLXJldmVydC1kcm9wLW9mLXN5c3RlbS1qYXZhLnBhdGNoIHwg IDE1ICsKIC4uLi9wYXRjaGVzLzAxMDYtY2hyb21pdW0tc3lzdGVtLW5vZGVqcy5wYXRjaCB8ICAy OSArCiAuLi4vcGF0Y2hlcy8wMTA3LWNocm9taXVtLWNyb3NzLWJ1aWxkLnBhdGNoICAgfCAgNjUg KysKIC4uLi8wMTA4LWNocm9taXVtLWN1cnNlZF5Vc2NvcGVkX2ZpbGUucGF0Y2ggICB8ICAxOCAr CiAuLi5jaHJvbWl1bS1hYXJjaDY0LW11c2wtbWVtb3J5LXRhZ2dpbmcucGF0Y2ggfCAgMjkgKwog Li4uZml4LW1pc3NpbmctVEVNUF9GQUlMVVJFX1JFVFJZLW1hY3JvLnBhdGNoIHwgIDIxICsKIC4u Li9wYXRjaGVzLzAxMTEtY2hyb21pdW0tY3N0ZGludC5wYXRjaCAgICAgICB8ICAxMCArCiAuLi4v cGF0Y2hlcy8wMTEyLWNocm9taXVtLXVuaXN0ZC5oLnBhdGNoICAgICAgfCAgMTAgKwogLi4uLzAx MTMtY2hyb21pdW0tcHRocmVhZC1zdGFja3NpemUucGF0Y2ggICAgIHwgIDE2ICsKIC4uLi9wYXRj aGVzLzAxMTQtZG8tbm90LW5hcnJvdy1pbnQucGF0Y2ggICAgICB8ICA1MyArKwogLi4uNS1jaHJv bWl1bS1uby1jYW5vbmljYWxpemUtZmlsZS1uYW1lLnBhdGNoIHwgIDEyICsKIC4uLi8wMTE2LWNo cm9taXVtLW11c2wtZ2V0LXRocmVhZC1uYW1lLnBhdGNoICB8ICAyMiArCiAuLi4vcGF0Y2hlcy8w MTE3LWNocm9taXVtLW11c2wtcmVzb2x2ZXIucGF0Y2ggfCAgNjQgKysKIC4uLi8wMTE5LWNocm9t aXVtLW11c2wtc3RhY2stdXRpbHMucGF0Y2ggICAgICB8ICAyMCArCiAuLi4vcGF0Y2hlcy8wMTIw LWNocm9taXVtLWxpYmMtbWFsbG9jLnBhdGNoICAgfCAgMzQgKwogLi4uL3BhdGNoZXMvMDEyMS1j aHJvbWl1bS1tdXNsLXN0YXQucGF0Y2ggICAgIHwgIDEyICsKIC4uLi9wYXRjaGVzLzAxMjItY2hy b21pdW0tY29uZGl0aW9uX3Zhci5wYXRjaCB8ICAyMiArCiAuLi4vMDEyMy1jaHJvbWl1bS1tdXNs LW5vLWV4ZWNpbmZvLnBhdGNoICAgICAgfCAgNzUgKysKIC4uLi8wMTIzLWNocm9taXVtLW11c2wt bm8tZ2V0Y29udGV4dC5wYXRjaCAgICB8ICAyNyArCiAuLi4vcGF0Y2hlcy8wMTI0LWNocm9taXVt LWVuYWJsZS1pNjg2LnBhdGNoICAgfCAgMTcgKwogLi4uLzAxMjUtY2hyb21pdW0tcmVtb3ZlLXN0 cmlwX2JpbmFyeS5wYXRjaCAgIHwgIDMyICsKIC4uLi9wYXRjaGVzLzAxMjYtY2hyb21pdW0tbm8t Y2RlZnMucGF0Y2ggICAgICB8ICAzOSArCiAuLi4vMDEyOC1jaHJvbWl1bS1zYW5kYm94LW1lbWJh cnJpZXIucGF0Y2ggICAgfCAgMTAgKwogLi4uLzAxMjktY2hyb21pdW0tc2FuZGJveC1zaGVkX2dl dHBhcmFtLnBhdGNoIHwgIDIwICsKIC4uLnVuZGxlLWZmbXBlZy1hdl9zdHJlYW1fZ2V0X2ZpcnN0 X2R0cy5wYXRjaCB8ICAxMCArCiAuLi4xLWNocm9taXVtLXVuYnVuZGxlZC1jcm9zcy10b29sY2hh aW4ucGF0Y2ggfCAgMTMgKwogLi4uL3BhdGNoZXMvMDE1Mi1jaHJvbWl1bS13ZWJydGMtc2l6ZV90 LnBhdGNoIHwgIDEwICsKIC4uLi9wYXRjaGVzLzAxNTMtY2hyb21pdW0td2VicnRjLXNpemVfdC5w YXRjaCB8ICAxNiArCiAuLi4vcGF0Y2hlcy8wMTU0LWNocm9taXVtLXVpdF90LnBhdGNoICAgICAg ICAgfCAgMTEgKwogLi4uL3BhdGNoZXMvMDIwMC1jaHJvbWl1bS1zbmRpby5wYXRjaCAgICAgICAg IHwgODQ5ICsrKysrKysrKysrKysrKysrKwogLi4uL3BhdGNoZXMvMDMwMC1jaHJvbWl1bS1tdXNs LWhhY2tzLnBhdGNoICAgIHwgIDUyICsrCiAuLi4vcGF0Y2hlcy8wMzAxLWNocm9taXVtLW11c2wt c2FuZGJveC5wYXRjaCAgfCAgODYgKysKIC4uLi9wYXRjaGVzLzAzMDItY2hyb21pdW0tbm8tbWFs bGluZm8ucGF0Y2ggICB8ICA2NyArKwogLi4uL3BhdGNoZXMvMDcwMC1hcm12N2wtbmVvbi5wYXRj aCAgICAgICAgICAgIHwgIDEwICsKIC4uLi1jaHJvbWl1bS1tdXNsLWNyb3NzLW5vLWFzbV9wdHJh Y2VfaC5wYXRjaCB8ICAzMCArCiAuLi4vMDc1MS1jaHJvbWl1bS1tdXNsLWFybS11c2VyX3ZmcC5w YXRjaCAgICAgfCAgMjAgKwogLi4uLzA3NTItY2hyb21pdW0tbXVzbC1hcm0tZWxmX2F1eHZfdC5w YXRjaCAgIHwgIDE4ICsKIC4uLi9wYXRjaGVzLzA5MDAtY3Jvc3MtYnVpbGQtZXhhbXBsZXMucGF0 Y2ggICB8ICAxNiArCiBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvdGVtcGxhdGUgICAgICAgICAgICAg ICAgfCAxODIgKysrKwogc3JjcGtncy9xdDYtd2ViZW5naW5lL3VwZGF0ZSAgICAgICAgICAgICAg ICAgIHwgICAxICsKIDUxIGZpbGVzIGNoYW5nZWQsIDIzMjggaW5zZXJ0aW9ucygrKQogY3JlYXRl IG1vZGUgMTIwMDAwIHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS1kZXZlbAogY3JlYXRlIG1vZGUgMTIw MDAwIHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS1leGFtcGxlcwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDEtTm9uZS1uby1kZWJ1Zy5wYXRjaAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDMtY3Jvc3Mt aGFjay5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAwNTAtbm8tZ2xpYmMtY21ha2UtY2hlY2sucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAwLWNocm9taXVtLXJldmVydC05ZDA4MGMw LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDEwMS1jaHJvbWl1bS0xMDItZmVuY2VkX2ZyYW1lX3V0aWxzLWluY2x1ZGUucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAyLWNocm9taXVt LTEwMi1yZWdleF9wYXR0ZXJuLWFycmF5LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMy1jaHJvbWl1bS1pNjg2LXZhYXBpLWZwZXJtaXNz aXZlLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDEwNC1jaHJvbWl1bS1saWJ4bWwtdW5idW5kbGUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA1LWNocm9taXVtLXJldmVydC1kcm9w LW9mLXN5c3RlbS1qYXZhLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2Vi ZW5naW5lL3BhdGNoZXMvMDEwNi1jaHJvbWl1bS1zeXN0ZW0tbm9kZWpzLnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwNy1jaHJvbWl1bS1j cm9zcy1idWlsZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAxMDgtY2hyb21pdW0tY3Vyc2VkXlVzY29wZWRfZmlsZS5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDktY2hyb21pdW0t YWFyY2g2NC1tdXNsLW1lbW9yeS10YWdnaW5nLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExMC1jaHJvbWl1bS1maXgtbWlzc2luZy1URU1Q X0ZBSUxVUkVfUkVUUlktbWFjcm8ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTExLWNocm9taXVtLWNzdGRpbnQucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTEyLWNocm9taXVtLXVu aXN0ZC5oLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDExMy1jaHJvbWl1bS1wdGhyZWFkLXN0YWNrc2l6ZS5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTQtZG8tbm90LW5hcnJvdy1p bnQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wMTE1LWNocm9taXVtLW5vLWNhbm9uaWNhbGl6ZS1maWxlLW5hbWUucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTE2LWNocm9taXVtLW11 c2wtZ2V0LXRocmVhZC1uYW1lLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDExNy1jaHJvbWl1bS1tdXNsLXJlc29sdmVyLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExOS1jaHJvbWl1 bS1tdXNsLXN0YWNrLXV0aWxzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDEyMC1jaHJvbWl1bS1saWJjLW1hbGxvYy5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjEtY2hyb21pdW0t bXVzbC1zdGF0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDEyMi1jaHJvbWl1bS1jb25kaXRpb25fdmFyLnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyMy1jaHJvbWl1bS1tdXNsLW5v LWV4ZWNpbmZvLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDEyMy1jaHJvbWl1bS1tdXNsLW5vLWdldGNvbnRleHQucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTI0LWNocm9taXVtLWVu YWJsZS1pNjg2LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDEyNS1jaHJvbWl1bS1yZW1vdmUtc3RyaXBfYmluYXJ5LnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyNi1jaHJvbWl1bS1u by1jZGVmcy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9w YXRjaGVzLzAxMjgtY2hyb21pdW0tc2FuZGJveC1tZW1iYXJyaWVyLnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyOS1jaHJvbWl1bS1zYW5k Ym94LXNoZWRfZ2V0cGFyYW0ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMTUwLWNocm9taXVtLXVuYnVuZGxlLWZmbXBlZy1hdl9zdHJlYW1f Z2V0X2ZpcnN0X2R0cy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVu Z2luZS9wYXRjaGVzLzAxNTEtY2hyb21pdW0tdW5idW5kbGVkLWNyb3NzLXRvb2xjaGFpbi5wYXRj aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxNTIt Y2hyb21pdW0td2VicnRjLXNpemVfdC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxNTMtY2hyb21pdW0td2VicnRjLXNpemVfdC5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxNTQtY2hy b21pdW0tdWl0X3QucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdp bmUvcGF0Y2hlcy8wMjAwLWNocm9taXVtLXNuZGlvLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDMwMC1jaHJvbWl1bS1tdXNsLWhhY2tzLnBh dGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDMw MS1jaHJvbWl1bS1tdXNsLXNhbmRib3gucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMzAyLWNocm9taXVtLW5vLW1hbGxpbmZvLnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDcwMC1hcm12 N2wtbmVvbi5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9w YXRjaGVzLzA3NTAtY2hyb21pdW0tbXVzbC1jcm9zcy1uby1hc21fcHRyYWNlX2gucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzUxLWNocm9t aXVtLW11c2wtYXJtLXVzZXJfdmZwLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDc1Mi1jaHJvbWl1bS1tdXNsLWFybS1lbGZfYXV4dl90LnBh dGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDkw MC1jcm9zcy1idWlsZC1leGFtcGxlcy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS90ZW1wbGF0ZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdl YmVuZ2luZS91cGRhdGUKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGli cwppbmRleCAyODJmMDU4M2QyYjEuLmFjNWVhM2I0NmIzZiAxMDA2NDQKLS0tIGEvY29tbW9uL3No bGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0yMDk0LDYgKzIwOTQsMTMgQEAgbGliUXQ2UG9z aXRpb25pbmcuc28uNiBxdDYtbG9jYXRpb24tNi4yLjBhbHBoYV8xCiBsaWJRdDZNdWx0aW1lZGlh V2lkZ2V0cy5zby42IHF0Ni1tdWx0aW1lZGlhLTYuMy4xXzEKIGxpYlF0Nk11bHRpbWVkaWFRdWlj ay5zby42IHF0Ni1tdWx0aW1lZGlhLTYuMy4xXzEKIGxpYlF0Nk11bHRpbWVkaWEuc28uNiBxdDYt bXVsdGltZWRpYS02LjMuMV8xCitsaWJRdDZXZWJFbmdpbmVRdWljay5zby42IHF0Ni13ZWJlbmdp bmUtNi4zLjFfMQorbGliUXQ2UGRmV2lkZ2V0cy5zby42IHF0Ni13ZWJlbmdpbmUtNi4zLjFfMQor bGliUXQ2UGRmUXVpY2suc28uNiBxdDYtd2ViZW5naW5lLTYuMy4xXzEKK2xpYlF0NldlYkVuZ2lu ZUNvcmUuc28uNiBxdDYtd2ViZW5naW5lLTYuMy4xXzEKK2xpYlF0NlBkZi5zby42IHF0Ni13ZWJl bmdpbmUtNi4zLjFfMQorbGliUXQ2V2ViRW5naW5lUXVpY2tEZWxlZ2F0ZXNRbWwuc28uNiBxdDYt d2ViZW5naW5lLTYuMy4xXzEKK2xpYlF0NldlYkVuZ2luZVdpZGdldHMuc28uNiBxdDYtd2ViZW5n aW5lLTYuMy4xXzEKIGxpYm5wdGguc28uMCBucHRoLTEuMV8xCiBsaWJucHVwbnAuc28uOSBsaWJu cHVwbnAtNS4wLjBfMQogbGliZ2xmdy5zby4zIGdsZnctMy4wLjRfMQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9xdDYtd2ViZW5naW5lLWRldmVsIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lLWRldmVsCm5l dyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uOGU0ZDFiOTljNTg3Ci0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lLWRldmVsCkBAIC0wLDAgKzEgQEAK K3F0Ni13ZWJlbmdpbmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUtZXhhbXBsZXMgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUtZXhh bXBsZXMKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi44ZTRkMWI5OWM1 ODcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUtZXhhbXBsZXMKQEAg LTAsMCArMSBAQAorcXQ2LXdlYmVuZ2luZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDEtTm9uZS1uby1kZWJ1 Zy5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDEtTm9uZS1uby1kZWJ1 Zy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmIyMjFmZGNk MzkyZgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAw MDEtTm9uZS1uby1kZWJ1Zy5wYXRjaApAQCAtMCwwICsxLDExIEBACistLS0gcXQ2LXdlYmVuZ2lu ZS02LjQuMi5vcmlnL2NtYWtlL0Z1bmN0aW9ucy5jbWFrZQorKysrIHF0Ni13ZWJlbmdpbmUtNi40 LjIvY21ha2UvRnVuY3Rpb25zLmNtYWtlCitAQCAtODIwLDYgKzgyMCw4IEBAIG1hY3JvKGFwcGVu ZF9idWlsZF90eXBlX3NldHVwKQorICAgICAgICAgZW5kaWYoKQorICAgICBlbHNlaWYoJHtjb25m aWd9IFNUUkVRVUFMICJNaW5TaXplUmVsIikKKyAgICAgICAgIGxpc3QoQVBQRU5EIGduQXJnQXJn IGlzX2RlYnVnPWZhbHNlIHN5bWJvbF9sZXZlbD0wIG9wdGltaXplX2Zvcl9zaXplPXRydWUpCisr ICAgIGVsc2VpZigke2NvbmZpZ30gU1RSRVFVQUwgIk5vbmUiKQorKyAgICAgICAgbGlzdChBUFBF TkQgZ25BcmdBcmcgaXNfZGVidWc9ZmFsc2Ugc3ltYm9sX2xldmVsPTApCisgICAgIGVuZGlmKCkK KyAgICAgaWYoRkVBVFVSRV9kZXZlbG9wZXJfYnVpbGQgT1IgKCR7Y29uZmlnfSBTVFJFUVVBTCAi RGVidWciKSBPUiBRVF9GRUFUVVJFX3dlYmVuZ2luZV9zYW5pdGl6ZXIpCisgICAgICAgICBsaXN0 KEFQUEVORCBnbkFyZ0FyZwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDAwMy1jcm9zcy1oYWNrLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDAwMy1jcm9zcy1oYWNrLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uYTNmMGE1NzkxNDA2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDAwMy1jcm9zcy1oYWNrLnBhdGNoCkBAIC0wLDAgKzEsMTAgQEAKKy0tLSBx dDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjL2NvcmUvYXBpL0NNYWtlTGlzdHMudHh0CisrKysg cXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvY29yZS9hcGkvQ01ha2VMaXN0cy50eHQKK0BAIC01MSw2 ICs1MSw3IEBAIHF0X2ludGVybmFsX2FkZF9tb2R1bGUoV2ViRW5naW5lQ29yZQorICAgICAgICAg UXQ6Okd1aQorICAgICAgICAgUXQ6Ok5ldHdvcmsKKyAgICAgICAgIFF0OjpRdWljaworKyAgICAg ICAgWDExCisgKQorIAorIHNldF90YXJnZXRfcHJvcGVydGllcyhXZWJFbmdpbmVDb3JlIFBST1BF UlRJRVMgUVRXRUJFTkdJTkVQUk9DRVNTX05BTUUgJHtxdFdlYkVuZ2luZVByb2Nlc3NOYW1lfSkK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwNTAtbm8tZ2xpYmMt Y21ha2UtY2hlY2sucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDUwLW5v LWdsaWJjLWNtYWtlLWNoZWNrLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uZDkxMTZkYzU4NTdlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2Vi ZW5naW5lL3BhdGNoZXMvMDA1MC1uby1nbGliYy1jbWFrZS1jaGVjay5wYXRjaApAQCAtMCwwICsx LDE0IEBACistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL2NvbmZpZ3VyZS5jbWFrZQorKysr IHF0Ni13ZWJlbmdpbmUtNi40LjIvY29uZmlndXJlLmNtYWtlCitAQCAtNDk5LDExICs0OTksNiBA QCBhZGRfY2hlY2tfZm9yX3N1cHBvcnQoCisgKQorIGFkZF9jaGVja19mb3Jfc3VwcG9ydCgKKyAg ICBNT0RVTEVTIFF0V2ViRW5naW5lIFF0UGRmCistICAgQ09ORElUSU9OIE5PVCBMSU5VWCBPUiBU RVNUX2dsaWJjCistICAgTUVTU0FHRSAiQSBzdWl0YWJsZSB2ZXJzaW9uID49IDIuMTcgb2YgZ2xp YmMgaXMgcmVxdWlyZWQuIgorLSkKKy1hZGRfY2hlY2tfZm9yX3N1cHBvcnQoCistICAgTU9EVUxF UyBRdFdlYkVuZ2luZSBRdFBkZgorICAgIENPTkRJVElPTiBOT1QgTElOVVggT1IgVEVTVF9raHIK KyAgICBNRVNTQUdFICJCdWlsZCByZXF1aXJlcyBLaHJvbm9zIGRldmVsb3BtZW50IGhlYWRlcnMg Zm9yIGJ1aWxkIC0gc2VlIG1lc2EvbGliZWdsMS1tZXNhLWRldiIKKyApCmRpZmYgLS1naXQgYS9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAwLWNocm9taXVtLXJldmVydC05ZDA4MGMw LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMC1jaHJvbWl1bS1yZXZl cnQtOWQwODBjMC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu LmFkY2EzNjRhNDA2MAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9w YXRjaGVzLzAxMDAtY2hyb21pdW0tcmV2ZXJ0LTlkMDgwYzAucGF0Y2gKQEAgLTAsMCArMSwxNTQg QEAKK1JldmVydCA5ZDA4MGMwOTM0Yjg0OGVlNGEwNTAxM2M3ODY0MWU2MTJmY2MxZTAzCisKKy0t LSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkL2Nv bmZpZy9zYW5pdGl6ZXJzL0JVSUxELmduCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vYnVpbGQvY29uZmlnL3Nhbml0aXplcnMvQlVJTEQuZ24KK0BAIC0yNzEs MTEgKzI3MSwxMSBAQCBjb25maWcoImFzYW5fZmxhZ3MiKSB7CisgICBpZiAoaXNfYXNhbikgewor ICAgICBjZmxhZ3MgKz0gWyAiLWZzYW5pdGl6ZT1hZGRyZXNzIiBdCisgICAgIGlmIChpc193aW4p IHsKKy0gICAgICBpZiAoIWRlZmluZWQoYXNhbl93aW5fYmxvY2tsaXN0X3BhdGgpKSB7CistICAg ICAgICBhc2FuX3dpbl9ibG9ja2xpc3RfcGF0aCA9CisrICAgICAgaWYgKCFkZWZpbmVkKGFzYW5f d2luX2JsYWNrbGlzdF9wYXRoKSkgeworKyAgICAgICAgYXNhbl93aW5fYmxhY2tsaXN0X3BhdGgg PQorICAgICAgICAgICAgIHJlYmFzZV9wYXRoKCIvL3Rvb2xzL21lbW9yeS9hc2FuL2Jsb2NrbGlz dF93aW4udHh0Iiwgcm9vdF9idWlsZF9kaXIpCisgICAgICAgfQorLSAgICAgIGNmbGFncyArPSBb ICItZnNhbml0aXplLWlnbm9yZWxpc3Q9JGFzYW5fd2luX2Jsb2NrbGlzdF9wYXRoIiBdCisrICAg ICAgY2ZsYWdzICs9IFsgIi1mc2FuaXRpemUtYmxhY2tsaXN0PSRhc2FuX3dpbl9ibGFja2xpc3Rf cGF0aCIgXQorICAgICB9CisgICB9CisgfQorQEAgLTMwNSwxMyArMzA1LDEzIEBAIGNvbmZpZygi bGlua19zaGFyZWRfbGlicmFyeSIpIHsKKyBjb25maWcoImNmaV9mbGFncyIpIHsKKyAgIGNmbGFn cyA9IFtdCisgICBpZiAoaXNfY2ZpICYmIGN1cnJlbnRfdG9vbGNoYWluID09IGRlZmF1bHRfdG9v bGNoYWluKSB7CistICAgIGlmICghZGVmaW5lZChjZmlfaWdub3JlbGlzdF9wYXRoKSkgeworLSAg ICAgIGNmaV9pZ25vcmVsaXN0X3BhdGggPQorKyAgICBpZiAoIWRlZmluZWQoY2ZpX2JsYWNrbGlz dF9wYXRoKSkgeworKyAgICAgIGNmaV9ibGFja2xpc3RfcGF0aCA9CisgICAgICAgICAgIHJlYmFz ZV9wYXRoKCIvL3Rvb2xzL2NmaS9pZ25vcmVzLnR4dCIsIHJvb3RfYnVpbGRfZGlyKQorICAgICB9 CisgICAgIGNmbGFncyArPSBbCisgICAgICAgIi1mc2FuaXRpemU9Y2ZpLXZjYWxsIiwKKy0gICAg ICAiLWZzYW5pdGl6ZS1pZ25vcmVsaXN0PSRjZmlfaWdub3JlbGlzdF9wYXRoIiwKKysgICAgICAi LWZzYW5pdGl6ZS1ibGFja2xpc3Q9JGNmaV9ibGFja2xpc3RfcGF0aCIsCisgICAgIF0KKyAKKyAg ICAgaWYgKHVzZV9jZmlfY2FzdCkgeworQEAgLTQwOCwxNCArNDA4LDE0IEBAIGNvbmZpZygibXNh bl9mbGFncyIpIHsKKyAgIGlmIChpc19tc2FuKSB7CisgICAgIGFzc2VydChpc19saW51eCB8fCBp c19jaHJvbWVvcywKKyAgICAgICAgICAgICJtc2FuIG9ubHkgc3VwcG9ydGVkIG9uIGxpbnV4IHg4 Nl82NC9DaHJvbWVPUyIpCistICAgIGlmICghZGVmaW5lZChtc2FuX2lnbm9yZWxpc3RfcGF0aCkp IHsKKy0gICAgICBtc2FuX2lnbm9yZWxpc3RfcGF0aCA9CistICAgICAgICAgIHJlYmFzZV9wYXRo KCIvL3Rvb2xzL21zYW4vaWdub3JlbGlzdC50eHQiLCByb290X2J1aWxkX2RpcikKKysgICAgaWYg KCFkZWZpbmVkKG1zYW5fYmxhY2tsaXN0X3BhdGgpKSB7CisrICAgICAgbXNhbl9ibGFja2xpc3Rf cGF0aCA9CisrICAgICAgICAgIHJlYmFzZV9wYXRoKCIvL3Rvb2xzL21zYW4vYmxhY2tsaXN0LnR4 dCIsIHJvb3RfYnVpbGRfZGlyKQorICAgICB9CisgICAgIGNmbGFncyA9IFsKKyAgICAgICAiLWZz YW5pdGl6ZT1tZW1vcnkiLAorICAgICAgICItZnNhbml0aXplLW1lbW9yeS10cmFjay1vcmlnaW5z PSRtc2FuX3RyYWNrX29yaWdpbnMiLAorLSAgICAgICItZnNhbml0aXplLWlnbm9yZWxpc3Q9JG1z YW5faWdub3JlbGlzdF9wYXRoIiwKKysgICAgICAiLWZzYW5pdGl6ZS1ibGFja2xpc3Q9JG1zYW5f YmxhY2tsaXN0X3BhdGgiLAorICAgICBdCisgICB9CisgfQorQEAgLTQyMywxMyArNDIzLDEzIEBA IGNvbmZpZygibXNhbl9mbGFncyIpIHsKKyBjb25maWcoInRzYW5fZmxhZ3MiKSB7CisgICBpZiAo aXNfdHNhbikgeworICAgICBhc3NlcnQoaXNfbGludXggfHwgaXNfY2hyb21lb3MsICJ0c2FuIG9u bHkgc3VwcG9ydGVkIG9uIGxpbnV4IHg4Nl82NCIpCistICAgIGlmICghZGVmaW5lZCh0c2FuX2ln bm9yZWxpc3RfcGF0aCkpIHsKKy0gICAgICB0c2FuX2lnbm9yZWxpc3RfcGF0aCA9CisrICAgIGlm ICghZGVmaW5lZCh0c2FuX2JsYWNrbGlzdF9wYXRoKSkgeworKyAgICAgIHRzYW5fYmxhY2tsaXN0 X3BhdGggPQorICAgICAgICAgICByZWJhc2VfcGF0aCgiLy90b29scy9tZW1vcnkvdHNhbl92Mi9p Z25vcmVzLnR4dCIsIHJvb3RfYnVpbGRfZGlyKQorICAgICB9CisgICAgIGNmbGFncyA9IFsKKyAg ICAgICAiLWZzYW5pdGl6ZT10aHJlYWQiLAorLSAgICAgICItZnNhbml0aXplLWlnbm9yZWxpc3Q9 JHRzYW5faWdub3JlbGlzdF9wYXRoIiwKKysgICAgICAiLWZzYW5pdGl6ZS1ibGFja2xpc3Q9JHRz YW5fYmxhY2tsaXN0X3BhdGgiLAorICAgICBdCisgICB9CisgfQorQEAgLTQzNyw4ICs0MzcsOCBA QCBjb25maWcoInRzYW5fZmxhZ3MiKSB7CisgY29uZmlnKCJ1YnNhbl9mbGFncyIpIHsKKyAgIGNm bGFncyA9IFtdCisgICBpZiAoaXNfdWJzYW4pIHsKKy0gICAgaWYgKCFkZWZpbmVkKHVic2FuX2ln bm9yZWxpc3RfcGF0aCkpIHsKKy0gICAgICB1YnNhbl9pZ25vcmVsaXN0X3BhdGggPQorKyAgICBp ZiAoIWRlZmluZWQodWJzYW5fYmxhY2tsaXN0X3BhdGgpKSB7CisrICAgICAgdWJzYW5fYmxhY2ts aXN0X3BhdGggPQorICAgICAgICAgICByZWJhc2VfcGF0aCgiLy90b29scy91YnNhbi9pZ25vcmVs aXN0LnR4dCIsIHJvb3RfYnVpbGRfZGlyKQorICAgICB9CisgICAgIGNmbGFncyArPSBbCitAQCAt NDU1LDcgKzQ1NSw3IEBAIGNvbmZpZygidWJzYW5fZmxhZ3MiKSB7CisgICAgICAgIi1mc2FuaXRp emU9c2lnbmVkLWludGVnZXItb3ZlcmZsb3ciLAorICAgICAgICItZnNhbml0aXplPXVucmVhY2hh YmxlIiwKKyAgICAgICAiLWZzYW5pdGl6ZT12bGEtYm91bmQiLAorLSAgICAgICItZnNhbml0aXpl LWlnbm9yZWxpc3Q9JHVic2FuX2lnbm9yZWxpc3RfcGF0aCIsCisrICAgICAgIi1mc2FuaXRpemUt YmxhY2tsaXN0PSR1YnNhbl9ibGFja2xpc3RfcGF0aCIsCisgICAgIF0KKyAgICAgaWYgKCFpc19j bGFuZykgeworICAgICAgICMgVGhlc2UgZXhwb3NlcyB0b28gbXVjaCBpbGxlZ2FsIEMrKzE0IGNv ZGUgdG8gY29tcGlsZSBvbiBhbnl0aGluZyBzdHJpY3RlciB0aGFuIGNsYW5nOgorQEAgLTQ5Niw4 ICs0OTYsOCBAQCBjb25maWcoInVic2FuX25vX3JlY292ZXIiKSB7CisgCisgY29uZmlnKCJ1YnNh bl9zZWN1cml0eV9mbGFncyIpIHsKKyAgIGlmIChpc191YnNhbl9zZWN1cml0eSkgeworLSAgICBp ZiAoIWRlZmluZWQodWJzYW5fc2VjdXJpdHlfaWdub3JlbGlzdF9wYXRoKSkgeworLSAgICAgIHVi c2FuX3NlY3VyaXR5X2lnbm9yZWxpc3RfcGF0aCA9CisrICAgIGlmICghZGVmaW5lZCh1YnNhbl9z ZWN1cml0eV9ibGFja2xpc3RfcGF0aCkpIHsKKysgICAgICB1YnNhbl9zZWN1cml0eV9ibGFja2xp c3RfcGF0aCA9CisgICAgICAgICAgIHJlYmFzZV9wYXRoKCIvL3Rvb2xzL3Vic2FuL3NlY3VyaXR5 X2lnbm9yZWxpc3QudHh0Iiwgcm9vdF9idWlsZF9kaXIpCisgICAgIH0KKyAgICAgY2ZsYWdzID0g WworQEAgLTUwNSw3ICs1MDUsNyBAQCBjb25maWcoInVic2FuX3NlY3VyaXR5X2ZsYWdzIikgewor ICAgICAgICItZnNhbml0aXplPXNoaWZ0IiwKKyAgICAgICAiLWZzYW5pdGl6ZT1zaWduZWQtaW50 ZWdlci1vdmVyZmxvdyIsCisgICAgICAgIi1mc2FuaXRpemU9dmxhLWJvdW5kIiwKKy0gICAgICAi LWZzYW5pdGl6ZS1pZ25vcmVsaXN0PSR1YnNhbl9zZWN1cml0eV9pZ25vcmVsaXN0X3BhdGgiLAor KyAgICAgICItZnNhbml0aXplLWJsYWNrbGlzdD0kdWJzYW5fc2VjdXJpdHlfYmxhY2tsaXN0X3Bh dGgiLAorICAgICBdCisgICB9CisgfQorQEAgLTUxOCwxMyArNTE4LDEzIEBAIGNvbmZpZygidWJz YW5fbnVsbF9mbGFncyIpIHsKKyAKKyBjb25maWcoInVic2FuX3ZwdHJfZmxhZ3MiKSB7CisgICBp ZiAoaXNfdWJzYW5fdnB0cikgeworLSAgICBpZiAoIWRlZmluZWQodWJzYW5fdnB0cl9pZ25vcmVs aXN0X3BhdGgpKSB7CistICAgICAgdWJzYW5fdnB0cl9pZ25vcmVsaXN0X3BhdGggPQorKyAgICBp ZiAoIWRlZmluZWQodWJzYW5fdnB0cl9ibGFja2xpc3RfcGF0aCkpIHsKKysgICAgICB1YnNhbl92 cHRyX2JsYWNrbGlzdF9wYXRoID0KKyAgICAgICAgICAgcmViYXNlX3BhdGgoIi8vdG9vbHMvdWJz YW4vdnB0cl9pZ25vcmVsaXN0LnR4dCIsIHJvb3RfYnVpbGRfZGlyKQorICAgICB9CisgICAgIGNm bGFncyA9IFsKKyAgICAgICAiLWZzYW5pdGl6ZT12cHRyIiwKKy0gICAgICAiLWZzYW5pdGl6ZS1p Z25vcmVsaXN0PSR1YnNhbl92cHRyX2lnbm9yZWxpc3RfcGF0aCIsCisrICAgICAgIi1mc2FuaXRp emUtYmxhY2tsaXN0PSR1YnNhbl92cHRyX2JsYWNrbGlzdF9wYXRoIiwKKyAgICAgXQorICAgICBp ZiAoIWlzX2NsYW5nKSB7CisgICAgICAgIyBDbGFuZyBzcGVjaWZpYyBmbGFnOgorLS0tIHF0Ni13 ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGRfb3ZlcnJpZGVz L2J1aWxkLmduaQorKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVt L2J1aWxkX292ZXJyaWRlcy9idWlsZC5nbmkKK0BAIC00MywxNSArNDMsMTUgQEAgZGVjbGFyZV9h cmdzKCkgeworICMgQWxsb3dzIGRpZmZlcmVudCBwcm9qZWN0cyB0byBzcGVjaWZ5IHRoZWlyIG93 biBzdXBwcmVzc2lvbi9pZ25vcmUgbGlzdHMgZm9yCisgIyBzYW5pdGl6ZXIgdG9vbHMuCisgIyBh c2FuX3N1cHByZXNzaW9uc19maWxlID0gInBhdGgvdG8vYXNhbl9zdXBwcmVzc2lvbnMuY2MiCist IyBhc2FuX3dpbl9pZ25vcmVsaXN0X3BhdGggPSAicGF0aC90by9hc2FuL2Jsb2NrbGlzdF93aW4u dHh0IgorKyMgYXNhbl93aW5fYmxhY2tsaXN0X3BhdGggPSAicGF0aC90by9hc2FuL2Jsb2NrbGlz dF93aW4udHh0IgorICMgbHNhbl9zdXBwcmVzc2lvbnNfZmlsZSA9ICJwYXRoL3RvL2xzYW5fc3Vw cHJlc3Npb25zLmNjIgorICMgdHNhbl9zdXBwcmVzc2lvbnNfZmlsZSA9ICJwYXRoL3RvL3RzYW5f c3VwcHJlc3Npb25zLmNjIgorLSMgdHNhbl9pZ25vcmVsaXN0X3BhdGggPSAicGF0aC90by90c2Fu L2lnbm9yZXMudHh0IgorLSMgbXNhbl9pZ25vcmVsaXN0X3BhdGggPSAicGF0aC90by9tc2FuL2ln bm9yZWxpc3QudHh0IgorLSMgdWJzYW5faWdub3JlbGlzdF9wYXRoID0gInBhdGgvdG8vdWJzYW4v aWdub3JlbGlzdC50eHQiCistIyB1YnNhbl92cHRyX2lnbm9yZWxpc3RfcGF0aCA9ICJwYXRoL3Rv L3Vic2FuL3ZwdHJfaWdub3JlbGlzdC50eHQiCistIyB1YnNhbl9zZWN1cml0eV9pZ25vcmVsaXN0 X3BhdGggPSAicGF0aC90by91YnNhbi9zZWN1cml0eV9pZ25vcmVsaXN0LnR4dCIKKy0jIGNmaV9p Z25vcmVsaXN0X3BhdGggPSAicGF0aC90by9jZmkvaWdub3Jlcy50eHQiCisrIyB0c2FuX2JsYWNr bGlzdF9wYXRoID0gInBhdGgvdG8vdHNhbi9pZ25vcmVzLnR4dCIKKysjIG1zYW5fYmxhY2tsaXN0 X3BhdGggPSAicGF0aC90by9tc2FuL2JsYWNrbGlzdC50eHQiCisrIyB1YnNhbl9ibGFja2xpc3Rf cGF0aCA9ICJwYXRoL3RvL3Vic2FuL2JsYWNrbGlzdC50eHQiCisrIyB1YnNhbl92cHRyX2JsYWNr bGlzdF9wYXRoID0gInBhdGgvdG8vdWJzYW4vdnB0cl9ibGFja2xpc3QudHh0IgorKyMgdWJzYW5f c2VjdXJpdHlfYmxhY2tsaXN0X3BhdGggPSAicGF0aC90by91YnNhbi9zZWN1cml0eV9ibGFja2xp c3QudHh0IgorKyMgY2ZpX2JsYWNrbGlzdF9wYXRoID0gInBhdGgvdG8vY2ZpL2lnbm9yZXMudHh0 IgorIAorIGlmIChob3N0X29zID09ICJtYWMiIHx8IGlzX2FwcGxlKSB7CisgICAjIE5lZWRlZCBm b3IgaXNfYXBwbGUgd2hlbiB0YXJnZXRpbmcgbWFjT1Mgb3IgaU9TLCBpbmRlcGVuZGVudCBvZiBo b3N0LgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMS1jaHJv bWl1bS0xMDItZmVuY2VkX2ZyYW1lX3V0aWxzLWluY2x1ZGUucGF0Y2ggYi9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMTAxLWNocm9taXVtLTEwMi1mZW5jZWRfZnJhbWVfdXRpbHMtaW5j bHVkZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmY0MWM3 OTg0ODQwZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzAxMDEtY2hyb21pdW0tMTAyLWZlbmNlZF9mcmFtZV91dGlscy1pbmNsdWRlLnBhdGNoCkBAIC0w LDAgKzEsMjAgQEAKK0Zyb20gN2MxMzVhMjkxMTg0YjU5YTU5NjQzZWQ2YThjNDBiNDQwNWFjMDE3 NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFN0ZXBoYW4gSGFydG1hbm4gPHN0aGEw OUBnb29nbGVtYWlsLmNvbT4KK0RhdGU6IFdlZCwgMjcgQXByIDIwMjIgMTY6MDE6MDEgKzAwMDAK K1N1YmplY3Q6IFtQQVRDSF0gSVdZVTogYWRkIGNzdHJpbmcgZm9yIHN0ZDo6c3RybGVuIGluIGZl bmNlZF9mcmFtZV91dGlscworCistLS0KKyB0aGlyZF9wYXJ0eS9ibGluay9jb21tb24vZmVuY2Vk X2ZyYW1lL2ZlbmNlZF9mcmFtZV91dGlscy5jYyB8IDIgKysKKyAxIGZpbGUgY2hhbmdlZCwgMiBp bnNlcnRpb25zKCspCisKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JsaW5rL2NvbW1vbi9mZW5jZWRfZnJhbWUvZmVuY2VkX2Zy YW1lX3V0aWxzLmNjCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvYmxpbmsvY29tbW9uL2ZlbmNlZF9mcmFtZS9mZW5jZWRfZnJhbWVfdXRp bHMuY2MKK0BAIC02LDYgKzYsOCBAQAorIAorICNpbmNsdWRlIDxjc3RyaW5nPgorIAorKyNpbmNs dWRlIDxjc3RyaW5nPgorKworICNpbmNsdWRlICJiYXNlL2d1aWQuaCIKKyAjaW5jbHVkZSAiYmFz ZS9zdHJpbmdzL3N0cmluZ191dGlsLmgiCisgCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMTAyLWNocm9taXVtLTEwMi1yZWdleF9wYXR0ZXJuLWFycmF5LnBhdGNo IGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMi1jaHJvbWl1bS0xMDItcmVnZXhf cGF0dGVybi1hcnJheS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLjQyMGVmOTQxYTM4NgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAxMDItY2hyb21pdW0tMTAyLXJlZ2V4X3BhdHRlcm4tYXJyYXkucGF0Y2gKQEAg LTAsMCArMSwxNCBAQAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkv Y2hyb21pdW0vY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvQlVJTEQuZ24KKysrKyBx dDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9jb21wb25lbnRzL2F1dG9m aWxsL2NvcmUvYnJvd3Nlci9CVUlMRC5nbgorQEAgLTM0LDYgKzM0LDExIEBAIGFjdGlvbigicmVn ZXhfcGF0dGVybnNfaW5sX2giKSB7CisgfQorIAorIGp1bWJvX3N0YXRpY19saWJyYXJ5KCJicm93 c2VyIikgeworKyAgaWYgKGlzX2NsYW5nKSB7CisrICAgIGNmbGFncyA9IFsKKysgICAgICAiLWZi cmFja2V0LWRlcHRoPTEwMDAiLAorKyAgICBdCisrICB9CisgICBzb3VyY2VzID0gWworICAgICAi YWRkcmVzc19ub3JtYWxpemF0aW9uX21hbmFnZXIuY2MiLAorICAgICAiYWRkcmVzc19ub3JtYWxp emF0aW9uX21hbmFnZXIuaCIsCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMTAzLWNocm9taXVtLWk2ODYtdmFhcGktZnBlcm1pc3NpdmUucGF0Y2ggYi9zcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAzLWNocm9taXVtLWk2ODYtdmFhcGktZnBlcm1pc3Np dmUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43MDhkNTY3 YTA0ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w MTAzLWNocm9taXVtLWk2ODYtdmFhcGktZnBlcm1pc3NpdmUucGF0Y2gKQEAgLTAsMCArMSwyMyBA QAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vbWVk aWEvZ3B1L3ZhYXBpL0JVSUxELmduCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vbWVkaWEvZ3B1L3ZhYXBpL0JVSUxELmduCitAQCAtMTQsNiArMTQsMTIgQEAg aW1wb3J0KCIvL3VpL2dsL2ZlYXR1cmVzLmduaSIpCisgYXNzZXJ0KGlzX2xpbnV4IHx8IGlzX2No cm9tZW9zKQorIGFzc2VydCh1c2VfdmFhcGkpCisgCisrY29uZmlnKCJ2YWFwaV9wZXJtaXNzaXZl IikgeworKyAgaWYgKHRhcmdldF9jcHUgPT0gIng4NiIpIHsKKysgICAgY2ZsYWdzID0gWyAiLWZw ZXJtaXNzaXZlIiBdCisrICB9CisrfQorKworIGdlbmVyYXRlX3N0dWJzKCJsaWJ2YV9zdHVicyIp IHsKKyAgIGV4dHJhX2hlYWRlciA9ICJ2YV9zdHViX2hlYWRlci5mcmFnbWVudCIKKyAgIHNpZ3Mg PSBbICJ2YS5zaWdzIiBdCitAQCAtODksNiArOTUsNyBAQCBzb3VyY2Vfc2V0KCJ2YWFwaSIpIHsK KyAgIGNvbmZpZ3MgKz0gWworICAgICAiLy9idWlsZC9jb25maWcvbGludXgvbGlidmEiLAorICAg ICAiLy90aGlyZF9wYXJ0eS9saWJ2cHg6bGlidnB4X2NvbmZpZyIsCisrICAgICI6dmFhcGlfcGVy bWlzc2l2ZSIsCisgICBdCisgCisgICBkZXBzID0gWwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDEwNC1jaHJvbWl1bS1saWJ4bWwtdW5idW5kbGUucGF0Y2ggYi9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA0LWNocm9taXVtLWxpYnhtbC11bmJ1bmRs ZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmJhY2E0ODRh YmM0YQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAx MDQtY2hyb21pdW0tbGlieG1sLXVuYnVuZGxlLnBhdGNoCkBAIC0wLDAgKzEsMTAgQEAKKy0tLSBx dDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkL2xpbnV4 L3VuYnVuZGxlL2xpYnhtbC5nbgorKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL2J1aWxkL2xpbnV4L3VuYnVuZGxlL2xpYnhtbC5nbgorQEAgLTE5LDYgKzE5LDcg QEAgc3RhdGljX2xpYnJhcnkoImxpYnhtbF91dGlscyIpIHsKKyAgICAgIjp4bWxfcmVhZGVyIiwK KyAgICAgIjp4bWxfd3JpdGVyIiwKKyAgICAgIi8vYmFzZS90ZXN0OnRlc3Rfc3VwcG9ydCIsCisr ICAgICIvL3NlcnZpY2VzL2RhdGFfZGVjb2RlcjpsaWIiLAorICAgICAiLy9zZXJ2aWNlcy9kYXRh X2RlY29kZXI6eG1sX3BhcnNlcl9mdXp6ZXJfZGVwcyIsCisgICBdCisgICBzb3VyY2VzID0gWwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwNS1jaHJvbWl1bS1y ZXZlcnQtZHJvcC1vZi1zeXN0ZW0tamF2YS5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9w YXRjaGVzLzAxMDUtY2hyb21pdW0tcmV2ZXJ0LWRyb3Atb2Ytc3lzdGVtLWphdmEucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kNmFiZjdhZGNhYmMKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA1LWNocm9taXVt LXJldmVydC1kcm9wLW9mLXN5c3RlbS1qYXZhLnBhdGNoCkBAIC0wLDAgKzEsMTUgQEAKK1RoaXMg d2FzIGRyb3BwZWQgZm9yIHNvbWUgcmVhc29uIGluIDY5NTFjMzdjZWNkMDU5NzliMjMyYTM5ZTVj MTBlNjM0NmEwZjc0ZWYKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Nsb3N1cmVfY29tcGlsZXIvY29tcGlsZXIucHkKKysrKyBx dDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jbG9z dXJlX2NvbXBpbGVyL2NvbXBpbGVyLnB5CitAQCAtMTMsOCArMTMsOSBAQCBpbXBvcnQgc3VicHJv Y2VzcworIAorIAorIF9DVVJSRU5UX0RJUiA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUo X19maWxlX18pKQorLV9KQVZBX1BBVEggPSBvcy5wYXRoLmpvaW4oX0NVUlJFTlRfRElSLCAiLi4i LCAiamRrIiwgImN1cnJlbnQiLCAiYmluIiwgImphdmEiKQorLWFzc2VydCBvcy5wYXRoLmlzZmls ZShfSkFWQV9QQVRIKSwgImphdmEgb25seSBhbGxvd2VkIGluIGFuZHJvaWQgYnVpbGRzIgorK19K QVZBX0JJTiA9ICJqYXZhIgorK19KREtfUEFUSCA9IG9zLnBhdGguam9pbihfQ1VSUkVOVF9ESVIs ICIuLiIsICJqZGsiLCAiY3VycmVudCIsICJiaW4iLCAiamF2YSIpCisrX0pBVkFfUEFUSCA9IF9K REtfUEFUSCBpZiBvcy5wYXRoLmlzZmlsZShfSkRLX1BBVEgpIGVsc2UgX0pBVkFfQklOCisgCisg Y2xhc3MgQ29tcGlsZXIob2JqZWN0KToKKyAgICIiIlJ1bnMgdGhlIENsb3N1cmUgY29tcGlsZXIg b24gZ2l2ZW4gc291cmNlIGZpbGVzIHRvIHR5cGVjaGVjayB0aGVtCmRpZmYgLS1naXQgYS9zcmNw a2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA2LWNocm9taXVtLXN5c3RlbS1ub2RlanMucGF0 Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA2LWNocm9taXVtLXN5c3RlbS1u b2RlanMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xNjQ4 Zjc2NGVhMTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wMTA2LWNocm9taXVtLXN5c3RlbS1ub2RlanMucGF0Y2gKQEAgLTAsMCArMSwyOSBAQAorLS0t IHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvbm9kZS9ub2RlLnB5CisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvbm9kZS9ub2RlLnB5CitAQCAtMTgsMjUgKzE4LDcgQEAgZGVmIHdo aWNoKGNtZCk6CisgICAgIHJldHVybiBOb25lCisgCisgZGVmIEdldEJpbmFyeVBhdGgoKToKKy0g IGlmIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInOgorLSAgICBub2RlanMgPSB3aGljaCgnbm9kZS5l eGUnKQorLSAgICBpZiBub2RlanM6CistICAgICAgcmV0dXJuIG5vZGVqcworLSAgZWxzZToKKy0g ICAgbm9kZWpzID0gd2hpY2goJ25vZGVqcycpCistICAgIGlmIG5vZGVqczoKKy0gICAgICByZXR1 cm4gbm9kZWpzCistICAgIG5vZGVqcyA9IHdoaWNoKCdub2RlJykKKy0gICAgaWYgbm9kZWpzOgor LSAgICAgIHJldHVybiBub2RlanMKKy0KKy0gIGRhcndpbl9uYW1lID0gKCdub2RlLWRhcndpbi1h cm02NCcgaWYgcGxhdGZvcm0ubWFjaGluZSgpID09ICdhcm02NCcgZWxzZQorLSAgICAgICAgICAg ICAgICAgJ25vZGUtZGFyd2luLXg2NCcpCistICByZXR1cm4gb3NfcGF0aC5qb2luKG9zX3BhdGgu ZGlybmFtZShfX2ZpbGVfXyksICp7CistICAgICdEYXJ3aW4nOiAoJ21hYycsIGRhcndpbl9uYW1l LCAnYmluJywgJ25vZGUnKSwKKy0gICAgJ0xpbnV4JzogKCdsaW51eCcsICdub2RlLWxpbnV4LXg2 NCcsICdiaW4nLCAnbm9kZScpLAorLSAgICAnV2luZG93cyc6ICgnd2luJywgJ25vZGUuZXhlJyks CistICB9W3BsYXRmb3JtLnN5c3RlbSgpXSkKKysgIHJldHVybiAiL3Vzci9iaW4vbm9kZSIKKyAK KyAKKyBkZWYgUnVuTm9kZShjbWRfcGFydHMsIHN0ZG91dD1Ob25lKToKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDctY2hyb21pdW0tY3Jvc3MtYnVpbGQucGF0 Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA3LWNocm9taXVtLWNyb3NzLWJ1 aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNDQ5NTRk ZmJiMWU1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDEwNy1jaHJvbWl1bS1jcm9zcy1idWlsZC5wYXRjaApAQCAtMCwwICsxLDY1IEBACistLS0gcXQ2 LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZC9jb25maWcv Y29tcGlsZXIvQlVJTEQuZ24KKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9idWlsZC9jb25maWcvY29tcGlsZXIvQlVJTEQuZ24KK0BAIC01OCw2ICs1OCwxMCBA QCBpZiAoIWlzX2NsYW5nKSB7CisgfQorIAorIGRlY2xhcmVfYXJncygpIHsKKysgIGlzX211c2wg PSBmYWxzZQorK30KKysKKytkZWNsYXJlX2FyZ3MoKSB7CisgICAjIE5vcm1hbGx5LCBBbmRyb2lk IGJ1aWxkcyBhcmUgbGlnaHRseSBvcHRpbWl6ZWQsIGV2ZW4gZm9yIGRlYnVnIGJ1aWxkcywgdG8K KyAgICMga2VlcCBiaW5hcnkgc2l6ZSBkb3duLiBTZXR0aW5nIHRoaXMgZmxhZyB0byB0cnVlIGRp c2FibGVzIHN1Y2ggb3B0aW1pemF0aW9uCisgICBhbmRyb2lkX2Z1bGxfZGVidWcgPSBmYWxzZQor QEAgLTk3MCw4ICs5NzQsMTMgQEAgY29uZmlnKCJjb21waWxlcl9jcHVfYWJpIikgeworICAgICAg IH0KKyAgICAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAiYXJtNjQiKSB7CisgICAgICAgaWYg KGlzX2NsYW5nICYmICFpc19hbmRyb2lkICYmICFpc19uYWNsICYmICFpc19mdWNoc2lhKSB7Cist ICAgICAgICBjZmxhZ3MgKz0gWyAiLS10YXJnZXQ9YWFyY2g2NC1saW51eC1nbnUiIF0KKy0gICAg ICAgIGxkZmxhZ3MgKz0gWyAiLS10YXJnZXQ9YWFyY2g2NC1saW51eC1nbnUiIF0KKysgICAgICAg IGlmIChpc19tdXNsKSB7CisrICAgICAgICAgIGNmbGFncyArPSBbICItLXRhcmdldD1hYXJjaDY0 LWxpbnV4LW11c2wiIF0KKysgICAgICAgICAgbGRmbGFncyArPSBbICItLXRhcmdldD1hYXJjaDY0 LWxpbnV4LW11c2wiIF0KKysgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgIGNmbGFncyArPSBb ICItLXRhcmdldD1hYXJjaDY0LWxpbnV4LWdudSIgXQorKyAgICAgICAgICBsZGZsYWdzICs9IFsg Ii0tdGFyZ2V0PWFhcmNoNjQtbGludXgtZ251IiBdCisrICAgICAgICB9CisgICAgICAgfQorICAg ICAgIGlmIChpc19hbmRyb2lkKSB7CisgICAgICAgICAjIE91dGxpbmUgYXRvbWljcyBjcmFzaCBv biBFeHlub3MgOTgxMC4gaHR0cDovL2NyYnVnLmNvbS8xMjcyNzk1CistLS0gcXQ2LXdlYmVuZ2lu ZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZC90b29sY2hhaW4vbGludXgv dW5idW5kbGUvQlVJTEQuZ24KKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9idWlsZC90b29sY2hhaW4vbGludXgvdW5idW5kbGUvQlVJTEQuZ24KK0BAIC0zOSwz ICszOSwyMiBAQCBnY2NfdG9vbGNoYWluKCJob3N0IikgeworICAgICBjdXJyZW50X29zID0gY3Vy cmVudF9vcworICAgfQorIH0KKysKKytnY2NfdG9vbGNoYWluKCJ2OF9zbmFwc2hvdF9jcm9zcyIp IHsKKysgIGNjID0gZ2V0ZW52KCJCVUlMRF9DQyIpCisrICBjeHggPSBnZXRlbnYoIkJVSUxEX0NY WCIpCisrICBhciA9IGdldGVudigiQlVJTERfQVIiKQorKyAgbm0gPSBnZXRlbnYoIkJVSUxEX05N IikKKysgIGxkID0gY3h4CisrCisrICBleHRyYV9jZmxhZ3MgPSBnZXRlbnYoIkJVSUxEX0NGTEFH UyIpCisrICBleHRyYV9jcHBmbGFncyA9IGdldGVudigiQlVJTERfQ1BQRkxBR1MiKQorKyAgZXh0 cmFfY3h4ZmxhZ3MgPSBnZXRlbnYoIkJVSUxEX0NYWEZMQUdTIikKKysgIGV4dHJhX2xkZmxhZ3Mg PSBnZXRlbnYoIkJVSUxEX0xERkxBR1MiKQorKworKyAgdG9vbGNoYWluX2FyZ3MgPSB7CisrICAg IGN1cnJlbnRfY3B1ID0gaG9zdF9jcHUKKysgICAgY3VycmVudF9vcyA9IGhvc3Rfb3MKKysgICAg djhfY3VycmVudF9jcHUgPSB0YXJnZXRfY3B1CisrICB9CisrfQorLS0tIHF0Ni13ZWJlbmdpbmUt Ni40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGQvY29uZmlnL2xpbnV4L3BrZ19j b25maWcuZ25pCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0v YnVpbGQvY29uZmlnL2xpbnV4L3BrZ19jb25maWcuZ25pCitAQCAtOTIsNyArOTIsNyBAQCB0ZW1w bGF0ZSgicGtnX2NvbmZpZyIpIHsKKyAgIGFzc2VydChkZWZpbmVkKGludm9rZXIucGFja2FnZXMp LAorICAgICAgICAgICJWYXJpYWJsZSB8cGFja2FnZXN8IG11c3QgYmUgZGVmaW5lZCB0byBiZSBh IGxpc3QgaW4gcGtnX2NvbmZpZy4iKQorICAgY29uZmlnKHRhcmdldF9uYW1lKSB7CistICAgIGlm IChob3N0X3Rvb2xjaGFpbiA9PSBjdXJyZW50X3Rvb2xjaGFpbikgeworKyAgICBpZiAoY3VycmVu dF9jcHUgIT0gdGFyZ2V0X2NwdSkgeworICAgICAgIGFyZ3MgPSBjb21tb25fcGtnX2NvbmZpZ19h cmdzICsgaG9zdF9wa2dfY29uZmlnX2FyZ3MgKyBpbnZva2VyLnBhY2thZ2VzCisgICAgIH0gZWxz ZSB7CisgICAgICAgYXJncyA9IGNvbW1vbl9wa2dfY29uZmlnX2FyZ3MgKyBwa2dfY29uZmlnX2Fy Z3MgKyBpbnZva2VyLnBhY2thZ2VzCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUv cGF0Y2hlcy8wMTA4LWNocm9taXVtLWN1cnNlZF5Vc2NvcGVkX2ZpbGUucGF0Y2ggYi9zcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA4LWNocm9taXVtLWN1cnNlZF5Vc2NvcGVkX2ZpbGUu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kZDMxZGE5Nzkw YWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA4 LWNocm9taXVtLWN1cnNlZF5Vc2NvcGVkX2ZpbGUucGF0Y2gKQEAgLTAsMCArMSwxOCBAQAorLS0t IHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9maWxl cy9zY29wZWRfZmlsZV9saW51eC5jYworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBh cnR5L2Nocm9taXVtL2Jhc2UvZmlsZXMvc2NvcGVkX2ZpbGVfbGludXguY2MKK0BAIC03NywxNSAr NzcsMyBAQCBib29sIElzRkRPd25lZChpbnQgZmQpIHsKKyB9CisgCisgfSAgLy8gbmFtZXNwYWNl IGJhc2UKKy0KKy1leHRlcm4gIkMiIHsKKy0KKy1pbnQgX19jbG9zZShpbnQpOworLQorLV9fYXR0 cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSwgbm9pbmxpbmUpKSBpbnQgY2xvc2UoaW50 IGZkKSB7CistICBpZiAoYmFzZTo6SXNGRE93bmVkKGZkKSAmJiBnX2lzX293bmVyc2hpcF9lbmZv cmNlZCkKKy0gICAgQ3Jhc2hPbkZkT3duZXJzaGlwVmlvbGF0aW9uKCk7CistICByZXR1cm4gX19j bG9zZShmZCk7CistfQorLQorLX0gIC8vIGV4dGVybiAiQyIKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDktY2hyb21pdW0tYWFyY2g2NC1tdXNsLW1lbW9yeS10 YWdnaW5nLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwOS1jaHJvbWl1 bS1hYXJjaDY0LW11c2wtbWVtb3J5LXRhZ2dpbmcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi4wZmYyYTJhNTFhYWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA5LWNocm9taXVtLWFhcmNoNjQtbXVzbC1tZW1v cnktdGFnZ2luZy5wYXRjaApAQCAtMCwwICsxLDI5IEBACistLS0gcXQ2LXdlYmVuZ2luZS02LjQu Mi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2FsbG9jYXRvci9wYXJ0aXRpb25fYWxs b2NhdG9yL3RhZ2dpbmcuY2MKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9iYXNlL2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NhdG9yL3RhZ2dpbmcuY2MKK0BA IC0yOCwxMyArMjgsMjUgQEAKKyAjZW5kaWYKKyAjZW5kaWYKKyAKKy0jaWZuZGVmIEhBU19QUl9N VEVfTUFDUk9TCisrI2lmbmRlZiBQUl9NVEVfVENGX1NISUZUCisgI2RlZmluZSBQUl9NVEVfVENG X1NISUZUIDEKKysjZW5kaWYKKysjaWZuZGVmIFBSX01URV9UQ0ZfTk9ORQorICNkZWZpbmUgUFJf TVRFX1RDRl9OT05FICgwVUwgPDwgUFJfTVRFX1RDRl9TSElGVCkKKysjZW5kaWYKKysjaWZuZGVm IFBSX01URV9UQ0ZfU1lOQworICNkZWZpbmUgUFJfTVRFX1RDRl9TWU5DICgxVUwgPDwgUFJfTVRF X1RDRl9TSElGVCkKKysjZW5kaWYKKysjaWZuZGVmIFBSX01URV9UQ0ZfQVNZTkMKKyAjZGVmaW5l IFBSX01URV9UQ0ZfQVNZTkMgKDJVTCA8PCBQUl9NVEVfVENGX1NISUZUKQorKyNlbmRpZgorKyNp Zm5kZWYgUFJfTVRFX1RDRl9NQVNLCisgI2RlZmluZSBQUl9NVEVfVENGX01BU0sgKDNVTCA8PCBQ Ul9NVEVfVENGX1NISUZUKQorKyNlbmRpZgorKyNpZm5kZWYgUFJfTVRFX1RBR19TSElGVAorICNk ZWZpbmUgUFJfTVRFX1RBR19TSElGVCAzCisrI2VuZGlmCisrI2lmbmRlZiBQUl9NVEVfVEFHX01B U0sKKyAjZGVmaW5lIFBSX01URV9UQUdfTUFTSyAoMHhmZmZmVUwgPDwgUFJfTVRFX1RBR19TSElG VCkKKyAjZW5kaWYKKyAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9w YXRjaGVzLzAxMTAtY2hyb21pdW0tZml4LW1pc3NpbmctVEVNUF9GQUlMVVJFX1JFVFJZLW1hY3Jv LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExMC1jaHJvbWl1bS1maXgt bWlzc2luZy1URU1QX0ZBSUxVUkVfUkVUUlktbWFjcm8ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41NTU4YzU0Y2Y4MDIKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTEwLWNocm9taXVtLWZpeC1taXNzaW5nLVRF TVBfRkFJTFVSRV9SRVRSWS1tYWNyby5wYXRjaApAQCAtMCwwICsxLDIxIEBACitUaGlzIG1hY3Jv IGlzIGRlZmluZWQgaW4gZ2xpYmMsIGJ1dCBub3QgbXVzbC4KKworLS0tIHF0Ni13ZWJlbmdpbmUt Ni40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zdWlkL3Byb2Nl c3NfdXRpbC5oCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0v c2FuZGJveC9saW51eC9zdWlkL3Byb2Nlc3NfdXRpbC5oCitAQCAtMTIsNiArMTIsMTYgQEAKKyAj aW5jbHVkZSA8c3RkaW50Lmg+CisgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorIAorKy8vIFNvbWUg YWRkaXRpb25hbCBmdW5jdGlvbnMKKysjaWYgIWRlZmluZWQoVEVNUF9GQUlMVVJFX1JFVFJZKQor KyMgZGVmaW5lIFRFTVBfRkFJTFVSRV9SRVRSWShleHByZXNzaW9uKSBcCisrCShfX2V4dGVuc2lv bl9fCQkJXAorKwkgKHsgbG9uZyBpbnQgX19yZXN1bHQ7CQlcCisrCSAgZG8gX19yZXN1bHQgPSAo bG9uZyBpbnQpIChleHByZXNzaW9uKTsgXAorKwkgIHdoaWxlIChfX3Jlc3VsdCA9PSAtMUwgJiYg ZXJybm8gPT0gRUlOVFIpOyBcCisrCSAgX19yZXN1bHQ7IH0pKQorKyNlbmRpZgorKworIC8vIFRo aXMgYWRqdXN0cyAvcHJvYy9wcm9jZXNzL29vbV9zY29yZV9hZGogc28gdGhlIExpbnV4IE9PTSBr aWxsZXIKKyAvLyB3aWxsIHByZWZlciBjZXJ0YWluIHByb2Nlc3MgdHlwZXMgb3ZlciBvdGhlcnMu IFRoZSByYW5nZSBmb3IgdGhlCisgLy8gYWRqdXN0bWVudCBpcyBbLTEwMDAsIDEwMDBdLCB3aXRo IFswLCAxMDAwXSBiZWluZyB1c2VyIGFjY2Vzc2libGUuCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTExLWNocm9taXVtLWNzdGRpbnQucGF0Y2ggYi9zcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTExLWNocm9taXVtLWNzdGRpbnQucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5mNTc4NzYyMWI1NzkKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTExLWNocm9taXVtLWNz dGRpbnQucGF0Y2gKQEAgLTAsMCArMSwxMCBAQAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3Jp Zy9zcmMvM3JkcGFydHkvY2hyb21pdW0vbmV0L3RoaXJkX3BhcnR5L3F1aWNoZS9zcmMvcXVpY2hl L2h0dHAyL2FkYXB0ZXIvd2luZG93X21hbmFnZXIuaAorKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC90aGlyZF9wYXJ0eS9xdWljaGUvc3JjL3F1aWNoZS9o dHRwMi9hZGFwdGVyL3dpbmRvd19tYW5hZ2VyLmgKK0BAIC0zLDYgKzMsNyBAQAorIAorICNpbmNs dWRlIDxzdGRkZWYuaD4KKyAKKysjaW5jbHVkZSA8Y3N0ZGludD4KKyAjaW5jbHVkZSA8ZnVuY3Rp b25hbD4KKyAKKyAjaW5jbHVkZSAicXVpY2hlL2NvbW1vbi9wbGF0Zm9ybS9hcGkvcXVpY2hlX2V4 cG9ydC5oIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExMi1j aHJvbWl1bS11bmlzdGQuaC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAx MTItY2hyb21pdW0tdW5pc3RkLmgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi5iYjI0MmE4MDhhY2UKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMTEyLWNocm9taXVtLXVuaXN0ZC5oLnBhdGNoCkBAIC0wLDAgKzEs MTAgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlcnZpY2Vz L2NyZWRlbnRpYWxzLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4 L3NlcnZpY2VzL2NyZWRlbnRpYWxzLmgKK0BAIC0xMyw2ICsxMyw3IEBACisgCisgI2luY2x1ZGUg PHN0cmluZz4KKyAjaW5jbHVkZSA8dmVjdG9yPgorKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyAKKyAj aW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9jYXBhYmlsaXR5LmgiCisgI2lu Y2x1ZGUgInNhbmRib3gvc2FuZGJveF9leHBvcnQuaCIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTMtY2hyb21pdW0tcHRocmVhZC1zdGFja3NpemUucGF0Y2gg Yi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTEzLWNocm9taXVtLXB0aHJlYWQtc3Rh Y2tzaXplLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMzg0 ZmQwYWYxODZkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDExMy1jaHJvbWl1bS1wdGhyZWFkLXN0YWNrc2l6ZS5wYXRjaApAQCAtMCwwICsxLDE2IEBA CistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNl L3RocmVhZGluZy9wbGF0Zm9ybV90aHJlYWRfbGludXguY2MKKysrKyBxdDYtd2ViZW5naW5lLTYu NC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL3RocmVhZGluZy9wbGF0Zm9ybV90aHJlYWRf bGludXguY2MKK0BAIC00MzcsOCArNDM3LDEzIEBAIHZvaWQgVGVybWluYXRlT25UaHJlYWQoKSB7 fQorIAorIHNpemVfdCBHZXREZWZhdWx0VGhyZWFkU3RhY2tTaXplKGNvbnN0IHB0aHJlYWRfYXR0 cl90JiBhdHRyaWJ1dGVzKSB7CisgI2lmICFkZWZpbmVkKFRIUkVBRF9TQU5JVElaRVIpCisrI2lm IGRlZmluZWQoX19HTElCQ19fKQorICAgcmV0dXJuIDA7CisgI2Vsc2UKKysgIC8vIG11c2wgbGli Y3MgZGVmYXVsdCBpcyB0b28gc21hbGwsIHVzZSA4bWIgbGlrZSBnbGliYworKyAgcmV0dXJuICgx IDw8IDIzKTsKKysjZW5kaWYKKysjZWxzZQorICAgLy8gVGhyZWFkU2FuaXRpemVyIGJsb2F0cyB0 aGUgc3RhY2sgaGVhdmlseS4gRXZpZGVuY2UgaGFzIGJlZW4gdGhhdCB0aGUKKyAgIC8vIGRlZmF1 bHQgc3RhY2sgc2l6ZSBpc24ndCBlbm91Z2ggZm9yIHNvbWUgYnJvd3NlciB0ZXN0cy4KKyAgIHJl dHVybiAyICogKDEgPDwgMjMpOyAgLy8gMiB0aW1lcyA4MTkySyAodGhlIGRlZmF1bHQgc3RhY2sg c2l6ZSBvbiBMaW51eCkuCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wMTE0LWRvLW5vdC1uYXJyb3ctaW50LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDExNC1kby1ub3QtbmFycm93LWludC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLjJjZDZhMDczODJhYwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTQtZG8tbm90LW5hcnJvdy1pbnQucGF0Y2gKQEAg LTAsMCArMSw1MyBAQAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkv Y2hyb21pdW0vYmFzZS9maWxlcy9maWxlX3V0aWxfbGludXguY2MKKysrKyBxdDYtd2ViZW5naW5l LTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2ZpbGVzL2ZpbGVfdXRpbF9saW51eC5j YworQEAgLTIzLDE0ICsyMywxNCBAQCBib29sIEdldEZpbGVTeXN0ZW1UeXBlKGNvbnN0IEZpbGVQ YXRoJiBwCisgCisgICAvLyBOb3QgYWxsIHBvc3NpYmxlIHxzdGF0ZnNfYnVmLmZfdHlwZXwgdmFs dWVzIGFyZSBpbiBsaW51eC9tYWdpYy5oLgorICAgLy8gTWlzc2luZyB2YWx1ZXMgYXJlIGNvcGll ZCBmcm9tIHRoZSBzdGF0ZnMgbWFuIHBhZ2UuCistICBzd2l0Y2ggKHN0YXRmc19idWYuZl90eXBl KSB7CisrICBzd2l0Y2ggKHN0YXRpY19jYXN0PHVpbnRtYXhfdD4oc3RhdGZzX2J1Zi5mX3R5cGUp KSB7CisgICAgIGNhc2UgMDoKKyAgICAgICAqdHlwZSA9IEZJTEVfU1lTVEVNXzA7CisgICAgICAg YnJlYWs7CisgICAgIGNhc2UgRVhUMl9TVVBFUl9NQUdJQzogIC8vIEFsc28gZXh0MyBhbmQgZXh0 NAorICAgICBjYXNlIE1TRE9TX1NVUEVSX01BR0lDOgorICAgICBjYXNlIFJFSVNFUkZTX1NVUEVS X01BR0lDOgorLSAgICBjYXNlIHN0YXRpY19jYXN0PGludD4oQlRSRlNfU1VQRVJfTUFHSUMpOgor KyAgICBjYXNlIEJUUkZTX1NVUEVSX01BR0lDOgorICAgICBjYXNlIDB4NTM0NjU0NEU6ICAvLyBO VEZTCisgICAgIGNhc2UgMHg1ODQ2NTM0MjogIC8vIFhGUworICAgICBjYXNlIDB4MzE1MzQ2NEE6 ICAvLyBKRlMKK0BAIC00MCwxNCArNDAsMTQgQEAgYm9vbCBHZXRGaWxlU3lzdGVtVHlwZShjb25z dCBGaWxlUGF0aCYgcAorICAgICAgICp0eXBlID0gRklMRV9TWVNURU1fTkZTOworICAgICAgIGJy ZWFrOworICAgICBjYXNlIFNNQl9TVVBFUl9NQUdJQzoKKy0gICAgY2FzZSBzdGF0aWNfY2FzdDxp bnQ+KDB4RkY1MzRENDIpOiAgLy8gQ0lGUworKyAgICBjYXNlIDB4RkY1MzRENDI6ICAvLyBDSUZT CisgICAgICAgKnR5cGUgPSBGSUxFX1NZU1RFTV9TTUI7CisgICAgICAgYnJlYWs7CisgICAgIGNh c2UgQ09EQV9TVVBFUl9NQUdJQzoKKyAgICAgICAqdHlwZSA9IEZJTEVfU1lTVEVNX0NPREE7Cisg ICAgICAgYnJlYWs7CistICAgIGNhc2Ugc3RhdGljX2Nhc3Q8aW50PihIVUdFVExCRlNfTUFHSUMp OgorLSAgICBjYXNlIHN0YXRpY19jYXN0PGludD4oUkFNRlNfTUFHSUMpOgorKyAgICBjYXNlIEhV R0VUTEJGU19NQUdJQzoKKysgICAgY2FzZSBSQU1GU19NQUdJQzoKKyAgICAgY2FzZSBUTVBGU19N QUdJQzoKKyAgICAgICAqdHlwZSA9IEZJTEVfU1lTVEVNX01FTU9SWTsKKyAgICAgICBicmVhazsK Ky0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2Uv c3lzdGVtL3N5c19pbmZvX3Bvc2l4LmNjCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vYmFzZS9zeXN0ZW0vc3lzX2luZm9fcG9zaXguY2MKK0BAIC0xMDAsMTAg KzEwMCwxMCBAQCBib29sIElzU3RhdHNaZXJvSWZVbmxpbWl0ZWQoY29uc3QgYmFzZTo6CisgICBp ZiAoSEFORExFX0VJTlRSKHN0YXRmcyhwYXRoLnZhbHVlKCkuY19zdHIoKSwgJnN0YXRzKSkgIT0g MCkKKyAgICAgcmV0dXJuIGZhbHNlOworIAorLSAgc3dpdGNoIChzdGF0cy5mX3R5cGUpIHsKKysg IHN3aXRjaCAoc3RhdGljX2Nhc3Q8dWludG1heF90PihzdGF0cy5mX3R5cGUpKSB7CisgICAgIGNh c2UgVE1QRlNfTUFHSUM6CistICAgIGNhc2Ugc3RhdGljX2Nhc3Q8aW50PihIVUdFVExCRlNfTUFH SUMpOgorLSAgICBjYXNlIHN0YXRpY19jYXN0PGludD4oUkFNRlNfTUFHSUMpOgorKyAgICBjYXNl IEhVR0VUTEJGU19NQUdJQzoKKysgICAgY2FzZSBSQU1GU19NQUdJQzoKKyAgICAgICByZXR1cm4g dHJ1ZTsKKyAgIH0KKyAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAxMTUtY2hyb21pdW0tbm8tY2Fub25pY2FsaXplLWZpbGUtbmFtZS5w YXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTUtY2hyb21pdW0tbm8tY2Fu b25pY2FsaXplLWZpbGUtbmFtZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAuLjU1Njc4NGIwMTNkZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAxMTUtY2hyb21pdW0tbm8tY2Fub25pY2FsaXplLWZpbGUtbmFtZS5w YXRjaApAQCAtMCwwICsxLDEyIEBACistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9uYXNtL2NvbmZpZy9jb25maWctbGludXguaAor KysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L25hc20vY29uZmlnL2NvbmZpZy1saW51eC5oCitAQCAtMTM5LDcgKzEzOSw5IEBACisgI2RlZmlu ZSBIQVZFX0FDQ0VTUyAxCisgCisgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBjYW5v bmljYWxpemVfZmlsZV9uYW1lJyBmdW5jdGlvbi4gKi8KKysjaWZkZWYgX19HTElCQ19fCisgI2Rl ZmluZSBIQVZFX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQorKyNlbmRpZgorIAorIC8qIERlZmlu ZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgY3B1X3RvX2xlMTYnIGludHJpbnNpYyBmdW5jdGlvbi4g Ki8KKyAvKiAjdW5kZWYgSEFWRV9DUFVfVE9fTEUxNiAqLwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDExNi1jaHJvbWl1bS1tdXNsLWdldC10aHJlYWQtbmFtZS5w YXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTYtY2hyb21pdW0tbXVzbC1n ZXQtdGhyZWFkLW5hbWUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwLi5kNDg1Mzg1Y2JiNjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdp bmUvcGF0Y2hlcy8wMTE2LWNocm9taXVtLW11c2wtZ2V0LXRocmVhZC1uYW1lLnBhdGNoCkBAIC0w LDAgKzEsMjIgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L3BlcmZldHRvL2luY2x1ZGUvcGVyZmV0dG8vZXh0L2Jhc2UvdGhy ZWFkX3V0aWxzLmgKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS90aGlyZF9wYXJ0eS9wZXJmZXR0by9pbmNsdWRlL3BlcmZldHRvL2V4dC9iYXNlL3RocmVhZF91 dGlscy5oCitAQCAtMzAsNyArMzAsOCBAQAorICNpbmNsdWRlIDxhbGdvcml0aG0+CisgI2VuZGlm CisgCistI2lmIFBFUkZFVFRPX0JVSUxERkxBRyhQRVJGRVRUT19PU19BTkRST0lEKQorKyNpZiBQ RVJGRVRUT19CVUlMREZMQUcoUEVSRkVUVE9fT1NfQU5EUk9JRCkgfHwgXAorKyAgICAoUEVSRkVU VE9fQlVJTERGTEFHKFBFUkZFVFRPX09TX0xJTlVYKSAmJiAhZGVmaW5lZChfX0dMSUJDX18pKQor ICNpbmNsdWRlIDxzeXMvcHJjdGwuaD4KKyAjZW5kaWYKKyAKK0BAIC01OCw3ICs1OSw4IEBAIGlu bGluZSBib29sIE1heWJlU2V0VGhyZWFkTmFtZShjb25zdCBzdGQKKyAKKyBpbmxpbmUgYm9vbCBH ZXRUaHJlYWROYW1lKHN0ZDo6c3RyaW5nJiBvdXRfcmVzdWx0KSB7CisgICBjaGFyIGJ1ZlsxNl0g PSB7fTsKKy0jaWYgUEVSRkVUVE9fQlVJTERGTEFHKFBFUkZFVFRPX09TX0FORFJPSUQpCisrI2lm IFBFUkZFVFRPX0JVSUxERkxBRyhQRVJGRVRUT19PU19BTkRST0lEKSB8fCBcCisrICAgIChQRVJG RVRUT19CVUlMREZMQUcoUEVSRkVUVE9fT1NfTElOVVgpICYmICFkZWZpbmVkKF9fR0xJQkNfXykp CisgICBpZiAocHJjdGwoUFJfR0VUX05BTUUsIGJ1ZikgIT0gMCkKKyAgICAgcmV0dXJuIGZhbHNl OworICNlbHNlCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTE3 LWNocm9taXVtLW11c2wtcmVzb2x2ZXIucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMTE3LWNocm9taXVtLW11c2wtcmVzb2x2ZXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xNzY1MjRhZGMwODMKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTE3LWNocm9taXVtLW11c2wtcmVzb2x2ZXIu cGF0Y2gKQEAgLTAsMCArMSw2NCBAQAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMv M3JkcGFydHkvY2hyb21pdW0vbmV0L2Rucy9wdWJsaWMvc2NvcGVkX3Jlc19zdGF0ZS5jYworKysr IHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9kbnMvcHVibGlj L3Njb3BlZF9yZXNfc3RhdGUuY2MKK0BAIC0xMyw3ICsxMyw3IEBACisgbmFtZXNwYWNlIG5ldCB7 CisgCisgU2NvcGVkUmVzU3RhdGU6OlNjb3BlZFJlc1N0YXRlKCkgeworLSNpZiBCVUlMREZMQUco SVNfT1BFTkJTRCkgfHwgQlVJTERGTEFHKElTX0ZVQ0hTSUEpCisrI2lmIEJVSUxERkxBRyhJU19P UEVOQlNEKSB8fCBCVUlMREZMQUcoSVNfRlVDSFNJQSkgfHwgKEJVSUxERkxBRyhJU19MSU5VWCkg JiYgIWRlZmluZWQoX19HTElCQ19fKSkKKyAgIC8vIE5vdGU6IHJlc19uaW5pdCBpbiBnbGliYyBh bHdheXMgcmV0dXJucyAwIGFuZCBzZXRzIFJFU19JTklULgorICAgLy8gcmVzX2luaXQgYmVoYXZl cyB0aGUgc2FtZSB3YXkuCisgICBtZW1zZXQoJl9yZXMsIDAsIHNpemVvZihfcmVzKSk7CitAQCAt MjUsNyArMjUsNyBAQCBTY29wZWRSZXNTdGF0ZTo6U2NvcGVkUmVzU3RhdGUoKSB7CisgfQorIAor IFNjb3BlZFJlc1N0YXRlOjp+U2NvcGVkUmVzU3RhdGUoKSB7CistI2lmICFCVUlMREZMQUcoSVNf T1BFTkJTRCkgJiYgIUJVSUxERkxBRyhJU19GVUNIU0lBKQorKyNpZiAhQlVJTERGTEFHKElTX09Q RU5CU0QpICYmICFCVUlMREZMQUcoSVNfRlVDSFNJQSkgJiYgIShCVUlMREZMQUcoSVNfTElOVVgp ICYmICFkZWZpbmVkKF9fR0xJQkNfXykpCisgCisgICAvLyBQcmVmZXIgcmVzX25kZXN0cm95IHdo ZXJlIGF2YWlsYWJsZS4KKyAjaWYgQlVJTERGTEFHKElTX0FQUExFKSB8fCBCVUlMREZMQUcoSVNf RlJFRUJTRCkKK0BAIC0zNCw3ICszNCw3IEBAIFNjb3BlZFJlc1N0YXRlOjp+U2NvcGVkUmVzU3Rh dGUoKSB7CisgICByZXNfbmNsb3NlKCZyZXNfKTsKKyAjZW5kaWYgIC8vIEJVSUxERkxBRyhJU19B UFBMRSkgfHwgQlVJTERGTEFHKElTX0ZSRUVCU0QpCisgCistI2VuZGlmICAvLyAhQlVJTERGTEFH KElTX09QRU5CU0QpICYmICFCVUlMREZMQUcoSVNfRlVDSFNJQSkKKysjZW5kaWYgIC8vICFCVUlM REZMQUcoSVNfT1BFTkJTRCkgJiYgIUJVSUxERkxBRyhJU19GVUNIU0lBKSAmJiAhKEJVSUxERkxB RyhJU19MSU5VWCkgJiYgIWRlZmluZWQoX19HTElCQ19fKSkKKyB9CisgCisgYm9vbCBTY29wZWRS ZXNTdGF0ZTo6SXNWYWxpZCgpIGNvbnN0IHsKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcv c3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9kbnMvaG9zdF9yZXNvbHZlcl9tYW5hZ2VyLmNjCisr KysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vbmV0L2Rucy9ob3N0 X3Jlc29sdmVyX21hbmFnZXIuY2MKK0BAIC0zMTU4LDcgKzMxNTgsNyBAQCBIb3N0UmVzb2x2ZXJN YW5hZ2VyOjpIb3N0UmVzb2x2ZXJNYW5hZ2VyCisgICBpZiAoc3lzdGVtX2Ruc19jb25maWdfbm90 aWZpZXJfKQorICAgICBzeXN0ZW1fZG5zX2NvbmZpZ19ub3RpZmllcl8tPkFkZE9ic2VydmVyKHRo aXMpOworICNpZiBCVUlMREZMQUcoSVNfUE9TSVgpICYmICFCVUlMREZMQUcoSVNfQVBQTEUpICYm ICFCVUlMREZMQUcoSVNfT1BFTkJTRCkgJiYgXAorLSAgICAhQlVJTERGTEFHKElTX0FORFJPSUQp CisrICAgICFCVUlMREZMQUcoSVNfQU5EUk9JRCkgJiYgIShCVUlMREZMQUcoSVNfTElOVVgpICYm ICFkZWZpbmVkKF9fR0xJQkNfXykpCisgICBFbnN1cmVEbnNSZWxvYWRlckluaXQoKTsKKyAjZW5k aWYKKyAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVt L25ldC9kbnMvZG5zX3JlbG9hZGVyLmNjCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vbmV0L2Rucy9kbnNfcmVsb2FkZXIuY2MKK0BAIC03LDcgKzcsOCBAQAor ICNpbmNsdWRlICJidWlsZC9idWlsZF9jb25maWcuaCIKKyAKKyAjaWYgQlVJTERGTEFHKElTX1BP U0lYKSAmJiAhQlVJTERGTEFHKElTX0FQUExFKSAmJiAhQlVJTERGTEFHKElTX09QRU5CU0QpICYm IFwKKy0gICAgIUJVSUxERkxBRyhJU19BTkRST0lEKSAmJiAhQlVJTERGTEFHKElTX0ZVQ0hTSUEp CisrICAgICFCVUlMREZMQUcoSVNfQU5EUk9JRCkgJiYgIUJVSUxERkxBRyhJU19GVUNIU0lBKSAm JiBcCisrICAgICEoQlVJTERGTEFHKElTX0xJTlVYKSAmJiAhZGVmaW5lZChfX0dMSUJDX18pKQor IAorICNpbmNsdWRlIDxyZXNvbHYuaD4KKyAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcv c3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9kbnMvaG9zdF9yZXNvbHZlcl9wcm9jLmNjCisrKysg cXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vbmV0L2Rucy9ob3N0X3Jl c29sdmVyX3Byb2MuY2MKK0BAIC0xOTIsNyArMTkyLDggQEAgaW50IFN5c3RlbUhvc3RSZXNvbHZl ckNhbGwoY29uc3Qgc3RkOjpzdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJhc2U6OkJsb2NraW5nVHlwZTo6V0lMTF9CTE9DSyk7CisgCisgI2lmIEJV SUxERkxBRyhJU19QT1NJWCkgJiYgXAorLSAgICAhKEJVSUxERkxBRyhJU19BUFBMRSkgfHwgQlVJ TERGTEFHKElTX09QRU5CU0QpIHx8IEJVSUxERkxBRyhJU19BTkRST0lEKSkKKysgICAgIShCVUlM REZMQUcoSVNfQVBQTEUpIHx8IEJVSUxERkxBRyhJU19PUEVOQlNEKSB8fCBCVUlMREZMQUcoSVNf QU5EUk9JRCkgfHwgXAorKyAgICAoQlVJTERGTEFHKElTX0xJTlVYKSAmJiAhZGVmaW5lZChfX0dM SUJDX18pKSkKKyAgIERuc1JlbG9hZGVyTWF5YmVSZWxvYWQoKTsKKyAjZW5kaWYKKyAgIGF1dG8g W2FpLCBlcnIsIG9zX2Vycm9yXSA9IEFkZHJlc3NJbmZvOjpHZXQoaG9zdCwgaGludHMsIG51bGxw dHIsIG5ldHdvcmspOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDExOS1jaHJvbWl1bS1tdXNsLXN0YWNrLXV0aWxzLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDExOS1jaHJvbWl1bS1tdXNsLXN0YWNrLXV0aWxzLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNTQ4YTFkZWM3NmI0Ci0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExOS1jaHJvbWl1bS1tdXNs LXN0YWNrLXV0aWxzLnBhdGNoCkBAIC0wLDAgKzEsMjAgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYu NC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVy L3BsYXRmb3JtL3d0Zi9zdGFja191dGlsLmNjCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vd3Rm L3N0YWNrX3V0aWwuY2MKK0BAIC0yOSw3ICsyOSw3IEBAIHNpemVfdCBHZXRVbmRlcmVzdGltYXRl ZFN0YWNrU2l6ZSgpIHsKKyAvLyBGSVhNRTogT24gTWFjIE9TWCBhbmQgTGludXgsIHRoaXMgbWV0 aG9kIGNhbm5vdCBlc3RpbWF0ZSBzdGFjayBzaXplCisgLy8gY29ycmVjdGx5IGZvciB0aGUgbWFp biB0aHJlYWQuCisgCistI2VsaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IEJVSUxERkxBRyhJU19B TkRST0lEKSB8fCBCVUlMREZMQUcoSVNfRlJFRUJTRCkgfHwgXAorKyNlbGlmIEJVSUxERkxBRyhJ U19MSU5VWCkgfHwgQlVJTERGTEFHKElTX0FORFJPSUQpIHx8IEJVSUxERkxBRyhJU19GUkVFQlNE KSB8fCBcCisgICAgIEJVSUxERkxBRyhJU19GVUNIU0lBKQorICAgLy8gcHRocmVhZF9nZXRhdHRy X25wKCkgY2FuIGZhaWwgaWYgdGhlIHRocmVhZCBpcyBub3QgaW52b2tlZCBieQorICAgLy8gcHRo cmVhZF9jcmVhdGUoKSAoZS5nLiwgdGhlIG1haW4gdGhyZWFkIG9mIGJsaW5rX3VuaXR0ZXN0cyku CitAQCAtOTcsNyArOTcsNyBAQCBzaXplX3QgR2V0VW5kZXJlc3RpbWF0ZWRTdGFja1NpemUoKSB7 CisgfQorIAorIHZvaWQqIEdldFN0YWNrU3RhcnQoKSB7CistI2lmIGRlZmluZWQoX19HTElCQ19f KSB8fCBCVUlMREZMQUcoSVNfQU5EUk9JRCkgfHwgQlVJTERGTEFHKElTX0ZSRUVCU0QpIHx8IFwK KysjaWYgQlVJTERGTEFHKElTX0xJTlVYKSB8fCBCVUlMREZMQUcoSVNfQU5EUk9JRCkgfHwgQlVJ TERGTEFHKElTX0ZSRUVCU0QpIHx8IFwKKyAgICAgQlVJTERGTEFHKElTX0ZVQ0hTSUEpCisgICBw dGhyZWFkX2F0dHJfdCBhdHRyOworICAgaW50IGVycm9yOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyMC1jaHJvbWl1bS1saWJjLW1hbGxvYy5wYXRjaCBiL3Ny Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjAtY2hyb21pdW0tbGliYy1tYWxsb2MucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5mYTMyODMwNzYwY2QK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTIwLWNo cm9taXVtLWxpYmMtbWFsbG9jLnBhdGNoCkBAIC0wLDAgKzEsMzQgQEAKKy0tLSBxdDYtd2ViZW5n aW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvcHJvY2Vzcy9tZW1vcnlf bGludXguY2MKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9i YXNlL3Byb2Nlc3MvbWVtb3J5X2xpbnV4LmNjCitAQCAtMTgsNiArMTgsMTMgQEAKKyAjaW5jbHVk ZSAiYmFzZS90aHJlYWRpbmcvdGhyZWFkX3Jlc3RyaWN0aW9ucy5oIgorICNpbmNsdWRlICJidWls ZC9idWlsZF9jb25maWcuaCIKKyAKKysjaWYgZGVmaW5lZChMSUJDX0dMSUJDKQorK2V4dGVybiAi QyIgeworK2V4dGVybiB2b2lkICpfX2xpYmNfbWFsbG9jKHNpemVfdCBzaXplKTsKKytleHRlcm4g dm9pZCAqX19saWJjX2ZyZWUodm9pZCAqcHRyKTsKKyt9CisrI2VuZGlmCisrCisgbmFtZXNwYWNl IGJhc2UgeworIAorIG5hbWVzcGFjZSB7CitAQCAtMTEyLDcgKzExOSw3IEBAIGJvb2wgVW5jaGVj a2VkTWFsbG9jKHNpemVfdCBzaXplLCB2b2lkKioKKyAgICAgZGVmaW5lZChUT09MS0lUX1FUKSB8 fCAhZGVmaW5lZChMSUJDX0dMSUJDKQorICAgKnJlc3VsdCA9IG1hbGxvYyhzaXplKTsKKyAjZWxp ZiBkZWZpbmVkKExJQkNfR0xJQkMpCistICAqcmVzdWx0ID0gX19saWJjX21hbGxvYyhzaXplKTsK KysgICpyZXN1bHQgPSA6Ol9fbGliY19tYWxsb2Moc2l6ZSk7CisgI2VuZGlmCisgICByZXR1cm4g KnJlc3VsdCAhPSBudWxscHRyOworIH0KK0BAIC0xMjMsNyArMTMwLDcgQEAgdm9pZCBVbmNoZWNr ZWRGcmVlKHZvaWQqIHB0cikgeworICNlbGlmIGRlZmluZWQoTUVNT1JZX1RPT0xfUkVQTEFDRVNf QUxMT0NBVE9SKSB8fCAhZGVmaW5lZChMSUJDX0dMSUJDKSB8fCBkZWZpbmVkKFRPT0xLSVRfUVQp CisgICBmcmVlKHB0cik7CisgI2VsaWYgZGVmaW5lZChMSUJDX0dMSUJDKQorLSAgX19saWJjX2Zy ZWUocHRyKTsKKysgIDo6X19saWJjX2ZyZWUocHRyKTsKKyAjZW5kaWYKKyB9CisgCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTIxLWNocm9taXVtLW11c2wtc3Rh dC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjEtY2hyb21pdW0tbXVz bC1zdGF0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOGM4 YzRiODYzYjY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDEyMS1jaHJvbWl1bS1tdXNsLXN0YXQucGF0Y2gKQEAgLTAsMCArMSwxMiBAQAorLS0tIHF0 Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9maWxlcy9m aWxlLmgKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNl L2ZpbGVzL2ZpbGUuaAorQEAgLTE5LDcgKzE5LDggQEAKKyAjaW5jbHVkZSAiYnVpbGQvYnVpbGRf Y29uZmlnLmgiCisgCisgI2lmIEJVSUxERkxBRyhJU19CU0QpIHx8IEJVSUxERkxBRyhJU19BUFBM RSkgfHwgQlVJTERGTEFHKElTX05BQ0wpIHx8IFwKKy0gICAgQlVJTERGTEFHKElTX0ZVQ0hTSUEp IHx8IChCVUlMREZMQUcoSVNfQU5EUk9JRCkgJiYgX19BTkRST0lEX0FQSV9fIDwgMjEpCisrICAg IEJVSUxERkxBRyhJU19GVUNIU0lBKSB8fCAoQlVJTERGTEFHKElTX0FORFJPSUQpICYmIF9fQU5E Uk9JRF9BUElfXyA8IDIxKSB8fCBcCisrICAgIChCVUlMREZMQUcoSVNfTElOVVgpICYmICFkZWZp bmVkKF9fR0xJQkNfXykpCisgc3RydWN0IHN0YXQ7CisgbmFtZXNwYWNlIGJhc2UgeworIHR5cGVk ZWYgc3RydWN0IHN0YXQgc3RhdF93cmFwcGVyX3Q7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMTIyLWNocm9taXVtLWNvbmRpdGlvbl92YXIucGF0Y2ggYi9zcmNw a2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTIyLWNocm9taXVtLWNvbmRpdGlvbl92YXIucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42YzQxMzEyZTUxNmIK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTIyLWNo cm9taXVtLWNvbmRpdGlvbl92YXIucGF0Y2gKQEAgLTAsMCArMSwyMiBAQAorVXNlIG1vbm90b25p YyBjbG9jayBmb3IgcHRocmVhZF9jb25kX3RpbWVkd2FpdCB3aXRoIG11c2wgdG9vLgorCistLS0g cXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvYmFz ZS9wbGF0Zm9ybS9jb25kaXRpb24tdmFyaWFibGUuY2MKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4y L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvYmFzZS9wbGF0Zm9ybS9jb25kaXRpb24tdmFy aWFibGUuY2MKK0BAIC0yMCw3ICsyMCw3IEBAIG5hbWVzcGFjZSBiYXNlIHsKKyAKKyBDb25kaXRp b25WYXJpYWJsZTo6Q29uZGl0aW9uVmFyaWFibGUoKSB7CisgI2lmIChWOF9PU19GUkVFQlNEIHx8 IFY4X09TX05FVEJTRCB8fCBWOF9PU19PUEVOQlNEIHx8IFwKKy0gICAgIChWOF9PU19MSU5VWCAm JiBWOF9MSUJDX0dMSUJDKSkKKysgICAgIFY4X09TX0xJTlVYKQorICAgLy8gT24gRnJlZS9OZXQv T3BlbkJTRCBhbmQgTGludXggd2l0aCBnbGliYyB3ZSBjYW4gY2hhbmdlIHRoZSB0aW1lCisgICAv LyBzb3VyY2UgZm9yIHB0aHJlYWRfY29uZF90aW1lZHdhaXQoKSB0byB1c2UgdGhlIG1vbm90b25p YyBjbG9jay4KKyAgIHB0aHJlYWRfY29uZGF0dHJfdCBhdHRyOworQEAgLTk2LDcgKzk2LDcgQEAg Ym9vbCBDb25kaXRpb25WYXJpYWJsZTo6V2FpdEZvcihNdXRleCogbQorICAgICAgICZuYXRpdmVf aGFuZGxlXywgJm11dGV4LT5uYXRpdmVfaGFuZGxlKCksICZ0cyk7CisgI2Vsc2UKKyAjaWYgKFY4 X09TX0ZSRUVCU0QgfHwgVjhfT1NfTkVUQlNEIHx8IFY4X09TX09QRU5CU0QgfHwgXAorLSAgICAg KFY4X09TX0xJTlVYICYmIFY4X0xJQkNfR0xJQkMpKQorKyAgICAgVjhfT1NfTElOVVgpCisgICAv LyBPbiBGcmVlL05ldC9PcGVuQlNEIGFuZCBMaW51eCB3aXRoIGdsaWJjIHdlIGNhbiBjaGFuZ2Ug dGhlIHRpbWUKKyAgIC8vIHNvdXJjZSBmb3IgcHRocmVhZF9jb25kX3RpbWVkd2FpdCgpIHRvIHVz ZSB0aGUgbW9ub3RvbmljIGNsb2NrLgorICAgcmVzdWx0ID0gY2xvY2tfZ2V0dGltZShDTE9DS19N T05PVE9OSUMsICZ0cyk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wMTIzLWNocm9taXVtLW11c2wtbm8tZXhlY2luZm8ucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMTIzLWNocm9taXVtLW11c2wtbm8tZXhlY2luZm8ucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yNWZhZTdiZGUxMTIKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTIzLWNocm9taXVtLW11 c2wtbm8tZXhlY2luZm8ucGF0Y2gKQEAgLTAsMCArMSw3NSBAQAorLS0tIHF0Ni13ZWJlbmdpbmUt Ni40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9kZWJ1Zy9zdGFja190cmFjZV9w b3NpeC5jYworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jh c2UvZGVidWcvc3RhY2tfdHJhY2VfcG9zaXguY2MKK0BAIC0zMCw3ICszMCw3IEBACisgI2lmICFk ZWZpbmVkKFVTRV9TWU1CT0xJWkUpCisgI2luY2x1ZGUgPGN4eGFiaS5oPgorICNlbmRpZgorLSNp ZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBkZWZpbmVkKF9f R0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyAjaW5jbHVkZSA8ZXhlY2luZm8uaD4KKyAjZW5k aWYKKyAKK0BAIC05Nyw3ICs5Nyw3IEBAIHZvaWQgRGVtYW5nbGVTeW1ib2xzKHN0ZDo6c3RyaW5n KiB0ZXh0KQorICAgLy8gTm90ZTogY29kZSBpbiB0aGlzIGZ1bmN0aW9uIGlzIE5PVCBhc3luYy1z aWduYWwgc2FmZSAoc3RkOjpzdHJpbmcgdXNlcworICAgLy8gbWFsbG9jIGludGVybmFsbHkpLgor IAorLSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBkZWZp bmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5 cGUgc2VhcmNoX2Zyb20gPSAwOworICAgd2hpbGUgKHNlYXJjaF9mcm9tIDwgdGV4dC0+c2l6ZSgp KSB7CisgICAgIC8vIExvb2sgZm9yIHRoZSBzdGFydCBvZiBhIG1hbmdsZWQgc3ltYm9sLCBmcm9t IHNlYXJjaF9mcm9tLgorQEAgLTE0NCw3ICsxNDQsNyBAQCBjbGFzcyBCYWNrdHJhY2VPdXRwdXRI YW5kbGVyIHsKKyAgIHZpcnR1YWwgfkJhY2t0cmFjZU91dHB1dEhhbmRsZXIoKSA9IGRlZmF1bHQ7 CisgfTsKKyAKKy0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysj aWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgdm9pZCBPdXRwdXRQb2lu dGVyKHZvaWQqIHBvaW50ZXIsIEJhY2t0cmFjZU91dHB1dEhhbmRsZXIqIGhhbmRsZXIpIHsKKyAg IC8vIFRoaXMgc2hvdWxkIGJlIG1vcmUgdGhhbiBlbm91Z2ggdG8gc3RvcmUgYSA2NC1iaXQgbnVt YmVyIGluIGhleDoKKyAgIC8vIDE2IGhleCBkaWdpdHMgKyAxIGZvciBudWxsLXRlcm1pbmF0b3Iu CitAQCAtODY4LDcgKzg2OCw3IEBAIHNpemVfdCBDb2xsZWN0U3RhY2tUcmFjZSh2b2lkKiogdHJh Y2UsIHMKKyAgIC8vIElmIHdlIGRvIG5vdCBoYXZlIHVud2luZCB0YWJsZXMsIHRoZW4gdHJ5IHRy YWNpbmcgdXNpbmcgZnJhbWUgcG9pbnRlcnMuCisgICByZXR1cm4gYmFzZTo6ZGVidWc6OlRyYWNl U3RhY2tGcmFtZVBvaW50ZXJzKGNvbnN0X2Nhc3Q8Y29uc3Qgdm9pZCoqPih0cmFjZSksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50LCAwKTsKKy0j ZWxpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNlbGlmIGRlZmlu ZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorICAgLy8gVGhvdWdoIHRoZSBiYWNrdHJh Y2UgQVBJIG1hbiBwYWdlIGRvZXMgbm90IGxpc3QgYW55IHBvc3NpYmxlIG5lZ2F0aXZlCisgICAv LyByZXR1cm4gdmFsdWVzLCB3ZSB0YWtlIG5vIGNoYW5jZS4KKyAgIHJldHVybiBiYXNlOjpzYXR1 cmF0ZWRfY2FzdDxzaXplX3Q+KGJhY2t0cmFjZSh0cmFjZSwgY291bnQpKTsKK0BAIC04ODEsMTMg Kzg4MSwxMyBAQCB2b2lkIFN0YWNrVHJhY2U6OlByaW50V2l0aFByZWZpeChjb25zdCBjCisgLy8g Tk9URTogVGhpcyBjb2RlIE1VU1QgYmUgYXN5bmMtc2lnbmFsIHNhZmUgKGl0J3MgdXNlZCBieSBp bi1wcm9jZXNzCisgLy8gc3RhY2sgZHVtcGluZyBzaWduYWwgaGFuZGxlcikuIE5PIG1hbGxvYyBv ciBzdGRpbyBpcyBhbGxvd2VkIGhlcmUuCisgCistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYm ICFkZWZpbmVkKF9BSVgpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfQUlY KQorICAgUHJpbnRCYWNrdHJhY2VPdXRwdXRIYW5kbGVyIGhhbmRsZXI7CisgICBQcm9jZXNzQmFj a3RyYWNlKHRyYWNlXywgY291bnRfLCBwcmVmaXhfc3RyaW5nLCAmaGFuZGxlcik7CisgI2VuZGlm CisgfQorIAorLSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNp ZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyB2b2lkIFN0YWNrVHJhY2U6 Ok91dHB1dFRvU3RyZWFtV2l0aFByZWZpeChzdGQ6Om9zdHJlYW0qIG9zLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHByZWZpeF9zdHJpbmcp IGNvbnN0IHsKKyAgIFN0cmVhbUJhY2t0cmFjZU91dHB1dEhhbmRsZXIgaGFuZGxlcihvcyk7Cist LS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMv Y29kZWdlbi9leHRlcm5hbC1yZWZlcmVuY2UtdGFibGUuY2MKKysrKyBxdDYtd2ViZW5naW5lLTYu NC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvY29kZWdlbi9leHRlcm5hbC1yZWZlcmVu Y2UtdGFibGUuY2MKK0BAIC0xMiw3ICsxMiw5IEBACisgCisgI2lmIGRlZmluZWQoREVCVUcpICYm IGRlZmluZWQoVjhfT1NfTElOVVgpICYmICFkZWZpbmVkKFY4X09TX0FORFJPSUQpCisgI2RlZmlu ZSBTWU1CT0xJWkVfRlVOQ1RJT04KKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgI2luY2x1ZGUg PGV4ZWNpbmZvLmg+CisrI2VuZGlmCisgCisgI2luY2x1ZGUgPHZlY3Rvcj4KKyAKK0BAIC0xMDMs NyArMTA1LDcgQEAgdm9pZCBFeHRlcm5hbFJlZmVyZW5jZVRhYmxlOjpJbml0KElzb2xhdAorIH0K KyAKKyBjb25zdCBjaGFyKiBFeHRlcm5hbFJlZmVyZW5jZVRhYmxlOjpSZXNvbHZlU3ltYm9sKHZv aWQqIGFkZHJlc3MpIHsKKy0jaWZkZWYgU1lNQk9MSVpFX0ZVTkNUSU9OCisrI2lmIGRlZmluZWQo U1lNQk9MSVpFX0ZVTkNUSU9OKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgIGNoYXIqKiBuYW1l cyA9IGJhY2t0cmFjZV9zeW1ib2xzKCZhZGRyZXNzLCAxKTsKKyAgIGNvbnN0IGNoYXIqIG5hbWUg PSBuYW1lc1swXTsKKyAgIC8vIFRoZSBhcnJheSBvZiBuYW1lcyBpcyBtYWxsb2MnZWQuIEhvd2V2 ZXIsIGVhY2ggbmFtZSBzdHJpbmcgaXMgc3RhdGljCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMTIzLWNocm9taXVtLW11c2wtbm8tZ2V0Y29udGV4dC5wYXRjaCBi L3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjMtY2hyb21pdW0tbXVzbC1uby1nZXRj b250ZXh0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNDY1 MjJlZTBhMDY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDEyMy1jaHJvbWl1bS1tdXNsLW5vLWdldGNvbnRleHQucGF0Y2gKQEAgLTAsMCArMSwyNyBA QAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2Vw dGlvbl9oYW5kbGVyLmNjCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5k bGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCitAQCAtNDkwLDcgKzQ5MCw5IEBAIGJvb2wgRXhjZXB0 aW9uSGFuZGxlcjo6U2ltdWxhdGVTaWduYWxEZWwKKyAgIHNpZ2luZm8uc2lfY29kZSA9IFNJX1VT RVI7CisgICBzaWdpbmZvLnNpX3BpZCA9IGdldHBpZCgpOworICAgdWNvbnRleHRfdCBjb250ZXh0 OworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgIGdldGNvbnRleHQoJmNvbnRleHQpOworKyNl bmRpZgorICAgcmV0dXJuIEhhbmRsZVNpZ25hbChzaWcsICZzaWdpbmZvLCAmY29udGV4dCk7Cisg fQorIAorQEAgLTY3NSw5ICs2NzcsMTQgQEAgYm9vbCBFeGNlcHRpb25IYW5kbGVyOjpXcml0ZU1p bmlkdW1wKCkgeworICAgc3lzX3ByY3RsKFBSX1NFVF9EVU1QQUJMRSwgMSwgMCwgMCwgMCk7Cisg CisgICBDcmFzaENvbnRleHQgY29udGV4dDsKKysKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisg ICBpbnQgZ2V0Y29udGV4dF9yZXN1bHQgPSBnZXRjb250ZXh0KCZjb250ZXh0LmNvbnRleHQpOwor ICAgaWYgKGdldGNvbnRleHRfcmVzdWx0KQorICAgICByZXR1cm4gZmFsc2U7CisrI2Vsc2UKKysg IHJldHVybiBmYWxzZTsKKysjZW5kaWYKKyAKKyAjaWYgZGVmaW5lZChfX2kzODZfXykKKyAgIC8v IEluIENQVUZpbGxGcm9tVUNvbnRleHQgaW4gbWluaWR1bXB3cml0ZXIuY2MgdGhlIHN0YWNrIHBv aW50ZXIgaXMgcmV0cmlldmVkCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMTI0LWNocm9taXVtLWVuYWJsZS1pNjg2LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDEyNC1jaHJvbWl1bS1lbmFibGUtaTY4Ni5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjExZDhkZTdjMjNmOAotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjQtY2hyb21pdW0tZW5hYmxlLWk2 ODYucGF0Y2gKQEAgLTAsMCArMSwxNyBAQAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9z cmMvM3JkcGFydHkvY2hyb21pdW0vQlVJTEQuZ24KKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS9CVUlMRC5nbgorQEAgLTE1MzcsMTQgKzE1MzcsNiBAQCBpZiAo IWlzX2lvcyAmJiAhdXNlX3F0KSB7CisgICB9CisgfQorIAorLSMgVE9ETyhjYXNzZXcpOiBBZGQg bW9yZSBPUydzIHRoYXQgZG9uJ3Qgc3VwcG9ydCB4ODYuCistaXNfdmFsaWRfeDg2X3RhcmdldCA9 CistICAgIHRhcmdldF9vcyAhPSAiaW9zIiAmJiB0YXJnZXRfb3MgIT0gIm1hYyIgJiYKKy0gICAg KHRhcmdldF9vcyAhPSAibGludXgiIHx8IHVzZV9saWJmdXp6ZXIgfHwgIWJ1aWxkX3dpdGhfY2hy b21pdW0pCistYXNzZXJ0KAorLSAgICBpc192YWxpZF94ODZfdGFyZ2V0IHx8IHRhcmdldF9jcHUg IT0gIng4NiIsCistICAgICIndGFyZ2V0X2NwdT14ODYnIGlzIG5vdCBzdXBwb3J0ZWQgZm9yICd0 YXJnZXRfb3M9JHRhcmdldF9vcycuIENvbnNpZGVyIG9taXR0aW5nICd0YXJnZXRfY3B1JyAoZGVm YXVsdCkgb3IgdXNpbmcgJ3RhcmdldF9jcHU9eDY0JyBpbnN0ZWFkLiIpCistCisgZ3JvdXAoImNo cm9taXVtX2J1aWxkZXJfcGVyZiIpIHsKKyAgIHRlc3Rvbmx5ID0gdHJ1ZQorIApkaWZmIC0tZ2l0 IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyNS1jaHJvbWl1bS1yZW1vdmUtc3Ry aXBfYmluYXJ5LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyNS1jaHJv bWl1bS1yZW1vdmUtc3RyaXBfYmluYXJ5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uMTE1ZTQ0OTJhMmJlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyNS1jaHJvbWl1bS1yZW1vdmUtc3RyaXBfYmluYXJ5LnBh dGNoCkBAIC0wLDAgKzEsMzIgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL2Nocm9tZS90ZXN0L2Nocm9tZWRyaXZlci9CVUlMRC5nbgorKysrIHF0 Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Nocm9tZS90ZXN0L2Nocm9t ZWRyaXZlci9CVUlMRC5nbgorQEAgLTMzNSwxMSArMzM1LDcgQEAgc291cmNlX3NldCgibGliIikg eworICAgfQorIH0KKyAKKy1pZiAoaXNfbGludXgpIHsKKy0gIGNocm9tZWRyaXZlcl9vdXRwdXQg PSAiY2hyb21lZHJpdmVyLnVuc3RyaXBwZWQiCistfSBlbHNlIHsKKy0gIGNocm9tZWRyaXZlcl9v dXRwdXQgPSAiY2hyb21lZHJpdmVyIgorLX0KKytjaHJvbWVkcml2ZXJfb3V0cHV0ID0gImNocm9t ZWRyaXZlciIKKyAKKyBleGVjdXRhYmxlKCIkY2hyb21lZHJpdmVyX291dHB1dCIpIHsKKyAgIHRl c3Rvbmx5ID0gdHJ1ZQorQEAgLTM2MSwxNiArMzU3LDYgQEAgZXhlY3V0YWJsZSgiJGNocm9tZWRy aXZlcl9vdXRwdXQiKSB7CisgICB9CisgfQorIAorLWlmIChpc19saW51eCkgeworLSAgc3RyaXBf YmluYXJ5KCJjaHJvbWVkcml2ZXIiKSB7CistICAgIHRlc3Rvbmx5ID0gdHJ1ZQorLSAgICBiaW5h cnlfaW5wdXQgPSAiJHJvb3Rfb3V0X2Rpci8kY2hyb21lZHJpdmVyX291dHB1dCIKKy0gICAgc3lt Ym9sX291dHB1dCA9ICIkcm9vdF9vdXRfZGlyL2Nocm9tZWRyaXZlci5kZWJ1ZyIKKy0gICAgc3Ry aXBwZWRfYmluYXJ5X291dHB1dCA9ICIkcm9vdF9vdXRfZGlyL2Nocm9tZWRyaXZlciIKKy0gICAg ZGVwcyA9IFsgIjokY2hyb21lZHJpdmVyX291dHB1dCIgXQorLSAgfQorLX0KKy0KKyBweXRob25f bGlicmFyeSgiY2hyb21lZHJpdmVyX3B5X3Rlc3RzIikgeworICAgdGVzdG9ubHkgPSB0cnVlCisg ICBkZXBzID0gWwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEy Ni1jaHJvbWl1bS1uby1jZGVmcy5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzAxMjYtY2hyb21pdW0tbm8tY2RlZnMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi45MGZhYTNkNjY0ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTI2LWNocm9taXVtLW5vLWNkZWZzLnBhdGNoCkBAIC0wLDAg KzEsMzkgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL2NvbXBhdC9saW51eC9zeXMvcHRyYWNl LmgKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9jb21wYXQvbGludXgvc3lzL3B0cmFjZS5oCitAQCAtMTcs OCArMTcsNiBAQAorIAorICNpbmNsdWRlX25leHQgPHN5cy9wdHJhY2UuaD4KKyAKKy0jaW5jbHVk ZSA8c3lzL2NkZWZzLmg+CistCisgLy8gaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxsYS9z aG93X2J1Zy5jZ2k/aWQ9MjI0MzMKKyAjaWYgIWRlZmluZWQoUFRSQUNFX0dFVF9USFJFQURfQVJF QSkgJiYgIWRlZmluZWQoUFRfR0VUX1RIUkVBRF9BUkVBKSAmJiBcCisgICAgIGRlZmluZWQoX19H TElCQ19fKQorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvbGlic3luYy9zcmMvaW5jbHVkZS9zeW5jL3N5bmMuaAorKysrIHF0Ni13 ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2xpYnN5bmMv c3JjL2luY2x1ZGUvc3luYy9zeW5jLmgKK0BAIC0xOSwxMiArMTksMTMgQEAKKyAjaWZuZGVmIF9f U1lTX0NPUkVfU1lOQ19ICisgI2RlZmluZSBfX1NZU19DT1JFX1NZTkNfSAorIAorLSNpbmNsdWRl IDxzeXMvY2RlZnMuaD4KKyAjaW5jbHVkZSA8c3RkaW50Lmg+CisgCisgI2luY2x1ZGUgPGxpbnV4 L3R5cGVzLmg+CisgCistX19CRUdJTl9ERUNMUworKyNpZmRlZiBfX2NwbHVzcGx1cworK2V4dGVy biAiQyIgeworKyNlbmRpZgorIAorIHN0cnVjdCBzeW5jX2xlZ2FjeV9tZXJnZV9kYXRhIHsKKyAg aW50MzJfdCBmZDI7CitAQCAtMTU4LDYgKzE1OSw4IEBAIHN0cnVjdCBzeW5jX3B0X2luZm8gKnN5 bmNfcHRfaW5mbyhzdHJ1Y3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IHN5bmNfcHRfaW5mbyAqaXRyKTsKKyB2b2lkIHN5bmNfZmVuY2VfaW5mb19mcmVlKHN0cnVj dCBzeW5jX2ZlbmNlX2luZm9fZGF0YSAqaW5mbyk7CisgCistX19FTkRfREVDTFMKKysjaWZkZWYg X19jcGx1c3BsdXMKKyt9CisrI2VuZGlmCisgCisgI2VuZGlmIC8qIF9fU1lTX0NPUkVfU1lOQ19I ICovCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTI4LWNocm9t aXVtLXNhbmRib3gtbWVtYmFycmllci5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAxMjgtY2hyb21pdW0tc2FuZGJveC1tZW1iYXJyaWVyLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMmUxNDkyYzNmNjIyCi0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyOC1jaHJvbWl1bS1zYW5kYm94LW1l bWJhcnJpZXIucGF0Y2gKQEAgLTAsMCArMSwxMCBAQAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIu b3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxw ZXJzL3N5c2NhbGxfc2V0cy5jYworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMu Y2MKK0BAIC00MTgsNiArNDE4LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkUHJvY2Vz c1N0YXJ0TworICAgc3dpdGNoIChzeXNubykgeworICAgICBjYXNlIF9fTlJfZXhpdDoKKyAgICAg Y2FzZSBfX05SX2V4aXRfZ3JvdXA6CisrICAgIGNhc2UgX19OUl9tZW1iYXJyaWVyOgorICAgICBj YXNlIF9fTlJfd2FpdDQ6CisgICAgIGNhc2UgX19OUl93YWl0aWQ6CisgI2lmIGRlZmluZWQoX19p Mzg2X18pCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTI5LWNo cm9taXVtLXNhbmRib3gtc2hlZF9nZXRwYXJhbS5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAxMjktY2hyb21pdW0tc2FuZGJveC1zaGVkX2dldHBhcmFtLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uODBkOTFjNzdlOGJhCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyOS1jaHJvbWl1bS1z YW5kYm94LXNoZWRfZ2V0cGFyYW0ucGF0Y2gKQEAgLTAsMCArMSwyMCBAQAorQWxsb3cgU1lTX3Nj aGVkX2dldHBhcmFtIGFuZCBTWVNfc2NoZWRfZ2V0c2NoZWR1bGVyCittdXNsIHVzZXMgdGhlbSBm b3IgcHRocmVhZF9nZXRzY2hlZHBhcmFtKCkKKworc291cmNlOiBodHRwczovL2dpdC5hbHBpbmVs aW51eC5vcmcvYXBvcnRzL2NvbW1pdC9jb21tdW5pdHkvY2hyb21pdW0/aWQ9NTRhZjlmOGFjMjRm NTJkMzgyYzU3NThlMjQ0NWJmMDIwNmVmZjQwZQorCistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5v cmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L3BvbGljeS9saW51eC9icGZfcmVuZGVy ZXJfcG9saWN5X2xpbnV4LmNjCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vc2FuZGJveC9wb2xpY3kvbGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5j YworQEAgLTk3LDEwICs5NywxMCBAQCBSZXN1bHRFeHByIFJlbmRlcmVyUHJvY2Vzc1BvbGljeTo6 RXZhbHVhCisgICAgIGNhc2UgX19OUl9zeXNpbmZvOgorICAgICBjYXNlIF9fTlJfdGltZXM6Cisg ICAgIGNhc2UgX19OUl91bmFtZToKKy0gICAgICByZXR1cm4gQWxsb3coKTsKKy0gICAgY2FzZSBf X05SX3NjaGVkX2dldGFmZmluaXR5OgorICAgICBjYXNlIF9fTlJfc2NoZWRfZ2V0cGFyYW06Cisg ICAgIGNhc2UgX19OUl9zY2hlZF9nZXRzY2hlZHVsZXI6CisrICAgICAgcmV0dXJuIEFsbG93KCk7 CisrICAgIGNhc2UgX19OUl9zY2hlZF9nZXRhZmZpbml0eToKKyAgICAgY2FzZSBfX05SX3NjaGVk X3NldHNjaGVkdWxlcjoKKyAgICAgICByZXR1cm4gUmVzdHJpY3RTY2hlZFRhcmdldChHZXRQb2xp Y3lQaWQoKSwgc3lzbm8pOworICAgICBjYXNlIF9fTlJfcHJsaW1pdDY0OgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDE1MC1jaHJvbWl1bS11bmJ1bmRsZS1mZm1w ZWctYXZfc3RyZWFtX2dldF9maXJzdF9kdHMucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUv cGF0Y2hlcy8wMTUwLWNocm9taXVtLXVuYnVuZGxlLWZmbXBlZy1hdl9zdHJlYW1fZ2V0X2ZpcnN0 X2R0cy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmU3ZjYw NDhmYmMxYwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzAxNTAtY2hyb21pdW0tdW5idW5kbGUtZmZtcGVnLWF2X3N0cmVhbV9nZXRfZmlyc3RfZHRzLnBh dGNoCkBAIC0wLDAgKzEsMTAgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL2J1aWxkL2xpbnV4L3VuYnVuZGxlL2ZmbXBlZy5nbgorKysrIHF0Ni13 ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkL2xpbnV4L3VuYnVuZGxl L2ZmbXBlZy5nbgorQEAgLTEyLDYgKzEyLDcgQEAgcGtnX2NvbmZpZygic3lzdGVtX2ZmbXBlZyIp IHsKKyAgICAgImxpYmF2Zm9ybWF0IiwKKyAgICAgImxpYmF2dXRpbCIsCisgICBdCisrICBkZWZp bmVzID0gWyAiYXZfc3RyZWFtX2dldF9maXJzdF9kdHMoc3RyZWFtKT1zdHJlYW0tPmZpcnN0X2R0 cyIgXQorIH0KKyAKKyBidWlsZGZsYWdfaGVhZGVyKCJmZm1wZWdfZmVhdHVyZXMiKSB7CmRpZmYg LS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTUxLWNocm9taXVtLXVuYnVu ZGxlZC1jcm9zcy10b29sY2hhaW4ucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wMTUxLWNocm9taXVtLXVuYnVuZGxlZC1jcm9zcy10b29sY2hhaW4ucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43NDZkMmRmYjlhN2UKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTUxLWNocm9taXVtLXVuYnVu ZGxlZC1jcm9zcy10b29sY2hhaW4ucGF0Y2gKQEAgLTAsMCArMSwxMyBAQAorLS0tIHF0Ni13ZWJl bmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGQvdG9vbGNoYWluL2xp bnV4L3VuYnVuZGxlL0JVSUxELmduCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vYnVpbGQvdG9vbGNoYWluL2xpbnV4L3VuYnVuZGxlL0JVSUxELmduCitAQCAt MzUsOCArMzUsOCBAQCBnY2NfdG9vbGNoYWluKCJob3N0IikgeworICAgZXh0cmFfbGRmbGFncyA9 IGdldGVudigiQlVJTERfTERGTEFHUyIpCisgCisgICB0b29sY2hhaW5fYXJncyA9IHsKKy0gICAg Y3VycmVudF9jcHUgPSBjdXJyZW50X2NwdQorLSAgICBjdXJyZW50X29zID0gY3VycmVudF9vcwor KyAgICBjdXJyZW50X2NwdSA9IGhvc3RfY3B1CisrICAgIGN1cnJlbnRfb3MgPSBob3N0X29zCisg ICB9CisgfQorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDE1 Mi1jaHJvbWl1bS13ZWJydGMtc2l6ZV90LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDE1Mi1jaHJvbWl1bS13ZWJydGMtc2l6ZV90LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOGY2MDIwNGZmNTg0Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDE1Mi1jaHJvbWl1bS13ZWJydGMtc2l6ZV90 LnBhdGNoCkBAIC0wLDAgKzEsMTAgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2F1ZGlvX3Byb2Nl c3NpbmcvYWVjMy9jbG9ja2RyaWZ0X2RldGVjdG9yLmgKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4y L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9hdWRpb19w cm9jZXNzaW5nL2FlYzMvY2xvY2tkcmlmdF9kZXRlY3Rvci5oCitAQCAtMTQsNiArMTQsNyBAQAor ICNpbmNsdWRlIDxzdGRkZWYuaD4KKyAKKyAjaW5jbHVkZSA8YXJyYXk+CisrI2luY2x1ZGUgPGNz dGRkZWY+CisgCisgbmFtZXNwYWNlIHdlYnJ0YyB7CisgCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTUzLWNocm9taXVtLXdlYnJ0Yy1zaXplX3QucGF0Y2ggYi9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTUzLWNocm9taXVtLXdlYnJ0Yy1zaXplX3Qu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zYjViN2EzZDUz YjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTUz LWNocm9taXVtLXdlYnJ0Yy1zaXplX3QucGF0Y2gKQEAgLTAsMCArMSwxNiBAQAorLS0tIHF0Ni13 ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYW5n bGUvaW5jbHVkZS9wbGF0Zm9ybS9QbGF0Zm9ybU1ldGhvZHMuaAorKysrIHF0Ni13ZWJlbmdpbmUt Ni40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2FuZ2xlL2luY2x1ZGUvcGxh dGZvcm0vUGxhdGZvcm1NZXRob2RzLmgKK0BAIC0yMjIsMTEgKzIyMiwxMSBAQCBpbmxpbmUgdm9p ZCBEZWZhdWx0SGlzdG9ncmFtQm9vbGVhbihQbGF0CisgdXNpbmcgUHJvZ3JhbUtleVR5cGUgICA9 IHN0ZDo6YXJyYXk8dWludDhfdCwgMjA+OworIHVzaW5nIENhY2hlUHJvZ3JhbUZ1bmMgPSB2b2lk ICgqKShQbGF0Zm9ybU1ldGhvZHMgKnBsYXRmb3JtLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBQcm9ncmFtS2V5VHlwZSAma2V5LAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzaXplX3QgcHJvZ3JhbVNpemUsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0ZDo6c2l6ZV90IHByb2dyYW1TaXplLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpwcm9ncmFtQnl0ZXMpOworIGlubGlu ZSB2b2lkIERlZmF1bHRDYWNoZVByb2dyYW0oUGxhdGZvcm1NZXRob2RzICpwbGF0Zm9ybSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFByb2dyYW1LZXlUeXBlICZrZXks CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgcHJvZ3JhbVNpemUsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnNpemVfdCBwcm9ncmFtU2l6ZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnByb2dyYW1C eXRlcykKKyB7fQorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDE1NC1jaHJvbWl1bS11aXRfdC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzAxNTQtY2hyb21pdW0tdWl0X3QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi5kMTNhMzFmZWU0MDIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMTU0LWNocm9taXVtLXVpdF90LnBhdGNoCkBAIC0wLDAgKzEsMTEg QEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Nh bmRib3gvbGludXgvc2VydmljZXMvY3JlZGVudGlhbHMuaAorKysrIHF0Ni13ZWJlbmdpbmUtNi40 LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VydmljZXMvY3JlZGVudGlh bHMuaAorQEAgLTE0LDYgKzE0LDggQEAKKyAjaW5jbHVkZSA8c3RyaW5nPgorICNpbmNsdWRlIDx2 ZWN0b3I+CisgCisrI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorKworICNpbmNsdWRlICJzYW5kYm94 L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2NhcGFiaWxpdHkuaCIKKyAjaW5jbHVkZSAic2FuZGJveC9z YW5kYm94X2V4cG9ydC5oIgorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDIwMC1jaHJvbWl1bS1zbmRpby5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9w YXRjaGVzLzAyMDAtY2hyb21pdW0tc25kaW8ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwLi5kNzY5YjUzMTQ5N2IKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjAwLWNocm9taXVtLXNuZGlvLnBhdGNoCkBAIC0wLDAg KzEsODQ5IEBACistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS9tZWRpYS9CVUlMRC5nbgorKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL21lZGlhL0JVSUxELmduCitAQCAtNzgsNiArNzgsOSBAQCBjb25maWcoIm1lZGlh X2NvbmZpZyIpIHsKKyAgICAgICBkZWZpbmVzICs9IFsgIkRMT1BFTl9QVUxTRUFVRElPIiBdCisg ICAgIH0KKyAgIH0KKysgIGlmICh1c2Vfc25kaW8pIHsKKysgICAgZGVmaW5lcyArPSBbICJVU0Vf U05ESU8iIF0KKysgIH0KKyAgIGlmICh1c2VfY3JhcykgeworICAgICBkZWZpbmVzICs9IFsgIlVT RV9DUkFTIiBdCisgICB9CistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9tZWRpYS9hdWRpby9CVUlMRC5nbgorKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL2F1ZGlvL0JVSUxELmduCitAQCAtMjQ1LDYgKzI0 NSwxNyBAQCBzb3VyY2Vfc2V0KCJhdWRpbyIpIHsKKyAgICAgc291cmNlcyArPSBbICJsaW51eC9h dWRpb19tYW5hZ2VyX2xpbnV4LmNjIiBdCisgICB9CisgCisrICBpZiAodXNlX3NuZGlvKSB7Cisr ICAgIGxpYnMgKz0gWyAic25kaW8iIF0KKysgICAgc291cmNlcyArPSBbCisrICAgICAgInNuZGlv L2F1ZGlvX21hbmFnZXJfc25kaW8uY2MiLAorKyAgICAgICJzbmRpby9zbmRpb19pbnB1dC5jYyIs CisrICAgICAgInNuZGlvL3NuZGlvX2lucHV0LmgiLAorKyAgICAgICJzbmRpby9zbmRpb19vdXRw dXQuY2MiLAorKyAgICAgICJzbmRpby9zbmRpb19vdXRwdXQuaCIKKysgICAgXQorKyAgfQorKwor ICAgaWYgKHVzZV9hbHNhKSB7CisgICAgIGxpYnMgKz0gWyAiYXNvdW5kIiBdCisgICAgIHNvdXJj ZXMgKz0gWworLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21p dW0vbWVkaWEvYXVkaW8vbGludXgvYXVkaW9fbWFuYWdlcl9saW51eC5jYworKysrIHF0Ni13ZWJl bmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL2F1ZGlvL2xpbnV4L2F1ZGlv X21hbmFnZXJfbGludXguY2MKK0BAIC0yNSw2ICsyNSwxMSBAQAorICNpbmNsdWRlICJtZWRpYS9h dWRpby9wdWxzZS9hdWRpb19tYW5hZ2VyX3B1bHNlLmgiCisgI2luY2x1ZGUgIm1lZGlhL2F1ZGlv L3B1bHNlL3B1bHNlX3V0aWwuaCIKKyAjZW5kaWYKKysjaWYgZGVmaW5lZChVU0VfU05ESU8pCisr I2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL2F1ZGlvX21hbmFnZXJfc25kaW8uaCIKKysjaW5j bHVkZSAibWVkaWEvYXVkaW8vc25kaW8vc25kaW9faW5wdXQuaCIKKysjaW5jbHVkZSAibWVkaWEv YXVkaW8vc25kaW8vc25kaW9fb3V0cHV0LmgiCisrI2VuZGlmCisgCisgbmFtZXNwYWNlIG1lZGlh IHsKKyAKKy0tLSAvZGV2L251bGwKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9tZWRpYS9hdWRpby9zbmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmNjCitAQCAt MCwwICsxLDE0OCBAQAorKy8vIENvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9y cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn b3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4g dGhlIExJQ0VOU0UgZmlsZS4KKysKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vc25kaW8vYXVkaW9f bWFuYWdlcl9zbmRpby5oIgorKworKyNpbmNsdWRlICJiYXNlL21ldHJpY3MvaGlzdG9ncmFtX21h Y3Jvcy5oIgorKyNpbmNsdWRlICJiYXNlL21lbW9yeS9wdHJfdXRpbC5oIgorKyNpbmNsdWRlICJt ZWRpYS9hdWRpby9hdWRpb19kZXZpY2VfZGVzY3JpcHRpb24uaCIKKysjaW5jbHVkZSAibWVkaWEv YXVkaW8vYXVkaW9fb3V0cHV0X2Rpc3BhdGNoZXIuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8v c25kaW8vc25kaW9faW5wdXQuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vc25kaW8vc25kaW9f b3V0cHV0LmgiCisrI2luY2x1ZGUgIm1lZGlhL2Jhc2UvbGltaXRzLmgiCisrI2luY2x1ZGUgIm1l ZGlhL2Jhc2UvbWVkaWFfc3dpdGNoZXMuaCIKKysKKytuYW1lc3BhY2UgbWVkaWEgeworKworKwor Ky8vIE1heGltdW0gbnVtYmVyIG9mIG91dHB1dCBzdHJlYW1zIHRoYXQgY2FuIGJlIG9wZW4gc2lt dWx0YW5lb3VzbHkuCisrc3RhdGljIGNvbnN0IGludCBrTWF4T3V0cHV0U3RyZWFtcyA9IDQ7Cisr CisrLy8gRGVmYXVsdCBzYW1wbGUgcmF0ZSBmb3IgaW5wdXQgYW5kIG91dHB1dCBzdHJlYW1zLgor K3N0YXRpYyBjb25zdCBpbnQga0RlZmF1bHRTYW1wbGVSYXRlID0gNDgwMDA7CisrCisrdm9pZCBB ZGREZWZhdWx0RGV2aWNlKEF1ZGlvRGV2aWNlTmFtZXMqIGRldmljZV9uYW1lcykgeworKyAgRENI RUNLKGRldmljZV9uYW1lcy0+ZW1wdHkoKSk7CisrICBkZXZpY2VfbmFtZXMtPnB1c2hfZnJvbnQo QXVkaW9EZXZpY2VOYW1lOjpDcmVhdGVEZWZhdWx0KCkpOworK30KKysKKytib29sIEF1ZGlvTWFu YWdlclNuZGlvOjpIYXNBdWRpb091dHB1dERldmljZXMoKSB7CisrICByZXR1cm4gdHJ1ZTsKKyt9 CisrCisrYm9vbCBBdWRpb01hbmFnZXJTbmRpbzo6SGFzQXVkaW9JbnB1dERldmljZXMoKSB7Cisr ICByZXR1cm4gdHJ1ZTsKKyt9CisrCisrdm9pZCBBdWRpb01hbmFnZXJTbmRpbzo6R2V0QXVkaW9J bnB1dERldmljZU5hbWVzKAorKyAgICBBdWRpb0RldmljZU5hbWVzKiBkZXZpY2VfbmFtZXMpIHsK KysgIERDSEVDSyhkZXZpY2VfbmFtZXMtPmVtcHR5KCkpOworKyAgQWRkRGVmYXVsdERldmljZShk ZXZpY2VfbmFtZXMpOworK30KKysKKyt2b2lkIEF1ZGlvTWFuYWdlclNuZGlvOjpHZXRBdWRpb091 dHB1dERldmljZU5hbWVzKAorKyAgICBBdWRpb0RldmljZU5hbWVzKiBkZXZpY2VfbmFtZXMpIHsK KysgIEFkZERlZmF1bHREZXZpY2UoZGV2aWNlX25hbWVzKTsKKyt9CisrCisrY29uc3QgY2hhciog QXVkaW9NYW5hZ2VyU25kaW86OkdldE5hbWUoKSB7CisrICByZXR1cm4gIlNORElPIjsKKyt9Cisr CisrQXVkaW9QYXJhbWV0ZXJzIEF1ZGlvTWFuYWdlclNuZGlvOjpHZXRJbnB1dFN0cmVhbVBhcmFt ZXRlcnMoCisrICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQpIHsKKysgIHN0YXRpYyBj b25zdCBpbnQga0RlZmF1bHRJbnB1dEJ1ZmZlclNpemUgPSAxMDI0OworKworKyAgaW50IHVzZXJf YnVmZmVyX3NpemUgPSBHZXRVc2VyQnVmZmVyU2l6ZSgpOworKyAgaW50IGJ1ZmZlcl9zaXplID0g dXNlcl9idWZmZXJfc2l6ZSA/CisrICAgICAgdXNlcl9idWZmZXJfc2l6ZSA6IGtEZWZhdWx0SW5w dXRCdWZmZXJTaXplOworKworKyAgcmV0dXJuIEF1ZGlvUGFyYW1ldGVycygKKysgICAgICBBdWRp b1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MT1dfTEFURU5DWSwgQ0hBTk5FTF9MQVlPVVRfU1RFUkVP LAorKyAgICAgIGtEZWZhdWx0U2FtcGxlUmF0ZSwgYnVmZmVyX3NpemUpOworK30KKysKKytBdWRp b01hbmFnZXJTbmRpbzo6QXVkaW9NYW5hZ2VyU25kaW8oc3RkOjp1bmlxdWVfcHRyPEF1ZGlvVGhy ZWFkPiBhdWRpb190aHJlYWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBBdWRpb0xvZ0ZhY3RvcnkqIGF1ZGlvX2xvZ19mYWN0b3J5KQorKyAgICA6IEF1ZGlvTWFu YWdlckJhc2Uoc3RkOjptb3ZlKGF1ZGlvX3RocmVhZCksCisrICAgICAgICAgICAgICAgICAgICAg ICBhdWRpb19sb2dfZmFjdG9yeSkgeworKyAgRExPRyhXQVJOSU5HKSA8PCAiQXVkaW9NYW5hZ2Vy U25kaW8iOworKyAgU2V0TWF4T3V0cHV0U3RyZWFtc0FsbG93ZWQoa01heE91dHB1dFN0cmVhbXMp OworK30KKysKKytBdWRpb01hbmFnZXJTbmRpbzo6fkF1ZGlvTWFuYWdlclNuZGlvKCkgeworKyAg U2h1dGRvd24oKTsKKyt9CisrCisrQXVkaW9PdXRwdXRTdHJlYW0qIEF1ZGlvTWFuYWdlclNuZGlv OjpNYWtlTGluZWFyT3V0cHV0U3RyZWFtKAorKyAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBh cmFtcywKKysgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgeworKyAgRENIRUNL X0VRKEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xJTkVBUiwgcGFyYW1zLmZvcm1hdCgpKTsK KysgIHJldHVybiBNYWtlT3V0cHV0U3RyZWFtKHBhcmFtcyk7CisrfQorKworK0F1ZGlvT3V0cHV0 U3RyZWFtKiBBdWRpb01hbmFnZXJTbmRpbzo6TWFrZUxvd0xhdGVuY3lPdXRwdXRTdHJlYW0oCisr ICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAgICBjb25zdCBzdGQ6OnN0cmlu ZyYgZGV2aWNlX2lkLAorKyAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSB7Cisr ICBETE9HX0lGKEVSUk9SLCAhZGV2aWNlX2lkLmVtcHR5KCkpIDw8ICJOb3QgaW1wbGVtZW50ZWQh IjsKKysgIERDSEVDS19FUShBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MT1dfTEFURU5DWSwg cGFyYW1zLmZvcm1hdCgpKTsKKysgIHJldHVybiBNYWtlT3V0cHV0U3RyZWFtKHBhcmFtcyk7Cisr fQorKworK0F1ZGlvSW5wdXRTdHJlYW0qIEF1ZGlvTWFuYWdlclNuZGlvOjpNYWtlTGluZWFySW5w dXRTdHJlYW0oCisrICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAgICBjb25z dCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkLAorKyAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2Nh bGxiYWNrKSB7CisrICBEQ0hFQ0tfRVEoQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTElORUFS LCBwYXJhbXMuZm9ybWF0KCkpOworKyAgcmV0dXJuIE1ha2VJbnB1dFN0cmVhbShwYXJhbXMpOwor K30KKysKKytBdWRpb0lucHV0U3RyZWFtKiBBdWRpb01hbmFnZXJTbmRpbzo6TWFrZUxvd0xhdGVu Y3lJbnB1dFN0cmVhbSgKKysgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisrICAg IGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQsCisrICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBs b2dfY2FsbGJhY2spIHsKKysgIERDSEVDS19FUShBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9M T1dfTEFURU5DWSwgcGFyYW1zLmZvcm1hdCgpKTsKKysgIHJldHVybiBNYWtlSW5wdXRTdHJlYW0o cGFyYW1zKTsKKyt9CisrCisrQXVkaW9QYXJhbWV0ZXJzIEF1ZGlvTWFuYWdlclNuZGlvOjpHZXRQ cmVmZXJyZWRPdXRwdXRTdHJlYW1QYXJhbWV0ZXJzKAorKyAgICBjb25zdCBzdGQ6OnN0cmluZyYg b3V0cHV0X2RldmljZV9pZCwKKysgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBpbnB1dF9wYXJh bXMpIHsKKysgIC8vIFRPRE8odG9tbWkpOiBTdXBwb3J0IHxvdXRwdXRfZGV2aWNlX2lkfC4KKysg IERMT0dfSUYoRVJST1IsICFvdXRwdXRfZGV2aWNlX2lkLmVtcHR5KCkpIDw8ICJOb3QgaW1wbGVt ZW50ZWQhIjsKKysgIHN0YXRpYyBjb25zdCBpbnQga0RlZmF1bHRPdXRwdXRCdWZmZXJTaXplID0g MjA0ODsKKysKKysgIENoYW5uZWxMYXlvdXQgY2hhbm5lbF9sYXlvdXQgPSBDSEFOTkVMX0xBWU9V VF9TVEVSRU87CisrICBpbnQgc2FtcGxlX3JhdGUgPSBrRGVmYXVsdFNhbXBsZVJhdGU7CisrICBp bnQgYnVmZmVyX3NpemUgPSBrRGVmYXVsdE91dHB1dEJ1ZmZlclNpemU7CisrICBpZiAoaW5wdXRf cGFyYW1zLklzVmFsaWQoKSkgeworKyAgICBzYW1wbGVfcmF0ZSA9IGlucHV0X3BhcmFtcy5zYW1w bGVfcmF0ZSgpOworKyAgICBjaGFubmVsX2xheW91dCA9IGlucHV0X3BhcmFtcy5jaGFubmVsX2xh eW91dCgpOworKyAgICBidWZmZXJfc2l6ZSA9IHN0ZDo6bWluKGJ1ZmZlcl9zaXplLCBpbnB1dF9w YXJhbXMuZnJhbWVzX3Blcl9idWZmZXIoKSk7CisrICB9CisrCisrICBpbnQgdXNlcl9idWZmZXJf c2l6ZSA9IEdldFVzZXJCdWZmZXJTaXplKCk7CisrICBpZiAodXNlcl9idWZmZXJfc2l6ZSkKKysg ICAgYnVmZmVyX3NpemUgPSB1c2VyX2J1ZmZlcl9zaXplOworKworKyAgcmV0dXJuIEF1ZGlvUGFy YW1ldGVycygKKysgICAgICBBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MT1dfTEFURU5DWSwg Y2hhbm5lbF9sYXlvdXQsCisrICAgICAgc2FtcGxlX3JhdGUsIGJ1ZmZlcl9zaXplKTsKKyt9Cisr CisrQXVkaW9JbnB1dFN0cmVhbSogQXVkaW9NYW5hZ2VyU25kaW86Ok1ha2VJbnB1dFN0cmVhbSgK KysgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMpIHsKKysgIERMT0coV0FSTklORykg PDwgIk1ha2VJbnB1dFN0cmVhbSI7CisrICByZXR1cm4gbmV3IFNuZGlvQXVkaW9JbnB1dFN0cmVh bSh0aGlzLAorKyAgICAgICAgICAgICBBdWRpb0RldmljZURlc2NyaXB0aW9uOjprRGVmYXVsdERl dmljZUlkLCBwYXJhbXMpOworK30KKysKKytBdWRpb091dHB1dFN0cmVhbSogQXVkaW9NYW5hZ2Vy U25kaW86Ok1ha2VPdXRwdXRTdHJlYW0oCisrICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFy YW1zKSB7CisrICBETE9HKFdBUk5JTkcpIDw8ICJNYWtlT3V0cHV0U3RyZWFtIjsKKysgIHJldHVy biBuZXcgU25kaW9BdWRpb091dHB1dFN0cmVhbShwYXJhbXMsIHRoaXMpOworK30KKysKKyt9ICAv LyBuYW1lc3BhY2UgbWVkaWEKKy0tLSAvZGV2L251bGwKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4y L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9hdWRpby9zbmRpby9hdWRpb19tYW5hZ2VyX3Nu ZGlvLmgKK0BAIC0wLDAgKzEsNjUgQEAKKysvLyBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9t aXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291cmNl IGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorKy8v IGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisrI2lmbmRlZiBNRURJQV9BVURJT19TTkRJ T19BVURJT19NQU5BR0VSX1NORElPX0hfCisrI2RlZmluZSBNRURJQV9BVURJT19TTkRJT19BVURJ T19NQU5BR0VSX1NORElPX0hfCisrCisrI2luY2x1ZGUgPHNldD4KKysKKysjaW5jbHVkZSAiYmFz ZS9jb21waWxlcl9zcGVjaWZpYy5oIgorKyNpbmNsdWRlICJiYXNlL21hY3Jvcy5oIgorKyNpbmNs dWRlICJiYXNlL21lbW9yeS9yZWZfY291bnRlZC5oIgorKyNpbmNsdWRlICJiYXNlL3RocmVhZGlu Zy90aHJlYWQuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVkaW9fbWFuYWdlcl9iYXNlLmgi CisrCisrbmFtZXNwYWNlIG1lZGlhIHsKKysKKytjbGFzcyBNRURJQV9FWFBPUlQgQXVkaW9NYW5h Z2VyU25kaW8gOiBwdWJsaWMgQXVkaW9NYW5hZ2VyQmFzZSB7CisrIHB1YmxpYzoKKysgIEF1ZGlv TWFuYWdlclNuZGlvKHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1RocmVhZD4gYXVkaW9fdGhyZWFkLAor KyAgICAgICAgICAgICAgICAgICBBdWRpb0xvZ0ZhY3RvcnkqIGF1ZGlvX2xvZ19mYWN0b3J5KTsK KysgIH5BdWRpb01hbmFnZXJTbmRpbygpIG92ZXJyaWRlOworKworKyAgLy8gSW1wbGVtZW50YXRp b24gb2YgQXVkaW9NYW5hZ2VyLgorKyAgYm9vbCBIYXNBdWRpb091dHB1dERldmljZXMoKSBvdmVy cmlkZTsKKysgIGJvb2wgSGFzQXVkaW9JbnB1dERldmljZXMoKSBvdmVycmlkZTsKKysgIHZvaWQg R2V0QXVkaW9JbnB1dERldmljZU5hbWVzKEF1ZGlvRGV2aWNlTmFtZXMqIGRldmljZV9uYW1lcykg b3ZlcnJpZGU7CisrICB2b2lkIEdldEF1ZGlvT3V0cHV0RGV2aWNlTmFtZXMoQXVkaW9EZXZpY2VO YW1lcyogZGV2aWNlX25hbWVzKSBvdmVycmlkZTsKKysgIEF1ZGlvUGFyYW1ldGVycyBHZXRJbnB1 dFN0cmVhbVBhcmFtZXRlcnMoCisrICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9pZCkg b3ZlcnJpZGU7CisrICBjb25zdCBjaGFyKiBHZXROYW1lKCkgb3ZlcnJpZGU7CisrCisrICAvLyBJ bXBsZW1lbnRhdGlvbiBvZiBBdWRpb01hbmFnZXJCYXNlLgorKyAgQXVkaW9PdXRwdXRTdHJlYW0q IE1ha2VMaW5lYXJPdXRwdXRTdHJlYW0oCisrICAgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBw YXJhbXMsCisrICAgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgb3ZlcnJpZGU7 CisrICBBdWRpb091dHB1dFN0cmVhbSogTWFrZUxvd0xhdGVuY3lPdXRwdXRTdHJlYW0oCisrICAg ICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisrICAgICAgY29uc3Qgc3RkOjpzdHJp bmcmIGRldmljZV9pZCwKKysgICAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSBv dmVycmlkZTsKKysgIEF1ZGlvSW5wdXRTdHJlYW0qIE1ha2VMaW5lYXJJbnB1dFN0cmVhbSgKKysg ICAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAgICBjb25zdCBzdGQ6OnN0 cmluZyYgZGV2aWNlX2lkLAorKyAgICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2sp IG92ZXJyaWRlOworKyAgQXVkaW9JbnB1dFN0cmVhbSogTWFrZUxvd0xhdGVuY3lJbnB1dFN0cmVh bSgKKysgICAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAgICBjb25zdCBz dGQ6OnN0cmluZyYgZGV2aWNlX2lkLAorKyAgICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2Fs bGJhY2spIG92ZXJyaWRlOworKworKyBwcm90ZWN0ZWQ6CisrICBBdWRpb1BhcmFtZXRlcnMgR2V0 UHJlZmVycmVkT3V0cHV0U3RyZWFtUGFyYW1ldGVycygKKysgICAgICBjb25zdCBzdGQ6OnN0cmlu ZyYgb3V0cHV0X2RldmljZV9pZCwKKysgICAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIGlucHV0 X3BhcmFtcykgb3ZlcnJpZGU7CisrCisrIHByaXZhdGU6CisrICAvLyBDYWxsZWQgYnkgTWFrZUxp bmVhck91dHB1dFN0cmVhbSBhbmQgTWFrZUxvd0xhdGVuY3lPdXRwdXRTdHJlYW0uCisrICBBdWRp b091dHB1dFN0cmVhbSogTWFrZU91dHB1dFN0cmVhbShjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBh cmFtcyk7CisrICBBdWRpb0lucHV0U3RyZWFtKiBNYWtlSW5wdXRTdHJlYW0oY29uc3QgQXVkaW9Q YXJhbWV0ZXJzJiBwYXJhbXMpOworKworKyAgRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOKEF1ZGlv TWFuYWdlclNuZGlvKTsKKyt9OworKworK30gIC8vIG5hbWVzcGFjZSBtZWRpYQorKworKyNlbmRp ZiAgLy8gTUVESUFfQVVESU9fU05ESU9fQVVESU9fTUFOQUdFUl9TTkRJT19IXworLS0tIC9kZXYv bnVsbAorKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlh L2F1ZGlvL3NuZGlvL3NuZGlvX2lucHV0LmNjCitAQCAtMCwwICsxLDIwMCBAQAorKy8vIENvcHly aWdodCAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKy8v IFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vu c2UgdGhhdCBjYW4gYmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKworKyNpbmNs dWRlICJiYXNlL2JpbmQuaCIKKysjaW5jbHVkZSAiYmFzZS9sb2dnaW5nLmgiCisrI2luY2x1ZGUg ImJhc2UvbWFjcm9zLmgiCisrI2luY2x1ZGUgIm1lZGlhL2Jhc2UvYXVkaW9fdGltZXN0YW1wX2hl bHBlci5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9hdWRpb19tYW5hZ2VyX3NuZGlv LmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX21hbmFnZXIuaCIKKysjaW5jbHVkZSAi bWVkaWEvYXVkaW8vc25kaW8vc25kaW9faW5wdXQuaCIKKysKKytuYW1lc3BhY2UgbWVkaWEgewor KworK3N0YXRpYyBjb25zdCBTYW1wbGVGb3JtYXQga1NhbXBsZUZvcm1hdCA9IGtTYW1wbGVGb3Jt YXRTMTY7CisrCisrdm9pZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06Ok9uTW92ZUNhbGxiYWNrKHZv aWQgKmFyZywgaW50IGRlbHRhKQorK3sKKysgIFNuZGlvQXVkaW9JbnB1dFN0cmVhbSogc2VsZiA9 IHN0YXRpY19jYXN0PFNuZGlvQXVkaW9JbnB1dFN0cmVhbSo+KGFyZyk7CisrCisrICBzZWxmLT5o d19kZWxheSArPSBkZWx0YTsKKyt9CisrCisrdm9pZCAqU25kaW9BdWRpb0lucHV0U3RyZWFtOjpU aHJlYWRFbnRyeSh2b2lkICphcmcpIHsKKysgIFNuZGlvQXVkaW9JbnB1dFN0cmVhbSogc2VsZiA9 IHN0YXRpY19jYXN0PFNuZGlvQXVkaW9JbnB1dFN0cmVhbSo+KGFyZyk7CisrCisrICBzZWxmLT5U aHJlYWRMb29wKCk7CisrICByZXR1cm4gTlVMTDsKKyt9CisrCisrU25kaW9BdWRpb0lucHV0U3Ry ZWFtOjpTbmRpb0F1ZGlvSW5wdXRTdHJlYW0oQXVkaW9NYW5hZ2VyQmFzZSogbWFuYWdlciwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0 cmluZyYgZGV2aWNlX25hbWUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMpCisrICAgIDogbWFuYWdlciht YW5hZ2VyKSwKKysgICAgICBwYXJhbXMocGFyYW1zKSwKKysgICAgICBhdWRpb19idXMoQXVkaW9C dXM6OkNyZWF0ZShwYXJhbXMpKSwKKysgICAgICBzdGF0ZShrQ2xvc2VkKSB7CisrfQorKworK1Nu ZGlvQXVkaW9JbnB1dFN0cmVhbTo6flNuZGlvQXVkaW9JbnB1dFN0cmVhbSgpIHsKKysgIGlmIChz dGF0ZSAhPSBrQ2xvc2VkKQorKyAgICBDbG9zZSgpOworK30KKysKKytib29sIFNuZGlvQXVkaW9J bnB1dFN0cmVhbTo6T3BlbigpIHsKKysgIHN0cnVjdCBzaW9fcGFyIHBhcjsKKysgIGludCBzaWc7 CisrCisrICBpZiAoc3RhdGUgIT0ga0Nsb3NlZCkKKysgICAgcmV0dXJuIGZhbHNlOworKworKyAg aWYgKHBhcmFtcy5mb3JtYXQoKSAhPSBBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MSU5FQVIg JiYKKysgICAgICBwYXJhbXMuZm9ybWF0KCkgIT0gQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01f TE9XX0xBVEVOQ1kpIHsKKysgICAgTE9HKFdBUk5JTkcpIDw8ICJVbnN1cHBvcnRlZCBhdWRpbyBm b3JtYXQuIjsKKysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKworKyAgc2lvX2luaXRwYXIoJnBh cik7CisrICBwYXIucmF0ZSA9IHBhcmFtcy5zYW1wbGVfcmF0ZSgpOworKyAgcGFyLnJjaGFuID0g cGFyYW1zLmNoYW5uZWxzKCk7CisrICBwYXIuYml0cyA9IFNhbXBsZUZvcm1hdFRvQml0c1BlckNo YW5uZWwoa1NhbXBsZUZvcm1hdCk7CisrICBwYXIuYnBzID0gcGFyLmJpdHMgLyA4OworKyAgcGFy LnNpZyA9IHNpZyA9IHBhci5iaXRzICE9IDggPyAxIDogMDsKKysgIHBhci5sZSA9IFNJT19MRV9O QVRJVkU7CisrICBwYXIuYXBwYnVmc3ogPSBwYXJhbXMuZnJhbWVzX3Blcl9idWZmZXIoKTsKKysK KysgIGhkbCA9IHNpb19vcGVuKFNJT19ERVZBTlksIFNJT19SRUMsIDApOworKworKyAgaWYgKGhk bCA9PSBOVUxMKSB7CisrICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IG9wZW4gYXVkaW8gZGV2 aWNlLiI7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysKKysgIGlmICghc2lvX3NldHBhciho ZGwsICZwYXIpIHx8ICFzaW9fZ2V0cGFyKGhkbCwgJnBhcikpIHsKKysgICAgTE9HKEVSUk9SKSA8 PCAiQ291bGRuJ3Qgc2V0IGF1ZGlvIHBhcmFtZXRlcnMuIjsKKysgICAgZ290byBiYWRfY2xvc2U7 CisrICB9CisrCisrICBpZiAocGFyLnJhdGUgICE9ICh1bnNpZ25lZCBpbnQpcGFyYW1zLnNhbXBs ZV9yYXRlKCkgfHwKKysgICAgICBwYXIucmNoYW4gIT0gKHVuc2lnbmVkIGludClwYXJhbXMuY2hh bm5lbHMoKSB8fAorKyAgICAgIHBhci5iaXRzICAhPSAodW5zaWduZWQgaW50KVNhbXBsZUZvcm1h dFRvQml0c1BlckNoYW5uZWwoa1NhbXBsZUZvcm1hdCkgfHwKKysgICAgICBwYXIuc2lnICAgIT0g KHVuc2lnbmVkIGludClzaWcgfHwKKysgICAgICAocGFyLmJwcyA+IDEgJiYgcGFyLmxlICE9IFNJ T19MRV9OQVRJVkUpIHx8CisrICAgICAgKHBhci5iaXRzICE9IHBhci5icHMgKiA4KSkgeworKyAg ICBMT0coRVJST1IpIDw8ICJVbnN1cHBvcnRlZCBhdWRpbyBwYXJhbWV0ZXJzLiI7CisrICAgIGdv dG8gYmFkX2Nsb3NlOworKyAgfQorKyAgc3RhdGUgPSBrU3RvcHBlZDsKKysgIGJ1ZmZlciA9IG5l dyBjaGFyW2F1ZGlvX2J1cy0+ZnJhbWVzKCkgKiBwYXJhbXMuR2V0Qnl0ZXNQZXJGcmFtZShrU2Ft cGxlRm9ybWF0KV07CisrICBzaW9fb25tb3ZlKGhkbCwgJk9uTW92ZUNhbGxiYWNrLCB0aGlzKTsK KysgIHJldHVybiB0cnVlOworK2JhZF9jbG9zZToKKysgIHNpb19jbG9zZShoZGwpOworKyAgcmV0 dXJuIGZhbHNlOworK30KKysKKyt2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6U3RhcnQoQXVk aW9JbnB1dENhbGxiYWNrKiBjYikgeworKworKyAgU3RhcnRBZ2MoKTsKKysKKysgIHN0YXRlID0g a1J1bm5pbmc7CisrICBod19kZWxheSA9IDA7CisrICBjYWxsYmFjayA9IGNiOworKyAgc2lvX3N0 YXJ0KGhkbCk7CisrICBpZiAocHRocmVhZF9jcmVhdGUoJnRocmVhZCwgTlVMTCwgJlRocmVhZEVu dHJ5LCB0aGlzKSAhPSAwKSB7CisrICAgIExPRyhFUlJPUikgPDwgIkZhaWxlZCB0byBjcmVhdGUg cmVhbC10aW1lIHRocmVhZCBmb3IgcmVjb3JkaW5nLiI7CisrICAgIHNpb19zdG9wKGhkbCk7Cisr ICAgIHN0YXRlID0ga1N0b3BwZWQ7CisrICB9CisrfQorKworK3ZvaWQgU25kaW9BdWRpb0lucHV0 U3RyZWFtOjpTdG9wKCkgeworKworKyAgaWYgKHN0YXRlID09IGtTdG9wcGVkKQorKyAgICByZXR1 cm47CisrCisrICBzdGF0ZSA9IGtTdG9wV2FpdDsKKysgIHB0aHJlYWRfam9pbih0aHJlYWQsIE5V TEwpOworKyAgc2lvX3N0b3AoaGRsKTsKKysgIHN0YXRlID0ga1N0b3BwZWQ7CisrCisrICBTdG9w QWdjKCk7CisrfQorKworK3ZvaWQgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpDbG9zZSgpIHsKKysK KysgIGlmIChzdGF0ZSA9PSBrQ2xvc2VkKQorKyAgICByZXR1cm47CisrCisrICBpZiAoc3RhdGUg PT0ga1J1bm5pbmcpCisrICAgIFN0b3AoKTsKKysKKysgIHN0YXRlID0ga0Nsb3NlZDsKKysgIGRl bGV0ZSBbXSBidWZmZXI7CisrICBzaW9fY2xvc2UoaGRsKTsKKysKKysgIG1hbmFnZXItPlJlbGVh c2VJbnB1dFN0cmVhbSh0aGlzKTsKKyt9CisrCisrZG91YmxlIFNuZGlvQXVkaW9JbnB1dFN0cmVh bTo6R2V0TWF4Vm9sdW1lKCkgeworKyAgLy8gTm90IHN1cHBvcnRlZAorKyAgcmV0dXJuIDAuMDsK Kyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OlNldFZvbHVtZShkb3VibGUgdm9s dW1lKSB7CisrICAvLyBOb3Qgc3VwcG9ydGVkLiBEbyBub3RoaW5nLgorK30KKysKKytkb3VibGUg U25kaW9BdWRpb0lucHV0U3RyZWFtOjpHZXRWb2x1bWUoKSB7CisrICAvLyBOb3Qgc3VwcG9ydGVk LgorKyAgcmV0dXJuIDAuMDsKKyt9CisrCisrYm9vbCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06Oklz TXV0ZWQoKSB7CisrICAvLyBOb3Qgc3VwcG9ydGVkLgorKyAgcmV0dXJuIGZhbHNlOworK30KKysK Kyt2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6U2V0T3V0cHV0RGV2aWNlRm9yQWVjKAorKyAg ICBjb25zdCBzdGQ6OnN0cmluZyYgb3V0cHV0X2RldmljZV9pZCkgeworKyAgLy8gTm90IHN1cHBv cnRlZC4KKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OlRocmVhZExvb3Aodm9p ZCkgeworKyAgc2l6ZV90IHRvZG8sIG47CisrICBjaGFyICpkYXRhOworKyAgdW5zaWduZWQgaW50 IG5mcmFtZXM7CisrICBkb3VibGUgbm9ybWFsaXplZF92b2x1bWUgPSAwLjA7CisrCisrICBuZnJh bWVzID0gYXVkaW9fYnVzLT5mcmFtZXMoKTsKKysKKysgIHdoaWxlIChzdGF0ZSA9PSBrUnVubmlu ZyAmJiAhc2lvX2VvZihoZGwpKSB7CisrCisrICAgIEdldEFnY1ZvbHVtZSgmbm9ybWFsaXplZF92 b2x1bWUpOworKworKyAgICAvLyByZWFkIG9uZSBibG9jaworKyAgICB0b2RvID0gbmZyYW1lcyAq IHBhcmFtcy5HZXRCeXRlc1BlckZyYW1lKGtTYW1wbGVGb3JtYXQpOworKyAgICBkYXRhID0gYnVm ZmVyOworKyAgICB3aGlsZSAodG9kbyA+IDApIHsKKysgICAgICBuID0gc2lvX3JlYWQoaGRsLCBk YXRhLCB0b2RvKTsKKysgICAgICBpZiAobiA9PSAwKQorKyAgICAgICAgcmV0dXJuOwkvLyB1bnJl Y292ZXJhYmxlIEkvTyBlcnJvcgorKyAgICAgIHRvZG8gLT0gbjsKKysgICAgICBkYXRhICs9IG47 CisrICAgIH0KKysgICAgaHdfZGVsYXkgLT0gbmZyYW1lczsKKysKKysgICAgLy8gY29udmVydCBm cmFtZXMgY291bnQgdG8gVGltZURlbHRhCisrICAgIGNvbnN0IGJhc2U6OlRpbWVEZWx0YSBkZWxh eSA9IEF1ZGlvVGltZXN0YW1wSGVscGVyOjpGcmFtZXNUb1RpbWUoaHdfZGVsYXksCisrICAgICAg cGFyYW1zLnNhbXBsZV9yYXRlKCkpOworKworKyAgICAvLyBwdXNoIGludG8gYnVzCisrICAgIGF1 ZGlvX2J1cy0+RnJvbUludGVybGVhdmVkPFNpZ25lZEludDE2U2FtcGxlVHlwZVRyYWl0cz4ocmVp bnRlcnByZXRfY2FzdDxpbnQxNl90Kj4oYnVmZmVyKSwgbmZyYW1lcyk7CisrCisrICAgIC8vIGlu dm9rZSBjYWxsYmFjaworKyAgICBjYWxsYmFjay0+T25EYXRhKGF1ZGlvX2J1cy5nZXQoKSwgYmFz ZTo6VGltZVRpY2tzOjpOb3coKSAtIGRlbGF5LCAxLik7CisrICB9CisrfQorKworK30gIC8vIG5h bWVzcGFjZSBtZWRpYQorLS0tIC9kZXYvbnVsbAorKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX2lucHV0LmgKK0BAIC0w LDAgKzEsOTEgQEAKKysvLyBDb3B5cmlnaHQgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxs IHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l ZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJ Q0VOU0UgZmlsZS4KKysKKysjaWZuZGVmIE1FRElBX0FVRElPX1NORElPX1NORElPX0lOUFVUX0hf CisrI2RlZmluZSBNRURJQV9BVURJT19TTkRJT19TTkRJT19JTlBVVF9IXworKworKyNpbmNsdWRl IDxzdGRpbnQuaD4KKysjaW5jbHVkZSA8c3RyaW5nPgorKyNpbmNsdWRlIDxzbmRpby5oPgorKwor KyNpbmNsdWRlICJiYXNlL2NvbXBpbGVyX3NwZWNpZmljLmgiCisrI2luY2x1ZGUgImJhc2UvbWFj cm9zLmgiCisrI2luY2x1ZGUgImJhc2UvbWVtb3J5L3dlYWtfcHRyLmgiCisrI2luY2x1ZGUgImJh c2UvdGltZS90aW1lLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2FnY19hdWRpb19zdHJlYW0u aCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVkaW9faW8uaCIKKysjaW5jbHVkZSAibWVkaWEv YXVkaW8vYXVkaW9fZGV2aWNlX2Rlc2NyaXB0aW9uLmgiCisrI2luY2x1ZGUgIm1lZGlhL2Jhc2Uv YXVkaW9fcGFyYW1ldGVycy5oIgorKworK25hbWVzcGFjZSBtZWRpYSB7CisrCisrY2xhc3MgQXVk aW9NYW5hZ2VyQmFzZTsKKysKKysvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRpb091dHB1dFN0cmVh bSB1c2luZyBzbmRpbyg3KQorK2NsYXNzIFNuZGlvQXVkaW9JbnB1dFN0cmVhbSA6IHB1YmxpYyBB Z2NBdWRpb1N0cmVhbTxBdWRpb0lucHV0U3RyZWFtPiB7CisrIHB1YmxpYzoKKysgIC8vIFBhc3Mg dGhpcyB0byB0aGUgY29uc3RydWN0b3IgaWYgeW91IHdhbnQgdG8gYXR0ZW1wdCBhdXRvLXNlbGVj dGlvbgorKyAgLy8gb2YgdGhlIGF1ZGlvIHJlY29yZGluZyBkZXZpY2UuCisrICBzdGF0aWMgY29u c3QgY2hhciBrQXV0b1NlbGVjdERldmljZVtdOworKworKyAgLy8gQ3JlYXRlIGEgUENNIE91dHB1 dCBzdHJlYW0gZm9yIHRoZSBTTkRJTyBkZXZpY2UgaWRlbnRpZmllZCBieQorKyAgLy8gfGRldmlj ZV9uYW1lfC4gSWYgdW5zdXJlIG9mIHdoYXQgdG8gdXNlIGZvciB8ZGV2aWNlX25hbWV8LCB1c2UK KysgIC8vIHxrQXV0b1NlbGVjdERldmljZXwuCisrICBTbmRpb0F1ZGlvSW5wdXRTdHJlYW0oQXVk aW9NYW5hZ2VyQmFzZSogYXVkaW9fbWFuYWdlciwKKysgICAgICAgICAgICAgICAgICAgICBjb25z dCBzdGQ6OnN0cmluZyYgZGV2aWNlX25hbWUsCisrICAgICAgICAgICAgICAgICAgICAgY29uc3Qg QXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMpOworKworKyAgflNuZGlvQXVkaW9JbnB1dFN0cmVhbSgp IG92ZXJyaWRlOworKworKyAgLy8gSW1wbGVtZW50YXRpb24gb2YgQXVkaW9JbnB1dFN0cmVhbS4K KysgIGJvb2wgT3BlbigpIG92ZXJyaWRlOworKyAgdm9pZCBTdGFydChBdWRpb0lucHV0Q2FsbGJh Y2sqIGNhbGxiYWNrKSBvdmVycmlkZTsKKysgIHZvaWQgU3RvcCgpIG92ZXJyaWRlOworKyAgdm9p ZCBDbG9zZSgpIG92ZXJyaWRlOworKyAgZG91YmxlIEdldE1heFZvbHVtZSgpIG92ZXJyaWRlOwor KyAgdm9pZCBTZXRWb2x1bWUoZG91YmxlIHZvbHVtZSkgb3ZlcnJpZGU7CisrICBkb3VibGUgR2V0 Vm9sdW1lKCkgb3ZlcnJpZGU7CisrICBib29sIElzTXV0ZWQoKSBvdmVycmlkZTsKKysgIHZvaWQg U2V0T3V0cHV0RGV2aWNlRm9yQWVjKGNvbnN0IHN0ZDo6c3RyaW5nJiBvdXRwdXRfZGV2aWNlX2lk KSBvdmVycmlkZTsKKysKKysgcHJpdmF0ZToKKysKKysgIGVudW0gU3RyZWFtU3RhdGUgeworKyAg ICBrQ2xvc2VkLCAgICAgICAgICAgIC8vIE5vdCBvcGVuZWQgeWV0CisrICAgIGtTdG9wcGVkLCAg ICAgICAgICAgLy8gRGV2aWNlIG9wZW5lZCwgYnV0IG5vdCBzdGFydGVkIHlldAorKyAgICBrUnVu bmluZywgICAgICAgICAgIC8vIFN0YXJ0ZWQsIGRldmljZSBwbGF5aW5nCisrICAgIGtTdG9wV2Fp dCAgICAgICAgICAgLy8gU3RvcHBpbmcsIHdhaXRpbmcgZm9yIHRoZSByZWFsLXRpbWUgdGhyZWFk IHRvIGV4aXQKKysgIH07CisrCisrICAvLyBDLXN0eWxlIGNhbGwtYmFja3MKKysgIHN0YXRpYyB2 b2lkIE9uTW92ZUNhbGxiYWNrKHZvaWQgKmFyZywgaW50IGRlbHRhKTsKKysgIHN0YXRpYyB2b2lk KiBUaHJlYWRFbnRyeSh2b2lkICphcmcpOworKworKyAgLy8gQ29udGludW91c2x5IG1vdmVzIGRh dGEgZnJvbSB0aGUgZGV2aWNlIHRvIHRoZSBjb25zdW1lcgorKyAgdm9pZCBUaHJlYWRMb29wKCk7 CisrICAvLyBPdXIgY3JlYXRvciwgdGhlIGF1ZGlvIG1hbmFnZXIgbmVlZHMgdG8gYmUgbm90aWZp ZWQgd2hlbiB3ZSBjbG9zZS4KKysgIEF1ZGlvTWFuYWdlckJhc2UqIG1hbmFnZXI7CisrICAvLyBQ YXJhbWV0ZXJzIG9mIHRoZSBzb3VyY2UKKysgIEF1ZGlvUGFyYW1ldGVycyBwYXJhbXM7CisrICAv LyBXZSBzdG9yZSBkYXRhIGhlcmUgZm9yIGNvbnN1bWVyCisrICBzdGQ6OnVuaXF1ZV9wdHI8QXVk aW9CdXM+IGF1ZGlvX2J1czsKKysgIC8vIENhbGwtYmFjayB0aGF0IGNvbnN1bWVzIHJlY29yZGVk IGRhdGEKKysgIEF1ZGlvSW5wdXRDYWxsYmFjayogY2FsbGJhY2s7ICAvLyBWYWxpZCBkdXJpbmcg YSByZWNvcmRpbmcgc2Vzc2lvbi4KKysgIC8vIEhhbmRsZSBvZiB0aGUgYXVkaW8gZGV2aWNlCisr ICBzdHJ1Y3Qgc2lvX2hkbCogaGRsOworKyAgLy8gQ3VycmVudCBzdGF0ZSBvZiB0aGUgc3RyZWFt CisrICBlbnVtIFN0cmVhbVN0YXRlIHN0YXRlOworKyAgLy8gSGlnaCBwcmlvcml0eSB0aHJlYWQg cnVubmluZyBUaHJlYWRMb29wKCkKKysgIHB0aHJlYWRfdCB0aHJlYWQ7CisrICAvLyBOdW1iZXIg b2YgZnJhbWVzIGJ1ZmZlcmVkIGluIHRoZSBoYXJkd2FyZQorKyAgaW50IGh3X2RlbGF5OworKyAg Ly8gVGVtcG9yYXJ5IGJ1ZmZlciB3aGVyZSBkYXRhIGlzIHN0b3JlZCBzbmRpby1jb21wYXRpYmxl IGZvcm1hdAorKyAgY2hhciogYnVmZmVyOworKworKyAgRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdO KFNuZGlvQXVkaW9JbnB1dFN0cmVhbSk7CisrfTsKKysKKyt9ICAvLyBuYW1lc3BhY2UgbWVkaWEK KysKKysjZW5kaWYgIC8vIE1FRElBX0FVRElPX1NORElPX1NORElPX0lOUFVUX0hfCistLS0gL2Rl di9udWxsCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vbWVk aWEvYXVkaW8vc25kaW8vc25kaW9fb3V0cHV0LmNjCitAQCAtMCwwICsxLDE4MyBAQAorKy8vIENv cHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZl ZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHls ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysK KysjaW5jbHVkZSAiYmFzZS9sb2dnaW5nLmgiCisrI2luY2x1ZGUgImJhc2UvdGltZS90aW1lLmgi CisrI2luY2x1ZGUgImJhc2UvdGltZS9kZWZhdWx0X3RpY2tfY2xvY2suaCIKKysjaW5jbHVkZSAi bWVkaWEvYXVkaW8vYXVkaW9fbWFuYWdlcl9iYXNlLmgiCisrI2luY2x1ZGUgIm1lZGlhL2Jhc2Uv YXVkaW9fdGltZXN0YW1wX2hlbHBlci5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9z bmRpb19vdXRwdXQuaCIKKysKKytuYW1lc3BhY2UgbWVkaWEgeworKworK3N0YXRpYyBjb25zdCBT YW1wbGVGb3JtYXQga1NhbXBsZUZvcm1hdCA9IGtTYW1wbGVGb3JtYXRTMTY7CisrCisrdm9pZCBT bmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpPbk1vdmVDYWxsYmFjayh2b2lkICphcmcsIGludCBkZWx0 YSkgeworKyAgU25kaW9BdWRpb091dHB1dFN0cmVhbSogc2VsZiA9IHN0YXRpY19jYXN0PFNuZGlv QXVkaW9PdXRwdXRTdHJlYW0qPihhcmcpOworKworKyAgc2VsZi0+aHdfZGVsYXkgLT0gZGVsdGE7 CisrfQorKworK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6T25Wb2xDYWxsYmFjayh2b2lk ICphcmcsIHVuc2lnbmVkIGludCB2b2wpIHsKKysgIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0qIHNl bGYgPSBzdGF0aWNfY2FzdDxTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKj4oYXJnKTsKKysKKysgIHNl bGYtPnZvbCA9IHZvbDsKKyt9CisrCisrdm9pZCAqU25kaW9BdWRpb091dHB1dFN0cmVhbTo6VGhy ZWFkRW50cnkodm9pZCAqYXJnKSB7CisrICBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKiBzZWxmID0g c3RhdGljX2Nhc3Q8U25kaW9BdWRpb091dHB1dFN0cmVhbSo+KGFyZyk7CisrCisrICBzZWxmLT5U aHJlYWRMb29wKCk7CisrICByZXR1cm4gTlVMTDsKKyt9CisrCisrU25kaW9BdWRpb091dHB1dFN0 cmVhbTo6U25kaW9BdWRpb091dHB1dFN0cmVhbShjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFt cywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1ZGlv TWFuYWdlckJhc2UqIG1hbmFnZXIpCisrICAgIDogbWFuYWdlcihtYW5hZ2VyKSwKKysgICAgICBw YXJhbXMocGFyYW1zKSwKKysgICAgICBhdWRpb19idXMoQXVkaW9CdXM6OkNyZWF0ZShwYXJhbXMp KSwKKysgICAgICBzdGF0ZShrQ2xvc2VkKSwKKysgICAgICBtdXRleChQVEhSRUFEX01VVEVYX0lO SVRJQUxJWkVSKSB7CisrfQorKworK1NuZGlvQXVkaW9PdXRwdXRTdHJlYW06On5TbmRpb0F1ZGlv T3V0cHV0U3RyZWFtKCkgeworKyAgaWYgKHN0YXRlICE9IGtDbG9zZWQpCisrICAgIENsb3NlKCk7 CisrfQorKworK2Jvb2wgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6T3BlbigpIHsKKysgIHN0cnVj dCBzaW9fcGFyIHBhcjsKKysgIGludCBzaWc7CisrCisrICBpZiAocGFyYW1zLmZvcm1hdCgpICE9 IEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xJTkVBUiAmJgorKyAgICAgIHBhcmFtcy5mb3Jt YXQoKSAhPSBBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MT1dfTEFURU5DWSkgeworKyAgICBM T0coV0FSTklORykgPDwgIlVuc3VwcG9ydGVkIGF1ZGlvIGZvcm1hdC4iOworKyAgICByZXR1cm4g ZmFsc2U7CisrICB9CisrICBzaW9faW5pdHBhcigmcGFyKTsKKysgIHBhci5yYXRlID0gcGFyYW1z LnNhbXBsZV9yYXRlKCk7CisrICBwYXIucGNoYW4gPSBwYXJhbXMuY2hhbm5lbHMoKTsKKysgIHBh ci5iaXRzID0gU2FtcGxlRm9ybWF0VG9CaXRzUGVyQ2hhbm5lbChrU2FtcGxlRm9ybWF0KTsKKysg IHBhci5icHMgPSBwYXIuYml0cyAvIDg7CisrICBwYXIuc2lnID0gc2lnID0gcGFyLmJpdHMgIT0g OCA/IDEgOiAwOworKyAgcGFyLmxlID0gU0lPX0xFX05BVElWRTsKKysgIHBhci5hcHBidWZzeiA9 IHBhcmFtcy5mcmFtZXNfcGVyX2J1ZmZlcigpOworKworKyAgaGRsID0gc2lvX29wZW4oU0lPX0RF VkFOWSwgU0lPX1BMQVksIDApOworKyAgaWYgKGhkbCA9PSBOVUxMKSB7CisrICAgIExPRyhFUlJP UikgPDwgIkNvdWxkbid0IG9wZW4gYXVkaW8gZGV2aWNlLiI7CisrICAgIHJldHVybiBmYWxzZTsK KysgIH0KKysgIGlmICghc2lvX3NldHBhcihoZGwsICZwYXIpIHx8ICFzaW9fZ2V0cGFyKGhkbCwg JnBhcikpIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3Qgc2V0IGF1ZGlvIHBhcmFtZXRl cnMuIjsKKysgICAgZ290byBiYWRfY2xvc2U7CisrICB9CisrICBpZiAocGFyLnJhdGUgICE9ICh1 bnNpZ25lZCBpbnQpcGFyYW1zLnNhbXBsZV9yYXRlKCkgfHwKKysgICAgICBwYXIucGNoYW4gIT0g KHVuc2lnbmVkIGludClwYXJhbXMuY2hhbm5lbHMoKSB8fAorKyAgICAgIHBhci5iaXRzICAhPSAo dW5zaWduZWQgaW50KVNhbXBsZUZvcm1hdFRvQml0c1BlckNoYW5uZWwoa1NhbXBsZUZvcm1hdCkg fHwKKysgICAgICBwYXIuc2lnICAgIT0gKHVuc2lnbmVkIGludClzaWcgfHwKKysgICAgICAocGFy LmJwcyA+IDEgJiYgcGFyLmxlICE9IFNJT19MRV9OQVRJVkUpIHx8CisrICAgICAgKHBhci5iaXRz ICE9IHBhci5icHMgKiA4KSkgeworKyAgICBMT0coRVJST1IpIDw8ICJVbnN1cHBvcnRlZCBhdWRp byBwYXJhbWV0ZXJzLiI7CisrICAgIGdvdG8gYmFkX2Nsb3NlOworKyAgfQorKyAgc3RhdGUgPSBr U3RvcHBlZDsKKysgIHZvbHBlbmRpbmcgPSAwOworKyAgdm9sID0gMDsKKysgIGJ1ZmZlciA9IG5l dyBjaGFyW2F1ZGlvX2J1cy0+ZnJhbWVzKCkgKiBwYXJhbXMuR2V0Qnl0ZXNQZXJGcmFtZShrU2Ft cGxlRm9ybWF0KV07CisrICBzaW9fb25tb3ZlKGhkbCwgJk9uTW92ZUNhbGxiYWNrLCB0aGlzKTsK KysgIHNpb19vbnZvbChoZGwsICZPblZvbENhbGxiYWNrLCB0aGlzKTsKKysgIHJldHVybiB0cnVl OworKyBiYWRfY2xvc2U6CisrICBzaW9fY2xvc2UoaGRsKTsKKysgIHJldHVybiBmYWxzZTsKKyt9 CisrCisrdm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpDbG9zZSgpIHsKKysgIGlmIChzdGF0 ZSA9PSBrQ2xvc2VkKQorKyAgICByZXR1cm47CisrICBpZiAoc3RhdGUgPT0ga1J1bm5pbmcpCisr ICAgIFN0b3AoKTsKKysgIHN0YXRlID0ga0Nsb3NlZDsKKysgIGRlbGV0ZSBbXSBidWZmZXI7Cisr ICBzaW9fY2xvc2UoaGRsKTsKKysgIG1hbmFnZXItPlJlbGVhc2VPdXRwdXRTdHJlYW0odGhpcyk7 ICAvLyBDYWxscyB0aGUgZGVzdHJ1Y3RvcgorK30KKysKKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRT dHJlYW06OlN0YXJ0KEF1ZGlvU291cmNlQ2FsbGJhY2sqIGNhbGxiYWNrKSB7CisrICBzdGF0ZSA9 IGtSdW5uaW5nOworKyAgaHdfZGVsYXkgPSAwOworKyAgc291cmNlID0gY2FsbGJhY2s7CisrICBz aW9fc3RhcnQoaGRsKTsKKysgIGlmIChwdGhyZWFkX2NyZWF0ZSgmdGhyZWFkLCBOVUxMLCAmVGhy ZWFkRW50cnksIHRoaXMpICE9IDApIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiRmFpbGVkIHRvIGNy ZWF0ZSByZWFsLXRpbWUgdGhyZWFkLiI7CisrICAgIHNpb19zdG9wKGhkbCk7CisrICAgIHN0YXRl ID0ga1N0b3BwZWQ7CisrICB9CisrfQorKworK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6 U3RvcCgpIHsKKysgIGlmIChzdGF0ZSA9PSBrU3RvcHBlZCkKKysgICAgcmV0dXJuOworKyAgc3Rh dGUgPSBrU3RvcFdhaXQ7CisrICBwdGhyZWFkX2pvaW4odGhyZWFkLCBOVUxMKTsKKysgIHNpb19z dG9wKGhkbCk7CisrICBzdGF0ZSA9IGtTdG9wcGVkOworK30KKysKKyt2b2lkIFNuZGlvQXVkaW9P dXRwdXRTdHJlYW06OlNldFZvbHVtZShkb3VibGUgdikgeworKyAgcHRocmVhZF9tdXRleF9sb2Nr KCZtdXRleCk7CisrICB2b2wgPSB2ICogU0lPX01BWFZPTDsKKysgIHZvbHBlbmRpbmcgPSAxOwor KyAgcHRocmVhZF9tdXRleF91bmxvY2soJm11dGV4KTsKKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlv T3V0cHV0U3RyZWFtOjpHZXRWb2x1bWUoZG91YmxlKiB2KSB7CisrICBwdGhyZWFkX211dGV4X2xv Y2soJm11dGV4KTsKKysgICp2ID0gdm9sICogKDEuIC8gU0lPX01BWFZPTCk7CisrICBwdGhyZWFk X211dGV4X3VubG9jaygmbXV0ZXgpOworK30KKysKKysvLyBUaGlzIHN0cmVhbSBpcyBhbHdheXMg dXNlZCB3aXRoIHN1YiBzZWNvbmQgYnVmZmVyIHNpemVzLCB3aGVyZSBpdCdzCisrLy8gc3VmZmlj aWVudCB0byBzaW1wbHkgYWx3YXlzIGZsdXNoIHVwb24gU3RhcnQoKS4KKyt2b2lkIFNuZGlvQXVk aW9PdXRwdXRTdHJlYW06OkZsdXNoKCkge30KKysKKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJl YW06OlRocmVhZExvb3Aodm9pZCkgeworKyAgaW50IGF2YWlsLCBjb3VudCwgcmVzdWx0OworKwor KyAgd2hpbGUgKHN0YXRlID09IGtSdW5uaW5nKSB7CisrICAgIC8vIFVwZGF0ZSB2b2x1bWUgaWYg bmVlZGVkCisrICAgIHB0aHJlYWRfbXV0ZXhfbG9jaygmbXV0ZXgpOworKyAgICBpZiAodm9scGVu ZGluZykgeworKyAgICAgIHZvbHBlbmRpbmcgPSAwOworKyAgICAgIHNpb19zZXR2b2woaGRsLCB2 b2wpOworKyAgICB9CisrICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtdXRleCk7CisrCisrICAg IC8vIEdldCBkYXRhIHRvIHBsYXkKKysgICAgY29uc3QgYmFzZTo6VGltZURlbHRhIGRlbGF5ID0g QXVkaW9UaW1lc3RhbXBIZWxwZXI6OkZyYW1lc1RvVGltZShod19kZWxheSwKKysJcGFyYW1zLnNh bXBsZV9yYXRlKCkpOworKyAgICBjb3VudCA9IHNvdXJjZS0+T25Nb3JlRGF0YShkZWxheSwgYmFz ZTo6VGltZVRpY2tzOjpOb3coKSwgMCwgYXVkaW9fYnVzLmdldCgpKTsKKysgICAgYXVkaW9fYnVz LT5Ub0ludGVybGVhdmVkPFNpZ25lZEludDE2U2FtcGxlVHlwZVRyYWl0cz4oY291bnQsIHJlaW50 ZXJwcmV0X2Nhc3Q8aW50MTZfdCo+KGJ1ZmZlcikpOworKyAgICBpZiAoY291bnQgPT0gMCkgewor KyAgICAgIC8vIFdlIGhhdmUgdG8gc3VibWl0IHNvbWV0aGluZyB0byB0aGUgZGV2aWNlCisrICAg ICAgY291bnQgPSBhdWRpb19idXMtPmZyYW1lcygpOworKyAgICAgIG1lbXNldChidWZmZXIsIDAs IGNvdW50ICogcGFyYW1zLkdldEJ5dGVzUGVyRnJhbWUoa1NhbXBsZUZvcm1hdCkpOworKyAgICAg IExPRyhXQVJOSU5HKSA8PCAiTm8gZGF0YSB0byBwbGF5LCBydW5uaW5nIGVtcHR5IGN5Y2xlLiI7 CisrICAgIH0KKysKKysgICAgLy8gU3VibWl0IGRhdGEgdG8gdGhlIGRldmljZQorKyAgICBhdmFp bCA9IGNvdW50ICogcGFyYW1zLkdldEJ5dGVzUGVyRnJhbWUoa1NhbXBsZUZvcm1hdCk7CisrICAg IHJlc3VsdCA9IHNpb193cml0ZShoZGwsIGJ1ZmZlciwgYXZhaWwpOworKyAgICBpZiAocmVzdWx0 ID09IDApIHsKKysgICAgICBMT0coV0FSTklORykgPDwgIkF1ZGlvIGRldmljZSBkaXNjb25uZWN0 ZWQuIjsKKysgICAgICBicmVhazsKKysgICAgfQorKworKyAgICAvLyBVcGRhdGUgaGFyZHdhcmUg cG9pbnRlcgorKyAgICBod19kZWxheSArPSBjb3VudDsKKysgIH0KKyt9CisrCisrfSAgLy8gbmFt ZXNwYWNlIG1lZGlhCistLS0gL2Rldi9udWxsCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMv M3JkcGFydHkvY2hyb21pdW0vbWVkaWEvYXVkaW8vc25kaW8vc25kaW9fb3V0cHV0LmgKK0BAIC0w LDAgKzEsODYgQEAKKysvLyBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMu IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292 ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRo ZSBMSUNFTlNFIGZpbGUuCisrCisrI2lmbmRlZiBNRURJQV9BVURJT19TTkRJT19TTkRJT19PVVRQ VVRfSF8KKysjZGVmaW5lIE1FRElBX0FVRElPX1NORElPX1NORElPX09VVFBVVF9IXworKworKyNp bmNsdWRlIDxwdGhyZWFkLmg+CisrI2luY2x1ZGUgPHNuZGlvLmg+CisrCisrI2luY2x1ZGUgImJh c2UvdGltZS90aWNrX2Nsb2NrLmgiCisrI2luY2x1ZGUgImJhc2UvdGltZS90aW1lLmgiCisrI2lu Y2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX2lvLmgiCisrCisrbmFtZXNwYWNlIG1lZGlhIHsKKysK KytjbGFzcyBBdWRpb01hbmFnZXJCYXNlOworKworKy8vIEltcGxlbWVudGF0aW9uIG9mIEF1ZGlv T3V0cHV0U3RyZWFtIHVzaW5nIHNuZGlvKDcpCisrY2xhc3MgU25kaW9BdWRpb091dHB1dFN0cmVh bSA6IHB1YmxpYyBBdWRpb091dHB1dFN0cmVhbSB7CisrIHB1YmxpYzoKKysgIC8vIFRoZSBtYW5h Z2VyIGlzIGNyZWF0aW5nIHRoaXMgb2JqZWN0CisrICBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKGNv bnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAgICAgICAgICAgICAgICAgICAgICAgICBB dWRpb01hbmFnZXJCYXNlKiBtYW5hZ2VyKTsKKysgIHZpcnR1YWwgflNuZGlvQXVkaW9PdXRwdXRT dHJlYW0oKTsKKysKKysgIC8vIEltcGxlbWVudGF0aW9uIG9mIEF1ZGlvT3V0cHV0U3RyZWFtLgor KyAgYm9vbCBPcGVuKCkgb3ZlcnJpZGU7CisrICB2b2lkIENsb3NlKCkgb3ZlcnJpZGU7CisrICB2 b2lkIFN0YXJ0KEF1ZGlvU291cmNlQ2FsbGJhY2sqIGNhbGxiYWNrKSBvdmVycmlkZTsKKysgIHZv aWQgU3RvcCgpIG92ZXJyaWRlOworKyAgdm9pZCBTZXRWb2x1bWUoZG91YmxlIHZvbHVtZSkgb3Zl cnJpZGU7CisrICB2b2lkIEdldFZvbHVtZShkb3VibGUqIHZvbHVtZSkgb3ZlcnJpZGU7CisrICB2 b2lkIEZsdXNoKCkgb3ZlcnJpZGU7CisrCisrICBmcmllbmQgdm9pZCBzbmRpb19vbm1vdmUodm9p ZCAqYXJnLCBpbnQgZGVsdGEpOworKyAgZnJpZW5kIHZvaWQgc25kaW9fb252b2wodm9pZCAqYXJn LCB1bnNpZ25lZCBpbnQgdm9sKTsKKysgIGZyaWVuZCB2b2lkICpzbmRpb190aHJlYWRzdGFydCh2 b2lkICphcmcpOworKworKyBwcml2YXRlOgorKyAgZW51bSBTdHJlYW1TdGF0ZSB7CisrICAgIGtD bG9zZWQsICAgICAgICAgICAgLy8gTm90IG9wZW5lZCB5ZXQKKysgICAga1N0b3BwZWQsICAgICAg ICAgICAvLyBEZXZpY2Ugb3BlbmVkLCBidXQgbm90IHN0YXJ0ZWQgeWV0CisrICAgIGtSdW5uaW5n LCAgICAgICAgICAgLy8gU3RhcnRlZCwgZGV2aWNlIHBsYXlpbmcKKysgICAga1N0b3BXYWl0ICAg ICAgICAgICAvLyBTdG9wcGluZywgd2FpdGluZyBmb3IgdGhlIHJlYWwtdGltZSB0aHJlYWQgdG8g ZXhpdAorKyAgfTsKKysKKysgIC8vIEMtc3R5bGUgY2FsbC1iYWNrcworKyAgc3RhdGljIHZvaWQg T25Nb3ZlQ2FsbGJhY2sodm9pZCAqYXJnLCBpbnQgZGVsdGEpOworKyAgc3RhdGljIHZvaWQgT25W b2xDYWxsYmFjayh2b2lkICphcmcsIHVuc2lnbmVkIGludCB2b2wpOworKyAgc3RhdGljIHZvaWQq IFRocmVhZEVudHJ5KHZvaWQgKmFyZyk7CisrCisrICAvLyBDb250aW51b3VzbHkgbW92ZXMgZGF0 YSBmcm9tIHRoZSBwcm9kdWNlciB0byB0aGUgZGV2aWNlCisrICB2b2lkIFRocmVhZExvb3Aodm9p ZCk7CisrCisrICAvLyBPdXIgY3JlYXRvciwgdGhlIGF1ZGlvIG1hbmFnZXIgbmVlZHMgdG8gYmUg bm90aWZpZWQgd2hlbiB3ZSBjbG9zZS4KKysgIEF1ZGlvTWFuYWdlckJhc2UqIG1hbmFnZXI7Cisr ICAvLyBQYXJhbWV0ZXJzIG9mIHRoZSBzb3VyY2UKKysgIEF1ZGlvUGFyYW1ldGVycyBwYXJhbXM7 CisrICAvLyBTb3VyY2Ugc3RvcmVzIGRhdGEgaGVyZQorKyAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlv QnVzPiBhdWRpb19idXM7CisrICAvLyBDYWxsLWJhY2sgdGhhdCBwcm9kdWNlcyBkYXRhIHRvIHBs YXkKKysgIEF1ZGlvU291cmNlQ2FsbGJhY2sqIHNvdXJjZTsKKysgIC8vIEhhbmRsZSBvZiB0aGUg YXVkaW8gZGV2aWNlCisrICBzdHJ1Y3Qgc2lvX2hkbCogaGRsOworKyAgLy8gQ3VycmVudCBzdGF0 ZSBvZiB0aGUgc3RyZWFtCisrICBlbnVtIFN0cmVhbVN0YXRlIHN0YXRlOworKyAgLy8gSGlnaCBw cmlvcml0eSB0aHJlYWQgcnVubmluZyBUaHJlYWRMb29wKCkKKysgIHB0aHJlYWRfdCB0aHJlYWQ7 CisrICAvLyBQcm90ZWN0cyB2b2wsIHZvbHBlbmRpbmcgYW5kIGh3X2RlbGF5CisrICBwdGhyZWFk X211dGV4X3QgbXV0ZXg7CisrICAvLyBDdXJyZW50IHZvbHVtZSBpbiB0aGUgMC4uU0lPX01BWFZP TCByYW5nZQorKyAgaW50IHZvbDsKKysgIC8vIFNldCB0byAxIGlmIHZvbHVtZXMgbXVzdCBiZSBy ZWZyZXNoZWQgaW4gdGhlIHJlYWx0aW1lIHRocmVhZAorKyAgaW50IHZvbHBlbmRpbmc7CisrICAv LyBOdW1iZXIgb2YgZnJhbWVzIGJ1ZmZlcmVkIGluIHRoZSBoYXJkd2FyZQorKyAgaW50IGh3X2Rl bGF5OworKyAgLy8gVGVtcG9yYXJ5IGJ1ZmZlciB3aGVyZSBkYXRhIGlzIHN0b3JlZCBzbmRpby1j b21wYXRpYmxlIGZvcm1hdAorKyAgY2hhciogYnVmZmVyOworKworKyAgRElTQUxMT1dfQ09QWV9B TkRfQVNTSUdOKFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0pOworK307CisrCisrfSAgLy8gbmFtZXNw YWNlIG1lZGlhCisrCisrI2VuZGlmICAvLyBNRURJQV9BVURJT19TTkRJT19TTkRJT19PVVRQVVRf SF8KKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21l ZGlhL21lZGlhX29wdGlvbnMuZ25pCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vbWVkaWEvbWVkaWFfb3B0aW9ucy5nbmkKK0BAIC0xMzMsNiArMTMzLDkgQEAg ZGVjbGFyZV9hcmdzKCkgeworICAgIyBFbmFibGVzIHJ1bnRpbWUgc2VsZWN0aW9uIG9mIEFMU0Eg bGlicmFyeSBmb3IgYXVkaW8uCisgICB1c2VfYWxzYSA9IGZhbHNlCisgCisrICAjIEVuYWJsZSBy dW50aW1lIHNlbGVjdGlvbiBvZiBzbmRpbyg3KQorKyAgdXNlX3NuZGlvID0gZmFsc2UKKysKKyAg ICMgQWxzYSBzaG91bGQgYmUgdXNlZCBvbiBub24tQW5kcm9pZCwgbm9uLU1hYyBQT1NJWCBzeXN0 ZW1zLgorICAgIyBBbHNhIHNob3VsZCBiZSB1c2VkIG9uIGRlc2t0b3AgQ2hyb21lY2FzdCBhbmQg YXVkaW8tb25seSBDaHJvbWVjYXN0IGJ1aWxkcy4KKyAgIGlmIChpc19wb3NpeCAmJiAhaXNfYW5k cm9pZCAmJiAhaXNfbWFjICYmCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMzAwLWNocm9taXVtLW11c2wtaGFja3MucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdp bmUvcGF0Y2hlcy8wMzAwLWNocm9taXVtLW11c2wtaGFja3MucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41MjVhZWI4YTYzZDIKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMzAwLWNocm9taXVtLW11c2wtaGFja3Mu cGF0Y2gKQEAgLTAsMCArMSw1MiBAQAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMv M3JkcGFydHkvY2hyb21pdW0vYmFzZS9kZWJ1Zy9zdGFja190cmFjZS5jYworKysrIHF0Ni13ZWJl bmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvZGVidWcvc3RhY2tfdHJhY2Uu Y2MKK0BAIC0yMzQsNyArMjM0LDcgQEAgYm9vbCBTdGFja1RyYWNlOjpXaWxsU3ltYm9saXplVG9T dHJlYW1GbworICAgLy8gU3ltYm9scyBhcmUgbm90IGV4cGVjdGVkIHRvIGJlIHJlbGlhYmxlIHdo ZW4gZ24gYXJncyBzcGVjaWZpZXMKKyAgIC8vIHN5bWJvbF9sZXZlbD0wLgorICAgcmV0dXJuIGZh bHNlOworLSNlbGlmIGRlZmluZWQoX19VQ0xJQkNfXykgfHwgZGVmaW5lZChfQUlYKQorKyNlbGlm IGRlZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVkKF9BSVgpCisgICAvLyBTdGFja1RyYWNlOjpP dXRwdXRUb1N0cmVhbSgpIGlzIG5vdCBpbXBsZW1lbnRlZCB1bmRlciB1Y2xpYmMsIG5vciBBSVgu CisgICAvLyBTZWUgaHR0cHM6Ly9jcmJ1Zy5jb20vNzA2NzI4CisgICByZXR1cm4gZmFsc2U7CitA QCAtMjczLDcgKzI3Myw5IEBAIHZvaWQgU3RhY2tUcmFjZTo6UHJpbnQoKSBjb25zdCB7CisgfQor IAorIHZvaWQgU3RhY2tUcmFjZTo6T3V0cHV0VG9TdHJlYW0oc3RkOjpvc3RyZWFtKiBvcykgY29u c3QgeworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgIE91dHB1dFRvU3RyZWFtV2l0aFByZWZp eChvcywgbnVsbHB0cik7CisrI2VuZGlmCisgfQorIAorIHN0ZDo6c3RyaW5nIFN0YWNrVHJhY2U6 OlRvU3RyaW5nKCkgY29uc3QgeworQEAgLTI4MSwxNCArMjgzLDE0IEBAIHN0ZDo6c3RyaW5nIFN0 YWNrVHJhY2U6OlRvU3RyaW5nKCkgY29uc3QKKyB9Cisgc3RkOjpzdHJpbmcgU3RhY2tUcmFjZTo6 VG9TdHJpbmdXaXRoUHJlZml4KGNvbnN0IGNoYXIqIHByZWZpeF9zdHJpbmcpIGNvbnN0IHsKKyAg IHN0ZDo6c3RyaW5nc3RyZWFtIHN0cmVhbTsKKy0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYg IWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9BSVgp CisgICBPdXRwdXRUb1N0cmVhbVdpdGhQcmVmaXgoJnN0cmVhbSwgcHJlZml4X3N0cmluZyk7Cisg I2VuZGlmCisgICByZXR1cm4gc3RyZWFtLnN0cigpOworIH0KKyAKKyBzdGQ6Om9zdHJlYW0mIG9w ZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBvcywgY29uc3QgU3RhY2tUcmFjZSYgcykgeworLSNpZiAh ZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBkZWZpbmVkKF9fR0xJ QkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyAgIHMuT3V0cHV0VG9TdHJlYW0oJm9zKTsKKyAjZWxz ZQorICAgb3MgPDwgIlN0YWNrVHJhY2U6Ok91dHB1dFRvU3RyZWFtIG5vdCBpbXBsZW1lbnRlZC4i OworLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vbmV0 L3NvY2tldC91ZHBfc29ja2V0X3Bvc2l4LmNjCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMv M3JkcGFydHkvY2hyb21pdW0vbmV0L3NvY2tldC91ZHBfc29ja2V0X3Bvc2l4LmNjCitAQCAtMTE1 Nyw3ICsxMTU3LDExIEBAIFNlbmRSZXN1bHQgVURQU29ja2V0UG9zaXhTZW5kZXI6OkludGVybmEK KyAgICAgbXNnX2lvdi0+cHVzaF9iYWNrKHtjb25zdF9jYXN0PGNoYXIqPihidWZmZXItPmRhdGEo KSksIGJ1ZmZlci0+bGVuZ3RoKCl9KTsKKyAgIG1zZ3ZlYy0+cmVzZXJ2ZShidWZmZXJzLnNpemUo KSk7CisgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IGJ1ZmZlcnMuc2l6ZSgpOyBqKyspCisrI2lm ZGVmIF9fR0xJQkNfXworICAgICBtc2d2ZWMtPnB1c2hfYmFjayh7e251bGxwdHIsIDAsICZtc2df aW92W2pdLCAxLCBudWxscHRyLCAwLCAwfSwgMH0pOworKyNlbHNlCisrICAgIG1zZ3ZlYy0+cHVz aF9iYWNrKHt7bnVsbHB0ciwgMCwgJm1zZ19pb3Zbal0sIDEsIDAsIDAsIDB9LCAwfSk7CisrI2Vu ZGlmCisgICBpbnQgcmVzdWx0ID0gSEFORExFX0VJTlRSKFNlbmRtbXNnKGZkLCAmbXNndmVjWzBd LCBidWZmZXJzLnNpemUoKSwgMCkpOworICAgU2VuZFJlc3VsdCBzZW5kX3Jlc3VsdCgwLCAwLCBz dGQ6Om1vdmUoYnVmZmVycykpOworICAgaWYgKHJlc3VsdCA8IDApIHsKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAzMDEtY2hyb21pdW0tbXVzbC1zYW5kYm94LnBh dGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDMwMS1jaHJvbWl1bS1tdXNsLXNh bmRib3gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40YWZi ZWM1Yjk4ZWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wMzAxLWNocm9taXVtLW11c2wtc2FuZGJveC5wYXRjaApAQCAtMCwwICsxLDg2IEBACistLS0g cXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xp bnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5j YworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gv bGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25z LmNjCitAQCAtMTM0LDYgKzEzNCw3IEBAIG5hbWVzcGFjZSBzYW5kYm94IHsKKyBSZXN1bHRFeHBy IFJlc3RyaWN0Q2xvbmVUb1RocmVhZHNBbmRFUEVSTUZvcmsoKSB7CisgICBjb25zdCBBcmc8dW5z aWduZWQgbG9uZz4gZmxhZ3MoMCk7CisgCisrI2lmZGVmIF9fR0xJQkNfXworICAgLy8gVE9ETyht ZGVtcHNreSk6IEV4dGVuZCBEU0wgdG8gc3VwcG9ydCAoZmxhZ3MgJiB+bWFzazEpID09IG1hc2sy LgorICAgY29uc3QgdWludDY0X3Qga0FuZHJvaWRDbG9uZU1hc2sgPSBDTE9ORV9WTSB8IENMT05F X0ZTIHwgQ0xPTkVfRklMRVMgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDTE9ORV9TSUdIQU5EIHwgQ0xPTkVfVEhSRUFEIHwKK0BAIC0xNjAsNiArMTYxLDE2IEBAIFJl c3VsdEV4cHIgUmVzdHJpY3RDbG9uZVRvVGhyZWFkc0FuZEVQRVIKKyAgIHJldHVybiBJZihJc0Fu ZHJvaWQoKSA/IGFuZHJvaWRfdGVzdCA6IGdsaWJjX3Rlc3QsIEFsbG93KCkpCisgICAgICAgLkVs c2VJZihpc19mb3JrX29yX2Nsb25lX3Zmb3JrLCBFcnJvcihFUEVSTSkpCisgICAgICAgLkVsc2Uo Q3Jhc2hTSUdTWVNDbG9uZSgpKTsKKysjZWxzZQorKyAgY29uc3QgaW50IHJlcXVpcmVkID0gQ0xP TkVfVk0gfCBDTE9ORV9GUyB8IENMT05FX0ZJTEVTIHwgQ0xPTkVfU0lHSEFORCB8CisrICAgICAg ICAgICAgICAgICAgICAgICBDTE9ORV9USFJFQUQgfCBDTE9ORV9TWVNWU0VNOworKyAgY29uc3Qg aW50IHNhZmUgPSBDTE9ORV9TRVRUTFMgfCBDTE9ORV9QQVJFTlRfU0VUVElEIHwgQ0xPTkVfQ0hJ TERfQ0xFQVJUSUQgfAorKyAgICAgICAgICAgICAgICAgICBDTE9ORV9ERVRBQ0hFRDsKKysgIGNv bnN0IEJvb2xFeHByIHRocmVhZF9jbG9uZV9vayA9IChmbGFncyZ+c2FmZSk9PXJlcXVpcmVkOwor KyAgcmV0dXJuIElmKHRocmVhZF9jbG9uZV9vaywgQWxsb3coKSkKKysgICAgICAuRWxzZUlmKChm bGFncyAmIChDTE9ORV9WTSB8IENMT05FX1RIUkVBRCkpID09IDAsIEVycm9yKEVQRVJNKSkKKysg ICAgICAuRWxzZShDcmFzaFNJR1NZU0Nsb25lKCkpOworKyNlbmRpZgorIH0KKyAKKyAjaWZuZGVm IFBSX1BBQ19SRVNFVF9LRVlTCistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9z ZXRzLmNjCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2Fu ZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYworQEAgLTQyNCw2 ICs0MjQsOSBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRPCisgI2lm IGRlZmluZWQoX19pMzg2X18pCisgICAgIGNhc2UgX19OUl93YWl0cGlkOgorICNlbmRpZgorKyNp ZiAhZGVmaW5lZChfX0dMSUJDX18pCisrICAgIGNhc2UgX19OUl9zZXRfdGlkX2FkZHJlc3M6Cisr I2VuZGlmCisgICAgICAgcmV0dXJuIHRydWU7CisgICAgIGNhc2UgX19OUl9jbG9uZTogIC8vIFNo b3VsZCBiZSBwYXJhbWV0ZXItcmVzdHJpY3RlZC4KKyAgICAgY2FzZSBfX05SX3NldG5zOiAgLy8g UHJpdmlsZWdlZC4KK0BAIC00MzYsNyArNDM5LDkgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxv d2VkUHJvY2Vzc1N0YXJ0TworICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2 XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCisgICAgIGNhc2UgX19OUl9zZXRfdGhyZWFkX2Fy ZWE6CisgI2VuZGlmCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICAgICBjYXNlIF9fTlJfc2V0 X3RpZF9hZGRyZXNzOgorKyNlbmRpZgorICAgICBjYXNlIF9fTlJfdW5zaGFyZToKKyAjaWYgIWRl ZmluZWQoX19taXBzX18pICYmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQorICAgICBjYXNlIF9fTlJf dmZvcms6CitAQCAtNTUwLDYgKzU1NSw5IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEFk ZHJlc3NTcGFjZUEKKyAgICAgY2FzZSBfX05SX21sb2NrOgorICAgICBjYXNlIF9fTlJfbXVubG9j azoKKyAgICAgY2FzZSBfX05SX211bm1hcDoKKysjaWZuZGVmIF9fR0xJQkNfXworKyAgICBjYXNl IF9fTlJfbXJlbWFwOgorKyNlbmRpZgorICAgICAgIHJldHVybiB0cnVlOworICAgICBjYXNlIF9f TlJfbWFkdmlzZToKKyAgICAgY2FzZSBfX05SX21pbmNvcmU6CitAQCAtNTY3LDcgKzU3NSw5IEBA IGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEFkZHJlc3NTcGFjZUEKKyAgICAgY2FzZSBfX05S X21vZGlmeV9sZHQ6CisgI2VuZGlmCisgICAgIGNhc2UgX19OUl9tcHJvdGVjdDoKKysjaWZkZWYg X19HTElCQ19fCisgICAgIGNhc2UgX19OUl9tcmVtYXA6CisrI2VuZGlmCisgICAgIGNhc2UgX19O Ul9tc3luYzoKKyAgICAgY2FzZSBfX05SX211bmxvY2thbGw6CisgICAgIGNhc2UgX19OUl9yZWFk YWhlYWQ6CistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS9zYW5kYm94L3BvbGljeS9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjCisrKysg cXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9wb2xpY3kv bGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYworQEAgLTk5LDkgKzk5LDE0IEBAIFJl c3VsdEV4cHIgUmVuZGVyZXJQcm9jZXNzUG9saWN5OjpFdmFsdWEKKyAgICAgY2FzZSBfX05SX3Vu YW1lOgorICAgICBjYXNlIF9fTlJfc2NoZWRfZ2V0cGFyYW06CisgICAgIGNhc2UgX19OUl9zY2hl ZF9nZXRzY2hlZHVsZXI6CisrI2lmbmRlZiBfX0dMSUJDX18KKysgICAgY2FzZSBfX05SX3NjaGVk X3NldHNjaGVkdWxlcjoKKysjZW5kaWYKKyAgICAgICByZXR1cm4gQWxsb3coKTsKKyAgICAgY2Fz ZSBfX05SX3NjaGVkX2dldGFmZmluaXR5OgorKyNpZmRlZiBfX0dMSUJDX18KKyAgICAgY2FzZSBf X05SX3NjaGVkX3NldHNjaGVkdWxlcjoKKysjZW5kaWYKKyAgICAgICByZXR1cm4gUmVzdHJpY3RT Y2hlZFRhcmdldChHZXRQb2xpY3lQaWQoKSwgc3lzbm8pOworICAgICBjYXNlIF9fTlJfcHJsaW1p dDY0OgorICAgICAgIC8vIFNlZSBjcmJ1Zy5jb20vNjYyNDUwIGFuZCBzZXRybGltaXQgY29tbWVu dCBhYm92ZS4KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAzMDIt Y2hyb21pdW0tbm8tbWFsbGluZm8ucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wMzAyLWNocm9taXVtLW5vLW1hbGxpbmZvLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uNTE5OTMwZTdiZWYwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDMwMi1jaHJvbWl1bS1uby1tYWxsaW5mby5wYXRjaApA QCAtMCwwICsxLDY3IEBACistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9iYXNlL3Byb2Nlc3MvcHJvY2Vzc19tZXRyaWNzX3Bvc2l4LmNjCisrKysgcXQ2 LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9wcm9jZXNzL3Byb2Nl c3NfbWV0cmljc19wb3NpeC5jYworQEAgLTEwNSw3ICsxMDUsOCBAQCB2b2lkIEluY3JlYXNlRmRM aW1pdFRvKHVuc2lnbmVkIGludCBtYXhfCisgCisgI2VuZGlmICAvLyAhQlVJTERGTEFHKElTX0ZV Q0hTSUEpCisgCistI2lmIEJVSUxERkxBRyhJU19MSU5VWCkgfHwgQlVJTERGTEFHKElTX0NIUk9N RU9TKSB8fCBCVUlMREZMQUcoSVNfQU5EUk9JRCkKKysjaWYgKEJVSUxERkxBRyhJU19MSU5VWCkg JiYgZGVmaW5lZChfX0dMSUJDX18pKSB8fCBcCisrCUJVSUxERkxBRyhJU19DSFJPTUVPUykgfHwg QlVJTERGTEFHKElTX0FORFJPSUQpCisgbmFtZXNwYWNlIHsKKyAKKyBzaXplX3QgR2V0TWFsbG9j VXNhZ2VNYWxsaW5mbygpIHsKK0BAIC0xMjMsMTcgKzEyNCwxOCBAQCBzaXplX3QgR2V0TWFsbG9j VXNhZ2VNYWxsaW5mbygpIHsKKyB9CisgCisgfSAgLy8gbmFtZXNwYWNlCistI2VuZGlmICAvLyBC VUlMREZMQUcoSVNfTElOVVgpIHx8IEJVSUxERkxBRyhJU19DSFJPTUVPUykgfHwKKy0gICAgICAg IC8vIEJVSUxERkxBRyhJU19BTkRST0lEKQorKyNlbmRpZiAgLy8gKEJVSUxERkxBRyhJU19MSU5V WCkgJiYgZGVmaW5lZChfX0dMSUJDX18pIHx8CisrCS8vIEJVSUxERkxBRyhJU19DSFJPTUVPUykg fHwgQlVJTERGTEFHKElTX0FORFJPSUQpCisgCisgc2l6ZV90IFByb2Nlc3NNZXRyaWNzOjpHZXRN YWxsb2NVc2FnZSgpIHsKKyAjaWYgQlVJTERGTEFHKElTX0FQUExFKQorICAgbWFsbG9jX3N0YXRp c3RpY3NfdCBzdGF0cyA9IHswfTsKKyAgIG1hbGxvY196b25lX3N0YXRpc3RpY3MobnVsbHB0ciwg JnN0YXRzKTsKKyAgIHJldHVybiBzdGF0cy5zaXplX2luX3VzZTsKKy0jZWxpZiBCVUlMREZMQUco SVNfTElOVVgpIHx8IEJVSUxERkxBRyhJU19DSFJPTUVPUykgfHwgQlVJTERGTEFHKElTX0FORFJP SUQpCisrI2VsaWYgKEJVSUxERkxBRyhJU19MSU5VWCkgJiYgZGVmaW5lZChfX0dMSUJDX18pKSB8 fCBcCisrCUJVSUxERkxBRyhJU19DSFJPTUVPUykgfHwgQlVJTERGTEFHKElTX0FORFJPSUQpCisg ICByZXR1cm4gR2V0TWFsbG9jVXNhZ2VNYWxsaW5mbygpOworLSNlbGlmIEJVSUxERkxBRyhJU19G VUNIU0lBKQorKyNlbGlmIEJVSUxERkxBRyhJU19GVUNIU0lBKSB8fCAoQlVJTERGTEFHKElTX0xJ TlVYKSAmJiAhZGVmaW5lZChfX0dMSUJDX18pKQorICAgLy8gVE9ETyhmdWNoc2lhKTogTm90IGN1 cnJlbnRseSBleHBvc2VkLiBodHRwczovL2NyYnVnLmNvbS83MzUwODcuCisgICByZXR1cm4gMDsK KyAjZW5kaWYKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL2Jhc2UvdHJhY2VfZXZlbnQvbWFsbG9jX2R1bXBfcHJvdmlkZXIuY2MKKysrKyBxdDYtd2Vi ZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL3RyYWNlX2V2ZW50L21hbGxv Y19kdW1wX3Byb3ZpZGVyLmNjCitAQCAtMTc0LDcgKzE3NCw4IEBAIHZvaWQgUmVwb3J0QXBwbGVB bGxvY1N0YXRzKHNpemVfdCogdG90YWwKKyAKKyAjaWYgKEJVSUxERkxBRyhVU0VfUEFSVElUSU9O X0FMTE9DX0FTX01BTExPQykgJiYgQlVJTERGTEFHKElTX0FORFJPSUQpKSB8fCBcCisgICAgICgh QlVJTERGTEFHKFVTRV9QQVJUSVRJT05fQUxMT0NfQVNfTUFMTE9DKSAmJiAhQlVJTERGTEFHKElT X1dJTikgJiYgICAgXAorLSAgICAgIUJVSUxERkxBRyhJU19BUFBMRSkgJiYgIUJVSUxERkxBRyhJ U19XSU4pICYmICFCVUlMREZMQUcoSVNfRlVDSFNJQSkpCisrICAgICAhQlVJTERGTEFHKElTX0FQ UExFKSAmJiAhQlVJTERGTEFHKElTX1dJTikgJiYgIUJVSUxERkxBRyhJU19GVUNIU0lBKSAmJiBc CisrICAgICAhKEJVSUxERkxBRyhJU19MSU5VWCkgJiYgIWRlZmluZWQoX19HTElCQ19fKSkpCisg dm9pZCBSZXBvcnRNYWxsaW5mb1N0YXRzKFByb2Nlc3NNZW1vcnlEdW1wKiBwbWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgIHNpemVfdCogdG90YWxfdmlydHVhbF9zaXplLAorICAgICAgICAg ICAgICAgICAgICAgICAgICBzaXplX3QqIHJlc2lkZW50X3NpemUsCitAQCAtMzM5LDcgKzM0MCw3 IEBAIGJvb2wgTWFsbG9jRHVtcFByb3ZpZGVyOjpPbk1lbW9yeUR1bXAoY28KKyAgICAgICAgICAg ICAgICAgICAgICAmYWxsb2NhdGVkX29iamVjdHNfY291bnQpOworICNlbGlmIEJVSUxERkxBRyhJ U19GVUNIU0lBKQorIC8vIFRPRE8oZnVjaHNpYSk6IFBvcnQsIHNlZSBodHRwczovL2NyYnVnLmNv bS83MDY1OTIuCistI2Vsc2UKKysjZWxpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgIFJlcG9ydE1h bGxpbmZvU3RhdHMoLypwbWQ9Ki9udWxscHRyLCAmdG90YWxfdmlydHVhbF9zaXplLCAmcmVzaWRl bnRfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgJmFsbG9jYXRlZF9vYmplY3RzX3NpemUs ICZhbGxvY2F0ZWRfb2JqZWN0c19jb3VudCk7CisgI2VuZGlmCistLS0gcXQ2LXdlYmVuZ2luZS02 LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS90ZmxpdGUvc3JjL3Rl bnNvcmZsb3cvbGl0ZS9wcm9maWxpbmcvbWVtb3J5X2luZm8uY2MKKysrKyBxdDYtd2ViZW5naW5l LTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS90ZmxpdGUvc3JjL3RlbnNv cmZsb3cvbGl0ZS9wcm9maWxpbmcvbWVtb3J5X2luZm8uY2MKK0BAIC0zNSw3ICszNSw3IEBAIGJv b2wgTWVtb3J5VXNhZ2U6OklzU3VwcG9ydGVkKCkgeworIAorIE1lbW9yeVVzYWdlIEdldE1lbW9y eVVzYWdlKCkgeworICAgTWVtb3J5VXNhZ2UgcmVzdWx0OworLSNpZmRlZiBfX2xpbnV4X18KKysj aWYgZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX19HTElCQ19fKQorICAgcnVzYWdlIHJl czsKKyAgIGlmIChnZXRydXNhZ2UoUlVTQUdFX1NFTEYsICZyZXMpID09IDApIHsKKyAgICAgcmVz dWx0Lm1heF9yc3Nfa2IgPSByZXMucnVfbWF4cnNzOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDcwMC1hcm12N2wtbmVvbi5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzA3MDAtYXJtdjdsLW5lb24ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41Y2ExOTUzZDJjYjMKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzAwLWFybXY3bC1uZW9uLnBhdGNoCkBAIC0w LDAgKzEsMTAgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2No cm9taXVtL3NraWEvQlVJTEQuZ24KKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9za2lhL0JVSUxELmduCitAQCAtNzg2LDcgKzc4Niw2IEBAIHNraWFfc291cmNl X3NldCgic2tpYV9vcHRzIikgeworICAgICAgICAgIyBSb290IGJ1aWxkIGNvbmZpZyBzZXRzIC1t ZnB1PSRhcm1fZnB1LCB3aGljaCB3ZSBleHBlY3QgdG8gYmUgbmVvbgorICAgICAgICAgIyB3aGVu IHJ1bm5pbmcgdGhpcy4KKyAgICAgICAgIGlmICghYXJtX3VzZV9uZW9uKSB7CistICAgICAgICAg IGNvbmZpZ3MgLT0gWyAiLy9idWlsZC9jb25maWcvY29tcGlsZXI6Y29tcGlsZXJfYXJtX2ZwdSIg XQorICAgICAgICAgICBjZmxhZ3MgKz0gWyAiLW1mcHU9bmVvbiIgXQorICAgICAgICAgfQorICAg ICAgIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3NTAtY2hy b21pdW0tbXVzbC1jcm9zcy1uby1hc21fcHRyYWNlX2gucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wNzUwLWNocm9taXVtLW11c2wtY3Jvc3Mtbm8tYXNtX3B0cmFjZV9oLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uY2E3YjAxNTA5NjJj Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDc1MC1j aHJvbWl1bS1tdXNsLWNyb3NzLW5vLWFzbV9wdHJhY2VfaC5wYXRjaApAQCAtMCwwICsxLDMwIEBA CistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRl ci9saW51eF9wdHJhY2VfZHVtcGVyLmNjCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlci5jYworQEAgLTM4LDcgKzM4 LDEyIEBACisgCisgI2luY2x1ZGUgImNsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhf cHRyYWNlX2R1bXBlci5oIgorIAorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAjaW5jbHVkZSA8 YXNtL3B0cmFjZS5oPgorKyNlbHNlCisrLyogRm9yIGFybSotbXVzbCB0aGlzIGRlZmluaXRpb24g aXMgbWlzc2luZyAqLworKyNkZWZpbmUgQVJNX3NwIHVyZWdzWzEzXQorKyNlbmRpZgorICNpbmNs dWRlIDxhc3NlcnQuaD4KKyAjaW5jbHVkZSA8ZXJybm8uaD4KKyAjaW5jbHVkZSA8ZmNudGwuaD4K Ky0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVy L2xpbnV4X2NvcmVfZHVtcGVyLmNjCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9taW5pZHVtcF93cml0ZXIvbGludXhfY29yZV9kdW1wZXIuY2MKK0BAIC0zMiw3ICszMiwxMiBA QAorIAorICNpbmNsdWRlICJjbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2NvcmVf ZHVtcGVyLmgiCisgCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICNpbmNsdWRlIDxhc20vcHRy YWNlLmg+CisrI2Vsc2UKKysvKiBGb3IgYXJtKi1tdXNsIHRoaXMgZGVmaW5pdGlvbiBpcyBtaXNz aW5nICovCisrI2RlZmluZSBBUk1fc3AgdXJlZ3NbMTNdCisrI2VuZGlmCisgI2luY2x1ZGUgPGFz c2VydC5oPgorICNpbmNsdWRlIDxlbGYuaD4KKyAjaW5jbHVkZSA8c3RkaW8uaD4KZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3NTEtY2hyb21pdW0tbXVzbC1hcm0t dXNlcl92ZnAucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzUxLWNocm9t aXVtLW11c2wtYXJtLXVzZXJfdmZwLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uZDdjMTgwMzZkNTAzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDc1MS1jaHJvbWl1bS1tdXNsLWFybS11c2VyX3ZmcC5wYXRjaApA QCAtMCwwICsxLDIwIEBACistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVh ZF9pbmZvLmgKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVhZF9pbmZvLmgKK0BA IC0xNyw2ICsxNywxNyBAQAorIAorICNpbmNsdWRlIDxzdGRpbnQuaD4KKyAjaW5jbHVkZSA8c3lz L3VzZXIuaD4KKysjaWYgIWRlZmluZWQoX19HTElCQ19fKQorK3N0cnVjdCB1c2VyX3ZmcCB7Cisr CXVuc2lnbmVkIGxvbmcgbG9uZyBmcHJlZ3NbMzJdOworKwl1bnNpZ25lZCBsb25nIGZwc2NyOwor K307Cisrc3RydWN0IHVzZXJfdmZwX2V4YyB7CisrCXVuc2lnbmVkIGxvbmcgZnBleGM7CisrCXVu c2lnbmVkIGxvbmcgZnBpbnN0OworKwl1bnNpZ25lZCBsb25nIGZwaW5zdDI7CisrfTsKKysjZW5k aWYgLyogIWRlZmluZWQoX19HTElCQ19fKSAqLworIAorICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4K KyAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3NTItY2hyb21p dW0tbXVzbC1hcm0tZWxmX2F1eHZfdC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzA3NTItY2hyb21pdW0tbXVzbC1hcm0tZWxmX2F1eHZfdC5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjUyZjVmNDdiZTgzMQotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3NTItY2hyb21pdW0tbXVzbC1hcm0t ZWxmX2F1eHZfdC5wYXRjaApAQCAtMCwwICsxLDE4IEBACistLS0gcXQ2LXdlYmVuZ2luZS02LjQu Mi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvYmFzZS9jcHUuY2MKKysrKyBxdDYt d2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvYmFzZS9jcHUuY2MK K0BAIC0xNjUsNiArMTY1LDE1IEBAIHN0YXRpYyBWOF9JTkxJTkUgdm9pZCBfX2NwdWlkKGludCBj cHVfaW4KKyAKKyAjaWYgVjhfSE9TVF9BUkNIX0FSTSB8fCBWOF9IT1NUX0FSQ0hfQVJNNjQKKyAK KysjaWZuZGVmIF9fR0xJQkNfXworKyNpbmNsdWRlIDxlbGYuaD4KKysjaWZkZWYgX19MUDY0X18K Kyt0eXBlZGVmIEVsZjY0X2F1eHZfdCBlbGZfYXV4dl90OworKyNlbHNlCisrdHlwZWRlZiBFbGYz Ml9hdXh2X3QgZWxmX2F1eHZfdDsKKysjZW5kaWYKKysjZW5kaWYKKysKKyBzdGF0aWMgdWludDMy X3QgUmVhZEVMRkhXQ2FwcygpIHsKKyAgIHVpbnQzMl90IHJlc3VsdCA9IDA7CisgI2lmIFY4X0dM SUJDX1BSRVJFUSgyLCAxNikKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzA5MDAtY3Jvc3MtYnVpbGQtZXhhbXBsZXMucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdp bmUvcGF0Y2hlcy8wOTAwLWNyb3NzLWJ1aWxkLWV4YW1wbGVzLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOWE2YWNjNmFmNmRlCi0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDkwMC1jcm9zcy1idWlsZC1leGFtcGxl cy5wYXRjaApAQCAtMCwwICsxLDE2IEBACistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL2V4 YW1wbGVzL0NNYWtlTGlzdHMudHh0CisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9leGFtcGxlcy9D TWFrZUxpc3RzLnR4dAorQEAgLTEsNyArMSw2IEBACisgY21ha2VfbWluaW11bV9yZXF1aXJlZChW RVJTSU9OIDMuMTYpCisgCisgcXRfZXhhbXBsZXNfYnVpbGRfYmVnaW4oRVhURVJOQUxfQlVJTEQp CistaWYoTk9UIENNQUtFX0NST1NTQ09NUElMSU5HKSAjUVRCVUctODY1MzMKKyAgICAgaWYoVEFS R0VUIFF0OjpXZWJFbmdpbmVDb3JlKQorICAgICAgICAgYWRkX3N1YmRpcmVjdG9yeSh3ZWJlbmdp bmVxdWljaykKKyAgICAgZW5kaWYoKQorQEAgLTE0LDUgKzEzLDQgQEAgaWYoTk9UIENNQUtFX0NS T1NTQ09NUElMSU5HKSAjUVRCVUctODY1MworICAgICBpZihUQVJHRVQgUXQ6OlBkZldpZGdldHMp CisgICAgICAgICBhZGRfc3ViZGlyZWN0b3J5KHBkZndpZGdldHMpCisgICAgIGVuZGlmKCkKKy1l bmRpZigpCisgcXRfZXhhbXBsZXNfYnVpbGRfZW5kKCkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS90ZW1wbGF0ZQpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjEwOTk1OTk0YWM3ZQotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS90ZW1wbGF0ZQpAQCAtMCwwICsxLDE4 MiBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LXdlYmVuZ2luZScKK3BrZ25hbWU9cXQ2LXdl YmVuZ2luZQordmVyc2lvbj02LjQuMgorcmV2aXNpb249MQorYnVpbGRfc3R5bGU9Y21ha2UKK2Nv bmZpZ3VyZV9hcmdzPSIKKyAtRFFUX0ZFQVRVUkVfd2ViZW5naW5lX3N5c3RlbV9mZm1wZWc9T04K KyAtRFFUX0ZFQVRVUkVfd2ViZW5naW5lX3N5c3RlbV9saWJldmVudD1PTgorIC1EUVRfRkVBVFVS RV93ZWJlbmdpbmVfc3lzdGVtX2duPU9OCisgLURRVF9GRUFUVVJFX3dlYmVuZ2luZV9zeXN0ZW1f aWN1PU9OCisgLURRVF9GRUFUVVJFX3dlYmVuZ2luZV93ZWJydGNfcGlwZXdpcmU9T04KKyAtRE5p bmphX0VYRUNVVEFCTEU9JFhCUFNfV1JBUFBFUkRJUi9uaW5qYQorIC1EUVRfQlVJTERfRVhBTVBM RVM9T04KKyAtRFBLR19DT05GSUdfSE9TVF9FWEVDVVRBQkxFPSR7UEtHX0NPTkZJR19GT1JfQlVJ TER9IgoraG9zdG1ha2VkZXBlbmRzPSJxdDYtYmFzZSBwZXJsIHBrZy1jb25maWcgbm9kZWpzIHB5 dGhvbjMtaHRtbDVsaWIKKyBxdDYtZGVjbGFyYXRpdmUtdG9vbHMgcHJvdG9idWYgZ3BlcmYgZmxl eCBuc3MtZGV2ZWwgbGlid2VicC1kZXZlbAorIGljdS1kZXZlbCBsaWJldmVudC1kZXZlbCIKK21h a2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCBxdDYtZGVjbGFyYXRpdmUtZGV2ZWwgcHVsc2VhdWRp by1kZXZlbAorIHF0Ni10b29scy1kZXZlbCBxdDYtd2Vic29ja2V0cy1kZXZlbCBsaWJmbGFjLWRl dmVsIHF0Ni1zdmctZGV2ZWwKKyBhbHNhLWxpYi1kZXZlbCBsaWJ2cHgtZGV2ZWwgcGNpdXRpbHMt ZGV2ZWwgb3B1cy1kZXZlbCBsaWJ4c2x0LWRldmVsCisgbGlieG1sMi1kZXZlbCBmcmVldHlwZS1k ZXZlbCBsY21zMi1kZXZlbCBsaWJ3ZWJwLWRldmVsIGljdS1kZXZlbAorIHJlMi1kZXZlbCB6bGli LWRldmVsIGxpYnBuZy1kZXZlbCBtaW5pemlwLWRldmVsIGhhcmZidXp6LWRldmVsCisgbnNzLWRl dmVsIGxpYlhjdXJzb3ItZGV2ZWwgbGliWGNvbXBvc2l0ZS1kZXZlbCBsaWJYU2NyblNhdmVyLWRl dmVsCisgcHJvdG9idWYtZGV2ZWwgZmZtcGVnLWRldmVsIHNuYXBweS1kZXZlbCBsaWJldmVudC1k ZXZlbCBwaXBld2lyZS1kZXZlbAorIGxpYnhrYmZpbGUtZGV2ZWwgcXQ2LWxvY2F0aW9uLWRldmVs IHF0Ni13ZWJjaGFubmVsLWRldmVsIGxpYnhzaG1mZW5jZS1kZXZlbCIKKyMgTm90IHdvcmtpbmcg cHJvcGVybHkgd2l0aCBIVFRQUyB3aXRob3V0IHRob3NlIHBhY2thZ2VzCisjIE5vdCBzdHJpY3Qg ZGVwZW5kZW5jaWVzLCB0aG91Z2gKK2RlcGVuZHM9InF0Ni1wbHVnaW4tdGxzLW9wZW5zc2wgcXQ2 LXBsdWdpbi10bHMtcWNlcnRvbmx5Igorc2hvcnRfZGVzYz0iQ3Jvc3MtcGxhdGZvcm0gYXBwbGlj YXRpb24gYW5kIFVJIGZyYW1ld29yayAtIFdlYmVuZ2luZSIKK21haW50YWluZXI9IkpvaG4gPG1l QGpvaG5ueW5hdG9yLmRldj4iCitsaWNlbnNlPSJHUEwtMy4wLW9ubHksIEdQTC0yLjAtb25seSwg TEdQTC0zLjAtb25seSwgQlNELTMtQ2xhdXNlIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnF0Lmlv IgorZGlzdGZpbGVzPSJodHRwczovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0 LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0d2ViZW5naW5lLWV2ZXJ5d2hl cmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6IgorY2hlY2tzdW09ZmZhOTQ1NTE4ZDFjYzhkOWVlNzM1 MjNlOGQ5YzIwOTA4NDRmNWEyZDljN2VhYzA1YzRhZDA3OTQ3MmExMTljOQorCitub2Nyb3NzPSJ1 bnRpbCBsYXRlciwgSSBuZWVkIGNhbGlicmUgZmlyc3QiCisKK2lmIFsgIiRDUk9TU19CVUlMRCIg XTt0aGVuCisJY29uZmlndXJlX2FyZ3MrPSIgLURRVF9CVUlMRF9UT09MU19XSEVOX0NST1NTQ09N UElMSU5HPVRSVUUiCisJY29uZmlndXJlX2FyZ3MrPSIgLURDTUFLRV9UT09MQ0hBSU5fRklMRT0v dXNyL2xpYi9jbWFrZS9RdDYvcXQudG9vbGNoYWluLmNtYWtlIgorZmkKKworaWYgWyAiJFhCUFNf TElCQyIgPSAibXVzbCIgXTsgdGhlbgorCWhvc3RtYWtlZGVwZW5kcys9IiBtdXNsLWxlZ2FjeS1j b21wYXQiCitmaQorCitpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgor CW1ha2VkZXBlbmRzKz0iIG11c2wtbGVnYWN5LWNvbXBhdCIKK2ZpCisKK2lmIFsgISAiJFhCUFNf V09SRFNJWkUiID0gIiRYQlBTX1RBUkdFVF9XT1JEU0laRSIgXTsgdGhlbgorCWJyb2tlbj0id2Vi ZW5naW5lIGNhbiBiZSBidWlsdCBvbmx5IGlmIHdvcmQgc2l6ZSBtYXRjaGVzIgorZmkKKworaWYg WyAiJFhCUFNfV09SRFNJWkUiID0gMzIgXTsgdGhlbgorCUNGTEFHUz0tZzEKKwlDWFhGTEFHUz0t ZzEKKwlMREZMQUdTPSItV2wsLS1uby1rZWVwLW1lbW9yeSIKKwlicm9rZW49Im5vZGVqcyBjb21w cmVzcyBqcyBmaWxlcyBmYWlsdXJlIgorZmkKKworY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUi IGluCisJcHBjKikgYnJva2VuPSJub3QgcG9ydGVkIiA7OworZXNhYworCisjYnVpbGRfb3B0aW9u cz0iZXhhbXBsZXMiCisjYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJleGFtcGxlcyIKKyNkZXNjX29w dGlvbl9leGFtcGxlcz0iQnVpbGQgZXhhbXBsZXMiCisKK3N1YnBhY2thZ2VzPSJxdDYtd2ViZW5n aW5lLWRldmVsIgorCisjaWYgWyAiJGJ1aWxkX29wdGlvbl9leGFtcGxlcyIgXTsgdGhlbgorCXN1 YnBhY2thZ2VzKz0iIHF0Ni13ZWJlbmdpbmUtZXhhbXBsZXMiCisjZmkKKworX2Jvb3RzdHJhcF9n bigpIHsKKwkjIEJvb3RzdHJhcCBnbiAoZ2VuZXJhdGUgbmluamEpCisJZWNobyAiQm9vdHN0cmFw cGluZyAnZ24nIgorCWNkICR7d3Jrc3JjfS9zcmMvM3JkcGFydHkvZ24KKwlDRkxBR1M9IiRDRkxB R1NfaG9zdCIgQ1hYRkxBR1M9IiRDWFhGTEFHU19ob3N0IiBMREZMQUdTPSIkTERGTEFHU19ob3N0 IiBcCisJUEtHQ09ORklHPS91c3IvYmluL3BrZ2NvbmZpZyBQS0dfQ09ORklHX1BBVEg9Ii91c3Iv bGliL3BrZ2NvbmZpZzovdXNyL3NoYXJlL3BrZ2NvbmZpZyIgXAorCQlweXRob24zIGJ1aWxkL2dl bi5weSAtLW5vLWxhc3QtY29tbWl0LXBvc2l0aW9uIC0tb3V0LXBhdGggXAorCQkJJHt3cmtzcmN9 L3NyYy8zcmRwYXJ0eS9nbi9vdXQvUmVsZWFzZSAtLWNjICIke0NDX2hvc3Q6LSRDQ30iIFwKKwkJ CS0tY3h4ICIke0NYWF9ob3N0Oi0kQ1hYfSIgLS1sZCAiJHtDWFhfaG9zdDotJENYWH0iIC0tYXIg IiR7QVJfaG9zdDotJEFSfSIgXAorCQkJLS1xdC12ZXJzaW9uICIke3ZlcnNpb259LnF0d2ViZW5n aW5lLnF0LmlvIgorCW5pbmphIC1DIG91dC9SZWxlYXNlIGduCisJY2QgJHt3cmtzcmN9Cit9CisK K191bmJ1bmRsZV9saWJzKCkgeworCWNkICR7d3Jrc3JjfS9zcmMvM3JkcGFydHkvY2hyb21pdW0K KwllY2hvIERyb3BwaW5nIGJ1bmRsZWQgbGlicyBmcm9tIGNocm9taXVtCisJIyBVc2Ugc3lzdGVt LXByb3ZpZGVkIGxpYnJhcmllcy4KKwkjIFRPRE86IHVzZV9zeXN0ZW1faHVuc3BlbGwgKHVwc3Ry ZWFtIGNoYW5nZXMgbmVlZGVkKS4KKwkjIFRPRE86IHVzZV9zeXN0ZW1fbGlic3J0cC4KKwkjIFRP RE86IHVzZV9zeXN0ZW1fbGlidXNiIChodHRwOi8vY3JidWcuY29tLzI2NjE0OSkuCisJIyBUT0RP OiB1c2Vfc3lzdGVtX3NzbCAoaHR0cDovL2NyYnVnLmNvbS81ODA4NykuCisJIyBUT0RPOiB1c2Vf c3lzdGVtX3NxbGl0ZSAoaHR0cDovL2NyYnVnLmNvbS8yMjIwOCkuCisJIyBUT0RPOiB1c2Vfc3lz dGVtX2ljdSAoc2VnZmF1bHRzKQorCSMgdXNlX3N5c3RlbV9wcm90b2J1ZgorCSMgdXNlX3N5c3Rl bV92OD0xCisJIyB1c2Vfc3lzdGVtX3psaWI9MQorCSMgYnppcDIganNvbmNwcCBtaW5pemlwIHhk Z191dGlscyBzcGVleAorCXN5c3RlbT0iCisJCWZmbXBlZworCQlmbGFjCisJCWZvbnRjb25maWcK KwkJZnJlZXR5cGUKKwkJaGFyZmJ1enotbmcKKwkJaWN1CisJCWxpYmRybQorCQlsaWJldmVudAor CQlsaWJqcGVnCisJCWxpYnBuZworCQlsaWJ3ZWJwCisJCWxpYnhtbAorCQlsaWJ4c2x0CisJCW9w dXMKKwkJcmUyCisJCXNuYXBweQorCSIKKwlidWlsZC9saW51eC91bmJ1bmRsZS9yZXBsYWNlX2du X2ZpbGVzLnB5IC0tc3lzdGVtLWxpYnJhcmllcyAke3N5c3RlbX0KK30KKworIyBQcm92aWRlIGEg d3JhcHBlciB0byBydW4gLi94YnBzLXNyYyAtaiAxIGJ1aWxkIGxhdGVyCitfd3JhcF9uaW5qYSgp IHsKKwljYXQgPDwtJ19FT0YnID4iJFhCUFNfV1JBUFBFUkRJUiIvbmluamEKKwkjIS9iaW4vc2gK KworCWV4ZWMgL3Vzci9iaW4vbmluamEgJE5JTkpBRkxBR1MgIiRAIgorCV9FT0YKKwljaG1vZCAr eCAiJFhCUFNfV1JBUFBFUkRJUiIvbmluamEKK30KKworcHJlX2NvbmZpZ3VyZSgpIHsKKwlfYm9v dHN0cmFwX2duCisJIyBfdW5idW5kbGVfbGlicworCV93cmFwX25pbmphCisJZXhwb3J0IFBBVEg9 IiRQQVRIOiR7d3Jrc3JjfS9zcmMvM3JkcGFydHkvZ24vb3V0L1JlbGVhc2UiCit9CisKK3ByZV9i dWlsZCgpIHsKKwlleHBvcnQgUEFUSD0iJFBBVEg6JHt3cmtzcmN9L3NyYy8zcmRwYXJ0eS9nbi9v dXQvUmVsZWFzZSIKKwlleHBvcnQgTklOSkFGTEFHUz0iJG1ha2Vqb2JzIgorCit9CisKK3ByZV9p bnN0YWxsKCkgeworCWV4cG9ydCBQQVRIPSIkUEFUSDoke3dya3NyY30vc3JjLzNyZHBhcnR5L2du L291dC9SZWxlYXNlIgorfQorCitwb3N0X2luc3RhbGwoKSB7CisJbG9jYWwgX2ZpbGUKKwlmaW5k ICIke0RFU1RESVJ9Ii91c3IvbGliL3F0Ni9leGFtcGxlcyBcCisJCS1wYXRoICcqL2xpYi9xdDYv KiovbGliL3F0Ni8qJyAtdHlwZSBmIHwKKwl3aGlsZSByZWFkIF9maWxlOyBkbworCQltdiAiJF9m aWxlIiAiJHtfZmlsZSUvbGliL3F0Ni8qfSIKKwlkb25lCit9CisKK3F0Ni13ZWJlbmdpbmUtZGV2 ZWxfcGFja2FnZSgpIHsKKwlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZp c2lvbn0gcXQ2LXdlYmNoYW5uZWwtZGV2ZWw+PSR7dmVyc2lvbn1fMQorCSBxdDYtZGVjbGFyYXRp dmUtZGV2ZWw+PSR7dmVyc2lvbn1fMSBxdDYtbG9jYXRpb24tZGV2ZWw+PSR7dmVyc2lvbn1fMSIK KwlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCisJcGtnX2luc3RhbGwoKSB7CisJ CXZtb3ZlIHVzci9pbmNsdWRlCisJCXZtb3ZlIHVzci9saWIvY21ha2UKKwkJdm1vdmUgdXNyL2xp Yi9wa2djb25maWcKKwkJdm1vdmUgdXNyL2xpYi9xdDYvbWtzcGVjcworCQl2bW92ZSAidXNyL2xp Yi8qLnNvIgorCQl2bW92ZSAidXNyL2xpYi8qLnBybCIKKwkJdm1vdmUgdXNyL3NoYXJlL3F0Ni9t b2R1bGVzCisJfQorfQorCitxdDYtd2ViZW5naW5lLWV4YW1wbGVzX3BhY2thZ2UoKSB7CisJc2hv cnRfZGVzYys9IiAtIHNhbXBsZSBicm93c2VycyIKKwlkZXBlbmRzPSJxdDYtc3ZnIgorCXBrZ19p bnN0YWxsKCkgeworCQl2bW92ZSB1c3IvbGliL3F0Ni9leGFtcGxlcworCX0KK30KZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS91cGRhdGUgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUv dXBkYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uODQ0NTUyNDY1 MjIyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3VwZGF0ZQpAQCAt MCwwICsxIEBACitwa2duYW1lPSIke3BrZ25hbWUvNi0vfS1ldmVyeXdoZXJlLXNyYyIK --===============0494883733954537174==--