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=-0.2 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_NXDOMAIN autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 18529 invoked from network); 24 Jul 2021 10:20:44 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 24 Jul 2021 10:20:44 -0000 Content-Type: multipart/mixed; boundary="===============4856244342990327096==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_tbb=3A_update_to_2021=2E3=2E0?= To: ml@inbox.vuxu.org From: Logarithmus Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sat, 24 Jul 2021 12:20:44 +0200 List-Id: Message-ID: <20210724102044.xRNX6Meb3hYUkP_yvN4XLE1JC_3nvNxUYZ7DCvgYtvQ@z> GitHub notification mails are now in MIME to allow UTF8. --===============4856244342990327096== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgTG9nYXJpdGhtdXMgYWdhaW5zdCBt YXN0ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29t L0xvZ2FyaXRobXVzL3ZvaWQtcGFja2FnZXMgdGJiLTIwMjEKaHR0cHM6Ly9naXRodWIuY29tL3Zv aWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzMyMTY2Cgp0YmI6IHVwZGF0ZSB0byAyMDIxLjMu MApGb2xsb3ctdXAgb2YgaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdl cy9wdWxsLzI3NzQ2LCBAdGh5cG9uICYgQG9sYWZtZXJzbWFubiBtaWdodCBiZSBpbnRlcmVzdGVk Lg0KKipUT0RPKiogZml4IHJldmVyc2UgZGVwZW5kZW5jaWVzOg0KLSBbIF0gT3BlblN1YmRpdjog dXBkYXRlIHRvIDMuNC40Lg0KLSBbIF0gUHJ1c2FTbGljZXI6IHVwZGF0ZSB0byAyLjMuMy4NCi0g WyBdIGxlbmRlcjogdXBkYXRlIHRvIDIuOTMuMS4NCi0gWyBdIGVtYnJlZTogdXBkYXRlIHRvIDMu MTMuMC4NCi0gWyBdIG9wZW5pbWFnZWlvOiB1cGRhdGUgdG8gMi4yLjE2LjAuDQotIFsgXSBvcGVu aW1hZ2VkZW5vaXNlOiB1cGRhdGUgdG8gMS40LjEuDQotIFsgXSBvcGVudmRiOiB1cGRhdGUgdG8g OC4xLjAuDQotIFsgXSBwYXJhdmlldzogdXBkYXRlIHRvIDUuOS4xLg0KLSBbIF0gb2NjdDogcmV2 YnVtcCBkdWUgdG8gdGJiIHVwZGF0ZQ0KDQojIyMjIEhhdmUgdGhlIHJlc3VsdHMgb2YgdGhlIHBy b3Bvc2VkIGNoYW5nZXMgYmVlbiB0ZXN0ZWQ/DQotIFt4XSBJIHVzZSB0aGUgcGFja2FnZXMgYWZm ZWN0ZWQgYnkgdGhlIHByb3Bvc2VkIGNoYW5nZXMgb24gYSByZWd1bGFyIGJhc2lzIGFuZCBjb25m aXJtIHRoaXMgUFIgd29ya3MgZm9yIG1lDQoKCkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0 aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zMjE2Ni5wYXRjaCBpcyBhdHRh Y2hlZA== --===============4856244342990327096== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-tbb-2021-32166.patch" RnJvbSA1MjlmYjdmMGEwNjIwOGIyYzgxMDViMDVkMTcyNGU2ZGIzNjRlYWNmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBcnR1ciBTaW5pbGEgPGZyZWVzb2Z0d2FyZUBsb2dhcml0aG11 cy5kZXY+CkRhdGU6IFNhdCwgMTcgSnVsIDIwMjEgMjM6NTc6NTIgKzAzMDAKU3ViamVjdDogW1BB VENIIDAxLzExXSBod2xvYzogYWRkIGxpYnBjaWFjY2Vzcy1kZXZlbCBtYWtlIGRlcGVuZGVuY3kK Ci0tLQogc3JjcGtncy9od2xvYy90ZW1wbGF0ZSB8IDcgKysrKy0tLQogMSBmaWxlIGNoYW5nZWQs IDQgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2h3 bG9jL3RlbXBsYXRlIGIvc3JjcGtncy9od2xvYy90ZW1wbGF0ZQppbmRleCA4MThkYjI2OWNlYmIu LjkyNTkzNzUzNTczNSAxMDA2NDQKLS0tIGEvc3JjcGtncy9od2xvYy90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2h3bG9jL3RlbXBsYXRlCkBAIC0xLDEwICsxLDExIEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdod2xvYycKIHBrZ25hbWU9aHdsb2MKIHZlcnNpb249Mi41LjAKLXJldmlzaW9uPTEKK3Jl dmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGhvc3RtYWtlZGVwZW5kcz0icGtn LWNvbmZpZyIKLW1ha2VkZXBlbmRzPSJjYWlyby1kZXZlbCBuY3Vyc2VzLWRldmVsIGxpYnhtbDIt ZGV2ZWwgZXVkZXYtbGlidWRldi1kZXZlbCIKK21ha2VkZXBlbmRzPSJjYWlyby1kZXZlbCBuY3Vy c2VzLWRldmVsIGxpYnhtbDItZGV2ZWwgbGlicGNpYWNjZXNzLWRldmVsIGV1ZGV2LWxpYnVkZXYt ZGV2ZWwiCitjaGVja2RlcGVuZHM9InRhciIKIHNob3J0X2Rlc2M9IlBvcnRhYmxlIGFic3RyYWN0 aW9uIG9mIGhpZXJhcmNoaWNhbCBoYXJkd2FyZSBhcmNoaXRlY3R1cmVzIgogbWFpbnRhaW5lcj0i TGVhaCBOZXVraXJjaGVuIDxsZWFoQHZ1eHUub3JnPiIKIGxpY2Vuc2U9IkJTRC0zLUNsYXVzZSIK QEAgLTMxLDcgKzMyLDcgQEAgbGliaHdsb2NfcGFja2FnZSgpIHsKIAogbGliaHdsb2MtZGV2ZWxf cGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCi0JZGVwZW5k cz0ibGliaHdsb2M+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJZGVwZW5kcz0iJHttYWtlZGVw ZW5kc30gbGliaHdsb2M+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiAJcGtnX2luc3RhbGwoKSB7 CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMwoKRnJvbSA2 ZDQ4MDc5M2E3MGU0MjUyNTM2OTA1ZGQ3NmFmMWE0ZDE2YmFhMzcyIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBBcnR1ciBTaW5pbGEgPGZyZWVzb2Z0d2FyZUBsb2dhcml0aG11cy5kZXY+ CkRhdGU6IE1vbiwgNSBKdWwgMjAyMSAwMjo1MDoyNiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMDIv MTFdIHRiYjogdXBkYXRlIHRvIDIwMjEuMy4wLgoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogc3JjcGtncy90YmIvcGF0Y2hlcy8wMC1o d2xvYy0yLjUucGF0Y2ggICAgICAgfCAzNjcgKysrKysrKysrKysrKysrKysrKwogc3JjcGtncy90 YmIvcGF0Y2hlcy8wMS1od2xvYy1wa2djb25maWcucGF0Y2ggfCAgNTIgKysrCiBzcmNwa2dzL3Ri Yi9wYXRjaGVzL2hvc3RuYW1lLXVzYWdlLnBhdGNoICAgICB8ICAxMSAtCiBzcmNwa2dzL3RiYi9w YXRjaGVzL211c2wucGF0Y2ggICAgICAgICAgICAgICB8ICAgNCArLQogc3JjcGtncy90YmIvdGVt cGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNjMgKy0tLQogNiBmaWxlcyBjaGFuZ2Vk LCA0MzMgaW5zZXJ0aW9ucygrKSwgNzAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy90YmIvcGF0Y2hlcy8wMC1od2xvYy0yLjUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL3RiYi9wYXRjaGVzLzAxLWh3bG9jLXBrZ2NvbmZpZy5wYXRjaAogZGVsZXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvdGJiL3BhdGNoZXMvaG9zdG5hbWUtdXNhZ2UucGF0Y2gKCmRpZmYg LS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBhN2FmYmYyYTU2Zjcu LjZiN2NhNWZiYzI0OSAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hs aWJzCkBAIC0yMzc2LDEyICsyMzc2LDEwIEBAIGxpYmFudGh5LXVuaWNvZGUuc28uMCBsaWJhbnRo eS11bmljb2RlLTEuMC4wLjIwMjAxMTA5XzEKIGxpYmFudGh5ZGljLXVuaWNvZGUuc28uMCBsaWJh bnRoeS11bmljb2RlLTEuMC4wLjIwMjAxMTA5XzEKIGxpYmFudGh5aW5wdXQtdW5pY29kZS5zby4w IGxpYmFudGh5LXVuaWNvZGUtMS4wLjAuMjAyMDExMDlfMQogbGliYW50aHlnb2JqZWN0LTEuMC5z by41IGlidXMtYW50aHktMS41LjZfMQotbGlidGJibWFsbG9jX3Byb3h5X2RlYnVnLnNvLjIgdGJi LTQuM18xCiBsaWJ0YmJtYWxsb2NfcHJveHkuc28uMiB0YmItNC4zXzEKIGxpYnRiYm1hbGxvYy5z by4yIHRiYi00LjNfMQotbGlidGJiX2RlYnVnLnNvLjIgdGJiLTQuM18xCi1saWJ0YmIuc28uMiB0 YmItNC4zXzEKLWxpYnRiYm1hbGxvY19kZWJ1Zy5zby4yIHRiYi00LjNfMQorbGlidGJiLnNvLjEy IHRiYi0yMDIxLjMuMF8xCitsaWJ0YmJiaW5kXzJfNS5zby4zIHRiYi0yMDIxLjMuMF8xCiBsaWJl bWJyZWUuc28uMiBlbWJyZWUtMi41LjFfMQogbGliZ3RraW1hZ2V2aWV3LnNvLjAgZ3RraW1hZ2V2 aWV3LTEuNi40XzEKIGxpYmdvb2NhbnZhcy0yLjAuc28uOSBnb29jYW52YXMtMi4wLjRfMQpkaWZm IC0tZ2l0IGEvc3JjcGtncy90YmIvcGF0Y2hlcy8wMC1od2xvYy0yLjUucGF0Y2ggYi9zcmNwa2dz L3RiYi9wYXRjaGVzLzAwLWh3bG9jLTIuNS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAuLjljNGM5Mjg1YzcxZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv dGJiL3BhdGNoZXMvMDAtaHdsb2MtMi41LnBhdGNoCkBAIC0wLDAgKzEsMzY3IEBACitBZGp1c3Rl ZCBieSBBcnR1ciBTaW5pbGEgPGZyZWVzb2Z0d2FyZUBsb2dhcml0aG11cy5kZXY+CisKK0Zyb20g ZTk2ZGJmNGI0OGU2ODlhYjgxMGIwNDI4ZDA4NThhNmFiYzJjODNiZCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IEl2YW4gS29jaGluIDxpdi5rb2NoaW5AZ21haWwuY29tPgorRGF0ZTog VGh1LCAxIEp1bCAyMDIxIDE1OjA3OjM5ICswMzAwCitTdWJqZWN0OiBbUEFUQ0hdIFVwZ3JhZGUg ZnJvbSBIV0xPQyAyLjQgdG8gSFdMT0MgMi41ICgjNDQ4KQorCisqIFVwZ3JhZGUgZnJvbSBIV0xP QyAyLjQgdG8gSFdMT0MgMi41CisqIEludHJvZHVjZSB0YmJiaW5kXzJfNSBsaWJyYXJ5CisqIFJl bW92ZSB0YmJiaW5kXzJfNCBsaWJyYXJ5CisqIFVzZSB0aGUgSFdMT0NfVE9QT0xPR1lfRkxBR19S RVNUUklDVF9UT19DUFVCSU5ESU5HIHRvcG9sb2d5IGZsYWcgKGludHJvZHVjZXMgYXMgYSBwYXJ0 IG9mIEhXTE9DIDIuNSkgdG8gcmVzdHJpY3QgdG9wb2xvZ3kgZGlzY292ZXJpbmcgdG8gcHJvY2Vz cyBiaW5kaW5nCisqIEZpeCB0ZXN0aW5nIG9uIExpbnV4CisqIEFwcGx5IHJldmlldyBjb21tZW50 cworKiBJbXByb3ZlIHdvcmRpbmc6IHZhcmlhYmxlIC0+IHN1YnN0cmluZworKiBVc2UgcmlnaHQg dGJiYmluZCB2ZXJzaW9uIGZvciBpbmNvbXBhdGlibGUgaHdsb2NzIHRlc3QKKyogUmV3b3JrIG9w dGlvbiBzZW1hbnRpYworKiBVcGRhdGUgUkVBRE1FLm1kIGZvciBDTWFrZQorKiBSZXdvcmsgcmVh ZG1lCisqIFVwZGF0ZSBjbWFrZS9SRUFETUUubWQKKworU2lnbmVkLW9mZi1ieTogS29jaGluLCBJ dmFuIDxrb2NoaW4uaXZhbkBpbnRlbC5jb20+CisKK0NvLWF1dGhvcmVkLWJ5OiBBbGVrc2VpIEZl ZG90b3YgPGFsZWtzZWkuZmVkb3RvdkBpbnRlbC5jb20+CistLS0KKyBDTWFrZUxpc3RzLnR4dCAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAzICsrLQorIGNtYWtlL1JFQURNRS5tZCAgICAgICAg ICAgICAgICAgICAgICAgIHwgMTEgKysrKystLS0KKyBjbWFrZS9od2xvY19kZXRlY3Rpb24uY21h a2UgICAgICAgICAgICB8ICA5ICsrKystLS0KKyBzcmMvdGJiL2dvdmVybm9yLmNwcCAgICAgICAg ICAgICAgICAgICB8ICA0ICstLQorIHNyYy90YmJiaW5kL0NNYWtlTGlzdHMudHh0ICAgICAgICAg ICAgIHwgIDIgKy0KKyBzcmMvdGJiYmluZC90YmJfYmluZC5jcHAgICAgICAgICAgICAgICB8IDIz ICsrKysrKysrKysrLS0tLS0KKyB0ZXN0L0NNYWtlTGlzdHMudHh0ICAgICAgICAgICAgICAgICAg ICB8IDMwICsrKysrKysrKystLS0tLS0tLS0tLQorIHRlc3QvY29tbW9uL2NvbW1vbl9hcmVuYV9j b25zdHJhaW50cy5oIHwgMzcgKysrKysrKysrKysrKysrKysrKysrKy0tLS0KKyA4IGZpbGVzIGNo YW5nZWQsIDgyIGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEv Q01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dAoraW5kZXggMzRhMjNkNDAwLi4zMDE4OTlh Y2EgMTAwNjQ0CistLS0gYS9DTWFrZUxpc3RzLnR4dAorKysrIGIvQ01ha2VMaXN0cy50eHQKK0BA IC0xMDAsNiArMTAwLDcgQEAgb3B0aW9uKFRCQl9OT19BUFBDT05UQUlORVIgIkFwcGx5IC9BUFBD T05UQUlORVI6Tk8gKGZvciB0ZXN0aW5nIGJpbmFyaWVzIGZvciBXaW4KKyBvcHRpb24oVEJCNFBZ X0JVSUxEICJFbmFibGUgdGJiNHB5IGJ1aWxkIiBPRkYpCisgb3B0aW9uKFRCQl9DUEYgIkVuYWJs ZSBwcmV2aWV3IGZlYXR1cmVzIG9mIHRoZSBsaWJyYXJ5IiBPRkYpCisgb3B0aW9uKFRCQl9GSU5E X1BBQ0tBR0UgIkVuYWJsZSBzZWFyY2ggZm9yIGV4dGVybmFsIG9uZVRCQiB1c2luZyBmaW5kX3Bh Y2thZ2UgaW5zdGVhZCBvZiBidWlsZCBmcm9tIHNvdXJjZXMiIE9GRikKKytvcHRpb24oVEJCX0RJ U0FCTEVfSFdMT0NfQVVUT01BVElDX1NFQVJDSCAiRGlzYWJsZSBIV0xPQyBhdXRvbWF0aWMgc2Vh cmNoIGJ5IHBrZy1jb25maWcgdG9vbCIgT0ZGKQorIAorIGlmIChOT1QgREVGSU5FRCBCVUlMRF9T SEFSRURfTElCUykKKyAgICAgc2V0KEJVSUxEX1NIQVJFRF9MSUJTIE9OKQorQEAgLTE5NSw3ICsx OTYsNyBAQCBlbHNlKCkKKyAgICAgICAgIGFkZF9zdWJkaXJlY3Rvcnkoc3JjL3RiYm1hbGxvYykK KyAgICAgICAgIGFkZF9zdWJkaXJlY3Rvcnkoc3JjL3RiYm1hbGxvY19wcm94eSkKKyAgICAgICAg IGlmIChBUFBMRSkKKy0gICAgICAgICAgICBtZXNzYWdlKFNUQVRVUyAiVEJCQmluZCBidWlsZCB0 YXJnZXQgaXMgZGlzYWJsZWQgZHVlIHRvIHVuc3VwcG9ydGVkIGVudmlyb25tZW50IikKKysgICAg ICAgICAgICBtZXNzYWdlKFNUQVRVUyAiVEJCQmluZCBidWlsZCB0YXJnZXRzIGFyZSBkaXNhYmxl ZCBkdWUgdG8gdW5zdXBwb3J0ZWQgZW52aXJvbm1lbnQiKQorICAgICAgICAgZWxzZSgpCisgICAg ICAgICAgICAgYWRkX3N1YmRpcmVjdG9yeShzcmMvdGJiYmluZCkKKyAgICAgICAgIGVuZGlmKCkK K2RpZmYgLS1naXQgYS9jbWFrZS9SRUFETUUubWQgYi9jbWFrZS9SRUFETUUubWQKK2luZGV4IDM2 ZmMzMDNmOS4uYjU4YzJmZjZhIDEwMDY0NAorLS0tIGEvY21ha2UvUkVBRE1FLm1kCisrKysgYi9j bWFrZS9SRUFETUUubWQKK0BAIC0xMyw2ICsxMyw3IEBAIFRCQjRQWV9CVUlMRDpCT09MIC0gRW5h YmxlICBJbnRlbChSKSBvbmVBUEkgVGhyZWFkaW5nIEJ1aWxkaW5nIEJsb2NrcyAob25lVEJCKSBQ CisgVEJCX0NQRjpCT09MIC0gRW5hYmxlIHByZXZpZXcgZmVhdHVyZXMgb2YgdGhlIGxpYnJhcnkg KE9GRiBieSBkZWZhdWx0KQorIFRCQl9JTlNUQUxMX1ZBUlM6Qk9PTCAtIEVuYWJsZSBhdXRvLWdl bmVyYXRlZCB2YXJzIGluc3RhbGxhdGlvbihwYWNrYWdlcyBnZW5lcmF0ZWQgYnkgYGNwYWNrYCBh bmQgYG1ha2UgaW5zdGFsbGAgd2lsbCBhbHNvIGluY2x1ZGUgdGhlIHZhcnMgc2NyaXB0KShPRkYg YnkgZGVmYXVsdCkKKyBUQkJfVkFMR1JJTkRfTUVNQ0hFQ0s6Qk9PTCAtIEVuYWJsZSBzY2FuIGZv ciBtZW1vcnkgbGVha3MgdXNpbmcgVmFsZ3JpbmQgKE9GRiBieSBkZWZhdWx0KQorK1RCQl9ESVNB QkxFX0hXTE9DX0FVVE9NQVRJQ19TRUFSQ0ggLSBEaXNhYmxlIEhXTE9DIGF1dG9tYXRpYyBzZWFy Y2ggYnkgcGtnLWNvbmZpZyB0b29sIChPRkYgYnkgZGVmYXVsdCkKKyBgYGAKKyAKKyAjIyBDb25m aWd1cmUsIGJ1aWxkIGFuZCB0ZXN0CitAQCAtNDIsOSArNDMsOSBAQCBTb21lIHVzZWZ1bCBvcHRp b25zOgorIAorICMjIyMgVEJCQmluZCBsaWJyYXJ5IGNvbmZpZ3VyYXRpb24KKyAKKy1UaGUgVEJC YmluZCBsaWJyYXJ5IGhhcyB0d28gdmVyc2lvbnM6IGB0YmJiaW5kYCBhbmQgYHRiYmJpbmRfMl8w YC4gRWFjaCBvZiB0aGVzZSB2ZXJzaW9ucyBpcyBsaW5rZWQgd2l0aCBjb3JyZXNwb25kaW5nIEhX TE9DIGxpYnJhcnkgdmVyc2lvbjogYHRiYmJpbmRgIGxpbmtzIHdpdGggSFdMT0MgMS4xMS54ICwg YHRiYmJpbmRfMl8wYCBsaW5rcyB3aXRoIEhXTE9DIDIueC4KKytUaGUgVEJCYmluZCBsaWJyYXJ5 IGhhcyB0aHJlZSB2ZXJzaW9uczogYHRiYmJpbmRgLCBgdGJiYmluZF8yXzBgIGFuZCBgdGJiYmlu ZF8yXzVgLiBFYWNoIG9mIHRoZXNlIHZlcnNpb25zIGlzIGxpbmtlZCB3aXRoIGNvcnJlc3BvbmRp bmcgSFdMT0MgbGlicmFyeSB2ZXJzaW9uOiBgdGJiYmluZGAgbGlua3Mgd2l0aCBIV0xPQyAxLjEx LnggLCBgdGJiYmluZF8yXzBgIGxpbmtzIHdpdGggSFdMT0MgMi4xLTIuNCwgYHRiYmJpbmRfMl81 YCBsaW5rcyB3aXRoIEhXTE9DIDIuNSBhbmQgbGF0ZXIuCisgCistVG8gZW5hYmxlIHRoZSBUQkJC aW5kIGxpYnJhcnkgYnVpbGQgb3Igc3BlY2lhbCB0ZXN0cyB0aGF0IHBlcmZvcm1lZCBpbnNpZGUg dGhlIEhXTE9DIGVudmlyb25tZW50LCBwbGVhc2Ugc3BlY2lmeSB0aGUgZm9sbG93aW5nIENNYWtl IHZhcmlhYmxlczoKKytUaGUgc2VhcmNoIGZvciBhIHN1aXRhYmxlIHZlcnNpb24gb2YgdGhlIEhX TE9DIGxpYnJhcnkgaXMgZW5hYmxlZCBieSBkZWZhdWx0LCBidXQgaWYgeW91IHdhbnQgdG8gdXNl IGEgc3BlY2lmaWMgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBw YXRoIHRvIGl0IG1hbnVhbGx5IHVzaW5nIHRoZSBmb2xsb3dpbmcgQ01ha2UgdmFyaWFibGVzOgor IAorICAtIGBDTUFLRV9IV0xPQ188SFdMT0NfVkVSPl9MSUJSQVJZX1BBVEhgIC0gcGF0aCB0byB0 aGUgY29ycmVzcG9uZGluZyBIV0xPQyB2ZXJzaW9uIHNoYXJlZCBsaWJyYXJ5IG9uIExpbnV4IG9y IHBhdGggdG8gYC5saWJgIGZpbGUgb24gV2luZG93cy4KKyAgLSBgQ01BS0VfSFdMT0NfPEhXTE9D X1ZFUj5fSU5DTFVERV9QQVRIYCAtIHBhdGggdG8gdGhlIGNvcnJlc3BvbmRpbmcgSFdMT0MgdmVy c2lvbiBpbmNsdWRlcyBkaXJlY3RvcnkuCitAQCAtNTIsNyArNTMsMTEgQEAgVG8gZW5hYmxlIHRo ZSBUQkJCaW5kIGxpYnJhcnkgYnVpbGQgb3Igc3BlY2lhbCB0ZXN0cyB0aGF0IHBlcmZvcm1lZCBp bnNpZGUgdGhlIEgKKyBXaW5kb3dzIHJlcXVpcmVzIG9uZSBhZGRpdGlvbmFsIHZhcmlhYmxlIGZv ciBjb3JyZWN0IFRCQkJpbmQgbGlicmFyeSBidWlsZGluZzoKKyAgLSBgQ01BS0VfSFdMT0NfPEhX TE9DX1ZFUj5fRExMX1BBVEhgIC0gcGF0aCB0byB0aGUgY29ycmVzcG9uZGluZyBIV0xPQyB2ZXJz aW9uIGAuZGxsYCBmaWxlLgorIAorLWBIV0xPQ19WRVJgIHZhcmlhYmxlIHVzZWQgYWJvdmUgY2Fu IGJlIHJlcGxhY2VkIHdpdGggb25lIG9mIHRoZSB0d28gdmFsdWVzOiBgMV8xMWAgZm9yIHRoZSBg dGJiYmluZGAgbGlicmFyeSBjb25maWd1cmF0aW9uIGFuZCBgMmAgZm9yIHRoZSBgdGJiYmluZF8y XzBgIGxpYnJhcnkgY29uZmlndXJhdGlvbi4KKytgSFdMT0NfVkVSYCBzdWJzdHJpbmcgdXNlZCBh Ym92ZSBjYW4gYmUgcmVwbGFjZWQgd2l0aCBvbmUgb2YgdGhlIHRocmVlIHZhbHVlczogYDFfMTFg IGZvciB0aGUgYHRiYmJpbmRgIGxpYnJhcnkgY29uZmlndXJhdGlvbiwgYDJgIGZvciB0aGUgYHRi YmJpbmRfMl8wYCwgYW5kIGAyXzVgIGZvciB0aGUgYHRiYmJpbmRfMl81YCBsaWJyYXJ5IGNvbmZp Z3VyYXRpb24uCisrCisrSWYgeW91IHNwZWNpZnkgdmFyaWFibGVzIGZvciBzZXZlcmFsIFRCQkJp bmQgdmVyc2lvbnMsIHRoZW4gYnVpbGRpbmcgcHJvY2VzcyBmb3IgYWxsIG9mIHRoZXNlIHZlcnNp b25zIHdpbGwgYmUgcGVyZm9ybWVkIGR1cmluZyBzaW5nbGUgYnVpbGQgc2Vzc2lvbi4KKysKKytT cGVjaWZ5IHRoZSBgVEJCX0RJU0FCTEVfSFdMT0NfQVVUT01BVElDX1NFQVJDSGAgdG8gZGlzYWJs ZSBIV0xPQyBsaWJyYXJpZXMgYXV0b21hdGljIHNlYXJjaC4KKyAKKyAjIyMgQnVpbGQKKyAKK2Rp ZmYgLS1naXQgYS9jbWFrZS9od2xvY19kZXRlY3Rpb24uY21ha2UgYi9jbWFrZS9od2xvY19kZXRl Y3Rpb24uY21ha2UKK2luZGV4IGUxZWVjYTVmYS4uZGU3ZjNjMDQ3IDEwMDY0NAorLS0tIGEvY21h a2UvaHdsb2NfZGV0ZWN0aW9uLmNtYWtlCisrKysgYi9jbWFrZS9od2xvY19kZXRlY3Rpb24uY21h a2UKK0BAIC0xMiw3ICsxMiw3IEBACisgIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZp YyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgIyBsaW1pdGF0aW9ucyB1bmRl ciB0aGUgTGljZW5zZS4KKyAKKy1saXN0KEFQUEVORCBIV0xPQ19SRVFVSVJFRF9WRVJTSU9OUyAx XzExIDIgMl80KQorK2xpc3QoQVBQRU5EIEhXTE9DX1JFUVVJUkVEX1ZFUlNJT05TIDFfMTEgMiAy XzUpCisgCisgZm9yZWFjaChod2xvY192ZXJzaW9uICR7SFdMT0NfUkVRVUlSRURfVkVSU0lPTlN9 KQorICAgICBpZiAoTk9UIFdJTjMyKQorQEAgLTU1LDEwICs1NiwxMCBAQCBpZiAoTk9UIEhXTE9D X1RBUkdFVF9FWFBMSUNJVExZX0RFRklORUQgQU5ECisgICAgICAgICBpZiAoSFdMT0NfRk9VTkQp CisgICAgICAgICAgICAgaWYgKEhXTE9DX1ZFUlNJT04gVkVSU0lPTl9MRVNTIDIpCisgICAgICAg ICAgICAgICAgIHNldChUQkJCSU5EX0xJQlJBUllfTkFNRSB0YmJiaW5kKQorLSAgICAgICAgICAg IGVsc2VpZihIV0xPQ19WRVJTSU9OIFZFUlNJT05fTEVTUyAyLjQpCisrICAgICAgICAgICAgZWxz ZWlmKEhXTE9DX1ZFUlNJT04gVkVSU0lPTl9MRVNTIDIuNSkKKyAgICAgICAgICAgICAgICAgc2V0 KFRCQkJJTkRfTElCUkFSWV9OQU1FIHRiYmJpbmRfMl8wKQorICAgICAgICAgICAgIGVsc2UoKQor LSAgICAgICAgICAgICAgICBzZXQoVEJCQklORF9MSUJSQVJZX05BTUUgdGJiYmluZF8yXzQpCisr ICAgICAgICAgICAgICAgIHNldChUQkJCSU5EX0xJQlJBUllfTkFNRSB0YmJiaW5kXzJfNSkKKyAg ICAgICAgICAgICBlbmRpZigpCisgICAgICAgICBlbmRpZigpCisgICAgIGVuZGlmKCkKK2RpZmYg LS1naXQgYS9zcmMvdGJiL2dvdmVybm9yLmNwcCBiL3NyYy90YmIvZ292ZXJub3IuY3BwCitpbmRl eCBiZjRlNDAyZDEuLmI4NDJlMDc1ZiAxMDA2NDQKKy0tLSBhL3NyYy90YmIvZ292ZXJub3IuY3Bw CisrKysgYi9zcmMvdGJiL2dvdmVybm9yLmNwcAorQEAgLTM2Miw3ICszNjIsNyBAQCBzdGF0aWMg Y29uc3QgdW5zaWduZWQgTGlua1RhYmxlU2l6ZSA9IHNpemVvZihUYmJCaW5kTGlua1RhYmxlKSAv IHNpemVvZihkeW5hbWljXworIAorICNkZWZpbmUgVEJCQklORF9OQU1FIExJQlJBUllfUFJFRklY ICJ0YmJiaW5kIiBERUJVR19TVUZGSVggTElCUkFSWV9FWFRFTlNJT04KKyAjZGVmaW5lIFRCQkJJ TkRfMl8wX05BTUUgTElCUkFSWV9QUkVGSVggInRiYmJpbmRfMl8wIiBERUJVR19TVUZGSVggTElC UkFSWV9FWFRFTlNJT04KKy0jZGVmaW5lIFRCQkJJTkRfMl80X05BTUUgTElCUkFSWV9QUkVGSVgg InRiYmJpbmRfMl80IiBERUJVR19TVUZGSVggTElCUkFSWV9FWFRFTlNJT04KKysjZGVmaW5lIFRC QkJJTkRfMl81X05BTUUgTElCUkFSWV9QUkVGSVggInRiYmJpbmRfMl81IiBERUJVR19TVUZGSVgg TElCUkFSWV9FWFRFTlNJT04KKyAjZW5kaWYgLyogX1dJTjMyIHx8IF9XSU42NCB8fCBfX2xpbnV4 X18gKi8KKyAKKyAvLyBSZXByZXNlbnRhdGlvbiBvZiBzeXN0ZW0gaGFyZHdhcmUgdG9wb2xvZ3kg aW5mb3JtYXRpb24gb24gdGhlIFRCQiBzaWRlLgorQEAgLTM4OSw3ICszODksNyBAQCBjb25zdCBj aGFyKiBsb2FkX3RiYmJpbmRfc2hhcmVkX29iamVjdCgpIHsKKyAgICAgR2V0TmF0aXZlU3lzdGVt SW5mbygmc2kpOworICAgICBpZiAoc2kuZHdOdW1iZXJPZlByb2Nlc3NvcnMgPiAzMikgcmV0dXJu IG51bGxwdHI7CisgI2VuZGlmIC8qIF9XSU4zMiAmJiAhX1dJTjY0ICovCistICAgIGZvciAoY29u c3QgYXV0byYgdGJiYmluZF92ZXJzaW9uIDoge1RCQkJJTkRfMl80X05BTUUsIFRCQkJJTkRfMl8w X05BTUUsIFRCQkJJTkRfTkFNRX0pIHsKKysgICAgZm9yIChjb25zdCBhdXRvJiB0YmJiaW5kX3Zl cnNpb24gOiB7VEJCQklORF8yXzVfTkFNRSwgVEJCQklORF8yXzBfTkFNRSwgVEJCQklORF9OQU1F fSkgeworICAgICAgICAgaWYgKGR5bmFtaWNfbGluayh0YmJiaW5kX3ZlcnNpb24sIFRiYkJpbmRM aW5rVGFibGUsIExpbmtUYWJsZVNpemUpKSB7CisgICAgICAgICAgICAgcmV0dXJuIHRiYmJpbmRf dmVyc2lvbjsKKyAgICAgICAgIH0KK2RpZmYgLS1naXQgYS9zcmMvdGJiYmluZC9DTWFrZUxpc3Rz LnR4dCBiL3NyYy90YmJiaW5kL0NNYWtlTGlzdHMudHh0CitpbmRleCAwMjk4OTM3NTEuLmU1Y2Ri ZjhiYiAxMDA2NDQKKy0tLSBhL3NyYy90YmJiaW5kL0NNYWtlTGlzdHMudHh0CisrKysgYi9zcmMv dGJiYmluZC9DTWFrZUxpc3RzLnR4dAorQEAgLTk5LDcgKzk5LDcgQEAgaWYgKE5PVCBERUZJTkVE IEhXTE9DX1RBUkdFVF9FWFBMSUNJVExZX0RFRklORUQgQU5EIERFRklORUQgSFdMT0NfTElCUkFS SUVTKQorIGVsc2UoKQorICAgICB0YmJiaW5kX2J1aWxkKHRiYmJpbmQgICAgIEhXTE9DOjpod2xv Y18xXzExKQorICAgICB0YmJiaW5kX2J1aWxkKHRiYmJpbmRfMl8wIEhXTE9DOjpod2xvY18yICAg KQorLSAgICB0YmJiaW5kX2J1aWxkKHRiYmJpbmRfMl80IEhXTE9DOjpod2xvY18yXzQgKQorKyAg ICB0YmJiaW5kX2J1aWxkKHRiYmJpbmRfMl81IEhXTE9DOjpod2xvY18yXzUgKQorIGVuZGlmKCkK KyAKKyAKK2RpZmYgLS1naXQgYS9zcmMvdGJiYmluZC90YmJfYmluZC5jcHAgYi9zcmMvdGJiYmlu ZC90YmJfYmluZC5jcHAKK2luZGV4IDk3YmUzMDhjNy4uODhjOTU2YWNiIDEwMDY0NAorLS0tIGEv c3JjL3RiYmJpbmQvdGJiX2JpbmQuY3BwCisrKysgYi9zcmMvdGJiYmluZC90YmJfYmluZC5jcHAK K0BAIC0zNCw3ICszNCw4IEBACisgI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKKyAjZW5kaWYK KyAKKy0jZGVmaW5lIF9fSFdMT0NfSFlCUklEX0NQVVNfSU5URVJGQUNFU19QUkVTRU5UIChIV0xP Q19BUElfVkVSU0lPTiA+PSAweDIwNDAwKQorKyNkZWZpbmUgX19UQkJCSU5EX0hXTE9DX0hZQlJJ RF9DUFVTX0lOVEVSRkFDRVNfUFJFU0VOVCAoSFdMT0NfQVBJX1ZFUlNJT04gPj0gMHgyMDQwMCkK KysjZGVmaW5lIF9fVEJCQklORF9IV0xPQ19UT1BPTE9HWV9GTEFHX1JFU1RSSUNUX1RPX0NQVUJJ TkRJTkdfUFJFU0VOVCAoSFdMT0NfQVBJX1ZFUlNJT04gPj0gMHgyMDUwMCkKKyAKKyAvLyBNb3N0 IG9mIGh3bG9jIGNhbGxzIHJldHVybnMgbmVnYXRpdmUgZXhpdCBjb2RlIG9uIGVycm9yLgorIC8v IFRoaXMgbWFjcm8gdHJhY2tzIGVycm9yIGNvZGVzIHRoYXQgYXJlIHJldHVybmVkIGZyb20gdGhl IGh3bG9jIGludGVyZmFjZXMuCitAQCAtODUsNiArODYsMTYgQEAgY2xhc3MgcGxhdGZvcm1fdG9w b2xvZ3kgeworICAgICAgICAgLy8gUGFyc2UgdG9wb2xvZ3kKKyAgICAgICAgIGlmICggaHdsb2Nf dG9wb2xvZ3lfaW5pdCggJnRvcG9sb2d5ICkgPT0gMCApIHsKKyAgICAgICAgICAgICBpbml0aWFs aXphdGlvbl9zdGF0ZSA9IHRvcG9sb2d5X2FsbG9jYXRlZDsKKysjaWYgX19UQkJCSU5EX0hXTE9D X1RPUE9MT0dZX0ZMQUdfUkVTVFJJQ1RfVE9fQ1BVQklORElOR19QUkVTRU5UCisrICAgICAgICAg ICAgaWYgKCBncm91cHNfbnVtID09IDEgJiYKKysgICAgICAgICAgICAgICAgIGh3bG9jX3RvcG9s b2d5X3NldF9mbGFncyh0b3BvbG9neSwKKysgICAgICAgICAgICAgICAgICAgICBIV0xPQ19UT1BP TE9HWV9GTEFHX0lTX1RISVNTWVNURU0gfAorKyAgICAgICAgICAgICAgICAgICAgIEhXTE9DX1RP UE9MT0dZX0ZMQUdfUkVTVFJJQ1RfVE9fQ1BVQklORElORworKyAgICAgICAgICAgICAgICAgKSAh PSAwCisrICAgICAgICAgICAgKSB7CisrICAgICAgICAgICAgICAgIHJldHVybjsKKysgICAgICAg ICAgICB9CisrI2VuZGlmCisgICAgICAgICAgICAgaWYgKCBod2xvY190b3BvbG9neV9sb2FkKCB0 b3BvbG9neSApID09IDAgKSB7CisgICAgICAgICAgICAgICAgIGluaXRpYWxpemF0aW9uX3N0YXRl ID0gdG9wb2xvZ3lfbG9hZGVkOworICAgICAgICAgICAgIH0KK0BAIC0xMzUsNyArMTQ2LDcgQEAg Y2xhc3MgcGxhdGZvcm1fdG9wb2xvZ3kgeworICAgICAgICAgICAgIG51bWFfaW5kZXhlc19saXN0 LnJlc2l6ZShudW1hX25vZGVzX2NvdW50KTsKKyAgICAgICAgICAgICBod2xvY19vYmpfdCBub2Rl X2J1ZmZlcjsKKyAgICAgICAgICAgICBod2xvY19iaXRtYXBfZm9yZWFjaF9iZWdpbihpLCBwcm9j ZXNzX25vZGVfYWZmaW5pdHlfbWFzaykgeworLSAgICAgICAgICAgICAgICBub2RlX2J1ZmZlciA9 IGh3bG9jX2dldF9vYmpfYnlfdHlwZSh0b3BvbG9neSwgSFdMT0NfT0JKX05VTUFOT0RFLCBpKTsK KysgICAgICAgICAgICAgICAgbm9kZV9idWZmZXIgPSBod2xvY19nZXRfbnVtYW5vZGVfb2JqX2J5 X29zX2luZGV4KHRvcG9sb2d5LCBpKTsKKyAgICAgICAgICAgICAgICAgbnVtYV9pbmRleGVzX2xp c3RbY291bnRlcl0gPSBzdGF0aWNfY2FzdDxpbnQ+KG5vZGVfYnVmZmVyLT5sb2dpY2FsX2luZGV4 KTsKKyAKKyAgICAgICAgICAgICAgICAgaWYgKCBudW1hX2luZGV4ZXNfbGlzdFtjb3VudGVyXSA+ IG1heF9udW1hX2luZGV4ICkgeworQEAgLTE1MCw3ICsxNjEsNyBAQCBjbGFzcyBwbGF0Zm9ybV90 b3BvbG9neSB7CisgICAgICAgICAgICAgbnVtYV9hZmZpbml0eV9tYXNrc19saXN0LnJlc2l6ZSht YXhfbnVtYV9pbmRleCArIDEpOworICAgICAgICAgICAgIGludCBpbmRleCA9IDA7CisgICAgICAg ICAgICAgaHdsb2NfYml0bWFwX2ZvcmVhY2hfYmVnaW4oaSwgcHJvY2Vzc19ub2RlX2FmZmluaXR5 X21hc2spIHsKKy0gICAgICAgICAgICAgICAgbm9kZV9idWZmZXIgPSBod2xvY19nZXRfb2JqX2J5 X3R5cGUodG9wb2xvZ3ksIEhXTE9DX09CSl9OVU1BTk9ERSwgaSk7CisrICAgICAgICAgICAgICAg IG5vZGVfYnVmZmVyID0gaHdsb2NfZ2V0X251bWFub2RlX29ial9ieV9vc19pbmRleCh0b3BvbG9n eSwgaSk7CisgICAgICAgICAgICAgICAgIGluZGV4ID0gc3RhdGljX2Nhc3Q8aW50Pihub2RlX2J1 ZmZlci0+bG9naWNhbF9pbmRleCk7CisgCisgICAgICAgICAgICAgICAgIGh3bG9jX2NwdXNldF90 JiBjdXJyZW50X21hc2sgPSBudW1hX2FmZmluaXR5X21hc2tzX2xpc3RbaW5kZXhdOworQEAgLTE2 OCw3ICsxNzksNyBAQCBjbGFzcyBwbGF0Zm9ybV90b3BvbG9neSB7CisgICAgICAgICAgICAgY29y ZV90eXBlc19pbmRleGVzX2xpc3QucHVzaF9iYWNrKC0xKTsKKyAgICAgICAgICAgICByZXR1cm47 CisgICAgICAgICB9CistI2lmIF9fSFdMT0NfSFlCUklEX0NQVVNfSU5URVJGQUNFU19QUkVTRU5U CisrI2lmIF9fVEJCQklORF9IV0xPQ19IWUJSSURfQ1BVU19JTlRFUkZBQ0VTX1BSRVNFTlQKKyAg ICAgICAgIF9fVEJCX0FTU0VSVChod2xvY19nZXRfYXBpX3ZlcnNpb24oKSA+PSAweDIwNDAwLCAi SHlicmlkIENQVXMgc3VwcG9ydCBpbnRlcmZhY2VzIHJlcXVpcmVkIEhXTE9DID49IDIuNCIpOwor ICAgICAgICAgLy8gUGFyc2luZyB0aGUgaHlicmlkIENQVSB0b3BvbG9neQorICAgICAgICAgaW50 IGNvcmVfdHlwZXNfbnVtYmVyID0gaHdsb2NfY3B1a2luZHNfZ2V0X25yKHRvcG9sb2d5LCAwKTsK K0BAIC0xOTYsOSArMjA3LDkgQEAgY2xhc3MgcGxhdGZvcm1fdG9wb2xvZ3kgeworICAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICAgfQorICAgICAgICAgfQorLSNlbHNlIC8qIV9fSFdMT0Nf SFlCUklEX0NQVVNfSU5URVJGQUNFU19QUkVTRU5UKi8KKysjZWxzZSAvKiFfX1RCQkJJTkRfSFdM T0NfSFlCUklEX0NQVVNfSU5URVJGQUNFU19QUkVTRU5UKi8KKyAgICAgICAgIGJvb2wgY29yZV90 eXBlc19wYXJzaW5nX2Jyb2tlbnt0cnVlfTsKKy0jZW5kaWYgLypfX0hXTE9DX0hZQlJJRF9DUFVT X0lOVEVSRkFDRVNfUFJFU0VOVCovCisrI2VuZGlmIC8qX19UQkJCSU5EX0hXTE9DX0hZQlJJRF9D UFVTX0lOVEVSRkFDRVNfUFJFU0VOVCovCisgCisgICAgICAgICBpZiAoY29yZV90eXBlc19wYXJz aW5nX2Jyb2tlbikgeworICAgICAgICAgICAgIGZvciAoYXV0byYgY29yZV90eXBlX21hc2sgOiBj b3JlX3R5cGVzX2FmZmluaXR5X21hc2tzX2xpc3QpIHsKK2RpZmYgLS1naXQgYS90ZXN0L0NNYWtl TGlzdHMudHh0IGIvdGVzdC9DTWFrZUxpc3RzLnR4dAoraW5kZXggYmRhZTllMmIxLi5jMmI5ZDZk YmEgMTAwNjQ0CistLS0gYS90ZXN0L0NNYWtlTGlzdHMudHh0CisrKysgYi90ZXN0L0NNYWtlTGlz dHMudHh0CitAQCAtMjc1LDkgKzI3NSw5IEBAIGZ1bmN0aW9uKHRiYl9hZGRfdGJiYmluZF90ZXN0 KQorICAgICAgICAgRkFJTF9SRUdVTEFSX0VYUFJFU1NJT04gIlN0YXR1czouKkZBSUxVUkUiCisg ICAgICkKKyAKKy0gICAgaWYgKFRBUkdFVCBIV0xPQzo6aHdsb2NfMl80IEFORCBOT1QgSFdMT0Nf Ml80X1RFU1RTX1NUQVRVU19TSE9XTikKKy0gICAgICAgIG1lc3NhZ2UoU1RBVFVTICJIV0xPQyAy LjQgZGVwZW5kZW50IHRlc3RzIHdlcmUgZW5hYmxlZC4iKQorLSAgICAgICAgc2V0KEhXTE9DXzJf NF9URVNUU19TVEFUVVNfU0hPV04gVFJVRSBQQVJFTlRfU0NPUEUpCisrICAgIGlmIChUQVJHRVQg SFdMT0M6Omh3bG9jXzJfNSBBTkQgTk9UIEhXTE9DXzJfNV9URVNUU19TVEFUVVNfU0hPV04pCisr ICAgICAgICBtZXNzYWdlKFNUQVRVUyAiSFdMT0MgMi41IGRlcGVuZGVudCB0ZXN0cyB3ZXJlIGVu YWJsZWQuIikKKysgICAgICAgIHNldChIV0xPQ18yXzVfVEVTVFNfU1RBVFVTX1NIT1dOIFRSVUUg UEFSRU5UX1NDT1BFKQorICAgICBlbmRpZigpCisgCisgICAgIGlmIChUQVJHRVQgSFdMT0M6Omh3 bG9jXzIgQU5EIE5PVCBIV0xPQ18yX1RFU1RTX1NUQVRVU19TSE9XTikKK0BAIC0yOTEsMjIgKzI5 MSwyMiBAQCBmdW5jdGlvbih0YmJfYWRkX3RiYmJpbmRfdGVzdCkKKyAgICAgZW5kaWYoKQorIAor ICAgICBsaXN0KEFQUEVORCBIV0xPQ19URVNUX0NBU0VTCistICAgICAgICBod2xvY18yXzQKKysg ICAgICAgIGh3bG9jXzJfNQorICAgICAgICAgaHdsb2NfMgorICAgICAgICAgaHdsb2NfMV8xMQor LSAgICAgICAgaHdsb2NfMl80X2h3bG9jXzIKKy0gICAgICAgIGh3bG9jXzJfNF9od2xvY18xXzEx CisrICAgICAgICBod2xvY18yXzVfaHdsb2NfMgorKyAgICAgICAgaHdsb2NfMl81X2h3bG9jXzFf MTEKKyAgICAgICAgIGh3bG9jXzJfaHdsb2NfMV8xMQorLSAgICAgICAgaHdsb2NfMl80X2h3bG9j XzJfaHdsb2NfMV8xMQorKyAgICAgICAgaHdsb2NfMl81X2h3bG9jXzJfaHdsb2NfMV8xMQorICAg ICApCisgCistICAgIGxpc3QoQVBQRU5EIEhXTE9DX1RFU1RfQ0FTRV8wX1ZBUlMgdGJiYmluZF8y XzQgImh3bG9jXzJfNCIpCisrICAgIGxpc3QoQVBQRU5EIEhXTE9DX1RFU1RfQ0FTRV8wX1ZBUlMg dGJiYmluZF8yXzUgImh3bG9jXzJfNSIpCisgICAgIGxpc3QoQVBQRU5EIEhXTE9DX1RFU1RfQ0FT RV8xX1ZBUlMgdGJiYmluZF8yICAgImh3bG9jXzIiKQorICAgICBsaXN0KEFQUEVORCBIV0xPQ19U RVNUX0NBU0VfMl9WQVJTIHRiYmJpbmQgICAgICJod2xvY18xXzExIikKKy0gICAgbGlzdChBUFBF TkQgSFdMT0NfVEVTVF9DQVNFXzNfVkFSUyB0YmJiaW5kXzJfNCAiaHdsb2NfMl80LGh3bG9jXzIi KQorLSAgICBsaXN0KEFQUEVORCBIV0xPQ19URVNUX0NBU0VfNF9WQVJTIHRiYmJpbmRfMl80ICJo d2xvY18yXzQsaHdsb2NfMV8xMSIpCisrICAgIGxpc3QoQVBQRU5EIEhXTE9DX1RFU1RfQ0FTRV8z X1ZBUlMgdGJiYmluZF8yXzUgImh3bG9jXzJfNSxod2xvY18yIikKKysgICAgbGlzdChBUFBFTkQg SFdMT0NfVEVTVF9DQVNFXzRfVkFSUyB0YmJiaW5kXzJfNSAiaHdsb2NfMl81LGh3bG9jXzFfMTEi KQorICAgICBsaXN0KEFQUEVORCBIV0xPQ19URVNUX0NBU0VfNV9WQVJTIHRiYmJpbmRfMiAgICJo d2xvY18yLGh3bG9jXzFfMTEiKQorLSAgICBsaXN0KEFQUEVORCBIV0xPQ19URVNUX0NBU0VfNl9W QVJTIHRiYmJpbmRfMl80ICJod2xvY18yXzQsaHdsb2NfMixod2xvY18xXzExIikKKysgICAgbGlz dChBUFBFTkQgSFdMT0NfVEVTVF9DQVNFXzZfVkFSUyB0YmJiaW5kXzJfNSAiaHdsb2NfMl81LGh3 bG9jXzIsaHdsb2NfMV8xMSIpCisgCisgICAgIGZvcmVhY2goVEVTVF9DQVNFICR7SFdMT0NfVEVT VF9DQVNFU30pCisgICAgICAgICBsaXN0KEZJTkQgSFdMT0NfVEVTVF9DQVNFUyAke1RFU1RfQ0FT RX0gVEVTVF9DQVNFX0lOREVYKQorQEAgLTMzMSw3ICszMzEsNyBAQCBlbmRmdW5jdGlvbigpCisg IyBDb3B5IGxpYnJhcmllcyB0byB0ZXN0IGZvbGRlciB0byBtYWtlIGl0IHZpc2libGUgZHVyaW5n IHRlc3RzIGV4ZWN1dGlvbiBpZiBleHRlcm5hbCBUQkIgaXMgdGVzdGVkLgorICMgVE9ETzogY2hl Y2sgYW5kIHVwZGF0ZSBmb3IgbXVsdGktY29uZmlnIGdlbmVyYXRvcnMuCisgaWYgKFRCQl9GT1VO RCkKKy0gICAgbGlzdChBUFBFTkQgX3RiYl90ZXN0X2NvbXBvbmVudHMgdGJiIHRiYm1hbGxvYyB0 YmJtYWxsb2NfcHJveHkgdGJiYmluZCB0YmJiaW5kXzJfMCB0YmJiaW5kXzJfNCkKKysgICAgbGlz dChBUFBFTkQgX3RiYl90ZXN0X2NvbXBvbmVudHMgdGJiIHRiYm1hbGxvYyB0YmJtYWxsb2NfcHJv eHkgdGJiYmluZCB0YmJiaW5kXzJfMCB0YmJiaW5kXzJfNSkKKyAgICAgZm9yZWFjaChfY29tcG9u ZW50ICR7X3RiYl90ZXN0X2NvbXBvbmVudHN9KQorICAgICAgICAgaWYgKFRBUkdFVCBUQkI6OiR7 X2NvbXBvbmVudH0pCisgICAgICAgICAgICAgZ2V0X3Byb3BlcnR5KCR7X2NvbXBvbmVudH1fbGli X2ZpbGVfbG9jYXRpb24gVEFSR0VUIFRCQjo6JHtfY29tcG9uZW50fSBQUk9QRVJUWSBMT0NBVElP TikKK0BAIC01OTMsNiArNTkzLDYgQEAgaWYgKE5PVCAiJHtDTUFLRV9TWVNURU1fUFJPQ0VTU09S fSIgTUFUQ0hFUyAibWlwcyIpCisgICAgIHRiYl9hZGRfdGVzdChTVUJESVIgdGJibWFsbG9jIE5B TUUgdGVzdF9tYWxsb2NfbmV3X2hhbmRsZXIgREVQRU5ERU5DSUVTIFRCQjo6dGJibWFsbG9jX3By b3h5KQorIGVuZGlmKCkKKyAKKy11bnNldChIV0xPQ18yXzRfVEVTVFNfU1RBVFVTX1NIT1dOKQor K3Vuc2V0KEhXTE9DXzJfNV9URVNUU19TVEFUVVNfU0hPV04pCisgdW5zZXQoSFdMT0NfMl9URVNU U19TVEFUVVNfU0hPV04pCisgdW5zZXQoSFdMT0NfMV8xMV9URVNUU19TVEFUVVNfU0hPV04pCitk aWZmIC0tZ2l0IGEvdGVzdC9jb21tb24vY29tbW9uX2FyZW5hX2NvbnN0cmFpbnRzLmggYi90ZXN0 L2NvbW1vbi9jb21tb25fYXJlbmFfY29uc3RyYWludHMuaAoraW5kZXggMmEwYjFlYTk3Li41ZWZj NzEwODIgMTAwNjQ0CistLS0gYS90ZXN0L2NvbW1vbi9jb21tb25fYXJlbmFfY29uc3RyYWludHMu aAorKysrIGIvdGVzdC9jb21tb24vY29tbW9uX2FyZW5hX2NvbnN0cmFpbnRzLmgKK0BAIC0zOCw5 ICszOCwyNiBAQAorIAorICNpZiAoX1dJTjMyIHx8IF9XSU42NCkgJiYgX19UQkJfSFdMT0NfVkFM SURfRU5WSVJPTk1FTlQKKyAjaW5jbHVkZSA8d2luZG93cy5oPgorLWludCBnZXRfcHJvY2Vzc29y c19ncm91cHNfY291bnQoKSB7IHJldHVybiBHZXRBY3RpdmVQcm9jZXNzb3JHcm91cENvdW50KCk7 IH0KKytpbnQgZ2V0X3Byb2Nlc3NvcnNfZ3JvdXBfY291bnQoKSB7CisrICAgIFNZU1RFTV9JTkZP IHNpOworKyAgICBHZXROYXRpdmVTeXN0ZW1JbmZvKCZzaSk7CisrICAgIERXT1JEX1BUUiBwYW0s IHNhbSwgbSA9IDE7CisrICAgIEdldFByb2Nlc3NBZmZpbml0eU1hc2soIEdldEN1cnJlbnRQcm9j ZXNzKCksICZwYW0sICZzYW0gKTsKKysgICAgaW50IG5wcm9jID0gMDsKKysgICAgZm9yICggc3Rk OjpzaXplX3QgaSA9IDA7IGkgPCBzaXplb2YoRFdPUkRfUFRSKSAqIENIQVJfQklUOyArK2ksIG0g PDw9IDEgKSB7CisrICAgICAgICBpZiAoIHBhbSAmIG0gKQorKyAgICAgICAgICAgICsrbnByb2M7 CisrICAgIH0KKysgICAgLy8gU2V0dGluZyB1cCBwcm9jZXNzb3IgZ3JvdXBzIGluIGNhc2UgdGhl IHByb2Nlc3MgZG9lcyBub3QgcmVzdHJpY3QgYWZmaW5pdHkgbWFzayBhbmQgbW9yZSB0aGFuIG9u ZSBwcm9jZXNzb3IgZ3JvdXAgaXMgcHJlc2VudAorKyAgICBpZiAoIG5wcm9jID09IChpbnQpc2ku ZHdOdW1iZXJPZlByb2Nlc3NvcnMgICkgeworKyAgICAgICAgLy8gVGhlIHByb2Nlc3MgZG9lcyBu b3QgaGF2ZSByZXN0cmljdGluZyBhZmZpbml0eSBtYXNrIGFuZCBtdWx0aXBsZSBwcm9jZXNzb3Ig Z3JvdXBzIGFyZSBwb3NzaWJsZQorKyAgICAgICAgcmV0dXJuIChpbnQpR2V0QWN0aXZlUHJvY2Vz c29yR3JvdXBDb3VudCgpOworKyAgICB9IGVsc2UgeworKyAgICAgICAgcmV0dXJuIDE7CisrICAg IH0KKyt9CisgI2Vsc2UKKy1pbnQgZ2V0X3Byb2Nlc3NvcnNfZ3JvdXBzX2NvdW50KCkgeyByZXR1 cm4gMTsgfQorK2ludCBnZXRfcHJvY2Vzc29yc19ncm91cF9jb3VudCgpIHsgcmV0dXJuIDE7IH0K KyAjZW5kaWYKKyAKKyAvL1RPRE86IFdyaXRlIGEgdGVzdCB0aGF0IGNoZWNrcyBmb3IgbWVtb3J5 IGxlYWtzIGR1cmluZyBkeW5hbWljIGxpbmsvdW5saW5rIG9mIFRCQmJpbmQuCitAQCAtNjksNiAr ODYsNyBAQCBpbnQgZ2V0X3Byb2Nlc3NvcnNfZ3JvdXBzX2NvdW50KCkgeyByZXR1cm4gMTsgfQor ICNlbmRpZgorIAorICNkZWZpbmUgX19IV0xPQ19IWUJSSURfQ1BVU19JTlRFUkZBQ0VTX1BSRVNF TlQgKEhXTE9DX0FQSV9WRVJTSU9OID49IDB4MjA0MDApCisrI2RlZmluZSBfX0hXTE9DX1RPUE9M T0dZX0ZMQUdfUkVTVFJJQ1RfVE9fQ1BVQklORElOR19QUkVTRU5UIChIV0xPQ19BUElfVkVSU0lP TiA+PSAweDIwNTAwKQorIC8vIEF0IHRoaXMgbW9tZW50IHRoZSBoeWJyaWQgQ1BVcyBIV0xPQyBp bnRlcmZhY2VzIHJldHVybnMgdW5leHBlY3RlZCByZXN1bHRzIG9uIHNvbWUgV2luZG93cyBtYWNo aW5lcworIC8vIGluIHRoZSAzMi1iaXQgYXJjaCBtb2RlLgorICNkZWZpbmUgX19IV0xPQ19IWUJS SURfQ1BVU19JTlRFUkZBQ0VTX1ZBTElEICghX1dJTjMyIHx8IF9XSU42NCkKK0BAIC0xNTMsOSAr MTcxLDE4IEBAIGNsYXNzIHN5c3RlbV9pbmZvIHsKKyAKKyAgICAgc3lzdGVtX2luZm8oKSB7Cisg ICAgICAgICBod2xvY19yZXF1aXJlX2V4KGh3bG9jX3RvcG9sb2d5X2luaXQsICZ0b3BvbG9neSk7 CisrI2lmIF9fSFdMT0NfVE9QT0xPR1lfRkxBR19SRVNUUklDVF9UT19DUFVCSU5ESU5HX1BSRVNF TlQKKysgICAgICAgIGlmICggZ2V0X3Byb2Nlc3NvcnNfZ3JvdXBfY291bnQoKSA9PSAxICkgewor KyAgICAgICAgICAgIFJFUVVJUkUoCisrICAgICAgICAgICAgICAgIGh3bG9jX3RvcG9sb2d5X3Nl dF9mbGFncyh0b3BvbG9neSwKKysgICAgICAgICAgICAgICAgICAgIEhXTE9DX1RPUE9MT0dZX0ZM QUdfSVNfVEhJU1NZU1RFTSB8CisrICAgICAgICAgICAgICAgICAgICBIV0xPQ19UT1BPTE9HWV9G TEFHX1JFU1RSSUNUX1RPX0NQVUJJTkRJTkcpID09IDAKKysgICAgICAgICAgICApOworKyAgICAg ICAgfQorKyNlbmRpZgorICAgICAgICAgaHdsb2NfcmVxdWlyZV9leChod2xvY190b3BvbG9neV9s b2FkLCB0b3BvbG9neSk7CisgCistICAgICAgICBpZiAoIGdldF9wcm9jZXNzb3JzX2dyb3Vwc19j b3VudCgpID4gMSApIHsKKysgICAgICAgIGlmICggZ2V0X3Byb2Nlc3NvcnNfZ3JvdXBfY291bnQo KSA+IDEgKSB7CisgICAgICAgICAgICAgcHJvY2Vzc19jcHVzZXQgPSBod2xvY19iaXRtYXBfZHVw KGh3bG9jX3RvcG9sb2d5X2dldF9jb21wbGV0ZV9jcHVzZXQodG9wb2xvZ3kpKTsKKyAgICAgICAg IH0gZWxzZSB7CisgICAgICAgICAgICAgcHJvY2Vzc19jcHVzZXQgPSBod2xvY19iaXRtYXBfYWxs b2MoKTsKK0BAIC00MzQsNyArNDYxLDcgQEAgc3lzdGVtX2luZm86OmFmZmluaXR5X21hc2sgZ2V0 X2FyZW5hX2FmZmluaXR5KHRiYjo6dGFza19hcmVuYSYgdGEpIHsKKyAgICAgICAgICAgICAgICAg YmFycmllci53YWl0KCk7CisgICAgICAgICAgICAgICAgIHRiYjo6c3Bpbl9tdXRleDo6c2NvcGVk X2xvY2sgbG9jayhhZmZpbml0eV9tdXRleCk7CisgICAgICAgICAgICAgICAgIHN5c3RlbV9pbmZv OjphZmZpbml0eV9tYXNrIHRocmVhZF9hZmZpbml0eSA9IHN5c3RlbV9pbmZvOjphbGxvY2F0ZV9j dXJyZW50X2FmZmluaXR5X21hc2soKTsKKy0gICAgICAgICAgICAgICAgaWYgKGdldF9wcm9jZXNz b3JzX2dyb3Vwc19jb3VudCgpID09IDEpIHsKKysgICAgICAgICAgICAgICAgaWYgKGdldF9wcm9j ZXNzb3JzX2dyb3VwX2NvdW50KCkgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICAgUkVRVUlS RV9NRVNTQUdFKGh3bG9jX2JpdG1hcF9pc2VxdWFsKHRocmVhZF9hZmZpbml0eSwgYXJlbmFfYWZm aW5pdHkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICJUaHJlYWRzIGhhdmUgZGlmZmVyZW50 IG1hc2tzIG9uIG1hY2hpbmUgd2l0aG91dCBzZXZlcmFsIHByb2Nlc3NvcnMgZ3JvdXBzLiIpOwor ICAgICAgICAgICAgICAgICB9CitAQCAtNTMyLDcgKzU1OSw3IEBAIGNvbnN0cmFpbnRzX2NvbnRh aW5lciBnZW5lcmF0ZV9jb25zdHJhaW50c192YXJpZXR5KCkgeworICAgICAgICAgfQorIAorICAg ICAgICAgLy8gU29tZSBjb25zdHJhaW50cyBtYXkgY2F1c2UgdW5leHBlY3RlZCBiZWhhdmlvciwg d2hpY2ggd291bGQgYmUgZml4ZWQgbGF0ZXIuCistICAgICAgICBpZiAoZ2V0X3Byb2Nlc3NvcnNf Z3JvdXBzX2NvdW50KCkgPiAxKSB7CisrICAgICAgICBpZiAoZ2V0X3Byb2Nlc3NvcnNfZ3JvdXBf Y291bnQoKSA+IDEpIHsKKyAgICAgICAgICAgICBmb3IoYXV0byBpdCA9IHJlc3VsdHMuYmVnaW4o KTsgaXQgIT0gcmVzdWx0cy5lbmQoKTsgKytpdCkgeworICAgICAgICAgICAgICAgICBpZiAoaXQt Pm1heF90aHJlYWRzX3Blcl9jb3JlICE9IHRiYjo6dGFza19hcmVuYTo6YXV0b21hdGljCisgICAg ICAgICAgICAgICAgICAgICYmIChpdC0+bnVtYV9pZCA9PSB0YmI6OnRhc2tfYXJlbmE6OmF1dG9t YXRpYyB8fCB0YmI6OmluZm86Om51bWFfbm9kZXMoKS5zaXplKCkgPT0gMSkKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvdGJiL3BhdGNoZXMvMDEtaHdsb2MtcGtnY29uZmlnLnBhdGNoIGIvc3JjcGtncy90 YmIvcGF0Y2hlcy8wMS1od2xvYy1wa2djb25maWcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi4yNzllYmM0Mzk3Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL3RiYi9wYXRjaGVzLzAxLWh3bG9jLXBrZ2NvbmZpZy5wYXRjaApAQCAtMCwwICsxLDUyIEBA CitCYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vb25lYXBpLXNyYy9vbmVUQkIvcHVsbC80OTgK K1R3ZWFrZWQgYSBiaXQgdG8gd29yayBvbiBgdjIwMjEuMy4wYAorCitkaWZmIC0tZ2l0IGEvc3Jj L3RiYmJpbmQvQ01ha2VMaXN0cy50eHQgYi9zcmMvdGJiYmluZC9DTWFrZUxpc3RzLnR4dAoraW5k ZXggZTVjZGJmOGJiLi5hNDAzMzIxMGEgMTAwNjQ0CistLS0gYS9zcmMvdGJiYmluZC9DTWFrZUxp c3RzLnR4dAorKysrIGIvc3JjL3RiYmJpbmQvQ01ha2VMaXN0cy50eHQKK0BAIC0zNyw2ICszNywx MCBAQCBmdW5jdGlvbih0YmJiaW5kX2J1aWxkIFRCQkJJTkRfTkFNRSBSRVFVSVJFRF9IV0xPQ19U QVJHRVQpCisgICAgICAgICAkPElOU1RBTExfSU5URVJGQUNFOiR7Q01BS0VfSU5TVEFMTF9JTkNM VURFRElSfT4KKyAgICAgICAgICR7SFdMT0NfSU5DTFVERV9ESVJTfSAjIHBrZy1jb25maWcgZGVm aW5lZAorICAgICApCisrCXRhcmdldF9saW5rX2RpcmVjdG9yaWVzKCR7VEJCQklORF9OQU1FfQor KwkJUFJJVkFURQorKwkJJHtIV0xPQ19MSUJSQVJZX0RJUlN9ICMgcGtnLWNvbmZpZyBkZWZpbmVk CisrCSkKKyAKKyAgICAgdGFyZ2V0X2NvbXBpbGVfb3B0aW9ucygke1RCQkJJTkRfTkFNRX0KKyAg ICAgICAgIFBSSVZBVEUKK0BAIC02OSw3ICs2OSw2IEBAIGZ1bmN0aW9uKHRiYmJpbmRfYnVpbGQg VEJCQklORF9OQU1FIFJFUVVJUkVEX0hXTE9DX1RBUkdFVCkKKyAgICAgICAgICAgICBQUklWQVRF CisgICAgICAgICAgICAgJHtUQkJfTElCX0xJTktfRkxBR1N9CisgICAgICAgICAgICAgJHtUQkJf Q09NTU9OX0xJTktfRkxBR1N9CistICAgICAgICAgICAgJHtIV0xPQ19MSUJSQVJZX0RJUlN9ICMg cGtnLWNvbmZpZyBkZWZpbmVkCisgICAgICAgICApCisgICAgIGVsc2UoKQorICAgICAgICAgdGFy Z2V0X2xpbmtfbGlicmFyaWVzKCR7VEJCQklORF9OQU1FfQorQEAgLTc2LDcgKzc2LDYgQEAgZnVu Y3Rpb24odGJiYmluZF9idWlsZCBUQkJCSU5EX05BTUUgUkVRVUlSRURfSFdMT0NfVEFSR0VUKQor ICAgICAgICAgICAgIFBSSVZBVEUKKyAgICAgICAgICAgICAke1RCQl9MSUJfTElOS19GTEFHU30K KyAgICAgICAgICAgICAke1RCQl9DT01NT05fTElOS19GTEFHU30KKy0gICAgICAgICAgICAke0hX TE9DX0xJQlJBUllfRElSU30gIyBwa2ctY29uZmlnIGRlZmluZWQKKyAgICAgICAgICkKKyAgICAg ZW5kaWYoKQorIAorZGlmZiAtLWdpdCBhL3Rlc3QvQ01ha2VMaXN0cy50eHQgYi90ZXN0L0NNYWtl TGlzdHMudHh0CitpbmRleCBiNzY4NzU5ZDUuLjNlYjgzNTdlNiAxMDA2NDQKKy0tLSBhL3Rlc3Qv Q01ha2VMaXN0cy50eHQKKysrKyBiL3Rlc3QvQ01ha2VMaXN0cy50eHQKK0BAIC0yNTgsNyArMjU4 LDEyIEBAIGZ1bmN0aW9uKHRiYl9hZGRfdGJiYmluZF90ZXN0KQorICAgICAgICAgKQorICAgICAg ICAgc2V0X3Byb3BlcnR5KAorICAgICAgICAgICAgIFRBUkdFVCAke190YmJiaW5kX3Rlc3RfTkFN RX0KKy0gICAgICAgICAgICBQUk9QRVJUWSBMSU5LX0xJQlJBUklFUyAke0hXTE9DX0xJQlJBUllf RElSU30gJHtIV0xPQ19MSUJSQVJJRVN9CisrICAgICAgICAgICAgUFJPUEVSVFkgTElOS19MSUJS QVJJRVMgJHtIV0xPQ19MSUJSQVJJRVN9CisrICAgICAgICAgICAgQVBQRU5ECisrICAgICAgICAp CisrICAgICAgICBzZXRfcHJvcGVydHkoCisrICAgICAgICAgICAgVEFSR0VUICR7X3RiYmJpbmRf dGVzdF9OQU1FfQorKwkJCVBST1BFUlRZIExJTktfRElSRUNUT1JJRVMgJHtIV0xPQ19MSUJSQVJZ X0RJUlN9CisgICAgICAgICAgICAgQVBQRU5ECisgICAgICAgICApCisgICAgICAgICBzZXRfcHJv cGVydHkoCmRpZmYgLS1naXQgYS9zcmNwa2dzL3RiYi9wYXRjaGVzL2hvc3RuYW1lLXVzYWdlLnBh dGNoIGIvc3JjcGtncy90YmIvcGF0Y2hlcy9ob3N0bmFtZS11c2FnZS5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggNGFlZmVmZjE5MmI1Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy90YmIvcGF0Y2hlcy9ob3N0bmFtZS11c2FnZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDExICswLDAgQEAKLS0tLSBhL2J1aWxkL3ZlcnNpb25faW5mb19saW51eC5zaAotKysrIGIvYnVp bGQvdmVyc2lvbl9pbmZvX2xpbnV4LnNoCi1AQCAtMjAsNyArMjAsNyBAQAotIAotICMgU2NyaXB0 IHVzZWQgdG8gZ2VuZXJhdGUgdmVyc2lvbiBpbmZvIHN0cmluZwotIGVjaG8gIiNkZWZpbmUgX19U QkJfVkVSU0lPTl9TVFJJTkdTKE4pIFxcIgotLWVjaG8gJyNOIjogQlVJTERfSE9TVCciXHRcdCJg aG9zdG5hbWUgLXNgIiAoImB1bmFtZSAtbWAiKSInIiBFTkRMIFwnCi0rZWNobyAnI04iOiBCVUlM RF9IT1NUJyJcdFx0ImBob3N0bmFtZWAiICgiYHVuYW1lIC1tYCIpIiciIEVOREwgXCcKLSAjIGZp bmQgT1MgbmFtZSBpbiAqLXJlbGVhc2UgYW5kIGlzc3VlKiBmaWxlcyBieSBmaWx0ZXJpbmcgYmxh bmsgbGluZXMgYW5kIGxzYi1yZWxlYXNlIGNvbnRlbnQgb3V0Ci0gZWNobyAnI04iOiBCVUlMRF9P UyciXHRcdCJgbHNiX3JlbGVhc2UgLXNkIDI+L2Rldi9udWxsIHwgZ3JlcCAtaWggJ1thLXpdICcg LSAvZXRjLypyZWxlYXNlIC9ldGMvaXNzdWUgMj4vZGV2L251bGwgfCBoZWFkIC0xIHwgc2VkIC1l ICdzL1siXFxcXF0vL2cnYCciIEVOREwgXCcKLSBlY2hvICcjTiI6IEJVSUxEX0tFUk5FTCciXHQi YHVuYW1lIC1zcnZgJyIgRU5ETCBcJwpkaWZmIC0tZ2l0IGEvc3JjcGtncy90YmIvcGF0Y2hlcy9t dXNsLnBhdGNoIGIvc3JjcGtncy90YmIvcGF0Y2hlcy9tdXNsLnBhdGNoCmluZGV4IGE4ODY3ZWI1 Mzc5My4uZWM4OWM2YTk1ZmM2IDEwMDY0NAotLS0gYS9zcmNwa2dzL3RiYi9wYXRjaGVzL211c2wu cGF0Y2gKKysrIGIvc3JjcGtncy90YmIvcGF0Y2hlcy9tdXNsLnBhdGNoCkBAIC0xLDUgKzEsNSBA QAotLS0tIGEvc3JjL3RiYm1hbGxvYy9wcm94eS5jcHAJMjAxOC0xMC0xNyAxNDowNTozMS4zMTE3 MjMwMTMgKzAyMDAKLSsrKyBiL3NyYy90YmJtYWxsb2MvcHJveHkuY3BwCTIwMTgtMTAtMTcgMTQ6 MDY6MzIuOTcyNzI2MTk0ICswMjAwCistLS0gYS9zcmMvdGJibWFsbG9jX3Byb3h5L3Byb3h5LmNw cAkyMDE4LTEwLTE3IDE0OjA1OjMxLjMxMTcyMzAxMyArMDIwMAorKysrIGIvc3JjL3RiYm1hbGxv Y19wcm94eS9wcm94eS5jcHAJMjAxOC0xMC0xNyAxNDowNjozMi45NzI3MjYxOTQgKzAyMDAKIEBA IC0yOCw2ICsyOCw3IEBACiAgLy8gb2YgYWxpZ25lZF9hbGxvYyBhcyByZXF1aXJlZCBieSBuZXcg QysrIHN0YW5kYXJkLCB0aGlzIG1ha2VzIGl0IGhhcmQgdG8KICAvLyByZWRlZmluZSBhbGlnbmVk X2FsbG9jIGhlcmUuIEhvd2V2ZXIsIHJ1bm5pbmcgb24gc3lzdGVtcyB3aXRoIG5ldyBsaWJjCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3RiYi90ZW1wbGF0ZSBiL3NyY3BrZ3MvdGJiL3RlbXBsYXRlCmlu ZGV4IGFlZWY2ZWJkZDA2MS4uNDc2NTU4MjlmNzQ0IDEwMDY0NAotLS0gYS9zcmNwa2dzL3RiYi90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3RiYi90ZW1wbGF0ZQpAQCAtMSw3NiArMSwzMyBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAndGJiJwogcGtnbmFtZT10YmIKLXZlcnNpb249MjAyMC5VMwordmVy c2lvbj0yMDIxLjMuMAogcmV2aXNpb249MQotIyB2ZXJzaW9uIHJld3JpdGU6IDIwMTdfVTcgKHVw c3RyZWFtKSA9PiAyMDE3LjcgKHhicHMpCi1fdmVyPSR7dmVyc2lvbi8uL199Ci13cmtzcmM9Im9u ZVRCQi0ke192ZXJ9IgotYnVpbGRfc3R5bGU9Z251LW1ha2VmaWxlCi1ob3N0bWFrZWRlcGVuZHM9 ImNtYWtlIgord3Jrc3JjPSJvbmVUQkItJHt2ZXJzaW9ufSIKK2J1aWxkX3N0eWxlPWNtYWtlCitt YWtlZGVwZW5kcz0ibGliaHdsb2MtZGV2ZWwgbGliZ29tcC1kZXZlbCIKIHNob3J0X2Rlc2M9Iklu dGVsIFRocmVhZGluZyBCdWlsZGluZyBCbG9ja3MiCiBtYWludGFpbmVyPSJBbmRyZWEgQnJhbmNh bGVvbmkgPGFiY0Bwb21wZWwubWU+IgogbGljZW5zZT0iQXBhY2hlLTIuMCIKIGhvbWVwYWdlPSJo dHRwczovL3d3dy50aHJlYWRpbmdidWlsZGluZ2Jsb2Nrcy5vcmciCi1kaXN0ZmlsZXM9Imh0dHBz Oi8vZ2l0aHViLmNvbS9vbmVhcGktc3JjL29uZVRCQi9hcmNoaXZlLyR7X3Zlcn0udGFyLmd6Igot Y2hlY2tzdW09MjEwM2NjNjIzOGM5MzU2NjRmODc2ODA2MThmNjY4NGQ1NzUwMWQ0YTJmYThlYThm NmM5N2FkNmZmN2RjNzIyYQotCi1jYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KLQl4ODZf NjQqKQotCQltYWtlX2J1aWxkX2FyZ3M9ImFyY2g9aW50ZWw2NCIKLQkJOzsKLQlpNjg2KikKLQkJ bWFrZV9idWlsZF9hcmdzPSJhcmNoPWlhMzIiCi0JCTs7Ci0JYXJtdjdsKikKLQkJbWFrZV9idWls ZF9hcmdzPSJhcmNoPWFybXY3IgotCQk7OwotCWFhcmNoNjQqKQotCQltYWtlX2J1aWxkX2FyZ3M9 ImFyY2g9YXJtNjQiCi0JCTs7Ci0JcHBjNjQqKQotCQltYWtlX2J1aWxkX2FyZ3M9ImFyY2g9cHBj NjQiCi0JCTs7Ci0JcHBjKikKLQkJbWFrZV9idWlsZF9hcmdzPSJhcmNoPXBwYzMyIgotCQk7Owot CSopCi0JCSMgbWFrZSBzdXJlIHRvIGZhbGwgYmFjayBpbnN0ZWFkIG9mIGxldHRpbmcgaG9zdCB1 bmFtZSBjb250cm9sIGl0Ci0JCW1ha2VfYnVpbGRfYXJncz0iYXJjaD1nZW5lcmljIgotCQk7Owot ZXNhYwotCi1wb3N0X2V4dHJhY3QoKSB7Ci0Jc2VkIC1pICdzfENQTFVTID0gZy4ufENQTFVTID0g JChDWFgpfGcnIGJ1aWxkL2xpbnV4LmdjYy5pbmMKLQlzZWQgLWkgJ3N8Q09OTFkgPSBnY2N8Q09O TFkgPSAkKENDKXxnJyBidWlsZC9saW51eC5nY2MuaW5jCitkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0 aHViLmNvbS9vbmVhcGktc3JjL29uZVRCQi9hcmNoaXZlL3Yke3ZlcnNpb259LnRhci5neiIKK2No ZWNrc3VtPThmNjE2NTYxNjAzNjk1YmJiODM4NzE4NzVkMmM2MDUxZWEyOGY4MTg3ZGJlNTkyOTk5 NjEzNjk5MDRkMWQ0OWUKIAorcHJlX3BhdGNoKCkgewogCSMgYWx0ZXJuYXRpdmUgbWlnaHQgYmU6 CiAJIyBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvY2dpdC9hcG9ydHMvdHJlZS90ZXN0aW5n L2xpYnRiYi9nbGliYy1zdHJ1Y3QtbWFsbGluZm8ucGF0Y2gKIAlpZiBbICIkWEJQU19UQVJHRVRf TElCQyIgPSAibXVzbCIgXTsgdGhlbgogCQl2c2VkIC1lICJzQCNkZWZpbmUgTUFMTE9DX1VOSVhM SUtFX09WRVJMT0FEX0VOQUJMRUQgX19saW51eF9fQEAiIFwKLQkJICAtaSBzcmMvdGJibWFsbG9j L3Byb3h5LmgKKwkJICAtaSBzcmMvdGJibWFsbG9jX3Byb3h5L3Byb3h5LmgKIAlmaQogfQogCi1k b19pbnN0YWxsKCkgewotCXZta2RpciB1c3IvbGliCi0JdmNvcHkgYnVpbGQvbGludXhfKi8qLnNv KiB1c3IvbGliCi0Jdm1rZGlyIHVzci9pbmNsdWRlL3RiYgotCXZjb3B5IGluY2x1ZGUvdGJiLyog dXNyL2luY2x1ZGUvdGJiCi0KLQljbWFrZSBcCi0JCS1ESU5TVEFMTF9ESVI9JERFU1RESVIvdXNy L2xpYi9jbWFrZS9UQkIgXAotCQktRFNZU1RFTV9OQU1FPUxpbnV4IFwKLQkJLURMSUJfUkVMX1BB VEg9Li4vLi4gXAotCQktRElOQ19SRUxfUEFUSD0uLi8uLi8uLi9pbmNsdWRlIFwKLQkJLVAgY21h a2UvdGJiX2NvbmZpZ19pbnN0YWxsZXIuY21ha2UKLX0KLQogdGJiLWRldmVsX3BhY2thZ2UoKSB7 CiAJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgogCXNob3J0 X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUg dXNyL2luY2x1ZGUKLQkJdm1vdmUgInVzci9saWIvKi5zbyIKIAkJdm1vdmUgdXNyL2xpYi9jbWFr ZQorCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZworCQl2bW92ZSB1c3IvbGliLyouc28KIAl9CiB9 CgpGcm9tIGQzYzQxZDI0YjViNmJmMzBiYWNjYjAyMDkxMzIzYzk2ODFkZGZjYjIgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEFydHVyIFNpbmlsYSA8ZnJlZXNvZnR3YXJlQGxvZ2FyaXRo bXVzLmRldj4KRGF0ZTogU3VuLCAxOCBKdWwgMjAyMSAxODoyOTozOCArMDMwMApTdWJqZWN0OiBb UEFUQ0ggMDMvMTFdIE9wZW5TdWJkaXY6IHVwZGF0ZSB0byAzLjQuNC4KCi0tLQogc3JjcGtncy9P cGVuU3ViZGl2L3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvT3BlblN1YmRpdi90ZW1w bGF0ZSBiL3NyY3BrZ3MvT3BlblN1YmRpdi90ZW1wbGF0ZQppbmRleCBiN2E1ZTE2ZWZiY2YuLmRm YmYyOWNjMWE1MiAxMDA2NDQKLS0tIGEvc3JjcGtncy9PcGVuU3ViZGl2L3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvT3BlblN1YmRpdi90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ09wZW5TdWJkaXYnCiBwa2duYW1lPU9wZW5TdWJkaXYKLXZlcnNpb249My40LjMK K3ZlcnNpb249My40LjQKIHJldmlzaW9uPTEKIHdya3NyYz0iT3BlblN1YmRpdi0ke3ZlcnNpb24v Ly4vX30iCiBidWlsZF9zdHlsZT1jbWFrZQpAQCAtMTMsNyArMTMsNyBAQCBtYWludGFpbmVyPSJK b2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iQXBhY2hlLTIuMCIKIGhvbWVwYWdl PSJodHRwOi8vZ3JhcGhpY3MucGl4YXIuY29tL29wZW5zdWJkaXYvZG9jcy9pbnRyby5odG1sIgog ZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vUGl4YXJBbmltYXRpb25TdHVkaW9zL09wZW5T dWJkaXYvYXJjaGl2ZS92JHt2ZXJzaW9uLy8uL199LnRhci5neiIKLWNoZWNrc3VtPTdiMjJlYjI3 ZDYzNmFiMGMxZTAzNzIyYzdhNWE1YmQ0ZjExNjY0ZWU2NWM5YjQ4ZjM0MWE2ZDBjZTdmMzY3NDUK K2NoZWNrc3VtPTIwZDQ5ZjgwYTJiNzc4YWQ0ZDAxZjA5MWFkODhkOGMyZjkxY2Y2YzczNjM5NDBj NjIxMzI0MWNlNmYxMDQ4ZmIKIAogaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJaG9zdG1h a2VkZXBlbmRzKz0iIE9wZW5TdWJkaXYiCgpGcm9tIGY5MWMyYzJjYTg5ZjM3OTFlYmQ2MzRmMTQw MTdiNzhhYWZiZTY2Y2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFydHVyIFNpbmls YSA8ZnJlZXNvZnR3YXJlQGxvZ2FyaXRobXVzLmRldj4KRGF0ZTogU3VuLCAxOCBKdWwgMjAyMSAx ODoyOTozOCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMTFdIFBydXNhU2xpY2VyOiB1cGRhdGUg dG8gMi4zLjMuCgotLS0KIHNyY3BrZ3MvUHJ1c2FTbGljZXIvcGF0Y2hlcy9jcm9zcy5wYXRjaCB8 IDExIC0tLS0tLS0tLS0tCiBzcmNwa2dzL1BydXNhU2xpY2VyL3RlbXBsYXRlICAgICAgICAgICAg fCAgNCArKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25z KC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9QcnVzYVNsaWNlci9wYXRjaGVzL2Nyb3Nz LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9QcnVzYVNsaWNlci9wYXRjaGVzL2Nyb3NzLnBh dGNoIGIvc3JjcGtncy9QcnVzYVNsaWNlci9wYXRjaGVzL2Nyb3NzLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCBkNjRhNDUwZDllOWYuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNw a2dzL1BydXNhU2xpY2VyL3BhdGNoZXMvY3Jvc3MucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwx MSArMCwwIEBACi0tLS0gYS9zcmMvYXZyZHVkZS9DTWFrZUxpc3RzLnR4dAkyMDIwLTA2LTA0IDA5 OjE5OjI2LjAxNzI1MTIxNSArMDIwMAotKysrIGIvc3JjL2F2cmR1ZGUvQ01ha2VMaXN0cy50eHQJ MjAyMC0wNi0wNCAwOToxOTozNi40NjgyNTA3NzEgKzAyMDAKLUBAIC04Myw3ICs4Myw3IEBAIGFk ZF9leGVjdXRhYmxlKGF2cmR1ZGUtY29uZi1nZW4gY29uZi1nZW4KLSBhZGRfY3VzdG9tX2NvbW1h bmQoCi0gICAgIERFUEVORFMgYXZyZHVkZS1jb25mLWdlbiAke0NNQUtFX0NVUlJFTlRfU09VUkNF X0RJUn0vYXZyZHVkZS1zbGljM3IuY29uZgotICAgICBPVVRQVVQgJHtDTUFLRV9DVVJSRU5UX0JJ TkFSWV9ESVJ9L2F2cmR1ZGUtc2xpYzNyLmNvbmYuaAotLSAgICBDT01NQU5EICQ8VEFSR0VUX0ZJ TEU6YXZyZHVkZS1jb25mLWdlbj4gYXZyZHVkZS1zbGljM3IuY29uZiBhdnJkdWRlX3NsaWMzcl9j b25mICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9hdnJkdWRlLXNsaWMzci5jb25mLmgKLSsg ICAgQ09NTUFORCBhdnJkdWRlLWNvbmYtZ2VuIGF2cmR1ZGUtc2xpYzNyLmNvbmYgYXZyZHVkZV9z bGljM3JfY29uZiAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vYXZyZHVkZS1zbGljM3IuY29u Zi5oCi0gICAgIFdPUktJTkdfRElSRUNUT1JZICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfQot ICkKLSAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvUHJ1c2FTbGljZXIvdGVtcGxhdGUgYi9zcmNwa2dz L1BydXNhU2xpY2VyL3RlbXBsYXRlCmluZGV4IGRkMGU3NmNiODAxNy4uYTkzODMyYWMwMmU0IDEw MDY0NAotLS0gYS9zcmNwa2dzL1BydXNhU2xpY2VyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvUHJ1 c2FTbGljZXIvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdQ cnVzYVNsaWNlcicKIHBrZ25hbWU9UHJ1c2FTbGljZXIKLXZlcnNpb249Mi4zLjAKK3ZlcnNpb249 Mi4zLjMKIHJldmlzaW9uPTEKIHdya3NyYz0iUHJ1c2FTbGljZXItdmVyc2lvbl8ke3ZlcnNpb259 IgogYnVpbGRfc3R5bGU9Y21ha2UKQEAgLTE2LDcgKzE2LDcgQEAgbWFpbnRhaW5lcj0iSmFzcGVy IENoYW4gPGphc3BlcmNoYW41MTVAZ21haWwuY29tPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0 ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93d3cucHJ1c2EzZC5jb20vcHJ1c2FzbGljZXIvIgogZGlz dGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vcHJ1c2EzZC9QcnVzYXNsaWNlci9hcmNoaXZlL3Zl cnNpb25fJHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT1jZDNiYWM1ZTI5YjU0NDFmYzQ2OTBm MjhjZDdiMTA2NGU5N2RjMDAyMDdiYmRjODhmN2JkNzgzMjMwOGQ2Y2E1CitjaGVja3N1bT1kZWRh MjA5NTA1Zjc0MGFjM2Q2ZjU5Y2IyYTk2MGY0ZGY5MDgyNjllZTA5YmQzMGNkNGVkYjlmYzQ3MmQy OWFjCiBub2Nyb3NzPSJodHRwczovL2J1aWxkLnZvaWRsaW51eC5vcmcvYnVpbGRlcnMvYXJtdjds X2J1aWxkZXIvYnVpbGRzLzI1MjMwL3N0ZXBzL3NoZWxsXzMvbG9ncy9zdGRpbyIKIAogU2xpYzNy UEVfcGFja2FnZSgpIHsKCkZyb20gNTlkNzZlZjJiMDI0NTIxNjMwMTI4M2JjM2VlMzkzODUwOThk MzdiMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXJ0dXIgU2luaWxhIDxmcmVlc29m dHdhcmVAbG9nYXJpdGhtdXMuZGV2PgpEYXRlOiBTdW4sIDE4IEp1bCAyMDIxIDE4OjI5OjM5ICsw MzAwClN1YmplY3Q6IFtQQVRDSCAwNS8xMV0gYmxlbmRlcjogdXBkYXRlIHRvIDIuOTMuMS4KCi0t LQogc3JjcGtncy9ibGVuZGVyL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5z ZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ibGVuZGVyL3Rl bXBsYXRlIGIvc3JjcGtncy9ibGVuZGVyL3RlbXBsYXRlCmluZGV4IGFmOTQ2YzJiNzk5OS4uODMx ODMxN2M4MmJmIDEwMDY0NAotLS0gYS9zcmNwa2dzL2JsZW5kZXIvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9ibGVuZGVyL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZv ciAnYmxlbmRlcicKIHBrZ25hbWU9YmxlbmRlcgotdmVyc2lvbj0yLjkzLjAKK3ZlcnNpb249Mi45 My4xCiByZXZpc2lvbj0xCiBhcmNocz0ieDg2XzY0KiBwcGM2NCoiCiBidWlsZF9zdHlsZT0iY21h a2UiCgpGcm9tIGEzYTc4YWZmYTYzMDU4NDNhOTRhYjU1NDI4MTRiOGQwNDQ4NzQxM2IgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFydHVyIFNpbmlsYSA8ZnJlZXNvZnR3YXJlQGxvZ2Fy aXRobXVzLmRldj4KRGF0ZTogU3VuLCAxOCBKdWwgMjAyMSAxODoyOTozOSArMDMwMApTdWJqZWN0 OiBbUEFUQ0ggMDYvMTFdIGVtYnJlZTogdXBkYXRlIHRvIDMuMTMuMC4KCi0tLQogc3JjcGtncy9l bWJyZWUvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygr KSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VtYnJlZS90ZW1wbGF0ZSBi L3NyY3BrZ3MvZW1icmVlL3RlbXBsYXRlCmluZGV4IDU3NWI5YmNiNDAxYy4uYjZmMzc2ZDMwZWZh IDEwMDY0NAotLS0gYS9zcmNwa2dzL2VtYnJlZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2VtYnJl ZS90ZW1wbGF0ZQpAQCAtMSw4ICsxLDggQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2VtYnJlZScK IHBrZ25hbWU9ZW1icmVlCi12ZXJzaW9uPTIuMTcuNwotcmV2aXNpb249MgotYXJjaHM9Ing4Nl82 NCIKK3ZlcnNpb249My4xMy4wCityZXZpc2lvbj0xCithcmNocz0ieDg2XzY0KiIKIGJ1aWxkX3N0 eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURUQkJfUk9PVD0vdXNyIC1ERU1CUkVFX0lHTk9S RV9DTUFLRV9DWFhfRkxBR1M9T0ZGIgogaG9zdG1ha2VkZXBlbmRzPSJpc3BjIgoKRnJvbSAwOWQw ZWZlZDhmMTA3MTI3YzRhZWNjODY5ZTg0NGRjZTQwYjQ4MjdkIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBBcnR1ciBTaW5pbGEgPGZyZWVzb2Z0d2FyZUBsb2dhcml0aG11cy5kZXY+CkRh dGU6IFNhdCwgMjQgSnVsIDIwMjEgMDM6MzQ6NDMgKzAzMDAKU3ViamVjdDogW1BBVENIIDA3LzEx XSBvcGVuaW1hZ2VpbzogdXBkYXRlIHRvIDIuMi4xNi4wLgoKLS0tCiBzcmNwa2dzL29wZW5pbWFn ZWlvL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyks IDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuaW1hZ2Vpby90ZW1wbGF0 ZSBiL3NyY3BrZ3Mvb3BlbmltYWdlaW8vdGVtcGxhdGUKaW5kZXggZGU4ZTFjZDA0NDA5Li4zYmZk ZDRlMGVkMWUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvb3BlbmltYWdlaW8vdGVtcGxhdGUKKysrIGIv c3JjcGtncy9vcGVuaW1hZ2Vpby90ZW1wbGF0ZQpAQCAtMSwxMSArMSwxMSBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnb3BlbmltYWdlaW8nCiBwa2duYW1lPW9wZW5pbWFnZWlvCi12ZXJzaW9uPTIu Mi4xNS4xCit2ZXJzaW9uPTIuMi4xNi4wCiByZXZpc2lvbj0xCiB3cmtzcmM9Im9paW8tUmVsZWFz ZS0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItRFVTRV9P UEVOR0w9MCAtRFVTRV9RVD0wIC1EVVNFX1BZVEhPTj0wIC1ET0lJT19CVUlMRF9URVNUUz0xCi0g LURTVE9QX09OX1dBUk5JTkc9MCAtRFVTRV9TVERfUkVHRVhfRVhJVENPREU9MCIKKyAtRFNUT1Bf T05fV0FSTklORz0wIC1EVVNFX1NURF9SRUdFWF9FWElUQ09ERT0wIC1EQ01BS0VfQ1hYX1NUQU5E QVJEPTE0IgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGdpdCIKIG1ha2VkZXBlbmRzPSJi b29zdC1kZXZlbCBnaWZsaWItZGV2ZWwgbGlicmF3LWRldmVsIGxpYm9wZW5qcGVnLWRldmVsIGxp YndlYnAtZGV2ZWwKICBsaWJqcGVnLXR1cmJvLWRldmVsIHRpZmYtZGV2ZWwgbGlicG5nLWRldmVs IGxpYm9wZW5leHItZGV2ZWwgZnJlZXR5cGUtZGV2ZWwKQEAgLTE3LDcgKzE3LDcgQEAgbGljZW5z ZT0iQlNELTMtQ2xhdXNlIgogaG9tZXBhZ2U9Imh0dHBzOi8vc2l0ZXMuZ29vZ2xlLmNvbS9zaXRl L29wZW5pbWFnZWlvL2hvbWUiCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250 ZW50LmNvbS9PcGVuSW1hZ2VJTy9vaWlvL3JlbGVhc2UvQ0hBTkdFUy5tZCIKIGRpc3RmaWxlcz0i aHR0cHM6Ly9naXRodWIuY29tL09wZW5JbWFnZUlPL29paW8vYXJjaGl2ZS9SZWxlYXNlLSR7dmVy c2lvbn0udGFyLmd6IgotY2hlY2tzdW09ZjIyMmM2YjUxYTQwYWFiYmM4MGRkZjQwNTU1MzViZTlh ZjFmZmE5MDc0NTJmYTZkMWZmYTc2NzQ4NTRhYWIxNworY2hlY2tzdW09ZDFhNTlmMzJkYmJhM2Jh NzFhZDJlNjJlMTA3MDM0ZDFjNTI4N2JjYTFiMDY5NjQ3NGU5MjdkNTA0Y2QwNWVmNAogIyBSdW5z IGNoZWNrcyBldmVuIGZvciBmZWF0dXJlcyB3ZSBkaXNhYmxlZC4KIG1ha2VfY2hlY2s9bm8KIAoK RnJvbSAxZDkyNDJmYjgwYjViNTM5NTNiMWU1OGI5NjhiNjc0NjE1ZWFlZWM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBcnR1ciBTaW5pbGEgPGZyZWVzb2Z0d2FyZUBsb2dhcml0aG11 cy5kZXY+CkRhdGU6IFN1biwgMTggSnVsIDIwMjEgMTg6Mjk6NDAgKzAzMDAKU3ViamVjdDogW1BB VENIIDA4LzExXSBvcGVuaW1hZ2VkZW5vaXNlOiB1cGRhdGUgdG8gMS40LjEuCgotLS0KIHNyY3Br Z3Mvb3BlbmltYWdlZGVub2lzZS90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmltYWdl ZGVub2lzZS90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbmltYWdlZGVub2lzZS90ZW1wbGF0ZQppbmRl eCBjNzM5MTNiNGU5ZDcuLjE0MDU1YWZmMWMyNyAxMDA2NDQKLS0tIGEvc3JjcGtncy9vcGVuaW1h Z2VkZW5vaXNlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvb3BlbmltYWdlZGVub2lzZS90ZW1wbGF0 ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ29wZW5pbWFnZWRlbm9pc2Un CiBwa2duYW1lPW9wZW5pbWFnZWRlbm9pc2UKLXZlcnNpb249MS40LjAKK3ZlcnNpb249MS40LjEK IHJldmlzaW9uPTEKIGFyY2hzPSJ4ODZfNjQqIgogd3Jrc3JjPW9pZG4tJHt2ZXJzaW9ufQoKRnJv bSAxZmE1MGY3MzE0YTk1ZWNkNWRiNDIzN2YwMjc2NDYwMTdlNTVlMDFmIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBBcnR1ciBTaW5pbGEgPGZyZWVzb2Z0d2FyZUBsb2dhcml0aG11cy5k ZXY+CkRhdGU6IFN1biwgMTggSnVsIDIwMjEgMTg6Mjk6NDAgKzAzMDAKU3ViamVjdDogW1BBVENI IDA5LzExXSBvcGVudmRiOiB1cGRhdGUgdG8gOC4xLjAuCgotLS0KIGNvbW1vbi9zaGxpYnMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArLQogc3JjcGtncy9vcGVudmRiL3BhdGNo ZXMvMDAtdGJiLTIwMjEucGF0Y2ggfCAxMzIwICsrKysrKysrKysrKysrKysrKysrKwogc3JjcGtn cy9vcGVudmRiL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgfCAgIDE2ICstCiAzIGZpbGVzIGNo YW5nZWQsIDEzMjUgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9vcGVudmRiL3BhdGNoZXMvMDAtdGJiLTIwMjEucGF0Y2gKCmRpZmYgLS1n aXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCA2YjdjYTVmYmMyNDkuLjJh N2FjZGIyNTNhNyAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJz CkBAIC0zODgzLDcgKzM4ODMsNyBAQCBsaWJqYW5ldC5zby4xLjE2IGphbmV0LTEuMTYuMF8xCiBs aWJPcGVuSW1hZ2VEZW5vaXNlLnNvLjEgb3BlbmltYWdlZGVub2lzZS0xLjMuMF8xCiBsaWJjYmFu ZzAuc28gY2JhbmctMS42LjBfMwogbGliYmxvc2Muc28uMSBjLWJsb3NjLTEuMTcuMV8xCi1saWJv cGVudmRiLnNvLjcuMCBvcGVudmRiLTcuMC4wXzEKK2xpYm9wZW52ZGIuc28uOC4xIG9wZW52ZGIt OC4xLjBfMQogbGliQWxlbWJpYy5zby4xLjcgYWxlbWJpYy0xLjcuMTNfMQogbGlibW9kc2VjdXJp dHkuc28uMyBtb2RzZWN1cml0eS0zLjAuNF8xCiBsaWJyYXZlbi5zby4wIGJ1ZGdpZS1kZXNrdG9w LTEwLjUuMV8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW52ZGIvcGF0Y2hlcy8wMC10YmItMjAy MS5wYXRjaCBiL3NyY3BrZ3Mvb3BlbnZkYi9wYXRjaGVzLzAwLXRiYi0yMDIxLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMjcxMTA0YWYzZGY5Ci0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9vcGVudmRiL3BhdGNoZXMvMDAtdGJiLTIwMjEucGF0Y2gKQEAg LTAsMCArMSwxMzIwIEBACitodHRwczovL2dpdGh1Yi5jb20vQWNhZGVteVNvZnR3YXJlRm91bmRh dGlvbi9vcGVudmRiL3B1bGwvMTAyNworU2hvdWxkIGJlIGRyb3BwZWQgYWZ0ZXIgOC4xLjEgcmVs ZWFzZS4KKworZGlmZiAtLWdpdCBhL2NtYWtlL0ZpbmRUQkIuY21ha2UgYi9jbWFrZS9GaW5kVEJC LmNtYWtlCitpbmRleCBkNDE0MzZiMWMuLjA2ZGUyYjNmMyAxMDA2NDQKKy0tLSBhL2NtYWtlL0Zp bmRUQkIuY21ha2UKKysrKyBiL2NtYWtlL0ZpbmRUQkIuY21ha2UKK0BAIC0xNjksOCArMTY5LDIy IEBAIGZpbmRfcGF0aChUYmJfSU5DTFVERV9ESVIgdGJiL3RiYl9zdGRkZWYuaAorICAgUEFUSF9T VUZGSVhFUyAke0NNQUtFX0lOU1RBTExfSU5DTFVERURJUn0gaW5jbHVkZQorICkKKyAKKy1pZihF WElTVFMgIiR7VGJiX0lOQ0xVREVfRElSfS90YmIvdGJiX3N0ZGRlZi5oIikKKy0gIGZpbGUoU1RS SU5HUyAiJHtUYmJfSU5DTFVERV9ESVJ9L3RiYi90YmJfc3RkZGVmLmgiCisrc2V0KF90YmJfdmVy c2lvbl9maWxlICIke1RiYl9JTkNMVURFX0RJUn0vdGJiL3RiYl9zdGRkZWYuaCIpCisrCisraWYo Tk9UIEVYSVNUUyAke190YmJfdmVyc2lvbl9maWxlfSkKKysgICMgRnJvbSBUQkIgMjAyMSwgdGJi X3N0ZGRlZiBpcyByZW1vdmVkIGFuZCB0aGUgZGlyZWN0b3J5IGluY2x1ZGUvdGJiIGlzCisrICAj IHNpbXBseSBhbiBhbGlhcyBmb3IgaW5jbHVkZS9vbmVhcGkvdGJiLiBUcnkgYW5kIGZpbmQgdGhl IHZlcnNpb24gaGVhZGVyCisrICAjIGluIG9uZWFwaS90YmIKKysgIGZpbmRfcGF0aChUYmJfSU5D TFVERV9ESVIgb25lYXBpL3RiYi92ZXJzaW9uLmgKKysgICAgJHtfRklORF9UQkJfQURESVRJT05B TF9PUFRJT05TfQorKyAgICBQQVRIUyAke19UQkJfSU5DTFVERV9TRUFSQ0hfRElSU30KKysgICAg UEFUSF9TVUZGSVhFUyAke0NNQUtFX0lOU1RBTExfSU5DTFVERURJUn0gaW5jbHVkZQorKyAgKQor KyAgc2V0KF90YmJfdmVyc2lvbl9maWxlICIke1RiYl9JTkNMVURFX0RJUn0vb25lYXBpL3RiYi92 ZXJzaW9uLmgiKQorK2VuZGlmKCkKKysKKytpZihFWElTVFMgJHtfdGJiX3ZlcnNpb25fZmlsZX0p CisrICBmaWxlKFNUUklOR1MgJHtfdGJiX3ZlcnNpb25fZmlsZX0KKyAgICAgX3RiYl92ZXJzaW9u X21ham9yX3N0cmluZyBSRUdFWCAiI2RlZmluZSBUQkJfVkVSU0lPTl9NQUpPUiAiCisgICApCisg ICBzdHJpbmcoUkVHRVggUkVQTEFDRSAiI2RlZmluZSBUQkJfVkVSU0lPTl9NQUpPUiIgIiIKK0BA IC0xNzgsNyArMTkyLDcgQEAgaWYoRVhJU1RTICIke1RiYl9JTkNMVURFX0RJUn0vdGJiL3RiYl9z dGRkZWYuaCIpCisgICApCisgICBzdHJpbmcoU1RSSVAgIiR7X3RiYl92ZXJzaW9uX21ham9yX3N0 cmluZ30iIFRiYl9WRVJTSU9OX01BSk9SKQorIAorLSAgZmlsZShTVFJJTkdTICIke1RiYl9JTkNM VURFX0RJUn0vdGJiL3RiYl9zdGRkZWYuaCIKKysgIGZpbGUoU1RSSU5HUyAke190YmJfdmVyc2lv bl9maWxlfQorICAgICAgX3RiYl92ZXJzaW9uX21pbm9yX3N0cmluZyBSRUdFWCAiI2RlZmluZSBU QkJfVkVSU0lPTl9NSU5PUiAiCisgICApCisgICBzdHJpbmcoUkVHRVggUkVQTEFDRSAiI2RlZmlu ZSBUQkJfVkVSU0lPTl9NSU5PUiIgIiIKK0BAIC0xOTIsNiArMjA2LDggQEAgaWYoRVhJU1RTICIk e1RiYl9JTkNMVURFX0RJUn0vdGJiL3RiYl9zdGRkZWYuaCIpCisgICBzZXQoVGJiX1ZFUlNJT04g JHtUYmJfVkVSU0lPTl9NQUpPUn0uJHtUYmJfVkVSU0lPTl9NSU5PUn0pCisgZW5kaWYoKQorIAor K3Vuc2V0KF90YmJfdmVyc2lvbl9maWxlKQorKworICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIyAgU2Vh cmNoIGZvciBUQkIgbGliIERJUgorICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitkaWZmIC0tZ2l0IGEvb3Bl bnZkYi9vcGVudmRiL0NNYWtlTGlzdHMudHh0IGIvb3BlbnZkYi9vcGVudmRiL0NNYWtlTGlzdHMu dHh0CitpbmRleCA4ODU0M2RmM2EuLjkyOWZlOTRkMSAxMDA2NDQKKy0tLSBhL29wZW52ZGIvb3Bl bnZkYi9DTWFrZUxpc3RzLnR4dAorKysrIGIvb3BlbnZkYi9vcGVudmRiL0NNYWtlTGlzdHMudHh0 CitAQCAtNDM3LDYgKzQzNywxMCBAQCBzZXQoT1BFTlZEQl9MSUJSQVJZX1VUSUxfSU5DTFVERV9G SUxFUworICAgdXRpbC9VdGlsLmgKKyApCisgCisrc2V0KE9QRU5WREJfTElCUkFSWV9USFJFQURf SU5DTFVERV9GSUxFUworKyAgdGhyZWFkL1RocmVhZGluZy5oCisrKQorKworICMgQHRvZG8gQ01h a2UgPj0gMy4xMiwgdXNlIGFuIG9iamVjdCBsaWJyYXJ5IHRvIGNvbnNvbGlkYXRlIHNoYXJlZC9z dGF0aWMKKyAjIGJ1aWxkcy4gVGhlcmUgYXJlIGxpbWl0YXRpb25zIHdpdGggZWFybGllciB2ZXJz aW9ucyBvZiBDTWFrZSB3aGVuIHVzZWQgd2l0aAorICMgaW1wb3J0ZWQgdGFyZ2V0cy4KK0BAIC01 OTIsMyArNTk2LDQgQEAgaW5zdGFsbChGSUxFUyAke09QRU5WREJfTElCUkFSWV9QT0lOVFNfSU5D TFVERV9GSUxFU30gREVTVElOQVRJT04gJHtPUEVOVkRCX0lOU1QKKyBpbnN0YWxsKEZJTEVTICR7 T1BFTlZEQl9MSUJSQVJZX1RPT0xTX0lOQ0xVREVfRklMRVN9IERFU1RJTkFUSU9OICR7T1BFTlZE Ql9JTlNUQUxMX0lOQ0xVREVESVJ9L3Rvb2xzKQorIGluc3RhbGwoRklMRVMgJHtPUEVOVkRCX0xJ QlJBUllfVFJFRV9JTkNMVURFX0ZJTEVTfSBERVNUSU5BVElPTiAke09QRU5WREJfSU5TVEFMTF9J TkNMVURFRElSfS90cmVlKQorIGluc3RhbGwoRklMRVMgJHtPUEVOVkRCX0xJQlJBUllfVVRJTF9J TkNMVURFX0ZJTEVTfSBERVNUSU5BVElPTiAke09QRU5WREJfSU5TVEFMTF9JTkNMVURFRElSfS91 dGlsKQorK2luc3RhbGwoRklMRVMgJHtPUEVOVkRCX0xJQlJBUllfVEhSRUFEX0lOQ0xVREVfRklM RVN9IERFU1RJTkFUSU9OICR7T1BFTlZEQl9JTlNUQUxMX0lOQ0xVREVESVJ9L3RocmVhZCkKK2Rp ZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvY21kL29wZW52ZGJfcmVuZGVyLmNjIGIvb3BlbnZk Yi9vcGVudmRiL2NtZC9vcGVudmRiX3JlbmRlci5jYworaW5kZXggZWU1YjczN2M1Li4yYzk4MzFi YTMgMTAwNjQ0CistLS0gYS9vcGVudmRiL29wZW52ZGIvY21kL29wZW52ZGJfcmVuZGVyLmNjCisr KysgYi9vcGVudmRiL29wZW52ZGIvY21kL29wZW52ZGJfcmVuZGVyLmNjCitAQCAtMTksNyArMTks MTQgQEAKKyAjaW5jbHVkZSA8T3BlbkVYUi9JbWZIZWFkZXIuaD4KKyAjaW5jbHVkZSA8T3BlbkVY Ui9JbWZPdXRwdXRGaWxlLmg+CisgI2luY2x1ZGUgPE9wZW5FWFIvSW1mUGl4ZWxUeXBlLmg+Cist I2luY2x1ZGUgPHRiYi90YXNrX3NjaGVkdWxlcl9pbml0Lmg+CisrCisrLy8gdGJiL3Rhc2tfc2No ZWR1bGVyX2luaXQuaCB3YXMgcmVtb3ZlZCBpbiBUQkIgMjAyMS4gVGhlIGJlc3QgY29uc3RydWN0 IHRvIHN3YXAKKysvLyB0byBpcyB0YmIvZ2xvYmFsX2NvbnRyb2wgKGZvciBleGVjdXRhYmxlcyku IGdsb2JhbF9jb250cm9sIHdhcyBvbmx5IG9mZmljaWFsbHkKKysvLyBhZGRlZCBpbiBUQkIgMjAx OVU0IGJ1dCBleGlzdHMgaW4gMjAxOCBhcyBhIHByZXZpZXcgZmVhdHVyZS4gVG8gYXZvaWQgbW9y ZQorKy8vIGNvbXBpbGUgdGltZSBicmFuY2hpbmcgKGFzIHdlIHN0aWxsIHN1cHBvcnQgMjAxOCks IHdlIHVzZSBpdCBpbiAyMDE4IHRvbyBieQorKy8vIGVuYWJsaW5nIHRoZSBiZWxvdyBkZWZpbmUu CisrI2RlZmluZSBUQkJfUFJFVklFV19HTE9CQUxfQ09OVFJPTCAxCisrI2luY2x1ZGUgPHRiYi9n bG9iYWxfY29udHJvbC5oPgorICNpbmNsdWRlIDx0YmIvdGlja19jb3VudC5oPgorIAorICNpbmNs dWRlIDxhbGdvcml0aG0+CitAQCAtNjA2LDggKzYxMywxMiBAQCBtYWluKGludCBhcmdjLCBjaGFy ICphcmd2W10pCisgICAgIH0KKyAKKyAgICAgdHJ5IHsKKy0gICAgICAgIHRiYjo6dGFza19zY2hl ZHVsZXJfaW5pdCBzY2hlZHVsZXJJbml0KAorLSAgICAgICAgICAgIChvcHRzLnRocmVhZHMgPT0g MCkgPyB0YmI6OnRhc2tfc2NoZWR1bGVyX2luaXQ6OmF1dG9tYXRpYyA6IG9wdHMudGhyZWFkcyk7 CisrICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8dGJiOjpnbG9iYWxfY29udHJvbD4gY29udHJvbDsK KysgICAgICAgIGlmIChvcHRzLnRocmVhZHMgPiAwKSB7CisrICAgICAgICAgICAgLy8gbm90ZSwg b3B0cy50aHJlYWRzID09IDAgbWVhbnMgdXNlIGFsbCB0aHJlYWRzIChkZWZhdWx0KSwgc28gZG9u J3QKKysgICAgICAgICAgICAvLyBtYW51YWxseSBjcmVhdGUgYSB0YmI6Omdsb2JhbF9jb250cm9s IGluIHRoaXMgY2FzZQorKyAgICAgICAgICAgIGNvbnRyb2wucmVzZXQobmV3IHRiYjo6Z2xvYmFs X2NvbnRyb2wodGJiOjpnbG9iYWxfY29udHJvbDo6bWF4X2FsbG93ZWRfcGFyYWxsZWxpc20sIG9w dHMudGhyZWFkcykpOworKyAgICAgICAgfQorIAorICAgICAgICAgb3BlbnZkYjo6aW5pdGlhbGl6 ZSgpOworIAorZGlmZiAtLWdpdCBhL29wZW52ZGIvb3BlbnZkYi9pby9RdWV1ZS5jYyBiL29wZW52 ZGIvb3BlbnZkYi9pby9RdWV1ZS5jYworaW5kZXggZWY1ZDI5NjFhLi4yMGZmMWEwYzEgMTAwNjQ0 CistLS0gYS9vcGVudmRiL29wZW52ZGIvaW8vUXVldWUuY2MKKysrKyBiL29wZW52ZGIvb3BlbnZk Yi9pby9RdWV1ZS5jYworQEAgLTUsMjAgKzUsMjIgQEAKKyAvLy8gQGF1dGhvciBQZXRlciBDdWNr YQorIAorICNpbmNsdWRlICJRdWV1ZS5oIgorLQorICNpbmNsdWRlICJGaWxlLmgiCisgI2luY2x1 ZGUgIlN0cmVhbS5oIgorLSNpbmNsdWRlIDxvcGVudmRiL0V4Y2VwdGlvbnMuaD4KKy0jaW5jbHVk ZSA8b3BlbnZkYi91dGlsL2xvZ2dpbmcuaD4KKysjaW5jbHVkZSAib3BlbnZkYi9FeGNlcHRpb25z LmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdXRpbC9sb2dnaW5nLmgiCisrCisgI2luY2x1ZGUgPHRi Yi9jb25jdXJyZW50X2hhc2hfbWFwLmg+CistI2luY2x1ZGUgPHRiYi90YXNrLmg+CistI2luY2x1 ZGUgPHRiYi90YmJfdGhyZWFkLmg+IC8vIGZvciB0YmI6OnRoaXNfdGJiX3RocmVhZDo6c2xlZXAo KQorLSNpbmNsdWRlIDx0YmIvdGlja19jb3VudC5oPgorKyNpbmNsdWRlIDx0YmIvdGFza19hcmVu YS5oPgorKworKyNpbmNsdWRlIDx0aHJlYWQ+CisgI2luY2x1ZGUgPGFsZ29yaXRobT4gLy8gZm9y IHN0ZDo6bWF4KCkKKyAjaW5jbHVkZSA8YXRvbWljPgorICNpbmNsdWRlIDxpb3N0cmVhbT4KKyAj aW5jbHVkZSA8bWFwPgorICNpbmNsdWRlIDxtdXRleD4KKysjaW5jbHVkZSA8Y2hyb25vPgorKwor IAorIG5hbWVzcGFjZSBvcGVudmRiIHsKKyBPUEVOVkRCX1VTRV9WRVJTSU9OX05BTUVTUEFDRQor QEAgLTI4LDE4ICszMCwxOSBAQCBuYW1lc3BhY2UgaW8geworIG5hbWVzcGFjZSB7CisgCisgLy8g QWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgcXVldWFibGUgVEJCIHRhc2tzIHRoYXQgYWRkcyBhIHRh c2sgY29tcGxldGlvbiBjYWxsYmFjaworLWNsYXNzIFRhc2s6IHB1YmxpYyB0YmI6OnRhc2sKKytj bGFzcyBUYXNrCisgeworIHB1YmxpYzoKKyAgICAgVGFzayhRdWV1ZTo6SWQgaWQpOiBtSWQoaWQp IHt9CistICAgIH5UYXNrKCkgb3ZlcnJpZGUge30KKysgICAgdmlydHVhbCB+VGFzaygpIHt9Cisg CisgICAgIFF1ZXVlOjpJZCBpZCgpIGNvbnN0IHsgcmV0dXJuIG1JZDsgfQorIAorICAgICB2b2lk IHNldE5vdGlmaWVyKFF1ZXVlOjpOb3RpZmllciYgbm90aWZpZXIpIHsgbU5vdGlmeSA9IG5vdGlm aWVyOyB9CisrICAgIHZpcnR1YWwgdm9pZCBleGVjdXRlKCkgY29uc3QgPSAwOworIAorIHByb3Rl Y3RlZDoKKy0gICAgdm9pZCBub3RpZnkoUXVldWU6OlN0YXR1cyBzdGF0dXMpIHsgaWYgKG1Ob3Rp ZnkpIG1Ob3RpZnkodGhpcy0+aWQoKSwgc3RhdHVzKTsgfQorKyAgICB2b2lkIG5vdGlmeShRdWV1 ZTo6U3RhdHVzIHN0YXR1cykgY29uc3QgeyBpZiAobU5vdGlmeSkgbU5vdGlmeSh0aGlzLT5pZCgp LCBzdGF0dXMpOyB9CisgCisgcHJpdmF0ZToKKyAgICAgUXVldWU6OklkIG1JZDsKK0BAIC00OCw3 ICs1MSw3IEBAIGNsYXNzIFRhc2s6IHB1YmxpYyB0YmI6OnRhc2sKKyAKKyAKKyAvLyBRdWV1YWJs ZSBUQkIgdGFzayB0aGF0IHdyaXRlcyBvbmUgb3IgbW9yZSBncmlkcyB0byBhIC52ZGIgZmlsZSBv ciBhbiBvdXRwdXQgc3RyZWFtCistY2xhc3MgT3V0cHV0VGFzazogcHVibGljIFRhc2sKKytjbGFz cyBPdXRwdXRUYXNrIDogcHVibGljIFRhc2sKKyB7CisgcHVibGljOgorICAgICBPdXRwdXRUYXNr KFF1ZXVlOjpJZCBpZCwgY29uc3QgR3JpZENQdHJWZWMmIGdyaWRzLCBjb25zdCBBcmNoaXZlJiBh cmNoaXZlLAorQEAgLTU2LDEwICs1OSwxMCBAQCBjbGFzcyBPdXRwdXRUYXNrOiBwdWJsaWMgVGFz aworICAgICAgICAgOiBUYXNrKGlkKQorICAgICAgICAgLCBtR3JpZHMoZ3JpZHMpCisgICAgICAg ICAsIG1BcmNoaXZlKGFyY2hpdmUuY29weSgpKQorLSAgICAgICAgLCBtTWV0YWRhdGEobWV0YWRh dGEpCistICAgIHt9CisrICAgICAgICAsIG1NZXRhZGF0YShtZXRhZGF0YSkge30KKysgICAgfk91 dHB1dFRhc2soKSBvdmVycmlkZSB7fQorIAorLSAgICB0YmI6OnRhc2sqIGV4ZWN1dGUoKSBvdmVy cmlkZQorKyAgICB2b2lkIGV4ZWN1dGUoKSBjb25zdCBvdmVycmlkZQorICAgICB7CisgICAgICAg ICBRdWV1ZTo6U3RhdHVzIHN0YXR1cyA9IFF1ZXVlOjpGQUlMRUQ7CisgICAgICAgICB0cnkgewor QEAgLTY5LDEwICs3Miw4IEBAIGNsYXNzIE91dHB1dFRhc2s6IHB1YmxpYyBUYXNrCisgICAgICAg ICAgICAgaWYgKGNvbnN0IGNoYXIqIG1zZyA9IGUud2hhdCgpKSB7CisgICAgICAgICAgICAgICAg IE9QRU5WREJfTE9HX0VSUk9SKG1zZyk7CisgICAgICAgICAgICAgfQorLSAgICAgICAgfSBjYXRj aCAoLi4uKSB7CistICAgICAgICB9CisrICAgICAgICB9IGNhdGNoICguLi4pIHt9CisgICAgICAg ICB0aGlzLT5ub3RpZnkoc3RhdHVzKTsKKy0gICAgICAgIHJldHVybiBudWxscHRyOyAvLyBubyBz dWNjZXNzb3IgdG8gdGhpcyB0YXNrCisgICAgIH0KKyAKKyBwcml2YXRlOgorQEAgLTk0LDcgKzk1 LDYgQEAgc3RydWN0IFF1ZXVlOjpJbXBsCisgICAgIC8vLyBAdG9kbyBQcm92aWRlIG1vcmUgaW5m b3JtYXRpb24gdGhhbiBqdXN0ICJzdWNjZWVkZWQiIG9yICJmYWlsZWQiPworICAgICB1c2luZyBT dGF0dXNNYXAgPSB0YmI6OmNvbmN1cnJlbnRfaGFzaF9tYXA8UXVldWU6OklkLCBRdWV1ZTo6U3Rh dHVzPjsKKyAKKy0KKyAgICAgSW1wbCgpCisgICAgICAgICA6IG1UaW1lb3V0KFF1ZXVlOjpERUZB VUxUX1RJTUVPVVQpCisgICAgICAgICAsIG1DYXBhY2l0eShRdWV1ZTo6REVGQVVMVF9DQVBBQ0lU WSkKK0BAIC0xNTksMTIgKzE1OSwxNSBAQCBzdHJ1Y3QgUXVldWU6OkltcGwKKyAKKyAgICAgYm9v bCBjYW5FbnF1ZXVlKCkgY29uc3QgeyByZXR1cm4gbU51bVRhc2tzIDwgSW50NjQobUNhcGFjaXR5 KTsgfQorIAorLSAgICB2b2lkIGVucXVldWUoVGFzayYgdGFzaykKKysgICAgdm9pZCBlbnF1ZXVl KE91dHB1dFRhc2smIHRhc2spCisgICAgIHsKKy0gICAgICAgIHRiYjo6dGlja19jb3VudCBzdGFy dCA9IHRiYjo6dGlja19jb3VudDo6bm93KCk7CisrICAgICAgICBhdXRvIHN0YXJ0ID0gc3RkOjpj aHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7CisgICAgICAgICB3aGlsZSAoIWNhbkVucXVldWUo KSkgeworLSAgICAgICAgICAgIHRiYjo6dGhpc190YmJfdGhyZWFkOjpzbGVlcCh0YmI6OnRpY2tf Y291bnQ6OmludGVydmFsX3QoMC41LypzZWMqLykpOworLSAgICAgICAgICAgIGlmICgodGJiOjp0 aWNrX2NvdW50Ojpub3coKSAtIHN0YXJ0KS5zZWNvbmRzKCkgPiBkb3VibGUobVRpbWVvdXQpKSB7 CisrICAgICAgICAgICAgc3RkOjp0aGlzX3RocmVhZDo6c2xlZXBfZm9yKC8qMC41cyovc3RkOjpj aHJvbm86Om1pbGxpc2Vjb25kcyg1MDApKTsKKysgICAgICAgICAgICBhdXRvIGR1cmF0aW9uID0g c3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcz4oCisr ICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpIC0gc3RhcnQp OworKyAgICAgICAgICAgIGNvbnN0IGRvdWJsZSBzZWNvbmRzID0gZG91YmxlKGR1cmF0aW9uLmNv dW50KCkpIC8gMTAwMC4wOworKyAgICAgICAgICAgIGlmIChzZWNvbmRzID4gZG91YmxlKG1UaW1l b3V0KSkgeworICAgICAgICAgICAgICAgICBPUEVOVkRCX1RIUk9XKFJ1bnRpbWVFcnJvciwKKyAg ICAgICAgICAgICAgICAgICAgICJ1bmFibGUgdG8gcXVldWUgSS9PIHRhc2s7ICIgPDwgbVRpbWVv dXQgPDwgIi1zZWNvbmQgdGltZSBsaW1pdCBleHBpcmVkIik7CisgICAgICAgICAgICAgfQorQEAg LTE3Myw3ICsxNzYsMTAgQEAgc3RydWN0IFF1ZXVlOjpJbXBsCisgICAgICAgICAgICAgc3RkOjpw bGFjZWhvbGRlcnM6Ol8xLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzIpOworICAgICAgICAgdGFzay5z ZXROb3RpZmllcihub3RpZnkpOworICAgICAgICAgdGhpcy0+c2V0U3RhdHVzKHRhc2suaWQoKSwg UXVldWU6OlBFTkRJTkcpOworLSAgICAgICAgdGJiOjp0YXNrOjplbnF1ZXVlKHRhc2spOworKwor KyAgICAgICAgLy8gZ2V0IHRoZSBnbG9iYWwgdGFzayBhcmVuYQorKyAgICAgICAgdGJiOjp0YXNr X2FyZW5hIGFyZW5hKHRiYjo6dGFza19hcmVuYTo6YXR0YWNoe30pOworKyAgICAgICAgYXJlbmEu ZW5xdWV1ZShbdGFzayA9IHN0ZDo6bW92ZSh0YXNrKV0geyB0YXNrLmV4ZWN1dGUoKTsgfSk7Cisg ICAgICAgICArK21OdW1UYXNrczsKKyAgICAgfQorIAorQEAgLTIwNCw3ICsyMTAsNyBAQCBRdWV1 ZTo6flF1ZXVlKCkKKyAgICAgLy8vIChlLmcuLCBieSBrZWVwaW5nIGEgc3RhdGljIHJlZ2lzdHJ5 IG9mIHF1ZXVlcyB0aGF0IGFsc28gZGlzcGF0Y2hlcworICAgICAvLy8gb3IgYmxvY2tzIG5vdGlm aWNhdGlvbnMpPworICAgICB3aGlsZSAobUltcGwtPm1OdW1UYXNrcyA+IDApIHsKKy0gICAgICAg IHRiYjo6dGhpc190YmJfdGhyZWFkOjpzbGVlcCh0YmI6OnRpY2tfY291bnQ6OmludGVydmFsX3Qo MC41LypzZWMqLykpOworKyAgICAgICAgc3RkOjp0aGlzX3RocmVhZDo6c2xlZXBfZm9yKC8qMC41 cyovc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyg1MDApKTsKKyAgICAgfQorIH0KKyAKK0BAIC0y OTAsMTYgKzI5Niw4IEBAIFF1ZXVlOjpJZAorIFF1ZXVlOjp3cml0ZUdyaWRWZWMoY29uc3QgR3Jp ZENQdHJWZWMmIGdyaWRzLCBjb25zdCBBcmNoaXZlJiBhcmNoaXZlLCBjb25zdCBNZXRhTWFwJiBt ZXRhZGF0YSkKKyB7CisgICAgIGNvbnN0IFF1ZXVlOjpJZCB0YXNrSWQgPSBtSW1wbC0+bU5leHRJ ZCsrOworLSAgICAvLyBGcm9tIHRoZSAiR1VJIFRocmVhZCIgY2hhcHRlciBpbiB0aGUgVEJCIERl c2lnbiBQYXR0ZXJucyBndWlkZQorLSAgICBPdXRwdXRUYXNrKiB0YXNrID0KKy0gICAgICAgIG5l dyh0YmI6OnRhc2s6OmFsbG9jYXRlX3Jvb3QoKSkgT3V0cHV0VGFzayh0YXNrSWQsIGdyaWRzLCBh cmNoaXZlLCBtZXRhZGF0YSk7CistICAgIHRyeSB7CistICAgICAgICBtSW1wbC0+ZW5xdWV1ZSgq dGFzayk7CistICAgIH0gY2F0Y2ggKG9wZW52ZGI6OlJ1bnRpbWVFcnJvciYpIHsKKy0gICAgICAg IC8vIERlc3Ryb3kgdGhlIHRhc2sgaWYgaXQgY291bGQgbm90IGJlIGVucXVldWVkLCB0aGVuIHJl dGhyb3cgdGhlIGV4Y2VwdGlvbi4KKy0gICAgICAgIHRiYjo6dGFzazo6ZGVzdHJveSgqdGFzayk7 CistICAgICAgICB0aHJvdzsKKy0gICAgfQorKyAgICBPdXRwdXRUYXNrIHRhc2sodGFza0lkLCBn cmlkcywgYXJjaGl2ZSwgbWV0YWRhdGEpOworKyAgICBtSW1wbC0+ZW5xdWV1ZSh0YXNrKTsKKyAg ICAgcmV0dXJuIHRhc2tJZDsKKyB9CisgCitkaWZmIC0tZ2l0IGEvb3BlbnZkYi9vcGVudmRiL21h dGgvQ29vcmQuaCBiL29wZW52ZGIvb3BlbnZkYi9tYXRoL0Nvb3JkLmgKK2luZGV4IDUwNGI1ZTlh NC4uMmU5Y2ZlZDVkIDEwMDY0NAorLS0tIGEvb3BlbnZkYi9vcGVudmRiL21hdGgvQ29vcmQuaAor KysrIGIvb3BlbnZkYi9vcGVudmRiL21hdGgvQ29vcmQuaAorQEAgLTEzLDggKzEzLDcgQEAKKyAj aW5jbHVkZSAiTWF0aC5oIgorICNpbmNsdWRlICJWZWMzLmgiCisgCistbmFtZXNwYWNlIHRiYiB7 IGNsYXNzIHNwbGl0OyB9IC8vIGZvcndhcmQgZGVjbGFyYXRpb24KKy0KKysjaW5jbHVkZSA8dGJi L2Jsb2NrZWRfcmFuZ2UuaD4gLy8gZm9yIHRiYjo6c3BsaXQKKyAKKyBuYW1lc3BhY2Ugb3BlbnZk YiB7CisgT1BFTlZEQl9VU0VfVkVSU0lPTl9OQU1FU1BBQ0UKK2RpZmYgLS1naXQgYS9vcGVudmRi L29wZW52ZGIvcG9pbnRzL1BvaW50U2FtcGxlLmggYi9vcGVudmRiL29wZW52ZGIvcG9pbnRzL1Bv aW50U2FtcGxlLmgKK2luZGV4IGExMjJjYzRmYi4uMjdlYzNmYjI5IDEwMDY0NAorLS0tIGEvb3Bl bnZkYi9vcGVudmRiL3BvaW50cy9Qb2ludFNhbXBsZS5oCisrKysgYi9vcGVudmRiL29wZW52ZGIv cG9pbnRzL1BvaW50U2FtcGxlLmgKK0BAIC0xMCw4ICsxMCw5IEBACisgI2lmbmRlZiBPUEVOVkRC X1BPSU5UU19QT0lOVF9TQU1QTEVfSEFTX0JFRU5fSU5DTFVERUQKKyAjZGVmaW5lIE9QRU5WREJf UE9JTlRTX1BPSU5UX1NBTVBMRV9IQVNfQkVFTl9JTkNMVURFRAorIAorLSNpbmNsdWRlIDxvcGVu dmRiL3V0aWwvTnVsbEludGVycnVwdGVyLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvdG9vbHMvSW50 ZXJwb2xhdGlvbi5oPgorKyNpbmNsdWRlICJvcGVudmRiL3V0aWwvTnVsbEludGVycnVwdGVyLmgi CisrI2luY2x1ZGUgIm9wZW52ZGIvdGhyZWFkL1RocmVhZGluZy5oIgorKyNpbmNsdWRlICJvcGVu dmRiL3Rvb2xzL0ludGVycG9sYXRpb24uaCIKKyAKKyAjaW5jbHVkZSAiUG9pbnREYXRhR3JpZC5o IgorICNpbmNsdWRlICJQb2ludEF0dHJpYnV0ZS5oIgorQEAgLTE5LDcgKzIwLDYgQEAKKyAjaW5j bHVkZSA8c3N0cmVhbT4KKyAjaW5jbHVkZSA8dHlwZV90cmFpdHM+CisgCistCisgbmFtZXNwYWNl IG9wZW52ZGIgeworIE9QRU5WREJfVVNFX1ZFUlNJT05fTkFNRVNQQUNFCisgbmFtZXNwYWNlIE9Q RU5WREJfVkVSU0lPTl9OQU1FIHsKK0BAIC0yOTksNyArMjk5LDcgQEAgY2xhc3MgUG9pbnREYXRh U2FtcGxlcgorICAgICAgICAgICAgIHVzaW5nIFRhcmdldEhhbmRsZVQgPSBBdHRyaWJ1dGVXcml0 ZUhhbmRsZTx0eXBlbmFtZSBTYW1wbGVyV3JhcHBlclQ6OlZhbHVlVHlwZT47CisgCisgICAgICAg ICAgICAgaWYgKHV0aWw6Ondhc0ludGVycnVwdGVkKGludGVycnVwdGVyKSkgeworLSAgICAgICAg ICAgICAgICB0YmI6OnRhc2s6OnNlbGYoKS5jYW5jZWxfZ3JvdXBfZXhlY3V0aW9uKCk7CisrICAg ICAgICAgICAgICAgIHRocmVhZDo6Y2FuY2VsR3JvdXBFeGVjdXRpb24oKTsKKyAgICAgICAgICAg ICAgICAgcmV0dXJuOworICAgICAgICAgICAgIH0KKyAKK2RpZmYgLS1naXQgYS9vcGVudmRiL29w ZW52ZGIvdGhyZWFkL1RocmVhZGluZy5oIGIvb3BlbnZkYi9vcGVudmRiL3RocmVhZC9UaHJlYWRp bmcuaAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMC4uMGMzYjM1NmUzCist LS0gL2Rldi9udWxsCisrKysgYi9vcGVudmRiL29wZW52ZGIvdGhyZWFkL1RocmVhZGluZy5oCitA QCAtMCwwICsxLDU0IEBACisrLy8gQ29weXJpZ2h0IENvbnRyaWJ1dG9ycyB0byB0aGUgT3BlblZE QiBQcm9qZWN0CisrLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjAKKysvLworKy8v LyBAZmlsZSBUaHJlYWRpbmcuaAorKworKyNpZm5kZWYgT1BFTlZEQl9USFJFQURfVEhSRUFESU5H X0hBU19CRUVOX0lOQ0xVREVECisrI2RlZmluZSBPUEVOVkRCX1RIUkVBRF9USFJFQURJTkdfSEFT X0JFRU5fSU5DTFVERUQKKysKKysjaW5jbHVkZSAib3BlbnZkYi92ZXJzaW9uLmgiCisrCisrLy8v IEBub3RlIHRiYi9ibG9ja2VkX3JhbmdlLmggaXMgdGhlIE9OTFkgaW5jbHVkZSB0aGF0IHBlcnNp c3RzIGZyb20gVEJCIDIwMjAKKysvLy8gICB0byBUQkIgMjAyMSB0aGF0IGl0c2VsZiBpbmNsdWRl cyB0aGUgVEJCIHNwZWNpZmljIHZlcnNpb24gaGVhZGVyIGZpbGVzLgorKy8vLyAgIEluIFRCQiAy MDIwLCB0aGUgdmVyc2lvbiBoZWFkZXIgd2FzIGNhbGxlZCB0YmIvc3RkZGVmLmguIEluIDIwMjEs IGl0J3MKKysvLy8gICBjYWxsZWQgdGJiL3ZlcnNpb24uaC4gV2UgaW5jbHVkZSB0YmIvYmxvY2tl ZF9yYW5nZS5oIGhlcmUgdG8gaW5kaXJlY3RseQorKy8vLyAgIGFjY2VzcyB0aGUgdmVyc2lvbiBk ZWZpbmVzIGluIGEgY29uc2lzdGVudCB3YXkgc28gdGhhdCBkb3duc3RyZWFtCisrLy8vICAgc29m dHdhcmUgZG9lc24ndCBuZWVkIHRvIHByb3ZpZGUgY29tcGlsZSB0aW1lIGRlZmluZXMuCisrI2lu Y2x1ZGUgPHRiYi9ibG9ja2VkX3JhbmdlLmg+CisrI2luY2x1ZGUgPHRiYi90YXNrLmg+CisrI2lu Y2x1ZGUgPHRiYi90YXNrX2dyb3VwLmg+CisrCisrbmFtZXNwYWNlIG9wZW52ZGIgeworK09QRU5W REJfVVNFX1ZFUlNJT05fTkFNRVNQQUNFCisrbmFtZXNwYWNlIE9QRU5WREJfVkVSU0lPTl9OQU1F IHsKKytuYW1lc3BhY2UgdGhyZWFkIHsKKysKKytpbmxpbmUgYm9vbCBjYW5jZWxHcm91cEV4ZWN1 dGlvbigpCisreworKyAgICAvLyBAbm90ZSAxMjAwMCB3YXMgdGhlIDIwMjEuMS1iZXRhMDUgcmVs ZWFzZS4gVGhlIDIwMjEuMS1iZXRhMDggcmVsZWFzZQorKyAgICAvLyAgIGludHJvZHVjZWQgY3Vy cmVudF9jb250ZXh0KCkuCisrI2lmIFRCQl9JTlRFUkZBQ0VfVkVSU0lPTiA+PSAxMjAwMgorKyAg ICBhdXRvIGN0eCA9IHRiYjo6dGFzazo6Y3VycmVudF9jb250ZXh0KCk7CisrICAgIHJldHVybiBj dHggPyBjdHgtPmNhbmNlbF9ncm91cF9leGVjdXRpb24oKSA6IGZhbHNlOworKyNlbHNlCisrICAg IHJldHVybiB0YmI6OnRhc2s6OnNlbGYoKS5jYW5jZWxfZ3JvdXBfZXhlY3V0aW9uKCk7CisrI2Vu ZGlmCisrfQorKworK2lubGluZSBib29sIGlzR3JvdXBFeGVjdXRpb25DYW5jZWxsZWQoKQorK3sK KysgICAgLy8gQG5vdGUgMTIwMDAgd2FzIHRoZSAyMDIxLjEtYmV0YTA1IHJlbGVhc2UuIFRoZSAy MDIxLjEtYmV0YTA4IHJlbGVhc2UKKysgICAgLy8gICBpbnRyb2R1Y2VkIGN1cnJlbnRfY29udGV4 dCgpLgorKyNpZiBUQkJfSU5URVJGQUNFX1ZFUlNJT04gPj0gMTIwMDIKKysgICAgYXV0byBjdHgg PSB0YmI6OnRhc2s6OmN1cnJlbnRfY29udGV4dCgpOworKyAgICByZXR1cm4gY3R4ID8gY3R4LT5p c19ncm91cF9leGVjdXRpb25fY2FuY2VsbGVkKCkgOiBmYWxzZTsKKysjZWxzZQorKyAgICByZXR1 cm4gdGJiOjp0YXNrOjpzZWxmKCkuaXNfY2FuY2VsbGVkKCk7CisrI2VuZGlmCisrfQorKworK30g Ly8gbmFtZXNwYWNlIHRocmVhZAorK30gLy8gbmFtZXNwYWNlIE9QRU5WREJfVkVSU0lPTl9OQU1F CisrfSAvLyBuYW1lc3BhY2Ugb3BlbnZkYgorKworKyNlbmRpZiAvLyBPUEVOVkRCX1RIUkVBRF9U SFJFQURJTkdfSEFTX0JFRU5fSU5DTFVERUQKK2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIv dG9vbHMvQ29tcG9zaXRlLmggYi9vcGVudmRiL29wZW52ZGIvdG9vbHMvQ29tcG9zaXRlLmgKK2lu ZGV4IDZiYzE3MGJmNy4uODhmZjg2ZjlmIDEwMDY0NAorLS0tIGEvb3BlbnZkYi9vcGVudmRiL3Rv b2xzL0NvbXBvc2l0ZS5oCisrKysgYi9vcGVudmRiL29wZW52ZGIvdG9vbHMvQ29tcG9zaXRlLmgK K0BAIC0yNCw3ICsyNCw2IEBACisgI2luY2x1ZGUgPHRiYi9wYXJhbGxlbF9mb3IuaD4KKyAjaW5j bHVkZSA8dGJiL3BhcmFsbGVsX3JlZHVjZS5oPgorICNpbmNsdWRlIDx0YmIvdGFza19ncm91cC5o PgorLSNpbmNsdWRlIDx0YmIvdGFza19zY2hlZHVsZXJfaW5pdC5oPgorIAorICNpbmNsdWRlIDx0 eXBlX3RyYWl0cz4KKyAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KK2RpZmYgLS1naXQgYS9vcGVudmRi L29wZW52ZGIvdG9vbHMvRGlhZ25vc3RpY3MuaCBiL29wZW52ZGIvb3BlbnZkYi90b29scy9EaWFn bm9zdGljcy5oCitpbmRleCA2OTRkMjE1NWYuLmU1ODQ0ZTQ0OCAxMDA2NDQKKy0tLSBhL29wZW52 ZGIvb3BlbnZkYi90b29scy9EaWFnbm9zdGljcy5oCisrKysgYi9vcGVudmRiL29wZW52ZGIvdG9v bHMvRGlhZ25vc3RpY3MuaAorQEAgLTExLDE0ICsxMSwxNyBAQAorICNpZm5kZWYgT1BFTlZEQl9U T09MU19ESUFHTk9TVElDU19IQVNfQkVFTl9JTkNMVURFRAorICNkZWZpbmUgT1BFTlZEQl9UT09M U19ESUFHTk9TVElDU19IQVNfQkVFTl9JTkNMVURFRAorIAorLSNpbmNsdWRlIDxvcGVudmRiL0dy aWQuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9tYXRoL01hdGguaD4KKy0jaW5jbHVkZSA8b3BlbnZk Yi9tYXRoL1ZlYzMuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9tYXRoL1N0ZW5jaWxzLmg+CistI2lu Y2x1ZGUgPG9wZW52ZGIvbWF0aC9PcGVyYXRvcnMuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi90cmVl L0xlYWZNYW5hZ2VyLmg+CisrI2luY2x1ZGUgIm9wZW52ZGIvR3JpZC5oIgorKyNpbmNsdWRlICJv cGVudmRiL21hdGgvTWF0aC5oIgorKyNpbmNsdWRlICJvcGVudmRiL21hdGgvVmVjMy5oIgorKyNp bmNsdWRlICJvcGVudmRiL21hdGgvU3RlbmNpbHMuaCIKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRo L09wZXJhdG9ycy5oIgorKyNpbmNsdWRlICJvcGVudmRiL3RyZWUvTGVhZk1hbmFnZXIuaCIKKysj aW5jbHVkZSAib3BlbnZkYi90aHJlYWQvVGhyZWFkaW5nLmgiCisrCisgI2luY2x1ZGUgPHRiYi9i bG9ja2VkX3JhbmdlLmg+CisgI2luY2x1ZGUgPHRiYi9wYXJhbGxlbF9yZWR1Y2UuaD4KKysKKyAj aW5jbHVkZSA8Y21hdGg+IC8vIGZvciBzdGQ6OmlzbmFuKCksIHN0ZDo6aXNmaW5pdGUoKQorICNp bmNsdWRlIDxzZXQ+CisgI2luY2x1ZGUgPHNzdHJlYW0+CitAQCAtMjYsNyArMjksNiBAQAorICNp bmNsdWRlIDx0eXBlX3RyYWl0cz4KKyAjaW5jbHVkZSA8dmVjdG9yPgorIAorLQorIG5hbWVzcGFj ZSBvcGVudmRiIHsKKyBPUEVOVkRCX1VTRV9WRVJTSU9OX05BTUVTUEFDRQorIG5hbWVzcGFjZSBP UEVOVkRCX1ZFUlNJT05fTkFNRSB7CitAQCAtMTE2MCwxMyArMTE2MiwxMyBAQCBJbmFjdGl2ZVZv eGVsVmFsdWVzPFRyZWVUeXBlPjo6b3BlcmF0b3IoKShjb25zdCB0YmI6OmJsb2NrZWRfcmFuZ2U8 c2l6ZV90PiYgcmFuZworIHsKKyAgICAgdHlwZW5hbWUgVHJlZVR5cGU6OkxlYWZOb2RlVHlwZTo6 VmFsdWVPZmZDSXRlciBpdGVyOworIAorLSAgICBmb3IgKHNpemVfdCBuID0gcmFuZ2UuYmVnaW4o KTsgbiA8IHJhbmdlLmVuZCgpICYmICF0YmI6OnRhc2s6OnNlbGYoKS5pc19jYW5jZWxsZWQoKTsg KytuKSB7CisrICAgIGZvciAoc2l6ZV90IG4gPSByYW5nZS5iZWdpbigpOyBuIDwgcmFuZ2UuZW5k KCkgJiYgIXRocmVhZDo6aXNHcm91cEV4ZWN1dGlvbkNhbmNlbGxlZCgpOyArK24pIHsKKyAgICAg ICAgIGZvciAoaXRlciA9IG1MZWFmQXJyYXkubGVhZihuKS5jYmVnaW5WYWx1ZU9mZigpOyBpdGVy OyArK2l0ZXIpIHsKKyAgICAgICAgICAgICBtSW5hY3RpdmVWYWx1ZXMuaW5zZXJ0KGl0ZXIuZ2V0 VmFsdWUoKSk7CisgICAgICAgICB9CisgCisgICAgICAgICBpZiAobUluYWN0aXZlVmFsdWVzLnNp emUoKSA+IG1OdW1WYWx1ZXMpIHsKKy0gICAgICAgICAgICB0YmI6OnRhc2s6OnNlbGYoKS5jYW5j ZWxfZ3JvdXBfZXhlY3V0aW9uKCk7CisrICAgICAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4 ZWN1dGlvbigpOworICAgICAgICAgfQorICAgICB9CisgfQorQEAgLTEyNTAsMTQgKzEyNTIsMTQg QEAgdGVtcGxhdGU8dHlwZW5hbWUgVHJlZVR5cGU+CisgaW5saW5lIHZvaWQKKyBJbmFjdGl2ZVRp bGVWYWx1ZXM8VHJlZVR5cGU+OjpvcGVyYXRvcigpKEl0ZXJSYW5nZSYgcmFuZ2UpCisgeworLSAg ICBmb3IgKDsgcmFuZ2UgJiYgIXRiYjo6dGFzazo6c2VsZigpLmlzX2NhbmNlbGxlZCgpOyArK3Jh bmdlKSB7CisrICAgIGZvciAoOyByYW5nZSAmJiAhdGhyZWFkOjppc0dyb3VwRXhlY3V0aW9uQ2Fu Y2VsbGVkKCk7ICsrcmFuZ2UpIHsKKyAgICAgICAgIHR5cGVuYW1lIFRyZWVUeXBlOjpWYWx1ZU9m ZkNJdGVyIGl0ZXIgPSByYW5nZS5pdGVyYXRvcigpOworICAgICAgICAgZm9yICg7IGl0ZXI7ICsr aXRlcikgeworICAgICAgICAgICAgIG1JbmFjdGl2ZVZhbHVlcy5pbnNlcnQoaXRlci5nZXRWYWx1 ZSgpKTsKKyAgICAgICAgIH0KKyAKKyAgICAgICAgIGlmIChtSW5hY3RpdmVWYWx1ZXMuc2l6ZSgp ID4gbU51bVZhbHVlcykgeworLSAgICAgICAgICAgIHRiYjo6dGFzazo6c2VsZigpLmNhbmNlbF9n cm91cF9leGVjdXRpb24oKTsKKysgICAgICAgICAgICB0aHJlYWQ6OmNhbmNlbEdyb3VwRXhlY3V0 aW9uKCk7CisgICAgICAgICB9CisgICAgIH0KKyB9CitkaWZmIC0tZ2l0IGEvb3BlbnZkYi9vcGVu dmRiL3Rvb2xzL0ZpbHRlci5oIGIvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL0ZpbHRlci5oCitpbmRl eCA0MDhjNzU1NDEuLmI3MDIxMjUyMCAxMDA2NDQKKy0tLSBhL29wZW52ZGIvb3BlbnZkYi90b29s cy9GaWx0ZXIuaAorKysrIGIvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL0ZpbHRlci5oCitAQCAtMTQs MjEgKzE0LDI0IEBACisgI2lmbmRlZiBPUEVOVkRCX1RPT0xTX0ZJTFRFUl9IQVNfQkVFTl9JTkNM VURFRAorICNkZWZpbmUgT1BFTlZEQl9UT09MU19GSUxURVJfSEFTX0JFRU5fSU5DTFVERUQKKyAK Ky0jaW5jbHVkZSA8dGJiL3BhcmFsbGVsX2Zvci5oPgorLSNpbmNsdWRlIDxvcGVudmRiL1R5cGVz Lmg+CistI2luY2x1ZGUgPG9wZW52ZGIvbWF0aC9NYXRoLmg+CistI2luY2x1ZGUgPG9wZW52ZGIv bWF0aC9TdGVuY2lscy5oPgorLSNpbmNsdWRlIDxvcGVudmRiL21hdGgvVHJhbnNmb3JtLmg+Cist I2luY2x1ZGUgPG9wZW52ZGIvdHJlZS9Ob2RlTWFuYWdlci5oPgorLSNpbmNsdWRlIDxvcGVudmRi L3RyZWUvTGVhZk1hbmFnZXIuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi91dGlsL051bGxJbnRlcnJ1 cHRlci5oPgorLSNpbmNsdWRlIDxvcGVudmRiL3V0aWwvVXRpbC5oPgorLSNpbmNsdWRlIDxvcGVu dmRiL0dyaWQuaD4KKysjaW5jbHVkZSAib3BlbnZkYi9UeXBlcy5oIgorKyNpbmNsdWRlICJvcGVu dmRiL0dyaWQuaCIKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRoL01hdGguaCIKKysjaW5jbHVkZSAi b3BlbnZkYi9tYXRoL1N0ZW5jaWxzLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvbWF0aC9UcmFuc2Zv cm0uaCIKKysjaW5jbHVkZSAib3BlbnZkYi90cmVlL05vZGVNYW5hZ2VyLmgiCisrI2luY2x1ZGUg Im9wZW52ZGIvdHJlZS9MZWFmTWFuYWdlci5oIgorKyNpbmNsdWRlICJvcGVudmRiL3V0aWwvTnVs bEludGVycnVwdGVyLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdXRpbC9VdGlsLmgiCisrI2luY2x1 ZGUgIm9wZW52ZGIvdGhyZWFkL1RocmVhZGluZy5oIgorICNpbmNsdWRlICJJbnRlcnBvbGF0aW9u LmgiCisrCisrI2luY2x1ZGUgPHRiYi9wYXJhbGxlbF9mb3IuaD4KKysjaW5jbHVkZSA8dGJiL2Nv bmN1cnJlbnRfdmVjdG9yLmg+CisrCisgI2luY2x1ZGUgPGFsZ29yaXRobT4gLy8gZm9yIHN0ZDo6 bWF4KCkKKyAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KKyAjaW5jbHVkZSA8dHlwZV90cmFpdHM+Cist I2luY2x1ZGUgPHRiYi9jb25jdXJyZW50X3ZlY3Rvci5oPgorIAorIG5hbWVzcGFjZSBvcGVudmRi IHsKKyBPUEVOVkRCX1VTRV9WRVJTSU9OX05BTUVTUEFDRQorQEAgLTgzMyw3ICs4MzYsNyBAQCBp bmxpbmUgYm9vbAorIEZpbHRlcjxHcmlkVCwgTWFza1QsIEludGVycnVwdFQ+Ojp3YXNJbnRlcnJ1 cHRlZCgpCisgeworICAgICBpZiAodXRpbDo6d2FzSW50ZXJydXB0ZWQobUludGVycnVwdGVyKSkg eworLSAgICAgICAgdGJiOjp0YXNrOjpzZWxmKCkuY2FuY2VsX2dyb3VwX2V4ZWN1dGlvbigpOwor KyAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAgICAgcmV0dXJu IHRydWU7CisgICAgIH0KKyAgICAgcmV0dXJuIGZhbHNlOworZGlmZiAtLWdpdCBhL29wZW52ZGIv b3BlbnZkYi90b29scy9HcmlkT3BlcmF0b3JzLmggYi9vcGVudmRiL29wZW52ZGIvdG9vbHMvR3Jp ZE9wZXJhdG9ycy5oCitpbmRleCAzMTMwNWExYWIuLjc4ZmFmZWFkOSAxMDA2NDQKKy0tLSBhL29w ZW52ZGIvb3BlbnZkYi90b29scy9HcmlkT3BlcmF0b3JzLmgKKysrKyBiL29wZW52ZGIvb3BlbnZk Yi90b29scy9HcmlkT3BlcmF0b3JzLmgKK0BAIC05LDE0ICs5LDE1IEBACisgI2lmbmRlZiBPUEVO VkRCX1RPT0xTX0dSSURfT1BFUkFUT1JTX0hBU19CRUVOX0lOQ0xVREVECisgI2RlZmluZSBPUEVO VkRCX1RPT0xTX0dSSURfT1BFUkFUT1JTX0hBU19CRUVOX0lOQ0xVREVECisgCistI2luY2x1ZGUg PG9wZW52ZGIvR3JpZC5oPgorLSNpbmNsdWRlIDxvcGVudmRiL21hdGgvT3BlcmF0b3JzLmg+Cist I2luY2x1ZGUgPG9wZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIuaD4KKy0jaW5jbHVkZSA8b3Bl bnZkYi90cmVlL0xlYWZNYW5hZ2VyLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvdHJlZS9WYWx1ZUFj Y2Vzc29yLmg+CisrI2luY2x1ZGUgIm9wZW52ZGIvR3JpZC5oIgorKyNpbmNsdWRlICJvcGVudmRi L21hdGgvT3BlcmF0b3JzLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0 ZXIuaCIKKysjaW5jbHVkZSAib3BlbnZkYi90aHJlYWQvVGhyZWFkaW5nLmgiCisrI2luY2x1ZGUg Im9wZW52ZGIvdHJlZS9MZWFmTWFuYWdlci5oIgorKyNpbmNsdWRlICJvcGVudmRiL3RyZWUvVmFs dWVBY2Nlc3Nvci5oIgorICNpbmNsdWRlICJWYWx1ZVRyYW5zZm9ybWVyLmgiIC8vIGZvciB0b29s czo6Zm9yZWFjaCgpCistI2luY2x1ZGUgPHRiYi9wYXJhbGxlbF9mb3IuaD4KKyAKKysjaW5jbHVk ZSA8dGJiL3BhcmFsbGVsX2Zvci5oPgorIAorIG5hbWVzcGFjZSBvcGVudmRiIHsKKyBPUEVOVkRC X1VTRV9WRVJTSU9OX05BTUVTUEFDRQorQEAgLTM4Myw3ICszODQsOSBAQCBjbGFzcyBHcmlkT3Bl cmF0b3IKKyAgICAgLy8vIFRCQiB0aHJlYWRzIG9ubHkhCisgICAgIHZvaWQgb3BlcmF0b3IoKShj b25zdCB0eXBlbmFtZSBMZWFmTWFuYWdlclQ6OkxlYWZSYW5nZSYgcmFuZ2UpIGNvbnN0CisgICAg IHsKKy0gICAgICAgIGlmICh1dGlsOjp3YXNJbnRlcnJ1cHRlZChtSW50ZXJydXB0KSkgdGJiOjp0 YXNrOjpzZWxmKCkuY2FuY2VsX2dyb3VwX2V4ZWN1dGlvbigpOworKyAgICAgICAgaWYgKHV0aWw6 Ondhc0ludGVycnVwdGVkKG1JbnRlcnJ1cHQpKSB7CisrICAgICAgICAgICAgdGhyZWFkOjpjYW5j ZWxHcm91cEV4ZWN1dGlvbigpOworKyAgICAgICAgfQorIAorICAgICAgICAgZm9yICh0eXBlbmFt ZSBMZWFmTWFuYWdlclQ6OkxlYWZSYW5nZTo6SXRlcmF0b3IgbGVhZj1yYW5nZS5iZWdpbigpOyBs ZWFmOyArK2xlYWYpIHsKKyAgICAgICAgICAgICBmb3IgKHR5cGVuYW1lIE91dExlYWZUOjpWYWx1 ZU9uSXRlciB2YWx1ZT1sZWFmLT5iZWdpblZhbHVlT24oKTsgdmFsdWU7ICsrdmFsdWUpIHsKK2Rp ZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvTGV2ZWxTZXRNZWFzdXJlLmggYi9vcGVu dmRiL29wZW52ZGIvdG9vbHMvTGV2ZWxTZXRNZWFzdXJlLmgKK2luZGV4IGVmZTE5MDc0ZC4uNTk5 NjljZGNmIDEwMDY0NAorLS0tIGEvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL0xldmVsU2V0TWVhc3Vy ZS5oCisrKysgYi9vcGVudmRiL29wZW52ZGIvdG9vbHMvTGV2ZWxTZXRNZWFzdXJlLmgKK0BAIC04 LDE4ICs4LDIxIEBACisgI2lmbmRlZiBPUEVOVkRCX1RPT0xTX0xFVkVMU0VUTUVBU1VSRV9IQVNf QkVFTl9JTkNMVURFRAorICNkZWZpbmUgT1BFTlZEQl9UT09MU19MRVZFTFNFVE1FQVNVUkVfSEFT X0JFRU5fSU5DTFVERUQKKyAKKy0jaW5jbHVkZSA8b3BlbnZkYi9tYXRoL01hdGguaD4KKy0jaW5j bHVkZSA8b3BlbnZkYi9UeXBlcy5oPgorLSNpbmNsdWRlIDxvcGVudmRiL0dyaWQuaD4KKy0jaW5j bHVkZSA8b3BlbnZkYi90cmVlL0xlYWZNYW5hZ2VyLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvdHJl ZS9WYWx1ZUFjY2Vzc29yLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvbWF0aC9GaW5pdGVEaWZmZXJl bmNlLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvbWF0aC9PcGVyYXRvcnMuaD4KKy0jaW5jbHVkZSA8 b3BlbnZkYi9tYXRoL1N0ZW5jaWxzLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvdXRpbC9OdWxsSW50 ZXJydXB0ZXIuaD4KKysjaW5jbHVkZSAib3BlbnZkYi9UeXBlcy5oIgorKyNpbmNsdWRlICJvcGVu dmRiL0dyaWQuaCIKKysjaW5jbHVkZSAib3BlbnZkYi90cmVlL0xlYWZNYW5hZ2VyLmgiCisrI2lu Y2x1ZGUgIm9wZW52ZGIvdHJlZS9WYWx1ZUFjY2Vzc29yLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIv bWF0aC9NYXRoLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvbWF0aC9GaW5pdGVEaWZmZXJlbmNlLmgi CisrI2luY2x1ZGUgIm9wZW52ZGIvbWF0aC9PcGVyYXRvcnMuaCIKKysjaW5jbHVkZSAib3BlbnZk Yi9tYXRoL1N0ZW5jaWxzLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0 ZXIuaCIKKysjaW5jbHVkZSAib3BlbnZkYi90aHJlYWQvVGhyZWFkaW5nLmgiCisrCisgI2luY2x1 ZGUgPHRiYi9wYXJhbGxlbF9mb3IuaD4KKyAjaW5jbHVkZSA8dGJiL3BhcmFsbGVsX3NvcnQuaD4K KyAjaW5jbHVkZSA8dGJiL3BhcmFsbGVsX2ludm9rZS5oPgorKworICNpbmNsdWRlIDx0eXBlX3Ry YWl0cz4KKyAKKyBuYW1lc3BhY2Ugb3BlbnZkYiB7CitAQCAtMzI5LDcgKzMzMiw3IEBAIGlubGlu ZSBib29sCisgTGV2ZWxTZXRNZWFzdXJlPEdyaWRULCBJbnRlcnJ1cHRUPjo6Y2hlY2tJbnRlcnJ1 cHRlcigpCisgeworICAgICBpZiAodXRpbDo6d2FzSW50ZXJydXB0ZWQobUludGVycnVwdGVyKSkg eworLSAgICAgICAgdGJiOjp0YXNrOjpzZWxmKCkuY2FuY2VsX2dyb3VwX2V4ZWN1dGlvbigpOwor KyAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAgICAgcmV0dXJu IGZhbHNlOworICAgICB9CisgICAgIHJldHVybiB0cnVlOworZGlmZiAtLWdpdCBhL29wZW52ZGIv b3BlbnZkYi90b29scy9MZXZlbFNldFRyYWNrZXIuaCBiL29wZW52ZGIvb3BlbnZkYi90b29scy9M ZXZlbFNldFRyYWNrZXIuaAoraW5kZXggY2JkYzI2N2U4Li5iZmM4MDA0ZTcgMTAwNjQ0CistLS0g YS9vcGVudmRiL29wZW52ZGIvdG9vbHMvTGV2ZWxTZXRUcmFja2VyLmgKKysrKyBiL29wZW52ZGIv b3BlbnZkYi90b29scy9MZXZlbFNldFRyYWNrZXIuaAorQEAgLTEyLDI0ICsxMiwyNiBAQAorICNp Zm5kZWYgT1BFTlZEQl9UT09MU19MRVZFTF9TRVRfVFJBQ0tFUl9IQVNfQkVFTl9JTkNMVURFRAor ICNkZWZpbmUgT1BFTlZEQl9UT09MU19MRVZFTF9TRVRfVFJBQ0tFUl9IQVNfQkVFTl9JTkNMVURF RAorIAorLSNpbmNsdWRlIDx0YmIvcGFyYWxsZWxfZm9yLmg+CistI2luY2x1ZGUgPG9wZW52ZGIv VHlwZXMuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9tYXRoL01hdGguaD4KKy0jaW5jbHVkZSA8b3Bl bnZkYi9tYXRoL0Zpbml0ZURpZmZlcmVuY2UuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9tYXRoL09w ZXJhdG9ycy5oPgorLSNpbmNsdWRlIDxvcGVudmRiL21hdGgvU3RlbmNpbHMuaD4KKy0jaW5jbHVk ZSA8b3BlbnZkYi9tYXRoL1RyYW5zZm9ybS5oPgorLSNpbmNsdWRlIDxvcGVudmRiL0dyaWQuaD4K Ky0jaW5jbHVkZSA8b3BlbnZkYi91dGlsL051bGxJbnRlcnJ1cHRlci5oPgorLSNpbmNsdWRlIDxv cGVudmRiL3RyZWUvVmFsdWVBY2Nlc3Nvci5oPgorLSNpbmNsdWRlIDxvcGVudmRiL3RyZWUvTGVh Zk1hbmFnZXIuaD4KKysjaW5jbHVkZSAib3BlbnZkYi9UeXBlcy5oIgorKyNpbmNsdWRlICJvcGVu dmRiL0dyaWQuaCIKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRoL01hdGguaCIKKysjaW5jbHVkZSAi b3BlbnZkYi9tYXRoL0Zpbml0ZURpZmZlcmVuY2UuaCIKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRo L09wZXJhdG9ycy5oIgorKyNpbmNsdWRlICJvcGVudmRiL21hdGgvU3RlbmNpbHMuaCIKKysjaW5j bHVkZSAib3BlbnZkYi9tYXRoL1RyYW5zZm9ybS5oIgorKyNpbmNsdWRlICJvcGVudmRiL3V0aWwv TnVsbEludGVycnVwdGVyLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdGhyZWFkL1RocmVhZGluZy5o IgorKyNpbmNsdWRlICJvcGVudmRiL3RyZWUvVmFsdWVBY2Nlc3Nvci5oIgorKyNpbmNsdWRlICJv cGVudmRiL3RyZWUvTGVhZk1hbmFnZXIuaCIKKyAjaW5jbHVkZSAiQ2hhbmdlQmFja2dyb3VuZC5o Ii8vIGZvciBjaGFuZ2VMZXZlbFNldEJhY2tncm91bmQKKyAjaW5jbHVkZSAiTW9ycGhvbG9neS5o Ii8vZm9yIGRpbGF0ZUFjdGl2ZVZhbHVlcworICNpbmNsdWRlICJQcnVuZS5oIi8vIGZvciBwcnVu ZUxldmVsU2V0CisrCisrI2luY2x1ZGUgPHRiYi9wYXJhbGxlbF9mb3IuaD4KKysKKyAjaW5jbHVk ZSA8ZnVuY3Rpb25hbD4KKyAjaW5jbHVkZSA8dHlwZV90cmFpdHM+CisgCistCisgbmFtZXNwYWNl IG9wZW52ZGIgeworIE9QRU5WREJfVVNFX1ZFUlNJT05fTkFNRVNQQUNFCisgbmFtZXNwYWNlIE9Q RU5WREJfVkVSU0lPTl9OQU1FIHsKK0BAIC0zODMsNyArMzg1LDcgQEAgTGV2ZWxTZXRUcmFja2Vy PEdyaWRULCBJbnRlcnJ1cHRUPjo6CisgY2hlY2tJbnRlcnJ1cHRlcigpCisgeworICAgICBpZiAo dXRpbDo6d2FzSW50ZXJydXB0ZWQobUludGVycnVwdGVyKSkgeworLSAgICAgICAgdGJiOjp0YXNr OjpzZWxmKCkuY2FuY2VsX2dyb3VwX2V4ZWN1dGlvbigpOworKyAgICAgICAgdGhyZWFkOjpjYW5j ZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICB9CisgICAg IHJldHVybiB0cnVlOworZGlmZiAtLWdpdCBhL29wZW52ZGIvb3BlbnZkYi90b29scy9NZXNoVG9W b2x1bWUuaCBiL29wZW52ZGIvb3BlbnZkYi90b29scy9NZXNoVG9Wb2x1bWUuaAoraW5kZXggNjY0 M2M4ZjA1Li5kZTM0MDZlZGEgMTAwNjQ0CistLS0gYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvTWVz aFRvVm9sdW1lLmgKKysrKyBiL29wZW52ZGIvb3BlbnZkYi90b29scy9NZXNoVG9Wb2x1bWUuaAor QEAgLTE2LDEyICsxNiwxMyBAQAorICNpZm5kZWYgT1BFTlZEQl9UT09MU19NRVNIX1RPX1ZPTFVN RV9IQVNfQkVFTl9JTkNMVURFRAorICNkZWZpbmUgT1BFTlZEQl9UT09MU19NRVNIX1RPX1ZPTFVN RV9IQVNfQkVFTl9JTkNMVURFRAorIAorLSNpbmNsdWRlIDxvcGVudmRiL1BsYXRmb3JtLmg+IC8v IGZvciBPUEVOVkRCX0hBU19DWFgxMQorLSNpbmNsdWRlIDxvcGVudmRiL1R5cGVzLmg+CistI2lu Y2x1ZGUgPG9wZW52ZGIvbWF0aC9GaW5pdGVEaWZmZXJlbmNlLmg+IC8vIGZvciBHb2R1bm92c05v cm1TcXJkCistI2luY2x1ZGUgPG9wZW52ZGIvbWF0aC9Qcm94aW1pdHkuaD4gLy8gZm9yIGNsb3Nl c3RQb2ludE9uVHJpYW5nbGVUb1BvaW50CistI2luY2x1ZGUgPG9wZW52ZGIvdXRpbC9OdWxsSW50 ZXJydXB0ZXIuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi91dGlsL1V0aWwuaD4KKysjaW5jbHVkZSAi b3BlbnZkYi9QbGF0Zm9ybS5oIiAvLyBmb3IgT1BFTlZEQl9IQVNfQ1hYMTEKKysjaW5jbHVkZSAi b3BlbnZkYi9UeXBlcy5oIgorKyNpbmNsdWRlICJvcGVudmRiL21hdGgvRmluaXRlRGlmZmVyZW5j ZS5oIiAvLyBmb3IgR29kdW5vdnNOb3JtU3FyZAorKyNpbmNsdWRlICJvcGVudmRiL21hdGgvUHJv eGltaXR5LmgiIC8vIGZvciBjbG9zZXN0UG9pbnRPblRyaWFuZ2xlVG9Qb2ludAorKyNpbmNsdWRl ICJvcGVudmRiL3V0aWwvTnVsbEludGVycnVwdGVyLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdXRp bC9VdGlsLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdGhyZWFkL1RocmVhZGluZy5oIgorIAorICNp bmNsdWRlICJDaGFuZ2VCYWNrZ3JvdW5kLmgiCisgI2luY2x1ZGUgIlBydW5lLmgiIC8vIGZvciBw cnVuZUluYWN0aXZlIGFuZCBwcnVuZUxldmVsU2V0CitAQCAtMzMsNyArMzQsNyBAQAorICNpbmNs dWRlIDx0YmIvcGFyYWxsZWxfcmVkdWNlLmg+CisgI2luY2x1ZGUgPHRiYi9wYXJ0aXRpb25lci5o PgorICNpbmNsdWRlIDx0YmIvdGFza19ncm91cC5oPgorLSNpbmNsdWRlIDx0YmIvdGFza19zY2hl ZHVsZXJfaW5pdC5oPgorKyNpbmNsdWRlIDx0YmIvdGFza19hcmVuYS5oPgorIAorICNpbmNsdWRl IDxhbGdvcml0aG0+IC8vIGZvciBzdGQ6OnNvcnQoKQorICNpbmNsdWRlIDxjbWF0aD4gLy8gZm9y IHN0ZDo6aXNmaW5pdGUoKSwgc3RkOjppc25hbigpCitAQCAtMTEzMiw3ICsxMTMzLDcgQEAgaW5s aW5lIHZvaWQKKyBmaWxsQXJyYXkoVmFsdWVUeXBlKiBhcnJheSwgY29uc3QgVmFsdWVUeXBlIHZh bCwgY29uc3Qgc2l6ZV90IGxlbmd0aCkKKyB7CisgICAgIGNvbnN0IGF1dG8gZ3JhaW5TaXplID0g c3RkOjptYXg8c2l6ZV90PigKKy0gICAgICAgIGxlbmd0aCAvIHRiYjo6dGFza19zY2hlZHVsZXJf aW5pdDo6ZGVmYXVsdF9udW1fdGhyZWFkcygpLCAxMDI0KTsKKysgICAgICAgIGxlbmd0aCAvIHRi Yjo6dGhpc190YXNrX2FyZW5hOjptYXhfY29uY3VycmVuY3koKSwgMTAyNCk7CisgICAgIGNvbnN0 IHRiYjo6YmxvY2tlZF9yYW5nZTxzaXplX3Q+IHJhbmdlKDAsIGxlbmd0aCwgZ3JhaW5TaXplKTsK KyAgICAgdGJiOjpwYXJhbGxlbF9mb3IocmFuZ2UsIEZpbGxBcnJheTxWYWx1ZVR5cGU+KGFycmF5 LCB2YWwpLCB0YmI6OnNpbXBsZV9wYXJ0aXRpb25lcigpKTsKKyB9CitAQCAtMTk4OSw3ICsxOTkw LDcgQEAgY2xhc3MgVm94ZWxpemVQb2x5Z29ucworICAgICAgICAgZm9yIChzaXplX3QgbiA9IHJh bmdlLmJlZ2luKCksIE4gPSByYW5nZS5lbmQoKTsgbiA8IE47ICsrbikgeworIAorICAgICAgICAg ICAgIGlmICh0aGlzLT53YXNJbnRlcnJ1cHRlZCgpKSB7CistICAgICAgICAgICAgICAgIHRiYjo6 dGFzazo6c2VsZigpLmNhbmNlbF9ncm91cF9leGVjdXRpb24oKTsKKysgICAgICAgICAgICAgICAg dGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAgICAgICAgICAgICBicmVhazsK KyAgICAgICAgICAgICB9CisgCitAQCAtMjE0Myw3ICsyMTQ0LDcgQEAgY2xhc3MgVm94ZWxpemVQ b2x5Z29ucworIAorICAgICAgICAgd2hpbGUgKCFjb29yZExpc3QuZW1wdHkoKSkgeworICAgICAg ICAgICAgIGlmIChpbnRlcnJ1cHRlciAmJiBpbnRlcnJ1cHRlci0+d2FzSW50ZXJydXB0ZWQoKSkg eworLSAgICAgICAgICAgICAgICB0YmI6OnRhc2s6OnNlbGYoKS5jYW5jZWxfZ3JvdXBfZXhlY3V0 aW9uKCk7CisrICAgICAgICAgICAgICAgIHRocmVhZDo6Y2FuY2VsR3JvdXBFeGVjdXRpb24oKTsK KyAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGZv ciAoSW50MzIgcGFzcyA9IDA7IHBhc3MgPCAxMDQ4NTc2ICYmICFjb29yZExpc3QuZW1wdHkoKTsg KytwYXNzKSB7CitkaWZmIC0tZ2l0IGEvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL01vcnBob2xvZ3ku aCBiL29wZW52ZGIvb3BlbnZkYi90b29scy9Nb3JwaG9sb2d5LmgKK2luZGV4IDczNjk4MmVmNS4u MGExZTcxMDA5IDEwMDY0NAorLS0tIGEvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL01vcnBob2xvZ3ku aAorKysrIGIvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL01vcnBob2xvZ3kuaAorQEAgLTI0LDcgKzI0 LDcgQEAKKyAjaW5jbHVkZSAib3BlbnZkYi90cmVlL1ZhbHVlQWNjZXNzb3IuaCIKKyAjaW5jbHVk ZSAib3BlbnZkYi90cmVlL0xlYWZNYW5hZ2VyLmgiCisgCistI2luY2x1ZGUgPHRiYi90YXNrX3Nj aGVkdWxlcl9pbml0Lmg+CisrI2luY2x1ZGUgPHRiYi90YXNrX2FyZW5hLmg+CisgI2luY2x1ZGUg PHRiYi9lbnVtZXJhYmxlX3RocmVhZF9zcGVjaWZpYy5oPgorICNpbmNsdWRlIDx0YmIvcGFyYWxs ZWxfZm9yLmg+CisgCitAQCAtNzI2LDcgKzcyNiw3IEBAIHZvaWQgTW9ycGhvbG9neTxUcmVlVHlw ZT46OmRpbGF0ZVZveGVscyhjb25zdCBzaXplX3QgaXRlciwKKyAgICAgICAgIH0KKyAKKyAgICAg ICAgIC8vIEBub3RlIHRoaXMgZ3JhaW4gc2l6ZSBpcyB1c2VkIGZvciBvcHRpbWFsIHRocmVhZGlu ZworLSAgICAgICAgY29uc3Qgc2l6ZV90IG51bVRocmVhZHMgPSBzaXplX3QodGJiOjp0YXNrX3Nj aGVkdWxlcl9pbml0OjpkZWZhdWx0X251bV90aHJlYWRzKCkpOworKyAgICAgICAgY29uc3Qgc2l6 ZV90IG51bVRocmVhZHMgPSBzaXplX3QodGJiOjp0aGlzX3Rhc2tfYXJlbmE6Om1heF9jb25jdXJy ZW5jeSgpKTsKKyAgICAgICAgIGNvbnN0IHNpemVfdCBzdWJUcmVlU2l6ZSA9IG1hdGg6Ok1heChz aXplX3QoMSksIGFycmF5LnNpemUoKS8oMipudW1UaHJlYWRzKSk7CisgCisgICAgICAgICAvLyBw ZXJmb3JtIHJlY3Vyc2l2ZSBkaWxhdGlvbiB0byBzdWIgdHJlZXMKK2RpZmYgLS1naXQgYS9vcGVu dmRiL29wZW52ZGIvdG9vbHMvUGFydGljbGVzVG9MZXZlbFNldC5oIGIvb3BlbnZkYi9vcGVudmRi L3Rvb2xzL1BhcnRpY2xlc1RvTGV2ZWxTZXQuaAoraW5kZXggNzM5YWYyYjY5Li5mOWMxOTkxMWMg MTAwNjQ0CistLS0gYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvUGFydGljbGVzVG9MZXZlbFNldC5o CisrKysgYi9vcGVudmRiL29wZW52ZGIvdG9vbHMvUGFydGljbGVzVG9MZXZlbFNldC5oCitAQCAt NjIsMTkgKzYyLDIzIEBACisgI2lmbmRlZiBPUEVOVkRCX1RPT0xTX1BBUlRJQ0xFU19UT19MRVZF TFNFVF9IQVNfQkVFTl9JTkNMVURFRAorICNkZWZpbmUgT1BFTlZEQl9UT09MU19QQVJUSUNMRVNf VE9fTEVWRUxTRVRfSEFTX0JFRU5fSU5DTFVERUQKKyAKKy0jaW5jbHVkZSA8dGJiL3BhcmFsbGVs X3JlZHVjZS5oPgorLSNpbmNsdWRlIDx0YmIvYmxvY2tlZF9yYW5nZS5oPgorLSNpbmNsdWRlIDxv cGVudmRiL1R5cGVzLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvR3JpZC5oPgorLSNpbmNsdWRlIDxv cGVudmRiL21hdGgvTWF0aC5oPgorLSNpbmNsdWRlIDxvcGVudmRiL21hdGgvVHJhbnNmb3JtLmg+ CistI2luY2x1ZGUgPG9wZW52ZGIvdHJlZS9MZWFmTWFuYWdlci5oPgorLSNpbmNsdWRlIDxvcGVu dmRiL3V0aWwvbG9nZ2luZy5oPgorLSNpbmNsdWRlIDxvcGVudmRiL3V0aWwvTnVsbEludGVycnVw dGVyLmg+CisrI2luY2x1ZGUgIm9wZW52ZGIvVHlwZXMuaCIKKysjaW5jbHVkZSAib3BlbnZkYi9H cmlkLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvbWF0aC9NYXRoLmgiCisrI2luY2x1ZGUgIm9wZW52 ZGIvbWF0aC9UcmFuc2Zvcm0uaCIKKysjaW5jbHVkZSAib3BlbnZkYi90cmVlL0xlYWZNYW5hZ2Vy LmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdXRpbC9sb2dnaW5nLmgiCisrI2luY2x1ZGUgIm9wZW52 ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIuaCIKKysjaW5jbHVkZSAib3BlbnZkYi90aHJlYWQvVGhy ZWFkaW5nLmgiCisrCisgI2luY2x1ZGUgIkNvbXBvc2l0ZS5oIiAvLyBmb3IgY3NnVW5pb24oKQor ICNpbmNsdWRlICJQb2ludFBhcnRpdGlvbmVyLmgiCisgI2luY2x1ZGUgIlBydW5lLmgiCisgI2lu Y2x1ZGUgIlNpZ25lZEZsb29kRmlsbC5oIgorKworKyNpbmNsdWRlIDx0YmIvcGFyYWxsZWxfcmVk dWNlLmg+CisrI2luY2x1ZGUgPHRiYi9ibG9ja2VkX3JhbmdlLmg+CisrCisgI2luY2x1ZGUgPGZ1 bmN0aW9uYWw+CisgI2luY2x1ZGUgPGlvc3RyZWFtPgorICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4K K0BAIC03MzgsNyArNzQyLDcgQEAgc3RydWN0IFBhcnRpY2xlc1RvTGV2ZWxTZXQ8U2RmR3JpZFQs IEF0dHJpYnV0ZVQsIEludGVycnVwdGVyVD46OlJhc3RlcgorICAgICAgICAgZm9yIChDb29yZCBj ID0gbG87IGMueCgpIDw9IGhpLngoKTsgKytjLngoKSkgeworICAgICAgICAgICAgIC8vb25seSBj aGVjayBpbnRlcnJ1cHRlciBldmVyeSAzMid0aCBzY2FuIGluIHgKKyAgICAgICAgICAgICBpZiAo IShjb3VudCsrICYgKCgxPDw1KS0xKSkgJiYgdXRpbDo6d2FzSW50ZXJydXB0ZWQobVBhcmVudC5t SW50ZXJydXB0ZXIpKSB7CistICAgICAgICAgICAgICAgIHRiYjo6dGFzazo6c2VsZigpLmNhbmNl bF9ncm91cF9leGVjdXRpb24oKTsKKysgICAgICAgICAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91 cEV4ZWN1dGlvbigpOworICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAg ICAgfQorICAgICAgICAgICAgIGNvbnN0IFJlYWwgeDIgPSBtYXRoOjpQb3cyKGMueCgpIC0gUFsw XSk7CitAQCAtODA0LDcgKzgwOCw3IEBAIHN0cnVjdCBQYXJ0aWNsZXNUb0xldmVsU2V0PFNkZkdy aWRULCBBdHRyaWJ1dGVULCBJbnRlcnJ1cHRlclQ+OjpSYXN0ZXIKKyAgICAgICAgIC8vIERlbnNl bHkgZmlsbCB0aGUgcmVtYWluaW5nIHJlZ2lvbnMuCisgICAgICAgICBmb3IgKGNvbnN0IGF1dG8m IGJib3g6IHBhZGRpbmcpIHsKKyAgICAgICAgICAgICBpZiAodXRpbDo6d2FzSW50ZXJydXB0ZWQo bVBhcmVudC5tSW50ZXJydXB0ZXIpKSB7CistICAgICAgICAgICAgICAgIHRiYjo6dGFzazo6c2Vs ZigpLmNhbmNlbF9ncm91cF9leGVjdXRpb24oKTsKKysgICAgICAgICAgICAgICAgdGhyZWFkOjpj YW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg ICAgICAgICAgICAgfQorICAgICAgICAgICAgIGNvbnN0IENvb3JkICZibWluID0gYmJveC5taW4o KSwgJmJtYXggPSBiYm94Lm1heCgpOworZGlmZiAtLWdpdCBhL29wZW52ZGIvb3BlbnZkYi90b29s cy9Qb2ludEFkdmVjdC5oIGIvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL1BvaW50QWR2ZWN0LmgKK2lu ZGV4IDEyYjExNzdhZC4uZTQ4N2JmYjNlIDEwMDY0NAorLS0tIGEvb3BlbnZkYi9vcGVudmRiL3Rv b2xzL1BvaW50QWR2ZWN0LmgKKysrKyBiL29wZW52ZGIvb3BlbnZkYi90b29scy9Qb2ludEFkdmVj dC5oCitAQCAtMTAsMTYgKzEwLDE5IEBACisgI2lmbmRlZiBPUEVOVkRCX1RPT0xTX1BPSU5UX0FE VkVDVF9IQVNfQkVFTl9JTkNMVURFRAorICNkZWZpbmUgT1BFTlZEQl9UT09MU19QT0lOVF9BRFZF Q1RfSEFTX0JFRU5fSU5DTFVERUQKKyAKKy0jaW5jbHVkZSA8b3BlbnZkYi9vcGVudmRiLmg+Cist I2luY2x1ZGUgPG9wZW52ZGIvbWF0aC9NYXRoLmg+ICAgICAgICAgICAgIC8vIG1pbgorLSNpbmNs dWRlIDxvcGVudmRiL1R5cGVzLmg+ICAgICAgICAgICAgICAgICAvLyBWZWMzIHR5cGVzIGFuZCB2 ZXJzaW9uIG51bWJlcgorLSNpbmNsdWRlIDxvcGVudmRiL0dyaWQuaD4gICAgICAgICAgICAgICAg ICAvLyBncmlkCistI2luY2x1ZGUgPG9wZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIuaD4KKysj aW5jbHVkZSAib3BlbnZkYi9vcGVudmRiLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvVHlwZXMuaCIg ICAgICAgICAgICAgICAgIC8vIFZlYzMgdHlwZXMgYW5kIHZlcnNpb24gbnVtYmVyCisrI2luY2x1 ZGUgIm9wZW52ZGIvR3JpZC5oIiAgICAgICAgICAgICAgICAgIC8vIGdyaWQKKysjaW5jbHVkZSAi b3BlbnZkYi9tYXRoL01hdGguaCIgICAgICAgICAgICAgLy8gbWluCisrI2luY2x1ZGUgIm9wZW52 ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIuaCIKKysjaW5jbHVkZSAib3BlbnZkYi90aHJlYWQvVGhy ZWFkaW5nLmgiCisgI2luY2x1ZGUgIkludGVycG9sYXRpb24uaCIgICAgICAgICAgICAgICAgIC8v IHNhbXBsaW5nCisgI2luY2x1ZGUgIlZlbG9jaXR5RmllbGRzLmgiICAgICAgICAgICAgICAgIC8v IFZlbG9jaXR5SW50ZWdyYXRvcgorKworICNpbmNsdWRlIDx0YmIvYmxvY2tlZF9yYW5nZS5oPiAg ICAgICAgICAgICAvLyB0aHJlYWRpbmcKKyAjaW5jbHVkZSA8dGJiL3BhcmFsbGVsX2Zvci5oPiAg ICAgICAgICAgICAgLy8gdGhyZWFkaW5nCisgI2luY2x1ZGUgPHRiYi90YXNrLmg+ICAgICAgICAg ICAgICAgICAgICAgIC8vIGZvciBjYW5jZWwKKysKKyAjaW5jbHVkZSA8dmVjdG9yPgorIAorIAor QEAgLTE2Nyw3ICsxNzAsNyBAQCBjbGFzcyBQb2ludEFkdmVjdAorICAgICB2b2lkIG9wZXJhdG9y KCkgKGNvbnN0IHRiYjo6YmxvY2tlZF9yYW5nZTxzaXplX3Q+ICZyYW5nZSkgY29uc3QKKyAgICAg eworICAgICAgICAgaWYgKG1JbnRlcnJ1cHRlciAmJiBtSW50ZXJydXB0ZXItPndhc0ludGVycnVw dGVkKCkpIHsKKy0gICAgICAgICAgICB0YmI6OnRhc2s6OnNlbGYoKS5jYW5jZWxfZ3JvdXBfZXhl Y3V0aW9uKCk7CisrICAgICAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOwor ICAgICAgICAgfQorIAorICAgICAgICAgVmVsb2NpdHlGaWVsZEludGVncmF0b3IgIHZlbEZpZWxk KCptVmVsR3JpZCk7CitAQCAtMzA3LDcgKzMxMCw3IEBAIGNsYXNzIENvbnN0cmFpbmVkUG9pbnRB ZHZlY3QKKyAgICAgdm9pZCBvcGVyYXRvcigpIChjb25zdCB0YmI6OmJsb2NrZWRfcmFuZ2U8c2l6 ZV90PiAmcmFuZ2UpIGNvbnN0CisgICAgIHsKKyAgICAgICAgIGlmIChtSW50ZXJydXB0ZXIgJiYg bUludGVycnVwdGVyLT53YXNJbnRlcnJ1cHRlZCgpKSB7CistICAgICAgICAgICAgdGJiOjp0YXNr OjpzZWxmKCkuY2FuY2VsX2dyb3VwX2V4ZWN1dGlvbigpOworKyAgICAgICAgICAgIHRocmVhZDo6 Y2FuY2VsR3JvdXBFeGVjdXRpb24oKTsKKyAgICAgICAgIH0KKyAKKyAgICAgICAgIFZlbG9jaXR5 SW50ZWdyYXRvclR5cGUgdmVsRmllbGQoKm1WZWxHcmlkKTsKK2RpZmYgLS1naXQgYS9vcGVudmRi L29wZW52ZGIvdG9vbHMvUG9pbnRJbmRleEdyaWQuaCBiL29wZW52ZGIvb3BlbnZkYi90b29scy9Q b2ludEluZGV4R3JpZC5oCitpbmRleCBlOWViZjk2ZjcuLmIyZTM3OGE3OSAxMDA2NDQKKy0tLSBh L29wZW52ZGIvb3BlbnZkYi90b29scy9Qb2ludEluZGV4R3JpZC5oCisrKysgYi9vcGVudmRiL29w ZW52ZGIvdG9vbHMvUG9pbnRJbmRleEdyaWQuaAorQEAgLTE2LDYgKzE2LDcgQEAKKyAjaWZuZGVm IE9QRU5WREJfVE9PTFNfUE9JTlRfSU5ERVhfR1JJRF9IQVNfQkVFTl9JTkNMVURFRAorICNkZWZp bmUgT1BFTlZEQl9UT09MU19QT0lOVF9JTkRFWF9HUklEX0hBU19CRUVOX0lOQ0xVREVECisgCisr I2luY2x1ZGUgIm9wZW52ZGIvdGhyZWFkL1RocmVhZGluZy5oIgorICNpbmNsdWRlICJQb2ludFBh cnRpdGlvbmVyLmgiCisgCisgI2luY2x1ZGUgPG9wZW52ZGIvdmVyc2lvbi5oPgorQEAgLTM1NSw3 ICszNTYsNyBAQCBzdHJ1Y3QgVmFsaWRQYXJ0aXRpb25pbmdPcAorICAgICB2b2lkIG9wZXJhdG9y KCkoTGVhZlQgJmxlYWYsIHNpemVfdCAvKmxlYWZJbmRleCovKSBjb25zdAorICAgICB7CisgICAg ICAgICBpZiAoKCptSGFzQ2hhbmdlZCkpIHsKKy0gICAgICAgICAgICB0YmI6OnRhc2s6OnNlbGYo KS5jYW5jZWxfZ3JvdXBfZXhlY3V0aW9uKCk7CisrICAgICAgICAgICAgdGhyZWFkOjpjYW5jZWxH cm91cEV4ZWN1dGlvbigpOworICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgIH0KKyAKK2Rp ZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvUG9pbnRQYXJ0aXRpb25lci5oIGIvb3Bl bnZkYi9vcGVudmRiL3Rvb2xzL1BvaW50UGFydGl0aW9uZXIuaAoraW5kZXggY2NmNTBhYjA1Li5m N2Y2ZmMxM2QgMTAwNjQ0CistLS0gYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvUG9pbnRQYXJ0aXRp b25lci5oCisrKysgYi9vcGVudmRiL29wZW52ZGIvdG9vbHMvUG9pbnRQYXJ0aXRpb25lci5oCitA QCAtMjMsNyArMjMsNyBAQAorIAorICNpbmNsdWRlIDx0YmIvYmxvY2tlZF9yYW5nZS5oPgorICNp bmNsdWRlIDx0YmIvcGFyYWxsZWxfZm9yLmg+CistI2luY2x1ZGUgPHRiYi90YXNrX3NjaGVkdWxl cl9pbml0Lmg+CisrI2luY2x1ZGUgPHRiYi90YXNrX2FyZW5hLmg+CisgCisgI2luY2x1ZGUgPGFs Z29yaXRobT4KKyAjaW5jbHVkZSA8Y21hdGg+IC8vIGZvciBzdGQ6OmlzZmluaXRlKCkKK0BAIC03 NjQsNyArNzY0LDcgQEAgaW5saW5lIHZvaWQgYmluQW5kU2VnbWVudCgKKyAgICAgdXNpbmcgSW5k ZXhQYWlyTGlzdE1hcCA9IHN0ZDo6bWFwPENvb3JkLCBJbmRleFBhaXJMaXN0UHRyPjsKKyAgICAg dXNpbmcgSW5kZXhQYWlyTGlzdE1hcFB0ciA9IHN0ZDo6c2hhcmVkX3B0cjxJbmRleFBhaXJMaXN0 TWFwPjsKKyAKKy0gICAgc2l6ZV90IG51bVRhc2tzID0gMSwgbnVtVGhyZWFkcyA9IHNpemVfdCh0 YmI6OnRhc2tfc2NoZWR1bGVyX2luaXQ6OmRlZmF1bHRfbnVtX3RocmVhZHMoKSk7CisrICAgIHNp emVfdCBudW1UYXNrcyA9IDEsIG51bVRocmVhZHMgPSBzaXplX3QodGJiOjp0aGlzX3Rhc2tfYXJl bmE6Om1heF9jb25jdXJyZW5jeSgpKTsKKyAgICAgaWYgKHBvaW50cy5zaXplKCkgPiAobnVtVGhy ZWFkcyAqIDIpKSBudW1UYXNrcyA9IG51bVRocmVhZHMgKiAyOworICAgICBlbHNlIGlmIChwb2lu dHMuc2l6ZSgpID4gbnVtVGhyZWFkcykgbnVtVGFza3MgPSBudW1UaHJlYWRzOworIAorZGlmZiAt LWdpdCBhL29wZW52ZGIvb3BlbnZkYi90b29scy9Qb2ludHNUb01hc2suaCBiL29wZW52ZGIvb3Bl bnZkYi90b29scy9Qb2ludHNUb01hc2suaAoraW5kZXggNTkyYWI3YTE1Li44YTI3NmZiMDQgMTAw NjQ0CistLS0gYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvUG9pbnRzVG9NYXNrLmgKKysrKyBiL29w ZW52ZGIvb3BlbnZkYi90b29scy9Qb2ludHNUb01hc2suaAorQEAgLTQ2LDE0ICs0NiwxOCBAQAor ICNpZm5kZWYgT1BFTlZEQl9UT09MU19QT0lOVFNUT01BU0tfSEFTX0JFRU5fSU5DTFVERUQKKyAj ZGVmaW5lIE9QRU5WREJfVE9PTFNfUE9JTlRTVE9NQVNLX0hBU19CRUVOX0lOQ0xVREVECisgCisr CisrI2luY2x1ZGUgIm9wZW52ZGIvb3BlbnZkYi5oIiAvLyBmb3IgTWFza0dyaWQKKysjaW5jbHVk ZSAib3BlbnZkYi9HcmlkLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvVHlwZXMuaCIKKysjaW5jbHVk ZSAib3BlbnZkYi91dGlsL051bGxJbnRlcnJ1cHRlci5oIgorKyNpbmNsdWRlICJvcGVudmRiL3Ro cmVhZC9UaHJlYWRpbmcuaCIKKysKKyAjaW5jbHVkZSA8dGJiL2VudW1lcmFibGVfdGhyZWFkX3Nw ZWNpZmljLmg+CisgI2luY2x1ZGUgPHRiYi9wYXJhbGxlbF9mb3IuaD4KKyAjaW5jbHVkZSA8dGJi L3BhcmFsbGVsX3JlZHVjZS5oPgorICNpbmNsdWRlIDx0YmIvYmxvY2tlZF9yYW5nZS5oPgorLSNp bmNsdWRlIDxvcGVudmRiL29wZW52ZGIuaD4gLy8gZm9yIE1hc2tHcmlkCistI2luY2x1ZGUgPG9w ZW52ZGIvR3JpZC5oPgorLSNpbmNsdWRlIDxvcGVudmRiL1R5cGVzLmg+CistI2luY2x1ZGUgPG9w ZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIuaD4KKysKKyAjaW5jbHVkZSA8dmVjdG9yPgorIAor IAorQEAgLTE1MCw3ICsxNTQsNyBAQCBjbGFzcyBQb2ludHNUb01hc2sKKyAgICAgYm9vbCBpbnRl cnJ1cHQoKSBjb25zdAorICAgICB7CisgICAgICAgICBpZiAobUludGVycnVwdGVyICYmIHV0aWw6 Ondhc0ludGVycnVwdGVkKG1JbnRlcnJ1cHRlcikpIHsKKy0gICAgICAgICAgICB0YmI6OnRhc2s6 OnNlbGYoKS5jYW5jZWxfZ3JvdXBfZXhlY3V0aW9uKCk7CisrICAgICAgICAgICAgdGhyZWFkOjpj YW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg ICAgfQorICAgICAgICAgcmV0dXJuIGZhbHNlOworZGlmZiAtLWdpdCBhL29wZW52ZGIvb3BlbnZk Yi90b29scy9Wb2x1bWVBZHZlY3QuaCBiL29wZW52ZGIvb3BlbnZkYi90b29scy9Wb2x1bWVBZHZl Y3QuaAoraW5kZXggZTdlZWM3NDBlLi5mMzhlYWE5YzIgMTAwNjQ0CistLS0gYS9vcGVudmRiL29w ZW52ZGIvdG9vbHMvVm9sdW1lQWR2ZWN0LmgKKysrKyBiL29wZW52ZGIvb3BlbnZkYi90b29scy9W b2x1bWVBZHZlY3QuaAorQEAgLTEzLDE1ICsxMywxOCBAQAorICNpZm5kZWYgT1BFTlZEQl9UT09M U19WT0xVTUVfQURWRUNUX0hBU19CRUVOX0lOQ0xVREVECisgI2RlZmluZSBPUEVOVkRCX1RPT0xT X1ZPTFVNRV9BRFZFQ1RfSEFTX0JFRU5fSU5DTFVERUQKKyAKKy0jaW5jbHVkZSA8dGJiL3BhcmFs bGVsX2Zvci5oPgorLSNpbmNsdWRlIDxvcGVudmRiL1R5cGVzLmg+CistI2luY2x1ZGUgPG9wZW52 ZGIvbWF0aC9NYXRoLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIu aD4KKysjaW5jbHVkZSAib3BlbnZkYi9UeXBlcy5oIgorKyNpbmNsdWRlICJvcGVudmRiL21hdGgv TWF0aC5oIgorKyNpbmNsdWRlICJvcGVudmRiL3V0aWwvTnVsbEludGVycnVwdGVyLmgiCisrI2lu Y2x1ZGUgIm9wZW52ZGIvdGhyZWFkL1RocmVhZGluZy5oIgorICNpbmNsdWRlICJJbnRlcnBvbGF0 aW9uLmgiLy8gZm9yIFNhbXBsZXIKKyAjaW5jbHVkZSAiVmVsb2NpdHlGaWVsZHMuaCIgLy8gZm9y IFZlbG9jaXR5SW50ZWdyYXRvcgorICNpbmNsdWRlICJNb3JwaG9sb2d5LmgiLy9mb3IgZGlsYXRl QWN0aXZlVmFsdWVzCisgI2luY2x1ZGUgIlBydW5lLmgiLy8gZm9yIHBydW5lCisgI2luY2x1ZGUg IlN0YXRpc3RpY3MuaCIgLy8gZm9yIGV4dHJlbWEKKysKKysjaW5jbHVkZSA8dGJiL3BhcmFsbGVs X2Zvci5oPgorKworICNpbmNsdWRlIDxmdW5jdGlvbmFsPgorIAorIAorQEAgLTI5NCw3ICsyOTcs NyBAQCBjbGFzcyBWb2x1bWVBZHZlY3Rpb24KKyAgICAgYm9vbCBpbnRlcnJ1cHQoKSBjb25zdAor ICAgICB7CisgICAgICAgICBpZiAobUludGVycnVwdGVyICYmIHV0aWw6Ondhc0ludGVycnVwdGVk KG1JbnRlcnJ1cHRlcikpIHsKKy0gICAgICAgICAgICB0YmI6OnRhc2s6OnNlbGYoKS5jYW5jZWxf Z3JvdXBfZXhlY3V0aW9uKCk7CisrICAgICAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1 dGlvbigpOworICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgfQorICAgICAgICAg cmV0dXJuIGZhbHNlOworZGlmZiAtLWdpdCBhL29wZW52ZGIvb3BlbnZkYi90b29scy9Wb2x1bWVU b01lc2guaCBiL29wZW52ZGIvb3BlbnZkYi90b29scy9Wb2x1bWVUb01lc2guaAoraW5kZXggYTgz NGRkM2IzLi5hNDQ2ZjgwNmEgMTAwNjQ0CistLS0gYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvVm9s dW1lVG9NZXNoLmgKKysrKyBiL29wZW52ZGIvb3BlbnZkYi90b29scy9Wb2x1bWVUb01lc2guaAor QEAgLTE4LDcgKzE4LDcgQEAKKyAjaW5jbHVkZSA8dGJiL2Jsb2NrZWRfcmFuZ2UuaD4KKyAjaW5j bHVkZSA8dGJiL3BhcmFsbGVsX2Zvci5oPgorICNpbmNsdWRlIDx0YmIvcGFyYWxsZWxfcmVkdWNl Lmg+CistI2luY2x1ZGUgPHRiYi90YXNrX3NjaGVkdWxlcl9pbml0Lmg+CisrI2luY2x1ZGUgPHRi Yi90YXNrX2FyZW5hLmg+CisgCisgI2luY2x1ZGUgPGNtYXRoPiAvLyBmb3Igc3RkOjppc2Zpbml0 ZSgpCisgI2luY2x1ZGUgPG1hcD4KK0BAIC0zODgsNyArMzg4LDcgQEAgaW5saW5lIHZvaWQKKyBm aWxsQXJyYXkoVmFsdWVUeXBlKiBhcnJheSwgY29uc3QgVmFsdWVUeXBlJiB2YWwsIGNvbnN0IHNp emVfdCBsZW5ndGgpCisgeworICAgICBjb25zdCBhdXRvIGdyYWluU2l6ZSA9IHN0ZDo6bWF4PHNp emVfdD4oCistICAgICAgICBsZW5ndGggLyB0YmI6OnRhc2tfc2NoZWR1bGVyX2luaXQ6OmRlZmF1 bHRfbnVtX3RocmVhZHMoKSwgMTAyNCk7CisrICAgICAgICBsZW5ndGggLyB0YmI6OnRoaXNfdGFz a19hcmVuYTo6bWF4X2NvbmN1cnJlbmN5KCksIDEwMjQpOworICAgICBjb25zdCB0YmI6OmJsb2Nr ZWRfcmFuZ2U8c2l6ZV90PiByYW5nZSgwLCBsZW5ndGgsIGdyYWluU2l6ZSk7CisgICAgIHRiYjo6 cGFyYWxsZWxfZm9yKHJhbmdlLCBGaWxsQXJyYXk8VmFsdWVUeXBlPihhcnJheSwgdmFsKSwgdGJi OjpzaW1wbGVfcGFydGl0aW9uZXIoKSk7CisgfQorZGlmZiAtLWdpdCBhL29wZW52ZGIvb3BlbnZk Yi91bml0dGVzdC9UZXN0Q29vcmQuY2MgYi9vcGVudmRiL29wZW52ZGIvdW5pdHRlc3QvVGVzdENv b3JkLmNjCitpbmRleCBiZTFjMjRjZWQuLjE0ODY5MDA0MSAxMDA2NDQKKy0tLSBhL29wZW52ZGIv b3BlbnZkYi91bml0dGVzdC9UZXN0Q29vcmQuY2MKKysrKyBiL29wZW52ZGIvb3BlbnZkYi91bml0 dGVzdC9UZXN0Q29vcmQuY2MKK0BAIC0yLDkgKzIsOSBAQAorIC8vIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBNUEwtMi4wCisgCisgI2luY2x1ZGUgPG9wZW52ZGIvVHlwZXMuaD4KKysjaW5jbHVk ZSA8b3BlbnZkYi9tYXRoL0Nvb3JkLmg+CisgCisgI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+Cist I2luY2x1ZGUgPHRiYi90YmJfc3RkZGVmLmg+IC8vIGZvciB0YmI6OnNwbGl0CisgCisgI2luY2x1 ZGUgPHVub3JkZXJlZF9tYXA+CisgI2luY2x1ZGUgPHNzdHJlYW0+CitkaWZmIC0tZ2l0IGEvb3Bl bnZkYi9vcGVudmRiL3VuaXR0ZXN0L1Rlc3RGaWxlLmNjIGIvb3BlbnZkYi9vcGVudmRiL3VuaXR0 ZXN0L1Rlc3RGaWxlLmNjCitpbmRleCA4MDc0MTY2ZDIuLjA1MzQ0OGYzMCAxMDA2NDQKKy0tLSBh L29wZW52ZGIvb3BlbnZkYi91bml0dGVzdC9UZXN0RmlsZS5jYworKysrIGIvb3BlbnZkYi9vcGVu dmRiL3VuaXR0ZXN0L1Rlc3RGaWxlLmNjCitAQCAtMTMsOCArMTMsMTEgQEAKKyAjaW5jbHVkZSA8 b3BlbnZkYi92ZXJzaW9uLmg+CisgI2luY2x1ZGUgPG9wZW52ZGIvb3BlbnZkYi5oPgorICNpbmNs dWRlICJ1dGlsLmgiIC8vIGZvciB1bml0dGVzdF91dGlsOjptYWtlU3BoZXJlKCkKKysKKyAjaW5j bHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKy0jaW5jbHVkZSA8dGJiL3RiYl90aHJlYWQuaD4gLy8gZm9y IHRiYjo6dGhpc190YmJfdGhyZWFkOjpzbGVlcCgpCisrCisrI2luY2x1ZGUgPHRocmVhZD4KKysj aW5jbHVkZSA8Y2hyb25vPgorICNpbmNsdWRlIDxhbGdvcml0aG0+IC8vIGZvciBzdGQ6OnNvcnQo KQorICNpbmNsdWRlIDxjc3RkaW8+IC8vIGZvciByZW1vdmUoKSBhbmQgcmVuYW1lKCkKKyAjaW5j bHVkZSA8ZnN0cmVhbT4KK0BAIC0yMzQ1LDEyICsyMzQ4LDE0IEBAIFRFU1RfRihUZXN0RmlsZSwg dGVzdEFzeW5jKQorICAgICAgICAgICAgIGhlbHBlci5pbnNlcnQoaWQsIGZpbGVuYW1lKTsKKyAg ICAgICAgIH0KKyAKKy0gICAgICAgIHRiYjo6dGlja19jb3VudCBzdGFydCA9IHRiYjo6dGlja19j b3VudDo6bm93KCk7CisrICAgICAgICBhdXRvIHN0YXJ0ID0gc3RkOjpjaHJvbm86OnN0ZWFkeV9j bG9jazo6bm93KCk7CisgICAgICAgICB3aGlsZSAoIWhlbHBlci5pZHMuZW1wdHkoKSkgeworLSAg ICAgICAgICAgIGlmICgodGJiOjp0aWNrX2NvdW50Ojpub3coKSAtIHN0YXJ0KS5zZWNvbmRzKCkg PiA2MCkgYnJlYWs7IC8vIHRpbWUgb3V0IGFmdGVyIDEgbWludXRlCisrICAgICAgICAgICAgYXV0 byBkdXJhdGlvbiA9IHN0ZDo6Y2hyb25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6Y2hyb25vOjpzZWNv bmRzPigKKysgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkg LSBzdGFydCk7CisrICAgICAgICAgICAgaWYgKHNpemVfdChkdXJhdGlvbi5jb3VudCgpKSA+IDYw KSAgYnJlYWs7IC8vIHRpbWUgb3V0IGFmdGVyIDEgbWludXRlCisgCisgICAgICAgICAgICAgLy8g V2FpdCBvbmUgc2Vjb25kIGZvciB0YXNrcyB0byBjb21wbGV0ZS4KKy0gICAgICAgICAgICB0YmI6 OnRoaXNfdGJiX3RocmVhZDo6c2xlZXAodGJiOjp0aWNrX2NvdW50OjppbnRlcnZhbF90KDEuMC8q c2VjKi8pKTsKKysgICAgICAgICAgICBzdGQ6OnRoaXNfdGhyZWFkOjpzbGVlcF9mb3Ioc3RkOjpj aHJvbm86OnNlY29uZHMoMSkpOworIAorICAgICAgICAgICAgIC8vIFBvbGwgZWFjaCB0YXNrIGlu IHRoZSBwZW5kaW5nIG1hcC4KKyAgICAgICAgICAgICBzdGQ6OnNldDxpbzo6UXVldWU6OklkPiBp ZHMgPSBoZWxwZXIuaWRzOyAvLyBpdGVyYXRlIG92ZXIgYSBjb3B5CitAQCAtMjM4MCw3ICsyMzg1 LDcgQEAgVEVTVF9GKFRlc3RGaWxlLCB0ZXN0QXN5bmMpCisgICAgICAgICAgICAgaGVscGVyLmlu c2VydChpZCwgZmlsZW5hbWUpOworICAgICAgICAgfQorICAgICAgICAgd2hpbGUgKCFxdWV1ZS5l bXB0eSgpKSB7CistICAgICAgICAgICAgdGJiOjp0aGlzX3RiYl90aHJlYWQ6OnNsZWVwKHRiYjo6 dGlja19jb3VudDo6aW50ZXJ2YWxfdCgxLjAvKnNlYyovKSk7CisrICAgICAgICAgICAgc3RkOjp0 aGlzX3RocmVhZDo6c2xlZXBfZm9yKHN0ZDo6Y2hyb25vOjpzZWNvbmRzKDEpKTsKKyAgICAgICAg IH0KKyAgICAgfQorICAgICB7CitAQCAtMjQwNSw3ICsyNDEwLDcgQEAgVEVTVF9GKFRlc3RGaWxl LCB0ZXN0QXN5bmMpCisgICAgICAgICBFWFBFQ1RfVEhST1cocXVldWUud3JpdGUoZ3JpZHMsIGlv OjpTdHJlYW0oZmlsZTIpKSwgb3BlbnZkYjo6UnVudGltZUVycm9yKTsKKyAKKyAgICAgICAgIHdo aWxlICghcXVldWUuZW1wdHkoKSkgeworLSAgICAgICAgICAgIHRiYjo6dGhpc190YmJfdGhyZWFk OjpzbGVlcCh0YmI6OnRpY2tfY291bnQ6OmludGVydmFsX3QoMS4wLypzZWMqLykpOworKyAgICAg ICAgICAgIHN0ZDo6dGhpc190aHJlYWQ6OnNsZWVwX2ZvcihzdGQ6OmNocm9ubzo6c2Vjb25kcygx KSk7CisgICAgICAgICB9CisgICAgIH0KKyB9CitkaWZmIC0tZ2l0IGEvb3BlbnZkYi9vcGVudmRi L3VuaXR0ZXN0L1Rlc3RVdGlsLmNjIGIvb3BlbnZkYi9vcGVudmRiL3VuaXR0ZXN0L1Rlc3RVdGls LmNjCitpbmRleCA3MGU3ZGY1ZjcuLjZiMjIwNDc3MSAxMDA2NDQKKy0tLSBhL29wZW52ZGIvb3Bl bnZkYi91bml0dGVzdC9UZXN0VXRpbC5jYworKysrIGIvb3BlbnZkYi9vcGVudmRiL3VuaXR0ZXN0 L1Rlc3RVdGlsLmNjCitAQCAtOCw3ICs4LDYgQEAKKyAKKyAjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3Qu aD4KKyAKKy0jaW5jbHVkZSA8dGJiL3Rhc2tfc2NoZWR1bGVyX2luaXQuaD4KKyAjaW5jbHVkZSA8 dGJiL2VudW1lcmFibGVfdGhyZWFkX3NwZWNpZmljLmg+CisgI2luY2x1ZGUgPHRiYi9wYXJhbGxl bF9mb3IuaD4KKyAjaW5jbHVkZSA8dGJiL2Jsb2NrZWRfcmFuZ2UuaD4KK2RpZmYgLS1naXQgYS9v cGVudmRiL29wZW52ZGIvdW5pdHRlc3QvVGVzdFZhbHVlQWNjZXNzb3IuY2MgYi9vcGVudmRiL29w ZW52ZGIvdW5pdHRlc3QvVGVzdFZhbHVlQWNjZXNzb3IuY2MKK2luZGV4IGZkMmRkNWQ4MS4uNWMx Y2JiMThiIDEwMDY0NAorLS0tIGEvb3BlbnZkYi9vcGVudmRiL3VuaXR0ZXN0L1Rlc3RWYWx1ZUFj Y2Vzc29yLmNjCisrKysgYi9vcGVudmRiL29wZW52ZGIvdW5pdHRlc3QvVGVzdFZhbHVlQWNjZXNz b3IuY2MKK0BAIC02LDYgKzYsNyBAQAorIAorICNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgorICNp bmNsdWRlIDx0YmIvdGFzay5oPgorKyNpbmNsdWRlIDx0YmIvdGFza19ncm91cC5oPgorIAorICNp bmNsdWRlIDx0eXBlX3RyYWl0cz4KKyAKK0BAIC0zNzgsMjIgKzM3OSwyMSBAQCBURVNUX0YoVGVz dFZhbHVlQWNjZXNzb3IsIHRlc3RNdWx0aXRocmVhZGVkQWNjZXNzb3IpCisgICAgIC8vdXNpbmcg QWNjZXNzb3JUID0gb3BlbnZkYjo6dHJlZTo6VmFsdWVBY2Nlc3NvcjxUcmVlNFR5cGU+OworIAor ICAgICAvLyBUYXNrIHRvIHBlcmZvcm0gbXVsdGlwbGUgcmVhZHMgdGhyb3VnaCBhIHNoYXJlZCBh Y2Nlc3NvcgorLSAgICBzdHJ1Y3QgUmVhZFRhc2s6IHB1YmxpYyB0YmI6OnRhc2sgeworKyAgICBz dHJ1Y3QgUmVhZFRhc2sgeworICAgICAgICAgQWNjZXNzb3JUJiBhY2M7CisgICAgICAgICBSZWFk VGFzayhBY2Nlc3NvclQmIGMpOiBhY2MoYykge30KKy0gICAgICAgIHRiYjo6dGFzayogZXhlY3V0 ZSgpCisrICAgICAgICB2b2lkIGV4ZWN1dGUoKQorICAgICAgICAgeworICAgICAgICAgICAgIGZv ciAoaW50IGkgPSAtTUFYX0NPT1JEOyBpIDwgTUFYX0NPT1JEOyArK2kpIHsKKyAgICAgICAgICAg ICAgICAgQVNTRVJUX0RPVUJMRVNfRVhBQ1RMWV9FUVVBTChkb3VibGUoaSksIGFjYy5nZXRWYWx1 ZShvcGVudmRiOjpDb29yZChpKSkpOworICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICByZXR1 cm4gbnVsbHB0cjsKKyAgICAgICAgIH0KKyAgICAgfTsKKyAgICAgLy8gVGFzayB0byBwZXJmb3Jt IG11bHRpcGxlIHdyaXRlcyB0aHJvdWdoIGEgc2hhcmVkIGFjY2Vzc29yCistICAgIHN0cnVjdCBX cml0ZVRhc2s6IHB1YmxpYyB0YmI6OnRhc2sgeworKyAgICBzdHJ1Y3QgV3JpdGVUYXNrIHsKKyAg ICAgICAgIEFjY2Vzc29yVCYgYWNjOworICAgICAgICAgV3JpdGVUYXNrKEFjY2Vzc29yVCYgYyk6 IGFjYyhjKSB7fQorLSAgICAgICAgdGJiOjp0YXNrKiBleGVjdXRlKCkKKysgICAgICAgIHZvaWQg ZXhlY3V0ZSgpCisgICAgICAgICB7CisgICAgICAgICAgICAgZm9yIChpbnQgaSA9IC1NQVhfQ09P UkQ7IGkgPCBNQVhfQ09PUkQ7ICsraSkgeworICAgICAgICAgICAgICAgICBmbG9hdCBmID0gYWNj LmdldFZhbHVlKG9wZW52ZGI6OkNvb3JkKGkpKTsKK0BAIC00MDEsMjYgKzQwMSwyMCBAQCBURVNU X0YoVGVzdFZhbHVlQWNjZXNzb3IsIHRlc3RNdWx0aXRocmVhZGVkQWNjZXNzb3IpCisgICAgICAg ICAgICAgICAgIGFjYy5zZXRWYWx1ZShvcGVudmRiOjpDb29yZChpKSwgZmxvYXQoaSkpOworICAg ICAgICAgICAgICAgICBBU1NFUlRfRE9VQkxFU19FWEFDVExZX0VRVUFMKGZsb2F0KGkpLCBhY2Mu Z2V0VmFsdWUob3BlbnZkYjo6Q29vcmQoaSkpKTsKKyAgICAgICAgICAgICB9CistICAgICAgICAg ICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICB9CisgICAgIH07CisgICAgIC8vIFBhcmVudCB0 YXNrIHRvIHNwYXduIG11bHRpcGxlIHBhcmFsbGVsIHJlYWQgYW5kIHdyaXRlIHRhc2tzCistICAg IHN0cnVjdCBSb290VGFzazogcHVibGljIHRiYjo6dGFzayB7CisrICAgIHN0cnVjdCBSb290VGFz ayB7CisgICAgICAgICBBY2Nlc3NvclQmIGFjYzsKKyAgICAgICAgIFJvb3RUYXNrKEFjY2Vzc29y VCYgYyk6IGFjYyhjKSB7fQorLSAgICAgICAgdGJiOjp0YXNrKiBleGVjdXRlKCkKKysgICAgICAg IHZvaWQgZXhlY3V0ZSgpCisgICAgICAgICB7CistICAgICAgICAgICAgUmVhZFRhc2sqIHJbM107 IFdyaXRlVGFzayogd1szXTsKKysgICAgICAgICAgICB0YmI6OnRhc2tfZ3JvdXAgdGFza3M7Cisg ICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzOyArK2kpIHsKKy0gICAgICAgICAgICAg ICAgcltpXSA9IG5ldyhhbGxvY2F0ZV9jaGlsZCgpKSBSZWFkVGFzayhhY2MpOworLSAgICAgICAg ICAgICAgICB3W2ldID0gbmV3KGFsbG9jYXRlX2NoaWxkKCkpIFdyaXRlVGFzayhhY2MpOworKyAg ICAgICAgICAgICAgICB0YXNrcy5ydW4oWyZdIHsgUmVhZFRhc2sgcihhY2MpOyByLmV4ZWN1dGUo KTsgfSk7CisrICAgICAgICAgICAgICAgIHRhc2tzLnJ1bihbJl0geyBXcml0ZVRhc2sgdyhhY2Mp OyB3LmV4ZWN1dGUoKTsgfSk7CisgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIHNldF9yZWZf Y291bnQoNiAvKmNoaWxkcmVuKi8gKyAxIC8qd2FpdCovKTsKKy0gICAgICAgICAgICBmb3IgKGlu dCBpID0gMDsgaSA8IDM7ICsraSkgeworLSAgICAgICAgICAgICAgICBzcGF3bigqcltpXSk7IHNw YXduKCp3W2ldKTsKKy0gICAgICAgICAgICB9CistICAgICAgICAgICAgd2FpdF9mb3JfYWxsKCk7 CistICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisrICAgICAgICAgICAgdGFza3Mud2FpdCgp OworICAgICAgICAgfQorICAgICB9OworIAorQEAgLTQzMiw4ICs0MjYsOCBAQCBURVNUX0YoVGVz dFZhbHVlQWNjZXNzb3IsIHRlc3RNdWx0aXRocmVhZGVkQWNjZXNzb3IpCisgICAgIH0KKyAKKyAg ICAgLy8gUnVuIG11bHRpcGxlIHJlYWQgYW5kIHdyaXRlIHRhc2tzIGluIHBhcmFsbGVsLgorLSAg ICBSb290VGFzayYgcm9vdCA9ICpuZXcodGJiOjp0YXNrOjphbGxvY2F0ZV9yb290KCkpIFJvb3RU YXNrKGFjYyk7CistICAgIHRiYjo6dGFzazo6c3Bhd25fcm9vdF9hbmRfd2FpdChyb290KTsKKysg ICAgUm9vdFRhc2sgcm9vdChhY2MpOworKyAgICByb290LmV4ZWN1dGUoKTsKKyAKKyAjdW5kZWYg TUFYX0NPT1JECisgfQorZGlmZiAtLWdpdCBhL29wZW52ZGJfaG91ZGluaS9vcGVudmRiX2hvdWRp bmkvU09QX09wZW5WREJfUmFzdGVyaXplX1BvaW50cy5jYyBiL29wZW52ZGJfaG91ZGluaS9vcGVu dmRiX2hvdWRpbmkvU09QX09wZW5WREJfUmFzdGVyaXplX1BvaW50cy5jYworaW5kZXggMGUxYjRk ODU1Li42ZDliYjUyOGIgMTAwNjQ0CistLS0gYS9vcGVudmRiX2hvdWRpbmkvb3BlbnZkYl9ob3Vk aW5pL1NPUF9PcGVuVkRCX1Jhc3Rlcml6ZV9Qb2ludHMuY2MKKysrKyBiL29wZW52ZGJfaG91ZGlu aS9vcGVudmRiX2hvdWRpbmkvU09QX09wZW5WREJfUmFzdGVyaXplX1BvaW50cy5jYworQEAgLTIw LDYgKzIwLDcgQEAKKyAjaW5jbHVkZSA8b3BlbnZkYi90b29scy9HcmlkVHJhbnNmb3JtZXIuaD4K KyAjaW5jbHVkZSA8b3BlbnZkYi90b29scy9Qb2ludEluZGV4R3JpZC5oPgorICNpbmNsdWRlIDxv cGVudmRiL3Rvb2xzL1BydW5lLmg+CisrI2luY2x1ZGUgPG9wZW52ZGIvdGhyZWFkL1RocmVhZGlu Zy5oPgorIAorICNpbmNsdWRlIDxDSC9DSF9NYW5hZ2VyLmg+CisgI2luY2x1ZGUgPENWRVgvQ1ZF WF9Db250ZXh0Lmg+CitAQCAtNzg2LDcgKzc4Nyw3IEBAIHN0cnVjdCBDb25zdHJ1Y3RDYW5kaWRh dGVWb3hlbE1hc2sKKyAgICAgICAgIGZvciAoc2l6ZV90IG4gPSByYW5nZS5iZWdpbigpLCBOID0g cmFuZ2UuZW5kKCk7IG4gIT0gTjsgKytuKSB7CisgCisgICAgICAgICAgICAgaWYgKHRoaXMtPndh c0ludGVycnVwdGVkKCkpIHsKKy0gICAgICAgICAgICAgICAgdGJiOjp0YXNrOjpzZWxmKCkuY2Fu Y2VsX2dyb3VwX2V4ZWN1dGlvbigpOworKyAgICAgICAgICAgICAgICBvcGVudmRiOjp0aHJlYWQ6 OmNhbmNlbEdyb3VwRXhlY3V0aW9uKCk7CisgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg ICAgICAgIH0KKyAKK0BAIC0yMDkyLDcgKzIwOTMsNyBAQCBzdHJ1Y3QgUmFzdGVyaXplUG9pbnRz CisgICAgICAgICBmb3IgKHNpemVfdCBuID0gcmFuZ2UuYmVnaW4oKSwgTiA9IHJhbmdlLmVuZCgp OyBuICE9IE47ICsrbikgeworIAorICAgICAgICAgICAgIGlmICh0aGlzLT53YXNJbnRlcnJ1cHRl ZCgpKSB7CistICAgICAgICAgICAgICAgIHRiYjo6dGFzazo6c2VsZigpLmNhbmNlbF9ncm91cF9l eGVjdXRpb24oKTsKKysgICAgICAgICAgICAgICAgb3BlbnZkYjo6dGhyZWFkOjpjYW5jZWxHcm91 cEV4ZWN1dGlvbigpOworICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICB9Cisg CitkaWZmIC0tZ2l0IGEvb3BlbnZkYl9ob3VkaW5pL29wZW52ZGJfaG91ZGluaS9TT1BfT3BlblZE Ql9TYW1wbGVfUG9pbnRzLmNjIGIvb3BlbnZkYl9ob3VkaW5pL29wZW52ZGJfaG91ZGluaS9TT1Bf T3BlblZEQl9TYW1wbGVfUG9pbnRzLmNjCitpbmRleCA3NTdmZGM4YzYuLmRiZWU3NGIzMiAxMDA2 NDQKKy0tLSBhL29wZW52ZGJfaG91ZGluaS9vcGVudmRiX2hvdWRpbmkvU09QX09wZW5WREJfU2Ft cGxlX1BvaW50cy5jYworKysrIGIvb3BlbnZkYl9ob3VkaW5pL29wZW52ZGJfaG91ZGluaS9TT1Bf T3BlblZEQl9TYW1wbGVfUG9pbnRzLmNjCitAQCAtMTYsMTMgKzE2LDExIEBACisgI2luY2x1ZGUg PG9wZW52ZGJfaG91ZGluaS9TT1BfTm9kZVZEQi5oPgorIAorICNpbmNsdWRlIDxvcGVudmRiL3Rv b2xzL0ludGVycG9sYXRpb24uaD4gIC8vIGZvciBib3ggc2FtcGxlcgorKyNpbmNsdWRlIDxvcGVu dmRiL3RocmVhZC9UaHJlYWRpbmcuaD4KKyAjaW5jbHVkZSA8b3BlbnZkYi9wb2ludHMvUG9pbnRD b3VudC5oPgorICNpbmNsdWRlIDxvcGVudmRiL3BvaW50cy9Qb2ludFNhbXBsZS5oPgorICNpbmNs dWRlIDxvcGVudmRiL3BvaW50cy9JbmRleEZpbHRlci5oPiAgIC8vIGZvciBNdWx0aUdyb3VwRmls dGVyCisgCistI2luY2x1ZGUgPHRiYi90aWNrX2NvdW50Lmg+ICAgICAgICAgICAgICAgICAvLyBm b3IgdGltaW5nCistI2luY2x1ZGUgPHRiYi90YXNrLmg+ICAgICAgICAgICAgICAgICAgICAgICAv LyBmb3IgY2FuY2VsCistCisgI2luY2x1ZGUgPFVUL1VUX0ludGVycnVwdC5oPgorICNpbmNsdWRl IDxHQS9HQV9QYWdlSGFuZGxlLmg+CisgI2luY2x1ZGUgPEdBL0dBX1BhZ2VJdGVyYXRvci5oPgor QEAgLTM4LDYgKzM2LDcgQEAKKyAjaW5jbHVkZSA8c3RkZXhjZXB0PgorICNpbmNsdWRlIDxzdHJp bmc+CisgI2luY2x1ZGUgPHZlY3Rvcj4KKysjaW5jbHVkZSA8Y2hyb25vPgorIAorIAorIAorQEAg LTMyNyw3ICszMjYsNyBAQCBjbGFzcyBQb2ludFNhbXBsZXIKKyAgICAgeworIAorICAgICAgICAg aWYgKG1JbnRlcnJ1cHRlci0+d2FzSW50ZXJydXB0ZWQoKSkgeworLSAgICAgICAgICAgIHRiYjo6 dGFzazo6c2VsZigpLmNhbmNlbF9ncm91cF9leGVjdXRpb24oKTsKKysgICAgICAgICAgICBvcGVu dmRiOjp0aHJlYWQ6OmNhbmNlbEdyb3VwRXhlY3V0aW9uKCk7CisgICAgICAgICB9CisgICAgICAg ICBjb25zdCBHcmlkVHlwZSYgZ3JpZCA9IFVUdmRiR3JpZENhc3Q8R3JpZFR5cGU+KG1HcmlkKTsK KyAgICAgICAgIC8vIHRhc2sgbG9jYWwgZ3JpZCBhY2Nlc3NvcgorQEAgLTQ4MSw3ICs0ODAsNyBA QCBTT1BfT3BlblZEQl9TYW1wbGVfUG9pbnRzOjpDYWNoZTo6Y29va1ZEQlNvcChPUF9Db250ZXh0 JiBjb250ZXh0KQorICAgICAgICAgaW50IG51bVVubmFtZWRHcmlkcyA9IDA7CisgCisgICAgICAg ICAvLyBzdGFydCB0aW1lCistICAgICAgICB0YmI6OnRpY2tfY291bnQgdGltZV9zdGFydCA9IHRi Yjo6dGlja19jb3VudDo6bm93KCk7CisrICAgICAgICBhdXRvIHRpbWVfc3RhcnQgPSBzdGQ6OmNo cm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKTsKKyAgICAgICAgIFVUX0F1dG9JbnRlcnJ1cHQgcHJv Z3Jlc3MoIlNhbXBsaW5nIGZyb20gVkRCIGdyaWRzIik7CisgCisgICAgICAgICBmb3IgKGh2ZGI6 OlZkYlByaW1DSXRlcmF0b3IgaXQoYkdkcCwgZ3JvdXApOyBpdDsgKytpdCkgeworQEAgLTcwNiwx NSArNzA1LDE2IEBAIFNPUF9PcGVuVkRCX1NhbXBsZV9Qb2ludHM6OkNhY2hlOjpjb29rVkRCU29w KE9QX0NvbnRleHQmIGNvbnRleHQpCisgICAgICAgICAgICAgfQorICAgICAgICAgfQorIAorLSAg ICAgICAgLy8gdGltaW5nOiBlbmQgdGltZQorLSAgICAgICAgdGJiOjp0aWNrX2NvdW50IHRpbWVf ZW5kID0gdGJiOjp0aWNrX2NvdW50Ojpub3coKTsKKy0KKyAgICAgICAgIGlmICh2ZXJib3NlKSB7 CisrICAgICAgICAgICAgLy8gdGltaW5nOiBlbmQgdGltZQorKyAgICAgICAgICAgIGF1dG8gZHVy YXRpb24gPSBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNv bmRzPigKKysgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkg LSB0aW1lX3N0YXJ0KTsKKysgICAgICAgICAgICBjb25zdCBkb3VibGUgc2Vjb25kcyA9IGRvdWJs ZShkdXJhdGlvbi5jb3VudCgpKSAvIDEwMDAuMDsKKyAgICAgICAgICAgICBzdGQ6OmNvdXQgPDwg IlNhbXBsaW5nICIgPDwgblBvaW50cyArIG5WREJQb2ludHMgPDwgIiBwb2ludHMgaW4gIgorICAg ICAgICAgICAgICAgICAgICAgICA8PCBudW1WZWN0b3JHcmlkcyA8PCAiIHZlY3RvciBncmlkIiA8 PCAobnVtVmVjdG9yR3JpZHMgPT0gMSA/ICIiIDogInMiKQorICAgICAgICAgICAgICAgICAgICAg ICA8PCAiIGFuZCAiIDw8IG51bVNjYWxhckdyaWRzIDw8ICIgc2NhbGFyIGdyaWQiCisgICAgICAg ICAgICAgICAgICAgICAgICAgICA8PCAobnVtU2NhbGFyR3JpZHMgPT0gMSA/ICIiIDogInMiKQor LSAgICAgICAgICAgICAgICAgICAgICA8PCAiIHRvb2sgIiA8PCAodGltZV9lbmQgLSB0aW1lX3N0 YXJ0KS5zZWNvbmRzKCkgPDwgIiBzZWNvbmRzXG4gIgorKyAgICAgICAgICAgICAgICAgICAgICA8 PCAiIHRvb2sgIiA8PCBzZWNvbmRzIDw8ICIgc2Vjb25kc1xuICIKKyAgICAgICAgICAgICAgICAg ICAgICAgPDwgKHRocmVhZGVkID8gInRocmVhZGVkIiA6ICJub24tdGhyZWFkZWQiKSA8PCBzdGQ6 OmVuZGw7CisgICAgICAgICB9CisgCitkaWZmIC0tZ2l0IGEvb3BlbnZkYl9tYXlhL29wZW52ZGJf bWF5YS9PcGVuVkRCUGx1Z2luLmNjIGIvb3BlbnZkYl9tYXlhL29wZW52ZGJfbWF5YS9PcGVuVkRC UGx1Z2luLmNjCitpbmRleCAzZDU1OWY4Y2MuLmQ2M2VkMTU5MSAxMDA2NDQKKy0tLSBhL29wZW52 ZGJfbWF5YS9vcGVudmRiX21heWEvT3BlblZEQlBsdWdpbi5jYworKysrIGIvb3BlbnZkYl9tYXlh L29wZW52ZGJfbWF5YS9PcGVuVkRCUGx1Z2luLmNjCitAQCAtNDcsMTEgKzQ3LDggQEAgc3RydWN0 IE5vZGVJbmZvIHsKKyAKKyB0eXBlZGVmIHN0ZDo6dmVjdG9yPE5vZGVJbmZvPiBOb2RlTGlzdDsK KyAKKy10eXBlZGVmIHRiYjo6bXV0ZXggTXV0ZXg7CistdHlwZWRlZiBNdXRleDo6c2NvcGVkX2xv Y2sgTG9jazsKKy0KKyAvLyBEZWNsYXJlIHRoaXMgYXQgZmlsZSBzY29wZSB0byBlbnN1cmUgdGhy ZWFkLXNhZmUgaW5pdGlhbGl6YXRpb24uCistTXV0ZXggc1JlZ2lzdHJ5TXV0ZXg7Cisrc3RkOjpt dXRleCBzUmVnaXN0cnlNdXRleDsKKyAKKyBOb2RlTGlzdCAqIGdOb2RlcyA9IE5VTEw7CisgCitA QCAtNzAsNyArNjcsNyBAQCBOb2RlUmVnaXN0cnk6Ok5vZGVSZWdpc3RyeShjb25zdCBNU3RyaW5n JiB0eXBlTmFtZSwgY29uc3QgTVR5cGVJZCYgdHlwZUlkLAorICAgICBub2RlLnR5cGUgICAgICAg ICAgICAgICA9IHR5cGU7CisgICAgIG5vZGUuY2xhc3NpZmljYXRpb24gICAgID0gY2xhc3NpZmlj YXRpb247CisgCistICAgIExvY2sgbG9jayhzUmVnaXN0cnlNdXRleCk7CisrICAgIHN0ZDo6bG9j a19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKHNSZWdpc3RyeU11dGV4KTsKKyAKKyAgICAgaWYgKCFn Tm9kZXMpIHsKKyAgICAgICAgIE9QRU5WREJfU1RBUlRfVEhSRUFEU0FGRV9TVEFUSUNfV1JJVEUK K0BAIC04NSw3ICs4Miw3IEBAIE5vZGVSZWdpc3RyeTo6Tm9kZVJlZ2lzdHJ5KGNvbnN0IE1TdHJp bmcmIHR5cGVOYW1lLCBjb25zdCBNVHlwZUlkJiB0eXBlSWQsCisgdm9pZAorIE5vZGVSZWdpc3Ry eTo6cmVnaXN0ZXJOb2RlcyhNRm5QbHVnaW4mIHBsdWdpbiwgTVN0YXR1cyYgc3RhdHVzKQorIHsK Ky0gICAgTG9jayBsb2NrKHNSZWdpc3RyeU11dGV4KTsKKysgICAgc3RkOjpsb2NrX2d1YXJkPHN0 ZDo6bXV0ZXg+IGxvY2soc1JlZ2lzdHJ5TXV0ZXgpOworIAorICAgICBpZiAoZ05vZGVzKSB7Cisg ICAgICAgICBmb3IgKHNpemVfdCBuID0gMCwgTiA9IGdOb2Rlcy0+c2l6ZSgpOyBuIDwgTjsgKytu KSB7CitAQCAtMTA5LDcgKzEwNiw3IEBAIE5vZGVSZWdpc3RyeTo6cmVnaXN0ZXJOb2RlcyhNRm5Q bHVnaW4mIHBsdWdpbiwgTVN0YXR1cyYgc3RhdHVzKQorIHZvaWQKKyBOb2RlUmVnaXN0cnk6OmRl cmVnaXN0ZXJOb2RlcyhNRm5QbHVnaW4mIHBsdWdpbiwgTVN0YXR1cyYgc3RhdHVzKQorIHsKKy0g ICAgTG9jayBsb2NrKHNSZWdpc3RyeU11dGV4KTsKKysgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6 bXV0ZXg+IGxvY2soc1JlZ2lzdHJ5TXV0ZXgpOworIAorICAgICBpZiAoZ05vZGVzKSB7CisgICAg ICAgICBmb3IgKHNpemVfdCBuID0gMCwgTiA9IGdOb2Rlcy0+c2l6ZSgpOyBuIDwgTjsgKytuKSB7 CitkaWZmIC0tZ2l0IGEvb3BlbnZkYl9tYXlhL29wZW52ZGJfbWF5YS9PcGVuVkRCVXRpbC5oIGIv b3BlbnZkYl9tYXlhL29wZW52ZGJfbWF5YS9PcGVuVkRCVXRpbC5oCitpbmRleCBiNThiZDZmMmMu LjZhMDRiMWVhZiAxMDA2NDQKKy0tLSBhL29wZW52ZGJfbWF5YS9vcGVudmRiX21heWEvT3BlblZE QlV0aWwuaAorKysrIGIvb3BlbnZkYl9tYXlhL29wZW52ZGJfbWF5YS9PcGVuVkRCVXRpbC5oCitA QCAtMTQsOCArMTQsNyBAQAorICNpbmNsdWRlIDxvcGVudmRiL3RyZWUvTGVhZk1hbmFnZXIuaD4K KyAjaW5jbHVkZSA8b3BlbnZkYi90b29scy9Wb2x1bWVUb01lc2guaD4KKyAjaW5jbHVkZSA8b3Bl bnZkYi91dGlsL0Zvcm1hdHMuaD4gLy8gcHJpbnRCeXRlcworLQorLSNpbmNsdWRlIDx0YmIvdGlj a19jb3VudC5oPgorKyNpbmNsdWRlIDxvcGVudmRiL3RocmVhZC9UaHJlYWRpbmcuaD4KKyAKKyAj aW5jbHVkZSA8bWF5YS9NM2RWaWV3Lmg+CisgI2luY2x1ZGUgPG1heWEvTVN0cmluZy5oPgorQEAg LTQwLDYgKzM5LDcgQEAKKyAjaW5jbHVkZSA8c3RyaW5nPgorICNpbmNsdWRlIDx0eXBlX3RyYWl0 cz4KKyAjaW5jbHVkZSA8dmVjdG9yPgorKyNpbmNsdWRlIDxjaHJvbm8+CisgCisgCisgLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworQEAgLTExNiwxMSArMTE2LDE1IEBA IGluc2VydEZyYW1lTnVtYmVyKHN0ZDo6c3RyaW5nJiBzdHIsIGNvbnN0IE1UaW1lJiB0aW1lLCBp bnQgbnVtYmVyaW5nU2NoZW1lID0gMCk7CisgCisgc3RydWN0IFRpbWVyCisgeworLSAgICBUaW1l cigpIDogbVN0YW1wKHRiYjo6dGlja19jb3VudDo6bm93KCkpIHsgfQorKyAgICBUaW1lcigpIDog bVN0YW1wKHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpKSB7IH0KKyAKKy0gICAgdm9p ZCByZXNldCgpIHsgbVN0YW1wID0gdGJiOjp0aWNrX2NvdW50Ojpub3coKTsgfQorKyAgICB2b2lk IHJlc2V0KCkgeyBtU3RhbXAgPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKTsgfQor IAorLSAgICBkb3VibGUgc2Vjb25kcygpIGNvbnN0IHsgcmV0dXJuICh0YmI6OnRpY2tfY291bnQ6 Om5vdygpIC0gbVN0YW1wKS5zZWNvbmRzKCk7IH0KKysgICAgZG91YmxlIHNlY29uZHMoKSBjb25z dCB7CisrICAgICAgICBhdXRvIGR1cmF0aW9uID0gc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8 c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcz4oCisrICAgICAgICAgICAgc3RkOjpjaHJvbm86OnN0 ZWFkeV9jbG9jazo6bm93KCkgLSBtU3RhbXApOworKyAgICAgICAgcmV0dXJuIGRvdWJsZShkdXJh dGlvbi5jb3VudCgpKSAvIDEwMDAuMDsKKysgICAgfQorIAorICAgICBzdGQ6OnN0cmluZyBlbGFw c2VkVGltZSgpIGNvbnN0IHsKKyAgICAgICAgIGRvdWJsZSBzZWMgPSBzZWNvbmRzKCk7CitAQCAt MTI4LDcgKzEzMiw3IEBAIHN0cnVjdCBUaW1lcgorICAgICB9CisgCisgcHJpdmF0ZToKKy0gICAg dGJiOjp0aWNrX2NvdW50IG1TdGFtcDsKKysgICAgIHN0ZDo6Y2hyb25vOjp0aW1lX3BvaW50PHN0 ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s+IG1TdGFtcDsKKyB9OworIAorIAorZGlmZiAtLWdpdCBh L3BlbmRpbmdjaGFuZ2VzL3RiYjIwMjEudHh0IGIvcGVuZGluZ2NoYW5nZXMvdGJiMjAyMS50eHQK K25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAuLjgxMDljMjU1MgorLS0tIC9k ZXYvbnVsbAorKysrIGIvcGVuZGluZ2NoYW5nZXMvdGJiMjAyMS50eHQKK0BAIC0wLDAgKzEsNiBA QAorK0ltcHJvdmVtZW50czoKKysgIC0gTW92ZWQgZnJvbSB0aGUgZGVwcmVjYXRlZCBUQkIgdGFz ayBzY2hlZHVsZXIgdG8gVEJCIGFyZW5hcy4gVmFyaW91cyBtZXRob2RzIG5vdyByZXNwZWN0IHRo ZSBUQkIgYXJlbmEgc3RhdGUgdGhleSB3ZXJlIGludm9rZWQgZnJvbS4KKysgIC0gSW50cm9kdWNl ZCBhIG5ldyB0aHJlYWQvVGhyZWFkaW5nLmggaGVhZGVyIHRvIGNvbnNvbGlkYXRlIGNhbGxzIHRv IHRoaXJkLXBhcnR5IHRocmVhZGluZyBtZXRob2RzLgorKworK0J1aWxkOgorKyAgLSBBZGRlZCBz dXBwb3J0IGZvciBUQkIgMjAyMS4KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbnZkYi90ZW1wbGF0 ZSBiL3NyY3BrZ3Mvb3BlbnZkYi90ZW1wbGF0ZQppbmRleCA3MmZkZTViYzYzNzUuLmQ0MjBhM2Vl NWY1ZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9vcGVudmRiL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv b3BlbnZkYi90ZW1wbGF0ZQpAQCAtMSwyNiArMSwxOCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn b3BlbnZkYicKIHBrZ25hbWU9b3BlbnZkYgotdmVyc2lvbj03LjAuMAordmVyc2lvbj04LjEuMAog cmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItRE9QRU5WREJf QlVJTERfVkRCX1ZJRVc9MSIKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyIKLW1ha2VkZXBl bmRzPSJib29zdC1kZXZlbCB0YmItZGV2ZWwgaWxtYmFzZS1kZXZlbCBsaWJvcGVuZXhyLWRldmVs IGMtYmxvc2MtZGV2ZWwgZ2xmdy1kZXZlbCIKK21ha2VkZXBlbmRzPSJib29zdC1kZXZlbCB0YmIt ZGV2ZWwgaWxtYmFzZS1kZXZlbCBsaWJvcGVuZXhyLWRldmVsIGMtYmxvc2MtZGV2ZWwKKyBnbGZ3 LWRldmVsIGplbWFsbG9jLWRldmVsIgogc2hvcnRfZGVzYz0iU3BhcnNlIHZvbHVtZSBkYXRhIHN0 cnVjdHVyZSBhbmQgdG9vbHMiCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51 eC5vcmc+IgogbGljZW5zZT0iTVBMLTIuMCIKIGhvbWVwYWdlPSJodHRwczovL29wZW52ZGIub3Jn IgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vQWNhZGVteVNvZnR3YXJlRm91bmRhdGlv bi9vcGVudmRiL2FyY2hpdmUvdiR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09OTdiYzhhZTM1 ZWY3Y2NiZjQ5YTRlMjVjYjczZThjMmVjY2FlNmIyMzViYWM4NmYyMTUwNzA3ZWZjZDFlOTEwZAot Ci1pZiBbICIkWEJQU19UQVJHRVRfTk9fQVRPTUlDOCIgXTsgdGhlbgotCW1ha2VkZXBlbmRzKz0i IGxpYmF0b21pYy1kZXZlbCIKLWZpCi0KLXBvc3RfcGF0Y2goKSB7Ci0JWyAiJFhCUFNfVEFSR0VU X05PX0FUT01JQzgiIF0gfHwgcmV0dXJuIDAKLQl2c2VkIC1pICdzLFpMSUI6OlpMSUIsWkxJQjo6 WkxJQiBhdG9taWMsJyBvcGVudmRiL0NNYWtlTGlzdHMudHh0Ci19CitjaGVja3N1bT0zZTA5ZDQ3 MzMxNDI5YmU3NDA5YTNhM2MyN2ZkZDNjMjk3Zjk2ZDMxZDIxNTNmZWJlMTk0ZTY2NGE5OWQ2MTgz CiAKIHBvc3RfaW5zdGFsbCgpIHsKIAl2bGljZW5zZSBMSUNFTlNFCgpGcm9tIDI0YzJjM2EzZDJi Nzc4MzU4M2E5NjVjMDIwZTFkZmRiZTVmMzJkNjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEFydHVyIFNpbmlsYSA8ZnJlZXNvZnR3YXJlQGxvZ2FyaXRobXVzLmRldj4KRGF0ZTogU3Vu LCAxOCBKdWwgMjAyMSAxODoyOTo0MCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMTFdIHBhcmF2 aWV3OiB1cGRhdGUgdG8gNS45LjEuCgotLS0KIHNyY3BrZ3MvcGFyYXZpZXcvdGVtcGxhdGUgfCA0 ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9wYXJhdmlldy90ZW1wbGF0ZSBiL3NyY3BrZ3MvcGFyYXZpZXcv dGVtcGxhdGUKaW5kZXggMjBhN2Y1NTg5Njc3Li5lNmMzOTQxY2U5MGEgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvcGFyYXZpZXcvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9wYXJhdmlldy90ZW1wbGF0ZQpA QCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3BhcmF2aWV3JwogcGtnbmFtZT1w YXJhdmlldwotdmVyc2lvbj01LjguMQotcmV2aXNpb249MwordmVyc2lvbj01LjkuMQorcmV2aXNp b249MQogd3Jrc3JjPVBhcmFWaWV3LXYke3ZlcnNpb259CiBidWlsZF9zdHlsZT1jbWFrZQogY29u ZmlndXJlX2FyZ3M9Ii1EQ01BS0VfUFJFRklYX1BBVEg9JHtYQlBTX0NST1NTX0JBU0V9L3VzcgoK RnJvbSBhNjhkYTI5MDU3NWVhODVjYzdhN2M2OGY0ZTY2NDY3N2ViOTRkYmQ3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBcnR1ciBTaW5pbGEgPGZyZWVzb2Z0d2FyZUBsb2dhcml0aG11 cy5kZXY+CkRhdGU6IFN1biwgMTggSnVsIDIwMjEgMTg6Mjk6MzkgKzAzMDAKU3ViamVjdDogW1BB VENIIDExLzExXSBvY2N0OiByZXZidW1wIGR1ZSB0byB0YmIgdXBkYXRlCgotLS0KIHNyY3BrZ3Mv b2NjdC90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb2NjdC90ZW1wbGF0ZSBiL3NyY3BrZ3Mv b2NjdC90ZW1wbGF0ZQppbmRleCA5Mjk4ZWRjNzZlMDguLjAwNmY4OWViYjhjZSAxMDA2NDQKLS0t IGEvc3JjcGtncy9vY2N0L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvb2NjdC90ZW1wbGF0ZQpAQCAt Miw3ICsyLDcgQEAKIHBrZ25hbWU9b2NjdAogcmV2ZXJ0cz03LjUuMF8xCiB2ZXJzaW9uPTcuNC4w cDEKLXJldmlzaW9uPTMKK3JldmlzaW9uPTQKIF9naXR0YWc9IlYke3ZlcnNpb24vLy4vX30iCiB3 cmtzcmM9b2NjdC0ke19naXR0YWd9CiBidWlsZF9zdHlsZT1jbWFrZQo= --===============4856244342990327096==--