From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 30393 invoked from network); 22 Oct 2022 13:46:28 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 22 Oct 2022 13:46:28 -0000 Content-Type: multipart/mixed; boundary="===============6168907990812495871==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_nodejs=3A_update_to_16=2E18=2E0=2C_merge_with_nodejs-lts?= To: ml@inbox.vuxu.org From: paper42 Reply-to: ml@inbox.vuxu.org Message-ID: Date: Sat, 22 Oct 2022 15:46:28 +0200 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============6168907990812495871== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IHBhcGVyNDIgYWdhaW5zdCBtYXN0ZXIgb24g dGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyNDIv dm9pZC1wYWNrYWdlcyBub2RlLWx0cy0xNgpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92 b2lkLXBhY2thZ2VzL3B1bGwvNDAxMDYKCm5vZGVqczogdXBkYXRlIHRvIDE2LjE4LjAsIG1lcmdl IHdpdGggbm9kZWpzLWx0cwpOb2RlanMgdmVyc2lvbmluZyBzYXlzIHRoYXQgZXZlcnkgZXZlbiBy ZWxlYXNlICgxMiwgMTQsIDE2LCAxOCkgaXMgYW4gTFRTIHJlbGVhc2UuIFRoZSBgbm9kZWpzYCBw YWNrYWdlIGN1cnJlbnRseSB1c2VzIHZlcnNpb24gMTYgd2hpY2ggaXMgYSBzdXBwb3J0ZWQgTFRT IHZlcnNpb24sIGBub2RlanMtbHRzYCB1c2VzIHZlcnNpb24gMTIgd2hpY2ggaXMgRU9MIGFuZCB2 ZXJ5IG9sZC4gTWFueSBwYWNrYWdlcyB1c2Ugbm9kZWpzLWx0cyBmb3IgYnVpbGRpbmcsIGJ1dCB0 aGVuIGRlcGVuZCBvbiB0aGUgbm9kZWpzIHZpcnR1YWwgcGFja2FnZSB3aGljaCBkZWZhdWx0cyB0 byBub2RlanMsIG1hbnkgcGFja2FnZXMgZG9uJ3Qgd29yayB3aXRoIG9sZCBub2RlanMtbHRzIGFu ZCBwZW9wbGUgY291bGRuJ3QgaGF2ZSBib3RoIGluc3RhbGxlZC4gSWYgd2UgbmVlZCB0bywgd2Ug Y2FuIGFsd2F5cyBzcGxpdCBub2RlanMtbHRzIGFnYWluLCBidXQgcmlnaHQgbm93IEkgZG9uJ3Qg c2VlIGEgcmVhc29uIHRvIGRvIHNvLiBBbHBpbmUgbWVyZ2VkIHRoZWlyIG5vZGVqcy1sdHMgcGFj a2FnZSB0byBub2RlanMgYW5kIHByb3ZpZGVzIG5vZGVqcy1jdXJyZW50IGZvciB0aGUgbGF0ZXN0 IHZlcnNpb24gZm9yIGRldmVsb3BtZW50LgoKVGhpcyBpcyBhIGRyYWZ0IGZvciBub3cgZm9yIGNv bW1lbnRzIGFuZCBmb3IgY2hlY2tpbmcgaWYgZXZlcnkgcGFja2FnZSB0aGF0IHVzZWQgbm9kZWpz LWx0cyBzdGlsbCBidWlsZHMgd2l0aCBub2RlanMgMTYuCgo8IS0tIFVuY29tbWVudCByZWxldmFu dCBzZWN0aW9ucyBhbmQgZGVsZXRlIG9wdGlvbnMgd2hpY2ggYXJlIG5vdCBhcHBsaWNhYmxlIC0t PgoKIyMjIyBUZXN0aW5nIHRoZSBjaGFuZ2VzCi0gSSB0ZXN0ZWQgdGhlIGNoYW5nZXMgaW4gdGhp cyBQUjogKipOTyoqCgo8IS0tCiMjIyMgTmV3IHBhY2thZ2UKLSBUaGlzIG5ldyBwYWNrYWdlIGNv bmZvcm1zIHRvIHRoZSBbcGFja2FnZSByZXF1aXJlbWVudHNdKGh0dHBzOi8vZ2l0aHViLmNvbS92 b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kI3BhY2th Z2UtcmVxdWlyZW1lbnRzKTogKipZRVMqKnwqKk5PKioKLS0+Cgo8IS0tIE5vdGU6IElmIHRoZSBi dWlsZCBpcyBsaWtlbHkgdG8gdGFrZSBtb3JlIHRoYW4gMiBob3VycywgcGxlYXNlIGFkZCBjaSBz a2lwIHRhZyBhcyBkZXNjcmliZWQgaW4KaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9p ZC1wYWNrYWdlcy9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQjY29udGludW91cy1pbnRlZ3Jh dGlvbgphbmQgdGVzdCBhdCBsZWFzdCBvbmUgbmF0aXZlIGJ1aWxkIGFuZCwgaWYgc3VwcG9ydGVk LCBhdCBsZWFzdCBvbmUgY3Jvc3MgYnVpbGQuCklnbm9yZSB0aGlzIHNlY3Rpb24gaWYgdGhpcyBQ UiBpcyBub3Qgc2tpcHBpbmcgQ0kuCi0tPgo8IS0tCiMjIyMgTG9jYWwgYnVpbGQgdGVzdGluZwot IEkgYnVpbHQgdGhpcyBQUiBsb2NhbGx5IGZvciBteSBuYXRpdmUgYXJjaGl0ZWN0dXJlLCAoQVJD SC1MSUJDKQotIEkgYnVpbHQgdGhpcyBQUiBsb2NhbGx5IGZvciB0aGVzZSBhcmNoaXRlY3R1cmVz IChpZiBzdXBwb3J0ZWQuIG1hcmsgY3Jvc3NidWlsZHMpOgogIC0gYWFyY2g2NC1tdXNsCiAgLSBh cm12N2wKICAtIGFybXY2bC1tdXNsCi0tPgoKCkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0 aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC80MDEwNi5wYXRjaCBpcyBhdHRh Y2hlZA== --===============6168907990812495871== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-node-lts-16-40106.patch" RnJvbSBhMDlmZjE0Mjc5NWQwYTZhNjkzYWFjMDBjMmU4ZmI3NTI2NDJkMjdhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNaWNoYWwgVmFzaWxlayA8bWljaGFsQHZhc2lsZWsuY3o+CkRh dGU6IFN1biwgMTYgT2N0IDIwMjIgMTE6NTY6NTEgKzAyMDAKU3ViamVjdDogW1BBVENIIDEvMl0g bm9kZWpzOiB1cGRhdGUgdG8gMTYuMTguMAoKKiBtZXJnZSB3aXRoIG5vZGVqcy1sdHMsIHZlcnNp b24gMTYgaXMgdGhlIGxhdGVzdCBMVFMgdmVyc2lvbiBhbmQKICBub2RlanMtbHRzIGNvbnRhaW5z IGFuIEVPTCBMVFMgdmVyc2lvbiAxMgotLS0KIHNyY3BrZ3Mvbm9kZWpzLWx0cyAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmNwa2dzL25vZGVqcy1sdHMtZGV2ZWwgICAgICAg ICAgICAgICAgICAgICAgfCAgIDIgKy0KIC4uLi9wYXRjaGVzL3BwYy1maXhlcy1mb3Itb2xkZXIt bW9kZWxzLnBhdGNoICB8IDg0NyAtLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3Mvbm9kZWpzLWx0cy9w YXRjaGVzL3BwYzMyLnBhdGNoICAgICAgICB8ICAyMCAtCiBzcmNwa2dzL25vZGVqcy1sdHMvcGF0 Y2hlcy9zaGFyZWQtdXYucGF0Y2ggICAgfCAgMjUgLQogLi4uL3BhdGNoZXMveHh4LXBwYy1od2Nh cC1tdXNsLnBhdGNoICAgICAgICAgIHwgIDI0IC0KIHNyY3BrZ3Mvbm9kZWpzLWx0cy90ZW1wbGF0 ZSAgICAgICAgICAgICAgICAgICB8IDEwNSAtLQogc3JjcGtncy9ub2RlanMtbHRzL3VwZGF0ZSAg ICAgICAgICAgICAgICAgICAgIHwgICAyIC0KIC4uLi9wYXRjaGVzL3BwYy1maXhlcy1mb3Itb2xk ZXItbW9kZWxzLnBhdGNoICB8IDk3MiAtLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3Mvbm9kZWpz L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICB8ICAyMiArLQogMTAgZmlsZXMgY2hhbmdl ZCwgMTkgaW5zZXJ0aW9ucygrKSwgMjAwMSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEyMDAw MCBzcmNwa2dzL25vZGVqcy1sdHMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL25vZGVqcy1s dHMvcGF0Y2hlcy9wcGMtZml4ZXMtZm9yLW9sZGVyLW1vZGVscy5wYXRjaAogZGVsZXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3Mvbm9kZWpzLWx0cy9wYXRjaGVzL3BwYzMyLnBhdGNoCiBkZWxldGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9ub2RlanMtbHRzL3BhdGNoZXMvc2hhcmVkLXV2LnBhdGNoCiBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9ub2RlanMtbHRzL3BhdGNoZXMveHh4LXBwYy1od2NhcC1t dXNsLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9ub2RlanMtbHRzL3RlbXBsYXRl CiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9ub2RlanMtbHRzL3VwZGF0ZQogZGVsZXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3Mvbm9kZWpzL3BhdGNoZXMvcHBjLWZpeGVzLWZvci1vbGRlci1tb2Rl bHMucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL25vZGVqcy1sdHMgYi9zcmNwa2dzL25vZGVq cy1sdHMKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi4wYzUyNGI3NzUz MDgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL25vZGVqcy1sdHMKQEAgLTAsMCArMSBAQAor bm9kZWpzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9u b2RlanMtbHRzLWRldmVsIGIvc3JjcGtncy9ub2RlanMtbHRzLWRldmVsCmluZGV4IGM5YTQ5NWEy ZTM1Yi4uMGM1MjRiNzc1MzA4IDEyMDAwMAotLS0gYS9zcmNwa2dzL25vZGVqcy1sdHMtZGV2ZWwK KysrIGIvc3JjcGtncy9ub2RlanMtbHRzLWRldmVsCkBAIC0xICsxIEBACi1ub2RlanMtbHRzClwg Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbm9kZWpzClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg ZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ub2RlanMtbHRzL3BhdGNoZXMvcHBjLWZpeGVzLWZv ci1vbGRlci1tb2RlbHMucGF0Y2ggYi9zcmNwa2dzL25vZGVqcy1sdHMvcGF0Y2hlcy9wcGMtZml4 ZXMtZm9yLW9sZGVyLW1vZGVscy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg M2EzNjMwZjFhZDRkLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9ub2RlanMtbHRzL3BhdGNo ZXMvcHBjLWZpeGVzLWZvci1vbGRlci1tb2RlbHMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw4 NDcgKzAsMCBAQAotRml4IFBvd2VyUEMgQ1BVIGRldGVjdGlvbiBhbmQgY29kZWdlbiB0byB3b3Jr IHdpdGggbW9yZSBwcm9jZXNzb3JzLgotCi1UaGlzIHBhdGNoIGRlZmluZXMgdGhlIGNvcnJlY3Qg b3B0aW9uYWwgUG93ZXIgSVNBIGZlYXR1cmVzIHRoYXQgdGhlCi1QUEMgY29kZSBnZW5lcmF0b3Ig bmVlZHMgaW4gb3JkZXIgdG8gcnVuIHdpdGhvdXQgY3Jhc2hpbmcgb24gdjIuMDEKLWFuZCBvbGRl ciBDUFVzIHN1Y2ggYXMgUFBDIDk3MCAoRzUpIG9yIE5YUCBlNjUwMCwgYW5kIHRvIHJ1biBtb3Jl Ci1lZmZpY2llbnRseSBvbiBDUFVzIHdpdGggZmVhdHVyZXMgdGhhdCB3ZXJlbid0IGJlaW5nIHVz ZWQgYmVmb3JlLgotCi1Qb3dlclBDIElTQSB2Mi4wMSBhbmQgb2xkZXIgQ1BVcyBkb24ndCBoYXZl IEZQIHJvdW5kIHRvIGludCBpbnN0cnVjdGlvbnMsCi1hbmQgUG93ZXJQQyBJU0EgdjIuMDYgYW5k IG9sZGVyIGFyZSBtaXNzaW5nIHN1cHBvcnQgZm9yIHVuc2lnbmVkIDY0LWJpdAotdG8vZnJvbSBk b3VibGUsIGFzIHdlbGwgYXMgaW50ZWdlciB0by9mcm9tIHNpbmdsZS1wcmVjaXNpb24gZmxvYXQu Ci0KLUFkZCBhIG5ldyBGUF9ST1VORF9UT19JTlQgQ1BVIGZlYXR1cmUgdG8gZGV0ZXJtaW5lIHdo ZXRoZXIgdG8gZ2VuZXJhdGUKLUZQIHJvdW5kIHRvIGludCwgYW5kIGFkZCBhIG5ldyBQUENfN19Q TFVTIGZlYXR1cmUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIKLXRvIHVzZSB0aGUgdjIuMDYgRlBSIGNv bnZlcnNpb24gaW5zdHJ1Y3Rpb25zIG9yIGdlbmVyYXRlIGFuIGFsdGVybmF0ZQotc2VxdWVuY2Ug dG8gaGFuZGxlIGxhcmdlIDY0LWJpdCB1bnNpZ25lZCBpbnRzLCBhbmQgc2luZ2xlLXByZWNpc2lv biAKLXVzaW5nIHRoZSB2Mi4wMSBpbnN0cnVjdGlvbnMgd2l0aCBoYW5kbGluZyBmb3IgbGFyZ2Ug dWludDY0X3QgdmFsdWVzCi1hcyB3ZWxsIGFzIHJvdW5kaW5nIHJlc3VsdHMgZnJvbSBkb3VibGUg dG8gc2luZ2xlLXByZWNpc2lvbi4KLQotQWxzbyBhZGQgYSBuZXcgUE9QX0NPVU5UIGZlYXR1cmUg Zm9yIHRoZSBwb3BjbnQgb3Bjb2RlcyBhZGRlZCBpbiB2Mi4wNiwKLXdoaWNoIGFyZSBhbHNvIHBy ZXNlbnQgaW4gdGhlIE5YUCBlNTUwMCBhbmQgZTY1MDAgY29yZXMsIHdoaWNoIGFyZQotb3RoZXJ3 aXNlIG1pc3NpbmcgbWFueSBvZiB0aGUgZmVhdHVyZXMgYWRkZWQgc2luY2UgdjIuMDEuCi0KLUJ5 IGRlZmluaW5nIGFuIElDQUNIRV9TTk9PUCBmZWF0dXJlIGJpdCB0byByZXBsYWNlIHRoZSBwb29y bHktbmFtZWQKLSJMV1NZTkMiLCB0aGUgbWVhbmluZyBvZiB0aGUgaW5zdHJ1Y3Rpb24gY2FjaGUg Zmx1c2hpbmcgZmFzdCBwYXRoLAotYW5kIHRoZSBDUFVzIHRoYXQgY2FuIHVzZSBpdCwgYXJlIG1v cmUgY2xlYXJseSBkZWZpbmVkLiBJbiBhZGRpdGlvbiwKLWZvciB0aGUgb3RoZXIgUG93ZXJQQyBj aGlwcywgdGhlIGxvb3AgdG8gZmx1c2ggdGhlIGRhdGEgYW5kIGluc3RydWN0aW9uCi1jYWNoZSBi bG9ja3MgaGFzIGJlZW4gc3BsaXQgaW50byB0d28gbG9vcHMsIHdpdGggYSBzaW5nbGUgInN5bmMi IGFuZAotImlzeW5jIiBhZnRlciBlYWNoIGxvb3AsIHdoaWNoIHNob3VsZCBiZSBtb3JlIGVmZmlj aWVudCwgYW5kIGFsc28gaGFuZGxlcwotdGhlIGZldyBDUFVzIHdpdGggZGlmZmVyaW5nIGRhdGEg YW5kIGluc3RydWN0aW9uIGNhY2hlIGxpbmUgc2l6ZXMuCi0KLUluIHRoZSBtYWNybyBhc3NlbWJs ZXIgbWV0aG9kcywgaW4gYWRkaXRpb24gdG8gcHJvdmlkaW5nIGFuIGFsdGVybmF0ZQotcGF0aCBm b3IgRlAgY29udmVyc2lvbiBvcGNvZGVzIGFkZGVkIGluIFBPV0VSNyAoSVNBIHYyLjA2KSwgdW5u ZWNlc3NhcnkKLWluc3RydWN0aW9ucyB0byBtb3ZlIHNwIGRvd24gYW5kIHRoZW4gaW1tZWRpYXRl bHkgYmFjayB1cCB3ZXJlIHJlcGxhY2VkCi13aXRoIG5lZ2F0aXZlIG9mZnNldHMgZnJvbSB0aGUg Y3VycmVudCBzcC4gVGhpcyBzaG91bGQgYmUgZmFzdGVyLCBhbmQgYWxzbwotc3AgaXMgc3VwcG9z ZWQgdG8gcG9pbnQgdG8gYSBiYWNrIGNoYWluIGF0IGFsbCB0aW1lcyAoVjggbWF5IG5vdCBkbyB0 aGlzKS4KLQotVGhpcyBwYXRjaCBhbHNvIGZpeGVzIHBwYzY0IGJpZy1lbmRpYW4gRUxGdjEgYnVp bGRzIChub3QgbmVlZGVkIGZvciBWb2lkKS4KLQotLS0tIGEvZGVwcy92OC9zcmMvYmFzZS9jcHUu Y2MJMjAyMi0wMi0xNSAyMToxMTo0Ni4yOTEzODc0NTcgLTA4MDAKLSsrKyBiL2RlcHMvdjgvc3Jj L2Jhc2UvY3B1LmNjCTIwMjItMDItMTcgMjM6MDE6NDAuNjI0NTk3NTIzIC0wODAwCi1AQCAtMTAs NyArMTAsNyBAQAotICNpZiBWOF9PU19MSU5VWAotICNpbmNsdWRlIDxsaW51eC9hdXh2ZWMuaD4g IC8vIEFUX0hXQ0FQCi0gI2VuZGlmCi0tI2lmIFY4X0dMSUJDX1BSRVJFUSgyLCAxNikKLSsjaWYg VjhfR0xJQkNfUFJFUkVRKDIsIDE2KSB8fCAoVjhfT1NfTElOVVggJiYgVjhfSE9TVF9BUkNIX1BQ QykKLSAjaW5jbHVkZSA8c3lzL2F1eHYuaD4gIC8vIGdldGF1eHZhbCgpCi0gI2VuZGlmCi0gI2lm IFY4X09TX1FOWAotQEAgLTYxMSw1NyArNjExLDU2IEBACi0gCi0gI2lmbmRlZiBVU0VfU0lNVUxB VE9SCi0gI2lmIFY4X09TX0xJTlVYCi0tICAvLyBSZWFkIHByb2Nlc3NvciBpbmZvIGZyb20gL3By b2Mvc2VsZi9hdXh2LgotLSAgY2hhciogYXV4dl9jcHVfdHlwZSA9IG51bGxwdHI7Ci0tICBGSUxF KiBmcCA9IGZvcGVuKCIvcHJvYy9zZWxmL2F1eHYiLCAiciIpOwotLSAgaWYgKGZwICE9IG51bGxw dHIpIHsKLS0jaWYgVjhfVEFSR0VUX0FSQ0hfUFBDNjQKLS0gICAgRWxmNjRfYXV4dl90IGVudHJ5 OwotLSNlbHNlCi0tICAgIEVsZjMyX2F1eHZfdCBlbnRyeTsKLS0jZW5kaWYKLS0gICAgZm9yICg7 OykgewotLSAgICAgIHNpemVfdCBuID0gZnJlYWQoJmVudHJ5LCBzaXplb2YoZW50cnkpLCAxLCBm cCk7Ci0tICAgICAgaWYgKG4gPT0gMCB8fCBlbnRyeS5hX3R5cGUgPT0gQVRfTlVMTCkgewotLSAg ICAgICAgYnJlYWs7Ci0tICAgICAgfQotLSAgICAgIHN3aXRjaCAoZW50cnkuYV90eXBlKSB7Ci0t ICAgICAgICBjYXNlIEFUX1BMQVRGT1JNOgotLSAgICAgICAgICBhdXh2X2NwdV90eXBlID0gcmVp bnRlcnByZXRfY2FzdDxjaGFyKj4oZW50cnkuYV91bi5hX3ZhbCk7Ci0tICAgICAgICAgIGJyZWFr OwotLSAgICAgICAgY2FzZSBBVF9JQ0FDSEVCU0laRToKLS0gICAgICAgICAgaWNhY2hlX2xpbmVf c2l6ZV8gPSBlbnRyeS5hX3VuLmFfdmFsOwotLSAgICAgICAgICBicmVhazsKLS0gICAgICAgIGNh c2UgQVRfRENBQ0hFQlNJWkU6Ci0tICAgICAgICAgIGRjYWNoZV9saW5lX3NpemVfID0gZW50cnku YV91bi5hX3ZhbDsKLS0gICAgICAgICAgYnJlYWs7Ci0tICAgICAgfQotLSAgICB9Ci0tICAgIGZj bG9zZShmcCk7Ci0tICB9Ci0rICAvLyBSZWFkIHByb2Nlc3NvciBpbmZvIGZyb20gZ2V0YXV4dmFs KCkgKG5lZWRzIGF0IGxlYXN0IGdsaWJjIDIuMTggb3IgbXVzbCkuCi0rICBpY2FjaGVfbGluZV9z aXplXyA9IHN0YXRpY19jYXN0PGludD4oZ2V0YXV4dmFsKEFUX0lDQUNIRUJTSVpFKSk7Ci0rICBk Y2FjaGVfbGluZV9zaXplXyA9IHN0YXRpY19jYXN0PGludD4oZ2V0YXV4dmFsKEFUX0RDQUNIRUJT SVpFKSk7Ci0rICBjb25zdCB1bnNpZ25lZCBsb25nIGh3Y2FwID0gZ2V0YXV4dmFsKEFUX0hXQ0FQ KTsKLSsgIGNvbnN0IHVuc2lnbmVkIGxvbmcgaHdjYXAyID0gZ2V0YXV4dmFsKEFUX0hXQ0FQMik7 Ci0rICBjb25zdCBjaGFyKiBwbGF0Zm9ybSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+ KGdldGF1eHZhbChBVF9QTEFURk9STSkpOwotKwotKyAgLy8gTk9URTogQVRfSFdDQVAgSVNBIHZl cnNpb24gYml0cyBhcmVuJ3QgY3VtdWxhdGl2ZSwgc28gaXQncyBuZWNlc3NhcnkKLSsgIC8vIHRv IGNvbXBhcmUgYWdhaW5zdCBhIG1hc2sgb2YgYWxsIHN1cHBvcnRlZCB2ZXJzaW9ucyBhbmQgQ1BV cywgdXAgdG8KLSsgIC8vIElTQSB2Mi4wNiwgd2hpY2ggKmlzKiBzZXQgZm9yIGxhdGVyIENQVXMu IEluIGNvbnRyYXN0LCB0aGUgQVRfSFdDQVAyCi0rICAvLyBJU0EgdmVyc2lvbiBiaXRzIGZyb20g djIuMDcgb253YXJkIGFyZSBzZXQgY3VtdWxhdGl2ZWx5LCBzbyBQT1dFUjEwCi0rICAvLyB3aWxs IHNldCB0aGUgSVNBIHZlcnNpb24gYml0cyBmcm9tIHYyLjA2IChpbiBBVF9IV0NBUCkgdGhyb3Vn aCB2My4xLgotKwotKyAgLy8gaS1jYWNoZSBjb2hlcmVuY3kgcmVxdWlyZXMgUG93ZXIgSVNBIHYy LjAyIG9yIGxhdGVyOyBoYXMgaXRzIG93biBmbGFnLgotKyAgaGFzX2ljYWNoZV9zbm9vcF8gPSAo aHdjYXAgJiBQUENfRkVBVFVSRV9JQ0FDSEVfU05PT1ApOwotKwotKyAgLy8gcmVxdWlyZXMgUG93 ZXIgSVNBIHYyLjAzIG9yIGxhdGVyLCBvciB0aGUgSEFTX0lTRUwgYml0IChlLmcuIGU2NTAwKS4K LSsgIGhhc19pc2VsXyA9IChod2NhcCAmIChQUENfRkVBVFVSRV9QT1dFUjVfUExVUyB8IFBQQ19G RUFUVVJFX0FSQ0hfMl8wNSB8Ci0rICAgICAgUFBDX0ZFQVRVUkVfUEE2VCB8IFBQQ19GRUFUVVJF X1BPV0VSNl9FWFQgfCBQUENfRkVBVFVSRV9BUkNIXzJfMDYpKSB8fAotKyAgICAgIChod2NhcDIg JiBQUENfRkVBVFVSRTJfSEFTX0lTRUwpOwotKwotKyAgLy8gaHdjYXAgbWFzayBmb3Igb2xkZXIg NjQtYml0IFBQQyBDUFVzIHdpdGggQWx0aXZlYywgZS5nLiBHNSwgQ2VsbC4KLSsgIHN0YXRpYyBj b25zdCB1bnNpZ25lZCBsb25nIGtId2NhcE1hc2tQUENHNSA9Ci0rICAgICAgKFBQQ19GRUFUVVJF XzY0IHwgUFBDX0ZFQVRVUkVfSEFTX0FMVElWRUMpOwotIAotICAgcGFydF8gPSAtMTsKLS0gIGlm IChhdXh2X2NwdV90eXBlKSB7Ci0tICAgIGlmIChzdHJjbXAoYXV4dl9jcHVfdHlwZSwgInBvd2Vy MTAiKSA9PSAwKSB7Ci0tICAgICAgcGFydF8gPSBQUENfUE9XRVIxMDsKLS0gICAgfQotLSAgICBl bHNlIGlmIChzdHJjbXAoYXV4dl9jcHVfdHlwZSwgInBvd2VyOSIpID09IDApIHsKLS0gICAgICBw YXJ0XyA9IFBQQ19QT1dFUjk7Ci0tICAgIH0gZWxzZSBpZiAoc3RyY21wKGF1eHZfY3B1X3R5cGUs ICJwb3dlcjgiKSA9PSAwKSB7Ci0tICAgICAgcGFydF8gPSBQUENfUE9XRVI4OwotLSAgICB9IGVs c2UgaWYgKHN0cmNtcChhdXh2X2NwdV90eXBlLCAicG93ZXI3IikgPT0gMCkgewotLSAgICAgIHBh cnRfID0gUFBDX1BPV0VSNzsKLS0gICAgfSBlbHNlIGlmIChzdHJjbXAoYXV4dl9jcHVfdHlwZSwg InBvd2VyNiIpID09IDApIHsKLS0gICAgICBwYXJ0XyA9IFBQQ19QT1dFUjY7Ci0tICAgIH0gZWxz ZSBpZiAoc3RyY21wKGF1eHZfY3B1X3R5cGUsICJwb3dlcjUiKSA9PSAwKSB7Ci0tICAgICAgcGFy dF8gPSBQUENfUE9XRVI1OwotLSAgICB9IGVsc2UgaWYgKHN0cmNtcChhdXh2X2NwdV90eXBlLCAi cHBjOTcwIikgPT0gMCkgewotLSAgICAgIHBhcnRfID0gUFBDX0c1OwotLSAgICB9IGVsc2UgaWYg KHN0cmNtcChhdXh2X2NwdV90eXBlLCAicHBjNzQ1MCIpID09IDApIHsKLS0gICAgICBwYXJ0XyA9 IFBQQ19HNDsKLS0gICAgfSBlbHNlIGlmIChzdHJjbXAoYXV4dl9jcHVfdHlwZSwgInBhNnQiKSA9 PSAwKSB7Ci0tICAgICAgcGFydF8gPSBQUENfUEE2VDsKLS0gICAgfQotKyAgaWYgKGh3Y2FwMiAm IFBQQ19GRUFUVVJFMl9BUkNIXzNfMSkgewotKyAgICBwYXJ0XyA9IFBQQ19QT1dFUjEwOwotKyAg fSBlbHNlIGlmIChod2NhcDIgJiBQUENfRkVBVFVSRTJfQVJDSF8zXzAwKSB7Ci0rICAgIHBhcnRf ID0gUFBDX1BPV0VSOTsKLSsgIH0gZWxzZSBpZiAoaHdjYXAyICYgUFBDX0ZFQVRVUkUyX0FSQ0hf Ml8wNykgewotKyAgICBwYXJ0XyA9IFBQQ19QT1dFUjg7Ci0rICB9IGVsc2UgaWYgKGh3Y2FwICYg UFBDX0ZFQVRVUkVfQVJDSF8yXzA2KSB7Ci0rICAgIHBhcnRfID0gUFBDX1BPV0VSNzsKLSsgIH0g ZWxzZSBpZiAoaHdjYXAgJiBQUENfRkVBVFVSRV9BUkNIXzJfMDUpIHsKLSsgICAgcGFydF8gPSBQ UENfUE9XRVI2OwotKyAgfSBlbHNlIGlmIChod2NhcCAmIChQUENfRkVBVFVSRV9QT1dFUjUgfCBQ UENfRkVBVFVSRV9QT1dFUjVfUExVUykpIHsKLSsgICAgcGFydF8gPSBQUENfUE9XRVI1OwotKyAg fSBlbHNlIGlmIChod2NhcCAmIFBQQ19GRUFUVVJFX1BBNlQpIHsKLSsgICAgcGFydF8gPSBQUENf UEE2VDsKLSsgIH0gZWxzZSBpZiAoc3RyY21wKHBsYXRmb3JtLCAicHBjZTY1MDAiKSA9PSAwKSB7 Ci0rICAgIHBhcnRfID0gUFBDX0U2NTAwOwotKyAgfSBlbHNlIGlmIChzdHJjbXAocGxhdGZvcm0s ICJwcGNlNTUwMCIpID09IDApIHsKLSsgICAgcGFydF8gPSBQUENfRTU1MDA7Ci0rICB9IGVsc2Ug aWYgKChod2NhcCAmIGtId2NhcE1hc2tQUENHNSkgPT0ga0h3Y2FwTWFza1BQQ0c1KSB7Ci0rICAg IHBhcnRfID0gUFBDX0c1OwotKyAgfSBlbHNlIGlmIChod2NhcCAmIFBQQ19GRUFUVVJFX0hBU19B TFRJVkVDKSB7Ci0rICAgIHBhcnRfID0gUFBDX0c0OwotKyAgfSBlbHNlIHsKLSsgICAgcGFydF8g PSBQUENfRzM7Ci0gICB9Ci0gCi0gI2VsaWYgVjhfT1NfQUlYCi1AQCAtNjgyLDkgKzY4MSwxMyBA QAotICAgICAgIHBhcnRfID0gUFBDX1BPV0VSNjsKLSAgICAgICBicmVhazsKLSAgICAgY2FzZSBQ T1dFUl81OgotKyAgICBkZWZhdWx0OgotICAgICAgIHBhcnRfID0gUFBDX1BPV0VSNTsKLSAgICAg ICBicmVhazsKLSAgIH0KLSsKLSsgIGhhc19pY2FjaGVfc25vb3BfID0gdHJ1ZTsKLSsgIGhhc19p c2VsXyA9IChwYXJ0XyAhPSBQUENfUE9XRVI1KTsgICAgLy8gaXNlbCB3YXMgYWRkZWQgaW4gUE9X RVI1KyAodjIuMDMpCi0gI2VuZGlmICAvLyBWOF9PU19BSVgKLSAjZW5kaWYgIC8vICFVU0VfU0lN VUxBVE9SCi0gI2VuZGlmICAvLyBWOF9IT1NUX0FSQ0hfUFBDCi0tLS0gYS9kZXBzL3Y4L3NyYy9i YXNlL2NwdS5oCTIwMjItMDItMTUgMjE6MTE6NDYuMjkxMzg3NDU3IC0wODAwCi0rKysgYi9kZXBz L3Y4L3NyYy9iYXNlL2NwdS5oCTIwMjItMDItMTcgMTk6NTQ6MDguNzY4NjE0ODA1IC0wODAwCi1A QCAtNzEsOSArNzEsMTIgQEAKLSAgICAgUFBDX1BPV0VSOCwKLSAgICAgUFBDX1BPV0VSOSwKLSAg ICAgUFBDX1BPV0VSMTAsCi0rICAgIFBQQ19HMywKLSAgICAgUFBDX0c0LAotICAgICBQUENfRzUs Ci0tICAgIFBQQ19QQTZUCi0rICAgIFBQQ19QQTZULAotKyAgICBQUENfRTU1MDAsCi0rICAgIFBQ Q19FNjUwMAotICAgfTsKLSAKLSAgIC8vIEdlbmVyYWwgZmVhdHVyZXMKLUBAIC0xMTYsNiArMTE5 LDEwIEBACi0gICBib29sIGlzX2ZwNjRfbW9kZSgpIGNvbnN0IHsgcmV0dXJuIGlzX2ZwNjRfbW9k ZV87IH0KLSAgIGJvb2wgaGFzX21zYSgpIGNvbnN0IHsgcmV0dXJuIGhhc19tc2FfOyB9Ci0gCi0r ICAvLyBQb3dlclBDIGZlYXR1cmVzCi0rICBib29sIGhhc19pY2FjaGVfc25vb3AoKSBjb25zdCB7 IHJldHVybiBoYXNfaWNhY2hlX3Nub29wXzsgfQotKyAgYm9vbCBoYXNfaXNlbCgpIGNvbnN0IHsg cmV0dXJuIGhhc19pc2VsXzsgfQotKwotICBwcml2YXRlOgotICAgY2hhciB2ZW5kb3JfWzEzXTsK LSAgIGludCBzdGVwcGluZ187Ci1AQCAtMTU3LDYgKzE2NCw4IEBACi0gICBib29sIGlzX2ZwNjRf bW9kZV87Ci0gICBib29sIGhhc19ub25fc3RvcF90aW1lX3N0YW1wX2NvdW50ZXJfOwotICAgYm9v bCBoYXNfbXNhXzsKLSsgIGJvb2wgaGFzX2ljYWNoZV9zbm9vcF87Ci0rICBib29sIGhhc19pc2Vs XzsKLSB9OwotIAotIH0gIC8vIG5hbWVzcGFjZSBiYXNlCi0tLS0gYS9kZXBzL3Y4L3NyYy9jb2Rl Z2VuL3BwYy9tYWNyby1hc3NlbWJsZXItcHBjLmNjCTIwMjItMDItMDEgMTA6NTM6MDkuMDAwMDAw MDAwIC0wODAwCi0rKysgYi9kZXBzL3Y4L3NyYy9jb2RlZ2VuL3BwYy9tYWNyby1hc3NlbWJsZXIt cHBjLmNjCTIwMjItMDItMTggMjI6NTU6MzYuNjc2NDYxMzQzIC0wODAwCi1AQCAtNzA2LDEzICs3 MDYsMjUgQEAKLSAKLSB2b2lkIFR1cmJvQXNzZW1ibGVyOjpDb252ZXJ0SW50VG9GbG9hdChSZWdp c3RlciBzcmMsIERvdWJsZVJlZ2lzdGVyIGRzdCkgewotICAgTW92SW50VG9Eb3VibGUoZHN0LCBz cmMsIHIwKTsKLS0gIGZjZmlkcyhkc3QsIGRzdCk7Ci0rCi0rICBpZiAoQ3B1RmVhdHVyZXM6Oklz U3VwcG9ydGVkKFBQQ183X1BMVVMpKSB7Ci0rICAgIGZjZmlkcyhkc3QsIGRzdCk7Ci0rICB9IGVs c2UgewotKyAgICBmY2ZpZChkc3QsIGRzdCk7Ci0rICAgIGZyc3AoZHN0LCBkc3QpOwotKyAgfQot IH0KLSAKLSB2b2lkIFR1cmJvQXNzZW1ibGVyOjpDb252ZXJ0VW5zaWduZWRJbnRUb0Zsb2F0KFJl Z2lzdGVyIHNyYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIERvdWJsZVJlZ2lzdGVyIGRzdCkgewotICAgTW92VW5zaWduZWRJbnRUb0RvdWJsZShkc3Qs IHNyYywgcjApOwotLSAgZmNmaWRzKGRzdCwgZHN0KTsKLSsKLSsgIGlmIChDcHVGZWF0dXJlczo6 SXNTdXBwb3J0ZWQoUFBDXzdfUExVUykpIHsKLSsgICAgZmNmaWRzKGRzdCwgZHN0KTsKLSsgIH0g ZWxzZSB7Ci0rICAgIGZjZmlkKGRzdCwgZHN0KTsKLSsgICAgZnJzcChkc3QsIGRzdCk7Ci0rICB9 Ci0gfQotIAotICNpZiBWOF9UQVJHRVRfQVJDSF9QUEM2NAotQEAgLTcyNCwyMCArNzM2LDUyIEBA Ci0gCi0gdm9pZCBUdXJib0Fzc2VtYmxlcjo6Q29udmVydFVuc2lnbmVkSW50NjRUb0Zsb2F0KFJl Z2lzdGVyIHNyYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRG91YmxlUmVnaXN0ZXIgZG91YmxlX2RzdCkgewotLSAgTW92SW50NjRUb0RvdWJsZShk b3VibGVfZHN0LCBzcmMpOwotLSAgZmNmaWR1cyhkb3VibGVfZHN0LCBkb3VibGVfZHN0KTsKLSsg IGlmIChDcHVGZWF0dXJlczo6SXNTdXBwb3J0ZWQoUFBDXzdfUExVUykpIHsKLSsgICAgTW92SW50 NjRUb0RvdWJsZShkb3VibGVfZHN0LCBzcmMpOwotKyAgICBmY2ZpZHVzKGRvdWJsZV9kc3QsIGRv dWJsZV9kc3QpOwotKyAgfSBlbHNlIHsKLSsgICAgQ29udmVydFVuc2lnbmVkSW50NjRUb0RvdWJs ZShzcmMsIGRvdWJsZV9kc3QpOwotKyAgICBmcnNwKGRvdWJsZV9kc3QsIGRvdWJsZV9kc3QpOwot KyAgfQotIH0KLSAKLSB2b2lkIFR1cmJvQXNzZW1ibGVyOjpDb252ZXJ0VW5zaWduZWRJbnQ2NFRv RG91YmxlKFJlZ2lzdGVyIHNyYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIERvdWJsZVJlZ2lzdGVyIGRvdWJsZV9kc3QpIHsKLS0gIE1vdkludDY0 VG9Eb3VibGUoZG91YmxlX2RzdCwgc3JjKTsKLS0gIGZjZmlkdShkb3VibGVfZHN0LCBkb3VibGVf ZHN0KTsKLSsgIGlmIChDcHVGZWF0dXJlczo6SXNTdXBwb3J0ZWQoUFBDXzdfUExVUykpIHsKLSsg ICAgTW92SW50NjRUb0RvdWJsZShkb3VibGVfZHN0LCBzcmMpOwotKyAgICBmY2ZpZHUoZG91Ymxl X2RzdCwgZG91YmxlX2RzdCk7Ci0rICB9IGVsc2UgewotKyAgICBMYWJlbCBuZWdhdGl2ZTsKLSsg ICAgTGFiZWwgZG9uZTsKLSsgICAgY21waShzcmMsIE9wZXJhbmQ6Olplcm8oKSk7Ci0rICAgIGJs dCgmbmVnYXRpdmUpOwotKyAgICBzdGQoc3JjLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUp KTsKLSsgICAgbm9wKEdST1VQX0VORElOR19OT1ApOyAgLy8gTEhTL1JBVyBvcHRpbWl6YXRpb24K LSsgICAgbGZkKGRvdWJsZV9kc3QsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkpOwotKyAg ICBmY2ZpZChkb3VibGVfZHN0LCBkb3VibGVfZHN0KTsKLSsgICAgYigmZG9uZSk7Ci0rICAgIGJp bmQoJm5lZ2F0aXZlKTsKLSsgICAgLy8gTm90ZTogR0NDIHNhdmVzIHRoZSBsb3dlc3QgYml0LCB0 aGVuIE9ScyBpdCBhZnRlciBzaGlmdGluZyByaWdodCAxIGJpdCwKLSsgICAgLy8gcHJlc3VtYWJs eSBmb3IgYmV0dGVyIHJvdW5kaW5nLiBUaGlzIHZlcnNpb24gb25seSBzaGlmdHMgcmlnaHQgMSBi aXQuCi0rICAgIHNyZGkocjAsIHNyYywgT3BlcmFuZCgxKSk7Ci0rICAgIHN0ZChyMCwgTWVtT3Bl cmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0rICAgIG5vcChHUk9VUF9FTkRJTkdfTk9QKTsgIC8v IExIUy9SQVcgb3B0aW1pemF0aW9uCi0rICAgIGxmZChkb3VibGVfZHN0LCBNZW1PcGVyYW5kKHNw LCAta0RvdWJsZVNpemUpKTsKLSsgICAgZmNmaWQoZG91YmxlX2RzdCwgZG91YmxlX2RzdCk7Ci0r ICAgIGZhZGQoZG91YmxlX2RzdCwgZG91YmxlX2RzdCwgZG91YmxlX2RzdCk7Ci0rICAgIGJpbmQo JmRvbmUpOwotKyAgIH0KLSB9Ci0gCi0gdm9pZCBUdXJib0Fzc2VtYmxlcjo6Q29udmVydEludDY0 VG9GbG9hdChSZWdpc3RlciBzcmMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBEb3VibGVSZWdpc3RlciBkb3VibGVfZHN0KSB7Ci0gICBNb3ZJbnQ2NFRvRG91Ymxl KGRvdWJsZV9kc3QsIHNyYyk7Ci0tICBmY2ZpZHMoZG91YmxlX2RzdCwgZG91YmxlX2RzdCk7Ci0r ICBpZiAoQ3B1RmVhdHVyZXM6OklzU3VwcG9ydGVkKFBQQ183X1BMVVMpKSB7Ci0rICAgIGZjZmlk cyhkb3VibGVfZHN0LCBkb3VibGVfZHN0KTsKLSsgIH0gZWxzZSB7Ci0rICAgIGZjZmlkKGRvdWJs ZV9kc3QsIGRvdWJsZV9kc3QpOwotKyAgICBmcnNwKGRvdWJsZV9kc3QsIGRvdWJsZV9kc3QpOwot KyAgfQotIH0KLSAjZW5kaWYKLSAKLUBAIC03NjcsMTUgKzgxMSw1NiBAQAotIHZvaWQgVHVyYm9B c3NlbWJsZXI6OkNvbnZlcnREb3VibGVUb1Vuc2lnbmVkSW50NjQoCi0gICAgIGNvbnN0IERvdWJs ZVJlZ2lzdGVyIGRvdWJsZV9pbnB1dCwgY29uc3QgUmVnaXN0ZXIgZHN0LAotICAgICBjb25zdCBE b3VibGVSZWdpc3RlciBkb3VibGVfZHN0LCBGUFJvdW5kaW5nTW9kZSByb3VuZGluZ19tb2RlKSB7 Ci0tICBpZiAocm91bmRpbmdfbW9kZSA9PSBrUm91bmRUb1plcm8pIHsKLS0gICAgZmN0aWR1eihk b3VibGVfZHN0LCBkb3VibGVfaW5wdXQpOwotKyAgaWYgKENwdUZlYXR1cmVzOjpJc1N1cHBvcnRl ZChQUENfN19QTFVTKSkgewotKyAgICBpZiAocm91bmRpbmdfbW9kZSA9PSBrUm91bmRUb1plcm8p IHsKLSsgICAgICBmY3RpZHV6KGRvdWJsZV9kc3QsIGRvdWJsZV9pbnB1dCk7Ci0rICAgIH0gZWxz ZSB7Ci0rICAgICAgU2V0Um91bmRpbmdNb2RlKHJvdW5kaW5nX21vZGUpOwotKyAgICAgIGZjdGlk dShkb3VibGVfZHN0LCBkb3VibGVfaW5wdXQpOwotKyAgICAgIFJlc2V0Um91bmRpbmdNb2RlKCk7 Ci0rICAgIH0KLSsKLSsgICAgTW92RG91YmxlVG9JbnQ2NChkc3QsIGRvdWJsZV9kc3QpOwotICAg fSBlbHNlIHsKLS0gICAgU2V0Um91bmRpbmdNb2RlKHJvdW5kaW5nX21vZGUpOwotLSAgICBmY3Rp ZHUoZG91YmxlX2RzdCwgZG91YmxlX2lucHV0KTsKLS0gICAgUmVzZXRSb3VuZGluZ01vZGUoKTsK LSsgICAgTGFiZWwgc2FmZV9zaXplOwotKyAgICBMYWJlbCBkb25lOwotKyAgICBtb3YoZHN0LCBP cGVyYW5kKDE1OTM4MzU1MjApKTsgIC8vIGJpdCBwYXR0ZXJuIGZvciAyXjYzIGFzIGEgZmxvYXQK LSsgICAgc3R3KGRzdCwgTWVtT3BlcmFuZChzcCwgLWtGbG9hdFNpemUpKTsKLSsgICAgbm9wKEdS T1VQX0VORElOR19OT1ApOyAgLy8gTEhTL1JBVyBvcHRpbWl6YXRpb24KLSsgICAgbGZzKGRvdWJs ZV9kc3QsIE1lbU9wZXJhbmQoc3AsIC1rRmxvYXRTaXplKSk7Ci0rICAgIGZjbXB1KGRvdWJsZV9p bnB1dCwgZG91YmxlX2RzdCk7Ci0rICAgIGJsdCgmc2FmZV9zaXplKTsKLSsgICAgLy8gU3VidHJh Y3QgMl42MywgdGhlbiBPUiB0aGUgdG9wIGJpdCBvZiB0aGUgdWludDY0IHRvIGFkZCBiYWNrCi0r ICAgIGZzdWIoZG91YmxlX2RzdCwgZG91YmxlX2lucHV0LCBkb3VibGVfZHN0KTsKLSsgICAgaWYg KHJvdW5kaW5nX21vZGUgPT0ga1JvdW5kVG9aZXJvKSB7Ci0rICAgICAgZmN0aWR6KGRvdWJsZV9k c3QsIGRvdWJsZV9kc3QpOwotKyAgICB9IGVsc2UgewotKyAgICAgIFNldFJvdW5kaW5nTW9kZShy b3VuZGluZ19tb2RlKTsKLSsgICAgICBmY3RpZChkb3VibGVfZHN0LCBkb3VibGVfZHN0KTsKLSsg ICAgICBSZXNldFJvdW5kaW5nTW9kZSgpOwotKyAgICB9Ci0rICAgIC8vIHNldCByMCB0byAtMSwg dGhlbiBjbGVhciBhbGwgYnV0IHRoZSBNU0IuCi0rICAgIG1vdihyMCwgT3BlcmFuZCgtMSkpOwot KyAgICBybGRpY3IocjAsIHIwLCAwLCAwKTsKLSsgICAgc3RmZChkb3VibGVfZHN0LCBNZW1PcGVy YW5kKHNwLCAta0RvdWJsZVNpemUpKTsKLSsgICAgbm9wKEdST1VQX0VORElOR19OT1ApOyAgLy8g TEhTL1JBVyBvcHRpbWl6YXRpb24KLSsgICAgbGQoZHN0LCBNZW1PcGVyYW5kKHNwLCAta0RvdWJs ZVNpemUpKTsKLSsgICAgeG9yXyhkc3QsIGRzdCwgcjApOwotKyAgICBiKCZkb25lKTsKLSsgICAg Ly8gSGFuZGxpbmcgZm9yIHZhbHVlcyBzbWFsbGVyIHRoYW4gMl42My4KLSsgICAgYmluZCgmc2Fm ZV9zaXplKTsKLSsgICAgaWYgKHJvdW5kaW5nX21vZGUgPT0ga1JvdW5kVG9aZXJvKSB7Ci0rICAg ICAgZmN0aWR6KGRvdWJsZV9kc3QsIGRvdWJsZV9pbnB1dCk7Ci0rICAgIH0gZWxzZSB7Ci0rICAg ICAgU2V0Um91bmRpbmdNb2RlKHJvdW5kaW5nX21vZGUpOwotKyAgICAgIGZjdGlkKGRvdWJsZV9k c3QsIGRvdWJsZV9pbnB1dCk7Ci0rICAgICAgUmVzZXRSb3VuZGluZ01vZGUoKTsKLSsgICAgfQot KyAgICBzdGZkKGRvdWJsZV9kc3QsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkpOwotKyAg ICBub3AoR1JPVVBfRU5ESU5HX05PUCk7ICAvLyBMSFMvUkFXIG9wdGltaXphdGlvbgotKyAgICBs ZChkc3QsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkpOwotKyAgICBiaW5kKCZkb25lKTsK LSAgIH0KLS0KLS0gIE1vdkRvdWJsZVRvSW50NjQoZHN0LCBkb3VibGVfZHN0KTsKLSB9Ci0gI2Vu ZGlmCi0gCi1AQCAtMjA5NywxOSArMjE4MiwxNyBAQAotICAgfQotICNlbmRpZgotIAotLSAgYWRk aShzcCwgc3AsIE9wZXJhbmQoLWtEb3VibGVTaXplKSk7Ci0gI2lmIFY4X1RBUkdFVF9BUkNIX1BQ QzY0Ci0gICBtb3Yoc2NyYXRjaCwgT3BlcmFuZChsaXRWYWwuaXZhbCkpOwotLSAgc3RkKHNjcmF0 Y2gsIE1lbU9wZXJhbmQoc3ApKTsKLSsgIHN0ZChzY3JhdGNoLCBNZW1PcGVyYW5kKHNwLCAta0Rv dWJsZVNpemUpKTsKLSAjZWxzZQotICAgTG9hZEludExpdGVyYWwoc2NyYXRjaCwgbGl0VmFsLml2 YWxbMF0pOwotLSAgc3R3KHNjcmF0Y2gsIE1lbU9wZXJhbmQoc3AsIDApKTsKLSsgIHN0dyhzY3Jh dGNoLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUpKTsKLSAgIExvYWRJbnRMaXRlcmFsKHNj cmF0Y2gsIGxpdFZhbC5pdmFsWzFdKTsKLS0gIHN0dyhzY3JhdGNoLCBNZW1PcGVyYW5kKHNwLCA0 KSk7Ci0rICBzdHcoc2NyYXRjaCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplICsgNCkpOwot ICNlbmRpZgotICAgbm9wKEdST1VQX0VORElOR19OT1ApOyAgLy8gTEhTL1JBVyBvcHRpbWl6YXRp b24KLS0gIGxmZChyZXN1bHQsIE1lbU9wZXJhbmQoc3AsIDApKTsKLS0gIGFkZGkoc3AsIHNwLCBP cGVyYW5kKGtEb3VibGVTaXplKSk7Ci0rICBsZmQocmVzdWx0LCBNZW1PcGVyYW5kKHNwLCAta0Rv dWJsZVNpemUpKTsKLSB9Ci0gCi0gdm9pZCBUdXJib0Fzc2VtYmxlcjo6TW92SW50VG9Eb3VibGUo RG91YmxlUmVnaXN0ZXIgZHN0LCBSZWdpc3RlciBzcmMsCi1AQCAtMjEyMywxOCArMjIwNiwxNiBA QAotICNlbmRpZgotIAotICAgRENIRUNLKHNyYyAhPSBzY3JhdGNoKTsKLS0gIHN1Ymkoc3AsIHNw LCBPcGVyYW5kKGtEb3VibGVTaXplKSk7Ci0gI2lmIFY4X1RBUkdFVF9BUkNIX1BQQzY0Ci0gICBl eHRzdyhzY3JhdGNoLCBzcmMpOwotLSAgc3RkKHNjcmF0Y2gsIE1lbU9wZXJhbmQoc3AsIDApKTsK LSsgIHN0ZChzY3JhdGNoLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUpKTsKLSAjZWxzZQot ICAgc3Jhd2koc2NyYXRjaCwgc3JjLCAzMSk7Ci0tICBzdHcoc2NyYXRjaCwgTWVtT3BlcmFuZChz cCwgUmVnaXN0ZXI6OmtFeHBvbmVudE9mZnNldCkpOwotLSAgc3R3KHNyYywgTWVtT3BlcmFuZChz cCwgUmVnaXN0ZXI6OmtNYW50aXNzYU9mZnNldCkpOwotKyAgc3R3KHNjcmF0Y2gsIE1lbU9wZXJh bmQoc3AsIC1rRG91YmxlU2l6ZSArIFJlZ2lzdGVyOjprRXhwb25lbnRPZmZzZXQpKTsKLSsgIHN0 dyhzcmMsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSArIFJlZ2lzdGVyOjprTWFudGlzc2FP ZmZzZXQpKTsKLSAjZW5kaWYKLSAgIG5vcChHUk9VUF9FTkRJTkdfTk9QKTsgIC8vIExIUy9SQVcg b3B0aW1pemF0aW9uCi0tICBsZmQoZHN0LCBNZW1PcGVyYW5kKHNwLCAwKSk7Ci0tICBhZGRpKHNw LCBzcCwgT3BlcmFuZChrRG91YmxlU2l6ZSkpOwotKyAgbGZkKGRzdCwgTWVtT3BlcmFuZChzcCwg LWtEb3VibGVTaXplKSk7Ci0gfQotIAotIHZvaWQgVHVyYm9Bc3NlbWJsZXI6Ok1vdlVuc2lnbmVk SW50VG9Eb3VibGUoRG91YmxlUmVnaXN0ZXIgZHN0LCBSZWdpc3RlciBzcmMsCi1AQCAtMjE0OCwx OCArMjIyOSwxNiBAQAotICNlbmRpZgotIAotICAgRENIRUNLKHNyYyAhPSBzY3JhdGNoKTsKLS0g IHN1Ymkoc3AsIHNwLCBPcGVyYW5kKGtEb3VibGVTaXplKSk7Ci0gI2lmIFY4X1RBUkdFVF9BUkNI X1BQQzY0Ci0gICBjbHJsZGkoc2NyYXRjaCwgc3JjLCBPcGVyYW5kKDMyKSk7Ci0tICBzdGQoc2Ny YXRjaCwgTWVtT3BlcmFuZChzcCwgMCkpOwotKyAgc3RkKHNjcmF0Y2gsIE1lbU9wZXJhbmQoc3As IC1rRG91YmxlU2l6ZSkpOwotICNlbHNlCi0gICBsaShzY3JhdGNoLCBPcGVyYW5kOjpaZXJvKCkp OwotLSAgc3R3KHNjcmF0Y2gsIE1lbU9wZXJhbmQoc3AsIFJlZ2lzdGVyOjprRXhwb25lbnRPZmZz ZXQpKTsKLS0gIHN0dyhzcmMsIE1lbU9wZXJhbmQoc3AsIFJlZ2lzdGVyOjprTWFudGlzc2FPZmZz ZXQpKTsKLSsgIHN0dyhzY3JhdGNoLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUgKyBSZWdp c3Rlcjo6a0V4cG9uZW50T2Zmc2V0KSk7Ci0rICBzdHcoc3JjLCBNZW1PcGVyYW5kKHNwLCAta0Rv dWJsZVNpemUgKyBSZWdpc3Rlcjo6a01hbnRpc3NhT2Zmc2V0KSk7Ci0gI2VuZGlmCi0gICBub3Ao R1JPVVBfRU5ESU5HX05PUCk7ICAvLyBMSFMvUkFXIG9wdGltaXphdGlvbgotLSAgbGZkKGRzdCwg TWVtT3BlcmFuZChzcCwgMCkpOwotLSAgYWRkaShzcCwgc3AsIE9wZXJhbmQoa0RvdWJsZVNpemUp KTsKLSsgIGxmZChkc3QsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkpOwotIH0KLSAKLSB2 b2lkIFR1cmJvQXNzZW1ibGVyOjpNb3ZJbnQ2NFRvRG91YmxlKERvdWJsZVJlZ2lzdGVyIGRzdCwK LUBAIC0yMTc0LDE2ICsyMjUzLDE0IEBACi0gICB9Ci0gI2VuZGlmCi0gCi0tICBzdWJpKHNwLCBz cCwgT3BlcmFuZChrRG91YmxlU2l6ZSkpOwotICNpZiBWOF9UQVJHRVRfQVJDSF9QUEM2NAotLSAg c3RkKHNyYywgTWVtT3BlcmFuZChzcCwgMCkpOwotKyAgc3RkKHNyYywgTWVtT3BlcmFuZChzcCwg LWtEb3VibGVTaXplKSk7Ci0gI2Vsc2UKLS0gIHN0dyhzcmNfaGksIE1lbU9wZXJhbmQoc3AsIFJl Z2lzdGVyOjprRXhwb25lbnRPZmZzZXQpKTsKLS0gIHN0dyhzcmMsIE1lbU9wZXJhbmQoc3AsIFJl Z2lzdGVyOjprTWFudGlzc2FPZmZzZXQpKTsKLSsgIHN0dyhzcmNfaGksIE1lbU9wZXJhbmQoc3As IC1rRG91YmxlU2l6ZSArIFJlZ2lzdGVyOjprRXhwb25lbnRPZmZzZXQpKTsKLSsgIHN0dyhzcmMs IE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSArIFJlZ2lzdGVyOjprTWFudGlzc2FPZmZzZXQp KTsKLSAjZW5kaWYKLSAgIG5vcChHUk9VUF9FTkRJTkdfTk9QKTsgIC8vIExIUy9SQVcgb3B0aW1p emF0aW9uCi0tICBsZmQoZHN0LCBNZW1PcGVyYW5kKHNwLCAwKSk7Ci0tICBhZGRpKHNwLCBzcCwg T3BlcmFuZChrRG91YmxlU2l6ZSkpOwotKyAgbGZkKGRzdCwgTWVtT3BlcmFuZChzcCwgLWtEb3Vi bGVTaXplKSk7Ci0gfQotIAotICNpZiBWOF9UQVJHRVRfQVJDSF9QUEM2NAotQEAgLTIxOTgsMTIg KzIyNzUsMTAgQEAKLSAgICAgcmV0dXJuOwotICAgfQotIAotLSAgc3ViaShzcCwgc3AsIE9wZXJh bmQoa0RvdWJsZVNpemUpKTsKLS0gIHN0dyhzcmNfaGksIE1lbU9wZXJhbmQoc3AsIFJlZ2lzdGVy OjprRXhwb25lbnRPZmZzZXQpKTsKLS0gIHN0dyhzcmNfbG8sIE1lbU9wZXJhbmQoc3AsIFJlZ2lz dGVyOjprTWFudGlzc2FPZmZzZXQpKTsKLSsgIHN0dyhzcmNfaGksIE1lbU9wZXJhbmQoc3AsIC1r RG91YmxlU2l6ZSArIFJlZ2lzdGVyOjprRXhwb25lbnRPZmZzZXQpKTsKLSsgIHN0dyhzcmNfbG8s IE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSArIFJlZ2lzdGVyOjprTWFudGlzc2FPZmZzZXQp KTsKLSAgIG5vcChHUk9VUF9FTkRJTkdfTk9QKTsgIC8vIExIUy9SQVcgb3B0aW1pemF0aW9uCi0t ICBsZmQoZHN0LCBNZW1PcGVyYW5kKHNwKSk7Ci0tICBhZGRpKHNwLCBzcCwgT3BlcmFuZChrRG91 YmxlU2l6ZSkpOwotKyAgbGZkKGRzdCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0g fQotICNlbmRpZgotIAotQEAgLTIyMTgsMTIgKzIyOTMsMTAgQEAKLSAgIH0KLSAjZW5kaWYKLSAK LS0gIHN1Ymkoc3AsIHNwLCBPcGVyYW5kKGtEb3VibGVTaXplKSk7Ci0tICBzdGZkKGRzdCwgTWVt T3BlcmFuZChzcCkpOwotLSAgc3R3KHNyYywgTWVtT3BlcmFuZChzcCwgUmVnaXN0ZXI6OmtNYW50 aXNzYU9mZnNldCkpOwotKyAgc3RmZChkc3QsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkp OwotKyAgc3R3KHNyYywgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplICsgUmVnaXN0ZXI6OmtN YW50aXNzYU9mZnNldCkpOwotICAgbm9wKEdST1VQX0VORElOR19OT1ApOyAgLy8gTEhTL1JBVyBv cHRpbWl6YXRpb24KLS0gIGxmZChkc3QsIE1lbU9wZXJhbmQoc3ApKTsKLS0gIGFkZGkoc3AsIHNw LCBPcGVyYW5kKGtEb3VibGVTaXplKSk7Ci0rICBsZmQoZHN0LCBNZW1PcGVyYW5kKHNwLCAta0Rv dWJsZVNpemUpKTsKLSB9Ci0gCi0gdm9pZCBUdXJib0Fzc2VtYmxlcjo6SW5zZXJ0RG91YmxlSGln aChEb3VibGVSZWdpc3RlciBkc3QsIFJlZ2lzdGVyIHNyYywKLUBAIC0yMjM3LDEyICsyMzEwLDEw IEBACi0gICB9Ci0gI2VuZGlmCi0gCi0tICBzdWJpKHNwLCBzcCwgT3BlcmFuZChrRG91YmxlU2l6 ZSkpOwotLSAgc3RmZChkc3QsIE1lbU9wZXJhbmQoc3ApKTsKLS0gIHN0dyhzcmMsIE1lbU9wZXJh bmQoc3AsIFJlZ2lzdGVyOjprRXhwb25lbnRPZmZzZXQpKTsKLSsgIHN0ZmQoZHN0LCBNZW1PcGVy YW5kKHNwLCAta0RvdWJsZVNpemUpKTsKLSsgIHN0dyhzcmMsIE1lbU9wZXJhbmQoc3AsIC1rRG91 YmxlU2l6ZSArIFJlZ2lzdGVyOjprRXhwb25lbnRPZmZzZXQpKTsKLSAgIG5vcChHUk9VUF9FTkRJ TkdfTk9QKTsgIC8vIExIUy9SQVcgb3B0aW1pemF0aW9uCi0tICBsZmQoZHN0LCBNZW1PcGVyYW5k KHNwKSk7Ci0tICBhZGRpKHNwLCBzcCwgT3BlcmFuZChrRG91YmxlU2l6ZSkpOwotKyAgbGZkKGRz dCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0gfQotIAotIHZvaWQgVHVyYm9Bc3Nl bWJsZXI6Ok1vdkRvdWJsZUxvd1RvSW50KFJlZ2lzdGVyIGRzdCwgRG91YmxlUmVnaXN0ZXIgc3Jj KSB7Ci1AQCAtMjI1MywxMSArMjMyNCw5IEBACi0gICB9Ci0gI2VuZGlmCi0gCi0tICBzdWJpKHNw LCBzcCwgT3BlcmFuZChrRG91YmxlU2l6ZSkpOwotLSAgc3RmZChzcmMsIE1lbU9wZXJhbmQoc3Ap KTsKLSsgIHN0ZmQoc3JjLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUpKTsKLSAgIG5vcChH Uk9VUF9FTkRJTkdfTk9QKTsgIC8vIExIUy9SQVcgb3B0aW1pemF0aW9uCi0tICBsd3ooZHN0LCBN ZW1PcGVyYW5kKHNwLCBSZWdpc3Rlcjo6a01hbnRpc3NhT2Zmc2V0KSk7Ci0tICBhZGRpKHNwLCBz cCwgT3BlcmFuZChrRG91YmxlU2l6ZSkpOwotKyAgbHd6KGRzdCwgTWVtT3BlcmFuZChzcCwgLWtE b3VibGVTaXplICsgUmVnaXN0ZXI6OmtNYW50aXNzYU9mZnNldCkpOwotIH0KLSAKLSB2b2lkIFR1 cmJvQXNzZW1ibGVyOjpNb3ZEb3VibGVIaWdoVG9JbnQoUmVnaXN0ZXIgZHN0LCBEb3VibGVSZWdp c3RlciBzcmMpIHsKLUBAIC0yMjY5LDExICsyMzM4LDkgQEAKLSAgIH0KLSAjZW5kaWYKLSAKLS0g IHN1Ymkoc3AsIHNwLCBPcGVyYW5kKGtEb3VibGVTaXplKSk7Ci0tICBzdGZkKHNyYywgTWVtT3Bl cmFuZChzcCkpOwotKyAgc3RmZChzcmMsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkpOwot ICAgbm9wKEdST1VQX0VORElOR19OT1ApOyAgLy8gTEhTL1JBVyBvcHRpbWl6YXRpb24KLS0gIGx3 eihkc3QsIE1lbU9wZXJhbmQoc3AsIFJlZ2lzdGVyOjprRXhwb25lbnRPZmZzZXQpKTsKLS0gIGFk ZGkoc3AsIHNwLCBPcGVyYW5kKGtEb3VibGVTaXplKSk7Ci0rICBsd3ooZHN0LCBNZW1PcGVyYW5k KHNwLCAta0RvdWJsZVNpemUgKyBSZWdpc3Rlcjo6a0V4cG9uZW50T2Zmc2V0KSk7Ci0gfQotIAot IHZvaWQgVHVyYm9Bc3NlbWJsZXI6Ok1vdkRvdWJsZVRvSW50NjQoCi1AQCAtMjI4OCwzMiArMjM1 NSwyNiBAQAotICAgfQotICNlbmRpZgotIAotLSAgc3ViaShzcCwgc3AsIE9wZXJhbmQoa0RvdWJs ZVNpemUpKTsKLS0gIHN0ZmQoc3JjLCBNZW1PcGVyYW5kKHNwKSk7Ci0rICBzdGZkKHNyYywgTWVt T3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0gICBub3AoR1JPVVBfRU5ESU5HX05PUCk7ICAv LyBMSFMvUkFXIG9wdGltaXphdGlvbgotICNpZiBWOF9UQVJHRVRfQVJDSF9QUEM2NAotLSAgbGQo ZHN0LCBNZW1PcGVyYW5kKHNwLCAwKSk7Ci0rICBsZChkc3QsIE1lbU9wZXJhbmQoc3AsIC1rRG91 YmxlU2l6ZSkpOwotICNlbHNlCi0tICBsd3ooZHN0X2hpLCBNZW1PcGVyYW5kKHNwLCBSZWdpc3Rl cjo6a0V4cG9uZW50T2Zmc2V0KSk7Ci0tICBsd3ooZHN0LCBNZW1PcGVyYW5kKHNwLCBSZWdpc3Rl cjo6a01hbnRpc3NhT2Zmc2V0KSk7Ci0rICBsd3ooZHN0X2hpLCBNZW1PcGVyYW5kKHNwLCAta0Rv dWJsZVNpemUgKyBSZWdpc3Rlcjo6a0V4cG9uZW50T2Zmc2V0KSk7Ci0rICBsd3ooZHN0LCBNZW1P cGVyYW5kKHNwLCAta0RvdWJsZVNpemUgKyBSZWdpc3Rlcjo6a01hbnRpc3NhT2Zmc2V0KSk7Ci0g I2VuZGlmCi0tICBhZGRpKHNwLCBzcCwgT3BlcmFuZChrRG91YmxlU2l6ZSkpOwotIH0KLSAKLSB2 b2lkIFR1cmJvQXNzZW1ibGVyOjpNb3ZJbnRUb0Zsb2F0KERvdWJsZVJlZ2lzdGVyIGRzdCwgUmVn aXN0ZXIgc3JjKSB7Ci0tICBzdWJpKHNwLCBzcCwgT3BlcmFuZChrRmxvYXRTaXplKSk7Ci0tICBz dHcoc3JjLCBNZW1PcGVyYW5kKHNwLCAwKSk7Ci0rICBzdHcoc3JjLCBNZW1PcGVyYW5kKHNwLCAt a0Zsb2F0U2l6ZSkpOwotICAgbm9wKEdST1VQX0VORElOR19OT1ApOyAgLy8gTEhTL1JBVyBvcHRp bWl6YXRpb24KLS0gIGxmcyhkc3QsIE1lbU9wZXJhbmQoc3AsIDApKTsKLS0gIGFkZGkoc3AsIHNw LCBPcGVyYW5kKGtGbG9hdFNpemUpKTsKLSsgIGxmcyhkc3QsIE1lbU9wZXJhbmQoc3AsIC1rRmxv YXRTaXplKSk7Ci0gfQotIAotIHZvaWQgVHVyYm9Bc3NlbWJsZXI6Ok1vdkZsb2F0VG9JbnQoUmVn aXN0ZXIgZHN0LCBEb3VibGVSZWdpc3RlciBzcmMpIHsKLS0gIHN1Ymkoc3AsIHNwLCBPcGVyYW5k KGtGbG9hdFNpemUpKTsKLS0gIHN0ZnMoc3JjLCBNZW1PcGVyYW5kKHNwLCAwKSk7Ci0rICBzdGZz KHNyYywgTWVtT3BlcmFuZChzcCwgLWtGbG9hdFNpemUpKTsKLSAgIG5vcChHUk9VUF9FTkRJTkdf Tk9QKTsgIC8vIExIUy9SQVcgb3B0aW1pemF0aW9uCi0tICBsd3ooZHN0LCBNZW1PcGVyYW5kKHNw LCAwKSk7Ci0tICBhZGRpKHNwLCBzcCwgT3BlcmFuZChrRmxvYXRTaXplKSk7Ci0rICBsd3ooZHN0 LCBNZW1PcGVyYW5kKHNwLCAta0Zsb2F0U2l6ZSkpOwotIH0KLSAKLSB2b2lkIFR1cmJvQXNzZW1i bGVyOjpBZGQoUmVnaXN0ZXIgZHN0LCBSZWdpc3RlciBzcmMsIGludHB0cl90IHZhbHVlLAotLS0t IGEvZGVwcy92OC9zcmMvY29kZWdlbi9wcGMvY3B1LXBwYy5jYwkyMDIyLTAyLTE1IDIxOjExOjQ2 LjI5MTM4NzQ1NyAtMDgwMAotKysrIGIvZGVwcy92OC9zcmMvY29kZWdlbi9wcGMvY3B1LXBwYy5j YwkyMDIyLTAyLTE3IDIwOjM4OjA4LjgxNjA5ODE4NSAtMDgwMAotQEAgLTgsMTQgKzgsMTIgQEAK LSAKLSAjaW5jbHVkZSAic3JjL2NvZGVnZW4vY3B1LWZlYXR1cmVzLmgiCi0gCi0tI2RlZmluZSBJ TlNUUl9BTkRfREFUQV9DQUNIRV9DT0hFUkVOQ1kgTFdTWU5DCi0tCi0gbmFtZXNwYWNlIHY4IHsK LSBuYW1lc3BhY2UgaW50ZXJuYWwgewotIAotIHZvaWQgQ3B1RmVhdHVyZXM6OkZsdXNoSUNhY2hl KHZvaWQqIGJ1ZmZlciwgc2l6ZV90IHNpemUpIHsKLSAjaWYgIWRlZmluZWQoVVNFX1NJTVVMQVRP UikKLS0gIGlmIChDcHVGZWF0dXJlczo6SXNTdXBwb3J0ZWQoSU5TVFJfQU5EX0RBVEFfQ0FDSEVf Q09IRVJFTkNZKSkgewotKyAgaWYgKENwdUZlYXR1cmVzOjpJc1N1cHBvcnRlZChJQ0FDSEVfU05P T1ApKSB7Ci0gICAgIF9fYXNtX18gX192b2xhdGlsZV9fKAotICAgICAgICAgInN5bmMgXG4iCi0g ICAgICAgICAiaWNiaSAwLCAlMCAgXG4iCi1AQCAtMjYsMjUgKzI0LDMzIEBACi0gICAgIHJldHVy bjsKLSAgIH0KLSAKLS0gIGNvbnN0IGludCBrQ2FjaGVMaW5lU2l6ZSA9IENwdUZlYXR1cmVzOjpp Y2FjaGVfbGluZV9zaXplKCk7Ci0tICBpbnRwdHJfdCBtYXNrID0ga0NhY2hlTGluZVNpemUgLSAx OwotKyAgY29uc3QgaW50IGtJbnN0ckNhY2hlTGluZVNpemUgPSBDcHVGZWF0dXJlczo6aWNhY2hl X2xpbmVfc2l6ZSgpOwotKyAgY29uc3QgaW50IGtEYXRhQ2FjaGVMaW5lU2l6ZSA9IENwdUZlYXR1 cmVzOjpkY2FjaGVfbGluZV9zaXplKCk7Ci0rICBpbnRwdHJfdCBpY19tYXNrID0ga0luc3RyQ2Fj aGVMaW5lU2l6ZSAtIDE7Ci0rICBpbnRwdHJfdCBkY19tYXNrID0ga0RhdGFDYWNoZUxpbmVTaXpl IC0gMTsKLSAgIGJ5dGUqIHN0YXJ0ID0KLS0gICAgICByZWludGVycHJldF9jYXN0PGJ5dGUqPihy ZWludGVycHJldF9jYXN0PGludHB0cl90PihidWZmZXIpICYgfm1hc2spOwotKyAgICAgIHJlaW50 ZXJwcmV0X2Nhc3Q8Ynl0ZSo+KHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGJ1ZmZlcikgJiB+ ZGNfbWFzayk7Ci0gICBieXRlKiBlbmQgPSBzdGF0aWNfY2FzdDxieXRlKj4oYnVmZmVyKSArIHNp emU7Ci0tICBmb3IgKGJ5dGUqIHBvaW50ZXIgPSBzdGFydDsgcG9pbnRlciA8IGVuZDsgcG9pbnRl ciArPSBrQ2FjaGVMaW5lU2l6ZSkgewotLSAgICBfX2FzbV9fKAotKyAgZm9yIChieXRlKiBwb2lu dGVyID0gc3RhcnQ7IHBvaW50ZXIgPCBlbmQ7IHBvaW50ZXIgKz0ga0RhdGFDYWNoZUxpbmVTaXpl KSB7Ci0rICAgIF9fYXNtX18gX192b2xhdGlsZV9fKAotICAgICAgICAgImRjYmYgMCwgJTAgIFxu IgotLSAgICAgICAgInN5bmMgICAgICAgIFxuIgotLSAgICAgICAgImljYmkgMCwgJTAgIFxuIgot LSAgICAgICAgImlzeW5jICAgICAgIFxuIgotICAgICAgICAgOiAvKiBubyBvdXRwdXQgKi8KLSAg ICAgICAgIDogInIiKHBvaW50ZXIpKTsKLSAgIH0KLSsgIF9fYXNtX18gX192b2xhdGlsZV9fKCJz eW5jIik7Ci0gCi0rICBzdGFydCA9Ci0rICAgICAgcmVpbnRlcnByZXRfY2FzdDxieXRlKj4ocmVp bnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oYnVmZmVyKSAmIH5pY19tYXNrKTsKLSsgIGZvciAoYnl0 ZSogcG9pbnRlciA9IHN0YXJ0OyBwb2ludGVyIDwgZW5kOyBwb2ludGVyICs9IGtJbnN0ckNhY2hl TGluZVNpemUpIHsKLSsgICAgX19hc21fXyBfX3ZvbGF0aWxlX18oCi0rICAgICAgICAiaWNiaSAw LCAlMCAgXG4iCi0rICAgICAgICA6IC8qIG5vIG91dHB1dCAqLwotKyAgICAgICAgOiAiciIocG9p bnRlcikpOwotKyAgfQotKyAgX19hc21fXyBfX3ZvbGF0aWxlX18oImlzeW5jIik7Ci0gI2VuZGlm ICAvLyAhVVNFX1NJTVVMQVRPUgotIH0KLSB9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKLSB9ICAv LyBuYW1lc3BhY2UgdjgKLSAKLS0jdW5kZWYgSU5TVFJfQU5EX0RBVEFfQ0FDSEVfQ09IRVJFTkNZ Ci0gI2VuZGlmICAvLyBWOF9UQVJHRVRfQVJDSF9QUEMKLS0tLSBhL2RlcHMvdjgvc3JjL2NvZGVn ZW4vcHBjL2Fzc2VtYmxlci1wcGMuY2MJMjAyMi0wMi0xNSAyMToxMTo0Ni4yOTUzODc1NTkgLTA4 MDAKLSsrKyBiL2RlcHMvdjgvc3JjL2NvZGVnZW4vcHBjL2Fzc2VtYmxlci1wcGMuY2MJMjAyMi0w Mi0xOCAwMDoxMTowNy44ODcyNTcxNzQgLTA4MDAKLUBAIC01Nyw1OCArNTcsNjIgQEAKLSB2b2lk IENwdUZlYXR1cmVzOjpQcm9iZUltcGwoYm9vbCBjcm9zc19jb21waWxlKSB7Ci0gICBzdXBwb3J0 ZWRfIHw9IENwdUZlYXR1cmVzSW1wbGllZEJ5Q29tcGlsZXIoKTsKLSAgIGljYWNoZV9saW5lX3Np emVfID0gMTI4OwotKyAgZGNhY2hlX2xpbmVfc2l6ZV8gPSAxMjg7Ci0gCi0gICAvLyBPbmx5IHVz ZSBzdGF0aWNhbGx5IGRldGVybWluZWQgZmVhdHVyZXMgZm9yIGNyb3NzIGNvbXBpbGUgKHNuYXBz aG90KS4KLSAgIGlmIChjcm9zc19jb21waWxlKSByZXR1cm47Ci0gCi0tLy8gRGV0ZWN0IHdoZXRo ZXIgZnJpbSBpbnN0cnVjdGlvbiBpcyBzdXBwb3J0ZWQgKFBPV0VSNSspCi0tLy8gRm9yIG5vdyB3 ZSB3aWxsIGp1c3QgY2hlY2sgZm9yIHByb2Nlc3NvcnMgd2Uga25vdyBkbyBub3QKLS0vLyBzdXBw b3J0IGl0Ci0gI2lmbmRlZiBVU0VfU0lNVUxBVE9SCi0gICAvLyBQcm9iZSBmb3IgYWRkaXRpb25h bCBmZWF0dXJlcyBhdCBydW50aW1lLgotICAgYmFzZTo6Q1BVIGNwdTsKLS0gIGlmIChjcHUucGFy dCgpID09IGJhc2U6OkNQVTo6UFBDX1BPV0VSOSB8fCAKLS0gICAgICBjcHUucGFydCgpID09IGJh c2U6OkNQVTo6UFBDX1BPV0VSMTApIHsKLS0gICAgc3VwcG9ydGVkXyB8PSAoMXUgPDwgTU9EVUxP KTsKLS0gIH0KLSsgIHN3aXRjaCAoY3B1LnBhcnQoKSkgewotKyAgICBjYXNlIGJhc2U6OkNQVTo6 UFBDX1BPV0VSMTA6Ci0rICAgIGNhc2UgYmFzZTo6Q1BVOjpQUENfUE9XRVI5OgotKyAgICAgIHN1 cHBvcnRlZF8gfD0gKDF1IDw8IE1PRFVMTyk7Ci0rICAgICAgLy8gZmFsbHRocm91Z2gKLSsKLSsg ICAgY2FzZSBiYXNlOjpDUFU6OlBQQ19QT1dFUjg6Ci0gI2lmIFY4X1RBUkdFVF9BUkNIX1BQQzY0 Ci0tICBpZiAoY3B1LnBhcnQoKSA9PSBiYXNlOjpDUFU6OlBQQ19QT1dFUjggfHwgCi0tICAgICAg Y3B1LnBhcnQoKSA9PSBiYXNlOjpDUFU6OlBQQ19QT1dFUjkgfHwgCi0tICAgICAgY3B1LnBhcnQo KSA9PSBiYXNlOjpDUFU6OlBQQ19QT1dFUjEwKSB7Ci0tICAgIHN1cHBvcnRlZF8gfD0gKDF1IDw8 IEZQUl9HUFJfTU9WKTsKLS0gIH0KLSsgICAgICBzdXBwb3J0ZWRfIHw9ICgxdSA8PCBGUFJfR1BS X01PVik7Ci0gI2VuZGlmCi0tICBpZiAoY3B1LnBhcnQoKSA9PSBiYXNlOjpDUFU6OlBQQ19QT1dF UjYgfHwKLS0gICAgICBjcHUucGFydCgpID09IGJhc2U6OkNQVTo6UFBDX1BPV0VSNyB8fAotLSAg ICAgIGNwdS5wYXJ0KCkgPT0gYmFzZTo6Q1BVOjpQUENfUE9XRVI4IHx8IAotLSAgICAgIGNwdS5w YXJ0KCkgPT0gYmFzZTo6Q1BVOjpQUENfUE9XRVI5IHx8IAotLSAgICAgIGNwdS5wYXJ0KCkgPT0g YmFzZTo6Q1BVOjpQUENfUE9XRVIxMCkgewotLSAgICBzdXBwb3J0ZWRfIHw9ICgxdSA8PCBMV1NZ TkMpOwotKyAgICAgIC8vIGZhbGx0aHJvdWdoCi0rCi0rICAgIGNhc2UgYmFzZTo6Q1BVOjpQUENf UE9XRVI3OgotKyAgICAgIHN1cHBvcnRlZF8gfD0gKDF1IDw8IFBQQ183X1BMVVMpOwotKyAgICAg IHN1cHBvcnRlZF8gfD0gKDF1IDw8IFBPUF9DT1VOVCk7Ci0rICAgICAgLy8gZmFsbHRocm91Z2gK LSsKLSsgICAgY2FzZSBiYXNlOjpDUFU6OlBQQ19QT1dFUjY6Ci0rICAgIGNhc2UgYmFzZTo6Q1BV OjpQUENfUE9XRVI1OgotKyAgICBjYXNlIGJhc2U6OkNQVTo6UFBDX1BBNlQ6Ci0rICAgICAgc3Vw cG9ydGVkXyB8PSAoMXUgPDwgRlBfUk9VTkRfVE9fSU5UKTsKLSsgICAgICBicmVhazsKLSsKLSsg ICAgLy8gU3BlY2lhbCBjYXNlcyBiZWxvdy4gT3RoZXJ3aXNlLCBhc3N1bWUgbm8gc3BlY2lhbCBm ZWF0dXJlcy4KLSsgICAgLy8gTlhQIGU1NTAwL2U2NTAwIGhhdmUgcG9wY250IGJ1dCBub3QgbXVj aCBlbHNlIHNpbmNlIElTQSB2Mi4wMS4KLSsgICAgY2FzZSBiYXNlOjpDUFU6OlBQQ19FNTUwMDoK LSsgICAgY2FzZSBiYXNlOjpDUFU6OlBQQ19FNjUwMDoKLSsgICAgICBzdXBwb3J0ZWRfIHw9ICgx dSA8PCBQT1BfQ09VTlQpOwotKyAgICAgIGJyZWFrOwotICAgfQotLSAgaWYgKGNwdS5wYXJ0KCkg PT0gYmFzZTo6Q1BVOjpQUENfUE9XRVI3IHx8Ci0tICAgICAgY3B1LnBhcnQoKSA9PSBiYXNlOjpD UFU6OlBQQ19QT1dFUjggfHwgCi0tICAgICAgY3B1LnBhcnQoKSA9PSBiYXNlOjpDUFU6OlBQQ19Q T1dFUjkgfHwgCi0tICAgICAgY3B1LnBhcnQoKSA9PSBiYXNlOjpDUFU6OlBQQ19QT1dFUjEwKSB7 Ci0tICAgIHN1cHBvcnRlZF8gfD0gKDF1IDw8IElTRUxFQ1QpOwotLSAgICBzdXBwb3J0ZWRfIHw9 ICgxdSA8PCBWU1gpOwotKyAgaWYgKGNwdS5oYXNfaXNlbCgpKSB7Ci0rICAgIHN1cHBvcnRlZF8g fD0gKDF1IDw8IElTRUxFQ1QpOyAgICAgIC8vIElTQSB2Mi4wMywgcGx1cyBzb21lIE5YUCBDUFVz Ci0gICB9Ci0tI2lmIFY4X09TX0xJTlVYCi0tICBpZiAoIShjcHUucGFydCgpID09IGJhc2U6OkNQ VTo6UFBDX0c1IHx8IGNwdS5wYXJ0KCkgPT0gYmFzZTo6Q1BVOjpQUENfRzQpKSB7Ci0tICAgIC8v IEFzc3VtZSBzdXBwb3J0Ci0tICAgIHN1cHBvcnRlZF8gfD0gKDF1IDw8IEZQVSk7Ci0rICBpZiAo Y3B1Lmhhc19pY2FjaGVfc25vb3AoKSkgewotKyAgICBzdXBwb3J0ZWRfIHw9ICgxdSA8PCBJQ0FD SEVfU05PT1ApOyAvLyBJU0EgdjIuMDI7IGhhcyBpdHMgb3duIGh3Y2FwIGZsYWcKLSAgIH0KLSAg IGlmIChjcHUuaWNhY2hlX2xpbmVfc2l6ZSgpICE9IGJhc2U6OkNQVTo6VU5LTk9XTl9DQUNIRV9M SU5FX1NJWkUpIHsKLSAgICAgaWNhY2hlX2xpbmVfc2l6ZV8gPSBjcHUuaWNhY2hlX2xpbmVfc2l6 ZSgpOwotICAgfQotLSNlbGlmIFY4X09TX0FJWAotLSAgLy8gQXNzdW1lIHN1cHBvcnQgRlAgc3Vw cG9ydCBhbmQgZGVmYXVsdCBjYWNoZSBsaW5lIHNpemUKLS0gIHN1cHBvcnRlZF8gfD0gKDF1IDw8 IEZQVSk7Ci0tI2VuZGlmCi0rICBpZiAoY3B1LmRjYWNoZV9saW5lX3NpemUoKSAhPSBiYXNlOjpD UFU6OlVOS05PV05fQ0FDSEVfTElORV9TSVpFKSB7Ci0rICAgIGRjYWNoZV9saW5lX3NpemVfID0g Y3B1LmRjYWNoZV9saW5lX3NpemUoKTsKLSsgIH0KLSAjZWxzZSAgLy8gU2ltdWxhdG9yCi0tICBz dXBwb3J0ZWRfIHw9ICgxdSA8PCBGUFUpOwotLSAgc3VwcG9ydGVkXyB8PSAoMXUgPDwgTFdTWU5D KTsKLSsgIHN1cHBvcnRlZF8gfD0gKDF1IDw8IEZQX1JPVU5EX1RPX0lOVCk7Ci0rICBzdXBwb3J0 ZWRfIHw9ICgxdSA8PCBJQ0FDSEVfU05PT1ApOwotICAgc3VwcG9ydGVkXyB8PSAoMXUgPDwgSVNF TEVDVCk7Ci0tICBzdXBwb3J0ZWRfIHw9ICgxdSA8PCBWU1gpOwotKyAgc3VwcG9ydGVkXyB8PSAo MXUgPDwgUE9QX0NPVU5UKTsKLSsgIHN1cHBvcnRlZF8gfD0gKDF1IDw8IFBQQ183X1BMVVMpOwot ICAgc3VwcG9ydGVkXyB8PSAoMXUgPDwgTU9EVUxPKTsKLSAjaWYgVjhfVEFSR0VUX0FSQ0hfUFBD NjQKLSAgIHN1cHBvcnRlZF8gfD0gKDF1IDw8IEZQUl9HUFJfTU9WKTsKLUBAIC0xMjksNyArMTMz LDEzIEBACi0gfQotIAotIHZvaWQgQ3B1RmVhdHVyZXM6OlByaW50RmVhdHVyZXMoKSB7Ci0tICBw cmludGYoIkZQVT0lZFxuIiwgQ3B1RmVhdHVyZXM6OklzU3VwcG9ydGVkKEZQVSkpOwotKyAgcHJp bnRmKCJGUF9ST1VORF9UT19JTlQ9JWRcbiIsIENwdUZlYXR1cmVzOjpJc1N1cHBvcnRlZChGUF9S T1VORF9UT19JTlQpKTsKLSsgIHByaW50ZigiSUNBQ0hFX1NOT09QPSVkXG4iLCBDcHVGZWF0dXJl czo6SXNTdXBwb3J0ZWQoSUNBQ0hFX1NOT09QKSk7Ci0rICBwcmludGYoIklTRUxFQ1Q9JWRcbiIs IENwdUZlYXR1cmVzOjpJc1N1cHBvcnRlZChJU0VMRUNUKSk7Ci0rICBwcmludGYoIlBPUF9DT1VO VD0lZFxuIiwgQ3B1RmVhdHVyZXM6OklzU3VwcG9ydGVkKFBPUF9DT1VOVCkpOwotKyAgcHJpbnRm KCJQUENfN19QTFVTPSVkXG4iLCBDcHVGZWF0dXJlczo6SXNTdXBwb3J0ZWQoUFBDXzdfUExVUykp OwotKyAgcHJpbnRmKCJGUFJfR1BSX01PVj0lZFxuIiwgQ3B1RmVhdHVyZXM6OklzU3VwcG9ydGVk KEZQUl9HUFJfTU9WKSk7Ci0rICBwcmludGYoIk1PRFVMTz0lZFxuIiwgQ3B1RmVhdHVyZXM6Oklz U3VwcG9ydGVkKE1PRFVMTykpOwotIH0KLSAKLSBSZWdpc3RlciBUb1JlZ2lzdGVyKGludCBudW0p IHsKLS0tLSBhL2RlcHMvdjgvc3JjL2NvZGVnZW4vY3B1LWZlYXR1cmVzLmgJMjAyMi0wMi0xNSAy MToxMTo0Ni4yOTUzODc1NTkgLTA4MDAKLSsrKyBiL2RlcHMvdjgvc3JjL2NvZGVnZW4vY3B1LWZl YXR1cmVzLmgJMjAyMi0wMi0xNyAyMToxMDowOS44NTMyNjYwNjEgLTA4MDAKLUBAIC0xMyw2ICsx Myw3IEBACi0gCi0gLy8gQ1BVIGZlYXR1cmUgZmxhZ3MuCi0gZW51bSBDcHVGZWF0dXJlIHsKLSsj aWYgVjhfVEFSR0VUX0FSQ0hfSUEzMiB8fCBWOF9UQVJHRVRfQVJDSF9YNjQKLSAgIC8vIHg4Ngot ICAgU1NFNF8yLAotICAgU1NFNF8xLAotQEAgLTI2LDExICsyNywxNSBAQAotICAgTFpDTlQsCi0g ICBQT1BDTlQsCi0gICBBVE9NLAotKwotKyNlbGlmIFY4X1RBUkdFVF9BUkNIX0FSTQotICAgLy8g QVJNCi0gICAvLyAtIFN0YW5kYXJkIGNvbmZpZ3VyYXRpb25zLiBUaGUgYmFzZWxpbmUgaXMgQVJN djYrVkZQdjIuCi0gICBBUk12NywgICAgICAgIC8vIEFSTXY3LUEgKyBWRlB2My1EMzIgKyBORU9O Ci0gICBBUk12N19TVURJViwgIC8vIEFSTXY3LUEgKyBWRlB2NC1EMzIgKyBORU9OICsgU1VESVYK LSAgIEFSTXY4LCAgICAgICAgLy8gQVJNdjgtQSAoKyBhbGwgb2YgdGhlIGFib3ZlKQotKwotKyNl bGlmIFY4X1RBUkdFVF9BUkNIX01JUFMgfHwgVjhfVEFSR0VUX0FSQ0hfTUlQUzY0Ci0gICAvLyBN SVBTLCBNSVBTNjQKLSAgIEZQVSwKLSAgIEZQNjRGUFUsCi1AQCAtMzgsMTIgKzQzLDE4IEBACi0g ICBNSVBTcjIsCi0gICBNSVBTcjYsCi0gICBNSVBTX1NJTUQsICAvLyBNU0EgaW5zdHJ1Y3Rpb25z Ci0rCi0rI2VsaWYgVjhfVEFSR0VUX0FSQ0hfUFBDIHx8IFY4X1RBUkdFVF9BUkNIX1BQQzY0Ci0g ICAvLyBQUEMKLS0gIEZQUl9HUFJfTU9WLAotLSAgTFdTWU5DLAotLSAgSVNFTEVDVCwKLS0gIFZT WCwKLS0gIE1PRFVMTywKLSsgIEZQX1JPVU5EX1RPX0lOVCwgIC8vIElTQSB2Mi4wMiAoUE9XRVI1 KQotKyAgSUNBQ0hFX1NOT09QLCAgICAgLy8gSVNBIHYyLjAyIChQT1dFUjUpCi0rICBJU0VMRUNU LCAgICAgICAgICAvLyBJU0EgdjIuMDMgKFBPV0VSNSsgYW5kIHNvbWUgTlhQIGNvcmVzKQotKyAg UFBDXzdfUExVUywgICAgICAgLy8gSVNBIHYyLjA2IChQT1dFUjcpCi0rICBQT1BfQ09VTlQsICAg ICAgICAvLyBJU0EgdjIuMDYgKFBPV0VSNyBhbmQgTlhQIGU1NTAwL2U2NTAwKQotKyAgRlBSX0dQ Ul9NT1YsICAgICAgLy8gSVNBIHYyLjA3IChQT1dFUjgpCi0rICBNT0RVTE8sICAgICAgICAgICAv LyBJU0EgdjMuMCAgKFBPV0VSOSkKLSsKLSsjZWxpZiBWOF9UQVJHRVRfQVJDSF9TMzkwWAotICAg Ly8gUzM5MAotICAgRElTVElOQ1RfT1BTLAotICAgR0VORVJBTF9JTlNUUl9FWFQsCi1AQCAtNTEs MTQgKzYyLDE3IEBACi0gICBWRUNUT1JfRkFDSUxJVFksCi0gICBWRUNUT1JfRU5IQU5DRV9GQUNJ TElUWV8xLAotICAgTUlTQ19JTlNUUl9FWFQyLAotKyNlbmRpZgotIAotICAgTlVNQkVSX09GX0NQ VV9GRUFUVVJFUywKLSAKLSsjaWYgVjhfVEFSR0VUX0FSQ0hfQVJNCi0gICAvLyBBUk0gZmVhdHVy ZSBhbGlhc2VzIChiYXNlZCBvbiB0aGUgc3RhbmRhcmQgY29uZmlndXJhdGlvbnMgYWJvdmUpLgot ICAgVkZQdjMgPSBBUk12NywKLSAgIE5FT04gPSBBUk12NywKLSAgIFZGUDMyRFJFR1MgPSBBUk12 NywKLSAgIFNVRElWID0gQVJNdjdfU1VESVYKLSsjZW5kaWYKLSB9OwotIAotIC8vIENwdUZlYXR1 cmVzIGtlZXBzIHRyYWNrIG9mIHdoaWNoIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQgYnkgdGhlIHRh cmdldCBDUFUuCi0tLS0gYS9kZXBzL3Y4L3NyYy9jb21waWxlci9iYWNrZW5kL3BwYy9pbnN0cnVj dGlvbi1zZWxlY3Rvci1wcGMuY2MJMjAyMi0wMi0xNSAyMToxMTo0Ni4yOTkzODc2NjAgLTA4MDAK LSsrKyBiL2RlcHMvdjgvc3JjL2NvbXBpbGVyL2JhY2tlbmQvcHBjL2luc3RydWN0aW9uLXNlbGVj dG9yLXBwYy5jYwkyMDIyLTAyLTE1IDIxOjExOjQ5LjEyMzQ1OTI3MSAtMDgwMAotQEAgLTIzOTMs MTYgKzIzOTMsMjYgQEAKLSAvLyBzdGF0aWMKLSBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjpGbGFn cwotIEluc3RydWN0aW9uU2VsZWN0b3I6OlN1cHBvcnRlZE1hY2hpbmVPcGVyYXRvckZsYWdzKCkg ewotLSAgcmV0dXJuIE1hY2hpbmVPcGVyYXRvckJ1aWxkZXI6OmtGbG9hdDMyUm91bmREb3duIHwK LS0gICAgICAgICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjprRmxvYXQ2NFJvdW5kRG93biB8Ci0t ICAgICAgICAgTWFjaGluZU9wZXJhdG9yQnVpbGRlcjo6a0Zsb2F0MzJSb3VuZFVwIHwKLS0gICAg ICAgICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjprRmxvYXQ2NFJvdW5kVXAgfAotLSAgICAgICAg IE1hY2hpbmVPcGVyYXRvckJ1aWxkZXI6OmtGbG9hdDMyUm91bmRUcnVuY2F0ZSB8Ci0tICAgICAg ICAgTWFjaGluZU9wZXJhdG9yQnVpbGRlcjo6a0Zsb2F0NjRSb3VuZFRydW5jYXRlIHwKLS0gICAg ICAgICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjprRmxvYXQ2NFJvdW5kVGllc0F3YXkgfAotLSAg ICAgICAgIE1hY2hpbmVPcGVyYXRvckJ1aWxkZXI6OmtXb3JkMzJQb3BjbnQgfAotLSAgICAgICAg IE1hY2hpbmVPcGVyYXRvckJ1aWxkZXI6OmtXb3JkNjRQb3BjbnQ7Ci0rICBNYWNoaW5lT3BlcmF0 b3JCdWlsZGVyOjpGbGFncyBmbGFncyA9IE1hY2hpbmVPcGVyYXRvckJ1aWxkZXI6OkZsYWc6OmtO b0ZsYWdzOwotKyAgLy8gRlAgcm91bmRpbmcgdG8gaW50ZWdlciBpbnN0cnVjdGlvbnMgcmVxdWly ZSBQb3dlciBJU0EgdjIuMDIgb3IgbGF0ZXIuCi0rICBpZiAoQ3B1RmVhdHVyZXM6OklzU3VwcG9y dGVkKEZQX1JPVU5EX1RPX0lOVCkpIHsKLSsgICAgZmxhZ3MgfD0gTWFjaGluZU9wZXJhdG9yQnVp bGRlcjo6a0Zsb2F0MzJSb3VuZERvd24gfAotKyAgICAgICAgICAgICBNYWNoaW5lT3BlcmF0b3JC dWlsZGVyOjprRmxvYXQ2NFJvdW5kRG93biB8Ci0rICAgICAgICAgICAgIE1hY2hpbmVPcGVyYXRv ckJ1aWxkZXI6OmtGbG9hdDMyUm91bmRVcCB8Ci0rICAgICAgICAgICAgIE1hY2hpbmVPcGVyYXRv ckJ1aWxkZXI6OmtGbG9hdDY0Um91bmRVcCB8Ci0rICAgICAgICAgICAgIE1hY2hpbmVPcGVyYXRv ckJ1aWxkZXI6OmtGbG9hdDMyUm91bmRUcnVuY2F0ZSB8Ci0rICAgICAgICAgICAgIE1hY2hpbmVP cGVyYXRvckJ1aWxkZXI6OmtGbG9hdDY0Um91bmRUcnVuY2F0ZSB8Ci0rICAgICAgICAgICAgIE1h Y2hpbmVPcGVyYXRvckJ1aWxkZXI6OmtGbG9hdDY0Um91bmRUaWVzQXdheTsKLSsgIH0KLSsgIC8v IFBvcHVsYXRpb24gY291bnQgcmVxdWlyZXMgUG93ZXIgSVNBIHYyLjA2LCBvciBOWFAgZTU1MDAv ZTY1MDAuCi0rICBpZiAoQ3B1RmVhdHVyZXM6OklzU3VwcG9ydGVkKFBPUF9DT1VOVCkpIHsKLSsg ICAgZmxhZ3MgfD0gTWFjaGluZU9wZXJhdG9yQnVpbGRlcjo6a1dvcmQzMlBvcGNudDsKLSsjaWYg VjhfVEFSR0VUX0FSQ0hfUFBDNjQKLSsgICAgZmxhZ3MgfD0gTWFjaGluZU9wZXJhdG9yQnVpbGRl cjo6a1dvcmQ2NFBvcGNudDsKLSsjZW5kaWYKLSsgIH0KLSAgIC8vIFdlIG9taXQga1dvcmQzMlNo aWZ0SXNTYWZlIGFzIHNbcmxddyB1c2UgMHgzRiBhcyBhIG1hc2sgcmF0aGVyIHRoYW4gMHgxRi4K LSsgIHJldHVybiBmbGFnczsKLSB9Ci0gCi0gLy8gc3RhdGljCmRpZmYgLS1naXQgYS9zcmNwa2dz L25vZGVqcy1sdHMvcGF0Y2hlcy9wcGMzMi5wYXRjaCBiL3NyY3BrZ3Mvbm9kZWpzLWx0cy9wYXRj aGVzL3BwYzMyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZGZjZWIyZjIx NzkuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL25vZGVqcy1sdHMvcGF0Y2hlcy9wcGMzMi5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLS0tLSBhL2RlcHMvdjgvc3JjL2xp YnNhbXBsZXIvc2FtcGxlci5jYwotKysrIGIvZGVwcy92OC9zcmMvbGlic2FtcGxlci9zYW1wbGVy LmNjCi1AQCAtNDIzLDEwICs0MjMsMTcgQEAKLSAgIHN0YXRlLT5sciA9IHJlaW50ZXJwcmV0X2Nh c3Q8dm9pZCo+KHVjb250ZXh0LT51Y19tY29udGV4dC5yZWdzLT5saW5rKTsKLSAjZWxzZQotICAg Ly8gU29tZSBDIGxpYnJhcmllcywgbm90YWJseSBNdXNsLCBkZWZpbmUgdGhlIHJlZ3MgbWVtYmVy IGFzIGEgdm9pZCBwb2ludGVyCi0rICAjaWYgIVY4X1RBUkdFVF9BUkNIXzMyX0JJVAotICAgc3Rh dGUtPnBjID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4odWNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbMzJdKTsKLSAgIHN0YXRlLT5zcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHVjb250 ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzFdKTsKLSAgIHN0YXRlLT5mcCA9IHJlaW50ZXJwcmV0 X2Nhc3Q8dm9pZCo+KHVjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzMxXSk7Ci0gICBzdGF0 ZS0+bHIgPSByZWludGVycHJldF9jYXN0PHZvaWQqPih1Y29udGV4dC0+dWNfbWNvbnRleHQuZ3Bf cmVnc1szNl0pOwotKyAgI2Vsc2UKLSsgIHN0YXRlLT5wYyA9IHJlaW50ZXJwcmV0X2Nhc3Q8dm9p ZCo+KHVjb250ZXh0LT51Y19tY29udGV4dC5ncmVnc1szMl0pOwotKyAgc3RhdGUtPnNwID0gcmVp bnRlcnByZXRfY2FzdDx2b2lkKj4odWNvbnRleHQtPnVjX21jb250ZXh0LmdyZWdzWzFdKTsKLSsg IHN0YXRlLT5mcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHVjb250ZXh0LT51Y19tY29udGV4 dC5ncmVnc1szMV0pOwotKyAgc3RhdGUtPmxyID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4odWNv bnRleHQtPnVjX21jb250ZXh0LmdyZWdzWzM2XSk7Ci0rICAjZW5kaWYKLSAjZW5kaWYKLSAjZWxp ZiBWOF9IT1NUX0FSQ0hfUzM5MAotICNpZiBWOF9UQVJHRVRfQVJDSF8zMl9CSVQKZGlmZiAtLWdp dCBhL3NyY3BrZ3Mvbm9kZWpzLWx0cy9wYXRjaGVzL3NoYXJlZC11di5wYXRjaCBiL3NyY3BrZ3Mv bm9kZWpzLWx0cy9wYXRjaGVzL3NoYXJlZC11di5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDFlOTVmMTViNDc3Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9ub2RlanMt bHRzL3BhdGNoZXMvc2hhcmVkLXV2LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBA QAotLS0tIGEvZGVwcy91dndhc2kvdXZ3YXNpLmd5cAotKysrIGIvZGVwcy91dndhc2kvdXZ3YXNp Lmd5cAotQEAgLTE4LDkgKzE4LDYgQEAKLSAgICAgICAgICdzcmMvd2FzaV9yaWdodHMuYycsCi0g ICAgICAgICAnc3JjL3dhc2lfc2VyZGVzLmMnLAotICAgICAgIF0sCi0tICAgICAgJ2RlcGVuZGVu Y2llcyc6IFsKLS0gICAgICAgICcuLi91di91di5neXA6bGlidXYnLAotLSAgICAgIF0sCi0gICAg ICAgJ2RpcmVjdF9kZXBlbmRlbnRfc2V0dGluZ3MnOiB7Ci0gICAgICAgICAnaW5jbHVkZV9kaXJz JzogWydpbmNsdWRlJ10KLSAgICAgICB9LAotQEAgLTMxLDYgKzI4LDEyIEBACi0gICAgICAgICAg ICAgJ19QT1NJWF9DX1NPVVJDRT0yMDAxMTInLAotICAgICAgICAgICBdLAotICAgICAgICAgfV0s Ci0rICAgICAgICBbICdub2RlX3NoYXJlZF9saWJ1dj09ImZhbHNlIicsIHsKLSsgICAgICAgICAg J2RlcGVuZGVuY2llcyc6IFsgJy4uL3V2L3V2Lmd5cDpsaWJ1dicgXSwKLSsgICAgICAgIH1dLAot KyAgICAgICAgWyAnbm9kZV9zaGFyZWRfbGlidXY9PSJ0cnVlIicsIHsKLSsgICAgICAgICAgJ2xp YnJhcmllcyc6IFsgJy1sdXYnIF0sCi0rICAgICAgICB9XQotICAgICAgIF0sCi0gICAgIH0KLSAg IF0KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvbm9kZWpzLWx0cy9wYXRjaGVzL3h4eC1wcGMtaHdjYXAt bXVzbC5wYXRjaCBiL3NyY3BrZ3Mvbm9kZWpzLWx0cy9wYXRjaGVzL3h4eC1wcGMtaHdjYXAtbXVz bC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTUyODkyY2FlZDM4Li4wMDAw MDAwMDAwMDAKLS0tIGEvc3JjcGtncy9ub2RlanMtbHRzL3BhdGNoZXMveHh4LXBwYy1od2NhcC1t dXNsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotY29tbWl0IDU1OGFiODk2 Y2JkZDkwMjU5OTUwYzYzMWJhMjlhMWM2NmJmNGMyZDMKLUF1dGhvcjogcTY2IDxkYW5pZWxAb2N0 YWZvcmdlLm9yZz4KLURhdGU6ICAgTW9uIEZlYiAyOCAyMzo1MzoyMiAyMDIyICswMTAwCi0KLSAg ICBhZGQgc29tZSBod2NhcCBiaXRzIGZhbGxiYWNrcwotCi1kaWZmIC0tZ2l0IGEvZGVwcy92OC9z cmMvYmFzZS9jcHUuY2MgYi9kZXBzL3Y4L3NyYy9iYXNlL2NwdS5jYwotaW5kZXggYTFiMjFkMi4u OGU1MjgwMiAxMDA2NDQKLS0tLSBhL2RlcHMvdjgvc3JjL2Jhc2UvY3B1LmNjCi0rKysgYi9kZXBz L3Y4L3NyYy9iYXNlL2NwdS5jYwotQEAgLTc2OCw2ICs3NjgsMTMgQEAgQ1BVOjpDUFUoKQotIAot ICNlbGlmIFY4X0hPU1RfQVJDSF9QUEMgfHwgVjhfSE9TVF9BUkNIX1BQQzY0Ci0gCi0rI2lmbmRl ZiBQUENfRkVBVFVSRTJfSEFTX0lTRUwKLSsjZGVmaW5lIFBQQ19GRUFUVVJFMl9IQVNfSVNFTCAw eDA4MDAwMDAwCi0rI2VuZGlmCi0rI2lmbmRlZiBQUENfRkVBVFVSRTJfQVJDSF8zXzEKLSsjZGVm aW5lIFBQQ19GRUFUVVJFMl9BUkNIXzNfMSAweDAwMDQwMDAwCi0rI2VuZGlmCi0rCi0gI2lmbmRl ZiBVU0VfU0lNVUxBVE9SCi0gI2lmIFY4X09TX0xJTlVYCi0gICAvLyBSZWFkIHByb2Nlc3NvciBp bmZvIGZyb20gZ2V0YXV4dmFsKCkgKG5lZWRzIGF0IGxlYXN0IGdsaWJjIDIuMTggb3IgbXVzbCku CmRpZmYgLS1naXQgYS9zcmNwa2dzL25vZGVqcy1sdHMvdGVtcGxhdGUgYi9zcmNwa2dzL25vZGVq cy1sdHMvdGVtcGxhdGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhhNTdiMzk1OGRi OC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mvbm9kZWpzLWx0cy90ZW1wbGF0ZQorKysgL2Rl di9udWxsCkBAIC0xLDEwNSArMCwwIEBACi0jIFRlbXBsYXRlIGZpbGUgZm9yICdub2RlanMtbHRz JwotcGtnbmFtZT1ub2RlanMtbHRzCi12ZXJzaW9uPTEyLjIyLjEwCi1yZXZpc2lvbj0yCi13cmtz cmM9Im5vZGUtdiR7dmVyc2lvbn0iCi0jIE5lZWQgdGhlc2UgZm9yIGhvc3QgdjggZm9yIHRvcnF1 ZSwgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS9wdWxsLzIxMDc5Ci1ob3N0bWFr ZWRlcGVuZHM9InBrZy1jb25maWcgcHl0aG9uIGxpYmF0b21pYy1kZXZlbCB6bGliLWRldmVsIHdo aWNoCi0gJCh2b3B0X2lmIGljdSBpY3UtZGV2ZWwpICQodm9wdF9pZiBzc2wgb3BlbnNzbC1kZXZl bCkgJCh2b3B0X2lmIGxpYnV2IGxpYnV2LWRldmVsKQotICQodm9wdF9pZiBodHRwX3BhcnNlciBo dHRwLXBhcnNlci1kZXZlbCkgJCh2b3B0X2lmIG5naHR0cDIgbmdodHRwMi1kZXZlbCkKLSAkKHZv cHRfaWYgY2FyZXMgYy1hcmVzLWRldmVsKSAkKHZvcHRfaWYgaHR0cF9wYXJzZXIgbGxodHRwLWRl dmVsKSIKLW1ha2VkZXBlbmRzPSJsaWJhdG9taWMtZGV2ZWwgemxpYi1kZXZlbCBweXRob24tZGV2 ZWwgJCh2b3B0X2lmIGljdSBpY3UtZGV2ZWwpCi0gJCh2b3B0X2lmIHNzbCBvcGVuc3NsLWRldmVs KSAkKHZvcHRfaWYgbGlidXYgbGlidXYtZGV2ZWwpCi0gJCh2b3B0X2lmIGh0dHBfcGFyc2VyIGh0 dHAtcGFyc2VyLWRldmVsKSAkKHZvcHRfaWYgbmdodHRwMiBuZ2h0dHAyLWRldmVsKQotICQodm9w dF9pZiBjYXJlcyBjLWFyZXMtZGV2ZWwpICQodm9wdF9pZiBodHRwX3BhcnNlciBsbGh0dHAtZGV2 ZWwpIgotY2hlY2tkZXBlbmRzPSJwcm9jcHMtbmciCi1zaG9ydF9kZXNjPSJFdmVudGVkIEkvTyBm b3IgVjggamF2YXNjcmlwdCIKLW1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxp bnV4Lm9yZz4iCi1saWNlbnNlPSJNSVQiCi1ob21lcGFnZT0iaHR0cHM6Ly9ub2RlanMub3JnLyIK LWRpc3RmaWxlcz0iJHtob21lcGFnZX0vZGlzdC92JHt2ZXJzaW9ufS9ub2RlLXYke3ZlcnNpb259 LnRhci5neiIKLWNoZWNrc3VtPTFlZWVjNjhiNTMwZGE0YWNlZDczMGUyYWY5ZTA3YTFjZWQ4MTQ4 MzM3NzA4ZjM3ZmM4YjRlZGRjM2I2ZGM5ZTkKLXB5dGhvbl92ZXJzaW9uPTMKLQotYnVpbGRfb3B0 aW9ucz0ic3NsIGxpYnV2IGh0dHBfcGFyc2VyIGljdSBuZ2h0dHAyIGNhcmVzIgotZGVzY19vcHRp b25fc3NsPSJFbmFibGUgc2hhcmVkIG9wZW5zc2wiCi1kZXNjX29wdGlvbl9saWJ1dj0iRW5hYmxl IHNoYXJlZCBsaWJ1diIKLWRlc2Nfb3B0aW9uX2h0dHBfcGFyc2VyPSJFbmFibGUgc2hhcmVkIGh0 dHAtcGFyc2VyIGFuZCBsbGh0dHAiCi1kZXNjX29wdGlvbl9pY3U9IkVuYWJsZSBzaGFyZWQgaWN1 IgotZGVzY19vcHRpb25fbmdodHRwMj0iRW5hYmxlIHNoYXJlZCBuZ2h0dHAyIgotZGVzY19vcHRp b25fY2FyZXM9IkVuYWJsZSBzaGFyZWQgYy1hcmVzIgotYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJz c2wgbGlidXYgaHR0cF9wYXJzZXIgaWN1IG5naHR0cDIgY2FyZXMiCi0KLXJlcGxhY2VzPSJpb2pz Pj0wIgotY29uZmxpY3RzPSJub2RlanMgbm9kZWpzLWx0cy0xMCIKLXByb3ZpZGVzPSJub2RlanMt cnVudGltZS0wXzEiCi0KLWlmIFsgIiRYQlBTX1dPUkRTSVpFIiAtbmUgIiRYQlBTX1RBUkdFVF9X T1JEU0laRSIgXTsgdGhlbgotCW5vY3Jvc3M9Imhvc3QgYW5kIHRhcmdldCBtdXN0IGhhdmUgdGhl IHNhbWUgcG9pbnRlciBzaXplIgotZmkKLQotY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGlu Ci0JcHBjNjQqKSA7OwotCXBwYyopIGJyb2tlbj0iTm9kZSAxMi54IGRvZXMgbm90IHN1cHBvcnQg MzItYml0IHBwYyIgOzsKLWVzYWMKLQotQ0ZMQUdTPSItRF9MQVJHRUZJTEVfU09VUkNFIC1EX0ZJ TEVfT0ZGU0VUX0JJVFM9NjQiCi1DWFhGTEFHUz0iLURfTEFSR0VGSUxFX1NPVVJDRSAtRF9GSUxF X09GRlNFVF9CSVRTPTY0IgotCi1kb19jb25maWd1cmUoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCWV4 cG9ydCBMRD0iJENYWCIKLQlpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KLQkJY2FzZSAiJFhC UFNfVEFSR0VUX01BQ0hJTkUiIGluCi0JCQlhcm0qKSBfYXJncz0iLS1kZXN0LWNwdT1hcm0iIDs7 Ci0JCQlhYXJjaDY0KikgX2FyZ3M9Ii0tZGVzdC1jcHU9YXJtNjQiIDs7Ci0JCQlwcGM2NCopIF9h cmdzPSItLWRlc3QtY3B1PXBwYzY0IiA7OwotCQkJcHBjKikgX2FyZ3M9Ii0tZGVzdC1jcHU9cHBj IiA7OwotCQkJbWlwc2VsKikgX2FyZ3M9Ii0tZGVzdC1jcHU9bWlwc2VsIiA7OwotCQkJbWlwcyop IF9hcmdzPSItLWRlc3QtY3B1PW1pcHMiIDs7Ci0JCQlpNjg2KikgX2FyZ3M9Ii0tZGVzdC1jcHU9 eDg2IiA7OwotCQkJeDg2XzY0KikgX2FyZ3M9Ii0tZGVzdC1jcHU9eDg2XzY0IiA7OwotCQkJKikg bXNnX2Vycm9yICIkcGtndmVyOiBjYW5ub3QgYmUgY3Jvc3MgY29tcGlsZWQgZm9yICR7WEJQU19U QVJHRVRfTUFDSElORX0uXG4iIDs7Ci0JCWVzYWMKLQkJX2FyZ3MrPSIgLS1jcm9zcy1jb21waWxp bmciCi0JZmkKLQkuL2NvbmZpZ3VyZSAtLXByZWZpeD0vdXNyIC0tc2hhcmVkLXpsaWIgXAotCQkk KHZvcHRfaWYgaWN1IC0td2l0aC1pbnRsPXN5c3RlbS1pY3UpIFwKLQkJJCh2b3B0X2lmIGh0dHBf cGFyc2VyIC0tc2hhcmVkLWh0dHAtcGFyc2VyKSBcCi0JCSQodm9wdF9pZiBzc2wgLS1zaGFyZWQt b3BlbnNzbCkgXAotCQkkKHZvcHRfaWYgbGlidXYgLS1zaGFyZWQtbGlidXYpIFwKLQkJJCh2b3B0 X2lmIG5naHR0cDIgLS1zaGFyZWQtbmdodHRwMikgXAotCQkkKHZvcHRfaWYgY2FyZXMgLS1zaGFy ZWQtY2FyZXMpICR7X2FyZ3N9Ci19Ci0KLXBvc3RfY29uZmlndXJlKCkgewotCSMgRml4IGxpbmtp bmcgYWdhaW5zdCBsbGh0dHAKLQlzZWQgJ3MvLWxodHRwX3BhcnNlci8mIC1sbGxodHRwLycgLWkg b3V0LyoudGFyZ2V0Lm1rCi19Ci0KLWRvX2J1aWxkKCkgewotCWlmIFsgIiRDUk9TU19CVUlMRCIg XTsgdGhlbgotCQltYWtlIExEPSIkQ1hYIiBMREZMQUdTKz0tbGRsICR7bWFrZWpvYnN9IFBPUlRB QkxFPTEgVj0xCi0JZWxzZQotCQltYWtlIExEPSIkQ1hYIiBMREZMQUdTKz0tbGRsICR7bWFrZWpv YnN9IFY9MQotCWZpCi19Ci0KLWRvX2NoZWNrKCkgewotCW1ha2UgTEQ9IiRDWFgiIExERkxBR1Mr PS1sZGwgJHttYWtlam9ic30gVj0xIHRlc3Qtb25seQotfQotCi1kb19pbnN0YWxsKCkgewotCW1h a2UgTEQ9IiRDWFgiIExERkxBR1MrPS1sZGwgREVTVERJUj0iJERFU1RESVIiIGluc3RhbGwKLQly bSAkREVTVERJUi91c3IvaW5jbHVkZS9ub2RlL29wZW5zc2wgLXJmCi0JdmxpY2Vuc2UgTElDRU5T RQotfQotCi1ub2RlanMtbHRzLWRldmVsX3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVzYys9IiAoZGV2 ZWxvcG1lbnQgZmlsZXMpIgotCWNvbmZsaWN0cz0ibm9kZWpzLWRldmVsIG5vZGVqcy1sdHMtMTAt ZGV2ZWwiCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9pbmNsdWRlCi0JfQotfQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9ub2RlanMtbHRzL3VwZGF0ZSBiL3NyY3BrZ3Mvbm9kZWpzLWx0cy91 cGRhdGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUzN2Y4MjI5ZGFiOS4uMDAwMDAw MDAwMDAwCi0tLSBhL3NyY3BrZ3Mvbm9kZWpzLWx0cy91cGRhdGUKKysrIC9kZXYvbnVsbApAQCAt MSwyICswLDAgQEAKLXNpdGU9aHR0cHM6Ly9ub2RlanMub3JnL2Rpc3QKLXBhdHRlcm49J3ZcSzEy W1xkLl0rKD89XC8pJwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ub2RlanMvcGF0Y2hlcy9wcGMtZml4 ZXMtZm9yLW9sZGVyLW1vZGVscy5wYXRjaCBiL3NyY3BrZ3Mvbm9kZWpzL3BhdGNoZXMvcHBjLWZp eGVzLWZvci1vbGRlci1tb2RlbHMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDFkOTMzNDFlODcyOS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mvbm9kZWpzL3BhdGNoZXMv cHBjLWZpeGVzLWZvci1vbGRlci1tb2RlbHMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw5NzIg KzAsMCBAQAotRml4IFBvd2VyUEMgQ1BVIGRldGVjdGlvbiBhbmQgY29kZWdlbiB0byB3b3JrIHdp dGggbW9yZSBwcm9jZXNzb3JzLgotCi1UaGlzIHBhdGNoIGRlZmluZXMgdGhlIGNvcnJlY3Qgb3B0 aW9uYWwgUG93ZXIgSVNBIGZlYXR1cmVzIHRoYXQgdGhlCi1QUEMgY29kZSBnZW5lcmF0b3IgbmVl ZHMgaW4gb3JkZXIgdG8gcnVuIHdpdGhvdXQgY3Jhc2hpbmcgb24gdjIuMDEKLWFuZCBvbGRlciBD UFVzIHN1Y2ggYXMgUFBDIDk3MCAoRzUpIG9yIE5YUCBlNjUwMCwgYW5kIHRvIHJ1biBtb3JlCi1l ZmZpY2llbnRseSBvbiBDUFVzIHdpdGggZmVhdHVyZXMgdGhhdCB3ZXJlbid0IGJlaW5nIHVzZWQg YmVmb3JlLgotCi1Qb3dlclBDIElTQSB2Mi4wMSBhbmQgb2xkZXIgQ1BVcyBkb24ndCBoYXZlIEZQ IHJvdW5kIHRvIGludCBpbnN0cnVjdGlvbnMsCi1hbmQgUG93ZXJQQyBJU0EgdjIuMDYgYW5kIG9s ZGVyIGFyZSBtaXNzaW5nIHN1cHBvcnQgZm9yIHVuc2lnbmVkIDY0LWJpdAotdG8vZnJvbSBkb3Vi bGUsIGFzIHdlbGwgYXMgaW50ZWdlciB0by9mcm9tIHNpbmdsZS1wcmVjaXNpb24gZmxvYXQuCi0K LVVzZSB0aGUgY3VycmVudCBQUENfNV9QTFVTIENQVSBmZWF0dXJlIHRvIGRldGVybWluZSB3aGV0 aGVyIHRvIGdlbmVyYXRlCi1GUCByb3VuZCB0byBpbnQsIGFuZCB1c2UgdGhlIFBQQ183X1BMVVMg ZmVhdHVyZSB0byBkZXRlcm1pbmUgd2hldGhlcgotdG8gdXNlIHRoZSB2Mi4wNiBJU0EgaW5zdHJ1 Y3Rpb25zIG9yIHdoZXRoZXIgdG8gZ2VuZXJhdGUgYW4gYWx0ZXJuYXRlCi1nZW5lcmljIFBQQyBz ZXF1ZW5jZSB0byBoYW5kbGUgdGhlIGNhc2VzIG9mIDY0LWJpdCB1bnNpZ25lZCBpbnRlZ2VyCi10 by9mcm9tIGZsb2F0aW5nIHBvaW50LCBpbnRlZ2VycyB0byBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0 aW5nIHBvaW50LAotYW5kIGxvYWRpbmcgYW5kIHN0b3JpbmcgNjQtYml0IGludGVnZXJzIHdpdGgg Ynl0ZSByZXZlcnNhbC4KLQotQWRkIGEgbmV3IFBQQ183X1BMVVNfTlhQIGZlYXR1cmUgZm9yIHRo ZSBwb3BjbnQgYW5kIGxkYnJ4L3N0ZGJyeAotb3Bjb2RlcyBhZGRlZCBpbiBQb3dlciBJU0EgdjIu MDYsIHdoaWNoIGFyZSBhbHNvIHByZXNlbnQgaW4gdGhlIE5YUAotZTU1MDAgYW5kIGU2NTAwIGNv cmVzLCB3aGljaCBhcmUgb3RoZXJ3aXNlIG1pc3NpbmcgbWFueSBvZiB0aGUKLWZlYXR1cmVzIGFk ZGVkIHNpbmNlIHYyLjAxLiBUaGlzIGVuYWJsZXMgTlhQIGNvcmVzIHRvIHVzZSBhIGZldwotbW9y ZSBmZWF0dXJlcy4gQWRkaXRpb25hbGx5LCBicmluZyBiYWNrIHRoZSBJU0VMRUNUIGZlYXR1cmUg ZmxhZywKLXdoaWNoIGlzIGFsc28gc3VwcG9ydGVkIGJ5IE5YUCBjb3JlcywgaW5jbHVkaW5nIG9s ZGVyIG9uZXMsIGFuZAotaGFzIGl0cyBvd24gQVRfSFdDQVAyIGZlYXR1cmUgZmxhZyBpbiBMaW51 eC4KLQotQnkgZGVmaW5pbmcgYSBuZXcgSUNBQ0hFX1NOT09QIGZlYXR1cmUgYml0IHRvIHJlcGxh Y2UgdGhlIHVzZSBvZiAKLVBQQ182X1BMVVMsIHRoZSBtZWFuaW5nIG9mIHRoZSBpbnN0cnVjdGlv biBjYWNoZSBmbHVzaGluZyBmYXN0IHBhdGgsCi1hbmQgdGhlIENQVXMgdGhhdCBjYW4gdXNlIGl0 LCBpcyBtb3JlIGNsZWFybHkgZGVmaW5lZC4gSW4gYWRkaXRpb24sCi1mb3IgdGhlIG90aGVyIFBv d2VyUEMgY2hpcHMsIHRoZSBsb29wIHRvIGZsdXNoIHRoZSBkYXRhIGFuZCBpbnN0cnVjdGlvbgot Y2FjaGUgYmxvY2tzIGhhcyBiZWVuIHNwbGl0IGludG8gdHdvIGxvb3BzLCB3aXRoIGEgc2luZ2xl ICJzeW5jIiBhbmQKLSJpc3luYyIgYWZ0ZXIgZWFjaCBsb29wLCB3aGljaCBzaG91bGQgYmUgbW9y ZSBlZmZpY2llbnQsIGFuZCBhbHNvIGhhbmRsZXMKLXRoZSBmZXcgQ1BVcyB3aXRoIGRpZmZlcmlu ZyBkYXRhIGFuZCBpbnN0cnVjdGlvbiBjYWNoZSBsaW5lIHNpemVzLgotCi1JbiB0aGUgbWFjcm8g YXNzZW1ibGVyIG1ldGhvZHMsIGluIGFkZGl0aW9uIHRvIHByb3ZpZGluZyBhbiBhbHRlcm5hdGUK LXBhdGggZm9yIEZQIGNvbnZlcnNpb24gb3Bjb2RlcyBhZGRlZCBpbiBQT1dFUjcgKElTQSB2Mi4w NiksIHVubmVjZXNzYXJ5Ci1pbnN0cnVjdGlvbnMgdG8gbW92ZSBzcCBkb3duIGFuZCB0aGVuIGlt bWVkaWF0ZWx5IGJhY2sgdXAgd2VyZSByZXBsYWNlZAotd2l0aCBuZWdhdGl2ZSBvZmZzZXRzIGZy b20gdGhlIGN1cnJlbnQgc3AuIFRoaXMgc2hvdWxkIGJlIGZhc3RlciwgYW5kIGFsc28KLXNwIGlz IHN1cHBvc2VkIHRvIHBvaW50IHRvIGEgYmFjayBjaGFpbiBhdCBhbGwgdGltZXMgKFY4IG1heSBu b3QgZG8gdGhpcykuCi0KLS0tLSBhL2RlcHMvdjgvc3JjL2Jhc2UvY3B1LmNjCTIwMjItMDItMDgg MDQ6Mzc6NDguMDAwMDAwMDAwIC0wODAwCi0rKysgYi9kZXBzL3Y4L3NyYy9iYXNlL2NwdS5jYwky MDIyLTAyLTE5IDE0OjM4OjM3Ljk5NzE2MTgzNSAtMDgwMAotQEAgLTE0LDE1ICsxNCwxMyBAQAot ICNpZiBWOF9PU19MSU5VWAotICNpbmNsdWRlIDxsaW51eC9hdXh2ZWMuaD4gIC8vIEFUX0hXQ0FQ Ci0gI2VuZGlmCi0tI2lmIFY4X0dMSUJDX1BSRVJFUSgyLCAxNikKLSsjaWYgVjhfR0xJQkNfUFJF UkVRKDIsIDE2KSB8fCBcCi0rICAgIChWOF9PU19MSU5VWCAmJiAoVjhfSE9TVF9BUkNIX1BQQyB8 fCBWOF9IT1NUX0FSQ0hfUFBDNjQpKQotICNpbmNsdWRlIDxzeXMvYXV4di5oPiAgLy8gZ2V0YXV4 dmFsKCkKLSAjZW5kaWYKLSAjaWYgVjhfT1NfUU5YCi0gI2luY2x1ZGUgPHN5cy9zeXNwYWdlLmg+ ICAvLyBjcHVpbmZvCi0gI2VuZGlmCi0tI2lmIFY4X09TX0xJTlVYICYmIChWOF9IT1NUX0FSQ0hf UFBDIHx8IFY4X0hPU1RfQVJDSF9QUEM2NCkKLS0jaW5jbHVkZSA8ZWxmLmg+Ci0tI2VuZGlmCi0g I2lmIFY4X09TX0FJWAotICNpbmNsdWRlIDxzeXMvc3lzdGVtY2ZnLmg+ICAvLyBfc3lzdGVtX2Nv bmZpZ3VyYXRpb24KLSAjaWZuZGVmIFBPV0VSXzgKLUBAIC03NzIsNTYgKzc3MCw1NSBAQAotIAot ICNpZm5kZWYgVVNFX1NJTVVMQVRPUgotICNpZiBWOF9PU19MSU5VWAotLSAgLy8gUmVhZCBwcm9j ZXNzb3IgaW5mbyBmcm9tIC9wcm9jL3NlbGYvYXV4di4KLS0gIGNoYXIqIGF1eHZfY3B1X3R5cGUg PSBudWxscHRyOwotLSAgRklMRSogZnAgPSBiYXNlOjpGb3BlbigiL3Byb2Mvc2VsZi9hdXh2Iiwg InIiKTsKLS0gIGlmIChmcCAhPSBudWxscHRyKSB7Ci0tI2lmIFY4X1RBUkdFVF9BUkNIX1BQQzY0 Ci0tICAgIEVsZjY0X2F1eHZfdCBlbnRyeTsKLS0jZWxzZQotLSAgICBFbGYzMl9hdXh2X3QgZW50 cnk7Ci0tI2VuZGlmCi0tICAgIGZvciAoOzspIHsKLS0gICAgICBzaXplX3QgbiA9IGZyZWFkKCZl bnRyeSwgc2l6ZW9mKGVudHJ5KSwgMSwgZnApOwotLSAgICAgIGlmIChuID09IDAgfHwgZW50cnku YV90eXBlID09IEFUX05VTEwpIHsKLS0gICAgICAgIGJyZWFrOwotLSAgICAgIH0KLS0gICAgICBz d2l0Y2ggKGVudHJ5LmFfdHlwZSkgewotLSAgICAgICAgY2FzZSBBVF9QTEFURk9STToKLS0gICAg ICAgICAgYXV4dl9jcHVfdHlwZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGVudHJ5LmFfdW4u YV92YWwpOwotLSAgICAgICAgICBicmVhazsKLS0gICAgICAgIGNhc2UgQVRfSUNBQ0hFQlNJWkU6 Ci0tICAgICAgICAgIGljYWNoZV9saW5lX3NpemVfID0gZW50cnkuYV91bi5hX3ZhbDsKLS0gICAg ICAgICAgYnJlYWs7Ci0tICAgICAgICBjYXNlIEFUX0RDQUNIRUJTSVpFOgotLSAgICAgICAgICBk Y2FjaGVfbGluZV9zaXplXyA9IGVudHJ5LmFfdW4uYV92YWw7Ci0tICAgICAgICAgIGJyZWFrOwot LSAgICAgIH0KLS0gICAgfQotLSAgICBiYXNlOjpGY2xvc2UoZnApOwotLSAgfQotLQotLSAgcGFy dF8gPSAtMTsKLS0gIGlmIChhdXh2X2NwdV90eXBlKSB7Ci0tICAgIGlmIChzdHJjbXAoYXV4dl9j cHVfdHlwZSwgInBvd2VyMTAiKSA9PSAwKSB7Ci0tICAgICAgcGFydF8gPSBrUFBDUG93ZXIxMDsK LS0gICAgfSBlbHNlIGlmIChzdHJjbXAoYXV4dl9jcHVfdHlwZSwgInBvd2VyOSIpID09IDApIHsK LS0gICAgICBwYXJ0XyA9IGtQUENQb3dlcjk7Ci0tICAgIH0gZWxzZSBpZiAoc3RyY21wKGF1eHZf Y3B1X3R5cGUsICJwb3dlcjgiKSA9PSAwKSB7Ci0tICAgICAgcGFydF8gPSBrUFBDUG93ZXI4Owot LSAgICB9IGVsc2UgaWYgKHN0cmNtcChhdXh2X2NwdV90eXBlLCAicG93ZXI3IikgPT0gMCkgewot LSAgICAgIHBhcnRfID0ga1BQQ1Bvd2VyNzsKLS0gICAgfSBlbHNlIGlmIChzdHJjbXAoYXV4dl9j cHVfdHlwZSwgInBvd2VyNiIpID09IDApIHsKLS0gICAgICBwYXJ0XyA9IGtQUENQb3dlcjY7Ci0t ICAgIH0gZWxzZSBpZiAoc3RyY21wKGF1eHZfY3B1X3R5cGUsICJwb3dlcjUiKSA9PSAwKSB7Ci0t ICAgICAgcGFydF8gPSBrUFBDUG93ZXI1OwotLSAgICB9IGVsc2UgaWYgKHN0cmNtcChhdXh2X2Nw dV90eXBlLCAicHBjOTcwIikgPT0gMCkgewotLSAgICAgIHBhcnRfID0ga1BQQ0c1OwotLSAgICB9 IGVsc2UgaWYgKHN0cmNtcChhdXh2X2NwdV90eXBlLCAicHBjNzQ1MCIpID09IDApIHsKLS0gICAg ICBwYXJ0XyA9IGtQUENHNDsKLS0gICAgfSBlbHNlIGlmIChzdHJjbXAoYXV4dl9jcHVfdHlwZSwg InBhNnQiKSA9PSAwKSB7Ci0tICAgICAgcGFydF8gPSBrUFBDUEE2VDsKLS0gICAgfQotKyAgLy8g UmVhZCBwcm9jZXNzb3IgaW5mbyBmcm9tIGdldGF1eHZhbCgpIChuZWVkcyBhdCBsZWFzdCBnbGli YyAyLjE4IG9yIG11c2wpLgotKyAgaWNhY2hlX2xpbmVfc2l6ZV8gPSBzdGF0aWNfY2FzdDxpbnQ+ KGdldGF1eHZhbChBVF9JQ0FDSEVCU0laRSkpOwotKyAgZGNhY2hlX2xpbmVfc2l6ZV8gPSBzdGF0 aWNfY2FzdDxpbnQ+KGdldGF1eHZhbChBVF9EQ0FDSEVCU0laRSkpOwotKyAgY29uc3QgdW5zaWdu ZWQgbG9uZyBod2NhcCA9IGdldGF1eHZhbChBVF9IV0NBUCk7Ci0rICBjb25zdCB1bnNpZ25lZCBs b25nIGh3Y2FwMiA9IGdldGF1eHZhbChBVF9IV0NBUDIpOwotKyAgY29uc3QgY2hhciogcGxhdGZv cm0gPSByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihnZXRhdXh2YWwoQVRfUExBVEZPUk0p KTsKLSsKLSsgIC8vIE5PVEU6IEFUX0hXQ0FQIElTQSB2ZXJzaW9uIGJpdHMgYXJlbid0IGN1bXVs YXRpdmUsIHNvIGl0J3MgbmVjZXNzYXJ5Ci0rICAvLyB0byBjb21wYXJlIGFnYWluc3QgYSBtYXNr IG9mIGFsbCBzdXBwb3J0ZWQgdmVyc2lvbnMgYW5kIENQVXMsIHVwIHRvCi0rICAvLyBJU0EgdjIu MDYsIHdoaWNoICppcyogc2V0IGZvciBsYXRlciBDUFVzLiBJbiBjb250cmFzdCwgdGhlIEFUX0hX Q0FQMgotKyAgLy8gSVNBIHZlcnNpb24gYml0cyBmcm9tIHYyLjA3IG9ud2FyZCBhcmUgc2V0IGN1 bXVsYXRpdmVseSwgc28gUE9XRVIxMAotKyAgLy8gd2lsbCBzZXQgdGhlIElTQSB2ZXJzaW9uIGJp dHMgZnJvbSB2Mi4wNiAoaW4gQVRfSFdDQVApIHRocm91Z2ggdjMuMS4KLSsKLSsgIC8vIGktY2Fj aGUgY29oZXJlbmN5IHJlcXVpcmVzIFBvd2VyIElTQSB2Mi4wMiBvciBsYXRlcjsgaGFzIGl0cyBv d24gZmxhZy4KLSsgIGhhc19pY2FjaGVfc25vb3BfID0gKGh3Y2FwICYgUFBDX0ZFQVRVUkVfSUNB Q0hFX1NOT09QKTsKLSsKLSsgIC8vIHJlcXVpcmVzIFBvd2VyIElTQSB2Mi4wMyBvciBsYXRlciwg b3IgdGhlIEhBU19JU0VMIGJpdCAoZS5nLiBlNjUwMCkuCi0rICBoYXNfaXNlbF8gPSAoaHdjYXAg JiAoUFBDX0ZFQVRVUkVfUE9XRVI1X1BMVVMgfCBQUENfRkVBVFVSRV9BUkNIXzJfMDUgfAotKyAg ICAgIFBQQ19GRUFUVVJFX1BBNlQgfCBQUENfRkVBVFVSRV9QT1dFUjZfRVhUIHwgUFBDX0ZFQVRV UkVfQVJDSF8yXzA2KSkgfHwKLSsgICAgICAoaHdjYXAyICYgUFBDX0ZFQVRVUkUyX0hBU19JU0VM KTsKLSsKLSsgIC8vIGh3Y2FwIG1hc2sgZm9yIG9sZGVyIDY0LWJpdCBQUEMgQ1BVcyB3aXRoIEFs dGl2ZWMsIGUuZy4gRzUsIENlbGwuCi0rICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbG9uZyBrSHdj YXBNYXNrUFBDRzUgPQotKyAgICAgIChQUENfRkVBVFVSRV82NCB8IFBQQ19GRUFUVVJFX0hBU19B TFRJVkVDKTsKLSsKLSsgIGlmIChod2NhcDIgJiBQUENfRkVBVFVSRTJfQVJDSF8zXzEpIHsKLSsg ICAgcGFydF8gPSBrUFBDUG93ZXIxMDsKLSsgIH0gZWxzZSBpZiAoaHdjYXAyICYgUFBDX0ZFQVRV UkUyX0FSQ0hfM18wMCkgewotKyAgICBwYXJ0XyA9IGtQUENQb3dlcjk7Ci0rICB9IGVsc2UgaWYg KGh3Y2FwMiAmIFBQQ19GRUFUVVJFMl9BUkNIXzJfMDcpIHsKLSsgICAgcGFydF8gPSBrUFBDUG93 ZXI4OwotKyAgfSBlbHNlIGlmIChod2NhcCAmIFBQQ19GRUFUVVJFX0FSQ0hfMl8wNikgewotKyAg ICBwYXJ0XyA9IGtQUENQb3dlcjc7Ci0rICB9IGVsc2UgaWYgKGh3Y2FwICYgUFBDX0ZFQVRVUkVf QVJDSF8yXzA1KSB7Ci0rICAgIHBhcnRfID0ga1BQQ1Bvd2VyNjsKLSsgIH0gZWxzZSBpZiAoaHdj YXAgJiAoUFBDX0ZFQVRVUkVfUE9XRVI1IHwgUFBDX0ZFQVRVUkVfUE9XRVI1X1BMVVMpKSB7Ci0r ICAgIHBhcnRfID0ga1BQQ1Bvd2VyNTsKLSsgIH0gZWxzZSBpZiAoaHdjYXAgJiBQUENfRkVBVFVS RV9QQTZUKSB7Ci0rICAgIHBhcnRfID0ga1BQQ1BBNlQ7Ci0rICB9IGVsc2UgaWYgKHN0cmNtcChw bGF0Zm9ybSwgInBwY2U2NTAwIikgPT0gMCkgewotKyAgICBwYXJ0XyA9IGtQUENFNjUwMDsKLSsg IH0gZWxzZSBpZiAoc3RyY21wKHBsYXRmb3JtLCAicHBjZTU1MDAiKSA9PSAwKSB7Ci0rICAgIHBh cnRfID0ga1BQQ0U1NTAwOwotKyAgfSBlbHNlIGlmICgoaHdjYXAgJiBrSHdjYXBNYXNrUFBDRzUp ID09IGtId2NhcE1hc2tQUENHNSkgewotKyAgICBwYXJ0XyA9IGtQUENHNTsKLSsgIH0gZWxzZSBp ZiAoaHdjYXAgJiBQUENfRkVBVFVSRV9IQVNfQUxUSVZFQykgewotKyAgICBwYXJ0XyA9IGtQUENH NDsKLSsgIH0gZWxzZSB7Ci0rICAgIHBhcnRfID0ga1BQQ0czOwotICAgfQotIAotICNlbGlmIFY4 X09TX0FJWAotQEAgLTg0Miw5ICs4MzksMTMgQEAKLSAgICAgICBwYXJ0XyA9IGtQUENQb3dlcjY7 Ci0gICAgICAgYnJlYWs7Ci0gICAgIGNhc2UgUE9XRVJfNToKLSsgICAgZGVmYXVsdDoKLSAgICAg ICBwYXJ0XyA9IGtQUENQb3dlcjU7Ci0gICAgICAgYnJlYWs7Ci0gICB9Ci0rCi0rICBoYXNfaWNh Y2hlX3Nub29wXyA9IHRydWU7Ci0rICBoYXNfaXNlbF8gPSAocGFydF8gIT0ga1BQQ1Bvd2VyNSk7 ICAgIC8vIGlzZWwgd2FzIGFkZGVkIGluIFBPV0VSNSsgKHYyLjAzKQotICNlbmRpZiAgLy8gVjhf T1NfQUlYCi0gI2VuZGlmICAvLyAhVVNFX1NJTVVMQVRPUgotICNlbmRpZiAgLy8gVjhfSE9TVF9B UkNIX1BQQyB8fCBWOF9IT1NUX0FSQ0hfUFBDNjQKLS0tLSBhL2RlcHMvdjgvc3JjL2Jhc2UvY3B1 LmgJMjAyMi0wMi0wOCAwNDozNzo0OC4wMDAwMDAwMDAgLTA4MDAKLSsrKyBiL2RlcHMvdjgvc3Jj L2Jhc2UvY3B1LmgJMjAyMi0wMi0xOSAxNDozMjowOS44MzE1NzkxMzMgLTA4MDAKLUBAIC03MSw5 ICs3MSwxMiBAQAotICAgICBrUFBDUG93ZXI4LAotICAgICBrUFBDUG93ZXI5LAotICAgICBrUFBD UG93ZXIxMCwKLSsgICAga1BQQ0czLAotICAgICBrUFBDRzQsCi0gICAgIGtQUENHNSwKLS0gICAg a1BQQ1BBNlQKLSsgICAga1BQQ1BBNlQsCi0rICAgIGtQUENFNTUwMCwKLSsgICAga1BQQ0U2NTAw Ci0gICB9OwotIAotICAgLy8gR2VuZXJhbCBmZWF0dXJlcwotQEAgLTExOSw2ICsxMjIsMTAgQEAK LSAgIGJvb2wgaXNfZnA2NF9tb2RlKCkgY29uc3QgeyByZXR1cm4gaXNfZnA2NF9tb2RlXzsgfQot ICAgYm9vbCBoYXNfbXNhKCkgY29uc3QgeyByZXR1cm4gaGFzX21zYV87IH0KLSAKLSsgIC8vIFBv d2VyUEMgZmVhdHVyZXMKLSsgIGJvb2wgaGFzX2ljYWNoZV9zbm9vcCgpIGNvbnN0IHsgcmV0dXJu IGhhc19pY2FjaGVfc25vb3BfOyB9Ci0rICBib29sIGhhc19pc2VsKCkgY29uc3QgeyByZXR1cm4g aGFzX2lzZWxfOyB9Ci0rCi0gIHByaXZhdGU6Ci0gI2lmIGRlZmluZWQoVjhfT1NfU1RBUkJPQVJE KQotICAgYm9vbCBTdGFyYm9hcmREZXRlY3RDUFUoKTsKLUBAIC0xNjYsNiArMTczLDggQEAKLSAg IGJvb2wgaGFzX25vbl9zdG9wX3RpbWVfc3RhbXBfY291bnRlcl87Ci0gICBib29sIGlzX3J1bm5p bmdfaW5fdm1fOwotICAgYm9vbCBoYXNfbXNhXzsKLSsgIGJvb2wgaGFzX2ljYWNoZV9zbm9vcF87 Ci0rICBib29sIGhhc19pc2VsXzsKLSB9OwotIAotIH0gIC8vIG5hbWVzcGFjZSBiYXNlCi0tLS0g YS9kZXBzL3Y4L3NyYy9idWlsdGlucy9wcGMvYnVpbHRpbnMtcHBjLmNjCTIwMjItMDItMDggMDQ6 Mzc6NDguMDAwMDAwMDAwIC0wODAwCi0rKysgYi9kZXBzL3Y4L3NyYy9idWlsdGlucy9wcGMvYnVp bHRpbnMtcHBjLmNjCTIwMjItMDItMTkgMTU6MTg6MzYuMzczMDMxNDU3IC0wODAwCi1AQCAtMjgy Myw3ICsyODIzLDcgQEAKLSAgIF9fIGxieihzY3JhdGNoLCBNZW1PcGVyYW5kKHNjcmF0Y2gsIDAp KTsKLSAgIF9fIGNtcGkoc2NyYXRjaCwgT3BlcmFuZDo6WmVybygpKTsKLSAKLS0gIGlmIChDcHVG ZWF0dXJlczo6SXNTdXBwb3J0ZWQoUFBDXzdfUExVUykpIHsKLSsgIGlmIChDcHVGZWF0dXJlczo6 SXNTdXBwb3J0ZWQoSVNFTEVDVCkpIHsKLSAgICAgX18gTW92ZShzY3JhdGNoLCB0aHVua19yZWYp OwotICAgICBfXyBpc2VsKGVxLCBzY3JhdGNoLCBmdW5jdGlvbl9hZGRyZXNzLCBzY3JhdGNoKTsK LSAgIH0gZWxzZSB7Ci0tLS0gYS9kZXBzL3Y4L3NyYy9jb2RlZ2VuL3BwYy9tYWNyby1hc3NlbWJs ZXItcHBjLmNjCTIwMjItMDItMTkgMTg6NDU6NDQuNjg3NTkzMTk0IC0wODAwCi0rKysgYi9kZXBz L3Y4L3NyYy9jb2RlZ2VuL3BwYy9tYWNyby1hc3NlbWJsZXItcHBjLmNjCTIwMjItMDItMTkgMTg6 MzM6MTUuMDYwNjc0Mzg5IC0wODAwCi1AQCAtOTI1LDEzICs5MjUsMjUgQEAKLSAKLSB2b2lkIFR1 cmJvQXNzZW1ibGVyOjpDb252ZXJ0SW50VG9GbG9hdChSZWdpc3RlciBzcmMsIERvdWJsZVJlZ2lz dGVyIGRzdCkgewotICAgTW92SW50VG9Eb3VibGUoZHN0LCBzcmMsIHIwKTsKLS0gIGZjZmlkcyhk c3QsIGRzdCk7Ci0rCi0rICBpZiAoQ3B1RmVhdHVyZXM6OklzU3VwcG9ydGVkKFBQQ183X1BMVVMp KSB7Ci0rICAgIGZjZmlkcyhkc3QsIGRzdCk7Ci0rICB9IGVsc2UgewotKyAgICBmY2ZpZChkc3Qs IGRzdCk7Ci0rICAgIGZyc3AoZHN0LCBkc3QpOwotKyAgfQotIH0KLSAKLSB2b2lkIFR1cmJvQXNz ZW1ibGVyOjpDb252ZXJ0VW5zaWduZWRJbnRUb0Zsb2F0KFJlZ2lzdGVyIHNyYywKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvdWJsZVJlZ2lzdGVyIGRz dCkgewotICAgTW92VW5zaWduZWRJbnRUb0RvdWJsZShkc3QsIHNyYywgcjApOwotLSAgZmNmaWRz KGRzdCwgZHN0KTsKLSsKLSsgIGlmIChDcHVGZWF0dXJlczo6SXNTdXBwb3J0ZWQoUFBDXzdfUExV UykpIHsKLSsgICAgZmNmaWRzKGRzdCwgZHN0KTsKLSsgIH0gZWxzZSB7Ci0rICAgIGZjZmlkKGRz dCwgZHN0KTsKLSsgICAgZnJzcChkc3QsIGRzdCk7Ci0rICB9Ci0gfQotIAotICNpZiBWOF9UQVJH RVRfQVJDSF9QUEM2NAotQEAgLTk0MywyMCArOTU1LDUyIEBACi0gCi0gdm9pZCBUdXJib0Fzc2Vt Ymxlcjo6Q29udmVydFVuc2lnbmVkSW50NjRUb0Zsb2F0KFJlZ2lzdGVyIHNyYywKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG91YmxlUmVnaXN0ZXIg ZG91YmxlX2RzdCkgewotLSAgTW92SW50NjRUb0RvdWJsZShkb3VibGVfZHN0LCBzcmMpOwotLSAg ZmNmaWR1cyhkb3VibGVfZHN0LCBkb3VibGVfZHN0KTsKLSsgIGlmIChDcHVGZWF0dXJlczo6SXNT dXBwb3J0ZWQoUFBDXzdfUExVUykpIHsKLSsgICAgTW92SW50NjRUb0RvdWJsZShkb3VibGVfZHN0 LCBzcmMpOwotKyAgICBmY2ZpZHVzKGRvdWJsZV9kc3QsIGRvdWJsZV9kc3QpOwotKyAgfSBlbHNl IHsKLSsgICAgQ29udmVydFVuc2lnbmVkSW50NjRUb0RvdWJsZShzcmMsIGRvdWJsZV9kc3QpOwot KyAgICBmcnNwKGRvdWJsZV9kc3QsIGRvdWJsZV9kc3QpOwotKyAgfQotIH0KLSAKLSB2b2lkIFR1 cmJvQXNzZW1ibGVyOjpDb252ZXJ0VW5zaWduZWRJbnQ2NFRvRG91YmxlKFJlZ2lzdGVyIHNyYywK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvdWJs ZVJlZ2lzdGVyIGRvdWJsZV9kc3QpIHsKLS0gIE1vdkludDY0VG9Eb3VibGUoZG91YmxlX2RzdCwg c3JjKTsKLS0gIGZjZmlkdShkb3VibGVfZHN0LCBkb3VibGVfZHN0KTsKLSsgIGlmIChDcHVGZWF0 dXJlczo6SXNTdXBwb3J0ZWQoUFBDXzdfUExVUykpIHsKLSsgICAgTW92SW50NjRUb0RvdWJsZShk b3VibGVfZHN0LCBzcmMpOwotKyAgICBmY2ZpZHUoZG91YmxlX2RzdCwgZG91YmxlX2RzdCk7Ci0r ICB9IGVsc2UgewotKyAgICBMYWJlbCBuZWdhdGl2ZTsKLSsgICAgTGFiZWwgZG9uZTsKLSsgICAg Y21waShzcmMsIE9wZXJhbmQ6Olplcm8oKSk7Ci0rICAgIGJsdCgmbmVnYXRpdmUpOwotKyAgICBz dGQoc3JjLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUpKTsKLSsgICAgbm9wKEdST1VQX0VO RElOR19OT1ApOyAgLy8gTEhTL1JBVyBvcHRpbWl6YXRpb24KLSsgICAgbGZkKGRvdWJsZV9kc3Qs IE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkpOwotKyAgICBmY2ZpZChkb3VibGVfZHN0LCBk b3VibGVfZHN0KTsKLSsgICAgYigmZG9uZSk7Ci0rICAgIGJpbmQoJm5lZ2F0aXZlKTsKLSsgICAg Ly8gTm90ZTogR0NDIHNhdmVzIHRoZSBsb3dlc3QgYml0LCB0aGVuIE9ScyBpdCBhZnRlciBzaGlm dGluZyByaWdodCAxIGJpdCwKLSsgICAgLy8gcHJlc3VtYWJseSBmb3IgYmV0dGVyIHJvdW5kaW5n LiBUaGlzIHZlcnNpb24gb25seSBzaGlmdHMgcmlnaHQgMSBiaXQuCi0rICAgIHNyZGkocjAsIHNy YywgT3BlcmFuZCgxKSk7Ci0rICAgIHN0ZChyMCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXpl KSk7Ci0rICAgIG5vcChHUk9VUF9FTkRJTkdfTk9QKTsgIC8vIExIUy9SQVcgb3B0aW1pemF0aW9u Ci0rICAgIGxmZChkb3VibGVfZHN0LCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUpKTsKLSsg ICAgZmNmaWQoZG91YmxlX2RzdCwgZG91YmxlX2RzdCk7Ci0rICAgIGZhZGQoZG91YmxlX2RzdCwg ZG91YmxlX2RzdCwgZG91YmxlX2RzdCk7Ci0rICAgIGJpbmQoJmRvbmUpOwotKyAgIH0KLSB9Ci0g Ci0gdm9pZCBUdXJib0Fzc2VtYmxlcjo6Q29udmVydEludDY0VG9GbG9hdChSZWdpc3RlciBzcmMs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb3VibGVSZWdpc3Rl ciBkb3VibGVfZHN0KSB7Ci0gICBNb3ZJbnQ2NFRvRG91YmxlKGRvdWJsZV9kc3QsIHNyYyk7Ci0t ICBmY2ZpZHMoZG91YmxlX2RzdCwgZG91YmxlX2RzdCk7Ci0rICBpZiAoQ3B1RmVhdHVyZXM6Oklz U3VwcG9ydGVkKFBQQ183X1BMVVMpKSB7Ci0rICAgIGZjZmlkcyhkb3VibGVfZHN0LCBkb3VibGVf ZHN0KTsKLSsgIH0gZWxzZSB7Ci0rICAgIGZjZmlkKGRvdWJsZV9kc3QsIGRvdWJsZV9kc3QpOwot KyAgICBmcnNwKGRvdWJsZV9kc3QsIGRvdWJsZV9kc3QpOwotKyAgfQotIH0KLSAjZW5kaWYKLSAK LUBAIC05ODYsMTUgKzEwMzAsNTYgQEAKLSB2b2lkIFR1cmJvQXNzZW1ibGVyOjpDb252ZXJ0RG91 YmxlVG9VbnNpZ25lZEludDY0KAotICAgICBjb25zdCBEb3VibGVSZWdpc3RlciBkb3VibGVfaW5w dXQsIGNvbnN0IFJlZ2lzdGVyIGRzdCwKLSAgICAgY29uc3QgRG91YmxlUmVnaXN0ZXIgZG91Ymxl X2RzdCwgRlBSb3VuZGluZ01vZGUgcm91bmRpbmdfbW9kZSkgewotLSAgaWYgKHJvdW5kaW5nX21v ZGUgPT0ga1JvdW5kVG9aZXJvKSB7Ci0tICAgIGZjdGlkdXooZG91YmxlX2RzdCwgZG91YmxlX2lu cHV0KTsKLSsgIGlmIChDcHVGZWF0dXJlczo6SXNTdXBwb3J0ZWQoUFBDXzdfUExVUykpIHsKLSsg ICAgaWYgKHJvdW5kaW5nX21vZGUgPT0ga1JvdW5kVG9aZXJvKSB7Ci0rICAgICAgZmN0aWR1eihk b3VibGVfZHN0LCBkb3VibGVfaW5wdXQpOwotKyAgICB9IGVsc2UgewotKyAgICAgIFNldFJvdW5k aW5nTW9kZShyb3VuZGluZ19tb2RlKTsKLSsgICAgICBmY3RpZHUoZG91YmxlX2RzdCwgZG91Ymxl X2lucHV0KTsKLSsgICAgICBSZXNldFJvdW5kaW5nTW9kZSgpOwotKyAgICB9Ci0rCi0rICAgIE1v dkRvdWJsZVRvSW50NjQoZHN0LCBkb3VibGVfZHN0KTsKLSAgIH0gZWxzZSB7Ci0tICAgIFNldFJv dW5kaW5nTW9kZShyb3VuZGluZ19tb2RlKTsKLS0gICAgZmN0aWR1KGRvdWJsZV9kc3QsIGRvdWJs ZV9pbnB1dCk7Ci0tICAgIFJlc2V0Um91bmRpbmdNb2RlKCk7Ci0rICAgIExhYmVsIHNhZmVfc2l6 ZTsKLSsgICAgTGFiZWwgZG9uZTsKLSsgICAgbW92KGRzdCwgT3BlcmFuZCgxNTkzODM1NTIwKSk7 ICAvLyBiaXQgcGF0dGVybiBmb3IgMl42MyBhcyBhIGZsb2F0Ci0rICAgIHN0dyhkc3QsIE1lbU9w ZXJhbmQoc3AsIC1rRmxvYXRTaXplKSk7Ci0rICAgIG5vcChHUk9VUF9FTkRJTkdfTk9QKTsgIC8v IExIUy9SQVcgb3B0aW1pemF0aW9uCi0rICAgIGxmcyhkb3VibGVfZHN0LCBNZW1PcGVyYW5kKHNw LCAta0Zsb2F0U2l6ZSkpOwotKyAgICBmY21wdShkb3VibGVfaW5wdXQsIGRvdWJsZV9kc3QpOwot KyAgICBibHQoJnNhZmVfc2l6ZSk7Ci0rICAgIC8vIFN1YnRyYWN0IDJeNjMsIHRoZW4gT1IgdGhl IHRvcCBiaXQgb2YgdGhlIHVpbnQ2NCB0byBhZGQgYmFjawotKyAgICBmc3ViKGRvdWJsZV9kc3Qs IGRvdWJsZV9pbnB1dCwgZG91YmxlX2RzdCk7Ci0rICAgIGlmIChyb3VuZGluZ19tb2RlID09IGtS b3VuZFRvWmVybykgewotKyAgICAgIGZjdGlkeihkb3VibGVfZHN0LCBkb3VibGVfZHN0KTsKLSsg ICAgfSBlbHNlIHsKLSsgICAgICBTZXRSb3VuZGluZ01vZGUocm91bmRpbmdfbW9kZSk7Ci0rICAg ICAgZmN0aWQoZG91YmxlX2RzdCwgZG91YmxlX2RzdCk7Ci0rICAgICAgUmVzZXRSb3VuZGluZ01v ZGUoKTsKLSsgICAgfQotKyAgICAvLyBzZXQgcjAgdG8gLTEsIHRoZW4gY2xlYXIgYWxsIGJ1dCB0 aGUgTVNCLgotKyAgICBtb3YocjAsIE9wZXJhbmQoLTEpKTsKLSsgICAgcmxkaWNyKHIwLCByMCwg MCwgMCk7Ci0rICAgIHN0ZmQoZG91YmxlX2RzdCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXpl KSk7Ci0rICAgIG5vcChHUk9VUF9FTkRJTkdfTk9QKTsgIC8vIExIUy9SQVcgb3B0aW1pemF0aW9u Ci0rICAgIGxkKGRzdCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0rICAgIG9yeChk c3QsIGRzdCwgcjApOwotKyAgICBiKCZkb25lKTsKLSsgICAgLy8gSGFuZGxpbmcgZm9yIHZhbHVl cyBzbWFsbGVyIHRoYW4gMl42My4KLSsgICAgYmluZCgmc2FmZV9zaXplKTsKLSsgICAgaWYgKHJv dW5kaW5nX21vZGUgPT0ga1JvdW5kVG9aZXJvKSB7Ci0rICAgICAgZmN0aWR6KGRvdWJsZV9kc3Qs IGRvdWJsZV9pbnB1dCk7Ci0rICAgIH0gZWxzZSB7Ci0rICAgICAgU2V0Um91bmRpbmdNb2RlKHJv dW5kaW5nX21vZGUpOwotKyAgICAgIGZjdGlkKGRvdWJsZV9kc3QsIGRvdWJsZV9pbnB1dCk7Ci0r ICAgICAgUmVzZXRSb3VuZGluZ01vZGUoKTsKLSsgICAgfQotKyAgICBzdGZkKGRvdWJsZV9kc3Qs IE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkpOwotKyAgICBub3AoR1JPVVBfRU5ESU5HX05P UCk7ICAvLyBMSFMvUkFXIG9wdGltaXphdGlvbgotKyAgICBsZChkc3QsIE1lbU9wZXJhbmQoc3As IC1rRG91YmxlU2l6ZSkpOwotKyAgICBiaW5kKCZkb25lKTsKLSAgIH0KLS0KLS0gIE1vdkRvdWJs ZVRvSW50NjQoZHN0LCBkb3VibGVfZHN0KTsKLSB9Ci0gI2VuZGlmCi0gCi1AQCAtMjQ1OSwxOSAr MjU0NCwxNyBAQAotICAgfQotICNlbmRpZgotIAotLSAgYWRkaShzcCwgc3AsIE9wZXJhbmQoLWtE b3VibGVTaXplKSk7Ci0gI2lmIFY4X1RBUkdFVF9BUkNIX1BQQzY0Ci0gICBtb3Yoc2NyYXRjaCwg T3BlcmFuZChsaXRWYWwuaXZhbCkpOwotLSAgc3RkKHNjcmF0Y2gsIE1lbU9wZXJhbmQoc3ApKTsK LSsgIHN0ZChzY3JhdGNoLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUpKTsKLSAjZWxzZQot ICAgTG9hZEludExpdGVyYWwoc2NyYXRjaCwgbGl0VmFsLml2YWxbMF0pOwotLSAgc3R3KHNjcmF0 Y2gsIE1lbU9wZXJhbmQoc3AsIDApKTsKLSsgIHN0dyhzY3JhdGNoLCBNZW1PcGVyYW5kKHNwLCAt a0RvdWJsZVNpemUpKTsKLSAgIExvYWRJbnRMaXRlcmFsKHNjcmF0Y2gsIGxpdFZhbC5pdmFsWzFd KTsKLS0gIHN0dyhzY3JhdGNoLCBNZW1PcGVyYW5kKHNwLCA0KSk7Ci0rICBzdHcoc2NyYXRjaCwg TWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplICsgNCkpOwotICNlbmRpZgotICAgbm9wKEdST1VQ X0VORElOR19OT1ApOyAgLy8gTEhTL1JBVyBvcHRpbWl6YXRpb24KLS0gIGxmZChyZXN1bHQsIE1l bU9wZXJhbmQoc3AsIDApKTsKLS0gIGFkZGkoc3AsIHNwLCBPcGVyYW5kKGtEb3VibGVTaXplKSk7 Ci0rICBsZmQocmVzdWx0LCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUpKTsKLSB9Ci0gCi0g dm9pZCBUdXJib0Fzc2VtYmxlcjo6TW92SW50VG9Eb3VibGUoRG91YmxlUmVnaXN0ZXIgZHN0LCBS ZWdpc3RlciBzcmMsCi1AQCAtMjQ4NSwxOCArMjU2OCwxNiBAQAotICNlbmRpZgotIAotICAgRENI RUNLKHNyYyAhPSBzY3JhdGNoKTsKLS0gIHN1Ymkoc3AsIHNwLCBPcGVyYW5kKGtEb3VibGVTaXpl KSk7Ci0gI2lmIFY4X1RBUkdFVF9BUkNIX1BQQzY0Ci0gICBleHRzdyhzY3JhdGNoLCBzcmMpOwot LSAgc3RkKHNjcmF0Y2gsIE1lbU9wZXJhbmQoc3AsIDApKTsKLSsgIHN0ZChzY3JhdGNoLCBNZW1P cGVyYW5kKHNwLCAta0RvdWJsZVNpemUpKTsKLSAjZWxzZQotICAgc3Jhd2koc2NyYXRjaCwgc3Jj LCAzMSk7Ci0tICBzdHcoc2NyYXRjaCwgTWVtT3BlcmFuZChzcCwgUmVnaXN0ZXI6OmtFeHBvbmVu dE9mZnNldCkpOwotLSAgc3R3KHNyYywgTWVtT3BlcmFuZChzcCwgUmVnaXN0ZXI6OmtNYW50aXNz YU9mZnNldCkpOwotKyAgc3R3KHNjcmF0Y2gsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSAr IFJlZ2lzdGVyOjprRXhwb25lbnRPZmZzZXQpKTsKLSsgIHN0dyhzcmMsIE1lbU9wZXJhbmQoc3As IC1rRG91YmxlU2l6ZSArIFJlZ2lzdGVyOjprTWFudGlzc2FPZmZzZXQpKTsKLSAjZW5kaWYKLSAg IG5vcChHUk9VUF9FTkRJTkdfTk9QKTsgIC8vIExIUy9SQVcgb3B0aW1pemF0aW9uCi0tICBsZmQo ZHN0LCBNZW1PcGVyYW5kKHNwLCAwKSk7Ci0tICBhZGRpKHNwLCBzcCwgT3BlcmFuZChrRG91Ymxl U2l6ZSkpOwotKyAgbGZkKGRzdCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0gfQot IAotIHZvaWQgVHVyYm9Bc3NlbWJsZXI6Ok1vdlVuc2lnbmVkSW50VG9Eb3VibGUoRG91YmxlUmVn aXN0ZXIgZHN0LCBSZWdpc3RlciBzcmMsCi1AQCAtMjUxMCwxOCArMjU5MSwxNiBAQAotICNlbmRp ZgotIAotICAgRENIRUNLKHNyYyAhPSBzY3JhdGNoKTsKLS0gIHN1Ymkoc3AsIHNwLCBPcGVyYW5k KGtEb3VibGVTaXplKSk7Ci0gI2lmIFY4X1RBUkdFVF9BUkNIX1BQQzY0Ci0gICBjbHJsZGkoc2Ny YXRjaCwgc3JjLCBPcGVyYW5kKDMyKSk7Ci0tICBzdGQoc2NyYXRjaCwgTWVtT3BlcmFuZChzcCwg MCkpOwotKyAgc3RkKHNjcmF0Y2gsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkpOwotICNl bHNlCi0gICBsaShzY3JhdGNoLCBPcGVyYW5kOjpaZXJvKCkpOwotLSAgc3R3KHNjcmF0Y2gsIE1l bU9wZXJhbmQoc3AsIFJlZ2lzdGVyOjprRXhwb25lbnRPZmZzZXQpKTsKLS0gIHN0dyhzcmMsIE1l bU9wZXJhbmQoc3AsIFJlZ2lzdGVyOjprTWFudGlzc2FPZmZzZXQpKTsKLSsgIHN0dyhzY3JhdGNo LCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUgKyBSZWdpc3Rlcjo6a0V4cG9uZW50T2Zmc2V0 KSk7Ci0rICBzdHcoc3JjLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUgKyBSZWdpc3Rlcjo6 a01hbnRpc3NhT2Zmc2V0KSk7Ci0gI2VuZGlmCi0gICBub3AoR1JPVVBfRU5ESU5HX05PUCk7ICAv LyBMSFMvUkFXIG9wdGltaXphdGlvbgotLSAgbGZkKGRzdCwgTWVtT3BlcmFuZChzcCwgMCkpOwot LSAgYWRkaShzcCwgc3AsIE9wZXJhbmQoa0RvdWJsZVNpemUpKTsKLSsgIGxmZChkc3QsIE1lbU9w ZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkpOwotIH0KLSAKLSB2b2lkIFR1cmJvQXNzZW1ibGVyOjpN b3ZJbnQ2NFRvRG91YmxlKERvdWJsZVJlZ2lzdGVyIGRzdCwKLUBAIC0yNTM2LDE2ICsyNjE1LDE0 IEBACi0gICB9Ci0gI2VuZGlmCi0gCi0tICBzdWJpKHNwLCBzcCwgT3BlcmFuZChrRG91YmxlU2l6 ZSkpOwotICNpZiBWOF9UQVJHRVRfQVJDSF9QUEM2NAotLSAgc3RkKHNyYywgTWVtT3BlcmFuZChz cCwgMCkpOwotKyAgc3RkKHNyYywgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0gI2Vs c2UKLS0gIHN0dyhzcmNfaGksIE1lbU9wZXJhbmQoc3AsIFJlZ2lzdGVyOjprRXhwb25lbnRPZmZz ZXQpKTsKLS0gIHN0dyhzcmMsIE1lbU9wZXJhbmQoc3AsIFJlZ2lzdGVyOjprTWFudGlzc2FPZmZz ZXQpKTsKLSsgIHN0dyhzcmNfaGksIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSArIFJlZ2lz dGVyOjprRXhwb25lbnRPZmZzZXQpKTsKLSsgIHN0dyhzcmMsIE1lbU9wZXJhbmQoc3AsIC1rRG91 YmxlU2l6ZSArIFJlZ2lzdGVyOjprTWFudGlzc2FPZmZzZXQpKTsKLSAjZW5kaWYKLSAgIG5vcChH Uk9VUF9FTkRJTkdfTk9QKTsgIC8vIExIUy9SQVcgb3B0aW1pemF0aW9uCi0tICBsZmQoZHN0LCBN ZW1PcGVyYW5kKHNwLCAwKSk7Ci0tICBhZGRpKHNwLCBzcCwgT3BlcmFuZChrRG91YmxlU2l6ZSkp OwotKyAgbGZkKGRzdCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0gfQotIAotICNp ZiBWOF9UQVJHRVRfQVJDSF9QUEM2NAotQEAgLTI1NjAsMTIgKzI2MzcsMTAgQEAKLSAgICAgcmV0 dXJuOwotICAgfQotIAotLSAgc3ViaShzcCwgc3AsIE9wZXJhbmQoa0RvdWJsZVNpemUpKTsKLS0g IHN0dyhzcmNfaGksIE1lbU9wZXJhbmQoc3AsIFJlZ2lzdGVyOjprRXhwb25lbnRPZmZzZXQpKTsK LS0gIHN0dyhzcmNfbG8sIE1lbU9wZXJhbmQoc3AsIFJlZ2lzdGVyOjprTWFudGlzc2FPZmZzZXQp KTsKLSsgIHN0dyhzcmNfaGksIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSArIFJlZ2lzdGVy OjprRXhwb25lbnRPZmZzZXQpKTsKLSsgIHN0dyhzcmNfbG8sIE1lbU9wZXJhbmQoc3AsIC1rRG91 YmxlU2l6ZSArIFJlZ2lzdGVyOjprTWFudGlzc2FPZmZzZXQpKTsKLSAgIG5vcChHUk9VUF9FTkRJ TkdfTk9QKTsgIC8vIExIUy9SQVcgb3B0aW1pemF0aW9uCi0tICBsZmQoZHN0LCBNZW1PcGVyYW5k KHNwKSk7Ci0tICBhZGRpKHNwLCBzcCwgT3BlcmFuZChrRG91YmxlU2l6ZSkpOwotKyAgbGZkKGRz dCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0gfQotICNlbmRpZgotIAotQEAgLTI1 ODAsMTIgKzI2NTUsMTAgQEAKLSAgIH0KLSAjZW5kaWYKLSAKLS0gIHN1Ymkoc3AsIHNwLCBPcGVy YW5kKGtEb3VibGVTaXplKSk7Ci0tICBzdGZkKGRzdCwgTWVtT3BlcmFuZChzcCkpOwotLSAgc3R3 KHNyYywgTWVtT3BlcmFuZChzcCwgUmVnaXN0ZXI6OmtNYW50aXNzYU9mZnNldCkpOwotKyAgc3Rm ZChkc3QsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkpOwotKyAgc3R3KHNyYywgTWVtT3Bl cmFuZChzcCwgLWtEb3VibGVTaXplICsgUmVnaXN0ZXI6OmtNYW50aXNzYU9mZnNldCkpOwotICAg bm9wKEdST1VQX0VORElOR19OT1ApOyAgLy8gTEhTL1JBVyBvcHRpbWl6YXRpb24KLS0gIGxmZChk c3QsIE1lbU9wZXJhbmQoc3ApKTsKLS0gIGFkZGkoc3AsIHNwLCBPcGVyYW5kKGtEb3VibGVTaXpl KSk7Ci0rICBsZmQoZHN0LCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUpKTsKLSB9Ci0gCi0g dm9pZCBUdXJib0Fzc2VtYmxlcjo6SW5zZXJ0RG91YmxlSGlnaChEb3VibGVSZWdpc3RlciBkc3Qs IFJlZ2lzdGVyIHNyYywKLUBAIC0yNTk5LDEyICsyNjcyLDEwIEBACi0gICB9Ci0gI2VuZGlmCi0g Ci0tICBzdWJpKHNwLCBzcCwgT3BlcmFuZChrRG91YmxlU2l6ZSkpOwotLSAgc3RmZChkc3QsIE1l bU9wZXJhbmQoc3ApKTsKLS0gIHN0dyhzcmMsIE1lbU9wZXJhbmQoc3AsIFJlZ2lzdGVyOjprRXhw b25lbnRPZmZzZXQpKTsKLSsgIHN0ZmQoZHN0LCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUp KTsKLSsgIHN0dyhzcmMsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSArIFJlZ2lzdGVyOjpr RXhwb25lbnRPZmZzZXQpKTsKLSAgIG5vcChHUk9VUF9FTkRJTkdfTk9QKTsgIC8vIExIUy9SQVcg b3B0aW1pemF0aW9uCi0tICBsZmQoZHN0LCBNZW1PcGVyYW5kKHNwKSk7Ci0tICBhZGRpKHNwLCBz cCwgT3BlcmFuZChrRG91YmxlU2l6ZSkpOwotKyAgbGZkKGRzdCwgTWVtT3BlcmFuZChzcCwgLWtE b3VibGVTaXplKSk7Ci0gfQotIAotIHZvaWQgVHVyYm9Bc3NlbWJsZXI6Ok1vdkRvdWJsZUxvd1Rv SW50KFJlZ2lzdGVyIGRzdCwgRG91YmxlUmVnaXN0ZXIgc3JjKSB7Ci1AQCAtMjYxNSwxMSArMjY4 Niw5IEBACi0gICB9Ci0gI2VuZGlmCi0gCi0tICBzdWJpKHNwLCBzcCwgT3BlcmFuZChrRG91Ymxl U2l6ZSkpOwotLSAgc3RmZChzcmMsIE1lbU9wZXJhbmQoc3ApKTsKLSsgIHN0ZmQoc3JjLCBNZW1P cGVyYW5kKHNwLCAta0RvdWJsZVNpemUpKTsKLSAgIG5vcChHUk9VUF9FTkRJTkdfTk9QKTsgIC8v IExIUy9SQVcgb3B0aW1pemF0aW9uCi0tICBsd3ooZHN0LCBNZW1PcGVyYW5kKHNwLCBSZWdpc3Rl cjo6a01hbnRpc3NhT2Zmc2V0KSk7Ci0tICBhZGRpKHNwLCBzcCwgT3BlcmFuZChrRG91YmxlU2l6 ZSkpOwotKyAgbHd6KGRzdCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplICsgUmVnaXN0ZXI6 OmtNYW50aXNzYU9mZnNldCkpOwotIH0KLSAKLSB2b2lkIFR1cmJvQXNzZW1ibGVyOjpNb3ZEb3Vi bGVIaWdoVG9JbnQoUmVnaXN0ZXIgZHN0LCBEb3VibGVSZWdpc3RlciBzcmMpIHsKLUBAIC0yNjMx LDExICsyNzAwLDkgQEAKLSAgIH0KLSAjZW5kaWYKLSAKLS0gIHN1Ymkoc3AsIHNwLCBPcGVyYW5k KGtEb3VibGVTaXplKSk7Ci0tICBzdGZkKHNyYywgTWVtT3BlcmFuZChzcCkpOwotKyAgc3RmZChz cmMsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkpOwotICAgbm9wKEdST1VQX0VORElOR19O T1ApOyAgLy8gTEhTL1JBVyBvcHRpbWl6YXRpb24KLS0gIGx3eihkc3QsIE1lbU9wZXJhbmQoc3As IFJlZ2lzdGVyOjprRXhwb25lbnRPZmZzZXQpKTsKLS0gIGFkZGkoc3AsIHNwLCBPcGVyYW5kKGtE b3VibGVTaXplKSk7Ci0rICBsd3ooZHN0LCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUgKyBS ZWdpc3Rlcjo6a0V4cG9uZW50T2Zmc2V0KSk7Ci0gfQotIAotIHZvaWQgVHVyYm9Bc3NlbWJsZXI6 Ok1vdkRvdWJsZVRvSW50NjQoCi1AQCAtMjY1MCwzMiArMjcxNywyNiBAQAotICAgfQotICNlbmRp ZgotIAotLSAgc3ViaShzcCwgc3AsIE9wZXJhbmQoa0RvdWJsZVNpemUpKTsKLS0gIHN0ZmQoc3Jj LCBNZW1PcGVyYW5kKHNwKSk7Ci0rICBzdGZkKHNyYywgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVT aXplKSk7Ci0gICBub3AoR1JPVVBfRU5ESU5HX05PUCk7ICAvLyBMSFMvUkFXIG9wdGltaXphdGlv bgotICNpZiBWOF9UQVJHRVRfQVJDSF9QUEM2NAotLSAgbGQoZHN0LCBNZW1PcGVyYW5kKHNwLCAw KSk7Ci0rICBsZChkc3QsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkpOwotICNlbHNlCi0t ICBsd3ooZHN0X2hpLCBNZW1PcGVyYW5kKHNwLCBSZWdpc3Rlcjo6a0V4cG9uZW50T2Zmc2V0KSk7 Ci0tICBsd3ooZHN0LCBNZW1PcGVyYW5kKHNwLCBSZWdpc3Rlcjo6a01hbnRpc3NhT2Zmc2V0KSk7 Ci0rICBsd3ooZHN0X2hpLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUgKyBSZWdpc3Rlcjo6 a0V4cG9uZW50T2Zmc2V0KSk7Ci0rICBsd3ooZHN0LCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNp emUgKyBSZWdpc3Rlcjo6a01hbnRpc3NhT2Zmc2V0KSk7Ci0gI2VuZGlmCi0tICBhZGRpKHNwLCBz cCwgT3BlcmFuZChrRG91YmxlU2l6ZSkpOwotIH0KLSAKLSB2b2lkIFR1cmJvQXNzZW1ibGVyOjpN b3ZJbnRUb0Zsb2F0KERvdWJsZVJlZ2lzdGVyIGRzdCwgUmVnaXN0ZXIgc3JjKSB7Ci0tICBzdWJp KHNwLCBzcCwgT3BlcmFuZChrRmxvYXRTaXplKSk7Ci0tICBzdHcoc3JjLCBNZW1PcGVyYW5kKHNw LCAwKSk7Ci0rICBzdHcoc3JjLCBNZW1PcGVyYW5kKHNwLCAta0Zsb2F0U2l6ZSkpOwotICAgbm9w KEdST1VQX0VORElOR19OT1ApOyAgLy8gTEhTL1JBVyBvcHRpbWl6YXRpb24KLS0gIGxmcyhkc3Qs IE1lbU9wZXJhbmQoc3AsIDApKTsKLS0gIGFkZGkoc3AsIHNwLCBPcGVyYW5kKGtGbG9hdFNpemUp KTsKLSsgIGxmcyhkc3QsIE1lbU9wZXJhbmQoc3AsIC1rRmxvYXRTaXplKSk7Ci0gfQotIAotIHZv aWQgVHVyYm9Bc3NlbWJsZXI6Ok1vdkZsb2F0VG9JbnQoUmVnaXN0ZXIgZHN0LCBEb3VibGVSZWdp c3RlciBzcmMpIHsKLS0gIHN1Ymkoc3AsIHNwLCBPcGVyYW5kKGtGbG9hdFNpemUpKTsKLS0gIHN0 ZnMoc3JjLCBNZW1PcGVyYW5kKHNwLCAwKSk7Ci0rICBzdGZzKHNyYywgTWVtT3BlcmFuZChzcCwg LWtGbG9hdFNpemUpKTsKLSAgIG5vcChHUk9VUF9FTkRJTkdfTk9QKTsgIC8vIExIUy9SQVcgb3B0 aW1pemF0aW9uCi0tICBsd3ooZHN0LCBNZW1PcGVyYW5kKHNwLCAwKSk7Ci0tICBhZGRpKHNwLCBz cCwgT3BlcmFuZChrRmxvYXRTaXplKSk7Ci0rICBsd3ooZHN0LCBNZW1PcGVyYW5kKHNwLCAta0Zs b2F0U2l6ZSkpOwotIH0KLSAKLSB2b2lkIFR1cmJvQXNzZW1ibGVyOjpBZGRTNjQoUmVnaXN0ZXIg ZHN0LCBSZWdpc3RlciBzcmMsIFJlZ2lzdGVyIHZhbHVlLCBPRUJpdCBzLAotQEAgLTMxODksMTAg KzMyNTAsOCBAQAotICAgfQotIAotICNkZWZpbmUgTUVNX0xFX09QX0xJU1QoVikgXAotLSAgVihM b2FkVTY0LCBsZGJyeCkgICAgICAgXAotICAgVihMb2FkVTMyLCBsd2JyeCkgICAgICAgXAotICAg VihMb2FkVTE2LCBsaGJyeCkgICAgICAgXAotLSAgVihTdG9yZVU2NCwgc3RkYnJ4KSAgICAgXAot ICAgVihTdG9yZVUzMiwgc3R3YnJ4KSAgICAgXAotICAgVihTdG9yZVUxNiwgc3RoYnJ4KQotIAot QEAgLTMyMTQsNiArMzI3MywzNyBAQAotICN1bmRlZiBNRU1fTEVfT1BfRlVOQ1RJT04KLSAjdW5k ZWYgTUVNX0xFX09QX0xJU1QKLSAKLSt2b2lkIFR1cmJvQXNzZW1ibGVyOjpMb2FkVTY0TEUoUmVn aXN0ZXIgZHN0LCBjb25zdCBNZW1PcGVyYW5kJiBtZW0sCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJlZ2lzdGVyIHNjcmF0Y2gpIHsKLSsjaWZkZWYgVjhfVEFSR0VUX0JJR19FTkRJ QU4KLSsgIGlmIChDcHVGZWF0dXJlczo6SXNTdXBwb3J0ZWQoUFBDXzdfUExVU19OWFApKSB7Ci0r ICAgIEdlbmVyYXRlTWVtb3J5TEVPcGVyYXRpb24oZHN0LCBtZW0sIGxkYnJ4KTsKLSsgIH0gZWxz ZSB7Ci0rICAgIGx3YnJ4KGRzdCwgbWVtKTsKLSsgICAgbHdicngoc2NyYXRjaCwgTWVtT3BlcmFu ZChtZW0ucmEoKSwgbWVtLnJiKCksIG1lbS5vZmZzZXQoKSArIDQpKTsKLSsgICAgcmxkaWNyKHNj cmF0Y2gsIHNjcmF0Y2gsIDMyLCAzMSk7Ci0rICAgIG9yeChkc3QsIGRzdCwgc2NyYXRjaCk7Ci0r ICB9Ci0rI2Vsc2UKLSsgIExvYWRVNjQoZHN0LCBtZW0sIHNjcmF0Y2gpOwotKyNlbmRpZgotK30K LSsKLSt2b2lkIFR1cmJvQXNzZW1ibGVyOjpTdG9yZVU2NExFKFJlZ2lzdGVyIHNyYywgY29uc3Qg TWVtT3BlcmFuZCYgbWVtLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0 ZXIgc2NyYXRjaCkgewotKyNpZmRlZiBWOF9UQVJHRVRfQklHX0VORElBTgotKyAgaWYgKENwdUZl YXR1cmVzOjpJc1N1cHBvcnRlZChQUENfN19QTFVTX05YUCkpIHsKLSsgICAgR2VuZXJhdGVNZW1v cnlMRU9wZXJhdGlvbihzcmMsIG1lbSwgc3RkYnJ4KTsKLSsgIH0gZWxzZSB7Ci0rICAgIHN0d2Jy eChzcmMsIG1lbSk7Ci0rICAgIHJsZGljbChzY3JhdGNoLCBzcmMsIDMyLCAzMik7Ci0rICAgIHN0 d2JyeChzY3JhdGNoLCBNZW1PcGVyYW5kKG1lbS5yYSgpLCBtZW0ucmIoKSwgbWVtLm9mZnNldCgp ICsgNCkpOwotKyAgfQotKyNlbHNlCi0rICBTdG9yZVU2NChzcmMsIG1lbSwgc2NyYXRjaCk7Ci0r I2VuZGlmCi0rfQotKwotIHZvaWQgVHVyYm9Bc3NlbWJsZXI6OkxvYWRTMzJMRShSZWdpc3RlciBk c3QsIGNvbnN0IE1lbU9wZXJhbmQmIG1lbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmVnaXN0ZXIgc2NyYXRjaCkgewotICNpZmRlZiBWOF9UQVJHRVRfQklHX0VORElBTgotLS0t IGEvZGVwcy92OC9zcmMvY29kZWdlbi9jcHUtZmVhdHVyZXMuaAkyMDIyLTAyLTE5IDIxOjE5OjE1 Ljk4MjI4ODY5MCAtMDgwMAotKysrIGIvZGVwcy92OC9zcmMvY29kZWdlbi9jcHUtZmVhdHVyZXMu aAkyMDIyLTAyLTE5IDIxOjIyOjQzLjA3MTQ4NzM2OSAtMDgwMAotQEAgLTUyLDExICs1MiwxNSBA QAotICAgTUlQU19TSU1ELCAgLy8gTVNBIGluc3RydWN0aW9ucwotIAotICNlbGlmIFY4X1RBUkdF VF9BUkNIX1BQQyB8fCBWOF9UQVJHRVRfQVJDSF9QUEM2NAotKyAgUFBDXzVfUExVUywKLSAgIFBQ Q182X1BMVVMsCi0gICBQUENfN19QTFVTLAotICAgUFBDXzhfUExVUywKLSAgIFBQQ185X1BMVVMs Ci0gICBQUENfMTBfUExVUywKLSsgIElDQUNIRV9TTk9PUCwgICAgIC8vIElTQSB2Mi4wMiAoUE9X RVI1KQotKyAgSVNFTEVDVCwgICAgICAgICAgLy8gSVNBIHYyLjAzIChQT1dFUjUrIGFuZCBzb21l IE5YUCBjb3JlcykKLSsgIFBQQ183X1BMVVNfTlhQLCAgIC8vIElTQSB2Mi4wNiAoUE9XRVI3IGFu ZCBOWFAgZTU1MDAvZTY1MDApCi0gCi0gI2VsaWYgVjhfVEFSR0VUX0FSQ0hfUzM5MFgKLSAgIEZQ VSwKLS0tLSBhL2RlcHMvdjgvc3JjL2NvbXBpbGVyL2JhY2tlbmQvcHBjL2luc3RydWN0aW9uLXNl bGVjdG9yLXBwYy5jYwkyMDIyLTAyLTIwIDIzOjM1OjIxLjIxMjMzNzYzOSAtMDgwMAotKysrIGIv ZGVwcy92OC9zcmMvY29tcGlsZXIvYmFja2VuZC9wcGMvaW5zdHJ1Y3Rpb24tc2VsZWN0b3ItcHBj LmNjCTIwMjItMDItMjAgMjM6MzY6MjAuOTI1ODU4ODQwIC0wODAwCi1AQCAtMjcwMiwxNiArMjcw MiwyNiBAQAotIC8vIHN0YXRpYwotIE1hY2hpbmVPcGVyYXRvckJ1aWxkZXI6OkZsYWdzCi0gSW5z dHJ1Y3Rpb25TZWxlY3Rvcjo6U3VwcG9ydGVkTWFjaGluZU9wZXJhdG9yRmxhZ3MoKSB7Ci0tICBy ZXR1cm4gTWFjaGluZU9wZXJhdG9yQnVpbGRlcjo6a0Zsb2F0MzJSb3VuZERvd24gfAotLSAgICAg ICAgIE1hY2hpbmVPcGVyYXRvckJ1aWxkZXI6OmtGbG9hdDY0Um91bmREb3duIHwKLS0gICAgICAg ICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjprRmxvYXQzMlJvdW5kVXAgfAotLSAgICAgICAgIE1h Y2hpbmVPcGVyYXRvckJ1aWxkZXI6OmtGbG9hdDY0Um91bmRVcCB8Ci0tICAgICAgICAgTWFjaGlu ZU9wZXJhdG9yQnVpbGRlcjo6a0Zsb2F0MzJSb3VuZFRydW5jYXRlIHwKLS0gICAgICAgICBNYWNo aW5lT3BlcmF0b3JCdWlsZGVyOjprRmxvYXQ2NFJvdW5kVHJ1bmNhdGUgfAotLSAgICAgICAgIE1h Y2hpbmVPcGVyYXRvckJ1aWxkZXI6OmtGbG9hdDY0Um91bmRUaWVzQXdheSB8Ci0tICAgICAgICAg TWFjaGluZU9wZXJhdG9yQnVpbGRlcjo6a1dvcmQzMlBvcGNudCB8Ci0tICAgICAgICAgTWFjaGlu ZU9wZXJhdG9yQnVpbGRlcjo6a1dvcmQ2NFBvcGNudDsKLSsgIE1hY2hpbmVPcGVyYXRvckJ1aWxk ZXI6OkZsYWdzIGZsYWdzID0gTWFjaGluZU9wZXJhdG9yQnVpbGRlcjo6RmxhZzo6a05vRmxhZ3M7 Ci0rICAvLyBGUCByb3VuZGluZyB0byBpbnRlZ2VyIGluc3RydWN0aW9ucyByZXF1aXJlIFBvd2Vy IElTQSB2Mi4wMiBvciBsYXRlci4KLSsgIGlmIChDcHVGZWF0dXJlczo6SXNTdXBwb3J0ZWQoUFBD XzVfUExVUykpIHsKLSsgICAgZmxhZ3MgfD0gTWFjaGluZU9wZXJhdG9yQnVpbGRlcjo6a0Zsb2F0 MzJSb3VuZERvd24gfAotKyAgICAgICAgICAgICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjprRmxv YXQ2NFJvdW5kRG93biB8Ci0rICAgICAgICAgICAgIE1hY2hpbmVPcGVyYXRvckJ1aWxkZXI6OmtG bG9hdDMyUm91bmRVcCB8Ci0rICAgICAgICAgICAgIE1hY2hpbmVPcGVyYXRvckJ1aWxkZXI6OmtG bG9hdDY0Um91bmRVcCB8Ci0rICAgICAgICAgICAgIE1hY2hpbmVPcGVyYXRvckJ1aWxkZXI6OmtG bG9hdDMyUm91bmRUcnVuY2F0ZSB8Ci0rICAgICAgICAgICAgIE1hY2hpbmVPcGVyYXRvckJ1aWxk ZXI6OmtGbG9hdDY0Um91bmRUcnVuY2F0ZSB8Ci0rICAgICAgICAgICAgIE1hY2hpbmVPcGVyYXRv ckJ1aWxkZXI6OmtGbG9hdDY0Um91bmRUaWVzQXdheTsKLSsgIH0KLSsgIC8vIFBvcHVsYXRpb24g Y291bnQgcmVxdWlyZXMgUG93ZXIgSVNBIHYyLjA2LCBvciBOWFAgZTU1MDAvZTY1MDAuCi0rICBp ZiAoQ3B1RmVhdHVyZXM6OklzU3VwcG9ydGVkKFBQQ183X1BMVVNfTlhQKSkgewotKyAgICBmbGFn cyB8PSBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjprV29yZDMyUG9wY250OwotKyNpZiBWOF9UQVJH RVRfQVJDSF9QUEM2NAotKyAgICBmbGFncyB8PSBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjprV29y ZDY0UG9wY250OwotKyNlbmRpZgotKyAgfQotICAgLy8gV2Ugb21pdCBrV29yZDMyU2hpZnRJc1Nh ZmUgYXMgc1tybF13IHVzZSAweDNGIGFzIGEgbWFzayByYXRoZXIgdGhhbiAweDFGLgotKyAgcmV0 dXJuIGZsYWdzOwotIH0KLSAKLSAvLyBzdGF0aWMKLS0tLSBhL2RlcHMvdjgvc3JjL2NvbXBpbGVy L2JhY2tlbmQvcHBjL2NvZGUtZ2VuZXJhdG9yLXBwYy5jYwkyMDIyLTAyLTIwIDIzOjM1OjIxLjIx NjMzNzc0MSAtMDgwMAotKysrIGIvZGVwcy92OC9zcmMvY29tcGlsZXIvYmFja2VuZC9wcGMvY29k ZS1nZW5lcmF0b3ItcHBjLmNjCTIwMjItMDItMjAgMjM6Mzk6NTYuNDc5MzUxNDgyIC0wODAwCi1A QCAtNzg1LDYgKzc4NSw3IEBACi0gICAvLyBDYWxjdWxhdGUgYSBtYXNrIHdoaWNoIGhhcyBhbGwg Yml0cyBzZXQgaW4gdGhlIG5vcm1hbCBjYXNlLCBidXQgaGFzIGFsbAotICAgLy8gYml0cyBjbGVh cmVkIGlmIHdlIGFyZSBzcGVjdWxhdGl2ZWx5IGV4ZWN1dGluZyB0aGUgd3JvbmcgUEMuCi0gICBf XyBDbXBTNjQoa0phdmFTY3JpcHRDYWxsQ29kZVN0YXJ0UmVnaXN0ZXIsIHNjcmF0Y2gpOwotKyAg Ly8gVE9ETzogaXMgYWx0ZXJuYXRlIHNlcXVlbmNlIG5lZWRlZCBmb3IgQ1BVcyB3aXRob3V0IGlz ZWw/Ci0gICBfXyBsaShzY3JhdGNoLCBPcGVyYW5kOjpaZXJvKCkpOwotICAgX18gbm90eChrU3Bl Y3VsYXRpb25Qb2lzb25SZWdpc3Rlciwgc2NyYXRjaCk7Ci0gICBfXyBpc2VsKGVxLCBrU3BlY3Vs YXRpb25Qb2lzb25SZWdpc3Rlciwga1NwZWN1bGF0aW9uUG9pc29uUmVnaXN0ZXIsIHNjcmF0Y2gp OwotQEAgLTE4MjMsNiArMTgyNCw3IEBACi0gICAgICAgICBpbnQgY3JiaXQgPSB2ODo6aW50ZXJu YWw6OkFzc2VtYmxlcjo6ZW5jb2RlX2NyYml0KAotICAgICAgICAgICAgIGNyLCBzdGF0aWNfY2Fz dDxDUkJpdD4oVlhDVkkgJSBDUldJRFRIKSk7Ci0gICAgICAgICBfXyBtY3JmcyhjciwgVlhDVkkp OyAgLy8gZXh0cmFjdCBGUFNDUiBmaWVsZCBjb250YWluaW5nIFZYQ1ZJIGludG8gY3I3Ci0rICAg ICAgICAvLyBUT0RPOiBpcyBhbHRlcm5hdGUgc2VxdWVuY2UgbmVlZGVkIGZvciBDUFVzIHdpdGhv dXQgaXNlbD8KLSAgICAgICAgIF9fIGxpKGtTY3JhdGNoUmVnLCBPcGVyYW5kKDEpKTsKLSAgICAg ICAgIF9fIFNoaWZ0TGVmdFU2NChrU2NyYXRjaFJlZywga1NjcmF0Y2hSZWcsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgT3BlcmFuZCgzMSkpOyAgLy8gZ2VuZXJhdGUgSU5UMzJfTUlOLgotQEAg LTE4NDQsNiArMTg0Niw3IEBACi0gICAgICAgICBpbnQgY3JiaXQgPSB2ODo6aW50ZXJuYWw6OkFz c2VtYmxlcjo6ZW5jb2RlX2NyYml0KAotICAgICAgICAgICAgIGNyLCBzdGF0aWNfY2FzdDxDUkJp dD4oVlhDVkkgJSBDUldJRFRIKSk7Ci0gICAgICAgICBfXyBtY3JmcyhjciwgVlhDVkkpOyAgLy8g ZXh0cmFjdCBGUFNDUiBmaWVsZCBjb250YWluaW5nIFZYQ1ZJIGludG8gY3I3Ci0rICAgICAgICAv LyBUT0RPOiBpcyBhbHRlcm5hdGUgc2VxdWVuY2UgbmVlZGVkIGZvciBDUFVzIHdpdGhvdXQgaXNl bD8KLSAgICAgICAgIF9fIGxpKGtTY3JhdGNoUmVnLCBPcGVyYW5kOjpaZXJvKCkpOwotICAgICAg ICAgX18gaXNlbChpLk91dHB1dFJlZ2lzdGVyKDApLCBrU2NyYXRjaFJlZywgaS5PdXRwdXRSZWdp c3RlcigwKSwgY3JiaXQpOwotICAgICAgIH0KLUBAIC0xODY4LDcgKzE4NzEsNyBAQAotICAgICAg ICAgICAgIGNyLCBzdGF0aWNfY2FzdDxDUkJpdD4oVlhDVkkgJSBDUldJRFRIKSk7Ci0gICAgICAg ICBfXyBtY3JmcyhjciwgVlhDVkkpOyAgLy8gZXh0cmFjdCBGUFNDUiBmaWVsZCBjb250YWluaW5n IFZYQ1ZJIGludG8gY3I3Ci0gICAgICAgICAvLyBIYW5kbGUgY29udmVyc2lvbiBmYWlsdXJlcyAo c3VjaCBhcyBvdmVyZmxvdykuCi0tICAgICAgICBpZiAoQ3B1RmVhdHVyZXM6OklzU3VwcG9ydGVk KFBQQ183X1BMVVMpKSB7Ci0rICAgICAgICBpZiAoQ3B1RmVhdHVyZXM6OklzU3VwcG9ydGVkKElT RUxFQ1QpKSB7Ci0gICAgICAgICAgIGlmIChjaGVja19jb252ZXJzaW9uKSB7Ci0gICAgICAgICAg ICAgX18gbGkoaS5PdXRwdXRSZWdpc3RlcigxKSwgT3BlcmFuZCgxKSk7Ci0gICAgICAgICAgICAg X18gaXNlbChpLk91dHB1dFJlZ2lzdGVyKDEpLCByMCwgaS5PdXRwdXRSZWdpc3RlcigxKSwgY3Ji aXQpOwotQEAgLTE5MDUsNyArMTkwOCw3IEBACi0gICAgICAgICBpbnQgY3JiaXQgPSB2ODo6aW50 ZXJuYWw6OkFzc2VtYmxlcjo6ZW5jb2RlX2NyYml0KAotICAgICAgICAgICAgIGNyLCBzdGF0aWNf Y2FzdDxDUkJpdD4oVlhDVkkgJSBDUldJRFRIKSk7Ci0gICAgICAgICBfXyBtY3JmcyhjciwgVlhD VkkpOyAgLy8gZXh0cmFjdCBGUFNDUiBmaWVsZCBjb250YWluaW5nIFZYQ1ZJIGludG8gY3I3Ci0t ICAgICAgICBpZiAoQ3B1RmVhdHVyZXM6OklzU3VwcG9ydGVkKFBQQ183X1BMVVMpKSB7Ci0rICAg ICAgICBpZiAoQ3B1RmVhdHVyZXM6OklzU3VwcG9ydGVkKElTRUxFQ1QpKSB7Ci0gICAgICAgICAg IF9fIGxpKGkuT3V0cHV0UmVnaXN0ZXIoMSksIE9wZXJhbmQoMSkpOwotICAgICAgICAgICBfXyBp c2VsKGkuT3V0cHV0UmVnaXN0ZXIoMSksIHIwLCBpLk91dHB1dFJlZ2lzdGVyKDEpLCBjcmJpdCk7 Ci0gICAgICAgICB9IGVsc2UgewotQEAgLTIxNjgsMTIgKzIxNzEsNjcgQEAKLSAgICAgICBicmVh azsKLSAgICAgfQotICAgICBjYXNlIGtQUENfTG9hZEJ5dGVSZXY2NDogewotLSAgICAgIEFTU0VN QkxFX0xPQURfSU5URUdFUl9SUihsZGJyeCk7Ci0rICAgICAgLy8gaW5saW5lZCB2ZXJzaW9uIG9m IEFTU0VNQkxFX0xPQURfSU5URUdFUl9SUigpCi0rICAgICAgUmVnaXN0ZXIgcmVzdWx0ID0gaS5P dXRwdXRSZWdpc3RlcigpOwotKyAgICAgIEFkZHJlc3NpbmdNb2RlIG1vZGUgPSBrTW9kZV9Ob25l OwotKyAgICAgIE1lbU9wZXJhbmQgb3BlcmFuZCA9IGkuTWVtb3J5T3BlcmFuZCgmbW9kZSk7Ci0r ICAgICAgRENIRUNLX0VRKG1vZGUsIGtNb2RlX01SUik7Ci0rICAgICAgYm9vbCBpc19hdG9taWMg PSBpLklucHV0SW50MzIoMik7Ci0rICAgICAgaWYgKENwdUZlYXR1cmVzOjpJc1N1cHBvcnRlZChQ UENfN19QTFVTX05YUCkpIHsKLSsgICAgICAgIF9fIGxkYnJ4KHJlc3VsdCwgb3BlcmFuZCk7Ci0r ICAgICAgfSBlbHNlIHsKLSsjaWZkZWYgVjhfVEFSR0VUX0JJR19FTkRJQU4KLSsgICAgICAgIC8v IGxvdyBhbmQgaGlnaCB3b3JkcyBmcm9tIHJldmVyc2VkIHBlcnNwZWN0aXZlCi0rICAgICAgICBN ZW1PcGVyYW5kIG9wX2xvdyA9IG9wZXJhbmQ7Ci0rICAgICAgICBNZW1PcGVyYW5kIG9wX2hpZ2gg PSBNZW1PcGVyYW5kKG9wZXJhbmQucmEoKSwgb3BlcmFuZC5yYigpLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYW5kLm9mZnNldCgpICsgNCk7Ci0rI2Vsc2UK LSsgICAgICAgIC8vIGxvdyBhbmQgaGlnaCB3b3JkcyBmcm9tIHJldmVyc2VkIHBlcnNwZWN0aXZl Ci0rICAgICAgICBNZW1PcGVyYW5kIG9wX2hpZ2ggPSBvcGVyYW5kOwotKyAgICAgICAgTWVtT3Bl cmFuZCBvcF9sb3cgPSBNZW1PcGVyYW5kKG9wZXJhbmQucmEoKSwgb3BlcmFuZC5yYigpLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhbmQub2Zmc2V0KCkgKyA0 KTsKLSsjZW5kaWYKLSsgICAgICAgIFJlZ2lzdGVyIHRlbXAxID0gcjA7Ci0rICAgICAgICBfXyBs d2JyeChyZXN1bHQsIG9wX2xvdyk7Ci0rICAgICAgICBfXyBsd2JyeCh0ZW1wMSwgb3BfaGlnaCk7 Ci0rICAgICAgICBfXyBybGRpY3IodGVtcDEsIHRlbXAxLCAzMiwgMzEpOwotKyAgICAgICAgX18g b3J4KHJlc3VsdCwgcmVzdWx0LCB0ZW1wMSk7Ci0rICAgICAgfQotKyAgICAgIGlmIChpc19hdG9t aWMpIF9fIGx3c3luYygpOwotKyAgICAgIERDSEVDS19FUShMZWF2ZVJDLCBpLk91dHB1dFJDQml0 KCkpOwotICAgICAgIEVtaXRXb3JkTG9hZFBvaXNvbmluZ0lmTmVlZGVkKHRoaXMsIGluc3RyLCBp KTsKLSAgICAgICBicmVhazsKLSAgICAgfQotICAgICBjYXNlIGtQUENfU3RvcmVCeXRlUmV2NjQ6 IHsKLS0gICAgICBBU1NFTUJMRV9TVE9SRV9JTlRFR0VSX1JSKHN0ZGJyeCk7Ci0rICAgICAgLy8g aW5saW5lZCB2ZXJzaW9uIG9mIEFTU0VNQkxFX1NUT1JFX0lOVEVHRVJfUlIoKQotKyAgICAgIHNp emVfdCBpbmRleCA9IDA7Ci0rICAgICAgQWRkcmVzc2luZ01vZGUgbW9kZSA9IGtNb2RlX05vbmU7 Ci0rICAgICAgTWVtT3BlcmFuZCBvcGVyYW5kID0gaS5NZW1vcnlPcGVyYW5kKCZtb2RlLCAmaW5k ZXgpOwotKyAgICAgIERDSEVDS19FUShtb2RlLCBrTW9kZV9NUlIpOwotKyAgICAgIFJlZ2lzdGVy IHZhbHVlID0gaS5JbnB1dFJlZ2lzdGVyKGluZGV4KTsKLSsgICAgICBib29sIGlzX2F0b21pYyA9 IGkuSW5wdXRJbnQzMigzKTsKLSsgICAgICBpZiAoaXNfYXRvbWljKSBfXyBsd3N5bmMoKTsKLSsg ICAgICBpZiAoQ3B1RmVhdHVyZXM6OklzU3VwcG9ydGVkKFBQQ183X1BMVVNfTlhQKSkgewotKyAg ICAgICAgX18gc3RkYnJ4KHZhbHVlLCBvcGVyYW5kKTsKLSsgICAgICB9IGVsc2UgewotKyNpZmRl ZiBWOF9UQVJHRVRfQklHX0VORElBTgotKyAgICAgICAgLy8gbG93IGFuZCBoaWdoIHdvcmRzIGZy b20gcmV2ZXJzZWQgcGVyc3BlY3RpdmUKLSsgICAgICAgIE1lbU9wZXJhbmQgb3BfbG93ID0gb3Bl cmFuZDsKLSsgICAgICAgIE1lbU9wZXJhbmQgb3BfaGlnaCA9IE1lbU9wZXJhbmQob3BlcmFuZC5y YSgpLCBvcGVyYW5kLnJiKCksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9wZXJhbmQub2Zmc2V0KCkgKyA0KTsKLSsjZWxzZQotKyAgICAgICAgLy8gbG93IGFuZCBo aWdoIHdvcmRzIGZyb20gcmV2ZXJzZWQgcGVyc3BlY3RpdmUKLSsgICAgICAgIE1lbU9wZXJhbmQg b3BfaGlnaCA9IG9wZXJhbmQ7Ci0rICAgICAgICBNZW1PcGVyYW5kIG9wX2xvdyA9IE1lbU9wZXJh bmQob3BlcmFuZC5yYSgpLCBvcGVyYW5kLnJiKCksCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgb3BlcmFuZC5vZmZzZXQoKSArIDQpOwotKyNlbmRpZgotKyAgICAgICAg UmVnaXN0ZXIgdGVtcDEgPSByMDsKLSsgICAgICAgIF9fIHN0d2JyeCh2YWx1ZSwgb3BfbG93KTsK LSsgICAgICAgIF9fIHJsZGljbCh0ZW1wMSwgdmFsdWUsIDMyLCAzMik7Ci0rICAgICAgICBfXyBz dHdicngodGVtcDEsIG9wX2hpZ2gpOwotKyAgICAgIH0KLSsgICAgICBpZiAoaXNfYXRvbWljKSBf XyBzeW5jKCk7Ci0rICAgICAgRENIRUNLX0VRKExlYXZlUkMsIGkuT3V0cHV0UkNCaXQoKSk7Ci0g ICAgICAgYnJlYWs7Ci0gICAgIH0KLSAgICAgY2FzZSBrUFBDX0Y2NHgyU3BsYXQ6IHsKLUBAIC0y OTExLDExICsyOTY5LDEzIEBACi0gICAgICAgX18gbGkoaXAsIE9wZXJhbmQoMSkpOwotICAgICAg IC8vIENoZWNrIGlmIGJvdGggbGFuZXMgYXJlIDAsIGlmIHNvIHRoZW4gcmV0dXJuIGZhbHNlLgot ICAgICAgIF9fIHZ4b3Ioa1NjcmF0Y2hTaW1kMTI4UmVnLCBrU2NyYXRjaFNpbWQxMjhSZWcsIGtT Y3JhdGNoU2ltZDEyOFJlZyk7Ci0rICAgICAgLy8gVE9ETzogaXMgYWx0ZXJuYXRlIHNlcXVlbmNl IG5lZWRlZCBmb3IgQ1BVcyB3aXRob3V0IGlzZWw/Ci0gICAgICAgX18gbXRjcmYocjAsIGZ4bSk7 ICAvLyBDbGVhciBjcjYuCi0gICAgICAgX18gdmNtcGVxdWQoa1NjcmF0Y2hTaW1kMTI4UmVnLCBz cmMsIGtTY3JhdGNoU2ltZDEyOFJlZywgU2V0UkMpOwotICAgICAgIF9fIGlzZWwoZHN0LCByMCwg aXAsIGJpdF9udW1iZXIpOwotICAgICAgIGJyZWFrOwotICAgICB9Ci0rLy8gVE9ETzogaXMgYWx0 ZXJuYXRlIHNlcXVlbmNlIG5lZWRlZCBmb3IgQ1BVcyB3aXRob3V0IGlzZWw/Ci0gI2RlZmluZSBT SU1EX0FMTF9UUlVFKG9wY29kZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCi0gICBTaW1kMTI4UmVnaXN0ZXIgc3JjID0gaS5JbnB1dFNpbWQxMjhSZWdpc3Rlcigw KTsgICAgICAgICAgICAgICAgICAgICBcCi0gICBSZWdpc3RlciBkc3QgPSBpLk91dHB1dFJlZ2lz dGVyKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi1AQCAtMzgwOSw2ICsz ODY5LDcgQEAKLSAKLSAgIEFyY2hPcGNvZGUgb3AgPSBpbnN0ci0+YXJjaF9vcGNvZGUoKTsKLSAg IGNvbmRpdGlvbiA9IE5lZ2F0ZUZsYWdzQ29uZGl0aW9uKGNvbmRpdGlvbik7Ci0rICAvLyBUT0RP OiBpcyBhbHRlcm5hdGUgc2VxdWVuY2UgbmVlZGVkIGZvciBDUFVzIHdpdGhvdXQgaXNlbD8KLSAg IF9fIGxpKGtTY3JhdGNoUmVnLCBPcGVyYW5kOjpaZXJvKCkpOwotICAgX18gaXNlbChGbGFnc0Nv bmRpdGlvblRvQ29uZGl0aW9uKGNvbmRpdGlvbiwgb3ApLCBrU3BlY3VsYXRpb25Qb2lzb25SZWdp c3RlciwKLSAgICAgICAgICAga1NjcmF0Y2hSZWcsIGtTcGVjdWxhdGlvblBvaXNvblJlZ2lzdGVy LCBjcjApOwotQEAgLTM5MjIsNyArMzk4Myw3IEBACi0gICAgIC8vIFVubmVjZXNzYXJ5IGZvciBl cS9sdCAmIG5lL2dlIHNpbmNlIG9ubHkgRlUgYml0IHdpbGwgYmUgc2V0LgotICAgfQotIAotLSAg aWYgKENwdUZlYXR1cmVzOjpJc1N1cHBvcnRlZChQUENfN19QTFVTKSkgewotKyAgaWYgKENwdUZl YXR1cmVzOjpJc1N1cHBvcnRlZChJU0VMRUNUKSkgewotICAgICBzd2l0Y2ggKGNvbmQpIHsKLSAg ICAgICBjYXNlIGVxOgotICAgICAgIGNhc2UgbHQ6Ci0tLS0gYS9kZXBzL3Y4L3NyYy9jb2RlZ2Vu L3BwYy9jcHUtcHBjLmNjCTIwMjItMDItMDggMDQ6Mzc6NDguMDAwMDAwMDAwIC0wODAwCi0rKysg Yi9kZXBzL3Y4L3NyYy9jb2RlZ2VuL3BwYy9jcHUtcHBjLmNjCTIwMjItMDItMjAgMTc6MDI6MTcu OTAwMDAwNzg1IC0wODAwCi1AQCAtOCwxNCArOCwxMiBAQAotIAotICNpbmNsdWRlICJzcmMvY29k ZWdlbi9jcHUtZmVhdHVyZXMuaCIKLSAKLS0jZGVmaW5lIElOU1RSX0FORF9EQVRBX0NBQ0hFX0NP SEVSRU5DWSBQUENfNl9QTFVTCi0tCi0gbmFtZXNwYWNlIHY4IHsKLSBuYW1lc3BhY2UgaW50ZXJu YWwgewotIAotIHZvaWQgQ3B1RmVhdHVyZXM6OkZsdXNoSUNhY2hlKHZvaWQqIGJ1ZmZlciwgc2l6 ZV90IHNpemUpIHsKLSAjaWYgIWRlZmluZWQoVVNFX1NJTVVMQVRPUikKLS0gIGlmIChDcHVGZWF0 dXJlczo6SXNTdXBwb3J0ZWQoSU5TVFJfQU5EX0RBVEFfQ0FDSEVfQ09IRVJFTkNZKSkgewotKyAg aWYgKENwdUZlYXR1cmVzOjpJc1N1cHBvcnRlZChJQ0FDSEVfU05PT1ApKSB7Ci0gICAgIF9fYXNt X18gX192b2xhdGlsZV9fKAotICAgICAgICAgInN5bmMgXG4iCi0gICAgICAgICAiaWNiaSAwLCAl MCAgXG4iCi1AQCAtMjYsMjUgKzI0LDMzIEBACi0gICAgIHJldHVybjsKLSAgIH0KLSAKLS0gIGNv bnN0IGludCBrQ2FjaGVMaW5lU2l6ZSA9IENwdUZlYXR1cmVzOjppY2FjaGVfbGluZV9zaXplKCk7 Ci0tICBpbnRwdHJfdCBtYXNrID0ga0NhY2hlTGluZVNpemUgLSAxOwotKyAgY29uc3QgaW50IGtJ bnN0ckNhY2hlTGluZVNpemUgPSBDcHVGZWF0dXJlczo6aWNhY2hlX2xpbmVfc2l6ZSgpOwotKyAg Y29uc3QgaW50IGtEYXRhQ2FjaGVMaW5lU2l6ZSA9IENwdUZlYXR1cmVzOjpkY2FjaGVfbGluZV9z aXplKCk7Ci0rICBpbnRwdHJfdCBpY19tYXNrID0ga0luc3RyQ2FjaGVMaW5lU2l6ZSAtIDE7Ci0r ICBpbnRwdHJfdCBkY19tYXNrID0ga0RhdGFDYWNoZUxpbmVTaXplIC0gMTsKLSAgIGJ5dGUqIHN0 YXJ0ID0KLS0gICAgICByZWludGVycHJldF9jYXN0PGJ5dGUqPihyZWludGVycHJldF9jYXN0PGlu dHB0cl90PihidWZmZXIpICYgfm1hc2spOwotKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Ynl0ZSo+ KHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGJ1ZmZlcikgJiB+ZGNfbWFzayk7Ci0gICBieXRl KiBlbmQgPSBzdGF0aWNfY2FzdDxieXRlKj4oYnVmZmVyKSArIHNpemU7Ci0tICBmb3IgKGJ5dGUq IHBvaW50ZXIgPSBzdGFydDsgcG9pbnRlciA8IGVuZDsgcG9pbnRlciArPSBrQ2FjaGVMaW5lU2l6 ZSkgewotLSAgICBfX2FzbV9fKAotKyAgZm9yIChieXRlKiBwb2ludGVyID0gc3RhcnQ7IHBvaW50 ZXIgPCBlbmQ7IHBvaW50ZXIgKz0ga0RhdGFDYWNoZUxpbmVTaXplKSB7Ci0rICAgIF9fYXNtX18g X192b2xhdGlsZV9fKAotICAgICAgICAgImRjYmYgMCwgJTAgIFxuIgotLSAgICAgICAgInN5bmMg ICAgICAgIFxuIgotLSAgICAgICAgImljYmkgMCwgJTAgIFxuIgotLSAgICAgICAgImlzeW5jICAg ICAgIFxuIgotICAgICAgICAgOiAvKiBubyBvdXRwdXQgKi8KLSAgICAgICAgIDogInIiKHBvaW50 ZXIpKTsKLSAgIH0KLSsgIF9fYXNtX18gX192b2xhdGlsZV9fKCJzeW5jIik7Ci0gCi0rICBzdGFy dCA9Ci0rICAgICAgcmVpbnRlcnByZXRfY2FzdDxieXRlKj4ocmVpbnRlcnByZXRfY2FzdDxpbnRw dHJfdD4oYnVmZmVyKSAmIH5pY19tYXNrKTsKLSsgIGZvciAoYnl0ZSogcG9pbnRlciA9IHN0YXJ0 OyBwb2ludGVyIDwgZW5kOyBwb2ludGVyICs9IGtJbnN0ckNhY2hlTGluZVNpemUpIHsKLSsgICAg X19hc21fXyBfX3ZvbGF0aWxlX18oCi0rICAgICAgICAiaWNiaSAwLCAlMCAgXG4iCi0rICAgICAg ICA6IC8qIG5vIG91dHB1dCAqLwotKyAgICAgICAgOiAiciIocG9pbnRlcikpOwotKyAgfQotKyAg X19hc21fXyBfX3ZvbGF0aWxlX18oImlzeW5jIik7Ci0gI2VuZGlmICAvLyAhVVNFX1NJTVVMQVRP UgotIH0KLSB9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKLSB9ICAvLyBuYW1lc3BhY2UgdjgKLSAK LS0jdW5kZWYgSU5TVFJfQU5EX0RBVEFfQ0FDSEVfQ09IRVJFTkNZCi0gI2VuZGlmICAvLyBWOF9U QVJHRVRfQVJDSF9QUEMgfHwgVjhfVEFSR0VUX0FSQ0hfUFBDNjQKLS0tLSAuL2RlcHMvdjgvc3Jj L2NvZGVnZW4vcHBjL2Fzc2VtYmxlci1wcGMuY2Mub3JpZwkyMDIyLTAyLTA4IDA0OjM3OjQ4LjAw MDAwMDAwMCAtMDgwMAotKysrIC4vZGVwcy92OC9zcmMvY29kZWdlbi9wcGMvYXNzZW1ibGVyLXBw Yy5jYwkyMDIyLTAyLTIwIDE3OjIwOjI1LjAxOTU5MTIyNSAtMDgwMAotQEAgLTY1LDYgKzY1LDcg QEAKLSB2b2lkIENwdUZlYXR1cmVzOjpQcm9iZUltcGwoYm9vbCBjcm9zc19jb21waWxlKSB7Ci0g ICBzdXBwb3J0ZWRfIHw9IENwdUZlYXR1cmVzSW1wbGllZEJ5Q29tcGlsZXIoKTsKLSAgIGljYWNo ZV9saW5lX3NpemVfID0gMTI4OwotKyAgZGNhY2hlX2xpbmVfc2l6ZV8gPSAxMjg7Ci0gCi0gICAv LyBPbmx5IHVzZSBzdGF0aWNhbGx5IGRldGVybWluZWQgZmVhdHVyZXMgZm9yIGNyb3NzIGNvbXBp bGUgKHNuYXBzaG90KS4KLSAgIGlmIChjcm9zc19jb21waWxlKSByZXR1cm47Ci1AQCAtNzMsNiAr NzQsOCBAQAotICNpZmRlZiBVU0VfU0lNVUxBVE9SCi0gICAvLyBTaW11bGF0b3IKLSAgIHN1cHBv cnRlZF8gfD0gKDF1IDw8IFBQQ18xMF9QTFVTKTsKLSsgIHN1cHBvcnRlZF8gfD0gKDF1IDw8IElD QUNIRV9TTk9PUCk7Ci0rICBzdXBwb3J0ZWRfIHw9ICgxdSA8PCBJU0VMRUNUKTsKLSAjZWxzZQot ICAgYmFzZTo6Q1BVIGNwdTsKLSAgIGlmIChjcHUucGFydCgpID09IGJhc2U6OkNQVTo6a1BQQ1Bv d2VyMTApIHsKLUBAIC04NSwxNyArODgsMzcgQEAKLSAgICAgc3VwcG9ydGVkXyB8PSAoMXUgPDwg UFBDXzdfUExVUyk7Ci0gICB9IGVsc2UgaWYgKGNwdS5wYXJ0KCkgPT0gYmFzZTo6Q1BVOjprUFBD UG93ZXI2KSB7Ci0gICAgIHN1cHBvcnRlZF8gfD0gKDF1IDw8IFBQQ182X1BMVVMpOwotKyAgfSBl bHNlIGlmIChjcHUucGFydCgpID09IGJhc2U6OkNQVTo6a1BQQ1Bvd2VyNSB8fAotKyAgICAgICAg ICAgICBjcHUucGFydCgpID09IGJhc2U6OkNQVTo6a1BQQ1BBNlQpIHsKLSsgICAgc3VwcG9ydGVk XyB8PSAoMXUgPDwgUFBDXzVfUExVUyk7Ci0rICB9IGVsc2UgaWYgKGNwdS5wYXJ0KCkgPT0gYmFz ZTo6Q1BVOjprUFBDRTY1MDAgfHwKLSsgICAgICAgICAgICAgY3B1LnBhcnQoKSA9PSBiYXNlOjpD UFU6OmtQUENFNTUwMCkgewotKyAgICBzdXBwb3J0ZWRfIHw9ICgxdSA8PCBQUENfN19QTFVTX05Y UCk7ICAgLy8gTlhQLXN1cHBvcnRlZCB2Mi4wNiBmZWF0dXJlcwotKyAgfQotKwotKyAgaWYgKGNw dS5oYXNfaWNhY2hlX3Nub29wKCkpIHsKLSsgICAgc3VwcG9ydGVkXyB8PSAoMXUgPDwgSUNBQ0hF X1NOT09QKTsKLSsgIH0KLSsgIGlmIChjcHUuaGFzX2lzZWwoKSkgewotKyAgICBzdXBwb3J0ZWRf IHw9ICgxdSA8PCBJU0VMRUNUKTsKLSAgIH0KLSAjaWYgVjhfT1NfTElOVVgKLSAgIGlmIChjcHUu aWNhY2hlX2xpbmVfc2l6ZSgpICE9IGJhc2U6OkNQVTo6a1Vua25vd25DYWNoZUxpbmVTaXplKSB7 Ci0gICAgIGljYWNoZV9saW5lX3NpemVfID0gY3B1LmljYWNoZV9saW5lX3NpemUoKTsKLSAgIH0K LSsgIGlmIChjcHUuZGNhY2hlX2xpbmVfc2l6ZSgpICE9IGJhc2U6OkNQVTo6a1Vua25vd25DYWNo ZUxpbmVTaXplKSB7Ci0rICAgIGRjYWNoZV9saW5lX3NpemVfID0gY3B1LmRjYWNoZV9saW5lX3Np emUoKTsKLSsgIH0KLSAjZW5kaWYKLSAjZW5kaWYKLSAgIGlmIChzdXBwb3J0ZWRfICYgKDF1IDw8 IFBQQ18xMF9QTFVTKSkgc3VwcG9ydGVkXyB8PSAoMXUgPDwgUFBDXzlfUExVUyk7Ci0gICBpZiAo c3VwcG9ydGVkXyAmICgxdSA8PCBQUENfOV9QTFVTKSkgc3VwcG9ydGVkXyB8PSAoMXUgPDwgUFBD XzhfUExVUyk7Ci0gICBpZiAoc3VwcG9ydGVkXyAmICgxdSA8PCBQUENfOF9QTFVTKSkgc3VwcG9y dGVkXyB8PSAoMXUgPDwgUFBDXzdfUExVUyk7Ci0tICBpZiAoc3VwcG9ydGVkXyAmICgxdSA8PCBQ UENfN19QTFVTKSkgc3VwcG9ydGVkXyB8PSAoMXUgPDwgUFBDXzZfUExVUyk7Ci0rICBpZiAoc3Vw cG9ydGVkXyAmICgxdSA8PCBQUENfN19QTFVTKSkgewotKyAgICBzdXBwb3J0ZWRfIHw9ICgxdSA8 PCBQUENfN19QTFVTX05YUCk7ICAgLy8gTlhQLXN1cHBvcnRlZCB2Mi4wNiBmZWF0dXJlcwotKyAg ICBzdXBwb3J0ZWRfIHw9ICgxdSA8PCBQUENfNl9QTFVTKTsKLSsgIH0KLSsgIGlmIChzdXBwb3J0 ZWRfICYgKDF1IDw8IFBQQ182X1BMVVMpKSBzdXBwb3J0ZWRfIHw9ICgxdSA8PCBQUENfNV9QTFVT KTsKLSAKLSAgIC8vIFNldCBhIHN0YXRpYyB2YWx1ZSBvbiB3aGV0aGVyIFNpbWQgaXMgc3VwcG9y dGVkLgotICAgLy8gVGhpcyB2YXJpYWJsZSBpcyBvbmx5IHVzZWQgZm9yIGNlcnRhaW4gYXJjaHMg dG8gcXVlcnkgU3VwcG9ydFdhc21TaW1kMTI4KCkKLUBAIC0xMTcsMTEgKzE0MCwxNSBAQAotIH0K LSAKLSB2b2lkIENwdUZlYXR1cmVzOjpQcmludEZlYXR1cmVzKCkgewotKyAgcHJpbnRmKCJQUENf NV9QTFVTPSVkXG4iLCBDcHVGZWF0dXJlczo6SXNTdXBwb3J0ZWQoUFBDXzVfUExVUykpOwotICAg cHJpbnRmKCJQUENfNl9QTFVTPSVkXG4iLCBDcHVGZWF0dXJlczo6SXNTdXBwb3J0ZWQoUFBDXzZf UExVUykpOwotICAgcHJpbnRmKCJQUENfN19QTFVTPSVkXG4iLCBDcHVGZWF0dXJlczo6SXNTdXBw b3J0ZWQoUFBDXzdfUExVUykpOwotICAgcHJpbnRmKCJQUENfOF9QTFVTPSVkXG4iLCBDcHVGZWF0 dXJlczo6SXNTdXBwb3J0ZWQoUFBDXzhfUExVUykpOwotICAgcHJpbnRmKCJQUENfOV9QTFVTPSVk XG4iLCBDcHVGZWF0dXJlczo6SXNTdXBwb3J0ZWQoUFBDXzlfUExVUykpOwotICAgcHJpbnRmKCJQ UENfMTBfUExVUz0lZFxuIiwgQ3B1RmVhdHVyZXM6OklzU3VwcG9ydGVkKFBQQ18xMF9QTFVTKSk7 Ci0rICBwcmludGYoIklDQUNIRV9TTk9PUD0lZFxuIiwgQ3B1RmVhdHVyZXM6OklzU3VwcG9ydGVk KElDQUNIRV9TTk9PUCkpOwotKyAgcHJpbnRmKCJJU0VMRUNUPSVkXG4iLCBDcHVGZWF0dXJlczo6 SXNTdXBwb3J0ZWQoSVNFTEVDVCkpOwotKyAgcHJpbnRmKCJQUENfN19QTFVTX05YUD0lZFxuIiwg Q3B1RmVhdHVyZXM6OklzU3VwcG9ydGVkKFBQQ183X1BMVVNfTlhQKSk7Ci0gfQotIAotIFJlZ2lz dGVyIFRvUmVnaXN0ZXIoaW50IG51bSkgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ub2RlanMvdGVt cGxhdGUgYi9zcmNwa2dzL25vZGVqcy90ZW1wbGF0ZQppbmRleCAxZTYzNmNhMjFjNDYuLjg1MTUy MzI3OGJjYyAxMDA2NDQKLS0tIGEvc3JjcGtncy9ub2RlanMvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9ub2RlanMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdu b2RlanMnCiBwa2duYW1lPW5vZGVqcwotdmVyc2lvbj0xNi4xNS4xCi1yZXZpc2lvbj0yCit2ZXJz aW9uPTE2LjE4LjAKK3JldmlzaW9uPTEKIHdya3NyYz0ibm9kZS12JHt2ZXJzaW9ufSIKICMgTmVl ZCB0aGVzZSBmb3IgaG9zdCB2OCBmb3IgdG9ycXVlLCBzZWUgaHR0cHM6Ly9naXRodWIuY29tL25v ZGVqcy9ub2RlL3B1bGwvMjEwNzkKIGhvc3RtYWtlZGVwZW5kcz0id2hpY2ggcGtnLWNvbmZpZyBw eXRob24zIGxpYmF0b21pYy1kZXZlbCB6bGliLWRldmVsCkBAIC0xNiw3ICsxNiw3IEBAIG1haW50 YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJNSVQi CiBob21lcGFnZT0iaHR0cHM6Ly9ub2RlanMub3JnLyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9ub2Rl anMub3JnL2Rpc3QvdiR7dmVyc2lvbn0vbm9kZS12JHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1 bT0zMDhhZWU3MTQ5YzQwOTJhNTNjODdjMjhlZjQ5ZTIzYThkMTYwNjExOWU3OWFlNjgzMzMwNjJl MmExZjk0MjA4CitjaGVja3N1bT0yNzZjOGE0NjliZDQwMTNjNTg0MmVlNDE2NmZiOWIwMDg3ZTVl ZTI1MmE3YzkzMmQ5N2UyNzRiNzdiYTczZTcwCiBweXRob25fdmVyc2lvbj0zCiAKIGJ1aWxkX29w dGlvbnM9InNzbCBsaWJ1diBpY3UgbmdodHRwMiBjYXJlcyIKQEAgLTI4LDcgKzI4LDcgQEAgZGVz Y19vcHRpb25fY2FyZXM9IkVuYWJsZSBzaGFyZWQgYy1hcmVzIgogYnVpbGRfb3B0aW9uc19kZWZh dWx0PSJzc2wgbGlidXYgaWN1IG5naHR0cDIgY2FyZXMiCiAKIHJlcGxhY2VzPSJpb2pzPj0wIgot Y29uZmxpY3RzPSJub2RlanMtbHRzIG5vZGVqcy1sdHMtMTAiCitjb25mbGljdHM9Im5vZGVqcy1s dHMtMTAiCiBwcm92aWRlcz0ibm9kZWpzLXJ1bnRpbWUtMF8xIgogCiAjIGh0dHBzOi8vYnVpbGQu dm9pZGxpbnV4Lm9yZy9idWlsZGVycy9pNjg2X2J1aWxkZXIvYnVpbGRzLzI3MzI1L3N0ZXBzL3No ZWxsXzMvbG9ncy9zdGRpbwpAQCAtMTAxLDggKzEwMSwyMCBAQCBkb19pbnN0YWxsKCkgewogCiBu b2RlanMtZGV2ZWxfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIChkZXZlbG9wbWVudCBmaWxl cykiCi0JY29uZmxpY3RzPSJub2RlanMtbHRzLWRldmVsIG5vZGVqcy1sdHMtMTAtZGV2ZWwiCisJ Y29uZmxpY3RzPSJub2RlanMtbHRzLTEwLWRldmVsIgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92 ZSB1c3IvaW5jbHVkZQogCX0KIH0KKworbm9kZWpzLWx0c19wYWNrYWdlKCkgeworCWRlcGVuZHM9 IiR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlzaG9ydF9kZXNjKz0iIExU UyIKKwlidWlsZF9zdHlsZT1tZXRhCit9CisKK25vZGVqcy1sdHMtZGV2ZWxfcGFja2FnZSgpIHsK KwlkZXBlbmRzPSIke3NvdXJjZXBrZ30tZGV2ZWw+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJ c2hvcnRfZGVzYys9IiBMVFMgKGRldmVsb3BtZW50IGZpbGVzKSIKKwlidWlsZF9zdHlsZT1tZXRh Cit9CgpGcm9tIGY4NTVmOGEyNWRlOWEzY2ExM2M5ZjNhNTc1MzlmNGEzZDgxYzllMjEgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1pY2hhbCBWYXNpbGVrIDxtaWNoYWxAdmFzaWxlay5j ej4KRGF0ZTogU3VuLCAxNiBPY3QgMjAyMiAxMzowNDoyOSArMDIwMApTdWJqZWN0OiBbUEFUQ0gg Mi8yXSBjaHJvbm9ncmFmOiB1cGRhdGUgdG8gMS4xMC4wLgoKLS0tCiBzcmNwa2dzL2Nocm9ub2dy YWYvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwg MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9ub2dyYWYvdGVtcGxhdGUg Yi9zcmNwa2dzL2Nocm9ub2dyYWYvdGVtcGxhdGUKaW5kZXggNWRmY2MxYzNlZjdjLi5mMDA5M2I1 YTg1MDggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2hyb25vZ3JhZi90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2Nocm9ub2dyYWYvdGVtcGxhdGUKQEAgLTEsMTggKzEsMTggQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2Nocm9ub2dyYWYnCiBwa2duYW1lPWNocm9ub2dyYWYKLXZlcnNpb249MS45LjQKK3Zl cnNpb249MS4xMC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1nbwogZ29faW1wb3J0X3BhdGg9 ImdpdGh1Yi5jb20vaW5mbHV4ZGF0YS8ke3BrZ25hbWV9IgogZ29fcGFja2FnZT0iJHtnb19pbXBv cnRfcGF0aH0vY21kL2Nocm9ub2dyYWYiCiBnb19sZGZsYWdzPSItWCBtYWluLnZlcnNpb249JHt2 ZXJzaW9ufSIKLWhvc3RtYWtlZGVwZW5kcz0iZGVwIGdvLWJpbmRhdGEgbm9kZWpzLWx0cyB5YXJu IgoraG9zdG1ha2VkZXBlbmRzPSJkZXAgZ28tYmluZGF0YSBub2RlanMgeWFybiBweXRob24zIgog c2hvcnRfZGVzYz0iT3BlbiBzb3VyY2UgbW9uaXRvcmluZyBhbmQgdmlzdWFsaXphdGlvbiBVSSBm b3IgdGhlIFRJQ0sgc3RhY2siCiBtYWludGFpbmVyPSJNaWNoYWVsIEFsZHJpZGdlIDxtYWxkcmlk Z2VAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJBR1BMLTMuMC1vci1sYXRlciIKIGhvbWVwYWdl PSJodHRwczovL3d3dy5pbmZsdXhkYXRhLmNvbS90aW1lLXNlcmllcy1wbGF0Zm9ybS9jaHJvbm9n cmFmLyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL2luZmx1eGRhdGEvJHtwa2duYW1l fS9hcmNoaXZlLyR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09ZmYyOTRmMjVhOWRlNTcxNDAw MjRiOTk1Mzk5MmMxYTRkNzllYzg4MTY3YWQyODQzNTY0NWQ4ODhhMDA5NmMyNworY2hlY2tzdW09 NGM5ZWM1NDFhNzczMTRiMTFmMjNmMmVmZjEzOTQ1NjhlYTkxODBmMWYzY2MzZjA5OGNiM2U3OTc3 ZGJmZDdhNQogCiBzeXN0ZW1fYWNjb3VudHM9Il9jaHJvbm9ncmFmIgogX2Nocm9ub2dyYWZfaG9t ZWRpcj0iL3Zhci9saWIvJHtwa2duYW1lfSIK --===============6168907990812495871==--