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 3107 invoked from network); 20 Nov 2022 18:48:31 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 20 Nov 2022 18:48:31 -0000 Content-Type: multipart/mixed; boundary="===============7878754996569359364==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=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 In-Reply-To: References: Date: Sun, 20 Nov 2022 19:48:30 +0100 List-Id: Message-ID: <20221120184830.4NnUTV7iWvzMyX_xirVy4SuH7N6UNsQPf9d7wSayYXw@z> GitHub notification mails are now in MIME to allow UTF8. --===============7878754996569359364== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgcGFwZXI0MiBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vcGFw ZXI0Mi92b2lkLXBhY2thZ2VzIG5vZGUtbHRzLTE2Cmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxp bnV4L3ZvaWQtcGFja2FnZXMvcHVsbC80MDEwNgoKbm9kZWpzOiB1cGRhdGUgdG8gMTYuMTguMCwg bWVyZ2Ugd2l0aCBub2RlanMtbHRzCk5vZGVqcyB2ZXJzaW9uaW5nIHNheXMgdGhhdCBldmVyeSBl dmVuIHJlbGVhc2UgKDEyLCAxNCwgMTYsIDE4KSBpcyBhbiBMVFMgcmVsZWFzZS4gVGhlIGBub2Rl anNgIHBhY2thZ2UgY3VycmVudGx5IHVzZXMgdmVyc2lvbiAxNiB3aGljaCBpcyBhIHN1cHBvcnRl ZCBMVFMgdmVyc2lvbiwgYG5vZGVqcy1sdHNgIHVzZXMgdmVyc2lvbiAxMiB3aGljaCBpcyBFT0wg YW5kIHZlcnkgb2xkLiBNYW55IHBhY2thZ2VzIHVzZSBub2RlanMtbHRzIGZvciBidWlsZGluZywg YnV0IHRoZW4gZGVwZW5kIG9uIHRoZSBub2RlanMgdmlydHVhbCBwYWNrYWdlIHdoaWNoIGRlZmF1 bHRzIHRvIG5vZGVqcywgbWFueSBwYWNrYWdlcyBkb24ndCB3b3JrIHdpdGggb2xkIG5vZGVqcy1s dHMgYW5kIHBlb3BsZSBjb3VsZG4ndCBoYXZlIGJvdGggaW5zdGFsbGVkLiBJZiB3ZSBuZWVkIHRv LCB3ZSBjYW4gYWx3YXlzIHNwbGl0IG5vZGVqcy1sdHMgYWdhaW4sIGJ1dCByaWdodCBub3cgSSBk b24ndCBzZWUgYSByZWFzb24gdG8gZG8gc28uIEFscGluZSBtZXJnZWQgdGhlaXIgbm9kZWpzLWx0 cyBwYWNrYWdlIHRvIG5vZGVqcyBhbmQgcHJvdmlkZXMgbm9kZWpzLWN1cnJlbnQgZm9yIHRoZSBs YXRlc3QgdmVyc2lvbiBmb3IgZGV2ZWxvcG1lbnQuCgpUaGlzIGlzIGEgZHJhZnQgZm9yIG5vdyBm b3IgY29tbWVudHMgYW5kIGZvciBjaGVja2luZyBpZiBldmVyeSBwYWNrYWdlIHRoYXQgdXNlZCBu b2RlanMtbHRzIHN0aWxsIGJ1aWxkcyB3aXRoIG5vZGVqcyAxNi4KCjwhLS0gVW5jb21tZW50IHJl bGV2YW50IHNlY3Rpb25zIGFuZCBkZWxldGUgb3B0aW9ucyB3aGljaCBhcmUgbm90IGFwcGxpY2Fi bGUgLS0+CgojIyMjIFRlc3RpbmcgdGhlIGNoYW5nZXMKLSBJIHRlc3RlZCB0aGUgY2hhbmdlcyBp biB0aGlzIFBSOiAqKk5PKioKCjwhLS0KIyMjIyBOZXcgcGFja2FnZQotIFRoaXMgbmV3IHBhY2th Z2UgY29uZm9ybXMgdG8gdGhlIFtwYWNrYWdlIHJlcXVpcmVtZW50c10oaHR0cHM6Ly9naXRodWIu Y29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQj cGFja2FnZS1yZXF1aXJlbWVudHMpOiAqKllFUyoqfCoqTk8qKgotLT4KCjwhLS0gTm90ZTogSWYg dGhlIGJ1aWxkIGlzIGxpa2VseSB0byB0YWtlIG1vcmUgdGhhbiAyIGhvdXJzLCBwbGVhc2UgYWRk IGNpIHNraXAgdGFnIGFzIGRlc2NyaWJlZCBpbgpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51 eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL0NPTlRSSUJVVElORy5tZCNjb250aW51b3VzLWlu dGVncmF0aW9uCmFuZCB0ZXN0IGF0IGxlYXN0IG9uZSBuYXRpdmUgYnVpbGQgYW5kLCBpZiBzdXBw b3J0ZWQsIGF0IGxlYXN0IG9uZSBjcm9zcyBidWlsZC4KSWdub3JlIHRoaXMgc2VjdGlvbiBpZiB0 aGlzIFBSIGlzIG5vdCBza2lwcGluZyBDSS4KLS0+CjwhLS0KIyMjIyBMb2NhbCBidWlsZCB0ZXN0 aW5nCi0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIG15IG5hdGl2ZSBhcmNoaXRlY3R1cmUs IChBUkNILUxJQkMpCi0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIHRoZXNlIGFyY2hpdGVj dHVyZXMgKGlmIHN1cHBvcnRlZC4gbWFyayBjcm9zc2J1aWxkcyk6CiAgLSBhYXJjaDY0LW11c2wK ICAtIGFybXY3bAogIC0gYXJtdjZsLW11c2wKLS0+CgoKQSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6 Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzQwMTA2LnBhdGNoIGlz IGF0dGFjaGVk --===============7878754996569359364== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-node-lts-16-40106.patch" RnJvbSAzZmY3NTU0YjQ1YzkzODkyMmY1NTVjZjgxMGZjZTUxMzM3NGI2NTEyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNaWNoYWwgVmFzaWxlayA8bWljaGFsQHZhc2lsZWsuY3o+CkRh dGU6IFN1biwgMjAgTm92IDIwMjIgMTk6NDc6MzYgKzAxMDAKU3ViamVjdDogW1BBVENIXSBub2Rl anM6IG1lcmdlIHdpdGggbm9kZWpzLWx0cwoKbm9kZWpzIDE2IGlzIGFuIExUUyB2ZXJzaW9uIGFu ZCBub2RlanMtbHRzIHZlcnNpb24gMTIgaXMgRU9MCi0tLQogc3JjcGtncy9ub2RlanMtbHRzICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyY3BrZ3Mvbm9kZWpzLWx0cy1kZXZl bCAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogLi4uL3BhdGNoZXMvcHBjLWZpeGVzLWZv ci1vbGRlci1tb2RlbHMucGF0Y2ggIHwgODQ3IC0tLS0tLS0tLS0tLS0tLS0tLQogc3JjcGtncy9u b2RlanMtbHRzL3BhdGNoZXMvcHBjMzIucGF0Y2ggICAgICAgIHwgIDIwIC0KIHNyY3BrZ3Mvbm9k ZWpzLWx0cy9wYXRjaGVzL3NoYXJlZC11di5wYXRjaCAgICB8ICAyNSAtCiAuLi4vcGF0Y2hlcy94 eHgtcHBjLWh3Y2FwLW11c2wucGF0Y2ggICAgICAgICAgfCAgMjQgLQogc3JjcGtncy9ub2RlanMt bHRzL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgIHwgMTA0IC0tLQogc3JjcGtncy9ub2RlanMt bHRzL3VwZGF0ZSAgICAgICAgICAgICAgICAgICAgIHwgICAyIC0KIHNyY3BrZ3Mvbm9kZWpzL3Rl bXBsYXRlICAgICAgICAgICAgICAgICAgICAgICB8ICAxOCArLQogOSBmaWxlcyBjaGFuZ2VkLCAx NyBpbnNlcnRpb25zKCspLCAxMDI2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTIwMDAwIHNy Y3BrZ3Mvbm9kZWpzLWx0cwogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvbm9kZWpzLWx0cy9w YXRjaGVzL3BwYy1maXhlcy1mb3Itb2xkZXItbW9kZWxzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9ub2RlanMtbHRzL3BhdGNoZXMvcHBjMzIucGF0Y2gKIGRlbGV0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL25vZGVqcy1sdHMvcGF0Y2hlcy9zaGFyZWQtdXYucGF0Y2gKIGRlbGV0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL25vZGVqcy1sdHMvcGF0Y2hlcy94eHgtcHBjLWh3Y2FwLW11c2wu cGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL25vZGVqcy1sdHMvdGVtcGxhdGUKIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL25vZGVqcy1sdHMvdXBkYXRlCgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9ub2RlanMtbHRzIGIvc3JjcGtncy9ub2RlanMtbHRzCm5ldyBmaWxlIG1vZGUgMTIw MDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uMGM1MjRiNzc1MzA4Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9ub2RlanMtbHRzCkBAIC0wLDAgKzEgQEAKK25vZGVqcwpcIE5vIG5ld2xpbmUgYXQg ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvbm9kZWpzLWx0cy1kZXZlbCBiL3NyY3Br Z3Mvbm9kZWpzLWx0cy1kZXZlbAppbmRleCBjOWE0OTVhMmUzNWIuLjBjNTI0Yjc3NTMwOCAxMjAw MDAKLS0tIGEvc3JjcGtncy9ub2RlanMtbHRzLWRldmVsCisrKyBiL3NyY3BrZ3Mvbm9kZWpzLWx0 cy1kZXZlbApAQCAtMSArMSBAQAotbm9kZWpzLWx0cwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKK25vZGVqcwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3Br Z3Mvbm9kZWpzLWx0cy9wYXRjaGVzL3BwYy1maXhlcy1mb3Itb2xkZXItbW9kZWxzLnBhdGNoIGIv c3JjcGtncy9ub2RlanMtbHRzL3BhdGNoZXMvcHBjLWZpeGVzLWZvci1vbGRlci1tb2RlbHMucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNhMzYzMGYxYWQ0ZC4uMDAwMDAwMDAw MDAwCi0tLSBhL3NyY3BrZ3Mvbm9kZWpzLWx0cy9wYXRjaGVzL3BwYy1maXhlcy1mb3Itb2xkZXIt bW9kZWxzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsODQ3ICswLDAgQEAKLUZpeCBQb3dlclBD IENQVSBkZXRlY3Rpb24gYW5kIGNvZGVnZW4gdG8gd29yayB3aXRoIG1vcmUgcHJvY2Vzc29ycy4K LQotVGhpcyBwYXRjaCBkZWZpbmVzIHRoZSBjb3JyZWN0IG9wdGlvbmFsIFBvd2VyIElTQSBmZWF0 dXJlcyB0aGF0IHRoZQotUFBDIGNvZGUgZ2VuZXJhdG9yIG5lZWRzIGluIG9yZGVyIHRvIHJ1biB3 aXRob3V0IGNyYXNoaW5nIG9uIHYyLjAxCi1hbmQgb2xkZXIgQ1BVcyBzdWNoIGFzIFBQQyA5NzAg KEc1KSBvciBOWFAgZTY1MDAsIGFuZCB0byBydW4gbW9yZQotZWZmaWNpZW50bHkgb24gQ1BVcyB3 aXRoIGZlYXR1cmVzIHRoYXQgd2VyZW4ndCBiZWluZyB1c2VkIGJlZm9yZS4KLQotUG93ZXJQQyBJ U0EgdjIuMDEgYW5kIG9sZGVyIENQVXMgZG9uJ3QgaGF2ZSBGUCByb3VuZCB0byBpbnQgaW5zdHJ1 Y3Rpb25zLAotYW5kIFBvd2VyUEMgSVNBIHYyLjA2IGFuZCBvbGRlciBhcmUgbWlzc2luZyBzdXBw b3J0IGZvciB1bnNpZ25lZCA2NC1iaXQKLXRvL2Zyb20gZG91YmxlLCBhcyB3ZWxsIGFzIGludGVn ZXIgdG8vZnJvbSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0LgotCi1BZGQgYSBuZXcgRlBfUk9VTkRf VE9fSU5UIENQVSBmZWF0dXJlIHRvIGRldGVybWluZSB3aGV0aGVyIHRvIGdlbmVyYXRlCi1GUCBy b3VuZCB0byBpbnQsIGFuZCBhZGQgYSBuZXcgUFBDXzdfUExVUyBmZWF0dXJlIHRvIGRldGVybWlu ZSB3aGV0aGVyCi10byB1c2UgdGhlIHYyLjA2IEZQUiBjb252ZXJzaW9uIGluc3RydWN0aW9ucyBv ciBnZW5lcmF0ZSBhbiBhbHRlcm5hdGUKLXNlcXVlbmNlIHRvIGhhbmRsZSBsYXJnZSA2NC1iaXQg dW5zaWduZWQgaW50cywgYW5kIHNpbmdsZS1wcmVjaXNpb24gCi11c2luZyB0aGUgdjIuMDEgaW5z dHJ1Y3Rpb25zIHdpdGggaGFuZGxpbmcgZm9yIGxhcmdlIHVpbnQ2NF90IHZhbHVlcwotYXMgd2Vs bCBhcyByb3VuZGluZyByZXN1bHRzIGZyb20gZG91YmxlIHRvIHNpbmdsZS1wcmVjaXNpb24uCi0K LUFsc28gYWRkIGEgbmV3IFBPUF9DT1VOVCBmZWF0dXJlIGZvciB0aGUgcG9wY250IG9wY29kZXMg YWRkZWQgaW4gdjIuMDYsCi13aGljaCBhcmUgYWxzbyBwcmVzZW50IGluIHRoZSBOWFAgZTU1MDAg YW5kIGU2NTAwIGNvcmVzLCB3aGljaCBhcmUKLW90aGVyd2lzZSBtaXNzaW5nIG1hbnkgb2YgdGhl IGZlYXR1cmVzIGFkZGVkIHNpbmNlIHYyLjAxLgotCi1CeSBkZWZpbmluZyBhbiBJQ0FDSEVfU05P T1AgZmVhdHVyZSBiaXQgdG8gcmVwbGFjZSB0aGUgcG9vcmx5LW5hbWVkCi0iTFdTWU5DIiwgdGhl IG1lYW5pbmcgb2YgdGhlIGluc3RydWN0aW9uIGNhY2hlIGZsdXNoaW5nIGZhc3QgcGF0aCwKLWFu ZCB0aGUgQ1BVcyB0aGF0IGNhbiB1c2UgaXQsIGFyZSBtb3JlIGNsZWFybHkgZGVmaW5lZC4gSW4g YWRkaXRpb24sCi1mb3IgdGhlIG90aGVyIFBvd2VyUEMgY2hpcHMsIHRoZSBsb29wIHRvIGZsdXNo IHRoZSBkYXRhIGFuZCBpbnN0cnVjdGlvbgotY2FjaGUgYmxvY2tzIGhhcyBiZWVuIHNwbGl0IGlu dG8gdHdvIGxvb3BzLCB3aXRoIGEgc2luZ2xlICJzeW5jIiBhbmQKLSJpc3luYyIgYWZ0ZXIgZWFj aCBsb29wLCB3aGljaCBzaG91bGQgYmUgbW9yZSBlZmZpY2llbnQsIGFuZCBhbHNvIGhhbmRsZXMK LXRoZSBmZXcgQ1BVcyB3aXRoIGRpZmZlcmluZyBkYXRhIGFuZCBpbnN0cnVjdGlvbiBjYWNoZSBs aW5lIHNpemVzLgotCi1JbiB0aGUgbWFjcm8gYXNzZW1ibGVyIG1ldGhvZHMsIGluIGFkZGl0aW9u IHRvIHByb3ZpZGluZyBhbiBhbHRlcm5hdGUKLXBhdGggZm9yIEZQIGNvbnZlcnNpb24gb3Bjb2Rl cyBhZGRlZCBpbiBQT1dFUjcgKElTQSB2Mi4wNiksIHVubmVjZXNzYXJ5Ci1pbnN0cnVjdGlvbnMg dG8gbW92ZSBzcCBkb3duIGFuZCB0aGVuIGltbWVkaWF0ZWx5IGJhY2sgdXAgd2VyZSByZXBsYWNl ZAotd2l0aCBuZWdhdGl2ZSBvZmZzZXRzIGZyb20gdGhlIGN1cnJlbnQgc3AuIFRoaXMgc2hvdWxk IGJlIGZhc3RlciwgYW5kIGFsc28KLXNwIGlzIHN1cHBvc2VkIHRvIHBvaW50IHRvIGEgYmFjayBj aGFpbiBhdCBhbGwgdGltZXMgKFY4IG1heSBub3QgZG8gdGhpcykuCi0KLVRoaXMgcGF0Y2ggYWxz byBmaXhlcyBwcGM2NCBiaWctZW5kaWFuIEVMRnYxIGJ1aWxkcyAobm90IG5lZWRlZCBmb3IgVm9p ZCkuCi0KLS0tLSBhL2RlcHMvdjgvc3JjL2Jhc2UvY3B1LmNjCTIwMjItMDItMTUgMjE6MTE6NDYu MjkxMzg3NDU3IC0wODAwCi0rKysgYi9kZXBzL3Y4L3NyYy9iYXNlL2NwdS5jYwkyMDIyLTAyLTE3 IDIzOjAxOjQwLjYyNDU5NzUyMyAtMDgwMAotQEAgLTEwLDcgKzEwLDcgQEAKLSAjaWYgVjhfT1Nf TElOVVgKLSAjaW5jbHVkZSA8bGludXgvYXV4dmVjLmg+ICAvLyBBVF9IV0NBUAotICNlbmRpZgot LSNpZiBWOF9HTElCQ19QUkVSRVEoMiwgMTYpCi0rI2lmIFY4X0dMSUJDX1BSRVJFUSgyLCAxNikg fHwgKFY4X09TX0xJTlVYICYmIFY4X0hPU1RfQVJDSF9QUEMpCi0gI2luY2x1ZGUgPHN5cy9hdXh2 Lmg+ICAvLyBnZXRhdXh2YWwoKQotICNlbmRpZgotICNpZiBWOF9PU19RTlgKLUBAIC02MTEsNTcg KzYxMSw1NiBAQAotIAotICNpZm5kZWYgVVNFX1NJTVVMQVRPUgotICNpZiBWOF9PU19MSU5VWAot LSAgLy8gUmVhZCBwcm9jZXNzb3IgaW5mbyBmcm9tIC9wcm9jL3NlbGYvYXV4di4KLS0gIGNoYXIq IGF1eHZfY3B1X3R5cGUgPSBudWxscHRyOwotLSAgRklMRSogZnAgPSBmb3BlbigiL3Byb2Mvc2Vs Zi9hdXh2IiwgInIiKTsKLS0gIGlmIChmcCAhPSBudWxscHRyKSB7Ci0tI2lmIFY4X1RBUkdFVF9B UkNIX1BQQzY0Ci0tICAgIEVsZjY0X2F1eHZfdCBlbnRyeTsKLS0jZWxzZQotLSAgICBFbGYzMl9h dXh2X3QgZW50cnk7Ci0tI2VuZGlmCi0tICAgIGZvciAoOzspIHsKLS0gICAgICBzaXplX3QgbiA9 IGZyZWFkKCZlbnRyeSwgc2l6ZW9mKGVudHJ5KSwgMSwgZnApOwotLSAgICAgIGlmIChuID09IDAg fHwgZW50cnkuYV90eXBlID09IEFUX05VTEwpIHsKLS0gICAgICAgIGJyZWFrOwotLSAgICAgIH0K LS0gICAgICBzd2l0Y2ggKGVudHJ5LmFfdHlwZSkgewotLSAgICAgICAgY2FzZSBBVF9QTEFURk9S TToKLS0gICAgICAgICAgYXV4dl9jcHVfdHlwZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGVu dHJ5LmFfdW4uYV92YWwpOwotLSAgICAgICAgICBicmVhazsKLS0gICAgICAgIGNhc2UgQVRfSUNB Q0hFQlNJWkU6Ci0tICAgICAgICAgIGljYWNoZV9saW5lX3NpemVfID0gZW50cnkuYV91bi5hX3Zh bDsKLS0gICAgICAgICAgYnJlYWs7Ci0tICAgICAgICBjYXNlIEFUX0RDQUNIRUJTSVpFOgotLSAg ICAgICAgICBkY2FjaGVfbGluZV9zaXplXyA9IGVudHJ5LmFfdW4uYV92YWw7Ci0tICAgICAgICAg IGJyZWFrOwotLSAgICAgIH0KLS0gICAgfQotLSAgICBmY2xvc2UoZnApOwotLSAgfQotKyAgLy8g 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 TFRJVkVDKTsKLSAKLSAgIHBhcnRfID0gLTE7Ci0tICBpZiAoYXV4dl9jcHVfdHlwZSkgewotLSAg ICBpZiAoc3RyY21wKGF1eHZfY3B1X3R5cGUsICJwb3dlcjEwIikgPT0gMCkgewotLSAgICAgIHBh cnRfID0gUFBDX1BPV0VSMTA7Ci0tICAgIH0KLS0gICAgZWxzZSBpZiAoc3RyY21wKGF1eHZfY3B1 X3R5cGUsICJwb3dlcjkiKSA9PSAwKSB7Ci0tICAgICAgcGFydF8gPSBQUENfUE9XRVI5OwotLSAg ICB9IGVsc2UgaWYgKHN0cmNtcChhdXh2X2NwdV90eXBlLCAicG93ZXI4IikgPT0gMCkgewotLSAg ICAgIHBhcnRfID0gUFBDX1BPV0VSODsKLS0gICAgfSBlbHNlIGlmIChzdHJjbXAoYXV4dl9jcHVf dHlwZSwgInBvd2VyNyIpID09IDApIHsKLS0gICAgICBwYXJ0XyA9IFBQQ19QT1dFUjc7Ci0tICAg IH0gZWxzZSBpZiAoc3RyY21wKGF1eHZfY3B1X3R5cGUsICJwb3dlcjYiKSA9PSAwKSB7Ci0tICAg ICAgcGFydF8gPSBQUENfUE9XRVI2OwotLSAgICB9IGVsc2UgaWYgKHN0cmNtcChhdXh2X2NwdV90 eXBlLCAicG93ZXI1IikgPT0gMCkgewotLSAgICAgIHBhcnRfID0gUFBDX1BPV0VSNTsKLS0gICAg fSBlbHNlIGlmIChzdHJjbXAoYXV4dl9jcHVfdHlwZSwgInBwYzk3MCIpID09IDApIHsKLS0gICAg ICBwYXJ0XyA9IFBQQ19HNTsKLS0gICAgfSBlbHNlIGlmIChzdHJjbXAoYXV4dl9jcHVfdHlwZSwg InBwYzc0NTAiKSA9PSAwKSB7Ci0tICAgICAgcGFydF8gPSBQUENfRzQ7Ci0tICAgIH0gZWxzZSBp ZiAoc3RyY21wKGF1eHZfY3B1X3R5cGUsICJwYTZ0IikgPT0gMCkgewotLSAgICAgIHBhcnRfID0g UFBDX1BBNlQ7Ci0tICAgIH0KLSsgIGlmIChod2NhcDIgJiBQUENfRkVBVFVSRTJfQVJDSF8zXzEp IHsKLSsgICAgcGFydF8gPSBQUENfUE9XRVIxMDsKLSsgIH0gZWxzZSBpZiAoaHdjYXAyICYgUFBD X0ZFQVRVUkUyX0FSQ0hfM18wMCkgewotKyAgICBwYXJ0XyA9IFBQQ19QT1dFUjk7Ci0rICB9IGVs c2UgaWYgKGh3Y2FwMiAmIFBQQ19GRUFUVVJFMl9BUkNIXzJfMDcpIHsKLSsgICAgcGFydF8gPSBQ UENfUE9XRVI4OwotKyAgfSBlbHNlIGlmIChod2NhcCAmIFBQQ19GRUFUVVJFX0FSQ0hfMl8wNikg ewotKyAgICBwYXJ0XyA9IFBQQ19QT1dFUjc7Ci0rICB9IGVsc2UgaWYgKGh3Y2FwICYgUFBDX0ZF QVRVUkVfQVJDSF8yXzA1KSB7Ci0rICAgIHBhcnRfID0gUFBDX1BPV0VSNjsKLSsgIH0gZWxzZSBp ZiAoaHdjYXAgJiAoUFBDX0ZFQVRVUkVfUE9XRVI1IHwgUFBDX0ZFQVRVUkVfUE9XRVI1X1BMVVMp KSB7Ci0rICAgIHBhcnRfID0gUFBDX1BPV0VSNTsKLSsgIH0gZWxzZSBpZiAoaHdjYXAgJiBQUENf RkVBVFVSRV9QQTZUKSB7Ci0rICAgIHBhcnRfID0gUFBDX1BBNlQ7Ci0rICB9IGVsc2UgaWYgKHN0 cmNtcChwbGF0Zm9ybSwgInBwY2U2NTAwIikgPT0gMCkgewotKyAgICBwYXJ0XyA9IFBQQ19FNjUw MDsKLSsgIH0gZWxzZSBpZiAoc3RyY21wKHBsYXRmb3JtLCAicHBjZTU1MDAiKSA9PSAwKSB7Ci0r ICAgIHBhcnRfID0gUFBDX0U1NTAwOwotKyAgfSBlbHNlIGlmICgoaHdjYXAgJiBrSHdjYXBNYXNr UFBDRzUpID09IGtId2NhcE1hc2tQUENHNSkgewotKyAgICBwYXJ0XyA9IFBQQ19HNTsKLSsgIH0g ZWxzZSBpZiAoaHdjYXAgJiBQUENfRkVBVFVSRV9IQVNfQUxUSVZFQykgewotKyAgICBwYXJ0XyA9 IFBQQ19HNDsKLSsgIH0gZWxzZSB7Ci0rICAgIHBhcnRfID0gUFBDX0czOwotICAgfQotIAotICNl bGlmIFY4X09TX0FJWAotQEAgLTY4Miw5ICs2ODEsMTMgQEAKLSAgICAgICBwYXJ0XyA9IFBQQ19Q T1dFUjY7Ci0gICAgICAgYnJlYWs7Ci0gICAgIGNhc2UgUE9XRVJfNToKLSsgICAgZGVmYXVsdDoK LSAgICAgICBwYXJ0XyA9IFBQQ19QT1dFUjU7Ci0gICAgICAgYnJlYWs7Ci0gICB9Ci0rCi0rICBo YXNfaWNhY2hlX3Nub29wXyA9IHRydWU7Ci0rICBoYXNfaXNlbF8gPSAocGFydF8gIT0gUFBDX1BP V0VSNSk7ICAgIC8vIGlzZWwgd2FzIGFkZGVkIGluIFBPV0VSNSsgKHYyLjAzKQotICNlbmRpZiAg Ly8gVjhfT1NfQUlYCi0gI2VuZGlmICAvLyAhVVNFX1NJTVVMQVRPUgotICNlbmRpZiAgLy8gVjhf SE9TVF9BUkNIX1BQQwotLS0tIGEvZGVwcy92OC9zcmMvYmFzZS9jcHUuaAkyMDIyLTAyLTE1IDIx OjExOjQ2LjI5MTM4NzQ1NyAtMDgwMAotKysrIGIvZGVwcy92OC9zcmMvYmFzZS9jcHUuaAkyMDIy LTAyLTE3IDE5OjU0OjA4Ljc2ODYxNDgwNSAtMDgwMAotQEAgLTcxLDkgKzcxLDEyIEBACi0gICAg IFBQQ19QT1dFUjgsCi0gICAgIFBQQ19QT1dFUjksCi0gICAgIFBQQ19QT1dFUjEwLAotKyAgICBQ UENfRzMsCi0gICAgIFBQQ19HNCwKLSAgICAgUFBDX0c1LAotLSAgICBQUENfUEE2VAotKyAgICBQ UENfUEE2VCwKLSsgICAgUFBDX0U1NTAwLAotKyAgICBQUENfRTY1MDAKLSAgIH07Ci0gCi0gICAv LyBHZW5lcmFsIGZlYXR1cmVzCi1AQCAtMTE2LDYgKzExOSwxMCBAQAotICAgYm9vbCBpc19mcDY0 X21vZGUoKSBjb25zdCB7IHJldHVybiBpc19mcDY0X21vZGVfOyB9Ci0gICBib29sIGhhc19tc2Eo KSBjb25zdCB7IHJldHVybiBoYXNfbXNhXzsgfQotIAotKyAgLy8gUG93ZXJQQyBmZWF0dXJlcwot KyAgYm9vbCBoYXNfaWNhY2hlX3Nub29wKCkgY29uc3QgeyByZXR1cm4gaGFzX2ljYWNoZV9zbm9v cF87IH0KLSsgIGJvb2wgaGFzX2lzZWwoKSBjb25zdCB7IHJldHVybiBoYXNfaXNlbF87IH0KLSsK LSAgcHJpdmF0ZToKLSAgIGNoYXIgdmVuZG9yX1sxM107Ci0gICBpbnQgc3RlcHBpbmdfOwotQEAg LTE1Nyw2ICsxNjQsOCBAQAotICAgYm9vbCBpc19mcDY0X21vZGVfOwotICAgYm9vbCBoYXNfbm9u X3N0b3BfdGltZV9zdGFtcF9jb3VudGVyXzsKLSAgIGJvb2wgaGFzX21zYV87Ci0rICBib29sIGhh c19pY2FjaGVfc25vb3BfOwotKyAgYm9vbCBoYXNfaXNlbF87Ci0gfTsKLSAKLSB9ICAvLyBuYW1l c3BhY2UgYmFzZQotLS0tIGEvZGVwcy92OC9zcmMvY29kZWdlbi9wcGMvbWFjcm8tYXNzZW1ibGVy LXBwYy5jYwkyMDIyLTAyLTAxIDEwOjUzOjA5LjAwMDAwMDAwMCAtMDgwMAotKysrIGIvZGVwcy92 OC9zcmMvY29kZWdlbi9wcGMvbWFjcm8tYXNzZW1ibGVyLXBwYy5jYwkyMDIyLTAyLTE4IDIyOjU1 OjM2LjY3NjQ2MTM0MyAtMDgwMAotQEAgLTcwNiwxMyArNzA2LDI1IEBACi0gCi0gdm9pZCBUdXJi b0Fzc2VtYmxlcjo6Q29udmVydEludFRvRmxvYXQoUmVnaXN0ZXIgc3JjLCBEb3VibGVSZWdpc3Rl ciBkc3QpIHsKLSAgIE1vdkludFRvRG91YmxlKGRzdCwgc3JjLCByMCk7Ci0tICBmY2ZpZHMoZHN0 LCBkc3QpOwotKwotKyAgaWYgKENwdUZlYXR1cmVzOjpJc1N1cHBvcnRlZChQUENfN19QTFVTKSkg ewotKyAgICBmY2ZpZHMoZHN0LCBkc3QpOwotKyAgfSBlbHNlIHsKLSsgICAgZmNmaWQoZHN0LCBk c3QpOwotKyAgICBmcnNwKGRzdCwgZHN0KTsKLSsgIH0KLSB9Ci0gCi0gdm9pZCBUdXJib0Fzc2Vt Ymxlcjo6Q29udmVydFVuc2lnbmVkSW50VG9GbG9hdChSZWdpc3RlciBzcmMsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb3VibGVSZWdpc3RlciBkc3Qp IHsKLSAgIE1vdlVuc2lnbmVkSW50VG9Eb3VibGUoZHN0LCBzcmMsIHIwKTsKLS0gIGZjZmlkcyhk c3QsIGRzdCk7Ci0rCi0rICBpZiAoQ3B1RmVhdHVyZXM6OklzU3VwcG9ydGVkKFBQQ183X1BMVVMp KSB7Ci0rICAgIGZjZmlkcyhkc3QsIGRzdCk7Ci0rICB9IGVsc2UgewotKyAgICBmY2ZpZChkc3Qs IGRzdCk7Ci0rICAgIGZyc3AoZHN0LCBkc3QpOwotKyAgfQotIH0KLSAKLSAjaWYgVjhfVEFSR0VU X0FSQ0hfUFBDNjQKLUBAIC03MjQsMjAgKzczNiw1MiBAQAotIAotIHZvaWQgVHVyYm9Bc3NlbWJs ZXI6OkNvbnZlcnRVbnNpZ25lZEludDY0VG9GbG9hdChSZWdpc3RlciBzcmMsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvdWJsZVJlZ2lzdGVyIGRv dWJsZV9kc3QpIHsKLS0gIE1vdkludDY0VG9Eb3VibGUoZG91YmxlX2RzdCwgc3JjKTsKLS0gIGZj ZmlkdXMoZG91YmxlX2RzdCwgZG91YmxlX2RzdCk7Ci0rICBpZiAoQ3B1RmVhdHVyZXM6OklzU3Vw cG9ydGVkKFBQQ183X1BMVVMpKSB7Ci0rICAgIE1vdkludDY0VG9Eb3VibGUoZG91YmxlX2RzdCwg c3JjKTsKLSsgICAgZmNmaWR1cyhkb3VibGVfZHN0LCBkb3VibGVfZHN0KTsKLSsgIH0gZWxzZSB7 Ci0rICAgIENvbnZlcnRVbnNpZ25lZEludDY0VG9Eb3VibGUoc3JjLCBkb3VibGVfZHN0KTsKLSsg ICAgZnJzcChkb3VibGVfZHN0LCBkb3VibGVfZHN0KTsKLSsgIH0KLSB9Ci0gCi0gdm9pZCBUdXJi b0Fzc2VtYmxlcjo6Q29udmVydFVuc2lnbmVkSW50NjRUb0RvdWJsZShSZWdpc3RlciBzcmMsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb3VibGVS ZWdpc3RlciBkb3VibGVfZHN0KSB7Ci0tICBNb3ZJbnQ2NFRvRG91YmxlKGRvdWJsZV9kc3QsIHNy Yyk7Ci0tICBmY2ZpZHUoZG91YmxlX2RzdCwgZG91YmxlX2RzdCk7Ci0rICBpZiAoQ3B1RmVhdHVy ZXM6OklzU3VwcG9ydGVkKFBQQ183X1BMVVMpKSB7Ci0rICAgIE1vdkludDY0VG9Eb3VibGUoZG91 YmxlX2RzdCwgc3JjKTsKLSsgICAgZmNmaWR1KGRvdWJsZV9kc3QsIGRvdWJsZV9kc3QpOwotKyAg fSBlbHNlIHsKLSsgICAgTGFiZWwgbmVnYXRpdmU7Ci0rICAgIExhYmVsIGRvbmU7Ci0rICAgIGNt cGkoc3JjLCBPcGVyYW5kOjpaZXJvKCkpOwotKyAgICBibHQoJm5lZ2F0aXZlKTsKLSsgICAgc3Rk KHNyYywgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0rICAgIG5vcChHUk9VUF9FTkRJ TkdfTk9QKTsgIC8vIExIUy9SQVcgb3B0aW1pemF0aW9uCi0rICAgIGxmZChkb3VibGVfZHN0LCBN ZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUpKTsKLSsgICAgZmNmaWQoZG91YmxlX2RzdCwgZG91 YmxlX2RzdCk7Ci0rICAgIGIoJmRvbmUpOwotKyAgICBiaW5kKCZuZWdhdGl2ZSk7Ci0rICAgIC8v IE5vdGU6IEdDQyBzYXZlcyB0aGUgbG93ZXN0IGJpdCwgdGhlbiBPUnMgaXQgYWZ0ZXIgc2hpZnRp bmcgcmlnaHQgMSBiaXQsCi0rICAgIC8vIHByZXN1bWFibHkgZm9yIGJldHRlciByb3VuZGluZy4g VGhpcyB2ZXJzaW9uIG9ubHkgc2hpZnRzIHJpZ2h0IDEgYml0LgotKyAgICBzcmRpKHIwLCBzcmMs IE9wZXJhbmQoMSkpOwotKyAgICBzdGQocjAsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkp OwotKyAgICBub3AoR1JPVVBfRU5ESU5HX05PUCk7ICAvLyBMSFMvUkFXIG9wdGltaXphdGlvbgot KyAgICBsZmQoZG91YmxlX2RzdCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0rICAg IGZjZmlkKGRvdWJsZV9kc3QsIGRvdWJsZV9kc3QpOwotKyAgICBmYWRkKGRvdWJsZV9kc3QsIGRv dWJsZV9kc3QsIGRvdWJsZV9kc3QpOwotKyAgICBiaW5kKCZkb25lKTsKLSsgICB9Ci0gfQotIAot IHZvaWQgVHVyYm9Bc3NlbWJsZXI6OkNvbnZlcnRJbnQ2NFRvRmxvYXQoUmVnaXN0ZXIgc3JjLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG91YmxlUmVnaXN0ZXIg ZG91YmxlX2RzdCkgewotICAgTW92SW50NjRUb0RvdWJsZShkb3VibGVfZHN0LCBzcmMpOwotLSAg ZmNmaWRzKGRvdWJsZV9kc3QsIGRvdWJsZV9kc3QpOwotKyAgaWYgKENwdUZlYXR1cmVzOjpJc1N1 cHBvcnRlZChQUENfN19QTFVTKSkgewotKyAgICBmY2ZpZHMoZG91YmxlX2RzdCwgZG91YmxlX2Rz dCk7Ci0rICB9IGVsc2UgewotKyAgICBmY2ZpZChkb3VibGVfZHN0LCBkb3VibGVfZHN0KTsKLSsg ICAgZnJzcChkb3VibGVfZHN0LCBkb3VibGVfZHN0KTsKLSsgIH0KLSB9Ci0gI2VuZGlmCi0gCi1A QCAtNzY3LDE1ICs4MTEsNTYgQEAKLSB2b2lkIFR1cmJvQXNzZW1ibGVyOjpDb252ZXJ0RG91Ymxl VG9VbnNpZ25lZEludDY0KAotICAgICBjb25zdCBEb3VibGVSZWdpc3RlciBkb3VibGVfaW5wdXQs IGNvbnN0IFJlZ2lzdGVyIGRzdCwKLSAgICAgY29uc3QgRG91YmxlUmVnaXN0ZXIgZG91YmxlX2Rz dCwgRlBSb3VuZGluZ01vZGUgcm91bmRpbmdfbW9kZSkgewotLSAgaWYgKHJvdW5kaW5nX21vZGUg PT0ga1JvdW5kVG9aZXJvKSB7Ci0tICAgIGZjdGlkdXooZG91YmxlX2RzdCwgZG91YmxlX2lucHV0 KTsKLSsgIGlmIChDcHVGZWF0dXJlczo6SXNTdXBwb3J0ZWQoUFBDXzdfUExVUykpIHsKLSsgICAg aWYgKHJvdW5kaW5nX21vZGUgPT0ga1JvdW5kVG9aZXJvKSB7Ci0rICAgICAgZmN0aWR1eihkb3Vi bGVfZHN0LCBkb3VibGVfaW5wdXQpOwotKyAgICB9IGVsc2UgewotKyAgICAgIFNldFJvdW5kaW5n TW9kZShyb3VuZGluZ19tb2RlKTsKLSsgICAgICBmY3RpZHUoZG91YmxlX2RzdCwgZG91YmxlX2lu cHV0KTsKLSsgICAgICBSZXNldFJvdW5kaW5nTW9kZSgpOwotKyAgICB9Ci0rCi0rICAgIE1vdkRv dWJsZVRvSW50NjQoZHN0LCBkb3VibGVfZHN0KTsKLSAgIH0gZWxzZSB7Ci0tICAgIFNldFJvdW5k aW5nTW9kZShyb3VuZGluZ19tb2RlKTsKLS0gICAgZmN0aWR1KGRvdWJsZV9kc3QsIGRvdWJsZV9p bnB1dCk7Ci0tICAgIFJlc2V0Um91bmRpbmdNb2RlKCk7Ci0rICAgIExhYmVsIHNhZmVfc2l6ZTsK LSsgICAgTGFiZWwgZG9uZTsKLSsgICAgbW92KGRzdCwgT3BlcmFuZCgxNTkzODM1NTIwKSk7ICAv LyBiaXQgcGF0dGVybiBmb3IgMl42MyBhcyBhIGZsb2F0Ci0rICAgIHN0dyhkc3QsIE1lbU9wZXJh bmQoc3AsIC1rRmxvYXRTaXplKSk7Ci0rICAgIG5vcChHUk9VUF9FTkRJTkdfTk9QKTsgIC8vIExI Uy9SQVcgb3B0aW1pemF0aW9uCi0rICAgIGxmcyhkb3VibGVfZHN0LCBNZW1PcGVyYW5kKHNwLCAt a0Zsb2F0U2l6ZSkpOwotKyAgICBmY21wdShkb3VibGVfaW5wdXQsIGRvdWJsZV9kc3QpOwotKyAg ICBibHQoJnNhZmVfc2l6ZSk7Ci0rICAgIC8vIFN1YnRyYWN0IDJeNjMsIHRoZW4gT1IgdGhlIHRv cCBiaXQgb2YgdGhlIHVpbnQ2NCB0byBhZGQgYmFjawotKyAgICBmc3ViKGRvdWJsZV9kc3QsIGRv dWJsZV9pbnB1dCwgZG91YmxlX2RzdCk7Ci0rICAgIGlmIChyb3VuZGluZ19tb2RlID09IGtSb3Vu ZFRvWmVybykgewotKyAgICAgIGZjdGlkeihkb3VibGVfZHN0LCBkb3VibGVfZHN0KTsKLSsgICAg fSBlbHNlIHsKLSsgICAgICBTZXRSb3VuZGluZ01vZGUocm91bmRpbmdfbW9kZSk7Ci0rICAgICAg ZmN0aWQoZG91YmxlX2RzdCwgZG91YmxlX2RzdCk7Ci0rICAgICAgUmVzZXRSb3VuZGluZ01vZGUo KTsKLSsgICAgfQotKyAgICAvLyBzZXQgcjAgdG8gLTEsIHRoZW4gY2xlYXIgYWxsIGJ1dCB0aGUg TVNCLgotKyAgICBtb3YocjAsIE9wZXJhbmQoLTEpKTsKLSsgICAgcmxkaWNyKHIwLCByMCwgMCwg MCk7Ci0rICAgIHN0ZmQoZG91YmxlX2RzdCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7 Ci0rICAgIG5vcChHUk9VUF9FTkRJTkdfTk9QKTsgIC8vIExIUy9SQVcgb3B0aW1pemF0aW9uCi0r ICAgIGxkKGRzdCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0rICAgIHhvcl8oZHN0 LCBkc3QsIHIwKTsKLSsgICAgYigmZG9uZSk7Ci0rICAgIC8vIEhhbmRsaW5nIGZvciB2YWx1ZXMg c21hbGxlciB0aGFuIDJeNjMuCi0rICAgIGJpbmQoJnNhZmVfc2l6ZSk7Ci0rICAgIGlmIChyb3Vu ZGluZ19tb2RlID09IGtSb3VuZFRvWmVybykgewotKyAgICAgIGZjdGlkeihkb3VibGVfZHN0LCBk b3VibGVfaW5wdXQpOwotKyAgICB9IGVsc2UgewotKyAgICAgIFNldFJvdW5kaW5nTW9kZShyb3Vu ZGluZ19tb2RlKTsKLSsgICAgICBmY3RpZChkb3VibGVfZHN0LCBkb3VibGVfaW5wdXQpOwotKyAg ICAgIFJlc2V0Um91bmRpbmdNb2RlKCk7Ci0rICAgIH0KLSsgICAgc3RmZChkb3VibGVfZHN0LCBN ZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUpKTsKLSsgICAgbm9wKEdST1VQX0VORElOR19OT1Ap OyAgLy8gTEhTL1JBVyBvcHRpbWl6YXRpb24KLSsgICAgbGQoZHN0LCBNZW1PcGVyYW5kKHNwLCAt a0RvdWJsZVNpemUpKTsKLSsgICAgYmluZCgmZG9uZSk7Ci0gICB9Ci0tCi0tICBNb3ZEb3VibGVU b0ludDY0KGRzdCwgZG91YmxlX2RzdCk7Ci0gfQotICNlbmRpZgotIAotQEAgLTIwOTcsMTkgKzIx ODIsMTcgQEAKLSAgIH0KLSAjZW5kaWYKLSAKLS0gIGFkZGkoc3AsIHNwLCBPcGVyYW5kKC1rRG91 YmxlU2l6ZSkpOwotICNpZiBWOF9UQVJHRVRfQVJDSF9QUEM2NAotICAgbW92KHNjcmF0Y2gsIE9w ZXJhbmQobGl0VmFsLml2YWwpKTsKLS0gIHN0ZChzY3JhdGNoLCBNZW1PcGVyYW5kKHNwKSk7Ci0r ICBzdGQoc2NyYXRjaCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0gI2Vsc2UKLSAg IExvYWRJbnRMaXRlcmFsKHNjcmF0Y2gsIGxpdFZhbC5pdmFsWzBdKTsKLS0gIHN0dyhzY3JhdGNo LCBNZW1PcGVyYW5kKHNwLCAwKSk7Ci0rICBzdHcoc2NyYXRjaCwgTWVtT3BlcmFuZChzcCwgLWtE b3VibGVTaXplKSk7Ci0gICBMb2FkSW50TGl0ZXJhbChzY3JhdGNoLCBsaXRWYWwuaXZhbFsxXSk7 Ci0tICBzdHcoc2NyYXRjaCwgTWVtT3BlcmFuZChzcCwgNCkpOwotKyAgc3R3KHNjcmF0Y2gsIE1l bU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSArIDQpKTsKLSAjZW5kaWYKLSAgIG5vcChHUk9VUF9F TkRJTkdfTk9QKTsgIC8vIExIUy9SQVcgb3B0aW1pemF0aW9uCi0tICBsZmQocmVzdWx0LCBNZW1P cGVyYW5kKHNwLCAwKSk7Ci0tICBhZGRpKHNwLCBzcCwgT3BlcmFuZChrRG91YmxlU2l6ZSkpOwot KyAgbGZkKHJlc3VsdCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0gfQotIAotIHZv aWQgVHVyYm9Bc3NlbWJsZXI6Ok1vdkludFRvRG91YmxlKERvdWJsZVJlZ2lzdGVyIGRzdCwgUmVn aXN0ZXIgc3JjLAotQEAgLTIxMjMsMTggKzIyMDYsMTYgQEAKLSAjZW5kaWYKLSAKLSAgIERDSEVD SyhzcmMgIT0gc2NyYXRjaCk7Ci0tICBzdWJpKHNwLCBzcCwgT3BlcmFuZChrRG91YmxlU2l6ZSkp OwotICNpZiBWOF9UQVJHRVRfQVJDSF9QUEM2NAotICAgZXh0c3coc2NyYXRjaCwgc3JjKTsKLS0g IHN0ZChzY3JhdGNoLCBNZW1PcGVyYW5kKHNwLCAwKSk7Ci0rICBzdGQoc2NyYXRjaCwgTWVtT3Bl cmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0gI2Vsc2UKLSAgIHNyYXdpKHNjcmF0Y2gsIHNyYywg MzEpOwotLSAgc3R3KHNjcmF0Y2gsIE1lbU9wZXJhbmQoc3AsIFJlZ2lzdGVyOjprRXhwb25lbnRP ZmZzZXQpKTsKLS0gIHN0dyhzcmMsIE1lbU9wZXJhbmQoc3AsIFJlZ2lzdGVyOjprTWFudGlzc2FP ZmZzZXQpKTsKLSsgIHN0dyhzY3JhdGNoLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUgKyBS ZWdpc3Rlcjo6a0V4cG9uZW50T2Zmc2V0KSk7Ci0rICBzdHcoc3JjLCBNZW1PcGVyYW5kKHNwLCAt a0RvdWJsZVNpemUgKyBSZWdpc3Rlcjo6a01hbnRpc3NhT2Zmc2V0KSk7Ci0gI2VuZGlmCi0gICBu b3AoR1JPVVBfRU5ESU5HX05PUCk7ICAvLyBMSFMvUkFXIG9wdGltaXphdGlvbgotLSAgbGZkKGRz dCwgTWVtT3BlcmFuZChzcCwgMCkpOwotLSAgYWRkaShzcCwgc3AsIE9wZXJhbmQoa0RvdWJsZVNp emUpKTsKLSsgIGxmZChkc3QsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkpOwotIH0KLSAK LSB2b2lkIFR1cmJvQXNzZW1ibGVyOjpNb3ZVbnNpZ25lZEludFRvRG91YmxlKERvdWJsZVJlZ2lz dGVyIGRzdCwgUmVnaXN0ZXIgc3JjLAotQEAgLTIxNDgsMTggKzIyMjksMTYgQEAKLSAjZW5kaWYK LSAKLSAgIERDSEVDSyhzcmMgIT0gc2NyYXRjaCk7Ci0tICBzdWJpKHNwLCBzcCwgT3BlcmFuZChr RG91YmxlU2l6ZSkpOwotICNpZiBWOF9UQVJHRVRfQVJDSF9QUEM2NAotICAgY2xybGRpKHNjcmF0 Y2gsIHNyYywgT3BlcmFuZCgzMikpOwotLSAgc3RkKHNjcmF0Y2gsIE1lbU9wZXJhbmQoc3AsIDAp KTsKLSsgIHN0ZChzY3JhdGNoLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUpKTsKLSAjZWxz ZQotICAgbGkoc2NyYXRjaCwgT3BlcmFuZDo6WmVybygpKTsKLS0gIHN0dyhzY3JhdGNoLCBNZW1P cGVyYW5kKHNwLCBSZWdpc3Rlcjo6a0V4cG9uZW50T2Zmc2V0KSk7Ci0tICBzdHcoc3JjLCBNZW1P cGVyYW5kKHNwLCBSZWdpc3Rlcjo6a01hbnRpc3NhT2Zmc2V0KSk7Ci0rICBzdHcoc2NyYXRjaCwg TWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplICsgUmVnaXN0ZXI6OmtFeHBvbmVudE9mZnNldCkp OwotKyAgc3R3KHNyYywgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplICsgUmVnaXN0ZXI6OmtN YW50aXNzYU9mZnNldCkpOwotICNlbmRpZgotICAgbm9wKEdST1VQX0VORElOR19OT1ApOyAgLy8g TEhTL1JBVyBvcHRpbWl6YXRpb24KLS0gIGxmZChkc3QsIE1lbU9wZXJhbmQoc3AsIDApKTsKLS0g IGFkZGkoc3AsIHNwLCBPcGVyYW5kKGtEb3VibGVTaXplKSk7Ci0rICBsZmQoZHN0LCBNZW1PcGVy YW5kKHNwLCAta0RvdWJsZVNpemUpKTsKLSB9Ci0gCi0gdm9pZCBUdXJib0Fzc2VtYmxlcjo6TW92 SW50NjRUb0RvdWJsZShEb3VibGVSZWdpc3RlciBkc3QsCi1AQCAtMjE3NCwxNiArMjI1MywxNCBA QAotICAgfQotICNlbmRpZgotIAotLSAgc3ViaShzcCwgc3AsIE9wZXJhbmQoa0RvdWJsZVNpemUp KTsKLSAjaWYgVjhfVEFSR0VUX0FSQ0hfUFBDNjQKLS0gIHN0ZChzcmMsIE1lbU9wZXJhbmQoc3As IDApKTsKLSsgIHN0ZChzcmMsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkpOwotICNlbHNl Ci0tICBzdHcoc3JjX2hpLCBNZW1PcGVyYW5kKHNwLCBSZWdpc3Rlcjo6a0V4cG9uZW50T2Zmc2V0 KSk7Ci0tICBzdHcoc3JjLCBNZW1PcGVyYW5kKHNwLCBSZWdpc3Rlcjo6a01hbnRpc3NhT2Zmc2V0 KSk7Ci0rICBzdHcoc3JjX2hpLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUgKyBSZWdpc3Rl cjo6a0V4cG9uZW50T2Zmc2V0KSk7Ci0rICBzdHcoc3JjLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJs ZVNpemUgKyBSZWdpc3Rlcjo6a01hbnRpc3NhT2Zmc2V0KSk7Ci0gI2VuZGlmCi0gICBub3AoR1JP VVBfRU5ESU5HX05PUCk7ICAvLyBMSFMvUkFXIG9wdGltaXphdGlvbgotLSAgbGZkKGRzdCwgTWVt T3BlcmFuZChzcCwgMCkpOwotLSAgYWRkaShzcCwgc3AsIE9wZXJhbmQoa0RvdWJsZVNpemUpKTsK LSsgIGxmZChkc3QsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkpOwotIH0KLSAKLSAjaWYg VjhfVEFSR0VUX0FSQ0hfUFBDNjQKLUBAIC0yMTk4LDEyICsyMjc1LDEwIEBACi0gICAgIHJldHVy bjsKLSAgIH0KLSAKLS0gIHN1Ymkoc3AsIHNwLCBPcGVyYW5kKGtEb3VibGVTaXplKSk7Ci0tICBz dHcoc3JjX2hpLCBNZW1PcGVyYW5kKHNwLCBSZWdpc3Rlcjo6a0V4cG9uZW50T2Zmc2V0KSk7Ci0t ICBzdHcoc3JjX2xvLCBNZW1PcGVyYW5kKHNwLCBSZWdpc3Rlcjo6a01hbnRpc3NhT2Zmc2V0KSk7 Ci0rICBzdHcoc3JjX2hpLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUgKyBSZWdpc3Rlcjo6 a0V4cG9uZW50T2Zmc2V0KSk7Ci0rICBzdHcoc3JjX2xvLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJs ZVNpemUgKyBSZWdpc3Rlcjo6a01hbnRpc3NhT2Zmc2V0KSk7Ci0gICBub3AoR1JPVVBfRU5ESU5H X05PUCk7ICAvLyBMSFMvUkFXIG9wdGltaXphdGlvbgotLSAgbGZkKGRzdCwgTWVtT3BlcmFuZChz cCkpOwotLSAgYWRkaShzcCwgc3AsIE9wZXJhbmQoa0RvdWJsZVNpemUpKTsKLSsgIGxmZChkc3Qs IE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkpOwotIH0KLSAjZW5kaWYKLSAKLUBAIC0yMjE4 LDEyICsyMjkzLDEwIEBACi0gICB9Ci0gI2VuZGlmCi0gCi0tICBzdWJpKHNwLCBzcCwgT3BlcmFu ZChrRG91YmxlU2l6ZSkpOwotLSAgc3RmZChkc3QsIE1lbU9wZXJhbmQoc3ApKTsKLS0gIHN0dyhz cmMsIE1lbU9wZXJhbmQoc3AsIFJlZ2lzdGVyOjprTWFudGlzc2FPZmZzZXQpKTsKLSsgIHN0ZmQo ZHN0LCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUpKTsKLSsgIHN0dyhzcmMsIE1lbU9wZXJh bmQoc3AsIC1rRG91YmxlU2l6ZSArIFJlZ2lzdGVyOjprTWFudGlzc2FPZmZzZXQpKTsKLSAgIG5v cChHUk9VUF9FTkRJTkdfTk9QKTsgIC8vIExIUy9SQVcgb3B0aW1pemF0aW9uCi0tICBsZmQoZHN0 LCBNZW1PcGVyYW5kKHNwKSk7Ci0tICBhZGRpKHNwLCBzcCwgT3BlcmFuZChrRG91YmxlU2l6ZSkp OwotKyAgbGZkKGRzdCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0gfQotIAotIHZv aWQgVHVyYm9Bc3NlbWJsZXI6Okluc2VydERvdWJsZUhpZ2goRG91YmxlUmVnaXN0ZXIgZHN0LCBS ZWdpc3RlciBzcmMsCi1AQCAtMjIzNywxMiArMjMxMCwxMCBAQAotICAgfQotICNlbmRpZgotIAot LSAgc3ViaShzcCwgc3AsIE9wZXJhbmQoa0RvdWJsZVNpemUpKTsKLS0gIHN0ZmQoZHN0LCBNZW1P cGVyYW5kKHNwKSk7Ci0tICBzdHcoc3JjLCBNZW1PcGVyYW5kKHNwLCBSZWdpc3Rlcjo6a0V4cG9u ZW50T2Zmc2V0KSk7Ci0rICBzdGZkKGRzdCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7 Ci0rICBzdHcoc3JjLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUgKyBSZWdpc3Rlcjo6a0V4 cG9uZW50T2Zmc2V0KSk7Ci0gICBub3AoR1JPVVBfRU5ESU5HX05PUCk7ICAvLyBMSFMvUkFXIG9w dGltaXphdGlvbgotLSAgbGZkKGRzdCwgTWVtT3BlcmFuZChzcCkpOwotLSAgYWRkaShzcCwgc3As IE9wZXJhbmQoa0RvdWJsZVNpemUpKTsKLSsgIGxmZChkc3QsIE1lbU9wZXJhbmQoc3AsIC1rRG91 YmxlU2l6ZSkpOwotIH0KLSAKLSB2b2lkIFR1cmJvQXNzZW1ibGVyOjpNb3ZEb3VibGVMb3dUb0lu dChSZWdpc3RlciBkc3QsIERvdWJsZVJlZ2lzdGVyIHNyYykgewotQEAgLTIyNTMsMTEgKzIzMjQs OSBAQAotICAgfQotICNlbmRpZgotIAotLSAgc3ViaShzcCwgc3AsIE9wZXJhbmQoa0RvdWJsZVNp emUpKTsKLS0gIHN0ZmQoc3JjLCBNZW1PcGVyYW5kKHNwKSk7Ci0rICBzdGZkKHNyYywgTWVtT3Bl cmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0gICBub3AoR1JPVVBfRU5ESU5HX05PUCk7ICAvLyBM SFMvUkFXIG9wdGltaXphdGlvbgotLSAgbHd6KGRzdCwgTWVtT3BlcmFuZChzcCwgUmVnaXN0ZXI6 OmtNYW50aXNzYU9mZnNldCkpOwotLSAgYWRkaShzcCwgc3AsIE9wZXJhbmQoa0RvdWJsZVNpemUp KTsKLSsgIGx3eihkc3QsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSArIFJlZ2lzdGVyOjpr TWFudGlzc2FPZmZzZXQpKTsKLSB9Ci0gCi0gdm9pZCBUdXJib0Fzc2VtYmxlcjo6TW92RG91Ymxl SGlnaFRvSW50KFJlZ2lzdGVyIGRzdCwgRG91YmxlUmVnaXN0ZXIgc3JjKSB7Ci1AQCAtMjI2OSwx MSArMjMzOCw5IEBACi0gICB9Ci0gI2VuZGlmCi0gCi0tICBzdWJpKHNwLCBzcCwgT3BlcmFuZChr RG91YmxlU2l6ZSkpOwotLSAgc3RmZChzcmMsIE1lbU9wZXJhbmQoc3ApKTsKLSsgIHN0ZmQoc3Jj LCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUpKTsKLSAgIG5vcChHUk9VUF9FTkRJTkdfTk9Q KTsgIC8vIExIUy9SQVcgb3B0aW1pemF0aW9uCi0tICBsd3ooZHN0LCBNZW1PcGVyYW5kKHNwLCBS ZWdpc3Rlcjo6a0V4cG9uZW50T2Zmc2V0KSk7Ci0tICBhZGRpKHNwLCBzcCwgT3BlcmFuZChrRG91 YmxlU2l6ZSkpOwotKyAgbHd6KGRzdCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplICsgUmVn aXN0ZXI6OmtFeHBvbmVudE9mZnNldCkpOwotIH0KLSAKLSB2b2lkIFR1cmJvQXNzZW1ibGVyOjpN b3ZEb3VibGVUb0ludDY0KAotQEAgLTIyODgsMzIgKzIzNTUsMjYgQEAKLSAgIH0KLSAjZW5kaWYK LSAKLS0gIHN1Ymkoc3AsIHNwLCBPcGVyYW5kKGtEb3VibGVTaXplKSk7Ci0tICBzdGZkKHNyYywg TWVtT3BlcmFuZChzcCkpOwotKyAgc3RmZChzcmMsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6 ZSkpOwotICAgbm9wKEdST1VQX0VORElOR19OT1ApOyAgLy8gTEhTL1JBVyBvcHRpbWl6YXRpb24K LSAjaWYgVjhfVEFSR0VUX0FSQ0hfUFBDNjQKLS0gIGxkKGRzdCwgTWVtT3BlcmFuZChzcCwgMCkp OwotKyAgbGQoZHN0LCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUpKTsKLSAjZWxzZQotLSAg bHd6KGRzdF9oaSwgTWVtT3BlcmFuZChzcCwgUmVnaXN0ZXI6OmtFeHBvbmVudE9mZnNldCkpOwot LSAgbHd6KGRzdCwgTWVtT3BlcmFuZChzcCwgUmVnaXN0ZXI6OmtNYW50aXNzYU9mZnNldCkpOwot KyAgbHd6KGRzdF9oaSwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplICsgUmVnaXN0ZXI6OmtF eHBvbmVudE9mZnNldCkpOwotKyAgbHd6KGRzdCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXpl ICsgUmVnaXN0ZXI6OmtNYW50aXNzYU9mZnNldCkpOwotICNlbmRpZgotLSAgYWRkaShzcCwgc3As IE9wZXJhbmQoa0RvdWJsZVNpemUpKTsKLSB9Ci0gCi0gdm9pZCBUdXJib0Fzc2VtYmxlcjo6TW92 SW50VG9GbG9hdChEb3VibGVSZWdpc3RlciBkc3QsIFJlZ2lzdGVyIHNyYykgewotLSAgc3ViaShz cCwgc3AsIE9wZXJhbmQoa0Zsb2F0U2l6ZSkpOwotLSAgc3R3KHNyYywgTWVtT3BlcmFuZChzcCwg MCkpOwotKyAgc3R3KHNyYywgTWVtT3BlcmFuZChzcCwgLWtGbG9hdFNpemUpKTsKLSAgIG5vcChH Uk9VUF9FTkRJTkdfTk9QKTsgIC8vIExIUy9SQVcgb3B0aW1pemF0aW9uCi0tICBsZnMoZHN0LCBN ZW1PcGVyYW5kKHNwLCAwKSk7Ci0tICBhZGRpKHNwLCBzcCwgT3BlcmFuZChrRmxvYXRTaXplKSk7 Ci0rICBsZnMoZHN0LCBNZW1PcGVyYW5kKHNwLCAta0Zsb2F0U2l6ZSkpOwotIH0KLSAKLSB2b2lk IFR1cmJvQXNzZW1ibGVyOjpNb3ZGbG9hdFRvSW50KFJlZ2lzdGVyIGRzdCwgRG91YmxlUmVnaXN0 ZXIgc3JjKSB7Ci0tICBzdWJpKHNwLCBzcCwgT3BlcmFuZChrRmxvYXRTaXplKSk7Ci0tICBzdGZz KHNyYywgTWVtT3BlcmFuZChzcCwgMCkpOwotKyAgc3RmcyhzcmMsIE1lbU9wZXJhbmQoc3AsIC1r RmxvYXRTaXplKSk7Ci0gICBub3AoR1JPVVBfRU5ESU5HX05PUCk7ICAvLyBMSFMvUkFXIG9wdGlt aXphdGlvbgotLSAgbHd6KGRzdCwgTWVtT3BlcmFuZChzcCwgMCkpOwotLSAgYWRkaShzcCwgc3As IE9wZXJhbmQoa0Zsb2F0U2l6ZSkpOwotKyAgbHd6KGRzdCwgTWVtT3BlcmFuZChzcCwgLWtGbG9h dFNpemUpKTsKLSB9Ci0gCi0gdm9pZCBUdXJib0Fzc2VtYmxlcjo6QWRkKFJlZ2lzdGVyIGRzdCwg UmVnaXN0ZXIgc3JjLCBpbnRwdHJfdCB2YWx1ZSwKLS0tLSBhL2RlcHMvdjgvc3JjL2NvZGVnZW4v cHBjL2NwdS1wcGMuY2MJMjAyMi0wMi0xNSAyMToxMTo0Ni4yOTEzODc0NTcgLTA4MDAKLSsrKyBi L2RlcHMvdjgvc3JjL2NvZGVnZW4vcHBjL2NwdS1wcGMuY2MJMjAyMi0wMi0xNyAyMDozODowOC44 MTYwOTgxODUgLTA4MDAKLUBAIC04LDE0ICs4LDEyIEBACi0gCi0gI2luY2x1ZGUgInNyYy9jb2Rl Z2VuL2NwdS1mZWF0dXJlcy5oIgotIAotLSNkZWZpbmUgSU5TVFJfQU5EX0RBVEFfQ0FDSEVfQ09I RVJFTkNZIExXU1lOQwotLQotIG5hbWVzcGFjZSB2OCB7Ci0gbmFtZXNwYWNlIGludGVybmFsIHsK LSAKLSB2b2lkIENwdUZlYXR1cmVzOjpGbHVzaElDYWNoZSh2b2lkKiBidWZmZXIsIHNpemVfdCBz aXplKSB7Ci0gI2lmICFkZWZpbmVkKFVTRV9TSU1VTEFUT1IpCi0tICBpZiAoQ3B1RmVhdHVyZXM6 OklzU3VwcG9ydGVkKElOU1RSX0FORF9EQVRBX0NBQ0hFX0NPSEVSRU5DWSkpIHsKLSsgIGlmIChD cHVGZWF0dXJlczo6SXNTdXBwb3J0ZWQoSUNBQ0hFX1NOT09QKSkgewotICAgICBfX2FzbV9fIF9f dm9sYXRpbGVfXygKLSAgICAgICAgICJzeW5jIFxuIgotICAgICAgICAgImljYmkgMCwgJTAgIFxu IgotQEAgLTI2LDI1ICsyNCwzMyBAQAotICAgICByZXR1cm47Ci0gICB9Ci0gCi0tICBjb25zdCBp bnQga0NhY2hlTGluZVNpemUgPSBDcHVGZWF0dXJlczo6aWNhY2hlX2xpbmVfc2l6ZSgpOwotLSAg aW50cHRyX3QgbWFzayA9IGtDYWNoZUxpbmVTaXplIC0gMTsKLSsgIGNvbnN0IGludCBrSW5zdHJD YWNoZUxpbmVTaXplID0gQ3B1RmVhdHVyZXM6OmljYWNoZV9saW5lX3NpemUoKTsKLSsgIGNvbnN0 IGludCBrRGF0YUNhY2hlTGluZVNpemUgPSBDcHVGZWF0dXJlczo6ZGNhY2hlX2xpbmVfc2l6ZSgp OwotKyAgaW50cHRyX3QgaWNfbWFzayA9IGtJbnN0ckNhY2hlTGluZVNpemUgLSAxOwotKyAgaW50 cHRyX3QgZGNfbWFzayA9IGtEYXRhQ2FjaGVMaW5lU2l6ZSAtIDE7Ci0gICBieXRlKiBzdGFydCA9 Ci0tICAgICAgcmVpbnRlcnByZXRfY2FzdDxieXRlKj4ocmVpbnRlcnByZXRfY2FzdDxpbnRwdHJf dD4oYnVmZmVyKSAmIH5tYXNrKTsKLSsgICAgICByZWludGVycHJldF9jYXN0PGJ5dGUqPihyZWlu dGVycHJldF9jYXN0PGludHB0cl90PihidWZmZXIpICYgfmRjX21hc2spOwotICAgYnl0ZSogZW5k ID0gc3RhdGljX2Nhc3Q8Ynl0ZSo+KGJ1ZmZlcikgKyBzaXplOwotLSAgZm9yIChieXRlKiBwb2lu dGVyID0gc3RhcnQ7IHBvaW50ZXIgPCBlbmQ7IHBvaW50ZXIgKz0ga0NhY2hlTGluZVNpemUpIHsK LS0gICAgX19hc21fXygKLSsgIGZvciAoYnl0ZSogcG9pbnRlciA9IHN0YXJ0OyBwb2ludGVyIDwg ZW5kOyBwb2ludGVyICs9IGtEYXRhQ2FjaGVMaW5lU2l6ZSkgewotKyAgICBfX2FzbV9fIF9fdm9s YXRpbGVfXygKLSAgICAgICAgICJkY2JmIDAsICUwICBcbiIKLS0gICAgICAgICJzeW5jICAgICAg ICBcbiIKLS0gICAgICAgICJpY2JpIDAsICUwICBcbiIKLS0gICAgICAgICJpc3luYyAgICAgICBc biIKLSAgICAgICAgIDogLyogbm8gb3V0cHV0ICovCi0gICAgICAgICA6ICJyIihwb2ludGVyKSk7 Ci0gICB9Ci0rICBfX2FzbV9fIF9fdm9sYXRpbGVfXygic3luYyIpOwotIAotKyAgc3RhcnQgPQot KyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Ynl0ZSo+KHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+ KGJ1ZmZlcikgJiB+aWNfbWFzayk7Ci0rICBmb3IgKGJ5dGUqIHBvaW50ZXIgPSBzdGFydDsgcG9p bnRlciA8IGVuZDsgcG9pbnRlciArPSBrSW5zdHJDYWNoZUxpbmVTaXplKSB7Ci0rICAgIF9fYXNt X18gX192b2xhdGlsZV9fKAotKyAgICAgICAgImljYmkgMCwgJTAgIFxuIgotKyAgICAgICAgOiAv KiBubyBvdXRwdXQgKi8KLSsgICAgICAgIDogInIiKHBvaW50ZXIpKTsKLSsgIH0KLSsgIF9fYXNt X18gX192b2xhdGlsZV9fKCJpc3luYyIpOwotICNlbmRpZiAgLy8gIVVTRV9TSU1VTEFUT1IKLSB9 Ci0gfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCi0gfSAgLy8gbmFtZXNwYWNlIHY4Ci0gCi0tI3Vu ZGVmIElOU1RSX0FORF9EQVRBX0NBQ0hFX0NPSEVSRU5DWQotICNlbmRpZiAgLy8gVjhfVEFSR0VU X0FSQ0hfUFBDCi0tLS0gYS9kZXBzL3Y4L3NyYy9jb2RlZ2VuL3BwYy9hc3NlbWJsZXItcHBjLmNj CTIwMjItMDItMTUgMjE6MTE6NDYuMjk1Mzg3NTU5IC0wODAwCi0rKysgYi9kZXBzL3Y4L3NyYy9j b2RlZ2VuL3BwYy9hc3NlbWJsZXItcHBjLmNjCTIwMjItMDItMTggMDA6MTE6MDcuODg3MjU3MTc0 IC0wODAwCi1AQCAtNTcsNTggKzU3LDYyIEBACi0gdm9pZCBDcHVGZWF0dXJlczo6UHJvYmVJbXBs KGJvb2wgY3Jvc3NfY29tcGlsZSkgewotICAgc3VwcG9ydGVkXyB8PSBDcHVGZWF0dXJlc0ltcGxp ZWRCeUNvbXBpbGVyKCk7Ci0gICBpY2FjaGVfbGluZV9zaXplXyA9IDEyODsKLSsgIGRjYWNoZV9s aW5lX3NpemVfID0gMTI4OwotIAotICAgLy8gT25seSB1c2Ugc3RhdGljYWxseSBkZXRlcm1pbmVk IGZlYXR1cmVzIGZvciBjcm9zcyBjb21waWxlIChzbmFwc2hvdCkuCi0gICBpZiAoY3Jvc3NfY29t cGlsZSkgcmV0dXJuOwotIAotLS8vIERldGVjdCB3aGV0aGVyIGZyaW0gaW5zdHJ1Y3Rpb24gaXMg c3VwcG9ydGVkIChQT1dFUjUrKQotLS8vIEZvciBub3cgd2Ugd2lsbCBqdXN0IGNoZWNrIGZvciBw cm9jZXNzb3JzIHdlIGtub3cgZG8gbm90Ci0tLy8gc3VwcG9ydCBpdAotICNpZm5kZWYgVVNFX1NJ TVVMQVRPUgotICAgLy8gUHJvYmUgZm9yIGFkZGl0aW9uYWwgZmVhdHVyZXMgYXQgcnVudGltZS4K LSAgIGJhc2U6OkNQVSBjcHU7Ci0tICBpZiAoY3B1LnBhcnQoKSA9PSBiYXNlOjpDUFU6OlBQQ19Q T1dFUjkgfHwgCi0tICAgICAgY3B1LnBhcnQoKSA9PSBiYXNlOjpDUFU6OlBQQ19QT1dFUjEwKSB7 Ci0tICAgIHN1cHBvcnRlZF8gfD0gKDF1IDw8IE1PRFVMTyk7Ci0tICB9Ci0rICBzd2l0Y2ggKGNw dS5wYXJ0KCkpIHsKLSsgICAgY2FzZSBiYXNlOjpDUFU6OlBQQ19QT1dFUjEwOgotKyAgICBjYXNl IGJhc2U6OkNQVTo6UFBDX1BPV0VSOToKLSsgICAgICBzdXBwb3J0ZWRfIHw9ICgxdSA8PCBNT0RV TE8pOwotKyAgICAgIC8vIGZhbGx0aHJvdWdoCi0rCi0rICAgIGNhc2UgYmFzZTo6Q1BVOjpQUENf UE9XRVI4OgotICNpZiBWOF9UQVJHRVRfQVJDSF9QUEM2NAotLSAgaWYgKGNwdS5wYXJ0KCkgPT0g YmFzZTo6Q1BVOjpQUENfUE9XRVI4IHx8IAotLSAgICAgIGNwdS5wYXJ0KCkgPT0gYmFzZTo6Q1BV OjpQUENfUE9XRVI5IHx8IAotLSAgICAgIGNwdS5wYXJ0KCkgPT0gYmFzZTo6Q1BVOjpQUENfUE9X RVIxMCkgewotLSAgICBzdXBwb3J0ZWRfIHw9ICgxdSA8PCBGUFJfR1BSX01PVik7Ci0tICB9Ci0r ICAgICAgc3VwcG9ydGVkXyB8PSAoMXUgPDwgRlBSX0dQUl9NT1YpOwotICNlbmRpZgotLSAgaWYg KGNwdS5wYXJ0KCkgPT0gYmFzZTo6Q1BVOjpQUENfUE9XRVI2IHx8Ci0tICAgICAgY3B1LnBhcnQo KSA9PSBiYXNlOjpDUFU6OlBQQ19QT1dFUjcgfHwKLS0gICAgICBjcHUucGFydCgpID09IGJhc2U6 OkNQVTo6UFBDX1BPV0VSOCB8fCAKLS0gICAgICBjcHUucGFydCgpID09IGJhc2U6OkNQVTo6UFBD X1BPV0VSOSB8fCAKLS0gICAgICBjcHUucGFydCgpID09IGJhc2U6OkNQVTo6UFBDX1BPV0VSMTAp IHsKLS0gICAgc3VwcG9ydGVkXyB8PSAoMXUgPDwgTFdTWU5DKTsKLSsgICAgICAvLyBmYWxsdGhy b3VnaAotKwotKyAgICBjYXNlIGJhc2U6OkNQVTo6UFBDX1BPV0VSNzoKLSsgICAgICBzdXBwb3J0 ZWRfIHw9ICgxdSA8PCBQUENfN19QTFVTKTsKLSsgICAgICBzdXBwb3J0ZWRfIHw9ICgxdSA8PCBQ T1BfQ09VTlQpOwotKyAgICAgIC8vIGZhbGx0aHJvdWdoCi0rCi0rICAgIGNhc2UgYmFzZTo6Q1BV OjpQUENfUE9XRVI2OgotKyAgICBjYXNlIGJhc2U6OkNQVTo6UFBDX1BPV0VSNToKLSsgICAgY2Fz ZSBiYXNlOjpDUFU6OlBQQ19QQTZUOgotKyAgICAgIHN1cHBvcnRlZF8gfD0gKDF1IDw8IEZQX1JP VU5EX1RPX0lOVCk7Ci0rICAgICAgYnJlYWs7Ci0rCi0rICAgIC8vIFNwZWNpYWwgY2FzZXMgYmVs b3cuIE90aGVyd2lzZSwgYXNzdW1lIG5vIHNwZWNpYWwgZmVhdHVyZXMuCi0rICAgIC8vIE5YUCBl NTUwMC9lNjUwMCBoYXZlIHBvcGNudCBidXQgbm90IG11Y2ggZWxzZSBzaW5jZSBJU0EgdjIuMDEu Ci0rICAgIGNhc2UgYmFzZTo6Q1BVOjpQUENfRTU1MDA6Ci0rICAgIGNhc2UgYmFzZTo6Q1BVOjpQ UENfRTY1MDA6Ci0rICAgICAgc3VwcG9ydGVkXyB8PSAoMXUgPDwgUE9QX0NPVU5UKTsKLSsgICAg ICBicmVhazsKLSAgIH0KLS0gIGlmIChjcHUucGFydCgpID09IGJhc2U6OkNQVTo6UFBDX1BPV0VS NyB8fAotLSAgICAgIGNwdS5wYXJ0KCkgPT0gYmFzZTo6Q1BVOjpQUENfUE9XRVI4IHx8IAotLSAg ICAgIGNwdS5wYXJ0KCkgPT0gYmFzZTo6Q1BVOjpQUENfUE9XRVI5IHx8IAotLSAgICAgIGNwdS5w YXJ0KCkgPT0gYmFzZTo6Q1BVOjpQUENfUE9XRVIxMCkgewotLSAgICBzdXBwb3J0ZWRfIHw9ICgx dSA8PCBJU0VMRUNUKTsKLS0gICAgc3VwcG9ydGVkXyB8PSAoMXUgPDwgVlNYKTsKLSsgIGlmIChj cHUuaGFzX2lzZWwoKSkgewotKyAgICBzdXBwb3J0ZWRfIHw9ICgxdSA8PCBJU0VMRUNUKTsgICAg ICAvLyBJU0EgdjIuMDMsIHBsdXMgc29tZSBOWFAgQ1BVcwotICAgfQotLSNpZiBWOF9PU19MSU5V WAotLSAgaWYgKCEoY3B1LnBhcnQoKSA9PSBiYXNlOjpDUFU6OlBQQ19HNSB8fCBjcHUucGFydCgp ID09IGJhc2U6OkNQVTo6UFBDX0c0KSkgewotLSAgICAvLyBBc3N1bWUgc3VwcG9ydAotLSAgICBz dXBwb3J0ZWRfIHw9ICgxdSA8PCBGUFUpOwotKyAgaWYgKGNwdS5oYXNfaWNhY2hlX3Nub29wKCkp IHsKLSsgICAgc3VwcG9ydGVkXyB8PSAoMXUgPDwgSUNBQ0hFX1NOT09QKTsgLy8gSVNBIHYyLjAy OyBoYXMgaXRzIG93biBod2NhcCBmbGFnCi0gICB9Ci0gICBpZiAoY3B1LmljYWNoZV9saW5lX3Np emUoKSAhPSBiYXNlOjpDUFU6OlVOS05PV05fQ0FDSEVfTElORV9TSVpFKSB7Ci0gICAgIGljYWNo ZV9saW5lX3NpemVfID0gY3B1LmljYWNoZV9saW5lX3NpemUoKTsKLSAgIH0KLS0jZWxpZiBWOF9P U19BSVgKLS0gIC8vIEFzc3VtZSBzdXBwb3J0IEZQIHN1cHBvcnQgYW5kIGRlZmF1bHQgY2FjaGUg bGluZSBzaXplCi0tICBzdXBwb3J0ZWRfIHw9ICgxdSA8PCBGUFUpOwotLSNlbmRpZgotKyAgaWYg KGNwdS5kY2FjaGVfbGluZV9zaXplKCkgIT0gYmFzZTo6Q1BVOjpVTktOT1dOX0NBQ0hFX0xJTkVf U0laRSkgewotKyAgICBkY2FjaGVfbGluZV9zaXplXyA9IGNwdS5kY2FjaGVfbGluZV9zaXplKCk7 Ci0rICB9Ci0gI2Vsc2UgIC8vIFNpbXVsYXRvcgotLSAgc3VwcG9ydGVkXyB8PSAoMXUgPDwgRlBV KTsKLS0gIHN1cHBvcnRlZF8gfD0gKDF1IDw8IExXU1lOQyk7Ci0rICBzdXBwb3J0ZWRfIHw9ICgx dSA8PCBGUF9ST1VORF9UT19JTlQpOwotKyAgc3VwcG9ydGVkXyB8PSAoMXUgPDwgSUNBQ0hFX1NO T09QKTsKLSAgIHN1cHBvcnRlZF8gfD0gKDF1IDw8IElTRUxFQ1QpOwotLSAgc3VwcG9ydGVkXyB8 PSAoMXUgPDwgVlNYKTsKLSsgIHN1cHBvcnRlZF8gfD0gKDF1IDw8IFBPUF9DT1VOVCk7Ci0rICBz dXBwb3J0ZWRfIHw9ICgxdSA8PCBQUENfN19QTFVTKTsKLSAgIHN1cHBvcnRlZF8gfD0gKDF1IDw8 IE1PRFVMTyk7Ci0gI2lmIFY4X1RBUkdFVF9BUkNIX1BQQzY0Ci0gICBzdXBwb3J0ZWRfIHw9ICgx dSA8PCBGUFJfR1BSX01PVik7Ci1AQCAtMTI5LDcgKzEzMywxMyBAQAotIH0KLSAKLSB2b2lkIENw dUZlYXR1cmVzOjpQcmludEZlYXR1cmVzKCkgewotLSAgcHJpbnRmKCJGUFU9JWRcbiIsIENwdUZl YXR1cmVzOjpJc1N1cHBvcnRlZChGUFUpKTsKLSsgIHByaW50ZigiRlBfUk9VTkRfVE9fSU5UPSVk XG4iLCBDcHVGZWF0dXJlczo6SXNTdXBwb3J0ZWQoRlBfUk9VTkRfVE9fSU5UKSk7Ci0rICBwcmlu dGYoIklDQUNIRV9TTk9PUD0lZFxuIiwgQ3B1RmVhdHVyZXM6OklzU3VwcG9ydGVkKElDQUNIRV9T Tk9PUCkpOwotKyAgcHJpbnRmKCJJU0VMRUNUPSVkXG4iLCBDcHVGZWF0dXJlczo6SXNTdXBwb3J0 ZWQoSVNFTEVDVCkpOwotKyAgcHJpbnRmKCJQT1BfQ09VTlQ9JWRcbiIsIENwdUZlYXR1cmVzOjpJ c1N1cHBvcnRlZChQT1BfQ09VTlQpKTsKLSsgIHByaW50ZigiUFBDXzdfUExVUz0lZFxuIiwgQ3B1 RmVhdHVyZXM6OklzU3VwcG9ydGVkKFBQQ183X1BMVVMpKTsKLSsgIHByaW50ZigiRlBSX0dQUl9N T1Y9JWRcbiIsIENwdUZlYXR1cmVzOjpJc1N1cHBvcnRlZChGUFJfR1BSX01PVikpOwotKyAgcHJp bnRmKCJNT0RVTE89JWRcbiIsIENwdUZlYXR1cmVzOjpJc1N1cHBvcnRlZChNT0RVTE8pKTsKLSB9 Ci0gCi0gUmVnaXN0ZXIgVG9SZWdpc3RlcihpbnQgbnVtKSB7Ci0tLS0gYS9kZXBzL3Y4L3NyYy9j b2RlZ2VuL2NwdS1mZWF0dXJlcy5oCTIwMjItMDItMTUgMjE6MTE6NDYuMjk1Mzg3NTU5IC0wODAw Ci0rKysgYi9kZXBzL3Y4L3NyYy9jb2RlZ2VuL2NwdS1mZWF0dXJlcy5oCTIwMjItMDItMTcgMjE6 MTA6MDkuODUzMjY2MDYxIC0wODAwCi1AQCAtMTMsNiArMTMsNyBAQAotIAotIC8vIENQVSBmZWF0 dXJlIGZsYWdzLgotIGVudW0gQ3B1RmVhdHVyZSB7Ci0rI2lmIFY4X1RBUkdFVF9BUkNIX0lBMzIg fHwgVjhfVEFSR0VUX0FSQ0hfWDY0Ci0gICAvLyB4ODYKLSAgIFNTRTRfMiwKLSAgIFNTRTRfMSwK LUBAIC0yNiwxMSArMjcsMTUgQEAKLSAgIExaQ05ULAotICAgUE9QQ05ULAotICAgQVRPTSwKLSsK LSsjZWxpZiBWOF9UQVJHRVRfQVJDSF9BUk0KLSAgIC8vIEFSTQotICAgLy8gLSBTdGFuZGFyZCBj b25maWd1cmF0aW9ucy4gVGhlIGJhc2VsaW5lIGlzIEFSTXY2K1ZGUHYyLgotICAgQVJNdjcsICAg ICAgICAvLyBBUk12Ny1BICsgVkZQdjMtRDMyICsgTkVPTgotICAgQVJNdjdfU1VESVYsICAvLyBB Uk12Ny1BICsgVkZQdjQtRDMyICsgTkVPTiArIFNVRElWCi0gICBBUk12OCwgICAgICAgIC8vIEFS TXY4LUEgKCsgYWxsIG9mIHRoZSBhYm92ZSkKLSsKLSsjZWxpZiBWOF9UQVJHRVRfQVJDSF9NSVBT IHx8IFY4X1RBUkdFVF9BUkNIX01JUFM2NAotICAgLy8gTUlQUywgTUlQUzY0Ci0gICBGUFUsCi0g ICBGUDY0RlBVLAotQEAgLTM4LDEyICs0MywxOCBAQAotICAgTUlQU3IyLAotICAgTUlQU3I2LAot ICAgTUlQU19TSU1ELCAgLy8gTVNBIGluc3RydWN0aW9ucwotKwotKyNlbGlmIFY4X1RBUkdFVF9B UkNIX1BQQyB8fCBWOF9UQVJHRVRfQVJDSF9QUEM2NAotICAgLy8gUFBDCi0tICBGUFJfR1BSX01P ViwKLS0gIExXU1lOQywKLS0gIElTRUxFQ1QsCi0tICBWU1gsCi0tICBNT0RVTE8sCi0rICBGUF9S T1VORF9UT19JTlQsICAvLyBJU0EgdjIuMDIgKFBPV0VSNSkKLSsgIElDQUNIRV9TTk9PUCwgICAg IC8vIElTQSB2Mi4wMiAoUE9XRVI1KQotKyAgSVNFTEVDVCwgICAgICAgICAgLy8gSVNBIHYyLjAz IChQT1dFUjUrIGFuZCBzb21lIE5YUCBjb3JlcykKLSsgIFBQQ183X1BMVVMsICAgICAgIC8vIElT QSB2Mi4wNiAoUE9XRVI3KQotKyAgUE9QX0NPVU5ULCAgICAgICAgLy8gSVNBIHYyLjA2IChQT1dF UjcgYW5kIE5YUCBlNTUwMC9lNjUwMCkKLSsgIEZQUl9HUFJfTU9WLCAgICAgIC8vIElTQSB2Mi4w NyAoUE9XRVI4KQotKyAgTU9EVUxPLCAgICAgICAgICAgLy8gSVNBIHYzLjAgIChQT1dFUjkpCi0r Ci0rI2VsaWYgVjhfVEFSR0VUX0FSQ0hfUzM5MFgKLSAgIC8vIFMzOTAKLSAgIERJU1RJTkNUX09Q UywKLSAgIEdFTkVSQUxfSU5TVFJfRVhULAotQEAgLTUxLDE0ICs2MiwxNyBAQAotICAgVkVDVE9S X0ZBQ0lMSVRZLAotICAgVkVDVE9SX0VOSEFOQ0VfRkFDSUxJVFlfMSwKLSAgIE1JU0NfSU5TVFJf RVhUMiwKLSsjZW5kaWYKLSAKLSAgIE5VTUJFUl9PRl9DUFVfRkVBVFVSRVMsCi0gCi0rI2lmIFY4 X1RBUkdFVF9BUkNIX0FSTQotICAgLy8gQVJNIGZlYXR1cmUgYWxpYXNlcyAoYmFzZWQgb24gdGhl IHN0YW5kYXJkIGNvbmZpZ3VyYXRpb25zIGFib3ZlKS4KLSAgIFZGUHYzID0gQVJNdjcsCi0gICBO RU9OID0gQVJNdjcsCi0gICBWRlAzMkRSRUdTID0gQVJNdjcsCi0gICBTVURJViA9IEFSTXY3X1NV RElWCi0rI2VuZGlmCi0gfTsKLSAKLSAvLyBDcHVGZWF0dXJlcyBrZWVwcyB0cmFjayBvZiB3aGlj aCBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkIGJ5IHRoZSB0YXJnZXQgQ1BVLgotLS0tIGEvZGVwcy92 OC9zcmMvY29tcGlsZXIvYmFja2VuZC9wcGMvaW5zdHJ1Y3Rpb24tc2VsZWN0b3ItcHBjLmNjCTIw MjItMDItMTUgMjE6MTE6NDYuMjk5Mzg3NjYwIC0wODAwCi0rKysgYi9kZXBzL3Y4L3NyYy9jb21w aWxlci9iYWNrZW5kL3BwYy9pbnN0cnVjdGlvbi1zZWxlY3Rvci1wcGMuY2MJMjAyMi0wMi0xNSAy MToxMTo0OS4xMjM0NTkyNzEgLTA4MDAKLUBAIC0yMzkzLDE2ICsyMzkzLDI2IEBACi0gLy8gc3Rh dGljCi0gTWFjaGluZU9wZXJhdG9yQnVpbGRlcjo6RmxhZ3MKLSBJbnN0cnVjdGlvblNlbGVjdG9y OjpTdXBwb3J0ZWRNYWNoaW5lT3BlcmF0b3JGbGFncygpIHsKLS0gIHJldHVybiBNYWNoaW5lT3Bl cmF0b3JCdWlsZGVyOjprRmxvYXQzMlJvdW5kRG93biB8Ci0tICAgICAgICAgTWFjaGluZU9wZXJh dG9yQnVpbGRlcjo6a0Zsb2F0NjRSb3VuZERvd24gfAotLSAgICAgICAgIE1hY2hpbmVPcGVyYXRv ckJ1aWxkZXI6OmtGbG9hdDMyUm91bmRVcCB8Ci0tICAgICAgICAgTWFjaGluZU9wZXJhdG9yQnVp bGRlcjo6a0Zsb2F0NjRSb3VuZFVwIHwKLS0gICAgICAgICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVy OjprRmxvYXQzMlJvdW5kVHJ1bmNhdGUgfAotLSAgICAgICAgIE1hY2hpbmVPcGVyYXRvckJ1aWxk ZXI6OmtGbG9hdDY0Um91bmRUcnVuY2F0ZSB8Ci0tICAgICAgICAgTWFjaGluZU9wZXJhdG9yQnVp bGRlcjo6a0Zsb2F0NjRSb3VuZFRpZXNBd2F5IHwKLS0gICAgICAgICBNYWNoaW5lT3BlcmF0b3JC dWlsZGVyOjprV29yZDMyUG9wY250IHwKLS0gICAgICAgICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVy OjprV29yZDY0UG9wY250OwotKyAgTWFjaGluZU9wZXJhdG9yQnVpbGRlcjo6RmxhZ3MgZmxhZ3Mg PSBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjpGbGFnOjprTm9GbGFnczsKLSsgIC8vIEZQIHJvdW5k aW5nIHRvIGludGVnZXIgaW5zdHJ1Y3Rpb25zIHJlcXVpcmUgUG93ZXIgSVNBIHYyLjAyIG9yIGxh dGVyLgotKyAgaWYgKENwdUZlYXR1cmVzOjpJc1N1cHBvcnRlZChGUF9ST1VORF9UT19JTlQpKSB7 Ci0rICAgIGZsYWdzIHw9IE1hY2hpbmVPcGVyYXRvckJ1aWxkZXI6OmtGbG9hdDMyUm91bmREb3du IHwKLSsgICAgICAgICAgICAgTWFjaGluZU9wZXJhdG9yQnVpbGRlcjo6a0Zsb2F0NjRSb3VuZERv d24gfAotKyAgICAgICAgICAgICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjprRmxvYXQzMlJvdW5k VXAgfAotKyAgICAgICAgICAgICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjprRmxvYXQ2NFJvdW5k VXAgfAotKyAgICAgICAgICAgICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjprRmxvYXQzMlJvdW5k VHJ1bmNhdGUgfAotKyAgICAgICAgICAgICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjprRmxvYXQ2 NFJvdW5kVHJ1bmNhdGUgfAotKyAgICAgICAgICAgICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjpr RmxvYXQ2NFJvdW5kVGllc0F3YXk7Ci0rICB9Ci0rICAvLyBQb3B1bGF0aW9uIGNvdW50IHJlcXVp cmVzIFBvd2VyIElTQSB2Mi4wNiwgb3IgTlhQIGU1NTAwL2U2NTAwLgotKyAgaWYgKENwdUZlYXR1 cmVzOjpJc1N1cHBvcnRlZChQT1BfQ09VTlQpKSB7Ci0rICAgIGZsYWdzIHw9IE1hY2hpbmVPcGVy YXRvckJ1aWxkZXI6OmtXb3JkMzJQb3BjbnQ7Ci0rI2lmIFY4X1RBUkdFVF9BUkNIX1BQQzY0Ci0r ICAgIGZsYWdzIHw9IE1hY2hpbmVPcGVyYXRvckJ1aWxkZXI6OmtXb3JkNjRQb3BjbnQ7Ci0rI2Vu ZGlmCi0rICB9Ci0gICAvLyBXZSBvbWl0IGtXb3JkMzJTaGlmdElzU2FmZSBhcyBzW3JsXXcgdXNl IDB4M0YgYXMgYSBtYXNrIHJhdGhlciB0aGFuIDB4MUYuCi0rICByZXR1cm4gZmxhZ3M7Ci0gfQot IAotIC8vIHN0YXRpYwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ub2RlanMtbHRzL3BhdGNoZXMvcHBj MzIucGF0Y2ggYi9zcmNwa2dzL25vZGVqcy1sdHMvcGF0Y2hlcy9wcGMzMi5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGRmY2ViMmYyMTc5Li4wMDAwMDAwMDAwMDAKLS0tIGEv c3JjcGtncy9ub2RlanMtbHRzL3BhdGNoZXMvcHBjMzIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAt MSwyMCArMCwwIEBACi0tLS0gYS9kZXBzL3Y4L3NyYy9saWJzYW1wbGVyL3NhbXBsZXIuY2MKLSsr KyBiL2RlcHMvdjgvc3JjL2xpYnNhbXBsZXIvc2FtcGxlci5jYwotQEAgLTQyMywxMCArNDIzLDE3 IEBACi0gICBzdGF0ZS0+bHIgPSByZWludGVycHJldF9jYXN0PHZvaWQqPih1Y29udGV4dC0+dWNf bWNvbnRleHQucmVncy0+bGluayk7Ci0gI2Vsc2UKLSAgIC8vIFNvbWUgQyBsaWJyYXJpZXMsIG5v dGFibHkgTXVzbCwgZGVmaW5lIHRoZSByZWdzIG1lbWJlciBhcyBhIHZvaWQgcG9pbnRlcgotKyAg I2lmICFWOF9UQVJHRVRfQVJDSF8zMl9CSVQKLSAgIHN0YXRlLT5wYyA9IHJlaW50ZXJwcmV0X2Nh c3Q8dm9pZCo+KHVjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzMyXSk7Ci0gICBzdGF0ZS0+ c3AgPSByZWludGVycHJldF9jYXN0PHZvaWQqPih1Y29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVn c1sxXSk7Ci0gICBzdGF0ZS0+ZnAgPSByZWludGVycHJldF9jYXN0PHZvaWQqPih1Y29udGV4dC0+ dWNfbWNvbnRleHQuZ3BfcmVnc1szMV0pOwotICAgc3RhdGUtPmxyID0gcmVpbnRlcnByZXRfY2Fz dDx2b2lkKj4odWNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMzZdKTsKLSsgICNlbHNlCi0r ICBzdGF0ZS0+cGMgPSByZWludGVycHJldF9jYXN0PHZvaWQqPih1Y29udGV4dC0+dWNfbWNvbnRl eHQuZ3JlZ3NbMzJdKTsKLSsgIHN0YXRlLT5zcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHVj b250ZXh0LT51Y19tY29udGV4dC5ncmVnc1sxXSk7Ci0rICBzdGF0ZS0+ZnAgPSByZWludGVycHJl dF9jYXN0PHZvaWQqPih1Y29udGV4dC0+dWNfbWNvbnRleHQuZ3JlZ3NbMzFdKTsKLSsgIHN0YXRl LT5sciA9IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHVjb250ZXh0LT51Y19tY29udGV4dC5ncmVn c1szNl0pOwotKyAgI2VuZGlmCi0gI2VuZGlmCi0gI2VsaWYgVjhfSE9TVF9BUkNIX1MzOTAKLSAj aWYgVjhfVEFSR0VUX0FSQ0hfMzJfQklUCmRpZmYgLS1naXQgYS9zcmNwa2dzL25vZGVqcy1sdHMv cGF0Y2hlcy9zaGFyZWQtdXYucGF0Y2ggYi9zcmNwa2dzL25vZGVqcy1sdHMvcGF0Y2hlcy9zaGFy ZWQtdXYucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAxZTk1ZjE1YjQ3Ny4u MDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mvbm9kZWpzLWx0cy9wYXRjaGVzL3NoYXJlZC11di5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLS0tLSBhL2RlcHMvdXZ3YXNpL3V2 d2FzaS5neXAKLSsrKyBiL2RlcHMvdXZ3YXNpL3V2d2FzaS5neXAKLUBAIC0xOCw5ICsxOCw2IEBA Ci0gICAgICAgICAnc3JjL3dhc2lfcmlnaHRzLmMnLAotICAgICAgICAgJ3NyYy93YXNpX3NlcmRl cy5jJywKLSAgICAgICBdLAotLSAgICAgICdkZXBlbmRlbmNpZXMnOiBbCi0tICAgICAgICAnLi4v dXYvdXYuZ3lwOmxpYnV2JywKLS0gICAgICBdLAotICAgICAgICdkaXJlY3RfZGVwZW5kZW50X3Nl dHRpbmdzJzogewotICAgICAgICAgJ2luY2x1ZGVfZGlycyc6IFsnaW5jbHVkZSddCi0gICAgICAg fSwKLUBAIC0zMSw2ICsyOCwxMiBAQAotICAgICAgICAgICAgICdfUE9TSVhfQ19TT1VSQ0U9MjAw MTEyJywKLSAgICAgICAgICAgXSwKLSAgICAgICAgIH1dLAotKyAgICAgICAgWyAnbm9kZV9zaGFy ZWRfbGlidXY9PSJmYWxzZSInLCB7Ci0rICAgICAgICAgICdkZXBlbmRlbmNpZXMnOiBbICcuLi91 di91di5neXA6bGlidXYnIF0sCi0rICAgICAgICB9XSwKLSsgICAgICAgIFsgJ25vZGVfc2hhcmVk X2xpYnV2PT0idHJ1ZSInLCB7Ci0rICAgICAgICAgICdsaWJyYXJpZXMnOiBbICctbHV2JyBdLAot KyAgICAgICAgfV0KLSAgICAgICBdLAotICAgICB9Ci0gICBdCmRpZmYgLS1naXQgYS9zcmNwa2dz L25vZGVqcy1sdHMvcGF0Y2hlcy94eHgtcHBjLWh3Y2FwLW11c2wucGF0Y2ggYi9zcmNwa2dzL25v ZGVqcy1sdHMvcGF0Y2hlcy94eHgtcHBjLWh3Y2FwLW11c2wucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDk1Mjg5MmNhZWQzOC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv bm9kZWpzLWx0cy9wYXRjaGVzL3h4eC1wcGMtaHdjYXAtbXVzbC5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDI0ICswLDAgQEAKLWNvbW1pdCA1NThhYjg5NmNiZGQ5MDI1OTk1MGM2MzFiYTI5YTFj NjZiZjRjMmQzCi1BdXRob3I6IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+Ci1EYXRlOiAgIE1v biBGZWIgMjggMjM6NTM6MjIgMjAyMiArMDEwMAotCi0gICAgYWRkIHNvbWUgaHdjYXAgYml0cyBm YWxsYmFja3MKLQotZGlmZiAtLWdpdCBhL2RlcHMvdjgvc3JjL2Jhc2UvY3B1LmNjIGIvZGVwcy92 OC9zcmMvYmFzZS9jcHUuY2MKLWluZGV4IGExYjIxZDIuLjhlNTI4MDIgMTAwNjQ0Ci0tLS0gYS9k ZXBzL3Y4L3NyYy9iYXNlL2NwdS5jYwotKysrIGIvZGVwcy92OC9zcmMvYmFzZS9jcHUuY2MKLUBA IC03NjgsNiArNzY4LDEzIEBAIENQVTo6Q1BVKCkKLSAKLSAjZWxpZiBWOF9IT1NUX0FSQ0hfUFBD IHx8IFY4X0hPU1RfQVJDSF9QUEM2NAotIAotKyNpZm5kZWYgUFBDX0ZFQVRVUkUyX0hBU19JU0VM Ci0rI2RlZmluZSBQUENfRkVBVFVSRTJfSEFTX0lTRUwgMHgwODAwMDAwMAotKyNlbmRpZgotKyNp Zm5kZWYgUFBDX0ZFQVRVUkUyX0FSQ0hfM18xCi0rI2RlZmluZSBQUENfRkVBVFVSRTJfQVJDSF8z XzEgMHgwMDA0MDAwMAotKyNlbmRpZgotKwotICNpZm5kZWYgVVNFX1NJTVVMQVRPUgotICNpZiBW OF9PU19MSU5VWAotICAgLy8gUmVhZCBwcm9jZXNzb3IgaW5mbyBmcm9tIGdldGF1eHZhbCgpIChu ZWVkcyBhdCBsZWFzdCBnbGliYyAyLjE4IG9yIG11c2wpLgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9u b2RlanMtbHRzL3RlbXBsYXRlIGIvc3JjcGtncy9ub2RlanMtbHRzL3RlbXBsYXRlCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NDIwZTg1MjQ0NDIuLjAwMDAwMDAwMDAwMAotLS0gYS9z cmNwa2dzL25vZGVqcy1sdHMvdGVtcGxhdGUKKysrIC9kZXYvbnVsbApAQCAtMSwxMDQgKzAsMCBA QAotIyBUZW1wbGF0ZSBmaWxlIGZvciAnbm9kZWpzLWx0cycKLXBrZ25hbWU9bm9kZWpzLWx0cwot dmVyc2lvbj0xMi4yMi4xMAotcmV2aXNpb249MgotIyBOZWVkIHRoZXNlIGZvciBob3N0IHY4IGZv ciB0b3JxdWUsIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUvcHVsbC8yMTA3OQot aG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIHB5dGhvbiBsaWJhdG9taWMtZGV2ZWwgemxpYi1k ZXZlbCB3aGljaAotICQodm9wdF9pZiBpY3UgaWN1LWRldmVsKSAkKHZvcHRfaWYgc3NsIG9wZW5z c2wtZGV2ZWwpICQodm9wdF9pZiBsaWJ1diBsaWJ1di1kZXZlbCkKLSAkKHZvcHRfaWYgaHR0cF9w YXJzZXIgaHR0cC1wYXJzZXItZGV2ZWwpICQodm9wdF9pZiBuZ2h0dHAyIG5naHR0cDItZGV2ZWwp Ci0gJCh2b3B0X2lmIGNhcmVzIGMtYXJlcy1kZXZlbCkgJCh2b3B0X2lmIGh0dHBfcGFyc2VyIGxs aHR0cC1kZXZlbCkiCi1tYWtlZGVwZW5kcz0ibGliYXRvbWljLWRldmVsIHpsaWItZGV2ZWwgcHl0 aG9uLWRldmVsICQodm9wdF9pZiBpY3UgaWN1LWRldmVsKQotICQodm9wdF9pZiBzc2wgb3BlbnNz bC1kZXZlbCkgJCh2b3B0X2lmIGxpYnV2IGxpYnV2LWRldmVsKQotICQodm9wdF9pZiBodHRwX3Bh cnNlciBodHRwLXBhcnNlci1kZXZlbCkgJCh2b3B0X2lmIG5naHR0cDIgbmdodHRwMi1kZXZlbCkK LSAkKHZvcHRfaWYgY2FyZXMgYy1hcmVzLWRldmVsKSAkKHZvcHRfaWYgaHR0cF9wYXJzZXIgbGxo dHRwLWRldmVsKSIKLWNoZWNrZGVwZW5kcz0icHJvY3BzLW5nIgotc2hvcnRfZGVzYz0iRXZlbnRl ZCBJL08gZm9yIFY4IGphdmFzY3JpcHQiCi1tYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94 QHZvaWRsaW51eC5vcmc+IgotbGljZW5zZT0iTUlUIgotaG9tZXBhZ2U9Imh0dHBzOi8vbm9kZWpz Lm9yZy8iCi1kaXN0ZmlsZXM9IiR7aG9tZXBhZ2V9L2Rpc3QvdiR7dmVyc2lvbn0vbm9kZS12JHt2 ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT0xZWVlYzY4YjUzMGRhNGFjZWQ3MzBlMmFmOWUwN2Ex Y2VkODE0ODMzNzcwOGYzN2ZjOGI0ZWRkYzNiNmRjOWU5Ci1weXRob25fdmVyc2lvbj0zCi0KLWJ1 aWxkX29wdGlvbnM9InNzbCBsaWJ1diBodHRwX3BhcnNlciBpY3UgbmdodHRwMiBjYXJlcyIKLWRl c2Nfb3B0aW9uX3NzbD0iRW5hYmxlIHNoYXJlZCBvcGVuc3NsIgotZGVzY19vcHRpb25fbGlidXY9 IkVuYWJsZSBzaGFyZWQgbGlidXYiCi1kZXNjX29wdGlvbl9odHRwX3BhcnNlcj0iRW5hYmxlIHNo YXJlZCBodHRwLXBhcnNlciBhbmQgbGxodHRwIgotZGVzY19vcHRpb25faWN1PSJFbmFibGUgc2hh cmVkIGljdSIKLWRlc2Nfb3B0aW9uX25naHR0cDI9IkVuYWJsZSBzaGFyZWQgbmdodHRwMiIKLWRl c2Nfb3B0aW9uX2NhcmVzPSJFbmFibGUgc2hhcmVkIGMtYXJlcyIKLWJ1aWxkX29wdGlvbnNfZGVm YXVsdD0ic3NsIGxpYnV2IGh0dHBfcGFyc2VyIGljdSBuZ2h0dHAyIGNhcmVzIgotCi1yZXBsYWNl cz0iaW9qcz49MCIKLWNvbmZsaWN0cz0ibm9kZWpzIG5vZGVqcy1sdHMtMTAiCi1wcm92aWRlcz0i bm9kZWpzLXJ1bnRpbWUtMF8xIgotCi1pZiBbICIkWEJQU19XT1JEU0laRSIgLW5lICIkWEJQU19U QVJHRVRfV09SRFNJWkUiIF07IHRoZW4KLQlub2Nyb3NzPSJob3N0IGFuZCB0YXJnZXQgbXVzdCBo YXZlIHRoZSBzYW1lIHBvaW50ZXIgc2l6ZSIKLWZpCi0KLWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNI SU5FIiBpbgotCXBwYzY0KikgOzsKLQlwcGMqKSBicm9rZW49Ik5vZGUgMTIueCBkb2VzIG5vdCBz dXBwb3J0IDMyLWJpdCBwcGMiIDs7Ci1lc2FjCi0KLUNGTEFHUz0iLURfTEFSR0VGSUxFX1NPVVJD RSAtRF9GSUxFX09GRlNFVF9CSVRTPTY0IgotQ1hYRkxBR1M9Ii1EX0xBUkdFRklMRV9TT1VSQ0Ug LURfRklMRV9PRkZTRVRfQklUUz02NCIKLQotZG9fY29uZmlndXJlKCkgewotCWxvY2FsIF9hcmdz Ci0KLQlleHBvcnQgTEQ9IiRDWFgiCi0JaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCi0JCWNh c2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgotCQkJYXJtKikgX2FyZ3M9Ii0tZGVzdC1jcHU9 YXJtIiA7OwotCQkJYWFyY2g2NCopIF9hcmdzPSItLWRlc3QtY3B1PWFybTY0IiA7OwotCQkJcHBj NjQqKSBfYXJncz0iLS1kZXN0LWNwdT1wcGM2NCIgOzsKLQkJCXBwYyopIF9hcmdzPSItLWRlc3Qt Y3B1PXBwYyIgOzsKLQkJCW1pcHNlbCopIF9hcmdzPSItLWRlc3QtY3B1PW1pcHNlbCIgOzsKLQkJ CW1pcHMqKSBfYXJncz0iLS1kZXN0LWNwdT1taXBzIiA7OwotCQkJaTY4NiopIF9hcmdzPSItLWRl c3QtY3B1PXg4NiIgOzsKLQkJCXg4Nl82NCopIF9hcmdzPSItLWRlc3QtY3B1PXg4Nl82NCIgOzsK LQkJCSopIG1zZ19lcnJvciAiJHBrZ3ZlcjogY2Fubm90IGJlIGNyb3NzIGNvbXBpbGVkIGZvciAk e1hCUFNfVEFSR0VUX01BQ0hJTkV9LlxuIiA7OwotCQllc2FjCi0JCV9hcmdzKz0iIC0tY3Jvc3Mt Y29tcGlsaW5nIgotCWZpCi0JLi9jb25maWd1cmUgLS1wcmVmaXg9L3VzciAtLXNoYXJlZC16bGli IFwKLQkJJCh2b3B0X2lmIGljdSAtLXdpdGgtaW50bD1zeXN0ZW0taWN1KSBcCi0JCSQodm9wdF9p ZiBodHRwX3BhcnNlciAtLXNoYXJlZC1odHRwLXBhcnNlcikgXAotCQkkKHZvcHRfaWYgc3NsIC0t c2hhcmVkLW9wZW5zc2wpIFwKLQkJJCh2b3B0X2lmIGxpYnV2IC0tc2hhcmVkLWxpYnV2KSBcCi0J CSQodm9wdF9pZiBuZ2h0dHAyIC0tc2hhcmVkLW5naHR0cDIpIFwKLQkJJCh2b3B0X2lmIGNhcmVz IC0tc2hhcmVkLWNhcmVzKSAke19hcmdzfQotfQotCi1wb3N0X2NvbmZpZ3VyZSgpIHsKLQkjIEZp eCBsaW5raW5nIGFnYWluc3QgbGxodHRwCi0Jc2VkICdzLy1saHR0cF9wYXJzZXIvJiAtbGxsaHR0 cC8nIC1pIG91dC8qLnRhcmdldC5tawotfQotCi1kb19idWlsZCgpIHsKLQlpZiBbICIkQ1JPU1Nf QlVJTEQiIF07IHRoZW4KLQkJbWFrZSBMRD0iJENYWCIgTERGTEFHUys9LWxkbCAke21ha2Vqb2Jz fSBQT1JUQUJMRT0xIFY9MQotCWVsc2UKLQkJbWFrZSBMRD0iJENYWCIgTERGTEFHUys9LWxkbCAk e21ha2Vqb2JzfSBWPTEKLQlmaQotfQotCi1kb19jaGVjaygpIHsKLQltYWtlIExEPSIkQ1hYIiBM REZMQUdTKz0tbGRsICR7bWFrZWpvYnN9IFY9MSB0ZXN0LW9ubHkKLX0KLQotZG9faW5zdGFsbCgp IHsKLQltYWtlIExEPSIkQ1hYIiBMREZMQUdTKz0tbGRsIERFU1RESVI9IiRERVNURElSIiBpbnN0 YWxsCi0Jcm0gJERFU1RESVIvdXNyL2luY2x1ZGUvbm9kZS9vcGVuc3NsIC1yZgotCXZsaWNlbnNl IExJQ0VOU0UKLX0KLQotbm9kZWpzLWx0cy1kZXZlbF9wYWNrYWdlKCkgewotCXNob3J0X2Rlc2Mr PSIgKGRldmVsb3BtZW50IGZpbGVzKSIKLQljb25mbGljdHM9Im5vZGVqcy1kZXZlbCBub2RlanMt bHRzLTEwLWRldmVsIgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSB1c3IvaW5jbHVkZQotCX0K LX0KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvbm9kZWpzLWx0cy91cGRhdGUgYi9zcmNwa2dzL25vZGVq cy1sdHMvdXBkYXRlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MzdmODIyOWRhYjku LjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL25vZGVqcy1sdHMvdXBkYXRlCisrKyAvZGV2L251 bGwKQEAgLTEsMiArMCwwIEBACi1zaXRlPWh0dHBzOi8vbm9kZWpzLm9yZy9kaXN0Ci1wYXR0ZXJu PSd2XEsxMltcZC5dKyg/PVwvKScKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvbm9kZWpzL3RlbXBsYXRl IGIvc3JjcGtncy9ub2RlanMvdGVtcGxhdGUKaW5kZXggYzJmNGQ0ZWIzNDBmLi4xOWE1YmVmZWQ2 NjcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvbm9kZWpzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvbm9k ZWpzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbm9kZWpz JwogcGtnbmFtZT1ub2RlanMKIHZlcnNpb249MTYuMTUuMQotcmV2aXNpb249MgorcmV2aXNpb249 MwogIyBOZWVkIHRoZXNlIGZvciBob3N0IHY4IGZvciB0b3JxdWUsIHNlZSBodHRwczovL2dpdGh1 Yi5jb20vbm9kZWpzL25vZGUvcHVsbC8yMTA3OQogaG9zdG1ha2VkZXBlbmRzPSJ3aGljaCBwa2ct Y29uZmlnIHB5dGhvbjMgbGliYXRvbWljLWRldmVsIHpsaWItZGV2ZWwKICAkKHZvcHRfaWYgaWN1 IGljdS1kZXZlbCkgJCh2b3B0X2lmIHNzbCBvcGVuc3NsLWRldmVsKSAkKHZvcHRfaWYgbGlidXYg bGlidXYtZGV2ZWwpCkBAIC0yNyw3ICsyNyw3IEBAIGRlc2Nfb3B0aW9uX2NhcmVzPSJFbmFibGUg c2hhcmVkIGMtYXJlcyIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0ic3NsIGxpYnV2IGljdSBuZ2h0 dHAyIGNhcmVzIgogCiByZXBsYWNlcz0iaW9qcz49MCIKLWNvbmZsaWN0cz0ibm9kZWpzLWx0cyBu b2RlanMtbHRzLTEwIgorY29uZmxpY3RzPSJub2RlanMtbHRzLTEwIgogcHJvdmlkZXM9Im5vZGVq cy1ydW50aW1lLTBfMSIKIAogIyBodHRwczovL2J1aWxkLnZvaWRsaW51eC5vcmcvYnVpbGRlcnMv aTY4Nl9idWlsZGVyL2J1aWxkcy8yNzMyNS9zdGVwcy9zaGVsbF8zL2xvZ3Mvc3RkaW8KQEAgLTEw MCw4ICsxMDAsMjAgQEAgZG9faW5zdGFsbCgpIHsKIAogbm9kZWpzLWRldmVsX3BhY2thZ2UoKSB7 CiAJc2hvcnRfZGVzYys9IiAoZGV2ZWxvcG1lbnQgZmlsZXMpIgotCWNvbmZsaWN0cz0ibm9kZWpz LWx0cy1kZXZlbCBub2RlanMtbHRzLTEwLWRldmVsIgorCWNvbmZsaWN0cz0ibm9kZWpzLWx0cy0x MC1kZXZlbCIKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKIAl9CiB9CisK K25vZGVqcy1sdHNfcGFja2FnZSgpIHsKKwlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lv bn1fJHtyZXZpc2lvbn0iCisJc2hvcnRfZGVzYys9IiBMVFMiCisJYnVpbGRfc3R5bGU9bWV0YQor fQorCitub2RlanMtbHRzLWRldmVsX3BhY2thZ2UoKSB7CisJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9 LWRldmVsPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCXNob3J0X2Rlc2MrPSIgTFRTIChkZXZl bG9wbWVudCBmaWxlcykiCisJYnVpbGRfc3R5bGU9bWV0YQorfQo= --===============7878754996569359364==--