From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 29384 invoked from network); 5 Nov 2023 14:34:35 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 5 Nov 2023 14:34:35 -0000 Content-Type: multipart/mixed; boundary="===============7857521803753750404==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_chromium=3A_update_to_119=2E0=2E6045=2E105=2E?= To: ml@inbox.vuxu.org From: Duncaen Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sun, 05 Nov 2023 15:34:35 +0100 List-Id: Message-ID: <20231105143435.K_fqJa1r8o8-EUW14evXQuSVij14jw6ReJf83urSByQ@z> GitHub notification mails are now in MIME to allow UTF8. --===============7857521803753750404== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgRHVuY2FlbiBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vRHVu Y2Flbi92b2lkLXBhY2thZ2VzIGNocm9taXVtLTExOQpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1s aW51eC92b2lkLXBhY2thZ2VzL3B1bGwvNDcwNTgKCmNocm9taXVtOiB1cGRhdGUgdG8gMTE5LjAu NjA0NS4xMDUuCltjaSBza2lwXQ0KDQoqIFt4XSB4ODZfNjQtZ2xpYmMNCiogW3hdIHg4Nl82NC1t dXNsDQoqIFsgXSBhYXJjaDY0LW11c2wNCiogWyBdIGk2ODYKCkEgcGF0Y2ggZmlsZSBmcm9tIGh0 dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC80NzA1OC5wYXRj aCBpcyBhdHRhY2hlZA== --===============7857521803753750404== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-chromium-119-47058.patch" RnJvbSAyZjU5YjgyMzdiNDVmNDJiZWJiNTY2YWFmNTZmOGYzZjcwZDEwZTc3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEdW5jYWVuIDxkdW5jYWVuQHZvaWRsaW51eC5vcmc+CkRhdGU6 IFNhdCwgNCBOb3YgMjAyMyAxNjowMjozOSArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIGNocm9taXVt OiB1cGRhdGUgdG8gMTE5LjAuNjA0NS4xMDUuCgotLS0KIC4uLi9jaHJvbWl1bS0xMTgtdXNlX3N5 c3RlbV9mcmVldHlwZS5wYXRjaCAgICB8ICA5MSAtLS0KIC4uLi9wYXRjaGVzL2Nocm9taXVtLTEx OS1hc3NlcnQucGF0Y2ggICAgICAgICB8ICAxMiArCiAuLi4vcGF0Y2hlcy9jaHJvbWl1bS0xMTkt Y29uc3RleHByLnBhdGNoICAgICAgfCAgMTIgKwogLi4uLjQucGF0Y2ggPT4gY2hyb21pdW0tMTE5 LWZmbXBlZy00LjQucGF0Y2h9IHwgIDE0ICstCiAuLi4vY2hyb21pdW0tMTE5LWZpeC1hYXJjaDY0 LW11c2wucGF0Y2ggICAgICAgfCAgMTEgKwogLi4udFZpZGVvRGVjb2Rlci1mbGFnLW9uLVZBLUFQ SS1kZXZpY2VzLnBhdGNoIHwgMTk1ICsrKysrKwogLi4uPiBjaHJvbWl1bS0xMTktbWlzc2luZy1o ZWFkZXItZmlsZXMucGF0Y2h9IHwgIDEyIC0KIC4uLmhyb21pdW0tMTE5LW5vX21hdGNoaW5nX2Nv bnN0cnVjdG9yLnBhdGNofSB8IDYwOCArKysrKysrKysrKy0tLS0tLS0KIC4uLi0xMTktbnVsbHB0 cl90LXdpdGhvdXQtbmFtZXNwYWNlLXN0ZC5wYXRjaCB8ICAyMSArCiAuLi5hLXVzZS1zZXBhcmF0 ZS1iby10by12ZXJpZnktbW9kaWZpZXIucGF0Y2ggfCAxNjQgKysrKysKIHNyY3BrZ3MvY2hyb21p dW0vdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICB8ICAgNyArLQogMTEgZmlsZXMgY2hhbmdl ZCwgNzk3IGluc2VydGlvbnMoKyksIDM1MCBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTE4LXVzZV9zeXN0ZW1fZnJlZXR5 cGUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hy b21pdW0tMTE5LWFzc2VydC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21p dW0vcGF0Y2hlcy9jaHJvbWl1bS0xMTktY29uc3RleHByLnBhdGNoCiByZW5hbWUgc3JjcGtncy9j aHJvbWl1bS9wYXRjaGVzL3tjaHJvbWl1bS0xMTgtZmZtcGVnLTQuNC5wYXRjaCA9PiBjaHJvbWl1 bS0xMTktZmZtcGVnLTQuNC5wYXRjaH0gKDUzJSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTE5LWZpeC1hYXJjaDY0LW11c2wucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTE5LWhp ZGUtVXNlQ2hyb21lT1NEaXJlY3RWaWRlb0RlY29kZXItZmxhZy1vbi1WQS1BUEktZGV2aWNlcy5w YXRjaAogcmVuYW1lIHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy97Y2hyb21pdW0tMTE4LW1pc3Np bmctaGVhZGVyLWZpbGVzLnBhdGNoID0+IGNocm9taXVtLTExOS1taXNzaW5nLWhlYWRlci1maWxl cy5wYXRjaH0gKDk3JSkKIHJlbmFtZSBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMve2Nocm9taXVt LTExOC1ub19tYXRjaGluZ19jb25zdHJ1Y3Rvci5wYXRjaCA9PiBjaHJvbWl1bS0xMTktbm9fbWF0 Y2hpbmdfY29uc3RydWN0b3IucGF0Y2h9ICg1NiUpCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTExOS1udWxscHRyX3Qtd2l0aG91dC1uYW1lc3Bh Y2Utc3RkLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVz L2Nocm9taXVtLTExOS1udmlkaWEtdXNlLXNlcGFyYXRlLWJvLXRvLXZlcmlmeS1tb2RpZmllci5w YXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMTgt dXNlX3N5c3RlbV9mcmVldHlwZS5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJv bWl1bS0xMTgtdXNlX3N5c3RlbV9mcmVldHlwZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggY2U5ZmJkZWJlMmZiNy4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2Nocm9t aXVtL3BhdGNoZXMvY2hyb21pdW0tMTE4LXVzZV9zeXN0ZW1fZnJlZXR5cGUucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSw5MSArMCwwIEBACi1jb21taXQgZWQzNTRkMDBhZWRhODQ2OTM2MTFiMTRi YWE1NmEyODc1NTdhMjZiNQotQXV0aG9yOiBNdW5pcmEgVHVyc3Vub3ZhIDxtb29uaXJhQGdvb2ds ZS5jb20+Ci1EYXRlOiAgIFR1ZSBTZXAgMTIgMTE6NTQ6NDggMjAyMyArMDAwMAotCi0gICAgQWRk IGNoZWNrIGZvciB1c2Vfc3lzdGVtX2ZyZWV0eXBlIHdoZW4gaW1wb3J0aW5nIHByaXZhdGUgZnJl ZXR5cGUgaGVhZGVyCi0gICAgCi0gICAgSW4gWzBdIHRoZSBpbmNsdWRlIG9mIHByaXZhdGUgZnJl ZXR5cGUgaGVhZGVyIHdhcyBhZGRlZCwgd2hpY2ggY2F1c2VkCi0gICAgYnVpbGQgYnJlYWthZ2Ug d2hlbiB1c2Vfc3lzdGVtX2ZyZWV0eXBlPXRydWUsIHNlZSBbMV0uCi0gICAgCi0gICAgVGhpcyBD TCBmaXhlcyB0aGUgYnJlYWthZ2UgYnkgaW50cm9kdWNpbmcgVVNFX1NZU1RFTV9GUkVFVFlQRSBi dWlsZCBmbGFnLgotICAgIAotICAgIFswXSBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVz b3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysvNDcxNzQ4NQotICAgIFsxXSBodHRwczovL2Nocm9t aXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysvNDcxNzQ4NS9jb21t ZW50cy9jZGZjYTdiOV84ZTYxYjJlMAotICAgIAotICAgIEJ1ZzogMTQyOTU4MQotICAgIENoYW5n ZS1JZDogSTdmN2RlNGNkYjJkYzQ2MDkyYTkxYTQ3ZDc2NmJlZGI1OGRkY2NiN2MKLSAgICBSZXZp ZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9t aXVtL3NyYy8rLzQ4NDM0MjgKLSAgICBDb21taXQtUXVldWU6IE11bmlyYSBUdXJzdW5vdmEgPG1v b25pcmFAZ29vZ2xlLmNvbT4KLSAgICBSZXZpZXdlZC1ieTogRG9taW5payBSw7Z0dHNjaGVzIDxk cm90dEBjaHJvbWl1bS5vcmc+Ci0gICAgUmV2aWV3ZWQtYnk6IFJpY2sgQnllcnMgPHJieWVyc0Bj aHJvbWl1bS5vcmc+Ci0gICAgQ3ItQ29tbWl0LVBvc2l0aW9uOiByZWZzL2hlYWRzL21haW5AeyMx MTk1MzIzfQotCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvQlVJTEQuZ24gYi90aGlyZF9wYXJ0 eS9CVUlMRC5nbgotaW5kZXggN2IwODZmOTU0MTNmZi4uNGNlNzk3ZWJhZDcyMiAxMDA2NDQKLS0t LSBhL3RoaXJkX3BhcnR5L0JVSUxELmduCi0rKysgYi90aGlyZF9wYXJ0eS9CVUlMRC5nbgotQEAg LTIsNiArMiw3IEBACi0gIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh IEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0gIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBm aWxlLgotIAotK2ltcG9ydCgiLy9idWlsZC9idWlsZGZsYWdfaGVhZGVyLmduaSIpCi0gaW1wb3J0 KCIvL2J1aWxkL2NvbmZpZy9mZWF0dXJlcy5nbmkiKQotIGltcG9ydCgiLy9idWlsZC9jb25maWcv ZnJlZXR5cGUvZnJlZXR5cGUuZ25pIikKLSBpbXBvcnQoIi8vdGhpcmRfcGFydHkvaGFyZmJ1enot bmcvaGFyZmJ1enouZ25pIikKLUBAIC02NSwzICs2Niw4IEBAIGNvbXBvbmVudCgiZnJlZXR5cGVf aGFyZmJ1enoiKSB7Ci0gICAgIHB1YmxpY19kZXBzICs9IFsgIi8vdGhpcmRfcGFydHkvaGFyZmJ1 enotbmc6aGFyZmJ1enpfc291cmNlIiBdCi0gICB9Ci0gfQotKwotK2J1aWxkZmxhZ19oZWFkZXIo ImZyZWV0eXBlX2J1aWxkZmxhZ3MiKSB7Ci0rICBoZWFkZXIgPSAiZnJlZXR5cGVfYnVpbGRmbGFn cy5oIgotKyAgZmxhZ3MgPSBbICJVU0VfU1lTVEVNX0ZSRUVUWVBFPSR1c2Vfc3lzdGVtX2ZyZWV0 eXBlIiBdCi0rfQotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRm b3JtL0JVSUxELmduIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vQlVJTEQu Z24KLWluZGV4IDU5MWQyZjkzOTYwNWIuLmY2YTJjZDIxNjhkMWUgMTAwNjQ0Ci0tLS0gYS90aGly ZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9CVUlMRC5nbgotKysrIGIvdGhpcmRfcGFy dHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vQlVJTEQuZ24KLUBAIC0xNzE3LDYgKzE3MTcsNyBA QCBjb21wb25lbnQoInBsYXRmb3JtIikgewotICAgICAiLy9zZXJ2aWNlcy92aXovcHVibGljL2Nw cC9ncHUiLAotICAgICAiLy9za2lhIiwKLSAgICAgIi8vc2tpYTpza2NtcyIsCi0rICAgICIvL3Ro aXJkX3BhcnR5OmZyZWV0eXBlX2J1aWxkZmxhZ3MiLAotICAgICAiLy90aGlyZF9wYXJ0eTpmcmVl dHlwZV9oYXJmYnV6eiIsCi0gICAgICIvL3RoaXJkX3BhcnR5L2Fic2VpbC1jcHA6YWJzbCIsCi0g ICAgICIvL3RoaXJkX3BhcnR5L2JsaW5rL3B1YmxpYzppbWFnZV9yZXNvdXJjZXMiLAotZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL3NpbXBsZV9m b250X2RhdGEuY2MgYi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9z aW1wbGVfZm9udF9kYXRhLmNjCi1pbmRleCBhYmUwNmYzNWMxNGE1Li5iMmJmZDg4ZjBkODVkIDEw MDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvc2lt cGxlX2ZvbnRfZGF0YS5jYwotKysrIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZv cm0vZm9udHMvc2ltcGxlX2ZvbnRfZGF0YS5jYwotQEAgLTQ4LDcgKzQ4LDcgQEAKLSAjaW5jbHVk ZSAidGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vd3RmL21hdGhfZXh0cmFzLmgi Ci0gI2luY2x1ZGUgInRoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3d0Zi90ZXh0 L2NoYXJhY3Rlcl9uYW1lcy5oIgotICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJl ci9wbGF0Zm9ybS93dGYvdGV4dC91bmljb2RlLmgiCi0tI2luY2x1ZGUgInRoaXJkX3BhcnR5L2Zy ZWV0eXBlL3NyYy9zcmMvYXV0b2ZpdC9hZndzLWRlY2wuaCIKLSsjaW5jbHVkZSAidGhpcmRfcGFy dHkvZnJlZXR5cGVfYnVpbGRmbGFncy5oIgotICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9za2lhL2lu Y2x1ZGUvY29yZS9Ta0ZvbnRNZXRyaWNzLmgiCi0gI2luY2x1ZGUgInRoaXJkX3BhcnR5L3NraWEv aW5jbHVkZS9jb3JlL1NrUGF0aC5oIgotICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9za2lhL2luY2x1 ZGUvY29yZS9Ta1R5cGVmYWNlLmgiCi1AQCAtNTcsMTIgKzU3LDIyIEBACi0gI2luY2x1ZGUgInVp L2dmeC9nZW9tZXRyeS9za2lhX2NvbnZlcnNpb25zLmgiCi0gI2luY2x1ZGUgInY4L2luY2x1ZGUv djguaCIKLSAKLSsjaWYgIUJVSUxERkxBRyhVU0VfU1lTVEVNX0ZSRUVUWVBFKQotKyNpbmNsdWRl ICJ0aGlyZF9wYXJ0eS9mcmVldHlwZS9zcmMvc3JjL2F1dG9maXQvYWZ3cy1kZWNsLmgiCi0rI2Vu ZGlmCi0rCi0gbmFtZXNwYWNlIGJsaW5rIHsKLSAKLSBjb25zdGV4cHIgZmxvYXQga1NtYWxsQ2Fw c0ZvbnRTaXplTXVsdGlwbGllciA9IDAuN2Y7Ci0gY29uc3RleHByIGZsb2F0IGtFbXBoYXNpc01h cmtGb250U2l6ZU11bHRpcGxpZXIgPSAwLjVmOwotKwotKyNpZiAhQlVJTERGTEFHKFVTRV9TWVNU RU1fRlJFRVRZUEUpCi0gY29uc3RleHByIGludDMyX3Qga0ZvbnRPYmplY3RzTWVtb3J5Q29uc3Vt cHRpb24gPQotICAgICBzdGQ6Om1heChzaXplb2YoQUZfTGF0aW5NZXRyaWNzUmVjKSwgc2l6ZW9m KEFGX0NKS01ldHJpY3NSZWMpKTsKLSsjZWxzZQotKy8vIHNpemVvZihBRl9MYXRpbk1ldHJpY3NS ZWMpID0gMjEyOAotK2NvbnN0ZXhwciBpbnQzMl90IGtGb250T2JqZWN0c01lbW9yeUNvbnN1bXB0 aW9uID0gMjEyODsKLSsjZW5kaWYKLSAKLSBTaW1wbGVGb250RGF0YTo6U2ltcGxlRm9udERhdGEo Y29uc3QgRm9udFBsYXRmb3JtRGF0YSYgcGxhdGZvcm1fZGF0YSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2NvcGVkX3JlZnB0cjxDdXN0b21Gb250RGF0YT4gY3VzdG9tX2RhdGEs CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTE5LWFzc2Vy dC5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMTktYXNzZXJ0LnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjZjNTAyZjEzYTU5 NTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0t MTE5LWFzc2VydC5wYXRjaApAQCAtMCwwICsxLDEyIEBACitkaWZmIC11cCBjaHJvbWl1bS0xMTku MC42MDQ1LjU5L3Y4L3NyYy9iYXNlL3NtYWxsLXZlY3Rvci5oLnRoYW4gY2hyb21pdW0tMTE5LjAu NjA0NS41OS92OC9zcmMvYmFzZS9zbWFsbC12ZWN0b3IuaAorLS0tIGNocm9taXVtLTExOS4wLjYw NDUuNTkvdjgvc3JjL2Jhc2Uvc21hbGwtdmVjdG9yLmgudGhhbgkyMDIzLTExLTAxIDE2OjEzOjEy LjY0NTMwMTM0NSArMDEwMAorKysrIGNocm9taXVtLTExOS4wLjYwNDUuNTkvdjgvc3JjL2Jhc2Uv c21hbGwtdmVjdG9yLmgJMjAyMy0xMS0wMSAxNjoxMzoyOS42NjA2MTAxODIgKzAxMDAKK0BAIC0y Miw3ICsyMiw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBULCBzaXplX3Qga1NpemUsIHR5cGUKKyBj bGFzcyBTbWFsbFZlY3RvciB7CisgICAvLyBDdXJyZW50bHkgb25seSBzdXBwb3J0IHRyaXZpYWxs eSBjb3B5YWJsZSBhbmQgdHJpdmlhbGx5IGRlc3RydWN0aWJsZSBkYXRhCisgICAvLyB0eXBlcywg YXMgaXQgdXNlcyBtZW1jcHkgdG8gY29weSBlbGVtZW50cyBhbmQgbmV2ZXIgY2FsbHMgZGVzdHJ1 Y3RvcnMuCistICBBU1NFUlRfVFJJVklBTExZX0NPUFlBQkxFKFQpOworKyAgLy9BU1NFUlRfVFJJ VklBTExZX0NPUFlBQkxFKFQpOworICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9k ZXN0cnVjdGlibGU8VD46OnZhbHVlKTsKKyAKKyAgcHVibGljOgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTExOS1jb25zdGV4cHIucGF0Y2ggYi9zcmNwa2dz L2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTE5LWNvbnN0ZXhwci5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5iMTk1ZmY0MDhiYTgxCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTExOS1jb25zdGV4cHIu cGF0Y2gKQEAgLTAsMCArMSwxMiBAQAorZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9j b21wb25lbnRzL21pcmFjbGVfcGFyYW1ldGVyL2NvbW1vbi9wdWJsaWMvbWlyYWNsZV9wYXJhbWV0 ZXIuaC5tZSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbXBvbmVudHMvbWlyYWNsZV9wYXJhbWV0 ZXIvY29tbW9uL3B1YmxpYy9taXJhY2xlX3BhcmFtZXRlci5oCistLS0gY2hyb21pdW0tMTE5LjAu NjA0NS41OS9jb21wb25lbnRzL21pcmFjbGVfcGFyYW1ldGVyL2NvbW1vbi9wdWJsaWMvbWlyYWNs ZV9wYXJhbWV0ZXIuaC5tZQkyMDIzLTEwLTMxIDIxOjA1OjA1LjU0ODU2NTI0MSArMDEwMAorKysr IGNocm9taXVtLTExOS4wLjYwNDUuNTkvY29tcG9uZW50cy9taXJhY2xlX3BhcmFtZXRlci9jb21t b24vcHVibGljL21pcmFjbGVfcGFyYW1ldGVyLmgJMjAyMy0xMC0zMSAyMToyMDo1My45NDU1MzIw OTQgKzAxMDAKK0BAIC05Myw3ICs5Myw3IEBAIGNsYXNzIE1pcmFjbGVQYXJhbWV0ZXIgeworIHRl bXBsYXRlIDw+CisgY2xhc3MgTWlyYWNsZVBhcmFtZXRlcjxzdGQ6OnN0cmluZz4gOiBwdWJsaWMg TWlyYWNsZVBhcmFtZXRlckJhc2U8c3RkOjpzdHJpbmc+IHsKKyAgcHVibGljOgorLSAgY29uc3Rl eHByIE1pcmFjbGVQYXJhbWV0ZXIoY29uc3QgYmFzZTo6RmVhdHVyZSogZmVhdHVyZSwKKysgIE1p cmFjbGVQYXJhbWV0ZXIoY29uc3QgYmFzZTo6RmVhdHVyZSogZmVhdHVyZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHBhcmFtX25hbWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdGQ6OnN0cmluZyBkZWZhdWx0X3ZhbHVlKQorICAgICAgIDogTWly YWNsZVBhcmFtZXRlckJhc2UoZmVhdHVyZSwgcGFyYW1fbmFtZSwgc3RkOjptb3ZlKGRlZmF1bHRf dmFsdWUpKSB7fQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVt LTExOC1mZm1wZWctNC40LnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVt LTExOS1mZm1wZWctNC40LnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggNTMlCnJlbmFtZSBmcm9tIHNy Y3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMTgtZmZtcGVnLTQuNC5wYXRjaApyZW5h bWUgdG8gc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTExOS1mZm1wZWctNC40LnBh dGNoCmluZGV4IDU1NmM3MzRkNGUwMmUuLjA0ZDA0YjE2NmJhMzcgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMTgtZmZtcGVnLTQuNC5wYXRjaAorKysgYi9z cmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTE5LWZmbXBlZy00LjQucGF0Y2gKQEAg LTEsMTcgKzEsMTUgQEAKLWRpZmYgLS1naXQgYS9tZWRpYS9maWx0ZXJzL2ZmbXBlZ19kZW11eGVy LmNjIGIvbWVkaWEvZmlsdGVycy9mZm1wZWdfZGVtdXhlci5jYwotaW5kZXggYWM0NzEzYjA3MjY4 Li40OTJhOWEzN2QwOTYgMTAwNjQ0Ci0tLS0gYS9tZWRpYS9maWx0ZXJzL2ZmbXBlZ19kZW11eGVy LmNjCistLS0gYS9tZWRpYS9maWx0ZXJzL2ZmbXBlZ19kZW11eGVyLmNjLm9yaWcKICsrKyBiL21l ZGlhL2ZpbHRlcnMvZmZtcGVnX2RlbXV4ZXIuY2MKLUBAIC00NDMsNyArNDQzLDcgQEAgdm9pZCBG Rm1wZWdEZW11eGVyU3RyZWFtOjpFbnF1ZXVlUGFja2V0KFNjb3BlZEFWUGFja2V0IHBhY2tldCkg ewotICAgICBidWZmZXIgPSBEZWNvZGVyQnVmZmVyOjpDb3B5RnJvbShwYWNrZXQtPmRhdGEsIHBh Y2tldC0+c2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lkZV9k YXRhLmRhdGEoKSwgc2lkZV9kYXRhLnNpemUoKSk7Ci0gICB9IGVsc2UgeworQEAgLTM5MCw3ICsz OTAsNyBAQAorIAorICAgc2NvcGVkX3JlZnB0cjxEZWNvZGVyQnVmZmVyPiBidWZmZXI7CisgCiAt ICAgIHNpemVfdCBzaWRlX2RhdGFfc2l6ZSA9IDA7CiArICAgIGludCBzaWRlX2RhdGFfc2l6ZSA9 IDA7CiAgICAgIHVpbnQ4X3QqIHNpZGVfZGF0YSA9IGF2X3BhY2tldF9nZXRfc2lkZV9kYXRhKAog ICAgICAgICAgcGFja2V0LmdldCgpLCBBVl9QS1RfREFUQV9NQVRST1NLQV9CTE9DS0FERElUSU9O QUwsICZzaWRlX2RhdGFfc2l6ZSk7CiAgCi1AQCAtNTA0LDcgKzUwNCw3IEBAIHZvaWQgRkZtcGVn RGVtdXhlclN0cmVhbTo6RW5xdWV1ZVBhY2tldChTY29wZWRBVlBhY2tldCBwYWNrZXQpIHsKK0BA IC00NTMsNyArNDUzLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwYWNrZXQtPnNpemUgLSBkYXRhX29mZnNldCk7CiAgICAgIH0KICAKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMTktZml4LWFhcmNoNjQtbXVzbC5wYXRj aCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMTktZml4LWFhcmNoNjQtbXVz bC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5jYmIyZWMx NGM5MGZiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9t aXVtLTExOS1maXgtYWFyY2g2NC1tdXNsLnBhdGNoCkBAIC0wLDAgKzEsMTEgQEAKKy0tLSBhL3Y4 L3NyYy9iYXNlL2NwdS5jYworKysrIGIvdjgvc3JjL2Jhc2UvY3B1LmNjCitAQCAtMTQsNyArMTQs NyBAQAorICNpZiBWOF9PU19MSU5VWAorICNpbmNsdWRlIDxsaW51eC9hdXh2ZWMuaD4gIC8vIEFU X0hXQ0FQCisgI2VuZGlmCistI2lmIFY4X0dMSUJDX1BSRVJFUSgyLCAxNikgfHwgVjhfT1NfQU5E Uk9JRAorKyNpZiBWOF9PU19MSU5VWCB8fCBWOF9PU19BTkRST0lECisgI2luY2x1ZGUgPHN5cy9h dXh2Lmg+ICAvLyBnZXRhdXh2YWwoKQorICNlbmRpZgorICNpZiBWOF9PU19RTlgKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMTktaGlkZS1Vc2VDaHJvbWVP U0RpcmVjdFZpZGVvRGVjb2Rlci1mbGFnLW9uLVZBLUFQSS1kZXZpY2VzLnBhdGNoIGIvc3JjcGtn cy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTExOS1oaWRlLVVzZUNocm9tZU9TRGlyZWN0Vmlk ZW9EZWNvZGVyLWZsYWctb24tVkEtQVBJLWRldmljZXMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uODhkNjc1ZTgwNDdmMAotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMTktaGlkZS1Vc2VDaHJvbWVPU0Rp cmVjdFZpZGVvRGVjb2Rlci1mbGFnLW9uLVZBLUFQSS1kZXZpY2VzLnBhdGNoCkBAIC0wLDAgKzEs MTk1IEBACitjb21taXQgODdmY2E3ZjE3NTllODAwYmQ3MmI1YWI2NTExZWVhMTdkNjQwMGE3Ngor QXV0aG9yOiBQaWxhciBNb2xpbmEgTG9wZXogPHBtb2xpbmFsb3BlekBjaHJvbWl1bS5vcmc+CitE YXRlOiAgIFR1ZSBPY3QgMjQgMTk6NTc6NTUgMjAyMyArMDAwMAorCisgICAgdmlkZW86IGhpZGUg VXNlQ2hyb21lT1NEaXJlY3RWaWRlb0RlY29kZXIgZmxhZyBvbiBWQS1BUEkgZGV2aWNlcworICAg IAorICAgIFdlIGFyZSBzZWVpbmcgY3Jhc2hlcyBjYXVzZXMgYnkgdGhpcyBDSEVDSyBzdGF0ZW1l bnQ6CisgICAgaHR0cHM6Ly9zb3VyY2UuY2hyb21pdW0ub3JnL2Nocm9taXVtL2Nocm9taXVtL3Ny Yy8rL21haW46Y29udGVudC9wdWJsaWMvYnJvd3Nlci9ncHVfdXRpbHMuY2M7bD0xNTE7ZHJjPTBl Nzc3YmE5YjZjMzQ2MTE3MDVkNWIxNDVjOTJiY2QwOTUzOTAxMWMKKyAgICBJdCdzIHRyaWdnZXJl ZCB3aGVuIHRoZSB1c2VyIG1hbnVhbGx5IGRpc2FibGVzIHRoZSBVc2VDaHJvbWVPU0RpcmVjdFZp ZGVvRGVjb2RlcgorICAgIGZsYWcgb24gVkEtQVBJIGRldmljZXMgKEludGVsIGFuZCBBTUQpLiBU aGlzIGZsYWcgaXMgc3VwcG9ydGVkIG9ubHkgb24KKyAgICBub24tSW50ZWwgYW5kIG5vbi1BTUQg ZGV2aWNlcy4gVGhpcyBDTCBhZGRzIHRoaXMgaW5mb3JtYXRpb24gdG8gdGhlIGZsYWcKKyAgICBk ZXNjcmlwdGlvbiBhbmQgaGlkZXMgdGhlIGZsYWcgaW4gY2FzZSBWQS1BUEkgaXMgdXNlZC4KKyAg ICAKKyAgICBCdWc6IDE0NjkyODUKKyAgICBUZXN0OiBtYW51YWwgdGVzdCBvbiB2b2x0ZWVyCisg ICAgQ2hhbmdlLUlkOiBJMTUzYjljY2IzODE1NDk4YzkxY2U1ZWVlOTY2ODM0MDYwNzQ5ZTI0Nwor ICAgIFJldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29t L2MvY2hyb21pdW0vc3JjLysvNDk2MDkxOQorICAgIFJldmlld2VkLWJ5OiBEYWxlIEN1cnRpcyA8 ZGFsZWN1cnRpc0BjaHJvbWl1bS5vcmc+CisgICAgUmV2aWV3ZWQtYnk6IEFuZHJlcyBDYWxkZXJv biBKYXJhbWlsbG8gPGFuZHJlc2NqQGNocm9taXVtLm9yZz4KKyAgICBSZXZpZXdlZC1ieTogQXZp IERyaXNzbWFuIDxhdmlAY2hyb21pdW0ub3JnPgorICAgIENvbW1pdC1RdWV1ZTogUGlsYXIgTW9s aW5hIExvcGV6IDxwbW9saW5hbG9wZXpAY2hyb21pdW0ub3JnPgorICAgIENyLUNvbW1pdC1Qb3Np dGlvbjogcmVmcy9oZWFkcy9tYWluQHsjMTIxNDQxMX0KKworZGlmZiAtLWdpdCBhL2Nocm9tZS9i cm93c2VyL0RFUFMgYi9jaHJvbWUvYnJvd3Nlci9ERVBTCitpbmRleCBlZTlmYjIwNmNkZTM2Li4w ZmUxODAxM2FiMDQ0IDEwMDY0NAorLS0tIGEvY2hyb21lL2Jyb3dzZXIvREVQUworKysrIGIvY2hy b21lL2Jyb3dzZXIvREVQUworQEAgLTQxOCw2ICs0MTgsNyBAQCBpbmNsdWRlX3J1bGVzID0gWwor ICAgIittZWRpYS9iYXNlIiwgICMgRm9yIG1lZGlhIHN3aXRjaGVzCisgICAiK21lZGlhL2NhcGFi aWxpdGllcyIsICMgRm9yIEluTWVtb3J5VmlkZW9EZWNvZGVTdGF0c0RCCisgICAiK21lZGlhL2Nk bSIsCisrICAiK21lZGlhL2dwdS9idWlsZGZsYWdzLmgiLAorICAgIittZWRpYS9yZW1vdGluZy9k ZXZpY2VfY2FwYWJpbGl0eV9jaGVja2VyLmgiLAorICAgIittZWRpYS9jYXB0dXJlIiwKKyAgICIr bWVkaWEvbWlkaSIsICAjIEZvciBtaWRpIHN3aXRjaGVzCitkaWZmIC0tZ2l0IGEvY2hyb21lL2Jy b3dzZXIvYWJvdXRfZmxhZ3MuY2MgYi9jaHJvbWUvYnJvd3Nlci9hYm91dF9mbGFncy5jYworaW5k ZXggODQ3MDlhZmFhMzRkMC4uNzc3YmViZWIzM2Q5ZSAxMDA2NDQKKy0tLSBhL2Nocm9tZS9icm93 c2VyL2Fib3V0X2ZsYWdzLmNjCisrKysgYi9jaHJvbWUvYnJvd3Nlci9hYm91dF9mbGFncy5jYwor QEAgLTc1NzgsMTEgKzc1NzgsMTMgQEAgY29uc3QgRmVhdHVyZUVudHJ5IGtGZWF0dXJlRW50cmll c1tdID0geworICNlbmRpZiAgLy8gQlVJTERGTEFHKElTX0NIUk9NRU9TX0FTSCkKKyAKKyAjaWYg QlVJTERGTEFHKElTX0NIUk9NRU9TKSAmJiBCVUlMREZMQUcoVVNFX0NIUk9NRU9TX01FRElBX0FD Q0VMRVJBVElPTikKKysjaWYgIUJVSUxERkxBRyhVU0VfVkFBUEkpCisgICAgIHsiY2hyb21lb3Mt ZGlyZWN0LXZpZGVvLWRlY29kZXIiLAorICAgICAgZmxhZ19kZXNjcmlwdGlvbnM6OmtDaHJvbWVP U0RpcmVjdFZpZGVvRGVjb2Rlck5hbWUsCisgICAgICBmbGFnX2Rlc2NyaXB0aW9uczo6a0Nocm9t ZU9TRGlyZWN0VmlkZW9EZWNvZGVyRGVzY3JpcHRpb24sCisgICAgICBrT3NDck9TIHwga09zTGFj cm9zLAorICAgICAgRkVBVFVSRV9WQUxVRV9UWVBFKG1lZGlhOjprVXNlQ2hyb21lT1NEaXJlY3RW aWRlb0RlY29kZXIpfSwKKysjZW5kaWYgIC8vICFCVUlMREZMQUcoVVNFX1ZBQVBJKQorIAorICAg ICB7ImVuYWJsZS12YnItZW5jb2RlLWFjY2VsZXJhdGlvbiIsCisgICAgICBmbGFnX2Rlc2NyaXB0 aW9uczo6a0Nocm9tZU9TSFdWQlJFbmNvZGluZ05hbWUsCitkaWZmIC0tZ2l0IGEvY2hyb21lL2Jy b3dzZXIvZmxhZ19kZXNjcmlwdGlvbnMuY2MgYi9jaHJvbWUvYnJvd3Nlci9mbGFnX2Rlc2NyaXB0 aW9ucy5jYworaW5kZXggMzE4YThiZTlhYjFhNi4uZDI0OTdkMGM0MDNmMyAxMDA2NDQKKy0tLSBh L2Nocm9tZS9icm93c2VyL2ZsYWdfZGVzY3JpcHRpb25zLmNjCisrKysgYi9jaHJvbWUvYnJvd3Nl ci9mbGFnX2Rlc2NyaXB0aW9ucy5jYworQEAgLTcsNiArNyw3IEBACisgI2luY2x1ZGUgImJ1aWxk L2J1aWxkX2NvbmZpZy5oIgorICNpbmNsdWRlICJidWlsZC9jaHJvbWVvc19idWlsZGZsYWdzLmgi CisgI2luY2x1ZGUgImNvbXBvbmVudHMvc3VwZXJ2aXNlZF91c2VyL2NvcmUvY29tbW9uL2J1aWxk ZmxhZ3MuaCIKKysjaW5jbHVkZSAibWVkaWEvZ3B1L2J1aWxkZmxhZ3MuaCIKKyAjaW5jbHVkZSAi cGRmL2J1aWxkZmxhZ3MuaCIKKyAKKyAvLyBLZWVwIGluIGlkZW50aWNhbCBvcmRlciBhcyB0aGUg aGVhZGVyIGZpbGUsIHNlZSB0aGUgY29tbWVudCBhdCB0aGUgdG9wCitAQCAtNzMzOCw2ICs3MzM5 LDcgQEAgY29uc3QgY2hhciBrUXVpY2tPZmZpY2VGb3JjZUZpbGVEb3dubG9hZERlc2NyaXB0aW9u W10gPQorICNlbmRpZiAgLy8gQlVJTERGTEFHKElTX0NIUk9NRU9TKQorIAorICNpZiBCVUlMREZM QUcoSVNfQ0hST01FT1MpICYmIEJVSUxERkxBRyhVU0VfQ0hST01FT1NfTUVESUFfQUNDRUxFUkFU SU9OKQorKyNpZiAhQlVJTERGTEFHKFVTRV9WQUFQSSkKKyBjb25zdCBjaGFyIGtDaHJvbWVPU0Rp cmVjdFZpZGVvRGVjb2Rlck5hbWVbXSA9ICJDaHJvbWVPUyBEaXJlY3QgVmlkZW8gRGVjb2RlciI7 CisgY29uc3QgY2hhciBrQ2hyb21lT1NEaXJlY3RWaWRlb0RlY29kZXJEZXNjcmlwdGlvbltdID0K KyAgICAgIkVuYWJsZXMgdGhlIGhhcmR3YXJlLWFjY2VsZXJhdGVkIENocm9tZU9TIGRpcmVjdCBt ZWRpYTo6VmlkZW9EZWNvZGVyICIKK0BAIC03MzQ1LDcgKzczNDcsOCBAQCBjb25zdCBjaGFyIGtD aHJvbWVPU0RpcmVjdFZpZGVvRGVjb2RlckRlc2NyaXB0aW9uW10gPQorICAgICAiLS1wbGF0Zm9y bS1kaXNhbGxvd3MtY2hyb21lb3MtZGlyZWN0LXZpZGVvLWRlY29kZXIgY29tbWFuZCBsaW5lIHN3 aXRjaCAiCisgICAgICJ3aGljaCBpcyBhZGRlZCBmb3IgcGxhdGZvcm1zIHdoZXJlIHNhaWQgZGly ZWN0IFZpZGVvRGVjb2RlciBkb2VzIG5vdCB3b3JrICIKKyAgICAgIm9yIGlzIG5vdCB3ZWxsIHRl c3RlZCAoc2VlIHRoZSBkaXNhYmxlX2Nyb3NfdmlkZW9fZGVjb2RlciBVU0UgZmxhZyBpbiAiCist ICAgICJDaHJvbWVPUykiOworKyAgICAiQ2hyb21lT1MpLiBUaGlzIGZsYWcgaXMgc3VwcG9ydGVk IG9ubHkgb24gbm9uLUludGVsIGFuZCBub24tQU1EIGRldmljZXMuIjsKKysjZW5kaWYgIC8vICFC VUlMREZMQUcoVVNFX1ZBQVBJKQorIGNvbnN0IGNoYXIga0Nocm9tZU9TSFdWQlJFbmNvZGluZ05h bWVbXSA9CisgICAgICJDaHJvbWVPUyBIYXJkd2FyZSBWYXJpYWJsZSBCaXRyYXRlIEVuY29kaW5n IjsKKyBjb25zdCBjaGFyIGtDaHJvbWVPU0hXVkJSRW5jb2RpbmdEZXNjcmlwdGlvbltdID0KK2Rp ZmYgLS1naXQgYS9jb250ZW50L3B1YmxpYy9icm93c2VyL2dwdV91dGlscy5jYyBiL2NvbnRlbnQv cHVibGljL2Jyb3dzZXIvZ3B1X3V0aWxzLmNjCitpbmRleCBkY2VlY2E5NjU5YTg1Li4zZDA5MTM1 OTc3N2NjIDEwMDY0NAorLS0tIGEvY29udGVudC9wdWJsaWMvYnJvd3Nlci9ncHVfdXRpbHMuY2MK KysrKyBiL2NvbnRlbnQvcHVibGljL2Jyb3dzZXIvZ3B1X3V0aWxzLmNjCitAQCAtMTMzLDIwICsx MzMsMjYgQEAgY29uc3QgZ3B1OjpHcHVQcmVmZXJlbmNlcyBHZXRHcHVQcmVmZXJlbmNlc0Zyb21D b21tYW5kTGluZSgpIHsKKyAjaWYgQlVJTERGTEFHKFVTRV9DSFJPTUVPU19NRURJQV9BQ0NFTEVS QVRJT04pCisgICAvLyBUaGUgZGlyZWN0IFZpZGVvRGVjb2RlciBpcyBkaXNhbGxvd2VkIG9uIHNv bWUgcGFydGljdWxhciBTb0MvcGxhdGZvcm1zLgorICAgY29uc3QgYm9vbCBzaG91bGRfdXNlX2Rp cmVjdF92aWRlb19kZWNvZGVyID0KKysjaWYgQlVJTERGTEFHKFVTRV9WQUFQSSkKKysgICAgICB0 cnVlOworKyNlbHNlCisgICAgICAgIWNvbW1hbmRfbGluZS0+SGFzU3dpdGNoKAorICAgICAgICAg ICBzd2l0Y2hlczo6a1BsYXRmb3JtRGlzYWxsb3dzQ2hyb21lT1NEaXJlY3RWaWRlb0RlY29kZXIp ICYmCisgICAgICAgYmFzZTo6RmVhdHVyZUxpc3Q6OklzRW5hYmxlZChtZWRpYTo6a1VzZUNocm9t ZU9TRGlyZWN0VmlkZW9EZWNvZGVyKTsKKysjZW5kaWYgIC8vIEJVSUxERkxBRyhVU0VfVkFBUEkp CisrCisrICBncHVfcHJlZmVyZW5jZXMuZW5hYmxlX2Nocm9tZW9zX2RpcmVjdF92aWRlb19kZWNv ZGVyID0KKysjaWYgQlVJTERGTEFHKFVTRV9WQUFQSSkKKysgICAgICBzaG91bGRfdXNlX2RpcmVj dF92aWRlb19kZWNvZGVyOworKyNlbHNlCisrICAgICAgLy8gRm9yIHRlc3RpbmcgcHVycG9zZXMs IHRoZSBmb2xsb3dpbmcgZmxhZyBhbGxvd3MgdXNpbmcgdGhlICJvdGhlciIgdmlkZW8KKysgICAg ICAvLyBkZWNvZGVyIGltcGxlbWVudGF0aW9uLgorKyAgICAgIGJhc2U6OkZlYXR1cmVMaXN0OjpJ c0VuYWJsZWQoCisrICAgICAgICAgIG1lZGlhOjprVXNlQWx0ZXJuYXRlVmlkZW9EZWNvZGVySW1w bGVtZW50YXRpb24pCisrICAgICAgICAgID8gIXNob3VsZF91c2VfZGlyZWN0X3ZpZGVvX2RlY29k ZXIKKysgICAgICAgICAgOiBzaG91bGRfdXNlX2RpcmVjdF92aWRlb19kZWNvZGVyOworKyNlbmRp ZiAgLy8gQlVJTERGTEFHKFVTRV9WQUFQSSkKKyAKKy0gIC8vIEZvciB0ZXN0aW5nIHB1cnBvc2Vz LCB0aGUgZm9sbG93aW5nIGZsYWcgYWxsb3dzIHVzaW5nIHRoZSAib3RoZXIiIHZpZGVvCistICAv LyBkZWNvZGVyIGltcGxlbWVudGF0aW9uLgorLSAgaWYgKGJhc2U6OkZlYXR1cmVMaXN0OjpJc0Vu YWJsZWQoCistICAgICAgICAgIG1lZGlhOjprVXNlQWx0ZXJuYXRlVmlkZW9EZWNvZGVySW1wbGVt ZW50YXRpb24pKSB7CistICAgIGdwdV9wcmVmZXJlbmNlcy5lbmFibGVfY2hyb21lb3NfZGlyZWN0 X3ZpZGVvX2RlY29kZXIgPQorLSAgICAgICAgIXNob3VsZF91c2VfZGlyZWN0X3ZpZGVvX2RlY29k ZXI7CistICB9IGVsc2UgeworLSAgICBncHVfcHJlZmVyZW5jZXMuZW5hYmxlX2Nocm9tZW9zX2Rp cmVjdF92aWRlb19kZWNvZGVyID0KKy0gICAgICAgIHNob3VsZF91c2VfZGlyZWN0X3ZpZGVvX2Rl Y29kZXI7CistICB9CisgI2lmIEJVSUxERkxBRyhVU0VfVkFBUEkpCisgICBDSEVDSyhncHVfcHJl ZmVyZW5jZXMuZW5hYmxlX2Nocm9tZW9zX2RpcmVjdF92aWRlb19kZWNvZGVyKTsKKyAjZW5kaWYg IC8vIEJVSUxERkxBRyhVU0VfVkFBUEkpCitkaWZmIC0tZ2l0IGEvbWVkaWEvYmFzZS9tZWRpYV9z d2l0Y2hlcy5jYyBiL21lZGlhL2Jhc2UvbWVkaWFfc3dpdGNoZXMuY2MKK2luZGV4IDFhZjRkZTQ2 ZTJhMDIuLjMwODZiMWJlYzIxMzQgMTAwNjQ0CistLS0gYS9tZWRpYS9iYXNlL21lZGlhX3N3aXRj aGVzLmNjCisrKysgYi9tZWRpYS9iYXNlL21lZGlhX3N3aXRjaGVzLmNjCitAQCAtMTE5Miw2ICsx MTkyLDcgQEAgQkFTRV9GRUFUVVJFKGtDaHJvbWVPU0hXVkJSRW5jb2RpbmcsCisgICAgICAgICAg ICAgICJDaHJvbWVPU0hXVkJSRW5jb2RpbmciLAorICAgICAgICAgICAgICBiYXNlOjpGRUFUVVJF X0RJU0FCTEVEX0JZX0RFRkFVTFQpOworIAorKyNpZiAhQlVJTERGTEFHKFVTRV9WQUFQSSkKKyAv LyBFbmFibGUgdGhlIGhhcmR3YXJlLWFjY2VsZXJhdGVkIGRpcmVjdCB2aWRlbyBkZWNvZGVyIGlu c3RlYWQgb2YgdGhlIG9uZQorIC8vIG5lZWRpbmcgdGhlIFZkYVZpZGVvRGVjb2RlciBhZGFwdGVy LiBUaGlzIGZsYWcgaXMgdXNlZCBtYWlubHkgYXMgYQorIC8vIGNocm9tZTpmbGFnIGZvciBkZXZl bG9wZXJzIGRlYnVnZ2luZyBpc3N1ZXMgYXMgd2VsbCBhcyB0byBiZSBhYmxlIHRvCitAQCAtMTIw MCw2ICsxMjAxLDcgQEAgQkFTRV9GRUFUVVJFKGtDaHJvbWVPU0hXVkJSRW5jb2RpbmcsCisgQkFT RV9GRUFUVVJFKGtVc2VDaHJvbWVPU0RpcmVjdFZpZGVvRGVjb2RlciwKKyAgICAgICAgICAgICAg IlVzZUNocm9tZU9TRGlyZWN0VmlkZW9EZWNvZGVyIiwKKyAgICAgICAgICAgICAgYmFzZTo6RkVB VFVSRV9FTkFCTEVEX0JZX0RFRkFVTFQpOworKyNlbmRpZiAgLy8gIUJVSUxERkxBRyhVU0VfVkFB UEkpCisgCisgLy8gTGltaXQgdGhlIG51bWJlciBvZiBjb25jdXJyZW50IGhhcmR3YXJlIGRlY29k ZXIgaW5zdGFuY2VzIG9uIENocm9tZU9TLgorIEJBU0VfRkVBVFVSRShrTGltaXRDb25jdXJyZW50 RGVjb2Rlckluc3RhbmNlcywKK0BAIC0xMjI4LDcgKzEyMzAsNyBAQCBCQVNFX0ZFQVRVUkUoa1By ZWZlclNvZnR3YXJlTVQyMSwKKyAgICAgICAgICAgICAgIlByZWZlclNvZnR3YXJlTVQyMSIsCisg ICAgICAgICAgICAgIGJhc2U6OkZFQVRVUkVfRElTQUJMRURfQllfREVGQVVMVCk7CisgI2VuZGlm ICAvLyBkZWZpbmVkKEFSQ0hfQ1BVX0FSTV9GQU1JTFkpCistI2lmIEJVSUxERkxBRyhJU19DSFJP TUVPUykKKysjaWYgQlVJTERGTEFHKElTX0NIUk9NRU9TKSAmJiAhQlVJTERGTEFHKFVTRV9WQUFQ SSkKKyAvLyBDaHJvbWVPUyBoYXMgb25lIG9mIHR3byBWaWRlb0RlY29kZXIgaW1wbGVtZW50YXRp b25zIGFjdGl2ZSBiYXNlZCBvbgorIC8vIFNvQy9ib2FyZCBzcGVjaWZpYyBjb25maWd1cmF0aW9u cyB0aGF0IGFyZSBzZW50IHZpYSBjb21tYW5kIGxpbmUgZmxhZ3MuIFRoaXMKKyAvLyBzd2l0Y2gg YWxsb3dzIHVzaW5nIHRoZSBub24gZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBmb3IgdGVzdGluZy4K K0BAIC0xMjM2LDcgKzEyMzgsNyBAQCBCQVNFX0ZFQVRVUkUoa1ByZWZlclNvZnR3YXJlTVQyMSwK KyBCQVNFX0ZFQVRVUkUoa1VzZUFsdGVybmF0ZVZpZGVvRGVjb2RlckltcGxlbWVudGF0aW9uLAor ICAgICAgICAgICAgICAiVXNlQWx0ZXJuYXRlVmlkZW9EZWNvZGVySW1wbGVtZW50YXRpb24iLAor ICAgICAgICAgICAgICBiYXNlOjpGRUFUVVJFX0RJU0FCTEVEX0JZX0RFRkFVTFQpOworLSNlbmRp ZiAgLy8gQlVJTERGTEFHKElTX0NIUk9NRU9TKQorKyNlbmRpZiAgLy8gQlVJTERGTEFHKElTX0NI Uk9NRU9TKSAmJiAhQlVJTERGTEFHKFVTRV9WQUFQSSkKKyAjZW5kaWYgIC8vIEJVSUxERkxBRyhV U0VfQ0hST01FT1NfTUVESUFfQUNDRUxFUkFUSU9OKQorIAorICNpZiBCVUlMREZMQUcoSVNfV0lO KQorZGlmZiAtLWdpdCBhL21lZGlhL2Jhc2UvbWVkaWFfc3dpdGNoZXMuaCBiL21lZGlhL2Jhc2Uv bWVkaWFfc3dpdGNoZXMuaAoraW5kZXggMWQ5YzJjMmQ5ZGY3My4uOTZkOTU5NWJlMTEwZSAxMDA2 NDQKKy0tLSBhL21lZGlhL2Jhc2UvbWVkaWFfc3dpdGNoZXMuaAorKysrIGIvbWVkaWEvYmFzZS9t ZWRpYV9zd2l0Y2hlcy5oCitAQCAtMTQsNiArMTQsNyBAQAorICNpbmNsdWRlICJidWlsZC9idWls ZF9jb25maWcuaCIKKyAjaW5jbHVkZSAiYnVpbGQvY2hyb21lb3NfYnVpbGRmbGFncy5oIgorICNp bmNsdWRlICJtZWRpYS9iYXNlL21lZGlhX2V4cG9ydC5oIgorKyNpbmNsdWRlICJtZWRpYS9ncHUv YnVpbGRmbGFncy5oIgorICNpbmNsdWRlICJtZWRpYS9tZWRpYV9idWlsZGZsYWdzLmgiCisgCisg bmFtZXNwYWNlIGJhc2UgeworQEAgLTM4MSwxNiArMzgyLDE4IEBAIE1FRElBX0VYUE9SVCBCQVNF X0RFQ0xBUkVfRkVBVFVSRShrQnVpbHRJbkhsc1BsYXllcik7CisgI2lmIEJVSUxERkxBRyhVU0Vf Q0hST01FT1NfTUVESUFfQUNDRUxFUkFUSU9OKQorIE1FRElBX0VYUE9SVCBCQVNFX0RFQ0xBUkVf RkVBVFVSRShrQ2hyb21lT1NIV0FWMURlY29kZXIpOworIE1FRElBX0VYUE9SVCBCQVNFX0RFQ0xB UkVfRkVBVFVSRShrQ2hyb21lT1NIV1ZCUkVuY29kaW5nKTsKKysjaWYgIUJVSUxERkxBRyhVU0Vf VkFBUEkpCisgTUVESUFfRVhQT1JUIEJBU0VfREVDTEFSRV9GRUFUVVJFKGtVc2VDaHJvbWVPU0Rp cmVjdFZpZGVvRGVjb2Rlcik7CisrI2VuZGlmICAvLyAhQlVJTERGTEFHKFVTRV9WQUFQSSkKKyBN RURJQV9FWFBPUlQgQkFTRV9ERUNMQVJFX0ZFQVRVUkUoa0xpbWl0Q29uY3VycmVudERlY29kZXJJ bnN0YW5jZXMpOworIE1FRElBX0VYUE9SVCBCQVNFX0RFQ0xBUkVfRkVBVFVSRShrVVNlU2VxdWVu Y2VkVGFza1J1bm5lckZvclZFQSk7CisgI2lmIGRlZmluZWQoQVJDSF9DUFVfQVJNX0ZBTUlMWSkK KyBNRURJQV9FWFBPUlQgQkFTRV9ERUNMQVJFX0ZFQVRVUkUoa1ByZWZlckdMSW1hZ2VQcm9jZXNz b3IpOworIE1FRElBX0VYUE9SVCBCQVNFX0RFQ0xBUkVfRkVBVFVSRShrUHJlZmVyU29mdHdhcmVN VDIxKTsKKyAjZW5kaWYgIC8vIGRlZmluZWQoQVJDSF9DUFVfQVJNX0ZBTUlMWSkKKy0jaWYgQlVJ TERGTEFHKElTX0NIUk9NRU9TKQorKyNpZiBCVUlMREZMQUcoSVNfQ0hST01FT1MpICYmICFCVUlM REZMQUcoVVNFX1ZBQVBJKQorIE1FRElBX0VYUE9SVCBCQVNFX0RFQ0xBUkVfRkVBVFVSRShrVXNl QWx0ZXJuYXRlVmlkZW9EZWNvZGVySW1wbGVtZW50YXRpb24pOworLSNlbmRpZiAgLy8gQlVJTERG TEFHKElTX0NIUk9NRU9TKQorKyNlbmRpZiAgLy8gQlVJTERGTEFHKElTX0NIUk9NRU9TKSAmJiAh QlVJTERGTEFHKFVTRV9WQUFQSSkKKyAjZW5kaWYgIC8vIEJVSUxERkxBRyhVU0VfQ0hST01FT1Nf TUVESUFfQUNDRUxFUkFUSU9OKQorIAorICNpZiBCVUlMREZMQUcoSVNfV0lOKQpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTExOC1taXNzaW5nLWhlYWRlci1m aWxlcy5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMTktbWlzc2lu Zy1oZWFkZXItZmlsZXMucGF0Y2gKc2ltaWxhcml0eSBpbmRleCA5NyUKcmVuYW1lIGZyb20gc3Jj cGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTExOC1taXNzaW5nLWhlYWRlci1maWxlcy5w YXRjaApyZW5hbWUgdG8gc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTExOS1taXNz aW5nLWhlYWRlci1maWxlcy5wYXRjaAppbmRleCBlYTQxNWRmMzI4MzViLi5hMjU0MmVmNDIwZWFm IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTE4LW1pc3Np bmctaGVhZGVyLWZpbGVzLnBhdGNoCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJv bWl1bS0xMTktbWlzc2luZy1oZWFkZXItZmlsZXMucGF0Y2gKQEAgLTQ2OCwxNSArNDY4LDMgQEAg ZGlmZiAtdXAgY2hyb21pdW0tMTE4LjAuNTk5My4zMi9zZXJ2aWNlcy9kZXZpY2UvcHVibGljL2Nw cC9nZW5lcmljX3NlbnNvci9zZW5zb3IKICAjaW5jbHVkZSA8dHlwZV90cmFpdHM+CiAgCiAgbmFt ZXNwYWNlIGRldmljZSB7Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTguMC41OTkzLjMyL2NvbXBvbmVu dHMvZ3dwX2FzYW4vY2xpZW50L2xpZ2h0d2VpZ2h0X2RldGVjdG9yLmgubWUgY2hyb21pdW0tMTE4 LjAuNTk5My4zMi9jb21wb25lbnRzL2d3cF9hc2FuL2NsaWVudC9saWdodHdlaWdodF9kZXRlY3Rv ci5oCi0tLS0gY2hyb21pdW0tMTE4LjAuNTk5My4zMi9jb21wb25lbnRzL2d3cF9hc2FuL2NsaWVu dC9saWdodHdlaWdodF9kZXRlY3Rvci5oLm1lCTIwMjMtMTAtMDIgMTM6Mzg6MzEuMjE3ODA2NDI4 ICswMjAwCi0rKysgY2hyb21pdW0tMTE4LjAuNTk5My4zMi9jb21wb25lbnRzL2d3cF9hc2FuL2Ns aWVudC9saWdodHdlaWdodF9kZXRlY3Rvci5oCTIwMjMtMTAtMDIgMTM6Mzk6MDUuMDA2NDI3MTY4 ICswMjAwCi1AQCAtNSw2ICs1LDggQEAKLSAjaWZuZGVmIENPTVBPTkVOVFNfR1dQX0FTQU5fQ0xJ RU5UX0xJR0hUV0VJR0hUX0RFVEVDVE9SX0hfCi0gI2RlZmluZSBDT01QT05FTlRTX0dXUF9BU0FO X0NMSUVOVF9MSUdIVFdFSUdIVF9ERVRFQ1RPUl9IXwotIAotKyNpbmNsdWRlIDxhdG9taWM+Ci0r Ci0gI2luY2x1ZGUgImJhc2UvZ3Rlc3RfcHJvZF91dGlsLmgiCi0gI2luY2x1ZGUgImNvbXBvbmVu dHMvZ3dwX2FzYW4vY2xpZW50L2V4cG9ydC5oIgotICNpbmNsdWRlICJjb21wb25lbnRzL2d3cF9h c2FuL2NvbW1vbi9saWdodHdlaWdodF9kZXRlY3Rvcl9zdGF0ZS5oIgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTExOC1ub19tYXRjaGluZ19jb25zdHJ1Y3Rv ci5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMTktbm9fbWF0Y2hp bmdfY29uc3RydWN0b3IucGF0Y2gKc2ltaWxhcml0eSBpbmRleCA1NiUKcmVuYW1lIGZyb20gc3Jj cGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTExOC1ub19tYXRjaGluZ19jb25zdHJ1Y3Rv ci5wYXRjaApyZW5hbWUgdG8gc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTExOS1u b19tYXRjaGluZ19jb25zdHJ1Y3Rvci5wYXRjaAppbmRleCAzZDc3NDhjM2Q1YTI2Li5hMTZjOTc5 YzM3ZjFjIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTE4 LW5vX21hdGNoaW5nX2NvbnN0cnVjdG9yLnBhdGNoCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0 Y2hlcy9jaHJvbWl1bS0xMTktbm9fbWF0Y2hpbmdfY29uc3RydWN0b3IucGF0Y2gKQEAgLTEsMTkg KzEsMTEyIEBACi1kaWZmIC11cCBjaHJvbWl1bS0xMTYuMC41ODQ1LjUwL25ldC9kbnMvaG9zdF9y ZXNvbHZlcl9jYWNoZS5jYy5tZSBjaHJvbWl1bS0xMTYuMC41ODQ1LjUwL25ldC9kbnMvaG9zdF9y ZXNvbHZlcl9jYWNoZS5jYwotLS0tIGNocm9taXVtLTExNi4wLjU4NDUuNTAvbmV0L2Rucy9ob3N0 X3Jlc29sdmVyX2NhY2hlLmNjLm1lCi0rKysgY2hyb21pdW0tMTE2LjAuNTg0NS41MC9uZXQvZG5z L2hvc3RfcmVzb2x2ZXJfY2FjaGUuY2MKLUBAIC0xNjEsNyArMTYxLDcgQEAgdm9pZCBIb3N0UmVz b2x2ZXJDYWNoZTo6U2V0KAorZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9iYXNlL3Ry YWNlX2V2ZW50L3RyYWNlX2xvZy5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0x MTkuMC42MDQ1LjU5L2Jhc2UvdHJhY2VfZXZlbnQvdHJhY2VfbG9nLmNjCistLS0gY2hyb21pdW0t MTE5LjAuNjA0NS41OS9iYXNlL3RyYWNlX2V2ZW50L3RyYWNlX2xvZy5jYy5ub19tYXRjaGluZ19j b25zdHJ1Y3RvcgkyMDIzLTEwLTI2IDE4OjE2OjUxLjAwMDAwMDAwMCArMDIwMAorKysrIGNocm9t aXVtLTExOS4wLjYwNDUuNTkvYmFzZS90cmFjZV9ldmVudC90cmFjZV9sb2cuY2MJMjAyMy0xMC0z MCAxNjo1MTowMi4yNzAxNTE0ODcgKzAxMDAKK0BAIC0yMTkxLDggKzIxOTEsOCBAQCB2b2lkIFRy YWNlTG9nOjpTZXRUcmFjZUJ1ZmZlckZvclRlc3RpbmcoCisgI2lmIEJVSUxERkxBRyhVU0VfUEVS RkVUVE9fQ0xJRU5UX0xJQlJBUlkpCisgdm9pZCBUcmFjZUxvZzo6T25TZXR1cChjb25zdCBwZXJm ZXR0bzo6RGF0YVNvdXJjZUJhc2U6OlNldHVwQXJncyYgYXJncykgeworICAgQXV0b0xvY2sgbG9j ayh0cmFja19ldmVudF9sb2NrXyk7CistICB0cmFja19ldmVudF9zZXNzaW9uc18uZW1wbGFjZV9i YWNrKGFyZ3MuaW50ZXJuYWxfaW5zdGFuY2VfaW5kZXgsICphcmdzLmNvbmZpZywKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncy5iYWNrZW5kX3R5cGUpOworKyAgdHJh Y2tfZXZlbnRfc2Vzc2lvbnNfLmVtcGxhY2VfYmFjaygpID0ge2FyZ3MuaW50ZXJuYWxfaW5zdGFu Y2VfaW5kZXgsICphcmdzLmNvbmZpZywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXJncy5iYWNrZW5kX3R5cGV9OworIH0KICAKLSAgIHN0ZDo6c3RyaW5nIGRvbWFpbl9u YW1lID0gcmVzdWx0LT5kb21haW5fbmFtZSgpOwotICAgZW50cmllc18uZW1wbGFjZSgKLS0gICAg ICBLZXkoc3RkOjptb3ZlKGRvbWFpbl9uYW1lKSwgbmV0d29ya19hbm9ueW1pemF0aW9uX2tleSks Ci0rICAgICAgS2V5e3N0ZDo6bW92ZShkb21haW5fbmFtZSksIG5ldHdvcmtfYW5vbnltaXphdGlv bl9rZXl9LAotICAgICAgIEVudHJ5KHN0ZDo6bW92ZShyZXN1bHQpLCBzb3VyY2UsIHNlY3VyZSwg c3RhbGVuZXNzX2dlbmVyYXRpb25fKSk7Cisgdm9pZCBUcmFjZUxvZzo6T25TdGFydChjb25zdCBw ZXJmZXR0bzo6RGF0YVNvdXJjZUJhc2U6OlN0YXJ0QXJncyYpIHsKK2RpZmYgLXVwIGNocm9taXVt LTExOS4wLjYwNDUuNTkvY2hyb21lL2Jyb3dzZXIvY29udGVudF9zZXR0aW5ncy9vbmVfdGltZV9w ZXJtaXNzaW9uX3Byb3ZpZGVyLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTEx OS4wLjYwNDUuNTkvY2hyb21lL2Jyb3dzZXIvY29udGVudF9zZXR0aW5ncy9vbmVfdGltZV9wZXJt aXNzaW9uX3Byb3ZpZGVyLmNjCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUvYnJv d3Nlci9jb250ZW50X3NldHRpbmdzL29uZV90aW1lX3Blcm1pc3Npb25fcHJvdmlkZXIuY2Mubm9f bWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMC0yNiAxODoxNjo1Ny4wMDAwMDAwMDAgKzAyMDAK KysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS9icm93c2VyL2NvbnRlbnRfc2V0dGlu Z3Mvb25lX3RpbWVfcGVybWlzc2lvbl9wcm92aWRlci5jYwkyMDIzLTEwLTMwIDE2OjUxOjAyLjI2 OTE1MTQ2MiArMDEwMAorQEAgLTIyNiw4ICsyMjYsOCBAQCB2b2lkIE9uZVRpbWVQZXJtaXNzaW9u UHJvdmlkZXI6Ok9uU3VzcGVuCiAgCi0gICBpZiAoZW50cmllc18uc2l6ZSgpID4gbWF4X2VudHJp ZXNfKSB7Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTYuMC41ODQ1LjUwL2NvbXBvbmVudHMvdml6L3Nl cnZpY2UvZGlzcGxheV9lbWJlZGRlci9za2lhX291dHB1dF9zdXJmYWNlX2ltcGxfb25fZ3B1LmNj Lm1lIGNocm9taXVtLTExNi4wLjU4NDUuNTAvY29tcG9uZW50cy92aXovc2VydmljZS9kaXNwbGF5 X2VtYmVkZGVyL3NraWFfb3V0cHV0X3N1cmZhY2VfaW1wbF9vbl9ncHUuY2MKLS0tLSBjaHJvbWl1 bS0xMTYuMC41ODQ1LjUwL2NvbXBvbmVudHMvdml6L3NlcnZpY2UvZGlzcGxheV9lbWJlZGRlci9z a2lhX291dHB1dF9zdXJmYWNlX2ltcGxfb25fZ3B1LmNjLm1lCTIwMjMtMDgtMDIgMTU6MTc6NTIu NjEzODU4NDIzICswMjAwCi0rKysgY2hyb21pdW0tMTE2LjAuNTg0NS41MC9jb21wb25lbnRzL3Zp ei9zZXJ2aWNlL2Rpc3BsYXlfZW1iZWRkZXIvc2tpYV9vdXRwdXRfc3VyZmFjZV9pbXBsX29uX2dw dS5jYwkyMDIzLTA4LTAyIDE1OjE4OjQzLjI2OTc5MDg3NyArMDIwMAotQEAgLTE0OTYsNyArMTQ5 Niw3IEBAIHZvaWQgU2tpYU91dHB1dFN1cmZhY2VJbXBsT25HcHU6OkNvcHlPdXQKKyAgICAgICB3 aGlsZSAocnVsZV9pdGVyYXRvciAmJiBydWxlX2l0ZXJhdG9yLT5IYXNOZXh0KCkpIHsKKyAgICAg ICAgIGF1dG8gcnVsZSA9IHJ1bGVfaXRlcmF0b3ItPk5leHQoKTsKKy0gICAgICAgIHBhdHRlcm5z X3RvX2RlbGV0ZS5lbXBsYWNlX2JhY2soc2V0dGluZ190eXBlLCBydWxlLT5wcmltYXJ5X3BhdHRl cm4sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGUtPnNlY29u ZGFyeV9wYXR0ZXJuKTsKKysgICAgICAgIHBhdHRlcm5zX3RvX2RlbGV0ZS5lbXBsYWNlX2JhY2so KSA9IHtzZXR0aW5nX3R5cGUsIHJ1bGUtPnByaW1hcnlfcGF0dGVybiwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZS0+c2Vjb25kYXJ5X3BhdHRlcm59OworICAg ICAgICAgcGVybWlzc2lvbnM6OlBlcm1pc3Npb25VbWFVdGlsOjpSZWNvcmRPbmVUaW1lUGVybWlz c2lvbkV2ZW50KAorICAgICAgICAgICAgIHNldHRpbmdfdHlwZSwKKyAgICAgICAgICAgICBwZXJt aXNzaW9uczo6T25lVGltZVBlcm1pc3Npb25FdmVudDo6RVhQSVJFRF9PTl9TVVNQRU5EKTsKK0BA IC0zMjksOCArMzI5LDggQEAgdm9pZCBPbmVUaW1lUGVybWlzc2lvblByb3ZpZGVyOjpEZWxldGVF bgorICAgICBhdXRvIHJ1bGUgPSBydWxlX2l0ZXJhdG9yLT5OZXh0KCk7CisgICAgIGlmIChydWxl LT5wcmltYXJ5X3BhdHRlcm4uTWF0Y2hlcyhvcmlnaW5fZ3VybCkgJiYKKyAgICAgICAgIHJ1bGUt PnNlY29uZGFyeV9wYXR0ZXJuLk1hdGNoZXMob3JpZ2luX2d1cmwpKSB7CistICAgICAgcGF0dGVy bnNfdG9fZGVsZXRlLmVtcGxhY2VfYmFjaygKKy0gICAgICAgICAgY29udGVudF9zZXR0aW5nX3R5 cGUsIHJ1bGUtPnByaW1hcnlfcGF0dGVybiwgcnVsZS0+c2Vjb25kYXJ5X3BhdHRlcm4pOworKyAg ICAgIHBhdHRlcm5zX3RvX2RlbGV0ZS5lbXBsYWNlX2JhY2soKSA9IHsKKysgICAgICAgICAgY29u dGVudF9zZXR0aW5nX3R5cGUsIHJ1bGUtPnByaW1hcnlfcGF0dGVybiwgcnVsZS0+c2Vjb25kYXJ5 X3BhdHRlcm59OworICAgICAgIHBlcm1pc3Npb25zOjpQZXJtaXNzaW9uVW1hVXRpbDo6UmVjb3Jk T25lVGltZVBlcm1pc3Npb25FdmVudCgKKyAgICAgICAgICAgY29udGVudF9zZXR0aW5nX3R5cGUs IHRyaWdnZXJfZXZlbnQpOworICAgICB9CitkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5 L2Nocm9tZS9icm93c2VyL2VudGVycHJpc2UvcHJvZmlsZV9tYW5hZ2VtZW50L3Byb2ZpbGVfbWFu YWdlbWVudF9uYXZpZ2F0aW9uX3Rocm90dGxlLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNo cm9taXVtLTExOS4wLjYwNDUuNTkvY2hyb21lL2Jyb3dzZXIvZW50ZXJwcmlzZS9wcm9maWxlX21h bmFnZW1lbnQvcHJvZmlsZV9tYW5hZ2VtZW50X25hdmlnYXRpb25fdGhyb3R0bGUuY2MKKy0tLSBj aHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS9icm93c2VyL2VudGVycHJpc2UvcHJvZmlsZV9t YW5hZ2VtZW50L3Byb2ZpbGVfbWFuYWdlbWVudF9uYXZpZ2F0aW9uX3Rocm90dGxlLmNjLm5vX21h dGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTAtMjYgMTg6MTY6NTcuMDAwMDAwMDAwICswMjAwCisr KysgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUvYnJvd3Nlci9lbnRlcnByaXNlL3Byb2Zp bGVfbWFuYWdlbWVudC9wcm9maWxlX21hbmFnZW1lbnRfbmF2aWdhdGlvbl90aHJvdHRsZS5jYwky MDIzLTEwLTMwIDE2OjUxOjAyLjI2NzE1MTQxMiArMDEwMAorQEAgLTY3LDggKzY3LDggQEAgYmFz ZTo6ZmxhdF9tYXA8c3RkOjpzdHJpbmcsIFNBTUxQcm9maWxlQQorICAgLy8gVE9ETyhjcmJ1Zy5j b20vMTQ0NTA3Mik6IEFkZCBhY3R1YWwgZG9tYWlucyB3aXRoIGF0dHJpYnV0ZSBuYW1lcy4KKyAg IHByb2ZpbGVfYXR0cmlidXRlcy0+aW5zZXJ0KHN0ZDo6bWFrZV9wYWlyKAorICAgICAgICJzdXBw b3J0ZWQudGVzdCIsCistICAgICAgU0FNTFByb2ZpbGVBdHRyaWJ1dGVzKCJwbGFjZWhvbGRlck5h bWUiLCAicGxhY2Vob2xkZXJEb21haW4iLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAi cGxhY2Vob2xkZXJUb2tlbiIpKSk7CisrICAgICAgU0FNTFByb2ZpbGVBdHRyaWJ1dGVzeyJwbGFj ZWhvbGRlck5hbWUiLCAicGxhY2Vob2xkZXJEb21haW4iLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAicGxhY2Vob2xkZXJUb2tlbiJ9KSk7CisgCisgICAvLyBFeHRyYWN0IGRvbWFpbnMg YW5kIGF0dHJpYnV0ZXMgZnJvbSB0aGUgY29tbWFuZCBsaW5lIHN3aXRjaC4KKyAgIGNvbnN0IGJh c2U6OkNvbW1hbmRMaW5lJiBjb21tYW5kX2xpbmUgPQorZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAu NjA0NS41OS9jaHJvbWUvYnJvd3Nlci91aS9vbW5pYm94L2Nocm9tZV9vbW5pYm94X2NsaWVudC5j Yy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS9i cm93c2VyL3VpL29tbmlib3gvY2hyb21lX29tbmlib3hfY2xpZW50LmNjCistLS0gY2hyb21pdW0t MTE5LjAuNjA0NS41OS9jaHJvbWUvYnJvd3Nlci91aS9vbW5pYm94L2Nocm9tZV9vbW5pYm94X2Ns aWVudC5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTEwLTI2IDE4OjE3OjAwLjAwMDAw MDAwMCArMDIwMAorKysrIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY2hyb21lL2Jyb3dzZXIvdWkv b21uaWJveC9jaHJvbWVfb21uaWJveF9jbGllbnQuY2MJMjAyMy0xMC0zMCAxNjo1MTowMi4yNjIx NTEyODggKzAxMDAKK0BAIC00NzQsMTAgKzQ3NCwxMCBAQCB2b2lkIENocm9tZU9tbmlib3hDbGll bnQ6Ok9uQXV0b2NvbXBsZXRlCisgICAgICAgICAgICAgICBhbHRlcm5hdGl2ZV9uYXZfbWF0Y2gp OworIAorICAgLy8gU3RvcmUgdGhlIGRldGFpbHMgbmVjZXNzYXJ5IHRvIG9wZW4gdGhlIG9tbmli b3ggbWF0Y2ggdmlhIGJyb3dzZXIgY29tbWFuZHMuCistICBsb2NhdGlvbl9iYXJfLT5zZXRfbmF2 aWdhdGlvbl9wYXJhbXMoTG9jYXRpb25CYXI6Ok5hdmlnYXRpb25QYXJhbXMoCisrICBsb2NhdGlv bl9iYXJfLT5zZXRfbmF2aWdhdGlvbl9wYXJhbXMoTG9jYXRpb25CYXI6Ok5hdmlnYXRpb25QYXJh bXN7CisgICAgICAgZGVzdGluYXRpb25fdXJsLCBkaXNwb3NpdGlvbiwgdHJhbnNpdGlvbiwgbWF0 Y2hfc2VsZWN0aW9uX3RpbWVzdGFtcCwKKyAgICAgICBkZXN0aW5hdGlvbl91cmxfZW50ZXJlZF93 aXRob3V0X3NjaGVtZSwKKy0gICAgICBkZXN0aW5hdGlvbl91cmxfZW50ZXJlZF93aXRoX2h0dHBf c2NoZW1lKSk7CisrICAgICAgZGVzdGluYXRpb25fdXJsX2VudGVyZWRfd2l0aF9odHRwX3NjaGVt ZX0pOworIAorICAgaWYgKGJyb3dzZXJfKSB7CisgICAgIGF1dG8gbmF2aWdhdGlvbiA9IGNocm9t ZTo6T3BlbkN1cnJlbnRVUkwoYnJvd3Nlcl8pOworZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0 NS41OS9jaHJvbWUvdGVzdC9jaHJvbWVkcml2ZXIvY2FwYWJpbGl0aWVzLmNjLm5vX21hdGNoaW5n X2NvbnN0cnVjdG9yIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY2hyb21lL3Rlc3QvY2hyb21lZHJp dmVyL2NhcGFiaWxpdGllcy5jYworLS0tIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY2hyb21lL3Rl c3QvY2hyb21lZHJpdmVyL2NhcGFiaWxpdGllcy5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3Rvcgky MDIzLTEwLTI2IDE4OjE3OjAxLjAwMDAwMDAwMCArMDIwMAorKysrIGNocm9taXVtLTExOS4wLjYw NDUuNTkvY2hyb21lL3Rlc3QvY2hyb21lZHJpdmVyL2NhcGFiaWxpdGllcy5jYwkyMDIzLTEwLTMw IDE2OjUxOjAyLjI2ODE1MTQzNyArMDEwMAorQEAgLTM0Niw3ICszNDYsNyBAQCBTdGF0dXMgUGFy c2VNb2JpbGVFbXVsYXRpb24oY29uc3QgYmFzZTo6CisgICAgICAgICAgICAgICAgICAgICAgICAg Iid2ZXJzaW9uJyBmaWVsZCBvZiB0eXBlIHN0cmluZyIpOworICAgICAgICAgfQorIAorLSAgICAg ICAgYnJhbmRzLmVtcGxhY2VfYmFjaygqYnJhbmQsICp2ZXJzaW9uKTsKKysgICAgICAgIGJyYW5k cy5lbXBsYWNlX2JhY2soKSA9IHsqYnJhbmQsICp2ZXJzaW9ufTsKKyAgICAgICB9CisgCisgICAg ICAgY2xpZW50X2hpbnRzLmJyYW5kcyA9IHN0ZDo6bW92ZShicmFuZHMpOworQEAgLTM4NCw3ICsz ODQsNyBAQCBTdGF0dXMgUGFyc2VNb2JpbGVFbXVsYXRpb24oY29uc3QgYmFzZTo6CisgICAgICAg ICAgICAgICAgICAgICAgICAgImEgJ3ZlcnNpb24nIGZpZWxkIG9mIHR5cGUgc3RyaW5nIik7Cisg ICAgICAgICB9CisgCistICAgICAgICBmdWxsX3ZlcnNpb25fbGlzdC5lbXBsYWNlX2JhY2soKmJy YW5kLCAqdmVyc2lvbik7CisrICAgICAgICBmdWxsX3ZlcnNpb25fbGlzdC5lbXBsYWNlX2JhY2so KSA9IHsqYnJhbmQsICp2ZXJzaW9ufTsKKyAgICAgICB9CisgCisgICAgICAgY2xpZW50X2hpbnRz LmZ1bGxfdmVyc2lvbl9saXN0ID0gc3RkOjptb3ZlKGZ1bGxfdmVyc2lvbl9saXN0KTsKK2RpZmYg LXVwIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dz ZXIvY29udGFjdF9pbmZvX3N5bmNfdXRpbC5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJv bWl1bS0xMTkuMC42MDQ1LjU5L2NvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93c2VyL2NvbnRh Y3RfaW5mb19zeW5jX3V0aWwuY2MKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbXBvbmVu dHMvYXV0b2ZpbGwvY29yZS9icm93c2VyL2NvbnRhY3RfaW5mb19zeW5jX3V0aWwuY2Mubm9fbWF0 Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMC0zMCAxNjo1MTowMi4yNzMxNTE1NjIgKzAxMDAKKysr KyBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93c2Vy L2NvbnRhY3RfaW5mb19zeW5jX3V0aWwuY2MJMjAyMy0xMC0zMCAxNzo0MToxMi42ODU4ODc1Mzgg KzAxMDAKK0BAIC0xOTUsOSArMTk1LDkgQEAgY2xhc3MgQ29udGFjdEluZm9Qcm9maWxlU2V0dGVy IHsKKyAgICAgICBDSEVDSyhvYnNlcnZhdGlvbnMuZW1wdHkoKSk7CisgICAgICAgZm9yIChjb25z dCBzeW5jX3BiOjpDb250YWN0SW5mb1NwZWNpZmljczo6T2JzZXJ2YXRpb24mIHByb3RvX29ic2Vy dmF0aW9uIDoKKyAgICAgICAgICAgIG1ldGFkYXRhLm9ic2VydmF0aW9ucygpKSB7CistICAgICAg ICBvYnNlcnZhdGlvbnMuZW1wbGFjZV9iYWNrKHByb3RvX29ic2VydmF0aW9uLnR5cGUoKSwKKysg ICAgICAgIG9ic2VydmF0aW9ucy5lbXBsYWNlX2JhY2soKSA9IHtzdGF0aWNfY2FzdDx1bnNpZ25l ZCBjaGFyPihwcm90b19vYnNlcnZhdGlvbi50eXBlKCkpLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQcm9maWxlVG9rZW5RdWFsaXR5OjpGb3JtU2lnbmF0dXJlSGFzaCgKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RvX29ic2VydmF0aW9uLmZv cm1faGFzaCgpKSk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90 b19vYnNlcnZhdGlvbi5mb3JtX2hhc2goKSl9OworICAgICAgIH0KKyAgICAgfQorICAgfQorZGlm ZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jb21wb25lbnRzL3Zpei9zZXJ2aWNlL2Rpc3Bs YXlfZW1iZWRkZXIvc2tpYV9vdXRwdXRfc3VyZmFjZV9pbXBsX29uX2dwdS5jYy5ub19tYXRjaGlu Z19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbXBvbmVudHMvdml6L3NlcnZp Y2UvZGlzcGxheV9lbWJlZGRlci9za2lhX291dHB1dF9zdXJmYWNlX2ltcGxfb25fZ3B1LmNjCist LS0gY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jb21wb25lbnRzL3Zpei9zZXJ2aWNlL2Rpc3BsYXlf ZW1iZWRkZXIvc2tpYV9vdXRwdXRfc3VyZmFjZV9pbXBsX29uX2dwdS5jYy5ub19tYXRjaGluZ19j b25zdHJ1Y3RvcgkyMDIzLTEwLTI2IDE4OjE3OjEyLjAwMDAwMDAwMCArMDIwMAorKysrIGNocm9t aXVtLTExOS4wLjYwNDUuNTkvY29tcG9uZW50cy92aXovc2VydmljZS9kaXNwbGF5X2VtYmVkZGVy L3NraWFfb3V0cHV0X3N1cmZhY2VfaW1wbF9vbl9ncHUuY2MJMjAyMy0xMC0zMCAxNjo1MTowMi4y NjAxNTEyMzggKzAxMDAKK0BAIC0xNTMwLDcgKzE1MzAsNyBAQCB2b2lkIFNraWFPdXRwdXRTdXJm YWNlSW1wbE9uR3B1OjpDb3B5T3V0CiAgCiAgICAgICAgLy8gSXNzdWUgcmVhZGJhY2tzIGZyb20g dGhlIHN1cmZhY2VzOgogICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgQ29weU91dHB1dFJl c3VsdDo6a05WMTJNYXhQbGFuZXM7ICsraSkgewpAQCAtMjIsOSArMTE1LDg3IEBAIGRpZmYgLXVw IGNocm9taXVtLTExNi4wLjU4NDUuNTAvY29tcG9uZW50cy92aXovc2VydmljZS9kaXNwbGF5X2Vt YmVkZGVyL3NraWFfb3V0CiAgICAgICAgICBTa0ltYWdlSW5mbyBkc3RfaW5mbyA9IFNrSW1hZ2VJ bmZvOjpNYWtlKAogICAgICAgICAgICAgIHNpemUsIChpID09IDApID8ga0FscGhhXzhfU2tDb2xv clR5cGUgOiBrUjhHOF91bm9ybV9Ta0NvbG9yVHlwZSwKICAgICAgICAgICAgICBrVW5wcmVtdWxf U2tBbHBoYVR5cGUpOwotZGlmZiAtdXAgY2hyb21pdW0tMTE2LjAuNTg0NS41MC90aGlyZF9wYXJ0 eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9wYWxldHRlX2ludGVycG9sYXRpb24uY2Mu bWUgY2hyb21pdW0tMTE2LjAuNTg0NS41MC90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0 Zm9ybS9mb250cy9wYWxldHRlX2ludGVycG9sYXRpb24uY2MKLS0tLSBjaHJvbWl1bS0xMTYuMC41 ODQ1LjUwL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL3BhbGV0dGVf aW50ZXJwb2xhdGlvbi5jYy5tZQkyMDIzLTA4LTAyIDIxOjMyOjE0LjE5NTcwNTQ5NCArMDIwMAot KysrIGNocm9taXVtLTExNi4wLjU4NDUuNTAvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxh dGZvcm0vZm9udHMvcGFsZXR0ZV9pbnRlcnBvbGF0aW9uLmNjCTIwMjMtMDgtMDIgMjE6NTk6MDgu MTU2NTMyOTM0ICswMjAwCitkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbnRlbnQv YnJvd3Nlci9kb3dubG9hZC9zYXZlX3BhY2thZ2UuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3Ig Y2hyb21pdW0tMTE5LjAuNjA0NS41OS9jb250ZW50L2Jyb3dzZXIvZG93bmxvYWQvc2F2ZV9wYWNr YWdlLmNjCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jb250ZW50L2Jyb3dzZXIvZG93bmxv YWQvc2F2ZV9wYWNrYWdlLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTAtMjYgMTg6 MTc6MTIuMDAwMDAwMDAwICswMjAwCisrKysgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jb250ZW50 L2Jyb3dzZXIvZG93bmxvYWQvc2F2ZV9wYWNrYWdlLmNjCTIwMjMtMTAtMzAgMTY6NTE6MDIuMjcx MTUxNTEyICswMTAwCitAQCAtNzY5LDggKzc2OSw4IEBAIHZvaWQgU2F2ZVBhY2thZ2U6OkZpbmlz aCgpIHsKKyAgIGlmIChkb3dubG9hZF8pIHsKKyAgICAgc3RkOjp2ZWN0b3I8ZG93bmxvYWQ6OkRv d25sb2FkU2F2ZUl0ZW1EYXRhOjpJdGVtSW5mbz4gZmlsZXM7CisgICAgIGZvciAoYXV0byYgaXRl bSA6IHNhdmVkX3N1Y2Nlc3NfaXRlbXNfKSB7CistICAgICAgZmlsZXMuZW1wbGFjZV9iYWNrKGl0 ZW0uc2Vjb25kLT5mdWxsX3BhdGgoKSwgaXRlbS5zZWNvbmQtPnVybCgpLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICBpdGVtLnNlY29uZC0+cmVmZXJyZXIoKS51cmwpOworKyAgICAgIGZpbGVz LmVtcGxhY2VfYmFjaygpID0ge2l0ZW0uc2Vjb25kLT5mdWxsX3BhdGgoKSwgaXRlbS5zZWNvbmQt PnVybCgpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnNlY29uZC0+cmVmZXJyZXIo KS51cmx9OworICAgICB9CisgICAgIGRvd25sb2FkOjpEb3dubG9hZFNhdmVJdGVtRGF0YTo6QXR0 YWNoSXRlbURhdGEoZG93bmxvYWRfLCBzdGQ6Om1vdmUoZmlsZXMpKTsKKyAgIH0KK2RpZmYgLXVw IGNocm9taXVtLTExOS4wLjYwNDUuNTkvY29udGVudC9icm93c2VyL3JlbmRlcmVyX2hvc3QvcmVu ZGVyX2ZyYW1lX2hvc3RfaW1wbC5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0x MTkuMC42MDQ1LjU5L2NvbnRlbnQvYnJvd3Nlci9yZW5kZXJlcl9ob3N0L3JlbmRlcl9mcmFtZV9o b3N0X2ltcGwuY2MKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbnRlbnQvYnJvd3Nlci9y ZW5kZXJlcl9ob3N0L3JlbmRlcl9mcmFtZV9ob3N0X2ltcGwuY2Mubm9fbWF0Y2hpbmdfY29uc3Ry dWN0b3IJMjAyMy0xMC0yNiAxODoxNzoxMi4wMDAwMDAwMDAgKzAyMDAKKysrKyBjaHJvbWl1bS0x MTkuMC42MDQ1LjU5L2NvbnRlbnQvYnJvd3Nlci9yZW5kZXJlcl9ob3N0L3JlbmRlcl9mcmFtZV9o b3N0X2ltcGwuY2MJMjAyMy0xMC0zMCAxNzozODowOS4zNTEzODk5ODQgKzAxMDAKK0BAIC04NTY3 LDcgKzg1NjcsNyBAQCB2b2lkIFJlbmRlckZyYW1lSG9zdEltcGw6OlNlbmRGZW5jZWRGcmFtCisg ICBmb3IgKGNvbnN0IGJsaW5rOjpGZW5jZWRGcmFtZTo6UmVwb3J0aW5nRGVzdGluYXRpb24mIGRl c3RpbmF0aW9uIDoKKyAgICAgICAgZGVzdGluYXRpb25zKSB7CisgICAgIFNlbmRGZW5jZWRGcmFt ZVJlcG9ydGluZ0JlYWNvbkludGVybmFsKAorLSAgICAgICAgRGVzdGluYXRpb25FbnVtRXZlbnQo ZXZlbnRfdHlwZSwgZXZlbnRfZGF0YSksIGRlc3RpbmF0aW9uLAorKyAgICAgICAgRGVzdGluYXRp b25FbnVtRXZlbnR7ZXZlbnRfdHlwZSwgZXZlbnRfZGF0YX0sIGRlc3RpbmF0aW9uLAorICAgICAg ICAgLypmcm9tX3JlbmRlcmVyPSovdHJ1ZSwgYXR0cmlidXRpb25fcmVwb3J0aW5nX3J1bnRpbWVf ZmVhdHVyZXMsCisgICAgICAgICBHZXRGcmFtZVRyZWVOb2RlSWQoKSk7CisgICB9CitAQCAtODYw Myw3ICs4NjAzLDcgQEAgdm9pZCBSZW5kZXJGcmFtZUhvc3RJbXBsOjpTZW5kRmVuY2VkRnJhbQor ICAgfQorIAorICAgU2VuZEZlbmNlZEZyYW1lUmVwb3J0aW5nQmVhY29uSW50ZXJuYWwoCistICAg ICAgRGVzdGluYXRpb25VUkxFdmVudChkZXN0aW5hdGlvbl91cmwpLAorKyAgICAgIERlc3RpbmF0 aW9uVVJMRXZlbnR7ZGVzdGluYXRpb25fdXJsfSwKKyAgICAgICBibGluazo6RmVuY2VkRnJhbWU6 OlJlcG9ydGluZ0Rlc3RpbmF0aW9uOjprQnV5ZXIsCisgICAgICAgLypmcm9tX3JlbmRlcmVyPSov dHJ1ZSwgYXR0cmlidXRpb25fcmVwb3J0aW5nX3J1bnRpbWVfZmVhdHVyZXMsCisgICAgICAgR2V0 RnJhbWVUcmVlTm9kZUlkKCkpOworQEAgLTg3MDMsOCArODcwMyw4IEBAIHZvaWQgUmVuZGVyRnJh bWVIb3N0SW1wbDo6TWF5YmVTZW5kRmVuY2UKKyAgICAgICAgIGRhdGEgPSBpbmZvLT5kYXRhOwor ICAgICAgIH0KKyAgICAgICBpbml0aWF0b3JfcmZoLT5TZW5kRmVuY2VkRnJhbWVSZXBvcnRpbmdC ZWFjb25JbnRlcm5hbCgKKy0gICAgICAgICAgRGVzdGluYXRpb25FbnVtRXZlbnQoYmxpbms6OmtG ZW5jZWRGcmFtZVRvcE5hdmlnYXRpb25CZWFjb25UeXBlLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkYXRhKSwKKysgICAgICAgICAgRGVzdGluYXRpb25FbnVtRXZlbnR7Ymxpbms6 OmtGZW5jZWRGcmFtZVRvcE5hdmlnYXRpb25CZWFjb25UeXBlLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkYXRhfSwKKyAgICAgICAgICAgZGVzdGluYXRpb24sCisgICAgICAgICAg IC8qZnJvbV9yZW5kZXJlcj0qL2ZhbHNlLCBhdHRyaWJ1dGlvbl9yZXBvcnRpbmdfZmVhdHVyZXMs CisgICAgICAgICAgIEdldEZyYW1lVHJlZU5vZGVJZCgpLCBuYXZpZ2F0aW9uX3JlcXVlc3QuR2V0 TmF2aWdhdGlvbklkKCkpOworQEAgLTg3MTcsOCArODcxNyw4IEBAIHZvaWQgUmVuZGVyRnJhbWVI b3N0SW1wbDo6TWF5YmVTZW5kRmVuY2UKKyAgICAgZm9yIChibGluazo6RmVuY2VkRnJhbWU6OlJl cG9ydGluZ0Rlc3RpbmF0aW9uIGRlc3RpbmF0aW9uIDoKKyAgICAgICAgICBpbmZvLT5kZXN0aW5h dGlvbnMpIHsKKyAgICAgICBpbml0aWF0b3JfcmZoLT5TZW5kRmVuY2VkRnJhbWVSZXBvcnRpbmdC ZWFjb25JbnRlcm5hbCgKKy0gICAgICAgICAgRGVzdGluYXRpb25FbnVtRXZlbnQoYmxpbms6OmtG ZW5jZWRGcmFtZVRvcE5hdmlnYXRpb25CZWFjb25UeXBlLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbmZvLT5kYXRhKSwKKysgICAgICAgICAgRGVzdGluYXRpb25FbnVtRXZlbnR7 Ymxpbms6OmtGZW5jZWRGcmFtZVRvcE5hdmlnYXRpb25CZWFjb25UeXBlLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbmZvLT5kYXRhfSwKKyAgICAgICAgICAgZGVzdGluYXRpb24s CisgICAgICAgICAgIC8qZnJvbV9yZW5kZXJlcj0qL2ZhbHNlLCBpbmZvLT5hdHRyaWJ1dGlvbl9y ZXBvcnRpbmdfcnVudGltZV9mZWF0dXJlcywKKyAgICAgICAgICAgR2V0RnJhbWVUcmVlTm9kZUlk KCksIG5hdmlnYXRpb25fcmVxdWVzdC5HZXROYXZpZ2F0aW9uSWQoKSk7CitkaWZmIC11cCBjaHJv bWl1bS0xMTkuMC42MDQ1LjU5L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2Zv bnRzL2ZvbnRfcGFsZXR0ZS5oLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTExOS4w LjYwNDUuNTkvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvZm9udF9w YWxldHRlLmgKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L3RoaXJkX3BhcnR5L2JsaW5rL3Jl bmRlcmVyL3BsYXRmb3JtL2ZvbnRzL2ZvbnRfcGFsZXR0ZS5oLm5vX21hdGNoaW5nX2NvbnN0cnVj dG9yCTIwMjMtMTAtMjYgMTg6MTc6MjQuMDAwMDAwMDAwICswMjAwCisrKysgY2hyb21pdW0tMTE5 LjAuNjA0NS41OS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9mb250 X3BhbGV0dGUuaAkyMDIzLTEwLTMwIDE2OjUxOjAyLjI2MjE1MTI4OCArMDEwMAorQEAgLTk2LDcg Kzk2LDcgQEAgY2xhc3MgUExBVEZPUk1fRVhQT1JUIEZvbnRQYWxldHRlIDogcHVibAorICAgICAg IENvbG9yOjpDb2xvclNwYWNlIGNvbG9yX2ludGVycG9sYXRpb25fc3BhY2UsCisgICAgICAgYWJz bDo6b3B0aW9uYWw8Q29sb3I6Okh1ZUludGVycG9sYXRpb25NZXRob2Q+IGh1ZV9pbnRlcnBvbGF0 aW9uX21ldGhvZCkgeworICAgICByZXR1cm4gYmFzZTo6QWRvcHRSZWYobmV3IEZvbnRQYWxldHRl KAorLSAgICAgICAgc3RhcnQsIGVuZCwgTm9uTm9ybWFsaXplZFBlcmNlbnRhZ2VzKHN0YXJ0X3Bl cmNlbnRhZ2UsIGVuZF9wZXJjZW50YWdlKSwKKysgICAgICAgIHN0YXJ0LCBlbmQsIE5vbk5vcm1h bGl6ZWRQZXJjZW50YWdlc3tzdGFydF9wZXJjZW50YWdlLCBlbmRfcGVyY2VudGFnZX0sCisgICAg ICAgICBub3JtYWxpemVkX3BlcmNlbnRhZ2UsIGFscGhhX211bHRpcGxpZXIsIGNvbG9yX2ludGVy cG9sYXRpb25fc3BhY2UsCisgICAgICAgICBodWVfaW50ZXJwb2xhdGlvbl9tZXRob2QpKTsKKyAg IH0KK0BAIC0xNzAsNyArMTcwLDcgQEAgY2xhc3MgUExBVEZPUk1fRVhQT1JUIEZvbnRQYWxldHRl IDogcHVibAorICAgICAgIGRvdWJsZSBub3JtYWxpemVkX3BlcmNlbnRhZ2UpIHsKKyAgICAgZG91 YmxlIGVuZF9wZXJjZW50YWdlID0gbm9ybWFsaXplZF9wZXJjZW50YWdlICogMTAwLjA7CisgICAg IGRvdWJsZSBzdGFydF9wZXJjZW50YWdlID0gMTAwLjAgLSBlbmRfcGVyY2VudGFnZTsKKy0gICAg cmV0dXJuIE5vbk5vcm1hbGl6ZWRQZXJjZW50YWdlcyhzdGFydF9wZXJjZW50YWdlLCBlbmRfcGVy Y2VudGFnZSk7CisrICAgIHJldHVybiBOb25Ob3JtYWxpemVkUGVyY2VudGFnZXN7c3RhcnRfcGVy Y2VudGFnZSwgZW5kX3BlcmNlbnRhZ2V9OworICAgfQorIAorICAgZG91YmxlIEdldEFscGhhTXVs dGlwbGllcigpIGNvbnN0IHsKK2RpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuNTkvdGhpcmRf cGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvcGFsZXR0ZV9pbnRlcnBvbGF0aW9u LmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTExOS4wLjYwNDUuNTkvdGhpcmRf cGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvcGFsZXR0ZV9pbnRlcnBvbGF0aW9u LmNjCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS41OS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJl ci9wbGF0Zm9ybS9mb250cy9wYWxldHRlX2ludGVycG9sYXRpb24uY2Mubm9fbWF0Y2hpbmdfY29u c3RydWN0b3IJMjAyMy0xMC0yNiAxODoxNzoyNC4wMDAwMDAwMDAgKzAyMDAKKysrKyBjaHJvbWl1 bS0xMTkuMC42MDQ1LjU5L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRz L3BhbGV0dGVfaW50ZXJwb2xhdGlvbi5jYwkyMDIzLTEwLTMwIDE2OjUxOjAyLjI2MTE1MTI2MyAr MDEwMAogQEAgLTMxLDcgKzMxLDcgQEAgVmVjdG9yPEZvbnRQYWxldHRlOjpGb250UGFsZXR0ZU92 ZXJyaWRlPgogICAgICAgICAgY29sb3JfaW50ZXJwb2xhdGlvbl9zcGFjZSwgaHVlX2ludGVycG9s YXRpb25fbWV0aG9kLCBzdGFydF9jb2xvciwKICAgICAgICAgIGVuZF9jb2xvciwgcGVyY2VudGFn ZSwgYWxwaGFfbXVsdGlwbGllcik7CkBAIC0zNCwxMCArMjA1LDExMyBAQCBkaWZmIC11cCBjaHJv bWl1bS0xMTYuMC41ODQ1LjUwL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2Zv bnRzL3BhbGV0dAogICAgICByZXN1bHRfY29sb3JfcmVjb3Jkcy5wdXNoX2JhY2socmVzdWx0X2Nv bG9yX3JlY29yZCk7CiAgICB9CiAgICByZXR1cm4gcmVzdWx0X2NvbG9yX3JlY29yZHM7Ci1kaWZm IC11cCBjaHJvbWl1bS0xMTYuMC41ODQ1LjUwL3VpL2Jhc2Uvd2F5bGFuZC9jb2xvcl9tYW5hZ2Vy X3V0aWwuaC5tZSBjaHJvbWl1bS0xMTYuMC41ODQ1LjUwL3VpL2Jhc2Uvd2F5bGFuZC9jb2xvcl9t YW5hZ2VyX3V0aWwuaAotLS0tIGNocm9taXVtLTExNi4wLjU4NDUuNTAvdWkvYmFzZS93YXlsYW5k L2NvbG9yX21hbmFnZXJfdXRpbC5oLm1lCTIwMjMtMDgtMDMgMDg6Mjc6MTEuMzcxNzUwMTc4ICsw MjAwCi0rKysgY2hyb21pdW0tMTE2LjAuNTg0NS41MC91aS9iYXNlL3dheWxhbmQvY29sb3JfbWFu YWdlcl91dGlsLmgJMjAyMy0wOC0wMyAxMDozOTowNy4yNjY5ODkzMjMgKzAyMDAKLUBAIC01Miw1 MyArNTIsNTMgQEAgY29uc3RleHByIGF1dG8ga0Nocm9tYXRpY2l0eU1hcCA9IGJhc2U6OgorZGlm ZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS41OS91aS9ndGsvZ3RrX3VpLmNjLm5vX21hdGNoaW5n X2NvbnN0cnVjdG9yIGNocm9taXVtLTExOS4wLjYwNDUuNTkvdWkvZ3RrL2d0a191aS5jYworLS0t IGNocm9taXVtLTExOS4wLjYwNDUuNTkvdWkvZ3RrL2d0a191aS5jYy5ub19tYXRjaGluZ19jb25z dHJ1Y3RvcgkyMDIzLTEwLTI2IDE4OjE4OjE0LjAwMDAwMDAwMCArMDIwMAorKysrIGNocm9taXVt LTExOS4wLjYwNDUuNTkvdWkvZ3RrL2d0a191aS5jYwkyMDIzLTEwLTMwIDE2OjUxOjAyLjI3MjE1 MTUzNyArMDEwMAorQEAgLTk5MywxMSArOTkzLDExIEBAIHVpOjpEaXNwbGF5Q29uZmlnIEd0a1Vp OjpHZXREaXNwbGF5Q29uZmkKKyAgICAgR2RrUmVjdGFuZ2xlIGdlb21ldHJ5OworICAgICBnZGtf bW9uaXRvcl9nZXRfZ2VvbWV0cnkobW9uaXRvciwgJmdlb21ldHJ5KTsKKyAgICAgaW50IG1vbml0 b3Jfc2NhbGUgPSBzdGQ6Om1heCgxLCBnZGtfbW9uaXRvcl9nZXRfc2NhbGVfZmFjdG9yKG1vbml0 b3IpKTsKKy0gICAgY29uZmlnLmRpc3BsYXlfZ2VvbWV0cmllcy5lbXBsYWNlX2JhY2soCisrICAg IGNvbmZpZy5kaXNwbGF5X2dlb21ldHJpZXMuZW1wbGFjZV9iYWNrKCkgPSB7CisgICAgICAgICBn Zng6OlJlY3QobW9uaXRvcl9zY2FsZSAqIGdlb21ldHJ5LngsIG1vbml0b3Jfc2NhbGUgKiBnZW9t ZXRyeS55LAorICAgICAgICAgICAgICAgICAgIG1vbml0b3Jfc2NhbGUgKiBnZW9tZXRyeS53aWR0 aCwKKyAgICAgICAgICAgICAgICAgICBtb25pdG9yX3NjYWxlICogZ2VvbWV0cnkuaGVpZ2h0KSwK Ky0gICAgICAgIG1vbml0b3Jfc2NhbGUgKiBmb250X3NjYWxlKTsKKysgICAgICAgIHN0YXRpY19j YXN0PGZsb2F0Pihtb25pdG9yX3NjYWxlICogZm9udF9zY2FsZSl9OworICAgfQorICAgcmV0dXJu IGNvbmZpZzsKKyB9CitkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Jhc2UvbWV0cmlj cy9wZXJzaXN0ZW50X2hpc3RvZ3JhbV9hbGxvY2F0b3IuY2MubWUgY2hyb21pdW0tMTE5LjAuNjA0 NS41OS9iYXNlL21ldHJpY3MvcGVyc2lzdGVudF9oaXN0b2dyYW1fYWxsb2NhdG9yLmNjCistLS0g Y2hyb21pdW0tMTE5LjAuNjA0NS41OS9iYXNlL21ldHJpY3MvcGVyc2lzdGVudF9oaXN0b2dyYW1f YWxsb2NhdG9yLmNjLm1lCTIwMjMtMTAtMzEgMTg6MTQ6NDkuMjc1NzI4MDk5ICswMTAwCisrKysg Y2hyb21pdW0tMTE5LjAuNjA0NS41OS9iYXNlL21ldHJpY3MvcGVyc2lzdGVudF9oaXN0b2dyYW1f YWxsb2NhdG9yLmNjCTIwMjMtMTAtMzEgMTg6MTk6NTQuNTk5MjIzMjM5ICswMTAwCitAQCAtMjIx LDEzICsyMjEsMTMgQEAgUGVyc2lzdGVudFNwYXJzZUhpc3RvZ3JhbURhdGFNYW5hZ2VyOjpMbwor ICAgICAvLyBUaGUgc2FtcGxlLXJlY29yZCBjb3VsZCBiZSBmb3IgYW55IHNwYXJzZSBoaXN0b2dy YW0uIEFkZCB0aGUgcmVmZXJlbmNlCisgICAgIC8vIHRvIHRoZSBhcHByb3ByaWF0ZSBjb2xsZWN0 aW9uIGZvciBsYXRlciB1c2UuCisgICAgIGlmIChmb3VuZF9pZCA9PSBtYXRjaF9pZCkgeworLSAg ICAgIGZvdW5kX3JlY29yZHMuZW1wbGFjZV9iYWNrKHJlZiwgdmFsdWUpOworKyAgICAgIGZvdW5k X3JlY29yZHMuZW1wbGFjZV9iYWNrKCkgPSB7cmVmLCB2YWx1ZX07CisgICAgICAgZm91bmQgPSB0 cnVlOworICAgICB9IGVsc2UgeworICAgICAgIHN0ZDo6dmVjdG9yPFJlZmVyZW5jZUFuZFNhbXBs ZT4qIHNhbXBsZXMgPQorICAgICAgICAgICBHZXRTYW1wbGVNYXBSZWNvcmRzV2hpbGVMb2NrZWQo Zm91bmRfaWQpOworICAgICAgIENIRUNLKHNhbXBsZXMpOworLSAgICAgIHNhbXBsZXMtPmVtcGxh Y2VfYmFjayhyZWYsIHZhbHVlKTsKKysgICAgICBzYW1wbGVzLT5lbXBsYWNlX2JhY2soKSA9IHty ZWYsIHZhbHVlfTsKKyAgICAgfQorICAgfQorIAorZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0 NS41OS9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfY2FjaGUuY2MubWUgY2hyb21pdW0tMTE5LjAuNjA0 NS41OS9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfY2FjaGUuY2MKKy0tLSBjaHJvbWl1bS0xMTkuMC42 MDQ1LjU5L25ldC9kbnMvaG9zdF9yZXNvbHZlcl9jYWNoZS5jYy5tZQkyMDIzLTEwLTMxIDIwOjQ4 OjE5LjE1Mzg2ODMzOCArMDEwMAorKysrIGNocm9taXVtLTExOS4wLjYwNDUuNTkvbmV0L2Rucy9o b3N0X3Jlc29sdmVyX2NhY2hlLmNjCTIwMjMtMTAtMzEgMjA6NTE6MzcuNjM0NTI2NTQ5ICswMTAw CitAQCAtMzY4LDcgKzM2OCw3IEBAIHZvaWQgSG9zdFJlc29sdmVyQ2FjaGU6OlNldCgKKyAKKyAg IHN0ZDo6c3RyaW5nIGRvbWFpbl9uYW1lID0gcmVzdWx0LT5kb21haW5fbmFtZSgpOworICAgZW50 cmllc18uZW1wbGFjZSgKKy0gICAgICBLZXkoc3RkOjptb3ZlKGRvbWFpbl9uYW1lKSwgbmV0d29y a19hbm9ueW1pemF0aW9uX2tleSksCisrICAgICAgS2V5e3N0ZDo6bW92ZShkb21haW5fbmFtZSks IG5ldHdvcmtfYW5vbnltaXphdGlvbl9rZXl9LAorICAgICAgIEVudHJ5KHN0ZDo6bW92ZShyZXN1 bHQpLCBzb3VyY2UsIHNlY3VyZSwgc3RhbGVuZXNzX2dlbmVyYXRpb24pKTsKKyAKKyAgIGlmIChl bnRyaWVzXy5zaXplKCkgPiBtYXhfZW50cmllc18pIHsKK2RpZmYgLXVwIGNocm9taXVtLTExOS4w LjYwNDUuNTkvY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvd2ViZGF0YS9hdXRvZmls bF90YWJsZS5jYy5tZSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbXBvbmVudHMvYXV0b2ZpbGwv Y29yZS9icm93c2VyL3dlYmRhdGEvYXV0b2ZpbGxfdGFibGUuY2MKKy0tLSBjaHJvbWl1bS0xMTku MC42MDQ1LjU5L2NvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93c2VyL3dlYmRhdGEvYXV0b2Zp bGxfdGFibGUuY2MubWUJMjAyMy0xMC0zMSAyMjozMjo1OC45OTU5OTc4OTcgKzAxMDAKKysrKyBj aHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93c2VyL3dl YmRhdGEvYXV0b2ZpbGxfdGFibGUuY2MJMjAyMy0xMC0zMSAyMjozMzoyOC4yOTA1MjA2MDEgKzAx MDAKK0BAIC0xNzMzLDEwICsxNzMzLDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxBdXRvZmlsbFByb2Zp bGU+IEF1dG9maWwKKyAgICAgfQorIAorICAgICBiYXNlOjpzcGFuPGNvbnN0IHVpbnQ4X3Q+IG9i c2VydmF0aW9uc19kYXRhID0gcy5Db2x1bW5CbG9iKDMpOworLSAgICBmaWVsZF90eXBlX3ZhbHVl cy5lbXBsYWNlX2JhY2soCisrICAgIGZpZWxkX3R5cGVfdmFsdWVzLmVtcGxhY2VfYmFjaygpID0g eworICAgICAgICAgdHlwZSwgcy5Db2x1bW5TdHJpbmcxNigxKSwgcy5Db2x1bW5JbnQoMiksCisg ICAgICAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PihvYnNlcnZhdGlvbnNfZGF0YS5iZWdpbigpLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2YXRpb25zX2RhdGEuZW5kKCkpKTsK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmF0aW9uc19kYXRhLmVuZCgpKX07 CisgCisgICAgIGlmICh0eXBlID09IEFERFJFU1NfSE9NRV9DT1VOVFJZKSB7CisgICAgICAgY291 bnRyeV9jb2RlID0gYmFzZTo6VVRGMTZUb1VURjgocy5Db2x1bW5TdHJpbmcxNigxKSk7CitkaWZm IC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbXBvbmVudHMvcGFzc3dvcmRfbWFuYWdlci9j b3JlL2Jyb3dzZXIvcGFzc3dvcmRfbWFuYWdlci5jYy50aGFuIGNocm9taXVtLTExOS4wLjYwNDUu NTkvY29tcG9uZW50cy9wYXNzd29yZF9tYW5hZ2VyL2NvcmUvYnJvd3Nlci9wYXNzd29yZF9tYW5h Z2VyLmNjCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jb21wb25lbnRzL3Bhc3N3b3JkX21h bmFnZXIvY29yZS9icm93c2VyL3Bhc3N3b3JkX21hbmFnZXIuY2MudGhhbgkyMDIzLTEwLTMxIDIy OjQxOjIyLjg1MDIzMzAwNSArMDEwMAorKysrIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY29tcG9u ZW50cy9wYXNzd29yZF9tYW5hZ2VyL2NvcmUvYnJvd3Nlci9wYXNzd29yZF9tYW5hZ2VyLmNjCTIw MjMtMTAtMzEgMjI6NDI6MzcuMjc2OTMxOTMzICswMTAwCitAQCAtNjI1LDcgKzYyNSw3IEBAIHZv aWQgUGFzc3dvcmRNYW5hZ2VyOjpPblVzZXJNb2RpZmllZE5vblAKKyAgIC8vIHxkcml2ZXJ8IG1p Z2h0IGJlIGVtcHR5IG9uIGlPUyBvciBpbiB0ZXN0cy4KKyAgIGludCBkcml2ZXJfaWQgPSBkcml2 ZXIgPyBkcml2ZXItPkdldElkKCkgOiAwOworICAgcG9zc2libGVfdXNlcm5hbWVzXy5QdXQoCist ICAgICAgUG9zc2libGVVc2VybmFtZUZpZWxkSWRlbnRpZmllcihkcml2ZXJfaWQsIHJlbmRlcmVy X2lkKSwKKysgICAgICBQb3NzaWJsZVVzZXJuYW1lRmllbGRJZGVudGlmaWVye2RyaXZlcl9pZCwg cmVuZGVyZXJfaWR9LAorICAgICAgIFBvc3NpYmxlVXNlcm5hbWVEYXRhKEdldFNpZ25vblJlYWxt KGRyaXZlci0+R2V0TGFzdENvbW1pdHRlZFVSTCgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZW5kZXJlcl9pZCwgdmFsdWUsIGJhc2U6OlRpbWU6Ok5vdygpLCBkcml2ZXJfaWQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlX2F0dHJpYnV0ZV9oYXNfdXNl cm5hbWUsIGlzX2xpa2VseV9vdHApKTsKK2RpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuNTkv Y29udGVudC9icm93c2VyL2ludGVyZXN0X2dyb3VwL2ludGVyZXN0X2dyb3VwX3N0b3JhZ2UuY2Mu dGhhbiBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2NvbnRlbnQvYnJvd3Nlci9pbnRlcmVzdF9ncm91 cC9pbnRlcmVzdF9ncm91cF9zdG9yYWdlLmNjCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS41OS9j b250ZW50L2Jyb3dzZXIvaW50ZXJlc3RfZ3JvdXAvaW50ZXJlc3RfZ3JvdXBfc3RvcmFnZS5jYy50 aGFuCTIwMjMtMTAtMzEgMjM6MzE6MDguNDM4MjY3OTA4ICswMTAwCisrKysgY2hyb21pdW0tMTE5 LjAuNjA0NS41OS9jb250ZW50L2Jyb3dzZXIvaW50ZXJlc3RfZ3JvdXAvaW50ZXJlc3RfZ3JvdXBf c3RvcmFnZS5jYwkyMDIzLTEwLTMxIDIzOjMyOjA4Ljk3OTM1ODcxMSArMDEwMAorQEAgLTI4NTQs MTAgKzI4NTQsMTAgQEAgRG9HZXRLQW5vbnltaXR5RGF0YShzcWw6OkRhdGFiYXNlJiBkYiwKKyAK KyAgIHN0ZDo6dmVjdG9yPFN0b3JhZ2VJbnRlcmVzdEdyb3VwOjpLQW5vbnltaXR5RGF0YT4ga19h bm9uX2RhdGE7CisgICB3aGlsZSAoaW50ZXJlc3RfZ3JvdXBfa2Fub25fcXVlcnkuU3RlcCgpKSB7 CistICAgIGtfYW5vbl9kYXRhLmVtcGxhY2VfYmFjaygKKysgICAga19hbm9uX2RhdGEuZW1wbGFj ZV9iYWNrKCkgPSB7CisgICAgICAgICAvKmtleT0qL2ludGVyZXN0X2dyb3VwX2thbm9uX3F1ZXJ5 LkNvbHVtblN0cmluZygwKSwKKyAgICAgICAgIC8qaXNfa19hbm9ueW1vdXM9Ki9pbnRlcmVzdF9n cm91cF9rYW5vbl9xdWVyeS5Db2x1bW5Cb29sKDEpLAorLSAgICAgICAgLypsYXN0X3VwZGF0ZWQ9 Ki9pbnRlcmVzdF9ncm91cF9rYW5vbl9xdWVyeS5Db2x1bW5UaW1lKDIpKTsKKysgICAgICAgIC8q bGFzdF91cGRhdGVkPSovaW50ZXJlc3RfZ3JvdXBfa2Fub25fcXVlcnkuQ29sdW1uVGltZSgyKX07 CisgICB9CisgICBpZiAoIWludGVyZXN0X2dyb3VwX2thbm9uX3F1ZXJ5LlN1Y2NlZWRlZCgpKSB7 CisgICAgIHJldHVybiBhYnNsOjpudWxsb3B0OworZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0 NS41OS9jb250ZW50L2Jyb3dzZXIvd2ViaWQvZmVkZXJhdGVkX2F1dGhfcmVxdWVzdF9pbXBsLmNj LnRoYW4gY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jb250ZW50L2Jyb3dzZXIvd2ViaWQvZmVkZXJh dGVkX2F1dGhfcmVxdWVzdF9pbXBsLmNjCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jb250 ZW50L2Jyb3dzZXIvd2ViaWQvZmVkZXJhdGVkX2F1dGhfcmVxdWVzdF9pbXBsLmNjLnRoYW4JMjAy My0xMS0wMSAxMToxOTo0Mi43NDUzOTU3OTcgKzAxMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1 LjU5L2NvbnRlbnQvYnJvd3Nlci93ZWJpZC9mZWRlcmF0ZWRfYXV0aF9yZXF1ZXN0X2ltcGwuY2MJ MjAyMy0xMS0wMSAxMToyMjoxNi42NzA5MjA2NzkgKzAxMDAKK0BAIC0xODgxLDcgKzE4ODEsNyBA QCB2b2lkIEZlZGVyYXRlZEF1dGhSZXF1ZXN0SW1wbDo6U2hvd0Vycm9yCisgICAgICAgYmFzZTo6 QmluZE9uY2UoJkZlZGVyYXRlZEF1dGhSZXF1ZXN0SW1wbDo6Q29tcGxldGVSZXF1ZXN0V2l0aEVy cm9yLAorICAgICAgICAgICAgICAgICAgICAgIHdlYWtfcHRyX2ZhY3RvcnlfLkdldFdlYWtQdHIo KSkpOworICAgYWJzbDo6b3B0aW9uYWw8VG9rZW5FcnJvcj4gdG9rZW5fZXJyb3IgPQorLSAgICAg IGVycm9yID8gYWJzbDo6bWFrZV9vcHRpb25hbDxUb2tlbkVycm9yPihlcnJvci0+Y29kZSwgZXJy b3ItPnVybCkKKysgICAgICBlcnJvciA/IGFic2w6Om1ha2Vfb3B0aW9uYWw8VG9rZW5FcnJvcj4o e2Vycm9yLT5jb2RlLCBlcnJvci0+dXJsfSkKKyAgICAgICAgICAgICA6IGFic2w6Om51bGxvcHQ7 CisgCisgICAvLyBUT0RPKGNyYnVnLmNvbS8xNDg1NzEwKTogUmVmYWN0b3IgSWRlbnRpdHlDcmVk ZW50aWFsVG9rZW5FcnJvcgorLS0tIGNocm9taXVtLTExOS4wLjYwNDUuNTkvdWkvYmFzZS93YXls YW5kL2NvbG9yX21hbmFnZXJfdXRpbC5oLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTAt MjYgMTg6MTg6MTQuMDAwMDAwMDAwICswMjAwCisrKysgY2hyb21pdW0tMTE5LjAuNjA0NS41OS91 aS9iYXNlL3dheWxhbmQvY29sb3JfbWFuYWdlcl91dGlsLmgJMjAyMy0xMS0wMSAxNzoyOTo1NC4y Njk4MjA0MTUgKzAxMDAKK0BAIC01Miw1MyArNTIsNTMgQEAKICAgICAgemNyX2NvbG9yX21hbmFn ZXJfdjFfY2hyb21hdGljaXR5X25hbWVzLAogICAgICBQcmltYXJ5VmVyc2lvbj4oCiAgICAgIHt7 WkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVTX0JUNjAxXzUyNV9MSU5FLApA QCAtMTE3LDcgKzM5MSw3IEBAIGRpZmYgLXVwIGNocm9taXVtLTExNi4wLjU4NDUuNTAvdWkvYmFz ZS93YXlsYW5kL2NvbG9yX21hbmFnZXJfdXRpbC5oLm1lIGNocm9taXVtCiAgCiAgLy8gQSBtYXAg ZnJvbSB0aGUgemNyX2NvbG9yX21hbmFnZXJfdjEgZW90Zl9uYW1lcyBlbnVtIHZhbHVlcwogIC8v IHJlcHJlc2VudGluZyB3ZWxsLWtub3duIEVPVEZzLCB0byB0aGVpciBlcXVpdmFsZW50IFRyYW5z ZmVySURzLgotQEAgLTEwNyw2NSArMTA3LDY1IEBAIGNvbnN0ZXhwciBhdXRvIGtFb3RmTWFwID0g YmFzZTo6TWFrZUZpeGUKK0BAIC0xMDcsNjggKzEwNyw2OCBAQAogICAgICB6Y3JfY29sb3JfbWFu YWdlcl92MV9lb3RmX25hbWVzLAogICAgICBUcmFuc2ZlclZlcnNpb24+KHsKICAgICAge1pDUl9D T0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfTElORUFSLApAQCAtMTI4LDYgKzQwMiwxMSBAQCBk aWZmIC11cCBjaHJvbWl1bS0xMTYuMC41ODQ1LjUwL3VpL2Jhc2Uvd2F5bGFuZC9jb2xvcl9tYW5h Z2VyX3V0aWwuaC5tZSBjaHJvbWl1bQogICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9O QU1FU19TUkdCLAogLSAgICAgVHJhbnNmZXJWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6VHJhbnNm ZXJJRDo6U1JHQiwga0RlZmF1bHRTaW5jZVZlcnNpb24pfSwKICsgICAgIFRyYW5zZmVyVmVyc2lv bntnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OlNSR0IsIGtEZWZhdWx0U2luY2VWZXJzaW9u fX0sCisgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX1NSR0JfSERSLAorLSAg ICAgVHJhbnNmZXJWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6U1JHQl9IRFIs CistICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19T UkdCX0hEUl9TSU5DRV9WRVJTSU9OKX0sCisrICAgICBUcmFuc2ZlclZlcnNpb257Z2Z4OjpDb2xv clNwYWNlOjpUcmFuc2ZlcklEOjpTUkdCX0hEUiwKKysgICAgICAgICAgICAgICAgICAgICBaQ1Jf Q09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX1NSR0JfSERSX1NJTkNFX1ZFUlNJT059fSwKICAg ICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfQlQ3MDksCiAtICAgICBUcmFuc2Zl clZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpCVDcwOSwKIC0gICAgICAgICAg ICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0JUNzA5X1NJTkNFX1ZF UlNJT04pfSwKQEAgLTIxOSw3ICs0OTgsNyBAQCBkaWZmIC11cCBjaHJvbWl1bS0xMTYuMC41ODQ1 LjUwL3VpL2Jhc2Uvd2F5bGFuZC9jb2xvcl9tYW5hZ2VyX3V0aWwuaC5tZSBjaHJvbWl1bQogIH0p OwogIAogIC8vIEEgbWFwIGZyb20gdGhlIFNEUiB6Y3JfY29sb3JfbWFuYWdlcl92MSBlb3RmX25h bWVzIGVudW0gdmFsdWVzCi1AQCAtMTc0LDE4ICsxNzQsMTggQEAgY29uc3RleHByIGF1dG8ga0Vv dGZNYXAgPSBiYXNlOjpNYWtlRml4ZQorQEAgLTE3NywxOCArMTc3LDE4IEBACiAgY29uc3RleHBy IGF1dG8ga1RyYW5zZmVyTWFwID0KICAgICAgYmFzZTo6TWFrZUZpeGVkRmxhdE1hcDx6Y3JfY29s b3JfbWFuYWdlcl92MV9lb3RmX25hbWVzLCBUcmFuc2ZlckZuVmVyc2lvbj4oewogICAgICAgICAg e1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfTElORUFSLApAQCAtMjQ1LDE1ICs1MjQs MTggQEAgZGlmZiAtdXAgY2hyb21pdW0tMTE2LjAuNTg0NS41MC91aS9iYXNlL3dheWxhbmQvY29s b3JfbWFuYWdlcl91dGlsLmgubWUgY2hyb21pdW0KICAgICAgfSk7CiAgCiAgLy8gQSBtYXAgZnJv bSB0aGUgSERSIHpjcl9jb2xvcl9tYW5hZ2VyX3YxIGVvdGZfbmFtZXMgZW51bSB2YWx1ZXMKLUBA IC0xOTQsNjggKzE5NCw2OCBAQCBjb25zdGV4cHIgYXV0byBrVHJhbnNmZXJNYXAgPQorQEAgLTE5 Nyw3MCArMTk3LDcwIEBACiAgY29uc3RleHByIGF1dG8ga0hEUlRyYW5zZmVyTWFwID0KICAgICAg YmFzZTo6TWFrZUZpeGVkRmxhdE1hcDx6Y3JfY29sb3JfbWFuYWdlcl92MV9lb3RmX25hbWVzLCBU cmFuc2ZlckZuVmVyc2lvbj4oCiAgICAgICAgICB7e1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZf TkFNRVNfTElORUFSLAogLSAgICAgICAgICBUcmFuc2ZlckZuVmVyc2lvbihTa05hbWVkVHJhbnNm ZXJGbjo6a0xpbmVhciwga0RlZmF1bHRTaW5jZVZlcnNpb24pfSwKICsgICAgICAgICAgVHJhbnNm ZXJGblZlcnNpb257U2tOYW1lZFRyYW5zZmVyRm46OmtMaW5lYXIsIGtEZWZhdWx0U2luY2VWZXJz aW9ufX0sCi0gICAgICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU1JHQiwK LS0gICAgICAgICAgVHJhbnNmZXJGblZlcnNpb24oU2tOYW1lZFRyYW5zZmVyRm5FeHQ6OmtTUkdC LCBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAotKyAgICAgICAgICBUcmFuc2ZlckZuVmVyc2lvbntT a05hbWVkVHJhbnNmZXJGbkV4dDo6a1NSR0IsIGtEZWZhdWx0U2luY2VWZXJzaW9ufX0sCisgICAg ICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU1JHQl9IRFIsCistICAgICAg ICAgIFRyYW5zZmVyRm5WZXJzaW9uKAorKyAgICAgICAgICBUcmFuc2ZlckZuVmVyc2lvbnsKKyAg ICAgICAgICAgICAgIFNrTmFtZWRUcmFuc2ZlckZuRXh0OjprU1JHQiwKKy0gICAgICAgICAgICAg IFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU1JHQl9IRFJfU0lOQ0VfVkVSU0lPTil9 LAorKyAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19TUkdCX0hE Ul9TSU5DRV9WRVJTSU9OfX0sCiAgICAgICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZf TkFNRVNfUFEsCiAtICAgICAgICAgIFRyYW5zZmVyRm5WZXJzaW9uKFNrTmFtZWRUcmFuc2ZlckZu OjprUFEsIGtEZWZhdWx0U2luY2VWZXJzaW9uKX0sCiArICAgICAgICAgIFRyYW5zZmVyRm5WZXJz aW9ue1NrTmFtZWRUcmFuc2ZlckZuOjprUFEsIGtEZWZhdWx0U2luY2VWZXJzaW9ufX0sCkBAIC0z NDYsMjIyICs2MjgsNzYgQEAgZGlmZiAtdXAgY2hyb21pdW0tMTE2LjAuNTg0NS41MC91aS9iYXNl L3dheWxhbmQvY29sb3JfbWFuYWdlcl91dGlsLmgubWUgY2hyb21pdW0KICAKICB6Y3JfY29sb3Jf bWFuYWdlcl92MV9jaHJvbWF0aWNpdHlfbmFtZXMgVG9Db2xvck1hbmFnZXJDaHJvbWF0aWNpdHko CiAgICAgIGdmeDo6Q29sb3JTcGFjZTo6UHJpbWFyeUlEIHByaW1hcnlJRCwKLWRpZmYgLXVwIGNo cm9taXVtLTExNi4wLjU4NDUuNTAvY2hyb21lL2Jyb3dzZXIvdWkvb21uaWJveC9jaHJvbWVfb21u aWJveF9jbGllbnQuY2MubWUgY2hyb21pdW0tMTE2LjAuNTg0NS41MC9jaHJvbWUvYnJvd3Nlci91 aS9vbW5pYm94L2Nocm9tZV9vbW5pYm94X2NsaWVudC5jYwotLS0tIGNocm9taXVtLTExNi4wLjU4 NDUuNTAvY2hyb21lL2Jyb3dzZXIvdWkvb21uaWJveC9jaHJvbWVfb21uaWJveF9jbGllbnQuY2Mu bWUJMjAyMy0wOC0wMyAxMzoyMzozMy43NDgzOTQ2MTUgKzAyMDAKLSsrKyBjaHJvbWl1bS0xMTYu MC41ODQ1LjUwL2Nocm9tZS9icm93c2VyL3VpL29tbmlib3gvY2hyb21lX29tbmlib3hfY2xpZW50 LmNjCTIwMjMtMDgtMDMgMTM6MjU6MDEuMTQwNDg5ODQwICswMjAwCi1AQCAtNDcwLDEwICs0NzAs MTAgQEAgdm9pZCBDaHJvbWVPbW5pYm94Q2xpZW50OjpPbkF1dG9jb21wbGV0ZQotICAgICAgICAg ICAgICAgYWx0ZXJuYXRpdmVfbmF2X21hdGNoKTsKLSAKLSAgIC8vIFN0b3JlIHRoZSBkZXRhaWxz IG5lY2Vzc2FyeSB0byBvcGVuIHRoZSBvbW5pYm94IG1hdGNoIHZpYSBicm93c2VyIGNvbW1hbmRz LgotLSAgbG9jYXRpb25fYmFyXy0+c2V0X25hdmlnYXRpb25fcGFyYW1zKExvY2F0aW9uQmFyOjpO YXZpZ2F0aW9uUGFyYW1zKAotKyAgbG9jYXRpb25fYmFyXy0+c2V0X25hdmlnYXRpb25fcGFyYW1z KExvY2F0aW9uQmFyOjpOYXZpZ2F0aW9uUGFyYW1zewotICAgICAgIGRlc3RpbmF0aW9uX3VybCwg ZGlzcG9zaXRpb24sIHRyYW5zaXRpb24sIG1hdGNoX3NlbGVjdGlvbl90aW1lc3RhbXAsCi0gICAg ICAgZGVzdGluYXRpb25fdXJsX2VudGVyZWRfd2l0aG91dF9zY2hlbWUsCi0tICAgICAgZGVzdGlu YXRpb25fdXJsX2VudGVyZWRfd2l0aF9odHRwX3NjaGVtZSkpOwotKyAgICAgIGRlc3RpbmF0aW9u X3VybF9lbnRlcmVkX3dpdGhfaHR0cF9zY2hlbWV9KTsKLSAKLSAgIGlmIChicm93c2VyXykgewot ICAgICBhdXRvIG5hdmlnYXRpb24gPSBjaHJvbWU6Ok9wZW5DdXJyZW50VVJMKGJyb3dzZXJfKTsK LWRpZmYgLXVwIGNocm9taXVtLTExNy4wLjU5MzguNjIvbmV0L2Rucy9ob3N0X3Jlc29sdmVyX2Nh Y2hlLmNjLm1lIGNocm9taXVtLTExNy4wLjU5MzguNjIvbmV0L2Rucy9ob3N0X3Jlc29sdmVyX2Nh Y2hlLmNjCi1kaWZmIC11cCBjaHJvbWl1bS0xMTcuMC41OTM4LjYyL3RoaXJkX3BhcnR5L2JsaW5r L3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL2ZvbnRfcGFsZXR0ZS5oLm1lIGNocm9taXVtLTExNy4w LjU5MzguNjIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvZm9udF9w YWxldHRlLmgKLS0tLSBjaHJvbWl1bS0xMTcuMC41OTM4LjYyL3RoaXJkX3BhcnR5L2JsaW5rL3Jl bmRlcmVyL3BsYXRmb3JtL2ZvbnRzL2ZvbnRfcGFsZXR0ZS5oLm1lCTIwMjMtMDktMTUgMTA6NDg6 NDEuMzMwMjk0MjQxICswMjAwCi0rKysgY2hyb21pdW0tMTE3LjAuNTkzOC42Mi90aGlyZF9wYXJ0 eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9mb250X3BhbGV0dGUuaAkyMDIzLTA5LTE1 IDEwOjUxOjI0LjUwMTMyNDQxNiArMDIwMAotQEAgLTk2LDcgKzk2LDcgQEAgY2xhc3MgUExBVEZP Uk1fRVhQT1JUIEZvbnRQYWxldHRlIDogcHVibAotICAgICAgIENvbG9yOjpDb2xvclNwYWNlIGNv bG9yX2ludGVycG9sYXRpb25fc3BhY2UsCi0gICAgICAgYWJzbDo6b3B0aW9uYWw8Q29sb3I6Okh1 ZUludGVycG9sYXRpb25NZXRob2Q+IGh1ZV9pbnRlcnBvbGF0aW9uX21ldGhvZCkgewotICAgICBy ZXR1cm4gYmFzZTo6QWRvcHRSZWYobmV3IEZvbnRQYWxldHRlKAotLSAgICAgICAgc3RhcnQsIGVu ZCwgTm9uTm9ybWFsaXplZFBlcmNlbnRhZ2VzKHN0YXJ0X3BlcmNlbnRhZ2UsIGVuZF9wZXJjZW50 YWdlKSwKLSsgICAgICAgIHN0YXJ0LCBlbmQsIE5vbk5vcm1hbGl6ZWRQZXJjZW50YWdlc3tzdGFy dF9wZXJjZW50YWdlLCBlbmRfcGVyY2VudGFnZX0sCi0gICAgICAgICBub3JtYWxpemVkX3BlcmNl bnRhZ2UsIGFscGhhX211bHRpcGxpZXIsIGNvbG9yX2ludGVycG9sYXRpb25fc3BhY2UsCi0gICAg ICAgICBodWVfaW50ZXJwb2xhdGlvbl9tZXRob2QpKTsKLSAgIH0KLUBAIC0xNzAsNyArMTcwLDcg QEAgY2xhc3MgUExBVEZPUk1fRVhQT1JUIEZvbnRQYWxldHRlIDogcHVibAotICAgICAgIGRvdWJs ZSBub3JtYWxpemVkX3BlcmNlbnRhZ2UpIHsKLSAgICAgZG91YmxlIGVuZF9wZXJjZW50YWdlID0g bm9ybWFsaXplZF9wZXJjZW50YWdlICogMTAwLjA7Ci0gICAgIGRvdWJsZSBzdGFydF9wZXJjZW50 YWdlID0gMTAwLjAgLSBlbmRfcGVyY2VudGFnZTsKLS0gICAgcmV0dXJuIE5vbk5vcm1hbGl6ZWRQ ZXJjZW50YWdlcyhzdGFydF9wZXJjZW50YWdlLCBlbmRfcGVyY2VudGFnZSk7Ci0rICAgIHJldHVy biBOb25Ob3JtYWxpemVkUGVyY2VudGFnZXN7c3RhcnRfcGVyY2VudGFnZSwgZW5kX3BlcmNlbnRh Z2V9OwotICAgfQotIAotICAgZG91YmxlIEdldEFscGhhTXVsdGlwbGllcigpIGNvbnN0IHsKLWRp ZmYgLXVwIGNocm9taXVtLTExNy4wLjU5MzguNjIvY29udGVudC9icm93c2VyL3JlbmRlcmVyX2hv c3QvcmVuZGVyX2ZyYW1lX2hvc3RfaW1wbC5jYy5tZSBjaHJvbWl1bS0xMTcuMC41OTM4LjYyL2Nv bnRlbnQvYnJvd3Nlci9yZW5kZXJlcl9ob3N0L3JlbmRlcl9mcmFtZV9ob3N0X2ltcGwuY2MKLS0t LSBjaHJvbWl1bS0xMTcuMC41OTM4LjYyL2NvbnRlbnQvYnJvd3Nlci9yZW5kZXJlcl9ob3N0L3Jl bmRlcl9mcmFtZV9ob3N0X2ltcGwuY2MubWUJMjAyMy0wOS0xNSAxMjoxNzozNS42NjQ4NjEyNTcg KzAyMDAKLSsrKyBjaHJvbWl1bS0xMTcuMC41OTM4LjYyL2NvbnRlbnQvYnJvd3Nlci9yZW5kZXJl cl9ob3N0L3JlbmRlcl9mcmFtZV9ob3N0X2ltcGwuY2MJMjAyMy0wOS0xNSAxMjoyMTowNi4xMTI2 OTQyNTYgKzAyMDAKLUBAIC04NTA5LDcgKzg1MDksNyBAQCB2b2lkIFJlbmRlckZyYW1lSG9zdElt cGw6OlNlbmRGZW5jZWRGcmFtCi0gICBmb3IgKGNvbnN0IGJsaW5rOjpGZW5jZWRGcmFtZTo6UmVw b3J0aW5nRGVzdGluYXRpb24mIGRlc3RpbmF0aW9uIDoKLSAgICAgICAgZGVzdGluYXRpb25zKSB7 Ci0gICAgIFNlbmRGZW5jZWRGcmFtZVJlcG9ydGluZ0JlYWNvbkludGVybmFsKAotLSAgICAgICAg RGVzdGluYXRpb25FbnVtRXZlbnQoZXZlbnRfdHlwZSwgZXZlbnRfZGF0YSksIGRlc3RpbmF0aW9u LAotKyAgICAgICAgRGVzdGluYXRpb25FbnVtRXZlbnR7ZXZlbnRfdHlwZSwgZXZlbnRfZGF0YX0s IGRlc3RpbmF0aW9uLAotICAgICAgICAgLypmcm9tX3JlbmRlcmVyPSovdHJ1ZSwgYXR0cmlidXRp b25fcmVwb3J0aW5nX3J1bnRpbWVfZmVhdHVyZXMsCi0gICAgICAgICBHZXRGcmFtZVRyZWVOb2Rl SWQoKSk7Ci0gICB9Ci1AQCAtODU0NSw3ICs4NTQ1LDcgQEAgdm9pZCBSZW5kZXJGcmFtZUhvc3RJ bXBsOjpTZW5kRmVuY2VkRnJhbQotICAgfQotIAotICAgU2VuZEZlbmNlZEZyYW1lUmVwb3J0aW5n QmVhY29uSW50ZXJuYWwoCi0tICAgICAgRGVzdGluYXRpb25VUkxFdmVudChkZXN0aW5hdGlvbl91 cmwpLAotKyAgICAgIERlc3RpbmF0aW9uVVJMRXZlbnR7ZGVzdGluYXRpb25fdXJsfSwKLSAgICAg ICBibGluazo6RmVuY2VkRnJhbWU6OlJlcG9ydGluZ0Rlc3RpbmF0aW9uOjprQnV5ZXIsCi0gICAg ICAgLypmcm9tX3JlbmRlcmVyPSovdHJ1ZSwgYXR0cmlidXRpb25fcmVwb3J0aW5nX3J1bnRpbWVf ZmVhdHVyZXMsCi0gICAgICAgR2V0RnJhbWVUcmVlTm9kZUlkKCkpOwotQEAgLTg2MTcsOCArODYx Nyw4IEBAIHZvaWQgUmVuZGVyRnJhbWVIb3N0SW1wbDo6TWF5YmVTZW5kRmVuY2UKLSAgIGZvciAo Ymxpbms6OkZlbmNlZEZyYW1lOjpSZXBvcnRpbmdEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiA6Ci0g ICAgICAgIGluZm8tPmRlc3RpbmF0aW9ucykgewotICAgICBpbml0aWF0b3JfcmZoLT5TZW5kRmVu Y2VkRnJhbWVSZXBvcnRpbmdCZWFjb25JbnRlcm5hbCgKLS0gICAgICAgIERlc3RpbmF0aW9uRW51 bUV2ZW50KGJsaW5rOjprRmVuY2VkRnJhbWVUb3BOYXZpZ2F0aW9uQmVhY29uVHlwZSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8tPmRhdGEpLAotKyAgICAgICAgRGVzdGluYXRp b25FbnVtRXZlbnR7Ymxpbms6OmtGZW5jZWRGcmFtZVRvcE5hdmlnYXRpb25CZWFjb25UeXBlLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mby0+ZGF0YX0sCi0gICAgICAgICBkZXN0 aW5hdGlvbiwKLSAgICAgICAgIC8qZnJvbV9yZW5kZXJlcj0qL2ZhbHNlLCBpbmZvLT5hdHRyaWJ1 dGlvbl9yZXBvcnRpbmdfcnVudGltZV9mZWF0dXJlcywKLSAgICAgICAgIEdldEZyYW1lVHJlZU5v ZGVJZCgpLCBuYXZpZ2F0aW9uX3JlcXVlc3QuR2V0TmF2aWdhdGlvbklkKCkpOwotZGlmZiAtdXAg Y2hyb21pdW0tMTE3LjAuNTkzOC42Mi9jaHJvbWUvYnJvd3Nlci9lbnRlcnByaXNlL3Byb2ZpbGVf bWFuYWdlbWVudC9wcm9maWxlX21hbmFnZW1lbnRfbmF2aWdhdGlvbl90aHJvdHRsZS5jYy5tZSBj aHJvbWl1bS0xMTcuMC41OTM4LjYyL2Nocm9tZS9icm93c2VyL2VudGVycHJpc2UvcHJvZmlsZV9t YW5hZ2VtZW50L3Byb2ZpbGVfbWFuYWdlbWVudF9uYXZpZ2F0aW9uX3Rocm90dGxlLmNjCi0tLS0g Y2hyb21pdW0tMTE3LjAuNTkzOC42Mi9jaHJvbWUvYnJvd3Nlci9lbnRlcnByaXNlL3Byb2ZpbGVf bWFuYWdlbWVudC9wcm9maWxlX21hbmFnZW1lbnRfbmF2aWdhdGlvbl90aHJvdHRsZS5jYy5tZQky MDIzLTA5LTE1IDIyOjA0OjA5LjIzMzM1NjYyNyArMDIwMAotKysrIGNocm9taXVtLTExNy4wLjU5 MzguNjIvY2hyb21lL2Jyb3dzZXIvZW50ZXJwcmlzZS9wcm9maWxlX21hbmFnZW1lbnQvcHJvZmls ZV9tYW5hZ2VtZW50X25hdmlnYXRpb25fdGhyb3R0bGUuY2MJMjAyMy0wOS0xNSAyMjowNTo0NC4x MjYwNjM5OTIgKzAyMDAKLUBAIC02Nyw4ICs2Nyw4IEBAIGJhc2U6OmZsYXRfbWFwPHN0ZDo6c3Ry aW5nLCBTQU1MUHJvZmlsZUEKLSAgIC8vIFRPRE8oY3JidWcuY29tLzE0NDUwNzIpOiBBZGQgYWN0 dWFsIGRvbWFpbnMgd2l0aCBhdHRyaWJ1dGUgbmFtZXMuCi0gICBwcm9maWxlX2F0dHJpYnV0ZXMt Pmluc2VydChzdGQ6Om1ha2VfcGFpcigKLSAgICAgICAic3VwcG9ydGVkLnRlc3QiLAotLSAgICAg IFNBTUxQcm9maWxlQXR0cmlidXRlcygicGxhY2Vob2xkZXJOYW1lIiwgInBsYWNlaG9sZGVyRG9t YWluIiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInBsYWNlaG9sZGVyVG9rZW4iKSkp OwotKyAgICAgIFNBTUxQcm9maWxlQXR0cmlidXRlc3sicGxhY2Vob2xkZXJOYW1lIiwgInBsYWNl aG9sZGVyRG9tYWluIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBsYWNlaG9sZGVy VG9rZW4ifSkpOwotIAotICAgLy8gRXh0cmFjdCBkb21haW5zIGFuZCBhdHRyaWJ1dGVzIGZyb20g dGhlIGNvbW1hbmQgbGluZSBzd2l0Y2guCi0gICBjb25zdCBiYXNlOjpDb21tYW5kTGluZSYgY29t bWFuZF9saW5lID0KLWRpZmYgLXVwIGNocm9taXVtLTExNS4wLjU3OTAuNDAvY2hyb21lL3Rlc3Qv Y2hyb21lZHJpdmVyL2NhcGFiaWxpdGllcy5jYy5tZSBjaHJvbWl1bS0xMTUuMC41NzkwLjQwL2No cm9tZS90ZXN0L2Nocm9tZWRyaXZlci9jYXBhYmlsaXRpZXMuY2MKLS0tLSBjaHJvbWl1bS0xMTUu MC41NzkwLjQwL2Nocm9tZS90ZXN0L2Nocm9tZWRyaXZlci9jYXBhYmlsaXRpZXMuY2MubWUJMjAy My0wNi0yNSAxMDowNjo1OC40NDU5OTAwNjkgKzAyMDAKLSsrKyBjaHJvbWl1bS0xMTUuMC41Nzkw LjQwL2Nocm9tZS90ZXN0L2Nocm9tZWRyaXZlci9jYXBhYmlsaXRpZXMuY2MJMjAyMy0wNi0yNSAx MDo1MToxNy42NDA4MTgyMzEgKzAyMDAKLUBAIC0zNTUsNyArMzU1LDcgQEAgU3RhdHVzIFBhcnNl TW9iaWxlRW11bGF0aW9uKGNvbnN0IGJhc2U6OgotICAgICAgICAgICAgICAgICAgICAgICAgICIn dmVyc2lvbicgZmllbGQgb2YgdHlwZSBzdHJpbmciKTsKLSAgICAgICAgIH0KLSAKLS0gICAgICAg IGJyYW5kcy5lbXBsYWNlX2JhY2soKmJyYW5kLCAqdmVyc2lvbik7Ci0rICAgICAgICBicmFuZHMu ZW1wbGFjZV9iYWNrKCkgPSB7KmJyYW5kLCAqdmVyc2lvbn07Ci0gICAgICAgfQotIAotICAgICAg IGNsaWVudF9oaW50cy5icmFuZHMgPSBzdGQ6Om1vdmUoYnJhbmRzKTsKLUBAIC0zOTIsNyArMzky LDcgQEAgU3RhdHVzIFBhcnNlTW9iaWxlRW11bGF0aW9uKGNvbnN0IGJhc2U6OgotICAgICAgICAg ICAgICAgICAgICAgICAgICJhICd2ZXJzaW9uJyBmaWVsZCBvZiB0eXBlIHN0cmluZyIpOwotICAg ICAgICAgfQorQEAgLTI4Myw0ICsyODMsNCBAQAogIAotLSAgICAgICAgZnVsbF92ZXJzaW9uX2xp c3QuZW1wbGFjZV9iYWNrKCpicmFuZCwgKnZlcnNpb24pOwotKyAgICAgICAgZnVsbF92ZXJzaW9u X2xpc3QuZW1wbGFjZV9iYWNrKCkgPSB7KmJyYW5kLCAqdmVyc2lvbn07Ci0gICAgICAgfQorIH0g IC8vIG5hbWVzcGFjZSB1aTo6d2F5bGFuZAogIAotICAgICAgIGNsaWVudF9oaW50cy5mdWxsX3Zl cnNpb25fbGlzdCA9IHN0ZDo6bW92ZShmdWxsX3ZlcnNpb25fbGlzdCk7Ci1kaWZmIC11cCBjaHJv bWl1bS0xMTYuMC41ODQ1Ljk2L2Nocm9tZS9icm93c2VyL2NvbnRlbnRfc2V0dGluZ3Mvb25lX3Rp bWVfcGVybWlzc2lvbl9wcm92aWRlci5jYy5tZSBjaHJvbWl1bS0xMTYuMC41ODQ1Ljk2L2Nocm9t ZS9icm93c2VyL2NvbnRlbnRfc2V0dGluZ3Mvb25lX3RpbWVfcGVybWlzc2lvbl9wcm92aWRlci5j YwotLS0tIGNocm9taXVtLTExNi4wLjU4NDUuOTYvY2hyb21lL2Jyb3dzZXIvY29udGVudF9zZXR0 aW5ncy9vbmVfdGltZV9wZXJtaXNzaW9uX3Byb3ZpZGVyLmNjLm1lCTIwMjMtMDgtMTUgMjE6MzQ6 NTguOTIyODU1NDI4ICswMjAwCi0rKysgY2hyb21pdW0tMTE2LjAuNTg0NS45Ni9jaHJvbWUvYnJv d3Nlci9jb250ZW50X3NldHRpbmdzL29uZV90aW1lX3Blcm1pc3Npb25fcHJvdmlkZXIuY2MJMjAy My0wOC0xNSAyMTozOToyMy4zMTA0MzQyMzcgKzAyMDAKLUBAIC0yMDcsOCArMjA3LDggQEAgdm9p ZCBPbmVUaW1lUGVybWlzc2lvblByb3ZpZGVyOjpPblN1c3BlbgorLSNlbmRpZiAgLy8gVUlfQkFT RV9XQVlMQU5EX0NPTE9SX01BTkFHRVJfVVRJTF9IXworXCBLZWluIFplaWxlbnVtYnJ1Y2ggYW0g RGF0ZWllbmRlLgorKyNlbmRpZiAgLy8gVUlfQkFTRV9XQVlMQU5EX0NPTE9SX01BTkFHRVJfVVRJ TF9IXworZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUvYnJvd3Nlci91aS92 aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9wcmV2aW91c2x5X2dy YW50ZWRfdmlldy5jYy5tZSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS9icm93c2VyL3Vp L3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X3ByZXZpb3VzbHlf Z3JhbnRlZF92aWV3LmNjCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUvYnJvd3Nl ci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9wcmV2aW91 c2x5X2dyYW50ZWRfdmlldy5jYy5tZQkyMDIzLTExLTAxIDIwOjQ2OjE1Ljk5Nzg2MTI3OCArMDEw MAorKysrIGNocm9taXVtLTExOS4wLjYwNDUuNTkvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVy bWlzc2lvbnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfcHJldmlvdXNseV9ncmFudGVkX3Zp ZXcuY2MJMjAyMy0xMS0wMSAyMDo0OTozMy42MDMzNzE2ODAgKzAxMDAKK0BAIC01OCwxMyArNTgs MTMgQEAgRW1iZWRkZWRQZXJtaXNzaW9uUHJvbXB0UHJldmlvdXNseUdyYW50ZQorIHN0ZDo6dmVj dG9yPEVtYmVkZGVkUGVybWlzc2lvblByb21wdFByZXZpb3VzbHlHcmFudGVkVmlldzo6QnV0dG9u Q29uZmlndXJhdGlvbj4KKyBFbWJlZGRlZFBlcm1pc3Npb25Qcm9tcHRQcmV2aW91c2x5R3JhbnRl ZFZpZXc6OkdldEJ1dHRvbnNDb25maWd1cmF0aW9uKCkgeworICAgc3RkOjp2ZWN0b3I8QnV0dG9u Q29uZmlndXJhdGlvbj4gYnV0dG9uczsKKy0gIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKAorKyAgYnV0 dG9ucy5lbXBsYWNlX2JhY2soKSA9IHsKKyAgICAgICBsMTBuX3V0aWw6OkdldFN0cmluZ1VURjE2 KElEU19FTUJFRERFRF9QUk9NUFRfQ09OVElOVUVfQUxMT1dJTkcpLAorLSAgICAgIEJ1dHRvblR5 cGU6OmtDb250aW51ZUFsbG93aW5nLCB1aTo6QnV0dG9uU3R5bGU6OmtUb25hbCk7CisrICAgICAg QnV0dG9uVHlwZTo6a0NvbnRpbnVlQWxsb3dpbmcsIHVpOjpCdXR0b25TdHlsZTo6a1RvbmFsfTsK ICAKLSAgICAgICB3aGlsZSAocnVsZV9pdGVyYXRvciAmJiBydWxlX2l0ZXJhdG9yLT5IYXNOZXh0 KCkpIHsKLSAgICAgICAgIGF1dG8gcnVsZSA9IHJ1bGVfaXRlcmF0b3ItPk5leHQoKTsKLS0gICAg ICAgIHBhdHRlcm5zX3RvX2RlbGV0ZS5lbXBsYWNlX2JhY2soc2V0dGluZ190eXBlLCBydWxlLT5w cmltYXJ5X3BhdHRlcm4sCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJ1bGUtPnNlY29uZGFyeV9wYXR0ZXJuKTsKLSsgICAgICAgIHBhdHRlcm5zX3RvX2RlbGV0ZS5l bXBsYWNlX2JhY2soKSA9IHtzZXR0aW5nX3R5cGUsIHJ1bGUtPnByaW1hcnlfcGF0dGVybiwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZS0+c2Vjb25kYXJ5X3Bh dHRlcm59OwotICAgICAgICAgcGVybWlzc2lvbnM6OlBlcm1pc3Npb25VbWFVdGlsOjpSZWNvcmRP bmVUaW1lUGVybWlzc2lvbkV2ZW50KAotICAgICAgICAgICAgIHNldHRpbmdfdHlwZSwKLSAgICAg ICAgICAgICBwZXJtaXNzaW9uczo6T25lVGltZVBlcm1pc3Npb25FdmVudDo6RVhQSVJFRF9PTl9T VVNQRU5EKTsKLUBAIC0zMDIsOCArMzAyLDggQEAgdm9pZCBPbmVUaW1lUGVybWlzc2lvblByb3Zp ZGVyOjpEZWxldGVFbgotICAgICBhdXRvIHJ1bGUgPSBydWxlX2l0ZXJhdG9yLT5OZXh0KCk7Ci0g ICAgIGlmIChydWxlLT5wcmltYXJ5X3BhdHRlcm4uTWF0Y2hlcyhvcmlnaW5fZ3VybCkgJiYKLSAg ICAgICAgIHJ1bGUtPnNlY29uZGFyeV9wYXR0ZXJuLk1hdGNoZXMob3JpZ2luX2d1cmwpKSB7Ci0t ICAgICAgcGF0dGVybnNfdG9fZGVsZXRlLmVtcGxhY2VfYmFjaygKLS0gICAgICAgICAgY29udGVu dF9zZXR0aW5nX3R5cGUsIHJ1bGUtPnByaW1hcnlfcGF0dGVybiwgcnVsZS0+c2Vjb25kYXJ5X3Bh dHRlcm4pOwotKyAgICAgIHBhdHRlcm5zX3RvX2RlbGV0ZS5lbXBsYWNlX2JhY2soKSA9IHsKLSsg ICAgICAgICAgY29udGVudF9zZXR0aW5nX3R5cGUsIHJ1bGUtPnByaW1hcnlfcGF0dGVybiwgcnVs ZS0+c2Vjb25kYXJ5X3BhdHRlcm59OwotICAgICAgIHBlcm1pc3Npb25zOjpQZXJtaXNzaW9uVW1h VXRpbDo6UmVjb3JkT25lVGltZVBlcm1pc3Npb25FdmVudCgKLSAgICAgICAgICAgY29udGVudF9z ZXR0aW5nX3R5cGUsIHRyaWdnZXJfZXZlbnQpOwotICAgICB9Ci1kaWZmIC11cCBjaHJvbWl1bS0x MTcuMC41OTM4LjYyL2Jhc2UvdHJhY2VfZXZlbnQvdHJhY2VfbG9nLmNjLm1lIGNocm9taXVtLTEx Ny4wLjU5MzguNjIvYmFzZS90cmFjZV9ldmVudC90cmFjZV9sb2cuY2MKLS0tLSBjaHJvbWl1bS0x MTcuMC41OTM4LjYyL2Jhc2UvdHJhY2VfZXZlbnQvdHJhY2VfbG9nLmNjLm1lCTIwMjMtMDktMTMg MjA6MTQ6NDIuNDQxMjQ4NzgxICswMjAwCi0rKysgY2hyb21pdW0tMTE3LjAuNTkzOC42Mi9iYXNl L3RyYWNlX2V2ZW50L3RyYWNlX2xvZy5jYwkyMDIzLTA5LTEzIDIwOjE2OjEyLjE4NjYzODYwMSAr MDIwMAotQEAgLTIxODcsOCArMjE4Nyw4IEBAIHZvaWQgVHJhY2VMb2c6OlNldFRyYWNlQnVmZmVy Rm9yVGVzdGluZygKLSAjaWYgQlVJTERGTEFHKFVTRV9QRVJGRVRUT19DTElFTlRfTElCUkFSWSkK LSB2b2lkIFRyYWNlTG9nOjpPblNldHVwKGNvbnN0IHBlcmZldHRvOjpEYXRhU291cmNlQmFzZTo6 U2V0dXBBcmdzJiBhcmdzKSB7Ci0gICBBdXRvTG9jayBsb2NrKHRyYWNrX2V2ZW50X2xvY2tfKTsK LS0gIHRyYWNrX2V2ZW50X3Nlc3Npb25zXy5lbXBsYWNlX2JhY2soYXJncy5pbnRlcm5hbF9pbnN0 YW5jZV9pbmRleCwgKmFyZ3MuY29uZmlnLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhcmdzLmJhY2tlbmRfdHlwZSk7Ci0rICB0cmFja19ldmVudF9zZXNzaW9uc18uZW1w bGFjZV9iYWNrKCkgPSB7YXJncy5pbnRlcm5hbF9pbnN0YW5jZV9pbmRleCwgKmFyZ3MuY29uZmln LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLmJhY2tlbmRfdHlw ZX07CistICBidXR0b25zLmVtcGxhY2VfYmFjaygKKysgIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKCkg PSB7CisgICAgICAgbDEwbl91dGlsOjpHZXRTdHJpbmdVVEYxNihJRFNfRU1CRURERURfUFJPTVBU X1NUT1BfQUxMT1dJTkcpLAorLSAgICAgIEJ1dHRvblR5cGU6OmtTdG9wQWxsb3dpbmcsIHVpOjpC dXR0b25TdHlsZTo6a1RvbmFsKTsKKysgICAgICBCdXR0b25UeXBlOjprU3RvcEFsbG93aW5nLCB1 aTo6QnV0dG9uU3R5bGU6OmtUb25hbH07CisgICByZXR1cm4gYnV0dG9uczsKICB9CiAgCi0gdm9p ZCBUcmFjZUxvZzo6T25TdGFydChjb25zdCBwZXJmZXR0bzo6RGF0YVNvdXJjZUJhc2U6OlN0YXJ0 QXJncyYpIHsKLWRpZmYgLXVwIGNocm9taXVtLTExNy4wLjU5MzguNjIvY29udGVudC9icm93c2Vy L2Rvd25sb2FkL3NhdmVfcGFja2FnZS5jYy5tZSBjaHJvbWl1bS0xMTcuMC41OTM4LjYyL2NvbnRl bnQvYnJvd3Nlci9kb3dubG9hZC9zYXZlX3BhY2thZ2UuY2MKLS0tLSBjaHJvbWl1bS0xMTcuMC41 OTM4LjYyL2NvbnRlbnQvYnJvd3Nlci9kb3dubG9hZC9zYXZlX3BhY2thZ2UuY2MubWUJMjAyMy0w OS0xNSAxMjowMjo0My44NjY2MjI1OTEgKzAyMDAKLSsrKyBjaHJvbWl1bS0xMTcuMC41OTM4LjYy L2NvbnRlbnQvYnJvd3Nlci9kb3dubG9hZC9zYXZlX3BhY2thZ2UuY2MJMjAyMy0wOS0xNSAxMjow Mzo1OC43MTU5ODQ1MTEgKzAyMDAKLUBAIC03NjQsOCArNzY0LDggQEAgdm9pZCBTYXZlUGFja2Fn ZTo6RmluaXNoKCkgewotICAgaWYgKGRvd25sb2FkXykgewotICAgICBzdGQ6OnZlY3Rvcjxkb3du bG9hZDo6RG93bmxvYWRTYXZlSXRlbURhdGE6Okl0ZW1JbmZvPiBmaWxlczsKLSAgICAgZm9yIChh dXRvJiBpdGVtIDogc2F2ZWRfc3VjY2Vzc19pdGVtc18pIHsKLS0gICAgICBmaWxlcy5lbXBsYWNl X2JhY2soaXRlbS5zZWNvbmQtPmZ1bGxfcGF0aCgpLCBpdGVtLnNlY29uZC0+dXJsKCksCi0tICAg ICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uc2Vjb25kLT5yZWZlcnJlcigpLnVybCk7Ci0rICAg ICAgZmlsZXMuZW1wbGFjZV9iYWNrKCkgPSB7aXRlbS5zZWNvbmQtPmZ1bGxfcGF0aCgpLCBpdGVt LnNlY29uZC0+dXJsKCksCi0rICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uc2Vjb25kLT5y ZWZlcnJlcigpLnVybH07Ci0gICAgIH0KLSAgICAgZG93bmxvYWQ6OkRvd25sb2FkU2F2ZUl0ZW1E YXRhOjpBdHRhY2hJdGVtRGF0YShkb3dubG9hZF8sIHN0ZDo6bW92ZShmaWxlcykpOwotICAgfQot ZGlmZiAtdXAgY2hyb21pdW0tMTE3LjAuNTkzOC42Mi91aS9ndGsvZ3RrX3VpLmNjLm1lIGNocm9t aXVtLTExNy4wLjU5MzguNjIvdWkvZ3RrL2d0a191aS5jYwotLS0tIGNocm9taXVtLTExNy4wLjU5 MzguNjIvdWkvZ3RrL2d0a191aS5jYy5tZQkyMDIzLTA5LTE1IDIwOjI5OjQyLjYyNjUwMjM0MyAr MDIwMAotKysrIGNocm9taXVtLTExNy4wLjU5MzguNjIvdWkvZ3RrL2d0a191aS5jYwkyMDIzLTA5 LTE1IDIwOjM2OjE4Ljc2MzA5MTE3OSArMDIwMAotQEAgLTk1NSwxMSArOTU1LDExIEBAIHVpOjpE aXNwbGF5Q29uZmlnIEd0a1VpOjpHZXREaXNwbGF5Q29uZmkKLSAgICAgR2RrUmVjdGFuZ2xlIGdl b21ldHJ5OwotICAgICBnZGtfbW9uaXRvcl9nZXRfZ2VvbWV0cnkobW9uaXRvciwgJmdlb21ldHJ5 KTsKLSAgICAgaW50IG1vbml0b3Jfc2NhbGUgPSBzdGQ6Om1heCgxLCBnZGtfbW9uaXRvcl9nZXRf c2NhbGVfZmFjdG9yKG1vbml0b3IpKTsKLS0gICAgY29uZmlnLmRpc3BsYXlfZ2VvbWV0cmllcy5l bXBsYWNlX2JhY2soCi0rICAgIGNvbmZpZy5kaXNwbGF5X2dlb21ldHJpZXMuZW1wbGFjZV9iYWNr KCkgPSB7Ci0gICAgICAgICBnZng6OlJlY3QobW9uaXRvcl9zY2FsZSAqIGdlb21ldHJ5LngsIG1v bml0b3Jfc2NhbGUgKiBnZW9tZXRyeS55LAotICAgICAgICAgICAgICAgICAgIG1vbml0b3Jfc2Nh bGUgKiBnZW9tZXRyeS53aWR0aCwKLSAgICAgICAgICAgICAgICAgICBtb25pdG9yX3NjYWxlICog Z2VvbWV0cnkuaGVpZ2h0KSwKLS0gICAgICAgIG1vbml0b3Jfc2NhbGUgKiBmb250X3NjYWxlKTsK LSsgICAgICAgIHN0YXRpY19jYXN0PGZsb2F0Pihtb25pdG9yX3NjYWxlICogZm9udF9zY2FsZSl9 OworZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUvYnJvd3Nlci91aS92aWV3 cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9hc2tfdmlldy5jYy50aGFu IGNocm9taXVtLTExOS4wLjYwNDUuNTkvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lv bnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfYXNrX3ZpZXcuY2MKKy0tLSBjaHJvbWl1bS0x MTkuMC42MDQ1LjU5L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVk X3Blcm1pc3Npb25fcHJvbXB0X2Fza192aWV3LmNjLnRoYW4JMjAyMy0xMS0wMSAyMDo1MjoyOS4w MDU0NjQ0OTQgKzAxMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS9icm93c2Vy L3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X2Fza192aWV3 LmNjCTIwMjMtMTEtMDEgMjE6MTQ6MTIuNzQxODU5NjA0ICswMTAwCitAQCAtNTYsMTIgKzU2LDEy IEBAIHN0ZDo6dmVjdG9yPEVtYmVkZGVkUGVybWlzc2lvblByb21wdEFza1YKKyBFbWJlZGRlZFBl cm1pc3Npb25Qcm9tcHRBc2tWaWV3OjpHZXRCdXR0b25zQ29uZmlndXJhdGlvbigpIHsKKyAgIHN0 ZDo6dmVjdG9yPEJ1dHRvbkNvbmZpZ3VyYXRpb24+IGJ1dHRvbnM7CisgICBpZiAoYmFzZTo6RmVh dHVyZUxpc3Q6OklzRW5hYmxlZChwZXJtaXNzaW9uczo6ZmVhdHVyZXM6OmtPbmVUaW1lUGVybWlz c2lvbikpIHsKKy0gICAgYnV0dG9ucy5lbXBsYWNlX2JhY2soCisrICAgIGJ1dHRvbnMuZW1wbGFj ZV9iYWNrKCkgPSB7CisgICAgICAgICBsMTBuX3V0aWw6OkdldFN0cmluZ1VURjE2KElEU19QRVJN SVNTSU9OX0FMTE9XX1RISVNfVElNRSksCistICAgICAgICBCdXR0b25UeXBlOjprQWxsb3dUaGlz VGltZSwgdWk6OkJ1dHRvblN0eWxlOjprVG9uYWwpOworKyAgICAgICAgQnV0dG9uVHlwZTo6a0Fs bG93VGhpc1RpbWUsIHVpOjpCdXR0b25TdHlsZTo6a1RvbmFsfTsKICAgIH0KLSAgIHJldHVybiBj b25maWc7CistICBidXR0b25zLmVtcGxhY2VfYmFjayhsMTBuX3V0aWw6OkdldFN0cmluZ1VURjE2 KElEU19QRVJNSVNTSU9OX0FMTE9XKSwKKy0gICAgICAgICAgICAgICAgICAgICAgIEJ1dHRvblR5 cGU6OmtBbGxvdywgdWk6OkJ1dHRvblN0eWxlOjprVG9uYWwpOworKyAgYnV0dG9ucy5lbXBsYWNl X2JhY2soKSA9IHtsMTBuX3V0aWw6OkdldFN0cmluZ1VURjE2KElEU19QRVJNSVNTSU9OX0FMTE9X KSwKKysgICAgICAgICAgICAgICAgICAgICAgIEJ1dHRvblR5cGU6OmtBbGxvdywgdWk6OkJ1dHRv blN0eWxlOjprVG9uYWx9OworICAgcmV0dXJuIGJ1dHRvbnM7CiAgfQotZGlmZiAtdXAgY2hyb21p dW0tMTE4LjAuNTk5My41NC9jb21wb25lbnRzL2F1dG9maWxsL2NvcmUvYnJvd3Nlci9jb250YWN0 X2luZm9fc3luY191dGlsLmNjLm1lIGNocm9taXVtLTExOC4wLjU5OTMuNTQvY29tcG9uZW50cy9h dXRvZmlsbC9jb3JlL2Jyb3dzZXIvY29udGFjdF9pbmZvX3N5bmNfdXRpbC5jYwotLS0tIGNocm9t aXVtLTExOC4wLjU5OTMuNTQvY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvY29udGFj dF9pbmZvX3N5bmNfdXRpbC5jYy5tZQkyMDIzLTEwLTA2IDEwOjM4OjUyLjQ3MzE0NTY5MiArMDIw MAotKysrIGNocm9taXVtLTExOC4wLjU5OTMuNTQvY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jy b3dzZXIvY29udGFjdF9pbmZvX3N5bmNfdXRpbC5jYwkyMDIzLTEwLTA2IDEwOjM3OjMwLjI2ODYx NzE2OSArMDIwMAotQEAgLTE3NCw5ICsxNzQsOSBAQCBjbGFzcyBDb250YWN0SW5mb1Byb2ZpbGVT ZXR0ZXIgewotICAgICBDSEVDSyhvYnNlcnZhdGlvbnMuZW1wdHkoKSk7Ci0gICAgIGZvciAoY29u c3Qgc3luY19wYjo6Q29udGFjdEluZm9TcGVjaWZpY3M6Ok9ic2VydmF0aW9uJiBwcm90b19vYnNl cnZhdGlvbiA6Ci0gICAgICAgICAgcHJvdG9fb2JzZXJ2YXRpb25zKSB7Ci0tICAgICAgb2JzZXJ2 YXRpb25zLmVtcGxhY2VfYmFjayhwcm90b19vYnNlcnZhdGlvbi50eXBlKCksCi0rICAgICAgb2Jz ZXJ2YXRpb25zLmVtcGxhY2VfYmFjaygpID0ge3N0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KHBy b3RvX29ic2VydmF0aW9uLnR5cGUoKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQcm9maWxlVG9rZW5RdWFsaXR5OjpGb3JtU2lnbmF0dXJlSGFzaCgKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwcm90b19vYnNlcnZhdGlvbi5mb3JtX2hhc2goKSkpOwot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RvX29ic2VydmF0aW9uLmZv cm1faGFzaCgpKX07Ci0gICAgIH0KLSAgIH0KICAKLWRpZmYgLXVwIGNocm9taXVtLTExOC4wLjU5 OTMuNTQvY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvd2ViZGF0YS9hdXRvZmlsbF9z eW5jX2JyaWRnZV91dGlsLmNjLm1lIGNocm9taXVtLTExOC4wLjU5OTMuNTQvY29tcG9uZW50cy9h dXRvZmlsbC9jb3JlL2Jyb3dzZXIvd2ViZGF0YS9hdXRvZmlsbF9zeW5jX2JyaWRnZV91dGlsLmNj Ci0tLS0gY2hyb21pdW0tMTE4LjAuNTk5My41NC9jb21wb25lbnRzL2F1dG9maWxsL2NvcmUvYnJv d3Nlci93ZWJkYXRhL2F1dG9maWxsX3N5bmNfYnJpZGdlX3V0aWwuY2MubWUJMjAyMy0xMC0wNiAx MDo0MTozNy43NDY0MDIyMTUgKzAyMDAKLSsrKyBjaHJvbWl1bS0xMTguMC41OTkzLjU0L2NvbXBv bmVudHMvYXV0b2ZpbGwvY29yZS9icm93c2VyL3dlYmRhdGEvYXV0b2ZpbGxfc3luY19icmlkZ2Vf dXRpbC5jYwkyMDIzLTEwLTA2IDEwOjQyOjI4LjQ2OTU2MjkyNyArMDIwMAotQEAgLTU1MywxMSAr NTUzLDExIEBAIFNlcnZlckN2YyBBdXRvZmlsbFdhbGxldEN2Y1N0cnVjdERhdGFGcm8KLSAgIGJh c2U6OlN0cmluZ1RvSW50NjQod2FsbGV0X2NyZWRlbnRpYWxfc3BlY2lmaWNzLmluc3RydW1lbnRf aWQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgJmluc3RydW1lbnRfaWQpOwotIAotLSAgcmV0 dXJuIFNlcnZlckN2YygKLSsgIHJldHVybiBTZXJ2ZXJDdmN7Ci0gICAgICAgaW5zdHJ1bWVudF9p ZCwgYmFzZTo6VVRGOFRvVVRGMTYod2FsbGV0X2NyZWRlbnRpYWxfc3BlY2lmaWNzLmN2YygpKSwK LSAgICAgICBiYXNlOjpUaW1lOjpVbml4RXBvY2goKSArCi0gICAgICAgICAgIGJhc2U6Ok1pbGxp c2Vjb25kcyh3YWxsZXRfY3JlZGVudGlhbF9zcGVjaWZpY3MKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAubGFzdF91cGRhdGVkX3RpbWVfdW5peF9lcG9jaF9taWxsaXMoKSkpOwot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5sYXN0X3VwZGF0ZWRfdGltZV91bml4 X2Vwb2NoX21pbGxpcygpKX07Ci0gfQorZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS41OS9j aHJvbWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3By b21wdF9iYXNlX3ZpZXcuaC5tZSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS9icm93c2Vy L3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X2Jhc2Vfdmll dy5oCistLS0gY2hyb21pdW0tMTE5LjAuNjA0NS41OS9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9w ZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9iYXNlX3ZpZXcuaC5tZQkyMDIz LTExLTAxIDIxOjIyOjAyLjIyMjY0NjkwMyArMDEwMAorKysrIGNocm9taXVtLTExOS4wLjYwNDUu NTkvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lvbnMvZW1iZWRkZWRfcGVybWlzc2lv bl9wcm9tcHRfYmFzZV92aWV3LmgJMjAyMy0xMS0wMSAyMToxOTo1OC43Njk2MTkzOTMgKzAxMDAK K0BAIC03Miw2ICs3Miw3IEBAIGNsYXNzIEVtYmVkZGVkUGVybWlzc2lvblByb21wdEJhc2VWaWV3 IDoKKyAgIHN0cnVjdCBSZXF1ZXN0TGluZUNvbmZpZ3VyYXRpb24geworICAgICBjb25zdCByYXdf cHRyPGNvbnN0IGdmeDo6VmVjdG9ySWNvbj4gaWNvbjsKKyAgICAgc3RkOjp1MTZzdHJpbmcgbWVz c2FnZTsKKysgICAgUmVxdWVzdExpbmVDb25maWd1cmF0aW9uKGF1dG8gaSwgYXV0byBtKSA6IGlj b24oaSksIG1lc3NhZ2UobSkgeyB9CisgICB9OwogIAotIFZpcnR1YWxDYXJkVXNhZ2VEYXRhIFZp cnR1YWxDYXJkVXNhZ2VEYXRhRnJvbVVzYWdlU3BlY2lmaWNzKAotZGlmZiAtdXAgY2hyb21pdW0t MTE4LjAuNTk5My41NC9jb250ZW50L2Jyb3dzZXIvd2ViaWQvaWRwX25ldHdvcmtfcmVxdWVzdF9t YW5hZ2VyLmNjLm1lIGNocm9taXVtLTExOC4wLjU5OTMuNTQvY29udGVudC9icm93c2VyL3dlYmlk L2lkcF9uZXR3b3JrX3JlcXVlc3RfbWFuYWdlci5jYwotLS0tIGNocm9taXVtLTExOC4wLjU5OTMu NTQvY29udGVudC9icm93c2VyL3dlYmlkL2lkcF9uZXR3b3JrX3JlcXVlc3RfbWFuYWdlci5jYy5t ZQkyMDIzLTEwLTA2IDEzOjQ2OjU3LjI4NzA4OTA0MCArMDIwMAotKysrIGNocm9taXVtLTExOC4w LjU5OTMuNTQvY29udGVudC9icm93c2VyL3dlYmlkL2lkcF9uZXR3b3JrX3JlcXVlc3RfbWFuYWdl ci5jYwkyMDIzLTEwLTA2IDEzOjQ3OjI1LjQ1MDYzMjE1NiArMDIwMAotQEAgLTYwNCw3ICs2MDQs NyBAQCB2b2lkIE9uVG9rZW5SZXF1ZXN0UGFyc2VkKAotICAgICBpZiAocmVzcG9uc2VfZXJyb3Ip IHsKLSAgICAgICBpbnQgZXJyb3JfY29kZSA9IHJlc3BvbnNlX2Vycm9yLT5GaW5kSW50KGtFcnJv ckNvZGVLZXkpLnZhbHVlX29yKDApOwotICAgICAgIEdVUkwgZXJyb3JfdXJsID0gRXh0cmFjdFVy bCgqcmVzcG9uc2VfZXJyb3IsIGtFcnJvclVybEtleSk7Ci0tICAgICAgdG9rZW5fcmVzdWx0LmVy cm9yID0gVG9rZW5FcnJvcihlcnJvcl9jb2RlLCBlcnJvcl91cmwpOwotKyAgICAgIHRva2VuX3Jl c3VsdC5lcnJvciA9IFRva2VuRXJyb3J7ZXJyb3JfY29kZSwgZXJyb3JfdXJsfTsKLSAgICAgfQot ICAgfQorICAgc3RydWN0IEJ1dHRvbkNvbmZpZ3VyYXRpb24geworZGlmZiAtdXAgY2hyb21pdW0t MTE5LjAuNjA0NS41OS9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRl ZF9wZXJtaXNzaW9uX3Byb21wdF9wb2xpY3lfdmlldy5jYy50aGFuIGNocm9taXVtLTExOS4wLjYw NDUuNTkvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lvbnMvZW1iZWRkZWRfcGVybWlz c2lvbl9wcm9tcHRfcG9saWN5X3ZpZXcuY2MKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2No cm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJv bXB0X3BvbGljeV92aWV3LmNjLnRoYW4JMjAyMy0xMS0wMSAyMToyNTozMS4xMTg2MjY0NzMgKzAx MDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Bl cm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X3BvbGljeV92aWV3LmNjCTIwMjMt MTEtMDEgMjE6MzA6MDYuMzgzMzQwMjc0ICswMTAwCitAQCAtNDgsOCArNDgsOCBAQCBFbWJlZGRl ZFBlcm1pc3Npb25Qcm9tcHRQb2xpY3lWaWV3OjpHZXRSCisgc3RkOjp2ZWN0b3I8RW1iZWRkZWRQ ZXJtaXNzaW9uUHJvbXB0UG9saWN5Vmlldzo6QnV0dG9uQ29uZmlndXJhdGlvbj4KKyBFbWJlZGRl ZFBlcm1pc3Npb25Qcm9tcHRQb2xpY3lWaWV3OjpHZXRCdXR0b25zQ29uZmlndXJhdGlvbigpIHsK KyAgIHN0ZDo6dmVjdG9yPEJ1dHRvbkNvbmZpZ3VyYXRpb24+IGJ1dHRvbnM7CistICBidXR0b25z LmVtcGxhY2VfYmFjayhsMTBuX3V0aWw6OkdldFN0cmluZ1VURjE2KElEU19FTUJFRERFRF9QUk9N UFRfT0tfTEFCRUwpLAorLSAgICAgICAgICAgICAgICAgICAgICAgQnV0dG9uVHlwZTo6a1BvbGlj eU9LLCB1aTo6QnV0dG9uU3R5bGU6OmtUb25hbCk7CisrICBidXR0b25zLmVtcGxhY2VfYmFjaygp ID0ge2wxMG5fdXRpbDo6R2V0U3RyaW5nVVRGMTYoSURTX0VNQkVEREVEX1BST01QVF9PS19MQUJF TCksCisrICAgICAgICAgICAgICAgICAgICAgICBCdXR0b25UeXBlOjprUG9saWN5T0ssIHVpOjpC dXR0b25TdHlsZTo6a1RvbmFsfTsKKyAgIHJldHVybiBidXR0b25zOworIH0KICAKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMTktbnVsbHB0cl90LXdpdGhv dXQtbmFtZXNwYWNlLXN0ZC5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1 bS0xMTktbnVsbHB0cl90LXdpdGhvdXQtbmFtZXNwYWNlLXN0ZC5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi41Y2I5NjlmNGY0MGNmCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTExOS1udWxscHRyX3Qtd2l0 aG91dC1uYW1lc3BhY2Utc3RkLnBhdGNoCkBAIC0wLDAgKzEsMjEgQEAKK2RpZmYgLXVwIGNocm9t aXVtLTExOS4wLjYwNDUuNTkvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9wYWludC9m cmFnbWVudF9kYXRhX2l0ZXJhdG9yLmgubWUgY2hyb21pdW0tMTE5LjAuNjA0NS41OS90aGlyZF9w YXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL3BhaW50L2ZyYWdtZW50X2RhdGFfaXRlcmF0b3IuaAor LS0tIGNocm9taXVtLTExOS4wLjYwNDUuNTkvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29y ZS9wYWludC9mcmFnbWVudF9kYXRhX2l0ZXJhdG9yLmgubWUJMjAyMy0xMC0yNyAyMDowNzoxNi40 MjEyMzA4MTUgKzAyMDAKKysrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L3RoaXJkX3BhcnR5L2Js aW5rL3JlbmRlcmVyL2NvcmUvcGFpbnQvZnJhZ21lbnRfZGF0YV9pdGVyYXRvci5oCTIwMjMtMTAt MjcgMjA6MDc6MzYuODgzNjAwMDg1ICswMjAwCitAQCAtNTIsNyArNTIsNyBAQCBjbGFzcyBGcmFn bWVudERhdGFJdGVyYXRvcgorICBwdWJsaWM6CisgICBleHBsaWNpdCBGcmFnbWVudERhdGFJdGVy YXRvcihjb25zdCBMYXlvdXRPYmplY3QmIG9iamVjdCkKKyAgICAgICA6IEZyYWdtZW50RGF0YUl0 ZXJhdG9yQmFzZSgmb2JqZWN0LkZpcnN0RnJhZ21lbnQoKSkge30KKy0gIGV4cGxpY2l0IEZyYWdt ZW50RGF0YUl0ZXJhdG9yKG51bGxwdHJfdCkKKysgIGV4cGxpY2l0IEZyYWdtZW50RGF0YUl0ZXJh dG9yKHN0ZDo6bnVsbHB0cl90KQorICAgICAgIDogRnJhZ21lbnREYXRhSXRlcmF0b3JCYXNlKG51 bGxwdHIpIHt9CisgfTsKKyAKK0BAIC02Myw3ICs2Myw3IEBAIGNsYXNzIE11dGFibGVGcmFnbWVu dERhdGFJdGVyYXRvcgorICAgZXhwbGljaXQgTXV0YWJsZUZyYWdtZW50RGF0YUl0ZXJhdG9yKGNv bnN0IExheW91dE9iamVjdCYgb2JqZWN0KQorICAgICAgIDogRnJhZ21lbnREYXRhSXRlcmF0b3JC YXNlKAorICAgICAgICAgICAgICZvYmplY3QuR2V0TXV0YWJsZUZvclBhaW50aW5nKCkuRmlyc3RG cmFnbWVudCgpKSB7fQorLSAgZXhwbGljaXQgTXV0YWJsZUZyYWdtZW50RGF0YUl0ZXJhdG9yKG51 bGxwdHJfdCkKKysgIGV4cGxpY2l0IE11dGFibGVGcmFnbWVudERhdGFJdGVyYXRvcihzdGQ6Om51 bGxwdHJfdCkKKyAgICAgICA6IEZyYWdtZW50RGF0YUl0ZXJhdG9yQmFzZShudWxscHRyKSB7fQor IH07CisgCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTE5 LW52aWRpYS11c2Utc2VwYXJhdGUtYm8tdG8tdmVyaWZ5LW1vZGlmaWVyLnBhdGNoIGIvc3JjcGtn cy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTExOS1udmlkaWEtdXNlLXNlcGFyYXRlLWJvLXRv LXZlcmlmeS1tb2RpZmllci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAwLi43MTdkODk3NDQ2YzdjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9jaHJvbWl1 bS9wYXRjaGVzL2Nocm9taXVtLTExOS1udmlkaWEtdXNlLXNlcGFyYXRlLWJvLXRvLXZlcmlmeS1t b2RpZmllci5wYXRjaApAQCAtMCwwICsxLDE2NCBAQAorY29tbWl0IGJkY2MyM2UwYTVlN2UyMjA2 NjBkM2Y1NGM5NzI2MmY5YTRjMzE2MDYKK0F1dGhvcjogTmljayBEaWVnbyBZYW1hbmUgPG5pY2tk aWVnb0BpZ2FsaWEuY29tPgorRGF0ZTogICBUaHUgTm92IDIgMTc6MjY6MjUgMjAyMyArMDAwMAor CisgICAgZ2JtOiBudmlkaWE6IHVzZSBzZXBhcmF0ZSBibyB0byB2ZXJpZnkgbW9kaWZpZXJzCisg ICAgCisgICAgQnVnZ3kgTnZpZGlhIGRyaXZlcnMgZmFpbCB0byByZXR1cm4gRkRzIGZvciBwbGFu ZXMgb2YgYSBCTyB3aGljaCBoYWQKKyAgICBhbHJlYWR5IGFuIGltcG9ydGVkIEJPIGRlc3Ryb3ll ZCBiZWZvcmUuIFRoaXMgaXMgYSB3b3JrYXJvdW5kIGZvciB0aGF0CisgICAgaXNzdWUsIHdoaWNo IGNvbnNpc3RzIG9mIGNyZWF0aW5nL2Rlc3Ryb3lpbmcgYSBzZXBhcmF0ZSAxeDEgQk8gZm9yCisg ICAgdmFsaWRhdGluZyB0aGUgbW9kaWZpZXJzIGJlZm9yZSBhY3R1YWxseSBjcmVhdGluZyB0aGUg ZmluYWwgcmVxdWVzdGVkCisgICAgQk8sIHdoaWNoIGZvciBub3cgaXMgbGltaXRlZCB0byBJU19M SU5VWCBidWlsZHMuCisgICAgCisgICAgVGhlIE52aWRpYSBkcml2ZXIgYnVnIGlzIGJlaW5nIHRy YWNrZWQgdW5kZXIgaW50ZXJuYWwgYnVnIDQzMTU1MjkuIFRoZXJlCisgICAgc2VlbXMgdG8gYmUg b3RoZXIgaXNzdWVzIHdoZW4gcnVubmluZyB1bmRlciBXYXlsYW5kIHdpdGggTnZpZGlhLCB3aGlj aAorICAgIHdpbGwgYmUgdHJhY2tlZCBhbmQgYWRkcmVzc2VkIGluIHNlcGFyYXRlIHBhdGNoZXMu CisgICAgCisgICAgUj1kY2FzdGFnbmEsIG1zaXNvdkBpZ2FsaWEuY29tCisgICAgCisgICAgICB3 aXRoIG96b25lL3dheWxhbmQgYmFja2VuZCBhbmQgdmVyaWZ5IEdQVSBhY2NlbGVyYXRpb24gaXMg bm90IGJyb2tlbi4KKyAgICAKKyAgICBUZXN0OiBJbiBhIHNpbmdsZSBOdmlkaWEgR1BVIHNldHVw LCB3aXRoIHByb3ByaWV0YXJ5IGRyaXZlciwgcnVuIENocm9tZQorICAgIEJ1ZzogMTI3Mzc1OCwg MTQ3ODY4NCwgMTQ2Mzg1MQorICAgIENoYW5nZS1JZDogSTlmMzIyYmNmNDBiNDYwYmNkNGVhZDAy ZjA1ZGQyZTlhOGQyNzFjZWEKKyAgICBSZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZp ZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzQ5ODk3ODIKKyAgICBSZXZpZXdl ZC1ieTogTWFrc2ltIFNpc292IDxtc2lzb3ZAaWdhbGlhLmNvbT4KKyAgICBDb21taXQtUXVldWU6 IE5pY2sgWWFtYW5lIDxuaWNrZGllZ29AaWdhbGlhLmNvbT4KKyAgICBDci1Db21taXQtUG9zaXRp b246IHJlZnMvaGVhZHMvbWFpbkB7IzEyMTg5MjR9CisKK2RpZmYgLS1naXQgYS91aS9nZngvbGlu dXgvZ2JtX3dyYXBwZXIuY2MgYi91aS9nZngvbGludXgvZ2JtX3dyYXBwZXIuY2MKK2luZGV4IGJm OTBiNzY2MDVmNjguLjE0OTE4YzE5YzBhYjAgMTAwNjQ0CistLS0gYS91aS9nZngvbGludXgvZ2Jt X3dyYXBwZXIuY2MKKysrKyBiL3VpL2dmeC9saW51eC9nYm1fd3JhcHBlci5jYworQEAgLTExLDYg KzExLDcgQEAKKyAjaW5jbHVkZSAiYmFzZS9sb2dnaW5nLmgiCisgI2luY2x1ZGUgImJhc2UvbWVt b3J5L3Jhd19wdHIuaCIKKyAjaW5jbHVkZSAiYmFzZS9tZW1vcnkvcmF3X3B0cl9leGNsdXNpb24u aCIKKysjaW5jbHVkZSAiYmFzZS9udW1lcmljcy9zYWZlX2NvbnZlcnNpb25zLmgiCisgI2luY2x1 ZGUgImJhc2UvcG9zaXgvZWludHJfd3JhcHBlci5oIgorICNpbmNsdWRlICJza2lhL2V4dC9sZWdh Y3lfZGlzcGxheV9nbG9iYWxzLmgiCisgI2luY2x1ZGUgInRoaXJkX3BhcnR5L3NraWEvaW5jbHVk ZS9jb3JlL1NrU3VyZmFjZS5oIgorQEAgLTcxLDYgKzcyLDcgQEAgYmFzZTo6U2NvcGVkRkQgR2V0 UGxhbmVGZEZvckJvKGdibV9ibyogYm8sIHNpemVfdCBwbGFuZSkgeworICAgaW50IHJldDsKKyAg IC8vIFVzZSBEUk1fUkRXUiB0byBhbGxvdyB0aGUgZmQgdG8gYmUgbWFwcGFibGUgaW4gYW5vdGhl ciBwcm9jZXNzLgorICAgcmV0ID0gZHJtUHJpbWVIYW5kbGVUb0ZEKGRldl9mZCwgcGxhbmVfaGFu ZGxlLCBEUk1fQ0xPRVhFQyB8IERSTV9SRFdSLCAmZmQpOworKyAgUExPR19JRihFUlJPUiwgcmV0 ICE9IDApIDw8ICJGYWlsZWQgdG8gZ2V0IGZkIGZvciBwbGFuZS4iOworIAorICAgLy8gT2xkZXIg RFJNIGltcGxlbWVudGF0aW9ucyBibG9ja2VkIERSTV9SRFdSLCBidXQgZ2F2ZSBhIHJlYWQvd3Jp dGUgbWFwcGluZworICAgLy8gYW55d2F5cworQEAgLTMwMSw1OCArMzAzLDgyIEBAIGNsYXNzIERl dmljZSBmaW5hbCA6IHB1YmxpYyB1aTo6R2JtRGV2aWNlIHsKKyAKKyAgIHN0ZDo6dW5pcXVlX3B0 cjx1aTo6R2JtQnVmZmVyPiBDcmVhdGVCdWZmZXJXaXRoTW9kaWZpZXJzKAorICAgICAgIHVpbnQz Ml90IGZvcm1hdCwKKy0gICAgICBjb25zdCBnZng6OlNpemUmIHNpemUsCisrICAgICAgY29uc3Qg Z2Z4OjpTaXplJiByZXF1ZXN0ZWRfc2l6ZSwKKyAgICAgICB1aW50MzJfdCBmbGFncywKKyAgICAg ICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50NjRfdD4mIG1vZGlmaWVycykgb3ZlcnJpZGUgeworLSAg ICBpZiAobW9kaWZpZXJzLmVtcHR5KCkpCistICAgICAgcmV0dXJuIENyZWF0ZUJ1ZmZlcihmb3Jt YXQsIHNpemUsIGZsYWdzKTsKKy0KKy0gICAgc3RkOjp2ZWN0b3I8dWludDY0X3Q+IGZpbHRlcmVk X21vZGlmaWVycyA9CistICAgICAgICBHZXRGaWx0ZXJlZE1vZGlmaWVycyhmb3JtYXQsIGZsYWdz LCBtb2RpZmllcnMpOworLSAgICBzdHJ1Y3QgZ2JtX2JvKiBibyA9IG51bGxwdHI7CistICAgIHdo aWxlIChmaWx0ZXJlZF9tb2RpZmllcnMuc2l6ZSgpID4gMCkgeworLSAgICAgIGJvID0gZ2JtX2Jv X2NyZWF0ZV93aXRoX21vZGlmaWVycyhkZXZpY2VfLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0 KCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCwgZmls dGVyZWRfbW9kaWZpZXJzLmRhdGEoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZmlsdGVyZWRfbW9kaWZpZXJzLnNpemUoKSk7CistICAgICAgaWYgKCFibykgewor KyAgICBpZiAobW9kaWZpZXJzLmVtcHR5KCkpIHsKKysgICAgICByZXR1cm4gQ3JlYXRlQnVmZmVy KGZvcm1hdCwgcmVxdWVzdGVkX3NpemUsIGZsYWdzKTsKKysgICAgfQorKworKyAgICAvLyBCdWdn eSBkcml2ZXJzIHByZXZlbnQgdXMgZnJvbSBnZXR0aW5nIHBsYW5lIEZEcyBmcm9tIGEgQk8gd2hp Y2ggaGFkIGl0cworKyAgICAvLyBwcmV2aW91c2x5IGltcG9ydGVkIEJPIGRlc3Ryb3llZC4gRS5n OiBOdmlkaWEuIFRodXMsIG9uIExpbnV4IERlc2t0b3AsIHdlCisrICAgIC8vIGRvIHRoZSBjcmVh dGUvaW1wb3J0IG1vZGlmaWVycyB2YWxpZGF0aW9uIGxvb3AgYmVsb3cgdXNpbmcgYSBzZXBhcmF0 ZSBzZXQKKysgICAgLy8gb2YgMXgxIEJPcyB3aGljaCBhcmUgZGVzdHJveWVkIGJlZm9yZSBjcmVh dGluZyB0aGUgZmluYWwgQk8gY3JlYXRpb24gdXNlZAorKyAgICAvLyB0byBpbnN0YW50aWF0ZSB0 aGUgcmV0dXJuZWQgR2JtQnVmZmVyLgorKyAgICBnZng6OlNpemUgc2l6ZSA9CisrI2lmIEJVSUxE RkxBRyhJU19MSU5VWCkKKysgICAgICAgIGdmeDo6U2l6ZSgxLCAxKTsKKysjZWxzZQorKyAgICAg ICAgcmVxdWVzdGVkX3NpemU7CisrI2VuZGlmCisrICAgIGF1dG8gZmlsdGVyZWRfbW9kaWZpZXJz ID0gR2V0RmlsdGVyZWRNb2RpZmllcnMoZm9ybWF0LCBmbGFncywgbW9kaWZpZXJzKTsKKysgICAg c3RydWN0IGdibV9ibyogY3JlYXRlZF9ibyA9IG51bGxwdHI7CisrICAgIGJvb2wgdmFsaWRfbW9k aWZpZXJzID0gZmFsc2U7CisrCisrICAgIHdoaWxlICghdmFsaWRfbW9kaWZpZXJzICYmICFmaWx0 ZXJlZF9tb2RpZmllcnMuZW1wdHkoKSkgeworKyAgICAgIGNyZWF0ZWRfYm8gPSBnYm1fYm9fY3Jl YXRlX3dpdGhfbW9kaWZpZXJzKAorKyAgICAgICAgICBkZXZpY2VfLCBzaXplLndpZHRoKCksIHNp emUuaGVpZ2h0KCksIGZvcm1hdCwKKysgICAgICAgICAgZmlsdGVyZWRfbW9kaWZpZXJzLmRhdGEo KSwgZmlsdGVyZWRfbW9kaWZpZXJzLnNpemUoKSk7CisrICAgICAgaWYgKCFjcmVhdGVkX2JvKSB7 CisgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICB9CisgCistICAgICAgc3RydWN0IGdi bV9pbXBvcnRfZmRfbW9kaWZpZXJfZGF0YSBmZF9kYXRhOworLSAgICAgIGZkX2RhdGEud2lkdGgg PSBzaXplLndpZHRoKCk7CistICAgICAgZmRfZGF0YS5oZWlnaHQgPSBzaXplLmhlaWdodCgpOwor LSAgICAgIGZkX2RhdGEuZm9ybWF0ID0gZm9ybWF0OworLSAgICAgIGZkX2RhdGEubnVtX2ZkcyA9 IGdibV9ib19nZXRfcGxhbmVfY291bnQoYm8pOworLSAgICAgIGZkX2RhdGEubW9kaWZpZXIgPSBn Ym1fYm9fZ2V0X21vZGlmaWVyKGJvKTsKKy0KKy0gICAgICAvLyBTdG9yZSBmZHMgaW4gdGhlIHZl Y3RvciBvZiBiYXNlOjpTY29wZWRGRHMuIFdpbGwgYmUgcmVsZWFzZWQKKy0gICAgICAvLyBhdXRv bWF0aWNhbGx5LgorKyAgICAgIGNvbnN0IGludCBwbGFuZXNfY291bnQgPSBnYm1fYm9fZ2V0X3Bs YW5lX2NvdW50KGNyZWF0ZWRfYm8pOworKyAgICAgIHN0cnVjdCBnYm1faW1wb3J0X2ZkX21vZGlm aWVyX2RhdGEgZmRfZGF0YSA9IHsKKysgICAgICAgICAgLndpZHRoID0gYmFzZTo6Y2hlY2tlZF9j YXN0PHVpbnQzMl90PihzaXplLndpZHRoKCkpLAorKyAgICAgICAgICAuaGVpZ2h0ID0gYmFzZTo6 Y2hlY2tlZF9jYXN0PHVpbnQzMl90PihzaXplLmhlaWdodCgpKSwKKysgICAgICAgICAgLmZvcm1h dCA9IGZvcm1hdCwKKysgICAgICAgICAgLm51bV9mZHMgPSBiYXNlOjpjaGVja2VkX2Nhc3Q8dWlu dDMyX3Q+KHBsYW5lc19jb3VudCksCisrICAgICAgICAgIC5tb2RpZmllciA9IGdibV9ib19nZXRf bW9kaWZpZXIoY3JlYXRlZF9ibyl9OworKyAgICAgIC8vIFN0b3JlIGZkcyBpbiBhIGJhc2U6OlNj b3BlZEZEcyB2ZWN0b3IuIFdpbGwgYmUgcmVsZWFzZWQgYXV0b21hdGljYWxseS4KKyAgICAgICBz dGQ6OnZlY3RvcjxiYXNlOjpTY29wZWRGRD4gZmRzOworICAgICAgIGZvciAoc2l6ZV90IGkgPSAw OyBpIDwgc3RhdGljX2Nhc3Q8c2l6ZV90PihmZF9kYXRhLm51bV9mZHMpOyArK2kpIHsKKy0gICAg ICAgIGZkcy5lbXBsYWNlX2JhY2soR2V0UGxhbmVGZEZvckJvKGJvLCBpKSk7CisrICAgICAgICBm ZHMuZW1wbGFjZV9iYWNrKEdldFBsYW5lRmRGb3JCbyhjcmVhdGVkX2JvLCBpKSk7CisgICAgICAg ICBmZF9kYXRhLmZkc1tpXSA9IGZkcy5iYWNrKCkuZ2V0KCk7CistICAgICAgICBmZF9kYXRhLnN0 cmlkZXNbaV0gPSBnYm1fYm9fZ2V0X3N0cmlkZV9mb3JfcGxhbmUoYm8sIGkpOworLSAgICAgICAg ZmRfZGF0YS5vZmZzZXRzW2ldID0gZ2JtX2JvX2dldF9vZmZzZXQoYm8sIGkpOworKyAgICAgICAg ZmRfZGF0YS5zdHJpZGVzW2ldID0gZ2JtX2JvX2dldF9zdHJpZGVfZm9yX3BsYW5lKGNyZWF0ZWRf Ym8sIGkpOworKyAgICAgICAgZmRfZGF0YS5vZmZzZXRzW2ldID0gZ2JtX2JvX2dldF9vZmZzZXQo Y3JlYXRlZF9ibywgaSk7CisgICAgICAgfQorIAorLSAgICAgIHN0cnVjdCBnYm1fYm8qIGJvX2lt cG9ydCA9CisrICAgICAgc3RydWN0IGdibV9ibyogaW1wb3J0ZWRfYm8gPQorICAgICAgICAgICBn Ym1fYm9faW1wb3J0KGRldmljZV8sIEdCTV9CT19JTVBPUlRfRkRfTU9ESUZJRVIsICZmZF9kYXRh LCBmbGFncyk7CistICAgICAgaWYgKGJvX2ltcG9ydCkgeworLSAgICAgICAgZ2JtX2JvX2Rlc3Ry b3koYm9faW1wb3J0KTsKKy0gICAgICAgIGJyZWFrOworKworKyAgICAgIGlmIChpbXBvcnRlZF9i bykgeworKyAgICAgICAgdmFsaWRfbW9kaWZpZXJzID0gdHJ1ZTsKKysgICAgICAgIGdibV9ib19k ZXN0cm95KGltcG9ydGVkX2JvKTsKKyAgICAgICB9IGVsc2UgeworLSAgICAgICAgZ2JtX2JvX2Rl c3Ryb3koYm8pOworLSAgICAgICAgYm8gPSBudWxscHRyOworICAgICAgICAgQWRkTW9kaWZpZXJU b0Jsb2NrbGlzdChmb3JtYXQsIGZsYWdzLCBmZF9kYXRhLm1vZGlmaWVyKTsKKyAgICAgICAgIGZp bHRlcmVkX21vZGlmaWVycyA9CisgICAgICAgICAgICAgR2V0RmlsdGVyZWRNb2RpZmllcnMoZm9y bWF0LCBmbGFncywgZmlsdGVyZWRfbW9kaWZpZXJzKTsKKyAgICAgICB9CisrCisrICAgICAgaWYg KCF2YWxpZF9tb2RpZmllcnMgfHwgc2l6ZSAhPSByZXF1ZXN0ZWRfc2l6ZSkgeworKyAgICAgICAg Z2JtX2JvX2Rlc3Ryb3koY3JlYXRlZF9ibyk7CisrICAgICAgICBjcmVhdGVkX2JvID0gbnVsbHB0 cjsKKysgICAgICB9CisgICAgIH0KKy0gICAgaWYgKCFibykgeworLSAgICAgIHJldHVybiBudWxs cHRyOworKworKyAgICAvLyBJZiBtb2RpZmllcnMgd2VyZSBzdWNjZXNzZnVsbHkgdmVyaWZpZWQg dGhvdWdoIGBjcmVhdGVkX2JvYCBpcyBudWxsIGhlcmUsCisrICAgIC8vIGl0IGl0IG1lYW5zIHRo YXQgdGhlIGJ1ZmZlciBjcmVhdGVkIGZvciB2ZXJpZmljYXRpb24gY291bGQgbm90IGJlIHJldXNl ZCwKKysgICAgLy8gaWU6IGRpZmZlcmVudCBzaXplLCBzbyBjcmVhdGUgaXQgbm93IHdpdGggdGhl IGByZXF1ZXN0ZWRfc2l6ZWAuCisrICAgIGlmICh2YWxpZF9tb2RpZmllcnMgJiYgIWNyZWF0ZWRf Ym8pIHsKKysgICAgICBjcmVhdGVkX2JvID0gZ2JtX2JvX2NyZWF0ZV93aXRoX21vZGlmaWVycygK KysgICAgICAgICAgZGV2aWNlXywgcmVxdWVzdGVkX3NpemUud2lkdGgoKSwgcmVxdWVzdGVkX3Np emUuaGVpZ2h0KCksIGZvcm1hdCwKKysgICAgICAgICAgZmlsdGVyZWRfbW9kaWZpZXJzLmRhdGEo KSwgZmlsdGVyZWRfbW9kaWZpZXJzLnNpemUoKSk7CisrICAgICAgUExPR19JRihFUlJPUiwgIWNy ZWF0ZWRfYm8pIDw8ICJGYWlsZWQgdG8gY3JlYXRlIEJPIHdpdGggbW9kaWZpZXJzLiI7CisgICAg IH0KKyAKKy0gICAgcmV0dXJuIENyZWF0ZUJ1ZmZlckZvckJPKGJvLCBmb3JtYXQsIHNpemUsIGZs YWdzKTsKKysgICAgcmV0dXJuIGNyZWF0ZWRfYm8gPyBDcmVhdGVCdWZmZXJGb3JCTyhjcmVhdGVk X2JvLCBmb3JtYXQsIHNpemUsIGZsYWdzKQorKyAgICAgICAgICAgICAgICAgICAgICA6IG51bGxw dHI7CisgICB9CisgCisgICBzdGQ6OnVuaXF1ZV9wdHI8dWk6OkdibUJ1ZmZlcj4gQ3JlYXRlQnVm ZmVyRnJvbUhhbmRsZSgKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUgYi9z cmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlCmluZGV4IGNjMzY5MTFjZDMzOGQuLmM0Yjc2NDg2NTcw ZTIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9j aHJvbWl1bS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2No cm9taXVtJwogcGtnbmFtZT1jaHJvbWl1bQogIyBTZWUgaHR0cHM6Ly9jaHJvbWl1bWRhc2guYXBw c3BvdC5jb20vcmVsZWFzZXM/cGxhdGZvcm09TGludXggZm9yIHRoZSBsYXRlc3QgdmVyc2lvbgot dmVyc2lvbj0xMTguMC41OTkzLjcwCit2ZXJzaW9uPTExOS4wLjYwNDUuMTA1CiByZXZpc2lvbj0x CiBhcmNocz0iaTY4NiogeDg2XzY0KiBhYXJjaDY0KiBhcm12N2wqIgogaG9zdG1ha2VkZXBlbmRz PSIKQEAgLTI3LDcgKzI3LDcgQEAgbWFpbnRhaW5lcj0iRHVuY2FlbiA8ZHVuY2FlbkB2b2lkbGlu dXgub3JnPiIKIGxpY2Vuc2U9IkJTRC0zLUNsYXVzZSIKIGhvbWVwYWdlPSJodHRwczovL3d3dy5j aHJvbWl1bS5vcmcvIgogZGlzdGZpbGVzPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2ds ZWFwaXMuY29tL2Nocm9taXVtLWJyb3dzZXItb2ZmaWNpYWwvJHtwa2duYW1lfS0ke3ZlcnNpb259 LnRhci54eiIKLWNoZWNrc3VtPTQ5ZWUwMGE3MzRkZTNkYWU3YzQyMWViM2M5NzRlOGQ0NTFiNGRl NmY1YjRlMzRiNjAzZmQ2NDM1ZWFiNjk5M2QKK2NoZWNrc3VtPTczY2I4YzM5ZTkyOGY4YzYyN2Q3 NDdkMzdhM2IwMjBmMDg5MTNlZjU1MDhmODkzNzU4ZDcwYmRiZDU0NWRiY2YKIAogbGliMzJkaXNh YmxlZD15ZXMKIApAQCAtNTIsNyArNTIsOCBAQCBpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4K IAkgJCh2b3B0X2lmIHBpcGV3aXJlIHBpcGV3aXJlLWRldmVsKSBmZm1wZWctZGV2ZWwgb3B1cy1k ZXZlbCBwYW5nby1kZXZlbCBsaWJ2YS1kZXZlbAogCSBsaWJjdXJsLWRldmVsIHNuYXBweS1kZXZl bCBsaWJYcmFuZHItZGV2ZWwgbGliWGNvbXBvc2l0ZS1kZXZlbCBjdXBzLWRldmVsCiAJIG1pdC1r cmI1LWRldmVsIGFsc2EtbGliLWRldmVsIGxpYlhkYW1hZ2UtZGV2ZWwgbGliZXBveHktZGV2ZWwg bGliZXZkZXYtZGV2ZWwKLQkgbGliYXZpZi1kZXZlbCBsaWJhb20tZGV2ZWwganNvbmNwcC1kZXZl bCB3b2ZmMi1kZXZlbCBsaWJkYXYxZC1kZXZlbCBsaWJmbGFjLWRldmVsIgorCSBsaWJhdmlmLWRl dmVsIGxpYmFvbS1kZXZlbCBqc29uY3BwLWRldmVsIHdvZmYyLWRldmVsIGxpYmRhdjFkLWRldmVs IGxpYmZsYWMtZGV2ZWwKKwkgbGliZHJtLWRldmVsIGxpYmdibS1kZXZlbCIKIGZpCiAKIGlmIFsg ISAiJFhCUFNfV09SRFNJWkUiID0gIiRYQlBTX1RBUkdFVF9XT1JEU0laRSIgXTsgdGhlbgo= --===============7857521803753750404==--