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 10035 invoked from network); 24 Feb 2023 00:23:51 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 24 Feb 2023 00:23:51 -0000 Content-Type: multipart/mixed; boundary="===============4354315396164724766==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_Calibre=3A_update_to_6=2E2=2E1?= To: ml@inbox.vuxu.org From: sgn Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Fri, 24 Feb 2023 01:23:51 +0100 List-Id: Message-ID: <20230224002351.rgXPUBvb3TJj1AwYefyqn_ng4scqIsizDrzBqrFyB1A@z> GitHub notification mails are now in MIME to allow UTF8. --===============4354315396164724766== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgc2duIGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9zZ24vdm9p ZC1wYWNrYWdlcyBjYWxpYnJlCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFj a2FnZXMvcHVsbC8zODUzNQoKQ2FsaWJyZTogdXBkYXRlIHRvIDYuMi4xCjwhLS0gVW5jb21tZW50 IHJlbGV2YW50IHNlY3Rpb25zIGFuZCBkZWxldGUgb3B0aW9ucyB3aGljaCBhcmUgbm90IGFwcGxp Y2FibGUgLS0+DQoNCltjaSBza2lwXSBAc2ttcHogDQpEZXBlbmRzIG9uIGh0dHBzOi8vZ2l0aHVi LmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zODUwOQ0KDQojIyMjIFRlc3Rpbmcg dGhlIGNoYW5nZXMNCi0gSSB0ZXN0ZWQgdGhlIGNoYW5nZXMgaW4gdGhpcyBQUjogKipicmllZmx5 KioNCg0KPCEtLQ0KIyMjIyBOZXcgcGFja2FnZQ0KLSBUaGlzIG5ldyBwYWNrYWdlIGNvbmZvcm1z IHRvIHRoZSBbcXVhbGl0eSByZXF1aXJlbWVudHNdKGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxp bnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9tYXN0ZXIvTWFudWFsLm1kI3F1YWxpdHktcmVxdWlyZW1l bnRzKTogKipZRVMqKnwqKk5PKioNCi0tPg0KDQo8IS0tIE5vdGU6IElmIHRoZSBidWlsZCBpcyBs aWtlbHkgdG8gdGFrZSBtb3JlIHRoYW4gMiBob3VycywgcGxlYXNlIGFkZCBjaSBza2lwIHRhZyBh cyBkZXNjcmliZWQgaW4NCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2Fn ZXMvYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kI2NvbnRpbnVvdXMtaW50ZWdyYXRpb24NCmFu ZCB0ZXN0IGF0IGxlYXN0IG9uZSBuYXRpdmUgYnVpbGQgYW5kLCBpZiBzdXBwb3J0ZWQsIGF0IGxl YXN0IG9uZSBjcm9zcyBidWlsZC4NCklnbm9yZSB0aGlzIHNlY3Rpb24gaWYgdGhpcyBQUiBpcyBu b3Qgc2tpcHBpbmcgQ0kuDQotLT4NCjwhLS0NCiMjIyMgTG9jYWwgYnVpbGQgdGVzdGluZw0KLSBJ IGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBmb3IgbXkgbmF0aXZlIGFyY2hpdGVjdHVyZSwgKEFSQ0gt TElCQykNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIHRoZXNlIGFyY2hpdGVjdHVyZXMg KGlmIHN1cHBvcnRlZC4gbWFyayBjcm9zc2J1aWxkcyk6DQogIC0gYWFyY2g2NC1tdXNsDQogIC0g YXJtdjdsDQogIC0gYXJtdjZsLW11c2wNCi0tPg0KCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczov L2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzg1MzUucGF0Y2ggaXMg YXR0YWNoZWQ= --===============4354315396164724766== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-calibre-38535.patch" RnJvbSAxZjAxM2UyZWU5MWRhOTI0Mjc4ZThhYWQ1NDZhZmVhYzg3NWI0NjNkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1B N249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogVGh1 LCAyMyBGZWIgMjAyMyAxMDowOTowMSArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDEvMTFdIHF0Ni1i YXNlOiBtb3ZlIG1rc3BlY3MgdG8gc2FtZSBwYWNrYWdlIHdpdGggcW1ha2UKCi0tLQogc3JjcGtn cy9xdDYtYmFzZS90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1iYXNlL3RlbXBs YXRlIGIvc3JjcGtncy9xdDYtYmFzZS90ZW1wbGF0ZQppbmRleCAyMDRkMmM2OGFlMDEuLjAyNDM5 MzEzNGVlZiAxMDA2NDQKLS0tIGEvc3JjcGtncy9xdDYtYmFzZS90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL3F0Ni1iYXNlL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZv ciAncXQ2LWJhc2UnCiBwa2duYW1lPXF0Ni1iYXNlCiB2ZXJzaW9uPTYuNC4yCi1yZXZpc2lvbj0x CityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1ESU5TVEFM TF9EQVRBRElSPXNoYXJlL3F0NgogIC1ESU5TVEFMTF9BUkNIREFUQURJUj1saWIvcXQ2CkBAIC0y ODQsNyArMjg0LDcgQEAgcXQ2LWJhc2UtZGV2ZWxfcGFja2FnZSgpIHsKIAkJdm1vdmUgdXNyL2lu Y2x1ZGUKIAkJdm1vdmUgdXNyL2xpYi9tZXRhdHlwZXMKIAkJdm1vdmUgdXNyL2xpYi9wa2djb25m aWcKLQkJdm1vdmUgdXNyL2xpYi9xdDYvbWtzcGVjcworCQl2bW92ZSB1c3IvbGliL3F0Ni9ta3Nw ZWNzL21vZHVsZXMKIAkJdm1vdmUgInVzci9saWIvKi5hIgogCQl2bW92ZSAidXNyL2xpYi8qLnNv IgogCQl2bW92ZSAidXNyL2xpYi8qLnBybCIKCkZyb20gYzQwNjcwYjkzMzQxYjdmMjU2N2VjYmUz MmQyZTY5YzIxNjAxZmJmZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9x Pz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29u Z2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgOCBBdWcgMjAyMiAxNzoxMzoxMSArMDcwMApT dWJqZWN0OiBbUEFUQ0ggMDIvMTFdIE5ldyBwYWNrYWdlOiBxdDYtd2ViZW5naW5lLTYuMy4xLgoK LS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDcg Kwogc3JjcGtncy9xdDYtd2ViZW5naW5lLWRldmVsICAgICAgICAgICAgICAgICAgIHwgICAxICsK IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS1leGFtcGxlcyAgICAgICAgICAgICAgICB8ICAgMSArCiAu Li4vcGF0Y2hlcy8wMDAxLU5vbmUtbm8tZGVidWcucGF0Y2ggICAgICAgICAgfCAgMTEgKwogLi4u L3BhdGNoZXMvMDAwMy1jcm9zcy1oYWNrLnBhdGNoICAgICAgICAgICAgIHwgIDEwICsKIC4uLi9w YXRjaGVzLzAwNTAtbm8tZ2xpYmMtY21ha2UtY2hlY2sucGF0Y2ggICB8ICAxNCArCiAuLi4vMDEw MC1jaHJvbWl1bS1yZXZlcnQtOWQwODBjMC5wYXRjaCAgICAgICAgfCAxNTQgKysrKwogLi4ub21p dW0tMTAyLWZlbmNlZF9mcmFtZV91dGlscy1pbmNsdWRlLnBhdGNoIHwgIDIwICsKIC4uLjEwMi1j aHJvbWl1bS0xMDItcmVnZXhfcGF0dGVybi1hcnJheS5wYXRjaCB8ICAxNCArCiAuLi4wMTAzLWNo cm9taXVtLWk2ODYtdmFhcGktZnBlcm1pc3NpdmUucGF0Y2ggfCAgMjMgKwogLi4uLzAxMDQtY2hy b21pdW0tbGlieG1sLXVuYnVuZGxlLnBhdGNoICAgICAgIHwgIDEwICsKIC4uLi1jaHJvbWl1bS1y ZXZlcnQtZHJvcC1vZi1zeXN0ZW0tamF2YS5wYXRjaCB8ICAxNSArCiAuLi4vcGF0Y2hlcy8wMTA2 LWNocm9taXVtLXN5c3RlbS1ub2RlanMucGF0Y2ggfCAgMjkgKwogLi4uL3BhdGNoZXMvMDEwNy1j aHJvbWl1bS1jcm9zcy1idWlsZC5wYXRjaCAgIHwgIDY1ICsrCiAuLi4vMDEwOC1jaHJvbWl1bS1j dXJzZWReVXNjb3BlZF9maWxlLnBhdGNoICAgfCAgMTggKwogLi4uY2hyb21pdW0tYWFyY2g2NC1t dXNsLW1lbW9yeS10YWdnaW5nLnBhdGNoIHwgIDI5ICsKIC4uLmZpeC1taXNzaW5nLVRFTVBfRkFJ TFVSRV9SRVRSWS1tYWNyby5wYXRjaCB8ICAyMSArCiAuLi4vcGF0Y2hlcy8wMTExLWNocm9taXVt LWNzdGRpbnQucGF0Y2ggICAgICAgfCAgMTAgKwogLi4uL3BhdGNoZXMvMDExMi1jaHJvbWl1bS11 bmlzdGQuaC5wYXRjaCAgICAgIHwgIDEwICsKIC4uLi8wMTEzLWNocm9taXVtLXB0aHJlYWQtc3Rh Y2tzaXplLnBhdGNoICAgICB8ICAxNiArCiAuLi4vcGF0Y2hlcy8wMTE0LWRvLW5vdC1uYXJyb3ct aW50LnBhdGNoICAgICAgfCAgNTMgKysKIC4uLjUtY2hyb21pdW0tbm8tY2Fub25pY2FsaXplLWZp bGUtbmFtZS5wYXRjaCB8ICAxMiArCiAuLi4vMDExNi1jaHJvbWl1bS1tdXNsLWdldC10aHJlYWQt bmFtZS5wYXRjaCAgfCAgMjIgKwogLi4uL3BhdGNoZXMvMDExNy1jaHJvbWl1bS1tdXNsLXJlc29s dmVyLnBhdGNoIHwgIDY0ICsrCiAuLi4vMDExOS1jaHJvbWl1bS1tdXNsLXN0YWNrLXV0aWxzLnBh dGNoICAgICAgfCAgMjAgKwogLi4uL3BhdGNoZXMvMDEyMC1jaHJvbWl1bS1saWJjLW1hbGxvYy5w YXRjaCAgIHwgIDM0ICsKIC4uLi9wYXRjaGVzLzAxMjEtY2hyb21pdW0tbXVzbC1zdGF0LnBhdGNo ICAgICB8ICAxMiArCiAuLi4vcGF0Y2hlcy8wMTIyLWNocm9taXVtLWNvbmRpdGlvbl92YXIucGF0 Y2ggfCAgMjIgKwogLi4uLzAxMjMtY2hyb21pdW0tbXVzbC1uby1leGVjaW5mby5wYXRjaCAgICAg IHwgIDc1ICsrCiAuLi4vMDEyMy1jaHJvbWl1bS1tdXNsLW5vLWdldGNvbnRleHQucGF0Y2ggICAg fCAgMjcgKwogLi4uL3BhdGNoZXMvMDEyNC1jaHJvbWl1bS1lbmFibGUtaTY4Ni5wYXRjaCAgIHwg IDE3ICsKIC4uLi8wMTI1LWNocm9taXVtLXJlbW92ZS1zdHJpcF9iaW5hcnkucGF0Y2ggICB8ICAz MiArCiAuLi4vcGF0Y2hlcy8wMTI2LWNocm9taXVtLW5vLWNkZWZzLnBhdGNoICAgICAgfCAgMzkg KwogLi4uLzAxMjgtY2hyb21pdW0tc2FuZGJveC1tZW1iYXJyaWVyLnBhdGNoICAgIHwgIDEwICsK IC4uLi8wMTI5LWNocm9taXVtLXNhbmRib3gtc2hlZF9nZXRwYXJhbS5wYXRjaCB8ICAyMCArCiAu Li51bmRsZS1mZm1wZWctYXZfc3RyZWFtX2dldF9maXJzdF9kdHMucGF0Y2ggfCAgMTAgKwogLi4u MS1jaHJvbWl1bS11bmJ1bmRsZWQtY3Jvc3MtdG9vbGNoYWluLnBhdGNoIHwgIDEzICsKIC4uLi9w YXRjaGVzLzAxNTItY2hyb21pdW0td2VicnRjLXNpemVfdC5wYXRjaCB8ICAxMCArCiAuLi4vcGF0 Y2hlcy8wMTUzLWNocm9taXVtLXdlYnJ0Yy1zaXplX3QucGF0Y2ggfCAgMTYgKwogLi4uL3BhdGNo ZXMvMDE1NC1jaHJvbWl1bS11aXRfdC5wYXRjaCAgICAgICAgIHwgIDExICsKIC4uLi9wYXRjaGVz LzAyMDAtY2hyb21pdW0tc25kaW8ucGF0Y2ggICAgICAgICB8IDg0OSArKysrKysrKysrKysrKysr KysKIC4uLi9wYXRjaGVzLzAzMDAtY2hyb21pdW0tbXVzbC1oYWNrcy5wYXRjaCAgICB8ICA1MiAr KwogLi4uL3BhdGNoZXMvMDMwMS1jaHJvbWl1bS1tdXNsLXNhbmRib3gucGF0Y2ggIHwgIDg2ICsr CiAuLi4vcGF0Y2hlcy8wMzAyLWNocm9taXVtLW5vLW1hbGxpbmZvLnBhdGNoICAgfCAgNjcgKysK IC4uLi9wYXRjaGVzLzA3MDAtYXJtdjdsLW5lb24ucGF0Y2ggICAgICAgICAgICB8ICAxMCArCiAu Li4tY2hyb21pdW0tbXVzbC1jcm9zcy1uby1hc21fcHRyYWNlX2gucGF0Y2ggfCAgMzAgKwogLi4u LzA3NTEtY2hyb21pdW0tbXVzbC1hcm0tdXNlcl92ZnAucGF0Y2ggICAgIHwgIDIwICsKIC4uLi8w NzUyLWNocm9taXVtLW11c2wtYXJtLWVsZl9hdXh2X3QucGF0Y2ggICB8ICAxOCArCiAuLi4vcGF0 Y2hlcy8wOTAwLWNyb3NzLWJ1aWxkLWV4YW1wbGVzLnBhdGNoICAgfCAgMTYgKwogc3JjcGtncy9x dDYtd2ViZW5naW5lL3RlbXBsYXRlICAgICAgICAgICAgICAgIHwgMTgzICsrKysKIHNyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS91cGRhdGUgICAgICAgICAgICAgICAgICB8ICAgMSArCiA1MSBmaWxlcyBj aGFuZ2VkLCAyMzI5IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL3F0 Ni13ZWJlbmdpbmUtZGV2ZWwKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL3F0Ni13ZWJlbmdp bmUtZXhhbXBsZXMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMDAxLU5vbmUtbm8tZGVidWcucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDAzLWNyb3NzLWhhY2sucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDUwLW5vLWdsaWJjLWNtYWtl LWNoZWNrLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDEwMC1jaHJvbWl1bS1yZXZlcnQtOWQwODBjMC5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDEtY2hyb21pdW0tMTAyLWZlbmNl ZF9mcmFtZV91dGlscy1pbmNsdWRlLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMi1jaHJvbWl1bS0xMDItcmVnZXhfcGF0dGVybi1hcnJh eS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzAxMDMtY2hyb21pdW0taTY4Ni12YWFwaS1mcGVybWlzc2l2ZS5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDQtY2hyb21pdW0tbGlieG1s LXVuYnVuZGxlLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDEwNS1jaHJvbWl1bS1yZXZlcnQtZHJvcC1vZi1zeXN0ZW0tamF2YS5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDYtY2hy b21pdW0tc3lzdGVtLW5vZGVqcy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDctY2hyb21pdW0tY3Jvc3MtYnVpbGQucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA4LWNocm9taXVt LWN1cnNlZF5Vc2NvcGVkX2ZpbGUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA5LWNocm9taXVtLWFhcmNoNjQtbXVzbC1tZW1vcnktdGFn Z2luZy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAxMTAtY2hyb21pdW0tZml4LW1pc3NpbmctVEVNUF9GQUlMVVJFX1JFVFJZLW1hY3JvLnBh dGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEx MS1jaHJvbWl1bS1jc3RkaW50LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDExMi1jaHJvbWl1bS11bmlzdGQuaC5wYXRjaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTMtY2hyb21pdW0tcHRo cmVhZC1zdGFja3NpemUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMTE0LWRvLW5vdC1uYXJyb3ctaW50LnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExNS1jaHJvbWl1bS1uby1jYW5v bmljYWxpemUtZmlsZS1uYW1lLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDExNi1jaHJvbWl1bS1tdXNsLWdldC10aHJlYWQtbmFtZS5wYXRj aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTct Y2hyb21pdW0tbXVzbC1yZXNvbHZlci5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTktY2hyb21pdW0tbXVzbC1zdGFjay11dGlscy5wYXRj aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjAt Y2hyb21pdW0tbGliYy1tYWxsb2MucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTIxLWNocm9taXVtLW11c2wtc3RhdC5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjItY2hyb21pdW0t Y29uZGl0aW9uX3Zhci5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVu Z2luZS9wYXRjaGVzLzAxMjMtY2hyb21pdW0tbXVzbC1uby1leGVjaW5mby5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjMtY2hyb21pdW0t bXVzbC1uby1nZXRjb250ZXh0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDEyNC1jaHJvbWl1bS1lbmFibGUtaTY4Ni5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjUtY2hyb21pdW0t cmVtb3ZlLXN0cmlwX2JpbmFyeS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjYtY2hyb21pdW0tbm8tY2RlZnMucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTI4LWNocm9taXVtLXNh bmRib3gtbWVtYmFycmllci5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAxMjktY2hyb21pdW0tc2FuZGJveC1zaGVkX2dldHBhcmFtLnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDE1MC1j aHJvbWl1bS11bmJ1bmRsZS1mZm1wZWctYXZfc3RyZWFtX2dldF9maXJzdF9kdHMucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTUxLWNocm9t aXVtLXVuYnVuZGxlZC1jcm9zcy10b29sY2hhaW4ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTUyLWNocm9taXVtLXdlYnJ0Yy1zaXplX3Qu cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w MTUzLWNocm9taXVtLXdlYnJ0Yy1zaXplX3QucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTU0LWNocm9taXVtLXVpdF90LnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwMC1jaHJvbWl1 bS1zbmRpby5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9w YXRjaGVzLzAzMDAtY2hyb21pdW0tbXVzbC1oYWNrcy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAzMDEtY2hyb21pdW0tbXVzbC1zYW5kYm94 LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDMwMi1jaHJvbWl1bS1uby1tYWxsaW5mby5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3MDAtYXJtdjdsLW5lb24ucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzUwLWNocm9taXVtLW11 c2wtY3Jvc3Mtbm8tYXNtX3B0cmFjZV9oLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDc1MS1jaHJvbWl1bS1tdXNsLWFybS11c2VyX3ZmcC5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3 NTItY2hyb21pdW0tbXVzbC1hcm0tZWxmX2F1eHZfdC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA5MDAtY3Jvc3MtYnVpbGQtZXhhbXBsZXMu cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvdGVtcGxhdGUK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvdXBkYXRlCgpkaWZmIC0t Z2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggMjgyZjA1ODNkMmIxLi5h YzVlYTNiNDZiM2YgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGli cwpAQCAtMjA5NCw2ICsyMDk0LDEzIEBAIGxpYlF0NlBvc2l0aW9uaW5nLnNvLjYgcXQ2LWxvY2F0 aW9uLTYuMi4wYWxwaGFfMQogbGliUXQ2TXVsdGltZWRpYVdpZGdldHMuc28uNiBxdDYtbXVsdGlt ZWRpYS02LjMuMV8xCiBsaWJRdDZNdWx0aW1lZGlhUXVpY2suc28uNiBxdDYtbXVsdGltZWRpYS02 LjMuMV8xCiBsaWJRdDZNdWx0aW1lZGlhLnNvLjYgcXQ2LW11bHRpbWVkaWEtNi4zLjFfMQorbGli UXQ2V2ViRW5naW5lUXVpY2suc28uNiBxdDYtd2ViZW5naW5lLTYuMy4xXzEKK2xpYlF0NlBkZldp ZGdldHMuc28uNiBxdDYtd2ViZW5naW5lLTYuMy4xXzEKK2xpYlF0NlBkZlF1aWNrLnNvLjYgcXQ2 LXdlYmVuZ2luZS02LjMuMV8xCitsaWJRdDZXZWJFbmdpbmVDb3JlLnNvLjYgcXQ2LXdlYmVuZ2lu ZS02LjMuMV8xCitsaWJRdDZQZGYuc28uNiBxdDYtd2ViZW5naW5lLTYuMy4xXzEKK2xpYlF0Nldl YkVuZ2luZVF1aWNrRGVsZWdhdGVzUW1sLnNvLjYgcXQ2LXdlYmVuZ2luZS02LjMuMV8xCitsaWJR dDZXZWJFbmdpbmVXaWRnZXRzLnNvLjYgcXQ2LXdlYmVuZ2luZS02LjMuMV8xCiBsaWJucHRoLnNv LjAgbnB0aC0xLjFfMQogbGlibnB1cG5wLnNvLjkgbGlibnB1cG5wLTUuMC4wXzEKIGxpYmdsZncu c28uMyBnbGZ3LTMuMC40XzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS1kZXZl bCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS1kZXZlbApuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRl eCAwMDAwMDAwMDAwMDAuLjhlNGQxYjk5YzU4NwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS1kZXZlbApAQCAtMCwwICsxIEBACitxdDYtd2ViZW5naW5lClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lLWV4 YW1wbGVzIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lLWV4YW1wbGVzCm5ldyBmaWxlIG1vZGUgMTIw MDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uOGU0ZDFiOTljNTg3Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9xdDYtd2ViZW5naW5lLWV4YW1wbGVzCkBAIC0wLDAgKzEgQEAKK3F0Ni13ZWJlbmdp bmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMDAxLU5vbmUtbm8tZGVidWcucGF0Y2ggYi9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMDAxLU5vbmUtbm8tZGVidWcucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iMjIxZmRjZDM5MmYKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDAxLU5vbmUtbm8tZGVidWcucGF0Y2gK QEAgLTAsMCArMSwxMSBAQAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9jbWFrZS9GdW5j dGlvbnMuY21ha2UKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL2NtYWtlL0Z1bmN0aW9ucy5jbWFr ZQorQEAgLTgyMCw2ICs4MjAsOCBAQCBtYWNybyhhcHBlbmRfYnVpbGRfdHlwZV9zZXR1cCkKKyAg ICAgICAgIGVuZGlmKCkKKyAgICAgZWxzZWlmKCR7Y29uZmlnfSBTVFJFUVVBTCAiTWluU2l6ZVJl bCIpCisgICAgICAgICBsaXN0KEFQUEVORCBnbkFyZ0FyZyBpc19kZWJ1Zz1mYWxzZSBzeW1ib2xf bGV2ZWw9MCBvcHRpbWl6ZV9mb3Jfc2l6ZT10cnVlKQorKyAgICBlbHNlaWYoJHtjb25maWd9IFNU UkVRVUFMICJOb25lIikKKysgICAgICAgIGxpc3QoQVBQRU5EIGduQXJnQXJnIGlzX2RlYnVnPWZh bHNlIHN5bWJvbF9sZXZlbD0wKQorICAgICBlbmRpZigpCisgICAgIGlmKEZFQVRVUkVfZGV2ZWxv cGVyX2J1aWxkIE9SICgke2NvbmZpZ30gU1RSRVFVQUwgIkRlYnVnIikgT1IgUVRfRkVBVFVSRV93 ZWJlbmdpbmVfc2FuaXRpemVyKQorICAgICAgICAgbGlzdChBUFBFTkQgZ25BcmdBcmcKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDMtY3Jvc3MtaGFjay5wYXRj aCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDMtY3Jvc3MtaGFjay5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmEzZjBhNTc5MTQwNgotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDMtY3Jvc3Mt aGFjay5wYXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmln L3NyYy9jb3JlL2FwaS9DTWFrZUxpc3RzLnR4dAorKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3Jj L2NvcmUvYXBpL0NNYWtlTGlzdHMudHh0CitAQCAtNTEsNiArNTEsNyBAQCBxdF9pbnRlcm5hbF9h ZGRfbW9kdWxlKFdlYkVuZ2luZUNvcmUKKyAgICAgICAgIFF0OjpHdWkKKyAgICAgICAgIFF0OjpO ZXR3b3JrCisgICAgICAgICBRdDo6UXVpY2sKKysgICAgICAgIFgxMQorICkKKyAKKyBzZXRfdGFy Z2V0X3Byb3BlcnRpZXMoV2ViRW5naW5lQ29yZSBQUk9QRVJUSUVTIFFUV0VCRU5HSU5FUFJPQ0VT U19OQU1FICR7cXRXZWJFbmdpbmVQcm9jZXNzTmFtZX0pCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDUwLW5vLWdsaWJjLWNtYWtlLWNoZWNrLnBhdGNoIGIvc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDA1MC1uby1nbGliYy1jbWFrZS1jaGVjay5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQ5MTE2ZGM1ODU3ZQot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwNTAtbm8t Z2xpYmMtY21ha2UtY2hlY2sucGF0Y2gKQEAgLTAsMCArMSwxNCBAQAorLS0tIHF0Ni13ZWJlbmdp bmUtNi40LjIub3JpZy9jb25maWd1cmUuY21ha2UKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL2Nv bmZpZ3VyZS5jbWFrZQorQEAgLTQ5OSwxMSArNDk5LDYgQEAgYWRkX2NoZWNrX2Zvcl9zdXBwb3J0 KAorICkKKyBhZGRfY2hlY2tfZm9yX3N1cHBvcnQoCisgICAgTU9EVUxFUyBRdFdlYkVuZ2luZSBR dFBkZgorLSAgIENPTkRJVElPTiBOT1QgTElOVVggT1IgVEVTVF9nbGliYworLSAgIE1FU1NBR0Ug IkEgc3VpdGFibGUgdmVyc2lvbiA+PSAyLjE3IG9mIGdsaWJjIGlzIHJlcXVpcmVkLiIKKy0pCist YWRkX2NoZWNrX2Zvcl9zdXBwb3J0KAorLSAgIE1PRFVMRVMgUXRXZWJFbmdpbmUgUXRQZGYKKyAg ICBDT05ESVRJT04gTk9UIExJTlVYIE9SIFRFU1Rfa2hyCisgICAgTUVTU0FHRSAiQnVpbGQgcmVx dWlyZXMgS2hyb25vcyBkZXZlbG9wbWVudCBoZWFkZXJzIGZvciBidWlsZCAtIHNlZSBtZXNhL2xp YmVnbDEtbWVzYS1kZXYiCisgKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDEwMC1jaHJvbWl1bS1yZXZlcnQtOWQwODBjMC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAxMDAtY2hyb21pdW0tcmV2ZXJ0LTlkMDgwYzAucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hZGNhMzY0YTQwNjAKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAwLWNocm9taXVtLXJl dmVydC05ZDA4MGMwLnBhdGNoCkBAIC0wLDAgKzEsMTU0IEBACitSZXZlcnQgOWQwODBjMDkzNGI4 NDhlZTRhMDUwMTNjNzg2NDFlNjEyZmNjMWUwMworCistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5v cmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZC9jb25maWcvc2FuaXRpemVycy9CVUlMRC5n bgorKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkL2Nv bmZpZy9zYW5pdGl6ZXJzL0JVSUxELmduCitAQCAtMjcxLDExICsyNzEsMTEgQEAgY29uZmlnKCJh c2FuX2ZsYWdzIikgeworICAgaWYgKGlzX2FzYW4pIHsKKyAgICAgY2ZsYWdzICs9IFsgIi1mc2Fu aXRpemU9YWRkcmVzcyIgXQorICAgICBpZiAoaXNfd2luKSB7CistICAgICAgaWYgKCFkZWZpbmVk KGFzYW5fd2luX2Jsb2NrbGlzdF9wYXRoKSkgeworLSAgICAgICAgYXNhbl93aW5fYmxvY2tsaXN0 X3BhdGggPQorKyAgICAgIGlmICghZGVmaW5lZChhc2FuX3dpbl9ibGFja2xpc3RfcGF0aCkpIHsK KysgICAgICAgIGFzYW5fd2luX2JsYWNrbGlzdF9wYXRoID0KKyAgICAgICAgICAgICByZWJhc2Vf cGF0aCgiLy90b29scy9tZW1vcnkvYXNhbi9ibG9ja2xpc3Rfd2luLnR4dCIsIHJvb3RfYnVpbGRf ZGlyKQorICAgICAgIH0KKy0gICAgICBjZmxhZ3MgKz0gWyAiLWZzYW5pdGl6ZS1pZ25vcmVsaXN0 PSRhc2FuX3dpbl9ibG9ja2xpc3RfcGF0aCIgXQorKyAgICAgIGNmbGFncyArPSBbICItZnNhbml0 aXplLWJsYWNrbGlzdD0kYXNhbl93aW5fYmxhY2tsaXN0X3BhdGgiIF0KKyAgICAgfQorICAgfQor IH0KK0BAIC0zMDUsMTMgKzMwNSwxMyBAQCBjb25maWcoImxpbmtfc2hhcmVkX2xpYnJhcnkiKSB7 CisgY29uZmlnKCJjZmlfZmxhZ3MiKSB7CisgICBjZmxhZ3MgPSBbXQorICAgaWYgKGlzX2NmaSAm JiBjdXJyZW50X3Rvb2xjaGFpbiA9PSBkZWZhdWx0X3Rvb2xjaGFpbikgeworLSAgICBpZiAoIWRl ZmluZWQoY2ZpX2lnbm9yZWxpc3RfcGF0aCkpIHsKKy0gICAgICBjZmlfaWdub3JlbGlzdF9wYXRo ID0KKysgICAgaWYgKCFkZWZpbmVkKGNmaV9ibGFja2xpc3RfcGF0aCkpIHsKKysgICAgICBjZmlf YmxhY2tsaXN0X3BhdGggPQorICAgICAgICAgICByZWJhc2VfcGF0aCgiLy90b29scy9jZmkvaWdu b3Jlcy50eHQiLCByb290X2J1aWxkX2RpcikKKyAgICAgfQorICAgICBjZmxhZ3MgKz0gWworICAg ICAgICItZnNhbml0aXplPWNmaS12Y2FsbCIsCistICAgICAgIi1mc2FuaXRpemUtaWdub3JlbGlz dD0kY2ZpX2lnbm9yZWxpc3RfcGF0aCIsCisrICAgICAgIi1mc2FuaXRpemUtYmxhY2tsaXN0PSRj ZmlfYmxhY2tsaXN0X3BhdGgiLAorICAgICBdCisgCisgICAgIGlmICh1c2VfY2ZpX2Nhc3QpIHsK K0BAIC00MDgsMTQgKzQwOCwxNCBAQCBjb25maWcoIm1zYW5fZmxhZ3MiKSB7CisgICBpZiAoaXNf bXNhbikgeworICAgICBhc3NlcnQoaXNfbGludXggfHwgaXNfY2hyb21lb3MsCisgICAgICAgICAg ICAibXNhbiBvbmx5IHN1cHBvcnRlZCBvbiBsaW51eCB4ODZfNjQvQ2hyb21lT1MiKQorLSAgICBp ZiAoIWRlZmluZWQobXNhbl9pZ25vcmVsaXN0X3BhdGgpKSB7CistICAgICAgbXNhbl9pZ25vcmVs aXN0X3BhdGggPQorLSAgICAgICAgICByZWJhc2VfcGF0aCgiLy90b29scy9tc2FuL2lnbm9yZWxp c3QudHh0Iiwgcm9vdF9idWlsZF9kaXIpCisrICAgIGlmICghZGVmaW5lZChtc2FuX2JsYWNrbGlz dF9wYXRoKSkgeworKyAgICAgIG1zYW5fYmxhY2tsaXN0X3BhdGggPQorKyAgICAgICAgICByZWJh c2VfcGF0aCgiLy90b29scy9tc2FuL2JsYWNrbGlzdC50eHQiLCByb290X2J1aWxkX2RpcikKKyAg ICAgfQorICAgICBjZmxhZ3MgPSBbCisgICAgICAgIi1mc2FuaXRpemU9bWVtb3J5IiwKKyAgICAg ICAiLWZzYW5pdGl6ZS1tZW1vcnktdHJhY2stb3JpZ2lucz0kbXNhbl90cmFja19vcmlnaW5zIiwK Ky0gICAgICAiLWZzYW5pdGl6ZS1pZ25vcmVsaXN0PSRtc2FuX2lnbm9yZWxpc3RfcGF0aCIsCisr ICAgICAgIi1mc2FuaXRpemUtYmxhY2tsaXN0PSRtc2FuX2JsYWNrbGlzdF9wYXRoIiwKKyAgICAg XQorICAgfQorIH0KK0BAIC00MjMsMTMgKzQyMywxMyBAQCBjb25maWcoIm1zYW5fZmxhZ3MiKSB7 CisgY29uZmlnKCJ0c2FuX2ZsYWdzIikgeworICAgaWYgKGlzX3RzYW4pIHsKKyAgICAgYXNzZXJ0 KGlzX2xpbnV4IHx8IGlzX2Nocm9tZW9zLCAidHNhbiBvbmx5IHN1cHBvcnRlZCBvbiBsaW51eCB4 ODZfNjQiKQorLSAgICBpZiAoIWRlZmluZWQodHNhbl9pZ25vcmVsaXN0X3BhdGgpKSB7CistICAg ICAgdHNhbl9pZ25vcmVsaXN0X3BhdGggPQorKyAgICBpZiAoIWRlZmluZWQodHNhbl9ibGFja2xp c3RfcGF0aCkpIHsKKysgICAgICB0c2FuX2JsYWNrbGlzdF9wYXRoID0KKyAgICAgICAgICAgcmVi YXNlX3BhdGgoIi8vdG9vbHMvbWVtb3J5L3RzYW5fdjIvaWdub3Jlcy50eHQiLCByb290X2J1aWxk X2RpcikKKyAgICAgfQorICAgICBjZmxhZ3MgPSBbCisgICAgICAgIi1mc2FuaXRpemU9dGhyZWFk IiwKKy0gICAgICAiLWZzYW5pdGl6ZS1pZ25vcmVsaXN0PSR0c2FuX2lnbm9yZWxpc3RfcGF0aCIs CisrICAgICAgIi1mc2FuaXRpemUtYmxhY2tsaXN0PSR0c2FuX2JsYWNrbGlzdF9wYXRoIiwKKyAg ICAgXQorICAgfQorIH0KK0BAIC00MzcsOCArNDM3LDggQEAgY29uZmlnKCJ0c2FuX2ZsYWdzIikg eworIGNvbmZpZygidWJzYW5fZmxhZ3MiKSB7CisgICBjZmxhZ3MgPSBbXQorICAgaWYgKGlzX3Vi c2FuKSB7CistICAgIGlmICghZGVmaW5lZCh1YnNhbl9pZ25vcmVsaXN0X3BhdGgpKSB7CistICAg ICAgdWJzYW5faWdub3JlbGlzdF9wYXRoID0KKysgICAgaWYgKCFkZWZpbmVkKHVic2FuX2JsYWNr bGlzdF9wYXRoKSkgeworKyAgICAgIHVic2FuX2JsYWNrbGlzdF9wYXRoID0KKyAgICAgICAgICAg cmViYXNlX3BhdGgoIi8vdG9vbHMvdWJzYW4vaWdub3JlbGlzdC50eHQiLCByb290X2J1aWxkX2Rp cikKKyAgICAgfQorICAgICBjZmxhZ3MgKz0gWworQEAgLTQ1NSw3ICs0NTUsNyBAQCBjb25maWco InVic2FuX2ZsYWdzIikgeworICAgICAgICItZnNhbml0aXplPXNpZ25lZC1pbnRlZ2VyLW92ZXJm bG93IiwKKyAgICAgICAiLWZzYW5pdGl6ZT11bnJlYWNoYWJsZSIsCisgICAgICAgIi1mc2FuaXRp emU9dmxhLWJvdW5kIiwKKy0gICAgICAiLWZzYW5pdGl6ZS1pZ25vcmVsaXN0PSR1YnNhbl9pZ25v cmVsaXN0X3BhdGgiLAorKyAgICAgICItZnNhbml0aXplLWJsYWNrbGlzdD0kdWJzYW5fYmxhY2ts aXN0X3BhdGgiLAorICAgICBdCisgICAgIGlmICghaXNfY2xhbmcpIHsKKyAgICAgICAjIFRoZXNl IGV4cG9zZXMgdG9vIG11Y2ggaWxsZWdhbCBDKysxNCBjb2RlIHRvIGNvbXBpbGUgb24gYW55dGhp bmcgc3RyaWN0ZXIgdGhhbiBjbGFuZzoKK0BAIC00OTYsOCArNDk2LDggQEAgY29uZmlnKCJ1YnNh bl9ub19yZWNvdmVyIikgeworIAorIGNvbmZpZygidWJzYW5fc2VjdXJpdHlfZmxhZ3MiKSB7Cisg ICBpZiAoaXNfdWJzYW5fc2VjdXJpdHkpIHsKKy0gICAgaWYgKCFkZWZpbmVkKHVic2FuX3NlY3Vy aXR5X2lnbm9yZWxpc3RfcGF0aCkpIHsKKy0gICAgICB1YnNhbl9zZWN1cml0eV9pZ25vcmVsaXN0 X3BhdGggPQorKyAgICBpZiAoIWRlZmluZWQodWJzYW5fc2VjdXJpdHlfYmxhY2tsaXN0X3BhdGgp KSB7CisrICAgICAgdWJzYW5fc2VjdXJpdHlfYmxhY2tsaXN0X3BhdGggPQorICAgICAgICAgICBy ZWJhc2VfcGF0aCgiLy90b29scy91YnNhbi9zZWN1cml0eV9pZ25vcmVsaXN0LnR4dCIsIHJvb3Rf YnVpbGRfZGlyKQorICAgICB9CisgICAgIGNmbGFncyA9IFsKK0BAIC01MDUsNyArNTA1LDcgQEAg Y29uZmlnKCJ1YnNhbl9zZWN1cml0eV9mbGFncyIpIHsKKyAgICAgICAiLWZzYW5pdGl6ZT1zaGlm dCIsCisgICAgICAgIi1mc2FuaXRpemU9c2lnbmVkLWludGVnZXItb3ZlcmZsb3ciLAorICAgICAg ICItZnNhbml0aXplPXZsYS1ib3VuZCIsCistICAgICAgIi1mc2FuaXRpemUtaWdub3JlbGlzdD0k dWJzYW5fc2VjdXJpdHlfaWdub3JlbGlzdF9wYXRoIiwKKysgICAgICAiLWZzYW5pdGl6ZS1ibGFj a2xpc3Q9JHVic2FuX3NlY3VyaXR5X2JsYWNrbGlzdF9wYXRoIiwKKyAgICAgXQorICAgfQorIH0K K0BAIC01MTgsMTMgKzUxOCwxMyBAQCBjb25maWcoInVic2FuX251bGxfZmxhZ3MiKSB7CisgCisg Y29uZmlnKCJ1YnNhbl92cHRyX2ZsYWdzIikgeworICAgaWYgKGlzX3Vic2FuX3ZwdHIpIHsKKy0g ICAgaWYgKCFkZWZpbmVkKHVic2FuX3ZwdHJfaWdub3JlbGlzdF9wYXRoKSkgeworLSAgICAgIHVi c2FuX3ZwdHJfaWdub3JlbGlzdF9wYXRoID0KKysgICAgaWYgKCFkZWZpbmVkKHVic2FuX3ZwdHJf YmxhY2tsaXN0X3BhdGgpKSB7CisrICAgICAgdWJzYW5fdnB0cl9ibGFja2xpc3RfcGF0aCA9Cisg ICAgICAgICAgIHJlYmFzZV9wYXRoKCIvL3Rvb2xzL3Vic2FuL3ZwdHJfaWdub3JlbGlzdC50eHQi LCByb290X2J1aWxkX2RpcikKKyAgICAgfQorICAgICBjZmxhZ3MgPSBbCisgICAgICAgIi1mc2Fu aXRpemU9dnB0ciIsCistICAgICAgIi1mc2FuaXRpemUtaWdub3JlbGlzdD0kdWJzYW5fdnB0cl9p Z25vcmVsaXN0X3BhdGgiLAorKyAgICAgICItZnNhbml0aXplLWJsYWNrbGlzdD0kdWJzYW5fdnB0 cl9ibGFja2xpc3RfcGF0aCIsCisgICAgIF0KKyAgICAgaWYgKCFpc19jbGFuZykgeworICAgICAg ICMgQ2xhbmcgc3BlY2lmaWMgZmxhZzoKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkX292ZXJyaWRlcy9idWlsZC5nbmkKKysrKyBxdDYtd2Vi ZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZF9vdmVycmlkZXMvYnVpbGQu Z25pCitAQCAtNDMsMTUgKzQzLDE1IEBAIGRlY2xhcmVfYXJncygpIHsKKyAjIEFsbG93cyBkaWZm ZXJlbnQgcHJvamVjdHMgdG8gc3BlY2lmeSB0aGVpciBvd24gc3VwcHJlc3Npb24vaWdub3JlIGxp c3RzIGZvcgorICMgc2FuaXRpemVyIHRvb2xzLgorICMgYXNhbl9zdXBwcmVzc2lvbnNfZmlsZSA9 ICJwYXRoL3RvL2FzYW5fc3VwcHJlc3Npb25zLmNjIgorLSMgYXNhbl93aW5faWdub3JlbGlzdF9w YXRoID0gInBhdGgvdG8vYXNhbi9ibG9ja2xpc3Rfd2luLnR4dCIKKysjIGFzYW5fd2luX2JsYWNr bGlzdF9wYXRoID0gInBhdGgvdG8vYXNhbi9ibG9ja2xpc3Rfd2luLnR4dCIKKyAjIGxzYW5fc3Vw cHJlc3Npb25zX2ZpbGUgPSAicGF0aC90by9sc2FuX3N1cHByZXNzaW9ucy5jYyIKKyAjIHRzYW5f c3VwcHJlc3Npb25zX2ZpbGUgPSAicGF0aC90by90c2FuX3N1cHByZXNzaW9ucy5jYyIKKy0jIHRz YW5faWdub3JlbGlzdF9wYXRoID0gInBhdGgvdG8vdHNhbi9pZ25vcmVzLnR4dCIKKy0jIG1zYW5f aWdub3JlbGlzdF9wYXRoID0gInBhdGgvdG8vbXNhbi9pZ25vcmVsaXN0LnR4dCIKKy0jIHVic2Fu X2lnbm9yZWxpc3RfcGF0aCA9ICJwYXRoL3RvL3Vic2FuL2lnbm9yZWxpc3QudHh0IgorLSMgdWJz YW5fdnB0cl9pZ25vcmVsaXN0X3BhdGggPSAicGF0aC90by91YnNhbi92cHRyX2lnbm9yZWxpc3Qu dHh0IgorLSMgdWJzYW5fc2VjdXJpdHlfaWdub3JlbGlzdF9wYXRoID0gInBhdGgvdG8vdWJzYW4v c2VjdXJpdHlfaWdub3JlbGlzdC50eHQiCistIyBjZmlfaWdub3JlbGlzdF9wYXRoID0gInBhdGgv dG8vY2ZpL2lnbm9yZXMudHh0IgorKyMgdHNhbl9ibGFja2xpc3RfcGF0aCA9ICJwYXRoL3RvL3Rz YW4vaWdub3Jlcy50eHQiCisrIyBtc2FuX2JsYWNrbGlzdF9wYXRoID0gInBhdGgvdG8vbXNhbi9i bGFja2xpc3QudHh0IgorKyMgdWJzYW5fYmxhY2tsaXN0X3BhdGggPSAicGF0aC90by91YnNhbi9i bGFja2xpc3QudHh0IgorKyMgdWJzYW5fdnB0cl9ibGFja2xpc3RfcGF0aCA9ICJwYXRoL3RvL3Vi c2FuL3ZwdHJfYmxhY2tsaXN0LnR4dCIKKysjIHVic2FuX3NlY3VyaXR5X2JsYWNrbGlzdF9wYXRo ID0gInBhdGgvdG8vdWJzYW4vc2VjdXJpdHlfYmxhY2tsaXN0LnR4dCIKKysjIGNmaV9ibGFja2xp c3RfcGF0aCA9ICJwYXRoL3RvL2NmaS9pZ25vcmVzLnR4dCIKKyAKKyBpZiAoaG9zdF9vcyA9PSAi bWFjIiB8fCBpc19hcHBsZSkgeworICAgIyBOZWVkZWQgZm9yIGlzX2FwcGxlIHdoZW4gdGFyZ2V0 aW5nIG1hY09TIG9yIGlPUywgaW5kZXBlbmRlbnQgb2YgaG9zdC4KZGlmZiAtLWdpdCBhL3NyY3Br Z3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDEtY2hyb21pdW0tMTAyLWZlbmNlZF9mcmFtZV91 dGlscy1pbmNsdWRlLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMS1j aHJvbWl1bS0xMDItZmVuY2VkX2ZyYW1lX3V0aWxzLWluY2x1ZGUucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5mNDFjNzk4NDg0MGQKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAxLWNocm9taXVtLTEwMi1mZW5j ZWRfZnJhbWVfdXRpbHMtaW5jbHVkZS5wYXRjaApAQCAtMCwwICsxLDIwIEBACitGcm9tIDdjMTM1 YTI5MTE4NGI1OWE1OTY0M2VkNmE4YzQwYjQ0MDVhYzAxNzUgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBTdGVwaGFuIEhhcnRtYW5uIDxzdGhhMDlAZ29vZ2xlbWFpbC5jb20+CitEYXRl OiBXZWQsIDI3IEFwciAyMDIyIDE2OjAxOjAxICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIElXWVU6 IGFkZCBjc3RyaW5nIGZvciBzdGQ6OnN0cmxlbiBpbiBmZW5jZWRfZnJhbWVfdXRpbHMKKworLS0t CisgdGhpcmRfcGFydHkvYmxpbmsvY29tbW9uL2ZlbmNlZF9mcmFtZS9mZW5jZWRfZnJhbWVfdXRp bHMuY2MgfCAyICsrCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQorCistLS0gcXQ2 LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9i bGluay9jb21tb24vZmVuY2VkX2ZyYW1lL2ZlbmNlZF9mcmFtZV91dGlscy5jYworKysrIHF0Ni13 ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JsaW5rL2Nv bW1vbi9mZW5jZWRfZnJhbWUvZmVuY2VkX2ZyYW1lX3V0aWxzLmNjCitAQCAtNiw2ICs2LDggQEAK KyAKKyAjaW5jbHVkZSA8Y3N0cmluZz4KKyAKKysjaW5jbHVkZSA8Y3N0cmluZz4KKysKKyAjaW5j bHVkZSAiYmFzZS9ndWlkLmgiCisgI2luY2x1ZGUgImJhc2Uvc3RyaW5ncy9zdHJpbmdfdXRpbC5o IgorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMi1jaHJv bWl1bS0xMDItcmVnZXhfcGF0dGVybi1hcnJheS5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAxMDItY2hyb21pdW0tMTAyLXJlZ2V4X3BhdHRlcm4tYXJyYXkucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40MjBlZjk0MWEzODYKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAyLWNocm9taXVt LTEwMi1yZWdleF9wYXR0ZXJuLWFycmF5LnBhdGNoCkBAIC0wLDAgKzEsMTQgQEAKKy0tLSBxdDYt d2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2NvbXBvbmVudHMvYXV0 b2ZpbGwvY29yZS9icm93c2VyL0JVSUxELmduCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMv M3JkcGFydHkvY2hyb21pdW0vY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvQlVJTEQu Z24KK0BAIC0zNCw2ICszNCwxMSBAQCBhY3Rpb24oInJlZ2V4X3BhdHRlcm5zX2lubF9oIikgewor IH0KKyAKKyBqdW1ib19zdGF0aWNfbGlicmFyeSgiYnJvd3NlciIpIHsKKysgIGlmIChpc19jbGFu ZykgeworKyAgICBjZmxhZ3MgPSBbCisrICAgICAgIi1mYnJhY2tldC1kZXB0aD0xMDAwIiwKKysg ICAgXQorKyAgfQorICAgc291cmNlcyA9IFsKKyAgICAgImFkZHJlc3Nfbm9ybWFsaXphdGlvbl9t YW5hZ2VyLmNjIiwKKyAgICAgImFkZHJlc3Nfbm9ybWFsaXphdGlvbl9tYW5hZ2VyLmgiLApkaWZm IC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMy1jaHJvbWl1bS1pNjg2 LXZhYXBpLWZwZXJtaXNzaXZlLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDEwMy1jaHJvbWl1bS1pNjg2LXZhYXBpLWZwZXJtaXNzaXZlLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNzA4ZDU2N2EwNGRjCi0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMy1jaHJvbWl1bS1pNjg2LXZhYXBp LWZwZXJtaXNzaXZlLnBhdGNoCkBAIC0wLDAgKzEsMjMgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYu NC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL2dwdS92YWFwaS9CVUlMRC5nbgor KysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL2dwdS92 YWFwaS9CVUlMRC5nbgorQEAgLTE0LDYgKzE0LDEyIEBAIGltcG9ydCgiLy91aS9nbC9mZWF0dXJl cy5nbmkiKQorIGFzc2VydChpc19saW51eCB8fCBpc19jaHJvbWVvcykKKyBhc3NlcnQodXNlX3Zh YXBpKQorIAorK2NvbmZpZygidmFhcGlfcGVybWlzc2l2ZSIpIHsKKysgIGlmICh0YXJnZXRfY3B1 ID09ICJ4ODYiKSB7CisrICAgIGNmbGFncyA9IFsgIi1mcGVybWlzc2l2ZSIgXQorKyAgfQorK30K KysKKyBnZW5lcmF0ZV9zdHVicygibGlidmFfc3R1YnMiKSB7CisgICBleHRyYV9oZWFkZXIgPSAi dmFfc3R1Yl9oZWFkZXIuZnJhZ21lbnQiCisgICBzaWdzID0gWyAidmEuc2lncyIgXQorQEAgLTg5 LDYgKzk1LDcgQEAgc291cmNlX3NldCgidmFhcGkiKSB7CisgICBjb25maWdzICs9IFsKKyAgICAg Ii8vYnVpbGQvY29uZmlnL2xpbnV4L2xpYnZhIiwKKyAgICAgIi8vdGhpcmRfcGFydHkvbGlidnB4 OmxpYnZweF9jb25maWciLAorKyAgICAiOnZhYXBpX3Blcm1pc3NpdmUiLAorICAgXQorIAorICAg ZGVwcyA9IFsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDQt Y2hyb21pdW0tbGlieG1sLXVuYnVuZGxlLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDEwNC1jaHJvbWl1bS1saWJ4bWwtdW5idW5kbGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iYWNhNDg0YWJjNGEKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA0LWNocm9taXVtLWxpYnhtbC11bmJ1 bmRsZS5wYXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmln L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZC9saW51eC91bmJ1bmRsZS9saWJ4bWwuZ24KKysr KyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZC9saW51eC91 bmJ1bmRsZS9saWJ4bWwuZ24KK0BAIC0xOSw2ICsxOSw3IEBAIHN0YXRpY19saWJyYXJ5KCJsaWJ4 bWxfdXRpbHMiKSB7CisgICAgICI6eG1sX3JlYWRlciIsCisgICAgICI6eG1sX3dyaXRlciIsCisg ICAgICIvL2Jhc2UvdGVzdDp0ZXN0X3N1cHBvcnQiLAorKyAgICAiLy9zZXJ2aWNlcy9kYXRhX2Rl Y29kZXI6bGliIiwKKyAgICAgIi8vc2VydmljZXMvZGF0YV9kZWNvZGVyOnhtbF9wYXJzZXJfZnV6 emVyX2RlcHMiLAorICAgXQorICAgc291cmNlcyA9IFsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDUtY2hyb21pdW0tcmV2ZXJ0LWRyb3Atb2Ytc3lzdGVtLWph dmEucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA1LWNocm9taXVtLXJl dmVydC1kcm9wLW9mLXN5c3RlbS1qYXZhLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uZDZhYmY3YWRjYWJjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwNS1jaHJvbWl1bS1yZXZlcnQtZHJvcC1vZi1zeXN0ZW0t amF2YS5wYXRjaApAQCAtMCwwICsxLDE1IEBACitUaGlzIHdhcyBkcm9wcGVkIGZvciBzb21lIHJl YXNvbiBpbiA2OTUxYzM3Y2VjZDA1OTc5YjIzMmEzOWU1YzEwZTYzNDZhMGY3NGVmCistLS0gcXQ2 LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9j bG9zdXJlX2NvbXBpbGVyL2NvbXBpbGVyLnB5CisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY2xvc3VyZV9jb21waWxlci9jb21waWxlci5w eQorQEAgLTEzLDggKzEzLDkgQEAgaW1wb3J0IHN1YnByb2Nlc3MKKyAKKyAKKyBfQ1VSUkVOVF9E SVIgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkKKy1fSkFWQV9QQVRI ID0gb3MucGF0aC5qb2luKF9DVVJSRU5UX0RJUiwgIi4uIiwgImpkayIsICJjdXJyZW50IiwgImJp biIsICJqYXZhIikKKy1hc3NlcnQgb3MucGF0aC5pc2ZpbGUoX0pBVkFfUEFUSCksICJqYXZhIG9u bHkgYWxsb3dlZCBpbiBhbmRyb2lkIGJ1aWxkcyIKKytfSkFWQV9CSU4gPSAiamF2YSIKKytfSkRL X1BBVEggPSBvcy5wYXRoLmpvaW4oX0NVUlJFTlRfRElSLCAiLi4iLCAiamRrIiwgImN1cnJlbnQi LCAiYmluIiwgImphdmEiKQorK19KQVZBX1BBVEggPSBfSkRLX1BBVEggaWYgb3MucGF0aC5pc2Zp bGUoX0pES19QQVRIKSBlbHNlIF9KQVZBX0JJTgorIAorIGNsYXNzIENvbXBpbGVyKG9iamVjdCk6 CisgICAiIiJSdW5zIHRoZSBDbG9zdXJlIGNvbXBpbGVyIG9uIGdpdmVuIHNvdXJjZSBmaWxlcyB0 byB0eXBlY2hlY2sgdGhlbQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDEwNi1jaHJvbWl1bS1zeXN0ZW0tbm9kZWpzLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDEwNi1jaHJvbWl1bS1zeXN0ZW0tbm9kZWpzLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMTY0OGY3NjRlYTE5Ci0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwNi1jaHJvbWl1bS1zeXN0ZW0t bm9kZWpzLnBhdGNoCkBAIC0wLDAgKzEsMjkgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9y aWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L25vZGUvbm9kZS5weQorKysrIHF0 Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L25vZGUv bm9kZS5weQorQEAgLTE4LDI1ICsxOCw3IEBAIGRlZiB3aGljaChjbWQpOgorICAgICByZXR1cm4g Tm9uZQorIAorIGRlZiBHZXRCaW5hcnlQYXRoKCk6CistICBpZiBzeXMucGxhdGZvcm0gPT0gJ3dp bjMyJzoKKy0gICAgbm9kZWpzID0gd2hpY2goJ25vZGUuZXhlJykKKy0gICAgaWYgbm9kZWpzOgor LSAgICAgIHJldHVybiBub2RlanMKKy0gIGVsc2U6CistICAgIG5vZGVqcyA9IHdoaWNoKCdub2Rl anMnKQorLSAgICBpZiBub2RlanM6CistICAgICAgcmV0dXJuIG5vZGVqcworLSAgICBub2RlanMg PSB3aGljaCgnbm9kZScpCistICAgIGlmIG5vZGVqczoKKy0gICAgICByZXR1cm4gbm9kZWpzCist CistICBkYXJ3aW5fbmFtZSA9ICgnbm9kZS1kYXJ3aW4tYXJtNjQnIGlmIHBsYXRmb3JtLm1hY2hp bmUoKSA9PSAnYXJtNjQnIGVsc2UKKy0gICAgICAgICAgICAgICAgICdub2RlLWRhcndpbi14NjQn KQorLSAgcmV0dXJuIG9zX3BhdGguam9pbihvc19wYXRoLmRpcm5hbWUoX19maWxlX18pLCAqewor LSAgICAnRGFyd2luJzogKCdtYWMnLCBkYXJ3aW5fbmFtZSwgJ2JpbicsICdub2RlJyksCistICAg ICdMaW51eCc6ICgnbGludXgnLCAnbm9kZS1saW51eC14NjQnLCAnYmluJywgJ25vZGUnKSwKKy0g ICAgJ1dpbmRvd3MnOiAoJ3dpbicsICdub2RlLmV4ZScpLAorLSAgfVtwbGF0Zm9ybS5zeXN0ZW0o KV0pCisrICByZXR1cm4gIi91c3IvYmluL25vZGUiCisgCisgCisgZGVmIFJ1bk5vZGUoY21kX3Bh cnRzLCBzdGRvdXQ9Tm9uZSk6CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMTA3LWNocm9taXVtLWNyb3NzLWJ1aWxkLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDEwNy1jaHJvbWl1bS1jcm9zcy1idWlsZC5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQ0OTU0ZGZiYjFlNQotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDctY2hyb21pdW0tY3Jvc3MtYnVp bGQucGF0Y2gKQEAgLTAsMCArMSw2NSBAQAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9z cmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGQvY29uZmlnL2NvbXBpbGVyL0JVSUxELmduCisrKysg cXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGQvY29uZmlnL2Nv bXBpbGVyL0JVSUxELmduCitAQCAtNTgsNiArNTgsMTAgQEAgaWYgKCFpc19jbGFuZykgeworIH0K KyAKKyBkZWNsYXJlX2FyZ3MoKSB7CisrICBpc19tdXNsID0gZmFsc2UKKyt9CisrCisrZGVjbGFy ZV9hcmdzKCkgeworICAgIyBOb3JtYWxseSwgQW5kcm9pZCBidWlsZHMgYXJlIGxpZ2h0bHkgb3B0 aW1pemVkLCBldmVuIGZvciBkZWJ1ZyBidWlsZHMsIHRvCisgICAjIGtlZXAgYmluYXJ5IHNpemUg ZG93bi4gU2V0dGluZyB0aGlzIGZsYWcgdG8gdHJ1ZSBkaXNhYmxlcyBzdWNoIG9wdGltaXphdGlv bgorICAgYW5kcm9pZF9mdWxsX2RlYnVnID0gZmFsc2UKK0BAIC05NzAsOCArOTc0LDEzIEBAIGNv bmZpZygiY29tcGlsZXJfY3B1X2FiaSIpIHsKKyAgICAgICB9CisgICAgIH0gZWxzZSBpZiAoY3Vy cmVudF9jcHUgPT0gImFybTY0IikgeworICAgICAgIGlmIChpc19jbGFuZyAmJiAhaXNfYW5kcm9p ZCAmJiAhaXNfbmFjbCAmJiAhaXNfZnVjaHNpYSkgeworLSAgICAgICAgY2ZsYWdzICs9IFsgIi0t dGFyZ2V0PWFhcmNoNjQtbGludXgtZ251IiBdCistICAgICAgICBsZGZsYWdzICs9IFsgIi0tdGFy Z2V0PWFhcmNoNjQtbGludXgtZ251IiBdCisrICAgICAgICBpZiAoaXNfbXVzbCkgeworKyAgICAg ICAgICBjZmxhZ3MgKz0gWyAiLS10YXJnZXQ9YWFyY2g2NC1saW51eC1tdXNsIiBdCisrICAgICAg ICAgIGxkZmxhZ3MgKz0gWyAiLS10YXJnZXQ9YWFyY2g2NC1saW51eC1tdXNsIiBdCisrICAgICAg ICB9IGVsc2UgeworKyAgICAgICAgICBjZmxhZ3MgKz0gWyAiLS10YXJnZXQ9YWFyY2g2NC1saW51 eC1nbnUiIF0KKysgICAgICAgICAgbGRmbGFncyArPSBbICItLXRhcmdldD1hYXJjaDY0LWxpbnV4 LWdudSIgXQorKyAgICAgICAgfQorICAgICAgIH0KKyAgICAgICBpZiAoaXNfYW5kcm9pZCkgewor ICAgICAgICAgIyBPdXRsaW5lIGF0b21pY3MgY3Jhc2ggb24gRXh5bm9zIDk4MTAuIGh0dHA6Ly9j cmJ1Zy5jb20vMTI3Mjc5NQorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFy dHkvY2hyb21pdW0vYnVpbGQvdG9vbGNoYWluL2xpbnV4L3VuYnVuZGxlL0JVSUxELmduCisrKysg cXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGQvdG9vbGNoYWlu L2xpbnV4L3VuYnVuZGxlL0JVSUxELmduCitAQCAtMzksMyArMzksMjIgQEAgZ2NjX3Rvb2xjaGFp bigiaG9zdCIpIHsKKyAgICAgY3VycmVudF9vcyA9IGN1cnJlbnRfb3MKKyAgIH0KKyB9CisrCisr Z2NjX3Rvb2xjaGFpbigidjhfc25hcHNob3RfY3Jvc3MiKSB7CisrICBjYyA9IGdldGVudigiQlVJ TERfQ0MiKQorKyAgY3h4ID0gZ2V0ZW52KCJCVUlMRF9DWFgiKQorKyAgYXIgPSBnZXRlbnYoIkJV SUxEX0FSIikKKysgIG5tID0gZ2V0ZW52KCJCVUlMRF9OTSIpCisrICBsZCA9IGN4eAorKworKyAg ZXh0cmFfY2ZsYWdzID0gZ2V0ZW52KCJCVUlMRF9DRkxBR1MiKQorKyAgZXh0cmFfY3BwZmxhZ3Mg PSBnZXRlbnYoIkJVSUxEX0NQUEZMQUdTIikKKysgIGV4dHJhX2N4eGZsYWdzID0gZ2V0ZW52KCJC VUlMRF9DWFhGTEFHUyIpCisrICBleHRyYV9sZGZsYWdzID0gZ2V0ZW52KCJCVUlMRF9MREZMQUdT IikKKysKKysgIHRvb2xjaGFpbl9hcmdzID0geworKyAgICBjdXJyZW50X2NwdSA9IGhvc3RfY3B1 CisrICAgIGN1cnJlbnRfb3MgPSBob3N0X29zCisrICAgIHY4X2N1cnJlbnRfY3B1ID0gdGFyZ2V0 X2NwdQorKyAgfQorK30KKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL2J1aWxkL2NvbmZpZy9saW51eC9wa2dfY29uZmlnLmduaQorKysrIHF0Ni13ZWJl bmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkL2NvbmZpZy9saW51eC9wa2df Y29uZmlnLmduaQorQEAgLTkyLDcgKzkyLDcgQEAgdGVtcGxhdGUoInBrZ19jb25maWciKSB7Cisg ICBhc3NlcnQoZGVmaW5lZChpbnZva2VyLnBhY2thZ2VzKSwKKyAgICAgICAgICAiVmFyaWFibGUg fHBhY2thZ2VzfCBtdXN0IGJlIGRlZmluZWQgdG8gYmUgYSBsaXN0IGluIHBrZ19jb25maWcuIikK KyAgIGNvbmZpZyh0YXJnZXRfbmFtZSkgeworLSAgICBpZiAoaG9zdF90b29sY2hhaW4gPT0gY3Vy cmVudF90b29sY2hhaW4pIHsKKysgICAgaWYgKGN1cnJlbnRfY3B1ICE9IHRhcmdldF9jcHUpIHsK KyAgICAgICBhcmdzID0gY29tbW9uX3BrZ19jb25maWdfYXJncyArIGhvc3RfcGtnX2NvbmZpZ19h cmdzICsgaW52b2tlci5wYWNrYWdlcworICAgICB9IGVsc2UgeworICAgICAgIGFyZ3MgPSBjb21t b25fcGtnX2NvbmZpZ19hcmdzICsgcGtnX2NvbmZpZ19hcmdzICsgaW52b2tlci5wYWNrYWdlcwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwOC1jaHJvbWl1bS1j dXJzZWReVXNjb3BlZF9maWxlLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDEwOC1jaHJvbWl1bS1jdXJzZWReVXNjb3BlZF9maWxlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZGQzMWRhOTc5MGFkCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwOC1jaHJvbWl1bS1jdXJzZWReVXNjb3Bl ZF9maWxlLnBhdGNoCkBAIC0wLDAgKzEsMTggQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9y aWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvZmlsZXMvc2NvcGVkX2ZpbGVfbGludXguY2MK KysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2ZpbGVz L3Njb3BlZF9maWxlX2xpbnV4LmNjCitAQCAtNzcsMTUgKzc3LDMgQEAgYm9vbCBJc0ZET3duZWQo aW50IGZkKSB7CisgfQorIAorIH0gIC8vIG5hbWVzcGFjZSBiYXNlCistCistZXh0ZXJuICJDIiB7 CistCistaW50IF9fY2xvc2UoaW50KTsKKy0KKy1fX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJk ZWZhdWx0IiksIG5vaW5saW5lKSkgaW50IGNsb3NlKGludCBmZCkgeworLSAgaWYgKGJhc2U6Oklz RkRPd25lZChmZCkgJiYgZ19pc19vd25lcnNoaXBfZW5mb3JjZWQpCistICAgIENyYXNoT25GZE93 bmVyc2hpcFZpb2xhdGlvbigpOworLSAgcmV0dXJuIF9fY2xvc2UoZmQpOworLX0KKy0KKy19ICAv LyBleHRlcm4gIkMiCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w MTA5LWNocm9taXVtLWFhcmNoNjQtbXVzbC1tZW1vcnktdGFnZ2luZy5wYXRjaCBiL3NyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDktY2hyb21pdW0tYWFyY2g2NC1tdXNsLW1lbW9yeS10 YWdnaW5nLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMGZm MmEyYTUxYWFhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDEwOS1jaHJvbWl1bS1hYXJjaDY0LW11c2wtbWVtb3J5LXRhZ2dpbmcucGF0Y2gKQEAgLTAs MCArMSwyOSBAQAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hy b21pdW0vYmFzZS9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jYXRvci90YWdnaW5nLmNjCisrKysg cXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9hbGxvY2F0b3Iv cGFydGl0aW9uX2FsbG9jYXRvci90YWdnaW5nLmNjCitAQCAtMjgsMTMgKzI4LDI1IEBACisgI2Vu ZGlmCisgI2VuZGlmCisgCistI2lmbmRlZiBIQVNfUFJfTVRFX01BQ1JPUworKyNpZm5kZWYgUFJf TVRFX1RDRl9TSElGVAorICNkZWZpbmUgUFJfTVRFX1RDRl9TSElGVCAxCisrI2VuZGlmCisrI2lm bmRlZiBQUl9NVEVfVENGX05PTkUKKyAjZGVmaW5lIFBSX01URV9UQ0ZfTk9ORSAoMFVMIDw8IFBS X01URV9UQ0ZfU0hJRlQpCisrI2VuZGlmCisrI2lmbmRlZiBQUl9NVEVfVENGX1NZTkMKKyAjZGVm aW5lIFBSX01URV9UQ0ZfU1lOQyAoMVVMIDw8IFBSX01URV9UQ0ZfU0hJRlQpCisrI2VuZGlmCisr I2lmbmRlZiBQUl9NVEVfVENGX0FTWU5DCisgI2RlZmluZSBQUl9NVEVfVENGX0FTWU5DICgyVUwg PDwgUFJfTVRFX1RDRl9TSElGVCkKKysjZW5kaWYKKysjaWZuZGVmIFBSX01URV9UQ0ZfTUFTSwor ICNkZWZpbmUgUFJfTVRFX1RDRl9NQVNLICgzVUwgPDwgUFJfTVRFX1RDRl9TSElGVCkKKysjZW5k aWYKKysjaWZuZGVmIFBSX01URV9UQUdfU0hJRlQKKyAjZGVmaW5lIFBSX01URV9UQUdfU0hJRlQg MworKyNlbmRpZgorKyNpZm5kZWYgUFJfTVRFX1RBR19NQVNLCisgI2RlZmluZSBQUl9NVEVfVEFH X01BU0sgKDB4ZmZmZlVMIDw8IFBSX01URV9UQUdfU0hJRlQpCisgI2VuZGlmCisgI2VuZGlmCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTEwLWNocm9taXVtLWZp eC1taXNzaW5nLVRFTVBfRkFJTFVSRV9SRVRSWS1tYWNyby5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAxMTAtY2hyb21pdW0tZml4LW1pc3NpbmctVEVNUF9GQUlMVVJFX1JF VFJZLW1hY3JvLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u NTU1OGM1NGNmODAyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDExMC1jaHJvbWl1bS1maXgtbWlzc2luZy1URU1QX0ZBSUxVUkVfUkVUUlktbWFjcm8u cGF0Y2gKQEAgLTAsMCArMSwyMSBAQAorVGhpcyBtYWNybyBpcyBkZWZpbmVkIGluIGdsaWJjLCBi dXQgbm90IG11c2wuCisKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3VpZC9wcm9jZXNzX3V0aWwuaAorKysrIHF0Ni13ZWJl bmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3VpZC9wcm9j ZXNzX3V0aWwuaAorQEAgLTEyLDYgKzEyLDE2IEBACisgI2luY2x1ZGUgPHN0ZGludC5oPgorICNp bmNsdWRlIDxzeXMvdHlwZXMuaD4KKyAKKysvLyBTb21lIGFkZGl0aW9uYWwgZnVuY3Rpb25zCisr I2lmICFkZWZpbmVkKFRFTVBfRkFJTFVSRV9SRVRSWSkKKysjIGRlZmluZSBURU1QX0ZBSUxVUkVf UkVUUlkoZXhwcmVzc2lvbikgXAorKwkoX19leHRlbnNpb25fXwkJCVwKKysJICh7IGxvbmcgaW50 IF9fcmVzdWx0OwkJXAorKwkgIGRvIF9fcmVzdWx0ID0gKGxvbmcgaW50KSAoZXhwcmVzc2lvbik7 IFwKKysJICB3aGlsZSAoX19yZXN1bHQgPT0gLTFMICYmIGVycm5vID09IEVJTlRSKTsgXAorKwkg IF9fcmVzdWx0OyB9KSkKKysjZW5kaWYKKysKKyAvLyBUaGlzIGFkanVzdHMgL3Byb2MvcHJvY2Vz cy9vb21fc2NvcmVfYWRqIHNvIHRoZSBMaW51eCBPT00ga2lsbGVyCisgLy8gd2lsbCBwcmVmZXIg Y2VydGFpbiBwcm9jZXNzIHR5cGVzIG92ZXIgb3RoZXJzLiBUaGUgcmFuZ2UgZm9yIHRoZQorIC8v IGFkanVzdG1lbnQgaXMgWy0xMDAwLCAxMDAwXSwgd2l0aCBbMCwgMTAwMF0gYmVpbmcgdXNlciBh Y2Nlc3NpYmxlLgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEx MS1jaHJvbWl1bS1jc3RkaW50LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDExMS1jaHJvbWl1bS1jc3RkaW50LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uZjU3ODc2MjFiNTc5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDExMS1jaHJvbWl1bS1jc3RkaW50LnBhdGNoCkBAIC0wLDAgKzEs MTAgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVt L25ldC90aGlyZF9wYXJ0eS9xdWljaGUvc3JjL3F1aWNoZS9odHRwMi9hZGFwdGVyL3dpbmRvd19t YW5hZ2VyLmgKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9u ZXQvdGhpcmRfcGFydHkvcXVpY2hlL3NyYy9xdWljaGUvaHR0cDIvYWRhcHRlci93aW5kb3dfbWFu YWdlci5oCitAQCAtMyw2ICszLDcgQEAKKyAKKyAjaW5jbHVkZSA8c3RkZGVmLmg+CisgCisrI2lu Y2x1ZGUgPGNzdGRpbnQ+CisgI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CisgCisgI2luY2x1ZGUgInF1 aWNoZS9jb21tb24vcGxhdGZvcm0vYXBpL3F1aWNoZV9leHBvcnQuaCIKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTItY2hyb21pdW0tdW5pc3RkLmgucGF0Y2gg Yi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTEyLWNocm9taXVtLXVuaXN0ZC5oLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYmIyNDJhODA4YWNl Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExMi1j aHJvbWl1bS11bmlzdGQuaC5wYXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZXJ2aWNlcy9jcmVkZW50aWFscy5oCisrKysgYi9z cmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZXJ2aWNlcy9jcmVkZW50aWFscy5o CitAQCAtMTMsNiArMTMsNyBAQAorIAorICNpbmNsdWRlIDxzdHJpbmc+CisgI2luY2x1ZGUgPHZl Y3Rvcj4KKysjaW5jbHVkZSA8dW5pc3RkLmg+CisgCisgI2luY2x1ZGUgInNhbmRib3gvbGludXgv c3lzdGVtX2hlYWRlcnMvY2FwYWJpbGl0eS5oIgorICNpbmNsdWRlICJzYW5kYm94L3NhbmRib3hf ZXhwb3J0LmgiCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTEz LWNocm9taXVtLXB0aHJlYWQtc3RhY2tzaXplLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDExMy1jaHJvbWl1bS1wdGhyZWFkLXN0YWNrc2l6ZS5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjM4NGZkMGFmMTg2ZAotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTMtY2hyb21pdW0tcHRocmVh ZC1zdGFja3NpemUucGF0Y2gKQEAgLTAsMCArMSwxNiBAQAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40 LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS90aHJlYWRpbmcvcGxhdGZvcm1fdGhy ZWFkX2xpbnV4LmNjCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21p dW0vYmFzZS90aHJlYWRpbmcvcGxhdGZvcm1fdGhyZWFkX2xpbnV4LmNjCitAQCAtNDM3LDggKzQz NywxMyBAQCB2b2lkIFRlcm1pbmF0ZU9uVGhyZWFkKCkge30KKyAKKyBzaXplX3QgR2V0RGVmYXVs dFRocmVhZFN0YWNrU2l6ZShjb25zdCBwdGhyZWFkX2F0dHJfdCYgYXR0cmlidXRlcykgeworICNp ZiAhZGVmaW5lZChUSFJFQURfU0FOSVRJWkVSKQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAg IHJldHVybiAwOworICNlbHNlCisrICAvLyBtdXNsIGxpYmNzIGRlZmF1bHQgaXMgdG9vIHNtYWxs LCB1c2UgOG1iIGxpa2UgZ2xpYmMKKysgIHJldHVybiAoMSA8PCAyMyk7CisrI2VuZGlmCisrI2Vs c2UKKyAgIC8vIFRocmVhZFNhbml0aXplciBibG9hdHMgdGhlIHN0YWNrIGhlYXZpbHkuIEV2aWRl bmNlIGhhcyBiZWVuIHRoYXQgdGhlCisgICAvLyBkZWZhdWx0IHN0YWNrIHNpemUgaXNuJ3QgZW5v dWdoIGZvciBzb21lIGJyb3dzZXIgdGVzdHMuCisgICByZXR1cm4gMiAqICgxIDw8IDIzKTsgIC8v IDIgdGltZXMgODE5MksgKHRoZSBkZWZhdWx0IHN0YWNrIHNpemUgb24gTGludXgpLgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExNC1kby1ub3QtbmFycm93LWlu dC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTQtZG8tbm90LW5hcnJv dy1pbnQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yY2Q2 YTA3MzgyYWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wMTE0LWRvLW5vdC1uYXJyb3ctaW50LnBhdGNoCkBAIC0wLDAgKzEsNTMgQEAKKy0tLSBxdDYt d2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvZmlsZXMvZmls ZV91dGlsX2xpbnV4LmNjCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hy b21pdW0vYmFzZS9maWxlcy9maWxlX3V0aWxfbGludXguY2MKK0BAIC0yMywxNCArMjMsMTQgQEAg Ym9vbCBHZXRGaWxlU3lzdGVtVHlwZShjb25zdCBGaWxlUGF0aCYgcAorIAorICAgLy8gTm90IGFs bCBwb3NzaWJsZSB8c3RhdGZzX2J1Zi5mX3R5cGV8IHZhbHVlcyBhcmUgaW4gbGludXgvbWFnaWMu aC4KKyAgIC8vIE1pc3NpbmcgdmFsdWVzIGFyZSBjb3BpZWQgZnJvbSB0aGUgc3RhdGZzIG1hbiBw YWdlLgorLSAgc3dpdGNoIChzdGF0ZnNfYnVmLmZfdHlwZSkgeworKyAgc3dpdGNoIChzdGF0aWNf Y2FzdDx1aW50bWF4X3Q+KHN0YXRmc19idWYuZl90eXBlKSkgeworICAgICBjYXNlIDA6CisgICAg ICAgKnR5cGUgPSBGSUxFX1NZU1RFTV8wOworICAgICAgIGJyZWFrOworICAgICBjYXNlIEVYVDJf U1VQRVJfTUFHSUM6ICAvLyBBbHNvIGV4dDMgYW5kIGV4dDQKKyAgICAgY2FzZSBNU0RPU19TVVBF Ul9NQUdJQzoKKyAgICAgY2FzZSBSRUlTRVJGU19TVVBFUl9NQUdJQzoKKy0gICAgY2FzZSBzdGF0 aWNfY2FzdDxpbnQ+KEJUUkZTX1NVUEVSX01BR0lDKToKKysgICAgY2FzZSBCVFJGU19TVVBFUl9N QUdJQzoKKyAgICAgY2FzZSAweDUzNDY1NDRFOiAgLy8gTlRGUworICAgICBjYXNlIDB4NTg0NjUz NDI6ICAvLyBYRlMKKyAgICAgY2FzZSAweDMxNTM0NjRBOiAgLy8gSkZTCitAQCAtNDAsMTQgKzQw LDE0IEBAIGJvb2wgR2V0RmlsZVN5c3RlbVR5cGUoY29uc3QgRmlsZVBhdGgmIHAKKyAgICAgICAq dHlwZSA9IEZJTEVfU1lTVEVNX05GUzsKKyAgICAgICBicmVhazsKKyAgICAgY2FzZSBTTUJfU1VQ RVJfTUFHSUM6CistICAgIGNhc2Ugc3RhdGljX2Nhc3Q8aW50PigweEZGNTM0RDQyKTogIC8vIENJ RlMKKysgICAgY2FzZSAweEZGNTM0RDQyOiAgLy8gQ0lGUworICAgICAgICp0eXBlID0gRklMRV9T WVNURU1fU01COworICAgICAgIGJyZWFrOworICAgICBjYXNlIENPREFfU1VQRVJfTUFHSUM6Cisg ICAgICAgKnR5cGUgPSBGSUxFX1NZU1RFTV9DT0RBOworICAgICAgIGJyZWFrOworLSAgICBjYXNl IHN0YXRpY19jYXN0PGludD4oSFVHRVRMQkZTX01BR0lDKToKKy0gICAgY2FzZSBzdGF0aWNfY2Fz dDxpbnQ+KFJBTUZTX01BR0lDKToKKysgICAgY2FzZSBIVUdFVExCRlNfTUFHSUM6CisrICAgIGNh c2UgUkFNRlNfTUFHSUM6CisgICAgIGNhc2UgVE1QRlNfTUFHSUM6CisgICAgICAgKnR5cGUgPSBG SUxFX1NZU1RFTV9NRU1PUlk7CisgICAgICAgYnJlYWs7CistLS0gcXQ2LXdlYmVuZ2luZS02LjQu Mi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL3N5c3RlbS9zeXNfaW5mb19wb3NpeC5j YworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2Uvc3lz dGVtL3N5c19pbmZvX3Bvc2l4LmNjCitAQCAtMTAwLDEwICsxMDAsMTAgQEAgYm9vbCBJc1N0YXRz WmVyb0lmVW5saW1pdGVkKGNvbnN0IGJhc2U6OgorICAgaWYgKEhBTkRMRV9FSU5UUihzdGF0ZnMo cGF0aC52YWx1ZSgpLmNfc3RyKCksICZzdGF0cykpICE9IDApCisgICAgIHJldHVybiBmYWxzZTsK KyAKKy0gIHN3aXRjaCAoc3RhdHMuZl90eXBlKSB7CisrICBzd2l0Y2ggKHN0YXRpY19jYXN0PHVp bnRtYXhfdD4oc3RhdHMuZl90eXBlKSkgeworICAgICBjYXNlIFRNUEZTX01BR0lDOgorLSAgICBj YXNlIHN0YXRpY19jYXN0PGludD4oSFVHRVRMQkZTX01BR0lDKToKKy0gICAgY2FzZSBzdGF0aWNf Y2FzdDxpbnQ+KFJBTUZTX01BR0lDKToKKysgICAgY2FzZSBIVUdFVExCRlNfTUFHSUM6CisrICAg IGNhc2UgUkFNRlNfTUFHSUM6CisgICAgICAgcmV0dXJuIHRydWU7CisgICB9CisgICByZXR1cm4g ZmFsc2U7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTE1LWNo cm9taXVtLW5vLWNhbm9uaWNhbGl6ZS1maWxlLW5hbWUucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMTE1LWNocm9taXVtLW5vLWNhbm9uaWNhbGl6ZS1maWxlLW5hbWUucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41NTY3ODRiMDEzZGUK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTE1LWNo cm9taXVtLW5vLWNhbm9uaWNhbGl6ZS1maWxlLW5hbWUucGF0Y2gKQEAgLTAsMCArMSwxMiBAQAor LS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvbmFzbS9jb25maWcvY29uZmlnLWxpbnV4LmgKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4y L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9uYXNtL2NvbmZpZy9jb25maWctbGlu dXguaAorQEAgLTEzOSw3ICsxMzksOSBAQAorICNkZWZpbmUgSEFWRV9BQ0NFU1MgMQorIAorIC8q IERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgY2Fub25pY2FsaXplX2ZpbGVfbmFtZScgZnVu Y3Rpb24uICovCisrI2lmZGVmIF9fR0xJQkNfXworICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVf RklMRV9OQU1FIDEKKysjZW5kaWYKKyAKKyAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUg YGNwdV90b19sZTE2JyBpbnRyaW5zaWMgZnVuY3Rpb24uICovCisgLyogI3VuZGVmIEhBVkVfQ1BV X1RPX0xFMTYgKi8KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAx MTYtY2hyb21pdW0tbXVzbC1nZXQtdGhyZWFkLW5hbWUucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMTE2LWNocm9taXVtLW11c2wtZ2V0LXRocmVhZC1uYW1lLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDQ4NTM4NWNiYjYyCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExNi1jaHJvbWl1 bS1tdXNsLWdldC10aHJlYWQtbmFtZS5wYXRjaApAQCAtMCwwICsxLDIyIEBACistLS0gcXQ2LXdl YmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9wZXJm ZXR0by9pbmNsdWRlL3BlcmZldHRvL2V4dC9iYXNlL3RocmVhZF91dGlscy5oCisrKysgcXQ2LXdl YmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvcGVyZmV0dG8v aW5jbHVkZS9wZXJmZXR0by9leHQvYmFzZS90aHJlYWRfdXRpbHMuaAorQEAgLTMwLDcgKzMwLDgg QEAKKyAjaW5jbHVkZSA8YWxnb3JpdGhtPgorICNlbmRpZgorIAorLSNpZiBQRVJGRVRUT19CVUlM REZMQUcoUEVSRkVUVE9fT1NfQU5EUk9JRCkKKysjaWYgUEVSRkVUVE9fQlVJTERGTEFHKFBFUkZF VFRPX09TX0FORFJPSUQpIHx8IFwKKysgICAgKFBFUkZFVFRPX0JVSUxERkxBRyhQRVJGRVRUT19P U19MSU5VWCkgJiYgIWRlZmluZWQoX19HTElCQ19fKSkKKyAjaW5jbHVkZSA8c3lzL3ByY3RsLmg+ CisgI2VuZGlmCisgCitAQCAtNTgsNyArNTksOCBAQCBpbmxpbmUgYm9vbCBNYXliZVNldFRocmVh ZE5hbWUoY29uc3Qgc3RkCisgCisgaW5saW5lIGJvb2wgR2V0VGhyZWFkTmFtZShzdGQ6OnN0cmlu ZyYgb3V0X3Jlc3VsdCkgeworICAgY2hhciBidWZbMTZdID0ge307CistI2lmIFBFUkZFVFRPX0JV SUxERkxBRyhQRVJGRVRUT19PU19BTkRST0lEKQorKyNpZiBQRVJGRVRUT19CVUlMREZMQUcoUEVS RkVUVE9fT1NfQU5EUk9JRCkgfHwgXAorKyAgICAoUEVSRkVUVE9fQlVJTERGTEFHKFBFUkZFVFRP X09TX0xJTlVYKSAmJiAhZGVmaW5lZChfX0dMSUJDX18pKQorICAgaWYgKHByY3RsKFBSX0dFVF9O QU1FLCBidWYpICE9IDApCisgICAgIHJldHVybiBmYWxzZTsKKyAjZWxzZQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExNy1jaHJvbWl1bS1tdXNsLXJlc29sdmVy LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExNy1jaHJvbWl1bS1tdXNs LXJlc29sdmVyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u MTc2NTI0YWRjMDgzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDExNy1jaHJvbWl1bS1tdXNsLXJlc29sdmVyLnBhdGNoCkBAIC0wLDAgKzEsNjQgQEAK Ky0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9k bnMvcHVibGljL3Njb3BlZF9yZXNfc3RhdGUuY2MKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS9uZXQvZG5zL3B1YmxpYy9zY29wZWRfcmVzX3N0YXRlLmNjCitA QCAtMTMsNyArMTMsNyBAQAorIG5hbWVzcGFjZSBuZXQgeworIAorIFNjb3BlZFJlc1N0YXRlOjpT Y29wZWRSZXNTdGF0ZSgpIHsKKy0jaWYgQlVJTERGTEFHKElTX09QRU5CU0QpIHx8IEJVSUxERkxB RyhJU19GVUNIU0lBKQorKyNpZiBCVUlMREZMQUcoSVNfT1BFTkJTRCkgfHwgQlVJTERGTEFHKElT X0ZVQ0hTSUEpIHx8IChCVUlMREZMQUcoSVNfTElOVVgpICYmICFkZWZpbmVkKF9fR0xJQkNfXykp CisgICAvLyBOb3RlOiByZXNfbmluaXQgaW4gZ2xpYmMgYWx3YXlzIHJldHVybnMgMCBhbmQgc2V0 cyBSRVNfSU5JVC4KKyAgIC8vIHJlc19pbml0IGJlaGF2ZXMgdGhlIHNhbWUgd2F5LgorICAgbWVt c2V0KCZfcmVzLCAwLCBzaXplb2YoX3JlcykpOworQEAgLTI1LDcgKzI1LDcgQEAgU2NvcGVkUmVz U3RhdGU6OlNjb3BlZFJlc1N0YXRlKCkgeworIH0KKyAKKyBTY29wZWRSZXNTdGF0ZTo6flNjb3Bl ZFJlc1N0YXRlKCkgeworLSNpZiAhQlVJTERGTEFHKElTX09QRU5CU0QpICYmICFCVUlMREZMQUco SVNfRlVDSFNJQSkKKysjaWYgIUJVSUxERkxBRyhJU19PUEVOQlNEKSAmJiAhQlVJTERGTEFHKElT X0ZVQ0hTSUEpICYmICEoQlVJTERGTEFHKElTX0xJTlVYKSAmJiAhZGVmaW5lZChfX0dMSUJDX18p KQorIAorICAgLy8gUHJlZmVyIHJlc19uZGVzdHJveSB3aGVyZSBhdmFpbGFibGUuCisgI2lmIEJV SUxERkxBRyhJU19BUFBMRSkgfHwgQlVJTERGTEFHKElTX0ZSRUVCU0QpCitAQCAtMzQsNyArMzQs NyBAQCBTY29wZWRSZXNTdGF0ZTo6flNjb3BlZFJlc1N0YXRlKCkgeworICAgcmVzX25jbG9zZSgm cmVzXyk7CisgI2VuZGlmICAvLyBCVUlMREZMQUcoSVNfQVBQTEUpIHx8IEJVSUxERkxBRyhJU19G UkVFQlNEKQorIAorLSNlbmRpZiAgLy8gIUJVSUxERkxBRyhJU19PUEVOQlNEKSAmJiAhQlVJTERG TEFHKElTX0ZVQ0hTSUEpCisrI2VuZGlmICAvLyAhQlVJTERGTEFHKElTX09QRU5CU0QpICYmICFC VUlMREZMQUcoSVNfRlVDSFNJQSkgJiYgIShCVUlMREZMQUcoSVNfTElOVVgpICYmICFkZWZpbmVk KF9fR0xJQkNfXykpCisgfQorIAorIGJvb2wgU2NvcGVkUmVzU3RhdGU6OklzVmFsaWQoKSBjb25z dCB7CistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9u ZXQvZG5zL2hvc3RfcmVzb2x2ZXJfbWFuYWdlci5jYworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9kbnMvaG9zdF9yZXNvbHZlcl9tYW5hZ2VyLmNjCitA QCAtMzE1OCw3ICszMTU4LDcgQEAgSG9zdFJlc29sdmVyTWFuYWdlcjo6SG9zdFJlc29sdmVyTWFu YWdlcgorICAgaWYgKHN5c3RlbV9kbnNfY29uZmlnX25vdGlmaWVyXykKKyAgICAgc3lzdGVtX2Ru c19jb25maWdfbm90aWZpZXJfLT5BZGRPYnNlcnZlcih0aGlzKTsKKyAjaWYgQlVJTERGTEFHKElT X1BPU0lYKSAmJiAhQlVJTERGTEFHKElTX0FQUExFKSAmJiAhQlVJTERGTEFHKElTX09QRU5CU0Qp ICYmIFwKKy0gICAgIUJVSUxERkxBRyhJU19BTkRST0lEKQorKyAgICAhQlVJTERGTEFHKElTX0FO RFJPSUQpICYmICEoQlVJTERGTEFHKElTX0xJTlVYKSAmJiAhZGVmaW5lZChfX0dMSUJDX18pKQor ICAgRW5zdXJlRG5zUmVsb2FkZXJJbml0KCk7CisgI2VuZGlmCisgCistLS0gcXQ2LXdlYmVuZ2lu ZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9uZXQvZG5zL2Ruc19yZWxvYWRlci5j YworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9kbnMv ZG5zX3JlbG9hZGVyLmNjCitAQCAtNyw3ICs3LDggQEAKKyAjaW5jbHVkZSAiYnVpbGQvYnVpbGRf Y29uZmlnLmgiCisgCisgI2lmIEJVSUxERkxBRyhJU19QT1NJWCkgJiYgIUJVSUxERkxBRyhJU19B UFBMRSkgJiYgIUJVSUxERkxBRyhJU19PUEVOQlNEKSAmJiBcCistICAgICFCVUlMREZMQUcoSVNf QU5EUk9JRCkgJiYgIUJVSUxERkxBRyhJU19GVUNIU0lBKQorKyAgICAhQlVJTERGTEFHKElTX0FO RFJPSUQpICYmICFCVUlMREZMQUcoSVNfRlVDSFNJQSkgJiYgXAorKyAgICAhKEJVSUxERkxBRyhJ U19MSU5VWCkgJiYgIWRlZmluZWQoX19HTElCQ19fKSkKKyAKKyAjaW5jbHVkZSA8cmVzb2x2Lmg+ CisgCistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9u ZXQvZG5zL2hvc3RfcmVzb2x2ZXJfcHJvYy5jYworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL25ldC9kbnMvaG9zdF9yZXNvbHZlcl9wcm9jLmNjCitAQCAtMTky LDcgKzE5Miw4IEBAIGludCBTeXN0ZW1Ib3N0UmVzb2x2ZXJDYWxsKGNvbnN0IHN0ZDo6c3QKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOjpCbG9j a2luZ1R5cGU6OldJTExfQkxPQ0spOworIAorICNpZiBCVUlMREZMQUcoSVNfUE9TSVgpICYmIFwK Ky0gICAgIShCVUlMREZMQUcoSVNfQVBQTEUpIHx8IEJVSUxERkxBRyhJU19PUEVOQlNEKSB8fCBC VUlMREZMQUcoSVNfQU5EUk9JRCkpCisrICAgICEoQlVJTERGTEFHKElTX0FQUExFKSB8fCBCVUlM REZMQUcoSVNfT1BFTkJTRCkgfHwgQlVJTERGTEFHKElTX0FORFJPSUQpIHx8IFwKKysgICAgKEJV SUxERkxBRyhJU19MSU5VWCkgJiYgIWRlZmluZWQoX19HTElCQ19fKSkpCisgICBEbnNSZWxvYWRl ck1heWJlUmVsb2FkKCk7CisgI2VuZGlmCisgICBhdXRvIFthaSwgZXJyLCBvc19lcnJvcl0gPSBB ZGRyZXNzSW5mbzo6R2V0KGhvc3QsIGhpbnRzLCBudWxscHRyLCBuZXR3b3JrKTsKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTktY2hyb21pdW0tbXVzbC1zdGFj ay11dGlscy5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTktY2hyb21p dW0tbXVzbC1zdGFjay11dGlscy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAuLjU0OGExZGVjNzZiNAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAxMTktY2hyb21pdW0tbXVzbC1zdGFjay11dGlscy5wYXRjaApAQCAt MCwwICsxLDIwIEBACistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS93dGYvc3RhY2tfdXRp bC5jYworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3d0Zi9zdGFja191dGlsLmNjCitAQCAtMjks NyArMjksNyBAQCBzaXplX3QgR2V0VW5kZXJlc3RpbWF0ZWRTdGFja1NpemUoKSB7CisgLy8gRklY TUU6IE9uIE1hYyBPU1ggYW5kIExpbnV4LCB0aGlzIG1ldGhvZCBjYW5ub3QgZXN0aW1hdGUgc3Rh Y2sgc2l6ZQorIC8vIGNvcnJlY3RseSBmb3IgdGhlIG1haW4gdGhyZWFkLgorIAorLSNlbGlmIGRl ZmluZWQoX19HTElCQ19fKSB8fCBCVUlMREZMQUcoSVNfQU5EUk9JRCkgfHwgQlVJTERGTEFHKElT X0ZSRUVCU0QpIHx8IFwKKysjZWxpZiBCVUlMREZMQUcoSVNfTElOVVgpIHx8IEJVSUxERkxBRyhJ U19BTkRST0lEKSB8fCBCVUlMREZMQUcoSVNfRlJFRUJTRCkgfHwgXAorICAgICBCVUlMREZMQUco SVNfRlVDSFNJQSkKKyAgIC8vIHB0aHJlYWRfZ2V0YXR0cl9ucCgpIGNhbiBmYWlsIGlmIHRoZSB0 aHJlYWQgaXMgbm90IGludm9rZWQgYnkKKyAgIC8vIHB0aHJlYWRfY3JlYXRlKCkgKGUuZy4sIHRo ZSBtYWluIHRocmVhZCBvZiBibGlua191bml0dGVzdHMpLgorQEAgLTk3LDcgKzk3LDcgQEAgc2l6 ZV90IEdldFVuZGVyZXN0aW1hdGVkU3RhY2tTaXplKCkgeworIH0KKyAKKyB2b2lkKiBHZXRTdGFj a1N0YXJ0KCkgeworLSNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgQlVJTERGTEFHKElTX0FORFJP SUQpIHx8IEJVSUxERkxBRyhJU19GUkVFQlNEKSB8fCBcCisrI2lmIEJVSUxERkxBRyhJU19MSU5V WCkgfHwgQlVJTERGTEFHKElTX0FORFJPSUQpIHx8IEJVSUxERkxBRyhJU19GUkVFQlNEKSB8fCBc CisgICAgIEJVSUxERkxBRyhJU19GVUNIU0lBKQorICAgcHRocmVhZF9hdHRyX3QgYXR0cjsKKyAg IGludCBlcnJvcjsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAx MjAtY2hyb21pdW0tbGliYy1tYWxsb2MucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMTIwLWNocm9taXVtLWxpYmMtbWFsbG9jLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uZmEzMjgzMDc2MGNkCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyMC1jaHJvbWl1bS1saWJjLW1hbGxvYy5wYXRj aApAQCAtMCwwICsxLDM0IEBACistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9iYXNlL3Byb2Nlc3MvbWVtb3J5X2xpbnV4LmNjCisrKysgcXQ2LXdlYmVu Z2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9wcm9jZXNzL21lbW9yeV9saW51 eC5jYworQEAgLTE4LDYgKzE4LDEzIEBACisgI2luY2x1ZGUgImJhc2UvdGhyZWFkaW5nL3RocmVh ZF9yZXN0cmljdGlvbnMuaCIKKyAjaW5jbHVkZSAiYnVpbGQvYnVpbGRfY29uZmlnLmgiCisgCisr I2lmIGRlZmluZWQoTElCQ19HTElCQykKKytleHRlcm4gIkMiIHsKKytleHRlcm4gdm9pZCAqX19s aWJjX21hbGxvYyhzaXplX3Qgc2l6ZSk7CisrZXh0ZXJuIHZvaWQgKl9fbGliY19mcmVlKHZvaWQg KnB0cik7CisrfQorKyNlbmRpZgorKworIG5hbWVzcGFjZSBiYXNlIHsKKyAKKyBuYW1lc3BhY2Ug eworQEAgLTExMiw3ICsxMTksNyBAQCBib29sIFVuY2hlY2tlZE1hbGxvYyhzaXplX3Qgc2l6ZSwg dm9pZCoqCisgICAgIGRlZmluZWQoVE9PTEtJVF9RVCkgfHwgIWRlZmluZWQoTElCQ19HTElCQykK KyAgICpyZXN1bHQgPSBtYWxsb2Moc2l6ZSk7CisgI2VsaWYgZGVmaW5lZChMSUJDX0dMSUJDKQor LSAgKnJlc3VsdCA9IF9fbGliY19tYWxsb2Moc2l6ZSk7CisrICAqcmVzdWx0ID0gOjpfX2xpYmNf bWFsbG9jKHNpemUpOworICNlbmRpZgorICAgcmV0dXJuICpyZXN1bHQgIT0gbnVsbHB0cjsKKyB9 CitAQCAtMTIzLDcgKzEzMCw3IEBAIHZvaWQgVW5jaGVja2VkRnJlZSh2b2lkKiBwdHIpIHsKKyAj ZWxpZiBkZWZpbmVkKE1FTU9SWV9UT09MX1JFUExBQ0VTX0FMTE9DQVRPUikgfHwgIWRlZmluZWQo TElCQ19HTElCQykgfHwgZGVmaW5lZChUT09MS0lUX1FUKQorICAgZnJlZShwdHIpOworICNlbGlm IGRlZmluZWQoTElCQ19HTElCQykKKy0gIF9fbGliY19mcmVlKHB0cik7CisrICA6Ol9fbGliY19m cmVlKHB0cik7CisgI2VuZGlmCisgfQorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDEyMS1jaHJvbWl1bS1tdXNsLXN0YXQucGF0Y2ggYi9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMTIxLWNocm9taXVtLW11c2wtc3RhdC5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjhjOGM0Yjg2M2I2NAotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjEtY2hyb21pdW0tbXVzbC1z dGF0LnBhdGNoCkBAIC0wLDAgKzEsMTIgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcv c3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvZmlsZXMvZmlsZS5oCisrKysgcXQ2LXdlYmVuZ2lu ZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9maWxlcy9maWxlLmgKK0BAIC0xOSw3 ICsxOSw4IEBACisgI2luY2x1ZGUgImJ1aWxkL2J1aWxkX2NvbmZpZy5oIgorIAorICNpZiBCVUlM REZMQUcoSVNfQlNEKSB8fCBCVUlMREZMQUcoSVNfQVBQTEUpIHx8IEJVSUxERkxBRyhJU19OQUNM KSB8fCBcCistICAgIEJVSUxERkxBRyhJU19GVUNIU0lBKSB8fCAoQlVJTERGTEFHKElTX0FORFJP SUQpICYmIF9fQU5EUk9JRF9BUElfXyA8IDIxKQorKyAgICBCVUlMREZMQUcoSVNfRlVDSFNJQSkg fHwgKEJVSUxERkxBRyhJU19BTkRST0lEKSAmJiBfX0FORFJPSURfQVBJX18gPCAyMSkgfHwgXAor KyAgICAoQlVJTERGTEFHKElTX0xJTlVYKSAmJiAhZGVmaW5lZChfX0dMSUJDX18pKQorIHN0cnVj dCBzdGF0OworIG5hbWVzcGFjZSBiYXNlIHsKKyB0eXBlZGVmIHN0cnVjdCBzdGF0IHN0YXRfd3Jh cHBlcl90OwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyMi1j aHJvbWl1bS1jb25kaXRpb25fdmFyLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDEyMi1jaHJvbWl1bS1jb25kaXRpb25fdmFyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uNmM0MTMxMmU1MTZiCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyMi1jaHJvbWl1bS1jb25kaXRpb25fdmFyLnBh dGNoCkBAIC0wLDAgKzEsMjIgQEAKK1VzZSBtb25vdG9uaWMgY2xvY2sgZm9yIHB0aHJlYWRfY29u ZF90aW1lZHdhaXQgd2l0aCBtdXNsIHRvby4KKworLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3Jp Zy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2Jhc2UvcGxhdGZvcm0vY29uZGl0aW9uLXZh cmlhYmxlLmNjCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0v djgvc3JjL2Jhc2UvcGxhdGZvcm0vY29uZGl0aW9uLXZhcmlhYmxlLmNjCitAQCAtMjAsNyArMjAs NyBAQCBuYW1lc3BhY2UgYmFzZSB7CisgCisgQ29uZGl0aW9uVmFyaWFibGU6OkNvbmRpdGlvblZh cmlhYmxlKCkgeworICNpZiAoVjhfT1NfRlJFRUJTRCB8fCBWOF9PU19ORVRCU0QgfHwgVjhfT1Nf T1BFTkJTRCB8fCBcCistICAgICAoVjhfT1NfTElOVVggJiYgVjhfTElCQ19HTElCQykpCisrICAg ICBWOF9PU19MSU5VWCkKKyAgIC8vIE9uIEZyZWUvTmV0L09wZW5CU0QgYW5kIExpbnV4IHdpdGgg Z2xpYmMgd2UgY2FuIGNoYW5nZSB0aGUgdGltZQorICAgLy8gc291cmNlIGZvciBwdGhyZWFkX2Nv bmRfdGltZWR3YWl0KCkgdG8gdXNlIHRoZSBtb25vdG9uaWMgY2xvY2suCisgICBwdGhyZWFkX2Nv bmRhdHRyX3QgYXR0cjsKK0BAIC05Niw3ICs5Niw3IEBAIGJvb2wgQ29uZGl0aW9uVmFyaWFibGU6 OldhaXRGb3IoTXV0ZXgqIG0KKyAgICAgICAmbmF0aXZlX2hhbmRsZV8sICZtdXRleC0+bmF0aXZl X2hhbmRsZSgpLCAmdHMpOworICNlbHNlCisgI2lmIChWOF9PU19GUkVFQlNEIHx8IFY4X09TX05F VEJTRCB8fCBWOF9PU19PUEVOQlNEIHx8IFwKKy0gICAgIChWOF9PU19MSU5VWCAmJiBWOF9MSUJD X0dMSUJDKSkKKysgICAgIFY4X09TX0xJTlVYKQorICAgLy8gT24gRnJlZS9OZXQvT3BlbkJTRCBh bmQgTGludXggd2l0aCBnbGliYyB3ZSBjYW4gY2hhbmdlIHRoZSB0aW1lCisgICAvLyBzb3VyY2Ug Zm9yIHB0aHJlYWRfY29uZF90aW1lZHdhaXQoKSB0byB1c2UgdGhlIG1vbm90b25pYyBjbG9jay4K KyAgIHJlc3VsdCA9IGNsb2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDLCAmdHMpOwpkaWZmIC0t Z2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyMy1jaHJvbWl1bS1tdXNsLW5v LWV4ZWNpbmZvLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyMy1jaHJv bWl1bS1tdXNsLW5vLWV4ZWNpbmZvLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uMjVmYWU3YmRlMTEyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDEyMy1jaHJvbWl1bS1tdXNsLW5vLWV4ZWNpbmZvLnBhdGNoCkBA IC0wLDAgKzEsNzUgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL2Jhc2UvZGVidWcvc3RhY2tfdHJhY2VfcG9zaXguY2MKKysrKyBxdDYtd2ViZW5n aW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2RlYnVnL3N0YWNrX3RyYWNlX3Bv c2l4LmNjCitAQCAtMzAsNyArMzAsNyBAQAorICNpZiAhZGVmaW5lZChVU0VfU1lNQk9MSVpFKQor ICNpbmNsdWRlIDxjeHhhYmkuaD4KKyAjZW5kaWYKKy0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykg JiYgIWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9B SVgpCisgI2luY2x1ZGUgPGV4ZWNpbmZvLmg+CisgI2VuZGlmCisgCitAQCAtOTcsNyArOTcsNyBA QCB2b2lkIERlbWFuZ2xlU3ltYm9scyhzdGQ6OnN0cmluZyogdGV4dCkKKyAgIC8vIE5vdGU6IGNv ZGUgaW4gdGhpcyBmdW5jdGlvbiBpcyBOT1QgYXN5bmMtc2lnbmFsIHNhZmUgKHN0ZDo6c3RyaW5n IHVzZXMKKyAgIC8vIG1hbGxvYyBpbnRlcm5hbGx5KS4KKyAKKy0jaWYgIWRlZmluZWQoX19VQ0xJ QkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZp bmVkKF9BSVgpCisgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIHNlYXJjaF9mcm9tID0gMDsKKyAg IHdoaWxlIChzZWFyY2hfZnJvbSA8IHRleHQtPnNpemUoKSkgeworICAgICAvLyBMb29rIGZvciB0 aGUgc3RhcnQgb2YgYSBtYW5nbGVkIHN5bWJvbCwgZnJvbSBzZWFyY2hfZnJvbS4KK0BAIC0xNDQs NyArMTQ0LDcgQEAgY2xhc3MgQmFja3RyYWNlT3V0cHV0SGFuZGxlciB7CisgICB2aXJ0dWFsIH5C YWNrdHJhY2VPdXRwdXRIYW5kbGVyKCkgPSBkZWZhdWx0OworIH07CisgCistI2lmICFkZWZpbmVk KF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAm JiAhZGVmaW5lZChfQUlYKQorIHZvaWQgT3V0cHV0UG9pbnRlcih2b2lkKiBwb2ludGVyLCBCYWNr dHJhY2VPdXRwdXRIYW5kbGVyKiBoYW5kbGVyKSB7CisgICAvLyBUaGlzIHNob3VsZCBiZSBtb3Jl IHRoYW4gZW5vdWdoIHRvIHN0b3JlIGEgNjQtYml0IG51bWJlciBpbiBoZXg6CisgICAvLyAxNiBo ZXggZGlnaXRzICsgMSBmb3IgbnVsbC10ZXJtaW5hdG9yLgorQEAgLTg2OCw3ICs4NjgsNyBAQCBz aXplX3QgQ29sbGVjdFN0YWNrVHJhY2Uodm9pZCoqIHRyYWNlLCBzCisgICAvLyBJZiB3ZSBkbyBu b3QgaGF2ZSB1bndpbmQgdGFibGVzLCB0aGVuIHRyeSB0cmFjaW5nIHVzaW5nIGZyYW1lIHBvaW50 ZXJzLgorICAgcmV0dXJuIGJhc2U6OmRlYnVnOjpUcmFjZVN0YWNrRnJhbWVQb2ludGVycyhjb25z dF9jYXN0PGNvbnN0IHZvaWQqKj4odHJhY2UpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb3VudCwgMCk7CistI2VsaWYgIWRlZmluZWQoX19VQ0xJQkNf XykgJiYgIWRlZmluZWQoX0FJWCkKKysjZWxpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmlu ZWQoX0FJWCkKKyAgIC8vIFRob3VnaCB0aGUgYmFja3RyYWNlIEFQSSBtYW4gcGFnZSBkb2VzIG5v dCBsaXN0IGFueSBwb3NzaWJsZSBuZWdhdGl2ZQorICAgLy8gcmV0dXJuIHZhbHVlcywgd2UgdGFr ZSBubyBjaGFuY2UuCisgICByZXR1cm4gYmFzZTo6c2F0dXJhdGVkX2Nhc3Q8c2l6ZV90PihiYWNr dHJhY2UodHJhY2UsIGNvdW50KSk7CitAQCAtODgxLDEzICs4ODEsMTMgQEAgdm9pZCBTdGFja1Ry YWNlOjpQcmludFdpdGhQcmVmaXgoY29uc3QgYworIC8vIE5PVEU6IFRoaXMgY29kZSBNVVNUIGJl IGFzeW5jLXNpZ25hbCBzYWZlIChpdCdzIHVzZWQgYnkgaW4tcHJvY2VzcworIC8vIHN0YWNrIGR1 bXBpbmcgc2lnbmFsIGhhbmRsZXIpLiBOTyBtYWxsb2Mgb3Igc3RkaW8gaXMgYWxsb3dlZCBoZXJl LgorIAorLSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBk ZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyAgIFByaW50QmFja3RyYWNlT3V0 cHV0SGFuZGxlciBoYW5kbGVyOworICAgUHJvY2Vzc0JhY2t0cmFjZSh0cmFjZV8sIGNvdW50Xywg cHJlZml4X3N0cmluZywgJmhhbmRsZXIpOworICNlbmRpZgorIH0KKyAKKy0jaWYgIWRlZmluZWQo X19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYm ICFkZWZpbmVkKF9BSVgpCisgdm9pZCBTdGFja1RyYWNlOjpPdXRwdXRUb1N0cmVhbVdpdGhQcmVm aXgoc3RkOjpvc3RyZWFtKiBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBjaGFyKiBwcmVmaXhfc3RyaW5nKSBjb25zdCB7CisgICBTdHJlYW1CYWNr dHJhY2VPdXRwdXRIYW5kbGVyIGhhbmRsZXIob3MpOworLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIu b3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2NvZGVnZW4vZXh0ZXJuYWwtcmVmZXJl bmNlLXRhYmxlLmNjCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21p dW0vdjgvc3JjL2NvZGVnZW4vZXh0ZXJuYWwtcmVmZXJlbmNlLXRhYmxlLmNjCitAQCAtMTIsNyAr MTIsOSBAQAorIAorICNpZiBkZWZpbmVkKERFQlVHKSAmJiBkZWZpbmVkKFY4X09TX0xJTlVYKSAm JiAhZGVmaW5lZChWOF9PU19BTkRST0lEKQorICNkZWZpbmUgU1lNQk9MSVpFX0ZVTkNUSU9OCisr I2lmIGRlZmluZWQoX19HTElCQ19fKQorICNpbmNsdWRlIDxleGVjaW5mby5oPgorKyNlbmRpZgor IAorICNpbmNsdWRlIDx2ZWN0b3I+CisgCitAQCAtMTAzLDcgKzEwNSw3IEBAIHZvaWQgRXh0ZXJu YWxSZWZlcmVuY2VUYWJsZTo6SW5pdChJc29sYXQKKyB9CisgCisgY29uc3QgY2hhciogRXh0ZXJu YWxSZWZlcmVuY2VUYWJsZTo6UmVzb2x2ZVN5bWJvbCh2b2lkKiBhZGRyZXNzKSB7CistI2lmZGVm IFNZTUJPTElaRV9GVU5DVElPTgorKyNpZiBkZWZpbmVkKFNZTUJPTElaRV9GVU5DVElPTikgJiYg ZGVmaW5lZChfX0dMSUJDX18pCisgICBjaGFyKiogbmFtZXMgPSBiYWNrdHJhY2Vfc3ltYm9scygm YWRkcmVzcywgMSk7CisgICBjb25zdCBjaGFyKiBuYW1lID0gbmFtZXNbMF07CisgICAvLyBUaGUg YXJyYXkgb2YgbmFtZXMgaXMgbWFsbG9jJ2VkLiBIb3dldmVyLCBlYWNoIG5hbWUgc3RyaW5nIGlz IHN0YXRpYwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyMy1j aHJvbWl1bS1tdXNsLW5vLWdldGNvbnRleHQucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUv cGF0Y2hlcy8wMTIzLWNocm9taXVtLW11c2wtbm8tZ2V0Y29udGV4dC5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQ2NTIyZWUwYTA2NgotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjMtY2hyb21pdW0tbXVzbC1u by1nZXRjb250ZXh0LnBhdGNoCkBAIC0wLDAgKzEsMjcgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYu NC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYworKysrIHF0 Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5j YworQEAgLTQ5MCw3ICs0OTAsOSBAQCBib29sIEV4Y2VwdGlvbkhhbmRsZXI6OlNpbXVsYXRlU2ln bmFsRGVsCisgICBzaWdpbmZvLnNpX2NvZGUgPSBTSV9VU0VSOworICAgc2lnaW5mby5zaV9waWQg PSBnZXRwaWQoKTsKKyAgIHVjb250ZXh0X3QgY29udGV4dDsKKysjaWYgZGVmaW5lZChfX0dMSUJD X18pCisgICBnZXRjb250ZXh0KCZjb250ZXh0KTsKKysjZW5kaWYKKyAgIHJldHVybiBIYW5kbGVT aWduYWwoc2lnLCAmc2lnaW5mbywgJmNvbnRleHQpOworIH0KKyAKK0BAIC02NzUsOSArNjc3LDE0 IEBAIGJvb2wgRXhjZXB0aW9uSGFuZGxlcjo6V3JpdGVNaW5pZHVtcCgpIHsKKyAgIHN5c19wcmN0 bChQUl9TRVRfRFVNUEFCTEUsIDEsIDAsIDAsIDApOworIAorICAgQ3Jhc2hDb250ZXh0IGNvbnRl eHQ7CisrCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICAgaW50IGdldGNvbnRleHRfcmVzdWx0 ID0gZ2V0Y29udGV4dCgmY29udGV4dC5jb250ZXh0KTsKKyAgIGlmIChnZXRjb250ZXh0X3Jlc3Vs dCkKKyAgICAgcmV0dXJuIGZhbHNlOworKyNlbHNlCisrICByZXR1cm4gZmFsc2U7CisrI2VuZGlm CisgCisgI2lmIGRlZmluZWQoX19pMzg2X18pCisgICAvLyBJbiBDUFVGaWxsRnJvbVVDb250ZXh0 IGluIG1pbmlkdW1wd3JpdGVyLmNjIHRoZSBzdGFjayBwb2ludGVyIGlzIHJldHJpZXZlZApkaWZm IC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyNC1jaHJvbWl1bS1lbmFi bGUtaTY4Ni5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjQtY2hyb21p dW0tZW5hYmxlLWk2ODYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwLi4xMWQ4ZGU3YzIzZjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdp bmUvcGF0Y2hlcy8wMTI0LWNocm9taXVtLWVuYWJsZS1pNjg2LnBhdGNoCkBAIC0wLDAgKzEsMTcg QEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL0JV SUxELmduCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vQlVJ TEQuZ24KK0BAIC0xNTM3LDE0ICsxNTM3LDYgQEAgaWYgKCFpc19pb3MgJiYgIXVzZV9xdCkgewor ICAgfQorIH0KKyAKKy0jIFRPRE8oY2Fzc2V3KTogQWRkIG1vcmUgT1MncyB0aGF0IGRvbid0IHN1 cHBvcnQgeDg2LgorLWlzX3ZhbGlkX3g4Nl90YXJnZXQgPQorLSAgICB0YXJnZXRfb3MgIT0gImlv cyIgJiYgdGFyZ2V0X29zICE9ICJtYWMiICYmCistICAgICh0YXJnZXRfb3MgIT0gImxpbnV4IiB8 fCB1c2VfbGliZnV6emVyIHx8ICFidWlsZF93aXRoX2Nocm9taXVtKQorLWFzc2VydCgKKy0gICAg aXNfdmFsaWRfeDg2X3RhcmdldCB8fCB0YXJnZXRfY3B1ICE9ICJ4ODYiLAorLSAgICAiJ3Rhcmdl dF9jcHU9eDg2JyBpcyBub3Qgc3VwcG9ydGVkIGZvciAndGFyZ2V0X29zPSR0YXJnZXRfb3MnLiBD b25zaWRlciBvbWl0dGluZyAndGFyZ2V0X2NwdScgKGRlZmF1bHQpIG9yIHVzaW5nICd0YXJnZXRf Y3B1PXg2NCcgaW5zdGVhZC4iKQorLQorIGdyb3VwKCJjaHJvbWl1bV9idWlsZGVyX3BlcmYiKSB7 CisgICB0ZXN0b25seSA9IHRydWUKKyAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAxMjUtY2hyb21pdW0tcmVtb3ZlLXN0cmlwX2JpbmFyeS5wYXRjaCBiL3NyY3Br Z3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjUtY2hyb21pdW0tcmVtb3ZlLXN0cmlwX2JpbmFy eS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjExNWU0NDky YTJiZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAx MjUtY2hyb21pdW0tcmVtb3ZlLXN0cmlwX2JpbmFyeS5wYXRjaApAQCAtMCwwICsxLDMyIEBACist LS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9jaHJvbWUv dGVzdC9jaHJvbWVkcml2ZXIvQlVJTEQuZ24KKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9jaHJvbWUvdGVzdC9jaHJvbWVkcml2ZXIvQlVJTEQuZ24KK0BAIC0z MzUsMTEgKzMzNSw3IEBAIHNvdXJjZV9zZXQoImxpYiIpIHsKKyAgIH0KKyB9CisgCistaWYgKGlz X2xpbnV4KSB7CistICBjaHJvbWVkcml2ZXJfb3V0cHV0ID0gImNocm9tZWRyaXZlci51bnN0cmlw cGVkIgorLX0gZWxzZSB7CistICBjaHJvbWVkcml2ZXJfb3V0cHV0ID0gImNocm9tZWRyaXZlciIK Ky19CisrY2hyb21lZHJpdmVyX291dHB1dCA9ICJjaHJvbWVkcml2ZXIiCisgCisgZXhlY3V0YWJs ZSgiJGNocm9tZWRyaXZlcl9vdXRwdXQiKSB7CisgICB0ZXN0b25seSA9IHRydWUKK0BAIC0zNjEs MTYgKzM1Nyw2IEBAIGV4ZWN1dGFibGUoIiRjaHJvbWVkcml2ZXJfb3V0cHV0IikgeworICAgfQor IH0KKyAKKy1pZiAoaXNfbGludXgpIHsKKy0gIHN0cmlwX2JpbmFyeSgiY2hyb21lZHJpdmVyIikg eworLSAgICB0ZXN0b25seSA9IHRydWUKKy0gICAgYmluYXJ5X2lucHV0ID0gIiRyb290X291dF9k aXIvJGNocm9tZWRyaXZlcl9vdXRwdXQiCistICAgIHN5bWJvbF9vdXRwdXQgPSAiJHJvb3Rfb3V0 X2Rpci9jaHJvbWVkcml2ZXIuZGVidWciCistICAgIHN0cmlwcGVkX2JpbmFyeV9vdXRwdXQgPSAi JHJvb3Rfb3V0X2Rpci9jaHJvbWVkcml2ZXIiCistICAgIGRlcHMgPSBbICI6JGNocm9tZWRyaXZl cl9vdXRwdXQiIF0KKy0gIH0KKy19CistCisgcHl0aG9uX2xpYnJhcnkoImNocm9tZWRyaXZlcl9w eV90ZXN0cyIpIHsKKyAgIHRlc3Rvbmx5ID0gdHJ1ZQorICAgZGVwcyA9IFsKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjYtY2hyb21pdW0tbm8tY2RlZnMucGF0 Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTI2LWNocm9taXVtLW5vLWNkZWZz LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOTBmYWEzZDY2 NGQwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEy Ni1jaHJvbWl1bS1uby1jZGVmcy5wYXRjaApAQCAtMCwwICsxLDM5IEBACistLS0gcXQ2LXdlYmVu Z2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9jb21wYXQvbGludXgvc3lzL3B0cmFjZS5oCisrKysgcXQ2LXdlYmVuZ2luZS02 LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv Y29tcGF0L2xpbnV4L3N5cy9wdHJhY2UuaAorQEAgLTE3LDggKzE3LDYgQEAKKyAKKyAjaW5jbHVk ZV9uZXh0IDxzeXMvcHRyYWNlLmg+CisgCistI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgorLQorIC8v IGh0dHBzOi8vc291cmNld2FyZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTIyNDMzCisg I2lmICFkZWZpbmVkKFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEpICYmICFkZWZpbmVkKFBUX0dFVF9U SFJFQURfQVJFQSkgJiYgXAorICAgICBkZWZpbmVkKF9fR0xJQkNfXykKKy0tLSBxdDYtd2ViZW5n aW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2xpYnN5bmMv c3JjL2luY2x1ZGUvc3luYy9zeW5jLmgKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9saWJzeW5jL3NyYy9pbmNsdWRlL3N5bmMvc3luYy5o CitAQCAtMTksMTIgKzE5LDEzIEBACisgI2lmbmRlZiBfX1NZU19DT1JFX1NZTkNfSAorICNkZWZp bmUgX19TWVNfQ09SRV9TWU5DX0gKKyAKKy0jaW5jbHVkZSA8c3lzL2NkZWZzLmg+CisgI2luY2x1 ZGUgPHN0ZGludC5oPgorIAorICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorIAorLV9fQkVHSU5f REVDTFMKKysjaWZkZWYgX19jcGx1c3BsdXMKKytleHRlcm4gIkMiIHsKKysjZW5kaWYKKyAKKyBz dHJ1Y3Qgc3luY19sZWdhY3lfbWVyZ2VfZGF0YSB7CisgIGludDMyX3QgZmQyOworQEAgLTE1OCw2 ICsxNTksOCBAQCBzdHJ1Y3Qgc3luY19wdF9pbmZvICpzeW5jX3B0X2luZm8oc3RydWN0CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzeW5jX3B0X2luZm8gKml0cik7 Cisgdm9pZCBzeW5jX2ZlbmNlX2luZm9fZnJlZShzdHJ1Y3Qgc3luY19mZW5jZV9pbmZvX2RhdGEg KmluZm8pOworIAorLV9fRU5EX0RFQ0xTCisrI2lmZGVmIF9fY3BsdXNwbHVzCisrfQorKyNlbmRp ZgorIAorICNlbmRpZiAvKiBfX1NZU19DT1JFX1NZTkNfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyOC1jaHJvbWl1bS1zYW5kYm94LW1lbWJhcnJpZXIu cGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTI4LWNocm9taXVtLXNhbmRi b3gtbWVtYmFycmllci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLjJlMTQ5MmMzZjYyMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAxMjgtY2hyb21pdW0tc2FuZGJveC1tZW1iYXJyaWVyLnBhdGNoCkBAIC0wLDAg KzEsMTAgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKKysr KyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4 L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCitAQCAtNDE4LDYgKzQxOCw3IEBA IGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE8KKyAgIHN3aXRjaCAoc3lz bm8pIHsKKyAgICAgY2FzZSBfX05SX2V4aXQ6CisgICAgIGNhc2UgX19OUl9leGl0X2dyb3VwOgor KyAgICBjYXNlIF9fTlJfbWVtYmFycmllcjoKKyAgICAgY2FzZSBfX05SX3dhaXQ0OgorICAgICBj YXNlIF9fTlJfd2FpdGlkOgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyOS1jaHJvbWl1bS1zYW5kYm94LXNoZWRfZ2V0 cGFyYW0ucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTI5LWNocm9taXVt LXNhbmRib3gtc2hlZF9nZXRwYXJhbS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLjgwZDkxYzc3ZThiYQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjktY2hyb21pdW0tc2FuZGJveC1zaGVkX2dldHBhcmFtLnBh dGNoCkBAIC0wLDAgKzEsMjAgQEAKK0FsbG93IFNZU19zY2hlZF9nZXRwYXJhbSBhbmQgU1lTX3Nj aGVkX2dldHNjaGVkdWxlcgorbXVzbCB1c2VzIHRoZW0gZm9yIHB0aHJlYWRfZ2V0c2NoZWRwYXJh bSgpCisKK3NvdXJjZTogaHR0cHM6Ly9naXQuYWxwaW5lbGludXgub3JnL2Fwb3J0cy9jb21taXQv Y29tbXVuaXR5L2Nocm9taXVtP2lkPTU0YWY5ZjhhYzI0ZjUyZDM4MmM1NzU4ZTI0NDViZjAyMDZl ZmY0MGUKKworLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21p dW0vc2FuZGJveC9wb2xpY3kvbGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYworKysr IHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvcG9saWN5 L2xpbnV4L2JwZl9yZW5kZXJlcl9wb2xpY3lfbGludXguY2MKK0BAIC05NywxMCArOTcsMTAgQEAg UmVzdWx0RXhwciBSZW5kZXJlclByb2Nlc3NQb2xpY3k6OkV2YWx1YQorICAgICBjYXNlIF9fTlJf c3lzaW5mbzoKKyAgICAgY2FzZSBfX05SX3RpbWVzOgorICAgICBjYXNlIF9fTlJfdW5hbWU6Cist ICAgICAgcmV0dXJuIEFsbG93KCk7CistICAgIGNhc2UgX19OUl9zY2hlZF9nZXRhZmZpbml0eToK KyAgICAgY2FzZSBfX05SX3NjaGVkX2dldHBhcmFtOgorICAgICBjYXNlIF9fTlJfc2NoZWRfZ2V0 c2NoZWR1bGVyOgorKyAgICAgIHJldHVybiBBbGxvdygpOworKyAgICBjYXNlIF9fTlJfc2NoZWRf Z2V0YWZmaW5pdHk6CisgICAgIGNhc2UgX19OUl9zY2hlZF9zZXRzY2hlZHVsZXI6CisgICAgICAg cmV0dXJuIFJlc3RyaWN0U2NoZWRUYXJnZXQoR2V0UG9saWN5UGlkKCksIHN5c25vKTsKKyAgICAg Y2FzZSBfX05SX3BybGltaXQ2NDoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9w YXRjaGVzLzAxNTAtY2hyb21pdW0tdW5idW5kbGUtZmZtcGVnLWF2X3N0cmVhbV9nZXRfZmlyc3Rf ZHRzLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDE1MC1jaHJvbWl1bS11 bmJ1bmRsZS1mZm1wZWctYXZfc3RyZWFtX2dldF9maXJzdF9kdHMucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lN2Y2MDQ4ZmJjMWMKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTUwLWNocm9taXVtLXVuYnVuZGxl LWZmbXBlZy1hdl9zdHJlYW1fZ2V0X2ZpcnN0X2R0cy5wYXRjaApAQCAtMCwwICsxLDEwIEBACist LS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZC9s aW51eC91bmJ1bmRsZS9mZm1wZWcuZ24KKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9idWlsZC9saW51eC91bmJ1bmRsZS9mZm1wZWcuZ24KK0BAIC0xMiw2ICsx Miw3IEBAIHBrZ19jb25maWcoInN5c3RlbV9mZm1wZWciKSB7CisgICAgICJsaWJhdmZvcm1hdCIs CisgICAgICJsaWJhdnV0aWwiLAorICAgXQorKyAgZGVmaW5lcyA9IFsgImF2X3N0cmVhbV9nZXRf Zmlyc3RfZHRzKHN0cmVhbSk9c3RyZWFtLT5maXJzdF9kdHMiIF0KKyB9CisgCisgYnVpbGRmbGFn X2hlYWRlcigiZmZtcGVnX2ZlYXR1cmVzIikgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2Vi ZW5naW5lL3BhdGNoZXMvMDE1MS1jaHJvbWl1bS11bmJ1bmRsZWQtY3Jvc3MtdG9vbGNoYWluLnBh dGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDE1MS1jaHJvbWl1bS11bmJ1bmRs ZWQtY3Jvc3MtdG9vbGNoYWluLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uNzQ2ZDJkZmI5YTdlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2Vi ZW5naW5lL3BhdGNoZXMvMDE1MS1jaHJvbWl1bS11bmJ1bmRsZWQtY3Jvc3MtdG9vbGNoYWluLnBh dGNoCkBAIC0wLDAgKzEsMTMgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL2J1aWxkL3Rvb2xjaGFpbi9saW51eC91bmJ1bmRsZS9CVUlMRC5nbgor KysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkL3Rvb2xj aGFpbi9saW51eC91bmJ1bmRsZS9CVUlMRC5nbgorQEAgLTM1LDggKzM1LDggQEAgZ2NjX3Rvb2xj aGFpbigiaG9zdCIpIHsKKyAgIGV4dHJhX2xkZmxhZ3MgPSBnZXRlbnYoIkJVSUxEX0xERkxBR1Mi KQorIAorICAgdG9vbGNoYWluX2FyZ3MgPSB7CistICAgIGN1cnJlbnRfY3B1ID0gY3VycmVudF9j cHUKKy0gICAgY3VycmVudF9vcyA9IGN1cnJlbnRfb3MKKysgICAgY3VycmVudF9jcHUgPSBob3N0 X2NwdQorKyAgICBjdXJyZW50X29zID0gaG9zdF9vcworICAgfQorIH0KKyAKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxNTItY2hyb21pdW0td2VicnRjLXNpemVf dC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxNTItY2hyb21pdW0td2Vi cnRjLXNpemVfdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu LjhmNjAyMDRmZjU4NAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9w YXRjaGVzLzAxNTItY2hyb21pdW0td2VicnRjLXNpemVfdC5wYXRjaApAQCAtMCwwICsxLDEwIEBA CistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9hdWRpb19wcm9jZXNzaW5nL2FlYzMvY2xvY2tkcmlmdF9k ZXRlY3Rvci5oCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0v dGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMvYXVkaW9fcHJvY2Vzc2luZy9hZWMzL2Nsb2NrZHJp ZnRfZGV0ZWN0b3IuaAorQEAgLTE0LDYgKzE0LDcgQEAKKyAjaW5jbHVkZSA8c3RkZGVmLmg+Cisg CisgI2luY2x1ZGUgPGFycmF5PgorKyNpbmNsdWRlIDxjc3RkZGVmPgorIAorIG5hbWVzcGFjZSB3 ZWJydGMgeworIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDE1 My1jaHJvbWl1bS13ZWJydGMtc2l6ZV90LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDE1My1jaHJvbWl1bS13ZWJydGMtc2l6ZV90LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uM2I1YjdhM2Q1M2I5Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDE1My1jaHJvbWl1bS13ZWJydGMtc2l6ZV90 LnBhdGNoCkBAIC0wLDAgKzEsMTYgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2FuZ2xlL2luY2x1ZGUvcGxhdGZvcm0vUGxh dGZvcm1NZXRob2RzLmgKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9hbmdsZS9pbmNsdWRlL3BsYXRmb3JtL1BsYXRmb3JtTWV0aG9kcy5o CitAQCAtMjIyLDExICsyMjIsMTEgQEAgaW5saW5lIHZvaWQgRGVmYXVsdEhpc3RvZ3JhbUJvb2xl YW4oUGxhdAorIHVzaW5nIFByb2dyYW1LZXlUeXBlICAgPSBzdGQ6OmFycmF5PHVpbnQ4X3QsIDIw PjsKKyB1c2luZyBDYWNoZVByb2dyYW1GdW5jID0gdm9pZCAoKikoUGxhdGZvcm1NZXRob2RzICpw bGF0Zm9ybSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUHJvZ3Jh bUtleVR5cGUgJmtleSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90 IHByb2dyYW1TaXplLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnNp emVfdCBwcm9ncmFtU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgdWludDhfdCAqcHJvZ3JhbUJ5dGVzKTsKKyBpbmxpbmUgdm9pZCBEZWZhdWx0Q2FjaGVQcm9n cmFtKFBsYXRmb3JtTWV0aG9kcyAqcGxhdGZvcm0sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBQcm9ncmFtS2V5VHlwZSAma2V5LAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2l6ZV90IHByb2dyYW1TaXplLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RkOjpzaXplX3QgcHJvZ3JhbVNpemUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCB1aW50OF90ICpwcm9ncmFtQnl0ZXMpCisge30KKyAKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxNTQtY2hyb21pdW0tdWl0X3QucGF0 Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTU0LWNocm9taXVtLXVpdF90LnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDEzYTMxZmVlNDAy Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDE1NC1j aHJvbWl1bS11aXRfdC5wYXRjaApAQCAtMCwwICsxLDExIEBACistLS0gcXQ2LXdlYmVuZ2luZS02 LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlcnZpY2VzL2Ny ZWRlbnRpYWxzLmgKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS9zYW5kYm94L2xpbnV4L3NlcnZpY2VzL2NyZWRlbnRpYWxzLmgKK0BAIC0xNCw2ICsxNCw4IEBA CisgI2luY2x1ZGUgPHN0cmluZz4KKyAjaW5jbHVkZSA8dmVjdG9yPgorIAorKyNpbmNsdWRlIDxz eXMvdHlwZXMuaD4KKysKKyAjaW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9j YXBhYmlsaXR5LmgiCisgI2luY2x1ZGUgInNhbmRib3gvc2FuZGJveF9leHBvcnQuaCIKKyAKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDAtY2hyb21pdW0tc25k aW8ucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjAwLWNocm9taXVtLXNu ZGlvLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDc2OWI1 MzE0OTdiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDIwMC1jaHJvbWl1bS1zbmRpby5wYXRjaApAQCAtMCwwICsxLDg0OSBAQAorLS0tIHF0Ni13ZWJl bmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vbWVkaWEvQlVJTEQuZ24KKysr KyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9CVUlMRC5n bgorQEAgLTc4LDYgKzc4LDkgQEAgY29uZmlnKCJtZWRpYV9jb25maWciKSB7CisgICAgICAgZGVm aW5lcyArPSBbICJETE9QRU5fUFVMU0VBVURJTyIgXQorICAgICB9CisgICB9CisrICBpZiAodXNl X3NuZGlvKSB7CisrICAgIGRlZmluZXMgKz0gWyAiVVNFX1NORElPIiBdCisrICB9CisgICBpZiAo dXNlX2NyYXMpIHsKKyAgICAgZGVmaW5lcyArPSBbICJVU0VfQ1JBUyIgXQorICAgfQorLS0tIHF0 Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vbWVkaWEvYXVkaW8v QlVJTEQuZ24KKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9t ZWRpYS9hdWRpby9CVUlMRC5nbgorQEAgLTI0NSw2ICsyNDUsMTcgQEAgc291cmNlX3NldCgiYXVk aW8iKSB7CisgICAgIHNvdXJjZXMgKz0gWyAibGludXgvYXVkaW9fbWFuYWdlcl9saW51eC5jYyIg XQorICAgfQorIAorKyAgaWYgKHVzZV9zbmRpbykgeworKyAgICBsaWJzICs9IFsgInNuZGlvIiBd CisrICAgIHNvdXJjZXMgKz0gWworKyAgICAgICJzbmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmNj IiwKKysgICAgICAic25kaW8vc25kaW9faW5wdXQuY2MiLAorKyAgICAgICJzbmRpby9zbmRpb19p bnB1dC5oIiwKKysgICAgICAic25kaW8vc25kaW9fb3V0cHV0LmNjIiwKKysgICAgICAic25kaW8v c25kaW9fb3V0cHV0LmgiCisrICAgIF0KKysgIH0KKysKKyAgIGlmICh1c2VfYWxzYSkgeworICAg ICBsaWJzICs9IFsgImFzb3VuZCIgXQorICAgICBzb3VyY2VzICs9IFsKKy0tLSBxdDYtd2ViZW5n aW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL2F1ZGlvL2xpbnV4L2F1 ZGlvX21hbmFnZXJfbGludXguY2MKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9tZWRpYS9hdWRpby9saW51eC9hdWRpb19tYW5hZ2VyX2xpbnV4LmNjCitAQCAt MjUsNiArMjUsMTEgQEAKKyAjaW5jbHVkZSAibWVkaWEvYXVkaW8vcHVsc2UvYXVkaW9fbWFuYWdl cl9wdWxzZS5oIgorICNpbmNsdWRlICJtZWRpYS9hdWRpby9wdWxzZS9wdWxzZV91dGlsLmgiCisg I2VuZGlmCisrI2lmIGRlZmluZWQoVVNFX1NORElPKQorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9z bmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlv L3NuZGlvX2lucHV0LmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX291dHB1 dC5oIgorKyNlbmRpZgorIAorIG5hbWVzcGFjZSBtZWRpYSB7CisgCistLS0gL2Rldi9udWxsCisr KysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vbWVkaWEvYXVkaW8v c25kaW8vYXVkaW9fbWFuYWdlcl9zbmRpby5jYworQEAgLTAsMCArMSwxNDggQEAKKysvLyBDb3B5 cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu CisrLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg bGljZW5zZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisr I2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL2F1ZGlvX21hbmFnZXJfc25kaW8uaCIKKysKKysj aW5jbHVkZSAiYmFzZS9tZXRyaWNzL2hpc3RvZ3JhbV9tYWNyb3MuaCIKKysjaW5jbHVkZSAiYmFz ZS9tZW1vcnkvcHRyX3V0aWwuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVkaW9fZGV2aWNl X2Rlc2NyaXB0aW9uLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX291dHB1dF9kaXNw YXRjaGVyLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX2lucHV0LmgiCisr I2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX291dHB1dC5oIgorKyNpbmNsdWRlICJt ZWRpYS9iYXNlL2xpbWl0cy5oIgorKyNpbmNsdWRlICJtZWRpYS9iYXNlL21lZGlhX3N3aXRjaGVz LmgiCisrCisrbmFtZXNwYWNlIG1lZGlhIHsKKysKKysKKysvLyBNYXhpbXVtIG51bWJlciBvZiBv dXRwdXQgc3RyZWFtcyB0aGF0IGNhbiBiZSBvcGVuIHNpbXVsdGFuZW91c2x5LgorK3N0YXRpYyBj b25zdCBpbnQga01heE91dHB1dFN0cmVhbXMgPSA0OworKworKy8vIERlZmF1bHQgc2FtcGxlIHJh dGUgZm9yIGlucHV0IGFuZCBvdXRwdXQgc3RyZWFtcy4KKytzdGF0aWMgY29uc3QgaW50IGtEZWZh dWx0U2FtcGxlUmF0ZSA9IDQ4MDAwOworKworK3ZvaWQgQWRkRGVmYXVsdERldmljZShBdWRpb0Rl dmljZU5hbWVzKiBkZXZpY2VfbmFtZXMpIHsKKysgIERDSEVDSyhkZXZpY2VfbmFtZXMtPmVtcHR5 KCkpOworKyAgZGV2aWNlX25hbWVzLT5wdXNoX2Zyb250KEF1ZGlvRGV2aWNlTmFtZTo6Q3JlYXRl RGVmYXVsdCgpKTsKKyt9CisrCisrYm9vbCBBdWRpb01hbmFnZXJTbmRpbzo6SGFzQXVkaW9PdXRw dXREZXZpY2VzKCkgeworKyAgcmV0dXJuIHRydWU7CisrfQorKworK2Jvb2wgQXVkaW9NYW5hZ2Vy U25kaW86Okhhc0F1ZGlvSW5wdXREZXZpY2VzKCkgeworKyAgcmV0dXJuIHRydWU7CisrfQorKwor K3ZvaWQgQXVkaW9NYW5hZ2VyU25kaW86OkdldEF1ZGlvSW5wdXREZXZpY2VOYW1lcygKKysgICAg QXVkaW9EZXZpY2VOYW1lcyogZGV2aWNlX25hbWVzKSB7CisrICBEQ0hFQ0soZGV2aWNlX25hbWVz LT5lbXB0eSgpKTsKKysgIEFkZERlZmF1bHREZXZpY2UoZGV2aWNlX25hbWVzKTsKKyt9CisrCisr dm9pZCBBdWRpb01hbmFnZXJTbmRpbzo6R2V0QXVkaW9PdXRwdXREZXZpY2VOYW1lcygKKysgICAg QXVkaW9EZXZpY2VOYW1lcyogZGV2aWNlX25hbWVzKSB7CisrICBBZGREZWZhdWx0RGV2aWNlKGRl dmljZV9uYW1lcyk7CisrfQorKworK2NvbnN0IGNoYXIqIEF1ZGlvTWFuYWdlclNuZGlvOjpHZXRO YW1lKCkgeworKyAgcmV0dXJuICJTTkRJTyI7CisrfQorKworK0F1ZGlvUGFyYW1ldGVycyBBdWRp b01hbmFnZXJTbmRpbzo6R2V0SW5wdXRTdHJlYW1QYXJhbWV0ZXJzKAorKyAgICBjb25zdCBzdGQ6 OnN0cmluZyYgZGV2aWNlX2lkKSB7CisrICBzdGF0aWMgY29uc3QgaW50IGtEZWZhdWx0SW5wdXRC dWZmZXJTaXplID0gMTAyNDsKKysKKysgIGludCB1c2VyX2J1ZmZlcl9zaXplID0gR2V0VXNlckJ1 ZmZlclNpemUoKTsKKysgIGludCBidWZmZXJfc2l6ZSA9IHVzZXJfYnVmZmVyX3NpemUgPworKyAg ICAgIHVzZXJfYnVmZmVyX3NpemUgOiBrRGVmYXVsdElucHV0QnVmZmVyU2l6ZTsKKysKKysgIHJl dHVybiBBdWRpb1BhcmFtZXRlcnMoCisrICAgICAgQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01f TE9XX0xBVEVOQ1ksIENIQU5ORUxfTEFZT1VUX1NURVJFTywKKysgICAgICBrRGVmYXVsdFNhbXBs ZVJhdGUsIGJ1ZmZlcl9zaXplKTsKKyt9CisrCisrQXVkaW9NYW5hZ2VyU25kaW86OkF1ZGlvTWFu YWdlclNuZGlvKHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1RocmVhZD4gYXVkaW9fdGhyZWFkLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXVkaW9Mb2dGYWN0b3J5KiBh dWRpb19sb2dfZmFjdG9yeSkKKysgICAgOiBBdWRpb01hbmFnZXJCYXNlKHN0ZDo6bW92ZShhdWRp b190aHJlYWQpLAorKyAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9fbG9nX2ZhY3RvcnkpIHsK KysgIERMT0coV0FSTklORykgPDwgIkF1ZGlvTWFuYWdlclNuZGlvIjsKKysgIFNldE1heE91dHB1 dFN0cmVhbXNBbGxvd2VkKGtNYXhPdXRwdXRTdHJlYW1zKTsKKyt9CisrCisrQXVkaW9NYW5hZ2Vy U25kaW86On5BdWRpb01hbmFnZXJTbmRpbygpIHsKKysgIFNodXRkb3duKCk7CisrfQorKworK0F1 ZGlvT3V0cHV0U3RyZWFtKiBBdWRpb01hbmFnZXJTbmRpbzo6TWFrZUxpbmVhck91dHB1dFN0cmVh bSgKKysgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisrICAgIGNvbnN0IExvZ0Nh bGxiYWNrJiBsb2dfY2FsbGJhY2spIHsKKysgIERDSEVDS19FUShBdWRpb1BhcmFtZXRlcnM6OkFV RElPX1BDTV9MSU5FQVIsIHBhcmFtcy5mb3JtYXQoKSk7CisrICByZXR1cm4gTWFrZU91dHB1dFN0 cmVhbShwYXJhbXMpOworK30KKysKKytBdWRpb091dHB1dFN0cmVhbSogQXVkaW9NYW5hZ2VyU25k aW86Ok1ha2VMb3dMYXRlbmN5T3V0cHV0U3RyZWFtKAorKyAgICBjb25zdCBBdWRpb1BhcmFtZXRl cnMmIHBhcmFtcywKKysgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9pZCwKKysgICAgY29u c3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgeworKyAgRExPR19JRihFUlJPUiwgIWRldmlj ZV9pZC5lbXB0eSgpKSA8PCAiTm90IGltcGxlbWVudGVkISI7CisrICBEQ0hFQ0tfRVEoQXVkaW9Q YXJhbWV0ZXJzOjpBVURJT19QQ01fTE9XX0xBVEVOQ1ksIHBhcmFtcy5mb3JtYXQoKSk7CisrICBy ZXR1cm4gTWFrZU91dHB1dFN0cmVhbShwYXJhbXMpOworK30KKysKKytBdWRpb0lucHV0U3RyZWFt KiBBdWRpb01hbmFnZXJTbmRpbzo6TWFrZUxpbmVhcklucHV0U3RyZWFtKAorKyAgICBjb25zdCBB dWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9p ZCwKKysgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgeworKyAgRENIRUNLX0VR KEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xJTkVBUiwgcGFyYW1zLmZvcm1hdCgpKTsKKysg IHJldHVybiBNYWtlSW5wdXRTdHJlYW0ocGFyYW1zKTsKKyt9CisrCisrQXVkaW9JbnB1dFN0cmVh bSogQXVkaW9NYW5hZ2VyU25kaW86Ok1ha2VMb3dMYXRlbmN5SW5wdXRTdHJlYW0oCisrICAgIGNv bnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2 aWNlX2lkLAorKyAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSB7CisrICBEQ0hF Q0tfRVEoQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTE9XX0xBVEVOQ1ksIHBhcmFtcy5mb3Jt YXQoKSk7CisrICByZXR1cm4gTWFrZUlucHV0U3RyZWFtKHBhcmFtcyk7CisrfQorKworK0F1ZGlv UGFyYW1ldGVycyBBdWRpb01hbmFnZXJTbmRpbzo6R2V0UHJlZmVycmVkT3V0cHV0U3RyZWFtUGFy YW1ldGVycygKKysgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG91dHB1dF9kZXZpY2VfaWQsCisrICAg IGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgaW5wdXRfcGFyYW1zKSB7CisrICAvLyBUT0RPKHRvbW1p KTogU3VwcG9ydCB8b3V0cHV0X2RldmljZV9pZHwuCisrICBETE9HX0lGKEVSUk9SLCAhb3V0cHV0 X2RldmljZV9pZC5lbXB0eSgpKSA8PCAiTm90IGltcGxlbWVudGVkISI7CisrICBzdGF0aWMgY29u c3QgaW50IGtEZWZhdWx0T3V0cHV0QnVmZmVyU2l6ZSA9IDIwNDg7CisrCisrICBDaGFubmVsTGF5 b3V0IGNoYW5uZWxfbGF5b3V0ID0gQ0hBTk5FTF9MQVlPVVRfU1RFUkVPOworKyAgaW50IHNhbXBs ZV9yYXRlID0ga0RlZmF1bHRTYW1wbGVSYXRlOworKyAgaW50IGJ1ZmZlcl9zaXplID0ga0RlZmF1 bHRPdXRwdXRCdWZmZXJTaXplOworKyAgaWYgKGlucHV0X3BhcmFtcy5Jc1ZhbGlkKCkpIHsKKysg ICAgc2FtcGxlX3JhdGUgPSBpbnB1dF9wYXJhbXMuc2FtcGxlX3JhdGUoKTsKKysgICAgY2hhbm5l bF9sYXlvdXQgPSBpbnB1dF9wYXJhbXMuY2hhbm5lbF9sYXlvdXQoKTsKKysgICAgYnVmZmVyX3Np emUgPSBzdGQ6Om1pbihidWZmZXJfc2l6ZSwgaW5wdXRfcGFyYW1zLmZyYW1lc19wZXJfYnVmZmVy KCkpOworKyAgfQorKworKyAgaW50IHVzZXJfYnVmZmVyX3NpemUgPSBHZXRVc2VyQnVmZmVyU2l6 ZSgpOworKyAgaWYgKHVzZXJfYnVmZmVyX3NpemUpCisrICAgIGJ1ZmZlcl9zaXplID0gdXNlcl9i dWZmZXJfc2l6ZTsKKysKKysgIHJldHVybiBBdWRpb1BhcmFtZXRlcnMoCisrICAgICAgQXVkaW9Q YXJhbWV0ZXJzOjpBVURJT19QQ01fTE9XX0xBVEVOQ1ksIGNoYW5uZWxfbGF5b3V0LAorKyAgICAg IHNhbXBsZV9yYXRlLCBidWZmZXJfc2l6ZSk7CisrfQorKworK0F1ZGlvSW5wdXRTdHJlYW0qIEF1 ZGlvTWFuYWdlclNuZGlvOjpNYWtlSW5wdXRTdHJlYW0oCisrICAgIGNvbnN0IEF1ZGlvUGFyYW1l dGVycyYgcGFyYW1zKSB7CisrICBETE9HKFdBUk5JTkcpIDw8ICJNYWtlSW5wdXRTdHJlYW0iOwor KyAgcmV0dXJuIG5ldyBTbmRpb0F1ZGlvSW5wdXRTdHJlYW0odGhpcywKKysgICAgICAgICAgICAg QXVkaW9EZXZpY2VEZXNjcmlwdGlvbjo6a0RlZmF1bHREZXZpY2VJZCwgcGFyYW1zKTsKKyt9Cisr CisrQXVkaW9PdXRwdXRTdHJlYW0qIEF1ZGlvTWFuYWdlclNuZGlvOjpNYWtlT3V0cHV0U3RyZWFt KAorKyAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcykgeworKyAgRExPRyhXQVJOSU5H KSA8PCAiTWFrZU91dHB1dFN0cmVhbSI7CisrICByZXR1cm4gbmV3IFNuZGlvQXVkaW9PdXRwdXRT dHJlYW0ocGFyYW1zLCB0aGlzKTsKKyt9CisrCisrfSAgLy8gbmFtZXNwYWNlIG1lZGlhCistLS0g L2Rldi9udWxsCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0v bWVkaWEvYXVkaW8vc25kaW8vYXVkaW9fbWFuYWdlcl9zbmRpby5oCitAQCAtMCwwICsxLDY1IEBA CisrLy8gQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRz IHJlc2VydmVkLgorKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEg QlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBm aWxlLgorKworKyNpZm5kZWYgTUVESUFfQVVESU9fU05ESU9fQVVESU9fTUFOQUdFUl9TTkRJT19I XworKyNkZWZpbmUgTUVESUFfQVVESU9fU05ESU9fQVVESU9fTUFOQUdFUl9TTkRJT19IXworKwor KyNpbmNsdWRlIDxzZXQ+CisrCisrI2luY2x1ZGUgImJhc2UvY29tcGlsZXJfc3BlY2lmaWMuaCIK KysjaW5jbHVkZSAiYmFzZS9tYWNyb3MuaCIKKysjaW5jbHVkZSAiYmFzZS9tZW1vcnkvcmVmX2Nv dW50ZWQuaCIKKysjaW5jbHVkZSAiYmFzZS90aHJlYWRpbmcvdGhyZWFkLmgiCisrI2luY2x1ZGUg Im1lZGlhL2F1ZGlvL2F1ZGlvX21hbmFnZXJfYmFzZS5oIgorKworK25hbWVzcGFjZSBtZWRpYSB7 CisrCisrY2xhc3MgTUVESUFfRVhQT1JUIEF1ZGlvTWFuYWdlclNuZGlvIDogcHVibGljIEF1ZGlv TWFuYWdlckJhc2UgeworKyBwdWJsaWM6CisrICBBdWRpb01hbmFnZXJTbmRpbyhzdGQ6OnVuaXF1 ZV9wdHI8QXVkaW9UaHJlYWQ+IGF1ZGlvX3RocmVhZCwKKysgICAgICAgICAgICAgICAgICAgQXVk aW9Mb2dGYWN0b3J5KiBhdWRpb19sb2dfZmFjdG9yeSk7CisrICB+QXVkaW9NYW5hZ2VyU25kaW8o KSBvdmVycmlkZTsKKysKKysgIC8vIEltcGxlbWVudGF0aW9uIG9mIEF1ZGlvTWFuYWdlci4KKysg IGJvb2wgSGFzQXVkaW9PdXRwdXREZXZpY2VzKCkgb3ZlcnJpZGU7CisrICBib29sIEhhc0F1ZGlv SW5wdXREZXZpY2VzKCkgb3ZlcnJpZGU7CisrICB2b2lkIEdldEF1ZGlvSW5wdXREZXZpY2VOYW1l cyhBdWRpb0RldmljZU5hbWVzKiBkZXZpY2VfbmFtZXMpIG92ZXJyaWRlOworKyAgdm9pZCBHZXRB dWRpb091dHB1dERldmljZU5hbWVzKEF1ZGlvRGV2aWNlTmFtZXMqIGRldmljZV9uYW1lcykgb3Zl cnJpZGU7CisrICBBdWRpb1BhcmFtZXRlcnMgR2V0SW5wdXRTdHJlYW1QYXJhbWV0ZXJzKAorKyAg ICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQpIG92ZXJyaWRlOworKyAgY29uc3QgY2hh ciogR2V0TmFtZSgpIG92ZXJyaWRlOworKworKyAgLy8gSW1wbGVtZW50YXRpb24gb2YgQXVkaW9N YW5hZ2VyQmFzZS4KKysgIEF1ZGlvT3V0cHV0U3RyZWFtKiBNYWtlTGluZWFyT3V0cHV0U3RyZWFt KAorKyAgICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAgICAgIGNvbnN0IExv Z0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIG92ZXJyaWRlOworKyAgQXVkaW9PdXRwdXRTdHJlYW0q IE1ha2VMb3dMYXRlbmN5T3V0cHV0U3RyZWFtKAorKyAgICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVy cyYgcGFyYW1zLAorKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQsCisrICAgICAg Y29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgb3ZlcnJpZGU7CisrICBBdWRpb0lucHV0 U3RyZWFtKiBNYWtlTGluZWFySW5wdXRTdHJlYW0oCisrICAgICAgY29uc3QgQXVkaW9QYXJhbWV0 ZXJzJiBwYXJhbXMsCisrICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9pZCwKKysgICAg ICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSBvdmVycmlkZTsKKysgIEF1ZGlvSW5w dXRTdHJlYW0qIE1ha2VMb3dMYXRlbmN5SW5wdXRTdHJlYW0oCisrICAgICAgY29uc3QgQXVkaW9Q YXJhbWV0ZXJzJiBwYXJhbXMsCisrICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9pZCwK KysgICAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSBvdmVycmlkZTsKKysKKysg cHJvdGVjdGVkOgorKyAgQXVkaW9QYXJhbWV0ZXJzIEdldFByZWZlcnJlZE91dHB1dFN0cmVhbVBh cmFtZXRlcnMoCisrICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG91dHB1dF9kZXZpY2VfaWQsCisr ICAgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBpbnB1dF9wYXJhbXMpIG92ZXJyaWRlOworKwor KyBwcml2YXRlOgorKyAgLy8gQ2FsbGVkIGJ5IE1ha2VMaW5lYXJPdXRwdXRTdHJlYW0gYW5kIE1h a2VMb3dMYXRlbmN5T3V0cHV0U3RyZWFtLgorKyAgQXVkaW9PdXRwdXRTdHJlYW0qIE1ha2VPdXRw dXRTdHJlYW0oY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMpOworKyAgQXVkaW9JbnB1dFN0 cmVhbSogTWFrZUlucHV0U3RyZWFtKGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zKTsKKysK KysgIERJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihBdWRpb01hbmFnZXJTbmRpbyk7CisrfTsKKysK Kyt9ICAvLyBuYW1lc3BhY2UgbWVkaWEKKysKKysjZW5kaWYgIC8vIE1FRElBX0FVRElPX1NORElP X0FVRElPX01BTkFHRVJfU05ESU9fSF8KKy0tLSAvZGV2L251bGwKKysrKyBxdDYtd2ViZW5naW5l LTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9hdWRpby9zbmRpby9zbmRpb19pbnB1 dC5jYworQEAgLTAsMCArMSwyMDAgQEAKKysvLyBDb3B5cmlnaHQgMjAxMyBUaGUgQ2hyb21pdW0g QXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29k ZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91 bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysjaW5jbHVkZSAiYmFzZS9iaW5kLmgiCisrI2lu Y2x1ZGUgImJhc2UvbG9nZ2luZy5oIgorKyNpbmNsdWRlICJiYXNlL21hY3Jvcy5oIgorKyNpbmNs dWRlICJtZWRpYS9iYXNlL2F1ZGlvX3RpbWVzdGFtcF9oZWxwZXIuaCIKKysjaW5jbHVkZSAibWVk aWEvYXVkaW8vc25kaW8vYXVkaW9fbWFuYWdlcl9zbmRpby5oIgorKyNpbmNsdWRlICJtZWRpYS9h dWRpby9hdWRpb19tYW5hZ2VyLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlv X2lucHV0LmgiCisrCisrbmFtZXNwYWNlIG1lZGlhIHsKKysKKytzdGF0aWMgY29uc3QgU2FtcGxl Rm9ybWF0IGtTYW1wbGVGb3JtYXQgPSBrU2FtcGxlRm9ybWF0UzE2OworKworK3ZvaWQgU25kaW9B dWRpb0lucHV0U3RyZWFtOjpPbk1vdmVDYWxsYmFjayh2b2lkICphcmcsIGludCBkZWx0YSkKKyt7 CisrICBTbmRpb0F1ZGlvSW5wdXRTdHJlYW0qIHNlbGYgPSBzdGF0aWNfY2FzdDxTbmRpb0F1ZGlv SW5wdXRTdHJlYW0qPihhcmcpOworKworKyAgc2VsZi0+aHdfZGVsYXkgKz0gZGVsdGE7CisrfQor KworK3ZvaWQgKlNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6VGhyZWFkRW50cnkodm9pZCAqYXJnKSB7 CisrICBTbmRpb0F1ZGlvSW5wdXRTdHJlYW0qIHNlbGYgPSBzdGF0aWNfY2FzdDxTbmRpb0F1ZGlv SW5wdXRTdHJlYW0qPihhcmcpOworKworKyAgc2VsZi0+VGhyZWFkTG9vcCgpOworKyAgcmV0dXJu IE5VTEw7CisrfQorKworK1NuZGlvQXVkaW9JbnB1dFN0cmVhbTo6U25kaW9BdWRpb0lucHV0U3Ry ZWFtKEF1ZGlvTWFuYWdlckJhc2UqIG1hbmFnZXIsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9uYW1lLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEF1ZGlvUGFy YW1ldGVycyYgcGFyYW1zKQorKyAgICA6IG1hbmFnZXIobWFuYWdlciksCisrICAgICAgcGFyYW1z KHBhcmFtcyksCisrICAgICAgYXVkaW9fYnVzKEF1ZGlvQnVzOjpDcmVhdGUocGFyYW1zKSksCisr ICAgICAgc3RhdGUoa0Nsb3NlZCkgeworK30KKysKKytTbmRpb0F1ZGlvSW5wdXRTdHJlYW06On5T bmRpb0F1ZGlvSW5wdXRTdHJlYW0oKSB7CisrICBpZiAoc3RhdGUgIT0ga0Nsb3NlZCkKKysgICAg Q2xvc2UoKTsKKyt9CisrCisrYm9vbCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06Ok9wZW4oKSB7Cisr ICBzdHJ1Y3Qgc2lvX3BhciBwYXI7CisrICBpbnQgc2lnOworKworKyAgaWYgKHN0YXRlICE9IGtD bG9zZWQpCisrICAgIHJldHVybiBmYWxzZTsKKysKKysgIGlmIChwYXJhbXMuZm9ybWF0KCkgIT0g QXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTElORUFSICYmCisrICAgICAgcGFyYW1zLmZvcm1h dCgpICE9IEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xPV19MQVRFTkNZKSB7CisrICAgIExP RyhXQVJOSU5HKSA8PCAiVW5zdXBwb3J0ZWQgYXVkaW8gZm9ybWF0LiI7CisrICAgIHJldHVybiBm YWxzZTsKKysgIH0KKysKKysgIHNpb19pbml0cGFyKCZwYXIpOworKyAgcGFyLnJhdGUgPSBwYXJh bXMuc2FtcGxlX3JhdGUoKTsKKysgIHBhci5yY2hhbiA9IHBhcmFtcy5jaGFubmVscygpOworKyAg cGFyLmJpdHMgPSBTYW1wbGVGb3JtYXRUb0JpdHNQZXJDaGFubmVsKGtTYW1wbGVGb3JtYXQpOwor KyAgcGFyLmJwcyA9IHBhci5iaXRzIC8gODsKKysgIHBhci5zaWcgPSBzaWcgPSBwYXIuYml0cyAh PSA4ID8gMSA6IDA7CisrICBwYXIubGUgPSBTSU9fTEVfTkFUSVZFOworKyAgcGFyLmFwcGJ1ZnN6 ID0gcGFyYW1zLmZyYW1lc19wZXJfYnVmZmVyKCk7CisrCisrICBoZGwgPSBzaW9fb3BlbihTSU9f REVWQU5ZLCBTSU9fUkVDLCAwKTsKKysKKysgIGlmIChoZGwgPT0gTlVMTCkgeworKyAgICBMT0co RVJST1IpIDw8ICJDb3VsZG4ndCBvcGVuIGF1ZGlvIGRldmljZS4iOworKyAgICByZXR1cm4gZmFs c2U7CisrICB9CisrCisrICBpZiAoIXNpb19zZXRwYXIoaGRsLCAmcGFyKSB8fCAhc2lvX2dldHBh cihoZGwsICZwYXIpKSB7CisrICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IHNldCBhdWRpbyBw YXJhbWV0ZXJzLiI7CisrICAgIGdvdG8gYmFkX2Nsb3NlOworKyAgfQorKworKyAgaWYgKHBhci5y YXRlICAhPSAodW5zaWduZWQgaW50KXBhcmFtcy5zYW1wbGVfcmF0ZSgpIHx8CisrICAgICAgcGFy LnJjaGFuICE9ICh1bnNpZ25lZCBpbnQpcGFyYW1zLmNoYW5uZWxzKCkgfHwKKysgICAgICBwYXIu Yml0cyAgIT0gKHVuc2lnbmVkIGludClTYW1wbGVGb3JtYXRUb0JpdHNQZXJDaGFubmVsKGtTYW1w bGVGb3JtYXQpIHx8CisrICAgICAgcGFyLnNpZyAgICE9ICh1bnNpZ25lZCBpbnQpc2lnIHx8Cisr ICAgICAgKHBhci5icHMgPiAxICYmIHBhci5sZSAhPSBTSU9fTEVfTkFUSVZFKSB8fAorKyAgICAg IChwYXIuYml0cyAhPSBwYXIuYnBzICogOCkpIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiVW5zdXBw b3J0ZWQgYXVkaW8gcGFyYW1ldGVycy4iOworKyAgICBnb3RvIGJhZF9jbG9zZTsKKysgIH0KKysg IHN0YXRlID0ga1N0b3BwZWQ7CisrICBidWZmZXIgPSBuZXcgY2hhclthdWRpb19idXMtPmZyYW1l cygpICogcGFyYW1zLkdldEJ5dGVzUGVyRnJhbWUoa1NhbXBsZUZvcm1hdCldOworKyAgc2lvX29u bW92ZShoZGwsICZPbk1vdmVDYWxsYmFjaywgdGhpcyk7CisrICByZXR1cm4gdHJ1ZTsKKytiYWRf Y2xvc2U6CisrICBzaW9fY2xvc2UoaGRsKTsKKysgIHJldHVybiBmYWxzZTsKKyt9CisrCisrdm9p ZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OlN0YXJ0KEF1ZGlvSW5wdXRDYWxsYmFjayogY2IpIHsK KysKKysgIFN0YXJ0QWdjKCk7CisrCisrICBzdGF0ZSA9IGtSdW5uaW5nOworKyAgaHdfZGVsYXkg PSAwOworKyAgY2FsbGJhY2sgPSBjYjsKKysgIHNpb19zdGFydChoZGwpOworKyAgaWYgKHB0aHJl YWRfY3JlYXRlKCZ0aHJlYWQsIE5VTEwsICZUaHJlYWRFbnRyeSwgdGhpcykgIT0gMCkgeworKyAg ICBMT0coRVJST1IpIDw8ICJGYWlsZWQgdG8gY3JlYXRlIHJlYWwtdGltZSB0aHJlYWQgZm9yIHJl Y29yZGluZy4iOworKyAgICBzaW9fc3RvcChoZGwpOworKyAgICBzdGF0ZSA9IGtTdG9wcGVkOwor KyAgfQorK30KKysKKyt2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6U3RvcCgpIHsKKysKKysg IGlmIChzdGF0ZSA9PSBrU3RvcHBlZCkKKysgICAgcmV0dXJuOworKworKyAgc3RhdGUgPSBrU3Rv cFdhaXQ7CisrICBwdGhyZWFkX2pvaW4odGhyZWFkLCBOVUxMKTsKKysgIHNpb19zdG9wKGhkbCk7 CisrICBzdGF0ZSA9IGtTdG9wcGVkOworKworKyAgU3RvcEFnYygpOworK30KKysKKyt2b2lkIFNu ZGlvQXVkaW9JbnB1dFN0cmVhbTo6Q2xvc2UoKSB7CisrCisrICBpZiAoc3RhdGUgPT0ga0Nsb3Nl ZCkKKysgICAgcmV0dXJuOworKworKyAgaWYgKHN0YXRlID09IGtSdW5uaW5nKQorKyAgICBTdG9w KCk7CisrCisrICBzdGF0ZSA9IGtDbG9zZWQ7CisrICBkZWxldGUgW10gYnVmZmVyOworKyAgc2lv X2Nsb3NlKGhkbCk7CisrCisrICBtYW5hZ2VyLT5SZWxlYXNlSW5wdXRTdHJlYW0odGhpcyk7Cisr fQorKworK2RvdWJsZSBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OkdldE1heFZvbHVtZSgpIHsKKysg IC8vIE5vdCBzdXBwb3J0ZWQKKysgIHJldHVybiAwLjA7CisrfQorKworK3ZvaWQgU25kaW9BdWRp b0lucHV0U3RyZWFtOjpTZXRWb2x1bWUoZG91YmxlIHZvbHVtZSkgeworKyAgLy8gTm90IHN1cHBv cnRlZC4gRG8gbm90aGluZy4KKyt9CisrCisrZG91YmxlIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6 R2V0Vm9sdW1lKCkgeworKyAgLy8gTm90IHN1cHBvcnRlZC4KKysgIHJldHVybiAwLjA7CisrfQor KworK2Jvb2wgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpJc011dGVkKCkgeworKyAgLy8gTm90IHN1 cHBvcnRlZC4KKysgIHJldHVybiBmYWxzZTsKKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvSW5wdXRT dHJlYW06OlNldE91dHB1dERldmljZUZvckFlYygKKysgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG91 dHB1dF9kZXZpY2VfaWQpIHsKKysgIC8vIE5vdCBzdXBwb3J0ZWQuCisrfQorKworK3ZvaWQgU25k aW9BdWRpb0lucHV0U3RyZWFtOjpUaHJlYWRMb29wKHZvaWQpIHsKKysgIHNpemVfdCB0b2RvLCBu OworKyAgY2hhciAqZGF0YTsKKysgIHVuc2lnbmVkIGludCBuZnJhbWVzOworKyAgZG91YmxlIG5v cm1hbGl6ZWRfdm9sdW1lID0gMC4wOworKworKyAgbmZyYW1lcyA9IGF1ZGlvX2J1cy0+ZnJhbWVz KCk7CisrCisrICB3aGlsZSAoc3RhdGUgPT0ga1J1bm5pbmcgJiYgIXNpb19lb2YoaGRsKSkgewor KworKyAgICBHZXRBZ2NWb2x1bWUoJm5vcm1hbGl6ZWRfdm9sdW1lKTsKKysKKysgICAgLy8gcmVh ZCBvbmUgYmxvY2sKKysgICAgdG9kbyA9IG5mcmFtZXMgKiBwYXJhbXMuR2V0Qnl0ZXNQZXJGcmFt ZShrU2FtcGxlRm9ybWF0KTsKKysgICAgZGF0YSA9IGJ1ZmZlcjsKKysgICAgd2hpbGUgKHRvZG8g PiAwKSB7CisrICAgICAgbiA9IHNpb19yZWFkKGhkbCwgZGF0YSwgdG9kbyk7CisrICAgICAgaWYg KG4gPT0gMCkKKysgICAgICAgIHJldHVybjsJLy8gdW5yZWNvdmVyYWJsZSBJL08gZXJyb3IKKysg ICAgICB0b2RvIC09IG47CisrICAgICAgZGF0YSArPSBuOworKyAgICB9CisrICAgIGh3X2RlbGF5 IC09IG5mcmFtZXM7CisrCisrICAgIC8vIGNvbnZlcnQgZnJhbWVzIGNvdW50IHRvIFRpbWVEZWx0 YQorKyAgICBjb25zdCBiYXNlOjpUaW1lRGVsdGEgZGVsYXkgPSBBdWRpb1RpbWVzdGFtcEhlbHBl cjo6RnJhbWVzVG9UaW1lKGh3X2RlbGF5LAorKyAgICAgIHBhcmFtcy5zYW1wbGVfcmF0ZSgpKTsK KysKKysgICAgLy8gcHVzaCBpbnRvIGJ1cworKyAgICBhdWRpb19idXMtPkZyb21JbnRlcmxlYXZl ZDxTaWduZWRJbnQxNlNhbXBsZVR5cGVUcmFpdHM+KHJlaW50ZXJwcmV0X2Nhc3Q8aW50MTZfdCo+ KGJ1ZmZlciksIG5mcmFtZXMpOworKworKyAgICAvLyBpbnZva2UgY2FsbGJhY2sKKysgICAgY2Fs bGJhY2stPk9uRGF0YShhdWRpb19idXMuZ2V0KCksIGJhc2U6OlRpbWVUaWNrczo6Tm93KCkgLSBk ZWxheSwgMS4pOworKyAgfQorK30KKysKKyt9ICAvLyBuYW1lc3BhY2UgbWVkaWEKKy0tLSAvZGV2 L251bGwKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRp YS9hdWRpby9zbmRpby9zbmRpb19pbnB1dC5oCitAQCAtMCwwICsxLDkxIEBACisrLy8gQ29weXJp Z2h0IDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8g VXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5z ZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisrI2lmbmRl ZiBNRURJQV9BVURJT19TTkRJT19TTkRJT19JTlBVVF9IXworKyNkZWZpbmUgTUVESUFfQVVESU9f U05ESU9fU05ESU9fSU5QVVRfSF8KKysKKysjaW5jbHVkZSA8c3RkaW50Lmg+CisrI2luY2x1ZGUg PHN0cmluZz4KKysjaW5jbHVkZSA8c25kaW8uaD4KKysKKysjaW5jbHVkZSAiYmFzZS9jb21waWxl cl9zcGVjaWZpYy5oIgorKyNpbmNsdWRlICJiYXNlL21hY3Jvcy5oIgorKyNpbmNsdWRlICJiYXNl L21lbW9yeS93ZWFrX3B0ci5oIgorKyNpbmNsdWRlICJiYXNlL3RpbWUvdGltZS5oIgorKyNpbmNs dWRlICJtZWRpYS9hdWRpby9hZ2NfYXVkaW9fc3RyZWFtLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1 ZGlvL2F1ZGlvX2lvLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX2RldmljZV9kZXNj cmlwdGlvbi5oIgorKyNpbmNsdWRlICJtZWRpYS9iYXNlL2F1ZGlvX3BhcmFtZXRlcnMuaCIKKysK KytuYW1lc3BhY2UgbWVkaWEgeworKworK2NsYXNzIEF1ZGlvTWFuYWdlckJhc2U7CisrCisrLy8g SW1wbGVtZW50YXRpb24gb2YgQXVkaW9PdXRwdXRTdHJlYW0gdXNpbmcgc25kaW8oNykKKytjbGFz cyBTbmRpb0F1ZGlvSW5wdXRTdHJlYW0gOiBwdWJsaWMgQWdjQXVkaW9TdHJlYW08QXVkaW9JbnB1 dFN0cmVhbT4geworKyBwdWJsaWM6CisrICAvLyBQYXNzIHRoaXMgdG8gdGhlIGNvbnN0cnVjdG9y IGlmIHlvdSB3YW50IHRvIGF0dGVtcHQgYXV0by1zZWxlY3Rpb24KKysgIC8vIG9mIHRoZSBhdWRp byByZWNvcmRpbmcgZGV2aWNlLgorKyAgc3RhdGljIGNvbnN0IGNoYXIga0F1dG9TZWxlY3REZXZp Y2VbXTsKKysKKysgIC8vIENyZWF0ZSBhIFBDTSBPdXRwdXQgc3RyZWFtIGZvciB0aGUgU05ESU8g ZGV2aWNlIGlkZW50aWZpZWQgYnkKKysgIC8vIHxkZXZpY2VfbmFtZXwuIElmIHVuc3VyZSBvZiB3 aGF0IHRvIHVzZSBmb3IgfGRldmljZV9uYW1lfCwgdXNlCisrICAvLyB8a0F1dG9TZWxlY3REZXZp Y2V8LgorKyAgU25kaW9BdWRpb0lucHV0U3RyZWFtKEF1ZGlvTWFuYWdlckJhc2UqIGF1ZGlvX21h bmFnZXIsCisrICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9u YW1lLAorKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1z KTsKKysKKysgIH5TbmRpb0F1ZGlvSW5wdXRTdHJlYW0oKSBvdmVycmlkZTsKKysKKysgIC8vIElt cGxlbWVudGF0aW9uIG9mIEF1ZGlvSW5wdXRTdHJlYW0uCisrICBib29sIE9wZW4oKSBvdmVycmlk ZTsKKysgIHZvaWQgU3RhcnQoQXVkaW9JbnB1dENhbGxiYWNrKiBjYWxsYmFjaykgb3ZlcnJpZGU7 CisrICB2b2lkIFN0b3AoKSBvdmVycmlkZTsKKysgIHZvaWQgQ2xvc2UoKSBvdmVycmlkZTsKKysg IGRvdWJsZSBHZXRNYXhWb2x1bWUoKSBvdmVycmlkZTsKKysgIHZvaWQgU2V0Vm9sdW1lKGRvdWJs ZSB2b2x1bWUpIG92ZXJyaWRlOworKyAgZG91YmxlIEdldFZvbHVtZSgpIG92ZXJyaWRlOworKyAg Ym9vbCBJc011dGVkKCkgb3ZlcnJpZGU7CisrICB2b2lkIFNldE91dHB1dERldmljZUZvckFlYyhj b25zdCBzdGQ6OnN0cmluZyYgb3V0cHV0X2RldmljZV9pZCkgb3ZlcnJpZGU7CisrCisrIHByaXZh dGU6CisrCisrICBlbnVtIFN0cmVhbVN0YXRlIHsKKysgICAga0Nsb3NlZCwgICAgICAgICAgICAv LyBOb3Qgb3BlbmVkIHlldAorKyAgICBrU3RvcHBlZCwgICAgICAgICAgIC8vIERldmljZSBvcGVu ZWQsIGJ1dCBub3Qgc3RhcnRlZCB5ZXQKKysgICAga1J1bm5pbmcsICAgICAgICAgICAvLyBTdGFy dGVkLCBkZXZpY2UgcGxheWluZworKyAgICBrU3RvcFdhaXQgICAgICAgICAgIC8vIFN0b3BwaW5n LCB3YWl0aW5nIGZvciB0aGUgcmVhbC10aW1lIHRocmVhZCB0byBleGl0CisrICB9OworKworKyAg Ly8gQy1zdHlsZSBjYWxsLWJhY2tzCisrICBzdGF0aWMgdm9pZCBPbk1vdmVDYWxsYmFjayh2b2lk ICphcmcsIGludCBkZWx0YSk7CisrICBzdGF0aWMgdm9pZCogVGhyZWFkRW50cnkodm9pZCAqYXJn KTsKKysKKysgIC8vIENvbnRpbnVvdXNseSBtb3ZlcyBkYXRhIGZyb20gdGhlIGRldmljZSB0byB0 aGUgY29uc3VtZXIKKysgIHZvaWQgVGhyZWFkTG9vcCgpOworKyAgLy8gT3VyIGNyZWF0b3IsIHRo ZSBhdWRpbyBtYW5hZ2VyIG5lZWRzIHRvIGJlIG5vdGlmaWVkIHdoZW4gd2UgY2xvc2UuCisrICBB dWRpb01hbmFnZXJCYXNlKiBtYW5hZ2VyOworKyAgLy8gUGFyYW1ldGVycyBvZiB0aGUgc291cmNl CisrICBBdWRpb1BhcmFtZXRlcnMgcGFyYW1zOworKyAgLy8gV2Ugc3RvcmUgZGF0YSBoZXJlIGZv ciBjb25zdW1lcgorKyAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvQnVzPiBhdWRpb19idXM7CisrICAv LyBDYWxsLWJhY2sgdGhhdCBjb25zdW1lcyByZWNvcmRlZCBkYXRhCisrICBBdWRpb0lucHV0Q2Fs bGJhY2sqIGNhbGxiYWNrOyAgLy8gVmFsaWQgZHVyaW5nIGEgcmVjb3JkaW5nIHNlc3Npb24uCisr ICAvLyBIYW5kbGUgb2YgdGhlIGF1ZGlvIGRldmljZQorKyAgc3RydWN0IHNpb19oZGwqIGhkbDsK KysgIC8vIEN1cnJlbnQgc3RhdGUgb2YgdGhlIHN0cmVhbQorKyAgZW51bSBTdHJlYW1TdGF0ZSBz dGF0ZTsKKysgIC8vIEhpZ2ggcHJpb3JpdHkgdGhyZWFkIHJ1bm5pbmcgVGhyZWFkTG9vcCgpCisr ICBwdGhyZWFkX3QgdGhyZWFkOworKyAgLy8gTnVtYmVyIG9mIGZyYW1lcyBidWZmZXJlZCBpbiB0 aGUgaGFyZHdhcmUKKysgIGludCBod19kZWxheTsKKysgIC8vIFRlbXBvcmFyeSBidWZmZXIgd2hl cmUgZGF0YSBpcyBzdG9yZWQgc25kaW8tY29tcGF0aWJsZSBmb3JtYXQKKysgIGNoYXIqIGJ1ZmZl cjsKKysKKysgIERJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihTbmRpb0F1ZGlvSW5wdXRTdHJlYW0p OworK307CisrCisrfSAgLy8gbmFtZXNwYWNlIG1lZGlhCisrCisrI2VuZGlmICAvLyBNRURJQV9B VURJT19TTkRJT19TTkRJT19JTlBVVF9IXworLS0tIC9kZXYvbnVsbAorKysrIHF0Ni13ZWJlbmdp bmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX291 dHB1dC5jYworQEAgLTAsMCArMSwxODMgQEAKKysvLyBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENo cm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291 cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQor Ky8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisrI2luY2x1ZGUgImJhc2UvbG9nZ2lu Zy5oIgorKyNpbmNsdWRlICJiYXNlL3RpbWUvdGltZS5oIgorKyNpbmNsdWRlICJiYXNlL3RpbWUv ZGVmYXVsdF90aWNrX2Nsb2NrLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX21hbmFn ZXJfYmFzZS5oIgorKyNpbmNsdWRlICJtZWRpYS9iYXNlL2F1ZGlvX3RpbWVzdGFtcF9oZWxwZXIu aCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vc25kaW8vc25kaW9fb3V0cHV0LmgiCisrCisrbmFt ZXNwYWNlIG1lZGlhIHsKKysKKytzdGF0aWMgY29uc3QgU2FtcGxlRm9ybWF0IGtTYW1wbGVGb3Jt YXQgPSBrU2FtcGxlRm9ybWF0UzE2OworKworK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6 T25Nb3ZlQ2FsbGJhY2sodm9pZCAqYXJnLCBpbnQgZGVsdGEpIHsKKysgIFNuZGlvQXVkaW9PdXRw dXRTdHJlYW0qIHNlbGYgPSBzdGF0aWNfY2FzdDxTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKj4oYXJn KTsKKysKKysgIHNlbGYtPmh3X2RlbGF5IC09IGRlbHRhOworK30KKysKKyt2b2lkIFNuZGlvQXVk aW9PdXRwdXRTdHJlYW06Ok9uVm9sQ2FsbGJhY2sodm9pZCAqYXJnLCB1bnNpZ25lZCBpbnQgdm9s KSB7CisrICBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKiBzZWxmID0gc3RhdGljX2Nhc3Q8U25kaW9B dWRpb091dHB1dFN0cmVhbSo+KGFyZyk7CisrCisrICBzZWxmLT52b2wgPSB2b2w7CisrfQorKwor K3ZvaWQgKlNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OlRocmVhZEVudHJ5KHZvaWQgKmFyZykgewor KyAgU25kaW9BdWRpb091dHB1dFN0cmVhbSogc2VsZiA9IHN0YXRpY19jYXN0PFNuZGlvQXVkaW9P dXRwdXRTdHJlYW0qPihhcmcpOworKworKyAgc2VsZi0+VGhyZWFkTG9vcCgpOworKyAgcmV0dXJu IE5VTEw7CisrfQorKworK1NuZGlvQXVkaW9PdXRwdXRTdHJlYW06OlNuZGlvQXVkaW9PdXRwdXRT dHJlYW0oY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdWRpb01hbmFnZXJCYXNlKiBtYW5hZ2VyKQor KyAgICA6IG1hbmFnZXIobWFuYWdlciksCisrICAgICAgcGFyYW1zKHBhcmFtcyksCisrICAgICAg YXVkaW9fYnVzKEF1ZGlvQnVzOjpDcmVhdGUocGFyYW1zKSksCisrICAgICAgc3RhdGUoa0Nsb3Nl ZCksCisrICAgICAgbXV0ZXgoUFRIUkVBRF9NVVRFWF9JTklUSUFMSVpFUikgeworK30KKysKKytT bmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjp+U25kaW9BdWRpb091dHB1dFN0cmVhbSgpIHsKKysgIGlm IChzdGF0ZSAhPSBrQ2xvc2VkKQorKyAgICBDbG9zZSgpOworK30KKysKKytib29sIFNuZGlvQXVk aW9PdXRwdXRTdHJlYW06Ok9wZW4oKSB7CisrICBzdHJ1Y3Qgc2lvX3BhciBwYXI7CisrICBpbnQg c2lnOworKworKyAgaWYgKHBhcmFtcy5mb3JtYXQoKSAhPSBBdWRpb1BhcmFtZXRlcnM6OkFVRElP X1BDTV9MSU5FQVIgJiYKKysgICAgICBwYXJhbXMuZm9ybWF0KCkgIT0gQXVkaW9QYXJhbWV0ZXJz OjpBVURJT19QQ01fTE9XX0xBVEVOQ1kpIHsKKysgICAgTE9HKFdBUk5JTkcpIDw8ICJVbnN1cHBv cnRlZCBhdWRpbyBmb3JtYXQuIjsKKysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKyAgc2lvX2lu aXRwYXIoJnBhcik7CisrICBwYXIucmF0ZSA9IHBhcmFtcy5zYW1wbGVfcmF0ZSgpOworKyAgcGFy LnBjaGFuID0gcGFyYW1zLmNoYW5uZWxzKCk7CisrICBwYXIuYml0cyA9IFNhbXBsZUZvcm1hdFRv Qml0c1BlckNoYW5uZWwoa1NhbXBsZUZvcm1hdCk7CisrICBwYXIuYnBzID0gcGFyLmJpdHMgLyA4 OworKyAgcGFyLnNpZyA9IHNpZyA9IHBhci5iaXRzICE9IDggPyAxIDogMDsKKysgIHBhci5sZSA9 IFNJT19MRV9OQVRJVkU7CisrICBwYXIuYXBwYnVmc3ogPSBwYXJhbXMuZnJhbWVzX3Blcl9idWZm ZXIoKTsKKysKKysgIGhkbCA9IHNpb19vcGVuKFNJT19ERVZBTlksIFNJT19QTEFZLCAwKTsKKysg IGlmIChoZGwgPT0gTlVMTCkgeworKyAgICBMT0coRVJST1IpIDw8ICJDb3VsZG4ndCBvcGVuIGF1 ZGlvIGRldmljZS4iOworKyAgICByZXR1cm4gZmFsc2U7CisrICB9CisrICBpZiAoIXNpb19zZXRw YXIoaGRsLCAmcGFyKSB8fCAhc2lvX2dldHBhcihoZGwsICZwYXIpKSB7CisrICAgIExPRyhFUlJP UikgPDwgIkNvdWxkbid0IHNldCBhdWRpbyBwYXJhbWV0ZXJzLiI7CisrICAgIGdvdG8gYmFkX2Ns b3NlOworKyAgfQorKyAgaWYgKHBhci5yYXRlICAhPSAodW5zaWduZWQgaW50KXBhcmFtcy5zYW1w bGVfcmF0ZSgpIHx8CisrICAgICAgcGFyLnBjaGFuICE9ICh1bnNpZ25lZCBpbnQpcGFyYW1zLmNo YW5uZWxzKCkgfHwKKysgICAgICBwYXIuYml0cyAgIT0gKHVuc2lnbmVkIGludClTYW1wbGVGb3Jt YXRUb0JpdHNQZXJDaGFubmVsKGtTYW1wbGVGb3JtYXQpIHx8CisrICAgICAgcGFyLnNpZyAgICE9 ICh1bnNpZ25lZCBpbnQpc2lnIHx8CisrICAgICAgKHBhci5icHMgPiAxICYmIHBhci5sZSAhPSBT SU9fTEVfTkFUSVZFKSB8fAorKyAgICAgIChwYXIuYml0cyAhPSBwYXIuYnBzICogOCkpIHsKKysg ICAgTE9HKEVSUk9SKSA8PCAiVW5zdXBwb3J0ZWQgYXVkaW8gcGFyYW1ldGVycy4iOworKyAgICBn b3RvIGJhZF9jbG9zZTsKKysgIH0KKysgIHN0YXRlID0ga1N0b3BwZWQ7CisrICB2b2xwZW5kaW5n ID0gMDsKKysgIHZvbCA9IDA7CisrICBidWZmZXIgPSBuZXcgY2hhclthdWRpb19idXMtPmZyYW1l cygpICogcGFyYW1zLkdldEJ5dGVzUGVyRnJhbWUoa1NhbXBsZUZvcm1hdCldOworKyAgc2lvX29u bW92ZShoZGwsICZPbk1vdmVDYWxsYmFjaywgdGhpcyk7CisrICBzaW9fb252b2woaGRsLCAmT25W b2xDYWxsYmFjaywgdGhpcyk7CisrICByZXR1cm4gdHJ1ZTsKKysgYmFkX2Nsb3NlOgorKyAgc2lv X2Nsb3NlKGhkbCk7CisrICByZXR1cm4gZmFsc2U7CisrfQorKworK3ZvaWQgU25kaW9BdWRpb091 dHB1dFN0cmVhbTo6Q2xvc2UoKSB7CisrICBpZiAoc3RhdGUgPT0ga0Nsb3NlZCkKKysgICAgcmV0 dXJuOworKyAgaWYgKHN0YXRlID09IGtSdW5uaW5nKQorKyAgICBTdG9wKCk7CisrICBzdGF0ZSA9 IGtDbG9zZWQ7CisrICBkZWxldGUgW10gYnVmZmVyOworKyAgc2lvX2Nsb3NlKGhkbCk7CisrICBt YW5hZ2VyLT5SZWxlYXNlT3V0cHV0U3RyZWFtKHRoaXMpOyAgLy8gQ2FsbHMgdGhlIGRlc3RydWN0 b3IKKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpTdGFydChBdWRpb1NvdXJj ZUNhbGxiYWNrKiBjYWxsYmFjaykgeworKyAgc3RhdGUgPSBrUnVubmluZzsKKysgIGh3X2RlbGF5 ID0gMDsKKysgIHNvdXJjZSA9IGNhbGxiYWNrOworKyAgc2lvX3N0YXJ0KGhkbCk7CisrICBpZiAo cHRocmVhZF9jcmVhdGUoJnRocmVhZCwgTlVMTCwgJlRocmVhZEVudHJ5LCB0aGlzKSAhPSAwKSB7 CisrICAgIExPRyhFUlJPUikgPDwgIkZhaWxlZCB0byBjcmVhdGUgcmVhbC10aW1lIHRocmVhZC4i OworKyAgICBzaW9fc3RvcChoZGwpOworKyAgICBzdGF0ZSA9IGtTdG9wcGVkOworKyAgfQorK30K KysKKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OlN0b3AoKSB7CisrICBpZiAoc3RhdGUg PT0ga1N0b3BwZWQpCisrICAgIHJldHVybjsKKysgIHN0YXRlID0ga1N0b3BXYWl0OworKyAgcHRo cmVhZF9qb2luKHRocmVhZCwgTlVMTCk7CisrICBzaW9fc3RvcChoZGwpOworKyAgc3RhdGUgPSBr U3RvcHBlZDsKKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpTZXRWb2x1bWUo ZG91YmxlIHYpIHsKKysgIHB0aHJlYWRfbXV0ZXhfbG9jaygmbXV0ZXgpOworKyAgdm9sID0gdiAq IFNJT19NQVhWT0w7CisrICB2b2xwZW5kaW5nID0gMTsKKysgIHB0aHJlYWRfbXV0ZXhfdW5sb2Nr KCZtdXRleCk7CisrfQorKworK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6R2V0Vm9sdW1l KGRvdWJsZSogdikgeworKyAgcHRocmVhZF9tdXRleF9sb2NrKCZtdXRleCk7CisrICAqdiA9IHZv bCAqICgxLiAvIFNJT19NQVhWT0wpOworKyAgcHRocmVhZF9tdXRleF91bmxvY2soJm11dGV4KTsK Kyt9CisrCisrLy8gVGhpcyBzdHJlYW0gaXMgYWx3YXlzIHVzZWQgd2l0aCBzdWIgc2Vjb25kIGJ1 ZmZlciBzaXplcywgd2hlcmUgaXQncworKy8vIHN1ZmZpY2llbnQgdG8gc2ltcGx5IGFsd2F5cyBm bHVzaCB1cG9uIFN0YXJ0KCkuCisrdm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpGbHVzaCgp IHt9CisrCisrdm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpUaHJlYWRMb29wKHZvaWQpIHsK KysgIGludCBhdmFpbCwgY291bnQsIHJlc3VsdDsKKysKKysgIHdoaWxlIChzdGF0ZSA9PSBrUnVu bmluZykgeworKyAgICAvLyBVcGRhdGUgdm9sdW1lIGlmIG5lZWRlZAorKyAgICBwdGhyZWFkX211 dGV4X2xvY2soJm11dGV4KTsKKysgICAgaWYgKHZvbHBlbmRpbmcpIHsKKysgICAgICB2b2xwZW5k aW5nID0gMDsKKysgICAgICBzaW9fc2V0dm9sKGhkbCwgdm9sKTsKKysgICAgfQorKyAgICBwdGhy ZWFkX211dGV4X3VubG9jaygmbXV0ZXgpOworKworKyAgICAvLyBHZXQgZGF0YSB0byBwbGF5Cisr ICAgIGNvbnN0IGJhc2U6OlRpbWVEZWx0YSBkZWxheSA9IEF1ZGlvVGltZXN0YW1wSGVscGVyOjpG cmFtZXNUb1RpbWUoaHdfZGVsYXksCisrCXBhcmFtcy5zYW1wbGVfcmF0ZSgpKTsKKysgICAgY291 bnQgPSBzb3VyY2UtPk9uTW9yZURhdGEoZGVsYXksIGJhc2U6OlRpbWVUaWNrczo6Tm93KCksIDAs IGF1ZGlvX2J1cy5nZXQoKSk7CisrICAgIGF1ZGlvX2J1cy0+VG9JbnRlcmxlYXZlZDxTaWduZWRJ bnQxNlNhbXBsZVR5cGVUcmFpdHM+KGNvdW50LCByZWludGVycHJldF9jYXN0PGludDE2X3QqPihi dWZmZXIpKTsKKysgICAgaWYgKGNvdW50ID09IDApIHsKKysgICAgICAvLyBXZSBoYXZlIHRvIHN1 Ym1pdCBzb21ldGhpbmcgdG8gdGhlIGRldmljZQorKyAgICAgIGNvdW50ID0gYXVkaW9fYnVzLT5m cmFtZXMoKTsKKysgICAgICBtZW1zZXQoYnVmZmVyLCAwLCBjb3VudCAqIHBhcmFtcy5HZXRCeXRl c1BlckZyYW1lKGtTYW1wbGVGb3JtYXQpKTsKKysgICAgICBMT0coV0FSTklORykgPDwgIk5vIGRh dGEgdG8gcGxheSwgcnVubmluZyBlbXB0eSBjeWNsZS4iOworKyAgICB9CisrCisrICAgIC8vIFN1 Ym1pdCBkYXRhIHRvIHRoZSBkZXZpY2UKKysgICAgYXZhaWwgPSBjb3VudCAqIHBhcmFtcy5HZXRC eXRlc1BlckZyYW1lKGtTYW1wbGVGb3JtYXQpOworKyAgICByZXN1bHQgPSBzaW9fd3JpdGUoaGRs LCBidWZmZXIsIGF2YWlsKTsKKysgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisrICAgICAgTE9HKFdB Uk5JTkcpIDw8ICJBdWRpbyBkZXZpY2UgZGlzY29ubmVjdGVkLiI7CisrICAgICAgYnJlYWs7Cisr ICAgIH0KKysKKysgICAgLy8gVXBkYXRlIGhhcmR3YXJlIHBvaW50ZXIKKysgICAgaHdfZGVsYXkg Kz0gY291bnQ7CisrICB9CisrfQorKworK30gIC8vIG5hbWVzcGFjZSBtZWRpYQorLS0tIC9kZXYv bnVsbAorKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlh L2F1ZGlvL3NuZGlvL3NuZGlvX291dHB1dC5oCitAQCAtMCwwICsxLDg2IEBACisrLy8gQ29weXJp Z2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor Ky8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxp Y2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKworKyNp Zm5kZWYgTUVESUFfQVVESU9fU05ESU9fU05ESU9fT1VUUFVUX0hfCisrI2RlZmluZSBNRURJQV9B VURJT19TTkRJT19TTkRJT19PVVRQVVRfSF8KKysKKysjaW5jbHVkZSA8cHRocmVhZC5oPgorKyNp bmNsdWRlIDxzbmRpby5oPgorKworKyNpbmNsdWRlICJiYXNlL3RpbWUvdGlja19jbG9jay5oIgor KyNpbmNsdWRlICJiYXNlL3RpbWUvdGltZS5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRp b19pby5oIgorKworK25hbWVzcGFjZSBtZWRpYSB7CisrCisrY2xhc3MgQXVkaW9NYW5hZ2VyQmFz ZTsKKysKKysvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRpb091dHB1dFN0cmVhbSB1c2luZyBzbmRp byg3KQorK2NsYXNzIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0gOiBwdWJsaWMgQXVkaW9PdXRwdXRT dHJlYW0geworKyBwdWJsaWM6CisrICAvLyBUaGUgbWFuYWdlciBpcyBjcmVhdGluZyB0aGlzIG9i amVjdAorKyAgU25kaW9BdWRpb091dHB1dFN0cmVhbShjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBh cmFtcywKKysgICAgICAgICAgICAgICAgICAgICAgICAgQXVkaW9NYW5hZ2VyQmFzZSogbWFuYWdl cik7CisrICB2aXJ0dWFsIH5TbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKCk7CisrCisrICAvLyBJbXBs ZW1lbnRhdGlvbiBvZiBBdWRpb091dHB1dFN0cmVhbS4KKysgIGJvb2wgT3BlbigpIG92ZXJyaWRl OworKyAgdm9pZCBDbG9zZSgpIG92ZXJyaWRlOworKyAgdm9pZCBTdGFydChBdWRpb1NvdXJjZUNh bGxiYWNrKiBjYWxsYmFjaykgb3ZlcnJpZGU7CisrICB2b2lkIFN0b3AoKSBvdmVycmlkZTsKKysg IHZvaWQgU2V0Vm9sdW1lKGRvdWJsZSB2b2x1bWUpIG92ZXJyaWRlOworKyAgdm9pZCBHZXRWb2x1 bWUoZG91YmxlKiB2b2x1bWUpIG92ZXJyaWRlOworKyAgdm9pZCBGbHVzaCgpIG92ZXJyaWRlOwor KworKyAgZnJpZW5kIHZvaWQgc25kaW9fb25tb3ZlKHZvaWQgKmFyZywgaW50IGRlbHRhKTsKKysg IGZyaWVuZCB2b2lkIHNuZGlvX29udm9sKHZvaWQgKmFyZywgdW5zaWduZWQgaW50IHZvbCk7Cisr ICBmcmllbmQgdm9pZCAqc25kaW9fdGhyZWFkc3RhcnQodm9pZCAqYXJnKTsKKysKKysgcHJpdmF0 ZToKKysgIGVudW0gU3RyZWFtU3RhdGUgeworKyAgICBrQ2xvc2VkLCAgICAgICAgICAgIC8vIE5v dCBvcGVuZWQgeWV0CisrICAgIGtTdG9wcGVkLCAgICAgICAgICAgLy8gRGV2aWNlIG9wZW5lZCwg YnV0IG5vdCBzdGFydGVkIHlldAorKyAgICBrUnVubmluZywgICAgICAgICAgIC8vIFN0YXJ0ZWQs IGRldmljZSBwbGF5aW5nCisrICAgIGtTdG9wV2FpdCAgICAgICAgICAgLy8gU3RvcHBpbmcsIHdh aXRpbmcgZm9yIHRoZSByZWFsLXRpbWUgdGhyZWFkIHRvIGV4aXQKKysgIH07CisrCisrICAvLyBD LXN0eWxlIGNhbGwtYmFja3MKKysgIHN0YXRpYyB2b2lkIE9uTW92ZUNhbGxiYWNrKHZvaWQgKmFy ZywgaW50IGRlbHRhKTsKKysgIHN0YXRpYyB2b2lkIE9uVm9sQ2FsbGJhY2sodm9pZCAqYXJnLCB1 bnNpZ25lZCBpbnQgdm9sKTsKKysgIHN0YXRpYyB2b2lkKiBUaHJlYWRFbnRyeSh2b2lkICphcmcp OworKworKyAgLy8gQ29udGludW91c2x5IG1vdmVzIGRhdGEgZnJvbSB0aGUgcHJvZHVjZXIgdG8g dGhlIGRldmljZQorKyAgdm9pZCBUaHJlYWRMb29wKHZvaWQpOworKworKyAgLy8gT3VyIGNyZWF0 b3IsIHRoZSBhdWRpbyBtYW5hZ2VyIG5lZWRzIHRvIGJlIG5vdGlmaWVkIHdoZW4gd2UgY2xvc2Uu CisrICBBdWRpb01hbmFnZXJCYXNlKiBtYW5hZ2VyOworKyAgLy8gUGFyYW1ldGVycyBvZiB0aGUg c291cmNlCisrICBBdWRpb1BhcmFtZXRlcnMgcGFyYW1zOworKyAgLy8gU291cmNlIHN0b3JlcyBk YXRhIGhlcmUKKysgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0J1cz4gYXVkaW9fYnVzOworKyAgLy8g Q2FsbC1iYWNrIHRoYXQgcHJvZHVjZXMgZGF0YSB0byBwbGF5CisrICBBdWRpb1NvdXJjZUNhbGxi YWNrKiBzb3VyY2U7CisrICAvLyBIYW5kbGUgb2YgdGhlIGF1ZGlvIGRldmljZQorKyAgc3RydWN0 IHNpb19oZGwqIGhkbDsKKysgIC8vIEN1cnJlbnQgc3RhdGUgb2YgdGhlIHN0cmVhbQorKyAgZW51 bSBTdHJlYW1TdGF0ZSBzdGF0ZTsKKysgIC8vIEhpZ2ggcHJpb3JpdHkgdGhyZWFkIHJ1bm5pbmcg VGhyZWFkTG9vcCgpCisrICBwdGhyZWFkX3QgdGhyZWFkOworKyAgLy8gUHJvdGVjdHMgdm9sLCB2 b2xwZW5kaW5nIGFuZCBod19kZWxheQorKyAgcHRocmVhZF9tdXRleF90IG11dGV4OworKyAgLy8g Q3VycmVudCB2b2x1bWUgaW4gdGhlIDAuLlNJT19NQVhWT0wgcmFuZ2UKKysgIGludCB2b2w7Cisr ICAvLyBTZXQgdG8gMSBpZiB2b2x1bWVzIG11c3QgYmUgcmVmcmVzaGVkIGluIHRoZSByZWFsdGlt ZSB0aHJlYWQKKysgIGludCB2b2xwZW5kaW5nOworKyAgLy8gTnVtYmVyIG9mIGZyYW1lcyBidWZm ZXJlZCBpbiB0aGUgaGFyZHdhcmUKKysgIGludCBod19kZWxheTsKKysgIC8vIFRlbXBvcmFyeSBi dWZmZXIgd2hlcmUgZGF0YSBpcyBzdG9yZWQgc25kaW8tY29tcGF0aWJsZSBmb3JtYXQKKysgIGNo YXIqIGJ1ZmZlcjsKKysKKysgIERJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihTbmRpb0F1ZGlvT3V0 cHV0U3RyZWFtKTsKKyt9OworKworK30gIC8vIG5hbWVzcGFjZSBtZWRpYQorKworKyNlbmRpZiAg Ly8gTUVESUFfQVVESU9fU05ESU9fU05ESU9fT1VUUFVUX0hfCistLS0gcXQ2LXdlYmVuZ2luZS02 LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9tZWRpYV9vcHRpb25zLmduaQor KysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL21lZGlh X29wdGlvbnMuZ25pCitAQCAtMTMzLDYgKzEzMyw5IEBAIGRlY2xhcmVfYXJncygpIHsKKyAgICMg RW5hYmxlcyBydW50aW1lIHNlbGVjdGlvbiBvZiBBTFNBIGxpYnJhcnkgZm9yIGF1ZGlvLgorICAg dXNlX2Fsc2EgPSBmYWxzZQorIAorKyAgIyBFbmFibGUgcnVudGltZSBzZWxlY3Rpb24gb2Ygc25k aW8oNykKKysgIHVzZV9zbmRpbyA9IGZhbHNlCisrCisgICAjIEFsc2Egc2hvdWxkIGJlIHVzZWQg b24gbm9uLUFuZHJvaWQsIG5vbi1NYWMgUE9TSVggc3lzdGVtcy4KKyAgICMgQWxzYSBzaG91bGQg YmUgdXNlZCBvbiBkZXNrdG9wIENocm9tZWNhc3QgYW5kIGF1ZGlvLW9ubHkgQ2hyb21lY2FzdCBi dWlsZHMuCisgICBpZiAoaXNfcG9zaXggJiYgIWlzX2FuZHJvaWQgJiYgIWlzX21hYyAmJgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDMwMC1jaHJvbWl1bS1tdXNs LWhhY2tzLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDMwMC1jaHJvbWl1 bS1tdXNsLWhhY2tzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uNTI1YWViOGE2M2QyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDMwMC1jaHJvbWl1bS1tdXNsLWhhY2tzLnBhdGNoCkBAIC0wLDAgKzEsNTIgQEAK Ky0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2Uv ZGVidWcvc3RhY2tfdHJhY2UuY2MKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9iYXNlL2RlYnVnL3N0YWNrX3RyYWNlLmNjCitAQCAtMjM0LDcgKzIzNCw3IEBA IGJvb2wgU3RhY2tUcmFjZTo6V2lsbFN5bWJvbGl6ZVRvU3RyZWFtRm8KKyAgIC8vIFN5bWJvbHMg YXJlIG5vdCBleHBlY3RlZCB0byBiZSByZWxpYWJsZSB3aGVuIGduIGFyZ3Mgc3BlY2lmaWVzCisg ICAvLyBzeW1ib2xfbGV2ZWw9MC4KKyAgIHJldHVybiBmYWxzZTsKKy0jZWxpZiBkZWZpbmVkKF9f VUNMSUJDX18pIHx8IGRlZmluZWQoX0FJWCkKKysjZWxpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwg ZGVmaW5lZChfQUlYKQorICAgLy8gU3RhY2tUcmFjZTo6T3V0cHV0VG9TdHJlYW0oKSBpcyBub3Qg aW1wbGVtZW50ZWQgdW5kZXIgdWNsaWJjLCBub3IgQUlYLgorICAgLy8gU2VlIGh0dHBzOi8vY3Ji dWcuY29tLzcwNjcyOAorICAgcmV0dXJuIGZhbHNlOworQEAgLTI3Myw3ICsyNzMsOSBAQCB2b2lk IFN0YWNrVHJhY2U6OlByaW50KCkgY29uc3QgeworIH0KKyAKKyB2b2lkIFN0YWNrVHJhY2U6Ok91 dHB1dFRvU3RyZWFtKHN0ZDo6b3N0cmVhbSogb3MpIGNvbnN0IHsKKysjaWYgZGVmaW5lZChfX0dM SUJDX18pCisgICBPdXRwdXRUb1N0cmVhbVdpdGhQcmVmaXgob3MsIG51bGxwdHIpOworKyNlbmRp ZgorIH0KKyAKKyBzdGQ6OnN0cmluZyBTdGFja1RyYWNlOjpUb1N0cmluZygpIGNvbnN0IHsKK0BA IC0yODEsMTQgKzI4MywxNCBAQCBzdGQ6OnN0cmluZyBTdGFja1RyYWNlOjpUb1N0cmluZygpIGNv bnN0CisgfQorIHN0ZDo6c3RyaW5nIFN0YWNrVHJhY2U6OlRvU3RyaW5nV2l0aFByZWZpeChjb25z dCBjaGFyKiBwcmVmaXhfc3RyaW5nKSBjb25zdCB7CisgICBzdGQ6OnN0cmluZ3N0cmVhbSBzdHJl YW07CistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2lmIGRl ZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorICAgT3V0cHV0VG9TdHJlYW1XaXRo UHJlZml4KCZzdHJlYW0sIHByZWZpeF9zdHJpbmcpOworICNlbmRpZgorICAgcmV0dXJuIHN0cmVh bS5zdHIoKTsKKyB9CisgCisgc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYg b3MsIGNvbnN0IFN0YWNrVHJhY2UmIHMpIHsKKy0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYg IWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9BSVgp CisgICBzLk91dHB1dFRvU3RyZWFtKCZvcyk7CisgI2Vsc2UKKyAgIG9zIDw8ICJTdGFja1RyYWNl OjpPdXRwdXRUb1N0cmVhbSBub3QgaW1wbGVtZW50ZWQuIjsKKy0tLSBxdDYtd2ViZW5naW5lLTYu NC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9zb2NrZXQvdWRwX3NvY2tldF9wb3Np eC5jYworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9z b2NrZXQvdWRwX3NvY2tldF9wb3NpeC5jYworQEAgLTExNTcsNyArMTE1NywxMSBAQCBTZW5kUmVz dWx0IFVEUFNvY2tldFBvc2l4U2VuZGVyOjpJbnRlcm5hCisgICAgIG1zZ19pb3YtPnB1c2hfYmFj ayh7Y29uc3RfY2FzdDxjaGFyKj4oYnVmZmVyLT5kYXRhKCkpLCBidWZmZXItPmxlbmd0aCgpfSk7 CisgICBtc2d2ZWMtPnJlc2VydmUoYnVmZmVycy5zaXplKCkpOworICAgZm9yIChzaXplX3QgaiA9 IDA7IGogPCBidWZmZXJzLnNpemUoKTsgaisrKQorKyNpZmRlZiBfX0dMSUJDX18KKyAgICAgbXNn dmVjLT5wdXNoX2JhY2soe3tudWxscHRyLCAwLCAmbXNnX2lvdltqXSwgMSwgbnVsbHB0ciwgMCwg MH0sIDB9KTsKKysjZWxzZQorKyAgICBtc2d2ZWMtPnB1c2hfYmFjayh7e251bGxwdHIsIDAsICZt c2dfaW92W2pdLCAxLCAwLCAwLCAwfSwgMH0pOworKyNlbmRpZgorICAgaW50IHJlc3VsdCA9IEhB TkRMRV9FSU5UUihTZW5kbW1zZyhmZCwgJm1zZ3ZlY1swXSwgYnVmZmVycy5zaXplKCksIDApKTsK KyAgIFNlbmRSZXN1bHQgc2VuZF9yZXN1bHQoMCwgMCwgc3RkOjptb3ZlKGJ1ZmZlcnMpKTsKKyAg IGlmIChyZXN1bHQgPCAwKSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMzAxLWNocm9taXVtLW11c2wtc2FuZGJveC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVu Z2luZS9wYXRjaGVzLzAzMDEtY2hyb21pdW0tbXVzbC1zYW5kYm94LnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNGFmYmVjNWI5OGVmCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDMwMS1jaHJvbWl1bS1tdXNsLXNh bmRib3gucGF0Y2gKQEAgLTAsMCArMSw4NiBAQAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3Jp Zy9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJz L3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuY2MKKysrKyBxdDYtd2ViZW5naW5lLTYu NC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBl cnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5jYworQEAgLTEzNCw2ICsxMzQsNyBA QCBuYW1lc3BhY2Ugc2FuZGJveCB7CisgUmVzdWx0RXhwciBSZXN0cmljdENsb25lVG9UaHJlYWRz QW5kRVBFUk1Gb3JrKCkgeworICAgY29uc3QgQXJnPHVuc2lnbmVkIGxvbmc+IGZsYWdzKDApOwor IAorKyNpZmRlZiBfX0dMSUJDX18KKyAgIC8vIFRPRE8obWRlbXBza3kpOiBFeHRlbmQgRFNMIHRv IHN1cHBvcnQgKGZsYWdzICYgfm1hc2sxKSA9PSBtYXNrMi4KKyAgIGNvbnN0IHVpbnQ2NF90IGtB bmRyb2lkQ2xvbmVNYXNrID0gQ0xPTkVfVk0gfCBDTE9ORV9GUyB8IENMT05FX0ZJTEVTIHwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xPTkVfU0lHSEFORCB8IENMT05F X1RIUkVBRCB8CitAQCAtMTYwLDYgKzE2MSwxNiBAQCBSZXN1bHRFeHByIFJlc3RyaWN0Q2xvbmVU b1RocmVhZHNBbmRFUEVSCisgICByZXR1cm4gSWYoSXNBbmRyb2lkKCkgPyBhbmRyb2lkX3Rlc3Qg OiBnbGliY190ZXN0LCBBbGxvdygpKQorICAgICAgIC5FbHNlSWYoaXNfZm9ya19vcl9jbG9uZV92 Zm9yaywgRXJyb3IoRVBFUk0pKQorICAgICAgIC5FbHNlKENyYXNoU0lHU1lTQ2xvbmUoKSk7Cisr I2Vsc2UKKysgIGNvbnN0IGludCByZXF1aXJlZCA9IENMT05FX1ZNIHwgQ0xPTkVfRlMgfCBDTE9O RV9GSUxFUyB8IENMT05FX1NJR0hBTkQgfAorKyAgICAgICAgICAgICAgICAgICAgICAgQ0xPTkVf VEhSRUFEIHwgQ0xPTkVfU1lTVlNFTTsKKysgIGNvbnN0IGludCBzYWZlID0gQ0xPTkVfU0VUVExT IHwgQ0xPTkVfUEFSRU5UX1NFVFRJRCB8IENMT05FX0NISUxEX0NMRUFSVElEIHwKKysgICAgICAg ICAgICAgICAgICAgQ0xPTkVfREVUQUNIRUQ7CisrICBjb25zdCBCb29sRXhwciB0aHJlYWRfY2xv bmVfb2sgPSAoZmxhZ3MmfnNhZmUpPT1yZXF1aXJlZDsKKysgIHJldHVybiBJZih0aHJlYWRfY2xv bmVfb2ssIEFsbG93KCkpCisrICAgICAgLkVsc2VJZigoZmxhZ3MgJiAoQ0xPTkVfVk0gfCBDTE9O RV9USFJFQUQpKSA9PSAwLCBFcnJvcihFUEVSTSkpCisrICAgICAgLkVsc2UoQ3Jhc2hTSUdTWVND bG9uZSgpKTsKKysjZW5kaWYKKyB9CisgCisgI2lmbmRlZiBQUl9QQUNfUkVTRVRfS0VZUworLS0t IHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9s aW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYworKysrIHF0Ni13ZWJlbmdp bmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYt aGVscGVycy9zeXNjYWxsX3NldHMuY2MKK0BAIC00MjQsNiArNDI0LDkgQEAgYm9vbCBTeXNjYWxs U2V0czo6SXNBbGxvd2VkUHJvY2Vzc1N0YXJ0TworICNpZiBkZWZpbmVkKF9faTM4Nl9fKQorICAg ICBjYXNlIF9fTlJfd2FpdHBpZDoKKyAjZW5kaWYKKysjaWYgIWRlZmluZWQoX19HTElCQ19fKQor KyAgICBjYXNlIF9fTlJfc2V0X3RpZF9hZGRyZXNzOgorKyNlbmRpZgorICAgICAgIHJldHVybiB0 cnVlOworICAgICBjYXNlIF9fTlJfY2xvbmU6ICAvLyBTaG91bGQgYmUgcGFyYW1ldGVyLXJlc3Ry aWN0ZWQuCisgICAgIGNhc2UgX19OUl9zZXRuczogIC8vIFByaXZpbGVnZWQuCitAQCAtNDM2LDcg KzQzOSw5IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE8KKyAjaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlw c19fKQorICAgICBjYXNlIF9fTlJfc2V0X3RocmVhZF9hcmVhOgorICNlbmRpZgorKyNpZiBkZWZp bmVkKF9fR0xJQkNfXykKKyAgICAgY2FzZSBfX05SX3NldF90aWRfYWRkcmVzczoKKysjZW5kaWYK KyAgICAgY2FzZSBfX05SX3Vuc2hhcmU6CisgI2lmICFkZWZpbmVkKF9fbWlwc19fKSAmJiAhZGVm aW5lZChfX2FhcmNoNjRfXykKKyAgICAgY2FzZSBfX05SX3Zmb3JrOgorQEAgLTU1MCw2ICs1NTUs OSBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRBZGRyZXNzU3BhY2VBCisgICAgIGNhc2Ug X19OUl9tbG9jazoKKyAgICAgY2FzZSBfX05SX211bmxvY2s6CisgICAgIGNhc2UgX19OUl9tdW5t YXA6CisrI2lmbmRlZiBfX0dMSUJDX18KKysgICAgY2FzZSBfX05SX21yZW1hcDoKKysjZW5kaWYK KyAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgY2FzZSBfX05SX21hZHZpc2U6CisgICAgIGNhc2Ug X19OUl9taW5jb3JlOgorQEAgLTU2Nyw3ICs1NzUsOSBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0Fs bG93ZWRBZGRyZXNzU3BhY2VBCisgICAgIGNhc2UgX19OUl9tb2RpZnlfbGR0OgorICNlbmRpZgor ICAgICBjYXNlIF9fTlJfbXByb3RlY3Q6CisrI2lmZGVmIF9fR0xJQkNfXworICAgICBjYXNlIF9f TlJfbXJlbWFwOgorKyNlbmRpZgorICAgICBjYXNlIF9fTlJfbXN5bmM6CisgICAgIGNhc2UgX19O Ul9tdW5sb2NrYWxsOgorICAgICBjYXNlIF9fTlJfcmVhZGFoZWFkOgorLS0tIHF0Ni13ZWJlbmdp bmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9wb2xpY3kvbGludXgv YnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvcG9saWN5L2xpbnV4L2JwZl9yZW5kZXJlcl9wb2xp Y3lfbGludXguY2MKK0BAIC05OSw5ICs5OSwxNCBAQCBSZXN1bHRFeHByIFJlbmRlcmVyUHJvY2Vz c1BvbGljeTo6RXZhbHVhCisgICAgIGNhc2UgX19OUl91bmFtZToKKyAgICAgY2FzZSBfX05SX3Nj aGVkX2dldHBhcmFtOgorICAgICBjYXNlIF9fTlJfc2NoZWRfZ2V0c2NoZWR1bGVyOgorKyNpZm5k ZWYgX19HTElCQ19fCisrICAgIGNhc2UgX19OUl9zY2hlZF9zZXRzY2hlZHVsZXI6CisrI2VuZGlm CisgICAgICAgcmV0dXJuIEFsbG93KCk7CisgICAgIGNhc2UgX19OUl9zY2hlZF9nZXRhZmZpbml0 eToKKysjaWZkZWYgX19HTElCQ19fCisgICAgIGNhc2UgX19OUl9zY2hlZF9zZXRzY2hlZHVsZXI6 CisrI2VuZGlmCisgICAgICAgcmV0dXJuIFJlc3RyaWN0U2NoZWRUYXJnZXQoR2V0UG9saWN5UGlk KCksIHN5c25vKTsKKyAgICAgY2FzZSBfX05SX3BybGltaXQ2NDoKKyAgICAgICAvLyBTZWUgY3Ji dWcuY29tLzY2MjQ1MCBhbmQgc2V0cmxpbWl0IGNvbW1lbnQgYWJvdmUuCmRpZmYgLS1naXQgYS9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMzAyLWNocm9taXVtLW5vLW1hbGxpbmZvLnBh dGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDMwMi1jaHJvbWl1bS1uby1tYWxs aW5mby5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjUxOTkz MGU3YmVmMAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzAzMDItY2hyb21pdW0tbm8tbWFsbGluZm8ucGF0Y2gKQEAgLTAsMCArMSw2NyBAQAorLS0tIHF0 Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9wcm9jZXNz L3Byb2Nlc3NfbWV0cmljc19wb3NpeC5jYworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL2Jhc2UvcHJvY2Vzcy9wcm9jZXNzX21ldHJpY3NfcG9zaXguY2MKK0BA IC0xMDUsNyArMTA1LDggQEAgdm9pZCBJbmNyZWFzZUZkTGltaXRUbyh1bnNpZ25lZCBpbnQgbWF4 XworIAorICNlbmRpZiAgLy8gIUJVSUxERkxBRyhJU19GVUNIU0lBKQorIAorLSNpZiBCVUlMREZM QUcoSVNfTElOVVgpIHx8IEJVSUxERkxBRyhJU19DSFJPTUVPUykgfHwgQlVJTERGTEFHKElTX0FO RFJPSUQpCisrI2lmIChCVUlMREZMQUcoSVNfTElOVVgpICYmIGRlZmluZWQoX19HTElCQ19fKSkg fHwgXAorKwlCVUlMREZMQUcoSVNfQ0hST01FT1MpIHx8IEJVSUxERkxBRyhJU19BTkRST0lEKQor IG5hbWVzcGFjZSB7CisgCisgc2l6ZV90IEdldE1hbGxvY1VzYWdlTWFsbGluZm8oKSB7CitAQCAt MTIzLDE3ICsxMjQsMTggQEAgc2l6ZV90IEdldE1hbGxvY1VzYWdlTWFsbGluZm8oKSB7CisgfQor IAorIH0gIC8vIG5hbWVzcGFjZQorLSNlbmRpZiAgLy8gQlVJTERGTEFHKElTX0xJTlVYKSB8fCBC VUlMREZMQUcoSVNfQ0hST01FT1MpIHx8CistICAgICAgICAvLyBCVUlMREZMQUcoSVNfQU5EUk9J RCkKKysjZW5kaWYgIC8vIChCVUlMREZMQUcoSVNfTElOVVgpICYmIGRlZmluZWQoX19HTElCQ19f KSB8fAorKwkvLyBCVUlMREZMQUcoSVNfQ0hST01FT1MpIHx8IEJVSUxERkxBRyhJU19BTkRST0lE KQorIAorIHNpemVfdCBQcm9jZXNzTWV0cmljczo6R2V0TWFsbG9jVXNhZ2UoKSB7CisgI2lmIEJV SUxERkxBRyhJU19BUFBMRSkKKyAgIG1hbGxvY19zdGF0aXN0aWNzX3Qgc3RhdHMgPSB7MH07Cisg ICBtYWxsb2Nfem9uZV9zdGF0aXN0aWNzKG51bGxwdHIsICZzdGF0cyk7CisgICByZXR1cm4gc3Rh dHMuc2l6ZV9pbl91c2U7CistI2VsaWYgQlVJTERGTEFHKElTX0xJTlVYKSB8fCBCVUlMREZMQUco SVNfQ0hST01FT1MpIHx8IEJVSUxERkxBRyhJU19BTkRST0lEKQorKyNlbGlmIChCVUlMREZMQUco SVNfTElOVVgpICYmIGRlZmluZWQoX19HTElCQ19fKSkgfHwgXAorKwlCVUlMREZMQUcoSVNfQ0hS T01FT1MpIHx8IEJVSUxERkxBRyhJU19BTkRST0lEKQorICAgcmV0dXJuIEdldE1hbGxvY1VzYWdl TWFsbGluZm8oKTsKKy0jZWxpZiBCVUlMREZMQUcoSVNfRlVDSFNJQSkKKysjZWxpZiBCVUlMREZM QUcoSVNfRlVDSFNJQSkgfHwgKEJVSUxERkxBRyhJU19MSU5VWCkgJiYgIWRlZmluZWQoX19HTElC Q19fKSkKKyAgIC8vIFRPRE8oZnVjaHNpYSk6IE5vdCBjdXJyZW50bHkgZXhwb3NlZC4gaHR0cHM6 Ly9jcmJ1Zy5jb20vNzM1MDg3LgorICAgcmV0dXJuIDA7CisgI2VuZGlmCistLS0gcXQ2LXdlYmVu Z2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL3RyYWNlX2V2ZW50L21h bGxvY19kdW1wX3Byb3ZpZGVyLmNjCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vYmFzZS90cmFjZV9ldmVudC9tYWxsb2NfZHVtcF9wcm92aWRlci5jYworQEAg LTE3NCw3ICsxNzQsOCBAQCB2b2lkIFJlcG9ydEFwcGxlQWxsb2NTdGF0cyhzaXplX3QqIHRvdGFs CisgCisgI2lmIChCVUlMREZMQUcoVVNFX1BBUlRJVElPTl9BTExPQ19BU19NQUxMT0MpICYmIEJV SUxERkxBRyhJU19BTkRST0lEKSkgfHwgXAorICAgICAoIUJVSUxERkxBRyhVU0VfUEFSVElUSU9O X0FMTE9DX0FTX01BTExPQykgJiYgIUJVSUxERkxBRyhJU19XSU4pICYmICAgIFwKKy0gICAgICFC VUlMREZMQUcoSVNfQVBQTEUpICYmICFCVUlMREZMQUcoSVNfV0lOKSAmJiAhQlVJTERGTEFHKElT X0ZVQ0hTSUEpKQorKyAgICAgIUJVSUxERkxBRyhJU19BUFBMRSkgJiYgIUJVSUxERkxBRyhJU19X SU4pICYmICFCVUlMREZMQUcoSVNfRlVDSFNJQSkgJiYgXAorKyAgICAgIShCVUlMREZMQUcoSVNf TElOVVgpICYmICFkZWZpbmVkKF9fR0xJQkNfXykpKQorIHZvaWQgUmVwb3J0TWFsbGluZm9TdGF0 cyhQcm9jZXNzTWVtb3J5RHVtcCogcG1kLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl X3QqIHRvdGFsX3ZpcnR1YWxfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90 KiByZXNpZGVudF9zaXplLAorQEAgLTMzOSw3ICszNDAsNyBAQCBib29sIE1hbGxvY0R1bXBQcm92 aWRlcjo6T25NZW1vcnlEdW1wKGNvCisgICAgICAgICAgICAgICAgICAgICAgJmFsbG9jYXRlZF9v YmplY3RzX2NvdW50KTsKKyAjZWxpZiBCVUlMREZMQUcoSVNfRlVDSFNJQSkKKyAvLyBUT0RPKGZ1 Y2hzaWEpOiBQb3J0LCBzZWUgaHR0cHM6Ly9jcmJ1Zy5jb20vNzA2NTkyLgorLSNlbHNlCisrI2Vs aWYgZGVmaW5lZChfX0dMSUJDX18pCisgICBSZXBvcnRNYWxsaW5mb1N0YXRzKC8qcG1kPSovbnVs bHB0ciwgJnRvdGFsX3ZpcnR1YWxfc2l6ZSwgJnJlc2lkZW50X3NpemUsCisgICAgICAgICAgICAg ICAgICAgICAgICZhbGxvY2F0ZWRfb2JqZWN0c19zaXplLCAmYWxsb2NhdGVkX29iamVjdHNfY291 bnQpOworICNlbmRpZgorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvdGZsaXRlL3NyYy90ZW5zb3JmbG93L2xpdGUvcHJvZmlsaW5n L21lbW9yeV9pbmZvLmNjCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvdGZsaXRlL3NyYy90ZW5zb3JmbG93L2xpdGUvcHJvZmlsaW5nL21l bW9yeV9pbmZvLmNjCitAQCAtMzUsNyArMzUsNyBAQCBib29sIE1lbW9yeVVzYWdlOjpJc1N1cHBv cnRlZCgpIHsKKyAKKyBNZW1vcnlVc2FnZSBHZXRNZW1vcnlVc2FnZSgpIHsKKyAgIE1lbW9yeVVz YWdlIHJlc3VsdDsKKy0jaWZkZWYgX19saW51eF9fCisrI2lmIGRlZmluZWQoX19saW51eF9fKSAm JiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgIHJ1c2FnZSByZXM7CisgICBpZiAoZ2V0cnVzYWdlKFJV U0FHRV9TRUxGLCAmcmVzKSA9PSAwKSB7CisgICAgIHJlc3VsdC5tYXhfcnNzX2tiID0gcmVzLnJ1 X21heHJzczsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3MDAt YXJtdjdsLW5lb24ucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzAwLWFy bXY3bC1uZW9uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u NWNhMTk1M2QyY2IzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDcwMC1hcm12N2wtbmVvbi5wYXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gcXQ2LXdl YmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9za2lhL0JVSUxELmduCisr KysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2tpYS9CVUlMRC5n bgorQEAgLTc4Niw3ICs3ODYsNiBAQCBza2lhX3NvdXJjZV9zZXQoInNraWFfb3B0cyIpIHsKKyAg ICAgICAgICMgUm9vdCBidWlsZCBjb25maWcgc2V0cyAtbWZwdT0kYXJtX2ZwdSwgd2hpY2ggd2Ug ZXhwZWN0IHRvIGJlIG5lb24KKyAgICAgICAgICMgd2hlbiBydW5uaW5nIHRoaXMuCisgICAgICAg ICBpZiAoIWFybV91c2VfbmVvbikgeworLSAgICAgICAgICBjb25maWdzIC09IFsgIi8vYnVpbGQv Y29uZmlnL2NvbXBpbGVyOmNvbXBpbGVyX2FybV9mcHUiIF0KKyAgICAgICAgICAgY2ZsYWdzICs9 IFsgIi1tZnB1PW5lb24iIF0KKyAgICAgICAgIH0KKyAgICAgICB9CmRpZmYgLS1naXQgYS9zcmNw a2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzUwLWNocm9taXVtLW11c2wtY3Jvc3Mtbm8tYXNt X3B0cmFjZV9oLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDc1MC1jaHJv bWl1bS1tdXNsLWNyb3NzLW5vLWFzbV9wdHJhY2VfaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLmNhN2IwMTUwOTYyYwotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3NTAtY2hyb21pdW0tbXVzbC1jcm9zcy1uby1h c21fcHRyYWNlX2gucGF0Y2gKQEAgLTAsMCArMSwzMCBAQAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40 LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlci5j YworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xp bnV4X3B0cmFjZV9kdW1wZXIuY2MKK0BAIC0zOCw3ICszOCwxMiBAQAorIAorICNpbmNsdWRlICJj bGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXIuaCIKKyAKKysj aWYgZGVmaW5lZChfX0dMSUJDX18pCisgI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKysjZWxzZQor Ky8qIEZvciBhcm0qLW11c2wgdGhpcyBkZWZpbml0aW9uIGlzIG1pc3NpbmcgKi8KKysjZGVmaW5l IEFSTV9zcCB1cmVnc1sxM10KKysjZW5kaWYKKyAjaW5jbHVkZSA8YXNzZXJ0Lmg+CisgI2luY2x1 ZGUgPGVycm5vLmg+CisgI2luY2x1ZGUgPGZjbnRsLmg+CistLS0gcXQ2LXdlYmVuZ2luZS02LjQu Mi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9jb3JlX2R1bXBlci5jYwor KysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4 X2NvcmVfZHVtcGVyLmNjCitAQCAtMzIsNyArMzIsMTIgQEAKKyAKKyAjaW5jbHVkZSAiY2xpZW50 L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9jb3JlX2R1bXBlci5oIgorIAorKyNpZiBkZWZp bmVkKF9fR0xJQkNfXykKKyAjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKyNlbHNlCisrLyogRm9y IGFybSotbXVzbCB0aGlzIGRlZmluaXRpb24gaXMgbWlzc2luZyAqLworKyNkZWZpbmUgQVJNX3Nw IHVyZWdzWzEzXQorKyNlbmRpZgorICNpbmNsdWRlIDxhc3NlcnQuaD4KKyAjaW5jbHVkZSA8ZWxm Lmg+CisgI2luY2x1ZGUgPHN0ZGlvLmg+CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdp bmUvcGF0Y2hlcy8wNzUxLWNocm9taXVtLW11c2wtYXJtLXVzZXJfdmZwLnBhdGNoIGIvc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDc1MS1jaHJvbWl1bS1tdXNsLWFybS11c2VyX3ZmcC5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQ3YzE4MDM2ZDUw MwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3NTEt Y2hyb21pdW0tbXVzbC1hcm0tdXNlcl92ZnAucGF0Y2gKQEAgLTAsMCArMSwyMCBAQAorLS0tIHF0 Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oCisrKysgcXQ2LXdlYmVu Z2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oCitAQCAtMTcsNiArMTcsMTcgQEAKKyAKKyAj aW5jbHVkZSA8c3RkaW50Lmg+CisgI2luY2x1ZGUgPHN5cy91c2VyLmg+CisrI2lmICFkZWZpbmVk KF9fR0xJQkNfXykKKytzdHJ1Y3QgdXNlcl92ZnAgeworKwl1bnNpZ25lZCBsb25nIGxvbmcgZnBy ZWdzWzMyXTsKKysJdW5zaWduZWQgbG9uZyBmcHNjcjsKKyt9OworK3N0cnVjdCB1c2VyX3ZmcF9l eGMgeworKwl1bnNpZ25lZCBsb25nIGZwZXhjOworKwl1bnNpZ25lZCBsb25nIGZwaW5zdDsKKysJ dW5zaWduZWQgbG9uZyBmcGluc3QyOworK307CisrI2VuZGlmIC8qICFkZWZpbmVkKF9fR0xJQkNf XykgKi8KKyAKKyAjaW5jbHVkZSA8dHlwZV90cmFpdHM+CisgCmRpZmYgLS1naXQgYS9zcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzUyLWNocm9taXVtLW11c2wtYXJtLWVsZl9hdXh2X3Qu cGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzUyLWNocm9taXVtLW11c2wt YXJtLWVsZl9hdXh2X3QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwLi41MmY1ZjQ3YmU4MzEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdp bmUvcGF0Y2hlcy8wNzUyLWNocm9taXVtLW11c2wtYXJtLWVsZl9hdXh2X3QucGF0Y2gKQEAgLTAs MCArMSwxOCBAQAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hy b21pdW0vdjgvc3JjL2Jhc2UvY3B1LmNjCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdjgvc3JjL2Jhc2UvY3B1LmNjCitAQCAtMTY1LDYgKzE2NSwxNSBAQCBz dGF0aWMgVjhfSU5MSU5FIHZvaWQgX19jcHVpZChpbnQgY3B1X2luCisgCisgI2lmIFY4X0hPU1Rf QVJDSF9BUk0gfHwgVjhfSE9TVF9BUkNIX0FSTTY0CisgCisrI2lmbmRlZiBfX0dMSUJDX18KKysj aW5jbHVkZSA8ZWxmLmg+CisrI2lmZGVmIF9fTFA2NF9fCisrdHlwZWRlZiBFbGY2NF9hdXh2X3Qg ZWxmX2F1eHZfdDsKKysjZWxzZQorK3R5cGVkZWYgRWxmMzJfYXV4dl90IGVsZl9hdXh2X3Q7Cisr I2VuZGlmCisrI2VuZGlmCisrCisgc3RhdGljIHVpbnQzMl90IFJlYWRFTEZIV0NhcHMoKSB7Cisg ICB1aW50MzJfdCByZXN1bHQgPSAwOworICNpZiBWOF9HTElCQ19QUkVSRVEoMiwgMTYpCmRpZmYg LS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wOTAwLWNyb3NzLWJ1aWxkLWV4 YW1wbGVzLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDkwMC1jcm9zcy1i dWlsZC1leGFtcGxlcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLjlhNmFjYzZhZjZkZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzA5MDAtY3Jvc3MtYnVpbGQtZXhhbXBsZXMucGF0Y2gKQEAgLTAsMCArMSwxNiBA QAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9leGFtcGxlcy9DTWFrZUxpc3RzLnR4dAor KysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvZXhhbXBsZXMvQ01ha2VMaXN0cy50eHQKK0BAIC0xLDcg KzEsNiBAQAorIGNtYWtlX21pbmltdW1fcmVxdWlyZWQoVkVSU0lPTiAzLjE2KQorIAorIHF0X2V4 YW1wbGVzX2J1aWxkX2JlZ2luKEVYVEVSTkFMX0JVSUxEKQorLWlmKE5PVCBDTUFLRV9DUk9TU0NP TVBJTElORykgI1FUQlVHLTg2NTMzCisgICAgIGlmKFRBUkdFVCBRdDo6V2ViRW5naW5lQ29yZSkK KyAgICAgICAgIGFkZF9zdWJkaXJlY3Rvcnkod2ViZW5naW5lcXVpY2spCisgICAgIGVuZGlmKCkK K0BAIC0xNCw1ICsxMyw0IEBAIGlmKE5PVCBDTUFLRV9DUk9TU0NPTVBJTElORykgI1FUQlVHLTg2 NTMKKyAgICAgaWYoVEFSR0VUIFF0OjpQZGZXaWRnZXRzKQorICAgICAgICAgYWRkX3N1YmRpcmVj dG9yeShwZGZ3aWRnZXRzKQorICAgICBlbmRpZigpCistZW5kaWYoKQorIHF0X2V4YW1wbGVzX2J1 aWxkX2VuZCgpCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvdGVtcGxhdGUgYi9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi44ZTM1Mzc5ZjEzMzQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvdGVtcGxhdGUKQEAgLTAsMCArMSwxODMgQEAKKyMgVGVtcGxhdGUgZmlsZSBm b3IgJ3F0Ni13ZWJlbmdpbmUnCitwa2duYW1lPXF0Ni13ZWJlbmdpbmUKK3ZlcnNpb249Ni40LjIK K3JldmlzaW9uPTEKK3dya3NyYz0icXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9u fSIKK2J1aWxkX3N0eWxlPWNtYWtlCitjb25maWd1cmVfYXJncz0iCisgLURRVF9GRUFUVVJFX3dl YmVuZ2luZV9zeXN0ZW1fZmZtcGVnPU9OCisgLURRVF9GRUFUVVJFX3dlYmVuZ2luZV9zeXN0ZW1f bGliZXZlbnQ9T04KKyAtRFFUX0ZFQVRVUkVfd2ViZW5naW5lX3N5c3RlbV9nbj1PTgorIC1EUVRf RkVBVFVSRV93ZWJlbmdpbmVfc3lzdGVtX2ljdT1PTgorIC1EUVRfRkVBVFVSRV93ZWJlbmdpbmVf d2VicnRjX3BpcGV3aXJlPU9OCisgLUROaW5qYV9FWEVDVVRBQkxFPSRYQlBTX1dSQVBQRVJESVIv bmluamEKKyAtRFFUX0JVSUxEX0VYQU1QTEVTPU9OCisgLURQS0dfQ09ORklHX0hPU1RfRVhFQ1VU QUJMRT0ke1BLR19DT05GSUdfRk9SX0JVSUxEfSIKK2hvc3RtYWtlZGVwZW5kcz0icXQ2LWJhc2Ug cGVybCBwa2ctY29uZmlnIG5vZGVqcyBweXRob24zLWh0bWw1bGliCisgcXQ2LWRlY2xhcmF0aXZl LXRvb2xzIHByb3RvYnVmIGdwZXJmIGZsZXggbnNzLWRldmVsIGxpYndlYnAtZGV2ZWwKKyBpY3Ut ZGV2ZWwgbGliZXZlbnQtZGV2ZWwiCittYWtlZGVwZW5kcz0icXQ2LWJhc2UtZGV2ZWwgcXQ2LWRl Y2xhcmF0aXZlLWRldmVsIHB1bHNlYXVkaW8tZGV2ZWwKKyBxdDYtdG9vbHMtZGV2ZWwgcXQ2LXdl YnNvY2tldHMtZGV2ZWwgbGliZmxhYy1kZXZlbCBxdDYtc3ZnLWRldmVsCisgYWxzYS1saWItZGV2 ZWwgbGlidnB4LWRldmVsIHBjaXV0aWxzLWRldmVsIG9wdXMtZGV2ZWwgbGlieHNsdC1kZXZlbAor IGxpYnhtbDItZGV2ZWwgZnJlZXR5cGUtZGV2ZWwgbGNtczItZGV2ZWwgbGlid2VicC1kZXZlbCBp Y3UtZGV2ZWwKKyByZTItZGV2ZWwgemxpYi1kZXZlbCBsaWJwbmctZGV2ZWwgbWluaXppcC1kZXZl bCBoYXJmYnV6ei1kZXZlbAorIG5zcy1kZXZlbCBsaWJYY3Vyc29yLWRldmVsIGxpYlhjb21wb3Np dGUtZGV2ZWwgbGliWFNjcm5TYXZlci1kZXZlbAorIHByb3RvYnVmLWRldmVsIGZmbXBlZy1kZXZl bCBzbmFwcHktZGV2ZWwgbGliZXZlbnQtZGV2ZWwgcGlwZXdpcmUtZGV2ZWwKKyBsaWJ4a2JmaWxl LWRldmVsIHF0Ni1sb2NhdGlvbi1kZXZlbCBxdDYtd2ViY2hhbm5lbC1kZXZlbCBsaWJ4c2htZmVu Y2UtZGV2ZWwiCisjIE5vdCB3b3JraW5nIHByb3Blcmx5IHdpdGggSFRUUFMgd2l0aG91dCB0aG9z ZSBwYWNrYWdlcworIyBOb3Qgc3RyaWN0IGRlcGVuZGVuY2llcywgdGhvdWdoCitkZXBlbmRzPSJx dDYtcGx1Z2luLXRscy1vcGVuc3NsIHF0Ni1wbHVnaW4tdGxzLXFjZXJ0b25seSIKK3Nob3J0X2Rl c2M9IkNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9uIGFuZCBVSSBmcmFtZXdvcmsgLSBXZWJlbmdp bmUiCittYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgorbGljZW5zZT0iR1BM LTMuMC1vbmx5LCBHUEwtMi4wLW9ubHksIExHUEwtMy4wLW9ubHksIEJTRC0zLUNsYXVzZSIKK2hv bWVwYWdlPSJodHRwczovL3d3dy5xdC5pbyIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly9kb3dubG9hZC5x dC5pby9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9LyR7dmVyc2lvbn0vc3VibW9k dWxlcy9xdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIKK2NoZWNr c3VtPWZmYTk0NTUxOGQxY2M4ZDllZTczNTIzZThkOWMyMDkwODQ0ZjVhMmQ5YzdlYWMwNWM0YWQw Nzk0NzJhMTE5YzkKKworbm9jcm9zcz0idW50aWwgbGF0ZXIsIEkgbmVlZCBjYWxpYnJlIGZpcnN0 IgorCitpZiBbICIkQ1JPU1NfQlVJTEQiIF07dGhlbgorCWNvbmZpZ3VyZV9hcmdzKz0iIC1EUVRf QlVJTERfVE9PTFNfV0hFTl9DUk9TU0NPTVBJTElORz1UUlVFIgorCWNvbmZpZ3VyZV9hcmdzKz0i IC1EQ01BS0VfVE9PTENIQUlOX0ZJTEU9L3Vzci9saWIvY21ha2UvUXQ2L3F0LnRvb2xjaGFpbi5j bWFrZSIKK2ZpCisKK2lmIFsgIiRYQlBTX0xJQkMiID0gIm11c2wiIF07IHRoZW4KKwlob3N0bWFr ZWRlcGVuZHMrPSIgbXVzbC1sZWdhY3ktY29tcGF0IgorZmkKKworaWYgWyAiJFhCUFNfVEFSR0VU X0xJQkMiID0gIm11c2wiIF07IHRoZW4KKwltYWtlZGVwZW5kcys9IiBtdXNsLWxlZ2FjeS1jb21w YXQiCitmaQorCitpZiBbICEgIiRYQlBTX1dPUkRTSVpFIiA9ICIkWEJQU19UQVJHRVRfV09SRFNJ WkUiIF07IHRoZW4KKwlicm9rZW49IndlYmVuZ2luZSBjYW4gYmUgYnVpbHQgb25seSBpZiB3b3Jk IHNpemUgbWF0Y2hlcyIKK2ZpCisKK2lmIFsgIiRYQlBTX1dPUkRTSVpFIiA9IDMyIF07IHRoZW4K KwlDRkxBR1M9LWcxCisJQ1hYRkxBR1M9LWcxCisJTERGTEFHUz0iLVdsLC0tbm8ta2VlcC1tZW1v cnkiCisJYnJva2VuPSJub2RlanMgY29tcHJlc3MganMgZmlsZXMgZmFpbHVyZSIKK2ZpCisKK2Nh c2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCXBwYyopIGJyb2tlbj0ibm90IHBvcnRlZCIg OzsKK2VzYWMKKworI2J1aWxkX29wdGlvbnM9ImV4YW1wbGVzIgorI2J1aWxkX29wdGlvbnNfZGVm YXVsdD0iZXhhbXBsZXMiCisjZGVzY19vcHRpb25fZXhhbXBsZXM9IkJ1aWxkIGV4YW1wbGVzIgor CitzdWJwYWNrYWdlcz0icXQ2LXdlYmVuZ2luZS1kZXZlbCIKKworI2lmIFsgIiRidWlsZF9vcHRp b25fZXhhbXBsZXMiIF07IHRoZW4KKwlzdWJwYWNrYWdlcys9IiBxdDYtd2ViZW5naW5lLWV4YW1w bGVzIgorI2ZpCisKK19ib290c3RyYXBfZ24oKSB7CisJIyBCb290c3RyYXAgZ24gKGdlbmVyYXRl IG5pbmphKQorCWVjaG8gIkJvb3RzdHJhcHBpbmcgJ2duJyIKKwljZCAke3dya3NyY30vc3JjLzNy ZHBhcnR5L2duCisJQ0ZMQUdTPSIkQ0ZMQUdTX2hvc3QiIENYWEZMQUdTPSIkQ1hYRkxBR1NfaG9z dCIgTERGTEFHUz0iJExERkxBR1NfaG9zdCIgXAorCVBLR0NPTkZJRz0vdXNyL2Jpbi9wa2djb25m aWcgUEtHX0NPTkZJR19QQVRIPSIvdXNyL2xpYi9wa2djb25maWc6L3Vzci9zaGFyZS9wa2djb25m aWciIFwKKwkJcHl0aG9uMyBidWlsZC9nZW4ucHkgLS1uby1sYXN0LWNvbW1pdC1wb3NpdGlvbiAt LW91dC1wYXRoIFwKKwkJCSR7d3Jrc3JjfS9zcmMvM3JkcGFydHkvZ24vb3V0L1JlbGVhc2UgLS1j YyAiJHtDQ19ob3N0Oi0kQ0N9IiBcCisJCQktLWN4eCAiJHtDWFhfaG9zdDotJENYWH0iIC0tbGQg IiR7Q1hYX2hvc3Q6LSRDWFh9IiAtLWFyICIke0FSX2hvc3Q6LSRBUn0iIFwKKwkJCS0tcXQtdmVy c2lvbiAiJHt2ZXJzaW9ufS5xdHdlYmVuZ2luZS5xdC5pbyIKKwluaW5qYSAtQyBvdXQvUmVsZWFz ZSBnbgorCWNkICR7d3Jrc3JjfQorfQorCitfdW5idW5kbGVfbGlicygpIHsKKwljZCAke3dya3Ny Y30vc3JjLzNyZHBhcnR5L2Nocm9taXVtCisJZWNobyBEcm9wcGluZyBidW5kbGVkIGxpYnMgZnJv bSBjaHJvbWl1bQorCSMgVXNlIHN5c3RlbS1wcm92aWRlZCBsaWJyYXJpZXMuCisJIyBUT0RPOiB1 c2Vfc3lzdGVtX2h1bnNwZWxsICh1cHN0cmVhbSBjaGFuZ2VzIG5lZWRlZCkuCisJIyBUT0RPOiB1 c2Vfc3lzdGVtX2xpYnNydHAuCisJIyBUT0RPOiB1c2Vfc3lzdGVtX2xpYnVzYiAoaHR0cDovL2Ny YnVnLmNvbS8yNjYxNDkpLgorCSMgVE9ETzogdXNlX3N5c3RlbV9zc2wgKGh0dHA6Ly9jcmJ1Zy5j b20vNTgwODcpLgorCSMgVE9ETzogdXNlX3N5c3RlbV9zcWxpdGUgKGh0dHA6Ly9jcmJ1Zy5jb20v MjIyMDgpLgorCSMgVE9ETzogdXNlX3N5c3RlbV9pY3UgKHNlZ2ZhdWx0cykKKwkjIHVzZV9zeXN0 ZW1fcHJvdG9idWYKKwkjIHVzZV9zeXN0ZW1fdjg9MQorCSMgdXNlX3N5c3RlbV96bGliPTEKKwkj IGJ6aXAyIGpzb25jcHAgbWluaXppcCB4ZGdfdXRpbHMgc3BlZXgKKwlzeXN0ZW09IgorCQlmZm1w ZWcKKwkJZmxhYworCQlmb250Y29uZmlnCisJCWZyZWV0eXBlCisJCWhhcmZidXp6LW5nCisJCWlj dQorCQlsaWJkcm0KKwkJbGliZXZlbnQKKwkJbGlianBlZworCQlsaWJwbmcKKwkJbGlid2VicAor CQlsaWJ4bWwKKwkJbGlieHNsdAorCQlvcHVzCisJCXJlMgorCQlzbmFwcHkKKwkiCisJYnVpbGQv bGludXgvdW5idW5kbGUvcmVwbGFjZV9nbl9maWxlcy5weSAtLXN5c3RlbS1saWJyYXJpZXMgJHtz eXN0ZW19Cit9CisKKyMgUHJvdmlkZSBhIHdyYXBwZXIgdG8gcnVuIC4veGJwcy1zcmMgLWogMSBi dWlsZCBsYXRlcgorX3dyYXBfbmluamEoKSB7CisJY2F0IDw8LSdfRU9GJyA+IiRYQlBTX1dSQVBQ RVJESVIiL25pbmphCisJIyEvYmluL3NoCisKKwlleGVjIC91c3IvYmluL25pbmphICROSU5KQUZM QUdTICIkQCIKKwlfRU9GCisJY2htb2QgK3ggIiRYQlBTX1dSQVBQRVJESVIiL25pbmphCit9CisK K3ByZV9jb25maWd1cmUoKSB7CisJX2Jvb3RzdHJhcF9nbgorCSMgX3VuYnVuZGxlX2xpYnMKKwlf d3JhcF9uaW5qYQorCWV4cG9ydCBQQVRIPSIkUEFUSDoke3dya3NyY30vc3JjLzNyZHBhcnR5L2du L291dC9SZWxlYXNlIgorfQorCitwcmVfYnVpbGQoKSB7CisJZXhwb3J0IFBBVEg9IiRQQVRIOiR7 d3Jrc3JjfS9zcmMvM3JkcGFydHkvZ24vb3V0L1JlbGVhc2UiCisJZXhwb3J0IE5JTkpBRkxBR1M9 IiRtYWtlam9icyIKKworfQorCitwcmVfaW5zdGFsbCgpIHsKKwlleHBvcnQgUEFUSD0iJFBBVEg6 JHt3cmtzcmN9L3NyYy8zcmRwYXJ0eS9nbi9vdXQvUmVsZWFzZSIKK30KKworcG9zdF9pbnN0YWxs KCkgeworCWxvY2FsIF9maWxlCisJZmluZCAiJHtERVNURElSfSIvdXNyL2xpYi9xdDYvZXhhbXBs ZXMgXAorCQktcGF0aCAnKi9saWIvcXQ2LyoqL2xpYi9xdDYvKicgLXR5cGUgZiB8CisJd2hpbGUg cmVhZCBfZmlsZTsgZG8KKwkJbXYgIiRfZmlsZSIgIiR7X2ZpbGUlL2xpYi9xdDYvKn0iCisJZG9u ZQorfQorCitxdDYtd2ViZW5naW5lLWRldmVsX3BhY2thZ2UoKSB7CisJZGVwZW5kcz0iJHtzb3Vy Y2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IHF0Ni13ZWJjaGFubmVsLWRldmVsPj0ke3Zl cnNpb259XzEKKwkgcXQ2LWRlY2xhcmF0aXZlLWRldmVsPj0ke3ZlcnNpb259XzEgcXQ2LWxvY2F0 aW9uLWRldmVsPj0ke3ZlcnNpb259XzEiCisJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZp bGVzIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3IvaW5jbHVkZQorCQl2bW92ZSB1c3Iv bGliL2NtYWtlCisJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCisJCXZtb3ZlIHVzci9saWIvcXQ2 L21rc3BlY3MKKwkJdm1vdmUgInVzci9saWIvKi5zbyIKKwkJdm1vdmUgInVzci9saWIvKi5wcmwi CisJCXZtb3ZlIHVzci9zaGFyZS9xdDYvbW9kdWxlcworCX0KK30KKworcXQ2LXdlYmVuZ2luZS1l eGFtcGxlc19wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBzYW1wbGUgYnJvd3NlcnMiCisJ ZGVwZW5kcz0icXQ2LXN2ZyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2xpYi9xdDYv ZXhhbXBsZXMKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvdXBkYXRl IGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3VwZGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAuLjg0NDU1MjQ2NTIyMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS91cGRhdGUKQEAgLTAsMCArMSBAQAorcGtnbmFtZT0iJHtwa2duYW1lLzYt L30tZXZlcnl3aGVyZS1zcmMiCgpGcm9tIDM3ZGQyNTU3ZTUxYTg4ZWRlZjZlYzVjMjE0NDNkYmNi YjUzM2IxNjYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBv PUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhA Z21haWwuY29tPgpEYXRlOiBNb24sIDggQXVnIDIwMjIgMTk6MTA6NTggKzA3MDAKU3ViamVjdDog W1BBVENIIDAzLzExXSBOZXcgcGFja2FnZTogcHl0aG9uMy1weXF0Ni13ZWJlbmdpbmUtNi4zLjEK Ci0tLQogc3JjcGtncy9weXRob24zLXB5cXQ2LXdlYmVuZ2luZS1kZXZlbCAgICB8ICAxICsKIHNy Y3BrZ3MvcHl0aG9uMy1weXF0Ni13ZWJlbmdpbmUvdGVtcGxhdGUgfCAyNyArKysrKysrKysrKysr KysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMjggaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1v ZGUgMTIwMDAwIHNyY3BrZ3MvcHl0aG9uMy1weXF0Ni13ZWJlbmdpbmUtZGV2ZWwKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL3B5dGhvbjMtcHlxdDYtd2ViZW5naW5lL3RlbXBsYXRlCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9weXRob24zLXB5cXQ2LXdlYmVuZ2luZS1kZXZlbCBiL3NyY3BrZ3Mv cHl0aG9uMy1weXF0Ni13ZWJlbmdpbmUtZGV2ZWwKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXgg MDAwMDAwMDAwMDAwLi5mMTg5YmIzNTI1NDIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3B5 dGhvbjMtcHlxdDYtd2ViZW5naW5lLWRldmVsCkBAIC0wLDAgKzEgQEAKK3B5dGhvbjMtcHlxdDYt d2ViZW5naW5lClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9weXRob24zLXB5cXQ2LXdlYmVuZ2luZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvcHl0aG9uMy1weXF0 Ni13ZWJlbmdpbmUvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwLi4xMmMzYmU4MmMwNjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3B5dGhvbjMtcHlx dDYtd2ViZW5naW5lL3RlbXBsYXRlCkBAIC0wLDAgKzEsMjcgQEAKKyMgVGVtcGxhdGUgZmlsZSBm b3IgJ3B5dGhvbjMtcHlxdDYtd2ViZW5naW5lJworcGtnbmFtZT1weXRob24zLXB5cXQ2LXdlYmVu Z2luZQordmVyc2lvbj02LjQuMAorcmV2aXNpb249MQorYnVpbGRfc3R5bGU9c2lwLWJ1aWxkCito b3N0bWFrZWRlcGVuZHM9InF0Ni1iYXNlIHB5dGhvbjMtUHlRdC1idWlsZGVyIHBrZy1jb25maWci CittYWtlZGVwZW5kcz0icHl0aG9uMy1weXF0Ni1ndWktZGV2ZWwgcXQ2LXdlYmVuZ2luZS1kZXZl bAorIHB5dGhvbjMtcHlxdDYtbmV0d29yay1kZXZlbCBweXRob24zLXB5cXQ2LXdlYmNoYW5uZWwt ZGV2ZWwKKyBweXRob24zLXB5cXQ2LWRlY2xhcmF0aXZlLWRldmVsIHB5dGhvbjMtcHlxdDYtcHJp bnRzdXBwb3J0LWRldmVsCisgcHl0aG9uMy1weXF0Ni13aWRnZXRzLWRldmVsIgorZGVwZW5kcz0i cHl0aG9uMy1weXF0NiIKK3Nob3J0X2Rlc2M9IlB5dGhvbiAzIGJpbmRpbmdzIGZvciBRdDYgLSBX ZWJFbmdpbmUiCittYWludGFpbmVyPSLEkG/DoG4gVHLhuqduIEPDtG5nIERhbmggPGNvbmdkYW5o cXhAZ21haWwuY29tPiIKK2xpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCitob21lcGFnZT0iaHR0 cHM6Ly93d3cucml2ZXJiYW5rY29tcHV0aW5nLmNvbS9zb2Z0d2FyZS9weXF0d2ViZW5naW5lLyIK K2Rpc3RmaWxlcz0iJFBZUElfU0lURS9QL1B5UXQ2X1dlYkVuZ2luZS9QeVF0Nl9XZWJFbmdpbmUt JHZlcnNpb24udGFyLmd6IgorY2hlY2tzdW09NGM3MWMxMzA4NjBhYmNkMTFlMDRjYWZiMjJlMzM5 ODNmYTlhM2FlZTgzMjNjNTE5MDliMTVhMTcwMTgyOGUyMQorbGliMzJkaXNhYmxlZD15ZXMKKwor cHl0aG9uMy1weXF0Ni13ZWJlbmdpbmUtZGV2ZWxfcGFja2FnZSgpIHsKKwlkZXBlbmRzPSIke3Nv dXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gJHttYWtlZGVwZW5kc30iCisJc2hvcnRf ZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSAk e3B5M19zaXRlbGlifS9QeVF0Ni9iaW5kaW5ncworCQl2bW92ZSB1c3Ivc2hhcmUKKwl9Cit9CgpG cm9tIDFmZGQ5ODc1YzJjNTZiZWEyYmRlMDYxNmY3NjRkNjgwMTYwMzhiMDcgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3 bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBUaHUs IDIzIEZlYiAyMDIzIDA3OjQzOjQ3ICswNzAwClN1YmplY3Q6IFtQQVRDSCAwNC8xMV0gc2lwOiB1 cGRhdGUgdG8gNi43LjcuCgotLS0KIHNyY3BrZ3Mvc2lwL3BhdGNoZXMvZmluZC1iaW5kaW5ncy1p bi1weXByZWZpeC5wYXRjaCB8IDEzICsrKysrKysrKysrKysKIHNyY3BrZ3Mvc2lwL3RlbXBsYXRl ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0KIDIgZmlsZXMgY2hhbmdl ZCwgMTUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL3NpcC9wYXRjaGVzL2ZpbmQtYmluZGluZ3MtaW4tcHlwcmVmaXgucGF0Y2gKCmRpZmYg LS1naXQgYS9zcmNwa2dzL3NpcC9wYXRjaGVzL2ZpbmQtYmluZGluZ3MtaW4tcHlwcmVmaXgucGF0 Y2ggYi9zcmNwa2dzL3NpcC9wYXRjaGVzL2ZpbmQtYmluZGluZ3MtaW4tcHlwcmVmaXgucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5jM2UyZmQ5Yzk3MGIKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3NpcC9wYXRjaGVzL2ZpbmQtYmluZGluZ3MtaW4tcHlw cmVmaXgucGF0Y2gKQEAgLTAsMCArMSwxMyBAQAorLS0tIHNpcC02LjcuNy5vcmlnL3NpcGJ1aWxk L2J1aWxkZXIucHkKKysrKyBzaXAtNi43Ljcvc2lwYnVpbGQvYnVpbGRlci5weQorQEAgLTI1MCw2 ICsyNTAsMTAgQEAgY2xhc3MgQnVpbGRlcihBYnN0cmFjdEJ1aWxkZXIpOgorICAgICAgICAgICAg IHNpcF9pbmNsdWRlX2RpcnMuYXBwZW5kKGxvY2FsX2JpbmRpbmdzX2RpcikKKyAKKyAgICAgICAg ICAgICAjIEFkZCBhbnkgYmluZGluZ3MgZnJvbSBwcmV2aW91c2x5IGluc3RhbGxlZCBwYWNrYWdl cy4KKysgICAgICAgICAgICBpZiAiUFlQUkVGSVgiIGluIG9zLmVudmlyb246CisrICAgICAgICAg ICAgICAgIHNpcF9pbmNsdWRlX2RpcnMuYXBwZW5kKG9zLmVudmlyb25bIlBZUFJFRklYIl0gKwor KyAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihwcm9qZWN0LnRhcmdldF9kaXIs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0LmdldF9iaW5kaW5nc19k aXIoKSkpCisgICAgICAgICAgICAgc2lwX2luY2x1ZGVfZGlycy5hcHBlbmQoCisgICAgICAgICAg ICAgICAgICAgICBvcy5wYXRoLmpvaW4ocHJvamVjdC50YXJnZXRfZGlyLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwcm9qZWN0LmdldF9iaW5kaW5nc19kaXIoKSkpCmRpZmYgLS1naXQg YS9zcmNwa2dzL3NpcC90ZW1wbGF0ZSBiL3NyY3BrZ3Mvc2lwL3RlbXBsYXRlCmluZGV4IGNlMzhk MGRjODBlYi4uNmM0YmYyMmFhOTE3IDEwMDY0NAotLS0gYS9zcmNwa2dzL3NpcC90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL3NpcC90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ3NpcCcKIHBrZ25hbWU9c2lwCi12ZXJzaW9uPTYuNy40Cit2ZXJzaW9uPTYuNy43CiBy ZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1weXRob24zLW1vZHVsZQogaG9zdG1ha2VkZXBlbmRzPSJw eXRob24zLWRldmVsIHB5dGhvbjMtc2V0dXB0b29scyBweXRob24zLXBhY2thZ2luZwpAQCAtMTIs NyArMTIsNyBAQCBtYWludGFpbmVyPSLEkG/DoG4gVHLhuqduIEPDtG5nIERhbmggPGNvbmdkYW5o cXhAZ21haWwuY29tPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb25seSwgR1BMLTMuMC1vbmx5LCBjdXN0 b206U0lQIgogaG9tZXBhZ2U9Imh0dHBzOi8vcml2ZXJiYW5rY29tcHV0aW5nLmNvbS9zb2Z0d2Fy ZS9zaXAvaW50cm8iCiBkaXN0ZmlsZXM9IiR7UFlQSV9TSVRFfS9zL3NpcC9zaXAtJHt2ZXJzaW9u fS50YXIuZ3oiCi1jaGVja3N1bT05ZGJmOGEwZTdjOGQ3NmQxNjQyZTJmZGQzZjUzZTZhNTIyZjdj MzA5ODBlNTI3NzYzYzQ1NzYwYzI1MDVjZmJmCitjaGVja3N1bT1kZWU5YzA2ZmE4YWU2ZDQ0MWE0 MDFmOTIyODY3ZmM2MTk2ZWRkYTI3NGVlYmQ5ZmJmZWM1NGYwNzY5YzJhOWUyCiBsaWIzMmRpc2Fi bGVkPXllcwogcmVwbGFjZXM9InNpcDU8PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiBwcm92aWRl cz0ic2lwNS0ke3ZlcnNpb259XyR7cmV2aXNpb259IgoKRnJvbSA5NTNlYTNlMTc3ODkyZTBmMjIx OGQxZjdiMjkzM2RkNzZlZDlkY2M4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VU Ri04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0K IDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAyMyBGZWIgMjAyMyAwNzo0Mzo1NyAr MDcwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMTFdIHB5dGhvbjMtcHlxdDYtc2lwOiB1cGRhdGUgdG8g MTMuNC4xLgoKLS0tCiBzcmNwa2dzL3B5dGhvbjMtcHlxdDYtc2lwL3RlbXBsYXRlIHwgNiArKyst LS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9weXRob24zLXB5cXQ2LXNpcC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcHl0 aG9uMy1weXF0Ni1zaXAvdGVtcGxhdGUKaW5kZXggOWFkMzhhNjZiNmY1Li41NDdkNTNmYzEzZTEg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcHl0aG9uMy1weXF0Ni1zaXAvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9weXRob24zLXB5cXQ2LXNpcC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ3B5dGhvbjMtcHlxdDYtc2lwJwogcGtnbmFtZT1weXRob24zLXB5cXQ2LXNp cAotdmVyc2lvbj0xMy40LjAKLXJldmlzaW9uPTIKK3ZlcnNpb249MTMuNC4xCityZXZpc2lvbj0x CiBidWlsZF9zdHlsZT1weXRob24zLW1vZHVsZQogaG9zdG1ha2VkZXBlbmRzPSJweXRob24zLWRl dmVsIHB5dGhvbjMtc2V0dXB0b29scyBzaXAiCiBtYWtlZGVwZW5kcz0icHl0aG9uMy1kZXZlbCIK QEAgLTExLDcgKzExLDcgQEAgbWFpbnRhaW5lcj0ixJBvw6BuIFRy4bqnbiBDw7RuZyBEYW5oIDxj b25nZGFuaHF4QGdtYWlsLmNvbT4iCiBsaWNlbnNlPSJHUEwtMi4wLW9ubHksIEdQTC0zLjAtb25s eSwgY3VzdG9tOlNJUCIKIGhvbWVwYWdlPSJodHRwczovL3d3dy5yaXZlcmJhbmtjb21wdXRpbmcu Y29tL3NvZnR3YXJlL3NpcC8iCiBkaXN0ZmlsZXM9IiR7UFlQSV9TSVRFfS9QL1B5UXQ2X3NpcC9Q eVF0Nl9zaXAtJHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT02ZDg3YTNlZTU4NzJkNzUxMWI3 Njk1N2Q2OGEzMjEwOTM1MmNhZjNiN2E0MmEwMWQ5ZWUyMDAzMmIzNTBkOTc5CitjaGVja3N1bT1l MDBlMjg3ZWEwNWJiYzI5M2ZjNmUyMTk4MzAxOTYyYWY5YjdiNjIyYmQyZGFmNDI4OGY5MjVhODhh ZTM1ZGM5CiBsaWIzMmRpc2FibGVkPXllcwogCiBwb3N0X2V4dHJhY3QoKSB7CgpGcm9tIGFmNWUw MTllNTQxMmNjNWRmNWVjZDkxNzhmZGI5MTRjMmZmZTU2MmMgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9 QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBUaHUsIDIzIEZlYiAy MDIzIDA3OjQ0OjAyICswNzAwClN1YmplY3Q6IFtQQVRDSCAwNi8xMV0gcHl0aG9uMy1QeVF0LWJ1 aWxkZXI6IHVwZGF0ZSB0byAxLjE0LjEuCgotLS0KIHNyY3BrZ3MvcHl0aG9uMy1QeVF0LWJ1aWxk ZXIvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9weXRob24zLVB5UXQtYnVpbGRlci90 ZW1wbGF0ZSBiL3NyY3BrZ3MvcHl0aG9uMy1QeVF0LWJ1aWxkZXIvdGVtcGxhdGUKaW5kZXggODBi ZjQ2ZGFiMTE2Li45NTU3ZDBkZTk0MzAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcHl0aG9uMy1QeVF0 LWJ1aWxkZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9weXRob24zLVB5UXQtYnVpbGRlci90ZW1w bGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3B5dGhvbjMtUHlRdC1i dWlsZGVyJwogcGtnbmFtZT1weXRob24zLVB5UXQtYnVpbGRlcgotdmVyc2lvbj0xLjE0LjAKK3Zl cnNpb249MS4xNC4xCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1weXRob24zLW1vZHVsZQogaG9z dG1ha2VkZXBlbmRzPSJweXRob24zLXNldHVwdG9vbHMgc2lwIgpAQCAtMTAsNyArMTAsNyBAQCBt YWludGFpbmVyPSLEkG/DoG4gVHLhuqduIEPDtG5nIERhbmggPGNvbmdkYW5ocXhAZ21haWwuY29t PiIKIGxpY2Vuc2U9IkdQTC0yLjAtb25seSwgR1BMLTMuMC1vbmx5LCBjdXN0b206U0lQIgogaG9t ZXBhZ2U9Imh0dHBzOi8vd3d3LnJpdmVyYmFua2NvbXB1dGluZy5jb20vc29mdHdhcmUvcHlxdC8i CiBkaXN0ZmlsZXM9IiRQWVBJX1NJVEUvUC9QeVF0LWJ1aWxkZXIvUHlRdC1idWlsZGVyLSR2ZXJz aW9uLnRhci5neiIKLWNoZWNrc3VtPTY3NTU5MzFjNmQyZjg5NDA1NTNlMDMzNGQxMGM5MzNjZTVj YzE4YjY0NDI1ZTk0ZmRhMWFjY2Y0ZmY3NzRmNTkKK2NoZWNrc3VtPTgzYmMzZTMwMGFmZjhiNDE0 MDU4MDRiNmE5YzI5MTMzODlhYjU5YzQ4YWQ5ZjBjYjg1ODRhNmVmNzNiY2E1MDIKIAogcG9zdF9p bnN0YWxsKCkgewogCXJtIC1yZiAkREVTVERJUi8kcHkzX3NpdGVsaWIvcHlxdGJ1aWxkL2J1bmRs ZQoKRnJvbSAxYWY1NGE4YTkxNWRjZDkzMTE4YWE0MjhiYzNhMTJkZGY4ZDNkYWViIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1C QT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTog VGh1LCAyMyBGZWIgMjAyMyAwNzo0NDowNyArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMTFdIHB5 dGhvbjMtcHlxdDY6IHVwZGF0ZSB0byA2LjQuMi4KCi0tLQogc3JjcGtncy9weXRob24zLXB5cXQ2 L3RlbXBsYXRlIHwgMTkgKysrKysrKy0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDcgaW5z ZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9weXRob24z LXB5cXQ2L3RlbXBsYXRlIGIvc3JjcGtncy9weXRob24zLXB5cXQ2L3RlbXBsYXRlCmluZGV4IGYz YTEwYWFjYmJlZC4uZjZlNGFjMDlkY2JlIDEwMDY0NAotLS0gYS9zcmNwa2dzL3B5dGhvbjMtcHlx dDYvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9weXRob24zLXB5cXQ2L3RlbXBsYXRlCkBAIC0xLDE2 ICsxLDExIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdweXRob24zLXB5cXQ2JwogcGtnbmFtZT1w eXRob24zLXB5cXQ2Ci12ZXJzaW9uPTYuNC4wCit2ZXJzaW9uPTYuNC4yCiByZXZpc2lvbj0xCiBi dWlsZF9zdHlsZT1zaXAtYnVpbGQKIGJ1aWxkX2hlbHBlcj1xZW11CiBjb25maWd1cmVfYXJncz0i LS1jb25maXJtLWxpY2Vuc2UgLS1kYnVzICRYQlBTX0NST1NTX0JBU0UvdXNyL2luY2x1ZGUvZGJ1 cy0xLjAiCi1ob3N0bWFrZWRlcGVuZHM9InF0Ni1iYXNlLWRldmVsIHF0Ni1kZWNsYXJhdGl2ZS1k ZXZlbCBxdDYtdG9vbHMtZGV2ZWwKLSBxdDYtcXVpY2szZC1kZXZlbCBxdDYtc2hhZGVydG9vbHMt ZGV2ZWwgcXQ2LXN2Zy1kZXZlbCBweXRob24zLWRidXMKLSBxdDYtd2ViY2hhbm5lbC1kZXZlbCBx dDYtbXVsdGltZWRpYS1kZXZlbCBxdDYtbG9jYXRpb24tZGV2ZWwKLSBxdDYtcmVtb3Rlb2JqZWN0 cy1kZXZlbCBxdDYtc2Vuc29ycy1kZXZlbCBxdDYtc2VyaWFscG9ydC1kZXZlbAotIHF0Ni1jb25u ZWN0aXZpdHktZGV2ZWwgcXQ2LXdlYnNvY2tldHMtZGV2ZWwKLSBweXRob24zLVB5UXQtYnVpbGRl ciBwa2ctY29uZmlnIgoraG9zdG1ha2VkZXBlbmRzPSJxdDYtYmFzZSBweXRob24zLWRidXMgcHl0 aG9uMy1QeVF0LWJ1aWxkZXIgcGtnLWNvbmZpZyIKIG1ha2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZl bCBxdDYtZGVjbGFyYXRpdmUtZGV2ZWwgcXQ2LXRvb2xzLWRldmVsCiAgcXQ2LXdlYmNoYW5uZWwt ZGV2ZWwgcXQ2LW11bHRpbWVkaWEtZGV2ZWwgcXQ2LWxvY2F0aW9uLWRldmVsCiAgcXQ2LXJlbW90 ZW9iamVjdHMtZGV2ZWwgcXQ2LXNlbnNvcnMtZGV2ZWwgcXQ2LXNlcmlhbHBvcnQtZGV2ZWwKQEAg LTIyLDcgKzE3LDcgQEAgbWFpbnRhaW5lcj0ixJBvw6BuIFRy4bqnbiBDw7RuZyBEYW5oIDxjb25n ZGFuaHF4QGdtYWlsLmNvbT4iCiBsaWNlbnNlPSJHUEwtMy4wLW9ubHkiCiBob21lcGFnZT0iaHR0 cHM6Ly93d3cucml2ZXJiYW5rY29tcHV0aW5nLmNvbS9zb2Z0d2FyZS9weXF0LyIKIGRpc3RmaWxl cz0iJFBZUElfU0lURS9QL1B5UXQ2L1B5UXQ2LSR2ZXJzaW9uLnRhci5neiIKLWNoZWNrc3VtPTkx MzkyNDY5YmUxZjQ5MTkwNWZhOWU3OGZhNGU0MDU5YTg5YWI2MTZkZGYyZWNmZDUyNWJjMWQ2NWMy NmJiOTMKK2NoZWNrc3VtPTc0MDI0NGY2MDhmZTE1ZWUxZDg5Njk1YzQzZjMxYTE0Y2FlY2E0MWM0 ZjAyYWMzNmM4NmRmYmE0YTVkNTgxM2QKIGxpYjMyZGlzYWJsZWQ9eWVzCiAKIGlmIFsgIiRYQlBT X1RBUkdFVF9OT19BVE9NSUM4IiBdOyB0aGVuCkBAIC03NCw3ICs2OSw3IEBAIHB5dGhvbjMtcHlx dDYtdG9vbHNfcGFja2FnZSgpIHsKIAogcHl0aG9uMy1weXF0Ni10b29scy1kZXZlbF9wYWNrYWdl KCkgewogCWxpYjMyZGlzYWJsZWQ9eWVzCi0JZGVwZW5kcz0icHl0aG9uMy1weXF0Ni10b29scz49 JHt2ZXJzaW9ufV8ke3JldmlzaW9ufQorCWRlcGVuZHM9InB5dGhvbjMtcHlxdDYtdG9vbHM+PSR7 dmVyc2lvbn1fJHtyZXZpc2lvbn0gcXQ2LXRvb2xzLWRldmVsCiAJIHB5dGhvbjMtcHlxdDYtd2lk Z2V0cy1kZXZlbD49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIAlzaG9ydF9kZXNjPSIke3Nob3J0 X2Rlc2N9IC0gVG9vbHMgLSBkZXZlbG9wbWVudCBmaWxlcyIKIAlwa2dfaW5zdGFsbCgpIHsKQEAg LTE3Niw3ICsxNzEsNyBAQCBweXRob24zLXB5cXQ2LWRlY2xhcmF0aXZlX3BhY2thZ2UoKSB7CiBw eXRob24zLXB5cXQ2LWRlY2xhcmF0aXZlLWRldmVsX3BhY2thZ2UoKSB7CiAJbGliMzJkaXNhYmxl ZD15ZXMKIAlkZXBlbmRzPSJweXRob24zLXB5cXQ2LWRlY2xhcmF0aXZlPj0ke3ZlcnNpb259XyR7 cmV2aXNpb259Ci0JIHB5dGhvbjMtcHlxdDYtd2lkZ2V0cy1kZXZlbD49JHt2ZXJzaW9ufV8ke3Jl dmlzaW9ufSIKKwkgcXQ2LWRlY2xhcmF0aXZlLWRldmVsIHB5dGhvbjMtcHlxdDYtd2lkZ2V0cy1k ZXZlbD49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIAlzaG9ydF9kZXNjPSIke3Nob3J0X2Rlc2N9 IC0gRGVjbGFyYXRpdmUgLSBkZXZlbG9wbWVudCBmaWxlcyIKIAlwa2dfaW5zdGFsbCgpIHsKIAkJ dm1vdmUgIiR7cHkzX3NpdGVsaWJ9L1B5UXQ2L2JpbmRpbmdzL1F0UW1sIgpAQCAtMTk2LDcgKzE5 MSw3IEBAIHB5dGhvbjMtcHlxdDYtcXVpY2szZF9wYWNrYWdlKCkgewogCiBweXRob24zLXB5cXQ2 LXF1aWNrM2QtZGV2ZWxfcGFja2FnZSgpIHsKIAlsaWIzMmRpc2FibGVkPXllcwotCWRlcGVuZHM9 InB5dGhvbjMtcHlxdDYtcXVpY2szZD49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufQorCWRlcGVuZHM9 InB5dGhvbjMtcHlxdDYtcXVpY2szZD49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSBxdDYtcXVpY2sz ZC1kZXZlbAogCSBweXRob24zLXB5cXQ2LWRlY2xhcmF0aXZlLWRldmVsPj0ke3ZlcnNpb259XyR7 cmV2aXNpb259IgogCXNob3J0X2Rlc2M9IiR7c2hvcnRfZGVzY30gLSBRdWljazNEIC0gZGV2ZWxv cG1lbnQgZmlsZXMiCiAJcGtnX2luc3RhbGwoKSB7CkBAIC0yMzUsNyArMjMwLDcgQEAgcHl0aG9u My1weXF0Ni1zdmdfcGFja2FnZSgpIHsKIAogcHl0aG9uMy1weXF0Ni1zdmctZGV2ZWxfcGFja2Fn ZSgpIHsKIAlsaWIzMmRpc2FibGVkPXllcwotCWRlcGVuZHM9InB5dGhvbjMtcHlxdDYtc3ZnPj0k e3ZlcnNpb259XyR7cmV2aXNpb259CisJZGVwZW5kcz0icHl0aG9uMy1weXF0Ni1zdmc+PSR7dmVy c2lvbn1fJHtyZXZpc2lvbn0gcXQ2LXN2Zy1kZXZlbAogCSBweXRob24zLXB5cXQ2LXdpZGdldHMt ZGV2ZWw+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiAJc2hvcnRfZGVzYz0iJHtzaG9ydF9kZXNj fSAtIHN2ZyAtIGRldmVsb3BtZW50IGZpbGVzIgogCXBrZ19pbnN0YWxsKCkgewoKRnJvbSAxYjgy ZWM2NmI5YWUzODcyYTNiM2EwZjY5NGI3OTAzZTUzMGIxZjkxIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMz PUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAyMyBGZWIg MjAyMyAxMDoyMDo0NSArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDgvMTFdIHB5dGhvbjMtcHlxdDYt M2Q6IGNsZWFudXAgZGVwZW5kZW5jaWVzCgotLS0KIHNyY3BrZ3MvcHl0aG9uMy1weXF0Ni0zZC90 ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3B5dGhvbjMtcHlxdDYtM2QvdGVtcGxhdGUg Yi9zcmNwa2dzL3B5dGhvbjMtcHlxdDYtM2QvdGVtcGxhdGUKaW5kZXggODc1NTRiMjM2NWE4Li4y MzRlNzgyZmY3M2IgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcHl0aG9uMy1weXF0Ni0zZC90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL3B5dGhvbjMtcHlxdDYtM2QvdGVtcGxhdGUKQEAgLTMsOCArMyw4IEBA IHBrZ25hbWU9cHl0aG9uMy1weXF0Ni0zZAogdmVyc2lvbj02LjQuMAogcmV2aXNpb249MQogYnVp bGRfc3R5bGU9c2lwLWJ1aWxkCi1ob3N0bWFrZWRlcGVuZHM9InB5dGhvbjMtcHlxdDYtZ3VpLWRl dmVsIHF0Ni0zZC1kZXZlbAotIHB5dGhvbjMtUHlRdC1idWlsZGVyIHBrZy1jb25maWciCitidWls ZF9oZWxwZXI9InB5dGhvbjMiCitob3N0bWFrZWRlcGVuZHM9InF0Ni1iYXNlIHB5dGhvbjMtUHlR dC1idWlsZGVyIHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0icHl0aG9uMy1weXF0Ni1ndWktZGV2 ZWwgcXQ2LTNkLWRldmVsIgogZGVwZW5kcz0icHl0aG9uMy1weXF0NiIKIHNob3J0X2Rlc2M9IlF0 NiBiaW5kaW5ncyBmb3IgM0QgLSBQeXRob24gMyIKCkZyb20gM2NlZmI0NjNjN2NlNDZkMDYyMzc5 M2MzNTBiMmJmMDRhMjBmOWQxYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYt OD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8 Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IFRodSwgMjMgRmViIDIwMjMgMTA6MjA6NDUgKzA3 MDAKU3ViamVjdDogW1BBVENIIDA5LzExXSBweXRob24zLXB5cXQ2LWNoYXJ0czogY2xlYW51cCBk ZXBlbmRlbmNpZXMKCi0tLQogc3JjcGtncy9weXRob24zLXB5cXQ2LWNoYXJ0cy90ZW1wbGF0ZSB8 IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL3B5dGhvbjMtcHlxdDYtY2hhcnRzL3RlbXBsYXRlIGIvc3Jj cGtncy9weXRob24zLXB5cXQ2LWNoYXJ0cy90ZW1wbGF0ZQppbmRleCAwYjVjNjdmNzAwMDcuLjlm OGM1ZDA1ZDdiOSAxMDA2NDQKLS0tIGEvc3JjcGtncy9weXRob24zLXB5cXQ2LWNoYXJ0cy90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL3B5dGhvbjMtcHlxdDYtY2hhcnRzL3RlbXBsYXRlCkBAIC0zLDgg KzMsOCBAQCBwa2duYW1lPXB5dGhvbjMtcHlxdDYtY2hhcnRzCiB2ZXJzaW9uPTYuNC4wCiByZXZp c2lvbj0xCiBidWlsZF9zdHlsZT1zaXAtYnVpbGQKLWhvc3RtYWtlZGVwZW5kcz0icXQ2LWNoYXJ0 cy1kZXZlbCBweXRob24zLXB5cXQ2LXdpZGdldHMtZGV2ZWwKLSBweXRob24zLVB5UXQtYnVpbGRl ciBwa2ctY29uZmlnIgorYnVpbGRfaGVscGVyPSJweXRob24zIgoraG9zdG1ha2VkZXBlbmRzPSJx dDYtYmFzZSBweXRob24zLVB5UXQtYnVpbGRlciBwa2ctY29uZmlnIgogbWFrZWRlcGVuZHM9InF0 Ni1jaGFydHMtZGV2ZWwgcHl0aG9uMy1weXF0Ni13aWRnZXRzLWRldmVsIgogZGVwZW5kcz0icHl0 aG9uMy1weXF0NiIKIHNob3J0X2Rlc2M9IlF0NiBiaW5kaW5ncyBmb3IgQ2hhcnRzIC0gUHl0aG9u IDMiCgpGcm9tIDU5ODk3MWRiYWRiY2MxOTZhYzdhNzQ1NGE2NmMyN2MwNTUxYTZlNjggTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUx PUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29tPgpEYXRl OiBUaHUsIDIzIEZlYiAyMDIzIDEwOjIwOjQ1ICswNzAwClN1YmplY3Q6IFtQQVRDSCAxMC8xMV0g cHl0aG9uMy1weXF0Ni1uZXR3b3JrYXV0aDogY2xlYW51cCBkZXBlbmRlbmNpZXMKCi0tLQogc3Jj cGtncy9weXRob24zLXB5cXQ2LW5ldHdvcmthdXRoL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUg Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvcHl0aG9uMy1weXF0Ni1uZXR3b3JrYXV0aC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcHl0aG9u My1weXF0Ni1uZXR3b3JrYXV0aC90ZW1wbGF0ZQppbmRleCAxNjBjMGU5OGRiZWEuLjgyNjBiYzFm Y2I3MiAxMDA2NDQKLS0tIGEvc3JjcGtncy9weXRob24zLXB5cXQ2LW5ldHdvcmthdXRoL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvcHl0aG9uMy1weXF0Ni1uZXR3b3JrYXV0aC90ZW1wbGF0ZQpAQCAt Myw4ICszLDggQEAgcGtnbmFtZT1weXRob24zLXB5cXQ2LW5ldHdvcmthdXRoCiB2ZXJzaW9uPTYu NC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1zaXAtYnVpbGQKLWhvc3RtYWtlZGVwZW5kcz0i cHl0aG9uMy1weXF0Ni1uZXR3b3JrLWRldmVsIHF0Ni1uZXR3b3JrYXV0aC1kZXZlbAotIHB5dGhv bjMtUHlRdC1idWlsZGVyIHBrZy1jb25maWciCitidWlsZF9oZWxwZXI9InB5dGhvbjMiCitob3N0 bWFrZWRlcGVuZHM9InF0Ni1iYXNlIHB5dGhvbjMtUHlRdC1idWlsZGVyIHBrZy1jb25maWciCiBt YWtlZGVwZW5kcz0icHl0aG9uMy1weXF0Ni1uZXR3b3JrLWRldmVsIHF0Ni1uZXR3b3JrYXV0aC1k ZXZlbCIKIGRlcGVuZHM9InB5dGhvbjMtcHlxdDYiCiBzaG9ydF9kZXNjPSJRdDYgYmluZGluZ3Mg Zm9yIE5ldHdvcmtBdXRoIC0gUHl0aG9uIDMiCgpGcm9tIGY4ZTFmMDQ2YmUzNTRhM2NlNjgzN2Y5 NGM3MTJlNzU0OWY1NTBlYWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/ cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNv bmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBNb24sIDggQXVnIDIwMjIgMjE6NDI6MzQgKzA3MDAK U3ViamVjdDogW1BBVENIIDExLzExXSBjYWxpYnJlOiB1cGRhdGUgdG8gNi4xMy4wCgotLS0KIHNy Y3BrZ3MvY2FsaWJyZS90ZW1wbGF0ZSB8IDUwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzNiBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2NhbGlicmUvdGVtcGxhdGUgYi9zcmNwa2dzL2Nh bGlicmUvdGVtcGxhdGUKaW5kZXggNDljMTMyZDBjMTg3Li5lZGNkMTlmYzgxYzcgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvY2FsaWJyZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2NhbGlicmUvdGVtcGxh dGUKQEAgLTEsMjQgKzEsMjggQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2NhbGlicmUnCiBwa2du YW1lPWNhbGlicmUKLXZlcnNpb249NS40NC4wCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTYuMTMuMAor cmV2aXNpb249MQogYnVpbGRfc3R5bGU9cHl0aG9uMy1tb2R1bGUKIHB5Y29tcGlsZV9kaXJzPSIv dXNyL2xpYi9jYWxpYnJlLyIKLWhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBweXRob24zLUJl YXV0aWZ1bFNvdXA0IHB5dGhvbjMtUGlsbG93IHB5dGhvbjMtUHlRdDUtc3ZnCi0gcHl0aG9uMy1Q eVF0NS13ZWJlbmdpbmUgcHl0aG9uMy1hcHN3IHB5dGhvbjMtY3NzLXBhcnNlciBweXRob24zLWRh dGV1dGlsCi0gcHl0aG9uMy1kZXZlbCBweXRob24zLWh0bWw1LXBhcnNlciBweXRob24zLW1zZ3Bh Y2sgcHl0aG9uMy1yZWdleCBxdDUtcW1ha2UKLSBsaWJwb2RvZm8tZGV2ZWwgcHl0aG9uMy1QeVF0 LWJ1aWxkZXIgcHl0aG9uMy1QeVF0NS1kZXZlbCBxdDUtaG9zdC10b29scwotIHB5dGhvbjMtemVy b2NvbmYgeGRnLXV0aWxzIHJhcHlkc2NyaXB0LW5nIgotbWFrZWRlcGVuZHM9ImxpYmlucHV0LWRl dmVsIGxpYm1hZ2ljay1kZXZlbCBsaWJtdHAtZGV2ZWwKLSBsaWJwb2RvZm8tZGV2ZWwgbGlid21m LWRldmVsIGxpYnhrYmNvbW1vbi1kZXZlbCBweXRob24zLVB5UXQ1LWRldmVsCi0gcXQ1LWRldmVs IHNxbGl0ZS1kZXZlbCB0c2xpYi1kZXZlbCBodW5zcGVsbC1kZXZlbCBoeXBoZW4tZGV2ZWwgbGli c3RlbW1lci1kZXZlbCIKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBjbWFrZSBweXRob24z LUJlYXV0aWZ1bFNvdXA0IHB5dGhvbjMtUGlsbG93CisgcHl0aG9uMy1hcHN3IHB5dGhvbjMtY3Nz LXBhcnNlciBweXRob24zLWRhdGV1dGlsCisgcHl0aG9uMy1kZXZlbCBweXRob24zLWh0bWw1LXBh cnNlciBweXRob24zLW1zZ3BhY2sgcHl0aG9uMy1yZWdleAorIHB5dGhvbjMtemVyb2NvbmYgeGRn LXV0aWxzIHJhcHlkc2NyaXB0LW5nIGxpYnBvZG9mby1kZXZlbAorIHB5dGhvbjMtcHlxdDYtc3Zn IHB5dGhvbjMtcHlxdDYtd2ViZW5naW5lIHB5dGhvbjMtcHlxdDYtZGV2ZWwKKyBxdDYtYmFzZS1k ZXZlbCBweXRob24zLVB5UXQtYnVpbGRlciIKK21ha2VkZXBlbmRzPSJsaWJpbnB1dC1kZXZlbCBs aWJtYWdpY2stZGV2ZWwgbGlibXRwLWRldmVsIGxpYnN0ZW1tZXItZGV2ZWwKKyBsaWJwb2RvZm8t ZGV2ZWwgbGlid21mLWRldmVsIGxpYnhrYmNvbW1vbi1kZXZlbCBwb3BwbGVyLWNwcC1kZXZlbAor IGZyZWV0eXBlLWRldmVsIHVjaGFyZGV0LWRldmVsIG9wZW5zc2wtZGV2ZWwgaWN1LWRldmVsIGxp YnVzYi1kZXZlbAorIHNxbGl0ZS1kZXZlbCB0c2xpYi1kZXZlbCBodW5zcGVsbC1kZXZlbCBoeXBo ZW4tZGV2ZWwgbGlic3RlbW1lci1kZXZlbAorIHB5dGhvbjMtcHlxdDYtZGV2ZWwgcHl0aG9uMy1w eXF0Ni13ZWJlbmdpbmUtZGV2ZWwgcXQ2LXdlYmVuZ2luZS1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0 b3AtZmlsZS11dGlscyBvcHRpcG5nIHBvcHBsZXItdXRpbHMgcHl0aG9uMy1CZWF1dGlmdWxTb3Vw NAotIHB5dGhvbjMtTWFya2Rvd24gcHl0aG9uMy1QaWxsb3cgcHl0aG9uMy1QeVF0NS1zdmcgcHl0 aG9uMy16ZXJvY29uZgotIHB5dGhvbjMtUHlRdDUtd2ViZW5naW5lIHB5dGhvbjMtUHlRdDUtd2Vi Y2hhbm5lbCBweXRob24zLVB5Z21lbnRzIHB5dGhvbjMtYXBzdworIHB5dGhvbjMtTWFya2Rvd24g cHl0aG9uMy1QaWxsb3cgcHl0aG9uMy16ZXJvY29uZiBweXRob24zLVB5Z21lbnRzIHB5dGhvbjMt YXBzdwogIHB5dGhvbjMtY3NzLXBhcnNlciBweXRob24zLWNzc3NlbGVjdCBweXRob24zLWRhdGV1 dGlsIHB5dGhvbjMtamVlcG5leQogIHB5dGhvbjMtZG5zcHl0aG9uIHB5dGhvbjMtZmVlZHBhcnNl ciBweXRob24zLWh0bWw1LXBhcnNlciBweXRob24zLW1lY2hhbml6ZQogIHB5dGhvbjMtbXNncGFj ayBweXRob24zLW5ldGlmYWNlcyBweXRob24zLXBzdXRpbCBweXRob24zLXJlZ2V4IHB5dGhvbjMt aHRtbDJ0ZXh0Ci0gcHl0aG9uMy1weWNobSBweXRob24zLWNjaGFyZGV0IHF0NS13ZWJlbmdpbmUg c3BlZWNoLWRpc3BhdGNoZXIgcHl0aG9uMy1zZ21sbGliIgorIHB5dGhvbjMtcHljaG0gcHl0aG9u My1jY2hhcmRldCBzcGVlY2gtZGlzcGF0Y2hlciBweXRob24zLXNnbWxsaWIKKyBweXRob24zLWh0 bWw1bGliCisgcHl0aG9uMy1weXF0Ni13ZWJjaGFubmVsIHB5dGhvbjMtcHlxdDYtc3ZnIHB5dGhv bjMtcHlxdDYtd2ViZW5naW5lIgogIyBzaG91bGQgY2hlY2sgaWYgcHl0aG9uMy1weWNyeXB0b2Rv bWUgaXMgc3RpbGwgbmVlZGVkCiBjaGVja2RlcGVuZHM9IiR7ZGVwZW5kc30gbGlianBlZy10dXJi by10b29scyBqeHJsaWIgcHl0aG9uMy1weWNyeXB0b2RvbWUiCiBzaG9ydF9kZXNjPSJFYm9vayBt YW5hZ2VtZW50IGFwcGxpY2F0aW9uIgpAQCAtMjcsNyArMzEsNyBAQCBsaWNlbnNlPSJHUEwtMy4w LW9ubHkiCiBob21lcGFnZT0iaHR0cHM6Ly9jYWxpYnJlLWVib29rLmNvbSIKIGNoYW5nZWxvZz0i aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2tvdmlkZ295YWwvY2FsaWJyZS9tYXN0 ZXIvQ2hhbmdlbG9nLnR4dCIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9kb3dubG9hZC5jYWxpYnJlLWVi b29rLmNvbS8ke3ZlcnNpb259L2NhbGlicmUtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT02 ZmZhYTNlYWZkMzZhMjQzNTVlNTk1N2YwZjgzOGRiNmRiNmQzNDU2Y2ZhMTdjYjRkMTM5ZmQ5NGVi YWY4OGVjCitjaGVja3N1bT1lYjQwZjM0YjcxMDZlM2YzNmQzN2UwYjY1ZGFjYjVjZWM4NjM2NjVj NjhmYjIzNTA1OTJkYmMxZWMxMzNhZWEzCiBweXRob25fdmVyc2lvbj0zCiBsaWIzMmRpc2FibGVk PXllcwogbm9jcm9zcz15ZXMKQEAgLTQxLDE1ICs0NSwzMiBAQCBkb19jb25maWd1cmUoKSB7CiAJ CS1lICIvaW1wb3J0IGNvbmZpZ19kaXIvLC9vcy5ybWRpcihjb25maWdfZGlyKS9kIiBcCiAJCS1l ICJzLydjdGMtcG9zbWwnLyd0ZXh0JyBub3QgaW4gbXQgYW5kICdwZGYnIG5vdCBpbiBtdCBhbmQg J3hodG1sJy8iIFwKIAkJLWUgInMvXk5hbWU9Y2FsaWJyZS9OYW1lPUNhbGlicmUvZyIKKwljYXQg PiIke1hCUFNfV1JBUFBFUkRJUn0vc2lwLXFtYWtlIiA8PC1fRU9GCisJIyEvYmluL3NoCisJZXhl YyAvdXNyL2xpYi9xdDYvYmluL3FtYWtlIFxcCisJCSJcJEAiIFxcCisJCVBSRUZJWD0vdXNyIFxc CisJCVFUX0lOU1RBTExfUFJFRklYPS91c3IgXFwKKwkJTElCPS91c3IvbGliIFxcCisJCVFNQUtF X0NDPSIkQ0MiIFFNQUtFX0NYWD0iJENYWCIgXFwKKwkJUU1BS0VfTElOSz0iJENYWCIgUU1BS0Vf TElOS19DPSIkQ0MiIFxcCisJCVFNQUtFX0NGTEFHUys9IiRDRkxBR1MiIFxcCisJCVFNQUtFX0NY WEZMQUdTKz0iJENYWEZMQUdTIiBcXAorCQlRTUFLRV9MRkxBR1MrPSIkTERGTEFHUyIgXFwKKwkJ Q09ORklHKz1ub19xdF9ycGF0aAorCV9FT0YKKwljaG1vZCA3NTUgJHtYQlBTX1dSQVBQRVJESVJ9 L3NpcC1xbWFrZQogfQogCiBkb19idWlsZCgpIHsKKwlleHBvcnQgUU1BS0U9JHtYQlBTX1dSQVBQ RVJESVJ9L3NpcC1xbWFrZQogCXB5dGhvbjMgc2V0dXAucHkgYnVpbGQKIAlweXRob24zIHNldHVw LnB5IGd1aQogCXB5dGhvbjMgc2V0dXAucHkgcmFweWRzY3JpcHQKIH0KIAogZG9fY2hlY2soKSB7 CisJZXhwb3J0IFFNQUtFPSR7WEJQU19XUkFQUEVSRElSfS9zaXAtcW1ha2UKIAkjIHF0IHRlc3Qg Y3Jhc2hlcyB3aXRob3V0IGFueSBlcnJvciBtZXNzYWdlcwogCSMgZGlzYWJsZWQgZm9yIG5vdwog CSMgdW5yYXIgdGVzdCBmYWlscyBiZWNhdXNlIHB5dGhvbjMtdW5yYXJkbGwgaXNuJ3QgcGFja2Fn ZWQKQEAgLTY1LDYgKzg2LDcgQEAgZG9fY2hlY2soKSB7CiB9CiAKIGRvX2luc3RhbGwoKSB7CisJ ZXhwb3J0IFFNQUtFPSR7WEJQU19XUkFQUEVSRElSfS9zaXAtcW1ha2UKIAl2bWtkaXIgdXNyL3No YXJlL3pzaC9zaXRlLWZ1bmN0aW9ucwogCiAJcHl0aG9uMyBzZXR1cC5weSBcCg== --===============4354315396164724766==--