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.7 required=5.0 tests=ALL_TRUSTED,URIBL_BLACK autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 3422 invoked from network); 3 Nov 2021 14:36:37 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 3 Nov 2021 14:36:37 -0000 Content-Type: multipart/mixed; boundary="===============2397846516543452707==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_New_package=3A_qt6-serialport-6=2E2=2E0?= To: ml@inbox.vuxu.org From: Johnnynator Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Wed, 03 Nov 2021 15:36:37 +0100 List-Id: Message-ID: <20211103143637.BE2QeIMYhmDjgzep6HoIu6e6TPD7HonxiNDakLCsF_M@z> GitHub notification mails are now in MIME to allow UTF8. --===============2397846516543452707== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgSm9obm55bmF0b3IgYWdhaW5zdCBt YXN0ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29t L0pvaG5ueW5hdG9yL3ZvaWQtcGFja2FnZXMgcXQ2LjItbmV3LW1vZHVsZXMKaHR0cHM6Ly9naXRo dWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzMzMjk0CgpOZXcgcGFja2FnZTog cXQ2LXNlcmlhbHBvcnQtNi4yLjAKLSBOZXcgcGFja2FnZTogcXQ2LXNlcmlhbHBvcnQtNi4yLjAN Ci0gTmV3IHBhY2thZ2U6IHF0Ni13ZWJzb2NrZXRzLTYuMi4wDQotIE5ldyBwYWNrYWdlOiBxdDYt d2ViY2hhbm5lbC02LjIuMA0KLSBOZXcgcGFja2FnZTogcXQ2LW11bHRpbWVkaWEtNi4yLjANCi0g TmV3IHBhY2thZ2U6IHF0Ni13ZWJlbmdpbmUtNi4yLjANCi0gTmV3IHBhY2thZ2U6IHF0Ni1sb2Nh dGlvbi02LjIuMA0KDQo8IS0tIE1hcmsgaXRlbXMgd2l0aCBbeF0gd2hlcmUgYXBwbGljYWJsZSAt LT4NCg0KIyMjIyBHZW5lcmFsDQotIFsgXSBUaGlzIGlzIGEgbmV3IHBhY2thZ2UgYW5kIGl0IGNv bmZvcm1zIHRvIHRoZSBbcXVhbGl0eSByZXF1aXJlbWVudHNdKGh0dHBzOi8vZ2l0aHViLmNvbS92 b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9tYXN0ZXIvTWFudWFsLm1kI3F1YWxpdHktcmVx dWlyZW1lbnRzKQ0KDQojIyMjIEhhdmUgdGhlIHJlc3VsdHMgb2YgdGhlIHByb3Bvc2VkIGNoYW5n ZXMgYmVlbiB0ZXN0ZWQ/DQotIFsgXSBJIHVzZSB0aGUgcGFja2FnZXMgYWZmZWN0ZWQgYnkgdGhl IHByb3Bvc2VkIGNoYW5nZXMgb24gYSByZWd1bGFyIGJhc2lzIGFuZCBjb25maXJtIHRoaXMgUFIg d29ya3MgZm9yIG1lDQotIFsgXSBJIGdlbmVyYWxseSBkb24ndCB1c2UgdGhlIGFmZmVjdGVkIHBh Y2thZ2VzIGJ1dCBicmllZmx5IHRlc3RlZCB0aGlzIFBSDQoNCjwhLS0NCklmIEdpdEh1YiBDSSBj YW5ub3QgYmUgdXNlZCB0byB2YWxpZGF0ZSB0aGUgYnVpbGQgcmVzdWx0IChmb3IgZXhhbXBsZSwg aWYgdGhlDQpidWlsZCBpcyBsaWtlbHkgdG8gdGFrZSBzZXZlcmFsIGhvdXJzKSwgbWFrZSBzdXJl IHRvDQpbc2tpcCBDSV0oaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdl cy9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQjY29udGludW91cy1pbnRlZ3JhdGlvbikuDQpX aGVuIHNraXBwaW5nIENJLCB1bmNvbW1lbnQgYW5kIGZpbGwgb3V0IHRoZSBmb2xsb3dpbmcgc2Vj dGlvbi4NCk5vdGU6IGZvciBidWlsZHMgdGhhdCBhcmUgbGlrZWx5IHRvIGNvbXBsZXRlIGluIGxl c3MgdGhhbiAyIGhvdXJzLCBpdCBpcyBub3QNCmFjY2VwdGFibGUgdG8gc2tpcCBDSS4NCi0tPg0K PCEtLSANCiMjIyMgRG9lcyBpdCBidWlsZCBhbmQgcnVuIHN1Y2Nlc3NmdWxseT8gDQooUGxlYXNl IGNob29zZSBhdCBsZWFzdCBvbmUgbmF0aXZlIGJ1aWxkIGFuZCwgaWYgc3VwcG9ydGVkLCBhdCBs ZWFzdCBvbmUgY3Jvc3MgYnVpbGQuIE1vcmUgYXJlIGJldHRlci4pDQotIFsgXSBJIGJ1aWx0IHRo aXMgUFIgbG9jYWxseSBmb3IgbXkgbmF0aXZlIGFyY2hpdGVjdHVyZSwgKEFSQ0gtTElCQykNCi0g WyBdIEkgYnVpbHQgdGhpcyBQUiBsb2NhbGx5IGZvciB0aGVzZSBhcmNoaXRlY3R1cmVzIChpZiBz dXBwb3J0ZWQuIG1hcmsgY3Jvc3NidWlsZHMpOg0KICAtIFsgXSBhYXJjaDY0LW11c2wNCiAgLSBb IF0gYXJtdjdsDQogIC0gWyBdIGFybXY2bC1tdXNsDQotLT4NCg0KW2NpIHNraXBdCgpBIHBhdGNo IGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1 bGwvMzMyOTQucGF0Y2ggaXMgYXR0YWNoZWQ= --===============2397846516543452707== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-qt6.2-new-modules-33294.patch" RnJvbSA5MDIwNDFmODg0NTE3NTMxMjQxNmQwYzZkMmU0OGQzY2UyODBiYmIxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFNhdCwg MjYgSnVuIDIwMjEgMTI6MjU6MDQgKzAyMDAKU3ViamVjdDogW1BBVENIIDEvM10gTmV3IHBhY2th Z2U6IHF0Ni13ZWJjaGFubmVsLTYuMi4xCgotLS0KIHNyY3BrZ3MvcXQ2LXdlYmNoYW5uZWwtZGV2 ZWwgICAgfCAgMSArCiBzcmNwa2dzL3F0Ni13ZWJjaGFubmVsL3RlbXBsYXRlIHwgMjggKysrKysr KysrKysrKysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAyOSBpbnNlcnRpb25zKCsp CiBjcmVhdGUgbW9kZSAxMjAwMDAgc3JjcGtncy9xdDYtd2ViY2hhbm5lbC1kZXZlbAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmNoYW5uZWwvdGVtcGxhdGUKCmRpZmYgLS1naXQg YS9zcmNwa2dzL3F0Ni13ZWJjaGFubmVsLWRldmVsIGIvc3JjcGtncy9xdDYtd2ViY2hhbm5lbC1k ZXZlbApuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMDAuLjAzZThiMjNkNzg1 ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmNoYW5uZWwtZGV2ZWwKQEAgLTAs MCArMSBAQAorcXQ2LXdlYmNoYW5uZWwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg LS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJjaGFubmVsL3RlbXBsYXRlIGIvc3JjcGtncy9xdDYtd2Vi Y2hhbm5lbC90ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu LmU4NmQwMTQxOGVhNgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmNoYW5uZWwv dGVtcGxhdGUKQEAgLTAsMCArMSwyOCBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LXdlYmNo YW5uZWwnCitwa2duYW1lPXF0Ni13ZWJjaGFubmVsCit2ZXJzaW9uPTYuMi4xCityZXZpc2lvbj0x Cit3cmtzcmM9InF0d2ViY2hhbm5lbC1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259IgorYnVpbGRf c3R5bGU9Y21ha2UKK2NvbmZpZ3VyZV9hcmdzPSItRFFUX0hPU1RfUEFUSD0vdXNyIgoraG9zdG1h a2VkZXBlbmRzPSJwZXJsIHF0Ni1iYXNlLWRldmVsIHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCIKK21h a2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCBxdDYtZGVjbGFyYXRpdmUtZGV2ZWwgcXQ2LXdlYnNv Y2tldHMtZGV2ZWwiCitzaG9ydF9kZXNjPSJDcm9zcy1wbGF0Zm9ybSBhcHBsaWNhdGlvbiBhbmQg VUkgZnJhbWV3b3JrIC0gd2ViY2hhbm5lbCIKK21haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5h dG9yLmRldj4iCitsaWNlbnNlPSIoTEdQTC0zLjAtb25seSBPUiBHUEwtMi4wLW9ubHkgT1IgR1BM LTMuMC1vbmx5KSBBTkQgR1BMLTMuMC1vbmx5IHdpdGggUXQtR1BMLWV4Y2VwdGlvbi0xLjAiCito b21lcGFnZT0iaHR0cHM6Ly9xdC5pby8iCitkaXN0ZmlsZXM9Imh0dHA6Ly9kb3dubG9hZC5xdC5p by9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9LyR7dmVyc2lvbn0vc3VibW9kdWxl cy9xdHdlYmNoYW5uZWwtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufS50YXIueHoiCitjaGVja3N1 bT0wMzViYTJlOWEwZTlkZTBiYWRkZDQwZjlkNTAwMTRlNmViNWYwYjRlYzc0MWU5YWVjMWI0MzRl N2M5ZTRlOWM5CisKK3F0Ni13ZWJjaGFubmVsLWRldmVsX3BhY2thZ2UoKSB7CisJZGVwZW5kcz0i JHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IHF0Ni1iYXNlLWRldmVsPj0ke3Zl cnNpb259XzEKKwkgcXQ2LXdlYnNvY2tldHMtZGV2ZWw+PSR7dmVyc2lvbn1fMSIKKwlzaG9ydF9k ZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVz ci9pbmNsdWRlCisJCXZtb3ZlIHVzci9saWIvY21ha2UKKwkJdm1vdmUgdXNyL2xpYi9xdDYvbWtz cGVjcworCQl2bW92ZSAidXNyL2xpYi8qLnNvIgorCQl2bW92ZSAidXNyL2xpYi8qLnBybCIKKwl9 Cit9CgpGcm9tIGEyNGFjMmE2ZGYyZDQ1YmU0NmY5ZmY4YTU3NDczZGVhOGY4YmUwNTUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTog U2F0LCAyNiBKdW4gMjAyMSAyMTowODoyNSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMi8zXSBOZXcg cGFja2FnZTogcXQ2LW11bHRpbWVkaWEtNi4yLjEKCi0tLQogc3JjcGtncy9xdDYtbXVsdGltZWRp YS1kZXZlbCAgICB8ICAxICsKIHNyY3BrZ3MvcXQ2LW11bHRpbWVkaWEvdGVtcGxhdGUgfCAyOSAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAzMCBpbnNlcnRp b25zKCspCiBjcmVhdGUgbW9kZSAxMjAwMDAgc3JjcGtncy9xdDYtbXVsdGltZWRpYS1kZXZlbAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LW11bHRpbWVkaWEvdGVtcGxhdGUKCmRpZmYg LS1naXQgYS9zcmNwa2dzL3F0Ni1tdWx0aW1lZGlhLWRldmVsIGIvc3JjcGtncy9xdDYtbXVsdGlt ZWRpYS1kZXZlbApuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMDAuLjkzNDM0 NDY1MDJkMAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LW11bHRpbWVkaWEtZGV2ZWwK QEAgLTAsMCArMSBAQAorcXQ2LW11bHRpbWVkaWEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1tdWx0aW1lZGlhL3RlbXBsYXRlIGIvc3JjcGtncy9x dDYtbXVsdGltZWRpYS90ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLmIyMzljZjdmMzNkZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LW11bHRp bWVkaWEvdGVtcGxhdGUKQEAgLTAsMCArMSwyOSBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2 LW11bHRpbWVkaWEnCitwa2duYW1lPXF0Ni1tdWx0aW1lZGlhCit2ZXJzaW9uPTYuMi4xCityZXZp c2lvbj0xCit3cmtzcmM9InF0bXVsdGltZWRpYS1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259Igor YnVpbGRfc3R5bGU9Y21ha2UKK2NvbmZpZ3VyZV9hcmdzPSItRFFUX0hPU1RfUEFUSD0vdXNyIC1E UVRfRkVBVFVSRV9nc3RyZWFtZXI9T04iCitob3N0bWFrZWRlcGVuZHM9InBlcmwgcXQ2LWRlY2xh cmF0aXZlLWRldmVsIHBrZy1jb25maWcKKyBxdDYtc2hhZGVydG9vbHMtZGV2ZWwiCittYWtlZGVw ZW5kcz0icXQ2LWRlY2xhcmF0aXZlLWRldmVsCisgcXQ2LXNoYWRlcnRvb2xzLWRldmVsIGxpYmds aWItZGV2ZWwgZ3N0LXBsdWdpbnMtYmFzZTEtZGV2ZWwiCitzaG9ydF9kZXNjPSJDcm9zcy1wbGF0 Zm9ybSBhcHBsaWNhdGlvbiBhbmQgVUkgZnJhbWV3b3JrIC0gbXVsdGltZWRpYSIKK21haW50YWlu ZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCitsaWNlbnNlPSIoTEdQTC0zLjAtb25seSBP UiBHUEwtMi4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5KSBBTkQgR1BMLTMuMC1vbmx5IHdpdGggUXQt R1BMLWV4Y2VwdGlvbi0xLjAiCitob21lcGFnZT0iaHR0cHM6Ly9xdC5pby8iCitkaXN0ZmlsZXM9 Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9 LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdG11bHRpbWVkaWEtZXZlcnl3aGVyZS1zcmMtJHt2ZXJz aW9ufS50YXIueHoiCitjaGVja3N1bT0wNzc2NGFkMzFkNGQ0ZWY2NzljM2NlYjg2MWU3NjJkMTI2 OTBiNGZhODk5YjNjY2VjNDVlNTM1MzMwOWE5MGQwCisKK3F0Ni1tdWx0aW1lZGlhLWRldmVsX3Bh Y2thZ2UoKSB7CisJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259 IHF0Ni1iYXNlLWRldmVsPj0ke3ZlcnNpb259XzEiCisJc2hvcnRfZGVzYys9IiAtIGRldmVsb3Bt ZW50IGZpbGVzIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3IvaW5jbHVkZQorCQl2bW92 ZSB1c3IvbGliL2NtYWtlCisJCXZtb3ZlIHVzci9saWIvcXQ2L21rc3BlY3MKKwkJdm1vdmUgInVz ci9saWIvKi5zbyIKKwkJdm1vdmUgInVzci9saWIvKi5wcmwiCisJfQorfQoKRnJvbSBmZTdmOGM0 Nzk5NWRkNjYzYjRhNjcyMDdjMWZhMjNmYjZkNDNjM2Y1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFN1biwgMjcgSnVuIDIwMjEg MDA6MzU6MzMgKzAyMDAKU3ViamVjdDogW1BBVENIIDMvM10gTmV3IHBhY2thZ2U6IHF0Ni13ZWJl bmdpbmUtNi4yLjEKCi0tLQogc3JjcGtncy9xdDYtd2ViZW5naW5lLWRldmVsICAgICAgICAgICAg ICAgICAgIHwgICAgMSArCiBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvZmlsZXMvcmVzb2x2X2NvbXBh dC5oICAgfCAgIDI5ICsKIC4uLi9wYXRjaGVzLzAwMDEtbXVzLWNzdHJpbmcucGF0Y2ggICAgICAg ICAgICB8ICAgMTAgKwogLi4uL3BhdGNoZXMvMDAwMi1Ob25lLW5vLWRlYnVnLnBhdGNoICAgICAg ICAgIHwgICAxMSArCiAuLi5yZWcuaC10by1nZXQtX19XT1JEU0laRS1vbi1tdXNsLWxpYmMucGF0 Y2ggfCAgIDI2ICsKIC4uLi9wYXRjaGVzLzAwMDMtbXVzbC1kaXNwYXRjaC10by1tdXNsLnBhdGNo ICB8ICAxMDMgKwogLi4uL3BhdGNoZXMvMDAwNC1tdXNsLW5vLW1hbGxpbmZvLnBhdGNoICAgICAg IHwgICAzOSArCiAuLi4vcGF0Y2hlcy8wMDA2LW11c2wtcHJlYWQtcHdyaXRlLnBhdGNoICAgICAg fCAgIDE4ICsKIC4uLi9wYXRjaGVzLzAwMDgtbXVzbC1yZXNvbHZlLnBhdGNoICAgICAgICAgICB8 ICAgMjYgKwogLi4uL3BhdGNoZXMvMDAwOS1tdXNsLXNpZ2luZm9fdC5wYXRjaCAgICAgICAgIHwg ICAxOCArCiAuLi4vcGF0Y2hlcy8wMDEwLW11c2wtc3RhY2tzdGFydC5wYXRjaCAgICAgICAgfCAg IDIwICsKIC4uLi9wYXRjaGVzLzAwMTEtbXVzbC1zYW5kYm94LnBhdGNoICAgICAgICAgICB8ICAg NzEgKwogLi4uMDAxMi1tdXNsLWNocm9taXVtLWRlZmF1bHQtc3RhY2tzaXplLnBhdGNoIHwgICAx NSArCiAuLi4vMDAxNC1tdXNsLWNyb3NzLW5vLWFzbV9wdHJhY2VfaC5wYXRjaCAgICAgfCAgIDMw ICsKIC4uLi9wYXRjaGVzLzAwMTUtbm8tZ2xpYmMtY21ha2UtY2hlY2sucGF0Y2ggICB8ICAgMTcg KwogLi4uL3BhdGNoZXMvMDAxNi1xdC1tdXNsLWV4ZWNpbmZvLnBhdGNoICAgICAgIHwgIDEwNiAr CiAuLi4vMDAxNy1xdC1tdXNsLXRocmVhZC1zdGFja3NpemUucGF0Y2ggICAgICAgfCAgIDI2ICsK IC4uLi9wYXRjaGVzLzAwMTgtc2FuZGJveC1tZW1iYXJyaWVyLnBhdGNoICAgICB8ICAgNjAgKwog Li4uL3BhdGNoZXMvMDAyMC1tc2d2ZWMtcHVzaF9iYWNrLnBhdGNoICAgICAgIHwgICAxNCArCiAu Li4vcGF0Y2hlcy8wMDIxLXNhbmRib3gtc2NoZWRfZ2V0cGFyYW0ucGF0Y2ggfCAgIDI2ICsKIC4u Li8wMDIyLWNhbm9uaWNhbGl6ZS1maWxlLW5hbWUtbXVzbC5wYXRjaCAgICB8ICAgMTEgKwogLi4u L3BhdGNoZXMvMDA4OS1lbmFibGUtcHBjNjQucGF0Y2ggICAgICAgICAgIHwgICA0OSArCiAuLi4v cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTAtc2l6ZV90LnBhdGNoICAgfCAgIDE2ICsKIC4uLi9w YXRjaGVzLzAxMTEtYXJtdjdsLW5lb24ucGF0Y2ggICAgICAgICAgICB8ICAgMTAgKwogLi4uL3Bh dGNoZXMvMDExMi1hcm0tdXNlcl92ZnAucGF0Y2ggICAgICAgICAgIHwgICAyMCArCiAuLi4vcGF0 Y2hlcy8wMTEzLWFybS1lbGZfYXV4dl90LnBhdGNoICAgICAgICAgfCAgIDE4ICsKIC4uLi9xdDYt d2ViZW5naW5lL3BhdGNoZXMvY3Jvc3MtaGFjay5wYXRjaCAgICB8ICAgMTAgKwogLi4uL3BhdGNo ZXMvcHRocmVhZF9nZXRuYW1lX25wLW11cy5wYXRjaCAgICAgIHwgICAxNSArCiAuLi4vcGF0Y2hl cy94eHgtcHBjNjRsZS1saWJ2cHgucGF0Y2ggICAgICAgICAgfCAgIDcyICsKIC4uLi94eHgtcHBj NjRsZS1zYW5kYm94LWxpbnV4LXN0YXQucGF0Y2ggICAgICB8ICAgMzEgKwogLi4uL3BhdGNoZXMv eHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRjaCAgICAgICAgIHwgMzY4OSArKysrKysrKysrKysrKysr KwogLi4uL3BhdGNoZXMveHh4LXBwYzY0bGUtc3dpZnRzaGFkZXIucGF0Y2ggICAgIHwgICAxOCAr CiBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvdGVtcGxhdGUgICAgICAgICAgICAgICAgfCAgIDg3ICsK IDMzIGZpbGVzIGNoYW5nZWQsIDQ3MTIgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTIwMDAw IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS1kZXZlbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9maWxlcy9yZXNvbHZfY29tcGF0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDAxLW11cy1jc3RyaW5nLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAwMi1Ob25lLW5v LWRlYnVnLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDAwMi1pbmNsdWRlLXN5cy1yZWcuaC10by1nZXQtX19XT1JEU0laRS1vbi1tdXNsLWxp YmMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wMDAzLW11c2wtZGlzcGF0Y2gtdG8tbXVzbC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDQtbXVzbC1uby1tYWxsaW5mby5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDYtbXVz bC1wcmVhZC1wd3JpdGUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMDA4LW11c2wtcmVzb2x2ZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDktbXVzbC1zaWdpbmZvX3QucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDEwLW11 c2wtc3RhY2tzdGFydC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVu Z2luZS9wYXRjaGVzLzAwMTEtbXVzbC1zYW5kYm94LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAxMi1tdXNsLWNocm9taXVtLWRlZmF1bHQt c3RhY2tzaXplLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDAxNC1tdXNsLWNyb3NzLW5vLWFzbV9wdHJhY2VfaC5wYXRjaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMTUtbm8tZ2xpYmMtY21h a2UtY2hlY2sucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUv cGF0Y2hlcy8wMDE2LXF0LW11c2wtZXhlY2luZm8ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDE3LXF0LW11c2wtdGhyZWFkLXN0YWNrc2l6 ZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzAwMTgtc2FuZGJveC1tZW1iYXJyaWVyLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAyMC1tc2d2ZWMtcHVzaF9iYWNrLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAyMS1zYW5kYm94 LXNjaGVkX2dldHBhcmFtLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2Vi ZW5naW5lL3BhdGNoZXMvMDAyMi1jYW5vbmljYWxpemUtZmlsZS1uYW1lLW11c2wucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDg5LWVuYWJs ZS1wcGM2NC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9w YXRjaGVzLzAxMTAtc2l6ZV90LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDExMS1hcm12N2wtbmVvbi5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTItYXJtLXVzZXJfdmZwLnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExMy1h cm0tZWxmX2F1eHZfdC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVu Z2luZS9wYXRjaGVzL2Nyb3NzLWhhY2sucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy9wdGhyZWFkX2dldG5hbWVfbnAtbXVzLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMveHh4LXBwYzY0bGUt bGlidnB4LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMveHh4LXBwYzY0bGUtc2FuZGJveC1saW51eC1zdGF0LnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMveHh4LXBwYzY0bGUtc3VwcG9ydC5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzL3h4 eC1wcGM2NGxlLXN3aWZ0c2hhZGVyLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9x dDYtd2ViZW5naW5lL3RlbXBsYXRlCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5l LWRldmVsIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lLWRldmVsCm5ldyBmaWxlIG1vZGUgMTIwMDAw CmluZGV4IDAwMDAwMDAwMDAwMC4uOGU0ZDFiOTljNTg3Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9xdDYtd2ViZW5naW5lLWRldmVsCkBAIC0wLDAgKzEgQEAKK3F0Ni13ZWJlbmdpbmUKXCBO byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdp bmUvZmlsZXMvcmVzb2x2X2NvbXBhdC5oIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL2ZpbGVzL3Jl c29sdl9jb21wYXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjRm MGU4NTJhMTlkMAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9maWxl cy9yZXNvbHZfY29tcGF0LmgKQEAgLTAsMCArMSwyOSBAQAorI2lmICFkZWZpbmVkKF9fR0xJQkNf XykKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKKyAqIHJlc29sdl9jb21wYXQuaAorICoKKyAqIE1pbWlj ayBHTElCQydzIHJlc19uaW5pdCgpIGFuZCByZXNfbmNsb3NlKCkgZm9yIG11c2wgbGliYworICog Tm90ZTogcmVzX2luaXQoKSBpcyBhY3R1YWxseSBkZXByZWNhdGVkIGFjY29yZGluZyB0bworICog aHR0cDovL2RvY3Mub3JhY2xlLmNvbS9jZC9FMzY3ODRfMDEvaHRtbC9FMzY4NzUvcmVzLW5jbG9z ZS0zcmVzb2x2Lmh0bWwKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlIDxzdHJpbmcuaD4K Kworc3RhdGljIGlubGluZSBpbnQgcmVzX25pbml0KHJlc19zdGF0ZSBzdGF0cCkKK3sKKwlpbnQg cmMgPSByZXNfaW5pdCgpOworCWlmIChzdGF0cCAhPSAmX3JlcykgeworCQltZW1jcHkoc3RhdHAs ICZfcmVzLCBzaXplb2YoKnN0YXRwKSk7CisJfQorCXJldHVybiByYzsKK30KKworc3RhdGljIGlu bGluZSBpbnQgcmVzX25jbG9zZShyZXNfc3RhdGUgc3RhdHApCit7CisJaWYgKCFzdGF0cCkKKwkJ cmV0dXJuIC0xOworCWlmIChzdGF0cCAhPSAmX3JlcykgeworCQltZW1zZXQoc3RhdHAsIDAsIHNp emVvZigqc3RhdHApKTsKKwl9CisJcmV0dXJuIDA7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDEtbXVzLWNzdHJpbmcucGF0Y2ggYi9zcmNw a2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDAxLW11cy1jc3RyaW5nLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDRiMjJjNzdjZTk2Ci0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAwMS1tdXMtY3N0cmluZy5w YXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vbW9qby9w dWJsaWMvY3BwL3BsYXRmb3JtL25hbWVkX3BsYXRmb3JtX2NoYW5uZWxfcG9zaXguY2MJMjAyMS0w My0wOCAxMDozMDo0Mi41MDQwMDY2MDQgKzAxMDAKKysrKyAtCTIwMjEtMDMtMDggMTA6MzE6Mjcu NDE1MzY2NTg1ICswMTAwCitAQCAtOCw2ICs4LDcgQEAKKyAjaW5jbHVkZSA8c3lzL3NvY2tldC5o PgorICNpbmNsdWRlIDxzeXMvdW4uaD4KKyAjaW5jbHVkZSA8dW5pc3RkLmg+CisrI2luY2x1ZGUg PGNzdHJpbmc+CisgCisgI2luY2x1ZGUgImJhc2UvZmlsZXMvZmlsZV91dGlsLmgiCisgI2luY2x1 ZGUgImJhc2UvZmlsZXMvc2NvcGVkX2ZpbGUuaCIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAwMDItTm9uZS1uby1kZWJ1Zy5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAwMDItTm9uZS1uby1kZWJ1Zy5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmIzZWU0ODZlM2QyNQotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDItTm9uZS1uby1kZWJ1Zy5wYXRjaApA QCAtMCwwICsxLDExIEBACistLS0gYS9jbWFrZS9GdW5jdGlvbnMuY21ha2UKKysrKyBiL2NtYWtl L0Z1bmN0aW9ucy5jbWFrZQorQEAgLTY4Miw2ICs2ODIsOCBAQCBtYWNybyhhcHBlbmRfYnVpbGRf dHlwZV9zZXR1cCkKKyAgICAgICAgIGVuZGlmKCkKKyAgICAgZWxzZWlmKCR7Y29uZmlnfSBTVFJF UVVBTCAiTWluU2l6ZVJlbCIpCisgICAgICAgICBsaXN0KEFQUEVORCBnbkFyZ0FyZyBpc19kZWJ1 Zz1mYWxzZSBzeW1ib2xfbGV2ZWw9MCBvcHRpbWl6ZV9mb3Jfc2l6ZT10cnVlKQorKyAgICBlbHNl aWYoJHtjb25maWd9IFNUUkVRVUFMICJOb25lIikKKysgICAgICAgIGxpc3QoQVBQRU5EIGduQXJn QXJnIGlzX2RlYnVnPWZhbHNlIHN5bWJvbF9sZXZlbD0wKQorICAgICBlbmRpZigpCisgICAgIGlm KEZFQVRVUkVfZGV2ZWxvcGVyX2J1aWxkIE9SICgke2NvbmZpZ30gU1RSRVFVQUwgIkRlYnVnIikp CisgICAgICAgICBsaXN0KEFQUEVORCBnbkFyZ0FyZwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDAwMi1pbmNsdWRlLXN5cy1yZWcuaC10by1nZXQtX19XT1JEU0la RS1vbi1tdXNsLWxpYmMucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDAy LWluY2x1ZGUtc3lzLXJlZy5oLXRvLWdldC1fX1dPUkRTSVpFLW9uLW11c2wtbGliYy5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmRhNDE2MGIyMWJkMwotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDItaW5jbHVk ZS1zeXMtcmVnLmgtdG8tZ2V0LV9fV09SRFNJWkUtb24tbXVzbC1saWJjLnBhdGNoCkBAIC0wLDAg KzEsMjYgQEAKK0Zyb20gOTAwMWM1NGQ2Yjk3NDQ0OTE3NGE4Y2VlOGYzZjVkNzhhOWJkNmM5ZSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEZlbGl4IEphbmRhIDxmZWxpeC5qYW5kYUBw b3N0ZW8uZGU+CitEYXRlOiBTdW4sIDEgRmViIDIwMTUgMTQ6MjY6NTIgKzAxMDAKK1N1YmplY3Q6 IFtQQVRDSCAzLzZdIGluY2x1ZGUgPHN5cy9yZWcuaD4gdG8gZ2V0IF9fV09SRFNJWkUgb24gbXVz bCBsaWJjCisKKy0tLQorIHF0d2ViZW5naW5lL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2VsZl9jb3JlX2R1bXAuaCB8 IDEgKworIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQorCitkaWZmIC0tZ2l0IGEvc3Jj L2NvbW1vbi9saW51eC9lbGZfY29yZV9kdW1wLmggYi9zcmMvY29tbW9uL2xpbnV4L2VsZl9jb3Jl X2R1bXAuaAoraW5kZXggZDAzYzdhOC4uMDJlYjM5MSAxMDA2NDQKKy0tLSBxdHdlYmVuZ2luZS9z cmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Nv bW1vbi9saW51eC9lbGZfY29yZV9kdW1wLmgKKysrKyBxdHdlYmVuZ2luZS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9l bGZfY29yZV9kdW1wLmgKK0BAIC0zNiw2ICszNiw5IEBACisgI2luY2x1ZGUgPGVsZi5oPgorICNp bmNsdWRlIDxsaW5rLmg+CisgI2luY2x1ZGUgPHN0ZGRlZi5oPgorKyNpZm5kZWYgX19HTElCQ19f CisrI2luY2x1ZGUgPHN5cy9yZWcuaD4KKysjZW5kaWYKKyAKKyAjaW5jbHVkZSAiY29tbW9uL21l bW9yeV9yYW5nZS5oIgorIAorLS0gCisyLjAuNQorCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMDAzLW11c2wtZGlzcGF0Y2gtdG8tbXVzbC5wYXRjaCBiL3NyY3Br Z3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDMtbXVzbC1kaXNwYXRjaC10by1tdXNsLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZGUzMmEzZGFiOTVjCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAwMy1tdXNs LWRpc3BhdGNoLXRvLW11c2wucGF0Y2gKQEAgLTAsMCArMSwxMDMgQEAKKy0tLSBxdHdlYmVuZ2lu ZS9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9hbGxvY2F0b3IvYWxsb2NhdG9yX3NoaW1fZGVm YXVsdF9kaXNwYXRjaF90b19nbGliYy5jYworLS0tIHF0d2ViZW5naW5lL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9iYXNlL2FsbG9jYXRvci9hbGxvY2F0b3Jfc2hpbV9kZWZhdWx0X2Rpc3BhdGNoX3Rv X2dsaWJjLmNjCitAQCAtNiw2ICs2LDcgQEAKKyAKKyAjaW5jbHVkZSA8bWFsbG9jLmg+CisgCisr I2lmIGRlZmluZWQoX19HTElCQ19fKQorIC8vIFRoaXMgdHJhbnNsYXRpb24gdW5pdCBkZWZpbmVz IGEgZGVmYXVsdCBkaXNwYXRjaCBmb3IgdGhlIGFsbG9jYXRvciBzaGltIHdoaWNoCisgLy8gcm91 dGVzIGFsbG9jYXRpb25zIHRvIGxpYmMgZnVuY3Rpb25zLgorIC8vIFRoZSBjb2RlIGhlcmUgaXMg c3Ryb25nbHkgaW5zcGlyZWQgZnJvbSB0Y21hbGxvYydzIGxpYmNfb3ZlcnJpZGVfZ2xpYmMuaC4K K0BAIC03MywzICs3NCw5MiBAQCBjb25zdCBBbGxvY2F0b3JEaXNwYXRjaCBBbGxvY2F0b3JEaXNw YXRjaDo6ZGVmYXVsdF9kaXNwYXRjaCA9IHsKKyAgICAgbnVsbHB0ciwgICAgICAgICAgICAgICAv KiBmcmVlX2RlZmluaXRlX3NpemVfZnVuY3Rpb24gKi8KKyAgICAgbnVsbHB0ciwgICAgICAgICAg ICAgICAvKiBuZXh0ICovCisgfTsKKysKKysjZWxzZSAvLyBkZWZpbmVkKF9fR0xJQkNfXykKKysK KysjaW5jbHVkZSA8ZGxmY24uaD4KKysKKytleHRlcm4gIkMiIHsKKysvLyBEZWNsYXJlIGZ1bmN0 aW9uIHBvaW50ZXJzIHRvIHRoZSBtZW1vcnkgZnVuY3Rpb25zCisrdHlwZWRlZiB2b2lkKiAoKnRf bGliY19tYWxsb2MpKHNpemVfdCBzaXplKTsKKyt0eXBlZGVmIHZvaWQqICgqdF9saWJjX2NhbGxv Yykoc2l6ZV90IG4sIHNpemVfdCBzaXplKTsKKyt0eXBlZGVmIHZvaWQqICgqdF9saWJjX3JlYWxs b2MpKHZvaWQqIGFkZHJlc3MsIHNpemVfdCBzaXplKTsKKyt0eXBlZGVmIHZvaWQqICgqdF9saWJj X21lbWFsaWduKShzaXplX3QgYWxpZ25tZW50LCBzaXplX3Qgc2l6ZSk7CisrdHlwZWRlZiB2b2lk ICgqdF9saWJjX2ZyZWUpKHZvaWQqIHB0cik7CisrdHlwZWRlZiBzaXplX3QgKCp0X2xpYmNfbWFs bG9jX3VzYWJsZV9zaXplKSh2b2lkKiBwdHIpOworKworKy8vIFN0YXRpYyBpbnN0YW5jZXMgb2Yg cG9pbnRlcnMgdG8gbGliYy5zbyBkbCBzeW1ib2xzCisrc3RhdGljIHRfbGliY19tYWxsb2MgbGli Y19tYWxsb2MgPSBOVUxMOworK3N0YXRpYyB0X2xpYmNfY2FsbG9jIGxpYmNfY2FsbG9jID0gTlVM TDsKKytzdGF0aWMgdF9saWJjX3JlYWxsb2MgbGliY19yZWFsbG9jID0gTlVMTDsKKytzdGF0aWMg dF9saWJjX21lbWFsaWduIGxpYmNfbWVtYWxpZ24gPSBOVUxMOworK3N0YXRpYyB0X2xpYmNfZnJl ZSBsaWJjX2ZyZWUgPSBOVUxMOworK3N0YXRpYyB0X2xpYmNfbWFsbG9jX3VzYWJsZV9zaXplIGxp YmNfbWFsbG9jX3VzYWJsZV9zaXplID0gTlVMTDsKKysKKysvLyByZXNvbHZlIHRoZSBzeW1ib2xz IGluIGxpYmMuc28KKyt2b2lkIG11c2xfbGliY19tZW1vcnlfaW5pdCh2b2lkKQorK3sKKysgIGxp YmNfbWFsbG9jID0gKHRfbGliY19tYWxsb2MpIGRsc3ltKFJUTERfTkVYVCwgIm1hbGxvYyIpOwor KyAgbGliY19jYWxsb2MgPSAodF9saWJjX2NhbGxvYykgZGxzeW0oUlRMRF9ORVhULCAiY2FsbG9j Iik7CisrICBsaWJjX3JlYWxsb2MgPSAodF9saWJjX3JlYWxsb2MpIGRsc3ltKFJUTERfTkVYVCwg InJlYWxsb2MiKTsKKysgIGxpYmNfbWVtYWxpZ24gPSAodF9saWJjX21lbWFsaWduKSBkbHN5bShS VExEX05FWFQsICJtZW1hbGlnbiIpOworKyAgbGliY19mcmVlID0gKHRfbGliY19mcmVlKSBkbHN5 bShSVExEX05FWFQsICJmcmVlIik7CisrICBsaWJjX21hbGxvY191c2FibGVfc2l6ZSA9ICh0X2xp YmNfbWFsbG9jX3VzYWJsZV9zaXplKSBkbHN5bShSVExEX05FWFQsICJtYWxsb2NfdXNhYmxlX3Np emUiKTsKKyt9CisrfSAgLy8gZXh0ZXJuICJDIgorKworK25hbWVzcGFjZSB7CisrCisrdXNpbmcg YmFzZTo6YWxsb2NhdG9yOjpBbGxvY2F0b3JEaXNwYXRjaDsKKysKKyt2b2lkKiBNdXNsTWFsbG9j KGNvbnN0IEFsbG9jYXRvckRpc3BhdGNoKiwgc2l6ZV90IHNpemUsIHZvaWQqIGNvbnRleHQpIHsK KysgIGlmICghbGliY19tYWxsb2MpCisrICAgIG11c2xfbGliY19tZW1vcnlfaW5pdCgpOworKyAg cmV0dXJuICgqbGliY19tYWxsb2MpKHNpemUpOworK30KKysKKyt2b2lkKiBNdXNsQ2FsbG9jKGNv bnN0IEFsbG9jYXRvckRpc3BhdGNoKiwgc2l6ZV90IG4sIHNpemVfdCBzaXplLCB2b2lkKiBjb250 ZXh0KSB7CisrICBpZiAoIWxpYmNfY2FsbG9jKQorKyAgICBtdXNsX2xpYmNfbWVtb3J5X2luaXQo KTsKKysgIHJldHVybiAoKmxpYmNfY2FsbG9jKShuLCBzaXplKTsKKyt9CisrCisrdm9pZCogTXVz bFJlYWxsb2MoY29uc3QgQWxsb2NhdG9yRGlzcGF0Y2gqLCB2b2lkKiBhZGRyZXNzLCBzaXplX3Qg c2l6ZSwgdm9pZCogY29udGV4dCkgeworKyAgaWYgKCFsaWJjX3JlYWxsb2MpCisrICAgIG11c2xf bGliY19tZW1vcnlfaW5pdCgpOworKyAgcmV0dXJuICgqbGliY19yZWFsbG9jKShhZGRyZXNzLCBz aXplKTsKKyt9CisrCisrdm9pZCogTXVzbE1lbWFsaWduKGNvbnN0IEFsbG9jYXRvckRpc3BhdGNo Kiwgc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUsIHZvaWQqIGNvbnRleHQpIHsKKysgIGlm ICghbGliY19tZW1hbGlnbikKKysgICAgbXVzbF9saWJjX21lbW9yeV9pbml0KCk7CisrICByZXR1 cm4gKCpsaWJjX21lbWFsaWduKShhbGlnbm1lbnQsIHNpemUpOworK30KKysKKyt2b2lkIE11c2xG cmVlKGNvbnN0IEFsbG9jYXRvckRpc3BhdGNoKiwgdm9pZCogYWRkcmVzcywgdm9pZCogY29udGV4 dCkgeworKyAgaWYgKCFsaWJjX2ZyZWUpCisrICAgIG11c2xfbGliY19tZW1vcnlfaW5pdCgpOwor KyAgKCpsaWJjX2ZyZWUpKGFkZHJlc3MpOworK30KKysKKytzaXplX3QgTXVzbEdldFNpemVFc3Rp bWF0ZShjb25zdCBBbGxvY2F0b3JEaXNwYXRjaCosIHZvaWQqIGFkZHJlc3MsIHZvaWQqIGNvbnRl eHQpIHsKKysgIC8vIFRPRE8oc2lnZ2ksIHByaW1pYW5vKTogbWFsbG9jX3VzYWJsZV9zaXplIG1h eSBuZWVkIHJlZGlyZWN0aW9uIGluIHRoZQorKyAgLy8gICAgIHByZXNlbmNlIG9mIGludGVycG9z aW5nIHNoaW1zIHRoYXQgZGl2ZXJ0IGFsbG9jYXRpb25zLgorKyAgaWYgKCFsaWJjX21hbGxvY191 c2FibGVfc2l6ZSkKKysgICAgbXVzbF9saWJjX21lbW9yeV9pbml0KCk7CisrICByZXR1cm4gKCps aWJjX21hbGxvY191c2FibGVfc2l6ZSkoYWRkcmVzcyk7CisrfQorKworK30gIC8vIG5hbWVzcGFj ZQorKworK2NvbnN0IEFsbG9jYXRvckRpc3BhdGNoIEFsbG9jYXRvckRpc3BhdGNoOjpkZWZhdWx0 X2Rpc3BhdGNoID0geworKyAgICAmTXVzbE1hbGxvYywgICAgICAgICAgIC8qIGFsbG9jX2Z1bmN0 aW9uICovCisrICAgICZNdXNsQ2FsbG9jLCAgICAgICAgICAgLyogYWxsb2NfemVyb19pbml0aWFs aXplZF9mdW5jdGlvbiAqLworKyAgICAmTXVzbE1lbWFsaWduLCAgICAgICAgIC8qIGFsbG9jX2Fs aWduZWRfZnVuY3Rpb24gKi8KKysgICAgJk11c2xSZWFsbG9jLCAgICAgICAgICAvKiByZWFsbG9j X2Z1bmN0aW9uICovCisrICAgICZNdXNsRnJlZSwgICAgICAgICAgICAgLyogZnJlZV9mdW5jdGlv biAqLworKyAgICAmTXVzbEdldFNpemVFc3RpbWF0ZSwgIC8qIGdldF9zaXplX2VzdGltYXRlX2Z1 bmN0aW9uICovCisrICAgIG51bGxwdHIsICAgICAgICAgICAgICAgLyogbmV4dCAqLworK307Cisr CisrI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDA0 LW11c2wtbm8tbWFsbGluZm8ucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w MDA0LW11c2wtbm8tbWFsbGluZm8ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi4zNjkwMGY5MDc4MzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMDA0LW11c2wtbm8tbWFsbGluZm8ucGF0Y2gKQEAgLTAsMCArMSwz OSBAQAorLS0tIHF0d2ViZW5naW5lL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL3RyYWNlX2V2 ZW50L21hbGxvY19kdW1wX3Byb3ZpZGVyLmNjCTIwMTctMTEtMjggMTQ6MDY6NTMuMDAwMDAwMDAw ICswMTAwCisrKysgcXR3ZWJlbmdpbmUvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvdHJhY2Vf ZXZlbnQvbWFsbG9jX2R1bXBfcHJvdmlkZXIuY2MJMjAxOC0wMS0yNyAyMDoxMzoyNi45NjA5MzI4 MDUgKzAxMDAKK0BAIC0yNDMsNyArMjQzLDcgQEAKKyAgIGFsbG9jYXRlZF9vYmplY3RzX2NvdW50 ID0gbWFpbl9oZWFwX2luZm8uYmxvY2tfY291bnQ7CisgI2VsaWYgZGVmaW5lZChPU19GVUNIU0lB KQorIC8vIFRPRE8oZnVjaHNpYSk6IFBvcnQsIHNlZSBodHRwczovL2NyYnVnLmNvbS83MDY1OTIu CistI2Vsc2UKKysjZWxpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgIHN0cnVjdCBtYWxsaW5mbyBp bmZvID0gbWFsbGluZm8oKTsKKyAgIERDSEVDS19HRShpbmZvLmFyZW5hICsgaW5mby5oYmxraGQs IGluZm8udW9yZGJsa3MpOworIAorQEAgLTI1NSw2ICsyNTUsOCBAQAorIAorICAgLy8gVG90YWwg YWxsb2NhdGVkIHNwYWNlIGlzIGdpdmVuIGJ5IHx1b3JkYmxrc3wuCisgICBhbGxvY2F0ZWRfb2Jq ZWN0c19zaXplID0gaW5mby51b3JkYmxrczsKKysjZWxzZQorKy8vIG11c2wgbGliYyBkb2VzIG5v dCBzdXBwb3J0IG1hbGxpbmZvKCkKKyAjZW5kaWYKKyAKKyAgIE1lbW9yeUFsbG9jYXRvckR1bXAq IG91dGVyX2R1bXAgPSBwbWQtPkNyZWF0ZUFsbG9jYXRvckR1bXAoIm1hbGxvYyIpOworLS0tIHF0 d2ViZW5naW5lL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL3Byb2Nlc3MvcHJvY2Vzc19tZXRy aWNzX3Bvc2l4LmNjCTIwMjEtMDItMjMgMTY6MzY6NTkuMDAwMDAwMDAwICswMTAwCisrKysgLQky MDIxLTAzLTA3IDIxOjAzOjM4LjU3OTQyNDcyMCArMDEwMAorQEAgLTExOSwxNCArMTE5LDE0IEBA CisgICBtYWxsb2Nfc3RhdGlzdGljc190IHN0YXRzID0gezB9OworICAgbWFsbG9jX3pvbmVfc3Rh dGlzdGljcyhudWxscHRyLCAmc3RhdHMpOworICAgcmV0dXJuIHN0YXRzLnNpemVfaW5fdXNlOwor LSNlbGlmIGRlZmluZWQoT1NfTElOVVgpIHx8IGRlZmluZWQoT1NfQ0hST01FT1MpIHx8IGRlZmlu ZWQoT1NfQU5EUk9JRCkKKysjZWxpZiAoZGVmaW5lZChPU19MSU5VWCkgJiYgZGVmaW5lZChfX0dM SUJDX18pKSB8fCBkZWZpbmVkKE9TX0NIUk9NRU9TKSB8fCBkZWZpbmVkKE9TX0FORFJPSUQpCisg ICBzdHJ1Y3QgbWFsbGluZm8gbWluZm8gPSBtYWxsaW5mbygpOworICNpZiBCVUlMREZMQUcoVVNF X1RDTUFMTE9DKQorICAgcmV0dXJuIG1pbmZvLnVvcmRibGtzOworICNlbHNlCisgICByZXR1cm4g bWluZm8uaGJsa2hkICsgbWluZm8uYXJlbmE7CisgI2VuZGlmCistI2VsaWYgZGVmaW5lZChPU19G VUNIU0lBKQorKyNlbHNlIC8vaWYgZGVmaW5lZChPU19GVUNIU0lBKSAvLyBhbHNvIG11c2wgZG9l c24ndCBkbyB0aGlzLgorICAgLy8gVE9ETyhmdWNoc2lhKTogTm90IGN1cnJlbnRseSBleHBvc2Vk LiBodHRwczovL2NyYnVnLmNvbS83MzUwODcuCisgICByZXR1cm4gMDsKKyAjZW5kaWYKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDYtbXVzbC1wcmVhZC1wd3Jp dGUucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDA2LW11c2wtcHJlYWQt cHdyaXRlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMDAw MTdiYmEwMTcyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDAwNi1tdXNsLXByZWFkLXB3cml0ZS5wYXRjaApAQCAtMCwwICsxLDE4IEBACistLS0gcXR3 ZWJlbmdpbmUvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNj YWxsX3N1cHBvcnQuaAkyMDE4LTA5LTA3IDIxOjI1OjI2LjYzOTk2NDEwMCArMDIwMAorKysrIHF0 d2ViZW5naW5lL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lz Y2FsbF9zdXBwb3J0LmgJMjAxOC0wOS0wNyAyMToyNToxMS42MTE5NjQ5OTUgKzAyMDAKK0BAIC0x Nzk0LDYgKzE3OTQsMTUgQEAKKyAvKiBFbmQgb2YgczM5MC9zMzkweCBkZWZpbml0aW9ucyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgI2VuZGlmCisgCisr I2lmbmRlZiBfX0dMSUJDX18KKysgIC8qIEZvciBNdXNsIGxpYmMgcHJlYWQvcHJlYWQgaXMgdGhl IHNhbWUgYXMgcHJlYWQ2NC9wd3JpdGU2NCAqLworKyNpZm5kZWYgX19OUl9wcmVhZAorKyNkZWZp bmUgX19OUl9wcmVhZCAgICAgICAgICAgICAgX19OUl9wcmVhZDY0CisrI2VuZGlmCisrI2lmbmRl ZiBfX05SX3B3cml0ZQorKyNkZWZpbmUgX19OUl9wd3JpdGUgICAgICAgICAgICAgX19OUl9wd3Jp dGU2NAorKyNlbmRpZgorKyNlbmRpZiAvKiBpZm5kZWYgX19HTElCQ19fICovCisgCisgLyogQWZ0 ZXIgZm9ya2luZywgd2UgbXVzdCBtYWtlIHN1cmUgdG8gb25seSBjYWxsIHN5c3RlbSBjYWxscy4g ICAgICAgICAgICAgICAqLworICNpZiBkZWZpbmVkKF9fQk9VTkRFRF9QT0lOVEVSU19fKQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAwOC1tdXNsLXJlc29sdmUu cGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDA4LW11c2wtcmVzb2x2ZS5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmVkZmNlYjc5ZjMw YQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDgt bXVzbC1yZXNvbHZlLnBhdGNoCkBAIC0wLDAgKzEsMjYgQEAKKy0tLSBxdHdlYmVuZ2luZS9zcmMv M3JkcGFydHkvY2hyb21pdW0vbmV0L2Rucy9kbnNfcmVsb2FkZXIuY2MJMjAxNi0xMS0wNyAxNTo0 NjoxOC4wMDAwMDAwMDAgKzAxMDAKKysrKyBxdHdlYmVuZ2luZS9zcmMvM3JkcGFydHkvY2hyb21p dW0vbmV0L2Rucy9kbnNfcmVsb2FkZXIuY2MJMjAxNi0xMi0yMCAwMzozMzoxMS43NDkwNTk2NTYg KzAxMDAKK0BAIC05LDYgKzksMTAgQEAKKyAKKyAjaW5jbHVkZSA8cmVzb2x2Lmg+CisgCisrI2lm ICFkZWZpbmVkKF9fR0xJQkNfXykKKysjaW5jbHVkZSAicmVzb2x2X2NvbXBhdC5oIgorKyNlbmRp ZgorKworICNpbmNsdWRlICJiYXNlL2xhenlfaW5zdGFuY2UuaCIKKyAjaW5jbHVkZSAiYmFzZS9s b2dnaW5nLmgiCisgI2luY2x1ZGUgImJhc2UvbWFjcm9zLmgiCistLS0gcXR3ZWJlbmdpbmUvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL25ldC9kbnMvZG5zX2NvbmZpZ19zZXJ2aWNlX3Bvc2l4LmNjCTIw MTYtMTEtMDcgMTU6NDY6MTguMDAwMDAwMDAwICswMTAwCisrKysgcXR3ZWJlbmdpbmUvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL25ldC9kbnMvZG5zX2NvbmZpZ19zZXJ2aWNlX3Bvc2l4LmNjCTIwMTYt MTItMjAgMDM6NDA6MDcuNjcxOTUzMDk4ICswMTAwCitAQCAtNiw2ICs2LDEwIEBACisgCisgI2lu Y2x1ZGUgPHN0cmluZz4KKyAKKysjaWYgIWRlZmluZWQoX19HTElCQ19fKQorKyNpbmNsdWRlICJy ZXNvbHZfY29tcGF0LmgiCisrI2VuZGlmCisrCisgI2luY2x1ZGUgImJhc2UvYmluZC5oIgorICNp bmNsdWRlICJiYXNlL2ZpbGVzL2ZpbGUuaCIKKyAjaW5jbHVkZSAiYmFzZS9maWxlcy9maWxlX3Bh dGguaCIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDktbXVz bC1zaWdpbmZvX3QucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDA5LW11 c2wtc2lnaW5mb190LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uZmU3NjBiZTE2NjY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDAwOS1tdXNsLXNpZ2luZm9fdC5wYXRjaApAQCAtMCwwICsxLDE4IEBACitUaGVy ZSdzIGEgc3VidGxlIGRpZmZlcmVuY2UgaW4gdGhlIGludGVybmFsIG5hbWUgb2Ygc2lnaW5mb190 IGZpZWxkcworYmV0d2VlbiBnbGliYyBhbmQgbXVzbC4gVGhlIHN0cnVjdHVyZSBpdHNlbGYgaXMg ZXF1aXZhbGVudCwgc28gaXQKK3Nob3VsZCBzdWZmaWNlIHRvIGFkZCBhIG1hY3JvIHRvIHJlbmFt ZSB0aGUgZmllbGQuCisKKy0tLSBxdHdlYmVuZ2luZS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2Fu ZGJveC9saW51eC9zZWNjb21wLWJwZi90cmFwLmNjCTIwMTUtMDItMTcgMDU6NTc6NDMuMDAwMDAw MDAwICswMTAwCisrKysgcXR3ZWJlbmdpbmUvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gv bGludXgvc2VjY29tcC1icGYvdHJhcC5jYwkyMDE1LTA2LTAzIDA4OjIwOjI1LjAzMjcxNjQyNyAr MDIwMAorQEAgLTIyLDYgKzIyLDExIEBACisgI2luY2x1ZGUgInNhbmRib3gvbGludXgvc2Vydmlj ZXMvYW5kcm9pZF91Y29udGV4dC5oIgorICNlbmRpZgorCisrLy8gbXVzbCBsaWJjIGRlZmluZXMg c2lnaW5mb190IF9fc2lfZmllbGRzIGluc3RlYWQgb2YgX3NpZmllbGRzCisrI2lmICFkZWZpbmVk KF9fR0xJQkNfXykKKysjZGVmaW5lIF9zaWZpZWxkcyBfX3NpX2ZpZWxkcworKyNlbmRpZgorKwor IG5hbWVzcGFjZSB7CisKKyBjb25zdCBpbnQga0NhcGFjaXR5SW5jcmVtZW50ID0gMjA7CmRpZmYg LS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDEwLW11c2wtc3RhY2tzdGFy dC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMTAtbXVzbC1zdGFja3N0 YXJ0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYTlmOGFi NmMyNTJjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDAxMC1tdXNsLXN0YWNrc3RhcnQucGF0Y2gKQEAgLTAsMCArMSwyMCBAQAorLS0tIHF0d2ViZW5n aW5lL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0 Zm9ybS93dGYvc3RhY2tfdXRpbC5jYwkyMDE4LTAxLTI3IDIzOjA4OjQzLjU4NjQ3NTM0OSArMDEw MAorKysrIHF0d2ViZW5naW5lL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9ibGlu ay9yZW5kZXJlci9wbGF0Zm9ybS93dGYvc3RhY2tfdXRpbC5jYwkyMDE4LTAxLTI3IDIzOjE4OjIy LjI3NDUwNTIwMyArMDEwMAorQEAgLTI4LDcgKzI4LDcgQEAKKyAvLyBGSVhNRTogT24gTWFjIE9T WCBhbmQgTGludXgsIHRoaXMgbWV0aG9kIGNhbm5vdCBlc3RpbWF0ZSBzdGFjayBzaXplCisgLy8g Y29ycmVjdGx5IGZvciB0aGUgbWFpbiB0aHJlYWQuCisgCistI2VsaWYgZGVmaW5lZChfX0dMSUJD X18pIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkgfHwgZGVmaW5lZChPU19GUkVFQlNEKSB8fCBcCisr I2VsaWYgZGVmaW5lZChPU19MSU5VWCkgfHwgZGVmaW5lZChPU19BTkRST0lEKSB8fCBkZWZpbmVk KE9TX0ZSRUVCU0QpIHx8IFwKKyAgICAgZGVmaW5lZChPU19GVUNIU0lBKQorICAgLy8gcHRocmVh ZF9nZXRhdHRyX25wKCkgY2FuIGZhaWwgaWYgdGhlIHRocmVhZCBpcyBub3QgaW52b2tlZCBieQor ICAgLy8gcHRocmVhZF9jcmVhdGUoKSAoZS5nLiwgdGhlIG1haW4gdGhyZWFkIG9mIGJsaW5rX3Vu aXR0ZXN0cykuCitAQCAtOTYsNyArOTYsNyBAQAorIH0KKyAKKyB2b2lkKiBHZXRTdGFja1N0YXJ0 KCkgeworLSNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVmaW5lZChPU19BTkRST0lEKSB8fCBk ZWZpbmVkKE9TX0ZSRUVCU0QpIHx8IFwKKysjaWYgZGVmaW5lZChPU19MSU5VWCkgfHwgZGVmaW5l ZChPU19BTkRST0lEKSB8fCBkZWZpbmVkKE9TX0ZSRUVCU0QpIHx8IFwKKyAgICAgZGVmaW5lZChP U19GVUNIU0lBKQorICAgcHRocmVhZF9hdHRyX3QgYXR0cjsKKyAgIGludCBlcnJvcjsKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMTEtbXVzbC1zYW5kYm94LnBh dGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAxMS1tdXNsLXNhbmRib3gucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kM2RlMWU0MTE4M2QK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDExLW11 c2wtc2FuZGJveC5wYXRjaApAQCAtMCwwICsxLDcxIEBACistLS0gcXR3ZWJlbmdpbmUvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxs X3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmNjCTIwMTgtMDYtMTUgMDk6NDc6MjAuMDAwMDAwMDAw ICswMjAwCisrKysgcXR3ZWJlbmdpbmUvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGlu dXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmNj CTIwMTgtMDktMTMgMTk6NTM6NTMuNDUzNzgwMjUzICswMjAwCitAQCAtMTI5LDcgKzEyOSw3IEBA CisgLy8gQ0xPTkVfVk0sIG5vciBDTE9ORV9USFJFQUQsIHdoaWNoIGluY2x1ZGVzIGFsbCBmb3Jr KCkgaW1wbGVtZW50YXRpb25zLgorIFJlc3VsdEV4cHIgUmVzdHJpY3RDbG9uZVRvVGhyZWFkc0Fu ZEVQRVJNRm9yaygpIHsKKyAgIGNvbnN0IEFyZzx1bnNpZ25lZCBsb25nPiBmbGFncygwKTsKKy0K KysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgICAvLyBUT0RPKG1kZW1wc2t5KTogRXh0ZW5kIERT TCB0byBzdXBwb3J0IChmbGFncyAmIH5tYXNrMSkgPT0gbWFzazIuCisgICBjb25zdCB1aW50NjRf dCBrQW5kcm9pZENsb25lTWFzayA9IENMT05FX1ZNIHwgQ0xPTkVfRlMgfCBDTE9ORV9GSUxFUyB8 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMT05FX1NJR0hBTkQgfCBD TE9ORV9USFJFQUQgfAorQEAgLTE0OCw2ICsxNDgsMTcgQEAKKyAgIHJldHVybiBJZihJc0FuZHJv aWQoKSA/IGFuZHJvaWRfdGVzdCA6IGdsaWJjX3Rlc3QsIEFsbG93KCkpCisgICAgICAgLkVsc2VJ ZigoZmxhZ3MgJiAoQ0xPTkVfVk0gfCBDTE9ORV9USFJFQUQpKSA9PSAwLCBFcnJvcihFUEVSTSkp CisgICAgICAgLkVsc2UoQ3Jhc2hTSUdTWVNDbG9uZSgpKTsKKysjZWxzZQorKyAgY29uc3QgaW50 IHJlcXVpcmVkID0gQ0xPTkVfVk0gfCBDTE9ORV9GUyB8IENMT05FX0ZJTEVTIHwgQ0xPTkVfU0lH SEFORCB8CisrICAgICAgICAgICAgICAgICAgICAgICBDTE9ORV9USFJFQUQgfCBDTE9ORV9TWVNW U0VNOworKyAgY29uc3QgaW50IHNhZmUgPSBDTE9ORV9TRVRUTFMgfCBDTE9ORV9QQVJFTlRfU0VU VElEIHwgQ0xPTkVfQ0hJTERfQ0xFQVJUSUQgfAorKyAgICAgICAgICAgICAgICAgICBDTE9ORV9E RVRBQ0hFRDsKKysgIGNvbnN0IEJvb2xFeHByIHRocmVhZF9jbG9uZV9vayA9IChmbGFncyZ+c2Fm ZSk9PXJlcXVpcmVkOworKworKyAgcmV0dXJuIElmKHRocmVhZF9jbG9uZV9vaywgQWxsb3coKSkK KysgICAgICAuRWxzZUlmKChmbGFncyAmIChDTE9ORV9WTSB8IENMT05FX1RIUkVBRCkpID09IDAs IEVycm9yKEVQRVJNKSkKKysgICAgICAuRWxzZShDcmFzaFNJR1NZU0Nsb25lKCkpOworKyNlbmRp ZgorIH0KKyAKKyBSZXN1bHRFeHByIFJlc3RyaWN0UHJjdGwoKSB7CistLS0gcXR3ZWJlbmdpbmUv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9z eXNjYWxsX3NldHMuY2MJMjAxOC0wNi0xNSAwOTo0NzoyMC4wMDAwMDAwMDAgKzAyMDAKKysrKyBx dHdlYmVuZ2luZS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJw Zi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYwkyMDE4LTA5LTEzIDE5OjU2OjMxLjc3OTc3Mzk0MCAr MDIwMAorQEAgLTM3NSw2ICszNzUsOSBAQAorICNpZiBkZWZpbmVkKF9faTM4Nl9fKQorICAgICBj YXNlIF9fTlJfd2FpdHBpZDoKKyAjZW5kaWYKKysjaWYgIWRlZmluZWQoX19HTElCQ19fKQorKyAg ICBjYXNlIF9fTlJfc2V0X3RpZF9hZGRyZXNzOgorKyNlbmRpZgorICAgICAgIHJldHVybiB0cnVl OworICAgICBjYXNlIF9fTlJfY2xvbmU6ICAvLyBTaG91bGQgYmUgcGFyYW1ldGVyLXJlc3RyaWN0 ZWQuCisgICAgIGNhc2UgX19OUl9zZXRuczogIC8vIFByaXZpbGVnZWQuCitAQCAtMzg3LDcgKzM5 MCw5IEBACisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwg ZGVmaW5lZChfX21pcHNfXykKKyAgICAgY2FzZSBfX05SX3NldF90aHJlYWRfYXJlYToKKyAjZW5k aWYKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgICAgIGNhc2UgX19OUl9zZXRfdGlkX2FkZHJl c3M6CisrI2VuZGlmCisgICAgIGNhc2UgX19OUl91bnNoYXJlOgorICNpZiAhZGVmaW5lZChfX21p cHNfXykgJiYgIWRlZmluZWQoX19hYXJjaDY0X18pCisgICAgIGNhc2UgX19OUl92Zm9yazoKK0BA IC00OTYsNiArNTAxLDkgQEAKKyAgICAgY2FzZSBfX05SX21sb2NrOgorICAgICBjYXNlIF9fTlJf bXVubG9jazoKKyAgICAgY2FzZSBfX05SX211bm1hcDoKKysjaWYgIWRlZmluZWQoX19HTElCQ19f KQorKyAgICBjYXNlIF9fTlJfbXJlbWFwOgorKyNlbmRpZgorICAgICAgIHJldHVybiB0cnVlOwor ICAgICBjYXNlIF9fTlJfbWFkdmlzZToKKyAgICAgY2FzZSBfX05SX21pbmNvcmU6CitAQCAtNTEx LDcgKzUxOSw5IEBACisgICAgIGNhc2UgX19OUl9tb2RpZnlfbGR0OgorICNlbmRpZgorICAgICBj YXNlIF9fTlJfbXByb3RlY3Q6CisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICAgICBjYXNlIF9f TlJfbXJlbWFwOgorKyNlbmRpZgorICAgICBjYXNlIF9fTlJfbXN5bmM6CisgICAgIGNhc2UgX19O Ul9tdW5sb2NrYWxsOgorICAgICBjYXNlIF9fTlJfcmVhZGFoZWFkOgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAxMi1tdXNsLWNocm9taXVtLWRlZmF1bHQtc3Rh Y2tzaXplLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAxMi1tdXNsLWNo cm9taXVtLWRlZmF1bHQtc3RhY2tzaXplLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uN2JmNWEyMmZiYTcxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDAxMi1tdXNsLWNocm9taXVtLWRlZmF1bHQtc3RhY2tzaXpl LnBhdGNoCkBAIC0wLDAgKzEsMTUgQEAKKy0tLSBxdHdlYmVuZ2luZS9zcmMvM3JkcGFydHkvY2hy b21pdW0vYmFzZS90aHJlYWRpbmcvcGxhdGZvcm1fdGhyZWFkX2xpbnV4LmNjLm9yaWcJMjAxOC0w OS0xOSAxODowNToxNS41MjM5MjM3MDMgKzAyMDAKKysrKyBxdHdlYmVuZ2luZS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vYmFzZS90aHJlYWRpbmcvcGxhdGZvcm1fdGhyZWFkX2xpbnV4LmNjCTIwMTgt MDktMTkgMTg6MDg6MDUuMTUwOTMyNDU0ICswMjAwCitAQCAtMTczLDcgKzE3MywxMiBAQAorIAor IHNpemVfdCBHZXREZWZhdWx0VGhyZWFkU3RhY2tTaXplKGNvbnN0IHB0aHJlYWRfYXR0cl90JiBh dHRyaWJ1dGVzKSB7CisgI2lmICFkZWZpbmVkKFRIUkVBRF9TQU5JVElaRVIpCisrI2lmIGRlZmlu ZWQoX19HTElCQ19fKQorICAgcmV0dXJuIDA7CisrI2Vsc2UgLy8gZGVmaW5lZChfX0dMSUJDX18p CisrICAvLyBGb3IgTXVzbCBsaWJjIHRyeSB3aXRoIGEgZGVmYXVsdCBzdGFjayBzaXplIG9mIDIg TWlCCisrICByZXR1cm4gMiAqIDEwMjQgKiAxMDI0OworKyNlbmRpZiAvLyAhZGVmaW5lZChfX0dM SUJDX18pCisgI2Vsc2UKKyAgIC8vIFRocmVhZFNhbml0aXplciBibG9hdHMgdGhlIHN0YWNrIGhl YXZpbHkuIEV2aWRlbmNlIGhhcyBiZWVuIHRoYXQgdGhlCisgICAvLyBkZWZhdWx0IHN0YWNrIHNp emUgaXNuJ3QgZW5vdWdoIGZvciBzb21lIGJyb3dzZXIgdGVzdHMuCmRpZmYgLS1naXQgYS9zcmNw a2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDE0LW11c2wtY3Jvc3Mtbm8tYXNtX3B0cmFjZV9o LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAxNC1tdXNsLWNyb3NzLW5v LWFzbV9wdHJhY2VfaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLjE0MDc0MmY3MmMyNQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAwMTQtbXVzbC1jcm9zcy1uby1hc21fcHRyYWNlX2gucGF0Y2gKQEAgLTAsMCAr MSwzMCBAQAorLS0tIHF0d2ViZW5naW5lL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51 eF9wdHJhY2VfZHVtcGVyLmNjCTIwMTgtMDgtMjcgMTA6MjE6MzEuMDAwMDAwMDAwICswMjAwCisr KysgcXR3ZWJlbmdpbmUvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9k dW1wZXIuY2MJMjAxOC0xMS0yMiAwMDo0MTo1OC41MjI0Nzc1NTkgKzAxMDAKK0BAIC0zOCw3ICsz OCwxMiBAQAorIAorICNpbmNsdWRlICJjbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4 X3B0cmFjZV9kdW1wZXIuaCIKKyAKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgI2luY2x1ZGUg PGFzbS9wdHJhY2UuaD4KKysjZWxzZQorKy8qIEZvciBhcm0qLW11c2wgdGhpcyBkZWZpbml0aW9u IGlzIG1pc3NpbmcgKi8KKysjZGVmaW5lIEFSTV9zcCB1cmVnc1sxM10KKysjZW5kaWYKKyAjaW5j bHVkZSA8YXNzZXJ0Lmg+CisgI2luY2x1ZGUgPGVycm5vLmg+CisgI2luY2x1ZGUgPGZjbnRsLmg+ CistLS0gcXR3ZWJlbmdpbmUvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2NvcmVf ZHVtcGVyLmNjCTIwMTgtMDgtMjcgMTA6MjE6MzEuMDAwMDAwMDAwICswMjAwCisrKysgcXR3ZWJl bmdpbmUvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2NvcmVfZHVtcGVyLmNjCTIw MTgtMTEtMjIgMDA6NDk6MzkuNTMzNDkyMjQ1ICswMTAwCitAQCAtMzIsNyArMzIsMTIgQEAKKyAK KyAjaW5jbHVkZSAiY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9jb3JlX2R1bXBl ci5oIgorIAorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAjaW5jbHVkZSA8YXNtL3B0cmFjZS5o PgorKyNlbHNlCisrLyogRm9yIGFybSotbXVzbCB0aGlzIGRlZmluaXRpb24gaXMgbWlzc2luZyAq LworKyNkZWZpbmUgQVJNX3NwIHVyZWdzWzEzXQorKyNlbmRpZgorICNpbmNsdWRlIDxhc3NlcnQu aD4KKyAjaW5jbHVkZSA8ZWxmLmg+CisgI2luY2x1ZGUgPHN0ZGlvLmg+CmRpZmYgLS1naXQgYS9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDE1LW5vLWdsaWJjLWNtYWtlLWNoZWNrLnBh dGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAxNS1uby1nbGliYy1jbWFrZS1j aGVjay5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmZhY2E0 ZDIwNTE1MQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzAwMTUtbm8tZ2xpYmMtY21ha2UtY2hlY2sucGF0Y2gKQEAgLTAsMCArMSwxNyBAQAorZGlmZiAt LWdpdCBhL2NvbmZpZ3VyZS5jbWFrZSBiL2NvbmZpZ3VyZS5jbWFrZQoraW5kZXggMjgzMTg1ODcu LjhlY2M2NmFmIDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmNtYWtlCisrKysgYi9jb25maWd1cmUu Y21ha2UKK0BAIC0zODgsMTEgKzM4OCw2IEBAIGFkZF9jaGVja19mb3Jfc3VwcG9ydCgKKyAgICBD T05ESVRJT04gTk9UIExJTlVYIE9SIFBrZ0NvbmZpZ19GT1VORAorICAgIE1FU1NBR0UgIkEgcGtn LWNvbmZpZyBzdXBwb3J0IGlzIHJlcXVpcmVkLiIKKyApCistYWRkX2NoZWNrX2Zvcl9zdXBwb3J0 KAorLSAgIE1PRFVMRVMgUXRXZWJFbmdpbmUgUXRQZGYKKy0gICBDT05ESVRJT04gTk9UIExJTlVY IE9SIFRFU1RfZ2xpYmMKKy0gICBNRVNTQUdFICJBIHN1aXRhYmxlIHZlcnNpb24gPj0gMi4xNyBv ZiBnbGliYyBpcyByZXF1aXJlZC4iCistKQorIGFkZF9jaGVja19mb3Jfc3VwcG9ydCgKKyAgICBN T0RVTEVTIFF0V2ViRW5naW5lIFF0UGRmCisgICAgQ09ORElUSU9OIE5PVCBMSU5VWCBPUiBURVNU X2tocgorCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDE2LXF0 LW11c2wtZXhlY2luZm8ucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDE2 LXF0LW11c2wtZXhlY2luZm8ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi42MDhkZDBiNGUwNzgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMDE2LXF0LW11c2wtZXhlY2luZm8ucGF0Y2gKQEAgLTAsMCArMSwxMDYg QEAKKy0tLSBxdHdlYmVuZ2luZS9zcmMvM3JkcGFydHkvY2hyb21pdW0vL2Jhc2UvZGVidWcvc3Rh Y2tfdHJhY2VfcG9zaXguY2Mub3JpZwkyMDE5LTA0LTA5IDA5OjMxOjE2LjAwMDAwMDAwMCArMDIw MAorKysrIHF0d2ViZW5naW5lL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS8vYmFzZS9kZWJ1Zy9zdGFj a190cmFjZV9wb3NpeC5jYwkyMDE5LTA1LTA2IDIzOjE2OjEzLjI0NTUwMjQ2NyArMDIwMAorQEAg LTI3LDcgKzI3LDcgQEAKKyAjaWYgIWRlZmluZWQoVVNFX1NZTUJPTElaRSkKKyAjaW5jbHVkZSA8 Y3h4YWJpLmg+CisgI2VuZGlmCistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVk KF9BSVgpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorICNpbmNs dWRlIDxleGVjaW5mby5oPgorICNlbmRpZgorIAorQEAgLTg2LDcgKzg2LDcgQEAKKyAgIC8vIE5v dGU6IGNvZGUgaW4gdGhpcyBmdW5jdGlvbiBpcyBOT1QgYXN5bmMtc2lnbmFsIHNhZmUgKHN0ZDo6 c3RyaW5nIHVzZXMKKyAgIC8vIG1hbGxvYyBpbnRlcm5hbGx5KS4KKyAKKy0jaWYgIWRlZmluZWQo X19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYm ICFkZWZpbmVkKF9BSVgpCisgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIHNlYXJjaF9mcm9tID0g MDsKKyAgIHdoaWxlIChzZWFyY2hfZnJvbSA8IHRleHQtPnNpemUoKSkgeworICAgICAvLyBMb29r IGZvciB0aGUgc3RhcnQgb2YgYSBtYW5nbGVkIHN5bWJvbCwgZnJvbSBzZWFyY2hfZnJvbS4KK0BA IC0xMjEsNyArMTIxLDcgQEAKKyAgICAgICBzZWFyY2hfZnJvbSA9IG1hbmdsZWRfc3RhcnQgKyAy OworICAgICB9CisgICB9CistI2VuZGlmICAvLyAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVm aW5lZChfQUlYKQorKyNlbmRpZiAgLy8gIWRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChf QUlYKQorIH0KKyAjZW5kaWYgIC8vICFkZWZpbmVkKFVTRV9TWU1CT0xJWkUpCisgCitAQCAtMTMz LDcgKzEzMyw3IEBACisgICB2aXJ0dWFsIH5CYWNrdHJhY2VPdXRwdXRIYW5kbGVyKCkgPSBkZWZh dWx0OworIH07CisgCistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgp CisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorIHZvaWQgT3V0cHV0 UG9pbnRlcih2b2lkKiBwb2ludGVyLCBCYWNrdHJhY2VPdXRwdXRIYW5kbGVyKiBoYW5kbGVyKSB7 CisgICAvLyBUaGlzIHNob3VsZCBiZSBtb3JlIHRoYW4gZW5vdWdoIHRvIHN0b3JlIGEgNjQtYml0 IG51bWJlciBpbiBoZXg6CisgICAvLyAxNiBoZXggZGlnaXRzICsgMSBmb3IgbnVsbC10ZXJtaW5h dG9yLgorQEAgLTIxNiw3ICsyMTYsNyBAQAorICAgfQorICNlbmRpZiAgLy8gZGVmaW5lZChVU0Vf U1lNQk9MSVpFKQorIH0KKy0jZW5kaWYgIC8vICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZp bmVkKF9BSVgpCisrI2VuZGlmICAvLyAhZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9B SVgpCisgCisgdm9pZCBQcmludFRvU3RkZXJyKGNvbnN0IGNoYXIqIG91dHB1dCkgeworICAgLy8g Tk9URTogVGhpcyBjb2RlIE1VU1QgYmUgYXN5bmMtc2lnbmFsIHNhZmUgKGl0J3MgdXNlZCBieSBp bi1wcm9jZXNzCitAQCAtODEyLDcgKzgxMiw3IEBACisgICAvLyBOT1RFOiBUaGlzIGNvZGUgTVVT VCBiZSBhc3luYy1zaWduYWwgc2FmZSAoaXQncyB1c2VkIGJ5IGluLXByb2Nlc3MKKyAgIC8vIHN0 YWNrIGR1bXBpbmcgc2lnbmFsIGhhbmRsZXIpLiBOTyBtYWxsb2Mgb3Igc3RkaW8gaXMgYWxsb3dl ZCBoZXJlLgorIAorLSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQor KyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyAgIC8vIFRob3VnaCB0 aGUgYmFja3RyYWNlIEFQSSBtYW4gcGFnZSBkb2VzIG5vdCBsaXN0IGFueSBwb3NzaWJsZSBuZWdh dGl2ZQorICAgLy8gcmV0dXJuIHZhbHVlcywgd2UgdGFrZSBubyBjaGFuY2UuCisgICByZXR1cm4g YmFzZTo6c2F0dXJhdGVkX2Nhc3Q8c2l6ZV90PihiYWNrdHJhY2UodHJhY2UsIGNvdW50KSk7CitA QCAtODI1LDEzICs4MjUsMTMgQEAKKyAvLyBOT1RFOiBUaGlzIGNvZGUgTVVTVCBiZSBhc3luYy1z aWduYWwgc2FmZSAoaXQncyB1c2VkIGJ5IGluLXByb2Nlc3MKKyAvLyBzdGFjayBkdW1waW5nIHNp Z25hbCBoYW5kbGVyKS4gTk8gbWFsbG9jIG9yIHN0ZGlvIGlzIGFsbG93ZWQgaGVyZS4KKyAKKy0j aWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5lZChf X0dMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgICBQcmludEJhY2t0cmFjZU91dHB1dEhhbmRs ZXIgaGFuZGxlcjsKKyAgIFByb2Nlc3NCYWNrdHJhY2UodHJhY2VfLCBjb3VudF8sIHByZWZpeF9z dHJpbmcsICZoYW5kbGVyKTsKKyAjZW5kaWYKKyB9CisgCistI2lmICFkZWZpbmVkKF9fVUNMSUJD X18pICYmICFkZWZpbmVkKF9BSVgpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5l ZChfQUlYKQorIHZvaWQgU3RhY2tUcmFjZTo6T3V0cHV0VG9TdHJlYW1XaXRoUHJlZml4KHN0ZDo6 b3N0cmVhbSogb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgY2hhciogcHJlZml4X3N0cmluZykgY29uc3QgeworICAgU3RyZWFtQmFja3RyYWNlT3V0 cHV0SGFuZGxlciBoYW5kbGVyKG9zKTsKKy0tLSBxdHdlYmVuZ2luZS9zcmMvM3JkcGFydHkvY2hy b21pdW0vYmFzZS9kZWJ1Zy9zdGFja190cmFjZS5jYwkyMDE5LTA0LTA5IDA5OjMxOjE2LjAwMDAw MDAwMCArMDIwMAorKysrIC0JMjAxOS0wNS0wNiAyMzoxODoxNC45MjM1NjY5OTIgKzAyMDAKK0BA IC0yMzMsNyArMjMzLDcgQEAKKyB9Cisgc3RkOjpzdHJpbmcgU3RhY2tUcmFjZTo6VG9TdHJpbmdX aXRoUHJlZml4KGNvbnN0IGNoYXIqIHByZWZpeF9zdHJpbmcpIGNvbnN0IHsKKyAgIHN0ZDo6c3Ry aW5nc3RyZWFtIHN0cmVhbTsKKy0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQo X0FJWCkKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgICBPdXRw dXRUb1N0cmVhbVdpdGhQcmVmaXgoJnN0cmVhbSwgcHJlZml4X3N0cmluZyk7CisgI2VuZGlmCisg ICByZXR1cm4gc3RyZWFtLnN0cigpOworLS0tIHF0d2ViZW5naW5lL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS8vYmFzZS9sb2dnaW5nLmNjCTIwMTctMTEtMjggMTQ6MDY6NTMuMDAwMDAwMDAwICswMTAw CistLS0gcXR3ZWJlbmdpbmUvc3JjLzNyZHBhcnR5L2Nocm9taXVtLy9iYXNlL2xvZ2dpbmcuY2MJ MjAxOC0wMS0yNyAyMjo0NjozNC45NzA0MDY4MDcgKzAxMDAKK0BAIC01NDYsNyArNTQ2LDcgQEAK KyAKKyBMb2dNZXNzYWdlOjp+TG9nTWVzc2FnZSgpIHsKKyAgIHNpemVfdCBzdGFja19zdGFydCA9 IHN0cmVhbV8udGVsbHAoKTsKKy0jaWYgIWRlZmluZWQoT0ZGSUNJQUxfQlVJTEQpICYmICFkZWZp bmVkKE9TX05BQ0wpICYmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmIFwKKysjaWYgIWRlZmluZWQo T0ZGSUNJQUxfQlVJTEQpICYmICFkZWZpbmVkKE9TX05BQ0wpICYmIGRlZmluZWQoX19HTElCQ19f KSAmJiBcCisgICAgICFkZWZpbmVkKE9TX0FJWCkKKyAgIGlmIChzZXZlcml0eV8gPT0gTE9HX0ZB VEFMICYmICFiYXNlOjpkZWJ1Zzo6QmVpbmdEZWJ1Z2dlZCgpKSB7CisgICAgIC8vIEluY2x1ZGUg YSBzdGFjayB0cmFjZSBvbiBhIGZhdGFsLCB1bmxlc3MgYSBkZWJ1Z2dlciBpcyBhdHRhY2hlZC4K Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2RlYnVnL3N0YWNrX3RyYWNlLmNjCTIw MjEtMDYtMjcgMTg6MTc6MDYuODM0NzA1ODQ4ICswMjAwCisrKysgLQkyMDIxLTA2LTI3IDE4OjI3 OjUzLjAxNDEwMjgwMyArMDIwMAorQEAgLTIxNyw3ICsyMTcsOSBAQAorIH0KKyAKKyB2b2lkIFN0 YWNrVHJhY2U6Ok91dHB1dFRvU3RyZWFtKHN0ZDo6b3N0cmVhbSogb3MpIGNvbnN0IHsKKysjaWYg ZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgICBPdXRwdXRUb1N0cmVhbVdp dGhQcmVmaXgob3MsIG51bGxwdHIpOworKyNlbmRpZgorIH0KKyAKKyBzdGQ6OnN0cmluZyBTdGFj a1RyYWNlOjpUb1N0cmluZygpIGNvbnN0IHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVu Z2luZS9wYXRjaGVzLzAwMTctcXQtbXVzbC10aHJlYWQtc3RhY2tzaXplLnBhdGNoIGIvc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAxNy1xdC1tdXNsLXRocmVhZC1zdGFja3NpemUucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40OTY3NTNiZWYzMGYK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDE3LXF0 LW11c2wtdGhyZWFkLXN0YWNrc2l6ZS5wYXRjaApAQCAtMCwwICsxLDI2IEBACitkaWZmIC0tZ2l0 IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3BwYXBpL3V0aWxpdHkvdGhyZWFkaW5nL3NpbXBsZV90 aHJlYWQuY2MgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vcHBhcGkvdXRpbGl0eS90aHJlYWRpbmcv c2ltcGxlX3RocmVhZC5jYworaW5kZXggMDJiZjQ5Yi4uMDVlZTE4MiAxMDA2NDQKKy0tLSBxdHdl YmVuZ2luZS9zcmMvM3JkcGFydHkvY2hyb21pdW0vcHBhcGkvdXRpbGl0eS90aHJlYWRpbmcvc2lt cGxlX3RocmVhZC5jYworKysrIHF0d2ViZW5naW5lL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9wcGFw aS91dGlsaXR5L3RocmVhZGluZy9zaW1wbGVfdGhyZWFkLmNjCitAQCAtMTMsNyArMTMsNyBAQCBu YW1lc3BhY2UgcHAgeworIG5hbWVzcGFjZSB7CisgCisgLy8gVXNlIDJNQiBkZWZhdWx0IHN0YWNr IHNpemUgZm9yIE5hdGl2ZSBDbGllbnQsIG90aGVyd2lzZSB1c2Ugc3lzdGVtIGRlZmF1bHQuCist I2lmIGRlZmluZWQoX19uYXRpdmVfY2xpZW50X18pCisrI2lmIGRlZmluZWQoX19uYXRpdmVfY2xp ZW50X18pIHx8ICFkZWZpbmVkKF9fR0xJQkNfXykKKyBjb25zdCBzaXplX3Qga0RlZmF1bHRTdGFj a1NpemUgPSAyICogMTAyNCAqIDEwMjQ7CisgI2Vsc2UKKyBjb25zdCBzaXplX3Qga0RlZmF1bHRT dGFja1NpemUgPSAwOworZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMv YmFzZS9wbGF0Zm9ybS9wbGF0Zm9ybS1wb3NpeC5jYyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92 OC9zcmMvYmFzZS9wbGF0Zm9ybS9wbGF0Zm9ybS1wb3NpeC5jYworaW5kZXggY2Y3ZjNlYy4uZTA2 YTVjZSAxMDA2NDQKKy0tLSBxdHdlYmVuZ2luZS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3Jj L2Jhc2UvcGxhdGZvcm0vcGxhdGZvcm0tcG9zaXguY2MKKysrKyBxdHdlYmVuZ2luZS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdjgvc3JjL2Jhc2UvcGxhdGZvcm0vcGxhdGZvcm0tcG9zaXguY2MKK0BA IC03NjEsNyArNzYxLDcgQEAgdm9pZCBUaHJlYWQ6OlN0YXJ0KCkgeworICNpZiBWOF9PU19NQUNP U1gKKyAgICAgLy8gRGVmYXVsdCBvbiBNYWMgT1MgWCBpcyA1MTJrQiAtLSBidW1wIHVwIHRvIDFN QgorICAgICBzdGFja19zaXplID0gMSAqIDEwMjQgKiAxMDI0OworLSNlbGlmIFY4X09TX0FJWAor KyNlbGlmIFY4X09TX0FJWCB8fCAhZGVmaW5lZChfX0dMSUJDX18pCisgICAgIC8vIERlZmF1bHQg b24gQUlYIGlzIDk2a0IgLS0gYnVtcCB1cCB0byAyTUIKKyAgICAgc3RhY2tfc2l6ZSA9IDIgKiAx MDI0ICogMTAyNDsKKyAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9w YXRjaGVzLzAwMTgtc2FuZGJveC1tZW1iYXJyaWVyLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDAxOC1zYW5kYm94LW1lbWJhcnJpZXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iNzM5NzFmMjQzMjQKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDE4LXNhbmRib3gtbWVtYmFycmllci5w YXRjaApAQCAtMCwwICsxLDYwIEBACistLS0gcXR3ZWJlbmdpbmUvc3JjLzNyZHBhcnR5L2Nocm9t aXVtLy9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2FybTY0X2xpbnV4X3N5c2NhbGxzLmgK KysrKyBxdHdlYmVuZ2luZS9zcmMvM3JkcGFydHkvY2hyb21pdW0vL3NhbmRib3gvbGludXgvc3lz dGVtX2hlYWRlcnMvYXJtNjRfbGludXhfc3lzY2FsbHMuaAorQEAgLTEwNjMsNCArMTA2Myw4IEBA CisgI2RlZmluZSBfX05SX21lbWZkX2NyZWF0ZSAyNzkKKyAjZW5kaWYKKyAKKysjaWYgIWRlZmlu ZWQoX19OUl9tZW1iYXJyaWVyKQorKyNkZWZpbmUgX19OUl9tZW1iYXJyaWVyIDI4MworKyNlbmRp ZgorKworICNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19BUk02NF9MSU5V WF9TWVNDQUxMU19IXworCistLS0gcXR3ZWJlbmdpbmUvc3JjLzNyZHBhcnR5L2Nocm9taXVtLy9z YW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2FybV9saW51eF9zeXNjYWxscy5oCisrKysgcXR3 ZWJlbmdpbmUvc3JjLzNyZHBhcnR5L2Nocm9taXVtLy9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFk ZXJzL2FybV9saW51eF9zeXNjYWxscy5oCitAQCAtMTM4NSw2ICsxMzg1LDEwIEBACisgI2RlZmlu ZSBfX05SX21lbWZkX2NyZWF0ZSAoX19OUl9TWVNDQUxMX0JBU0UrMzg1KQorICNlbmRpZgorIAor KyNpZiAhZGVmaW5lZChfX05SX21lbWJhcnJpZXIpCisrI2RlZmluZSBfX05SX21lbWJhcnJpZXIg KF9fTlJfU1lTQ0FMTF9CQVNFKzM4OSkKKysjZW5kaWYKKysKKyAvLyBBUk0gcHJpdmF0ZSBzeXNj YWxscy4KKyAjaWYgIWRlZmluZWQoX19BUk1fTlJfQkFTRSkKKyAjZGVmaW5lIF9fQVJNX05SX0JB U0UgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMHhGMDAwMCkKKworLS0tIHF0d2ViZW5naW5lL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS8vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy94ODZfMzJfbGlu dXhfc3lzY2FsbHMuaAorKysrIHF0d2ViZW5naW5lL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS8vc2Fu ZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy94ODZfMzJfbGludXhfc3lzY2FsbHMuaAorQEAgLTE0 MjIsNSArMTQyMiw5IEBACisgI2RlZmluZSBfX05SX21lbWZkX2NyZWF0ZSAzNTYKKyAjZW5kaWYK KyAKKysjaWYgIWRlZmluZWQoX19OUl9tZW1iYXJyaWVyKQorKyNkZWZpbmUgX19OUl9tZW1iYXJy aWVyIDM3NQorKyNlbmRpZgorKworICNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TWVNURU1fSEVB REVSU19YODZfMzJfTElOVVhfU1lTQ0FMTFNfSF8KKyAKKy0tLSBxdHdlYmVuZ2luZS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMveDg2XzY0X2xpbnV4 X3N5c2NhbGxzLmgKKysrKyBxdHdlYmVuZ2luZS9zcmMvM3JkcGFydHkvY2hyb21pdW0vL3NhbmRi b3gvbGludXgvc3lzdGVtX2hlYWRlcnMveDg2XzY0X2xpbnV4X3N5c2NhbGxzLmgKK0BAIC0xMjkw LDUgKzEyOTAsOSBAQAorICNkZWZpbmUgX19OUl9tZW1mZF9jcmVhdGUgMzE5CisgI2VuZGlmCisg CisrI2lmICFkZWZpbmVkKF9fTlJfbWVtYmFycmllcikKKysjZGVmaW5lIF9fTlJfbWVtYmFycmll ciAzMjQKKysjZW5kaWYKKysKKyAjZW5kaWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURF UlNfWDg2XzY0X0xJTlVYX1NZU0NBTExTX0hfCisgCistLS0gcXR3ZWJlbmdpbmUvc3JjLzNyZHBh cnR5L2Nocm9taXVtLy9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9z ZXRzLmNjCisrKysgcXR3ZWJlbmdpbmUvc3JjLzNyZHBhcnR5L2Nocm9taXVtLy9zYW5kYm94L2xp bnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCitAQCAtMzcwLDYgKzM3MCw3 IEBACisgICBzd2l0Y2ggKHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9leGl0OgorICAgICBjYXNl IF9fTlJfZXhpdF9ncm91cDoKKysgICAgY2FzZSBfX05SX21lbWJhcnJpZXI6CisgICAgIGNhc2Ug X19OUl93YWl0NDoKKyAgICAgY2FzZSBfX05SX3dhaXRpZDoKKyAjaWYgZGVmaW5lZChfX2kzODZf XykKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMjAtbXNndmVj LXB1c2hfYmFjay5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMjAtbXNn dmVjLXB1c2hfYmFjay5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLjc1NDgxYTI4ODlmNAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAwMjAtbXNndmVjLXB1c2hfYmFjay5wYXRjaApAQCAtMCwwICsxLDE0IEBACist LS0gcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNC4wLWJldGEyL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9uZXQvc29ja2V0L3VkcF9zb2NrZXRfcG9zaXguY2MJMjAxOS0xMC0wOCAwODoyNzo0 My4wMDAwMDAwMDAgKzAyMDAKKysrKyAtCTIwMTktMTEtMTEgMjI6NDE6NDYuNjk5MDY4ODg5ICsw MTAwCitAQCAtMTE5MSw3ICsxMTkxLDExIEBACisgICAgIG1zZ19pb3YtPnB1c2hfYmFjayh7Y29u c3RfY2FzdDxjaGFyKj4oYnVmZmVyLT5kYXRhKCkpLCBidWZmZXItPmxlbmd0aCgpfSk7CisgICBt c2d2ZWMtPnJlc2VydmUoYnVmZmVycy5zaXplKCkpOworICAgZm9yIChzaXplX3QgaiA9IDA7IGog PCBidWZmZXJzLnNpemUoKTsgaisrKQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgICAgbXNn dmVjLT5wdXNoX2JhY2soe3tudWxscHRyLCAwLCAmbXNnX2lvdltqXSwgMSwgbnVsbHB0ciwgMCwg MH0sIDB9KTsKKysjZWxzZQorKyAgICBtc2d2ZWMtPnB1c2hfYmFjayh7e251bGxwdHIsIDAsICZt c2dfaW92W2pdLCAxLCAwLCAwLCAwfSwgMH0pOworKyNlbmRpZgorICAgaW50IHJlc3VsdCA9IEhB TkRMRV9FSU5UUihTZW5kbW1zZyhmZCwgJm1zZ3ZlY1swXSwgYnVmZmVycy5zaXplKCksIDApKTsK KyAgIFNlbmRSZXN1bHQgc2VuZF9yZXN1bHQoMCwgMCwgc3RkOjptb3ZlKGJ1ZmZlcnMpKTsKKyAg IGlmIChyZXN1bHQgPCAwKSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMDIxLXNhbmRib3gtc2NoZWRfZ2V0cGFyYW0ucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMDIxLXNhbmRib3gtc2NoZWRfZ2V0cGFyYW0ucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kOGM2YWExNWNmNjYKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDIxLXNhbmRib3gtc2NoZWRf Z2V0cGFyYW0ucGF0Y2gKQEAgLTAsMCArMSwyNiBAQAorQWxsb3cgU1lTX3NjaGVkX2dldHBhcmFt IGFuZCBTWVNfc2NoZWRfZ2V0c2NoZWR1bGVyCittdXNsIHVzZXMgdGhlbSBmb3IgcHRocmVhZF9n ZXRzY2hlZHBhcmFtKCkKKworc291cmNlOiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvYXBv cnRzL2NvbW1pdC9jb21tdW5pdHkvY2hyb21pdW0/aWQ9NTRhZjlmOGFjMjRmNTJkMzgyYzU3NThl MjQ0NWJmMDIwNmVmZjQwZQorCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9w b2xpY3kvbGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYwkyMDIxLTAyLTIzIDE2OjM2 OjU5LjAwMDAwMDAwMCArMDEwMAorKysrIC0JMjAyMS0wMy0wNyAyMToxMzo0NC45OTIwNzkxNDUg KzAxMDAKK0BAIC05MywxMSArOTMsMTggQEAKKyAgICAgY2FzZSBfX05SX3N5c2luZm86CisgICAg IGNhc2UgX19OUl90aW1lczoKKyAgICAgY2FzZSBfX05SX3VuYW1lOgorKyNpZiAhZGVmaW5lZChf X0dMSUJDX18pCisrICAgIGNhc2UgX19OUl9zY2hlZF9nZXRwYXJhbToKKysgICAgY2FzZSBfX05S X3NjaGVkX2dldHNjaGVkdWxlcjoKKysgICAgY2FzZSBfX05SX3NjaGVkX3NldHNjaGVkdWxlcjoK KysjZW5kaWYKKyAgICAgICByZXR1cm4gQWxsb3coKTsKKyAgICAgY2FzZSBfX05SX3NjaGVkX2dl dGFmZmluaXR5OgorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgICAgY2FzZSBfX05SX3NjaGVk X2dldHBhcmFtOgorICAgICBjYXNlIF9fTlJfc2NoZWRfZ2V0c2NoZWR1bGVyOgorICAgICBjYXNl IF9fTlJfc2NoZWRfc2V0c2NoZWR1bGVyOgorKyNlbmRpZgorICAgICAgIHJldHVybiBSZXN0cmlj dFNjaGVkVGFyZ2V0KEdldFBvbGljeVBpZCgpLCBzeXNubyk7CisgICAgIGNhc2UgX19OUl9wcmxp bWl0NjQ6CisgICAgICAgLy8gU2VlIGNyYnVnLmNvbS82NjI0NTAgYW5kIHNldHJsaW1pdCBjb21t ZW50IGFib3ZlLgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAy Mi1jYW5vbmljYWxpemUtZmlsZS1uYW1lLW11c2wucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdp bmUvcGF0Y2hlcy8wMDIyLWNhbm9uaWNhbGl6ZS1maWxlLW5hbWUtbXVzbC5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjg5M2VkMmQ0MWJiNAotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMjItY2Fub25pY2FsaXpl LWZpbGUtbmFtZS1tdXNsLnBhdGNoCkBAIC0wLDAgKzEsMTEgQEAKKy0tLSBxdHdlYmVuZ2luZS9z cmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbmFzbS9uYXNtbGliL3JlYWxwYXRoLmMJ MjAxOS0wOS0yMyAxNDoyNDoyMC4wMDAwMDAwMDAgKzAyMDAKKysrKyAtCTIwMTktMTAtMTEgMDY6 Mjc6MjguNDUwMzI5OTg2ICswMjAwCitAQCAtNTcsNyArNTcsNyBAQAorICAqLworIGNoYXIgKm5h c21fcmVhbHBhdGgoY29uc3QgY2hhciAqcmVsX3BhdGgpCisgeworLSAgICBjaGFyICpycCA9IGNh bm9uaWNhbGl6ZV9maWxlX25hbWUocmVsX3BhdGgpOworKyAgICBjaGFyICpycCA9IHJlYWxwYXRo KHJlbF9wYXRoLCBOVUxMKTsKKyAgICAgcmV0dXJuIHJwID8gcnAgOiBuYXNtX3N0cmR1cChyZWxf cGF0aCk7CisgfQorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDA4OS1lbmFibGUtcHBjNjQucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w MDg5LWVuYWJsZS1wcGM2NC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLmI4Nzc2NjgyNTA2MwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVu Z2luZS9wYXRjaGVzLzAwODktZW5hYmxlLXBwYzY0LnBhdGNoCkBAIC0wLDAgKzEsNDkgQEAKK0Zy b20gNDYzZjEyMzRjNTdhMzZlNzhmZjY2NmJkNTUwOTRhOWQ0ZTY4ZjI5NiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKK0Zyb206IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CitEYXRlOiBTYXQs IDE4IEphbiAyMDIwIDIzOjUyOjU1ICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggMS8zXSBFbmFibGUg cHBjNjQgYnVpbGRzCisKKy0tLQorIGNvbmZpZ3VyZS5wcmkgICAgICAgICAgICAgICAgICB8IDEg KworIG1rc3BlY3MvZmVhdHVyZXMvZnVuY3Rpb25zLnByZiB8IDEgKworIDIgZmlsZXMgY2hhbmdl ZCwgMiBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9jb25maWd1cmUucHJpIGIvY29uZmln dXJlLnByaQoraW5kZXggM2ExNDRlM2Y4Li5jYWJlOGIyNGEgMTAwNjQ0CistLS0gYS9jb25maWd1 cmUucHJpCTIwMjEtMDItMjQgMTA6NDU6NTguMDAwMDAwMDAwICswMTAwCisrKysgLQkyMDIxLTAz LTA3IDIxOjE4OjQzLjEyNDc1NDc5NiArMDEwMAorQEAgLTE0NCw2ICsxNDQsNyBAQAorICAgICBj b250YWlucyhRVF9BUkNILCAiYXJtIil8Y29udGFpbnMoUVRfQVJDSCwgImFybTY0Iik6IHJldHVy bih0cnVlKQorICAgICBjb250YWlucyhRVF9BUkNILCAibWlwcyIpOiByZXR1cm4odHJ1ZSkKKyAg ICAgY29udGFpbnMoUVRfQVJDSCwgIm1pcHM2NCIpOiByZXR1cm4odHJ1ZSkKKysgICAgY29udGFp bnMoUVRfQVJDSCwgInBvd2VyNjQiKTogcmV0dXJuKHRydWUpCisgICAgIHF0TG9nKCJBcmNoaXRl Y3R1cmUgbm90IHN1cHBvcnRlZC4iKQorICAgICByZXR1cm4oZmFsc2UpCisgfQorZGlmZiAtLWdp dCBhL21rc3BlY3MvZmVhdHVyZXMvZnVuY3Rpb25zLnByZiBiL21rc3BlY3MvZmVhdHVyZXMvZnVu Y3Rpb25zLnByZgoraW5kZXggNTEyZTI1MjNiLi5lMzExMjM2NTQgMTAwNjQ0CistLS0gYS9ta3Nw ZWNzL2ZlYXR1cmVzL2Z1bmN0aW9ucy5wcmYJMjAyMS0wMi0yNCAxMDo0NTo1OC4wMDAwMDAwMDAg KzAxMDAKKysrKyAtCTIwMjEtMDMtMDcgMjE6MTk6MjEuMzQ1MDM2MjkzICswMTAwCitAQCAtMTA3 LDYgKzEwNyw3IEBACisgICAgIGNvbnRhaW5zKHF0QXJjaCwgIm1pcHMiKTogcmV0dXJuKG1pcHNl bCkKKyAgICAgY29udGFpbnMocXRBcmNoLCAibWlwczY0Iik6IHJldHVybihtaXBzNjRlbCkKKyAg ICAgY29udGFpbnMocXRBcmNoLCAibWlwczY0ZWwiKTogcmV0dXJuKG1pcHM2NGVsKQorKyAgICBj b250YWlucyhxdEFyY2gsICJwb3dlcjY0Iik6IHJldHVybihwcGM2NCkKKyAgICAgcmV0dXJuKHVu a25vd24pCisgfQorIAorLS0tIGEvY21ha2UvRnVuY3Rpb25zLmNtYWtlCTIwMjEtMDYtMjcgMjE6 MzA6NDcuMjM2OTk4ODQ0ICswMjAwCisrKysgLQkyMDIxLTA2LTI3IDIxOjMzOjUwLjA5MTc5NDc1 MyArMDIwMAorQEAgLTM2Miw2ICszNjIsOCBAQAorICAgICAgIHNldCgke3Jlc3VsdH0gIm1pcHNl bCIgUEFSRU5UX1NDT1BFKQorICAgIGVsc2VpZigiJHthcmNofSIgU1RSRVFVQUwgIm1pcHNlbDY0 IikKKyAgICAgICBzZXQoJHtyZXN1bHR9ICJtaXBzNjRlbCIgUEFSRU5UX1NDT1BFKQorKyAgIGVs c2VpZigiJHthcmNofSIgU1RSRVFVQUwgInBvd2VyNjQiKQorKyAgICAgIHNldCgke3Jlc3VsdH0g InBwYzY0IiBQQVJFTlRfU0NPUEUpCisgICAgZWxzZSgpCisgICAgICAgbWVzc2FnZShERUJVRyAi VW5zdXBwb3J0ZWQgYWNoaXRlY3R1cmU6ICR7YXJjaH0iKQorICAgIGVuZGlmKCkKKworLS0gCisy LjI2LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExMC1z aXplX3QucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTEwLXNpemVfdC5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQ2MmUzMjAyMjc5 ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTAt c2l6ZV90LnBhdGNoCkBAIC0wLDAgKzEsMTYgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS90aGlyZF9wYXJ0eS9hbmdsZS9pbmNsdWRlL3BsYXRmb3JtL1BsYXRmb3JtTWV0aG9kcy5oCTIw MjEtMDItMjMgMTY6MzY6NTkuMDAwMDAwMDAwICswMTAwCisrKysgLQkyMDIxLTAzLTA3IDIxOjQ0 OjI1LjQ3Nzk4OTcyNiArMDEwMAorQEAgLTIzOSwxMSArMjM5LDExIEBACisgdXNpbmcgUHJvZ3Jh bUtleVR5cGUgICA9IHN0ZDo6YXJyYXk8dWludDhfdCwgMjA+OworIHVzaW5nIENhY2hlUHJvZ3Jh bUZ1bmMgPSB2b2lkICgqKShQbGF0Zm9ybU1ldGhvZHMgKnBsYXRmb3JtLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBQcm9ncmFtS2V5VHlwZSAma2V5LAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgcHJvZ3JhbVNpemUsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6c2l6ZV90IHByb2dyYW1TaXplLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpwcm9ncmFtQnl0 ZXMpOworIGlubGluZSB2b2lkIERlZmF1bHRDYWNoZVByb2dyYW0oUGxhdGZvcm1NZXRob2RzICpw bGF0Zm9ybSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFByb2dyYW1L ZXlUeXBlICZrZXksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgcHJv Z3JhbVNpemUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnNpemVfdCBw cm9ncmFtU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4 X3QgKnByb2dyYW1CeXRlcykKKyB7fQorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDExMS1hcm12N2wtbmVvbi5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAxMTEtYXJtdjdsLW5lb24ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwLi4zNjgwOTliOTgxY2MKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTExLWFybXY3bC1uZW9uLnBhdGNoCkBAIC0wLDAgKzEs MTAgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9za2lhL0JVSUxELmduCTIwMjAtMDkt MDEgMTM6MDI6MzQuMDAwMDAwMDAwICswMjAwCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0v c2tpYS9CVUlMRC5nbgkyMDIwLTEwLTA2IDIwOjUxOjQ4LjgzNDk3MDQ1NSArMDIwMAorQEAgLTc3 Miw3ICs3NzIsNiBAQAorICAgICAgICAgIyBSb290IGJ1aWxkIGNvbmZpZyBzZXRzIC1tZnB1PSRh cm1fZnB1LCB3aGljaCB3ZSBleHBlY3QgdG8gYmUgbmVvbgorICAgICAgICAgIyB3aGVuIHJ1bm5p bmcgdGhpcy4KKyAgICAgICAgIGlmICghYXJtX3VzZV9uZW9uKSB7CistICAgICAgICAgIGNvbmZp Z3MgLT0gWyAiLy9idWlsZC9jb25maWcvY29tcGlsZXI6Y29tcGlsZXJfYXJtX2ZwdSIgXQorICAg ICAgICAgICBjZmxhZ3MgKz0gWyAiLW1mcHU9bmVvbiIgXQorICAgICAgICAgfQorICAgICAgIH0K ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTItYXJtLXVzZXJf dmZwLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExMi1hcm0tdXNlcl92 ZnAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42ZTJkNjJm MzVlZTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w MTEyLWFybS11c2VyX3ZmcC5wYXRjaApAQCAtMCwwICsxLDIwIEBACistLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90aHJl YWRfaW5mby5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oCitAQCAtMTcsNiArMTcsMTcgQEAK KyAKKyAjaW5jbHVkZSA8c3RkaW50Lmg+CisgI2luY2x1ZGUgPHN5cy91c2VyLmg+CisrI2lmICFk ZWZpbmVkKF9fR0xJQkNfXykKKytzdHJ1Y3QgdXNlcl92ZnAgeworKwl1bnNpZ25lZCBsb25nIGxv bmcgZnByZWdzWzMyXTsKKysJdW5zaWduZWQgbG9uZyBmcHNjcjsKKyt9OworK3N0cnVjdCB1c2Vy X3ZmcF9leGMgeworKwl1bnNpZ25lZCBsb25nIGZwZXhjOworKwl1bnNpZ25lZCBsb25nIGZwaW5z dDsKKysJdW5zaWduZWQgbG9uZyBmcGluc3QyOworK307CisrI2VuZGlmIC8qICFkZWZpbmVkKF9f R0xJQkNfXykgKi8KKyAKKyAjaW5jbHVkZSA8dHlwZV90cmFpdHM+CisgCmRpZmYgLS1naXQgYS9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTEzLWFybS1lbGZfYXV4dl90LnBhdGNoIGIv c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExMy1hcm0tZWxmX2F1eHZfdC5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjVjN2NiZmM0NmY2NQotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTMtYXJtLWVs Zl9hdXh2X3QucGF0Y2gKQEAgLTAsMCArMSwxOCBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3Y4L3NyYy9iYXNlL2NwdS5jYwkyMDIwLTA5LTAxIDEzOjAyOjM0LjAwMDAwMDAwMCArMDIw MAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9iYXNlL2NwdS5jYwkyMDIwLTEw LTA2IDIxOjI4OjQ1LjEyNDg4MjA4NSArMDIwMAorQEAgLTEwOSw2ICsxMDksMTUgQEAKKyAjZGVm aW5lIEhXQ0FQX0lESVYgIChIV0NBUF9JRElWQSB8IEhXQ0FQX0lESVZUKQorICNkZWZpbmUgSFdD QVBfTFBBRSAgKDEgPDwgMjApCisgCisrI2lmbmRlZiBfX0dMSUJDX18KKysjaW5jbHVkZSA8ZWxm Lmg+CisrI2lmZGVmIF9fTFA2NF9fCisrdHlwZWRlZiBFbGY2NF9hdXh2X3QgZWxmX2F1eHZfdDsK KysjZWxzZQorK3R5cGVkZWYgRWxmMzJfYXV4dl90IGVsZl9hdXh2X3Q7CisrI2VuZGlmCisrI2Vu ZGlmCisrCisgc3RhdGljIHVpbnQzMl90IFJlYWRFTEZIV0NhcHMoKSB7CisgI2lmIFY4X0dMSUJD X1BSRVJFUSgyLCAxNikKKyAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50MzJfdD4oZ2V0YXV4dmFs KEFUX0hXQ0FQKSk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy9j cm9zcy1oYWNrLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvY3Jvc3MtaGFj ay5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjcyNWZiN2Iz ZTkyMAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzL2Ny b3NzLWhhY2sucGF0Y2gKQEAgLTAsMCArMSwxMCBAQAorLS0tIGEvc3JjL2NvcmUvYXBpL0NNYWtl TGlzdHMudHh0CTIwMjEtMDktMjUgMTE6Mzk6MjcuMDAwMDAwMDAwICswMjAwCisrKysgLQkyMDIx LTEwLTAzIDEyOjExOjI5LjI3NTU2NDcyOSArMDIwMAorQEAgLTUwLDYgKzUwLDcgQEAKKyAgICAg ICAgIFF0OjpHdWkKKyAgICAgICAgIFF0OjpOZXR3b3JrCisgICAgICAgICBRdDo6UXVpY2sKKysJ WDExCisgKQorIAorIHNldF90YXJnZXRfcHJvcGVydGllcyhXZWJFbmdpbmVDb3JlIFBST1BFUlRJ RVMgUVRXRUJFTkdJTkVQUk9DRVNTX05BTUUgJHtxdFdlYkVuZ2luZVByb2Nlc3NOYW1lfSkKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzL3B0aHJlYWRfZ2V0bmFtZV9u cC1tdXMucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy9wdGhyZWFkX2dldG5h bWVfbnAtbXVzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u YWFiYWE1MWI5MDE1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvcHRocmVhZF9nZXRuYW1lX25wLW11cy5wYXRjaApAQCAtMCwwICsxLDE1IEBACistLS0g YS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvcGVyZmV0dG8vaW5jbHVkZS9wZXJm ZXR0by9leHQvYmFzZS90aHJlYWRfdXRpbHMuaAkyMDIxLTA5LTEyIDAwOjQ5OjQ3LjYyMzUzODU4 MyArMDIwMAorKysrIC0JMjAyMS0wOS0xMiAwMDo1MDowNy42NzM0MjYwMTYgKzAyMDAKK0BAIC02 MSw5ICs2MSwxMSBAQAorICNpZiBQRVJGRVRUT19CVUlMREZMQUcoUEVSRkVUVE9fT1NfQU5EUk9J RCkKKyAgIGlmIChwcmN0bChQUl9HRVRfTkFNRSwgYnVmKSAhPSAwKQorICAgICByZXR1cm4gZmFs c2U7CistI2Vsc2UKKysjZWxpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgIGlmIChwdGhyZWFkX2dl dG5hbWVfbnAocHRocmVhZF9zZWxmKCksIGJ1Ziwgc2l6ZW9mKGJ1ZikpICE9IDApCisgICAgIHJl dHVybiBmYWxzZTsKKysjZWxzZQorKyAgcmV0dXJuIGZhbHNlOworICNlbmRpZgorICAgb3V0X3Jl c3VsdCA9IHN0ZDo6c3RyaW5nKGJ1Zik7CisgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzL3h4eC1wcGM2NGxlLWxpYnZweC5wYXRjaCBiL3Ny Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzL3h4eC1wcGM2NGxlLWxpYnZweC5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjYyZTk4M2YxNjk3ZQotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzL3h4eC1wcGM2NGxlLWxp YnZweC5wYXRjaApAQCAtMCwwICsxLDcyIEBACitVc2VzIGdlbmVyaWMgdGFyZ2V0IGZvciBub3cu IFRvIHVzZSBwcGM2NGxlLCBjaGFuZ2UgLS10YXJnZXQgdG8gcHBjNjRsZS1nbnUKK2FuZCBhZGQg LS1lbmFibGUtdnN4LCBhbmQgY2hhbmdlIGdlbmVyaWMgdG8gcHBjIGZvciB0aGUgcnRjZCBoZWFk ZXIuCisKK0Zyb20gMThlNmM1YzU1Y2ZhZTBjZmI0NThkODIxMGQ3YmM3MDkzNjBhMGU5MCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CitE YXRlOiBXZWQsIDkgU2VwIDIwMjAgMTk6MDg6MjUgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gZW5h YmxlIGdlbmVyYXRpb24gb2YgcHBjNjQgbGlidnB4IGJpdHMKKwordGhpcyBkb2Vzbid0IHVwZGF0 ZSB0aGUgZ25pIGZpbGUsIHRoYXQncyBkb25lIGZyb20KK3RoZSB0ZW1wbGF0ZSBieSBydW5uaW5n IHRoZSBhcHByb3ByaWF0ZSBzY3JpcHRzCistLS0KKyB0aGlyZF9wYXJ0eS9saWJ2cHgvQlVJTEQu Z24gICAgICAgIHwgNCArKysrCisgdGhpcmRfcGFydHkvbGlidnB4L2dlbmVyYXRlX2duaS5zaCB8 IDkgKysrKysrKysrCisgMiBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspCisKK2RpZmYg LS1naXQgdGhpcmRfcGFydHkvbGlidnB4L0JVSUxELmduIHRoaXJkX3BhcnR5L2xpYnZweC9CVUlM RC5nbgoraW5kZXggNzE5OGU1OS4uMzMwMDQ4NSAxMDA2NDQKKy0tLSBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9saWJ2cHgvQlVJTEQuZ24KKysrKyBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9saWJ2cHgvQlVJTEQuZ24KK0BAIC0zMzYsNiArMzM2LDggQEAg c3RhdGljX2xpYnJhcnkoImxpYnZweCIpIHsKKyAgICAgfSBlbHNlIHsKKyAgICAgICBzb3VyY2Vz ID0gbGlidnB4X3NyY3NfYXJtNjQKKyAgICAgfQorKyAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9 PSAicHBjNjQiKSB7CisrICAgIHNvdXJjZXMgPSBsaWJ2cHhfc3Jjc19wcGM2NAorICAgfQorIAor ICAgY29uZmlncyAtPSBbICIvL2J1aWxkL2NvbmZpZy9jb21waWxlcjpjaHJvbWl1bV9jb2RlIiBd CitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2xpYnZweC9nZW5lcmF0ZV9nbmkuc2ggdGhpcmRfcGFy dHkvbGlidnB4L2dlbmVyYXRlX2duaS5zaAoraW5kZXggYmNmODRiMC4uOGEzZjRmMSAxMDA3NTUK Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9saWJ2cHgvZ2VuZXJhdGVf Z25pLnNoCisrKysgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbGlidnB4L2dl bmVyYXRlX2duaS5zaAorQEAgLTM2MSw2ICszNjEsNyBAQCBnZW5fY29uZmlnX2ZpbGVzIGxpbnV4 L2FybS1uZW9uLWhpZ2hiZCAiLS10YXJnZXQ9YXJtdjctbGludXgtZ2NjICR7YWxsX3BsYXRmb3Jt cworIGdlbl9jb25maWdfZmlsZXMgbGludXgvYXJtNjQtaGlnaGJkICItLXRhcmdldD1hcm12OC1s aW51eC1nY2MgJHthbGxfcGxhdGZvcm1zfSAke0hJR0hCRH0iCisgZ2VuX2NvbmZpZ19maWxlcyBs aW51eC9taXBzZWwgIi0tdGFyZ2V0PW1pcHMzMi1saW51eC1nY2MgJHthbGxfcGxhdGZvcm1zfSIK KyBnZW5fY29uZmlnX2ZpbGVzIGxpbnV4L21pcHM2NGVsICItLXRhcmdldD1taXBzNjQtbGludXgt Z2NjICR7YWxsX3BsYXRmb3Jtc30iCisrZ2VuX2NvbmZpZ19maWxlcyBsaW51eC9wcGM2NCAiLS10 YXJnZXQ9Z2VuZXJpYy1nbnUgJEhJR0hCRCAke2FsbF9wbGF0Zm9ybXN9IgorIGdlbl9jb25maWdf ZmlsZXMgbGludXgvZ2VuZXJpYyAiLS10YXJnZXQ9Z2VuZXJpYy1nbnUgJEhJR0hCRCAke2FsbF9w bGF0Zm9ybXN9IgorIGdlbl9jb25maWdfZmlsZXMgd2luL2FybTY0ICItLXRhcmdldD1hcm02NC13 aW42NC12czE1ICR7YWxsX3BsYXRmb3Jtc30gJHtISUdIQkR9IgorIGdlbl9jb25maWdfZmlsZXMg d2luL2lhMzIgIi0tdGFyZ2V0PXg4Ni13aW4zMi12czE0ICR7YWxsX3BsYXRmb3Jtc30gJHt4ODZf cGxhdGZvcm1zfSIKK0BAIC0zODYsNiArMzg3LDcgQEAgbGludF9jb25maWcgbGludXgvYXJtLW5l b24taGlnaGJkCisgbGludF9jb25maWcgbGludXgvYXJtNjQtaGlnaGJkCisgbGludF9jb25maWcg bGludXgvbWlwc2VsCisgbGludF9jb25maWcgbGludXgvbWlwczY0ZWwKKytsaW50X2NvbmZpZyBs aW51eC9wcGM2NAorIGxpbnRfY29uZmlnIGxpbnV4L2dlbmVyaWMKKyBsaW50X2NvbmZpZyB3aW4v YXJtNjQKKyBsaW50X2NvbmZpZyB3aW4vaWEzMgorQEAgLTQxNSw2ICs0MTcsNyBAQCBnZW5fcnRj ZF9oZWFkZXIgbGludXgvYXJtLW5lb24taGlnaGJkIGFybXY3CisgZ2VuX3J0Y2RfaGVhZGVyIGxp bnV4L2FybTY0LWhpZ2hiZCBhcm12OAorIGdlbl9ydGNkX2hlYWRlciBsaW51eC9taXBzZWwgbWlw c2VsCisgZ2VuX3J0Y2RfaGVhZGVyIGxpbnV4L21pcHM2NGVsIG1pcHM2NGVsCisrZ2VuX3J0Y2Rf aGVhZGVyIGxpbnV4L3BwYzY0IGdlbmVyaWMKKyBnZW5fcnRjZF9oZWFkZXIgbGludXgvZ2VuZXJp YyBnZW5lcmljCisgZ2VuX3J0Y2RfaGVhZGVyIHdpbi9hcm02NCBhcm12OAorIGdlbl9ydGNkX2hl YWRlciB3aW4vaWEzMiB4ODYgIiR7cmVxdWlyZV9zc2UyfSIKK0BAIC01MDAsNiArNTAzLDEyIEBA IGlmIFsgLXogJE9OTFlfQ09ORklHUyBdOyB0aGVuCisgCisgICBlY2hvICJNSVBTNjQgc291cmNl IGxpc3QgaXMgaWRlbnRpY2FsIHRvIE1JUFMgc291cmNlIGxpc3QuIE5vIG5lZWQgdG8gZ2VuZXJh dGUgaXQuIgorIAorKyAgZWNobyAiR2VuZXJhdGUgcHBjNjQgc291cmNlIGxpc3QuIgorKyAgY29u ZmlnPSQocHJpbnRfY29uZmlnX2Jhc2ljIGxpbnV4L3BwYzY0KQorKyAgbWFrZV9jbGVhbgorKyAg bWFrZSBsaWJ2cHhfc3Jjcy50eHQgdGFyZ2V0PWxpYnMgJGNvbmZpZyA+IC9kZXYvbnVsbAorKyAg Y29udmVydF9zcmNzX3RvX3Byb2plY3RfZmlsZXMgbGlidnB4X3NyY3MudHh0IGxpYnZweF9zcmNz X3BwYzY0CisrCisgICBlY2hvICJHZW5lcmF0ZSBOYUNsIHNvdXJjZSBsaXN0LiIKKyAgIGNvbmZp Zz0kKHByaW50X2NvbmZpZ19iYXNpYyBuYWNsKQorICAgbWFrZV9jbGVhbgorLS0gCisyLjI4LjAK KwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMveHh4LXBwYzY0bGUt c2FuZGJveC1saW51eC1zdGF0LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv eHh4LXBwYzY0bGUtc2FuZGJveC1saW51eC1zdGF0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uMzI1M2RjZDAzMmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMveHh4LXBwYzY0bGUtc2FuZGJveC1saW51eC1zdGF0 LnBhdGNoCkBAIC0wLDAgKzEsMzEgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5k Ym94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N0YXQuaAorKysrIGEvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc3RhdC5oCitAQCAt MTU1LDYgKzE1NSwyOCBAQCBzdHJ1Y3Qga2VybmVsX3N0YXQgeworICAgdW5zaWduZWQgaW50IF9f dW51c2VkNDsKKyAgIHVuc2lnbmVkIGludCBfX3VudXNlZDU7CisgfTsKKysjZWxpZiBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCisrc3RydWN0IGtlcm5lbF9zdGF0IHsKKysgIHVuc2lnbmVkIGxvbmcJ c3RfZGV2OworKyAgdW5zaWduZWQgbG9uZwlzdF9pbm87CisrICB1bnNpZ25lZCBsb25nCXN0X25s aW5rOworKyAgdW5zaWduZWQgaW50CXN0X21vZGU7CisrICB1bnNpZ25lZCBpbnQJc3RfdWlkOwor KyAgdW5zaWduZWQgaW50CXN0X2dpZDsKKysgIHVuc2lnbmVkIGxvbmcJc3RfcmRldjsKKysgIGxv bmcJCXN0X3NpemU7CisrICB1bnNpZ25lZCBsb25nCXN0X2Jsa3NpemU7CisrICB1bnNpZ25lZCBs b25nCXN0X2Jsb2NrczsKKysgIHVuc2lnbmVkIGxvbmcJc3RfYXRpbWVfOworKyAgdW5zaWduZWQg bG9uZwlzdF9hdGltZV9uc2VjXzsKKysgIHVuc2lnbmVkIGxvbmcJc3RfbXRpbWVfOworKyAgdW5z aWduZWQgbG9uZwlzdF9tdGltZV9uc2VjXzsKKysgIHVuc2lnbmVkIGxvbmcJc3RfY3RpbWVfOwor KyAgdW5zaWduZWQgbG9uZwlzdF9jdGltZV9uc2VjXzsKKysgIHVuc2lnbmVkIGxvbmcJX191bnVz ZWQ0OworKyAgdW5zaWduZWQgbG9uZwlfX3VudXNlZDU7CisrICB1bnNpZ25lZCBsb25nCV9fdW51 c2VkNjsKKyt9OworICNlbmRpZgorIAorIC8vIE9uIDMyLWJpdCBzeXN0ZW1zLCB3ZSBkZWZhdWx0 IHRvIHRoZSA2NC1iaXQgc3RhdCBzdHJ1Y3QgbGlrZSBsaWJjCmRpZmYgLS1naXQgYS9zcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy94eHgtcHBjNjRsZS1zdXBwb3J0LnBhdGNoIGIvc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMveHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmIzYjhjNDFlODMzMQotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzL3h4eC1wcGM2NGxlLXN1cHBv cnQucGF0Y2gKQEAgLTAsMCArMSwzNjg5IEBACitjb21taXQgMmMwMTNhMzE3YjExMTRlZjY3Y2Ri YmMzMDgyNGIyODkwN2I5ZWE5NAorQXV0aG9yOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KK0RhdGU6ICAgV2VkIE1hciAzIDE5OjA4OjI5IDIwMjEgKzAxMDAKKworICAgIHBw YzY0bGUgc3VwcG9ydAorCitkaWZmIC0tZ2l0IGJ1aWxkL2Rvd25sb2FkX25hY2xfdG9vbGNoYWlu cy5weSBidWlsZC9kb3dubG9hZF9uYWNsX3Rvb2xjaGFpbnMucHkKK2luZGV4IDI4NmE5MmEyNy4u ZWMzNmE4NWQzIDEwMDc1NQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkL2Rvd25s b2FkX25hY2xfdG9vbGNoYWlucy5weQorKysrIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxk L2Rvd25sb2FkX25hY2xfdG9vbGNoYWlucy5weQorQEAgLTEzLDYgKzEzLDEwIEBAIGltcG9ydCBz eXMKKyAKKyAKKyBkZWYgTWFpbihhcmdzKToKKysgICMgSWYgYGRpc2FibGVfbmFjbD0xYCBpcyBp biBHWVBfREVGSU5FUywgZXhpdAorKyAgaWYgJ2Rpc2FibGVfbmFjbD0xJyBpbiBvcy5lbnZpcm9u LmdldCgnR1lQX0RFRklORVMnLCAnJyk6CisrICAgIHJldHVybiAwCisrCisgICBzY3JpcHRfZGly ID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykpCisgICBzcmNfZGly ID0gb3MucGF0aC5kaXJuYW1lKHNjcmlwdF9kaXIpCisgICBuYWNsX2RpciA9IG9zLnBhdGguam9p bihzcmNfZGlyLCAnbmF0aXZlX2NsaWVudCcpCitkaWZmIC0tZ2l0IGNocm9tZS9pbnN0YWxsZXIv bGludXgvQlVJTEQuZ24gY2hyb21lL2luc3RhbGxlci9saW51eC9CVUlMRC5nbgoraW5kZXggMzVm MDFkMGE0Li4yOGYyZTc0NzUgMTAwNjQ0CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vY2hy b21lL2luc3RhbGxlci9saW51eC9CVUlMRC5nbgorKysrIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L2Nocm9tZS9pbnN0YWxsZXIvbGludXgvQlVJTEQuZ24KK0BAIC05NCw4ICs5NCw2IEBAIHBhY2th Z2luZ19maWxlcyA9IHBhY2thZ2luZ19maWxlc19iaW5hcmllcyArIFsKKyAgICAgICAgICAgICAg ICAgICAgICIkcm9vdF9vdXRfZGlyL3hkZy1taW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICIk cm9vdF9vdXRfZGlyL3hkZy1zZXR0aW5ncyIsCisgICAgICAgICAgICAgICAgICAgICAiJHJvb3Rf b3V0X2Rpci9sb2NhbGVzL2VuLVVTLnBhayIsCistICAgICAgICAgICAgICAgICAgICAiJHJvb3Rf b3V0X2Rpci9NRUlQcmVsb2FkL21hbmlmZXN0Lmpzb24iLAorLSAgICAgICAgICAgICAgICAgICAg IiRyb290X291dF9kaXIvTUVJUHJlbG9hZC9wcmVsb2FkZWRfZGF0YS5wYiIsCisgICAgICAgICAg ICAgICAgICAgXQorIAorIGFjdGlvbl9mb3JlYWNoKCJjYWxjdWxhdGVfZGViX2RlcGVuZGVuY2ll cyIpIHsKK0BAIC0zMTUsNyArMzEzLDYgQEAgZ3JvdXAoImluc3RhbGxlcl9kZXBzIikgeworICAg ICAiOnRoZW1lX2ZpbGVzIiwKKyAgICAgIi8vY2hyb21lIiwKKyAgICAgIi8vY2hyb21lOnBhY2tl ZF9yZXNvdXJjZXMiLAorLSAgICAiLy9jaHJvbWUvYnJvd3Nlci9yZXNvdXJjZXMvbWVkaWEvbWVp X3ByZWxvYWQ6Y29tcG9uZW50IiwKKyAgICAgIi8vc2FuZGJveC9saW51eDpjaHJvbWVfc2FuZGJv eCIsCisgICAgICIvL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL2hhbmRsZXI6Y3Jhc2hw YWRfaGFuZGxlciIsCisgICBdCitkaWZmIC0tZ2l0IHNhbmRib3gvZmVhdHVyZXMuZ25pIHNhbmRi b3gvZmVhdHVyZXMuZ25pCitpbmRleCBkYjMwYWU2ZDYuLjlkYzA5YmY1MyAxMDA2NDQKKy0tLSBh L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2ZlYXR1cmVzLmduaQorKysrIGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvZmVhdHVyZXMuZ25pCitAQCAtMTEsNyArMTEsOCBAQCBp bXBvcnQoIi8vYnVpbGQvY29uZmlnL25hY2wvY29uZmlnLmduaSIpCisgdXNlX3NlY2NvbXBfYnBm ID0gKGlzX2xpbnV4IHx8IGlzX2Nocm9tZW9zIHx8IGlzX2FuZHJvaWQpICYmCisgICAgICAgICAg ICAgICAgICAgKGN1cnJlbnRfY3B1ID09ICJ4ODYiIHx8IGN1cnJlbnRfY3B1ID09ICJ4NjQiIHx8 CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfY3B1ID09ICJhcm0iIHx8IGN1cnJlbnRfY3B1 ID09ICJhcm02NCIgfHwKKy0gICAgICAgICAgICAgICAgICAgY3VycmVudF9jcHUgPT0gIm1pcHNl bCIgfHwgY3VycmVudF9jcHUgPT0gIm1pcHM2NGVsIikKKysgICAgICAgICAgICAgICAgICAgY3Vy cmVudF9jcHUgPT0gIm1pcHNlbCIgfHwgY3VycmVudF9jcHUgPT0gIm1pcHM2NGVsIiB8fAorKyAg ICAgICAgICAgICAgICAgICBjdXJyZW50X2NwdSA9PSAicHBjNjQiKQorIAorIHVzZV9zZWNjb21w X2JwZiA9IHVzZV9zZWNjb21wX2JwZiB8fCBpc19uYWNsX25vbnNmaQorIAorZGlmZiAtLWdpdCBz YW5kYm94L2xpbnV4L0JVSUxELmduIHNhbmRib3gvbGludXgvQlVJTEQuZ24KK2luZGV4IGU5YTk0 YjQ2MS4uY2NhMWE1ZGE1IDEwMDY0NAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRi b3gvbGludXgvQlVJTEQuZ24KKysrKyBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xp bnV4L0JVSUxELmduCitAQCAtNDI3LDYgKzQyNyw4IEBAIGNvbXBvbmVudCgic2FuZGJveF9zZXJ2 aWNlcyIpIHsKKyAKKyBzb3VyY2Vfc2V0KCJzYW5kYm94X3NlcnZpY2VzX2hlYWRlcnMiKSB7Cisg ICBzb3VyY2VzID0gWworKyAgICAic3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhfc3lzY2FsbHMu aCIsCisrICAgICJzeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF91Y29udGV4dC5oIiwKKyAgICAg InN5c3RlbV9oZWFkZXJzL2FybTY0X2xpbnV4X3N5c2NhbGxzLmgiLAorICAgICAic3lzdGVtX2hl YWRlcnMvYXJtX2xpbnV4X3N5c2NhbGxzLmgiLAorICAgICAic3lzdGVtX2hlYWRlcnMvYXJtX2xp bnV4X3Vjb250ZXh0LmgiLAorZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L2JwZl9kc2wvbGludXhf c3lzY2FsbF9yYW5nZXMuaCBzYW5kYm94L2xpbnV4L2JwZl9kc2wvbGludXhfc3lzY2FsbF9yYW5n ZXMuaAoraW5kZXggMzEzNTExZjIyLi4wY2EzYTMyNmYgMTAwNjQ0CistLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9icGZfZHNsL2xpbnV4X3N5c2NhbGxfcmFuZ2VzLmgK KysrKyBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L2JwZl9kc2wvbGludXhf c3lzY2FsbF9yYW5nZXMuaAorQEAgLTU2LDYgKzU2LDEzIEBACisgI2RlZmluZSBNQVhfUFVCTElD X1NZU0NBTEwgX19OUl9zeXNjYWxscworICNkZWZpbmUgTUFYX1NZU0NBTEwgTUFYX1BVQkxJQ19T WVNDQUxMCisgCisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKworKyNpbmNsdWRlIDxh c20vdW5pc3RkLmg+CisrI2RlZmluZSBNSU5fU1lTQ0FMTCAwdQorKyNkZWZpbmUgTUFYX1BVQkxJ Q19TWVNDQUxMIDM4NnUKKysjZGVmaW5lIE1BWF9TWVNDQUxMIE1BWF9QVUJMSUNfU1lTQ0FMTAor KworICNlbHNlCisgI2Vycm9yICJVbnN1cHBvcnRlZCBhcmNoaXRlY3R1cmUiCisgI2VuZGlmCitk aWZmIC0tZ2l0IHNhbmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oIHNhbmRib3gv bGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oCitpbmRleCAxYTQwN2I5NTIuLmE2YWVjNTQ0 ZSAxMDA2NDQKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L2JwZl9k c2wvc2VjY29tcF9tYWNyb3MuaAorKysrIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gv bGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oCitAQCAtMTYsNiArMTYsOSBAQAorICNpZiBk ZWZpbmVkKF9fbWlwc19fKQorIC8vIHN5cy91c2VyLmggaW4gZWdsaWJjIG1pc3NlcyBzaXplX3Qg ZGVmaW5pdGlvbgorICNpbmNsdWRlIDxzdGRkZWYuaD4KKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCisrLy8gTWFudWFsbHkgZGVmaW5lIGdyZWdfdCBvbiBwcGM2NAorK3R5cGVkZWYgdW5z aWduZWQgbG9uZyBsb25nIGdyZWdfdDsKKyAjZW5kaWYKKyAjZW5kaWYKKyAKK0BAIC0zNDYsNiAr MzQ5LDUxIEBAIHN0cnVjdCByZWdzX3N0cnVjdCB7CisgI2RlZmluZSBTRUNDT01QX1BUX1BBUk00 KF9yZWdzKSAoX3JlZ3MpLnJlZ3NbM10KKyAjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTUoX3JlZ3Mp IChfcmVncykucmVnc1s0XQorICNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNNihfcmVncykgKF9yZWdz KS5yZWdzWzVdCisrCisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyNpbmNsdWRlIDxh c20vcHRyYWNlLmg+CisrCisrdHlwZWRlZiBzdHJ1Y3QgcHRfcmVncyByZWdzX3N0cnVjdDsKKysK KysjaWZkZWYgQVJDSF9DUFVfTElUVExFX0VORElBTgorKyNkZWZpbmUgU0VDQ09NUF9BUkNIIEFV RElUX0FSQ0hfUFBDNjRMRQorKyNlbHNlCisrI2RlZmluZSBTRUNDT01QX0FSQ0ggQVVESVRfQVJD SF9QUEM2NAorKyNlbmRpZgorKworKyNkZWZpbmUgU0VDQ09NUF9SRUcoX2N0eCwgX3JlZykgKChf Y3R4KS0+dWNfbWNvbnRleHQucmVncy0+Z3ByW19yZWddKQorKworKyNkZWZpbmUgU0VDQ09NUF9S RVNVTFQoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgMykKKysjZGVmaW5lIFNFQ0NPTVBfU1lTQ0FM TChfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCAwKQorKyNkZWZpbmUgU0VDQ09NUF9JUChfY3R4KSAo X2N0eCktPnVjX21jb250ZXh0LnJlZ3MtPm5pcAorKyNkZWZpbmUgU0VDQ09NUF9QQVJNMShfY3R4 KSBTRUNDT01QX1JFRyhfY3R4LCAzKQorKyNkZWZpbmUgU0VDQ09NUF9QQVJNMihfY3R4KSBTRUND T01QX1JFRyhfY3R4LCA0KQorKyNkZWZpbmUgU0VDQ09NUF9QQVJNMyhfY3R4KSBTRUNDT01QX1JF RyhfY3R4LCA1KQorKyNkZWZpbmUgU0VDQ09NUF9QQVJNNChfY3R4KSBTRUNDT01QX1JFRyhfY3R4 LCA2KQorKyNkZWZpbmUgU0VDQ09NUF9QQVJNNShfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA3KQor KyNkZWZpbmUgU0VDQ09NUF9QQVJNNihfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA4KQorKworKyNk ZWZpbmUgU0VDQ09NUF9OUl9JRFggKG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSwg bnIpKQorKyNkZWZpbmUgU0VDQ09NUF9BUkNIX0lEWCAob2Zmc2V0b2Yoc3RydWN0IGFyY2hfc2Vj Y29tcF9kYXRhLCBhcmNoKSkKKysjZGVmaW5lIFNFQ0NPTVBfSVBfTVNCX0lEWCBcCisrICAob2Zm c2V0b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBpbnN0cnVjdGlvbl9wb2ludGVyKSArIDQp CisrI2RlZmluZSBTRUNDT01QX0lQX0xTQl9JRFggXAorKyAgKG9mZnNldG9mKHN0cnVjdCBhcmNo X3NlY2NvbXBfZGF0YSwgaW5zdHJ1Y3Rpb25fcG9pbnRlcikgKyAwKQorKyNkZWZpbmUgU0VDQ09N UF9BUkdfTVNCX0lEWChucikgXAorKyAgKG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0 YSwgYXJncykgKyA4ICogKG5yKSArIDQpCisrI2RlZmluZSBTRUNDT01QX0FSR19MU0JfSURYKG5y KSBcCisrICAob2Zmc2V0b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBhcmdzKSArIDggKiAo bnIpICsgMCkKKysKKysjZGVmaW5lIFNFQ0NPTVBfUFRfUkVTVUxUKF9yZWdzKSAoX3JlZ3MpLmdw clszXQorKyNkZWZpbmUgU0VDQ09NUF9QVF9TWVNDQUxMKF9yZWdzKSAoX3JlZ3MpLmdwclswXQor KyNkZWZpbmUgU0VDQ09NUF9QVF9JUChfcmVncykgKF9yZWdzKS5uaXAKKysjZGVmaW5lIFNFQ0NP TVBfUFRfUEFSTTEoX3JlZ3MpIChfcmVncykuZ3ByWzNdCisrI2RlZmluZSBTRUNDT01QX1BUX1BB Uk0yKF9yZWdzKSAoX3JlZ3MpLmdwcls0XQorKyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNMyhfcmVn cykgKF9yZWdzKS5ncHJbNV0KKysjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTQoX3JlZ3MpIChfcmVn cykuZ3ByWzZdCisrI2RlZmluZSBTRUNDT01QX1BUX1BBUk01KF9yZWdzKSAoX3JlZ3MpLmdwcls3 XQorKyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNNihfcmVncykgKF9yZWdzKS5ncHJbOF0KKysKKyAj ZWxzZQorICNlcnJvciBVbnN1cHBvcnRlZCB0YXJnZXQgcGxhdGZvcm0KKyAKK2RpZmYgLS1naXQg c2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeS5jYyBzYW5k Ym94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5LmNjCitpbmRleCA2 YTFlYzIzODkuLmYyMGM1ODJkZCAxMDA2NDQKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9z YW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5LmNjCisrKysg YS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJz L2Jhc2VsaW5lX3BvbGljeS5jYworQEAgLTg4LDcgKzg4LDggQEAgYm9vbCBJc0Jhc2VsaW5lUG9s aWN5V2F0Y2hlZChpbnQgc3lzbm8pIHsKKyAgICAgICAgICBTeXNjYWxsU2V0czo6SXNQcmN0bChz eXNubykgfHwKKyAgICAgICAgICBTeXNjYWxsU2V0czo6SXNQcm9jZXNzR3JvdXBPclNlc3Npb24o c3lzbm8pIHx8CisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKKy0gICAgKGRlZmluZWQoQVJD SF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisrICAgIChk ZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMp KSB8fCBcCisrICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgICAgICBTeXNjYWxsU2V0 czo6SXNTb2NrZXRDYWxsKHN5c25vKSB8fAorICNlbmRpZgorICNpZiBkZWZpbmVkKF9fYXJtX18p CitAQCAtMjI3LDcgKzIyOCw3IEBAIFJlc3VsdEV4cHIgRXZhbHVhdGVTeXNjYWxsSW1wbChpbnQg ZnNfZGVuaWVkX2Vycm5vLAorICAgfQorIAorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZp bmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKy0gICAgZGVmaW5lZChf X2FhcmNoNjRfXykKKysgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQorICAgaWYgKHN5c25vID09IF9fTlJfbW1hcCkKKyAgICAgcmV0dXJuIFJlc3RyaWN0 TW1hcEZsYWdzKCk7CisgI2VuZGlmCitAQCAtMjQ1LDcgKzI0Niw3IEBAIFJlc3VsdEV4cHIgRXZh bHVhdGVTeXNjYWxsSW1wbChpbnQgZnNfZGVuaWVkX2Vycm5vLAorICAgICByZXR1cm4gUmVzdHJp Y3RQcmN0bCgpOworIAorICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1f XykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQor KyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICBp ZiAoc3lzbm8gPT0gX19OUl9zb2NrZXRwYWlyKSB7CisgICAgIC8vIE9ubHkgYWxsb3cgQUZfVU5J WCwgUEZfVU5JWC4gQ3Jhc2ggaWYgYW55dGhpbmcgZWxzZSBpcyBzZWVuLgorICAgICBzdGF0aWNf YXNzZXJ0KEFGX1VOSVggPT0gUEZfVU5JWCwKK0BAIC0yODUsNyArMjg2LDggQEAgUmVzdWx0RXhw ciBFdmFsdWF0ZVN5c2NhbGxJbXBsKGludCBmc19kZW5pZWRfZXJybm8sCisgICB9CisgCisgI2lm IGRlZmluZWQoX19pMzg2X18pIHx8IFwKKy0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1J TFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisrICAgIChkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCisrICAgIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKKyAgIGlmIChTeXNjYWxsU2V0czo6SXNTb2NrZXRDYWxsKHN5 c25vKSkKKyAgICAgcmV0dXJuIFJlc3RyaWN0U29ja2V0Y2FsbENvbW1hbmQoKTsKKyAjZW5kaWYK K2RpZmYgLS1naXQgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3Bv bGljeV91bml0dGVzdC5jYyBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxp bmVfcG9saWN5X3VuaXR0ZXN0LmNjCitpbmRleCAwMWMwNDZkZGEuLjdlNWE2YmU4MiAxMDA2NDQK Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhl bHBlcnMvYmFzZWxpbmVfcG9saWN5X3VuaXR0ZXN0LmNjLm9yaWcJMjAyMS0wNC0xNSAxMzoxMTox MC40ODE1Nzk0NzAgLTA0MDAKKysrKyBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xp bnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5X3VuaXR0ZXN0LmNjCTIwMjEt MDQtMTUgMTM6MTI6NDMuNTI0ODMxMzc2IC0wNDAwCitAQCAtMzAyLDcgKzMwMiw3IEBACisgVEVT VF9CQVNFTElORV9TSUdTWVMoX19OUl9zeXNsb2cpCisgVEVTVF9CQVNFTElORV9TSUdTWVMoX19O Ul90aW1lcl9jcmVhdGUpCisgCistI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyNpZiAhZGVm aW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmluZWQoX19wb3dlcnBjNjRfXykKKyBURVNUX0JBU0VM SU5FX1NJR1NZUyhfX05SX2lub3RpZnlfaW5pdCkKKyBURVNUX0JBU0VMSU5FX1NJR1NZUyhfX05S X3ZzZXJ2ZXIpCisgI2VuZGlmCitkaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvc2VjY29tcC1icGYt aGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmNjIHNhbmRib3gvbGludXgv c2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmNjCitp bmRleCAyYTk3ZDM5MTYuLjhlODFhYTZjZiAxMDA2NDQKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJz X3Jlc3RyaWN0aW9ucy5jYy5vcmlnCTIwMjEtMDQtMTQgMTQ6NDE6MDguMDAwMDAwMDAwIC0wNDAw CisrKysgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1o ZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuY2MJMjAyMS0wNC0xNSAxMzox Nzo1Ny44MDg3MTU3MzMgLTA0MDAKK0BAIC00MCw3ICs0MCw4IEBACisgI2luY2x1ZGUgPHN5cy9w dHJhY2UuaD4KKyAjaWYgKGRlZmluZWQoT1NfTElOVVgpIHx8IEJVSUxERkxBRyhJU19DSFJPTUVP U19MQUNST1MpKSAmJiBcCisgICAgICFkZWZpbmVkKF9fYXJtX18pICYmICFkZWZpbmVkKF9fYWFy Y2g2NF9fKSAmJiAgICAgICAgICAgXAorLSAgICAhZGVmaW5lZChQVFJBQ0VfR0VUX1RIUkVBRF9B UkVBKQorKyAgICAhZGVmaW5lZChQVFJBQ0VfR0VUX1RIUkVBRF9BUkVBKSAmJgkJCSAgICBcCisr ICAgICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgLy8gQWxzbyBpbmNsdWRlIGFzbS9wdHJhY2Ut YWJpLmggc2luY2UgcHRyYWNlLmggaW4gb2xkZXIgbGliYyAoZm9yIGluc3RhbmNlCisgLy8gdGhl IG9uZSBpbiBVYnVudHUgMTYuMDQgTFRTKSBpcyBtaXNzaW5nIFBUUkFDRV9HRVRfVEhSRUFEX0FS RUEuCisgLy8gYXNtL3B0cmFjZS1hYmkuaCBkb2Vzbid0IGV4aXN0IG9uIGFybTMyIGFuZCBQVFJB Q0VfR0VUX1RIUkVBRF9BUkVBIGlzbid0CitAQCAtNDksNiArNTAsMTEgQEAKKyAjZW5kaWYKKyAj ZW5kaWYgIC8vICFPU19OQUNMX05PTlNGSQorIAorKy8vIE9uIFBQQzY0LCBUQ0dFVFMgaXMgZGVm aW5lZCBpbiB0ZXJtcyBvZiBzdHJ1Y3QgdGVybWlvcywgc28gd2UgbXVzdCBpbmNsdWRlIHRlcm1p b3MuaAorKyNpZmRlZiBfX3Bvd2VycGM2NF9fCisrI2luY2x1ZGUgPHRlcm1pb3MuaD4KKysjZW5k aWYKKysKKyAjaWYgZGVmaW5lZChPU19BTkRST0lEKQorIAorICNpZiAhZGVmaW5lZChGX0RVUEZE X0NMT0VYRUMpCitAQCAtOTgsNiArMTA0LDE1IEBACisgI2VuZGlmCisgfQorIAorK2lubGluZSBi b29sIElzQXJjaGl0ZWN0dXJlUFBDNjQoKSB7CisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykK KysgIHJldHVybiB0cnVlOworKyNlbHNlCisrICByZXR1cm4gZmFsc2U7CisrI2VuZGlmCisrfQor KworKworIC8vIFVidW50dSdzIHZlcnNpb24gb2YgZ2xpYmMgaGFzIGEgcmFjZSBjb25kaXRpb24g aW4gc2VtX3Bvc3QgdGhhdCBjYW4gY2F1c2UKKyAvLyBpdCB0byBjYWxsIGZ1dGV4KDIpIHdpdGgg Ym9ndXMgb3AgYXJndW1lbnRzLiBUbyB3b3JrYXJvdW5kIHRoaXMsIHdlIG5lZWQKKyAvLyB0byBh bGxvdyB0aG9zZSBmdXRleCgyKSBjYWxscyB0byBmYWlsIHdpdGggRUlOVkFMLCBpbnN0ZWFkIG9m IGNyYXNoaW5nIHRoZQorQEAgLTIzOSw2ICsyNTQsOCBAQAorICAgdWludDY0X3Qga09MYXJnZUZp bGVGbGFnID0gT19MQVJHRUZJTEU7CisgICBpZiAoSXNBcmNoaXRlY3R1cmVYODZfNjQoKSB8fCBJ c0FyY2hpdGVjdHVyZUkzODYoKSB8fCBJc0FyY2hpdGVjdHVyZU1pcHMoKSkKKyAgICAga09MYXJn ZUZpbGVGbGFnID0gMDEwMDAwMDsKKysgIGVsc2UgaWYgKElzQXJjaGl0ZWN0dXJlUFBDNjQoKSkK KysgICAga09MYXJnZUZpbGVGbGFnID0gMDIwMDAwMDsKKyAKKyAgIGNvbnN0IEFyZzxpbnQ+IGNt ZCgxKTsKKyAgIGNvbnN0IEFyZzxsb25nPiBsb25nX2FyZygyKTsKK0BAIC0yNTYsNyArMjczLDE2 IEBACisgICAgICAgICAgICAgICBGX1NFVExLVywKKyAgICAgICAgICAgICAgIEZfR0VUTEssCisg ICAgICAgICAgICAgICBGX0RVUEZELAorLSAgICAgICAgICAgICAgRl9EVVBGRF9DTE9FWEVDKSwK KysgICAgICAgICAgICAgIEZfRFVQRkRfQ0xPRVhFQworKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCisrLy8gT24gUFBDNjQsIEZfU0VUTEssIEZfR0VUTEssIEZfU0VUTEtXIGFyZSBkZWZpbmVk IGFzIHRoZSA2NC1iaXQgdmFyaWFudHMKKysvLyBidXQgZ2xpYmMgd2lsbCBzb21ldGltZXMgc3Rp bGwgdXNlIHRoZSAzMi1iaXQgdmVyc2lvbnMuIEFsbG93IGJvdGguCisrICAgICAgICAgICAgICAs CisrICAgICAgICAgICAgICA1LCAvKiBGX0dFVExLICgzMikgKi8KKysgICAgICAgICAgICAgIDYs IC8qIEZfU0VUTEsgKDMyKSAqLworKyAgICAgICAgICAgICAgNyAgLyogRl9TRVRMS1cgKDMyKSAq LworKyNlbmRpZgorKwkgICAgICksCisgICAgICAgICAgICAgIEFsbG93KCkpCisgICAgICAgLkNh c2UoRl9TRVRGTCwKKyAgICAgICAgICAgICBJZigobG9uZ19hcmcgJiB+a0FsbG93ZWRNYXNrKSA9 PSAwLCBBbGxvdygpKS5FbHNlKENyYXNoU0lHU1lTKCkpKQorQEAgLTI2Niw3ICsyOTIsNyBAQAor ICAgLy8gY2xhbmctZm9ybWF0IG9uCisgfQorIAorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBk ZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fbWlw c19fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgUmVzdWx0RXhwciBSZXN0cmljdFNvY2tl dGNhbGxDb21tYW5kKCkgeworICAgLy8gVW5mb3J0dW5hdGVseSwgd2UgYXJlIHVuYWJsZSB0byBy ZXN0cmljdCB0aGUgZmlyc3QgcGFyYW1ldGVyIHRvCisgICAvLyBzb2NrZXRwYWlyKDIpLiBXaGls c3QgaW5pdGlhbGx5IHNvdW5kaW5nIGJhZCwgaXQncyBub3Rld29ydGh5IHRoYXQgdmVyeQorQEAg LTQxOSw3ICs0NDUsNyBAQAorICNlbmRpZgorICAgcmV0dXJuIFN3aXRjaChyZXF1ZXN0KQorICAg ICAgIC5DQVNFUygoCistI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyNpZiAhZGVmaW5lZChf X2FhcmNoNjRfXykgJiYgIWRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgICAgICAgICAgICAg IFBUUkFDRV9HRVRSRUdTLCBQVFJBQ0VfR0VURlBSRUdTLAorICNpZiBkZWZpbmVkKFRSQUNFX0dF VF9USFJFQURfQVJFQSkKKwkJICBQVFJBQ0VfR0VUX1RIUkVBRF9BUkVBLAorZGlmZiAtLWdpdCBz YW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3Ry aWN0aW9ucy5oIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFt ZXRlcnNfcmVzdHJpY3Rpb25zLmgKK2luZGV4IGJhNDI4OWYwNS4uOWE0ZDVhYjJkIDEwMDY0NAor LS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVs cGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmgKKysrKyBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJh bWV0ZXJzX3Jlc3RyaWN0aW9ucy5oCitAQCAtNDgsNyArNDgsNyBAQCBTQU5EQk9YX0VYUE9SVCBi cGZfZHNsOjpSZXN1bHRFeHByIFJlc3RyaWN0TXByb3RlY3RGbGFncygpOworIC8vIE9fTk9OQkxP Q0sgfCBPX1NZTkMgfCBPX0xBUkdFRklMRSB8IE9fQ0xPRVhFQyB8IE9fTk9BVElNRS4KKyBTQU5E Qk9YX0VYUE9SVCBicGZfZHNsOjpSZXN1bHRFeHByIFJlc3RyaWN0RmNudGxDb21tYW5kcygpOwor IAorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZp bmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCisgLy8gUmVzdHJpY3Qgc29ja2V0Y2FsbCgyKSB0byBvbmx5IGFsbG93IHNvY2tldHBhaXIo MiksIHNlbmQoMiksIHJlY3YoMiksCisgLy8gc2VuZHRvKDIpLCByZWN2ZnJvbSgyKSwgc2h1dGRv d24oMiksIHNlbmRtc2coMikgYW5kIHJlY3Ztc2coMikuCisgU0FOREJPWF9FWFBPUlQgYnBmX2Rz bDo6UmVzdWx0RXhwciBSZXN0cmljdFNvY2tldGNhbGxDb21tYW5kKCk7CitkaWZmIC0tZ2l0IHNh bmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2Mgc2FuZGJveC9s aW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYworaW5kZXggNjQyZGY3MjA3 Li4zNGY0N2ViNzMgMTAwNjQ0CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9s aW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYworKysrIGEvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3Nl dHMuY2MKK0BAIC0yOSw3ICsyOSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdldHRp bWUoaW50IHN5c25vKSB7CisgICBzd2l0Y2ggKHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9nZXR0 aW1lb2ZkYXk6CisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykg fHwgXAorLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNI X0NQVV8zMl9CSVRTKSkKKysgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRl ZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQorICAgICBjYXNlIF9fTlJfdGltZToKKyAjZW5kaWYKKyAgICAgICByZXR1cm4gdHJ1ZTsKK0BA IC00NSwxMiArNDYsMTQgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkR2V0dGltZShpbnQg c3lzbm8pIHsKKyAgICAgY2FzZSBfX05SX2Nsb2NrX25hbm9zbGVlcDogIC8vIFBhcmFtZXRlcnMg ZmlsdGVyZWQgYnkgUmVzdHJpY3RDbG9ja0lEKCkuCisgICAgIGNhc2UgX19OUl9jbG9ja19zZXR0 aW1lOiAgICAvLyBQcml2aWxlZ2VkLgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCistICAg IChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJ VFMpKQorKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNI X0NQVV8zMl9CSVRTKSkgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNh c2UgX19OUl9mdGltZTogIC8vIE9ic29sZXRlLgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfc2V0 dGltZW9mZGF5OiAgLy8gUHJpdmlsZWdlZC4KKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAor LSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8z Ml9CSVRTKSkKKysgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQo QVJDSF9DUFVfMzJfQklUUykpIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAg ICBjYXNlIF9fTlJfc3RpbWU6CisgI2VuZGlmCisgICAgIGRlZmF1bHQ6CitAQCAtMTE2LDcgKzEx OSw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmlsZVN5c3RlbShpbnQgc3lzbm8pIHsKKyAgICAg Y2FzZSBfX05SX2ZhY2Nlc3NhdDogIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgorICAgICBj YXNlIF9fTlJfZmNobW9kYXQ6CisgICAgIGNhc2UgX19OUl9mY2hvd25hdDogIC8vIFNob3VsZCBi ZSBjYWxsZWQgY2hvd25hdCA/CistI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChf X2FhcmNoNjRfXykKKysjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2 NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9uZXdmc3RhdGF0 OiAgLy8gZnN0YXRhdCgpLiBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KKyAjZWxpZiBkZWZpbmVk KF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCitAQCAtMTM1LDcg KzEzOCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmlsZVN5c3RlbShpbnQgc3lzbm8pIHsKKyAg ICAgY2FzZSBfX05SX21lbWZkX2NyZWF0ZToKKyAgICAgY2FzZSBfX05SX21rZGlyYXQ6CisgICAg IGNhc2UgX19OUl9ta25vZGF0OgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKQorKyNpZiBkZWZpbmVk KF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9vbGRs c3RhdDoKKyAgICAgY2FzZSBfX05SX29sZHN0YXQ6CisgI2VuZGlmCitAQCAtMTQ5LDcgKzE1Miw4 IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmlsZVN5c3RlbShpbnQgc3lzbm8pIHsKKyAjZW5kaWYK KyAgICAgY2FzZSBfX05SX3N0YXRmczogIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgorICNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKKy0gICAgKGRlZmlu ZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisr ICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMy X0JJVFMpKSB8fCBcCisrICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05S X3N0YXRmczY0OgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfc3ltbGlua2F0OgorQEAgLTE1OSw3 ICsxNjMsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0ZpbGVTeXN0ZW0oaW50IHN5c25vKSB7Cisg ICAgIGNhc2UgX19OUl90cnVuY2F0ZTY0OgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfdW5saW5r YXQ6CistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVm aW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82 NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCisrICAgIGRlZmluZWQoX19wb3dlcnBjNjRf XykKKyAgICAgY2FzZSBfX05SX3V0aW1lOgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfdXRpbWVu c2F0OiAgLy8gTmV3LgorQEAgLTE4MSw3ICsxODYsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0Fs bG93ZWRGaWxlU3lzdGVtQWNjZXNzVmlhRmQoaW50IHN5c25vKSB7CisgI2VuZGlmCisgICAgICAg cmV0dXJuIHRydWU7CisgLy8gVE9ETyhqbG4pOiB0aGVzZSBzaG91bGQgYmUgZGVuaWVkIGdyYWNl ZnVsbHkgYXMgd2VsbCAobW92ZWQgYmVsb3cpLgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBk ZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19p Mzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAor KyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9mYWR2aXNlNjQ6ICAv LyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KKyAjZW5kaWYKKyAjaWYgZGVmaW5lZChfX2kzODZf XykKK0BAIC0xOTQsMTEgKzIwMCwxMiBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRGaWxl U3lzdGVtQWNjZXNzVmlhRmQoaW50IHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9mbG9jazogICAg ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KKyAgICAgY2FzZSBfX05SX2ZzdGF0ZnM6ICAg IC8vIEdpdmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHdob2xlIGZpbGVzeXN0ZW0uCisgI2lmIGRl ZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAorLSAgICAoZGVmaW5lZChB UkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKysgICAg KGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklU UykpIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfZnN0 YXRmczY0OgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfZnN5bmM6ICAvLyBFUEVSTSBub3QgYSB2 YWxpZCBlcnJuby4KKy0jaWYgZGVmaW5lZChfX2kzODZfXykKKysjaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfb2xkZnN0YXQ6Cisg I2VuZGlmCisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwg ZGVmaW5lZChfX21pcHNfXykgfHwgXAorQEAgLTIwNiw2ICsyMTMsOCBAQCBib29sIFN5c2NhbGxT ZXRzOjpJc0FsbG93ZWRGaWxlU3lzdGVtQWNjZXNzVmlhRmQoaW50IHN5c25vKSB7CisgICAgIGNh c2UgX19OUl9zeW5jX2ZpbGVfcmFuZ2U6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KKyAj ZWxpZiBkZWZpbmVkKF9fYXJtX18pCisgICAgIGNhc2UgX19OUl9hcm1fc3luY19maWxlX3Jhbmdl OiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQorKyAgICBjYXNlIF9fTlJfc3luY19maWxlX3JhbmdlMjogLy8gRVBFUk0gbm90IGEgdmFs aWQgZXJybm8uCisgI2VuZGlmCisgICAgIGRlZmF1bHQ6CisgICAgICAgcmV0dXJuIGZhbHNlOwor QEAgLTIzMSw3ICsyNDAsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0RlbmllZEZpbGVTeXN0ZW1B Y2Nlc3NWaWFGZChpbnQgc3lzbm8pIHsKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX2dldGRlbnRz NjQ6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KKyAjaWYgZGVmaW5lZChfX2kzODZfXykg fHwgXAorLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNI X0NQVV8zMl9CSVRTKSkKKysgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRl ZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQorICAgICBjYXNlIF9fTlJfcmVhZGRpcjoKKyAjZW5kaWYKKyAgICAgICByZXR1cm4gdHJ1ZTsK K0BAIC0yNzIsNyArMjgyLDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNHZXRTaW1wbGVJZChpbnQg c3lzbm8pIHsKKyBib29sIFN5c2NhbGxTZXRzOjpJc1Byb2Nlc3NQcml2aWxlZ2VDaGFuZ2UoaW50 IHN5c25vKSB7CisgICBzd2l0Y2ggKHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9jYXBzZXQ6Cist I2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKKysjaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCisgICAgIGNhc2UgX19OUl9pb3Blcm06ICAvLyBJbnRlbCBwcml2aWxlZ2UuCisgICAgIGNh c2UgX19OUl9pb3BsOiAgICAvLyBJbnRlbCBwcml2aWxlZ2UuCisgI2VuZGlmCitAQCAtMzIzLDcg KzMzMyw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFNpZ25hbEhhbmRsaW5nKGludCBz eXNubykgeworICAgICBjYXNlIF9fTlJfcnRfc2lncmV0dXJuOgorICAgICBjYXNlIF9fTlJfcnRf c2lndGltZWR3YWl0OgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18p IHx8IFwKKy0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJD SF9DUFVfMzJfQklUUykpCisrICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBk ZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCisrICAgIGRlZmluZWQoX19wb3dlcnBjNjRf XykKKyAgICAgY2FzZSBfX05SX3NpZ2FjdGlvbjoKKyAgICAgY2FzZSBfX05SX3NpZ3Byb2NtYXNr OgorICAgICBjYXNlIF9fTlJfc2lncmV0dXJuOgorQEAgLTMzOSw3ICszNTAsOCBAQCBib29sIFN5 c2NhbGxTZXRzOjpJc0FsbG93ZWRTaWduYWxIYW5kbGluZyhpbnQgc3lzbm8pIHsKKyAjZW5kaWYK KyAgICAgY2FzZSBfX05SX3NpZ25hbGZkNDoKKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX2FybV9fKSB8fCBcCistICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAm JiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBT X0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAorKyAgICBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9zaWdwZW5kaW5nOgorICAgICBjYXNlIF9f TlJfc2lnc3VzcGVuZDoKKyAjZW5kaWYKK0BAIC0zNjMsNyArMzc1LDcgQEAgYm9vbCBTeXNjYWxs U2V0czo6SXNBbGxvd2VkT3BlcmF0aW9uT25GZChpbnQgc3lzbm8pIHsKKyAjZW5kaWYKKyAgICAg Y2FzZSBfX05SX2R1cDM6CisgI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2Fy bV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18p CisrICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAg ICAgY2FzZSBfX05SX3NodXRkb3duOgorICNlbmRpZgorICAgICAgIHJldHVybiB0cnVlOworQEAg LTM5Nyw3ICs0MDksNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRP ckRlYXRoKGludCBzeXNubykgeworICAgICBjYXNlIF9fTlJfbWVtYmFycmllcjoKKyAgICAgY2Fz ZSBfX05SX3dhaXQ0OgorICAgICBjYXNlIF9fTlJfd2FpdGlkOgorLSNpZiBkZWZpbmVkKF9faTM4 Nl9fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisg ICAgIGNhc2UgX19OUl93YWl0cGlkOgorICNlbmRpZgorICAgICAgIHJldHVybiB0cnVlOworQEAg LTQxNCw3ICs0MjYsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRP ckRlYXRoKGludCBzeXNubykgeworICNlbmRpZgorICAgICBjYXNlIF9fTlJfc2V0X3RpZF9hZGRy ZXNzOgorICAgICBjYXNlIF9fTlJfdW5zaGFyZToKKy0jaWYgIWRlZmluZWQoX19taXBzX18pICYm ICFkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyNpZiAhZGVmaW5lZChfX21pcHNfXykgJiYgIWRlZmlu ZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05S X3Zmb3JrOgorICNlbmRpZgorICAgICBkZWZhdWx0OgorQEAgLTQ2Myw3ICs0NzUsNyBAQCBib29s IFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRHZXRPck1vZGlmeVNvY2tldChpbnQgc3lzbm8pIHsKKyAg ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgZGVmYXVsdDoKKyAjaWYgZGVmaW5lZChfX3g4Nl82NF9f KSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKy0gICAgZGVm aW5lZChfX2FhcmNoNjRfXykKKysgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfc29ja2V0cGFpcjogIC8vIFdlIHdpbGwgd2Fu dCB0byBpbnNwZWN0IGl0cyBhcmd1bWVudC4KKyAjZW5kaWYKKyAgICAgICByZXR1cm4gZmFsc2U7 CitAQCAtNDczLDcgKzQ4NSw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdldE9yTW9k aWZ5U29ja2V0KGludCBzeXNubykgeworIGJvb2wgU3lzY2FsbFNldHM6OklzRGVuaWVkR2V0T3JN b2RpZnlTb2NrZXQoaW50IHN5c25vKSB7CisgICBzd2l0Y2ggKHN5c25vKSB7CisgI2lmIGRlZmlu ZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8 fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18pCisrICAgIGRlZmluZWQoX19hYXJjaDY0X18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX2FjY2VwdDoKKyAgICAg Y2FzZSBfX05SX2FjY2VwdDQ6CisgICAgIGNhc2UgX19OUl9iaW5kOgorQEAgLTQ4OCw3ICs1MDAs OCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0RlbmllZEdldE9yTW9kaWZ5U29ja2V0KGludCBzeXNu bykgeworIH0KKyAKKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAorLSAgICAoZGVmaW5lZChB UkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKysgICAg KGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklU UykpIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorIC8vIEJpZyBtdWx0aXBsZXhp bmcgc3lzdGVtIGNhbGwgZm9yIHNvY2tldHMuCisgYm9vbCBTeXNjYWxsU2V0czo6SXNTb2NrZXRD YWxsKGludCBzeXNubykgeworICAgc3dpdGNoIChzeXNubykgeworQEAgLTUwMiw3ICs1MTUsOCBA QCBib29sIFN5c2NhbGxTZXRzOjpJc1NvY2tldENhbGwoaW50IHN5c25vKSB7CisgfQorICNlbmRp ZgorIAorLSNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVm aW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJt X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQorIGJvb2wgU3lzY2FsbFNldHM6OklzTmV0d29ya1NvY2tldEluZm9ybWF0aW9uKGludCBzeXNu bykgeworICAgc3dpdGNoIChzeXNubykgeworICAgICBjYXNlIF9fTlJfZ2V0cGVlcm5hbWU6CitA QCAtNTI3LDcgKzU0MSw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEFkZHJlc3NTcGFj ZUFjY2VzcyhpbnQgc3lzbm8pIHsKKyAgICAgY2FzZSBfX05SX21pbmNvcmU6CisgICAgIGNhc2Ug X19OUl9tbG9ja2FsbDoKKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82 NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18p CisrICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAg ICAgY2FzZSBfX05SX21tYXA6CisgI2VuZGlmCisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRl ZmluZWQoX19hcm1fXykgfHwgXAorQEAgLTU1Nyw3ICs1NzEsOCBAQCBib29sIFN5c2NhbGxTZXRz OjpJc0FsbG93ZWRHZW5lcmFsSW8oaW50IHN5c25vKSB7CisgICBzd2l0Y2ggKHN5c25vKSB7Cisg ICAgIGNhc2UgX19OUl9sc2VlazoKKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChf X2FybV9fKSB8fCBcCistICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZp bmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlM WSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9fbGxzZWVrOgorICNlbmRpZgorICNpZiAhZGVmaW5l ZChfX2FhcmNoNjRfXykKK0BAIC01NjksMjYgKzU4NCwyOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJ c0FsbG93ZWRHZW5lcmFsSW8oaW50IHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9yZWFkdjoKKyAg ICAgY2FzZSBfX05SX3ByZWFkNjQ6CisgI2lmIGRlZmluZWQoX19hcm1fXykgfHwgXAorLSAgICAo ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRT KSkKKysgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9D UFVfMzJfQklUUykpIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNl IF9fTlJfcmVjdjoKKyAjZW5kaWYKKyAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVk KF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNo NjRfXykKKysgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQorICAgICBjYXNlIF9fTlJfcmVjdmZyb206ICAvLyBDb3VsZCBzcGVjaWZ5IHNvdXJjZS4KKyAg ICAgY2FzZSBfX05SX3JlY3Ztc2c6ICAgLy8gQ291bGQgc3BlY2lmeSBzb3VyY2UuCisgI2VuZGlm CistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKKysjaWYgZGVm aW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCisgICAgIGNhc2UgX19OUl9zZWxlY3Q6CisgI2VuZGlmCistI2lmIGRlZmluZWQoX19p Mzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVm aW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8 fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9fbmV3c2VsZWN0OgorICNl bmRpZgorICNpZiBkZWZpbmVkKF9fYXJtX18pIHx8IFwKKy0gICAgKGRlZmluZWQoQVJDSF9DUFVf TUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisrICAgIChkZWZpbmVk KEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBc CisrICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3NlbmQ6CisgI2Vu ZGlmCisgI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZp bmVkKF9fbWlwc19fKSB8fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18pCisrICAgIGRlZmlu ZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05S X3NlbmRtc2c6ICAvLyBDb3VsZCBzcGVjaWZ5IGRlc3RpbmF0aW9uLgorICAgICBjYXNlIF9fTlJf c2VuZHRvOiAgIC8vIENvdWxkIHNwZWNpZnkgZGVzdGluYXRpb24uCisgI2VuZGlmCitAQCAtNjQ1 LDcgKzY2Miw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEJhc2ljU2NoZWR1bGVyKGlu dCBzeXNubykgeworICAgICAgIHJldHVybiB0cnVlOworICAgICBjYXNlIF9fTlJfZ2V0cHJpb3Jp dHk6CisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAorLSAg ICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9C SVRTKSkKKysgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJD SF9DUFVfMzJfQklUUykpIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBj YXNlIF9fTlJfbmljZToKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX3NldHByaW9yaXR5OgorQEAg LTY1Nyw3ICs2NzUsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRCYXNpY1NjaGVkdWxl cihpbnQgc3lzbm8pIHsKKyBib29sIFN5c2NhbGxTZXRzOjpJc0FkbWluT3BlcmF0aW9uKGludCBz eXNubykgeworICAgc3dpdGNoIChzeXNubykgeworICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBk ZWZpbmVkKF9fYXJtX18pIHx8IFwKKy0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp ICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisrICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01J UFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCisrICAgIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX2JkZmx1c2g6CisgI2VuZGlmCisgICAg IGNhc2UgX19OUl9rZXhlY19sb2FkOgorQEAgLTY3Myw3ICs2OTIsOCBAQCBib29sIFN5c2NhbGxT ZXRzOjpJc0FkbWluT3BlcmF0aW9uKGludCBzeXNubykgeworIAorIGJvb2wgU3lzY2FsbFNldHM6 OklzS2VybmVsTW9kdWxlKGludCBzeXNubykgeworICAgc3dpdGNoIChzeXNubykgeworLSNpZiBk ZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBz X18pCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVm aW5lZChfX21pcHNfXykgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNh c2UgX19OUl9jcmVhdGVfbW9kdWxlOgorICAgICBjYXNlIF9fTlJfZ2V0X2tlcm5lbF9zeW1zOiAg Ly8gU2hvdWxkIEVOT1NZUy4KKyAgICAgY2FzZSBfX05SX3F1ZXJ5X21vZHVsZToKK0BAIC03MDYs NyArNzI2LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNGc0NvbnRyb2woaW50IHN5c25vKSB7Cisg ICAgIGNhc2UgX19OUl9zd2Fwb2ZmOgorICAgICBjYXNlIF9fTlJfc3dhcG9uOgorICNpZiBkZWZp bmVkKF9faTM4Nl9fKSB8fCBcCistICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAm JiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBT X0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAorKyAgICBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl91bW91bnQ6CisgI2VuZGlmCisgICAgIGNh c2UgX19OUl91bW91bnQyOgorQEAgLTcyMiw3ICs3NDMsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJ c051bWEoaW50IHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9nZXRjcHU6CisgICAgIGNhc2UgX19O Ul9tYmluZDoKKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8 fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18pCisrICAg IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2Fz ZSBfX05SX21pZ3JhdGVfcGFnZXM6CisgI2VuZGlmCisgICAgIGNhc2UgX19OUl9tb3ZlX3BhZ2Vz OgorQEAgLTc1MSwxNCArNzcyLDE1IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzR2xvYmFsUHJvY2Vz c0Vudmlyb25tZW50KGludCBzeXNubykgeworICAgc3dpdGNoIChzeXNubykgeworICAgICBjYXNl IF9fTlJfYWNjdDogIC8vIFByaXZpbGVnZWQuCisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRl ZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorLSAgICBkZWZpbmVk KF9fYWFyY2g2NF9fKQorKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9nZXRybGltaXQ6CisgI2VuZGlmCistI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykg fHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2Ug X19OUl91Z2V0cmxpbWl0OgorICNlbmRpZgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCist ICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMy X0JJVFMpKQorKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChB UkNIX0NQVV8zMl9CSVRTKSkgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAg IGNhc2UgX19OUl91bGltaXQ6CisgI2VuZGlmCisgICAgIGNhc2UgX19OUl9nZXRydXNhZ2U6CitA QCAtNzkyLDcgKzgxNCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzR2xvYmFsU3lzdGVtU3RhdHVz KGludCBzeXNubykgeworICNlbmRpZgorICAgICBjYXNlIF9fTlJfc3lzaW5mbzoKKyAgICAgY2Fz ZSBfX05SX3VuYW1lOgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKQorKyNpZiBkZWZpbmVkKF9faTM4 Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9vbGR1bmFtZToK KyAgICAgY2FzZSBfX05SX29sZG9sZHVuYW1lOgorICNlbmRpZgorQEAgLTg1NCw4ICs4NzYsMTYg QEAgYm9vbCBTeXNjYWxsU2V0czo6SXNTeXN0ZW1WU2VtYXBob3JlcyhpbnQgc3lzbm8pIHsKKyB9 CisgI2VuZGlmCisgCisrLyogc2hpdHR5IGhhY2sgYXJvdW5kIFZvaWQncyA0LjE5IGtlcm5lbCBo ZWFkZXJzIG1pc3NpbmcgdGhvc2UgbnVtYmVycyAqLworKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pICYmICFkZWZpbmVkKF9fTlJfc2htZ2V0KQorKyNkZWZpbmUgX19OUl9zaG1nZXQgMzk1Cisr I2RlZmluZSBfX05SX3NobWN0bCAzOTYKKysjZGVmaW5lIF9fTlJfc2htYXQgMzk3CisrI2RlZmlu ZSBfX05SX3NobWR0IDM5OAorKyNlbmRpZgorKworICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBk ZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAorLSAgICBkZWZpbmVk KF9fYWFyY2g2NF9fKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8 IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9D UFVfNjRfQklUUykpCisgLy8gVGhlc2UgZ2l2ZSBhIGxvdCBvZiBhbWJpZW50IGF1dGhvcml0eSBh bmQgYnlwYXNzIHRoZSBzZXR1aWQgc2FuZGJveC4KKyBib29sIFN5c2NhbGxTZXRzOjpJc1N5c3Rl bVZTaGFyZWRNZW1vcnkoaW50IHN5c25vKSB7CitAQCAtODg3LDcgKzkxNyw4IEBAIGJvb2wgU3lz Y2FsbFNldHM6OklzU3lzdGVtVk1lc3NhZ2VRdWV1ZShpbnQgc3lzbm8pIHsKKyAjZW5kaWYKKyAK KyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAorLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBT X0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKysgICAgKGRlZmluZWQoQVJD SF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKKysg ICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorIC8vIEJpZyBzeXN0ZW0gViBtdWx0aXBsZXhpbmcg c3lzdGVtIGNhbGwuCisgYm9vbCBTeXNjYWxsU2V0czo6SXNTeXN0ZW1WSXBjKGludCBzeXNubykg eworICAgc3dpdGNoIChzeXNubykgeworQEAgLTkwNyw3ICs5MzgsOCBAQCBib29sIFN5c2NhbGxT ZXRzOjpJc0FueVN5c3RlbVYoaW50IHN5c25vKSB7CisgICByZXR1cm4gSXNTeXN0ZW1WTWVzc2Fn ZVF1ZXVlKHN5c25vKSB8fCBJc1N5c3RlbVZTZW1hcGhvcmVzKHN5c25vKSB8fAorICAgICAgICAg IElzU3lzdGVtVlNoYXJlZE1lbW9yeShzeXNubyk7CisgI2VsaWYgZGVmaW5lZChfX2kzODZfXykg fHwgXAorLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNI X0NQVV8zMl9CSVRTKSkKKysgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRl ZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQorICAgcmV0dXJuIElzU3lzdGVtVklwYyhzeXNubyk7CisgI2VuZGlmCisgfQorQEAgLTk2MCw3 ICs5OTIsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0ZhTm90aWZ5KGludCBzeXNubykgeworIGJv b2wgU3lzY2FsbFNldHM6OklzVGltZXIoaW50IHN5c25vKSB7CisgICBzd2l0Y2ggKHN5c25vKSB7 CisgICAgIGNhc2UgX19OUl9nZXRpdGltZXI6CistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRl ZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCisr ICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX2FsYXJtOgorICNlbmRp ZgorICAgICBjYXNlIF9fTlJfc2V0aXRpbWVyOgorQEAgLTEwMTksMTggKzEwNTIsMjIgQEAgYm9v bCBTeXNjYWxsU2V0czo6SXNNaXNjKGludCBzeXNubykgeworICAgICBjYXNlIF9fTlJfc3luY2Zz OgorICAgICBjYXNlIF9fTlJfdmhhbmd1cDoKKyAvLyBUaGUgc3lzdGVtIGNhbGxzIGJlbG93IGFy ZSBub3QgaW1wbGVtZW50ZWQuCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194 ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwg ZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCisrICAgIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX2Fmc19zeXNjYWxsOgorICNlbmRpZgor ICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCistICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNf RkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorKyAgICAoZGVmaW5lZChBUkNI X0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAorKyAg ICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9icmVhazoKKyAjZW5kaWYK Ky0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVk KF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18p IHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQor ICAgICBjYXNlIF9fTlJfZ2V0cG1zZzoKKyAjZW5kaWYKKyAjaWYgZGVmaW5lZChfX2kzODZfXykg fHwgXAorLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNI X0NQVV8zMl9CSVRTKSkKKysgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRl ZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQorICAgICBjYXNlIF9fTlJfZ3R0eToKKyAgICAgY2FzZSBfX05SX2lkbGU6CisgICAgIGNhc2Ug X19OUl9sb2NrOgorQEAgLTEwMzgsMjAgKzEwNzUsMjIgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNN aXNjKGludCBzeXNubykgeworICAgICBjYXNlIF9fTlJfcHJvZjoKKyAgICAgY2FzZSBfX05SX3By b2ZpbDoKKyAjZW5kaWYKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82 NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZp bmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKysgICAgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfcHV0cG1zZzoKKyAjZW5kaWYKKyAjaWYgZGVm aW5lZChfX3g4Nl82NF9fKQorICAgICBjYXNlIF9fTlJfc2VjdXJpdHk6CisgI2VuZGlmCisgI2lm IGRlZmluZWQoX19pMzg2X18pIHx8IFwKKy0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1J TFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisrICAgIChkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCisrICAgIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3N0dHk6CisgI2VuZGlmCistI2lm IGRlZmluZWQoX194ODZfNjRfXykKKysjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl90dXhjYWxsOgorICNlbmRpZgorLSNpZiAh ZGVmaW5lZChfX2FhcmNoNjRfXykKKysjaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZp bmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl92c2VydmVyOgorICNlbmRpZgorICAg ICAgIHJldHVybiB0cnVlOworZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhl bHBlcnMvc3lzY2FsbF9zZXRzLmggc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5 c2NhbGxfc2V0cy5oCitpbmRleCA5MjM1MzNlYzkuLjQxMWY3MmFjZCAxMDA2NDQKKy0tLSBhL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lz Y2FsbF9zZXRzLmgKKysrKyBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3Nl Y2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmgKK0BAIC00MywxMyArNDMsMTQgQEAgY2xh c3MgU0FOREJPWF9FWFBPUlQgU3lzY2FsbFNldHMgeworICAgc3RhdGljIGJvb2wgSXNEZW5pZWRH ZXRPck1vZGlmeVNvY2tldChpbnQgc3lzbm8pOworIAorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBcCistICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hf Q1BVXzMyX0JJVFMpKQorKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVm aW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisgICAvLyBCaWcgbXVsdGlwbGV4aW5nIHN5c3RlbSBjYWxsIGZvciBzb2NrZXRzLgorICAgc3Rh dGljIGJvb2wgSXNTb2NrZXRDYWxsKGludCBzeXNubyk7CisgI2VuZGlmCisgCisgI2lmIGRlZmlu ZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8 fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18pCisrICAgIGRlZmluZWQoX19hYXJjaDY0X18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgIHN0YXRpYyBib29sIElzTmV0d29ya1NvY2tl dEluZm9ybWF0aW9uKGludCBzeXNubyk7CisgI2VuZGlmCisgCitAQCAtNzYsNyArNzcsNyBAQCBj bGFzcyBTQU5EQk9YX0VYUE9SVCBTeXNjYWxsU2V0cyB7CisgICBzdGF0aWMgYm9vbCBJc1N5c3Rl bVZTZW1hcGhvcmVzKGludCBzeXNubyk7CisgI2VuZGlmCisgI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCistICAgIGRl ZmluZWQoX19hYXJjaDY0X18pIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisrICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRf XykgfHwgXAorICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChB UkNIX0NQVV82NF9CSVRTKSkKKyAgIC8vIFRoZXNlIGdpdmUgYSBsb3Qgb2YgYW1iaWVudCBhdXRo b3JpdHkgYW5kIGJ5cGFzcyB0aGUgc2V0dWlkIHNhbmRib3guCisgICBzdGF0aWMgYm9vbCBJc1N5 c3RlbVZTaGFyZWRNZW1vcnkoaW50IHN5c25vKTsKK0BAIC04OCw3ICs4OSw4IEBAIGNsYXNzIFNB TkRCT1hfRVhQT1JUIFN5c2NhbGxTZXRzIHsKKyAjZW5kaWYKKyAKKyAjaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgXAorLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5l ZChBUkNIX0NQVV8zMl9CSVRTKSkKKysgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp ICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQorICAgLy8gQmlnIHN5c3RlbSBWIG11bHRpcGxleGluZyBzeXN0ZW0gY2FsbC4KKyAg IHN0YXRpYyBib29sIElzU3lzdGVtVklwYyhpbnQgc3lzbm8pOworICNlbmRpZgorZGlmZiAtLWdp dCBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3N5c2NhbGwuY2Mgc2FuZGJveC9saW51eC9zZWNj b21wLWJwZi9zeXNjYWxsLmNjCitpbmRleCBlNDdlOThiZjUuLmQ1M2E3ZmY1NiAxMDA2NDQKKy0t LSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3N5c2Nh bGwuY2MKKysrKyBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAt YnBmL3N5c2NhbGwuY2MKK0BAIC0xOCw3ICsxOCw3IEBAIG5hbWVzcGFjZSBzYW5kYm94IHsKKyBu YW1lc3BhY2UgeworIAorICNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9GQU1JTFkpIHx8IGRlZmlu ZWQoQVJDSF9DUFVfQVJNX0ZBTUlMWSkgfHwgXAorLSAgICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNf RkFNSUxZKQorKyAgICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSB8fCBkZWZpbmVkIChB UkNIX0NQVV9QUEM2NF9GQU1JTFkpCisgLy8gTnVtYmVyIHRoYXQncyBub3QgY3VycmVudGx5IHVz ZWQgYnkgYW55IExpbnV4IGtlcm5lbCBBQklzLgorIGNvbnN0IGludCBrSW52YWxpZFN5c2NhbGxO dW1iZXIgPSAweDM1MWQzOworICNlbHNlCitAQCAtMzEwLDEyICszMTAsNTYgQEAgYXNtKC8vIFdl IG5lZWQgdG8gYmUgYWJsZSB0byB0ZWxsIHRoZSBrZXJuZWwgZXhhY3RseSB3aGVyZSB3ZSBtYWRl IGEKKyAgICAgLy8gRW50ZXIgdGhlIGtlcm5lbAorICAgICAic3ZjIDBcbiIKKyAgICAgIjI6cmV0 XG4iCisrICAgICIuY2ZpX2VuZHByb2NcbiIKKysgICAgIi5zaXplIFN5c2NhbGxBc20sIC4tU3lz Y2FsbEFzbVxuIgorKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgICAgIi50ZXh0XG4i CisrICAgICIuYWxpZ24gNFxuIgorKyAgICAiLnR5cGUgU3lzY2FsbEFzbSBAZnVuY3Rpb25cbiIK KysgICAgIlN5c2NhbGxBc206XG4iCisrICAgICIuY2ZpX3N0YXJ0cHJvY1xuIgorKworKyAgICAv LyBDaGVjayBpZiByMyBpcyBuZWdhdGl2ZQorKyAgICAiY21wZGkgMywgMFxuIgorKyAgICAiYmd0 IDJmXG4iCisrCisrICAgIC8vIExvYWQgYWRkcmVzcyBvZiAzZiBpbnRvIHIzIGFuZCByZXR1cm4K KysgICAgIm1mbHIgMTBcbiIKKysgICAgImJsIDFmXG4iCisrICAgICIxOiBtZmxyIDNcbiIKKysg ICAgIm10bHIgMTBcbiIKKysgICAgImFkZGkgMywgMywgNCoxM1xuIgorKyAgICAiYmxyXG4iCisr CisrICAgIC8vIExvYWQgYXJndW1lbnRzIGZyb20gYXJyYXkgaW50byByMy04CisrICAgIC8vIHNh dmUgcGFyYW0gMyBpbiByMTAKKysgICAgIjI6XG4iCisrICAgICJtciAwLCAzXG4iCisrICAgICJs ZCAzLCAwKDQpXG4iCisrICAgICJsZCA1LCAxNig0KVxuIgorKyAgICAibGQgNiwgMjQoNClcbiIK KysgICAgImxkIDcsIDMyKDQpXG4iCisrICAgICJsZCA4LCA0MCg0KVxuIgorKyAgICAibGQgNCwg OCg0KVxuIgorKyAgICAibGkgOSwgMFxuIgorKworKyAgICAvLyBFbnRlciBrZXJuZWwKKysgICAg InNjXG4iCisrCisrICAgIC8vIE1hZ2ljIHJldHVybiBhZGRyZXNzCisrICAgICIzOlxuIgorKyAg ICAvLyBMaWtlIE1JUFMsIHBwYzY0IHJldHVybiB2YWx1ZXMgYXJlIGFsd2F5cyBwb3NpdGl2ZS4K KysgICAgLy8gQ2hlY2sgZm9yIGVycm9yIGluIGNyMC5TTyBhbmQgbmVnYXRlIHVwb24gZXJyb3IK KysgICAgImJjIDQsIDMsIDRmXG4iCisrICAgICJuZWcgMywgM1xuIgorKyAgICAiNDogYmxyXG4i CisrCisgICAgICIuY2ZpX2VuZHByb2NcbiIKKyAgICAgIi5zaXplIFN5c2NhbGxBc20sIC4tU3lz Y2FsbEFzbVxuIgorICNlbmRpZgorICAgICApOyAgLy8gYXNtCisgCistI2lmIGRlZmluZWQoX194 ODZfNjRfXykKKysjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCisgZXh0ZXJuICJDIiB7CisgaW50cHRyX3QgU3lzY2FsbEFzbShpbnRwdHJfdCBuciwgY29u c3QgaW50cHRyX3QgYXJnc1s2XSk7CisgfQorQEAgLTQyOSw2ICs0NzMsOCBAQCBpbnRwdHJfdCBT eXNjYWxsOjpDYWxsKGludCBuciwKKyAgICAgcmV0ID0gaW5vdXQ7CisgICB9CisgCisrI2VsaWYg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgaW50cHRyX3QgcmV0ID0gU3lzY2FsbEFzbShuciwg YXJncyk7CisgI2Vsc2UKKyAjZXJyb3IgIlVuaW1wbGVtZW50ZWQgYXJjaGl0ZWN0dXJlIgorICNl bmRpZgorQEAgLTQ0NSw4ICs0OTEsMTggQEAgdm9pZCBTeXNjYWxsOjpQdXRWYWx1ZUluVWNvbnRl eHQoaW50cHRyX3QgcmV0X3ZhbCwgdWNvbnRleHRfdCogY3R4KSB7CisgICAgIC8vIG5lZWRzIHRv IGJlIGNoYW5nZWQgYmFjay4KKyAgICAgcmV0X3ZhbCA9IC1yZXRfdmFsOworICAgICBTRUNDT01Q X1BBUk00KGN0eCkgPSAxOworLSAgfSBlbHNlCisrICB9IGVsc2UgeworICAgICBTRUNDT01QX1BB Uk00KGN0eCkgPSAwOworKyAgfQorKyNlbmRpZgorKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisrICAvLyBTYW1lIGFzIE1JUFMsIG5lZWQgdG8gaW52ZXJ0IHJldCBhbmQgc2V0IGVycm9yIHJl Z2lzdGVyIChjcjAuU08pCisrICBpZiAocmV0X3ZhbCA8PSAtMSAmJiByZXRfdmFsID49IC00MDk1 KSB7CisrICAgIHJldF92YWwgPSAtcmV0X3ZhbDsKKysgICAgY3R4LT51Y19tY29udGV4dC5yZWdz LT5jY3IgfD0gKDEgPDwgMjgpOworKyAgfSBlbHNlIHsKKysgICAgY3R4LT51Y19tY29udGV4dC5y ZWdzLT5jY3IgJj0gfigxIDw8IDI4KTsKKysgIH0KKyAjZW5kaWYKKyAgIFNFQ0NPTVBfUkVTVUxU KGN0eCkgPSBzdGF0aWNfY2FzdDxncmVnX3Q+KHJldF92YWwpOworIH0KK2RpZmYgLS1naXQgc2Fu ZGJveC9saW51eC9zZWNjb21wLWJwZi90cmFwLmNjIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYv dHJhcC5jYworaW5kZXggZjViODZhNzNhLi41ZTZjNGEwNjggMTAwNjQ0CistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi90cmFwLmNjCisrKysgYS9z cmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi90cmFwLmNjCitA QCAtMjMyLDYgKzIzMiwyMCBAQCB2b2lkIFRyYXA6OlNpZ1N5cyhpbnQgbnIsIExpbnV4U2lnSW5m byogaW5mbywgdWNvbnRleHRfdCogY3R4KSB7CisgICAgICAgU2V0SXNJblNpZ0hhbmRsZXIoKTsK KyAgICAgfQorIAorKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAgIC8vIE9uIHBwYzY0 K2dsaWJjLCBzb21lIHN5c2NhbGxzIHNlZW0gdG8gYWNjaWRlbnRhbGx5IG5lZ2F0ZSB0aGUgZmly c3QKKysgICAgLy8gcGFyYW1ldGVyIHdoaWNoIGNhdXNlcyBjaGVja3MgYWdhaW5zdCBpdCB0byBm YWlsLiBGb3Igbm93LCBtYW51YWxseQorKyAgICAvLyBuZWdhdGUgdGhlbSBiYWNrLgorKyAgICAv LyBUT0RPKHNoYXduQGFuYXN0YXMuaW8pOiBpbnZlc3RpZ2F0ZSB0aGlzIGlzc3VlIGZ1cnRoZXIK KysgICAgYXV0byBuciA9IFNFQ0NPTVBfU1lTQ0FMTChjdHgpOworKyAgICBpZiAobnIgPT0gX19O Ul9vcGVuYXQgfHwgbnIgPT0gX19OUl9ta2RpcmF0IHx8IG5yID09IF9fTlJfZmFjY2Vzc2F0IHx8 IG5yID09IF9fTlJfcmVhZGxpbmthdCB8fAorKyAgICAgICAgbnIgPT0gX19OUl9yZW5hbWVhdCB8 fCBuciA9PSBfX05SX3JlbmFtZWF0MiB8fCBuciA9PSBfX05SX25ld2ZzdGF0YXQgfHwgbnIgPT0g X19OUl91bmxpbmthdCkgeworKyAgICAgICAgaWYgKHN0YXRpY19jYXN0PGludD4oU0VDQ09NUF9Q QVJNMShjdHgpKSA+IDApIHsKKysgICAgICAgICAgICBTRUNDT01QX1BBUk0xKGN0eCkgPSAtU0VD Q09NUF9QQVJNMShjdHgpOworKyAgICAgICAgfQorKyAgICB9CisrI2VuZGlmCisrCisgICAgIC8v IENvcHkgdGhlIHNlY2NvbXAtc3BlY2lmaWMgZGF0YSBpbnRvIGEgYXJjaF9zZWNjb21wX2RhdGEg c3RydWN0dXJlLiBUaGlzCisgICAgIC8vIGlzIHdoYXQgd2UgYXJlIHNob3dpbmcgdG8gVHJhcEZu YyBjYWxsYmFja3MgdGhhdCB0aGUgc3lzdGVtIGNhbGwKKyAgICAgLy8gZXZhbHVhdG9yIHJlZ2lz dGVyZWQgd2l0aCB0aGUgc2FuZGJveC4KK2RpZmYgLS1naXQgc2FuZGJveC9saW51eC9zZXJ2aWNl cy9jcmVkZW50aWFscy5jYyBzYW5kYm94L2xpbnV4L3NlcnZpY2VzL2NyZWRlbnRpYWxzLmNjCitp bmRleCBkN2I1ZDhjNDQuLjRhZGM2ZDBkNCAxMDA2NDQKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS9zYW5kYm94L2xpbnV4L3NlcnZpY2VzL2NyZWRlbnRpYWxzLmNjCisrKysgYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZXJ2aWNlcy9jcmVkZW50aWFscy5jYworQEAg LTgxLDcgKzgxLDcgQEAgYm9vbCBDaHJvb3RUb1NhZmVFbXB0eURpcigpIHsKKyAgIHBpZF90IHBp ZCA9IC0xOworICAgYWxpZ25hcygxNikgY2hhciBzdGFja19idWZbUFRIUkVBRF9TVEFDS19NSU5d OworICNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9GQU1JTFkpIHx8IGRlZmluZWQoQVJDSF9DUFVf QVJNX0ZBTUlMWSkgfHwgXAorLSAgICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQorKyAg ICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0 X0ZBTUlMWSkKKyAgIC8vIFRoZSBzdGFjayBncm93cyBkb3dud2FyZC4KKyAgIHZvaWQqIHN0YWNr ID0gc3RhY2tfYnVmICsgc2l6ZW9mKHN0YWNrX2J1Zik7CisgI2Vsc2UKK2RpZmYgLS1naXQgc2Fu ZGJveC9saW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmNjIHNhbmRib3gvbGludXgvc2Vy dmljZXMvc3lzY2FsbF93cmFwcGVycy5jYworaW5kZXggZmNmZDJhYTEyLi5mNmViMzJmYjcgMTAw NjQ0CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZXJ2aWNlcy9z eXNjYWxsX3dyYXBwZXJzLmNjCisrKysgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9s aW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmNjCitAQCAtNTgsNyArNTgsNyBAQCBsb25n IHN5c19jbG9uZSh1bnNpZ25lZCBsb25nIGZsYWdzLAorICNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4 Nl82NCkKKyAgIHJldHVybiBzeXNjYWxsKF9fTlJfY2xvbmUsIGZsYWdzLCBjaGlsZF9zdGFjaywg cHRpZCwgY3RpZCwgdGxzKTsKKyAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4NikgfHwgZGVmaW5l ZChBUkNIX0NQVV9BUk1fRkFNSUxZKSB8fCBcCistICAgIGRlZmluZWQoQVJDSF9DUFVfTUlQU19G QU1JTFkpCisrICAgIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpIHx8IGRlZmluZWQoQVJD SF9DUFVfUFBDNjRfRkFNSUxZKQorICAgLy8gQ09ORklHX0NMT05FX0JBQ0tXQVJEUyBkZWZpbmVk LgorICAgcmV0dXJuIHN5c2NhbGwoX19OUl9jbG9uZSwgZmxhZ3MsIGNoaWxkX3N0YWNrLCBwdGlk LCB0bHMsIGN0aWQpOworICNlbmRpZgorZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3N5c2NhbGxf YnJva2VyL2Jyb2tlcl9wcm9jZXNzLmNjIHNhbmRib3gvbGludXgvc3lzY2FsbF9icm9rZXIvYnJv a2VyX3Byb2Nlc3MuY2MKK2luZGV4IGQ3MmM5ZDIzOC4uNzdmMWQ5NWY1IDEwMDY0NAorLS0tIGEv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzY2FsbF9icm9rZXIvYnJva2Vy X3Byb2Nlc3MuY2MKKysrKyBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5 c2NhbGxfYnJva2VyL2Jyb2tlcl9wcm9jZXNzLmNjCitAQCAtMTY5LDcgKzE2OSw3IEBAIGJvb2wg QnJva2VyUHJvY2Vzczo6SXNTeXNjYWxsQnJva2VyYWJsZShpbnQgc3lzbm8sIGJvb2wgZmFzdF9j aGVjaykgY29uc3QgeworICNpZiBkZWZpbmVkKF9fTlJfZnN0YXRhdDY0KQorICAgICBjYXNlIF9f TlJfZnN0YXRhdDY0OgorICNlbmRpZgorLSNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmlu ZWQoX19hYXJjaDY0X18pCisrI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2Fh cmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfbmV3ZnN0 YXRhdDoKKyAjZW5kaWYKKyAgICAgICByZXR1cm4gIWZhc3RfY2hlY2sgfHwgYWxsb3dlZF9jb21t YW5kX3NldF8udGVzdChDT01NQU5EX1NUQVQpOworZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3N5 c3RlbV9oZWFkZXJzL2xpbnV4X3NlY2NvbXAuaCBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJz L2xpbnV4X3NlY2NvbXAuaAoraW5kZXggMWZhNDdlZDA5Li4zOWNjOWFiNTMgMTAwNjQ0CistLS0g YS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51 eF9zZWNjb21wLmgKKysrKyBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5 c3RlbV9oZWFkZXJzL2xpbnV4X3NlY2NvbXAuaAorQEAgLTQxLDYgKzQxLDkgQEAKKyAjaWZuZGVm IEVNX0FBUkNINjQKKyAjZGVmaW5lIEVNX0FBUkNINjQgMTgzCisgI2VuZGlmCisrI2lmbmRlZiBF TV9QUEM2NAorKyNkZWZpbmUgRU1fUFBDNjQgMjEKKysjZW5kaWYKKyAKKyAjaWZuZGVmIF9fQVVE SVRfQVJDSF82NEJJVAorICNkZWZpbmUgX19BVURJVF9BUkNIXzY0QklUIDB4ODAwMDAwMDAKK0BA IC03Myw2ICs3NiwxMiBAQAorICNpZm5kZWYgQVVESVRfQVJDSF9BQVJDSDY0CisgI2RlZmluZSBB VURJVF9BUkNIX0FBUkNINjQgKEVNX0FBUkNINjQgfCBfX0FVRElUX0FSQ0hfNjRCSVQgfCBfX0FV RElUX0FSQ0hfTEUpCisgI2VuZGlmCisrI2lmbmRlZiBBVURJVF9BUkNIX1BQQzY0CisrI2RlZmlu ZSBBVURJVF9BUkNIX1BQQzY0IChFTV9QUEM2NCB8IF9fQVVESVRfQVJDSF82NEJJVCkKKysjZW5k aWYKKysjaWZuZGVmIEFVRElUX0FSQ0hfUFBDNjRMRQorKyNkZWZpbmUgQVVESVRfQVJDSF9QUEM2 NExFIChFTV9QUEM2NCB8IF9fQVVESVRfQVJDSF82NEJJVCB8IF9fQVVESVRfQVJDSF9MRSkKKysj ZW5kaWYKKyAKKyAvLyBGb3IgcHJjdGwuaAorICNpZm5kZWYgUFJfU0VUX1NFQ0NPTVAKK2RpZmYg LS1naXQgc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zaWduYWwuaCBzYW5kYm94 L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NpZ25hbC5oCitpbmRleCBmNWE3MzY3NjEuLjUx NWIyMWE1ZiAxMDA2NDQKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4 L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NpZ25hbC5oCisrKysgYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zaWduYWwuaAorQEAgLTEzLDcg KzEzLDcgQEAKKyAvLyAobm90IHVuZGVmaW5lZCwgYnV0IGRlZmluZWQgZGlmZmVyZW50IHZhbHVl cyBhbmQgaW4gZGlmZmVyZW50IG1lbW9yeQorIC8vIGxheW91dHMpLiBTbywgZmlsbCB0aGUgZ2Fw IGhlcmUuCisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwg ZGVmaW5lZChfX2FybV9fKSB8fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18pCisrICAgIGRl ZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAKKyAjZGVmaW5l IExJTlVYX1NJR0hVUCAxCisgI2RlZmluZSBMSU5VWF9TSUdJTlQgMgorZGlmZiAtLWdpdCBzYW5k Ym94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N5c2NhbGxzLmggc2FuZGJveC9saW51eC9z eXN0ZW1faGVhZGVycy9saW51eF9zeXNjYWxscy5oCitpbmRleCAyYjc4YTBjYzMuLjBhNzBmNWVh NSAxMDA2NDQKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3Rl bV9oZWFkZXJzL2xpbnV4X3N5c2NhbGxzLmgKKysrKyBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9z YW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N5c2NhbGxzLmgKK0BAIC0zNSw1ICsz NSw5IEBACisgI2luY2x1ZGUgInNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvYXJtNjRfbGlu dXhfc3lzY2FsbHMuaCIKKyAjZW5kaWYKKyAKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQor KyNpbmNsdWRlICJzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3N5c2Nh bGxzLmgiCisrI2VuZGlmCisrCisgI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFE RVJTX0xJTlVYX1NZU0NBTExTX0hfCisgCitkaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvc3lzdGVt X2hlYWRlcnMvbGludXhfdWNvbnRleHQuaCBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xp bnV4X3Vjb250ZXh0LmgKK2luZGV4IDIyY2U3ODAyNy4uYTY5YjAyNGMyIDEwMDY0NAorLS0tIGEv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhf dWNvbnRleHQuaAorKysrIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lz dGVtX2hlYWRlcnMvbGludXhfdWNvbnRleHQuaAorQEAgLTExLDYgKzExLDggQEAKKyAjaW5jbHVk ZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm1fbGludXhfdWNvbnRleHQuaCIKKyAj ZWxpZiBkZWZpbmVkKF9faTM4Nl9fKQorICNpbmNsdWRlICJzYW5kYm94L2xpbnV4L3N5c3RlbV9o ZWFkZXJzL2kzODZfbGludXhfdWNvbnRleHQuaCIKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCisrI2luY2x1ZGUgInNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhf dWNvbnRleHQuaCIKKyAjZWxzZQorICNlcnJvciAiTm8gc3VwcG9ydCBmb3IgeW91ciBhcmNoaXRl Y3R1cmUgaW4gUE5hQ2wgaGVhZGVyIgorICNlbmRpZgorZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4 L3N5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3N5c2NhbGxzLmggc2FuZGJveC9saW51eC9zeXN0 ZW1faGVhZGVycy9wcGM2NF9saW51eF9zeXNjYWxscy5oCituZXcgZmlsZSBtb2RlIDEwMDY0NAor aW5kZXggMDAwMDAwMDAwLi5jY2FjZmZlMjIKKy0tLSAvZGV2L251bGwKKysrKyBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3N5 c2NhbGxzLmgKK0BAIC0wLDAgKzEsMTIgQEAKKysvLyBDb3B5cmlnaHQgMjAxNCBUaGUgQ2hyb21p dW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3VyY2Ug Y29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisrLy8g Zm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysjaWZuZGVmIFNBTkRCT1hfTElOVVhfU1lT VEVNX0hFQURFUlNfUFBDNjRfTElOVVhfU1lTQ0FMTFNfSF8KKysjZGVmaW5lIFNBTkRCT1hfTElO VVhfU1lTVEVNX0hFQURFUlNfUFBDNjRfTElOVVhfU1lTQ0FMTFNfSF8KKysKKysjaW5jbHVkZSA8 YXNtL3VuaXN0ZC5oPgorKworKy8vVE9ETzogaXMgaXQgbmVjZXNzYXJ5IHRvIHJlZGVmaW5lIHN5 c2NhbGwgbnVtYmVycyBmb3IgUFBDNjQ/CisrCisrI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZ U1RFTV9IRUFERVJTX1BQQzY0X0xJTlVYX1NZU0NBTExTX0hfCitkaWZmIC0tZ2l0IHNhbmRib3gv bGludXgvc3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhfdWNvbnRleHQuaCBzYW5kYm94L2xpbnV4 L3N5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3Vjb250ZXh0LmgKK25ldyBmaWxlIG1vZGUgMTAw NjQ0CitpbmRleCAwMDAwMDAwMDAuLjA3NzI4ZTA4NworLS0tIC9kZXYvbnVsbAorKysrIGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvcHBjNjRfbGlu dXhfdWNvbnRleHQuaAorQEAgLTAsMCArMSwxMiBAQAorKy8vIENvcHlyaWdodCAyMDE0IFRoZSBD aHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKy8vIFVzZSBvZiB0aGlzIHNv dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUK KysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKworKyNpZm5kZWYgU0FOREJPWF9MSU5V WF9TWVNURU1fSEVBREVSU19QUEM2NF9MSU5VWF9VQ09OVEVYVF9IXworKyNkZWZpbmUgU0FOREJP WF9MSU5VWF9TWVNURU1fSEVBREVSU19QUEM2NF9MSU5VWF9VQ09OVEVYVF9IXworKworKyNpbmNs dWRlIDxzeXMvdWNvbnRleHQuaD4KKysKKysvL1RPRE86IGlzIGl0IG5lY2Vzc2FyeSB0byByZWRl ZmluZSB1Y29udGV4dCBvbiBQUEM2ND8KKysKKysjZW5kaWYgIC8vIFNBTkRCT1hfTElOVVhfU1lT VEVNX0hFQURFUlNfUFBDNjRfTElOVVhfVUNPTlRFWFRfSF8KK2RpZmYgLS1naXQgc2FuZGJveC9w b2xpY3kvbGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYyBzYW5kYm94L3BvbGljeS9s aW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjCitpbmRleCAyNTg4ZmM3OTIuLmQ0NTVj NDYwMSAxMDA2NDQKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L3BvbGljeS9s aW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjCisrKysgYS9zcmMvM3JkcGFydHkvY2hy b21pdW0vc2FuZGJveC9wb2xpY3kvbGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYwor QEAgLTE1LDYgKzE1LDExIEBACisgI2luY2x1ZGUgInNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRl cnMvbGludXhfc3lzY2FsbHMuaCIKKyAjaW5jbHVkZSAic2FuZGJveC9wb2xpY3kvbGludXgvc2Fu ZGJveF9saW51eC5oIgorIAorKy8vIE9uIFBQQzY0LCBUQ0dFVFMgaXMgZGVmaW5lZCBpbiB0ZXJt cyBvZiBzdHJ1Y3QgdGVybWlvcywgc28gd2UgbXVzdCBpbmNsdWRlIHRlcm1pb3MuaAorKyNpZmRl ZiBfX3Bvd2VycGM2NF9fCisrI2luY2x1ZGUgPHRlcm1pb3MuaD4KKysjZW5kaWYKKysKKyAvLyBU T0RPKHZpZ25hdHRpKTogcmVwbGFjZSB0aGUgbG9jYWwgZGVmaW5pdGlvbnMgYmVsb3cgd2l0aCAj aW5jbHVkZQorIC8vIDxsaW51eC9kbWEtYnVmLmg+IG9uY2Uga2VybmVsIHZlcnNpb24gNC42IGJl Y29tZXMgd2lkZWx5IHVzZWQuCisgI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CitkaWZmIC0tZ2l0 IHRoaXJkX3BhcnR5L2FuZ2xlL3NyYy9jb21waWxlci90cmFuc2xhdG9yL0luZm9TaW5rLmggdGhp cmRfcGFydHkvYW5nbGUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvSW5mb1NpbmsuaAoraW5kZXgg M2E4MDdlMWUzLi41MjU4NjE3YTcgMTAwNjQ0CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0v dGhpcmRfcGFydHkvYW5nbGUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvSW5mb1NpbmsuaAorKysr IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2FuZ2xlL3NyYy9jb21waWxlci90 cmFuc2xhdG9yL0luZm9TaW5rLmgKK0BAIC05Miw3ICs5MiwxNiBAQCBjbGFzcyBUSW5mb1NpbmtC YXNlCisgICAgICAgICAgICAgc3RyZWFtLnByZWNpc2lvbig4KTsKKyAgICAgICAgICAgICBzdHJl YW0gPDwgZjsKKyAgICAgICAgIH0KKy0gICAgICAgIHNpbmsuYXBwZW5kKHN0cmVhbS5zdHIoKSk7 CisrCisrICAgICAgICAvLyBIYWNrIHRvIHdvcmsgYXJvdW5kIGEgYnVnIHdoZXJlIG5lZ2F0aXZl IGZsb2F0aW5nIHBvaW50IHZhbHVlcworKyAgICAgICAgLy8gYXJlIHJlbmRlcmVkIGxpa2UgJy4w LjUnIGluc3RlYWQgb2YgJy0wLjUnCisrICAgICAgICBzdGQ6OnN0cmluZyByZXMoc3RyZWFtLnN0 cigpKTsKKysKKysgICAgICAgIGlmIChzaWduYml0KGYpKSB7IC8vIHRlc3QgaWYgZiBpcyBuZWdh dGl2ZQorKyAgICAgICAgICAgIHJlc1swXSA9ICctJzsKKysgICAgICAgIH0KKysKKysgICAgICAg IHNpbmsuYXBwZW5kKHJlcyk7CisgICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgIH0KKyAgICAg Ly8gV3JpdGUgYm9vbGVhbiB2YWx1ZXMgYXMgdGhlaXIgbmFtZXMgaW5zdGVhZCBvZiBpbnRlZ3Jh bCB2YWx1ZS4KK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvYW5nbGUvc3JjL2xpYkFOR0xFL0NvbnN0 YW50cy5oIHRoaXJkX3BhcnR5L2FuZ2xlL3NyYy9saWJBTkdMRS9Db25zdGFudHMuaAoraW5kZXgg ZmNiYzkyNDZhLi4zOWFlNjYxNDggMTAwNjQ0CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0v dGhpcmRfcGFydHkvYW5nbGUvc3JjL2xpYkFOR0xFL0NvbnN0YW50cy5oCisrKysgYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYW5nbGUvc3JjL2xpYkFOR0xFL0NvbnN0YW50cy5o CitAQCAtOSw2ICs5LDcgQEAKKyAjaWZuZGVmIExJQkFOR0xFX0NPTlNUQU5UU19IXworICNkZWZp bmUgTElCQU5HTEVfQ09OU1RBTlRTX0hfCisgCisrI2luY2x1ZGUgPGNzdGRkZWY+CisgI2luY2x1 ZGUgImNvbW1vbi9wbGF0Zm9ybS5oIgorIAorICNpbmNsdWRlIDxzdGRpbnQuaD4KK2RpZmYgLS1n aXQgdGhpcmRfcGFydHkvYm9yaW5nc3NsL0JVSUxELmduIHRoaXJkX3BhcnR5L2JvcmluZ3NzbC9C VUlMRC5nbgoraW5kZXggMTdjZjljZGE5Li44Y2U5NmJkMzIgMTAwNjQ0CistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYm9yaW5nc3NsL0JVSUxELmduCisrKysgYS9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYm9yaW5nc3NsL0JVSUxELmduCitAQCAtMTAz LDYgKzEwMywxMyBAQCBpZiAoaXNfd2luICYmICFpc19tc2FuICYmIGN1cnJlbnRfY3B1ICE9ICJh cm02NCIpIHsKKyAgICAgICB9IGVsc2UgeworICAgICAgICAgcHVibGljX2NvbmZpZ3MgPSBbICI6 bm9fYXNtX2NvbmZpZyIgXQorICAgICAgIH0KKysgICAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9 PSAicHBjNjQiKSB7CisrICAgICAgaWYgKGlzX2xpbnV4KSB7CisrICAgICAgICAjIFRPRE86IHBw YzY0IChiZSkgY2hlY2sKKysgICAgICAgIHNvdXJjZXMgKz0gY3J5cHRvX3NvdXJjZXNfbGludXhf cHBjNjRsZQorKyAgICAgIH0gZWxzZSB7CisrICAgICAgICBwdWJsaWNfY29uZmlncyA9IFsgIjpu b19hc21fY29uZmlnIiBdCisrICAgICAgfQorICAgICB9IGVsc2UgeworICAgICAgIHB1YmxpY19j b25maWdzID0gWyAiOm5vX2FzbV9jb25maWciIF0KKyAgICAgfQorZGlmZiAtLWdpdCB0aGlyZF9w YXJ0eS9icmVha3BhZC9CVUlMRC5nbiB0aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlMRC5nbgoraW5k ZXggNGFmM2Q3YmJmLi5hZGJmNTQxNTkgMTAwNjQ0CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvQlVJTEQuZ24KKysrKyBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlMRC5nbgorQEAgLTU5Niw3ICs1OTYsNiBAQCBp ZiAoaXNfbGludXggfHwgaXNfY2hyb21lb3MgfHwgaXNfYW5kcm9pZCkgeworICAgICAgICJicmVh a3BhZC9zcmMvY2xpZW50L21pbmlkdW1wX2ZpbGVfd3JpdGVyLmgiLAorICAgICAgICJicmVha3Bh ZC9zcmMvY29tbW9uL2NvbnZlcnRfVVRGLmNjIiwKKyAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1v bi9jb252ZXJ0X1VURi5oIiwKKy0gICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9icmVh a3BhZF9nZXRjb250ZXh0LlMiLAorICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2Vs Zl9jb3JlX2R1bXAuY2MiLAorICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2VsZl9j b3JlX2R1bXAuaCIsCisgICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmdXRpbHMu Y2MiLAorQEAgLTYzNCw2ICs2MzMsMTQgQEAgaWYgKGlzX2xpbnV4IHx8IGlzX2Nocm9tZW9zIHx8 IGlzX2FuZHJvaWQpIHsKKyAKKyAgICAgbGlicyA9IFsgImRsIiBdCisgCisrICAgIGlmIChjdXJy ZW50X2NwdSA9PSAicHBjNjQiKSB7CisrICAgICAgICBkZWZpbmVzID0gWyAiSEFWRV9HRVRDT05U RVhUIiBdCisrICAgIH0gZWxzZSB7CisrICAgICAgICBzb3VyY2VzICs9IFsKKysgICAgICAgICAg ICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9icmVha3BhZF9nZXRjb250ZXh0LlMiCisrICAg ICAgICBdCisrICAgIH0KKysKKyAgICAgaW5jbHVkZV9kaXJzID0gWworICAgICAgICIuIiwKKyAg ICAgICAiYnJlYWtwYWQvc3JjIiwKK0BAIC02ODIsNyArNjg5LDYgQEAgaWYgKGlzX2xpbnV4IHx8 IGlzX2Nocm9tZW9zIHx8IGlzX2FuZHJvaWQpIHsKKyAgICAgICAiYnJlYWtwYWQvc3JjL2NsaWVu dC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyX3VuaXR0ZXN0LmNjIiwKKyAg ICAgICAiYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBf d3JpdGVyX3VuaXR0ZXN0X3V0aWxzLmNjIiwKKyAgICAgICAiYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9taW5pZHVtcF93cml0ZXIvcHJvY19jcHVpbmZvX3JlYWRlcl91bml0dGVzdC5jYyIsCist ICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvYnJlYWtwYWRfZ2V0Y29udGV4dF91bml0 dGVzdC5jYyIsCisgICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmX2NvcmVfZHVt cF91bml0dGVzdC5jYyIsCisgICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZmlsZV9p ZF91bml0dGVzdC5jYyIsCisgICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbGludXhf bGliY19zdXBwb3J0X3VuaXR0ZXN0LmNjIiwKK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vcmF3X2NvbnRl eHRfY3B1LmggdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9k dW1wX3dyaXRlcl9jb21tb24vcmF3X2NvbnRleHRfY3B1LmgKK2luZGV4IDA3ZDkxNzFhMC4uOWFl ZDRjYjM2IDEwMDY0NAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Jhd19j b250ZXh0X2NwdS5oCisrKysgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vcmF3X2Nv bnRleHRfY3B1LmgKK0BAIC00NCw2ICs0NCw4IEBAIHR5cGVkZWYgTURSYXdDb250ZXh0QVJNIFJh d0NvbnRleHRDUFU7CisgdHlwZWRlZiBNRFJhd0NvbnRleHRBUk02NF9PbGQgUmF3Q29udGV4dENQ VTsKKyAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorIHR5cGVkZWYgTURSYXdDb250ZXh0TUlQUyBS YXdDb250ZXh0Q1BVOworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyt0eXBlZGVmIE1E UmF3Q29udGV4dFBQQzY0IFJhd0NvbnRleHRDUFU7CisgI2Vsc2UKKyAjZXJyb3IgIlRoaXMgY29k ZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0LiIKKyAjZW5kaWYKK2Rp ZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9k dW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MK K2luZGV4IGFhZTFkYzEzYi4uMDNhZmVjN2E1IDEwMDY0NAorLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVt cF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmNjCisrKysgYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dy aXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MKK0BAIC0yNzAsNyArMjcwLDQyIEBAIHZvaWQgVGhy ZWFkSW5mbzo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSogb3V0KSBjb25zdCB7CisgICBv dXQtPmZsb2F0X3NhdmUuZmlyID0gbWNvbnRleHQuZnBjX2VpcjsKKyAjZW5kaWYKKyB9CistI2Vu ZGlmICAvLyBfX21pcHNfXworKworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysKKyt1 aW50cHRyX3QgVGhyZWFkSW5mbzo6R2V0SW5zdHJ1Y3Rpb25Qb2ludGVyKCkgY29uc3QgeworKyAg ICByZXR1cm4gbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdOworK30KKysKKyt2b2lkIFRocmVhZElu Zm86OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUqIG91dCkgY29uc3QgeworKyAgICBvdXQt PmNvbnRleHRfZmxhZ3MgPSBNRF9DT05URVhUX1BQQzY0X0ZVTEw7CisrICAgIGZvciAoaW50IGkg PSAwOyBpIDwgTURfQ09OVEVYVF9QUEM2NF9HUFJfQ09VTlQ7IGkrKykKKysgICAgICAgIG91dC0+ Z3ByW2ldID0gbWNvbnRleHQuZ3BfcmVnc1tpXTsKKysKKysgICAgb3V0LT5sciA9IG1jb250ZXh0 LmdwX3JlZ3NbUFRfTE5LXTsKKysgICAgb3V0LT5zcnIwID0gbWNvbnRleHQuZ3BfcmVnc1tQVF9O SVBdOworKyAgICBvdXQtPnNycjEgPSBtY29udGV4dC5ncF9yZWdzW1BUX01TUl07CisrICAgIG91 dC0+Y3IgPSBtY29udGV4dC5ncF9yZWdzW1BUX0NDUl07CisrICAgIG91dC0+eGVyID0gbWNvbnRl eHQuZ3BfcmVnc1tQVF9YRVJdOworKyAgICBvdXQtPmN0ciA9IG1jb250ZXh0LmdwX3JlZ3NbUFRf Q1RSXTsKKysgICAgCisrICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfRkxPQVRJTkdTQVZFQVJF QV9QUENfRlBSX0NPVU5UOyBpKyspCisrICAgICAgICBvdXQtPmZsb2F0X3NhdmUuZnByZWdzW2ld ID0gbWNvbnRleHQuZnBfcmVnc1tpXTsKKysKKysgICAgb3V0LT5mbG9hdF9zYXZlLmZwc2NyID0g bWNvbnRleHQuZnBfcmVnc1tORlBSRUctMV07CisrCisrICAgIGZvciAoaW50IGkgPSAwOyBpIDwg TURfVkVDVE9SU0FWRUFSRUFfUFBDX1ZSX0NPVU5UOyBpKyspCisrICAgICAgICBvdXQtPnZlY3Rv cl9zYXZlLnNhdmVfdnJbaV0gPSBcCisrICAgICAgICAgICAgeygoKHVpbnQ2NF90KXZyZWdzLnZy cmVnc1tpXVswXSkgPDwgMzIpIAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgfCB2cmVncy52 cnJlZ3NbaV1bMV0sIAorKyAgICAgICAgICAgICgoKHVpbnQ2NF90KXZyZWdzLnZycmVnc1tpXVsy XSkgPDwgMzIpCisrICAgICAgICAgICAgICAgICAgICAgICAgIHwgdnJlZ3MudnJyZWdzW2ldWzNd fTsKKysKKysgICAgb3V0LT52cnNhdmUgPSB2cmVncy52cnNhdmU7CisrICAgIG91dC0+dmVjdG9y X3NhdmUuc2F2ZV92c2NyID0gezAsIHZyZWdzLnZzY3IudnNjcl93b3JkfTsKKysgICAgb3V0LT52 ZWN0b3Jfc2F2ZS5zYXZlX3ZydmFsaWQgPSAweEZGRkZGRkZGOyAKKyt9CisrI2VuZGlmICAvLyBf X3Bvd2VycGM2NF9fCisgCisgdm9pZCBUaHJlYWRJbmZvOjpHZXRHZW5lcmFsUHVycG9zZVJlZ2lz dGVycyh2b2lkKiogZ3BfcmVncywgc2l6ZV90KiBzaXplKSB7CisgICBhc3NlcnQoZ3BfcmVncyB8 fCBzaXplKTsKK0BAIC0yNzksNiArMzE0LDExIEBAIHZvaWQgVGhyZWFkSW5mbzo6R2V0R2VuZXJh bFB1cnBvc2VSZWdpc3RlcnModm9pZCoqIGdwX3JlZ3MsIHNpemVfdCogc2l6ZSkgeworICAgICAq Z3BfcmVncyA9IG1jb250ZXh0LmdyZWdzOworICAgaWYgKHNpemUpCisgICAgICpzaXplID0gc2l6 ZW9mKG1jb250ZXh0LmdyZWdzKTsKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICBp ZiAoZ3BfcmVncykKKysgICAgKmdwX3JlZ3MgPSBtY29udGV4dC5ncF9yZWdzOworKyAgaWYgKHNp emUpCisrICAgICpzaXplID0gc2l6ZW9mKG1jb250ZXh0LmdwX3JlZ3MpOworICNlbHNlCisgICBp ZiAoZ3BfcmVncykKKyAgICAgKmdwX3JlZ3MgPSAmcmVnczsKK0BAIC0yOTQsNiArMzM0LDExIEBA IHZvaWQgVGhyZWFkSW5mbzo6R2V0RmxvYXRpbmdQb2ludFJlZ2lzdGVycyh2b2lkKiogZnBfcmVn cywgc2l6ZV90KiBzaXplKSB7CisgICAgICpmcF9yZWdzID0gJm1jb250ZXh0LmZwcmVnczsKKyAg IGlmIChzaXplKQorICAgICAqc2l6ZSA9IHNpemVvZihtY29udGV4dC5mcHJlZ3MpOworKyNlbGlm IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgIGlmIChmcF9yZWdzKQorKyAgICAqZnBfcmVncyA9 ICZtY29udGV4dC5mcF9yZWdzOworKyAgaWYgKHNpemUpCisrICAgICpzaXplID0gc2l6ZW9mKG1j b250ZXh0LmZwX3JlZ3MpOworICNlbHNlCisgICBpZiAoZnBfcmVncykKKyAgICAgKmZwX3JlZ3Mg PSAmZnByZWdzOworQEAgLTMwMiw0ICszNDcsMTMgQEAgdm9pZCBUaHJlYWRJbmZvOjpHZXRGbG9h dGluZ1BvaW50UmVnaXN0ZXJzKHZvaWQqKiBmcF9yZWdzLCBzaXplX3QqIHNpemUpIHsKKyAjZW5k aWYKKyB9CisgCisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyt2b2lkIFRocmVhZEluZm86 OkdldFZlY3RvclJlZ2lzdGVycyh2b2lkKiogdl9yZWdzLCBzaXplX3QqIHNpemUpIHsKKysgICAg aWYgKHZfcmVncykKKysgICAgICAgICp2X3JlZ3MgPSAmdnJlZ3M7CisrICAgIGlmIChzaXplKQor KyAgICAgICAgKnNpemUgPSBzaXplb2YodnJlZ3MpOworK30KKysjZW5kaWYKKysKKyB9ICAvLyBu YW1lc3BhY2UgZ29vZ2xlX2JyZWFrcGFkCitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZv LmggdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dy aXRlcl9jb21tb24vdGhyZWFkX2luZm8uaAoraW5kZXggZmIyMTZmYTZkLi41OTNhYWM4MjIgMTAw NjQ0CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uaAor KysrIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmgKK0BAIC02 OCw2ICs2OCwxMCBAQCBzdHJ1Y3QgVGhyZWFkSW5mbyB7CisgICAvLyBVc2UgdGhlIHN0cnVjdHVy ZXMgZGVmaW5lZCBpbiA8c3lzL3VzZXIuaD4KKyAgIHN0cnVjdCB1c2VyX3JlZ3Nfc3RydWN0IHJl Z3M7CisgICBzdHJ1Y3QgdXNlcl9mcHNpbWRfc3RydWN0IGZwcmVnczsKKysjZWxpZiBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCisrICAvLyBVc2UgdGhlIHN0cnVjdHVyZXMgZGVmaW5lZCBpbiA8c3lz L3Vjb250ZXh0Lmg+LgorKyAgbWNvbnRleHRfdCBtY29udGV4dDsKKysgIHZycmVnc2V0X3QgdnJl Z3M7CisgI2VsaWYgZGVmaW5lZChfX21pcHNfXykKKyAgIC8vIFVzZSB0aGUgc3RydWN0dXJlIGRl ZmluZWQgaW4gPHN5cy91Y29udGV4dC5oPi4KKyAgIG1jb250ZXh0X3QgbWNvbnRleHQ7CitAQCAt ODQsNiArODgsMTEgQEAgc3RydWN0IFRocmVhZEluZm8geworIAorICAgLy8gUmV0dXJucyB0aGUg cG9pbnRlciBhbmQgc2l6ZSBvZiBmbG9hdCBwb2ludCByZWdpc3RlciBhcmVhLgorICAgdm9pZCBH ZXRGbG9hdGluZ1BvaW50UmVnaXN0ZXJzKHZvaWQqKiBmcF9yZWdzLCBzaXplX3QqIHNpemUpOwor KworKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAvLyBSZXR1cm5zIHRoZSBwb2ludGVy IGFuZCBzaXplIG9mIHRoZSB2ZWN0b3IgcmVnaXN0ZXIgYXJlYS4gKFBQQzY0IG9ubHkpCisrICB2 b2lkIEdldFZlY3RvclJlZ2lzdGVycyh2b2lkKiogdl9yZWdzLCBzaXplX3QqIHNpemUpOworKyNl bmRpZgorIH07CisgCisgfSAgLy8gbmFtZXNwYWNlIGdvb2dsZV9icmVha3BhZAorZGlmZiAtLWdp dCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3Jp dGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNj CitpbmRleCA2ZWVjMWJlMjQuLjc0MTk4M2ExYSAxMDA2NDQKKy0tLSBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1 bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuY2MKKysrKyBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1 bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuY2MKK0BAIC0yNTQsNiArMjU0LDQ4IEBA IHZvaWQgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUqIG91dCwg Y29uc3QgdWNvbnRleHRfdCogdWMpIHsKKyAgIG91dC0+ZmxvYXRfc2F2ZS5maXIgPSB1Yy0+dWNf bWNvbnRleHQuZnBjX2VpcjsgIC8vIFVudXNlZC4KKyAjZW5kaWYKKyB9CisrCisrI2VsaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQorKworK3VpbnRwdHJfdCBVQ29udGV4dFJlYWRlcjo6R2V0U3Rh Y2tQb2ludGVyKGNvbnN0IHVjb250ZXh0X3QqIHVjKSB7CisrICAgIHJldHVybiB1Yy0+dWNfbWNv bnRleHQuZ3BfcmVnc1tNRF9DT05URVhUX1BQQzY0X1JFR19TUF07CisrfQorKworK3VpbnRwdHJf dCBVQ29udGV4dFJlYWRlcjo6R2V0SW5zdHJ1Y3Rpb25Qb2ludGVyKGNvbnN0IHVjb250ZXh0X3Qq IHVjKSB7CisrICAgIHJldHVybiB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdOworK30K KysKKyt2b2lkIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVKiBv dXQsIGNvbnN0IHVjb250ZXh0X3QqIHVjLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IHZycmVnc2V0X3QqIHZyZWdzKSB7CisrICAgIG91dC0+Y29udGV4dF9mbGFn cyA9IE1EX0NPTlRFWFRfUFBDNjRfRlVMTDsKKysKKysgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBN RF9DT05URVhUX1BQQzY0X0dQUl9DT1VOVDsgaSsrKQorKyAgICAgICAgb3V0LT5ncHJbaV0gPSB1 Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tpXTsKKysKKysgICAgb3V0LT5sciA9IHVjLT51Y19tY29u dGV4dC5ncF9yZWdzW1BUX0xOS107ICAgIAorKyAgICBvdXQtPnNycjAgPSB1Yy0+dWNfbWNvbnRl eHQuZ3BfcmVnc1tQVF9OSVBdOworKyAgICBvdXQtPnNycjEgPSB1Yy0+dWNfbWNvbnRleHQuZ3Bf cmVnc1tQVF9NU1JdOworKyAgICBvdXQtPmNyID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRf Q0NSXTsKKysgICAgb3V0LT54ZXIgPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9YRVJdOwor KyAgICBvdXQtPmN0ciA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0NUUl07CisrICAgIAor KyAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0ZMT0FUSU5HU0FWRUFSRUFfUFBDX0ZQUl9DT1VO VDsgaSsrKQorKyAgICAgICAgb3V0LT5mbG9hdF9zYXZlLmZwcmVnc1tpXSA9IHVjLT51Y19tY29u dGV4dC5mcF9yZWdzW2ldOworKworKyAgICBvdXQtPmZsb2F0X3NhdmUuZnBzY3IgPSB1Yy0+dWNf bWNvbnRleHQuZnBfcmVnc1tORlBSRUctMV07CisrCisrICAgIGZvciAoaW50IGkgPSAwOyBpIDwg TURfVkVDVE9SU0FWRUFSRUFfUFBDX1ZSX0NPVU5UOyBpKyspCisrICAgICAgICBvdXQtPnZlY3Rv cl9zYXZlLnNhdmVfdnJbaV0gPQorKyAgICAgICAgICAgIHsoKCh1aW50NjRfdCl2cmVncy0+dnJy ZWdzW2ldWzBdKSA8PCAzMikgCisrICAgICAgICAgICAgICAgICAgICAgICAgIHwgdnJlZ3MtPnZy cmVnc1tpXVsxXSwgCisrICAgICAgICAgICAgICgoKHVpbnQ2NF90KXZyZWdzLT52cnJlZ3NbaV1b Ml0pIDw8IDMyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICB8IHZyZWdzLT52cnJlZ3NbaV1b M119OworKworKyAgICBvdXQtPnZyc2F2ZSA9IHZyZWdzLT52cnNhdmU7CisrICAgIG91dC0+dmVj dG9yX3NhdmUuc2F2ZV92c2NyID0gezAsIHZyZWdzLT52c2NyLnZzY3Jfd29yZH07CisrICAgIG91 dC0+dmVjdG9yX3NhdmUuc2F2ZV92cnZhbGlkID0gMHhGRkZGRkZGRjsgCisrfQorKworICNlbmRp ZgorIAorIH0gIC8vIG5hbWVzcGFjZSBnb29nbGVfYnJlYWtwYWQKK2RpZmYgLS1naXQgdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21t b24vdWNvbnRleHRfcmVhZGVyLmggdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmgKK2luZGV4IDdk NDEwMDg4MS4uYzEyMmFjOTJlIDEwMDY0NAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJf Y29tbW9uL3Vjb250ZXh0X3JlYWRlci5oCisrKysgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9j b21tb24vdWNvbnRleHRfcmVhZGVyLmgKK0BAIC01NSw2ICs1NSw5IEBAIHN0cnVjdCBVQ29udGV4 dFJlYWRlciB7CisgI2VsaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKKyAgIHN0YXRpYyB2b2lkIEZp bGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUqIG91dCwgY29uc3QgdWNvbnRleHRfdCogdWMsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZnBzaW1kX2NvbnRleHQq IGZwcmVncyk7CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgc3RhdGljIHZvaWQg RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSAqb3V0LCBjb25zdCB1Y29udGV4dF90ICp1YywK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZycmVnc2V0X3QqIHZyZWdzKTsK KyAjZWxzZQorICAgc3RhdGljIHZvaWQgRmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSogb3V0 LCBjb25zdCB1Y29udGV4dF90KiB1Yyk7CisgI2VuZGlmCitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFu ZGxlci5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hh bmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKK2luZGV4IGE2Y2I1Zjk4NC4uYWUxNmI2NGQ5IDEw MDY0NAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYworKysr IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYworQEAgLTQ2MSw5ICs0 NjEsMTYgQEAgYm9vbCBFeGNlcHRpb25IYW5kbGVyOjpIYW5kbGVTaWduYWwoaW50IC8qc2lnKi8s IHNpZ2luZm9fdCogaW5mbywgdm9pZCogdWMpIHsKKyAgICAgbWVtY3B5KCZnX2NyYXNoX2NvbnRl eHRfLmZsb2F0X3N0YXRlLCBmcF9wdHIsCisgICAgICAgICAgICBzaXplb2YoZ19jcmFzaF9jb250 ZXh0Xy5mbG9hdF9zdGF0ZSkpOworICAgfQorKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykK KysgIC8vIE9uIFBQQzY0LCB3ZSBtdXN0IGNvcHkgVlIgc3RhdGUKKysgIHVjb250ZXh0X3QqIHVj X3B0ciA9ICh1Y29udGV4dF90Kil1YzsKKysgIGlmICh1Y19wdHItPnVjX21jb250ZXh0LnZfcmVn cykgeworKyAgICBtZW1jcHkoJmdfY3Jhc2hfY29udGV4dF8udmVjdG9yX3N0YXRlLCB1Y19wdHIt PnVjX21jb250ZXh0LnZfcmVncywKKysgICAgICAgICAgIHNpemVvZihnX2NyYXNoX2NvbnRleHRf LnZlY3Rvcl9zdGF0ZSkpOworKyAgfQorICNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYg IWRlZmluZWQoX19taXBzX18pCisgICAvLyBGUCBzdGF0ZSBpcyBub3QgcGFydCBvZiB1c2VyIEFC SSBvbiBBUk0gTGludXguCistICAvLyBJbiBjYXNlIG9mIE1JUFMgTGludXggRlAgc3RhdGUgaXMg YWxyZWFkeSBwYXJ0IG9mIHVjb250ZXh0X3QKKysgIC8vIEluIGNhc2Ugb2YgTUlQUywgTGludXgg RlAgc3RhdGUgaXMgYWxyZWFkeSBwYXJ0IG9mIHVjb250ZXh0X3QKKyAgIC8vIGFuZCAnZmxvYXRf c3RhdGUnIGlzIG5vdCBhIG1lbWJlciBvZiBDcmFzaENvbnRleHQuCisgICB1Y29udGV4dF90KiB1 Y19wdHIgPSAodWNvbnRleHRfdCopdWM7CisgICBpZiAodWNfcHRyLT51Y19tY29udGV4dC5mcHJl Z3MpIHsKK0BAIC03MDgsMTEgKzcxNSwxOSBAQCBib29sIEV4Y2VwdGlvbkhhbmRsZXI6OldyaXRl TWluaWR1bXAoKSB7CisgICB9CisgI2VuZGlmCisgCistI2lmICFkZWZpbmVkKF9fQVJNX0VBQklf XykgJiYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorKyNpZiAh ZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5l ZChfX21pcHNfXykgXAorKyAgICAmJiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgLy8gRlBV IHN0YXRlIGlzIG5vdCBwYXJ0IG9mIEFSTSBFQUJJIHVjb250ZXh0X3QuCisgICBtZW1jcHkoJmNv bnRleHQuZmxvYXRfc3RhdGUsIGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC5mcHJlZ3MsCisg ICAgICAgICAgc2l6ZW9mKGNvbnRleHQuZmxvYXRfc3RhdGUpKTsKKyAjZW5kaWYKKysKKysjaWYg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgLy8gVmVjdG9yIHJlZ2lzdGVycyBtdXN0IGJlIGNv cGllZCBvbiBQUEM2NAorKyAgbWVtY3B5KCZjb250ZXh0LnZlY3Rvcl9zdGF0ZSwgY29udGV4dC5j b250ZXh0LnVjX21jb250ZXh0LnZfcmVncywKKysgICAgICAgICBzaXplb2YoY29udGV4dC52ZWN0 b3Jfc3RhdGUpKTsKKysjZW5kaWYKKysKKyAgIGNvbnRleHQudGlkID0gc3lzX2dldHRpZCgpOwor IAorICAgLy8gQWRkIGFuIGV4Y2VwdGlvbiBzdHJlYW0gdG8gdGhlIG1pbmlkdW1wIGZvciBiZXR0 ZXIgcmVwb3J0aW5nLgorQEAgLTczMyw2ICs3NDgsOSBAQCBib29sIEV4Y2VwdGlvbkhhbmRsZXI6 OldyaXRlTWluaWR1bXAoKSB7CisgI2VsaWYgZGVmaW5lZChfX21pcHNfXykKKyAgIGNvbnRleHQu c2lnaW5mby5zaV9hZGRyID0KKyAgICAgICByZWludGVycHJldF9jYXN0PHZvaWQqPihjb250ZXh0 LmNvbnRleHQudWNfbWNvbnRleHQucGMpOworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykK KysgIGNvbnRleHQuc2lnaW5mby5zaV9hZGRyID0KKysgICAgICByZWludGVycHJldF9jYXN0PHZv aWQqPihjb250ZXh0LmNvbnRleHQudWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdKTsKKyAjZWxz ZQorICNlcnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9y bSB5ZXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuaCB0aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hh bmRsZXIuaAoraW5kZXggZjgwODQzZWE3Li4yNjBkZDEwZjcgMTAwNjQ0CistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmgKKysrKyBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRs ZXIvZXhjZXB0aW9uX2hhbmRsZXIuaAorQEAgLTE5Miw3ICsxOTIsMTEgQEAgY2xhc3MgRXhjZXB0 aW9uSGFuZGxlciB7CisgICAgIHNpZ2luZm9fdCBzaWdpbmZvOworICAgICBwaWRfdCB0aWQ7ICAv LyB0aGUgY3Jhc2hpbmcgdGhyZWFkLgorICAgICB1Y29udGV4dF90IGNvbnRleHQ7CistI2lmICFk ZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQo X19wb3dlcnBjNjRfXykKKysgICAgLy8gUFBDNjQncyBGUCBzdGF0ZSBpcyBhIHBhcnQgb2YgdWNv bnRleHRfdCBsaWtlIE1JUFMgYnV0IHRoZSB2ZWN0b3IKKysgICAgLy8gc3RhdGUgaXMgbm90LCBz byBhIHN0cnVjdCBpcyBuZWVkZWQuCisrICAgIHZzdGF0ZV90IHZlY3Rvcl9zdGF0ZTsKKysjZWxp ZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorICAgICAvLyAj aWZkZWYgdGhpcyBvdXQgYmVjYXVzZSBGUCBzdGF0ZSBpcyBub3QgcGFydCBvZiB1c2VyIEFCSSBm b3IgTGludXggQVJNLgorICAgICAvLyBJbiBjYXNlIG9mIE1JUFMgTGludXggRlAgc3RhdGUgaXMg YWxyZWFkeSBwYXJ0IG9mIHVjb250ZXh0X3Qgc28KKyAgICAgLy8gJ2Zsb2F0X3N0YXRlJyBpcyBu b3QgcmVxdWlyZWQuCitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlcl91bml0dGVzdC5jYyB0aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0 aW9uX2hhbmRsZXJfdW5pdHRlc3QuY2MKK2luZGV4IDM1ZGNiZmQ0ZC4uNzkzNDM3MGZkIDEwMDY0 NAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlcl91bml0dGVzdC5j YworKysrIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlcl91bml0dGVzdC5j YworQEAgLTMwNyw3ICszMDcsNyBAQCBURVNUKEV4Y2VwdGlvbkhhbmRsZXJUZXN0LCBQYXJhbGxl bENoaWxkQ3Jhc2hlc0RvbnRIYW5nKSB7CisgICB9CisgCisgICAvLyBXYWl0IGEgd2hpbGUgdW50 aWwgdGhlIGNoaWxkIHNob3VsZCBoYXZlIGNyYXNoZWQuCistICB1c2xlZXAoMTAwMDAwMCk7Cisr ICB1c2xlZXAoMjAwMDAwMCk7CisgICAvLyBLaWxsIHRoZSBjaGlsZCBpZiBpdCBpcyBzdGlsbCBy dW5uaW5nLgorICAga2lsbChjaGlsZCwgU0lHS0lMTCk7CisgCitAQCAtNTU5LDYgKzU1OSw4IEBA IGNvbnN0IHVuc2lnbmVkIGNoYXIga0lsbGVnYWxJbnN0cnVjdGlvbltdID0geworICNpZiBkZWZp bmVkKF9fbWlwc19fKQorICAgLy8gbWZjMiB6ZXJvLEltcGwgLSB1c3VhbGx5IGlsbGVnYWwgaW4g dXNlcnNwYWNlLgorICAgMHg0OCwgMHgwMCwgMHgwMCwgMHg0OAorKyNlbGlmIGRlZmluZWQoX19w b3dlcnBjNjRfXykKKysgIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDEgLy8gQ3Jhc2hlcyBvbiBhIHRl c3RlZCBQT1dFUjkgY3B1CisgI2Vsc2UKKyAgIC8vIFRoaXMgY3Jhc2hlcyB3aXRoIFNJR0lMTCBv biB4ODYveDg2LTY0L2FybS4KKyAgIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYKK0BAIC03NTQsMTAg Kzc1NiwxMCBAQCBURVNUKEV4Y2VwdGlvbkhhbmRsZXJUZXN0LCBJbnN0cnVjdGlvblBvaW50ZXJN ZW1vcnlNYXhCb3VuZCkgeworIAorICAgLy8gVGhlc2UgYXJlIGRlZmluZWQgaGVyZSBzbyB0aGUg cGFyZW50IGNhbiB1c2UgdGhlbSB0byBjaGVjayB0aGUKKyAgIC8vIGRhdGEgZnJvbSB0aGUgbWlu aWR1bXAgYWZ0ZXJ3YXJkcy4KKy0gIC8vIFVzZSA0ayBoZXJlIGJlY2F1c2UgdGhlIE9TIHdpbGwg aGFuZCBvdXQgYSBzaW5nbGUgcGFnZSBldmVuCisrICAvLyBVc2UgdGhlIHBhZ2Ugc2l6ZSBoZXJl IGJlY2F1c2UgdGhlIE9TIHdpbGwgaGFuZCBvdXQgYSBzaW5nbGUgcGFnZSBldmVuCisgICAvLyBp ZiBhIHNtYWxsZXIgc2l6ZSBpcyByZXF1ZXN0ZWQsIGFuZCB0aGlzIHRlc3Qgd2FudHMgdG8KKyAg IC8vIHRlc3QgdGhlIHVwcGVyIGJvdW5kIG9mIHRoZSBtZW1vcnkgcmFuZ2UuCistICBjb25zdCB1 aW50MzJfdCBrTWVtb3J5U2l6ZSA9IDQwOTY7ICAvLyBieXRlcworKyAgY29uc3QgdWludDMyX3Qg a01lbW9yeVNpemUgPSBnZXRwYWdlc2l6ZSgpOyAgLy8gYnl0ZXMKKyAgIGNvbnN0IGludCBrT2Zm c2V0ID0ga01lbW9yeVNpemUgLSBzaXplb2Yoa0lsbGVnYWxJbnN0cnVjdGlvbik7CisgCisgICBj b25zdCBwaWRfdCBjaGlsZCA9IGZvcmsoKTsKK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1bXBfd3JpdGVyL21pY3JvZHVtcF93 cml0ZXIuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9t aWNyb2R1bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXIuY2MKK2luZGV4IGZhM2MxNzEzYS4uNmNl NzA5ZTJmIDEwMDY0NAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRlci9taWNyb2R1 bXBfd3JpdGVyLmNjCisrKysgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1bXBfd3JpdGVyL21pY3JvZHVt cF93cml0ZXIuY2MKK0BAIC0xMzgsNyArMTM4LDkgQEAgY2xhc3MgTWljcm9kdW1wV3JpdGVyIHsK KyAgICAgICAgICAgICAgICAgICBjb25zdCBNaWNyb2R1bXBFeHRyYUluZm8mIG1pY3JvZHVtcF9l eHRyYV9pbmZvLAorICAgICAgICAgICAgICAgICAgIExpbnV4RHVtcGVyKiBkdW1wZXIpCisgICAg ICAgOiB1Y29udGV4dF8oY29udGV4dCA/ICZjb250ZXh0LT5jb250ZXh0IDogTlVMTCksCistI2lm ICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKKysgICAgICAgIHZlY3Rvcl9zdGF0ZV8oY29udGV4dCA/ICZjb250 ZXh0LT52ZWN0b3Jfc3RhdGUgOiBOVUxMKSwKKysjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18p ICYmICFkZWZpbmVkKF9fbWlwc19fKQorICAgICAgICAgZmxvYXRfc3RhdGVfKGNvbnRleHQgPyAm Y29udGV4dC0+ZmxvYXRfc3RhdGUgOiBOVUxMKSwKKyAjZW5kaWYKKyAgICAgICAgIGR1bXBlcl8o ZHVtcGVyKSwKK0BAIC0zMzcsNiArMzM5LDggQEAgY2xhc3MgTWljcm9kdW1wV3JpdGVyIHsKKyAj IGVsc2UKKyAjICBlcnJvciAiVGhpcyBtaXBzIEFCSSBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRl ZCAobjMyKSIKKyAjZW5kaWYKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAgIGNv bnN0IGNoYXIga0FyY2hbXSA9ICJwcGM2NCI7CisgI2Vsc2UKKyAjZXJyb3IgIlRoaXMgY29kZSBo YXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0IgorICNlbmRpZgorQEAgLTQw OSw3ICs0MTMsOSBAQCBjbGFzcyBNaWNyb2R1bXBXcml0ZXIgeworICAgdm9pZCBEdW1wQ1BVU3Rh dGUoKSB7CisgICAgIFJhd0NvbnRleHRDUFUgY3B1OworICAgICBteV9tZW1zZXQoJmNwdSwgMCwg c2l6ZW9mKFJhd0NvbnRleHRDUFUpKTsKKy0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAh ZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICBVQ29u dGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoJmNwdSwgdWNvbnRleHRfLCB2ZWN0b3Jfc3RhdGVf KTsKKysjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQor ICAgICBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoJmNwdSwgdWNvbnRleHRfLCBmbG9h dF9zdGF0ZV8pOworICNlbHNlCisgICAgIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dCgm Y3B1LCB1Y29udGV4dF8pOworQEAgLTYwNSw3ICs2MTEsOSBAQCBjbGFzcyBNaWNyb2R1bXBXcml0 ZXIgeworICAgdm9pZCogQWxsb2ModW5zaWduZWQgYnl0ZXMpIHsgcmV0dXJuIGR1bXBlcl8tPmFs bG9jYXRvcigpLT5BbGxvYyhieXRlcyk7IH0KKyAKKyAgIGNvbnN0IHVjb250ZXh0X3QqIGNvbnN0 IHVjb250ZXh0XzsKKy0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21p cHNfXykKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgY29uc3QgZ29vZ2xlX2JyZWFr cGFkOjp2c3RhdGVfdCogY29uc3QgdmVjdG9yX3N0YXRlXzsKKysjZWxpZiAhZGVmaW5lZChfX0FS TV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorICAgY29uc3QgZ29vZ2xlX2JyZWFrcGFk OjpmcHN0YXRlX3QqIGNvbnN0IGZsb2F0X3N0YXRlXzsKKyAjZW5kaWYKKyAgIExpbnV4RHVtcGVy KiBkdW1wZXJfOworZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlcl91bml0dGVzdC5j YyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVt cF93cml0ZXIvbWljcm9kdW1wX3dyaXRlcl91bml0dGVzdC5jYworaW5kZXggNjMzOWFjMGNkLi4y OTFhZjEwNmIgMTAwNjQ0CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1bXBfd3JpdGVyL21pY3Jv ZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MKKysrKyBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0 ZXIvbWljcm9kdW1wX3dyaXRlcl91bml0dGVzdC5jYworQEAgLTI3OSwxMCArMjc5LDE5IEBAIFRF U1QoTWljcm9kdW1wV3JpdGVyVGVzdCwgQmFzaWNXaXRoTWFwcGluZ3MpIHsKKyAgIENyYXNoQW5k R2V0TWljcm9kdW1wKG1hcHBpbmdzLCBNaWNyb2R1bXBFeHRyYUluZm8oKSwgJmJ1Zik7CisgICBB U1NFUlRfVFJVRShDb250YWluc01pY3JvZHVtcChidWYpKTsKKyAKKysgIGludCBwYWdlX3NpemUg PSBnZXRwYWdlc2l6ZSgpOworICNpZmRlZiBfX0xQNjRfXworLSAgQVNTRVJUX05FKHN0ZDo6c3Ry aW5nOjpucG9zLAorLSAgICAgICAgICAgIGJ1Zi5maW5kKCJNIDAwMDAwMDAwMDAwMDEwMDAgMDAw MDAwMDAwMDAwMDAyQSAwMDAwMDAwMDAwMDAxMDAwICIKKy0gICAgICAgICAgICAgICAgICAgICAi MzMyMjExMDA1NTQ0Nzc2Njg4OTlBQUJCQ0NEREVFRkYwIGxpYmZvby5zbyIpKTsKKysgIC8vIFRo aXMgdGVzdCBpcyBvbmx5IGF2YWlsYWJsZSBmb3IgdGhlIGZvbGxvd2luZyBwYWdlIHNpemVzCisr ICBBU1NFUlRfVFJVRSgocGFnZV9zaXplID09IDQwOTYpIHx8IChwYWdlX3NpemUgPT0gNjU1MzYp KTsKKysgIGlmIChwYWdlX3NpemUgPT0gNDA5NikgeyAKKysgICAgQVNTRVJUX05FKHN0ZDo6c3Ry aW5nOjpucG9zLAorKyAgICAgICAgICAgICAgYnVmLmZpbmQoIk0gMDAwMDAwMDAwMDAwMTAwMCAw MDAwMDAwMDAwMDAwMDJBIDAwMDAwMDAwMDAwMDEwMDAgIgorKyAgICAgICAgICAgICAgICAgICAg ICAgIjMzMjIxMTAwNTU0NDc3NjY4ODk5QUFCQkNDRERFRUZGMCBsaWJmb28uc28iKSk7CisrICB9 IGVsc2UgeworKyAgICBBU1NFUlRfTkUoc3RkOjpzdHJpbmc6Om5wb3MsCisrICAgICAgICAgICAg ICBidWYuZmluZCgiTSAwMDAwMDAwMDAwMDEwMDAwIDAwMDAwMDAwMDAwMDAwMkEgMDAwMDAwMDAw MDAxMDAwMCAiCisrICAgICAgICAgICAgICAgICAgICAgICAiMzMyMjExMDA1NTQ0Nzc2Njg4OTlB QUJCQ0NEREVFRkYwIGxpYmZvby5zbyIpKTsKKysgIH0KKyAjZWxzZQorICAgQVNTRVJUX05FKHN0 ZDo6c3RyaW5nOjpucG9zLAorICAgICAgICAgICAgIGJ1Zi5maW5kKCJNIDAwMDAxMDAwIDAwMDAw MDJBIDAwMDAxMDAwICIKK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfY29yZV9kdW1wZXIuY2MgdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0 ZXIvbGludXhfY29yZV9kdW1wZXIuY2MKK2luZGV4IDQxNTA2ODk4My4uYjkzZTRhZmNmIDEwMDY0 NAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2NvcmVfZHVtcGVyLmNj CisrKysgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfY29yZV9kdW1wZXIuY2MK K0BAIC0xMTIsNiArMTEyLDkgQEAgYm9vbCBMaW51eENvcmVEdW1wZXI6OkdldFRocmVhZEluZm9C eUluZGV4KHNpemVfdCBpbmRleCwgVGhyZWFkSW5mbyogaW5mbykgeworICNlbGlmIGRlZmluZWQo X19taXBzX18pCisgICBzdGFja19wb2ludGVyID0KKyAgICAgICByZWludGVycHJldF9jYXN0PHVp bnQ4X3QqPihpbmZvLT5tY29udGV4dC5ncmVnc1tNRF9DT05URVhUX01JUFNfUkVHX1NQXSk7Cisr I2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgc3RhY2tfcG9pbnRlciA9CisrICAgICAg cmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oaW5mby0+bWNvbnRleHQuZ3BfcmVnc1tNRF9DT05U RVhUX1BQQzY0X1JFR19TUF0pOworICNlbHNlCisgI2Vycm9yICJUaGlzIGNvZGUgaGFzbid0IGJl ZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0LiIKKyAjZW5kaWYKK0BAIC0xOTcsNyArMjAw LDEwIEBAIGJvb2wgTGludXhDb3JlRHVtcGVyOjpFbnVtZXJhdGVUaHJlYWRzKCkgeworICAgICAg ICAgbWVtc2V0KCZpbmZvLCAwLCBzaXplb2YoVGhyZWFkSW5mbykpOworICAgICAgICAgaW5mby50 Z2lkID0gc3RhdHVzLT5wcl9wZ3JwOworICAgICAgICAgaW5mby5wcGlkID0gc3RhdHVzLT5wcl9w cGlkOworLSNpZiBkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisrICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDMxOyBpKyspCisrICAgICAgICAgICAgaW5m by5tY29udGV4dC5ncF9yZWdzW2ldID0gc3RhdHVzLT5wcl9yZWdbaV07CisrI2VsaWYgZGVmaW5l ZChfX21pcHNfXykKKyAjaWYgZGVmaW5lZChfX0FORFJPSURfXykKKyAgICAgICAgIGZvciAoaW50 IGkgPSBFRl9SMDsgaSA8PSBFRl9SMzE7IGkrKykKKyAgICAgICAgICAgaW5mby5tY29udGV4dC5n cmVnc1tpIC0gRUZfUjBdID0gc3RhdHVzLT5wcl9yZWdbaV07CitkaWZmIC0tZ2l0IHRoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xp bnV4X2R1bXBlci5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIuY2MKK2luZGV4IDdmZDY1MzJhZC4uMTk5 Y2JmZmZkIDEwMDY0NAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1 bXBlci5jYworKysrIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5j YworQEAgLTc2NSw3ICs3NjUsOSBAQCBib29sIExpbnV4RHVtcGVyOjpHZXRTdGFja0luZm8oY29u c3Qgdm9pZCoqIHN0YWNrLCBzaXplX3QqIHN0YWNrX2xlbiwKKyAgICAgICByZWludGVycHJldF9j YXN0PHVpbnQ4X3QqPihpbnRfc3RhY2tfcG9pbnRlciAmIH4ocGFnZV9zaXplIC0gMSkpOworIAor ICAgLy8gVGhlIG51bWJlciBvZiBieXRlcyBvZiBzdGFjayB3aGljaCB3ZSB0cnkgdG8gY2FwdHVy ZS4KKy0gIHN0YXRpYyBjb25zdCBwdHJkaWZmX3Qga1N0YWNrVG9DYXB0dXJlID0gMzIgKiAxMDI0 OworKyAgLy8gVGhpcyBub3cgZGVwZW5kcyBvbiBwYWdlX3NpemUgdG8gYXZvaWQgbWlzc2luZyBk YXRhCisrICAvLyBvbiBzeXN0ZW1zIHdpdGggbGFyZ2VyIHBhZ2Ugc2l6ZXMuCisrICBzdGF0aWMg Y29uc3QgcHRyZGlmZl90IGtTdGFja1RvQ2FwdHVyZSA9IDggKiBwYWdlX3NpemU7CisgCisgICBj b25zdCBNYXBwaW5nSW5mbyogbWFwcGluZyA9IEZpbmRNYXBwaW5nKHN0YWNrX3BvaW50ZXIpOwor ICAgaWYgKCFtYXBwaW5nKQorZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIuaCB0aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9s aW51eF9kdW1wZXIuaAoraW5kZXggN2JlZTE2MGYxLi4wN2JiMmI4MWEgMTAwNjQ0CistLS0gYS9z cmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmgKKysrKyBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIuaAorQEAgLTYzLDcgKzYzLDggQEAgbmFt ZXNwYWNlIGdvb2dsZV9icmVha3BhZCB7CisgIChkZWZpbmVkKF9fbWlwc19fKSAmJiBfTUlQU19T SU0gPT0gX0FCSU8zMikKKyB0eXBlZGVmIEVsZjMyX2F1eHZfdCBlbGZfYXV4X2VudHJ5OworICNl bGlmIGRlZmluZWQoX194ODZfNjQpIHx8IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IFwKKy0gICAg IChkZWZpbmVkKF9fbWlwc19fKSAmJiBfTUlQU19TSU0gIT0gX0FCSU8zMikKKysgICAgIChkZWZp bmVkKF9fbWlwc19fKSAmJiBfTUlQU19TSU0gIT0gX0FCSU8zMikgfHwgXAorKyAgICAgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQorIHR5cGVkZWYgRWxmNjRfYXV4dl90IGVsZl9hdXhfZW50cnk7Cisg I2VuZGlmCisgCitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlcl91bml0dGVzdF9oZWxwZXIu Y2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVt cF93cml0ZXIvbGludXhfZHVtcGVyX3VuaXR0ZXN0X2hlbHBlci5jYworaW5kZXggMzMxZjRiYjM0 Li4zZjcyMjk0N2YgMTAwNjQ0CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGlu dXhfZHVtcGVyX3VuaXR0ZXN0X2hlbHBlci5jYworKysrIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBf d3JpdGVyL2xpbnV4X2R1bXBlcl91bml0dGVzdF9oZWxwZXIuY2MKK0BAIC01MSw2ICs1MSw4IEBA CisgI2RlZmluZSBUSURfUFRSX1JFR0lTVEVSICJyY3giCisgI2VsaWYgZGVmaW5lZChfX21pcHNf XykKKyAjZGVmaW5lIFRJRF9QVFJfUkVHSVNURVIgIiQxIgorKyNlbGlmIGRlZmluZWQoX19wb3dl cnBjNjRfXykKKysjZGVmaW5lIFRJRF9QVFJfUkVHSVNURVIgInI4IgorICNlbHNlCisgI2Vycm9y IFRoaXMgdGVzdCBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHRoaXMgcGxhdGZvcm0uCisgI2VuZGlm CitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGlu dXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXIuY2MgdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRy YWNlX2R1bXBlci5jYworaW5kZXggZTNkZGI4MWE2Li5mYTI4NTc1ZWYgMTAwNjQ0CistLS0gYS9z cmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlci5jYworKysrIGEv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXIuY2MKK0BAIC0x NDksMTkgKzE0OSwyNyBAQCBib29sIExpbnV4UHRyYWNlRHVtcGVyOjpDb3B5RnJvbVByb2Nlc3Mo dm9pZCogZGVzdCwgcGlkX3QgY2hpbGQsCisgICByZXR1cm4gdHJ1ZTsKKyB9CisgCistYm9vbCBM aW51eFB0cmFjZUR1bXBlcjo6UmVhZFJlZ2lzdGVyU2V0KFRocmVhZEluZm8qIGluZm8sIHBpZF90 IHRpZCkKKy17CisrYm9vbCBMaW51eFB0cmFjZUR1bXBlcjo6UmVhZFJlZ2lzdGVyU2V0KFRocmVh ZEluZm8qIGluZm8sIHBpZF90IHRpZCkgeworICNpZmRlZiBQVFJBQ0VfR0VUUkVHU0VUCisgICBz dHJ1Y3QgaW92ZWMgaW87CisgICBpbmZvLT5HZXRHZW5lcmFsUHVycG9zZVJlZ2lzdGVycygmaW8u aW92X2Jhc2UsICZpby5pb3ZfbGVuKTsKKy0gIGlmIChzeXNfcHRyYWNlKFBUUkFDRV9HRVRSRUdT RVQsIHRpZCwgKHZvaWQqKU5UX1BSU1RBVFVTLCAodm9pZCopJmlvKSA9PSAtMSkgeworKyAgaWYg KHB0cmFjZShQVFJBQ0VfR0VUUkVHU0VULCB0aWQsICh2b2lkKilOVF9QUlNUQVRVUywgKHZvaWQq KSZpbykgPT0gLTEpIHsKKyAgICAgcmV0dXJuIGZhbHNlOworICAgfQorIAorICAgaW5mby0+R2V0 RmxvYXRpbmdQb2ludFJlZ2lzdGVycygmaW8uaW92X2Jhc2UsICZpby5pb3ZfbGVuKTsKKy0gIGlm IChzeXNfcHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgKHZvaWQqKU5UX0ZQUkVHU0VULCAo dm9pZCopJmlvKSA9PSAtMSkgeworKyAgaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHU0VULCB0aWQs ICh2b2lkKilOVF9GUFJFR1NFVCwgKHZvaWQqKSZpbykgPT0gLTEpIHsKKyAgICAgcmV0dXJuIGZh bHNlOworICAgfQorKworKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAvLyBHcmFiIHRo ZSB2ZWN0b3IgcmVnaXN0ZXJzIG9uIFBQQzY0IHRvbworKyAgaW5mby0+R2V0VmVjdG9yUmVnaXN0 ZXJzKCZpby5pb3ZfYmFzZSwgJmlvLmlvdl9sZW4pOworKyAgaWYgKHB0cmFjZShQVFJBQ0VfR0VU UkVHU0VULCB0aWQsICh2b2lkKilOVF9QUENfVk1YLCAodm9pZCopJmlvKSA9PSAtMSkgeworKyAg ICByZXR1cm4gZmFsc2U7CisrICB9CisrI2VuZGlmIC8vIGRlZmluZWQoX19wb3dlcnBjNjRfXykK KysKKyAgIHJldHVybiB0cnVlOworICNlbHNlCisgICByZXR1cm4gZmFsc2U7CitAQCAtMjk4LDYg KzMwNiw5IEBAIGJvb2wgTGludXhQdHJhY2VEdW1wZXI6OkdldFRocmVhZEluZm9CeUluZGV4KHNp emVfdCBpbmRleCwgVGhyZWFkSW5mbyogaW5mbykgeworICNlbGlmIGRlZmluZWQoX19taXBzX18p CisgICBzdGFja19wb2ludGVyID0KKyAgICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihp bmZvLT5tY29udGV4dC5ncmVnc1tNRF9DT05URVhUX01JUFNfUkVHX1NQXSk7CisrI2VsaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQorKyAgc3RhY2tfcG9pbnRlciA9CisrICAgICAgcmVpbnRlcnBy ZXRfY2FzdDx1aW50OF90Kj4oaW5mby0+bWNvbnRleHQuZ3BfcmVnc1tNRF9DT05URVhUX1BQQzY0 X1JFR19TUF0pOworICNlbHNlCisgI2Vycm9yICJUaGlzIGNvZGUgaGFzbid0IGJlZW4gcG9ydGVk IHRvIHlvdXIgcGxhdGZvcm0geWV0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhf cHRyYWNlX2R1bXBlcl91bml0dGVzdC5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyX3VuaXR0 ZXN0LmNjCitpbmRleCBkYTcxZTE1ZGMuLjEyYmZiMzE3YSAxMDA2NDQKKy0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyX3VuaXR0ZXN0LmNjCisrKysg YS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlcl91bml0dGVz dC5jYworQEAgLTQ2Miw2ICs0NjIsOSBAQCBURVNUKExpbnV4UHRyYWNlRHVtcGVyVGVzdCwgVmVy aWZ5U3RhY2tSZWFkV2l0aE11bHRpcGxlVGhyZWFkcykgeworICNlbGlmIGRlZmluZWQoX19taXBz X18pCisgICAgIHBpZF90KiBwcm9jZXNzX3RpZF9sb2NhdGlvbiA9CisgICAgICAgICByZWludGVy cHJldF9jYXN0PHBpZF90Kj4ob25lX3RocmVhZC5tY29udGV4dC5ncmVnc1sxXSk7CisrI2VsaWYg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICBwaWRfdCogcHJvY2Vzc190aWRfbG9jYXRpb24g PQorKyAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxwaWRfdCo+KG9uZV90aHJlYWQubWNvbnRleHQu Z3BfcmVnc1s4XSk7CisgI2Vsc2UKKyAjZXJyb3IgVGhpcyB0ZXN0IGhhcyBub3QgYmVlbiBwb3J0 ZWQgdG8gdGhpcyBwbGF0Zm9ybS4KKyAjZW5kaWYKK0BAIC01NTksNiArNTYyLDggQEAgVEVTVF9G KExpbnV4UHRyYWNlRHVtcGVyVGVzdCwgU2FuaXRpemVTdGFja0NvcHkpIHsKKyAgIHVpbnRwdHJf dCBoZWFwX2FkZHIgPSB0aHJlYWRfaW5mby5yZWdzLnJjeDsKKyAjZWxpZiBkZWZpbmVkKF9fbWlw c19fKQorICAgdWludHB0cl90IGhlYXBfYWRkciA9IHRocmVhZF9pbmZvLm1jb250ZXh0LmdyZWdz WzFdOworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgIHVpbnRwdHJfdCBoZWFwX2Fk ZHIgPSB0aHJlYWRfaW5mby5tY29udGV4dC5ncF9yZWdzWzhdOworICNlbHNlCisgI2Vycm9yIFRo aXMgdGVzdCBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHRoaXMgcGxhdGZvcm0uCisgI2VuZGlmCitk aWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgv bWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIu Y2MKK2luZGV4IDMyNjM0ZWYwMC4uMmE1Njk0OGRlIDEwMDY0NAorLS0tIGEvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgv bWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5jYworKysrIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWlu aWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5jYworQEAgLTEzNiw3ICsxMzYsOSBAQCBjbGFz cyBNaW5pZHVtcFdyaXRlciB7CisgICAgICAgOiBmZF8obWluaWR1bXBfZmQpLAorICAgICAgICAg cGF0aF8obWluaWR1bXBfcGF0aCksCisgICAgICAgICB1Y29udGV4dF8oY29udGV4dCA/ICZjb250 ZXh0LT5jb250ZXh0IDogTlVMTCksCistI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRl ZmluZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgICAgICAgIHZl Y3Rvcl9zdGF0ZV8oY29udGV4dCA/ICZjb250ZXh0LT52ZWN0b3Jfc3RhdGUgOiBOVUxMKSwKKysj ZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorICAgICAg ICAgZmxvYXRfc3RhdGVfKGNvbnRleHQgPyAmY29udGV4dC0+ZmxvYXRfc3RhdGUgOiBOVUxMKSwK KyAjZW5kaWYKKyAgICAgICAgIGR1bXBlcl8oZHVtcGVyKSwKK0BAIC00NjgsNyArNDcwLDkgQEAg Y2xhc3MgTWluaWR1bXBXcml0ZXIgeworICAgICAgICAgaWYgKCFjcHUuQWxsb2NhdGUoKSkKKyAg ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgbXlfbWVtc2V0KGNwdS5nZXQoKSwgMCwg c2l6ZW9mKFJhd0NvbnRleHRDUFUpKTsKKy0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAh ZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICAgICAg VUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KGNwdS5nZXQoKSwgdWNvbnRleHRfLCB2ZWN0 b3Jfc3RhdGVfKTsKKysjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9f bWlwc19fKQorICAgICAgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KGNwdS5nZXQo KSwgdWNvbnRleHRfLCBmbG9hdF9zdGF0ZV8pOworICNlbHNlCisgICAgICAgICBVQ29udGV4dFJl YWRlcjo6RmlsbENQVUNvbnRleHQoY3B1LmdldCgpLCB1Y29udGV4dF8pOworQEAgLTg5Nyw3ICs5 MDEsNyBAQCBjbGFzcyBNaW5pZHVtcFdyaXRlciB7CisgICAgIGRpcmVudC0+bG9jYXRpb24ucnZh ID0gMDsKKyAgIH0KKyAKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82 NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZp bmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IGRlZmluZWQoX19wb3dlcnBj NjRfXykKKyAgIGJvb2wgV3JpdGVDUFVJbmZvcm1hdGlvbihNRFJhd1N5c3RlbUluZm8qIHN5c19p bmZvKSB7CisgICAgIGNoYXIgdmVuZG9yX2lkW3NpemVvZihzeXNfaW5mby0+Y3B1Lng4Nl9jcHVf aW5mby52ZW5kb3JfaWQpICsgMV0gPSB7MH07CisgICAgIHN0YXRpYyBjb25zdCBjaGFyIHZlbmRv cl9pZF9uYW1lW10gPSAidmVuZG9yX2lkIjsKK0BAIC05MTcsNyArOTIxLDkgQEAgY2xhc3MgTWlu aWR1bXBXcml0ZXIgeworIAorICAgICAvLyBwcm9jZXNzb3JfYXJjaGl0ZWN0dXJlIHNob3VsZCBh bHdheXMgYmUgc2V0LCBkbyB0aGlzIGZpcnN0CisgICAgIHN5c19pbmZvLT5wcm9jZXNzb3JfYXJj aGl0ZWN0dXJlID0KKy0jaWYgZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQorKyAgICAgICAgTURfQ1BVX0FSQ0hJVEVDVFVSRV9QUEM2NDsKKysjZWxpZiBkZWZp bmVkKF9fbWlwc19fKQorICMgaWYgX01JUFNfU0lNID09IF9BQklPMzIKKyAgICAgICAgIE1EX0NQ VV9BUkNISVRFQ1RVUkVfTUlQUzsKKyAjIGVsaWYgX01JUFNfU0lNID09IF9BQkk2NAorQEAgLTEz MzMsNyArMTMzOSw5IEBAIGNsYXNzIE1pbmlkdW1wV3JpdGVyIHsKKyAgIGNvbnN0IGNoYXIqIHBh dGhfOyAgLy8gUGF0aCB0byB0aGUgZmlsZSB3aGVyZSB0aGUgbWluaWR1bSBzaG91bGQgYmUgd3Jp dHRlbi4KKyAKKyAgIGNvbnN0IHVjb250ZXh0X3QqIGNvbnN0IHVjb250ZXh0XzsgIC8vIGFsc28g ZnJvbSB0aGUgc2lnbmFsIGhhbmRsZXIKKy0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAh ZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgY29uc3Qg Z29vZ2xlX2JyZWFrcGFkOjp2c3RhdGVfdCogY29uc3QgdmVjdG9yX3N0YXRlXzsKKysjZWxpZiAh ZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorICAgY29uc3QgZ29v Z2xlX2JyZWFrcGFkOjpmcHN0YXRlX3QqIGNvbnN0IGZsb2F0X3N0YXRlXzsgIC8vIGRpdHRvCisg I2VuZGlmCisgICBMaW51eER1bXBlciogZHVtcGVyXzsKK2RpZmYgLS1naXQgdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1 bXBfd3JpdGVyLmggdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmgKK2luZGV4IGUzYjBiMTZkYS4uY2Nk OGFhMGE0IDEwMDY0NAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1w X3dyaXRlci5oCisrKysgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3Jp dGVyLmgKK0BAIC00OCw2ICs0OCw4IEBAIGNsYXNzIEV4Y2VwdGlvbkhhbmRsZXI7CisgCisgI2lm IGRlZmluZWQoX19hYXJjaDY0X18pCisgdHlwZWRlZiBzdHJ1Y3QgZnBzaW1kX2NvbnRleHQgZnBz dGF0ZV90OworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyt0eXBlZGVmIHZycmVnc2V0 X3QgdnN0YXRlX3Q7CisgI2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChf X21pcHNfXykKKyB0eXBlZGVmIHN0ZDo6cmVtb3ZlX3BvaW50ZXI8ZnByZWdzZXRfdD46OnR5cGUg ZnBzdGF0ZV90OworICNlbmRpZgorZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXJfdW5p dHRlc3QuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9t aW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyX3VuaXR0ZXN0LmNjCitpbmRleCBkMTkyZTVj YmIuLmZjMWJmYThkNyAxMDA2NDQKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9t aW5pZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MKKysrKyBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dy aXRlci9taW5pZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MKK0BAIC03MTUsNiArNzE1LDkgQEAgVEVT VChNaW5pZHVtcFdyaXRlclRlc3QsIEludmFsaWRTdGFja1BvaW50ZXIpIHsKKyAjZWxpZiBkZWZp bmVkKF9fbWlwc19fKQorICAgY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0LmdyZWdzW01EX0NP TlRFWFRfTUlQU19SRUdfU1BdID0KKyAgICAgICBpbnZhbGlkX3N0YWNrX3BvaW50ZXI7CisrI2Vs aWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0 LmdwX3JlZ3NbTURfQ09OVEVYVF9QUEM2NF9SRUdfU1BdID0KKysgICAgICBpbnZhbGlkX3N0YWNr X3BvaW50ZXI7CisgI2Vsc2UKKyAjIGVycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRl ZCB0byB5b3VyIHBsYXRmb3JtIHlldC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlLmNj IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21h cHBlZF9maWxlLmNjCitpbmRleCA5OTM2Mjk0NWMuLmM1NGJhNzE0NSAxMDA2NDQKKy0tLSBhL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29t bW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZS5jYworKysrIGEvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5 X21hcHBlZF9maWxlLmNjCitAQCAtNjUsOCArNjUsNyBAQCBib29sIE1lbW9yeU1hcHBlZEZpbGU6 Ok1hcChjb25zdCBjaGFyKiBwYXRoLCBzaXplX3Qgb2Zmc2V0KSB7CisgICB9CisgCisgI2lmIGRl ZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgXAorLSAgIChkZWZp bmVkKF9fbWlwc19fKSAmJiBfTUlQU19TSU0gPT0gX0FCSTY0KQorLQorKyAgIChkZWZpbmVkKF9f bWlwc19fKSAmJiBfTUlQU19TSU0gPT0gX0FCSTY0KSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisgICBzdHJ1Y3Qga2VybmVsX3N0YXQgc3Q7CisgICBpZiAoc3lzX2ZzdGF0KGZkLCAmc3QpID09 IC0xIHx8IHN0LnN0X3NpemUgPCAwKSB7CisgI2Vsc2UKK2RpZmYgLS1naXQgdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGVfdW5p dHRlc3QuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9t ZW1vcnlfbWFwcGVkX2ZpbGVfdW5pdHRlc3QuY2MKK2luZGV4IGZhZDU5ZjQwYy4uNjE2NDk2ZDY3 IDEwMDY0NAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlX3VuaXR0ZXN0LmNj CisrKysgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGVfdW5pdHRlc3QuY2MKK0BAIC0x NzYsOSArMTc2LDEwIEBAIFRFU1RfRihNZW1vcnlNYXBwZWRGaWxlVGVzdCwgUmVtYXBBZnRlck1h cCkgeworIFRFU1RfRihNZW1vcnlNYXBwZWRGaWxlVGVzdCwgTWFwV2l0aE9mZnNldCkgeworICAg Ly8gUHV0IG1vcmUgZGF0YSBpbiB0aGUgdGVzdCBmaWxlIHRoaXMgdGltZS4gT2Zmc2V0cyBjYW4g b25seSBiZQorICAgLy8gZG9uZSBvbiBwYWdlIGJvdW5kYXJpZXMsIHNvIHdlIG5lZWQgYSB0d28g cGFnZSBmaWxlIHRvIHRlc3QgdGhpcy4KKy0gIGNvbnN0IGludCBwYWdlX3NpemUgPSA0MDk2Owor LSAgY2hhciBkYXRhMVsyICogcGFnZV9zaXplXTsKKy0gIHNpemVfdCBkYXRhMV9zaXplID0gc2l6 ZW9mKGRhdGExKTsKKysgIGNvbnN0IGludCBwYWdlX3NpemUgPSBnZXRwYWdlc2l6ZSgpOworKyAg Y2hhciAqZGF0YTEgPSBzdGF0aWNfY2FzdDxjaGFyKj4obWFsbG9jKDIgKiBwYWdlX3NpemUpKTsK KysgIEVYUEVDVF9UUlVFKGRhdGExICE9IE5VTEwpOworKyAgc2l6ZV90IGRhdGExX3NpemUgPSAo MiAqIHBhZ2Vfc2l6ZSk7CisgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGRhdGExX3NpemU7ICsr aSkgeworICAgICBkYXRhMVtpXSA9IGkgJiAweDdmOworICAgfQorZGlmZiAtLWdpdCB0aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL21lbW9yeV9hbGxvY2F0b3JfdW5pdHRl c3QuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9tZW1vcnlfYWxs b2NhdG9yX3VuaXR0ZXN0LmNjCitpbmRleCA1ODAzYjkwZDUuLjJhMWNmMTRmMCAxMDA2NDQKKy0t LSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY29tbW9uL21lbW9yeV9hbGxvY2F0b3JfdW5pdHRlc3QuY2MKKysrKyBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9jdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9tZW1v cnlfYWxsb2NhdG9yX3VuaXR0ZXN0LmNjCitAQCAtNTcsOCArNTcsOSBAQCBURVNUKFBhZ2VBbGxv Y2F0b3JUZXN0LCBMYXJnZU9iamVjdCkgeworIAorICAgRVhQRUNUX0VRKDBVLCBhbGxvY2F0b3Iu cGFnZXNfYWxsb2NhdGVkKCkpOworICAgdWludDhfdCogcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWlu dDhfdCo+KGFsbG9jYXRvci5BbGxvYygxMDAwMCkpOworKyAgdWludDY0X3QgZXhwZWN0ZWRfcGFn ZXMgPSAxICsgKCgxMDAwMCAtIDEpIC8gZ2V0cGFnZXNpemUoKSk7CisgICBBU1NFUlRfRkFMU0Uo cCA9PSBOVUxMKTsKKy0gIEVYUEVDVF9FUSgzVSwgYWxsb2NhdG9yLnBhZ2VzX2FsbG9jYXRlZCgp KTsKKysgIEVYUEVDVF9FUShleHBlY3RlZF9wYWdlcywgYWxsb2NhdG9yLnBhZ2VzX2FsbG9jYXRl ZCgpKTsKKyAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCAxMDsgKytpKSB7CisgICAgIHVpbnQ4 X3QqIHAgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihhbGxvY2F0b3IuQWxsb2MoaSkpOwor ICAgICBBU1NFUlRfRkFMU0UocCA9PSBOVUxMKTsKK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV9saW51eC5jYyB0aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4cGxvaXRhYmlsaXR5X2xp bnV4LmNjCitpbmRleCA3OTgwNTZkZmEuLjIyYmQ4MWZmZiAxMDA2NDQKKy0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29y L2V4cGxvaXRhYmlsaXR5X2xpbnV4LmNjCisrKysgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV9s aW51eC5jYworQEAgLTIwMiwxMiArMjAyLDE0IEBAIGJvb2wgRXhwbG9pdGFiaWxpdHlMaW51eDo6 RW5kZWRPbklsbGVnYWxXcml0ZSh1aW50NjRfdCBpbnN0cnVjdGlvbl9wdHIpIHsKKyAgIC8vIENo ZWNrIGFyY2hpdGVjdHVyZSBhbmQgc2V0IGFyY2hpdGVjdHVyZSB2YXJpYWJsZSB0byBjb3JyZXNw b25kaW5nIGZsYWcKKyAgIC8vIGluIG9iamR1bXAuCisgICBzd2l0Y2ggKGNvbnRleHQtPkdldENv bnRleHRDUFUoKSkgeworKyNpZiBkZWZpbmVkKF9faTM4NikgfHwgZGVmaW5lZChfX3g4Nl82NCkK KyAgICAgY2FzZSBNRF9DT05URVhUX1g4NjoKKyAgICAgICBhcmNoaXRlY3R1cmUgPSAiaTM4NiI7 CisgICAgICAgYnJlYWs7CisgICAgIGNhc2UgTURfQ09OVEVYVF9BTUQ2NDoKKyAgICAgICBhcmNo aXRlY3R1cmUgPSAiaTM4Njp4ODYtNjQiOworICAgICAgIGJyZWFrOworKyNlbmRpZgorICAgICBk ZWZhdWx0OgorICAgICAgIC8vIFVuc3VwcG9ydGVkIGFyY2hpdGVjdHVyZS4gTm90ZSB0aGF0IEFS TSBhcmNoaXRlY3R1cmVzIGFyZSBub3QKKyAgICAgICAvLyBzdXBwb3J0ZWQgYmVjYXVzZSBvYmpk dW1wIGRvZXMgbm90IHN1cHBvcnQgQVJNLgorZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4cGxvaXRhYmlsaXR5X3VuaXR0ZXN0LmNjIHRoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNzb3IvZXhwbG9pdGFiaWxpdHlfdW5p dHRlc3QuY2MKK2luZGV4IDUyOGVlNWYyMS4uNzI3NjRkNmMxIDEwMDY0NAorLS0tIGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNz b3IvZXhwbG9pdGFiaWxpdHlfdW5pdHRlc3QuY2MKKysrKyBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4cGxvaXRhYmls aXR5X3VuaXR0ZXN0LmNjCitAQCAtMTA0LDYgKzEwNCw4IEBAIEV4cGxvaXRhYmlsaXR5Rm9yKGNv bnN0IHN0cmluZyYgZmlsZW5hbWUpIHsKKyB9CisgCisgVEVTVChFeHBsb2l0YWJpbGl0eVRlc3Qs IFRlc3RXaW5kb3dzRW5naW5lKSB7CisrLy8gVGhlIGZvbGxvd2luZyB0ZXN0cyBhcmUgb25seSBl eGVjdXRhYmxlIG9uIGFuIHg4Ni1jbGFzcyBsaW51eCBtYWNoaW5lLgorKyNpZiAhZGVmaW5lZChf V0lOMzIpICYmIChkZWZpbmVkKF9faTM4NikgfHwgZGVmaW5lZChfX3g4Nl82NCkpCisgICBBU1NF UlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9ISUdILAorICAgICAgICAgICAg IEV4cGxvaXRhYmlsaXR5Rm9yKCJhc2NpaV9yZWFkX2F2LmRtcCIpKTsKKyAgIEFTU0VSVF9FUShn b29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0hJR0gsCitAQCAtMTM2LDkgKzEzOCwxMiBA QCBURVNUKEV4cGxvaXRhYmlsaXR5VGVzdCwgVGVzdFdpbmRvd3NFbmdpbmUpIHsKKyAgICAgICAg ICAgICBFeHBsb2l0YWJpbGl0eUZvcigicmVhZF9hdl9jbG9iYmVyX3dyaXRlLmRtcCIpKTsKKyAg IEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0xPVywKKyAgICAgICAg ICAgICBFeHBsb2l0YWJpbGl0eUZvcigicmVhZF9hdl9jb25kaXRpb25hbC5kbXAiKSk7CisrI2Vu ZGlmCisgfQorIAorIFRFU1QoRXhwbG9pdGFiaWxpdHlUZXN0LCBUZXN0TGludXhFbmdpbmUpIHsK KysvLyBUaGUgZm9sbG93aW5nIHRlc3RzIGFyZSBvbmx5IGV4ZWN1dGFibGUgb24gYW4geDg2LWNs YXNzIGxpbnV4IG1hY2hpbmUuCisrI2lmIGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9feDg2 XzY0KQorICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSU5URVJF U1RJTkcsCisgICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4X251bGxfcmVhZF9h di5kbXAiKSk7CisgICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9I SUdILAorQEAgLTE3MSw3ICsxNzYsOCBAQCBURVNUKEV4cGxvaXRhYmlsaXR5VGVzdCwgVGVzdExp bnV4RW5naW5lKSB7CisgICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4X2V4ZWN1 dGFibGVfaGVhcC5kbXAiKSk7CisgICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lU QUJJTElUWV9ISUdILAorICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF9qbXBf dG9fbW9kdWxlX25vdF9leGVfcmVnaW9uLmRtcCIpKTsKKy0jaWZuZGVmIF9XSU4zMgorKyNlbmRp ZgorKyNpZiAhZGVmaW5lZChfV0lOMzIpICYmIChkZWZpbmVkKF9faTM4NikgfHwgZGVmaW5lZChf X3g4Nl82NCkpCisgICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9I SUdILAorICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF93cml0ZV90b19ub253 cml0YWJsZV9tb2R1bGUuZG1wIikpOworICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQ TE9JVEFCSUxJVFlfSElHSCwKK0BAIC0xODIsMTAgKzE4OCwxMCBAQCBURVNUKEV4cGxvaXRhYmls aXR5VGVzdCwgVGVzdExpbnV4RW5naW5lKSB7CisgICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlG b3IoImxpbnV4X3dyaXRlX3RvX291dHNpZGVfbW9kdWxlX3ZpYV9tYXRoLmRtcCIpKTsKKyAgIEFT U0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0lOVEVSRVNUSU5HLAorICAg ICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF93cml0ZV90b191bmRlcl80ay5kbXAi KSk7CistI2VuZGlmICAvLyBfV0lOMzIKKysjZW5kaWYgIC8vICFkZWZpbmVkKF9XSU4zMikgJiYg KCFkZWZpbmVkKF9faTM4NikgJiYgIWRlZmluZWQoX194ODZfNjQpKQorIH0KKyAKKy0jaWZuZGVm IF9XSU4zMgorKyNpZiAhZGVmaW5lZChfV0lOMzIpICYmIChkZWZpbmVkKF9faTM4NikgfHwgZGVm aW5lZChfX3g4Nl82NCkpCisgVEVTVChFeHBsb2l0YWJpbGl0eUxpbnV4VXRpbHNUZXN0LCBEaXNh c3NlbWJsZUJ5dGVzVGVzdCkgeworICAgQVNTRVJUX0ZBTFNFKEV4cGxvaXRhYmlsaXR5TGludXhU ZXN0OjpEaXNhc3NlbWJsZUJ5dGVzKCIiLCBOVUxMLCA1LCBOVUxMKSk7CisgICB1aW50OF90IGJ5 dGVzWzZdID0gezB4YzcsIDB4MCwgMHg1LCAweDAsIDB4MCwgMHgwfTsKK0BAIC0zMDEsNiArMzA3 LDcgQEAgVEVTVChFeHBsb2l0YWJpbGl0eUxpbnV4VXRpbHNUZXN0LCBDYWxjdWxhdGVBZGRyZXNz VGVzdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJndyaXRlX2FkZHJlc3MpKTsKKyB9CistI2VuZGlmICAvLyBf V0lOMzIKKysjZW5kaWYgIC8vICFkZWZpbmVkKF9XSU4zMikgJiYgKGRlZmluZWQoX19pMzg2KSB8 fCBkZWZpbmVkKF9feDg2XzY0KSkKKysKKyAKKyB9ICAvLyBuYW1lc3BhY2UKK2RpZmYgLS1naXQg dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Rvb2xzL2xpbnV4L21kMmNvcmUvbWlu aWR1bXAtMi1jb3JlLmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy90b29scy9s aW51eC9tZDJjb3JlL21pbmlkdW1wLTItY29yZS5jYworaW5kZXggYWFkZTgyYzk5Li4xOTVhYTcz ZjMgMTAwNjQ0CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL3Rvb2xzL2xpbnV4L21kMmNvcmUvbWluaWR1bXAtMi1jb3JlLmNjCisr KysgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL3Rvb2xzL2xpbnV4L21kMmNvcmUvbWluaWR1bXAtMi1jb3JlLmNjCitAQCAtNzcsNiArNzcs OCBAQAorICAgI2RlZmluZSBFTEZfQVJDSCAgRU1fTUlQUworICNlbGlmIGRlZmluZWQoX19hYXJj aDY0X18pCisgICAjZGVmaW5lIEVMRl9BUkNIICBFTV9BQVJDSDY0CisrI2VsaWYgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQorKyAgI2RlZmluZSBFTEZfQVJDSCAgRU1fUFBDNjQKKyAjZW5kaWYKKyAK KyAjaWYgZGVmaW5lZChfX2FybV9fKQorQEAgLTg3LDYgKzg5LDggQEAgdHlwZWRlZiB1c2VyX3Jl Z3MgdXNlcl9yZWdzX3N0cnVjdDsKKyAjZWxpZiBkZWZpbmVkIChfX21pcHNfXykKKyAvLyBUaGlz IGZpbGUtbG9jYWwgdHlwZWRlZiBzaW1wbGlmaWVzIHRoZSBzb3VyY2UgY29kZS4KKyB0eXBlZGVm IGdyZWdzZXRfdCB1c2VyX3JlZ3Nfc3RydWN0OworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRf XykKKyt0eXBlZGVmIHN0cnVjdCBwdF9yZWdzIHVzZXJfcmVnc19zdHJ1Y3Q7CisgI2VuZGlmCisg CisgdXNpbmcgZ29vZ2xlX2JyZWFrcGFkOjpNRFR5cGVIZWxwZXI7CitAQCAtMzIxLDYgKzMyNSw5 IEBAIHN0cnVjdCBDcmFzaGVkUHJvY2VzcyB7CisgI2VuZGlmCisgI2lmIGRlZmluZWQoX19hYXJj aDY0X18pCisgICAgIHVzZXJfZnBzaW1kX3N0cnVjdCBmcHJlZ3M7CisrI2VuZGlmCisrI2lmIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKKysgICAgbWNvbnRleHRfdCBtY29udGV4dDsKKyAjZW5kaWYK KyAgICAgdWludHB0cl90IHN0YWNrX2FkZHI7CisgICAgIGNvbnN0IHVpbnQ4X3QqIHN0YWNrOwor QEAgLTUzNSw2ICs1NDIsMzggQEAgUGFyc2VUaHJlYWRSZWdpc3RlcnMoQ3Jhc2hlZFByb2Nlc3M6 OlRocmVhZCogdGhyZWFkLAorICAgdGhyZWFkLT5tY29udGV4dC5mcGNfZWlyID0gcmF3cmVncy0+ ZmxvYXRfc2F2ZS5maXI7CisgI2VuZGlmCisgfQorKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRf XykKKytzdGF0aWMgdm9pZAorK1BhcnNlVGhyZWFkUmVnaXN0ZXJzKENyYXNoZWRQcm9jZXNzOjpU aHJlYWQqIHRocmVhZCwKKysgICAgICAgICAgICAgICAgICAgICBjb25zdCBNaW5pZHVtcE1lbW9y eVJhbmdlJiByYW5nZSkgeworKyAgY29uc3QgTURSYXdDb250ZXh0UFBDNjQqIHJhd3JlZ3MgPSBy YW5nZS5HZXREYXRhPE1EUmF3Q29udGV4dFBQQzY0PigwKTsKKysKKysgIGZvciAoaW50IGkgPSAw OyBpIDwgTURfQ09OVEVYVF9QUEM2NF9HUFJfQ09VTlQ7IGkrKykKKysgICAgdGhyZWFkLT5tY29u dGV4dC5ncF9yZWdzW2ldID0gcmF3cmVncy0+Z3ByW2ldOworKworKyAgdGhyZWFkLT5tY29udGV4 dC5ncF9yZWdzW1BUX0xOS10gPSByYXdyZWdzLT5scjsKKysgIHRocmVhZC0+bWNvbnRleHQuZ3Bf cmVnc1tQVF9OSVBdID0gcmF3cmVncy0+c3JyMDsKKysgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVn c1tQVF9NU1JdID0gcmF3cmVncy0+c3JyMTsKKysgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQ VF9DQ1JdID0gcmF3cmVncy0+Y3I7CisrICB0aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfWEVS XSA9IHJhd3JlZ3MtPnhlcjsKKysgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQVF9DVFJdID0g cmF3cmVncy0+Y3RyOworKyAgdGhyZWFkLT5tY29udGV4dC52X3JlZ3MtPnZyc2F2ZSA9IHJhd3Jl Z3MtPnZyc2F2ZTsKKysKKysgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfRkxPQVRJTkdTQVZFQVJF QV9QUENfRlBSX0NPVU5UOyBpKyspCisrICAgICAgdGhyZWFkLT5tY29udGV4dC5mcF9yZWdzW2ld ID0gcmF3cmVncy0+ZmxvYXRfc2F2ZS5mcHJlZ3NbaV07CisrCisrICB0aHJlYWQtPm1jb250ZXh0 LmZwX3JlZ3NbTkZQUkVHLTFdID0gcmF3cmVncy0+ZmxvYXRfc2F2ZS5mcHNjcjsKKysKKysgIGZv ciAoaW50IGkgPSAwOyBpIDwgTURfVkVDVE9SU0FWRUFSRUFfUFBDX1ZSX0NPVU5UOyBpKyspIHsK KysgICAgICB0aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+dnJyZWdzW2ldWzBdID0gcmF3cmVncy0+ dmVjdG9yX3NhdmUuc2F2ZV92cltpXS5oaWdoID4+IDMyOworKyAgICAgIHRocmVhZC0+bWNvbnRl eHQudl9yZWdzLT52cnJlZ3NbaV1bMV0gPSByYXdyZWdzLT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ld LmhpZ2g7CisrICAgICAgdGhyZWFkLT5tY29udGV4dC52X3JlZ3MtPnZycmVnc1tpXVsyXSA9IHJh d3JlZ3MtPnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0ubG93ID4+IDMyOworKyAgICAgIHRocmVhZC0+ bWNvbnRleHQudl9yZWdzLT52cnJlZ3NbaV1bM10gPSByYXdyZWdzLT52ZWN0b3Jfc2F2ZS5zYXZl X3ZyW2ldLmxvdzsKKysgIH0KKysKKysgIHRocmVhZC0+bWNvbnRleHQudl9yZWdzLT52c2NyLnZz Y3Jfd29yZCA9IHJhd3JlZ3MtPnZlY3Rvcl9zYXZlLnNhdmVfdnNjci5sb3cgJiAweEZGRkZGRkZG OworK30KKysKKyAjZWxzZQorICNlcnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQg dG8geW91ciBwbGF0Zm9ybSB5ZXQiCisgI2VuZGlmCitAQCAtNjIzLDYgKzY2MiwxMiBAQCBQYXJz ZVN5c3RlbUluZm8oY29uc3QgT3B0aW9ucyYgb3B0aW9ucywgQ3Jhc2hlZFByb2Nlc3MqIGNyYXNo aW5mbywKKyAjIGVsc2UKKyAjICBlcnJvciAiVGhpcyBtaXBzIEFCSSBpcyBjdXJyZW50bHkgbm90 IHN1cHBvcnRlZCAobjMyKSIKKyAjIGVuZGlmCisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQorKyAgaWYgKHN5c2luZm8tPnByb2Nlc3Nvcl9hcmNoaXRlY3R1cmUgIT0gTURfQ1BVX0FSQ0hJ VEVDVFVSRV9QUEM2NCkgeworKyAgICBmcHJpbnRmKHN0ZGVyciwKKysgICAgICAgICAgICAiVGhp cyB2ZXJzaW9uIG9mIG1pbmlkdW1wLTItY29yZSBvbmx5IHN1cHBvcnRzIFBQQzY0LlxuIik7Cisr ICAgIGV4aXQoMSk7CisrICB9CisgI2Vsc2UKKyAjZXJyb3IgIlRoaXMgY29kZSBoYXMgbm90IGJl ZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0IgorICNlbmRpZgorZGlmZiAtLWdpdCB0aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9DT05UUklCVVRPUlMgdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvQ09OVFJJQlVUT1JTCitpbmRleCA4NzI0YjdmMzIuLjhlMjk0MjRlZiAxMDA2 NDQKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC9DT05UUklCVVRPUlMKKysrKyBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9DT05UUklCVVRPUlMKK0BAIC0xMywzICsxMyw0IEBAIE1hcmsg TWVudG92YWkgPG1hcmtAY2hyb21pdW0ub3JnPgorIFJvYmVydCBTZXNlayA8cnNlc2VrQGNocm9t aXVtLm9yZz4KKyBTY290dCBHcmFoYW0gPHNjb3R0bWdAY2hyb21pdW0ub3JnPgorIEpvc2h1YSBQ ZXJhemEgPGpwZXJhemFAY2hyb21pdW0ub3JnPgorK1NoYXduIEFuYXN0YXNpbyA8c2hhd25AYW5h c3Rhcy5pbz4KK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvY29tcGF0 L2xpbnV4L3N5cy91c2VyLmggdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvY29tcGF0L2xp bnV4L3N5cy91c2VyLmgKK2luZGV4IDZlZDc3YTk4ZS4uMWZkODM0NjlhIDEwMDY0NAorLS0tIGEv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL2NvbXBh dC9saW51eC9zeXMvdXNlci5oCisrKysgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvY29tcGF0L2xpbnV4L3N5cy91c2VyLmgKK0BAIC0xNSw2ICsx NSw3IEBACisgI2lmbmRlZiBDUkFTSFBBRF9DT01QQVRfTElOVVhfU1lTX1VTRVJfSF8KKyAjZGVm aW5lIENSQVNIUEFEX0NPTVBBVF9MSU5VWF9TWVNfVVNFUl9IXworIAorKyNpbmNsdWRlIDxjc3Rk ZGVmPgorICNpbmNsdWRlX25leHQgPHN5cy91c2VyLmg+CisgCisgI2luY2x1ZGUgPGZlYXR1cmVz Lmg+CitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21p bmlkdW1wX2NvbnRleHQuaCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9t aW5pZHVtcF9jb250ZXh0LmgKK2luZGV4IDNhM2U2MDNjYi4uMzExOGQ5ZTlmIDEwMDY0NAorLS0t IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21p bmlkdW1wL21pbmlkdW1wX2NvbnRleHQuaAorKysrIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHQuaAor QEAgLTU5Miw2ICs1OTIsNzAgQEAgc3RydWN0IE1pbmlkdW1wQ29udGV4dE1JUFM2NCB7CisgICB1 aW50NjRfdCBmaXI7CisgfTsKKyAKKysvLyEgXGJyaWVmIHBwYzY0LXNwZWNpZmljIGZsYWdzIGZv ciBNaW5pZHVtcFBQQzY0Ojpjb250ZXh0X2ZsYWdzCisrLy8hIEJhc2VkIG9uIG1pbmlkdW1wX2Nw dV9wcGM2NC5oIGZyb20gYnJlYWtwYWQKKytlbnVtIE1pbmlkdW1wQ29udGV4dFBQQzY0RmxhZ3Mg OiB1aW50MzJfdCB7CisrICAvLyEgXGJyaWVmIElkZW50aWZpZXMgdGhlIGNvbnRleHQgYXMgUFBD NjQuCisrICBrTWluaWR1bXBDb250ZXh0UFBDNjQgPSAweDAxMDAwMDAwLAorKworKyAgLy8hIFxi cmllZiBJbmRpY2F0ZXMgdGhlIHZhbGlkaXR5IG9mIGdlbmVyYWwgcHVycG9zZSByZWdpc3RlcnMu CisrICAvLyEKKysgIC8vISBSZWdpc3RlcnMgYHIwYC1gcjMxYCwgYG5pcGAsIGBtc3JgLCBgbHJg LCBldGMuIGFyZSB2YWxpZC4KKysgIGtNaW5pZHVtcENvbnRleHRQUEM2NEJhc2UgPSBrTWluaWR1 bXBDb250ZXh0UFBDNjQgfCAweDAwMDAwMDAxLAorKworKyAgLy8hIFxicmllZiBJbmRpY2F0ZXMg dGhlIHZhbGlkaXR5IG9mIGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVycy4KKysgIC8vIQorKyAgLy8h IFJlZ2lzdGVycyBgZnAwYC1gZnAzMWAsIGBmcHNjcmAgYXJlIHZhbGlkLgorKyAga01pbmlkdW1w Q29udGV4dFBQQzY0RmxvYXRpbmcgPSBrTWluaWR1bXBDb250ZXh0UFBDNjQgfCAweDAwMDAwMDA4 LAorKworKyAgLy8hIFxicmllZiBJbmRpY2F0ZXMgdGhlIHZhbGlkaXR5IG9mIEFsdGl2ZWMvVk1Y IHJlZ2lzdGVycy4KKysgIC8vIQorKyAgLy8hIFJlZ2lzdGVycyBgdjBgLWB2MzFgLCBgdnNjcmAs IGB2cnNhdmVgLgorKyAga01pbmlkdW1wQ29udGV4dFBQQzY0VmVjdG9yID0ga01pbmlkdW1wQ29u dGV4dFBQQzY0IHwgMHgwMDAwMDAyMCwKKysKKysgIC8vISBcYnJpZWYgSW5kaWNhdGVzIHRoZSB2 YWxpZGl0eSBvZiBhbGwgcmVnaXN0ZXJzCisrICBrTWluaWR1bXBDb250ZXh0UFBDNjRBbGwgPSBr TWluaWR1bXBDb250ZXh0UFBDNjRCYXNlICAgICB8CisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBrTWluaWR1bXBDb250ZXh0UFBDNjRGbG9hdGluZyB8CisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBrTWluaWR1bXBDb250ZXh0UFBDNjRWZWN0b3IKKyt9OworKworKy8vISBcYnJp ZWYgQSBQUEM2NCBDUFUgY29udGV4dCBjYXJyaWVkIGluIGEgbWluaWR1bXAgZmlsZS4KKysvLyEg QmFzZWQgb24gbWluaWR1bXBfY3B1X3BwYzY0LmggZnJvbSBicmVha3BhZC4KKytzdHJ1Y3QgTWlu aWR1bXBDb250ZXh0UFBDNjQgeworKyAgdWludDY0X3QgY29udGV4dF9mbGFnczsKKysKKysgIC8v ISBcYnJpZWYgR2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVycy4KKysgIHVpbnQ2NF90IG5pcDsKKysg IHVpbnQ2NF90IG1zcjsKKysgIHVpbnQ2NF90IHJlZ3NbMzJdOworKyAgdWludDY0X3QgY2NyOwor KyAgdWludDY0X3QgeGVyOworKyAgdWludDY0X3QgbG5rOworKyAgdWludDY0X3QgY3RyOworKwor KyAgLy8hIFxicmllZiBGbG9hdGluZyBwb2ludCByZWdpc3RlcnMuCisrICBkb3VibGUgZnByZWdz WzMyXTsKKysKKysgIC8vISBcYnJpZWYgRlBVIHN0YXR1cyByZWdpc3Rlci4KKysgIGRvdWJsZSBm cHNjcjsKKysKKysgIC8vISBcYnJpZWYgQWx0aXZlYy9WTVggdmVjdG9yIHJlZ2lzdGVycy4KKysg IHN0cnVjdCB7CisrICAgICAgLy8hIFxicmllZiBWZWN0b3IgcmVnaXN0ZXJzIGFyZSAxMjhiaXRz LgorKyAgICAgIHVpbnQxMjhfc3RydWN0IHNhdmVfdnJbMzJdOworKyAgICAgIHVpbnQxMjhfc3Ry dWN0IHNhdmVfdnNjcjsKKysKKysgICAgICAvLyEgXGJyaWVmIFBhZGRpbmcgaW5jbHVkZWQgZm9y IGJyZWFrcGFkIGNvbXBhdGliaWx0aXkuCisrICAgICAgdWludDMyX3Qgc2F2ZV9wYWQ1WzRdOwor KworKyAgICAgIC8vISBcYnJpZWYgVlJTQVZFIHJlZ2lzdGVyLgorKyAgICAgIHVpbnQzMl90IHNh dmVfdnJzYXZlOworKworKyAgICAgIC8vISBcYnJpZWYgUGFkZGluZyBpbmNsdWRlZCBmb3IgYnJl YWtwYWQgY29tcGF0aWJpbHRpeS4KKysgICAgICB1aW50MzJfdCBzYXZlX3BhZDZbN107CisrICB9 IHZyZWdzOworK307CisrCisgfSAgLy8gbmFtZXNwYWNlIGNyYXNocGFkCisgCisgI2VuZGlmICAv LyBDUkFTSFBBRF9NSU5JRFVNUF9NSU5JRFVNUF9DT05URVhUX0hfCitkaWZmIC0tZ2l0IHRoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVy LmNjIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRl eHRfd3JpdGVyLmNjCitpbmRleCBkN2U1M2E0OTMuLmQ4OWViOWUwMSAxMDA2NDQKKy0tLSBhL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVt cC9taW5pZHVtcF9jb250ZXh0X3dyaXRlci5jYworKysrIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRf d3JpdGVyLmNjCitAQCAtMTAxLDYgKzEwMSwxMyBAQCBNaW5pZHVtcENvbnRleHRXcml0ZXI6OkNy ZWF0ZUZyb21TbmFwc2hvdChjb25zdCBDUFVDb250ZXh0KiBjb250ZXh0X3NuYXBzaG90KSB7Cisg ICAgICAgYnJlYWs7CisgICAgIH0KKyAKKysgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQ6 IHsKKysgICAgICBjb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxNaW5pZHVtcENvbnRleHRQUEM2 NFdyaXRlcj4oKTsKKysgICAgICByZWludGVycHJldF9jYXN0PE1pbmlkdW1wQ29udGV4dFBQQzY0 V3JpdGVyKj4oY29udGV4dC5nZXQoKSkKKysgICAgICAgICAgLT5Jbml0YWxpemVGcm9tU25hcHNo b3QoY29udGV4dF9zbmFwc2hvdC0+cHBjNjQpOworKyAgICAgIGJyZWFrOworKyAgICB9CisrCisg ICAgIGRlZmF1bHQ6IHsKKyAgICAgICBMT0coRVJST1IpIDw8ICJ1bmtub3duIGNvbnRleHQgYXJj aGl0ZWN0dXJlICIKKyAgICAgICAgICAgICAgICAgIDw8IGNvbnRleHRfc25hcHNob3QtPmFyY2hp dGVjdHVyZTsKK0BAIC00NTMsNCArNDYwLDQ3IEBAIHNpemVfdCBNaW5pZHVtcENvbnRleHRNSVBT NjRXcml0ZXI6OkNvbnRleHRTaXplKCkgY29uc3QgeworICAgcmV0dXJuIHNpemVvZihjb250ZXh0 Xyk7CisgfQorIAorK01pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyOjpNaW5pZHVtcENvbnRleHRQ UEM2NFdyaXRlcigpCisrICA6IE1pbmlkdW1wQ29udGV4dFdyaXRlcigpLCBjb250ZXh0XygpIHsK KysgICAgY29udGV4dF8uY29udGV4dF9mbGFncyA9IGtNaW5pZHVtcENvbnRleHRQUEM2NDsKKyt9 CisrCisrTWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXI6On5NaW5pZHVtcENvbnRleHRQUEM2NFdy aXRlcigpID0gZGVmYXVsdDsKKysKKyt2b2lkIE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyOjpJ bml0YWxpemVGcm9tU25hcHNob3QoCisrICAgIGNvbnN0IENQVUNvbnRleHRQUEM2NCogY29udGV4 dF9zbmFwc2hvdCkgeworKyAgRENIRUNLX0VRKHN0YXRlKCksIGtTdGF0ZU11dGFibGUpOworKyAg RENIRUNLX0VRKGNvbnRleHRfLmNvbnRleHRfZmxhZ3MsIGtNaW5pZHVtcENvbnRleHRQUEM2NCk7 CisrCisrICBjb250ZXh0Xy5jb250ZXh0X2ZsYWdzID0ga01pbmlkdW1wQ29udGV4dFBQQzY0QWxs OworKworKyAgbWVtY3B5KGNvbnRleHRfLnJlZ3MsIGNvbnRleHRfc25hcHNob3QtPnJlZ3MsIHNp emVvZihjb250ZXh0Xy5yZWdzKSk7CisrICBjb250ZXh0Xy5uaXAgPSBjb250ZXh0X3NuYXBzaG90 LT5uaXA7CisrICBjb250ZXh0Xy5tc3IgPSBjb250ZXh0X3NuYXBzaG90LT5tc3I7CisrICBjb250 ZXh0Xy5jY3IgPSBjb250ZXh0X3NuYXBzaG90LT5jY3I7CisrICBjb250ZXh0Xy54ZXIgPSBjb250 ZXh0X3NuYXBzaG90LT54ZXI7CisrICBjb250ZXh0Xy5sbmsgPSBjb250ZXh0X3NuYXBzaG90LT5s bms7CisrICBjb250ZXh0Xy5jdHIgPSBjb250ZXh0X3NuYXBzaG90LT5jdHI7CisrCisrICBtZW1j cHkoY29udGV4dF8uZnByZWdzLCBjb250ZXh0X3NuYXBzaG90LT5mcHJlZ3MsIHNpemVvZihjb250 ZXh0Xy5mcHJlZ3MpKTsKKysgIGNvbnRleHRfLmZwc2NyID0gY29udGV4dF9zbmFwc2hvdC0+ZnBz Y3I7CisrCisrICBtZW1jcHkoY29udGV4dF8udnJlZ3Muc2F2ZV92ciwgY29udGV4dF9zbmFwc2hv dC0+dnJlZ3Muc2F2ZV92ciwKKysgICAgICAgICBzaXplb2YoY29udGV4dF8udnJlZ3Muc2F2ZV92 cikpOworKyAgbWVtY3B5KCZjb250ZXh0Xy52cmVncy5zYXZlX3ZzY3IsICZjb250ZXh0X3NuYXBz aG90LT52cmVncy5zYXZlX3ZzY3IsCisrICAgICAgICAgc2l6ZW9mKGNvbnRleHRfLnZyZWdzLnNh dmVfdnNjcikpOworKyAgY29udGV4dF8udnJlZ3Muc2F2ZV92cnNhdmUgPSBjb250ZXh0X3NuYXBz aG90LT52cmVncy5zYXZlX3Zyc2F2ZTsKKyt9CisrCisrYm9vbCBNaW5pZHVtcENvbnRleHRQUEM2 NFdyaXRlcjo6V3JpdGVPYmplY3QoCisrICAgIEZpbGVXcml0ZXJJbnRlcmZhY2UqIGZpbGVfd3Jp dGVyKSB7CisrICBEQ0hFQ0tfRVEoc3RhdGUoKSwga1N0YXRlV3JpdGFibGUpOworKyAgcmV0dXJu IGZpbGVfd3JpdGVyLT5Xcml0ZSgmY29udGV4dF8sIHNpemVvZihjb250ZXh0XykpOworK30KKysK KytzaXplX3QgTWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXI6OkNvbnRleHRTaXplKCkgY29uc3Qg eworKyAgRENIRUNLX0dFKHN0YXRlKCksIGtTdGF0ZUZyb3plbik7CisrICByZXR1cm4gc2l6ZW9m KGNvbnRleHRfKTsKKyt9CisrCisgfSAgLy8gbmFtZXNwYWNlIGNyYXNocGFkCitkaWZmIC0tZ2l0 IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRf d3JpdGVyLmggdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBf Y29udGV4dF93cml0ZXIuaAoraW5kZXggZDRhYjkzNmVlLi4xZDIyZmM1OWMgMTAwNjQ0CistLS0g YS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWlu aWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXIuaAorKysrIGEvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRl eHRfd3JpdGVyLmgKK0BAIC0zMTUsNiArMzE1LDQ1IEBAIGNsYXNzIE1pbmlkdW1wQ29udGV4dE1J UFM2NFdyaXRlciBmaW5hbCA6IHB1YmxpYyBNaW5pZHVtcENvbnRleHRXcml0ZXIgeworICAgRElT QUxMT1dfQ09QWV9BTkRfQVNTSUdOKE1pbmlkdW1wQ29udGV4dE1JUFM2NFdyaXRlcik7CisgfTsK KyAKKytjbGFzcyBNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlciBmaW5hbCA6IHB1YmxpYyBNaW5p ZHVtcENvbnRleHRXcml0ZXIgeworKyBwdWJsaWM6CisrICBNaW5pZHVtcENvbnRleHRQUEM2NFdy aXRlcigpOworKyAgfk1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyKCkgb3ZlcnJpZGU7CisrCisr ICAvLyEgXGJyaWVmIEluaXRhbGl6ZXMgdGhlIE1pbmlkdW1wQ29udGV4dFBQQzY0IGJhc2VkIG9u IFxhIGNvbnRleHRfc25hcHNob3QuCisrICAvLyEKKysgIC8vISBccGFyYW1baW5dIGNvbnRleHRf c25hcHNob3QgVGhlIGNvbnRleHQgc25hcHNob3QgdG8gdXNlIGFzIHNvdXJjZSBkYXRhLgorKyAg Ly8hCisrICAvLyEgXG5vdGUgVmFsaWQgaW4gI2tTdGF0ZU11dGFibGUuIE5vIG11dGF0aW9uIG9m IGNvbnRleHQoKSBtYXkgYmUgZG9uZSBiZWZvcmUKKysgIC8vISAgICAgY2FsbGluZyB0aGlzIG1l dGhvZCwgYW5kIGl0IGlzIG5vdCBub3JtYWxseSBuZWNlc3NhcnkgdG8gYWx0ZXIKKysgIC8vISAg ICAgY29udGV4dCgpIGFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QuCisrICB2b2lkIEluaXRhbGl6 ZUZyb21TbmFwc2hvdChjb25zdCBDUFVDb250ZXh0UFBDNjQqIGNvbnRleHRfc25hcHNob3QpOwor KworKyAgLy8hIFxicmllZiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgY29udGV4dCBzdHJ1Y3R1 cmUgdGhhdCB0aGlzIG9iamVjdCB3aWxsCisrICAvLyEgICAgIHdyaXRlLgorKyAgLy8hCisrICAv LyEgXGF0dGVudGlvbiBUaGlzIHJldHVybnMgYSBub24tYGNvbnN0YCBwb2ludGVyIHRvIHRoaXMg b2JqZWN04oCZcyBwcml2YXRlCisrICAvLyEgICAgIGRhdGEgc28gdGhhdCBhIGNhbGxlciBjYW4g cG9wdWxhdGUgdGhlIGNvbnRleHQgc3RydWN0dXJlIGRpcmVjdGx5LgorKyAgLy8hICAgICBUaGlz IGlzIGRvbmUgYmVjYXVzZSBwcm92aWRpbmcgc2V0dGVyIGludGVyZmFjZXMgdG8gZWFjaCBmaWVs ZCBpbiB0aGUKKysgIC8vISAgICAgY29udGV4dCBzdHJ1Y3R1cmUgd291bGQgYmUgdW53aWVsZHkg YW5kIGN1bWJlcnNvbWUuIENhcmUgbXVzdCBiZSB0YWtlbgorKyAgLy8hICAgICB0byBwb3B1bGF0 ZSB0aGUgY29udGV4dCBzdHJ1Y3R1cmUgY29ycmVjdGx5LiBUaGUgY29udGV4dCBzdHJ1Y3R1cmUK KysgIC8vISAgICAgbXVzdCBvbmx5IGJlIG1vZGlmaWVkIHdoaWxlIHRoaXMgb2JqZWN0IGlzIGlu IHRoZSAja1N0YXRlTXV0YWJsZQorKyAgLy8hICAgICBzdGF0ZS4KKysgIE1pbmlkdW1wQ29udGV4 dFBQQzY0KiBjb250ZXh0KCkgeyByZXR1cm4gJmNvbnRleHRfOyB9CisrCisrIHByb3RlY3RlZDoK KysgIC8vIE1pbmlkdW1wV3JpdGFibGU6CisrICBib29sIFdyaXRlT2JqZWN0KEZpbGVXcml0ZXJJ bnRlcmZhY2UqIGZpbGVfd3JpdGVyKSBvdmVycmlkZTsKKysKKysgIC8vIE1pbmlkdW1wQ29udGV4 dFdyaXRlcjoKKysgIHNpemVfdCBDb250ZXh0U2l6ZSgpIGNvbnN0IG92ZXJyaWRlOworKworKyBw cml2YXRlOgorKyAgTWluaWR1bXBDb250ZXh0UFBDNjQgY29udGV4dF87CisrCisrICBESVNBTExP V19DT1BZX0FORF9BU1NJR04oTWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIpOworK307CisrCisg fSAgLy8gbmFtZXNwYWNlIGNyYXNocGFkCisgCisgI2VuZGlmICAvLyBDUkFTSFBBRF9NSU5JRFVN UF9NSU5JRFVNUF9DT05URVhUX1dSSVRFUl9IXworZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlcl90ZXN0LmNjIHRo aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3Jp dGVyX3Rlc3QuY2MKK2luZGV4IDMyMTZhOTA2Yi4uYTlmY2JlOWQ4IDEwMDY0NAorLS0tIGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1w L21pbmlkdW1wX2NvbnRleHRfd3JpdGVyX3Rlc3QuY2MKKysrKyBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250 ZXh0X3dyaXRlcl90ZXN0LmNjCitAQCAtMjEzLDYgKzIxMywyMSBAQCBURVNUKE1pbmlkdW1wQ29u dGV4dFdyaXRlciwgTUlQUzY0X0Zyb21TbmFwc2hvdCkgeworICAgICAgIGNvbnRleHQsIEV4cGVj dE1pbmlkdW1wQ29udGV4dE1JUFM2NCwga1NlZWQpOworIH0KKyAKKytURVNUKE1pbmlkdW1wQ29u dGV4dFdyaXRlciwgUFBDNjRfWmVyb3MpIHsKKysgIEVtcHR5Q29udGV4dFRlc3Q8TWluaWR1bXBD b250ZXh0UFBDNjRXcml0ZXIsIE1pbmlkdW1wQ29udGV4dFBQQzY0PigKKysgICAgRXhwZWN0TWlu aWR1bXBDb250ZXh0UFBDNjQpOworK30KKysKKytURVNUKE1pbmlkdW1wQ29udGV4dFdyaXRlciwg UFBDNjRfRnJvbVNuYXBzaG90KSB7CisrICBjb25zdGV4cHIgdWludDMyX3Qga1NlZWQgPSA2NDsK KysgIENQVUNvbnRleHRQUEM2NCBjb250ZXh0X3BwYzY0OworKyAgQ1BVQ29udGV4dCBjb250ZXh0 OworKyAgY29udGV4dC5wcGM2NCA9ICZjb250ZXh0X3BwYzY0OworKyAgSW5pdGlhbGl6ZUNQVUNv bnRleHRQUEM2NCgmY29udGV4dCwga1NlZWQpOworKyAgRnJvbVNuYXBzaG90VGVzdDxNaW5pZHVt cENvbnRleHRQUEM2NFdyaXRlciwgTWluaWR1bXBDb250ZXh0UFBDNjQ+KAorKyAgICAgIGNvbnRl eHQsIEV4cGVjdE1pbmlkdW1wQ29udGV4dFBQQzY0LCBrU2VlZCk7CisrfQorKworIH0gIC8vIG5h bWVzcGFjZQorIH0gIC8vIG5hbWVzcGFjZSB0ZXN0CisgfSAgLy8gbmFtZXNwYWNlIGNyYXNocGFk CitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlk dW1wX21pc2NfaW5mb193cml0ZXIuY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWlu aWR1bXAvbWluaWR1bXBfbWlzY19pbmZvX3dyaXRlci5jYworaW5kZXggMDk3NGUzZGRmLi5iNzFl YzU4ODAgMTAwNjQ0CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfbWlzY19pbmZvX3dyaXRlci5jYworKysr IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21p bmlkdW1wL21pbmlkdW1wX21pc2NfaW5mb193cml0ZXIuY2MKK0BAIC0xMzUsNiArMTM1LDggQEAg c3RkOjpzdHJpbmcgTWluaWR1bXBNaXNjSW5mb0RlYnVnQnVpbGRTdHJpbmcoKSB7CisgICBzdGF0 aWMgY29uc3RleHByIGNoYXIga0NQVVtdID0gIm1pcHMiOworICNlbGlmIGRlZmluZWQoQVJDSF9D UFVfTUlQUzY0RUwpCisgICBzdGF0aWMgY29uc3RleHByIGNoYXIga0NQVVtdID0gIm1pcHM2NCI7 CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NCkKKysgIHN0YXRpYyBjb25zdGV4cHIgY2hh ciBrQ1BVW10gPSAicHBjNjQiOworICNlbHNlCisgI2Vycm9yIGRlZmluZSBrQ1BVIGZvciB0aGlz IENQVQorICNlbmRpZgorZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9z bmFwc2hvdC9jYXB0dXJlX21lbW9yeS5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9z bmFwc2hvdC9jYXB0dXJlX21lbW9yeS5jYworaW5kZXggN2ExYjI3NjNjLi5iZWRhOGRhOWUgMTAw NjQ0CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvc25hcHNob3QvY2FwdHVyZV9tZW1vcnkuY2MKKysrKyBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jYXB0dXJlX21lbW9y eS5jYworQEAgLTExMiw2ICsxMTIsMTEgQEAgdm9pZCBDYXB0dXJlTWVtb3J5OjpQb2ludGVkVG9C eUNvbnRleHQoY29uc3QgQ1BVQ29udGV4dCYgY29udGV4dCwKKyAgIGZvciAoc2l6ZV90IGkgPSAw OyBpIDwgYmFzZTo6c2l6ZShjb250ZXh0Lm1pcHNlbC0+cmVncyk7ICsraSkgeworICAgICBNYXli ZUNhcHR1cmVNZW1vcnlBcm91bmQoZGVsZWdhdGUsIGNvbnRleHQubWlwc2VsLT5yZWdzW2ldKTsK KyAgIH0KKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgIE1heWJlQ2Fw dHVyZU1lbW9yeUFyb3VuZChkZWxlZ2F0ZSwgY29udGV4dC5wcGM2NC0+bmlwKTsKKysgIGZvciAo c2l6ZV90IGkgPSAwOyBpIDwgYmFzZTo6c2l6ZShjb250ZXh0LnBwYzY0LT5yZWdzKTsgKytpKSB7 CisrICAgIE1heWJlQ2FwdHVyZU1lbW9yeUFyb3VuZChkZWxlZ2F0ZSwgY29udGV4dC5wcGM2NC0+ cmVnc1tpXSk7CisrICB9CisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYKK2RpZmYgLS1n aXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2FyY2hpdGVjdHVy ZS5oIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9hcmNoaXRlY3R1 cmUuaAoraW5kZXggODExYTcyMDk1Li5mNGY4Mzk4MWQgMTAwNjQ0CistLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2Fy Y2hpdGVjdHVyZS5oCisrKysgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2FyY2hpdGVjdHVyZS5oCitAQCAtNDMsNyArNDMs MTAgQEAgZW51bSBDUFVBcmNoaXRlY3R1cmUgeworICAga0NQVUFyY2hpdGVjdHVyZU1JUFNFTCwK KyAKKyAgIC8vISBcYnJpZWYgNjQtYml0IE1JUFNFTC4KKy0gIGtDUFVBcmNoaXRlY3R1cmVNSVBT NjRFTAorKyAga0NQVUFyY2hpdGVjdHVyZU1JUFM2NEVMLAorKworKyAgLy8hIFxicmllZiA2NC1i aXQgUFBDNjQuCisrICBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQKKyB9OworIAorIH0gIC8vIG5hbWVz cGFjZSBjcmFzaHBhZAorZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9z bmFwc2hvdC9jcHVfY29udGV4dC5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFw c2hvdC9jcHVfY29udGV4dC5jYworaW5kZXggYzc1YjU1NTVlLi5hZWFkZTU3N2EgMTAwNjQ0Cist LS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv c25hcHNob3QvY3B1X2NvbnRleHQuY2MKKysrKyBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5jYworQEAgLTE2 OSw2ICsxNjksOCBAQCB1aW50NjRfdCBDUFVDb250ZXh0OjpJbnN0cnVjdGlvblBvaW50ZXIoKSBj b25zdCB7CisgICAgICAgcmV0dXJuIGFybS0+cGM7CisgICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVy ZUFSTTY0OgorICAgICAgIHJldHVybiBhcm02NC0+cGM7CisrICAgIGNhc2Uga0NQVUFyY2hpdGVj dHVyZVBQQzY0OgorKyAgICAgIHJldHVybiBwcGM2NC0+bmlwOworICAgICBkZWZhdWx0OgorICAg ICAgIE5PVFJFQUNIRUQoKTsKKyAgICAgICByZXR1cm4gfjB1bGw7CitAQCAtMTg1LDYgKzE4Nyw4 IEBAIHVpbnQ2NF90IENQVUNvbnRleHQ6OlN0YWNrUG9pbnRlcigpIGNvbnN0IHsKKyAgICAgICBy ZXR1cm4gYXJtLT5zcDsKKyAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlQVJNNjQ6CisgICAgICAg cmV0dXJuIGFybTY0LT5zcDsKKysgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQ6CisrICAg ICAgcmV0dXJuIHBwYzY0LT5yZWdzWzFdOworICAgICBkZWZhdWx0OgorICAgICAgIE5PVFJFQUNI RUQoKTsKKyAgICAgICByZXR1cm4gfjB1bGw7CitAQCAtMTk2LDYgKzIwMCw3IEBAIGJvb2wgQ1BV Q29udGV4dDo6SXM2NEJpdCgpIGNvbnN0IHsKKyAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlWDg2 XzY0OgorICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVBUk02NDoKKyAgICAgY2FzZSBrQ1BVQXJj aGl0ZWN0dXJlTUlQUzY0RUw6CisrICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZVBQQzY0OgorICAg ICAgIHJldHVybiB0cnVlOworICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVYODY6CisgICAgIGNh c2Uga0NQVUFyY2hpdGVjdHVyZUFSTToKK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvc25hcHNob3QvY3B1X2NvbnRleHQuaCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5oCitpbmRleCBmYjIzYzQ2NzkuLmVlYmVkZTYzYyAx MDA2NDQKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5oCisrKysgYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2NvbnRleHQuaAor QEAgLTM1Miw2ICszNTIsMjQgQEAgc3RydWN0IENQVUNvbnRleHRNSVBTNjQgeworICAgdWludDY0 X3QgZmlyOworIH07CisgCisrLy8hIFxicmllZiBBIGNvbnRleHQgc3RydWN0dXJlIGNhcnJ5aW5n IFBQQzY0IENQVSBzdGF0ZS4KKytzdHJ1Y3QgQ1BVQ29udGV4dFBQQzY0IHsKKysgIHVpbnQ2NF90 IG5pcDsKKysgIHVpbnQ2NF90IG1zcjsKKysgIHVpbnQ2NF90IHJlZ3NbMzJdOworKyAgdWludDY0 X3QgY2NyOworKyAgdWludDY0X3QgeGVyOworKyAgdWludDY0X3QgbG5rOworKyAgdWludDY0X3Qg Y3RyOworKyAgZG91YmxlIGZwcmVnc1szMl07CisrICBkb3VibGUgZnBzY3I7CisrICBzdHJ1Y3Qg eworKyAgICB1aW50MTI4X3N0cnVjdCBzYXZlX3ZyWzMyXTsKKysgICAgdWludDEyOF9zdHJ1Y3Qg c2F2ZV92c2NyOworKyAgICB1aW50MzJfdCBzYXZlX3Zyc2F2ZTsKKysgIH0gdnJlZ3M7CisrfTsK KysKKyAvLyEgXGJyaWVmIEEgY29udGV4dCBzdHJ1Y3R1cmUgY2FwYWJsZSBvZiBjYXJyeWluZyB0 aGUgY29udGV4dCBvZiBhbnkgc3VwcG9ydGVkCisgLy8hICAgICBDUFUgYXJjaGl0ZWN0dXJlLgor IHN0cnVjdCBDUFVDb250ZXh0IHsKK0BAIC0zODIsNiArNDAwLDcgQEAgc3RydWN0IENQVUNvbnRl eHQgeworICAgICBDUFVDb250ZXh0QVJNNjQqIGFybTY0OworICAgICBDUFVDb250ZXh0TUlQUyog bWlwc2VsOworICAgICBDUFVDb250ZXh0TUlQUzY0KiBtaXBzNjQ7CisrICAgIENQVUNvbnRleHRQ UEM2NCogcHBjNjQ7CisgICB9OworIH07CisgCitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2NwdV9jb250ZXh0X2xpbnV4LmggdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvY3B1X2NvbnRleHRfbGludXguaAor aW5kZXggOWY0NmE0ODk3Li5hYTY3N2M0ZWIgMTAwNjQ0CistLS0gYS9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvY3B1X2Nv bnRleHRfbGludXguaAorKysrIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2NwdV9jb250ZXh0X2xpbnV4LmgKK0BAIC0x NSw2ICsxNSw3IEBACisgI2lmbmRlZiBDUkFTSFBBRF9TTkFQU0hPVF9MSU5VWF9DUFVfQ09OVEVY VF9MSU5VWF9IXworICNkZWZpbmUgQ1JBU0hQQURfU05BUFNIT1RfTElOVVhfQ1BVX0NPTlRFWFRf TElOVVhfSF8KKyAKKysjaW5jbHVkZSA8Y3N0cmluZz4KKyAjaW5jbHVkZSAiYnVpbGQvYnVpbGRf Y29uZmlnLmgiCisgI2luY2x1ZGUgInNuYXBzaG90L2NwdV9jb250ZXh0LmgiCisgI2luY2x1ZGUg InNuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250ZXh0LmgiCitAQCAtMTc0LDYgKzE3NSw3OCBAQCB2 b2lkIEluaXRpYWxpemVDUFVDb250ZXh0TUlQUygKKyAKKyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX01J UFNfRkFNSUxZIHx8IERPWFlHRU4KKyAKKysjaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1J TFkpIHx8IERPWFlHRU4KKysKKysvLyEgXGJyaWVmIEluaXRhbGl6ZXMgYSBDUFVDb250ZXh0UFBD NjQgc3RydWN0dXJlIGZyb20gbmF0aXZlIGNvbnRleHQKKysvLyEgICAgIHN0cnVjdHVyZXMgb24g TGludXguCisrLy8hCisrLy8hIFxwYXJhbVtpbl0gdGhyZWFkX2NvbnRleHQgVGhlIG5hdGl2ZSB0 aHJlYWQgY29udGV4dC4KKysvLyEgXHBhcmFtW2luXSBmbG9hdF9jb250ZXh0IFRoZSBuYXRpdmUg ZmxvYXQgY29udGV4dC4KKysvLyEgXHBhcmFtW2luXSB2ZWN0b3JfY29udGV4dCBUaGUgbmF0aXZl IHZlY3RvciBjb250ZXh0LgorKy8vISBccGFyYW1bb3V0XSBjb250ZXh0IFRoZSBDUFVDb250ZXh0 UFBDNjQgc3RydWN0dXJlIHRvIGluaXRhbGl6ZS4KKyt0ZW1wbGF0ZSA8dHlwZW5hbWUgVHJhaXRz PgorK3ZvaWQgSW5pdGlhbGl6ZUNQVUNvbnRleHRQUEM2NCgKKysgICAgY29uc3QgVGhyZWFkQ29u dGV4dDo6dDY0X3QmIHRocmVhZF9jb250ZXh0LAorKyAgICBjb25zdCBGbG9hdENvbnRleHQ6OmY2 NF90JiBmbG9hdF9jb250ZXh0LAorKyAgICBjb25zdCBWZWN0b3JDb250ZXh0Ojp2NjRfdCYgdmVj dG9yX2NvbnRleHQsCisrICAgIHR5cGVuYW1lIFRyYWl0czo6Q1BVQ29udGV4dCogY29udGV4dCkg eworKworKyAgbWVtY3B5KGNvbnRleHQtPnJlZ3MsIHRocmVhZF9jb250ZXh0Lmdwciwgc2l6ZW9m KGNvbnRleHQtPnJlZ3MpKTsKKysgIGNvbnRleHQtPm5pcCA9IHRocmVhZF9jb250ZXh0Lm5pcDsK KysgIGNvbnRleHQtPm1zciA9IHRocmVhZF9jb250ZXh0Lm1zcjsKKysgIGNvbnRleHQtPmNjciA9 IHRocmVhZF9jb250ZXh0LmNjcjsKKysgIGNvbnRleHQtPnhlciA9IHRocmVhZF9jb250ZXh0Lnhl cjsKKysgIGNvbnRleHQtPmxuayA9IHRocmVhZF9jb250ZXh0LmxuazsKKysgIGNvbnRleHQtPmN0 ciA9IHRocmVhZF9jb250ZXh0LmN0cjsKKysKKysgIG1lbWNweShjb250ZXh0LT5mcHJlZ3MsIGZs b2F0X2NvbnRleHQuZnByZWdzLCBzaXplb2YoY29udGV4dC0+ZnByZWdzKSk7CisrICBjb250ZXh0 LT5mcHNjciA9IGZsb2F0X2NvbnRleHQuZnBzY3I7CisrCisrICBmb3IgKHVpbnQ4X3QgaSA9IDA7 IGkgPCAzMjsgaSsrKSB7CisrICAgIGNvbnRleHQtPnZyZWdzLnNhdmVfdnJbaV0gPSB7CisrICAg ICAgKCgodWludDY0X3QpdmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzBdKSA8PCAzMikgfAorKyAg ICAgICAgdmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzFdLAorKyAgICAgICgoKHVpbnQ2NF90KXZl Y3Rvcl9jb250ZXh0LnZycmVnc1tpXVsyXSkgPDwgMzIpIHwKKysgICAgICAgIHZlY3Rvcl9jb250 ZXh0LnZycmVnc1tpXVszXQorKyAgICB9OworKyAgfQorKyAgY29udGV4dC0+dnJlZ3Muc2F2ZV92 cnNhdmUgPSB2ZWN0b3JfY29udGV4dC52cnNhdmU7CisrICBjb250ZXh0LT52cmVncy5zYXZlX3Zz Y3IgPSB7MCwgKHVpbnQ2NF90KXZlY3Rvcl9jb250ZXh0LnZzY3IudnNjcl93b3JkfTsKKyt9Cisr CisrdGVtcGxhdGUgPHR5cGVuYW1lIFRyYWl0cz4KKyt2b2lkIEluaXRpYWxpemVDUFVDb250ZXh0 UFBDNjQoCisrICAgIGNvbnN0IFNpZ25hbFRocmVhZENvbnRleHQ2NCAmdGhyZWFkX2NvbnRleHQs CisrICAgIGNvbnN0IFNpZ25hbEZsb2F0Q29udGV4dDY0ICZmbG9hdF9jb250ZXh0LAorKyAgICBj b25zdCBTaWduYWxWZWN0b3JDb250ZXh0NjQgJnZlY3Rvcl9jb250ZXh0LAorKyAgICB0eXBlbmFt ZSBUcmFpdHM6OkNQVUNvbnRleHQqIGNvbnRleHQpIHsKKysKKysgIG1lbWNweShjb250ZXh0LT5y ZWdzLCB0aHJlYWRfY29udGV4dC5yZWdzLCBzaXplb2YoY29udGV4dC0+cmVncykpOworKyAgY29u dGV4dC0+bmlwID0gdGhyZWFkX2NvbnRleHQubmlwOworKyAgY29udGV4dC0+bXNyID0gdGhyZWFk X2NvbnRleHQubXNyOworKyAgY29udGV4dC0+Y2NyID0gdGhyZWFkX2NvbnRleHQuY2NyOworKyAg Y29udGV4dC0+eGVyID0gdGhyZWFkX2NvbnRleHQueGVyOworKyAgY29udGV4dC0+bG5rID0gdGhy ZWFkX2NvbnRleHQubG5rOworKyAgY29udGV4dC0+Y3RyID0gdGhyZWFkX2NvbnRleHQuY3RyOwor KworKyAgbWVtY3B5KGNvbnRleHQtPmZwcmVncywgZmxvYXRfY29udGV4dC5yZWdzLCBzaXplb2Yo Y29udGV4dC0+ZnByZWdzKSk7CisrICBjb250ZXh0LT5mcHNjciA9IGZsb2F0X2NvbnRleHQuZnBz Y3I7CisrCisrICBmb3IgKHVpbnQ4X3QgaSA9IDA7IGkgPCAzMjsgaSsrKSB7CisrICAgIGNvbnRl eHQtPnZyZWdzLnNhdmVfdnJbaV0gPSB7CisrICAgICAgKCgodWludDY0X3QpdmVjdG9yX2NvbnRl eHQudnJyZWdzW2ldWzBdKSA8PCAzMikgfAorKyAgICAgICAgdmVjdG9yX2NvbnRleHQudnJyZWdz W2ldWzFdLAorKyAgICAgICgoKHVpbnQ2NF90KXZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVsyXSkg PDwgMzIpIHwKKysgICAgICAgIHZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVszXQorKyAgICB9Owor KyAgfQorKyAgY29udGV4dC0+dnJlZ3Muc2F2ZV92cnNhdmUgPSB2ZWN0b3JfY29udGV4dC52cnNh dmU7CisrICBjb250ZXh0LT52cmVncy5zYXZlX3ZzY3IgPSB7MCwgKHVpbnQ2NF90KXZlY3Rvcl9j b250ZXh0LnZzY3IudnNjcl93b3JkfTsKKyt9CisrCisrCisrI2VuZGlmCisrCisgfSAgLy8gbmFt ZXNwYWNlIGludGVybmFsCisgfSAgLy8gbmFtZXNwYWNlIGNyYXNocGFkCisgCitkaWZmIC0tZ2l0 IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2RlYnVnX3JlbmRl enZvdXNfdGVzdC5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51 eC9kZWJ1Z19yZW5kZXp2b3VzX3Rlc3QuY2MKK2luZGV4IGQzMmJkMTkzNy4uMmRkNTM4YzJiIDEw MDY0NAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3NuYXBzaG90L2xpbnV4L2RlYnVnX3JlbmRlenZvdXNfdGVzdC5jYworKysrIGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90 L2xpbnV4L2RlYnVnX3JlbmRlenZvdXNfdGVzdC5jYworQEAgLTE5Miw2ICsxOTIsOCBAQCB2b2lk IFRlc3RBZ2FpbnN0VGFyZ2V0KFB0cmFjZUNvbm5lY3Rpb24qIGNvbm5lY3Rpb24pIHsKKyAgICAg ICAgICAgICAgIGRldmljZSA9PSAwICYmIGlub2RlID09IDAgJiYgbWFwcGluZ19uYW1lID09ICJb dmRzb10iOworICNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4NikKKyAgICAgICAgICAgc3RhdGljIGNv bnN0ZXhwciBjaGFyIGtQcmVmaXhbXSA9ICJsaW51eC1nYXRlLnNvLiI7CisrI2VsaWYgZGVmaW5l ZChBUkNIX0NQVV9QUEM2NCkKKysgICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGtQcmVm aXhbXSA9ICJsaW51eC12ZHNvNjQuc28uIjsKKyAjZWxzZQorICAgICAgICAgICBzdGF0aWMgY29u c3RleHByIGNoYXIga1ByZWZpeFtdID0gImxpbnV4LXZkc28uc28uIjsKKyAjZW5kaWYKK2RpZmYg LS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0 aW9uX3NuYXBzaG90X2xpbnV4LmNjIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBz aG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5jYworaW5kZXggY2Q0MGIzYjEyLi42 YmNmMjNiNmYgMTAwNjQ0CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4 LmNjCisrKysgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmNjCitAQCAtMzIz LDYgKzMyMyw2OSBAQCBib29sIEV4Y2VwdGlvblNuYXBzaG90TGludXg6OlJlYWRDb250ZXh0PENv bnRleHRUcmFpdHM2ND4oCisgICAgICAgcmVhZGVyLCBjb250ZXh0X2FkZHJlc3MsIGNvbnRleHRf Lm1pcHM2NCk7CisgfQorIAorKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQor KworK3RlbXBsYXRlIDx0eXBlbmFtZSBUcmFpdHM+Cisrc3RhdGljIGJvb2wgUmVhZENvbnRleHQo UHJvY2Vzc1JlYWRlckxpbnV4KiByZWFkZXIsCisrICAgICAgICAgICAgICAgICAgICAgICAgTGlu dXhWTUFkZHJlc3MgY29udGV4dF9hZGRyZXNzLAorKyAgICAgICAgICAgICAgICAgICAgICAgIHR5 cGVuYW1lIFRyYWl0czo6Q1BVQ29udGV4dCogZGVzdF9jb250ZXh0KSB7CisrICBjb25zdCBQcm9j ZXNzTWVtb3J5KiBtZW1vcnkgPSByZWFkZXItPk1lbW9yeSgpOworKworKyAgTGludXhWTUFkZHJl c3MgZ3BfcmVnc19hZGRyZXNzID0gY29udGV4dF9hZGRyZXNzICsKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKFVDb250ZXh0LCBtY29udGV4dCkgKworKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YodHlwZW5hbWUgVHJhaXRzOjpN Q29udGV4dCwgZ3BfcmVncyk7CisrCisrICB0eXBlbmFtZSBUcmFpdHM6OlNpZ25hbFRocmVhZENv bnRleHQgdGhyZWFkX2NvbnRleHQ7CisrICBpZiAoIW1lbW9yeS0+UmVhZChncF9yZWdzX2FkZHJl c3MsIHNpemVvZih0aHJlYWRfY29udGV4dCksICZ0aHJlYWRfY29udGV4dCkpIHsKKysgICAgTE9H KEVSUk9SKSA8PCAiQ291bGRuJ3QgcmVhZCBncF9yZWdzISI7CisrICAgIHJldHVybiBmYWxzZTsK KysgIH0KKysKKysgIExpbnV4Vk1BZGRyZXNzIGZwX3JlZ3NfYWRkcmVzcyA9IGNvbnRleHRfYWRk cmVzcyArCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZihVQ29u dGV4dCwgbWNvbnRleHQpICsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9m ZnNldG9mKHR5cGVuYW1lIFRyYWl0czo6TUNvbnRleHQsIGZwX3JlZ3MpOworKworKyAgdHlwZW5h bWUgVHJhaXRzOjpTaWduYWxGbG9hdENvbnRleHQgZnBfY29udGV4dDsKKysgIGlmICghbWVtb3J5 LT5SZWFkKGZwX3JlZ3NfYWRkcmVzcywgc2l6ZW9mKGZwX2NvbnRleHQpLCAmZnBfY29udGV4dCkp IHsKKysgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3QgcmVhZCBmcF9yZWdzISI7CisrICAgIHJl dHVybiBmYWxzZTsKKysgIH0KKysKKysgIExpbnV4Vk1BZGRyZXNzIHZfcmVnc19wdHJfYWRkcmVz cyA9IGNvbnRleHRfYWRkcmVzcyArCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG9mZnNldG9mKFVDb250ZXh0LCBtY29udGV4dCkgKworKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBvZmZzZXRvZih0eXBlbmFtZSBUcmFpdHM6Ok1Db250ZXh0LCB2bXhfcmVzZXJ2 ZSkgKyA4OworKworKyAgdHlwZW5hbWUgVHJhaXRzOjpTaWduYWxWZWN0b3JDb250ZXh0IHZfY29u dGV4dDsKKysgIGlmICghbWVtb3J5LT5SZWFkKHZfcmVnc19wdHJfYWRkcmVzcywgc2l6ZW9mKHZf Y29udGV4dCksICZ2X2NvbnRleHQpKSB7CisrICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IHJl YWQgdl9yZWdzISI7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysKKysgIEluaXRpYWxpemVD UFVDb250ZXh0UFBDNjQ8Q29udGV4dFRyYWl0czY0Pih0aHJlYWRfY29udGV4dCwgZnBfY29udGV4 dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgdl9jb250ZXh0LCBkZXN0X2NvbnRleHQp OworKworKyAgcmV0dXJuIHRydWU7CisrfQorKworK3RlbXBsYXRlPD4KKytib29sIEV4Y2VwdGlv blNuYXBzaG90TGludXg6OlJlYWRDb250ZXh0PENvbnRleHRUcmFpdHM2ND4oCisrICAgIFByb2Nl c3NSZWFkZXJMaW51eCogcmVhZGVyLAorKyAgICBMaW51eFZNQWRkcmVzcyBjb250ZXh0X2FkZHJl c3MpIHsKKysgIGNvbnRleHRfLmFyY2hpdGVjdHVyZSA9IGtDUFVBcmNoaXRlY3R1cmVQUEM2NDsK KysgIGNvbnRleHRfLnBwYzY0ID0gJmNvbnRleHRfdW5pb25fLnBwYzY0OworKworKyAgcmV0dXJu IGludGVybmFsOjpSZWFkQ29udGV4dDxDb250ZXh0VHJhaXRzNjQ+KAorKyAgICAgIHJlYWRlciwg Y29udGV4dF9hZGRyZXNzLCBjb250ZXh0Xy5wcGM2NCk7CisrfQorKworK3RlbXBsYXRlPD4KKyti b29sIEV4Y2VwdGlvblNuYXBzaG90TGludXg6OlJlYWRDb250ZXh0PENvbnRleHRUcmFpdHMzMj4o CisrICAgIFByb2Nlc3NSZWFkZXJMaW51eCogcmVhZGVyLAorKyAgICBMaW51eFZNQWRkcmVzcyBj b250ZXh0X2FkZHJlc3MpIHsKKysgIC8vIFBQQzY0IGlzIDY0LWJpdAorKyAgcmV0dXJuIGZhbHNl OworK30KKysKKyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKKyAKKyBib29sIEV4Y2Vw dGlvblNuYXBzaG90TGludXg6OkluaXRpYWxpemUoUHJvY2Vzc1JlYWRlckxpbnV4KiBwcm9jZXNz X3JlYWRlciwKK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNo b3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmggdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmgKK2luZGV4 IGVhMGNkMjEwNi4uZTQyZGY1MjBmIDEwMDY0NAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9z bmFwc2hvdF9saW51eC5oCisrKysgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4 LmgKK0BAIC04NCw2ICs4NCw4IEBAIGNsYXNzIEV4Y2VwdGlvblNuYXBzaG90TGludXggZmluYWwg OiBwdWJsaWMgRXhjZXB0aW9uU25hcHNob3QgeworICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQ U19GQU1JTFkpCisgICAgIENQVUNvbnRleHRNSVBTIG1pcHNlbDsKKyAgICAgQ1BVQ29udGV4dE1J UFM2NCBtaXBzNjQ7CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICAg IENQVUNvbnRleHRQUEM2NCBwcGM2NDsKKyAjZW5kaWYKKyAgIH0gY29udGV4dF91bmlvbl87Cisg ICBDUFVDb250ZXh0IGNvbnRleHRfOworZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXhfdGVzdC5jYyB0 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25h cHNob3RfbGludXhfdGVzdC5jYworaW5kZXggYzE3MTcwYjQzLi5iNmE3MTRjYzYgMTAwNjQ0Cist LS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv c25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4X3Rlc3QuY2MKKysrKyBhL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hv dC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXhfdGVzdC5jYworQEAgLTI5Niw3ICsyOTYs MjggQEAgdm9pZCBFeHBlY3RDb250ZXh0KGNvbnN0IENQVUNvbnRleHQmIGFjdHVhbCwgY29uc3Qg TmF0aXZlQ1BVQ29udGV4dCYgZXhwZWN0ZWQpIHsKKyAgICAgICAgICAgICAwKTsKKyAjdW5kZWYg Q1BVX0FSQ0hfTkFNRQorIH0KKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkK Kyt1c2luZyBOYXRpdmVDUFVDb250ZXh0ID0gdWNvbnRleHRfdDsKKysKKyt2b2lkIEluaXRpYWxp emVDb250ZXh0KE5hdGl2ZUNQVUNvbnRleHQqIGNvbnRleHQpIHsKKysgIGZvciAoc2l6ZV90IHJl ZyA9IDA7IHJlZyA8IDMyOyArK3JlZykgeworKyAgICBjb250ZXh0LT51Y19tY29udGV4dC5ncF9y ZWdzW3JlZ10gPSByZWc7CisrICB9CisrCisrICBtZW1zZXQoJmNvbnRleHQtPnVjX21jb250ZXh0 LmZwX3JlZ3MsIDQ0LAorKyAgICAgIHNpemVvZihjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz KSk7CisrfQorIAorK3ZvaWQgRXhwZWN0Q29udGV4dChjb25zdCBDUFVDb250ZXh0JiBhY3R1YWws IGNvbnN0IE5hdGl2ZUNQVUNvbnRleHQmIGV4cGVjdGVkKSB7CisrICBFWFBFQ1RfRVEoYWN0dWFs LmFyY2hpdGVjdHVyZSwga0NQVUFyY2hpdGVjdHVyZVBQQzY0KTsKKysKKysgIGZvciAoc2l6ZV90 IHJlZyA9IDA7IHJlZyA8IDMyOyArK3JlZykgeworKyAgICBFWFBFQ1RfRVEoYWN0dWFsLnBwYzY0 LT5yZWdzW3JlZ10sIGV4cGVjdGVkLnVjX21jb250ZXh0LmdwX3JlZ3NbcmVnXSk7CisrICB9Cisr CisrICBFWFBFQ1RfRVEobWVtY21wKGFjdHVhbC5wcGM2NC0+ZnByZWdzLCBleHBlY3RlZC51Y19t Y29udGV4dC5mcF9yZWdzLAorKyAgICAgICAgICAgIHNpemVvZihhY3R1YWwucHBjNjQtPmZwcmVn cykpLCAwKTsKKyt9CisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYKK2RpZmYgLS1naXQg dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvcHJvY2Vzc19yZWFk ZXJfbGludXguY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgv cHJvY2Vzc19yZWFkZXJfbGludXguY2MKK2luZGV4IGVlMjQ2ZThiYy4uOTU1NWRjZTA0IDEwMDY0 NAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3NuYXBzaG90L2xpbnV4L3Byb2Nlc3NfcmVhZGVyX2xpbnV4LmNjCisrKysgYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGlu dXgvcHJvY2Vzc19yZWFkZXJfbGludXguY2MKK0BAIC0xMDgsNiArMTA4LDggQEAgdm9pZCBQcm9j ZXNzUmVhZGVyTGludXg6OlRocmVhZDo6SW5pdGlhbGl6ZVN0YWNrKFByb2Nlc3NSZWFkZXJMaW51 eCogcmVhZGVyKSB7CisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAgIHN0 YWNrX3BvaW50ZXIgPSByZWFkZXItPklzNjRCaXQoKSA/IHRocmVhZF9pbmZvLnRocmVhZF9jb250 ZXh0LnQ2NC5yZWdzWzI5XQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDog dGhyZWFkX2luZm8udGhyZWFkX2NvbnRleHQudDMyLnJlZ3NbMjldOworKyNlbGlmIGRlZmluZWQo QVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgc3RhY2tfcG9pbnRlciA9IHRocmVhZF9pbmZvLnRo cmVhZF9jb250ZXh0LnQ2NC5ncHJbMV07CisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYK K2RpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgv c2lnbmFsX2NvbnRleHQuaCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9s aW51eC9zaWduYWxfY29udGV4dC5oCitpbmRleCAxMTAwMjQ2ODAuLmExZjJkYTI1OSAxMDA2NDQK Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9zbmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4dC5oCisrKysgYS9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc2lnbmFs X2NvbnRleHQuaAorQEAgLTQyMiw2ICs0MjIsODkgQEAgc3RhdGljX2Fzc2VydChvZmZzZXRvZihV Q29udGV4dDxDb250ZXh0VHJhaXRzNjQ+LCBtY29udGV4dC5mcHJlZ3MpID09CisgICAgICAgICAg ICAgICAiY29udGV4dCBvZmZzZXQgbWlzbWF0Y2giKTsKKyAjZW5kaWYKKyAKKysjZWxpZiBkZWZp bmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysKKytzdHJ1Y3QgU2lnbmFsVGhyZWFkQ29udGV4 dDY0IHsKKysgIHVpbnQ2NF90IHJlZ3NbMzJdOworKyAgdWludDY0X3QgbmlwOworKyAgdWludDY0 X3QgbXNyOworKyAgdWludDY0X3Qgb3JpZ19yMzsKKysgIHVpbnQ2NF90IGN0cjsKKysgIHVpbnQ2 NF90IGxuazsKKysgIHVpbnQ2NF90IHhlcjsKKysgIHVpbnQ2NF90IGNjcjsKKysgIHVpbnQ2NF90 IHNvZnRlOworKyAgdWludDY0X3QgdHJhcDsKKysgIHVpbnQ2NF90IGRhcjsKKysgIHVpbnQ2NF90 IGRzaXNyOworKyAgdWludDY0X3QgcmVzdWx0OworKyAgdWludDY0X3QgZHNjcjsKKysgIHVpbnQ2 NF90IGZwcjBbM107CisrfTsKKysKKytzdHJ1Y3QgU2lnbmFsRmxvYXRDb250ZXh0NjQgeworKyAg ZG91YmxlIHJlZ3NbMzJdOworKyAgZG91YmxlIGZwc2NyOworK307CisrCisrc3RydWN0IFNpZ25h bFZlY3RvckNvbnRleHQ2NCB7CisrICBpbnQzMl90IHZycmVnc1szMl1bNF07CisrICBzdHJ1Y3Qg eworKyAgICBpbnQzMl90IF9fcGFkWzNdOworKyAgICBpbnQzMl90IHZzY3Jfd29yZDsKKysgIH0g dnNjcjsKKysgIGludDMyX3QgdnJzYXZlOworKyAgaW50MzJfdCBfX3BhZFszXTsKKyt9IF9fYXR0 cmlidXRlX18oKF9fYWxpZ25lZF9fKDE2KSkpOworKworKworKyNwcmFnbWEgcGFjayhwb3ApCisr c3RydWN0IE1Db250ZXh0NjQgeworKyAgdWludDY0X3QgcmVzZXJ2ZWRbNF07CisrICBpbnQzMl90 IHNpZ25hbDsKKysgIGludDMyX3QgX19wYWQwOworKyAgdWludDY0X3QgaGFuZGxlcjsKKysgIHVp bnQ2NF90IG9sZG1hc2s7CisrICB1aW50NjRfdCBwdF9yZWdzX3B0cjsKKysgIFNpZ25hbFRocmVh ZENvbnRleHQ2NCBncF9yZWdzOworKyAgU2lnbmFsRmxvYXRDb250ZXh0NjQgIGZwX3JlZ3M7Cisr ICBTaWduYWxWZWN0b3JDb250ZXh0NjQgKnZfcmVnczsKKysgIGludDY0X3Qgdm14X3Jlc2VydmVb NjldOworK307CisrCisrc3RydWN0IENvbnRleHRUcmFpdHM2NCA6IHB1YmxpYyBUcmFpdHM2NCB7 CisrICB1c2luZyBNQ29udGV4dCA9IE1Db250ZXh0NjQ7CisrICB1c2luZyBTaWduYWxUaHJlYWRD b250ZXh0ID0gU2lnbmFsVGhyZWFkQ29udGV4dDY0OworKyAgdXNpbmcgU2lnbmFsRmxvYXRDb250 ZXh0ID0gU2lnbmFsRmxvYXRDb250ZXh0NjQ7CisrICB1c2luZyBTaWduYWxWZWN0b3JDb250ZXh0 ID0gU2lnbmFsVmVjdG9yQ29udGV4dDY0OworKyAgdXNpbmcgQ1BVQ29udGV4dCA9IENQVUNvbnRl eHRQUEM2NDsKKyt9OworKworK3N0cnVjdCBDb250ZXh0VHJhaXRzMzIgOiBwdWJsaWMgVHJhaXRz MzIge307CisrCisrc3RydWN0IFVDb250ZXh0IHsKKysgIHVpbnQ2NF90IGZsYWdzOworKyAgdWlu dDY0X3QgbGluazsKKysgIFNpZ25hbFN0YWNrPENvbnRleHRUcmFpdHM2ND4gc3RhY2s7CisrICBT aWdzZXQ8Q29udGV4dFRyYWl0czY0PiBzaWdtYXNrOworKyAgTUNvbnRleHQ2NCBtY29udGV4dDsK Kyt9OworKyNwcmFnbWEgcGFjayhwdXNoLCAxKQorKworK3N0YXRpY19hc3NlcnQoc2l6ZW9mKFVD b250ZXh0KSA9PSBzaXplb2YodWNvbnRleHRfdCksCisrICAgICAgICAgICAgICAidWNvbnRleHRf dCBzaXplIG1pc21hdGNoIik7Cisrc3RhdGljX2Fzc2VydChzaXplb2YoTUNvbnRleHQ2NCkgPT0g c2l6ZW9mKG1jb250ZXh0X3QpLAorKyAgICAgICAgICAgICAgIm1jb250ZXh0X3Qgc2l6ZSBtaXNt YXRjaCIpOworK3N0YXRpY19hc3NlcnQoc2l6ZW9mKFNpZ25hbFRocmVhZENvbnRleHQ2NCkgPT0g c2l6ZW9mKGdyZWdzZXRfdCksCisrICAgICAgICAgICAgICAiZ3JlZ3NldF90IHNpemUgbWlzbWF0 Y2giKTsKKytzdGF0aWNfYXNzZXJ0KHNpemVvZihTaWduYWxGbG9hdENvbnRleHQ2NCkgPT0gc2l6 ZW9mKGZwcmVnc2V0X3QpLAorKyAgICAgICAgICAgICAgImZwcmVnc2V0X3Qgc2l6ZSBtaXNtYXRj aCIpOworK3N0YXRpY19hc3NlcnQoc2l6ZW9mKFNpZ25hbFZlY3RvckNvbnRleHQ2NCkgPT0gc2l6 ZW9mKHZycmVnc2V0X3QpLAorKyAgICAgICAgICAgICAgInZycmVnc2V0X3Qgc2l6ZSBtaXNtYXRj aCIpOworK3N0YXRpY19hc3NlcnQob2Zmc2V0b2YoVUNvbnRleHQsIG1jb250ZXh0KSA9PQorKyAg ICAgICAgICAgICAgb2Zmc2V0b2YodWNvbnRleHRfdCwgdWNfbWNvbnRleHQpLCAibWNvbnRleHQg b2Zmc2V0IG1pc21hdGNoIik7Cisrc3RhdGljX2Fzc2VydChvZmZzZXRvZihNQ29udGV4dDY0LCBn cF9yZWdzKSA9PQorKyAgICAgICAgICAgICAgb2Zmc2V0b2YobWNvbnRleHRfdCwgZ3BfcmVncyks ICJncF9yZWdzIG9mZnNldCBtaXNtYXRjaCIpOworICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2Vu ZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3N5c3RlbV9zbmFwc2hvdF9saW51eC5jYyB0aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zeXN0ZW1fc25hcHNob3Rf bGludXguY2MKK2luZGV4IGE5OWRhM2U0Yi4uMDNiOTczMDgzIDEwMDY0NAorLS0tIGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xp bnV4L3N5c3RlbV9zbmFwc2hvdF9saW51eC5jYworKysrIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3N5c3RlbV9zbmFw c2hvdF9saW51eC5jYworQEAgLTIwNCw2ICsyMDQsOCBAQCBDUFVBcmNoaXRlY3R1cmUgU3lzdGVt U25hcHNob3RMaW51eDo6R2V0Q1BVQXJjaGl0ZWN0dXJlKCkgY29uc3QgeworICNlbGlmIGRlZmlu ZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCisgICByZXR1cm4gcHJvY2Vzc19yZWFkZXJfLT5JczY0 Qml0KCkgPyBrQ1BVQXJjaGl0ZWN0dXJlTUlQUzY0RUwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA6IGtDUFVBcmNoaXRlY3R1cmVNSVBTRUw7CisrI2VsaWYgZGVmaW5lZChB UkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICByZXR1cm4ga0NQVUFyY2hpdGVjdHVyZVBQQzY0Owor ICNlbHNlCisgI2Vycm9yIHBvcnQgdG8geW91ciBhcmNoaXRlY3R1cmUKKyAjZW5kaWYKK0BAIC0y MTksNiArMjIxLDkgQEAgdWludDMyX3QgU3lzdGVtU25hcHNob3RMaW51eDo6Q1BVUmV2aXNpb24o KSBjb25zdCB7CisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAgIC8vIE5v dCBpbXBsZW1lbnRhYmxlIG9uIE1JUFMKKyAgIHJldHVybiAwOworKyNlbGlmIGRlZmluZWQoQVJD SF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgLy8gTm90IHlldCBpbXBsZW1lbnRlZCBvbiBQUEM2NAor KyAgcmV0dXJuIDA7CisgI2Vsc2UKKyAjZXJyb3IgcG9ydCB0byB5b3VyIGFyY2hpdGVjdHVyZQor ICNlbmRpZgorQEAgLTIzOSw2ICsyNDQsOSBAQCBzdGQ6OnN0cmluZyBTeXN0ZW1TbmFwc2hvdExp bnV4OjpDUFVWZW5kb3IoKSBjb25zdCB7CisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZB TUlMWSkKKyAgIC8vIE5vdCBpbXBsZW1lbnRhYmxlIG9uIE1JUFMKKyAgIHJldHVybiBzdGQ6OnN0 cmluZygpOworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgLy8gTm90 IHlldCBpbXBsZW1lbnRlZCBvbiBQUEM2NAorKyAgcmV0dXJuIHN0ZDo6c3RyaW5nKCk7CisgI2Vs c2UKKyAjZXJyb3IgcG9ydCB0byB5b3VyIGFyY2hpdGVjdHVyZQorICNlbmRpZgorQEAgLTM3Miw2 ICszODAsOSBAQCBib29sIFN5c3RlbVNuYXBzaG90TGludXg6Ok5YRW5hYmxlZCgpIGNvbnN0IHsK KyAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQorICAgLy8gTm90IGltcGxlbWVu dGFibGUgb24gTUlQUworICAgcmV0dXJuIGZhbHNlOworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVf UFBDNjRfRkFNSUxZKQorKyAgLy8gTm90IHlldCBpbXBsZW1lbnRlZCBvbiBQUEM2NAorKyAgcmV0 dXJuIGZhbHNlOworICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2VuZGlmICAvLyBBUkNIX0NQVV9Y ODZfRkFNSUxZCitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBz aG90L2xpbnV4L3Rlc3RfbW9kdWxlcy5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9z bmFwc2hvdC9saW51eC90ZXN0X21vZHVsZXMuY2MKK2luZGV4IGIyNDUwYzIwNi4uN2JhNzhiMmFl IDEwMDY0NAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Rlc3RfbW9kdWxlcy5jYworKysrIGEvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4 L3Rlc3RfbW9kdWxlcy5jYworQEAgLTExMCw2ICsxMTAsOCBAQCBib29sIFdyaXRlVGVzdE1vZHVs ZShjb25zdCBiYXNlOjpGaWxlUGF0aCYgbW9kdWxlX3BhdGgsCisgICBtb2R1bGUuZWhkci5lX21h Y2hpbmUgPSBFTV9BQVJDSDY0OworICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU0VMKSB8fCBk ZWZpbmVkKEFSQ0hfQ1BVX01JUFM2NEVMKQorICAgbW9kdWxlLmVoZHIuZV9tYWNoaW5lID0gRU1f TUlQUzsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0KQorKyAgbW9kdWxlLmVoZHIuZV9t YWNoaW5lID0gRU1fUFBDNjQ7CisgI2VuZGlmCisgCisgICBtb2R1bGUuZWhkci5lX3ZlcnNpb24g PSBFVl9DVVJSRU5UOworZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9z bmFwc2hvdC9saW51eC90aHJlYWRfc25hcHNob3RfbGludXguY2MgdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmNjCitpbmRl eCBlM2UyYmViZGQuLjhlZjQzNzUyZSAxMDA2NDQKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90aHJlYWRfc25h cHNob3RfbGludXguY2MKKysrKyBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90aHJlYWRfc25hcHNob3RfbGludXguY2MK K0BAIC0xODYsNiArMTg2LDE0IEBAIGJvb2wgVGhyZWFkU25hcHNob3RMaW51eDo6SW5pdGlhbGl6 ZShQcm9jZXNzUmVhZGVyTGludXgqIHByb2Nlc3NfcmVhZGVyLAorICAgICAgICAgdGhyZWFkLnRo cmVhZF9pbmZvLmZsb2F0X2NvbnRleHQuZjMyLAorICAgICAgICAgY29udGV4dF8ubWlwc2VsKTsK KyAgIH0KKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgIGNvbnRleHRf LmFyY2hpdGVjdHVyZSA9IGtDUFVBcmNoaXRlY3R1cmVQUEM2NDsKKysgIGNvbnRleHRfLnBwYzY0 ID0gJmNvbnRleHRfdW5pb25fLnBwYzY0OworKyAgSW5pdGlhbGl6ZUNQVUNvbnRleHRQUEM2NDxD b250ZXh0VHJhaXRzNjQ+KAorKyAgICAgIHRocmVhZC50aHJlYWRfaW5mby50aHJlYWRfY29udGV4 dC50NjQsCisrICAgICAgdGhyZWFkLnRocmVhZF9pbmZvLmZsb2F0X2NvbnRleHQuZjY0LAorKyAg ICAgIHRocmVhZC50aHJlYWRfaW5mby52ZWN0b3JfY29udGV4dC52NjQsCisrICAgICAgY29udGV4 dF8ucHBjNjQpOworICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2VuZGlmCitkaWZmIC0tZ2l0IHRo aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hv dF9saW51eC5oIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Ro cmVhZF9zbmFwc2hvdF9saW51eC5oCitpbmRleCA0NGNjNmY2ZDkuLmQ0MTM2NDYxZSAxMDA2NDQK Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9zbmFwc2hvdC9saW51eC90aHJlYWRfc25hcHNob3RfbGludXguaAorKysrIGEvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4 L3RocmVhZF9zbmFwc2hvdF9saW51eC5oCitAQCAtNjgsNiArNjgsOCBAQCBjbGFzcyBUaHJlYWRT bmFwc2hvdExpbnV4IGZpbmFsIDogcHVibGljIFRocmVhZFNuYXBzaG90IHsKKyAjZWxpZiBkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQorICAgICBDUFVDb250ZXh0TUlQUyBtaXBzZWw7Cisg ICAgIENQVUNvbnRleHRNSVBTNjQgbWlwczY0OworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBD NjRfRkFNSUxZKQorKyAgICBDUFVDb250ZXh0UFBDNjQgcHBjNjQ7CisgI2Vsc2UKKyAjZXJyb3Ig UG9ydC4KKyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKK2RpZmYgLS1naXQgdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9hdXhpbGlhcnlfdmVjdG9yLmNjIHRo aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvYXV4aWxpYXJ5X3ZlY3Rvci5j YworaW5kZXggZDNkNWViZGZiLi4zZmQ3MzBjYjUgMTAwNjQ0CistLS0gYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9hdXhpbGlh cnlfdmVjdG9yLmNjCisrKysgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9hdXhpbGlhcnlfdmVjdG9yLmNjCitAQCAtNTYsNiAr NTYsMTEgQEAgYm9vbCBBdXhpbGlhcnlWZWN0b3I6OlJlYWQoUHRyYWNlQ29ubmVjdGlvbiogY29u bmVjdGlvbikgeworICAgICBpZiAodHlwZSA9PSBBVF9JR05PUkUpIHsKKyAgICAgICBjb250aW51 ZTsKKyAgICAgfQorKyNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgICAgaWYg KHR5cGUgPT0gQVRfSUdOT1JFUFBDKSB7CisrICAgICAgY29udGludWU7CisrICAgIH0KKysjZW5k aWYKKyAgICAgaWYgKCFNYXBJbnNlcnRPclJlcGxhY2UoJnZhbHVlc18sIHR5cGUsIHZhbHVlLCBu dWxscHRyKSkgeworICAgICAgIExPRyhFUlJPUikgPDwgImR1cGxpY2F0ZSBhdXh2IGVudHJ5IjsK KyAgICAgICByZXR1cm4gZmFsc2U7CitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3V0aWwvbGludXgvcHRyYWNlci5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC91dGlsL2xpbnV4L3B0cmFjZXIuY2MKK2luZGV4IDU1N2UwZDM2My4uMDhhZTQzNGI4IDEwMDY0 NAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3V0aWwvbGludXgvcHRyYWNlci5jYworKysrIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNlci5jYworQEAgLTM5 OCw2ICszOTgsNjQgQEAgYm9vbCBHZXRUaHJlYWRBcmVhNjQocGlkX3QgdGlkLAorICAgcmV0dXJu IHRydWU7CisgfQorIAorKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKy8v IFBQQzY0IGhhcyBoYWQgSEFWRV9BUkNIX1RSQUNFSE9PSyBzZXQgc2luY2UgMi42LjI3IChldmVu IGJlZm9yZSB4ODYgaGFkIGl0KS4KKysvLyBUaGF0IG1lYW5zIHdlIGNhbiBzaW1wbHkgdXNlIFBU UkFDRV9HRVRSRUdFU0VULgorKworK3RlbXBsYXRlIDx0eXBlbmFtZSBEZXN0aW5hdGlvbj4KKyti b29sIEdldFJlZ2lzdGVyU2V0KHBpZF90IHRpZCwgaW50IHNldCwgRGVzdGluYXRpb24qIGRlc3Qs IGJvb2wgY2FuX2xvZykgeworKyAgaW92ZWMgaW92OworKyAgaW92Lmlvdl9iYXNlID0gcmVpbnRl cnByZXRfY2FzdDx2b2lkKj4oZGVzdCk7CisrICBpb3YuaW92X2xlbiA9IHNpemVvZigqZGVzdCk7 CisrICBpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgcmVpbnRlcnByZXRfY2FzdDx2 b2lkKj4oc2V0KSwgJmlvdikgIT0gMCkgeworKyAgICBQTE9HX0lGKEVSUk9SLCBjYW5fbG9nKSA8 PCAicHRyYWNlIjsKKysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKyAgaWYgKGlvdi5pb3ZfbGVu ICE9IHNpemVvZigqZGVzdCkpIHsKKysgICAgTE9HX0lGKEVSUk9SLCBjYW5fbG9nKSA8PCAiVW5l eHBlY3RlZCByZWdpc3RlcnMgc2l6ZSI7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysgIHJl dHVybiB0cnVlOworK30KKysKKytib29sIEdldFZlY3RvclJlZ2lzdGVyczY0KHBpZF90IHRpZCwK KysgICAgICAgICAgICAgICAgICAgICAgICAgIFZlY3RvckNvbnRleHQqIGNvbnRleHQsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsKKysgIHJldHVybiBHZXRSZWdp c3RlclNldCh0aWQsIE5UX1BQQ19WTVgsICZjb250ZXh0LT52NjQsIGNhbl9sb2cpOworK30KKysK Kytib29sIEdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnM2NChwaWRfdCB0aWQsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRmxvYXRDb250ZXh0KiBjb250ZXh0LAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgeworKyAgcmV0dXJuIEdldFJl Z2lzdGVyU2V0KHRpZCwgTlRfUFJGUFJFRywgJmNvbnRleHQtPmY2NCwgY2FuX2xvZyk7CisrfQor KworK2Jvb2wgR2V0VGhyZWFkQXJlYTY0KHBpZF90IHRpZCwKKysgICAgICAgICAgICAgICAgICAg ICBjb25zdCBUaHJlYWRDb250ZXh0JiBjb250ZXh0LAorKyAgICAgICAgICAgICAgICAgICAgIExp bnV4Vk1BZGRyZXNzKiBhZGRyZXNzLAorKyAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xv ZykgeworKyAgLy8gUFBDNjQgZG9lc24ndCBoYXZlIFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEgc2lu Y2UgdGhlIHRocmVhZCBwb2ludGVyCisrICAvLyBpcyBzdG9yZWQgaW4gR1BSIDEzLgorKyAgVGhy ZWFkQ29udGV4dDo6dDY0X3QgdGM7CisrICBpZiAoIUdldFJlZ2lzdGVyU2V0KHRpZCwgTlRfUFJT VEFUVVMsICZ0YywgY2FuX2xvZykpIHsKKysgICAgTE9HX0lGKEVSUk9SLCBjYW5fbG9nKSA8PCAi VW5hYmxlIHRvIGdldCB0aHJlYWQgcG9pbnRlciEiOworKyAgICByZXR1cm4gZmFsc2U7CisrICB9 CisrCisrICAqYWRkcmVzcyA9IHRjLmdwclsxM107CisrCisrICByZXR1cm4gdHJ1ZTsKKyt9Cisr CisrLy8gU3R1YnMgZm9yIDMyLWJpdCBmdW5jdGlvbnMgbm90IGFwcGxpY2FibGUgb24gUFBDNjQK Kytib29sIEdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnMzMihwaWRfdCB0aWQsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRmxvYXRDb250ZXh0KiBjb250ZXh0LAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgeyByZXR1cm4gZmFsc2U7IH0K Kytib29sIEdldFRocmVhZEFyZWEzMihwaWRfdCB0aWQsCisrICAgICAgICAgICAgICAgICAgICAg Y29uc3QgVGhyZWFkQ29udGV4dCAmY29udGV4dCwKKysgICAgICAgICAgICAgICAgICAgICBMaW51 eFZNQWRkcmVzcyAqYWRkcmVzcywKKysgICAgICAgICAgICAgICAgICAgICBib29sIGNhbl9sb2cp IHsgcmV0dXJuIGZhbHNlOyB9CisrCisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYgIC8v IEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKK0BAIC00OTQsNiArNTUyLDkgQEAgYm9vbCBQdHJhY2VyOjpH ZXRUaHJlYWRJbmZvKHBpZF90IHRpZCwgVGhyZWFkSW5mbyogaW5mbykgeworICAgaWYgKGlzXzY0 X2JpdF8pIHsKKyAgICAgcmV0dXJuIEdldEdlbmVyYWxQdXJwb3NlUmVnaXN0ZXJzNjQodGlkLCAm aW5mby0+dGhyZWFkX2NvbnRleHQsIGNhbl9sb2dfKSAmJgorICAgICAgICAgICAgR2V0RmxvYXRp bmdQb2ludFJlZ2lzdGVyczY0KHRpZCwgJmluZm8tPmZsb2F0X2NvbnRleHQsIGNhbl9sb2dfKSAm JgorKyNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgICAgICAgICAgIEdldFZl Y3RvclJlZ2lzdGVyczY0KHRpZCwgJmluZm8tPnZlY3Rvcl9jb250ZXh0LCBjYW5fbG9nXykgJiYK KysjZW5kaWYKKyAgICAgICAgICAgIEdldFRocmVhZEFyZWE2NCh0aWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW5mby0+dGhyZWFkX2NvbnRleHQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJmluZm8tPnRocmVhZF9zcGVjaWZpY19kYXRhX2FkZHJlc3MsCitkaWZmIC0tZ2l0 IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaCB0 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVhZF9pbmZvLmgKK2lu ZGV4IDViNTVjMjRhNy4uZGVhMGQxZjM5IDEwMDY0NAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8u aAorKysrIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaAorQEAgLTI4LDYgKzI4LDEwIEBACisgI2luY2x1 ZGUgPGFuZHJvaWQvYXBpLWxldmVsLmg+CisgI2VuZGlmCisgCisrI2lmIGRlZmluZWQoQVJDSF9D UFVfUFBDNjRfRkFNSUxZKQorKyNpbmNsdWRlIDxzeXMvdWNvbnRleHQuaD4KKysjZW5kaWYKKysK KyBuYW1lc3BhY2UgY3Jhc2hwYWQgeworIAorIC8vISBcYnJpZWYgVGhlIHNldCBvZiBnZW5lcmFs IHB1cnBvc2UgcmVnaXN0ZXJzIGZvciBhbiBhcmNoaXRlY3R1cmUgZmFtaWx5LgorQEAgLTc5LDYg KzgzLDggQEAgdW5pb24gVGhyZWFkQ29udGV4dCB7CisgICAgIHVpbnQzMl90IGNwMF9zdGF0dXM7 CisgICAgIHVpbnQzMl90IGNwMF9jYXVzZTsKKyAgICAgdWludDMyX3QgcGFkZGluZzFfOworKyNl bGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgICAvLyBQUEM2NCBpcyA2NC1i aXQKKyAjZWxzZQorICNlcnJvciBQb3J0LgorICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlM WQorQEAgLTEzMiw2ICsxMzgsMjEgQEAgdW5pb24gVGhyZWFkQ29udGV4dCB7CisgICAgIHVpbnQ2 NF90IGNwMF9iYWR2YWRkcjsKKyAgICAgdWludDY0X3QgY3AwX3N0YXR1czsKKyAgICAgdWludDY0 X3QgY3AwX2NhdXNlOworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAg ICAvLyBSZWZsZWN0cyBzdHJ1Y3QgcHRfcmVncyBpbiBhc20vcHRyYWNlLmguCisrICAgIHVpbnQ2 NF90IGdwclszMl07CisrICAgIHVpbnQ2NF90IG5pcDsKKysgICAgdWludDY0X3QgbXNyOworKyAg ICB1aW50NjRfdCBvcmlnX2dwcjM7CisrICAgIHVpbnQ2NF90IGN0cjsKKysgICAgdWludDY0X3Qg bG5rOworKyAgICB1aW50NjRfdCB4ZXI7CisrICAgIHVpbnQ2NF90IGNjcjsKKysgICAgdWludDY0 X3Qgc29mdGU7CisrICAgIHVpbnQ2NF90IHRyYXA7CisrICAgIHVpbnQ2NF90IGRhcjsKKysgICAg dWludDY0X3QgZHNpc3I7CisrICAgIHVpbnQ2NF90IHJlc3VsdDsKKyAjZWxzZQorICNlcnJvciBQ b3J0LgorICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQorQEAgLTE0Myw2ICsxNjQsOCBA QCB1bmlvbiBUaHJlYWRDb250ZXh0IHsKKyAgIHVzaW5nIE5hdGl2ZVRocmVhZENvbnRleHQgPSB1 c2VyX3JlZ3M7CisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAvLyBObyBh cHByb3ByaWF0ZSBOYXRpdmVUaHJlYWRzQ29udGV4dCB0eXBlIGF2YWlsYWJsZSBmb3IgTUlQUwor KyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgdXNpbmcgTmF0aXZlVGhy ZWFkQ29udGV4dCA9IHN0cnVjdCBwdF9yZWdzOworICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2Vu ZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZIHx8IEFSQ0hfQ1BVX0FSTTY0CitAQCAtMjE4LDYg KzI0MSw5IEBAIHVuaW9uIEZsb2F0Q29udGV4dCB7CisgICAgIH0gZnByZWdzWzMyXTsKKyAgICAg dWludDMyX3QgZnBjc3I7CisgICAgIHVpbnQzMl90IGZwdV9pZDsKKysjZWxpZiBkZWZpbmVkKEFS Q0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgICAgLy8gQ3Jhc2hwYWQncyBQUEMgc3VwcG9ydCBpcyA2 NC1iaXQgb25seSwgc28gdGhpcworKyAgICAvLyAzMmJpdC1vbmx5IHN0cnVjdCBpcyBkZWNsYXJl ZCBhcyBlbXB0eS4KKyAjZWxzZQorICNlcnJvciBQb3J0LgorICNlbmRpZiAgLy8gQVJDSF9DUFVf WDg2X0ZBTUlMWQorQEAgLTI1Miw2ICsyNzgsMTAgQEAgdW5pb24gRmxvYXRDb250ZXh0IHsKKyAg ICAgZG91YmxlIGZwcmVnc1szMl07CisgICAgIHVpbnQzMl90IGZwY3NyOworICAgICB1aW50MzJf dCBmcHVfaWQ7CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICAgIC8v IFJlZmxlY3RzIGZwcmVnc2V0X3QgaW4gc3lzL3Vjb250ZXh0LmgKKysgICAgZG91YmxlIGZwcmVn c1szMl07CisrICAgIGRvdWJsZSBmcHNjcjsKKyAjZWxzZQorICNlcnJvciBQb3J0LgorICNlbmRp ZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQorQEAgLTI4MCw2ICszMTAsOCBAQCB1bmlvbiBGbG9h dENvbnRleHQgeworICAgc3RhdGljX2Fzc2VydChzaXplb2YoZjY0KSA9PSBzaXplb2YodXNlcl9m cHNpbWRfc3RydWN0KSwgIlNpemUgbWlzbWF0Y2giKTsKKyAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKQorIC8vIE5vIGFwcHJvcHJpYXRlIGZsb2F0aW5nIHBvaW50IGNvbnRleHQg bmF0aXZlIHR5cGUgZm9yIGF2YWlsYWJsZSBNSVBTLgorKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVf UFBDNjRfRkFNSUxZKQorKyAgc3RhdGljX2Fzc2VydChzaXplb2YoZjY0KSA9PSBzaXplb2YoZnBy ZWdzZXRfdCksICJTaXplIG1pc21hdGNoIik7CisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5k aWYgIC8vIEFSQ0hfQ1BVX1g4NgorQEAgLTI4Nyw2ICszMTksMjYgQEAgdW5pb24gRmxvYXRDb250 ZXh0IHsKKyBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc3RhbmRhcmRfbGF5b3V0PEZsb2F0Q29udGV4 dD46OnZhbHVlLAorICAgICAgICAgICAgICAgIk5vdCBzdGFuZGFyZCBsYXlvdXQiKTsKKyAKKysv LyEgXGJyaWVmIFRoZSB2ZWN0b3IgcmVnaXN0ZXJzIHVzZWQgZm9yIGFuIGFyY2hpdGVjdHVyZSBm YW1pbHkKKyt1bmlvbiBWZWN0b3JDb250ZXh0IHsKKysgIHN0cnVjdCB2MzJfdCB7fSB2MzI7Cisr I2lmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgX19hdHRyaWJ1dGVfXygoX19h bGlnbmVkX18oMTYpKSkgLy8gVmVjdG9yIGNvbnRleHQgbXVzdCBiZSBkb3VibGV3b3JkIGFsaWdu ZWQuCisrI2VuZGlmCisrICBzdHJ1Y3QgdjY0X3QgeworKyNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQ QzY0X0ZBTUlMWSkKKysgICAgLy8gUmVmbGVjdHMgdnJyZWdzZXRfdCBpbiBzeXMvdWNvbnRleHQu aAorKyAgICB1aW50MzJfdCB2cnJlZ3NbMzJdWzRdOworKyAgICBzdHJ1Y3QgeworKyAgICAgIHVp bnQzMl90IF9fcGFkWzNdOworKyAgICAgIHVpbnQzMl90IHZzY3Jfd29yZDsKKysgICAgfSB2c2Ny OworKyAgICB1aW50MzJfdCB2cnNhdmU7CisrICAgIHVpbnQzMl90IF9fcGFkWzNdOworKyNlbmRp ZgorKyAgfSB2NjQ7CisrfTsKKysKKyAvLyEgXGJyaWVmIEEgY29sbGVjdGlvbiBvZiBgcHRyYWNl YC1hYmxlIGluZm9ybWF0aW9uIGFib3V0IGEgdGhyZWFkLgorIHN0cnVjdCBUaHJlYWRJbmZvIHsK KyAgIFRocmVhZEluZm8oKTsKK0BAIC0yOTgsNiArMzUwLDkgQEAgc3RydWN0IFRocmVhZEluZm8g eworICAgLy8hIFxicmllZiBUaGUgZmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJzIGZvciB0aGUgdGhy ZWFkLgorICAgRmxvYXRDb250ZXh0IGZsb2F0X2NvbnRleHQ7CisgCisrICAvLyEgXGJyaWVmIChP cHRpb25hbCkgVGhlIHZlY3RvciByZWdpc3RlcnMgdXNlZCBmb3IgdGhlIHRocmVhZC4KKysgIFZl Y3RvckNvbnRleHQgdmVjdG9yX2NvbnRleHQ7CisrCisgICAvLyEgXGJyaWVmIFRoZSB0aHJlYWQt bG9jYWwgc3RvcmFnZSBhZGRyZXNzIGZvciB0aGUgdGhyZWFkLgorICAgTGludXhWTUFkZHJlc3Mg dGhyZWFkX3NwZWNpZmljX2RhdGFfYWRkcmVzczsKKyB9OworZGlmZiAtLWdpdCB0aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0LmggdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dC5oCitpbmRleCBk MjFhMjRmMTkuLmFjYzMyNTM0OSAxMDA2NDQKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0LmgK KysrKyBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0LmgKK0BAIC02OSw2ICs2OSw3IEBAIHVzaW5nIE5h dGl2ZUNQVUNvbnRleHQgPSB1Y29udGV4dF90OworIC8vISAgICAgbWFjT1MvTGludXgvRnVjaHNp YSB8IHg4Nl82NCAgICAgICB8IGAlJXJkaWAKKyAvLyEgICAgIExpbnV4ICAgICAgICAgICAgICAg fCBBUk0vQVJNNjQgICAgfCBgcjBgL2B4MGAKKyAvLyEgICAgIExpbnV4ICAgICAgICAgICAgICAg fCBNSVBTL01JUFM2NCAgfCBgJGEwYAorKy8vISAgICAgTGludXggICAgICAgICAgICAgICB8IFBQ QzY0ICAgICAgICB8IGByM2AKKyAvLyEKKyAvLyEgICAgIEFkZGl0aW9uYWxseSwgdGhlIHZhbHVl IGBMUmAgb24gQVJNL0FSTTY0IHdpbGwgYmUgdGhlIHJldHVybiBhZGRyZXNzIG9mCisgLy8hICAg ICB0aGlzIGZ1bmN0aW9uLgorZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X2xpbnV4LlMgdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF9saW51eC5TCitpbmRleCA1MjIxNWVl NWQuLmIzZTRhM2VjNyAxMDA2NDQKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X2xpbnV4LlMK KysrKyBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X2xpbnV4LlMKK0BAIC0zMiw3ICszMiw3IEBACisg ICAuYmFsaWduIDQsIDB4MAorICAgLnR5cGUgQ0FQVFVSRUNPTlRFWFRfU1lNQk9MLCAlZnVuY3Rp b24KKyAgIC50eXBlIENBUFRVUkVDT05URVhUX1NZTUJPTDIsICVmdW5jdGlvbgorLSNlbGlmIGRl ZmluZWQoX19taXBzX18pCisrI2VsaWYgZGVmaW5lZChfX21pcHNfXykgfHwgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQorICAgLmJhbGlnbiA0LCAweDAKKyAjZW5kaWYKKyAKK0BAIC00MjMsNCArNDIz LDIxNCBAQCBDQVBUVVJFQ09OVEVYVF9TWU1CT0wyOgorICAganIgJHJhCisgCisgICAuc2V0IGF0 CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgLy8gU3RvcmUgcjAtcjMxCisrICBz dGQgMCwgMHhlOCgzKSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMF0KKysgIHN0 ZCAxLCAweGYwKDMpICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxXQorKyAgc3Rk IDIsIDB4ZjgoMykgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzJdCisrICAvLyBu b3RlIHRoYXQgcjMncyBvcmlnaW5hbCB2YWx1ZSB3YXMgbG9zdAorKyAgc3RkIDMsIDB4MTAwKDMp ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzNdCisrICBzdGQgNCwgMHgxMDgoMykg IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbNF0KKysgIHN0ZCA1LCAweDExMCgzKSAg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1s1XQorKyAgc3RkIDYsIDB4MTE4KDMpICAv LyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzZdCisrICBzdGQgNywgMHgxMjAoMykgIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbN10KKysgIHN0ZCA4LCAweDEyOCgzKSAgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1s4XQorKyAgc3RkIDksIDB4MTMwKDMpICAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzldCisrICBzdGQgMTAsIDB4MTM4KDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTBdCisrICBzdGQgMTEsIDB4MTQwKDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTFdCisrICBzdGQgMTIsIDB4MTQ4KDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTJdCisrICBzdGQgMTMsIDB4MTUwKDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTNdCisrICBzdGQgMTQsIDB4MTU4KDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTRdCisrICBzdGQgMTUsIDB4MTYwKDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTVdCisrICBzdGQgMTYsIDB4MTY4KDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTZdCisrICBzdGQgMTcsIDB4MTcwKDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTddCisrICBzdGQgMTgsIDB4MTc4KDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMThdCisrICBzdGQgMTksIDB4MTgwKDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTldCisrICBzdGQgMjAsIDB4MTg4KDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjBdCisrICBzdGQgMjEsIDB4MTkwKDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjFdCisrICBzdGQgMjIsIDB4MTk4KDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjJdCisrICBzdGQgMjMsIDB4MWEwKDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjNdCisrICBzdGQgMjQsIDB4MWE4KDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjRdCisrICBzdGQgMjUsIDB4MWIwKDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjVdCisrICBzdGQgMjYsIDB4MWI4KDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjZdCisrICBzdGQgMjcsIDB4MWMwKDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjddCisrICBzdGQgMjgsIDB4MWM4KDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjhdCisrICBzdGQgMjksIDB4MWQwKDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMjldCisrICBzdGQgMzAsIDB4MWQ4KDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMzBdCisrICBzdGQgMzEsIDB4MWUwKDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMzFdCisrCisrICAvLyBGb3IgTklQLCB3ZSBjYW4g dXNlIHRoZSB2YWx1ZSBpbiB0aGUgbGluayByZWdpc3RlcgorKyAgbWZsciAwCisrICBzdGQgMCwg MHgxZTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdCisrCisrICAv LyBDVFIKKysgIG1mY3RyIDAKKysgIHN0ZCAwLCAweDIwMCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzW1BUX0NUUl0KKysKKysgIC8vIEZvciBMTkssIHdlJ2xsIHVzZSB0aGUgY2Fs bGVyJ3MgTFIgc2F2ZSBhcmVhICgyIHN0YWNrIGZyYW1lcyB1cCkuCisrICAvLyByNCBjYW4gYmUg dXNlZCBhcyBhIHNjcmF0Y2ggcmVnaXN0ZXIgc2luY2UgaXQgaGFzIGFscmVhZHkgYmVlbiBzYXZl ZC4KKysgIGxkIDQsIDAoMSkKKysgIGxkIDQsIDE2KDQpCisrICBzdGQgNCwgMHgyMDgoMykgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9MTktdCisrCisrICAvLyBYRVIKKysgIG1m eGVyIDAKKysgIHN0ZCAwLCAweDIxMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdz W1BUX1hFUl0KKysKKysgIC8vIENDUgorKyAgbWZjciAwCisrICBzdGQgMCwgMHgyMTgoMykgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9DQ1JdCisrCisrICAvLyBNU1IsIG9yaWdf cjMsIE1RLCBUUkFQLCBEQVIsIERTSVNSLCBSRVNVTFQsIERTQ1IsCisrICAvLyBub3QgdXNlZCBv ciBub3QgcmVsZXZhbnQsICB6ZXJvIHRoZW0gb3V0LgorKyAgbGkgNCwgMAorKyAgc3RkIDQsIDB4 MWYwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTVNSXQorKyAgc3RkIDQs IDB4MWY4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfT1JJR19SM10KKysg IHN0ZCA0LCAweDIyMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX01RXQor KyAgc3RkIDQsIDB4MjI4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfVFJB UF0KKysgIHN0ZCA0LCAweDIzMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BU X0RBUl0KKysgIHN0ZCA0LCAweDIzOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdz W1BUX0RTSVNSXQorKyAgc3RkIDQsIDB4MjQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbUFRfUkVTVUxUXQorKyAgc3RkIDQsIDB4MjQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbUFRfRFNDUl0KKysKKysgIC8vIFVwZGF0ZSBjb250ZXh0LT51Y19tY29udGV4 dC5yZWdzIHRvIHBvaW50IHRvIGdwX3JlZ3MKKysgIGFkZGkgMCwgMywgMHhlOAorKyAgc3RkIDAs IDB4ZTAoMykKKysKKysgIC8vIFNhdmUgZmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJzIDAtMzEKKysg IHN0ZmQgMCwgMHgyNjgoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMF0KKysg IHN0ZmQgMSwgMHgyNzAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMV0KKysg IHN0ZmQgMiwgMHgyNzgoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMl0KKysg IHN0ZmQgMywgMHgyODAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbM10KKysg IHN0ZmQgNCwgMHgyODgoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbNF0KKysg IHN0ZmQgNSwgMHgyOTAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbNV0KKysg IHN0ZmQgNiwgMHgyOTgoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbNl0KKysg IHN0ZmQgNywgMHgyYTAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbN10KKysg IHN0ZmQgOCwgMHgyYTgoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbOF0KKysg IHN0ZmQgOSwgMHgyYjAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbOV0KKysg IHN0ZmQgMTAsIDB4MmI4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTBdCisr ICBzdGZkIDExLCAweDJjMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzExXQor KyAgc3RmZCAxMiwgMHgyYzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxMl0K KysgIHN0ZmQgMTMsIDB4MmQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTNd CisrICBzdGZkIDE0LCAweDJkOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzE0 XQorKyAgc3RmZCAxNSwgMHgyZTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sx NV0KKysgIHN0ZmQgMTYsIDB4MmU4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3Nb MTZdCisrICBzdGZkIDE3LCAweDJmMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzE3XQorKyAgc3RmZCAxOCwgMHgyZjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVn c1sxOF0KKysgIHN0ZmQgMTksIDB4MzAwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3Jl Z3NbMTldCisrICBzdGZkIDIwLCAweDMwOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9y ZWdzWzIwXQorKyAgc3RmZCAyMSwgMHgzMTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBf cmVnc1syMV0KKysgIHN0ZmQgMjIsIDB4MzE4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZw X3JlZ3NbMjJdCisrICBzdGZkIDIzLCAweDMyMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5m cF9yZWdzWzIzXQorKyAgc3RmZCAyNCwgMHgzMjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu ZnBfcmVnc1syNF0KKysgIHN0ZmQgMjUsIDB4MzMwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmZwX3JlZ3NbMjVdCisrICBzdGZkIDI2LCAweDMzOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4 dC5mcF9yZWdzWzI2XQorKyAgc3RmZCAyNywgMHgzNDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1syN10KKysgIHN0ZmQgMjgsIDB4MzQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmZwX3JlZ3NbMjhdCisrICBzdGZkIDI5LCAweDM1MCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5mcF9yZWdzWzI5XQorKyAgc3RmZCAzMCwgMHgzNTgoMykgLy8gY29udGV4dC0+dWNfbWNv bnRleHQuZnBfcmVnc1szMF0KKysgIHN0ZmQgMzEsIDB4MzYwKDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmZwX3JlZ3NbMzFdCisrCisrICAvLyBGUFNDUgorKyAgbWZmcyAwCisrICBzdGZkIDAs IDB4MzY4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMzJdCisrCisrICAvLyBT YXZlIFZNWCBWZWN0b3IgcmVnaXN0ZXJzCisrICAvLyBVcGRhdGUgcjQgdG8gY29udGFpbiB0aGUg YmFzZSBhZGRyZXNzIG9mIHZteF9yZXNlcnZlCisrICBhZGRpIDQsIDMsIDB4Mzc4CisrICAvLyBF bnN1cmUgdGhhdCBpdCBpcyBxdWFkd29yZCBhbGlnbmVkCisrICBhbmRpLiA1LCA0LCAweEYKKysg IGJlcSAxZiAvLyBObyBhbGlnbm1lbnQgaXMgbmVjZXNzYXJ5CisrICAvLyBBZGRyZXNzIGlzIGRv dWJsZXdvcmQgYWxpZ25lZCBhbmQgbm90IHF1YWR3b3JkIGFsaWduZWQsIGFkZCA4CisrICBhZGRp IDQsIDQsIDgKKysKKysxOgorKyAgLy8gU3RvcmUgVk1YIHJlZ2lzdGVycyAwLTMxCisrICAvLyBy NCB3aWxsIGNvbnRhaW4gdGhlIGJhc2UgYWRkcmVzcworKyAgLy8gcjUgd2lsbCBjb250YWluIHRo ZSBpbmRleAorKyAgbGkgNSwgMAorKyAgc3R2eCAwLCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNv bnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDBdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4 IDEsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsg MV0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMiwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyXQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2 eCAzLCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSAr IDNdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDQsIDQsIDUgICAvLyBjb250ZXh0LT51Y19t Y29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgNF0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0 dnggNSwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikg KyA1XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCA2LCA0LCA1ICAgLy8gY29udGV4dC0+dWNf bWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDZdCisrICBhZGRpIDUsIDUsIDE2CisrICBz dHZ4IDcsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24p ICsgN10KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggOCwgNCwgNSAgIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyA4XQorKyAgYWRkaSA1LCA1LCAxNgorKyAg c3R2eCA5LCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWdu KSArIDldCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDEwLCA0LCA1ICAvLyBjb250ZXh0LT51 Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTBdCisrICBhZGRpIDUsIDUsIDE2Cisr ICBzdHZ4IDExLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxp Z24pICsgMTFdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDEyLCA0LCA1ICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTJdCisrICBhZGRpIDUsIDUsIDE2 CisrICBzdHZ4IDEzLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVso YWxpZ24pICsgMTNdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDE0LCA0LCA1ICAvLyBjb250 ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTRdCisrICBhZGRpIDUsIDUs IDE2CisrICBzdHZ4IDE1LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2 ZVsoYWxpZ24pICsgMTVdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDE2LCA0LCA1ICAvLyBj b250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTZdCisrICBhZGRpIDUs IDUsIDE2CisrICBzdHZ4IDE3LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVz ZXJ2ZVsoYWxpZ24pICsgMTddCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDE4LCA0LCA1ICAv LyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMThdCisrICBhZGRp IDUsIDUsIDE2CisrICBzdHZ4IDE5LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhf cmVzZXJ2ZVsoYWxpZ24pICsgMTldCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDIwLCA0LCA1 ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjBdCisrICBh ZGRpIDUsIDUsIDE2CisrICBzdHZ4IDIxLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52 bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjFdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDIyLCA0 LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjJdCisr ICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDIzLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4 dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjNdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDI0 LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjRd CisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDI1LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29u dGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjVdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4 IDI2LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsg MjZdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDI3LCA0LCA1ICAvLyBjb250ZXh0LT51Y19t Y29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjddCisrICBhZGRpIDUsIDUsIDE2CisrICBz dHZ4IDI4LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24p ICsgMjhdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDI5LCA0LCA1ICAvLyBjb250ZXh0LT51 Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjldCisrICBhZGRpIDUsIDUsIDE2Cisr ICBzdHZ4IDMwLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxp Z24pICsgMzBdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDMxLCA0LCA1ICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMzFdCisrICBhZGRpIDUsIDUsIDE2 CisrCisrICAvLyBWU0NSCisrICBtZnZzY3IgMAorKyAgc3R2eCAwLCA0LCA1CisrICBhZGRpIDUs IDUsIDE2CisrCisrICAvLyBWUlNBVkUKKysgIG1mdnJzYXZlIDAKKysgIHN0d3ggMCwgNCwgNQor KworKyAgLy8gVXBkYXRlIGNvbnRleHQtPnVjX21jb250ZXh0LnZfcmVncyB0byBwb2ludCB0byB2 bXhfcmVzZXJ2ZSArIGFsaWdubWVudC4KKysgIHN0ZCA0LCAweDM3MCgzKQorKworKyAgLy8gWmVy byBvdXQgYWxsIHVudXNlZCBmaWVsZHMKKysgIGxpIDQsIDAKKysgIHN0ZCA0LCAweGM4KDMpIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LnNpZ25hbAorKyAgc3RkIDQsIDB4ZDAoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuaGFuZGxlcgorKyAgc3RkIDQsIDB4ZDgoMykgLy8gY29udGV4dC0+dWNf bWNvbnRleHQub2xkbWFzaworKworKyAgYmxyCisgI2VuZGlmICAvLyBfX2kzODZfXworZGlmZiAt LWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250 ZXh0X3Rlc3QuY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1 cmVfY29udGV4dF90ZXN0LmNjCitpbmRleCBjZjIzYzJkZWYuLjVmMjY0YmM5MiAxMDA2NDQKKy0t LSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91 dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3QuY2MKKysrKyBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250 ZXh0X3Rlc3QuY2MKK0BAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgVGVzdENhcHR1cmVDb250ZXh0KCkg eworICAgdWludHB0cl90IHBjID0gUHJvZ3JhbUNvdW50ZXJGcm9tQ29udGV4dChjb250ZXh0XzEp OworIAorICNpZiAhZGVmaW5lZChBRERSRVNTX1NBTklUSVpFUikgJiYgIWRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpICYmIFwKKy0gICAgIWRlZmluZWQoTUVNT1JZX1NBTklUSVpFUikKKysg ICAgIWRlZmluZWQoTUVNT1JZX1NBTklUSVpFUikgJiYgIWRlZmluZWQoQVJDSF9DUFVfUFBDNjRf RkFNSUxZKQorICAgLy8gU2FuaXRpemVycyBjYW4gY2F1c2UgZW5vdWdoIGNvZGUgYmxvYXQgdGhh dCB0aGUg4oCcbmVhcmJ54oCdIGNoZWNrIHdvdWxkCisgICAvLyBsaWtlbHkgZmFpbC4KKyAgIGNv bnN0IHVpbnRwdHJfdCBrUmVmZXJlbmNlUEMgPQorZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3RfdXRpbF9saW51eC5j YyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0 X3Rlc3RfdXRpbF9saW51eC5jYworaW5kZXggMzBhMmFiMjFkLi42MDUwOWYyMWQgMTAwNjQ0Cist LS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv dXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90ZXN0X3V0aWxfbGludXguY2MKKysrKyBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2Mv Y2FwdHVyZV9jb250ZXh0X3Rlc3RfdXRpbF9saW51eC5jYworQEAgLTM1LDYgKzM1LDggQEAgdm9p ZCBTYW5pdHlDaGVja0NvbnRleHQoY29uc3QgTmF0aXZlQ1BVQ29udGV4dCYgY29udGV4dCkgewor ICAgRVhQRUNUX0VRKGNvbnRleHQudWNfbWNvbnRleHQucmVnc1swXSwgRnJvbVBvaW50ZXJDYXN0 PHVpbnRwdHJfdD4oJmNvbnRleHQpKTsKKyAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKQorICAgRVhQRUNUX0VRKGNvbnRleHQudWNfbWNvbnRleHQuZ3JlZ3NbNF0sIEZyb21Qb2lu dGVyQ2FzdDx1aW50cHRyX3Q+KCZjb250ZXh0KSk7CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9Q UEM2NF9GQU1JTFkpCisrICBFWFBFQ1RfRVEoY29udGV4dC51Y19tY29udGV4dC5ncF9yZWdzWzNd LCBGcm9tUG9pbnRlckNhc3Q8dWludHB0cl90PigmY29udGV4dCkpOworICNlbmRpZgorIH0KKyAK K0BAIC00OSw2ICs1MSw4IEBAIHVpbnRwdHJfdCBQcm9ncmFtQ291bnRlckZyb21Db250ZXh0KGNv bnN0IE5hdGl2ZUNQVUNvbnRleHQmIGNvbnRleHQpIHsKKyAgIHJldHVybiBjb250ZXh0LnVjX21j b250ZXh0LnBjOworICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCisgICByZXR1 cm4gY29udGV4dC51Y19tY29udGV4dC5wYzsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0 X0ZBTUlMWSkKKysgIHJldHVybiBjb250ZXh0LnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTklQXTsK KyAjZW5kaWYKKyB9CisgCitAQCAtNjMsNiArNjcsOCBAQCB1aW50cHRyX3QgU3RhY2tQb2ludGVy RnJvbUNvbnRleHQoY29uc3QgTmF0aXZlQ1BVQ29udGV4dCYgY29udGV4dCkgeworICAgcmV0dXJu IGNvbnRleHQudWNfbWNvbnRleHQuc3A7CisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZB TUlMWSkKKyAgIHJldHVybiBjb250ZXh0LnVjX21jb250ZXh0LmdyZWdzWzI5XTsKKysjZWxpZiBk ZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgIHJldHVybiBjb250ZXh0LnVjX21jb250 ZXh0LmdwX3JlZ3NbMV07CisgI2VuZGlmCisgfQorIAorZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC91dGlsL3Bvc2l4L3NpZ25hbHNfdGVzdC5jYyB0aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC91dGlsL3Bvc2l4L3NpZ25hbHNfdGVzdC5jYworaW5kZXggNTRjYzJm MTlmLi4yOThiNWM5OTMgMTAwNjQ0CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9wb3NpeC9zaWduYWxzX3Rlc3QuY2MKKysrKyBh L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGls L3Bvc2l4L3NpZ25hbHNfdGVzdC5jYworQEAgLTQ2LDkgKzQ2LDkgQEAgYm9vbCBDYW5DYXVzZVNp Z25hbChpbnQgc2lnKSB7CisgICByZXR1cm4gc2lnID09IFNJR0FCUlQgfHwKKyAgICAgICAgICBz aWcgPT0gU0lHQUxSTSB8fAorICAgICAgICAgIHNpZyA9PSBTSUdCVVMgfHwKKy0jaWYgIWRlZmlu ZWQoQVJDSF9DUFVfQVJNNjQpCisrI2lmICFkZWZpbmVkKEFSQ0hfQ1BVX0FSTTY0KSAmJiAhZGVm aW5lZChBUkNIX0NQVV9QUEM2NCkKKyAgICAgICAgICBzaWcgPT0gU0lHRlBFIHx8CistI2VuZGlm ICAvLyAhZGVmaW5lZChBUkNIX0NQVV9BUk02NCkKKysjZW5kaWYgIC8vICFkZWZpbmVkKEFSQ0hf Q1BVX0FSTTY0KSAmJiAhZGVmaW5lZChBUkNIX0NQVV9QUEM2NCkKKyAjaWYgZGVmaW5lZChBUkNI X0NQVV9YODZfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FSTUVMKQorICAgICAgICAgIHNp ZyA9PSBTSUdJTEwgfHwKKyAjZW5kaWYgIC8vIGRlZmluZWQoQVJDSF9DUFVfWDg2X0ZBTUlMWSkg fHwgZGVmaW5lZChBUkNIX0NQVV9BUk1FTCkKK0BAIC0xMTcsOSArMTE3LDExIEBAIHZvaWQgQ2F1 c2VTaWduYWwoaW50IHNpZykgeworICAgICAgIGJyZWFrOworICAgICB9CisgCistI2lmICFkZWZp bmVkKEFSQ0hfQ1BVX0FSTTY0KQorKyNpZiAhZGVmaW5lZChBUkNIX0NQVV9BUk02NCkgJiYgIWRl ZmluZWQoQVJDSF9DUFVfUFBDNjQpCisgICAgIC8vIEFSTTY0IGhhcyBoYXJkd2FyZSBpbnRlZ2Vy IGRpdmlzaW9uIGluc3RydWN0aW9ucyB0aGF0IGRvbuKAmXQgZ2VuZXJhdGUgYQorICAgICAvLyB0 cmFwIGZvciBkaXZpZGUtYnktemVybywgc28gdGhpcyBkb2VzbuKAmXQgcHJvZHVjZSBTSUdGUEUu CisrICAgIC8vCisrICAgIC8vIFBQQzY0IGZpeGVkLXBvaW50IGRpdmlzaW9uIGJ5IHplcm8gYWxz byBkb2Vzbid0IHByb2R1Y2UgYSBTSUdGUEUuCisgICAgIGNhc2UgU0lHRlBFOiB7CisgICAgICAg Ly8gT3B0aW1pemF0aW9uIG1ha2VzIHRoaXMgdHJpY2t5LCBzbyBnZXQgemVybyBmcm9tIGEgc3lz dGVtIGNhbGwgbGlrZWx5CisgICAgICAgLy8gdG8gc3VjY2VlZCwgYW5kIHRyeSB0byBkbyBzb21l dGhpbmcgd2l0aCB0aGUgcmVzdWx0LgorQEAgLTEzNyw3ICsxMzksNyBAQCB2b2lkIENhdXNlU2ln bmFsKGludCBzaWcpIHsKKyAgICAgICBmc3RhdChxdW90aWVudCwgJnN0YXRfYnVmKTsKKyAgICAg ICBicmVhazsKKyAgICAgfQorLSNlbmRpZiAgLy8gQVJDSF9DUFVfQVJNNjQKKysjZW5kaWYgIC8v ICFkZWZpbmVkKEFSQ0hfQ1BVX0FSTTY0KSAmJiAhZGVmaW5lZChBUkNIX0NQVV9QUEM2NCkKKyAK KyAjaWYgZGVmaW5lZChBUkNIX0NQVV9YODZfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FS TUVMKQorICAgICBjYXNlIFNJR0lMTDogeworZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9kYXYxZC9C VUlMRC5nbiB0aGlyZF9wYXJ0eS9kYXYxZC9CVUlMRC5nbgoraW5kZXggNmI0NTY2ZmMzLi5jMDdm NzMyYWQgMTAwNjQ0CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvZGF2 MWQvQlVJTEQuZ24KKysrKyBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYx ZC9CVUlMRC5nbgorQEAgLTE4NCw2ICsxODQsOCBAQCBzdGF0aWNfbGlicmFyeSgiZGF2MWRfOGJp dCIpIHsKKyAgICAgc291cmNlcyArPSBhcm1fdGVtcGxhdGVfc291cmNlcworICAgfSBlbHNlIGlm IChjdXJyZW50X2NwdSA9PSAiYXJtNjQiKSB7CisgICAgIHNvdXJjZXMgKz0gYXJtX3RlbXBsYXRl X3NvdXJjZXMKKysgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgeworKyAgICBz b3VyY2VzICs9IHBwYzY0X3RlbXBsYXRlX3NvdXJjZXMKKyAgIH0KKyAKKyAgIGNmbGFncyA9IGRh djFkX2NvcHRzCitAQCAtMjEyLDYgKzIxNCw4IEBAIHN0YXRpY19saWJyYXJ5KCJkYXYxZF8xMGJp dCIpIHsKKyAgICAgc291cmNlcyArPSBhcm1fdGVtcGxhdGVfc291cmNlcworICAgfSBlbHNlIGlm IChjdXJyZW50X2NwdSA9PSAiYXJtNjQiKSB7CisgICAgIHNvdXJjZXMgKz0gYXJtX3RlbXBsYXRl X3NvdXJjZXMKKysgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgeworKyAgICBz b3VyY2VzICs9IHBwYzY0X3RlbXBsYXRlX3NvdXJjZXMKKyAgIH0KKyAKKyAgIGNmbGFncyA9IGRh djFkX2NvcHRzCitAQCAtMjYzLDYgKzI2NywyMSBAQCBpZiAoY3VycmVudF9jcHUgPT0gIng4NiIg fHwgY3VycmVudF9jcHUgPT0gIng2NCIpIHsKKyAgICAgICBkZWZpbmVzID0gWyAiUFJFRklYIiBd CisgICAgIH0KKyAKKysgICAgY2ZsYWdzID0gZGF2MWRfY29wdHMKKysgIH0KKyt9IGVsc2UgaWYg KGN1cnJlbnRfY3B1ID09ICJwcGM2NCIpIHsKKysgIHN0YXRpY19saWJyYXJ5KCJkYXYxZF9wcGMi KSB7CisrICAgIHNvdXJjZXMgPSBbCisrICAgICAgImxpYmRhdjFkL3NyYy9wcGMvY3B1LmMiLAor KyAgICAgICJsaWJkYXYxZC9zcmMvcHBjL2NwdS5oIiwKKysgICAgXQorKworKyAgICBjb25maWdz IC09IFsgIi8vYnVpbGQvY29uZmlnL2NvbXBpbGVyOmNocm9taXVtX2NvZGUiIF0KKysgICAgY29u ZmlncyArPSBbCisrICAgICAgIi8vYnVpbGQvY29uZmlnL2NvbXBpbGVyOm5vX2Nocm9taXVtX2Nv ZGUiLAorKyAgICAgICI6ZGF2MWRfY29uZmlnIiwKKysgICAgXQorKworICAgICBjZmxhZ3MgPSBk YXYxZF9jb3B0cworICAgfQorIH0KK0BAIC0yOTIsNSArMzExLDcgQEAgc3RhdGljX2xpYnJhcnko ImRhdjFkIikgeworICAgICB9CisgICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJhcm0iIHx8 IGN1cnJlbnRfY3B1ID09ICJhcm02NCIpIHsKKyAgICAgZGVwcyArPSBbICI6ZGF2MWRfYXJtIiBd CisrICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJwcGM2NCIpIHsKKysgICAgZGVwcyArPSBb ICI6ZGF2MWRfcHBjIiBdCisgICB9CisgfQorZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9kYXYxZC9j b25maWcvbGludXgvcHBjNjQvY29uZmlnLmggdGhpcmRfcGFydHkvZGF2MWQvY29uZmlnL2xpbnV4 L3BwYzY0L2NvbmZpZy5oCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwLi45 ZmJiZjc1Y2MKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS8vZGV2L251bGwKKysrKyBhL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYxZC9jb25maWcvbGludXgvcHBjNjQv Y29uZmlnLmgKK0BAIC0wLDAgKzEsMzkgQEAKKysvKgorKyAqIEF1dG9nZW5lcmF0ZWQgYnkgdGhl IE1lc29uIGJ1aWxkIHN5c3RlbS4KKysgKiBEbyBub3QgZWRpdCwgeW91ciBjaGFuZ2VzIHdpbGwg YmUgbG9zdC4KKysgKi8KKysKKysjcHJhZ21hIG9uY2UKKysKKysjZGVmaW5lIEFSQ0hfQUFSQ0g2 NCAwCisrCisrI2RlZmluZSBBUkNIX0FSTSAwCisrCisrI2RlZmluZSBBUkNIX1BQQzY0TEUgMQor KworKyNkZWZpbmUgQVJDSF9YODYgMAorKworKyNkZWZpbmUgQVJDSF9YODZfMzIgMAorKworKyNk ZWZpbmUgQVJDSF9YODZfNjQgMAorKworKyNkZWZpbmUgQ09ORklHXzE2QlBDIDEKKysKKysjZGVm aW5lIENPTkZJR184QlBDIDEKKysKKysvLyAjZGVmaW5lIENPTkZJR19MT0cgMSAtLSBMb2dnaW5n IGlzIGNvbnRyb2xsZWQgYnkgQ2hyb21pdW0KKysKKysjZGVmaW5lIEVORElBTk5FU1NfQklHIDAK KysKKysjZGVmaW5lIEhBVkVfQVNNIDEKKysKKysjZGVmaW5lIEhBVkVfQ0xPQ0tfR0VUVElNRSAx CisrCisrI2RlZmluZSBIQVZFX0RMU1lNIDEKKysKKysjZGVmaW5lIEhBVkVfR0VUQVVYVkFMIDEK KysKKysjZGVmaW5lIEhBVkVfUE9TSVhfTUVNQUxJR04gMQorKworKyNkZWZpbmUgSEFWRV9VTklT VERfSCAxCisrCitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2RhdjFkL2RhdjFkX2dlbmVyYXRlZC5n bmkgdGhpcmRfcGFydHkvZGF2MWQvZGF2MWRfZ2VuZXJhdGVkLmduaQoraW5kZXggYzU5Y2IwODIx Li4zMDYwMjg0YTggMTAwNjQ0CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvZGF2MWQvZGF2MWRfZ2VuZXJhdGVkLmduaQorKysrIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2RhdjFkL2RhdjFkX2dlbmVyYXRlZC5nbmkKK0BAIC04Miw2ICs4MiwxMSBA QCBhcm1fdGVtcGxhdGVfc291cmNlcyA9IFsKKyAgICJsaWJkYXYxZC9zcmMvYXJtL21jX2luaXRf dG1wbC5jIiwKKyBdCisgCisrcHBjNjRfdGVtcGxhdGVfc291cmNlcyA9IFsKKysgICJsaWJkYXYx ZC9zcmMvcHBjL2NkZWZfaW5pdF90bXBsLmMiLAorKyAgImxpYmRhdjFkL3NyYy9wcGMvbG9vcHJl c3RvcmF0aW9uX2luaXRfdG1wbC5jIiwKKytdCisrCisgdGVtcGxhdGVfc291cmNlcyA9IFsKKyAg ICJsaWJkYXYxZC9zcmMvY2RlZl9hcHBseV90bXBsLmMiLAorICAgImxpYmRhdjFkL3NyYy9jZGVm X3RtcGwuYyIsCitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2RhdjFkL2dlbmVyYXRlX3NvdXJjZS5w eSB0aGlyZF9wYXJ0eS9kYXYxZC9nZW5lcmF0ZV9zb3VyY2UucHkKK2luZGV4IDlhYjVlMDBiOC4u YWQzZmVmZmVlIDEwMDc1NQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2RhdjFkL2dlbmVyYXRlX3NvdXJjZS5weS5vcmlnCTIwMjEtMDQtMTUgMTM6MTE6MTAuNDg5NTc5 NDkwIC0wNDAwCisrKysgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvZGF2MWQv Z2VuZXJhdGVfc291cmNlLnB5CTIwMjEtMDQtMTUgMTM6MTk6MDguMjI5OTEzODkyIC0wNDAwCitA QCAtNTcsNiArNTcsOCBAQAorICAgX1dyaXRlQXJyYXkoZmQsICJhcm02NF9hc21fc291cmNlcyIs IF9HbG9iKCJsaWJkYXYxZC9zcmMvYXJtLzY0LyouUyIpKQorICAgX1dyaXRlQXJyYXkoZmQsICJh cm1fdGVtcGxhdGVfc291cmNlcyIsIF9HbG9iKCJsaWJkYXYxZC9zcmMvYXJtLypfdG1wbC5jIikp CisgCisrICBfV3JpdGVBcnJheShmZCwgInBwYzY0X3RlbXBsYXRlX3NvdXJjZXMiLCBnbG9iLmds b2IoImxpYmRhdjFkL3NyYy9wcGMvKl90bXBsLmMiKSkKKysKKyAgIHRlbXBsYXRlX3NvdXJjZXMg PSBfR2xvYigibGliZGF2MWQvc3JjLypfdG1wbC5jIikKKyAgIF9Xcml0ZUFycmF5KGZkLCAidGVt cGxhdGVfc291cmNlcyIsIHRlbXBsYXRlX3NvdXJjZXMpCisgCitkaWZmIC0tZ2l0IHRoaXJkX3Bh cnR5L2RhdjFkL2xpYmRhdjFkL3NyYy9wcGMvdHlwZXMuaCB0aGlyZF9wYXJ0eS9kYXYxZC9saWJk YXYxZC9zcmMvcHBjL3R5cGVzLmgKK2luZGV4IDBiNGJkNzJmMC4uYTBjYWE1ZTcxIDEwMDY0NAor LS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2RhdjFkL2xpYmRhdjFkL3Ny Yy9wcGMvdHlwZXMuaAorKysrIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Rh djFkL2xpYmRhdjFkL3NyYy9wcGMvdHlwZXMuaAorQEAgLTUxLDQgKzUxLDE5IEBACisgI2RlZmlu ZSB1MTZsX3RvX2kzMih2KSAoKGkzMng0KSB2ZWNfbWVyZ2VsKCh1MTZ4OCkgdiwgdmVjX3NwbGF0 X3UxNigwKSkpCisgI2RlZmluZSBpMTZsX3RvX2kzMih2KSAoKGkzMng0KSB2ZWNfdW5wYWNrbCgo aTE2eDgpdikpCisgCisrI2lmIGRlZmluZWQoX19jbGFuZ19fKQorKyN1bmRlZiB2ZWNfc3BsYXRz CisrI2RlZmluZSB2ZWNfc3BsYXRzKE4pICAgICAgICAgICAgICAgICAgICAgXAorKyAgICBfR2Vu ZXJpYygoTiksICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAgIHVuc2lnbmVkIGNo YXI6ICAgICAgKCh1OHgxNikoTikpLCBcCisrICAgICAgICBzaWduZWQgY2hhcjogICAgICAgICgo aTh4MTYpKE4pKSwgXAorKyAgICAgICAgdW5zaWduZWQgc2hvcnQ6ICAgICAoKHUxNng4KShOKSks IFwKKysgICAgICAgIHNpZ25lZCBzaG9ydDogICAgICAgKChpMTZ4OCkoTikpLCBcCisrICAgICAg ICB1bnNpZ25lZCBpbnQ6ICAgICAgICgodTMyeDQpKE4pKSwgXAorKyAgICAgICAgc2lnbmVkIGlu dDogICAgICAgICAoKGkzMng0KShOKSksIFwKKysgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZzog KCh1NjR4MikoTikpLCBcCisrICAgICAgICBzaWduZWQgbG9uZyBsb25nOiAgICgoaTY0eDIpKE4p KSAgXAorKyAgICApCisrI2VuZGlmCisrCisgI2VuZGlmIC8qIERBVjFEX1NSQ19QUENfVFlQRVNf SCAqLworZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9laWdlbjMvQlVJTEQuZ24gdGhpcmRfcGFydHkv ZWlnZW4zL0JVSUxELmduCitpbmRleCAwZDRlMTg0Li5mMmNlNDg0IDEwMDY0NAorLS0tIGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2VpZ2VuMy9CVUlMRC5nbgorKysrIGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2VpZ2VuMy9CVUlMRC5nbgorQEAgLTIyLDQg KzIyLDggQEAgY29uZmlnKCJlaWdlbl9pbmNsdWRlcyIpIHsKKyAgICAgIyBmb3IgdGhpcyBjb21w b25lbnQgb24gV2luZG93cyBvbiBBcm0gZHVlIHRvIGNvbXBpbGF0aW9uIGVycm9ycy4KKyAgICAg ZGVmaW5lcyArPSBbICJFSUdFTl9ET05UX1ZFQ1RPUklaRSIgXQorICAgfQorKworKyAgaWYgKHRh cmdldF9jcHUgPT0gInBwYzY0IikgeworKyAgICBkZWZpbmVzICs9IFsgIkVJR0VOX0RPTlRfVkVD VE9SSVpFIiBdCisrICB9CisgfQorCitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2xpYmFvbS9CVUlM RC5nbiB0aGlyZF9wYXJ0eS9saWJhb20vQlVJTEQuZ24KK2luZGV4IDliMDY1YmQuLmRmM2FmMDIg MTAwNjQ0CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbGliYW9tL0JV SUxELmduCisrKysgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbGliYW9tL0JV SUxELmduCitAQCAtMzYsNiArMzYsOCBAQCBpZiAoZW5hYmxlX2xpYmFvbSkgeworICAgICB9IGVs c2UgeworICAgICAgIGNwdV9hcmNoX2Z1bGwgPSAiYXJtIgorICAgICB9CisrICB9IGVsc2UgaWYg KGN1cnJlbnRfY3B1ID09ICJwcGM2NCIpIHsKKysgICAgY3B1X2FyY2hfZnVsbCA9ICJnZW5lcmlj IgorICAgfSBlbHNlIHsKKyAgICAgY3B1X2FyY2hfZnVsbCA9IGN1cnJlbnRfY3B1CisgICB9Citk aWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2xpYmdhdjEvb3B0aW9ucy5nbmkgdGhpcmRfcGFydHkvbGli Z2F2MS9vcHRpb25zLmduaQoraW5kZXggMTFhZjgwMS4uNGIxM2QwNSAxMDA2NDQKKy0tLSBhL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9saWJnYXYxL29wdGlvbnMuZ25pCisrKysg YS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbGliZ2F2MS9vcHRpb25zLmduaQor QEAgLTEyLDUgKzEyLDUgQEAgZGVjbGFyZV9hcmdzKCkgeworICAgICAgIGlzX2Nocm9tZW9zX2Fz aCAmJiAodGFyZ2V0X2NwdSA9PSAiYXJtIiB8fCB0YXJnZXRfY3B1ID09ICJhcm02NCIpCisgICB1 c2VfbGliZ2F2MV9wYXJzZXIgPQorICAgICAgIChpc19jaHJvbWVvcyB8fCBpc19saW51eCB8fCBp c193aW4pICYmCistICAgICAgKHRhcmdldF9jcHUgPT0gIng4NiIgfHwgdGFyZ2V0X2NwdSA9PSAi eDY0IiB8fCB0YXJnZXRfY3B1ID09ICJhcm02NCIpCisrICAgICAgKHRhcmdldF9jcHUgPT0gIng4 NiIgfHwgdGFyZ2V0X2NwdSA9PSAieDY0IiB8fCB0YXJnZXRfY3B1ID09ICJhcm02NCIgfHwgdGFy Z2V0X2NwdSA9PSAicHBjNjQiKQorIH0KK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvbHNzL2xpbnV4 X3N5c2NhbGxfc3VwcG9ydC5oIHRoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQu aAoraW5kZXggZTRhYzIyNjQ0Li4xYzU3MDE1ZGIgMTAwNjQ0CistLS0gYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oCisrKysgYS9z cmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9y dC5oCitAQCAtMzk0Nyw3ICszOTQ3LDcgQEAgc3RydWN0IGtlcm5lbF9zdGF0ZnMgeworICAgICAg IExTU19SRUcoMiwgYnVmKTsKKyAgICAgICBMU1NfQk9EWSh2b2lkKiwgbW1hcDIsICIwIihfX3Iy KSk7CisgICAgIH0KKy0jZWxzZQorKyNlbGlmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pIC8qIHBw YzY0IGRvZXNuJ3QgaGF2ZSBtbWFwMiAqLworICAgICAjZGVmaW5lIF9fTlJfX21tYXAyIF9fTlJf bW1hcDIKKyAgICAgTFNTX0lOTElORSBfc3lzY2FsbDYodm9pZCosIF9tbWFwMiwgICAgICAgICAg ICB2b2lkKiwgcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90LCAgICAgICAgICAg ICAgICAgICBsLCBpbnQsICAgICAgICAgICAgICAgcCwKK0BAIC00MDU4LDcgKzQwNTgsNyBAQCBz dHJ1Y3Qga2VybmVsX3N0YXRmcyB7CisgICAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgIGRl ZmluZWQoX19BUk1fQVJDSF8zX18pIHx8IGRlZmluZWQoX19BUk1fRUFCSV9fKSB8fCAgICAgICAg ICAgICAgICAgICAgIFwKKyAgICAgIChkZWZpbmVkKF9fbWlwc19fKSAmJiBfTUlQU19TSU0gPT0g X01JUFNfU0lNX0FCSTMyKSB8fCAgICAgICAgICAgICAgICAgICBcCistICAgICAgZGVmaW5lZChf X1BQQ19fKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorKyAgICAgKGRlZmluZWQoX19QUENfXykgJiYgIWRlZmluZWQoX19wb3dlcnBjNjRf XykpIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgICAoZGVmaW5lZChfX3MzOTBfXykgJiYgIWRlZmluZWQoX19zMzkweF9fKSkKKyAg ICAgLyogT24gdGhlc2UgYXJjaGl0ZWN0dXJlcywgaW1wbGVtZW50IG1tYXAoKSB3aXRoIG1tYXAy KCkuICovCisgICAgIExTU19JTkxJTkUgdm9pZCogTFNTX05BTUUobW1hcCkodm9pZCAqcywgc2l6 ZV90IGwsIGludCBwLCBpbnQgZiwgaW50IGQsCitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L3BkZml1 bS90aGlyZF9wYXJ0eS9saWJwbmcxNi9wbmdwcml2LmggdGhpcmRfcGFydHkvcGRmaXVtL3RoaXJk X3BhcnR5L2xpYnBuZzE2L3BuZ3ByaXYuaAoraW5kZXggNTgzYzI2Zi4uZTAzZDY5NyAxMDA2NDQK Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9wZGZpdW0vdGhpcmRfcGFy dHkvbGlicG5nMTYvcG5ncHJpdi5oCisrKysgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvcGRmaXVtL3RoaXJkX3BhcnR5L2xpYnBuZzE2L3BuZ3ByaXYuaAorQEAgLTE5NiwxMSAr MTk2LDcgQEAKKyAjZW5kaWYKKyAKKyAjaWZuZGVmIFBOR19QT1dFUlBDX1ZTWF9PUFQKKy0jICBp ZiBkZWZpbmVkKF9fUFBDNjRfXykgJiYgZGVmaW5lZChfX0FMVElWRUNfXykgJiYgZGVmaW5lZChf X1ZTWF9fKQorLSMgICAgIGRlZmluZSBQTkdfUE9XRVJQQ19WU1hfT1BUIDIKKy0jICBlbHNlCist IyAgICAgZGVmaW5lIFBOR19QT1dFUlBDX1ZTWF9PUFQgMAorLSMgIGVuZGlmCisrIyAgZGVmaW5l IFBOR19QT1dFUlBDX1ZTWF9PUFQgMAorICNlbmRpZgorIAorICNpZm5kZWYgUE5HX0lOVEVMX1NT RV9PUFQKK2RpZmYgLS1naXQgdGhpcmRfcGFydHkvcGZmZnQvc3JjL3BmZmZ0LmMgdGhpcmRfcGFy dHkvcGZmZnQvc3JjL3BmZmZ0LmMKK2luZGV4IGJkYWM0ZDc4NC4uNTFlMGYyY2FjIDEwMDY0NAor LS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3BmZmZ0L3NyYy9wZmZmdC5j CisrKysgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvcGZmZnQvc3JjL3BmZmZ0 LmMKK0BAIC0xMDAsNiArMTAwLDcgQEAKKyAgICBBbHRpdmVjIHN1cHBvcnQgbWFjcm9zIAorICov CisgI2lmICFkZWZpbmVkKFBGRkZUX1NJTURfRElTQUJMRSkgJiYgKGRlZmluZWQoX19wcGNfXykg fHwgZGVmaW5lZChfX3BwYzY0X18pKQorKyNpbmNsdWRlIDxhbHRpdmVjLmg+CisgdHlwZWRlZiB2 ZWN0b3IgZmxvYXQgdjRzZjsKKyAjICBkZWZpbmUgU0lNRF9TWiA0CisgIyAgZGVmaW5lIFZaRVJP KCkgKCh2ZWN0b3IgZmxvYXQpIHZlY19zcGxhdF91OCgwKSkKK2RpZmYgLS1naXQgdGhpcmRfcGFy dHkvc2tpYS9zcmMvc2tzbC9Ta1NMU3RyaW5nLmNwcCB0aGlyZF9wYXJ0eS9za2lhL3NyYy9za3Ns L1NrU0xTdHJpbmcuY3BwCitpbmRleCBlYzNlNTY5NjQuLjRjZjg5OTlhMiAxMDA2NDQKKy0tLSBh L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9za2lhL3NyYy9za3NsL1NrU0xTdHJp bmcuY3BwCisrKysgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvc2tpYS9zcmMv c2tzbC9Ta1NMU3RyaW5nLmNwcAorQEAgLTIzNCw3ICsyMzQsMTIgQEAgU3RyaW5nIHRvX3N0cmlu Zyhkb3VibGUgdmFsdWUpIHsKKyAgICAgaWYgKG5lZWRzRG90WmVybykgeworICAgICAgICAgYnVm ZmVyIDw8ICIuMCI7CisgICAgIH0KKy0gICAgcmV0dXJuIFN0cmluZyhidWZmZXIuc3RyKCkuY19z dHIoKSk7CisrCisrICAgIHN0ZDo6c3RyaW5nIHJldChidWZmZXIuc3RyKCkpOworKyAgICBpZiAo c2lnbmJpdCh2YWx1ZSkgJiYgcmV0WzBdID09ICcuJykgeworKyAgICAgICAgcmV0WzBdID0gJy0n OworKyAgICB9CisrICAgIHJldHVybiBTdHJpbmcocmV0LmNfc3RyKCkpOworIH0KKyAKKyBib29s IHN0b2QoY29uc3QgU3RyaW5nRnJhZ21lbnQmIHMsIFNLU0xfRkxPQVQqIHZhbHVlKSB7CitkaWZm IC0tZ2l0IHRoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9uL3NxbGl0ZTMuYyB0aGly ZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbi9zcWxpdGUzLmMKK2luZGV4IDZiNGE3ODk5 ZC4uYjhjN2ZlNDE0IDEwMDY0NAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9uL3NxbGl0ZTMuYworKysrIGEvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9uL3NxbGl0ZTMuYwor QEAgLTE0NDc0LDcgKzE0NDc0LDggQEAgdHlwZWRlZiBJTlQxNl9UWVBFIExvZ0VzdDsKKyAjIGlm IGRlZmluZWQoaTM4NikgICAgICB8fCBkZWZpbmVkKF9faTM4Nl9fKSAgICAgIHx8IGRlZmluZWQo X01fSVg4NikgfHwgICAgXAorICAgICAgZGVmaW5lZChfX3g4Nl82NCkgIHx8IGRlZmluZWQoX194 ODZfNjRfXykgICAgfHwgZGVmaW5lZChfTV9YNjQpICB8fCAgICBcCisgICAgICBkZWZpbmVkKF9N X0FNRDY0KSAgfHwgZGVmaW5lZChfTV9BUk0pICAgICAgICB8fCBkZWZpbmVkKF9feDg2KSAgIHx8 ICAgIFwKKy0gICAgIGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVMX18p IHx8IGRlZmluZWQoX01fQVJNNjQpCisrICAgICBkZWZpbmVkKF9fQVJNRUxfXykgfHwgZGVmaW5l ZChfX0FBUkNINjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0KSB8fCAgIFwKKysgICAgIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykgJiYgKF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfTElUVExFX0VO RElBTl9fKQorICMgICBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICAxMjM0CisgIyBlbGlmIGRl ZmluZWQoc3BhcmMpICAgICB8fCBkZWZpbmVkKF9fcHBjX18pIHx8IFwKKyAgICAgICAgZGVmaW5l ZChfX0FSTUVCX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUJfXykKK2RpZmYgLS1naXQgdGhpcmRf cGFydHkvc3FsaXRlL3NyYy9hbWFsZ2FtYXRpb25fZGV2L3NxbGl0ZTMuYyB0aGlyZF9wYXJ0eS9z cWxpdGUvc3JjL2FtYWxnYW1hdGlvbl9kZXYvc3FsaXRlMy5jCitpbmRleCBkMzBjOWI3ZGUuLmNm NzVhNjlkOSAxMDA2NDQKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9z cWxpdGUvc3JjL2FtYWxnYW1hdGlvbl9kZXYvc3FsaXRlMy5jCisrKysgYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9hbWFsZ2FtYXRpb25fZGV2L3NxbGl0ZTMu YworQEAgLTE0NDg3LDcgKzE0NDg3LDggQEAgdHlwZWRlZiBJTlQxNl9UWVBFIExvZ0VzdDsKKyAj IGlmIGRlZmluZWQoaTM4NikgICAgICB8fCBkZWZpbmVkKF9faTM4Nl9fKSAgICAgIHx8IGRlZmlu ZWQoX01fSVg4NikgfHwgICAgXAorICAgICAgZGVmaW5lZChfX3g4Nl82NCkgIHx8IGRlZmluZWQo X194ODZfNjRfXykgICAgfHwgZGVmaW5lZChfTV9YNjQpICB8fCAgICBcCisgICAgICBkZWZpbmVk KF9NX0FNRDY0KSAgfHwgZGVmaW5lZChfTV9BUk0pICAgICAgICB8fCBkZWZpbmVkKF9feDg2KSAg IHx8ICAgIFwKKy0gICAgIGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVM X18pIHx8IGRlZmluZWQoX01fQVJNNjQpCisrICAgICBkZWZpbmVkKF9fQVJNRUxfXykgfHwgZGVm aW5lZChfX0FBUkNINjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0KSB8fCAgIFwKKysgICAgIGRl ZmluZWQoX19wb3dlcnBjNjRfXykgJiYgKF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfTElUVExF X0VORElBTl9fKQorICMgICBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICAxMjM0CisgIyBlbGlm IGRlZmluZWQoc3BhcmMpICAgICB8fCBkZWZpbmVkKF9fcHBjX18pIHx8IFwKKyAgICAgICAgZGVm aW5lZChfX0FSTUVCX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUJfXykKK2RpZmYgLS1naXQgdGhp cmRfcGFydHkvc3FsaXRlL3NyYy9leHQvcnRyZWUvcnRyZWUuYyB0aGlyZF9wYXJ0eS9zcWxpdGUv c3JjL2V4dC9ydHJlZS9ydHJlZS5jCitpbmRleCBmNWI1N2E1ZTIuLjgwYTJkMGFkOCAxMDA2NDQK Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2V4dC9y dHJlZS9ydHJlZS5jCisrKysgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvc3Fs aXRlL3NyYy9leHQvcnRyZWUvcnRyZWUuYworQEAgLTQ1MCw3ICs0NTAsNyBAQCBzdHJ1Y3QgUnRy ZWVNYXRjaEFyZyB7CisgI2lmIGRlZmluZWQoaTM4NikgICAgIHx8IGRlZmluZWQoX19pMzg2X18p ICAgfHwgZGVmaW5lZChfTV9JWDg2KSB8fCAgICBcCisgICAgIGRlZmluZWQoX194ODZfNjQpIHx8 IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfTV9YNjQpICB8fCAgICBcCisgICAgIGRl ZmluZWQoX01fQU1ENjQpIHx8IGRlZmluZWQoX01fQVJNKSAgICAgfHwgZGVmaW5lZChfX3g4Nikg ICB8fCAgICBcCistICAgIGRlZmluZWQoX19hcm1fXykKKysgICAgZGVmaW5lZChfX2FybV9fKSB8 fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmIChfX0JZVEVfT1JERVJfXyA9PSBfX09SREVSX0xJ VFRMRV9FTkRJQU5fXykKKyAjIGRlZmluZSBTUUxJVEVfQllURU9SREVSICAgIDEyMzQKKyAjZWxp ZiBkZWZpbmVkKHNwYXJjKSAgICB8fCBkZWZpbmVkKF9fcHBjX18pCisgIyBkZWZpbmUgU1FMSVRF X0JZVEVPUkRFUiAgICA0MzIxCitkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvc3Jj L3NxbGl0ZUludC5oIHRoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvc3JjL3NxbGl0ZUludC5oCitpbmRl eCAyNDUwNzBkNGYuLmIyNTE2NGU5NSAxMDA2NDQKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL3NyYy9zcWxpdGVJbnQuaAorKysrIGEvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvc3JjL3NxbGl0ZUludC5oCitAQCAt ODc3LDcgKzg3Nyw4IEBAIHR5cGVkZWYgSU5UMTZfVFlQRSBMb2dFc3Q7CisgIyBpZiBkZWZpbmVk KGkzODYpICAgICAgfHwgZGVmaW5lZChfX2kzODZfXykgICAgICB8fCBkZWZpbmVkKF9NX0lYODYp IHx8ICAgIFwKKyAgICAgIGRlZmluZWQoX194ODZfNjQpICB8fCBkZWZpbmVkKF9feDg2XzY0X18p ICAgIHx8IGRlZmluZWQoX01fWDY0KSAgfHwgICAgXAorICAgICAgZGVmaW5lZChfTV9BTUQ2NCkg IHx8IGRlZmluZWQoX01fQVJNKSAgICAgICAgfHwgZGVmaW5lZChfX3g4NikgICB8fCAgICBcCist ICAgICBkZWZpbmVkKF9fQVJNRUxfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFTF9fKSB8fCBkZWZp bmVkKF9NX0FSTTY0KQorKyAgICAgZGVmaW5lZChfX0FSTUVMX18pIHx8IGRlZmluZWQoX19BQVJD SDY0RUxfXykgfHwgZGVmaW5lZChfTV9BUk02NCkgfHwgXAorKyAgICAgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKSAmJiAoX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9MSVRUTEVfRU5ESUFOX18pCisg IyAgIGRlZmluZSBTUUxJVEVfQllURU9SREVSICAgIDEyMzQKKyAjIGVsaWYgZGVmaW5lZChzcGFy YykgICAgIHx8IGRlZmluZWQoX19wcGNfXykgfHwgXAorICAgICAgICBkZWZpbmVkKF9fQVJNRUJf XykgfHwgZGVmaW5lZChfX0FBUkNINjRFQl9fKQorZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS93ZWJy dGMvbW9kdWxlcy9kZXNrdG9wX2NhcHR1cmUvZGlmZmVyX2Jsb2NrLmNjIHRoaXJkX3BhcnR5L3dl YnJ0Yy9tb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9kaWZmZXJfYmxvY2suY2MKK2luZGV4IDRmMGM1 NDMwYy4uNTRlZTA4MjllIDEwMDY0NAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9kaWZmZXJfYmxvY2suY2MKKysr KyBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9kZXNr dG9wX2NhcHR1cmUvZGlmZmVyX2Jsb2NrLmNjCitAQCAtMzAsMTEgKzMwLDcgQEAgYm9vbCBWZWN0 b3JEaWZmZXJlbmNlKGNvbnN0IHVpbnQ4X3QqIGltYWdlMSwgY29uc3QgdWludDhfdCogaW1hZ2Uy KSB7CisgICBzdGF0aWMgYm9vbCAoKmRpZmZfcHJvYykoY29uc3QgdWludDhfdCosIGNvbnN0IHVp bnQ4X3QqKSA9IG51bGxwdHI7CisgCisgICBpZiAoIWRpZmZfcHJvYykgeworLSNpZiBkZWZpbmVk KFdFQlJUQ19BUkNIX0FSTV9GQU1JTFkpIHx8IGRlZmluZWQoV0VCUlRDX0FSQ0hfTUlQU19GQU1J TFkpCistICAgIC8vIEZvciBBUk0gYW5kIE1JUFMgcHJvY2Vzc29ycywgYWx3YXlzIHVzZSBDIHZl cnNpb24uCistICAgIC8vIFRPRE8oaGNsYW0pOiBJbXBsZW1lbnQgYSBORU9OIHZlcnNpb24uCist ICAgIGRpZmZfcHJvYyA9ICZWZWN0b3JEaWZmZXJlbmNlX0M7CistI2Vsc2UKKysjaWYgZGVmaW5l ZChXRUJSVENfQVJDSF9YODZfRkFNSUxZKQorICAgICBib29sIGhhdmVfc3NlMiA9IEdldENQVUlu Zm8oa1NTRTIpICE9IDA7CisgICAgIC8vIEZvciB4ODYgcHJvY2Vzc29ycywgY2hlY2sgaWYgU1NF MiBpcyBzdXBwb3J0ZWQuCisgICAgIGlmIChoYXZlX3NzZTIgJiYga0Jsb2NrU2l6ZSA9PSAzMikg eworQEAgLTQ0LDYgKzQwLDEwIEBAIGJvb2wgVmVjdG9yRGlmZmVyZW5jZShjb25zdCB1aW50OF90 KiBpbWFnZTEsIGNvbnN0IHVpbnQ4X3QqIGltYWdlMikgeworICAgICB9IGVsc2UgeworICAgICAg IGRpZmZfcHJvYyA9ICZWZWN0b3JEaWZmZXJlbmNlX0M7CisgICAgIH0KKysjZWxzZQorKyAgICAv LyBGb3Igb3RoZXIgcHJvY2Vzc29ycywgYWx3YXlzIHVzZSBDIHZlcnNpb24uCisrICAgIC8vIFRP RE8oaGNsYW0pOiBJbXBsZW1lbnQgYSBORU9OIHZlcnNpb24uCisrICAgIGRpZmZfcHJvYyA9ICZW ZWN0b3JEaWZmZXJlbmNlX0M7CisgI2VuZGlmCisgICB9CisgCitkaWZmIC0tZ2l0IHRoaXJkX3Bh cnR5L3dlYnJ0Yy9ydGNfYmFzZS9zeXN0ZW0vYXJjaC5oIHRoaXJkX3BhcnR5L3dlYnJ0Yy9ydGNf YmFzZS9zeXN0ZW0vYXJjaC5oCitpbmRleCBiZTIzNjdiODUuLmJlNGVlNDIzMyAxMDA2NDQKKy0t LSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS93ZWJydGMvcnRjX2Jhc2Uvc3lz dGVtL2FyY2guaAorKysrIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3dlYnJ0 Yy9ydGNfYmFzZS9zeXN0ZW0vYXJjaC5oCitAQCAtNzksNiArNzksMTggQEAKKyAjZWxpZiBkZWZp bmVkKF9fRU1TQ1JJUFRFTl9fKQorICNkZWZpbmUgV0VCUlRDX0FSQ0hfMzJfQklUUworICNkZWZp bmUgV0VCUlRDX0FSQ0hfTElUVExFX0VORElBTgorKyNlbGlmIGRlZmluZWQoX19QUENfXykKKysj ZGVmaW5lIFdFQlJUQ19BUkNIX1BQQ19GQU1JTFkKKysjaWYgX19CWVRFX09SREVSX18gPT0gX19P UkRFUl9MSVRUTEVfRU5ESUFOX18KKysjZGVmaW5lIFdFQlJUQ19BUkNIX0xJVFRMRV9FTkRJQU4K KysjZWxzZQorKyNkZWZpbmUgV0VCUlRDX0FSQ0hfQklHX0VORElBTgorKyNlbmRpZgorKyNpZiBk ZWZpbmVkKF9fTFA2NF9fKQorKyNkZWZpbmUgV0VCUlRDX0FSQ0hfNjRfQklUUworKyNlbHNlCisr I2RlZmluZSBXRUJSVENfQVJDSF8zMl9CSVRTCisrI2VuZGlmCisgI2Vsc2UKKyAjZXJyb3IgUGxl YXNlIGFkZCBzdXBwb3J0IGZvciB5b3VyIGFyY2hpdGVjdHVyZSBpbiBydGNfYmFzZS9zeXN0ZW0v YXJjaC5oCisgI2VuZGlmCitkaWZmIC0tZ2l0IHY4L0JVSUxELmduIHY4L0JVSUxELmduCitpbmRl eCBmMzk1MjlhM2EuLmU4NGZjNDQ5ZSAxMDA2NDQKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS92OC9CVUlMRC5nbgorKysrIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L0JVSUxELmduCitA QCAtODUwLDYgKzg1MCwxMiBAQCBjb25maWcoInRvb2xjaGFpbiIpIHsKKyAgICAgfQorICAgICBp ZiAoaG9zdF9ieXRlb3JkZXIgPT0gImxpdHRsZSIpIHsKKyAgICAgICBkZWZpbmVzICs9IFsgIlY4 X1RBUkdFVF9BUkNIX1BQQ19MRSIgXQorKyAgICAgIGNmbGFncyArPSBbCisrICAgICAgICAjIEVu YWJsZSB1c2FnZSBvZiBBbHRpVmVjLCBWU1gsIGFuZCBvdGhlciBQT1dFUjggYW5kIGhpZ2hlciBm ZWF0dXJlcworKyAgICAgICAgIi1tY3B1PXBvd2VyOCIsCisrICAgICAgICAiLW1hbHRpdmVjIiwK KysgICAgICAgICItbXZzeCIsCisrICAgICAgXQorICAgICB9IGVsc2UgaWYgKGhvc3RfYnl0ZW9y ZGVyID09ICJiaWciKSB7CisgICAgICAgZGVmaW5lcyArPSBbICJWOF9UQVJHRVRfQVJDSF9QUENf QkUiIF0KKyAgICAgICBpZiAoY3VycmVudF9vcyA9PSAiYWl4IikgeworZGlmZiAtLWdpdCB1aS9n bC9mZWF0dXJlcy5nbmkgdWkvZ2wvZmVhdHVyZXMuZ25pCitpbmRleCA1ZmRhOWI2Li4zZDJkZDhi IDEwMDY0NAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3VpL2dsL2ZlYXR1cmVzLmduaQor KysrIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3VpL2dsL2ZlYXR1cmVzLmduaQorQEAgLTMyLDUg KzMyLDYgQEAgZGVjbGFyZV9hcmdzKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgIChpc19t YWMgJiYgdXNlX2VnbCkgfHwgaXNfY2hyb21lb3NfYXNoIHx8IGlzX2Z1Y2hzaWEpICYmCisgICAg ICAgICAgICAgICAgICAgICAgICAodGFyZ2V0X2NwdSA9PSAieDg2IiB8fCB0YXJnZXRfY3B1ID09 ICJ4NjQiIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2NwdSA9PSAiYXJtIiB8 fCB0YXJnZXRfY3B1ID09ICJhcm02NCIgfHwKKy0gICAgICAgICAgICAgICAgICAgICAgICB0YXJn ZXRfY3B1ID09ICJtaXBzZWwiIHx8IHRhcmdldF9jcHUgPT0gIm1pcHM2NGVsIikKKysgICAgICAg ICAgICAgICAgICAgICAgICB0YXJnZXRfY3B1ID09ICJtaXBzZWwiIHx8IHRhcmdldF9jcHUgPT0g Im1pcHM2NGVsIiB8fAorKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9jcHUgPT0gInBw YzY0IikKKyB9CitkaWZmIC0tZ2l0IHY4L3Rlc3QvQlVJTEQuZ24gdjgvdGVzdC9CVUlMRC5nbgor aW5kZXggZmI4NzJhZDM5Li40NWZjNTg1ZGQgMTAwNjQ0CistLS0gYS9zcmMvM3JkcGFydHkvY2hy b21pdW0vdjgvdGVzdC9CVUlMRC5nbgorKysrIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3Rl c3QvQlVJTEQuZ24KK0BAIC0zNiw3ICszNiw3IEBAIGdyb3VwKCJnbl9hbGwiKSB7CisgICAgICAg ImJlbmNobWFya3MvY3BwOmduX2FsbCIsCisgICAgICAgImNjdGVzdDpjY3Rlc3QiLAorICAgICAg ICJjY3Rlc3Q6Z2VuZXJhdGUtYnl0ZWNvZGUtZXhwZWN0YXRpb25zIiwKKy0gICAgICAidW5pdHRl c3RzOnVuaXR0ZXN0cyIsCisrICAgICAgIyJ1bml0dGVzdHM6dW5pdHRlc3RzIiwKKyAgICAgXQor ICAgfQorIH0KK0BAIC03OCw3ICs3OCw3IEBAIGdyb3VwKCJ2OF9ib3RfZGVmYXVsdCIpIHsKKyAg ICAgIm1lc3NhZ2U6djhfbWVzc2FnZSIsCisgICAgICJtanN1bml0OnY4X21qc3VuaXQiLAorICAg ICAibWtncm9rZHVtcDpta2dyb2tkdW1wIiwKKy0gICAgInVuaXR0ZXN0czp1bml0dGVzdHMiLAor KyAgICAjInVuaXR0ZXN0czp1bml0dGVzdHMiLAorICAgICAid2FzbS1hcGktdGVzdHM6d2FzbV9h cGlfdGVzdHMiLAorICAgICAid2FzbS1qczp2OF93YXNtX2pzIiwKKyAgICAgIndhc20tc3BlYy10 ZXN0czp2OF93YXNtX3NwZWNfdGVzdHMiLAorQEAgLTk4LDcgKzk4LDcgQEAgZ3JvdXAoInY4X2Rl ZmF1bHQiKSB7CisgICAgICJtZXNzYWdlOnY4X21lc3NhZ2UiLAorICAgICAibWpzdW5pdDp2OF9t anN1bml0IiwKKyAgICAgIm1rZ3Jva2R1bXA6bWtncm9rZHVtcCIsCistICAgICJ1bml0dGVzdHM6 dW5pdHRlc3RzIiwKKysgICAgIyJ1bml0dGVzdHM6dW5pdHRlc3RzIiwKKyAgICAgIndhc20tYXBp LXRlc3RzOndhc21fYXBpX3Rlc3RzIiwKKyAgICAgIndhc20tanM6djhfd2FzbV9qcyIsCisgICAg ICJ3YXNtLXNwZWMtdGVzdHM6djhfd2FzbV9zcGVjX3Rlc3RzIiwKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzL3h4eC1wcGM2NGxlLXN3aWZ0c2hhZGVyLnBhdGNoIGIv c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMveHh4LXBwYzY0bGUtc3dpZnRzaGFkZXIucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43YmZjMWQ2MmYyZDIK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy94eHgtcHBj NjRsZS1zd2lmdHNoYWRlci5wYXRjaApAQCAtMCwwICsxLDE4IEBACistLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS0xMC4w L0JVSUxELmduCisrKysgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvc3dpZnRz aGFkZXIvdGhpcmRfcGFydHkvbGx2bS0xMC4wL0JVSUxELmduCitAQCAtNTc0LDYgKzU3NCw3IEBA IHN3aWZ0c2hhZGVyX2xsdm1fc291cmNlX3NldCgic3dpZnRzaGFkZXIKKyAgICAgImxsdm0vbGli L01DL01DQXNtSW5mb0NPRkYuY3BwIiwKKyAgICAgImxsdm0vbGliL01DL01DQXNtSW5mb0Rhcndp bi5jcHAiLAorICAgICAibGx2bS9saWIvTUMvTUNBc21JbmZvRUxGLmNwcCIsCisrICAgICJsbHZt L2xpYi9NQy9NQ0FzbUluZm9YQ09GRi5jcHAiLAorICAgICAibGx2bS9saWIvTUMvTUNBc21NYWNy by5jcHAiLAorICAgICAibGx2bS9saWIvTUMvTUNBc21TdHJlYW1lci5jcHAiLAorICAgICAibGx2 bS9saWIvTUMvTUNBc3NlbWJsZXIuY3BwIiwKK0BAIC02MjksNiArNjMwLDcgQEAgc3dpZnRzaGFk ZXJfbGx2bV9zb3VyY2Vfc2V0KCJzd2lmdHNoYWRlcgorICAgICAibGx2bS9saWIvTUMvTUNXaW5D T0ZGU3RyZWFtZXIuY3BwIiwKKyAgICAgImxsdm0vbGliL01DL01DV2luRUguY3BwIiwKKyAgICAg Imxsdm0vbGliL01DL01DWENPRkZTdHJlYW1lci5jcHAiLAorKyAgICAibGx2bS9saWIvTUMvTUNY Q09GRk9iamVjdFRhcmdldFdyaXRlci5jcHAiLAorICAgICAibGx2bS9saWIvTUMvTWFjaE9iamVj dFdyaXRlci5jcHAiLAorICAgICAibGx2bS9saWIvTUMvU3RyaW5nVGFibGVCdWlsZGVyLmNwcCIs CisgICAgICJsbHZtL2xpYi9NQy9TdWJ0YXJnZXRGZWF0dXJlLmNwcCIsCmRpZmYgLS1naXQgYS9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvdGVt cGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iNGJiMmIyODhk OGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvdGVtcGxhdGUKQEAg LTAsMCArMSw4NyBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LXdlYmVuZ2luZScKK3BrZ25h bWU9cXQ2LXdlYmVuZ2luZQordmVyc2lvbj02LjIuMQorcmV2aXNpb249MQord3Jrc3JjPSJxdHdl YmVuZ2luZS1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259IgorYnVpbGRfc3R5bGU9Y21ha2UKK2Nv bmZpZ3VyZV9hcmdzPSItRFFUX0hPU1RfUEFUSD0vdXNyIC1EUVRfQlVJTERfVE9PTFNfV0hFTl9D Uk9TU0NPTVBJTElORz10cnVlCisgLURRVF9GRUFUVVJFX3dlYmVuZ2luZV9zeXN0ZW1fZmZtcGVn PU9OCisgLURRVF9GRUFUVVJFX3dlYmVuZ2luZV9zeXN0ZW1fbGliZXZlbnQ9T04KKyAtRFFUX0ZF QVRVUkVfd2ViZW5naW5lX3N5c3RlbV9nbj1PTgorIC1EUEtHX0NPTkZJR19IT1NUX0VYRUNVVEFC TEU9JHtQS0dfQ09ORklHX0ZPUl9CVUlMRH0iCitob3N0bWFrZWRlcGVuZHM9InF0Ni1iYXNlLWRl dmVsIHBlcmwgcGtnLWNvbmZpZyBub2RlanMgcHl0aG9uCisgcXQ2LWRlY2xhcmF0aXZlLWRldmVs IHByb3RvYnVmIGdwZXJmIGZsZXggbnNzLWRldmVsIGxpYndlYnAtZGV2ZWwiCittYWtlZGVwZW5k cz0icXQ2LWJhc2UtZGV2ZWwgcXQ2LWRlY2xhcmF0aXZlLWRldmVsIHB1bHNlYXVkaW8tZGV2ZWwK KyBhbHNhLWxpYi1kZXZlbCBsaWJ2cHgtZGV2ZWwgcGNpdXRpbHMtZGV2ZWwgb3B1cy1kZXZlbCBs aWJ4c2x0LWRldmVsCisgbGlieG1sMi1kZXZlbCBmcmVldHlwZS1kZXZlbCBsY21zMi1kZXZlbCBs aWJ3ZWJwLWRldmVsIGljdS1kZXZlbAorIHJlMi1kZXZlbCB6bGliLWRldmVsIGxpYnBuZy1kZXZl bCBtaW5pemlwLWRldmVsIGhhcmZidXp6LWRldmVsCisgbnNzLWRldmVsIGxpYlhjdXJzb3ItZGV2 ZWwgbGliWGNvbXBvc2l0ZS1kZXZlbCBsaWJYU2NyblNhdmVyLWRldmVsCisgcHJvdG9idWYtZGV2 ZWwgZmZtcGVnLWRldmVsIHNuYXBweS1kZXZlbCBsaWJldmVudC1kZXZlbCBwaXBld2lyZS1kZXZl bAorIGxpYnhrYmZpbGUtZGV2ZWwgcXQ2LWxvY2F0aW9uLWRldmVsIHF0Ni13ZWJjaGFubmVsLWRl dmVsIgorc2hvcnRfZGVzYz0iQ3Jvc3MtcGxhdGZvcm0gYXBwbGljYXRpb24gYW5kIFVJIGZyYW1l d29yayAtIFdlYmVuZ2luZSIKK21haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4i CitsaWNlbnNlPSJHUEwtMy4wLW9ubHksIEdQTC0yLjAtb25seSwgTEdQTC0zLjAtb25seSBCU0Qt My1DbGF1c2UiCitob21lcGFnZT0iaHR0cHM6Ly93d3cucXQuaW8iCitkaXN0ZmlsZXM9Imh0dHBz Oi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3Zl cnNpb259L3N1Ym1vZHVsZXMvcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufS50 YXIueHoiCitjaGVja3N1bT0xZjkzM2NmZmI4NjcxYzFlNzFiNmIyYTQ5MjRjYjZiM2Y5ODc4Mzg4 YWU2Mjk4YWM4ZDMxYTc2YzFlY2ZmYmI3CisKK2lmIFsgLXogIiRDUk9TU19CVUlMRCIgXTt0aGVu CisJY29uZmlndXJlX2FyZ3MrPSIgLURDTUFLRV9UT09MQ0hBSU5fRklMRT0vdXNyL2xpYi9jbWFr ZS9RdDYvcXQudG9vbGNoYWluLmNtYWtlIgorZmkKKworaWYgWyAiJFhCUFNfTElCQyIgPSAibXVz bCIgXTsgdGhlbgorCWhvc3RtYWtlZGVwZW5kcys9IiBtdXNsLWxlZ2FjeS1jb21wYXQiCitmaQor CitpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgorCW1ha2VkZXBlbmRz Kz0iIG11c2wtbGVnYWN5LWNvbXBhdCIKK2ZpCisKK2lmIFsgISAiJFhCUFNfV09SRFNJWkUiID0g IiRYQlBTX1RBUkdFVF9XT1JEU0laRSIgXTsgdGhlbgorCWJyb2tlbj0id2ViZW5naW5lIGNhbiBi ZSBidWlsdCBvbmx5IGlmIHdvcmQgc2l6ZSBtYXRjaGVzIgorZmkKKworaWYgWyAiJFhCUFNfV09S RFNJWkUiIC1lcSAzMiBdOyB0aGVuCisJbm9kZWJ1Zz15ZXMKKwlMREZMQUdTPSItV2wsLS1uby1r ZWVwLW1lbW9yeSIKK2ZpCisKK2lmIFsgIiRYQlBTX1RBUkdFVF9FTkRJQU4iICE9ICJsZSIgXTsg dGhlbgorCWJyb2tlbj0id2ViZW5naW5lIG9ubHkgc3VwcG9ydHMgbGl0dGxlIGVuZGlhbiIKK2Zp CisKK19ib290c3RyYXBfZ24oKSB7CisJIyBCb290c3RyYXAgZ24gKGdlbmVyYXRlIG5pbmphKQor CWVjaG8gIkJvb3RzdHJhcHBpbmcgJ2duJyIKKwljZCAke3dya3NyY30vc3JjLzNyZHBhcnR5L2du CisJQ0ZMQUdTPSIkQ0ZMQUdTX2hvc3QiIENYWEZMQUdTPSIkQ1hYRkxBR1NfaG9zdCIgTERGTEFH Uz0iJExERkxBR1NfaG9zdCIgXAorCVBLR0NPTkZJRz0vdXNyL2Jpbi9wa2djb25maWcgUEtHX0NP TkZJR19QQVRIPSIvdXNyL2xpYi9wa2djb25maWc6L3Vzci9zaGFyZS9wa2djb25maWciIFwKKwkJ cHl0aG9uMiBidWlsZC9nZW4ucHkgLS1uby1sYXN0LWNvbW1pdC1wb3NpdGlvbiAtLW91dC1wYXRo IFwKKwkJCSR7d3Jrc3JjfS9zcmMvM3JkcGFydHkvZ24vb3V0L1JlbGVhc2UgLS1jYyAiJHtDQ19o b3N0Oi0kQ0N9IiBcCisJCQktLWN4eCAiJHtDWFhfaG9zdDotJENYWH0iIC0tbGQgIiR7Q1hYX2hv c3Q6LSRDWFh9IiAtLWFyICIke0FSX2hvc3Q6LSRBUn0iIFwKKwkJCS0tcXQtdmVyc2lvbiAiJHt2 ZXJzaW9ufS5xdHdlYmVuZ2luZS5xdC5pbyIKKwluaW5qYSAtQyBvdXQvUmVsZWFzZSBnbgorCWNk ICR7d3Jrc3JjfQorfQorCitwcmVfY29uZmlndXJlKCkgeworCWNwICR7RklMRVNESVJ9L3Jlc29s dl9jb21wYXQuaCAke3dya3NyY30vc3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9kbnMKKwlfYm9v dHN0cmFwX2duCisJZXhwb3J0IFBBVEg9IiRQQVRIOiR7d3Jrc3JjfS9zcmMvM3JkcGFydHkvZ24v b3V0L1JlbGVhc2UiCit9CisKK3ByZV9idWlsZCgpIHsKKwlleHBvcnQgUEFUSD0iJFBBVEg6JHt3 cmtzcmN9L3NyYy8zcmRwYXJ0eS9nbi9vdXQvUmVsZWFzZSIKK30KKworcXQ2LXdlYmVuZ2luZS1k ZXZlbF9wYWNrYWdlKCkgeworCWRlcGVuZHM9IiR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3Jl dmlzaW9ufSBxdDYtd2ViY2hhbm5lbC1kZXZlbD49JHt2ZXJzaW9ufV8xCisJIHF0Ni1kZWNsYXJh dGl2ZS1kZXZlbD49JHt2ZXJzaW9ufV8xIHF0Ni1sb2NhdGlvbi1kZXZlbD49JHt2ZXJzaW9ufV8x IgorCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlwa2dfaW5zdGFsbCgpIHsK KwkJdm1vdmUgdXNyL2luY2x1ZGUKKwkJdm1vdmUgdXNyL2xpYi9jbWFrZQorCQl2bW92ZSB1c3Iv bGliL3F0Ni9ta3NwZWNzCisJCXZtb3ZlICJ1c3IvbGliLyouc28iCisJfQorfQo= --===============2397846516543452707==--