From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 27323 invoked from network); 29 Mar 2022 08:28:52 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 29 Mar 2022 08:28:52 -0000 Content-Type: multipart/mixed; boundary="===============0382271139106962191==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_Llvm13?= To: ml@inbox.vuxu.org From: motorto Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Tue, 29 Mar 2022 10:28:51 +0200 List-Id: Message-ID: <20220329082851.i79PntbXvIuMwpTgpbrBtyRJ240cjdgiMUefO2ry7kE@z> GitHub notification mails are now in MIME to allow UTF8. --===============0382271139106962191== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgbW90b3J0byBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vbW90 b3J0by92b2lkLXBhY2thZ2VzIGxsdm0xMwpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92 b2lkLXBhY2thZ2VzL3B1bGwvMzYyMjkKCkxsdm0xMwpUaGlzIGFkZHMgTExWTSAxMyBhbmQgdXBk YXRlcyBmcm9tIExMVk0gMTIuDQoNCldvcmstaW4tcHJvZ3Jlc3MNCg0KVGhlIGZvbGxvd2luZyBw YWNrYWdlcyB3ZXJlIHJlbW92ZWQ6DQogKiBiZWlnbmV0IC0tIHVwc3RyZWFtIGlzIGRlYWQNCiAq IHJ1bmRpcmQgLS0gIGhhcyBiZWVuIGRlcHJlY2F0ZWQgYnkgdXBzdHJlYW0gd2hpY2ggcmVjb21t ZW5kcyB1c2luZyBkdW1iX3J1bnRpbWVfZGlyDQoNClRoZSBmb2xsb3dpbmcgcGFja2FnZXMgd2Vy ZSB1cGRhdGVkIG9yIHBhdGNoZWQ6DQogKiBpc3BjDQogKiBxdGNyZWF0b3INCiAqIHJpdmVyDQog KiB6aWcNCg0KUmVidWlsdCBwYWNrYWdlczoNCg0KKHJlYnVpbHQgYmFzZWQgb24gb3V0cHV0IG9m OiAgYHhyZXZzaGxpYiBsaWJsbHZtezEyLDEzfWAgKQ0KDQoNCiogU1BJUlYtTExWTS1UcmFuc2xh dG9yDQoqIGJjYw0KKiBicGZ0cmFjZSANCiogY2NscyANCiogY2xhenkgDQoqIGNvZGVsaXRlIA0K KiBnaGRsDQoqIGdub21lLWJ1aWxkZXINCiogaW5jbHVkZS13aGF0LXlvdS11c2UgDQoqIGp1Q2kr KyANCioga2RldmVsb3AgDQoqIGxkYw0KKiBtZXNhIA0KKiBxdDUgDQoqIHJ0YWdzIA0KKiBydXN0 DQoqIHNoaWJva2VuMiANCiogdGlsaXgNCg0KVXBkYXRlZCBUZW1wbGF0ZXM6DQoNCiogQ2hyb21p dW0NCg0KKEkgYW0gcHJvYmFibHkgbWlzc2luZyBzb21lIHBhY2thZ2VzKQ0KDQoNClRoYW5rcyBA REJMb3VpcyBmb3IgeW91ciBoYXJkIHdvcmshIA0KDQogW2NpIHNraXBdDQogDQogSSBudWtlZCB0 aGUgIzM1ODk1CgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51 eC92b2lkLXBhY2thZ2VzL3B1bGwvMzYyMjkucGF0Y2ggaXMgYXR0YWNoZWQ= --===============0382271139106962191== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-llvm13-36229.patch" RnJvbSBkYTVmNTU3YWZjNDNmZjkxZmU5OTdjOTFiNDIzMTkxMDAxOWZmM2U4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TG91aXM9MjBEdXByPUMzPUE5PTIwQmVydG9u aT89CiA8bG91aXNkYkBsZXNwZXRpdHNwZWRlc3RyZXMub3JnPgpEYXRlOiBGcmksIDMxIERlYyAy MDIxIDE2OjIxOjMwICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMS8zMV0gTmV3IHBhY2thZ2U6IGxs dm0xMy0xMy4wLjAKCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDE2ICstCiBzcmNwa2dzL2NsYW5nICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvY2xhbmctYW5hbHl6ZXIgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMiArLQogc3JjcGtncy9jbGFuZy10b29scy1leHRyYSAgICAgICAgICAgICAgICAg ICAgIHwgICAyICstCiBzcmNwa2dzL2xpYmNsYW5nICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDIgKy0KIHNyY3BrZ3MvbGliY2xhbmctY3BwICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMiArLQogc3JjcGtncy9saWJjeHggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAyICstCiBzcmNwa2dzL2xpYmN4eC1kZXZlbCAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgIDIgKy0KIHNyY3BrZ3MvbGliY3h4YWJpICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgMiArLQogc3JjcGtncy9saWJjeHhhYmktZGV2ZWwgICAgICAgICAgICAgICAgICAgICAgIHwg ICAyICstCiBzcmNwa2dzL2xpYmxsdm0xMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDEgKwogc3JjcGtncy9saWJvbXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAy ICstCiBzcmNwa2dzL2xpYm9tcC1kZXZlbCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIg Ky0KIHNyY3BrZ3MvbGxkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiAr LQogc3JjcGtncy9sbGQtZGV2ZWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICst CiBzcmNwa2dzL2xsZGIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IHNyY3BrZ3MvbGxkYi1kZXZlbCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQog c3JjcGtncy9sbHZtLWxpYnVud2luZCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBz cmNwa2dzL2xsdm0tbGlidW53aW5kLWRldmVsICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIC4u Li9sbHZtMTMvZmlsZXMvbGx2bS1Db25maWctbGx2bS1jb25maWcuaCAgICB8ICAgOSArCiAuLi5j bGFuZy0wMDEtZml4LXVud2luZC1jaGFpbi1pbmNsdXNpb24ucGF0Y2ggfCAgNDQgKysKIC4uLi9w YXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoICB8IDExMCArKysrKwogLi4u L2NsYW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBhdGNoIHwgIDEzICsKIC4uLi9w YXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoICB8ICA0OCArKwogLi4uL2Nv bXBpbGVyLXJ0LWFhcmNoNjQtdWNvbnRleHQucGF0Y2ggICAgICAgIHwgIDExICsKIC4uLi9jb21w aWxlci1ydC1zYW5pdGl6ZXItcHBjNjQtbXVzbC5wYXRjaCAgICB8ICAzNSArKwogLi4uL3BhdGNo ZXMvY29tcGlsZXItcnQteHJheS1wcGM2NC1tdXNsLnBhdGNoIHwgIDYyICsrKwogc3JjcGtncy9s bHZtMTMvcGF0Y2hlcy9saWJjeHgtbXVzbC5wYXRjaCAgICAgIHwgIDI2ICsrCiBzcmNwa2dzL2xs dm0xMy9wYXRjaGVzL2xpYmN4eC1wcGMucGF0Y2ggICAgICAgfCAgMjIgKwogLi4uL2xsdm0xMy9w YXRjaGVzL2xpYmN4eC1zc3Atbm9uc2hhcmVkLnBhdGNoIHwgIDExICsKIHNyY3BrZ3MvbGx2bTEz L3BhdGNoZXMvbGliY3h4YWJpLWRsLnBhdGNoICAgICB8ICAyNSArKwogc3JjcGtncy9sbHZtMTMv cGF0Y2hlcy9saWJ1bndpbmQtcHBjMzIucGF0Y2ggIHwgIDYzICsrKwogc3JjcGtncy9sbHZtMTMv cGF0Y2hlcy9sbGRiLW11c2wucGF0Y2ggICAgICAgIHwgIDMxICsrCiBzcmNwa2dzL2xsdm0xMy9w YXRjaGVzL2xsdm0tMDAxLW11c2wucGF0Y2ggICAgfCAgNTcgKysrCiAuLi4vcGF0Y2hlcy9sbHZt LTAwMi1tdXNsLXBwYzY0LWVsZnYyLnBhdGNoICAgfCAgMzAgKysKIC4uLi9wYXRjaGVzL2xsdm0t MDAzLXBwYy1zZWN1cmVwbHQucGF0Y2ggICAgICB8ICAxMSArCiAuLi4vcGF0Y2hlcy9sbHZtLTAw NC1vdmVycmlkZS1vcHQucGF0Y2ggICAgICAgfCAgMTggKwogLi4uL2xsdm0xMy9wYXRjaGVzL2xs dm0tMDA1LXBwYy1iaWdwaWMucGF0Y2ggIHwgIDM2ICsrCiAuLi4vcGF0Y2hlcy9sbHZtLTAwNi1h YXJjaDY0LW1mX2V4ZWMucGF0Y2ggICAgfCAgMjUgKysKIC4uLi9sbHZtMTMvcGF0Y2hlcy9wcGMz Mi1jb21waWxlci1ydC5wYXRjaCAgICB8ICAyMSArCiBzcmNwa2dzL2xsdm0xMy90ZW1wbGF0ZSAg ICAgICAgICAgICAgICAgICAgICAgfCA0MjMgKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL2xs dm0xMy91cGRhdGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogNDIgZmlsZXMgY2hh bmdlZCwgMTE2NSBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEy MDAwMCBzcmNwa2dzL2xpYmxsdm0xMwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEz L2ZpbGVzL2xsdm0tQ29uZmlnLWxsdm0tY29uZmlnLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2xsdm0xMy9wYXRjaGVzL2NsYW5nLTAwMS1maXgtdW53aW5kLWNoYWluLWluY2x1c2lvbi5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvY2xhbmctMDAy LWFkZC1tdXNsLXRyaXBsZXMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0x My9wYXRjaGVzL2NsYW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9jbGFuZy0wMDQtcHBjNjQtbXVz bC1lbGZ2Mi5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEzL3BhdGNoZXMv Y29tcGlsZXItcnQtYWFyY2g2NC11Y29udGV4dC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvbGx2bTEzL3BhdGNoZXMvY29tcGlsZXItcnQtc2FuaXRpemVyLXBwYzY0LW11c2wucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2NvbXBpbGVyLXJ0 LXhyYXktcHBjNjQtbXVzbC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEz L3BhdGNoZXMvbGliY3h4LW11c2wucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xs dm0xMy9wYXRjaGVzL2xpYmN4eC1wcGMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2xsdm0xMy9wYXRjaGVzL2xpYmN4eC1zc3Atbm9uc2hhcmVkLnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9saWJjeHhhYmktZGwucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xpYnVud2luZC1wcGMzMi5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGxkYi1tdXNsLnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAwMS1tdXNs LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAw Mi1tdXNsLXBwYzY0LWVsZnYyLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZt MTMvcGF0Y2hlcy9sbHZtLTAwMy1wcGMtc2VjdXJlcGx0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAwNC1vdmVycmlkZS1vcHQucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xsdm0tMDA1LXBwYy1iaWdw aWMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xsdm0t MDA2LWFhcmNoNjQtbWZfZXhlYy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2 bTEzL3BhdGNoZXMvcHBjMzItY29tcGlsZXItcnQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2xsdm0xMy90ZW1wbGF0ZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEz L3VwZGF0ZQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4 IGNjYzU1YTFiMzc3Mi4uNzU2MTU4NWVjNTZlIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisr KyBiL2NvbW1vbi9zaGxpYnMKQEAgLTk3MywxMSArOTczLDEyIEBAIGxpYnVjaGFyZGV0LnNvLjAg dWNoYXJkZXQtMC4wLjZfMQogbGliZ3Rrc291cmNldmlld21tLTMuMC5zby4wIGd0a3NvdXJjZXZp ZXdtbS0zLjIuMF8xCiBsaWJ5YWpsLnNvLjIgeWFqbC0yLjAuMV8xCiBsaWJjb25mdXNlLnNvLjIg Y29uZnVzZS0zLjIuMV8xCi1saWJsbGRiLnNvLjEyIGxsZGItMTIuMC4wXzEKLWxpYmNsYW5nLnNv LjEyIGxpYmNsYW5nLTEyLjAuMF8xCi1saWJjbGFuZy1jcHAuc28uMTIgbGliY2xhbmctY3BwLTEy LjAuMF8xCitsaWJsbGRiLnNvLjEzIGxsZGItMTMuMC4wXzEKK2xpYmNsYW5nLnNvLjEzIGxpYmNs YW5nLTEzLjAuMF8xCitsaWJjbGFuZy1jcHAuc28uMTMgbGliY2xhbmctY3BwLTEzLjAuMF8xCiBs aWJMTFZNLTExLnNvIGxpYmxsdm0xMS0xMS4wLjBfMQogbGliTExWTS0xMi5zbyBsaWJsbHZtMTIt MTIuMC4wXzEKK2xpYkxMVk0tMTMuc28gbGlibGx2bTEzLTEzLjAuMF8xCiBsaWJpc29mcy5zby42 IGxpYmlzb2ZzLTAuNi4yNF8xCiBsaWJtcGFjay5zby4wIGxpYm1wYWNrLTEuMC41XzEKIGxpYkdl b0lQLnNvLjEgbGliZ2VvaXAtMS40LjhfMQpAQCAtNDE0NSwzICs0MTQ2LDEyIEBAIGxpYnJ6X2xh bmcuc28uMC4zLjQgcml6aW4tMC4zLjRfMQogbGlicnpfc2VhcmNoLnNvLjAuMy40IHJpemluLTAu My40XzEKIGxpYnJ6X2Jpbi5zby4wLjMuNCByaXppbi0wLjMuNF8xCiBsaWJhcmF2aXMtMC44LnNv LjAgbGliYXJhdmlzLTAuOC4yMV8xCitsaWJvbXAuc28gbGlib21wLTEzLjAuMF8xCitsaWJvbXB0 YXJnZXQucnRsLmFtZGdwdS5zbyBsaWJvbXAtMTMuMC4wXzEKK2xpYm9tcHRhcmdldC5ydGwuY3Vk YS5zbyBsaWJvbXAtMTMuMC4wXzEKK2xpYm9tcHRhcmdldC5ydGwueDg2XzY0LnNvIGxpYm9tcC0x My4wLjBfMQorbGliYXJjaGVyLnNvIGxpYm9tcC0xMy4wLjBfMQorbGlib21wdGFyZ2V0LnNvIGxp Ym9tcC0xMy4wLjBfMQorbGlibGxkYkludGVsRmVhdHVyZXMuc28uMTMgbGxkYi0xMy4wLjBfMQor bGliTFRPLnNvLjEzIGxsdm0xMy0xMy4wLjBfMQorbGliUmVtYXJrcy5zby4xMyBsbHZtMTMtMTMu MC4wXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2xhbmcgYi9zcmNwa2dzL2NsYW5nCmluZGV4IGNk NjBmZDdhOTgxYi4uZDYzNjZkN2QzYjk1IDEyMDAwMAotLS0gYS9zcmNwa2dzL2NsYW5nCisrKyBi L3NyY3BrZ3MvY2xhbmcKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m IGZpbGUKK2xsdm0xMwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvY2xhbmctYW5hbHl6ZXIgYi9zcmNwa2dzL2NsYW5nLWFuYWx5emVyCmluZGV4IGNkNjBm ZDdhOTgxYi4uZDYzNjZkN2QzYjk1IDEyMDAwMAotLS0gYS9zcmNwa2dzL2NsYW5nLWFuYWx5emVy CisrKyBiL3NyY3BrZ3MvY2xhbmctYW5hbHl6ZXIKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xMwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2xhbmctdG9vbHMtZXh0cmEgYi9zcmNwa2dzL2NsYW5nLXRv b2xzLWV4dHJhCmluZGV4IGNkNjBmZDdhOTgxYi4uZDYzNjZkN2QzYjk1IDEyMDAwMAotLS0gYS9z cmNwa2dzL2NsYW5nLXRvb2xzLWV4dHJhCisrKyBiL3NyY3BrZ3MvY2xhbmctdG9vbHMtZXh0cmEK QEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xMwpc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliY2xhbmcg Yi9zcmNwa2dzL2xpYmNsYW5nCmluZGV4IGNkNjBmZDdhOTgxYi4uZDYzNjZkN2QzYjk1IDEyMDAw MAotLS0gYS9zcmNwa2dzL2xpYmNsYW5nCisrKyBiL3NyY3BrZ3MvbGliY2xhbmcKQEAgLTEgKzEg QEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xMwpcIE5vIG5ld2xp bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliY2xhbmctY3BwIGIvc3Jj cGtncy9saWJjbGFuZy1jcHAKaW5kZXggY2Q2MGZkN2E5ODFiLi5kNjM2NmQ3ZDNiOTUgMTIwMDAw Ci0tLSBhL3NyY3BrZ3MvbGliY2xhbmctY3BwCisrKyBiL3NyY3BrZ3MvbGliY2xhbmctY3BwCkBA IC0xICsxIEBACi1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTMKXCBO byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmN4eCBiL3Ny Y3BrZ3MvbGliY3h4CmluZGV4IGNkNjBmZDdhOTgxYi4uZDYzNjZkN2QzYjk1IDEyMDAwMAotLS0g YS9zcmNwa2dzL2xpYmN4eAorKysgYi9zcmNwa2dzL2xpYmN4eApAQCAtMSArMSBAQAotbGx2bTEy ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTEzClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJjeHgtZGV2ZWwgYi9zcmNwa2dzL2xpYmN4 eC1kZXZlbAppbmRleCBjZDYwZmQ3YTk4MWIuLmQ2MzY2ZDdkM2I5NSAxMjAwMDAKLS0tIGEvc3Jj cGtncy9saWJjeHgtZGV2ZWwKKysrIGIvc3JjcGtncy9saWJjeHgtZGV2ZWwKQEAgLTEgKzEgQEAK LWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xMwpcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliY3h4YWJpIGIvc3JjcGtncy9s aWJjeHhhYmkKaW5kZXggY2Q2MGZkN2E5ODFiLi5kNjM2NmQ3ZDNiOTUgMTIwMDAwCi0tLSBhL3Ny Y3BrZ3MvbGliY3h4YWJpCisrKyBiL3NyY3BrZ3MvbGliY3h4YWJpCkBAIC0xICsxIEBACi1sbHZt MTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTMKXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmN4eGFiaS1kZXZlbCBiL3NyY3BrZ3Mv bGliY3h4YWJpLWRldmVsCmluZGV4IGNkNjBmZDdhOTgxYi4uZDYzNjZkN2QzYjk1IDEyMDAwMAot LS0gYS9zcmNwa2dzL2xpYmN4eGFiaS1kZXZlbAorKysgYi9zcmNwa2dzL2xpYmN4eGFiaS1kZXZl bApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTEz ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJsbHZt MTMgYi9zcmNwa2dzL2xpYmxsdm0xMwpuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAw MDAwMDAuLmQ2MzY2ZDdkM2I5NQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGlibGx2bTEz CkBAIC0wLDAgKzEgQEAKK2xsdm0xMwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvbGlib21wIGIvc3JjcGtncy9saWJvbXAKaW5kZXggY2Q2MGZkN2E5ODFi Li5kNjM2NmQ3ZDNiOTUgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGlib21wCisrKyBiL3NyY3BrZ3Mv bGlib21wCkBAIC0xICsxIEBACi1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCits bHZtMTMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xp Ym9tcC1kZXZlbCBiL3NyY3BrZ3MvbGlib21wLWRldmVsCmluZGV4IGNkNjBmZDdhOTgxYi4uZDYz NjZkN2QzYjk1IDEyMDAwMAotLS0gYS9zcmNwa2dzL2xpYm9tcC1kZXZlbAorKysgYi9zcmNwa2dz L2xpYm9tcC1kZXZlbApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg ZmlsZQorbGx2bTEzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9sbGQgYi9zcmNwa2dzL2xsZAppbmRleCBjZDYwZmQ3YTk4MWIuLmQ2MzY2ZDdkM2I5NSAx MjAwMDAKLS0tIGEvc3JjcGtncy9sbGQKKysrIGIvc3JjcGtncy9sbGQKQEAgLTEgKzEgQEAKLWxs dm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xMwpcIE5vIG5ld2xpbmUgYXQg ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGxkLWRldmVsIGIvc3JjcGtncy9sbGQt ZGV2ZWwKaW5kZXggY2Q2MGZkN2E5ODFiLi5kNjM2NmQ3ZDNiOTUgMTIwMDAwCi0tLSBhL3NyY3Br Z3MvbGxkLWRldmVsCisrKyBiL3NyY3BrZ3MvbGxkLWRldmVsCkBAIC0xICsxIEBACi1sbHZtMTIK XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTMKXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsZGIgYi9zcmNwa2dzL2xsZGIKaW5kZXggY2Q2 MGZkN2E5ODFiLi5kNjM2NmQ3ZDNiOTUgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGxkYgorKysgYi9z cmNwa2dzL2xsZGIKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKK2xsdm0xMwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbGxkYi1kZXZlbCBiL3NyY3BrZ3MvbGxkYi1kZXZlbAppbmRleCBjZDYwZmQ3YTk4MWIuLmQ2 MzY2ZDdkM2I5NSAxMjAwMDAKLS0tIGEvc3JjcGtncy9sbGRiLWRldmVsCisrKyBiL3NyY3BrZ3Mv bGxkYi1kZXZlbApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls ZQorbGx2bTEzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9sbHZtLWxpYnVud2luZCBiL3NyY3BrZ3MvbGx2bS1saWJ1bndpbmQKaW5kZXggY2Q2MGZkN2E5 ODFiLi5kNjM2NmQ3ZDNiOTUgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bS1saWJ1bndpbmQKKysr IGIvc3JjcGtncy9sbHZtLWxpYnVud2luZApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQorbGx2bTEzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9sbHZtLWxpYnVud2luZC1kZXZlbCBiL3NyY3BrZ3MvbGx2bS1saWJ1 bndpbmQtZGV2ZWwKaW5kZXggY2Q2MGZkN2E5ODFiLi5kNjM2NmQ3ZDNiOTUgMTIwMDAwCi0tLSBh L3NyY3BrZ3MvbGx2bS1saWJ1bndpbmQtZGV2ZWwKKysrIGIvc3JjcGtncy9sbHZtLWxpYnVud2lu ZC1kZXZlbApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQor bGx2bTEzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9s bHZtMTMvZmlsZXMvbGx2bS1Db25maWctbGx2bS1jb25maWcuaCBiL3NyY3BrZ3MvbGx2bTEzL2Zp bGVzL2xsdm0tQ29uZmlnLWxsdm0tY29uZmlnLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi4yZmEwOGM5YmU2OTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xs dm0xMy9maWxlcy9sbHZtLUNvbmZpZy1sbHZtLWNvbmZpZy5oCkBAIC0wLDAgKzEsOSBAQAorI2lu Y2x1ZGUgPGJpdHMvd29yZHNpemUuaD4KKworI2lmIF9fV09SRFNJWkUgPT0gMzIKKyNpbmNsdWRl ICJsbHZtLWNvbmZpZy0zMi5oIgorI2VsaWYgX19XT1JEU0laRSA9PSA2NAorI2luY2x1ZGUgImxs dm0tY29uZmlnLTY0LmgiCisjZWxzZQorI2Vycm9yICJVbmtub3duIHdvcmQgc2l6ZSIKKyNlbmRp ZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9jbGFuZy0wMDEtZml4LXVud2lu ZC1jaGFpbi1pbmNsdXNpb24ucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2NsYW5nLTAw MS1maXgtdW53aW5kLWNoYWluLWluY2x1c2lvbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLmU0ZWFhNzc4M2U3YQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvbGx2bTEzL3BhdGNoZXMvY2xhbmctMDAxLWZpeC11bndpbmQtY2hhaW4taW5jbHVzaW9uLnBh dGNoCkBAIC0wLDAgKzEsNDQgQEAKK0Zyb20gMzUyOTc0MTY5ZjBkMmI1ZGEzZDUzMjFmNTg4ZjVl M2I1OTQxMzMwZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFuZHJlYSBCcmFuY2Fs ZW9uaSA8bWl3YXhlQGdtYWlsLmNvbT4KK0RhdGU6IFR1ZSwgOCBTZXAgMjAxNSAyMjoxNDo1NyAr MDIwMAorU3ViamVjdDogW1BBVENIIDIvN10gZml4IHVud2luZCBjaGFpbiBpbmNsdXNpb24KKwor LS0tCisgbGliL0hlYWRlcnMvdW53aW5kLmggfCA5ICsrKysrLS0tLQorIDEgZmlsZSBjaGFuZ2Vk LCA1IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9saWIvSGVh ZGVycy91bndpbmQuaCBiL2xpYi9IZWFkZXJzL3Vud2luZC5oCitpbmRleCAzMDNkNzkyLi40NGUx MGNjIDEwMDY0NAorLS0tIGEvY2xhbmcvbGliL0hlYWRlcnMvdW53aW5kLmgKKysrKyBiL2NsYW5n L2xpYi9IZWFkZXJzL3Vud2luZC5oCitAQCAtOSw5ICs5LDYgQEAKKyAKKyAvKiBTZWUgIkRhdGEg RGVmaW5pdGlvbnMgZm9yIGxpYmdjY19zIiBpbiB0aGUgTGludXggU3RhbmRhcmQgQmFzZS4qLwor IAorLSNpZm5kZWYgX19DTEFOR19VTldJTkRfSAorLSNkZWZpbmUgX19DTEFOR19VTldJTkRfSAor LQorICNpZiBkZWZpbmVkKF9fQVBQTEVfXykgJiYgX19oYXNfaW5jbHVkZV9uZXh0KDx1bndpbmQu aD4pCisgLyogRGFyd2luIChmcm9tIDExLnggb24pIHByb3ZpZGUgYW4gdW53aW5kLmguIElmIHRo YXQncyBhdmFpbGFibGUsCisgICogdXNlIGl0LiBsaWJ1bndpbmQgd3JhcHMgc29tZSBvZiBpdHMg ZGVmaW5pdGlvbnMgaW4gI2lmZGVmIF9HTlVfU09VUkNFLAorQEAgLTM5LDYgKzM2LDkgQEAKKyAj IGVuZGlmCisgI2Vsc2UKKyAKKysjaWZuZGVmIF9fQ0xBTkdfVU5XSU5EX0gKKysjZGVmaW5lIF9f Q0xBTkdfVU5XSU5EX0gKKysKKyAjaW5jbHVkZSA8c3RkaW50Lmg+CisgCisgI2lmZGVmIF9fY3Bs dXNwbHVzCitAQCAtMzIyLDYgKzMyMiw3IEBAIF9VbndpbmRfUHRyIF9VbndpbmRfR2V0VGV4dFJl bEJhc2Uoc3RydWN0IF9VbndpbmRfQ29udGV4dCAqKTsKKyB9CisgI2VuZGlmCisgCisrI2VuZGlm IC8qIF9fQ0xBTkdfVU5XSU5EX0ggKi8KKysKKyAjZW5kaWYKKyAKKy0jZW5kaWYgLyogX19DTEFO R19VTldJTkRfSCAqLworLS0gCisyLjUuMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0 Y2hlcy9jbGFuZy0wMDItYWRkLW11c2wtdHJpcGxlcy5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEzL3Bh dGNoZXMvY2xhbmctMDAyLWFkZC1tdXNsLXRyaXBsZXMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yNTY4OGQ0MGRiYzIKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL2xsdm0xMy9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoCkBA IC0wLDAgKzEsMTEwIEBACistLS0gYS9jbGFuZy9saWIvRHJpdmVyL1Rvb2xDaGFpbnMvR251LmNw cAorKysrIGIvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0dudS5jcHAKK0BAIC0yMDg2LDcg KzIwODYsOCBAQCB2b2lkIEdlbmVyaWNfR0NDOjpHQ0NJbnN0YWxsYXRpb25EZXRlY3Rvcjo6QWRk RGVmYXVsdEdDQ1ByZWZpeGVzKAorICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFSTUhGVHJp cGxlc1tdID0geyJhcm0tbGludXgtZ251ZWFiaWhmIiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdobC1yZWRoYXQtbGludXgtZ251ZWFiaSIsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFybXY2aGwtc3Vz ZS1saW51eC1nbnVlYWJpIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiYXJtdjdobC1zdXNlLWxpbnV4LWdudWVhYmkifTsKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdobC1zdXNlLWxpbnV4LWdudWVhYmki LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcm12N2wt bGludXgtZ251ZWFiaWhmIn07CisgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNZWJMaWJE aXJzW10gPSB7Ii9saWIifTsKKyAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBUk1lYlRyaXBs ZXNbXSA9IHsiYXJtZWItbGludXgtZ251ZWFiaSIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgImFybWViLWxpbnV4LWFuZHJvaWRlYWJpIn07CitAQCAtMjE1 Myw4ICsyMTU0LDcgQEAgdm9pZCBHZW5lcmljX0dDQzo6R0NDSW5zdGFsbGF0aW9uRGV0ZWN0b3I6 OkFkZERlZmF1bHRHQ0NQcmVmaXhlcygKKyAgICAgICAicG93ZXJwYzY0LXN1c2UtbGludXgiLCAi cG93ZXJwYy1tb250YXZpc3RhLWxpbnV4c3BlIn07CisgICBzdGF0aWMgY29uc3QgY2hhciAqY29u c3QgUFBDTEVMaWJEaXJzW10gPSB7Ii9saWIzMiIsICIvbGliIn07CisgICBzdGF0aWMgY29uc3Qg Y2hhciAqY29uc3QgUFBDTEVUcmlwbGVzW10gPSB7InBvd2VycGNsZS1saW51eC1nbnUiLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtdW5r bm93bi1saW51eC1nbnUiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJwb3dlcnBjbGUtbGludXgtbXVzbCJ9OworKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtdW5rbm93bi1saW51eC1nbnUifTsKKyAK KyAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUEM2NExpYkRpcnNbXSA9IHsiL2xpYjY0Iiwg Ii9saWIifTsKKyAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUEM2NFRyaXBsZXNbXSA9IHsK K0BAIC0yMjM1LDYgKzIyMzUsODcgQEAgdm9pZCBHZW5lcmljX0dDQzo6R0NDSW5zdGFsbGF0aW9u RGV0ZWN0b3I6OkFkZERlZmF1bHRHQ0NQcmVmaXhlcygKKyAgICAgcmV0dXJuOworICAgfQorIAor KyAgaWYgKFRhcmdldFRyaXBsZS5pc011c2woKSkgeworKyAgICBzdGF0aWMgY29uc3QgY2hhciAq Y29uc3QgQUFyY2g2NE11c2xUcmlwbGVzW10gPSB7ImFhcmNoNjQtbGludXgtbXVzbCJ9OworKyAg ICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNSEZNdXNsVHJpcGxlc1tdID0geworKyAgICAg ICAgImFybS1saW51eC1tdXNsZWFiaWhmIiwgImFybXY3bC1saW51eC1tdXNsZWFiaWhmIgorKyAg ICB9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNTXVzbFRyaXBsZXNbXSA9IHsi YXJtLWxpbnV4LW11c2xlYWJpIn07CisrICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBYODZf NjRNdXNsVHJpcGxlc1tdID0geyJ4ODZfNjQtbGludXgtbXVzbCJ9OworKyAgICBzdGF0aWMgY29u c3QgY2hhciAqY29uc3QgWDg2TXVzbFRyaXBsZXNbXSA9IHsiaTY4Ni1saW51eC1tdXNsIn07Cisr ICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBNSVBTTXVzbFRyaXBsZXNbXSA9IHsKKysgICAg ICAgICJtaXBzLWxpbnV4LW11c2wiLCAibWlwc2VsLWxpbnV4LW11c2wiLAorKyAgICAgICAgIm1p cHNlbC1saW51eC1tdXNsaGYiLCAibWlwcy1saW51eC1tdXNsaGYiCisrICAgIH07CisrICAgIHN0 YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUENNdXNsVHJpcGxlc1tdID0geyJwb3dlcnBjLWxpbnV4 LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQ0xFTXVzbFRyaXBsZXNb XSA9IHsicG93ZXJwY2xlLWxpbnV4LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNv bnN0IFBQQzY0TXVzbFRyaXBsZXNbXSA9IHsicG93ZXJwYzY0LWxpbnV4LW11c2wifTsKKysgICAg c3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQzY0TEVNdXNsVHJpcGxlc1tdID0geyJwb3dlcnBj NjRsZS1saW51eC1tdXNsIn07CisrCisrICAgIHN3aXRjaCAoVGFyZ2V0VHJpcGxlLmdldEFyY2go KSkgeworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6YWFyY2g2NDoKKysgICAgICBMaWJEaXJzLmFw cGVuZChiZWdpbihBQXJjaDY0TGliRGlycyksIGVuZChBQXJjaDY0TGliRGlycykpOworKyAgICAg IFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKEFBcmNoNjRNdXNsVHJpcGxlcyksIGVuZChBQXJj aDY0TXVzbFRyaXBsZXMpKTsKKysgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihBQXJj aDY0TGliRGlycyksIGVuZChBQXJjaDY0TGliRGlycykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFs aWFzZXMuYXBwZW5kKGJlZ2luKEFBcmNoNjRNdXNsVHJpcGxlcyksIGVuZChBQXJjaDY0TXVzbFRy aXBsZXMpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6OmFybToKKysg ICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihBUk1MaWJEaXJzKSwgZW5kKEFSTUxpYkRpcnMpKTsK KysgICAgICBpZiAoVGFyZ2V0VHJpcGxlLmdldEVudmlyb25tZW50KCkgPT0gbGx2bTo6VHJpcGxl OjpNdXNsRUFCSUhGKSB7CisrICAgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihBUk1I Rk11c2xUcmlwbGVzKSwgZW5kKEFSTUhGTXVzbFRyaXBsZXMpKTsKKysgICAgICB9IGVsc2Ugewor KyAgICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oQVJNTXVzbFRyaXBsZXMpLCBlbmQo QVJNTXVzbFRyaXBsZXMpKTsKKysgICAgICB9CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2 bTo6VHJpcGxlOjp4ODZfNjQ6CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oWDg2XzY0TGli RGlycyksIGVuZChYODZfNjRMaWJEaXJzKSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQo YmVnaW4oWDg2XzY0TXVzbFRyaXBsZXMpLCBlbmQoWDg2XzY0TXVzbFRyaXBsZXMpKTsKKysgICAg ICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihYODZMaWJEaXJzKSwgZW5kKFg4NkxpYkRpcnMp KTsKKysgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihYODZNdXNsVHJpcGxl cyksIGVuZChYODZNdXNsVHJpcGxlcykpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGxsdm06 OlRyaXBsZTo6eDg2OgorKyAgICAgIExpYkRpcnMuYXBwZW5kKGJlZ2luKFg4NkxpYkRpcnMpLCBl bmQoWDg2TGliRGlycykpOworKyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFg4Nk11 c2xUcmlwbGVzKSwgZW5kKFg4Nk11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5h cHBlbmQoYmVnaW4oWDg2XzY0TGliRGlycyksIGVuZChYODZfNjRMaWJEaXJzKSk7CisrICAgICAg QmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2XzY0TXVzbFRyaXBsZXMpLCBlbmQo WDg2XzY0TXVzbFRyaXBsZXMpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBsbHZtOjpUcmlw bGU6Om1pcHM6CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oTUlQU0xpYkRpcnMpLCBlbmQo TUlQU0xpYkRpcnMpKTsKKysgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihNSVBTTXVz bFRyaXBsZXMpLCBlbmQoTUlQU011c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNh c2UgbGx2bTo6VHJpcGxlOjpwcGM6CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTGli RGlycyksIGVuZChQUENMaWJEaXJzKSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVn aW4oUFBDTXVzbFRyaXBsZXMpLCBlbmQoUFBDTXVzbFRyaXBsZXMpKTsKKysgICAgICBCaWFyY2hM aWJEaXJzLmFwcGVuZChiZWdpbihQUEM2NExpYkRpcnMpLCBlbmQoUFBDNjRMaWJEaXJzKSk7Cisr ICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDNjRNdXNsVHJpcGxlcyks IGVuZChQUEM2NE11c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6 VHJpcGxlOjpwcGNsZToKKysgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihQUENMRUxpYkRpcnMp LCBlbmQoUFBDTEVMaWJEaXJzKSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4o UFBDTEVNdXNsVHJpcGxlcyksIGVuZChQUENMRU11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNo TGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRMRUxpYkRpcnMpLCBlbmQoUFBDNjRMRUxpYkRpcnMp KTsKKysgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUEM2NExFTXVzbFRy aXBsZXMpLCBlbmQoUFBDNjRMRU11c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNh c2UgbGx2bTo6VHJpcGxlOjpwcGM2NDoKKysgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihQUEM2 NExpYkRpcnMpLCBlbmQoUFBDNjRMaWJEaXJzKSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBl bmQoYmVnaW4oUFBDNjRNdXNsVHJpcGxlcyksIGVuZChQUEM2NE11c2xUcmlwbGVzKSk7CisrICAg ICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTGliRGlycyksIGVuZChQUENMaWJEaXJz KSk7CisrICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTXVzbFRyaXBs ZXMpLCBlbmQoUFBDTXVzbFRyaXBsZXMpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBsbHZt OjpUcmlwbGU6OnBwYzY0bGU6CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRMRUxp YkRpcnMpLCBlbmQoUFBDNjRMRUxpYkRpcnMpKTsKKysgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVu ZChiZWdpbihQUEM2NExFTXVzbFRyaXBsZXMpLCBlbmQoUFBDNjRMRU11c2xUcmlwbGVzKSk7Cisr ICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTEVMaWJEaXJzKSwgZW5kKFBQQ0xF TGliRGlycykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQ0xF TXVzbFRyaXBsZXMpLCBlbmQoUFBDTEVNdXNsVHJpcGxlcykpOworKyAgICAgIGJyZWFrOworKyAg ICBkZWZhdWx0OgorKyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIFRyaXBsZUFsaWFzZXMucHVz aF9iYWNrKFRhcmdldFRyaXBsZS5zdHIoKSk7CisrICAgIGlmIChUYXJnZXRUcmlwbGUuc3RyKCkg IT0gQmlhcmNoVHJpcGxlLnN0cigpKQorKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMucHVzaF9i YWNrKEJpYXJjaFRyaXBsZS5zdHIoKSk7CisrICAgIHJldHVybjsKKysgIH0KKysKKyAgIC8vIEFu ZHJvaWQgdGFyZ2V0cyBzaG91bGQgbm90IHVzZSBHTlUvTGludXggdG9vbHMgb3IgbGlicmFyaWVz LgorICAgaWYgKFRhcmdldFRyaXBsZS5pc0FuZHJvaWQoKSkgeworICAgICBzdGF0aWMgY29uc3Qg Y2hhciAqY29uc3QgQUFyY2g2NEFuZHJvaWRUcmlwbGVzW10gPSB7CmRpZmYgLS1naXQgYS9zcmNw a2dzL2xsdm0xMy9wYXRjaGVzL2NsYW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBh dGNoIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5r ZXItcGF0aC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjRh ZDY0MTJkMWU2YwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvY2xh bmctMDAzLXBwYzY0LWR5bmFtaWMtbGlua2VyLXBhdGgucGF0Y2gKQEAgLTAsMCArMSwxMyBAQAor LS0tIGEvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0xpbnV4LmNwcAorKysrIGIvY2xhbmcv bGliL0RyaXZlci9Ub29sQ2hhaW5zL0xpbnV4LmNwcAorQEAgLTUwNCwxMCArNTA0LDYgQEAgc3Rk OjpzdHJpbmcgTGludXg6OmdldER5bmFtaWNMaW5rZXIoY29uc3QgQXJnTGlzdCAmQXJncykgY29u c3QgeworICAgICBMb2FkZXIgPSAibGQuc28uMSI7CisgICAgIGJyZWFrOworICAgY2FzZSBsbHZt OjpUcmlwbGU6OnBwYzY0OgorLSAgICBMaWJEaXIgPSAibGliNjQiOworLSAgICBMb2FkZXIgPQor LSAgICAgICAgKHRvb2xzOjpwcGM6Omhhc1BQQ0FiaUFyZyhBcmdzLCAiZWxmdjIiKSkgPyAibGQ2 NC5zby4yIiA6ICJsZDY0LnNvLjEiOworLSAgICBicmVhazsKKyAgIGNhc2UgbGx2bTo6VHJpcGxl OjpwcGM2NGxlOgorICAgICBMaWJEaXIgPSAibGliNjQiOworICAgICBMb2FkZXIgPQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9jbGFuZy0wMDQtcHBjNjQtbXVzbC1lbGZ2Mi5w YXRjaCBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvY2xhbmctMDA0LXBwYzY0LW11c2wtZWxmdjIu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yMWZjODAwM2M1 ZjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2NsYW5nLTAwNC1w cGM2NC1tdXNsLWVsZnYyLnBhdGNoCkBAIC0wLDAgKzEsNDggQEAKKy0tLSBhL2NsYW5nL2xpYi9C YXNpYy9UYXJnZXRzL1BQQy5oCisrKysgYi9jbGFuZy9saWIvQmFzaWMvVGFyZ2V0cy9QUEMuaAor QEAgLTQxNSwxMSArNDE1LDEwIEBAIHB1YmxpYzoKKyAgICAgICBMb25nRG91YmxlRm9ybWF0ID0g Jmxsdm06OkFQRmxvYXQ6OklFRUVkb3VibGUoKTsKKyAgICAgfSBlbHNlIGlmICgoVHJpcGxlLmdl dEFyY2goKSA9PSBsbHZtOjpUcmlwbGU6OnBwYzY0bGUpKSB7CisgICAgICAgRGF0YUxheW91dCA9 ICJlLW06ZS1pNjQ6NjQtbjMyOjY0IjsKKy0gICAgICBBQkkgPSAiZWxmdjIiOworICAgICB9IGVs c2UgeworICAgICAgIERhdGFMYXlvdXQgPSAiRS1tOmUtaTY0OjY0LW4zMjo2NCI7CistICAgICAg QUJJID0gImVsZnYxIjsKKyAgICAgfQorKyAgICBBQkkgPSAiZWxmdjIiOworIAorICAgICBpZiAo VHJpcGxlLmlzT1NGcmVlQlNEKCkgfHwgVHJpcGxlLmlzT1NPcGVuQlNEKCkgfHwgVHJpcGxlLmlz TXVzbCgpKSB7CisgICAgICAgTG9uZ0RvdWJsZVdpZHRoID0gTG9uZ0RvdWJsZUFsaWduID0gNjQ7 CistLS0gYS9jbGFuZy9saWIvQ29kZUdlbi9UYXJnZXRJbmZvLmNwcAorKysrIGIvY2xhbmcvbGli L0NvZGVHZW4vVGFyZ2V0SW5mby5jcHAKK0BAIC0xMDkyNyw5ICsxMDkyNyw5IEBAIGNvbnN0IFRh cmdldENvZGVHZW5JbmZvICZDb2RlR2VuTW9kdWxlOjpnZXRUYXJnZXRDb2RlR2VuSW5mbygpIHsK KyAgICAgICByZXR1cm4gU2V0Q0dJbmZvKG5ldyBBSVhUYXJnZXRDb2RlR2VuSW5mbyhUeXBlcywg LypJczY0Qml0Ki8gdHJ1ZSkpOworIAorICAgICBpZiAoVHJpcGxlLmlzT1NCaW5Gb3JtYXRFTEYo KSkgeworLSAgICAgIFBQQzY0X1NWUjRfQUJJSW5mbzo6QUJJS2luZCBLaW5kID0gUFBDNjRfU1ZS NF9BQklJbmZvOjpFTEZ2MTsKKy0gICAgICBpZiAoZ2V0VGFyZ2V0KCkuZ2V0QUJJKCkgPT0gImVs ZnYyIikKKy0gICAgICAgIEtpbmQgPSBQUEM2NF9TVlI0X0FCSUluZm86OkVMRnYyOworKyAgICAg IFBQQzY0X1NWUjRfQUJJSW5mbzo6QUJJS2luZCBLaW5kID0gUFBDNjRfU1ZSNF9BQklJbmZvOjpF TEZ2MjsKKysgICAgICBpZiAoZ2V0VGFyZ2V0KCkuZ2V0QUJJKCkgPT0gImVsZnYxIikKKysgICAg ICAgIEtpbmQgPSBQUEM2NF9TVlI0X0FCSUluZm86OkVMRnYxOworICAgICAgIGJvb2wgSXNTb2Z0 RmxvYXQgPSBDb2RlR2VuT3B0cy5GbG9hdEFCSSA9PSAic29mdCI7CisgCisgICAgICAgcmV0dXJu IFNldENHSW5mbygKKy0tLSBhL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9DbGFuZy5jcHAK KysrKyBiL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9DbGFuZy5jcHAKK0BAIC0xOTIwLDE0 ICsxOTIwLDcgQEAgdm9pZCBDbGFuZzo6QWRkUFBDVGFyZ2V0QXJncyhjb25zdCBBcmdMaXN0ICZB cmdzLAorICAgY29uc3QgbGx2bTo6VHJpcGxlICZUID0gZ2V0VG9vbENoYWluKCkuZ2V0VHJpcGxl KCk7CisgICBpZiAoVC5pc09TQmluRm9ybWF0RUxGKCkpIHsKKyAgICAgc3dpdGNoIChnZXRUb29s Q2hhaW4oKS5nZXRBcmNoKCkpIHsKKy0gICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0OiB7Cist ICAgICAgaWYgKChULmlzT1NGcmVlQlNEKCkgJiYgVC5nZXRPU01ham9yVmVyc2lvbigpID49IDEz KSB8fAorLSAgICAgICAgICBULmlzT1NPcGVuQlNEKCkgfHwgVC5pc011c2woKSkKKy0gICAgICAg IEFCSU5hbWUgPSAiZWxmdjIiOworLSAgICAgIGVsc2UKKy0gICAgICAgIEFCSU5hbWUgPSAiZWxm djEiOworLSAgICAgIGJyZWFrOworLSAgICB9CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2 NDoKKyAgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0bGU6CisgICAgICAgQUJJTmFtZSA9ICJl bGZ2MiI7CisgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMy9wYXRjaGVz L2NvbXBpbGVyLXJ0LWFhcmNoNjQtdWNvbnRleHQucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMy9wYXRj aGVzL2NvbXBpbGVyLXJ0LWFhcmNoNjQtdWNvbnRleHQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi44OTNjMDU5ZDdiOGQKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL2xsdm0xMy9wYXRjaGVzL2NvbXBpbGVyLXJ0LWFhcmNoNjQtdWNvbnRleHQucGF0Y2gK QEAgLTAsMCArMSwxMSBAQAorLS0tIGEvY29tcGlsZXItcnQvbGliL3Nhbml0aXplcl9jb21tb24v c2FuaXRpemVyX2xpbnV4LmNwcC5vcmlnCisrKysgYi9jb21waWxlci1ydC9saWIvc2FuaXRpemVy X2NvbW1vbi9zYW5pdGl6ZXJfbGludXguY3BwCitAQCAtMTc5OSw3ICsxNzk5LDcgQEAKKyAKKyBz dGF0aWMgYm9vbCBBYXJjaDY0R2V0RVNSKHVjb250ZXh0X3QgKnVjb250ZXh0LCB1NjQgKmVzcikg eworICAgc3RhdGljIGNvbnN0IHUzMiBrRXNyTWFnaWMgPSAweDQ1NTM1MjAxOworLSAgdTggKmF1 eCA9IHVjb250ZXh0LT51Y19tY29udGV4dC5fX3Jlc2VydmVkOworKyAgdTggKmF1eCA9IHJlaW50 ZXJwcmV0X2Nhc3Q8dTggKj4odWNvbnRleHQtPnVjX21jb250ZXh0Ll9fcmVzZXJ2ZWQpOworICAg d2hpbGUgKHRydWUpIHsKKyAgICAgX2FhcmNoNjRfY3R4ICpjdHggPSAoX2FhcmNoNjRfY3R4ICop YXV4OworICAgICBpZiAoY3R4LT5zaXplID09IDApIGJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9sbHZtMTMvcGF0Y2hlcy9jb21waWxlci1ydC1zYW5pdGl6ZXItcHBjNjQtbXVzbC5wYXRjaCBi L3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvY29tcGlsZXItcnQtc2FuaXRpemVyLXBwYzY0LW11c2wu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zNWYxNmQyNGYz NDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2NvbXBpbGVyLXJ0 LXNhbml0aXplci1wcGM2NC1tdXNsLnBhdGNoCkBAIC0wLDAgKzEsMzUgQEAKKy0tLSBhL2NvbXBp bGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9saW51eC5jcHAKKysrKyBiL2Nv bXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9saW51eC5jcHAKK0BAIC03 NCw2ICs3NCwxMCBAQAorICNpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgorICNlbmRpZgorIAorKyNp ZiBTQU5JVElaRVJfTElOVVggJiYgZGVmaW5lZChfX3Bvd2VycGNfXykKKysjaW5jbHVkZSA8YXNt L3B0cmFjZS5oPgorKyNlbmRpZgorKworICNpZiBTQU5JVElaRVJfTElOVVggJiYgIVNBTklUSVpF Ul9BTkRST0lECisgI2luY2x1ZGUgPHN5cy9wZXJzb25hbGl0eS5oPgorICNlbmRpZgorLS0tIGEv Y29tcGlsZXItcnQvbGliL3Nhbml0aXplcl9jb21tb24vc2FuaXRpemVyX3BsYXRmb3JtX2xpbWl0 c19wb3NpeC5jcHAKKysrKyBiL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0 aXplcl9wbGF0Zm9ybV9saW1pdHNfcG9zaXguY3BwCitAQCAtOTIsNyArOTIsNyBAQAorICMgaW5j bHVkZSA8dXRpbWUuaD4KKyAjIGluY2x1ZGUgPHN5cy9wdHJhY2UuaD4KKyAjaWYgZGVmaW5lZChf X21pcHM2NCkgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBc CistICAgIFNBTklUSVpFUl9SSVNDVjY0CisrICAgIGRlZmluZWQoX19wb3dlcnBjX18pIHx8IFNB TklUSVpFUl9SSVNDVjY0CisgIyAgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorICMgIGlmZGVmIF9f YXJtX18KKyB0eXBlZGVmIHN0cnVjdCB1c2VyX2ZwcmVncyBlbGZfZnByZWdzZXRfdDsKKy0tLSBh L2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9zdG9wdGhld29ybGRf bGludXhfbGliY2RlcC5jcHAKKysrKyBiL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9u L3Nhbml0aXplcl9zdG9wdGhld29ybGRfbGludXhfbGliY2RlcC5jcHAKK0BAIC0zMSw3ICszMSw3 IEBACisgI2luY2x1ZGUgPHN5cy90eXBlcy5oPiAvLyBmb3IgcGlkX3QKKyAjaW5jbHVkZSA8c3lz L3Vpby5oPiAvLyBmb3IgaW92ZWMKKyAjaW5jbHVkZSA8ZWxmLmg+IC8vIGZvciBOVF9QUlNUQVRV UworLSNpZiAoZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgU0FOSVRJWkVSX1JJU0NWNjQpICYmICFT QU5JVElaRVJfQU5EUk9JRAorKyNpZiAoZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChf X3Bvd2VycGNfXykgfHwgU0FOSVRJWkVSX1JJU0NWNjQpICYmICFTQU5JVElaRVJfQU5EUk9JRAor IC8vIEdMSUJDIDIuMjArIHN5cy91c2VyIGRvZXMgbm90IGluY2x1ZGUgYXNtL3B0cmFjZS5oCisg IyBpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisgI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xs dm0xMy9wYXRjaGVzL2NvbXBpbGVyLXJ0LXhyYXktcHBjNjQtbXVzbC5wYXRjaCBiL3NyY3BrZ3Mv bGx2bTEzL3BhdGNoZXMvY29tcGlsZXItcnQteHJheS1wcGM2NC1tdXNsLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDBiNjFjODBjODk3Ci0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9jb21waWxlci1ydC14cmF5LXBwYzY0LW11 c2wucGF0Y2gKQEAgLTAsMCArMSw2MiBAQAorLS0tIGEvY29tcGlsZXItcnQvbGliL3hyYXkveHJh eV9wb3dlcnBjNjQuaW5jCisrKysgYi9jb21waWxlci1ydC9saWIveHJheS94cmF5X3Bvd2VycGM2 NC5pbmMKK0BAIC0xMiw3ICsxMiwxMyBAQAorIAorICNpbmNsdWRlIDxjc3RkaW50PgorICNpbmNs dWRlIDxtdXRleD4KKysjaWZkZWYgX19HTElCQ19fCisgI2luY2x1ZGUgPHN5cy9wbGF0Zm9ybS9w cGMuaD4KKysjZWxzZQorKyNpbmNsdWRlIDxjY3R5cGU+CisrI2luY2x1ZGUgPGNzdHJpbmc+Cisr I2luY2x1ZGUgPGNzdGRsaWI+CisrI2VuZGlmCisgCisgI2luY2x1ZGUgInhyYXlfZGVmcy5oIgor IAorQEAgLTIwLDEzICsyNiw0NSBAQCBuYW1lc3BhY2UgX194cmF5IHsKKyAKKyBBTFdBWVNfSU5M SU5FIHVpbnQ2NF90IHJlYWRUU0ModWludDhfdCAmQ1BVKSBYUkFZX05FVkVSX0lOU1RSVU1FTlQg eworICAgQ1BVID0gMDsKKysjaWZkZWYgX19HTElCQ19fCisgICByZXR1cm4gX19wcGNfZ2V0X3Rp bWViYXNlKCk7CisrI2Vsc2UKKysgIHJldHVybiBfX2J1aWx0aW5fcHBjX2dldF90aW1lYmFzZSgp OworKyNlbmRpZgorIH0KKyAKKyBpbmxpbmUgdWludDY0X3QgZ2V0VFNDRnJlcXVlbmN5KCkgWFJB WV9ORVZFUl9JTlNUUlVNRU5UIHsKKyAgIHN0YXRpYyBzdGQ6Om11dGV4IE07CisgICBzdGQ6Omxv Y2tfZ3VhcmQ8c3RkOjptdXRleD4gR3VhcmQoTSk7CisrI2lmZGVmIF9fR0xJQkNfXworICAgcmV0 dXJuIF9fcHBjX2dldF90aW1lYmFzZV9mcmVxKCk7CisrI2Vsc2UKKysgIC8qIEZJWE1FOiBhIGxl c3MgZGlydHkgaW1wbGVtZW50YXRpb24/ICovCisrICBzdGF0aWMgdWludDY0X3QgYmFzZTsKKysg IGlmICghYmFzZSkgeworKyAgICBGSUxFICpmID0gZm9wZW4oIi9wcm9jL2NwdWluZm8iLCAicmIi KTsKKysgICAgaWYgKGYpIHsKKysgICAgICBzc2l6ZV90IG5yOworKyAgICAgIC8qIHZpcnR1YWxs eSBhbHdheXMgYmlnIGVub3VnaCB0byBob2xkIHRoZSBsaW5lICovCisrICAgICAgY2hhciBidWZb NTEyXTsKKysgICAgICB3aGlsZSAoZmdldHMoYnVmLCBzaXplb2YoYnVmKSwgZikpIHsKKysgICAg ICAgIGNoYXIgKnJldCA9IHN0cnN0cihidWYsICJ0aW1lYmFzZSIpOworKyAgICAgICAgaWYgKCFy ZXQpIHsKKysgICAgICAgICAgY29udGludWU7CisrICAgICAgICB9CisrICAgICAgICByZXQgKz0g c2l6ZW9mKCJ0aW1lYmFzZSIpIC0gMTsKKysgICAgICAgIHJldCA9IHN0cmNocihyZXQsICc6Jyk7 CisrICAgICAgICBpZiAoIXJldCkgeworKyAgICAgICAgICBjb250aW51ZTsKKysgICAgICAgIH0K KysgICAgICAgIGJhc2UgPSBzdHJ0b3VsKHJldCArIDEsIG51bGxwdHIsIDEwKTsKKysgICAgICAg IGJyZWFrOworKyAgICAgIH0KKysgICAgICBmY2xvc2UoZik7CisrICAgIH0KKysgIH0KKysgIHJl dHVybiBiYXNlOworKyNlbmRpZgorIH0KKyAKKyBpbmxpbmUgYm9vbCBwcm9iZVJlcXVpcmVkQ1BV RmVhdHVyZXMoKSBYUkFZX05FVkVSX0lOU1RSVU1FTlQgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9s bHZtMTMvcGF0Y2hlcy9saWJjeHgtbXVzbC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMv bGliY3h4LW11c2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li5iYmQzMWZmYzJjYjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVz L2xpYmN4eC1tdXNsLnBhdGNoCkBAIC0wLDAgKzEsMjYgQEAKKy0tLSBhL2xpYmN4eC9pbmNsdWRl L2xvY2FsZQorKysrIGIvbGliY3h4L2luY2x1ZGUvbG9jYWxlCitAQCAtNzQyLDcgKzc0MiwxMSBA QCBfX251bV9nZXRfc2lnbmVkX2ludGVncmFsKGNvbnN0IGNoYXIqIF9fYSwgY29uc3QgY2hhciog X19hX2VuZCwKKyAgICAgICAgIHR5cGVuYW1lIHJlbW92ZV9yZWZlcmVuY2U8ZGVjbHR5cGUoZXJy bm8pPjo6dHlwZSBfX3NhdmVfZXJybm8gPSBlcnJubzsKKyAgICAgICAgIGVycm5vID0gMDsKKyAg ICAgICAgIGNoYXIgKl9fcDI7CisrI2lmIGRlZmluZWQoX19saW51eF9fKSAmJiAhZGVmaW5lZChf X0dMSUJDX18pCisrICAgICAgICBsb25nIGxvbmcgX19sbCA9IHN0cnRvbGwoX19hLCAmX19wMiwg X19iYXNlKTsKKysjZWxzZQorICAgICAgICAgbG9uZyBsb25nIF9fbGwgPSBzdHJ0b2xsX2woX19h LCAmX19wMiwgX19iYXNlLCBfTElCQ1BQX0dFVF9DX0xPQ0FMRSk7CisrI2VuZGlmCisgICAgICAg ICB0eXBlbmFtZSByZW1vdmVfcmVmZXJlbmNlPGRlY2x0eXBlKGVycm5vKT46OnR5cGUgX19jdXJy ZW50X2Vycm5vID0gZXJybm87CisgICAgICAgICBpZiAoX19jdXJyZW50X2Vycm5vID09IDApCisg ICAgICAgICAgICAgZXJybm8gPSBfX3NhdmVfZXJybm87CitAQCAtNzgyLDcgKzc4NiwxMSBAQCBf X251bV9nZXRfdW5zaWduZWRfaW50ZWdyYWwoY29uc3QgY2hhciogX19hLCBjb25zdCBjaGFyKiBf X2FfZW5kLAorICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX3JlZmVyZW5jZTxkZWNsdHlwZShlcnJu byk+Ojp0eXBlIF9fc2F2ZV9lcnJubyA9IGVycm5vOworICAgICAgICAgZXJybm8gPSAwOworICAg ICAgICAgY2hhciAqX19wMjsKKysjaWYgZGVmaW5lZChfX2xpbnV4X18pICYmICFkZWZpbmVkKF9f R0xJQkNfXykKKysgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2xsID0gc3RydG91bGwoX19h LCAmX19wMiwgX19iYXNlKTsKKysjZWxzZQorICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9f bGwgPSBzdHJ0b3VsbF9sKF9fYSwgJl9fcDIsIF9fYmFzZSwgX0xJQkNQUF9HRVRfQ19MT0NBTEUp OworKyNlbmRpZgorICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX3JlZmVyZW5jZTxkZWNsdHlwZShl cnJubyk+Ojp0eXBlIF9fY3VycmVudF9lcnJubyA9IGVycm5vOworICAgICAgICAgaWYgKF9fY3Vy cmVudF9lcnJubyA9PSAwKQorICAgICAgICAgICAgIGVycm5vID0gX19zYXZlX2Vycm5vOwpkaWZm IC0tZ2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9saWJjeHgtcHBjLnBhdGNoIGIvc3JjcGtn cy9sbHZtMTMvcGF0Y2hlcy9saWJjeHgtcHBjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uN2E5MmY4MDA0ZTFjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9sbHZtMTMvcGF0Y2hlcy9saWJjeHgtcHBjLnBhdGNoCkBAIC0wLDAgKzEsMjIgQEAKK1RoaXMg ZW5zdXJlcyBgaXNfaWVjNTU5YCBpcyBkZWZpbmVkIGNvcnJlY3RseSB1bmRlciBhbGwgbG9uZyBk b3VibGUgQUJJcywKK2luY2x1ZGluZyBtdXNsIGFuZCBpdHMgNjQtYml0IGxvbmcgZG91YmxlLiBB bHNvLCBgX19wcGNfX2Agb3IgYF9fcHBjNjRfX2AKK2lzIG5vdCBkZWZpbmVkIG9uIGdjYy4KKwor LS0tIGEvbGliY3h4L2luY2x1ZGUvbGltaXRzCisrKysgYi9saWJjeHgvaW5jbHVkZS9saW1pdHMK K0BAIC00MjYsOCArNDI2LDE0IEBAIHByb3RlY3RlZDoKKyAgICAgX0xJQkNQUF9JTkxJTkVfVklT SUJJTElUWSBzdGF0aWMgX0xJQkNQUF9DT05TVEVYUFIgdHlwZSBzaWduYWxpbmdfTmFOKCkgX05P RVhDRVBUIHtyZXR1cm4gX19idWlsdGluX25hbnNsKCIiKTt9CisgICAgIF9MSUJDUFBfSU5MSU5F X1ZJU0lCSUxJVFkgc3RhdGljIF9MSUJDUFBfQ09OU1RFWFBSIHR5cGUgZGVub3JtX21pbigpIF9O T0VYQ0VQVCB7cmV0dXJuIF9fTERCTF9ERU5PUk1fTUlOX187fQorIAorLSNpZiAoZGVmaW5lZChf X3BwY19fKSB8fCBkZWZpbmVkKF9fcHBjNjRfXykpCisrI2lmIGRlZmluZWQoX19wb3dlcnBjX18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysjaWYgKF9fTERCTF9NQVhfRVhQX18gPiBfX0RC TF9NQVhfRVhQX18pIHx8IChfX0xEQkxfTUFOVF9ESUdfXyA9PSBfX0RCTF9NQU5UX0RJR19fKQor KyAgICAvKiBJRUVFIDc1NCBxdWFkcnVwbGUgb3IgZG91YmxlIHByZWNpc2lvbiAqLworKyAgICBz dGF0aWMgX0xJQkNQUF9DT05TVEVYUFIgY29uc3QgYm9vbCBpc19pZWM1NTkgPSB0cnVlOworKyNl bHNlCisrICAgIC8qIDEyOC1iaXQgSUJNIGRvdWJsZS1kb3VibGUgKi8KKyAgICAgc3RhdGljIF9M SUJDUFBfQ09OU1RFWFBSIGNvbnN0IGJvb2wgaXNfaWVjNTU5ID0gZmFsc2U7CisrI2VuZGlmCisg I2Vsc2UKKyAgICAgc3RhdGljIF9MSUJDUFBfQ09OU1RFWFBSIGNvbnN0IGJvb2wgaXNfaWVjNTU5 ID0gdHJ1ZTsKKyAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGli Y3h4LXNzcC1ub25zaGFyZWQucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xpYmN4eC1z c3Atbm9uc2hhcmVkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uNzAyOTJiZWIyZmNkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hl cy9saWJjeHgtc3NwLW5vbnNoYXJlZC5wYXRjaApAQCAtMCwwICsxLDExIEBACistLS0gYS9saWJj eHgvQ01ha2VMaXN0cy50eHQKKysrKyBiL2xpYmN4eC9DTWFrZUxpc3RzLnR4dAorQEAgLTc2OSw2 ICs3NjksOCBAQCBmdW5jdGlvbihjeHhfbGlua19zeXN0ZW1fbGlicmFyaWVzIHRhcmdldCkKKyAg ICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7dGFyZ2V0fSBQUklWQVRFIGF0b21pYykKKyAgIGVu ZGlmKCkKKyAKKysjc3NwICB0YXJnZXRfbGlua19saWJyYXJpZXMoJHt0YXJnZXR9IFBSSVZBVEUg c3NwX25vbnNoYXJlZCkKKysKKyAgIGlmIChNSU5HVykKKyAgICAgdGFyZ2V0X2xpbmtfbGlicmFy aWVzKCR7dGFyZ2V0fSBQUklWQVRFICIke01JTkdXX0xJQlJBUklFU30iKQorICAgZW5kaWYoKQpk aWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9saWJjeHhhYmktZGwucGF0Y2ggYi9z cmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xpYmN4eGFiaS1kbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjNhMTVmOWRiOGM5OAotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGliY3h4YWJpLWRsLnBhdGNoCkBAIC0wLDAgKzEsMjUg QEAKK0Fsc28gbGluayB0byAtbGRsIHRvIHByZXZlbnQgdW5kZWZpbmVkIHJlZmVyZW5jZXMuCisK Ky0tLSBhL2xpYmN4eGFiaS9zcmMvQ01ha2VMaXN0cy50eHQKKysrKyBiL2xpYmN4eGFiaS9zcmMv Q01ha2VMaXN0cy50eHQKK0BAIC03Myw2ICs3Myw3IEBACisgICBlbmRpZigpCisgCisgICBhZGRf bGlicmFyeV9mbGFnc19pZihMSUJDWFhBQklfSEFTX0NfTElCIGMpCisrICBhZGRfbGlicmFyeV9m bGFnc19pZihMSUJDWFhBQklfSEFTX0NfTElCIGRsKQorIGVuZGlmKCkKKyAKKyBpZiAoTElCQ1hY QUJJX1VTRV9MTFZNX1VOV0lOREVSKQorLS0tIGEvbGliY3h4L0NNYWtlTGlzdHMudHh0CisrKysg Yi9saWJjeHgvQ01ha2VMaXN0cy50eHQKK0BAIC03NDUsNiArNzQ1LDEwIEBACisgICAgIHRhcmdl dF9saW5rX2xpYnJhcmllcygke3RhcmdldH0gUFJJVkFURSBtKQorICAgZW5kaWYoKQorIAorKyAg aWYgKExJQkNYWF9IQVNfQ19MSUIpCisrICAgIHRhcmdldF9saW5rX2xpYnJhcmllcygke3Rhcmdl dH0gUFJJVkFURSBkbCkKKysgIGVuZGlmKCkKKysKKyAgIGlmIChMSUJDWFhfSEFTX1JUX0xJQikK KyAgICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7dGFyZ2V0fSBQUklWQVRFIHJ0KQorICAgZW5k aWYoKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9saWJ1bndpbmQtcHBjMzIu cGF0Y2ggYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xpYnVud2luZC1wcGMzMi5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjc0YWE3NTc2ZWNmOQotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGlidW53aW5kLXBwYzMyLnBhdGNo CkBAIC0wLDAgKzEsNjMgQEAKK1RoaXMgZml4ZXMgYnVpbGQgYXQgbGVhc3Qgd2l0aCBnY2M5IHdo aWNoIGRvZXMgbm90IGRlZmluZSBgX19wcGNfX2AuCisKKy0tLSBhL2xpYnVud2luZC9pbmNsdWRl L19fbGlidW53aW5kX2NvbmZpZy5oCisrKysgYi9saWJ1bndpbmQvaW5jbHVkZS9fX2xpYnVud2lu ZF9jb25maWcuaAorQEAgLTQ5LDcgKzQ5LDcgQEAKKyAjICBkZWZpbmUgX0xJQlVOV0lORF9DT05U RVhUX1NJWkUgMTY3CisgIyAgZGVmaW5lIF9MSUJVTldJTkRfQ1VSU09SX1NJWkUgMTc5CisgIyAg ZGVmaW5lIF9MSUJVTldJTkRfSElHSEVTVF9EV0FSRl9SRUdJU1RFUiBfTElCVU5XSU5EX0hJR0hF U1RfRFdBUkZfUkVHSVNURVJfUFBDNjQKKy0jIGVsaWYgZGVmaW5lZChfX3BwY19fKQorKyMgZWxp ZiBkZWZpbmVkKF9fcG93ZXJwY19fKQorICMgIGRlZmluZSBfTElCVU5XSU5EX1RBUkdFVF9QUEMg MQorICMgIGRlZmluZSBfTElCVU5XSU5EX0NPTlRFWFRfU0laRSAxMTcKKyAjICBkZWZpbmUgX0xJ QlVOV0lORF9DVVJTT1JfU0laRSAxMjQKKy0tLSBhL2xpYnVud2luZC9zcmMvVW53aW5kUmVnaXN0 ZXJzUmVzdG9yZS5TCisrKysgYi9saWJ1bndpbmQvc3JjL1Vud2luZFJlZ2lzdGVyc1Jlc3RvcmUu UworQEAgLTM5Miw3ICszOTIsNyBAQCBMbm92ZWM6CisgICBQUEM2NF9MUigzKQorICAgYmN0cgor IAorLSNlbGlmIGRlZmluZWQoX19wcGNfXykKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwY19fKQor IAorIERFRklORV9MSUJVTldJTkRfRlVOQ1RJT04oX1pOOWxpYnVud2luZDEzUmVnaXN0ZXJzX3Bw YzZqdW1wdG9FdikKKyAvLworLS0tIGEvbGlidW53aW5kL3NyYy9VbndpbmRSZWdpc3RlcnNTYXZl LlMKKysrKyBiL2xpYnVud2luZC9zcmMvVW53aW5kUmVnaXN0ZXJzU2F2ZS5TCitAQCAtNTU0LDcg KzU1NCw3IEBAIERFRklORV9MSUJVTldJTkRfRlVOQ1RJT04oX191bndfZ2V0Y29udGV4dCkKKyAg IGJscgorIAorIAorLSNlbGlmIGRlZmluZWQoX19wcGNfXykKKysjZWxpZiBkZWZpbmVkKF9fcG93 ZXJwY19fKQorIAorIC8vCisgLy8gZXh0ZXJuIGludCB1bndfZ2V0Y29udGV4dCh1bndfY29udGV4 dF90KiB0aHJlYWRfc3RhdGUpCistLS0gYS9saWJ1bndpbmQvc3JjL2NvbmZpZy5oCisrKysgYi9s aWJ1bndpbmQvc3JjL2NvbmZpZy5oCitAQCAtOTUsMTIgKzk1LDEyIEBACisgI2RlZmluZSBfTElC VU5XSU5EX0JVSUxEX1NKTEpfQVBJUworICNlbmRpZgorIAorLSNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19wcGNfXykgfHwgZGVmaW5lZChf X3BwYzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysjaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCisgI2RlZmluZSBfTElCVU5XSU5EX1NVUFBPUlRfRlJBTUVfQVBJ UworICNlbmRpZgorIAorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0 X18pIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIGRlZmluZWQoX19w cGNfXykgfHwgZGVmaW5lZChfX3BwYzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwg ICAgICAgIFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAoIWRlZmluZWQoX19BUFBM RV9fKSAmJiBkZWZpbmVkKF9fYXJtX18pKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgIChkZWZpbmVkKF9fYXJtNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykpIHx8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgZGVmaW5lZChfX21pcHNfXykKKy0t LSBhL2xpYnVud2luZC9zcmMvbGlidW53aW5kLmNwcAorKysrIGIvbGlidW53aW5kL3NyYy9saWJ1 bndpbmQuY3BwCitAQCAtNDIsNyArNDIsNyBAQCBfTElCVU5XSU5EX0hJRERFTiBpbnQgX191bndf aW5pdF9sb2NhbCh1bndfY3Vyc29yX3QgKmN1cnNvciwKKyAjIGRlZmluZSBSRUdJU1RFUl9LSU5E IFJlZ2lzdGVyc194ODZfNjQKKyAjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgIyBkZWZp bmUgUkVHSVNURVJfS0lORCBSZWdpc3RlcnNfcHBjNjQKKy0jZWxpZiBkZWZpbmVkKF9fcHBjX18p CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGNfXykKKyAjIGRlZmluZSBSRUdJU1RFUl9LSU5EIFJl Z2lzdGVyc19wcGMKKyAjZWxpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQorICMgZGVmaW5lIFJFR0lT VEVSX0tJTkQgUmVnaXN0ZXJzX2FybTY0CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMy9wYXRj aGVzL2xsZGItbXVzbC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGxkYi1tdXNsLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNjAxYzBkMTM4NTIz Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbGRiLW11c2wucGF0 Y2gKQEAgLTAsMCArMSwzMSBAQAorLS0tIGEvbGxkYi9zb3VyY2UvUGx1Z2lucy9Qcm9jZXNzL0xp bnV4L1Byb2Nmcy5oCisrKysgYi9sbGRiL3NvdXJjZS9QbHVnaW5zL1Byb2Nlc3MvTGludXgvUHJv Y2ZzLmgKK0BAIC0xMCwyMSArMTAsMTIgQEAKKyAvLyBzeXMvcHJvY2ZzLmggb24gQW5kcm9pZC9M aW51eCBmb3IgYWxsIHN1cHBvcnRlZCBhcmNoaXRlY3R1cmVzLgorIAorICNpbmNsdWRlIDxzeXMv cHRyYWNlLmg+CisrI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKyAKKy0jaWZkZWYgX19BTkRST0lE X18KKy0jaWYgZGVmaW5lZChfX2FybTY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pCistdHlw ZWRlZiB1bnNpZ25lZCBsb25nIGVsZl9ncmVnX3Q7CistdHlwZWRlZiBlbGZfZ3JlZ190CistICAg IGVsZl9ncmVnc2V0X3RbKHNpemVvZihzdHJ1Y3QgdXNlcl9wdF9yZWdzKSAvIHNpemVvZihlbGZf Z3JlZ190KSldOworLXR5cGVkZWYgc3RydWN0IHVzZXJfZnBzaW1kX3N0YXRlIGVsZl9mcHJlZ3Nl dF90OworLSNpZm5kZWYgTlRfRlBSRUdTRVQKKy0jZGVmaW5lIE5UX0ZQUkVHU0VUIE5UX1BSRlBS RUcKKy0jZW5kaWYgLy8gTlRfRlBSRUdTRVQKKy0jZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorLSNp Zm5kZWYgTlRfRlBSRUdTRVQKKy0jZGVmaW5lIE5UX0ZQUkVHU0VUIE5UX1BSRlBSRUcKKy0jZW5k aWYgLy8gTlRfRlBSRUdTRVQKKy0jZW5kaWYKKy0jZWxzZSAvLyBfX0FORFJPSURfXworKyNpZiAh ZGVmaW5lZChfX0dMSUJDX18pICYmIGRlZmluZWQoX19wb3dlcnBjX18pCisrI2RlZmluZSBwdF9y ZWdzIG11c2xfcHRfcmVncworKyNpbmNsdWRlIDxzeXMvcHJvY2ZzLmg+CisrI3VuZGVmIHB0X3Jl Z3MKKysjZWxzZQorICNpbmNsdWRlIDxzeXMvcHJvY2ZzLmg+CistI2VuZGlmIC8vIF9fQU5EUk9J RF9fCisrI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xsdm0tMDAx LW11c2wucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xsdm0tMDAxLW11c2wucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5mMmEzZjhkNjI4MTMKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xsdm0tMDAxLW11c2wucGF0 Y2gKQEAgLTAsMCArMSw1NyBAQAorRnJvbSBmYWNhM2ZiZDE1ZDBjMzEwODQ5M2MzYzU0Y2Q5MzEz OGUwNDlhYzQzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQW5kcmVhIEJyYW5jYWxl b25pIDxtaXdheGVAZ21haWwuY29tPgorRGF0ZTogVHVlLCA4IFNlcCAyMDE1IDIyOjAzOjAyICsw MjAwCitTdWJqZWN0OiBbUEFUQ0ggMy8zXSBtdXNsCisKKy0tLQorIGluY2x1ZGUvbGx2bS9BbmFs eXNpcy9UYXJnZXRMaWJyYXJ5SW5mby5oIHwgOSArKysrKysrKysKKyBsaWIvU3VwcG9ydC9EeW5h bWljTGlicmFyeS5jcHAgICAgICAgICAgICB8IDIgKy0KKyBsaWIvU3VwcG9ydC9Vbml4L1NpZ25h bHMuaW5jICAgICAgICAgICAgICB8IDYgKysrLS0tCisgdXRpbHMvdW5pdHRlc3QvZ29vZ2xldGVz dC9zcmMvZ3Rlc3QuY2MgICAgfCAxICsKKyA1IGZpbGVzIGNoYW5nZWQsIDE3IGluc2VydGlvbnMo KyksIDYgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2xsdm0vQW5hbHlzaXMv VGFyZ2V0TGlicmFyeUluZm8uaCBiL2luY2x1ZGUvbGx2bS9BbmFseXNpcy9UYXJnZXRMaWJyYXJ5 SW5mby5oCitpbmRleCAzNGE4YTFlMy4uMTIxNGVjZTUgMTAwNjQ0CistLS0gYS9sbHZtL2luY2x1 ZGUvbGx2bS9BbmFseXNpcy9UYXJnZXRMaWJyYXJ5SW5mby5oCisrKysgYi9sbHZtL2luY2x1ZGUv bGx2bS9BbmFseXNpcy9UYXJnZXRMaWJyYXJ5SW5mby5oCitAQCAtMTgsNiArMTgsMTUgQEAKKyAj aW5jbHVkZSAibGx2bS9JUi9QYXNzTWFuYWdlci5oIgorICNpbmNsdWRlICJsbHZtL1Bhc3MuaCIK KyAKKysjdW5kZWYgZm9wZW42NAorKyN1bmRlZiBmc2Vla282NAorKyN1bmRlZiBmc3RhdDY0Cisr I3VuZGVmIGZzdGF0dmZzNjQKKysjdW5kZWYgZnRlbGxvNjQKKysjdW5kZWYgbHN0YXQ2NAorKyN1 bmRlZiBzdGF0NjQKKysjdW5kZWYgdG1wZmlsZTY0CisrCisgbmFtZXNwYWNlIGxsdm0geworIHRl bXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBBcnJheVJlZjsKKyBjbGFzcyBUcmlwbGU7CitkaWZm IC0tZ2l0IGEvbGliL1N1cHBvcnQvVW5peC9EeW5hbWljTGlicmFyeS5pbmMgYi9saWIvU3VwcG9y dC9Vbml4L0R5bmFtaWNMaWJyYXJ5LmluYworaW5kZXggYTJhMzc5OTYuLjJmODZjNDcwIDEwMDY0 NAorLS0tIGEvbGx2bS9saWIvU3VwcG9ydC9Vbml4L0R5bmFtaWNMaWJyYXJ5LmluYworKysrIGIv bGx2bS9saWIvU3VwcG9ydC9Vbml4L0R5bmFtaWNMaWJyYXJ5LmluYworQEAgLTEwMiw3ICsxMDIs NyBAQCBzdGF0aWMgdm9pZCAqRG9TZWFyY2goY29uc3QgY2hhciogU3ltYm9sTmFtZSkgeworIAor IC8vIFRoaXMgbWFjcm8gcmV0dXJucyB0aGUgYWRkcmVzcyBvZiBhIHdlbGwta25vd24sIGV4cGxp Y2l0IHN5bWJvbAorICNkZWZpbmUgRVhQTElDSVRfU1lNQk9MKFNZTSkgXAorLSAgIGlmICghc3Ry Y21wKFN5bWJvbE5hbWUsICNTWU0pKSByZXR1cm4gJlNZTQorKyAgIGlmICghc3RyY21wKFN5bWJv bE5hbWUsICNTWU0pKSByZXR1cm4gKHZvaWQgKikmU1lNCisgCisgLy8gVW5kZXIgZ2xpYmMgd2Ug aGF2ZSBhIHdlaXJkIHNpdHVhdGlvbi4gVGhlIHN0ZGVyci9vdXQvaW4gc3ltYm9scyBhcmUgYm90 aAorIC8vIG1hY3JvcyBhbmQgZ2xvYmFsIHZhcmlhYmxlcyBiZWNhdXNlIG9mIHN0YW5kYXJkcyBy ZXF1aXJlbWVudHMuIFNvLCB3ZQorZGlmZiAtLWdpdCBhL3V0aWxzL3VuaXR0ZXN0L2dvb2dsZXRl c3Qvc3JjL2d0ZXN0LmNjIGIvdXRpbHMvdW5pdHRlc3QvZ29vZ2xldGVzdC9zcmMvZ3Rlc3QuY2MK K2luZGV4IGQ4ODJhYjJlLi5mMWZiMTJkMCAxMDA2NDQKKy0tLSBhL2xsdm0vdXRpbHMvdW5pdHRl c3QvZ29vZ2xldGVzdC9zcmMvZ3Rlc3QuY2MKKysrKyBiL2xsdm0vdXRpbHMvdW5pdHRlc3QvZ29v Z2xldGVzdC9zcmMvZ3Rlc3QuY2MKK0BAIC0xMjgsNiArMTI4LDcgQEAKKyAKKyAjaWYgR1RFU1Rf Q0FOX1NUUkVBTV9SRVNVTFRTXworICMgaW5jbHVkZSA8YXJwYS9pbmV0Lmg+ICAvLyBOT0xJTlQK KysjIGluY2x1ZGUgPHN5cy9zb2NrZXQuaD4gIC8vIE5PTElOVAorICMgaW5jbHVkZSA8bmV0ZGIu aD4gIC8vIE5PTElOVAorICMgaW5jbHVkZSA8c3lzL3NvY2tldC5oPiAgLy8gTk9MSU5UCisgIyBp bmNsdWRlIDxzeXMvdHlwZXMuaD4gIC8vIE5PTElOVApkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZt MTMvcGF0Y2hlcy9sbHZtLTAwMi1tdXNsLXBwYzY0LWVsZnYyLnBhdGNoIGIvc3JjcGtncy9sbHZt MTMvcGF0Y2hlcy9sbHZtLTAwMi1tdXNsLXBwYzY0LWVsZnYyLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMDA3MWQ5NjRiZDM3Ci0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAwMi1tdXNsLXBwYzY0LWVsZnYyLnBhdGNo CkBAIC0wLDAgKzEsMzAgQEAKK1RoaXMgcGF0Y2hlcyBMTFZNIHRvIHVzZSBFTEZ2MiBvbiBwcGM2 NCB1bmNvbmRpdGlvbmFsbHkgdW5sZXNzIG92ZXJyaWRkZW4uIFdlCituZWVkIHRoaXMgYmVjYXVz ZSB1bmxpa2UgbW9zdCBkaXN0cm9zIHdlIHVzZSBFTEZ2MiBmb3IgYm90aCBnbGliYyBhbmQgbXVz bAorb24gYmlnIGVuZGlhbiBwcGM2NC4KKworZGlmZiAtLWdpdCBhL2xpYi9UYXJnZXQvUG93ZXJQ Qy9QUENUYXJnZXRNYWNoaW5lLmNwcCBiL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENUYXJnZXRNYWNo aW5lLmNwcAoraW5kZXggMDYzNDgzM2UuLmI3Y2JjMmU3IDEwMDY0NAorLS0tIGEvbGx2bS9saWIv VGFyZ2V0L1Bvd2VyUEMvUFBDVGFyZ2V0TWFjaGluZS5jcHAKKysrKyBiL2xsdm0vbGliL1Rhcmdl dC9Qb3dlclBDL1BQQ1RhcmdldE1hY2hpbmUuY3BwCitAQCAtMjIyLDkgKzIyMiw4IEBAIHN0YXRp YyBQUENUYXJnZXRNYWNoaW5lOjpQUENBQkkgY29tcHV0ZVRhcmdldEFCSShjb25zdCBUcmlwbGUg JlRULAorIAorICAgc3dpdGNoIChUVC5nZXRBcmNoKCkpIHsKKyAgIGNhc2UgVHJpcGxlOjpwcGM2 NGxlOgorLSAgICByZXR1cm4gUFBDVGFyZ2V0TWFjaGluZTo6UFBDX0FCSV9FTEZ2MjsKKyAgIGNh c2UgVHJpcGxlOjpwcGM2NDoKKy0gICAgcmV0dXJuIFBQQ1RhcmdldE1hY2hpbmU6OlBQQ19BQklf RUxGdjE7CisrICAgIHJldHVybiBQUENUYXJnZXRNYWNoaW5lOjpQUENfQUJJX0VMRnYyOworICAg ZGVmYXVsdDoKKyAgICAgcmV0dXJuIFBQQ1RhcmdldE1hY2hpbmU6OlBQQ19BQklfVU5LTk9XTjsK KyAgIH0KK2RpZmYgLS1naXQgYS90ZXN0L0NvZGVHZW4vUG93ZXJQQy9wcGM2NC1lbGYtYWJpLmxs IGIvdGVzdC9Db2RlR2VuL1Bvd2VyUEMvcHBjNjQtZWxmLWFiaS5sbAoraW5kZXggOGIxY2Y2YjUu LjI5NmEyYWZhIDEwMDY0NAorLS0tIGEvbGx2bS90ZXN0L0NvZGVHZW4vUG93ZXJQQy9wcGM2NC1l bGYtYWJpLmxsCisrKysgYi9sbHZtL3Rlc3QvQ29kZUdlbi9Qb3dlclBDL3BwYzY0LWVsZi1hYmku bGwKK0BAIC0xLDQgKzEsNSBAQAorLTsgUlVOOiBsbGMgLXZlcmlmeS1tYWNoaW5laW5zdHJzIC1t dHJpcGxlPXBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudSA8ICVzIHwgRmlsZUNoZWNrICVzIC1j aGVjay1wcmVmaXg9Q0hFQ0stRUxGdjEKKys7IFJVTjogbGxjIC12ZXJpZnktbWFjaGluZWluc3Ry cyAtbXRyaXBsZT1wb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUgPCAlcyB8IEZpbGVDaGVjayAl cyAtY2hlY2stcHJlZml4PUNIRUNLLUVMRnYyCisrOyBSVU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVp bnN0cnMgLW10cmlwbGU9cG93ZXJwYzY0LXVua25vd24tbGludXgtbXVzbCA8ICVzIHwgRmlsZUNo ZWNrICVzIC1jaGVjay1wcmVmaXg9Q0hFQ0stRUxGdjIKKyA7IFJVTjogbGxjIC12ZXJpZnktbWFj aGluZWluc3RycyAtbXRyaXBsZT1wb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUgLXRhcmdldC1h YmkgZWxmdjEgPCAlcyB8IEZpbGVDaGVjayAlcyAtY2hlY2stcHJlZml4PUNIRUNLLUVMRnYxCisg OyBSVU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVpbnN0cnMgLW10cmlwbGU9cG93ZXJwYzY0LXVua25v d24tbGludXgtZ251IC10YXJnZXQtYWJpIGVsZnYyIDwgJXMgfCBGaWxlQ2hlY2sgJXMgLWNoZWNr LXByZWZpeD1DSEVDSy1FTEZ2MgorIDsgUlVOOiBsbGMgLXZlcmlmeS1tYWNoaW5laW5zdHJzIC1t dHJpcGxlPXBvd2VycGM2NGxlLXVua25vd24tbGludXgtZ251IDwgJXMgfCBGaWxlQ2hlY2sgJXMg LWNoZWNrLXByZWZpeD1DSEVDSy1FTEZ2MgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0 Y2hlcy9sbHZtLTAwMy1wcGMtc2VjdXJlcGx0LnBhdGNoIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hl cy9sbHZtLTAwMy1wcGMtc2VjdXJlcGx0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uYjVkMTU5NzQzNzVkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9s bHZtMTMvcGF0Y2hlcy9sbHZtLTAwMy1wcGMtc2VjdXJlcGx0LnBhdGNoCkBAIC0wLDAgKzEsMTEg QEAKKy0tLSBhL2xsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ1N1YnRhcmdldC5jcHAKKysrKyBi L2xsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ1N1YnRhcmdldC5jcHAKK0BAIC0xNjUsNyArMTY1 LDcgQEAgdm9pZCBQUENTdWJ0YXJnZXQ6OmluaXRTdWJ0YXJnZXRGZWF0dXJlcyhTdHJpbmdSZWYg Q1BVLCBTdHJpbmdSZWYgRlMpIHsKKyAKKyAgIGlmICgoVGFyZ2V0VHJpcGxlLmlzT1NGcmVlQlNE KCkgJiYgVGFyZ2V0VHJpcGxlLmdldE9TTWFqb3JWZXJzaW9uKCkgPj0gMTMpIHx8CisgICAgICAg VGFyZ2V0VHJpcGxlLmlzT1NOZXRCU0QoKSB8fCBUYXJnZXRUcmlwbGUuaXNPU09wZW5CU0QoKSB8 fAorLSAgICAgIFRhcmdldFRyaXBsZS5pc011c2woKSkKKysgICAgICBpc1RhcmdldExpbnV4KCkp CisgICAgIFNlY3VyZVBsdCA9IHRydWU7CisgCisgICBpZiAoSGFzU1BFICYmIElzUFBDNjQpCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xsdm0tMDA0LW92ZXJyaWRlLW9wdC5w YXRjaCBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGx2bS0wMDQtb3ZlcnJpZGUtb3B0LnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNTFkMGU0YjMxYjMyCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAwNC1vdmVycmlk ZS1vcHQucGF0Y2gKQEAgLTAsMCArMSwxOCBAQAorVGhpcyBhbGxvd3MgdXMgdG8gb3ZlcnJpZGUg dGhlIG9wdGltaXphdGlvbiBsZXZlbCBhcyBub3QgYWxsIHBsYXRmb3JtcyBjYW4KK2RlYWwgd2l0 aCAtTzMuCisKKy0tLSBhL2xsdm0vQ01ha2VMaXN0cy50eHQKKysrKyBiL2xsdm0vQ01ha2VMaXN0 cy50eHQKK0BAIC05MTgsNiArOTE4LDEyIEBAIGlmKCBNSU5HVyBBTkQgTk9UICIke0NNQUtFX0NY WF9DT01QSUxFUl9JRH0iIE1BVENIRVMgIkNsYW5nIiApCisgICBsbHZtX3JlcGxhY2VfY29tcGls ZXJfb3B0aW9uKENNQUtFX0NYWF9GTEFHU19SRUxFQVNFICItTzMiICItTzIiKQorIGVuZGlmKCkK KyAKKytzZXQoVk9JRF9DWFhfT1BUX0ZMQUdTICIiIENBQ0hFIFNUUklORyAiT3B0aW1pemF0aW9u IGxldmVsIHRvIHVzZSIpCisrCisraWYgKE5PVCBWT0lEX0NYWF9PUFRfRkxBR1MgU1RSRVFVQUwg IiIpCisrICAgIGxsdm1fcmVwbGFjZV9jb21waWxlcl9vcHRpb24oQ01BS0VfQ1hYX0ZMQUdTX1JF TEVBU0UgIi1PMyIgIiR7Vk9JRF9DWFhfT1BUX0ZMQUdTfSIpCisrZW5kaWYoKQorKworICMgUHV0 IHRoaXMgYmVmb3JlIHRibGdlbi4gRWxzZSB3ZSBoYXZlIGEgY2lyY3VsYXIgZGVwZW5kZW5jZS4K KyBhZGRfc3ViZGlyZWN0b3J5KGxpYi9EZW1hbmdsZSkKKyBhZGRfc3ViZGlyZWN0b3J5KGxpYi9T dXBwb3J0KQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAwNS1wcGMt YmlncGljLnBhdGNoIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAwNS1wcGMtYmlncGlj LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDMzMjY4N2I5 ZDkyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAwNS1w cGMtYmlncGljLnBhdGNoCkBAIC0wLDAgKzEsMzYgQEAKK0Zyb20gZjNkYmRkNDljMDZiZmFmYzFk NjEzODA5NGNmNDI4ODljMTRkMzhiNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFNh bXVlbCBIb2xsYW5kIDxzYW11ZWxAc2hvbGxhbmQub3JnPgorRGF0ZTogU3VuLCAzIE5vdiAyMDE5 IDEwOjU3OjI3IC0wNjAwCitTdWJqZWN0OiBbUEFUQ0hdIFtMTFZNXVtQb3dlclBDXSBBc3N1bWUg QmlnUElDIGlmIG5vIFBJQyBsZXZlbCBpcyBzcGVjaWZpZWQKKworLS0tCisgbGx2bS9saWIvVGFy Z2V0L1Bvd2VyUEMvUFBDQXNtUHJpbnRlci5jcHAgIHwgMiArLQorIGxsdm0vbGliL1RhcmdldC9Q b3dlclBDL1BQQ01DSW5zdExvd2VyLmNwcCB8IDIgKy0KKyAyIGZpbGVzIGNoYW5nZWQsIDIgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2xpYi9UYXJnZXQvUG93 ZXJQQy9QUENBc21QcmludGVyLmNwcCBiL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENBc21QcmludGVy LmNwcAoraW5kZXggY2NlMjFmMzIuLjg3Y2E1ZjliIDEwMDY0NAorLS0tIGEvbGx2bS9saWIvVGFy Z2V0L1Bvd2VyUEMvUFBDQXNtUHJpbnRlci5jcHAKKysrKyBiL2xsdm0vbGliL1RhcmdldC9Qb3dl clBDL1BQQ0FzbVByaW50ZXIuY3BwCitAQCAtNTIwLDcgKzUyMCw3IEBAIHZvaWQgUFBDQXNtUHJp bnRlcjo6RW1pdFRsc0NhbGwoY29uc3QgTWFjaGluZUluc3RyICpNSSwKKyAKKyAgIC8vIEFkZCAz Mjc2OCBvZmZzZXQgdG8gdGhlIHN5bWJvbCBzbyB3ZSBmb2xsb3cgdXAgdGhlIGxhdGVzdCBHT1Qv UExUIEFCSS4KKyAgIGlmIChLaW5kID09IE1DU3ltYm9sUmVmRXhwcjo6VktfUExUICYmIFN1YnRh cmdldC0+aXNTZWN1cmVQbHQoKSAmJgorLSAgICAgIE0tPmdldFBJQ0xldmVsKCkgPT0gUElDTGV2 ZWw6OkJpZ1BJQykKKysgICAgICBNLT5nZXRQSUNMZXZlbCgpICE9IFBJQ0xldmVsOjpTbWFsbFBJ QykKKyAgICAgVGxzUmVmID0gTUNCaW5hcnlFeHByOjpjcmVhdGVBZGQoCisgICAgICAgICBUbHNS ZWYsIE1DQ29uc3RhbnRFeHByOjpjcmVhdGUoMzI3NjgsIE91dENvbnRleHQpLCBPdXRDb250ZXh0 KTsKKyAgIGNvbnN0IE1hY2hpbmVPcGVyYW5kICZNTyA9IE1JLT5nZXRPcGVyYW5kKDIpOworZGlm ZiAtLWdpdCBhL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENNQ0luc3RMb3dlci5jcHAgYi9saWIvVGFy Z2V0L1Bvd2VyUEMvUFBDTUNJbnN0TG93ZXIuY3BwCitpbmRleCA1Y2MxODBkNy4uYTViMDI1NjUg MTAwNjQ0CistLS0gYS9sbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENNQ0luc3RMb3dlci5jcHAK KysrKyBiL2xsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ01DSW5zdExvd2VyLmNwcAorQEAgLTEx Nyw3ICsxMTcsNyBAQCBzdGF0aWMgTUNPcGVyYW5kIEdldFN5bWJvbFJlZihjb25zdCBNYWNoaW5l T3BlcmFuZCAmTU8sIGNvbnN0IE1DU3ltYm9sICpTeW1ib2wsCisgICBjb25zdCBNQ0V4cHIgKkV4 cHIgPSBNQ1N5bWJvbFJlZkV4cHI6OmNyZWF0ZShTeW1ib2wsIFJlZktpbmQsIEN0eCk7CisgICAv LyBJZiAtbXNlY3VyZS1wbHQgLWZQSUMsIGFkZCAzMjc2OCB0byBzeW1ib2wuCisgICBpZiAoU3Vi dGFyZ2V0LT5pc1NlY3VyZVBsdCgpICYmIFRNLmlzUG9zaXRpb25JbmRlcGVuZGVudCgpICYmCist ICAgICAgTS0+Z2V0UElDTGV2ZWwoKSA9PSBQSUNMZXZlbDo6QmlnUElDICYmCisrICAgICAgTS0+ Z2V0UElDTGV2ZWwoKSAhPSBQSUNMZXZlbDo6U21hbGxQSUMgJiYKKyAgICAgICBNTy5nZXRUYXJn ZXRGbGFncygpID09IFBQQ0lJOjpNT19QTFQpCisgICAgIEV4cHIgPQorICAgICAgICAgTUNCaW5h cnlFeHByOjpjcmVhdGVBZGQoRXhwciwgTUNDb25zdGFudEV4cHI6OmNyZWF0ZSgzMjc2OCwgQ3R4 KSwgQ3R4KTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGx2bS0wMDYtYWFy Y2g2NC1tZl9leGVjLnBhdGNoIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAwNi1hYXJj aDY0LW1mX2V4ZWMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li5hMDBhYmQyMTY2NjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVz L2xsdm0tMDA2LWFhcmNoNjQtbWZfZXhlYy5wYXRjaApAQCAtMCwwICsxLDI1IEBACitGaXggZmFp bHVyZXMgaW4gQWxsb2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuKiBvbiBhYXJjaDY0Ogor CisgICAgRmFpbGluZyBUZXN0cyAoOCk6CisgICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4v U3VwcG9ydFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0LkFsbG9jQW5kUmVs ZWFzZS8zCisgICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4vU3VwcG9ydFRlc3RzL0FsbG9j YXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0LkR1cGxpY2F0ZU5lYXIvMworICAgICAgICBMTFZN LVVuaXQgOjogU3VwcG9ydC8uL1N1cHBvcnRUZXN0cy9BbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVt b3J5VGVzdC5FbmFibGVkV3JpdGUvMworICAgICAgICBMTFZNLVVuaXQgOjogU3VwcG9ydC8uL1N1 cHBvcnRUZXN0cy9BbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5VGVzdC5NdWx0aXBsZUFsbG9j QW5kUmVsZWFzZS8zCisgICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4vU3VwcG9ydFRlc3Rz L0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0LlN1Y2Nlc3NpdmVOZWFyLzMKKyAgICAg ICAgTExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxsb2NhdGlvblRlc3RzL01h cHBlZE1lbW9yeVRlc3QuVW5hbGlnbmVkTmVhci8zCisgICAgICAgIExMVk0tVW5pdCA6OiBTdXBw b3J0Ly4vU3VwcG9ydFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0Llplcm9O ZWFyLzMKKyAgICAgICAgTExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxsb2Nh dGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuWmVyb1NpemVOZWFyLzMKKworVXBzdHJlYW0tSXNz dWU6IGh0dHBzOi8vYnVncy5sbHZtLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzgjYzEwCisKKy0t LSBhL2xsdm0vbGliL1N1cHBvcnQvVW5peC9NZW1vcnkuaW5jCisrKysgYi9sbHZtL2xpYi9TdXBw b3J0L1VuaXgvTWVtb3J5LmluYworQEAgLTU4LDcgKzU4LDcgQEAgc3RhdGljIGludCBnZXRQb3Np eFByb3RlY3Rpb25GbGFncyh1bnNpZ25lZCBGbGFncykgeworICAgICByZXR1cm4gUFJPVF9SRUFE IHwgUFJPVF9XUklURSB8IFBST1RfRVhFQzsKKyAgIGNhc2UgbGx2bTo6c3lzOjpNZW1vcnk6Ok1G X0VYRUM6CisgI2lmIChkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fUE9XRVJQQ19f KSB8fCBkZWZpbmVkIChfX3BwY19fKSB8fCBcCistICAgICBkZWZpbmVkKF9QT1dFUikgfHwgZGVm aW5lZChfQVJDSF9QUEMpKQorKyAgICAgZGVmaW5lZChfUE9XRVIpIHx8IGRlZmluZWQoX0FSQ0hf UFBDKSB8fCAoZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX19hYXJjaDY0X18pKSkKKyAg ICAgLy8gT24gUG93ZXJQQywgaGF2aW5nIGFuIGV4ZWN1dGFibGUgcGFnZSB0aGF0IGhhcyBubyBy ZWFkIHBlcm1pc3Npb24KKyAgICAgLy8gY2FuIGhhdmUgdW5pbnRlbmRlZCBjb25zZXF1ZW5jZXMu ICBUaGUgZnVuY3Rpb24gSW52YWxpZGF0ZUluc3RydWN0aW9uLQorICAgICAvLyBDYWNoZSB1c2Vz IGluc3RydWN0aW9ucyBkY2JmIGFuZCBpY2JpLCBib3RoIG9mIHdoaWNoIGFyZSB0cmVhdGVkIGJ5 CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL3BwYzMyLWNvbXBpbGVyLXJ0LnBh dGNoIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9wcGMzMi1jb21waWxlci1ydC5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjhlMGE5YTc3OWQxYgotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvcHBjMzItY29tcGlsZXItcnQucGF0 Y2gKQEAgLTAsMCArMSwyMSBAQAorY29tbWl0IGJhNGVkZTU5NWZmOTU5OTIzMmY1ZGQyYjQzODRj MjQzMTM3YjUzZmMKK0F1dGhvcjogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CitEYXRlOiAgIFR1ZSBKdW4gMjIgMjM6NDA6NTQgMjAyMSArMDIwMAorCisgICAgZW5hYmxlIGNv bXBpbGVyLXJ0IHN1cHBvcnQgZm9yIHBwYzMyCisKK2RpZmYgLS1naXQgYS9jb21waWxlci1ydC9j bWFrZS9iYXNlLWNvbmZpZy1peC5jbWFrZSBiL2NvbXBpbGVyLXJ0L2NtYWtlL2Jhc2UtY29uZmln LWl4LmNtYWtlCitpbmRleCAxZWRhYjQzLi41YzBjOGEyIDEwMDY0NAorLS0tIGEvY29tcGlsZXIt cnQvY21ha2UvYmFzZS1jb25maWctaXguY21ha2UKKysrKyBiL2NvbXBpbGVyLXJ0L2NtYWtlL2Jh c2UtY29uZmlnLWl4LmNtYWtlCitAQCAtMTgyLDkgKzE4Miw3IEBAIG1hY3JvKHRlc3RfdGFyZ2V0 cykKKyAgICAgZWxzZWlmKCIke0NPTVBJTEVSX1JUX0RFRkFVTFRfVEFSR0VUX0FSQ0h9IiBNQVRD SEVTICJwb3dlcnBjNjRsZSIpCisgICAgICAgdGVzdF90YXJnZXRfYXJjaChwb3dlcnBjNjRsZSAi IiAiLW02NCIpCisgICAgIGVsc2VpZigiJHtDT01QSUxFUl9SVF9ERUZBVUxUX1RBUkdFVF9BUkNI fSIgTUFUQ0hFUyAicG93ZXJwYyIpCistICAgICAgaWYoQ01BS0VfU1lTVEVNX05BTUUgTUFUQ0hF UyAiQUlYIikKKy0gICAgICAgIHRlc3RfdGFyZ2V0X2FyY2gocG93ZXJwYyAiIiAiLW0zMiIpCist ICAgICAgZW5kaWYoKQorKyAgICAgIHRlc3RfdGFyZ2V0X2FyY2gocG93ZXJwYyAiIiAiLW0zMiIp CisgICAgICAgdGVzdF90YXJnZXRfYXJjaChwb3dlcnBjNjQgIiIgIi1tNjQiKQorICAgICBlbHNl aWYoIiR7Q09NUElMRVJfUlRfREVGQVVMVF9UQVJHRVRfQVJDSH0iIE1BVENIRVMgInMzOTB4IikK KyAgICAgICB0ZXN0X3RhcmdldF9hcmNoKHMzOTB4ICIiICIiKQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9sbHZtMTMvdGVtcGxhdGUgYi9zcmNwa2dzL2xsdm0xMy90ZW1wbGF0ZQpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjA4ZDg0NzQ3MjUyNQotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvbGx2bTEzL3RlbXBsYXRlCkBAIC0wLDAgKzEsNDIzIEBACisjIFRlbXBsYXRl IGZpbGUgZm9yICdsbHZtMTMnCitwa2duYW1lPWxsdm0xMwordmVyc2lvbj0xMy4wLjAKK3Jldmlz aW9uPTEKK3dya3NyYz0ibGx2bS1wcm9qZWN0LSR7dmVyc2lvbn0uc3JjIgorYnVpbGRfd3Jrc3Jj PWxsdm0KK2J1aWxkX3N0eWxlPWNtYWtlCitjb25maWd1cmVfYXJncz0iCisgLURDTUFLRV9CVUlM RF9UWVBFPVJlbGVhc2UgLVduby1kZXYKKyAtREVOQUJMRV9MSU5LRVJfQlVJTERfSUQ9WUVTCisg LURMTERCX1VTRV9TWVNURU1fU0lYPVlFUworIC1ETElCQ1hYX0NYWF9BQkk9bGliY3h4YWJpCisg LURMSUJDWFhfRU5BQkxFX1NUQVRJQ19BQklfTElCUkFSWT1ZRVMKKyAtRExJQkNYWEFCSV9VU0Vf TExWTV9VTldJTkRFUj1ZRVMKKyAtRExJQkNYWEFCSV9FTkFCTEVfU1RBVElDX1VOV0lOREVSPVlF UworIC1ETElCT01QX0VOQUJMRV9TSEFSRUQ9WUVTCisgLURMSUJPTVBfSU5TVEFMTF9BTElBU0VT PU5PCisgLURMTFZNX0lOQ0xVREVfRE9DUz1ZRVMKKyAtRExMVk1fQlVJTERfRE9DUz1ZRVMKKyAt RExMVk1fRU5BQkxFX1NQSElOWD1ZRVMKKyAtRFNQSElOWF9XQVJOSU5HU19BU19FUlJPUlM9Tk8K KyAtRExMVk1fSU5TVEFMTF9VVElMUz1ZRVMKKyAtRExMVk1fQlVJTERfTExWTV9EWUxJQj1ZRVMK KyAtRExMVk1fTElOS19MTFZNX0RZTElCPVlFUworIC1ETExWTV9FTkFCTEVfUlRUST1ZRVMKKyAt RExMVk1fRU5BQkxFX0ZGST1ZRVMKKyAtRExMVk1fQklOVVRJTFNfSU5DRElSPS91c3IvaW5jbHVk ZSIKK2hvc3RtYWtlZGVwZW5kcz0icGVybCBweXRob24zIHpsaWItZGV2ZWwgbGliZmZpLWRldmVs IHN3aWcgcHl0aG9uMy1TcGhpbngKKyBweXRob24zLXJlY29tbW9ubWFyayBweXRob24zLXNwaGlu eC1hdXRvbW9kYXBpIgorbWFrZWRlcGVuZHM9InB5dGhvbjMtZGV2ZWwgemxpYi1kZXZlbCBlbGZ1 dGlscy1kZXZlbCBsaWJmZmktZGV2ZWwgbGliZWRpdC1kZXZlbAorIGxpYnhtbDItZGV2ZWwgYmlu dXRpbHMtZGV2ZWwgbGliYXRvbWljLWRldmVsIgorZGVwZW5kcz0ibGlibGx2bTEzPj0ke3ZlcnNp b259XyR7cmV2aXNpb259Igorc2hvcnRfZGVzYz0iTG93IExldmVsIFZpcnR1YWwgTWFjaGluZSIK K21haW50YWluZXI9InE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+IgorbGljZW5zZT0iQXBhY2hl LTIuMCIKK2hvbWVwYWdlPSJodHRwczovL3d3dy5sbHZtLm9yZyIKK2Rpc3RmaWxlcz0iaHR0cHM6 Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L3JlbGVhc2VzL2Rvd25sb2FkL2xsdm1vcmct JHt2ZXJzaW9ufS9sbHZtLXByb2plY3QtJHt2ZXJzaW9ufS5zcmMudGFyLnh6IgorY2hlY2tzdW09 NjA3NWFkMzBmMWFjMGUxNWYwN2MxYmYwNjJjMWUxMjY4YzI0MWQ2NzRmMTFiZDMyY2RmMGUwNDBj NzFmMmJmMworbGliMzJkaXNhYmxlZD15ZXMKK3B5dGhvbl92ZXJzaW9uPTMKKworaWYgWyAiJFhC UFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KKwljb25maWd1cmVfYXJncys9IiAtRExJ QkNYWF9IQVNfTVVTTF9MSUJDPVlFUyIKKwltYWtlZGVwZW5kcys9IiBsaWJleGVjaW5mby1kZXZl bCIKKwlkZXBlbmRzKz0iIGxpYmV4ZWNpbmZvLWRldmVsIgorZmkKKworIyAib3BlcmFuZCBvdXQg b2YgcmFuZ2UiIGFzc2VtYmxlciBmYWlsdXJlcworY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUi IGluCisJcHBjNjQqKSA7OworCXBwYyopIGNvbmZpZ3VyZV9hcmdzKz0iIC1EQ0xBTkdfRU5BQkxF X0NMQU5HRD1PRkYiIDs7Citlc2FjCisKK19lbmFibGVkX3Byb2plY3RzPSJjbGFuZztjbGFuZy10 b29scy1leHRyYTtjb21waWxlci1ydDtsaWJjeHg7bGliY3h4YWJpO2xpYnVud2luZDtsbGQiCisK K19sbGRiX2VuYWJsZT15ZXMKK19saWJvbXBfZW5hYmxlPW5vCisKK2Nhc2UgIiRYQlBTX1RBUkdF VF9NQUNISU5FIiBpbgorCXBwYzY0bGUqKSA7OworCXBwYyp8aTY4NiopIF9sbGRiX2VuYWJsZT1u byA7OworZXNhYworCitjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwl4ODZfNjQqfGFh cmNoNjQqfHBwYzY0KikgX2xpYm9tcF9lbmFibGU9eWVzOzsKK2VzYWMKKworc3VicGFja2FnZXM9 ImNsYW5nLXRvb2xzLWV4dHJhIgorCisjIG11c3QgZ28gYmVmb3JlIGNsYW5nCitpZiBbICIkX2xp Ym9tcF9lbmFibGUiID0gInllcyIgXTsgdGhlbgorCV9lbmFibGVkX3Byb2plY3RzKz0iO29wZW5t cCIKKwlzdWJwYWNrYWdlcys9IiBsaWJvbXAgbGlib21wLWRldmVsIgorCSMgYmVjYXVzZSBvZiBj bWFrZSBub25zZW5zZSByZWZlcmVuY2luZyBsaWJvbXB0YXJnZXQuc28uKgorCWRlcGVuZHMrPSIg bGlib21wPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorZmkKKworc3VicGFja2FnZXMrPSIgY2xh bmcgY2xhbmctYW5hbHl6ZXIgbGliY2xhbmcgbGliY2xhbmctY3BwCisgbGx2bS1saWJ1bndpbmQg bGx2bS1saWJ1bndpbmQtZGV2ZWwgbGliY3h4IGxpYmN4eC1kZXZlbAorIGxpYmN4eGFiaSBsaWJj eHhhYmktZGV2ZWwgbGlibGx2bTEzIgorCitpZiBbICIkX2xsZGJfZW5hYmxlIiA9ICJ5ZXMiIF07 IHRoZW4KKwkjIFhYWCBmYWlscyB0byBjcm9zcyBjb21waWxlIGR1ZSB0byBweXRob24KKwlfZW5h YmxlZF9wcm9qZWN0cys9IjtsbGRiIgorCXN1YnBhY2thZ2VzKz0iIGxsZGIgbGxkYi1kZXZlbCIK K2ZpCisKK3N1YnBhY2thZ2VzKz0iIGxsZCBsbGQtZGV2ZWwiCisKK2NvbmZpZ3VyZV9hcmdzKz0i IC1ETExWTV9FTkFCTEVfUFJPSkVDVFM9JHtfZW5hYmxlZF9wcm9qZWN0c30iCisKK3Bvc3RfcGF0 Y2goKSB7CisJaWYgWyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdOyB0aGVuCisJCWlmIFsgIiRY QlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCQl2c2VkIC1pICdzfF9fcHRyYWNl X3JlcXVlc3R8aW50fGcnIFwKKwkJCQkke3dya3NyY30vbGxkYi9zb3VyY2UvUGx1Z2lucy9Qcm9j ZXNzL0xpbnV4L05hdGl2ZVByb2Nlc3NMaW51eC5jcHAKKwkJZmkKKwkJIyBkaXNhYmxlIGRvY3Mg Zm9yIGxsZGIgYXMgdGhleSBmYWlsIHRvIGdlbmVyYXRlCisJCXZzZWQgLWkgJy9hZGRfc3ViZGly ZWN0b3J5KGRvY3MpL2QnIFwKKwkJCSR7d3Jrc3JjfS9sbGRiL0NNYWtlTGlzdHMudHh0CisJZmkK KworCSMgdXBkYXRlIGNvbmZpZy5ndWVzcyBmb3IgYmV0dGVyIHBsYXRmb3JtIGRldGVjdGlvbgor CWNwICRYQlBTX0NPTU1PTkRJUi9lbnZpcm9ubWVudC9jb25maWd1cmUvYXV0b21ha2UvY29uZmln Lmd1ZXNzIFwKKwkJJHt3cmtzcmN9L2xsdm0vY21ha2UKKworCSMgZml4IGxpbmtlciBmYWlsdXJl cyBvbiBzb21lIGFyY2hzCisJdnNlZCAtaSAncyxjaGVja19saWJyYXJ5X2V4aXN0cyhnY2NfcyAu KixzZXQoTElCQ1hYQUJJX0hBU19HQ0NfU19MSUIgT04pLCcgXAorCQkke3dya3NyY30vbGliY3h4 YWJpL2NtYWtlL2NvbmZpZy1peC5jbWFrZQorCXZzZWQgLWkgJ3MsY2hlY2tfbGlicmFyeV9leGlz dHMoZ2NjIC4qLHNldChMSUJDWFhBQklfSEFTX0dDQ19MSUIgT04pLCcgXAorCQkke3dya3NyY30v bGliY3h4YWJpL2NtYWtlL2NvbmZpZy1peC5jbWFrZQorCisJIyBuZWVkIGxpYnNzcF9ub25zaGFy ZWQgb24gc29tZSBtdXNsIHBsYXRmb3JtcyAoYmVjYXVzZSBvZiBub2RlZmF1bHRsaWJzKQorCWNh c2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCQlwcGM2NCopIDs7CisJCXBwYyotbXVzbHxp Njg2LW11c2x8bWlwcyotbXVzbCkKKwkJCXZzZWQgLWkgJ3MsXiMgU2V0dXAgZmxhZ3MuJCxhZGRf bGlicmFyeV9mbGFncyhzc3Bfbm9uc2hhcmVkKSwnIFwKKwkJCQkke3dya3NyY30vbGlidW53aW5k L3NyYy9DTWFrZUxpc3RzLnR4dAorCQkJdnNlZCAtaSAncyxeIyBTZXR1cCBmbGFncy4kLGFkZF9s aWJyYXJ5X2ZsYWdzKHNzcF9ub25zaGFyZWQpLCcgXAorCQkJCSR7d3Jrc3JjfS9saWJjeHhhYmkv c3JjL0NNYWtlTGlzdHMudHh0CisJCQl2c2VkIC1pICdzLCNzc3AsLCcgJHt3cmtzcmN9L2xpYmN4 eC9DTWFrZUxpc3RzLnR4dAorCQkJOzsKKwllc2FjCisKKwljYXNlICIkWEJQU19UQVJHRVRfTUFD SElORSIgaW4KKwkJeDg2XzY0LW11c2wpICMgc29tZSBzYW5pdGl6ZXIgY3VycmVudGx5IG9ubHkg b24geDg2XzY0IHN0dWZmIG5lZWRzIGJhY2t0cmFjZQorCQkJdnNlZCAtaSAncywjIFNldCBjb21t b24gbGluayBmbGFncy4sbGlzdChBUFBFTkQgU0FOSVRJWkVSX0NPTU1PTl9MSU5LX0xJQlMgZXhl Y2luZm8pLCcgXAorCQkJCSR7d3Jrc3JjfS9jb21waWxlci1ydC9DTWFrZUxpc3RzLnR4dAorCQkJ OzsKKwkJYXJtKi1tdXNsfGk2ODYtbXVzbCkgIyBzYW5pdGl6ZXIgY29kZSBpcyBicm9rZW4gc2lu Y2UgaXQgZHVwbGljYXRlcyBzb21lIGxpYmMgYml0cworCQkJdnNlZCAtaSAncy9zZXQoQ09NUElM RVJfUlRfSEFTX1NBTklUSVpFUl9DT01NT04gVFJVRSkvc2V0KENPTVBJTEVSX1JUX0hBU19TQU5J VElaRVJfQ09NTU9OIEZBTFNFKS8nIFwKKwkJCQkke3dya3NyY30vY29tcGlsZXItcnQvY21ha2Uv Y29uZmlnLWl4LmNtYWtlCisJCQk7OworCWVzYWMKK30KKworcHJlX2NvbmZpZ3VyZSgpIHsKKwls b2NhbCB0cmlwbGV0CisKKwkjIFZhc3RseSByZWR1Y2Ugc2l6ZSBvZiBkZWJ1Z2dpbmcgc3ltYm9s czoKKwlDRkxBR1M9JHtDRkxBR1MvIC1nLyAtZzF9CisJQ1hYRkxBR1M9JHtDWFhGTEFHUy8gLWcv IC1nMX0KKworCSMgc2luY2UgZ2NjOSwgdGhlIGJ1aWxkIGxpa2VzIHRvIGJsb3cgdXAgZm9yIHBw YzMyIGFwcGFyZW50bHkgYmVjYXVzZQorCSMgb2YgY2xhbmcgYmVpbmcgdG9vIGxhcmdlIGZvciBh IDI0LWJpdCByZWxhdGl2ZSBjYWxsIHRvIHRoZSBQTFQsIHNvCisJIyBvcHRpbWl6ZSBmb3Igc2l6 ZSBpbnN0ZWFkCisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCXBwYzY0KikgOzsK KwkJbWlwcyotbXVzbHxwcGMqKSBjb25maWd1cmVfYXJncys9IiAtRFZPSURfQ1hYX09QVF9GTEFH Uz0tT3MiIDs7CisJZXNhYworCisJaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJCW1zZ19u b3JtYWwgIkJ1aWxkaW5nIGhvc3QgdGJsZ2VuXG4iCisJCW1rZGlyIC1wIGJ1aWxkL0hPU1QKKwkJ Y2QgYnVpbGQvSE9TVAorCQlDQz0iJEJVSUxEX0NDIiBDWFg9IiRCVUlMRF9DWFgiIENGTEFHUz0i JEJVSUxEX0NGTEFHUyIgXAorCQkJQ1hYRkxBR1M9IiRCVUlMRF9DWFhGTEFHUyIgTERGTEFHUz0i JEJVSUxEX0xERkxBR1MiIFwKKwkJCWNtYWtlIC4uLy4uIC1EQ01BS0VfQlVJTERfVFlQRT1SZWxl YXNlIFwKKwkJCS1ETExWTV9FTkFCTEVfUFJPSkVDVFM9JHtfZW5hYmxlZF9wcm9qZWN0c30KKwkJ bWFrZSAke21ha2Vqb2JzfSAtQyB1dGlscy9UYWJsZUdlbgorCQltYWtlICR7bWFrZWpvYnN9IC1D IHRvb2xzL2NsYW5nL3V0aWxzL1RhYmxlR2VuCisJCVsgIiRfbGxkYl9lbmFibGUiID0gInllcyIg XSAmJiBtYWtlICR7bWFrZWpvYnN9IC1DIHRvb2xzL2xsZGIvdXRpbHMvVGFibGVHZW4KKwkJY29u ZmlndXJlX2FyZ3MrPSIgLURMTFZNX1RBQkxFR0VOPSR7d3Jrc3JjfS9sbHZtL2J1aWxkL0hPU1Qv YmluL2xsdm0tdGJsZ2VuIgorCQljb25maWd1cmVfYXJncys9IiAtRENMQU5HX1RBQkxFR0VOPSR7 d3Jrc3JjfS9sbHZtL2J1aWxkL0hPU1QvYmluL2NsYW5nLXRibGdlbiIKKwkJWyAiJF9sbGRiX2Vu YWJsZSIgPSAieWVzIiBdICYmIGNvbmZpZ3VyZV9hcmdzKz0iIC1ETExEQl9UQUJMRUdFTj0ke3dy a3NyY30vbGx2bS9idWlsZC9IT1NUL2Jpbi9sbGRiLXRibGdlbiIKKwkJY2QgLi4vLi4KKwlmaQor CisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCWk2ODYqKSBfYXJjaD0iWDg2Ijs7 CisJCXg4Nl82NCopIF9hcmNoPSJYODYiOzsKKwkJYXJtdjUqKSBfYXJjaD0iQXJtdjV0ZSI7Owor CQlhcm12NiopIF9hcmNoPSJBcm12NiI7OworCQlhcm12NyopIF9hcmNoPSJBcm12NyI7OworCQlh YXJjaDY0KikgX2FyY2g9IkFBcmNoNjQiOzsKKwkJbWlwcyopIF9hcmNoPSJNaXBzIjs7CisJCXBw YyopIF9hcmNoPSJQb3dlclBDIjs7CisJCXJpc2N2NjQqKSBfYXJjaD0iUklTQ1Y2NCI7OworCWVz YWMKKworCXRyaXBsZXQ9JHtYQlBTX0NST1NTX1RSSVBMRVQ6LSRYQlBTX1RSSVBMRVR9CisKKwlj b25maWd1cmVfYXJncys9IiAtRExMVk1fVEFSR0VUX0FSQ0g9JHtfYXJjaH0iCisJY29uZmlndXJl X2FyZ3MrPSIgLURMTFZNX0hPU1RfVFJJUExFPSR7dHJpcGxldH0iCisJY29uZmlndXJlX2FyZ3Mr PSIgLURMTFZNX0RFRkFVTFRfVEFSR0VUX1RSSVBMRT0ke3RyaXBsZXR9IgorfQorCitkb19pbnN0 YWxsKCkgeworCWNkIGJ1aWxkCisJY21ha2UgLURDTUFLRV9JTlNUQUxMX1BSRUZJWD0ke0RFU1RE SVJ9L3VzciAtUCBjbWFrZV9pbnN0YWxsLmNtYWtlCisKKwkjIFJlcXVpcmVkIGZvciBtdWx0aWxp Yi4KKwlpZiBbICIkWEJQU19UQVJHRVRfTUFDSElORSIgPSAieDg2XzY0IiBdOyB0aGVuCisJCWZv ciBfaGVhZGVyIGluIGxsdm0tY29uZmlnOyBkbworCQkJbXYgJHtERVNURElSfS91c3IvaW5jbHVk ZS9sbHZtL0NvbmZpZy8ke19oZWFkZXJ9eywtNjR9LmgKKwkJCXZpbnN0YWxsICR7RklMRVNESVJ9 L2xsdm0tQ29uZmlnLSR7X2hlYWRlcn0uaCA2NDQgXAorCQkJCXVzci9pbmNsdWRlL2xsdm0vQ29u ZmlnICR7X2hlYWRlcn0uaAorCQlkb25lCisJZmkKKworCSMgUmVtb3ZlIGxsdm0tY29uZmlnLWhv c3QgaW4gY3Jvc3MgYnVpbGRzLgorCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgorCQlybSAt ZiAke0RFU1RESVJ9L3Vzci9iaW4vbGx2bS1jb25maWctaG9zdAorCWZpCisKKwkjIEluc3RhbGwg bGliY3h4YWJpIGhlYWRlcnMKKwl2aW5zdGFsbCAke3dya3NyY30vbGliY3h4YWJpL2luY2x1ZGUv X19jeHhhYmlfY29uZmlnLmggNjQ0IHVzci9pbmNsdWRlCisJdmluc3RhbGwgJHt3cmtzcmN9L2xp YmN4eGFiaS9pbmNsdWRlL2N4eGFiaS5oIDY0NCB1c3IvaW5jbHVkZQorCisJIyBJbnN0YWxsIGxp YnVud2luZCBoZWFkZXJzCisJdmluc3RhbGwgJHt3cmtzcmN9L2xpYnVud2luZC9pbmNsdWRlL19f bGlidW53aW5kX2NvbmZpZy5oIDY0NCB1c3IvaW5jbHVkZQorCXZpbnN0YWxsICR7d3Jrc3JjfS9s aWJ1bndpbmQvaW5jbHVkZS9saWJ1bndpbmQuaCA2NDQgdXNyL2luY2x1ZGUKKwl2aW5zdGFsbCAk e3dya3NyY30vbGlidW53aW5kL2luY2x1ZGUvdW53aW5kLmggNjQ0IHVzci9pbmNsdWRlCisJdmlu c3RhbGwgJHt3cmtzcmN9L2xpYnVud2luZC9pbmNsdWRlL21hY2gtby9jb21wYWN0X3Vud2luZF9l bmNvZGluZy5oIFwKKwkJNjQ0IHVzci9pbmNsdWRlL21hY2gtbworfQorCitjbGFuZy1hbmFseXpl cl9wYWNrYWdlKCkgeworCXB5Y29tcGlsZV9kaXJzPSJ1c3Ivc2hhcmUvc2Nhbi12aWV3IgorCWRl cGVuZHM9ImNsYW5nLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gcHl0aG9uMyBwZXJsIgorCXNob3J0 X2Rlc2MrPSIgLSBBIHNvdXJjZSBjb2RlIGFuYWx5c2lzIGZyYW1ld29yayIKKwlob21lcGFnZT0i aHR0cHM6Ly9jbGFuZy1hbmFseXplci5sbHZtLm9yZy8iCisJcGtnX2luc3RhbGwoKSB7CisJCXZt b3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9zY2FuLWJ1aWxkLjEKKwkJdm1vdmUgIi91c3IvYmluL3Nj YW4tKiIKKwkJdm1vdmUgIi91c3Ivc2hhcmUvc2Nhbi0qIgorCQl2bW92ZSAiL3Vzci9saWJleGVj LyphbmFseXplciIKKwl9Cit9CisKK2NsYW5nLXRvb2xzLWV4dHJhX3BhY2thZ2UoKSB7CisJbGli MzJkaXNhYmxlZD15ZXMKKwlkZXBlbmRzPSJjbGFuZy0ke3ZlcnNpb259XyR7cmV2aXNpb259IHB5 dGhvbjMiCisJc2hvcnRfZGVzYys9IiAtIEV4dHJhIENsYW5nIHRvb2xzIgorCWhvbWVwYWdlPSJo dHRwczovL2NsYW5nLmxsdm0ub3JnL2V4dHJhLyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUg dXNyL2luY2x1ZGUvY2xhbmctdGlkeQorCQl2bW92ZSB1c3IvYmluL2NsYW5nLWFwcGx5LXJlcGxh Y2VtZW50cworCQl2bW92ZSB1c3IvYmluL2NsYW5nLXF1ZXJ5CisJCXZtb3ZlIHVzci9iaW4vY2xh bmctcmVuYW1lCisJCXZtb3ZlIHVzci9iaW4vY2xhbmctdGlkeQorCQl2bW92ZSB1c3IvYmluL2Rp YWd0b29sCisJCXZtb3ZlIHVzci9iaW4vZmluZC1hbGwtc3ltYm9scworCQl2bW92ZSB1c3IvYmlu L2htYXB0b29sCisJCXZtb3ZlIHVzci9iaW4vbW9kdWxhcml6ZQorCQl2bW92ZSB1c3IvYmluL3Bw LXRyYWNlCisJCXZtb3ZlIHVzci9iaW4vc2FuY292CisJCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5n QXBwbHlSZXBsYWNlbWVudHMqIgorCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZ1F1ZXJ5KiIKKwkJ dm1vdmUgInVzci9saWIvbGliY2xhbmdUaWR5KiIKKwkJdm1vdmUgInVzci9zaGFyZS9jbGFuZy8q dGlkeSoiCisJCXZtb3ZlIHVzci9zaGFyZS9kb2MvY2xhbmctdG9vbHMKKwkJdm1vdmUgdXNyL3No YXJlL21hbi9tYW4xL2V4dHJhY2xhbmd0b29scy4xCisJCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFu MS9kaWFndG9vbC4xCisJfQorfQorCitjbGFuZ19wYWNrYWdlKCkgeworCWxpYjMyZGlzYWJsZWQ9 eWVzCisJZGVwZW5kcz0ibGlic3RkYysrLWRldmVsIGxpYmdjYy1kZXZlbCAgYmludXRpbHMgJHtY QlBTX1RBUkdFVF9MSUJDfS1kZXZlbAorCSBsaWJjbGFuZy0ke3ZlcnNpb259XyR7cmV2aXNpb259 IgorCXNob3J0X2Rlc2MrPSIgLSBDIGxhbmd1YWdlIGZhbWlseSBmcm9udGVuZCIKKwlob21lcGFn ZT0iaHR0cHM6Ly9jbGFuZy5sbHZtLm9yZy8iCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVz ci9pbmNsdWRlL2NsYW5nCisJCXZtb3ZlIHVzci9pbmNsdWRlL2NsYW5nLWMKKwkJdm1vdmUgInVz ci9iaW4vKmNsYW5nKiIKKwkJdm1vdmUgdXNyL2Jpbi9jLWluZGV4LXRlc3QKKwkJdm1vdmUgdXNy L2xpYi9jbGFuZworCQl2bW92ZSB1c3IvbGliL2NtYWtlL2NsYW5nCisJCXZtb3ZlICJ1c3IvbGli L2xpYmNsYW5nKi5hIgorCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZyouc28iCisJCXZtb3ZlIHVz ci9zaGFyZS9jbGFuZworCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2NsYW5nCisJCXZtb3ZlIHVzci9z aGFyZS9tYW4vbWFuMS9jbGFuZy4xCisJfQorfQorCitsaWJjbGFuZ19wYWNrYWdlKCkgeworCXNo b3J0X2Rlc2MrPSIgLSBDIGZyb250ZW5kIHJ1bnRpbWUgbGlicmFyeSIKKwlwa2dfaW5zdGFsbCgp IHsKKwkJdm1vdmUgInVzci9saWIvbGliY2xhbmcuc28uKiIKKwl9Cit9CisKK2xpYmNsYW5nLWNw cF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBDIGZyb250ZW5kIHJ1bnRpbWUgbGlicmFy eSAoQysrIGludGVyZmFjZSkiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliL2xp YmNsYW5nLWNwcC5zby4qIgorCX0KK30KKworbGxkX3BhY2thZ2UoKSB7CisJbGliMzJkaXNhYmxl ZD15ZXMKKwlzaG9ydF9kZXNjKz0iIC0gbGlua2VyIgorCWhvbWVwYWdlPSJodHRwczovL2xsZC5s bHZtLm9yZyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2Jpbi9sbGQqCisJCXZtb3Zl IHVzci9iaW4vd2FzbS1sZAorCQl2bW92ZSB1c3IvYmluL2xkLmxsZCoKKwkJdm1vdmUgdXNyL2Jp bi9sZDY0LmxsZCoKKwkJdm1vdmUgdXNyL3NoYXJlL2RvYy9sbGQKKwl9Cit9CisKK2xsZC1kZXZl bF9wYWNrYWdlKCkgeworCWxpYjMyZGlzYWJsZWQ9eWVzCisJc2hvcnRfZGVzYys9IiAtIGxpbmtl ciAtIGRldmVsb3BtZW50IGZpbGVzIgorCWhvbWVwYWdlPSJodHRwczovL2xsZC5sbHZtLm9yZyIK KwlkZXBlbmRzPSJsbGQ+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJcGtnX2luc3RhbGwoKSB7 CisJCXZtb3ZlIHVzci9pbmNsdWRlL2xsZAorCQl2bW92ZSB1c3IvbGliL2NtYWtlL2xsZAorCQl2 bW92ZSAidXNyL2xpYi9saWJsbGQqYSIKKwl9Cit9CisKK2xsZGJfcGFja2FnZSgpIHsKKwlsaWIz MmRpc2FibGVkPXllcworCWRlcGVuZHMrPSIgcHl0aG9uMy1zaXgiCisJc2hvcnRfZGVzYys9IiAt IExMREIgZGVidWdnZXIiCisJaG9tZXBhZ2U9Imh0dHBzOi8vbGxkYi5sbHZtLm9yZy8iCisJcGtn X2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9iaW4vKmxsZGIqCisJCXZtb3ZlIHVzci9saWIvbGli bGxkYipzby4qCisJCXZtb3ZlIC91c3IvbGliL3B5dGhvbioKKwl9Cit9CisKK2xsZGItZGV2ZWxf cGFja2FnZSgpIHsKKwlsaWIzMmRpc2FibGVkPXllcworCWRlcGVuZHM9ImxsZGI+PSR7dmVyc2lv bn1fJHtyZXZpc2lvbn0iCisJc2hvcnRfZGVzYys9IiAtIExMREIgZGVidWdnZXIgLSBkZXZlbG9w bWVudCBmaWxlcyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1ZGUvbGxkYgor CQl2bW92ZSAidXNyL2xpYi9saWJsbGRiKi5zbyIKKwl9Cit9CisKK2xsdm0tbGlidW53aW5kX3Bh Y2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIGxpYnVud2luZCIKKwlwa2dfaW5zdGFsbCgpIHsK KwkJdm1vdmUgInVzci9saWIvbGlidW53aW5kLnNvLioiCisJfQorfQorCitsbHZtLWxpYnVud2lu ZC1kZXZlbF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBsaWJ1bndpbmQgLSBkZXZlbG9w bWVudCBmaWxlcyIKKwlkZXBlbmRzPSJsbHZtLWxpYnVud2luZD49JHt2ZXJzaW9ufV8ke3Jldmlz aW9ufSIKKwljb25mbGljdHM9ImxpYnVud2luZC1kZXZlbD49MCIKKwlwa2dfaW5zdGFsbCgpIHsK KwkJdm1vdmUgdXNyL2xpYi9saWJ1bndpbmQuc28KKwkJdm1vdmUgdXNyL2xpYi9saWJ1bndpbmQu YQorCQl2bW92ZSAidXNyL2luY2x1ZGUvKnVud2luZCoiCisJCXZtb3ZlIHVzci9pbmNsdWRlL21h Y2gtbworCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2xpYnVud2luZAorCX0KK30KKworbGliY3h4YWJp X3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIGxvdyBsZXZlbCBzdXBwb3J0IGZvciBsaWJj KysiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliL2xpYmMrK2FiaS5zby4qIgor CX0KK30KKworbGliY3h4YWJpLWRldmVsX3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIGxv dyBsZXZlbCBzdXBwb3J0IGZvciBsaWJjKysgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlkZXBlbmRz PSJsaWJjeHhhYmk+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJcGtnX2luc3RhbGwoKSB7CisJ CXZtb3ZlIHVzci9saWIvbGliYysrYWJpLnNvCisJCXZtb3ZlIHVzci9saWIvbGliYysrYWJpLmEK KwkJdm1vdmUgInVzci9pbmNsdWRlLypjeHhhYmkqIgorCX0KK30KKworbGliY3h4X3BhY2thZ2Uo KSB7CisJc2hvcnRfZGVzYys9IiAtIEMrKyBzdGFuZGFyZCBsaWJyYXJ5IgorCXBrZ19pbnN0YWxs KCkgeworCQl2bW92ZSAidXNyL2xpYi9saWJjKysuc28uKiIKKwl9Cit9CisKK2xpYmN4eC1kZXZl bF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBDKysgc3RhbmRhcmQgbGlicmFyeSAtIGRl dmVsb3BtZW50IGZpbGVzIgorCWRlcGVuZHM9ImxpYmN4eD49JHt2ZXJzaW9ufV8ke3JldmlzaW9u fSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2xpYi9saWJjKysuc28KKwkJdm1vdmUg dXNyL2xpYi9saWJjKysuYQorCQl2bW92ZSB1c3IvbGliL2xpYmMrK2V4cGVyaW1lbnRhbC5hCisJ CXZtb3ZlIHVzci9pbmNsdWRlL2MrKworCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2xpYmN4eAorCX0K K30KKworbGlib21wX3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIENsYW5nIE9wZW5NUCBz dXBwb3J0IGxpYnJhcnkiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9saWIvbGlib21w LnNvCisJCXZtb3ZlICJ1c3IvbGliL2xpYm9tcHRhcmdldC5ydGwuKi5zbyIKKwkJdm1vdmUgdXNy L2xpYi9saWJhcmNoZXIuc28KKwl9Cit9CisKK2xpYm9tcC1kZXZlbF9wYWNrYWdlKCkgeworCXNo b3J0X2Rlc2MrPSIgLSBDbGFuZyBPcGVuTVAgc3VwcG9ydCBsaWJyYXJ5IC0gZGV2ZWxvcG1lbnQg ZmlsZXMiCisJZGVwZW5kcz0ibGlib21wPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCXBrZ19p bnN0YWxsKCkgeworCQl2bW92ZSAidXNyL2xpYi9saWJvbXAqLnNvIgorCQl2bW92ZSAidXNyL2xp Yi9saWJhcmNoZXIqIgorCQl2bW92ZSAidXNyL2luY2x1ZGUvb21wKi5oIgorCQl2bW92ZSAidXNy L2xpYi9jbGFuZy8ke3ZlcnNpb259L2luY2x1ZGUvb21wKi5oIgorCQl2bW92ZSB1c3Ivc2hhcmUv bWFuL21hbjEvbGx2bW9wZW5tcC4xCisJCXZtb3ZlIHVzci9zaGFyZS9kb2Mvb3Blbm1wCisJfQor fQorCitsaWJsbHZtMTNfcGFja2FnZSgpIHsKKwlzaG9ydF9kZXNjKz0iIC0gcnVudGltZSBsaWJy YXJ5IgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSAidXNyL2xpYi9saWJMTFZNLSouc28qIgor CX0KK30KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEzL3VwZGF0ZSBiL3NyY3BrZ3MvbGx2bTEz L3VwZGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmU5NWNmMjZi MzU4NgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEzL3VwZGF0ZQpAQCAtMCwwICsx LDMgQEAKK3NpdGU9Imh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9yZWxlYXNl cyIKK3BhdHRlcm49Imxsdm1vcmctXEsoXGQrLil7Mn1cZCsoLXJjXGQrKT8iCitpZ25vcmU9Iiot cmMqIgoKRnJvbSAyOGZhZTFmNTllNmE0MzQwMzYwYzRlZGZjY2M1M2ZkYmM0N2ZlOTUwIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TG91aXM9MjBEdXByPUMzPUE5PTIw QmVydG9uaT89CiA8bG91aXNkYkBsZXNwZXRpdHNwZWRlc3RyZXMub3JnPgpEYXRlOiBGcmksIDMx IERlYyAyMDIxIDE2OjIzOjE3ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMi8zMV0gbGx2bTogdXBk YXRlIHRvIDEzLjAuMAoKLS0tCiBzcmNwa2dzL2xsdm0vdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBm aWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL2xsdm0vdGVtcGxhdGUgYi9zcmNwa2dzL2xsdm0vdGVtcGxhdGUKaW5kZXggYTky ZGI2Zjk0ZjlmLi5iY2ZlZTgyMDk4ZmYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGx2bS90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2xsdm0vdGVtcGxhdGUKQEAgLTEsMTAgKzEsMTAgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ2xsdm0nCiBwa2duYW1lPWxsdm0KLXZlcnNpb249MTIuMC4wCit2ZXJzaW9u PTEzLjAuMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWV0YQotZGVwZW5kcz0ibGx2bTEyIgot cmVwbGFjZXM9Imxsdm0xMT49MCBsbHZtMTA+PTAgbGx2bTk+PTAgbGx2bTg+PTAgbGx2bTc+PTAg bGx2bTYuMD49MCBsbHZtMy45Pj0wIgorZGVwZW5kcz0ibGx2bTEzIgorcmVwbGFjZXM9Imxsdm0x Mj49MCBsbHZtMTE+PTAgbGx2bTEwPj0wIGxsdm05Pj0wIGxsdm04Pj0wIGxsdm03Pj0wIGxsdm02 LjA+PTAgbGx2bTMuOT49MCIKIHNob3J0X2Rlc2M9IkxMVk0gbWV0YSBwYWNrYWdlIgogbWFpbnRh aW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IlB1Ymxp YyBEb21haW4iCgpGcm9tIDQ5MDkxYTFhNDVjYTk3NzhlNzI2MDMwMTQzMzBkZTJkYTRmN2JmMjEg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9Mb3Vpcz0yMER1cHI9QzM9 QTk9MjBCZXJ0b25pPz0KIDxsb3Vpc2RiQGxlc3BldGl0c3BlZGVzdHJlcy5vcmc+CkRhdGU6IEZy aSwgMzEgRGVjIDIwMjEgMTY6NDM6NTYgKzAyMDAKU3ViamVjdDogW1BBVENIIDAzLzMxXSBsbHZt MTI6IHJlbW92ZSBjbGFuZyBwYXJ0cwoKLS0tCiAuLi5jbGFuZy0wMDEtZml4LXVud2luZC1jaGFp bi1pbmNsdXNpb24ucGF0Y2ggfCAgNDQgLS0tCiAuLi4vcGF0Y2hlcy9jbGFuZy0wMDItYWRkLW11 c2wtdHJpcGxlcy5wYXRjaCAgfCAxMTAgLS0tLS0tLQogLi4uL2NsYW5nLTAwMy1wcGM2NC1keW5h bWljLWxpbmtlci1wYXRoLnBhdGNoIHwgIDEzIC0KIC4uLi9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2 NC1tdXNsLWVsZnYyLnBhdGNoICB8ICA0OCAtLS0KIC4uLi9jb21waWxlci1ydC1hYXJjaDY0LXVj b250ZXh0LnBhdGNoICAgICAgICB8ICAxMSAtCiAuLi4vY29tcGlsZXItcnQtc2FuaXRpemVyLXBw YzY0LW11c2wucGF0Y2ggICAgfCAgMzUgLS0KIC4uLi9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1y dC1zaXplX3QucGF0Y2ggICB8ICAxMCAtCiAuLi4vcGF0Y2hlcy9jb21waWxlci1ydC14cmF5LXBw YzY0LW11c2wucGF0Y2ggfCAgNjIgLS0tLQogc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgt bXVzbC5wYXRjaCAgICAgIHwgIDI2IC0tCiBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1w cGMucGF0Y2ggICAgICAgfCAgMjIgLS0KIC4uLi9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtc3NwLW5v bnNoYXJlZC5wYXRjaCB8ICAxMSAtCiBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eGFiaS1k bC5wYXRjaCAgICAgfCAgMjUgLS0KIHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGlidW53aW5kLXBw YzMyLnBhdGNoICB8ICA2MyAtLS0tCiBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsZGItbXVzbC5w YXRjaCAgICAgICAgfCAgMzEgLS0KIC4uLi9sbHZtMTIvcGF0Y2hlcy9wcGMzMi1jb21waWxlci1y dC5wYXRjaCAgICB8ICAyMSAtLQogc3JjcGtncy9sbHZtMTIvdGVtcGxhdGUgICAgICAgICAgICAg ICAgICAgICAgIHwgMzAxICstLS0tLS0tLS0tLS0tLS0tLQogMTYgZmlsZXMgY2hhbmdlZCwgMSBp bnNlcnRpb24oKyksIDgzMiBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwMS1maXgtdW53aW5kLWNoYWluLWluY2x1c2lvbi5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAyLWFk ZC1tdXNsLXRyaXBsZXMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9w YXRjaGVzL2NsYW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBhdGNoCiBkZWxldGUg bW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDQtcHBjNjQtbXVzbC1l bGZ2Mi5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29t cGlsZXItcnQtYWFyY2g2NC11Y29udGV4dC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvbGx2bTEyL3BhdGNoZXMvY29tcGlsZXItcnQtc2FuaXRpemVyLXBwYzY0LW11c2wucGF0Y2gK IGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0LXNp emVfdC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29t cGlsZXItcnQteHJheS1wcGM2NC1tdXNsLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtbXVzbC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4LXBwYy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4LXNzcC1ub25zaGFyZWQucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eGFiaS1kbC5wYXRjaAog ZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGlidW53aW5kLXBwYzMy LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbGRiLW11 c2wucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL3BwYzMy LWNvbXBpbGVyLXJ0LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9j bGFuZy0wMDEtZml4LXVud2luZC1jaGFpbi1pbmNsdXNpb24ucGF0Y2ggYi9zcmNwa2dzL2xsdm0x Mi9wYXRjaGVzL2NsYW5nLTAwMS1maXgtdW53aW5kLWNoYWluLWluY2x1c2lvbi5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTRlYWE3NzgzZTdhLi4wMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDEtZml4LXVud2luZC1jaGFpbi1pbmNs dXNpb24ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi1Gcm9tIDM1Mjk3NDE2 OWYwZDJiNWRhM2Q1MzIxZjU4OGY1ZTNiNTk0MTMzMGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx Ci1Gcm9tOiBBbmRyZWEgQnJhbmNhbGVvbmkgPG1pd2F4ZUBnbWFpbC5jb20+Ci1EYXRlOiBUdWUs IDggU2VwIDIwMTUgMjI6MTQ6NTcgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAyLzddIGZpeCB1bndp bmQgY2hhaW4gaW5jbHVzaW9uCi0KLS0tLQotIGxpYi9IZWFkZXJzL3Vud2luZC5oIHwgOSArKysr Ky0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQot Ci1kaWZmIC0tZ2l0IGEvbGliL0hlYWRlcnMvdW53aW5kLmggYi9saWIvSGVhZGVycy91bndpbmQu aAotaW5kZXggMzAzZDc5Mi4uNDRlMTBjYyAxMDA2NDQKLS0tLSBhL2NsYW5nL2xpYi9IZWFkZXJz L3Vud2luZC5oCi0rKysgYi9jbGFuZy9saWIvSGVhZGVycy91bndpbmQuaAotQEAgLTksOSArOSw2 IEBACi0gCi0gLyogU2VlICJEYXRhIERlZmluaXRpb25zIGZvciBsaWJnY2NfcyIgaW4gdGhlIExp bnV4IFN0YW5kYXJkIEJhc2UuKi8KLSAKLS0jaWZuZGVmIF9fQ0xBTkdfVU5XSU5EX0gKLS0jZGVm aW5lIF9fQ0xBTkdfVU5XSU5EX0gKLS0KLSAjaWYgZGVmaW5lZChfX0FQUExFX18pICYmIF9faGFz X2luY2x1ZGVfbmV4dCg8dW53aW5kLmg+KQotIC8qIERhcndpbiAoZnJvbSAxMS54IG9uKSBwcm92 aWRlIGFuIHVud2luZC5oLiBJZiB0aGF0J3MgYXZhaWxhYmxlLAotICAqIHVzZSBpdC4gbGlidW53 aW5kIHdyYXBzIHNvbWUgb2YgaXRzIGRlZmluaXRpb25zIGluICNpZmRlZiBfR05VX1NPVVJDRSwK LUBAIC0zOSw2ICszNiw5IEBACi0gIyBlbmRpZgotICNlbHNlCi0gCi0rI2lmbmRlZiBfX0NMQU5H X1VOV0lORF9ICi0rI2RlZmluZSBfX0NMQU5HX1VOV0lORF9ICi0rCi0gI2luY2x1ZGUgPHN0ZGlu dC5oPgotIAotICNpZmRlZiBfX2NwbHVzcGx1cwotQEAgLTMyMiw2ICszMjIsNyBAQCBfVW53aW5k X1B0ciBfVW53aW5kX0dldFRleHRSZWxCYXNlKHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKik7Ci0g fQotICNlbmRpZgotIAotKyNlbmRpZiAvKiBfX0NMQU5HX1VOV0lORF9IICovCi0rCi0gI2VuZGlm Ci0gCi0tI2VuZGlmIC8qIF9fQ0xBTkdfVU5XSU5EX0ggKi8KLS0tIAotMi41LjEKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAyLWFkZC1tdXNsLXRyaXBsZXMucGF0 Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNTY4OGQ0MGRiYzIuLjAwMDAwMDAw MDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlw bGVzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTEwICswLDAgQEAKLS0tLSBhL2NsYW5nL2xp Yi9Ecml2ZXIvVG9vbENoYWlucy9HbnUuY3BwCi0rKysgYi9jbGFuZy9saWIvRHJpdmVyL1Rvb2xD aGFpbnMvR251LmNwcAotQEAgLTIwODYsNyArMjA4Niw4IEBAIHZvaWQgR2VuZXJpY19HQ0M6OkdD Q0luc3RhbGxhdGlvbkRldGVjdG9yOjpBZGREZWZhdWx0R0NDUHJlZml4ZXMoCi0gICBzdGF0aWMg Y29uc3QgY2hhciAqY29uc3QgQVJNSEZUcmlwbGVzW10gPSB7ImFybS1saW51eC1nbnVlYWJpaGYi LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcm12N2hs LXJlZGhhdC1saW51eC1nbnVlYWJpIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiYXJtdjZobC1zdXNlLWxpbnV4LWdudWVhYmkiLAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcm12N2hsLXN1c2UtbGludXgtZ251 ZWFiaSJ9OwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJh cm12N2hsLXN1c2UtbGludXgtZ251ZWFiaSIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgImFybXY3bC1saW51eC1nbnVlYWJpaGYifTsKLSAgIHN0YXRpYyBj b25zdCBjaGFyICpjb25zdCBBUk1lYkxpYkRpcnNbXSA9IHsiL2xpYiJ9OwotICAgc3RhdGljIGNv bnN0IGNoYXIgKmNvbnN0IEFSTWViVHJpcGxlc1tdID0geyJhcm1lYi1saW51eC1nbnVlYWJpIiwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtZWItbGlu dXgtYW5kcm9pZGVhYmkifTsKLUBAIC0yMTUzLDggKzIxNTQsNyBAQCB2b2lkIEdlbmVyaWNfR0ND OjpHQ0NJbnN0YWxsYXRpb25EZXRlY3Rvcjo6QWRkRGVmYXVsdEdDQ1ByZWZpeGVzKAotICAgICAg ICJwb3dlcnBjNjQtc3VzZS1saW51eCIsICJwb3dlcnBjLW1vbnRhdmlzdGEtbGludXhzcGUifTsK LSAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUENMRUxpYkRpcnNbXSA9IHsiL2xpYjMyIiwg Ii9saWIifTsKLSAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUENMRVRyaXBsZXNbXSA9IHsi cG93ZXJwY2xlLWxpbnV4LWdudSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgInBvd2VycGNsZS11bmtub3duLWxpbnV4LWdudSIsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvd2VycGNsZS1saW51eC1tdXNsIn07 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvd2VycGNs ZS11bmtub3duLWxpbnV4LWdudSJ9OwotIAotICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQ QzY0TGliRGlyc1tdID0geyIvbGliNjQiLCAiL2xpYiJ9OwotICAgc3RhdGljIGNvbnN0IGNoYXIg KmNvbnN0IFBQQzY0VHJpcGxlc1tdID0gewotQEAgLTIyMzUsNiArMjIzNSw4NyBAQCB2b2lkIEdl bmVyaWNfR0NDOjpHQ0NJbnN0YWxsYXRpb25EZXRlY3Rvcjo6QWRkRGVmYXVsdEdDQ1ByZWZpeGVz KAotICAgICByZXR1cm47Ci0gICB9Ci0gCi0rICBpZiAoVGFyZ2V0VHJpcGxlLmlzTXVzbCgpKSB7 Ci0rICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBQXJjaDY0TXVzbFRyaXBsZXNbXSA9IHsi YWFyY2g2NC1saW51eC1tdXNsIn07Ci0rICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBUk1I Rk11c2xUcmlwbGVzW10gPSB7Ci0rICAgICAgICAiYXJtLWxpbnV4LW11c2xlYWJpaGYiLCAiYXJt djdsLWxpbnV4LW11c2xlYWJpaGYiCi0rICAgIH07Ci0rICAgIHN0YXRpYyBjb25zdCBjaGFyICpj b25zdCBBUk1NdXNsVHJpcGxlc1tdID0geyJhcm0tbGludXgtbXVzbGVhYmkifTsKLSsgICAgc3Rh dGljIGNvbnN0IGNoYXIgKmNvbnN0IFg4Nl82NE11c2xUcmlwbGVzW10gPSB7Ing4Nl82NC1saW51 eC1tdXNsIn07Ci0rICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBYODZNdXNsVHJpcGxlc1td ID0geyJpNjg2LWxpbnV4LW11c2wifTsKLSsgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IE1J UFNNdXNsVHJpcGxlc1tdID0gewotKyAgICAgICAgIm1pcHMtbGludXgtbXVzbCIsICJtaXBzZWwt bGludXgtbXVzbCIsCi0rICAgICAgICAibWlwc2VsLWxpbnV4LW11c2xoZiIsICJtaXBzLWxpbnV4 LW11c2xoZiIKLSsgICAgfTsKLSsgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQ011c2xU cmlwbGVzW10gPSB7InBvd2VycGMtbGludXgtbXVzbCJ9OwotKyAgICBzdGF0aWMgY29uc3QgY2hh ciAqY29uc3QgUFBDTEVNdXNsVHJpcGxlc1tdID0geyJwb3dlcnBjbGUtbGludXgtbXVzbCJ9Owot KyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDNjRNdXNsVHJpcGxlc1tdID0geyJwb3dl cnBjNjQtbGludXgtbXVzbCJ9OwotKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDNjRM RU11c2xUcmlwbGVzW10gPSB7InBvd2VycGM2NGxlLWxpbnV4LW11c2wifTsKLSsKLSsgICAgc3dp dGNoIChUYXJnZXRUcmlwbGUuZ2V0QXJjaCgpKSB7Ci0rICAgIGNhc2UgbGx2bTo6VHJpcGxlOjph YXJjaDY0OgotKyAgICAgIExpYkRpcnMuYXBwZW5kKGJlZ2luKEFBcmNoNjRMaWJEaXJzKSwgZW5k KEFBcmNoNjRMaWJEaXJzKSk7Ci0rICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oQUFy Y2g2NE11c2xUcmlwbGVzKSwgZW5kKEFBcmNoNjRNdXNsVHJpcGxlcykpOwotKyAgICAgIEJpYXJj aExpYkRpcnMuYXBwZW5kKGJlZ2luKEFBcmNoNjRMaWJEaXJzKSwgZW5kKEFBcmNoNjRMaWJEaXJz KSk7Ci0rICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oQUFyY2g2NE11c2xU cmlwbGVzKSwgZW5kKEFBcmNoNjRNdXNsVHJpcGxlcykpOwotKyAgICAgIGJyZWFrOwotKyAgICBj YXNlIGxsdm06OlRyaXBsZTo6YXJtOgotKyAgICAgIExpYkRpcnMuYXBwZW5kKGJlZ2luKEFSTUxp YkRpcnMpLCBlbmQoQVJNTGliRGlycykpOwotKyAgICAgIGlmIChUYXJnZXRUcmlwbGUuZ2V0RW52 aXJvbm1lbnQoKSA9PSBsbHZtOjpUcmlwbGU6Ok11c2xFQUJJSEYpIHsKLSsgICAgICAgIFRyaXBs ZUFsaWFzZXMuYXBwZW5kKGJlZ2luKEFSTUhGTXVzbFRyaXBsZXMpLCBlbmQoQVJNSEZNdXNsVHJp cGxlcykpOwotKyAgICAgIH0gZWxzZSB7Ci0rICAgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChi ZWdpbihBUk1NdXNsVHJpcGxlcyksIGVuZChBUk1NdXNsVHJpcGxlcykpOwotKyAgICAgIH0KLSsg ICAgICBicmVhazsKLSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6Ong4Nl82NDoKLSsgICAgICBMaWJE aXJzLmFwcGVuZChiZWdpbihYODZfNjRMaWJEaXJzKSwgZW5kKFg4Nl82NExpYkRpcnMpKTsKLSsg ICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihYODZfNjRNdXNsVHJpcGxlcyksIGVuZChY ODZfNjRNdXNsVHJpcGxlcykpOwotKyAgICAgIEJpYXJjaExpYkRpcnMuYXBwZW5kKGJlZ2luKFg4 NkxpYkRpcnMpLCBlbmQoWDg2TGliRGlycykpOwotKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMu YXBwZW5kKGJlZ2luKFg4Nk11c2xUcmlwbGVzKSwgZW5kKFg4Nk11c2xUcmlwbGVzKSk7Ci0rICAg ICAgYnJlYWs7Ci0rICAgIGNhc2UgbGx2bTo6VHJpcGxlOjp4ODY6Ci0rICAgICAgTGliRGlycy5h cHBlbmQoYmVnaW4oWDg2TGliRGlycyksIGVuZChYODZMaWJEaXJzKSk7Ci0rICAgICAgVHJpcGxl QWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2TXVzbFRyaXBsZXMpLCBlbmQoWDg2TXVzbFRyaXBsZXMp KTsKLSsgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihYODZfNjRMaWJEaXJzKSwgZW5k KFg4Nl82NExpYkRpcnMpKTsKLSsgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdp bihYODZfNjRNdXNsVHJpcGxlcyksIGVuZChYODZfNjRNdXNsVHJpcGxlcykpOwotKyAgICAgIGJy ZWFrOwotKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6bWlwczoKLSsgICAgICBMaWJEaXJzLmFwcGVu ZChiZWdpbihNSVBTTGliRGlycyksIGVuZChNSVBTTGliRGlycykpOwotKyAgICAgIFRyaXBsZUFs aWFzZXMuYXBwZW5kKGJlZ2luKE1JUFNNdXNsVHJpcGxlcyksIGVuZChNSVBTTXVzbFRyaXBsZXMp KTsKLSsgICAgICBicmVhazsKLSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzoKLSsgICAgICBM aWJEaXJzLmFwcGVuZChiZWdpbihQUENMaWJEaXJzKSwgZW5kKFBQQ0xpYkRpcnMpKTsKLSsgICAg ICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUENNdXNsVHJpcGxlcyksIGVuZChQUENNdXNs VHJpcGxlcykpOwotKyAgICAgIEJpYXJjaExpYkRpcnMuYXBwZW5kKGJlZ2luKFBQQzY0TGliRGly cyksIGVuZChQUEM2NExpYkRpcnMpKTsKLSsgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVu ZChiZWdpbihQUEM2NE11c2xUcmlwbGVzKSwgZW5kKFBQQzY0TXVzbFRyaXBsZXMpKTsKLSsgICAg ICBicmVhazsKLSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwY2xlOgotKyAgICAgIExpYkRpcnMu YXBwZW5kKGJlZ2luKFBQQ0xFTGliRGlycyksIGVuZChQUENMRUxpYkRpcnMpKTsKLSsgICAgICBU cmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUENMRU11c2xUcmlwbGVzKSwgZW5kKFBQQ0xFTXVz bFRyaXBsZXMpKTsKLSsgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihQUEM2NExFTGli RGlycyksIGVuZChQUEM2NExFTGliRGlycykpOwotKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMu YXBwZW5kKGJlZ2luKFBQQzY0TEVNdXNsVHJpcGxlcyksIGVuZChQUEM2NExFTXVzbFRyaXBsZXMp KTsKLSsgICAgICBicmVhazsKLSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0OgotKyAgICAg IExpYkRpcnMuYXBwZW5kKGJlZ2luKFBQQzY0TGliRGlycyksIGVuZChQUEM2NExpYkRpcnMpKTsK LSsgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUEM2NE11c2xUcmlwbGVzKSwgZW5k KFBQQzY0TXVzbFRyaXBsZXMpKTsKLSsgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihQ UENMaWJEaXJzKSwgZW5kKFBQQ0xpYkRpcnMpKTsKLSsgICAgICBCaWFyY2hUcmlwbGVBbGlhc2Vz LmFwcGVuZChiZWdpbihQUENNdXNsVHJpcGxlcyksIGVuZChQUENNdXNsVHJpcGxlcykpOwotKyAg ICAgIGJyZWFrOwotKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjRsZToKLSsgICAgICBMaWJE aXJzLmFwcGVuZChiZWdpbihQUEM2NExFTGliRGlycyksIGVuZChQUEM2NExFTGliRGlycykpOwot KyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQzY0TEVNdXNsVHJpcGxlcyksIGVu ZChQUEM2NExFTXVzbFRyaXBsZXMpKTsKLSsgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdp bihQUENMRUxpYkRpcnMpLCBlbmQoUFBDTEVMaWJEaXJzKSk7Ci0rICAgICAgQmlhcmNoVHJpcGxl QWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTEVNdXNsVHJpcGxlcyksIGVuZChQUENMRU11c2xUcmlw bGVzKSk7Ci0rICAgICAgYnJlYWs7Ci0rICAgIGRlZmF1bHQ6Ci0rICAgICAgYnJlYWs7Ci0rICAg IH0KLSsgICAgVHJpcGxlQWxpYXNlcy5wdXNoX2JhY2soVGFyZ2V0VHJpcGxlLnN0cigpKTsKLSsg ICAgaWYgKFRhcmdldFRyaXBsZS5zdHIoKSAhPSBCaWFyY2hUcmlwbGUuc3RyKCkpCi0rICAgICAg QmlhcmNoVHJpcGxlQWxpYXNlcy5wdXNoX2JhY2soQmlhcmNoVHJpcGxlLnN0cigpKTsKLSsgICAg cmV0dXJuOwotKyAgfQotKwotICAgLy8gQW5kcm9pZCB0YXJnZXRzIHNob3VsZCBub3QgdXNlIEdO VS9MaW51eCB0b29scyBvciBsaWJyYXJpZXMuCi0gICBpZiAoVGFyZ2V0VHJpcGxlLmlzQW5kcm9p ZCgpKSB7Ci0gICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBQXJjaDY0QW5kcm9pZFRyaXBs ZXNbXSA9IHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAzLXBw YzY0LWR5bmFtaWMtbGlua2VyLXBhdGgucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2Ns YW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA0YWQ2NDEyZDFlNmMuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xs dm0xMi9wYXRjaGVzL2NsYW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotLS0tIGEvY2xhbmcvbGliL0RyaXZlci9Ub29s Q2hhaW5zL0xpbnV4LmNwcAotKysrIGIvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0xpbnV4 LmNwcAotQEAgLTUwNCwxMCArNTA0LDYgQEAgc3RkOjpzdHJpbmcgTGludXg6OmdldER5bmFtaWNM aW5rZXIoY29uc3QgQXJnTGlzdCAmQXJncykgY29uc3QgewotICAgICBMb2FkZXIgPSAibGQuc28u MSI7Ci0gICAgIGJyZWFrOwotICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0OgotLSAgICBMaWJE aXIgPSAibGliNjQiOwotLSAgICBMb2FkZXIgPQotLSAgICAgICAgKHRvb2xzOjpwcGM6Omhhc1BQ Q0FiaUFyZyhBcmdzLCAiZWxmdjIiKSkgPyAibGQ2NC5zby4yIiA6ICJsZDY0LnNvLjEiOwotLSAg ICBicmVhazsKLSAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NGxlOgotICAgICBMaWJEaXIgPSAi bGliNjQiOwotICAgICBMb2FkZXIgPQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hl cy9jbGFuZy0wMDQtcHBjNjQtbXVzbC1lbGZ2Mi5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNo ZXMvY2xhbmctMDA0LXBwYzY0LW11c2wtZWxmdjIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDIxZmM4MDAzYzVmMS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEy L3BhdGNoZXMvY2xhbmctMDA0LXBwYzY0LW11c2wtZWxmdjIucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSw0OCArMCwwIEBACi0tLS0gYS9jbGFuZy9saWIvQmFzaWMvVGFyZ2V0cy9QUEMuaAotKysr IGIvY2xhbmcvbGliL0Jhc2ljL1RhcmdldHMvUFBDLmgKLUBAIC00MTUsMTEgKzQxNSwxMCBAQCBw dWJsaWM6Ci0gICAgICAgTG9uZ0RvdWJsZUZvcm1hdCA9ICZsbHZtOjpBUEZsb2F0OjpJRUVFZG91 YmxlKCk7Ci0gICAgIH0gZWxzZSBpZiAoKFRyaXBsZS5nZXRBcmNoKCkgPT0gbGx2bTo6VHJpcGxl OjpwcGM2NGxlKSkgewotICAgICAgIERhdGFMYXlvdXQgPSAiZS1tOmUtaTY0OjY0LW4zMjo2NCI7 Ci0tICAgICAgQUJJID0gImVsZnYyIjsKLSAgICAgfSBlbHNlIHsKLSAgICAgICBEYXRhTGF5b3V0 ID0gIkUtbTplLWk2NDo2NC1uMzI6NjQiOwotLSAgICAgIEFCSSA9ICJlbGZ2MSI7Ci0gICAgIH0K LSsgICAgQUJJID0gImVsZnYyIjsKLSAKLSAgICAgaWYgKFRyaXBsZS5pc09TRnJlZUJTRCgpIHx8 IFRyaXBsZS5pc09TT3BlbkJTRCgpIHx8IFRyaXBsZS5pc011c2woKSkgewotICAgICAgIExvbmdE b3VibGVXaWR0aCA9IExvbmdEb3VibGVBbGlnbiA9IDY0OwotLS0tIGEvY2xhbmcvbGliL0NvZGVH ZW4vVGFyZ2V0SW5mby5jcHAKLSsrKyBiL2NsYW5nL2xpYi9Db2RlR2VuL1RhcmdldEluZm8uY3Bw Ci1AQCAtMTA5MjcsOSArMTA5MjcsOSBAQCBjb25zdCBUYXJnZXRDb2RlR2VuSW5mbyAmQ29kZUdl bk1vZHVsZTo6Z2V0VGFyZ2V0Q29kZUdlbkluZm8oKSB7Ci0gICAgICAgcmV0dXJuIFNldENHSW5m byhuZXcgQUlYVGFyZ2V0Q29kZUdlbkluZm8oVHlwZXMsIC8qSXM2NEJpdCovIHRydWUpKTsKLSAK LSAgICAgaWYgKFRyaXBsZS5pc09TQmluRm9ybWF0RUxGKCkpIHsKLS0gICAgICBQUEM2NF9TVlI0 X0FCSUluZm86OkFCSUtpbmQgS2luZCA9IFBQQzY0X1NWUjRfQUJJSW5mbzo6RUxGdjE7Ci0tICAg ICAgaWYgKGdldFRhcmdldCgpLmdldEFCSSgpID09ICJlbGZ2MiIpCi0tICAgICAgICBLaW5kID0g UFBDNjRfU1ZSNF9BQklJbmZvOjpFTEZ2MjsKLSsgICAgICBQUEM2NF9TVlI0X0FCSUluZm86OkFC SUtpbmQgS2luZCA9IFBQQzY0X1NWUjRfQUJJSW5mbzo6RUxGdjI7Ci0rICAgICAgaWYgKGdldFRh cmdldCgpLmdldEFCSSgpID09ICJlbGZ2MSIpCi0rICAgICAgICBLaW5kID0gUFBDNjRfU1ZSNF9B QklJbmZvOjpFTEZ2MTsKLSAgICAgICBib29sIElzU29mdEZsb2F0ID0gQ29kZUdlbk9wdHMuRmxv YXRBQkkgPT0gInNvZnQiOwotIAotICAgICAgIHJldHVybiBTZXRDR0luZm8oCi0tLS0gYS9jbGFu Zy9saWIvRHJpdmVyL1Rvb2xDaGFpbnMvQ2xhbmcuY3BwCi0rKysgYi9jbGFuZy9saWIvRHJpdmVy L1Rvb2xDaGFpbnMvQ2xhbmcuY3BwCi1AQCAtMTkyMCwxNCArMTkyMCw3IEBAIHZvaWQgQ2xhbmc6 OkFkZFBQQ1RhcmdldEFyZ3MoY29uc3QgQXJnTGlzdCAmQXJncywKLSAgIGNvbnN0IGxsdm06OlRy aXBsZSAmVCA9IGdldFRvb2xDaGFpbigpLmdldFRyaXBsZSgpOwotICAgaWYgKFQuaXNPU0JpbkZv cm1hdEVMRigpKSB7Ci0gICAgIHN3aXRjaCAoZ2V0VG9vbENoYWluKCkuZ2V0QXJjaCgpKSB7Ci0t ICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NDogewotLSAgICAgIGlmICgoVC5pc09TRnJlZUJT RCgpICYmIFQuZ2V0T1NNYWpvclZlcnNpb24oKSA+PSAxMykgfHwKLS0gICAgICAgICAgVC5pc09T T3BlbkJTRCgpIHx8IFQuaXNNdXNsKCkpCi0tICAgICAgICBBQklOYW1lID0gImVsZnYyIjsKLS0g ICAgICBlbHNlCi0tICAgICAgICBBQklOYW1lID0gImVsZnYxIjsKLS0gICAgICBicmVhazsKLS0g ICAgfQotKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjQ6Ci0gICAgIGNhc2UgbGx2bTo6VHJp cGxlOjpwcGM2NGxlOgotICAgICAgIEFCSU5hbWUgPSAiZWxmdjIiOwotICAgICAgIGJyZWFrOwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC1hYXJjaDY0LXVj b250ZXh0LnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC1hYXJjaDY0 LXVjb250ZXh0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OTNjMDU5ZDdi OGQuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0 LWFhcmNoNjQtdWNvbnRleHQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0t LS0gYS9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfbGludXguY3Bw Lm9yaWcKLSsrKyBiL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9s aW51eC5jcHAKLUBAIC0xNzk5LDcgKzE3OTksNyBAQAotIAotIHN0YXRpYyBib29sIEFhcmNoNjRH ZXRFU1IodWNvbnRleHRfdCAqdWNvbnRleHQsIHU2NCAqZXNyKSB7Ci0gICBzdGF0aWMgY29uc3Qg dTMyIGtFc3JNYWdpYyA9IDB4NDU1MzUyMDE7Ci0tICB1OCAqYXV4ID0gdWNvbnRleHQtPnVjX21j b250ZXh0Ll9fcmVzZXJ2ZWQ7Ci0rICB1OCAqYXV4ID0gcmVpbnRlcnByZXRfY2FzdDx1OCAqPih1 Y29udGV4dC0+dWNfbWNvbnRleHQuX19yZXNlcnZlZCk7Ci0gICB3aGlsZSAodHJ1ZSkgewotICAg ICBfYWFyY2g2NF9jdHggKmN0eCA9IChfYWFyY2g2NF9jdHggKilhdXg7Ci0gICAgIGlmIChjdHgt PnNpemUgPT0gMCkgYnJlYWs7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2Nv bXBpbGVyLXJ0LXNhbml0aXplci1wcGM2NC1tdXNsLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0 Y2hlcy9jb21waWxlci1ydC1zYW5pdGl6ZXItcHBjNjQtbXVzbC5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMzVmMTZkMjRmMzQwLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtn cy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC1zYW5pdGl6ZXItcHBjNjQtbXVzbC5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLS0tLSBhL2NvbXBpbGVyLXJ0L2xpYi9zYW5p dGl6ZXJfY29tbW9uL3Nhbml0aXplcl9saW51eC5jcHAKLSsrKyBiL2NvbXBpbGVyLXJ0L2xpYi9z YW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9saW51eC5jcHAKLUBAIC03NCw2ICs3NCwxMCBAQAot ICNpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgotICNlbmRpZgotIAotKyNpZiBTQU5JVElaRVJfTElO VVggJiYgZGVmaW5lZChfX3Bvd2VycGNfXykKLSsjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgotKyNl bmRpZgotKwotICNpZiBTQU5JVElaRVJfTElOVVggJiYgIVNBTklUSVpFUl9BTkRST0lECi0gI2lu Y2x1ZGUgPHN5cy9wZXJzb25hbGl0eS5oPgotICNlbmRpZgotLS0tIGEvY29tcGlsZXItcnQvbGli L3Nhbml0aXplcl9jb21tb24vc2FuaXRpemVyX3BsYXRmb3JtX2xpbWl0c19wb3NpeC5jcHAKLSsr KyBiL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9wbGF0Zm9ybV9s aW1pdHNfcG9zaXguY3BwCi1AQCAtOTIsNyArOTIsNyBAQAotICMgaW5jbHVkZSA8dXRpbWUuaD4K LSAjIGluY2x1ZGUgPHN5cy9wdHJhY2UuaD4KLSAjaWYgZGVmaW5lZChfX21pcHM2NCkgfHwgZGVm aW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIFNBTklUSVpF Ul9SSVNDVjY0Ci0rICAgIGRlZmluZWQoX19wb3dlcnBjX18pIHx8IFNBTklUSVpFUl9SSVNDVjY0 Ci0gIyAgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgotICMgIGlmZGVmIF9fYXJtX18KLSB0eXBlZGVm IHN0cnVjdCB1c2VyX2ZwcmVncyBlbGZfZnByZWdzZXRfdDsKLS0tLSBhL2NvbXBpbGVyLXJ0L2xp Yi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9zdG9wdGhld29ybGRfbGludXhfbGliY2RlcC5j cHAKLSsrKyBiL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9zdG9w dGhld29ybGRfbGludXhfbGliY2RlcC5jcHAKLUBAIC0zMSw3ICszMSw3IEBACi0gI2luY2x1ZGUg PHN5cy90eXBlcy5oPiAvLyBmb3IgcGlkX3QKLSAjaW5jbHVkZSA8c3lzL3Vpby5oPiAvLyBmb3Ig aW92ZWMKLSAjaW5jbHVkZSA8ZWxmLmg+IC8vIGZvciBOVF9QUlNUQVRVUwotLSNpZiAoZGVmaW5l ZChfX2FhcmNoNjRfXykgfHwgU0FOSVRJWkVSX1JJU0NWNjQpICYmICFTQU5JVElaRVJfQU5EUk9J RAotKyNpZiAoZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGNfXykgfHwg U0FOSVRJWkVSX1JJU0NWNjQpICYmICFTQU5JVElaRVJfQU5EUk9JRAotIC8vIEdMSUJDIDIuMjAr IHN5cy91c2VyIGRvZXMgbm90IGluY2x1ZGUgYXNtL3B0cmFjZS5oCi0gIyBpbmNsdWRlIDxhc20v cHRyYWNlLmg+Ci0gI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2Nv bXBpbGVyLXJ0LXNpemVfdC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29tcGlsZXIt cnQtc2l6ZV90LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYzYzMDYzYTVl OWUuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0 LXNpemVfdC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLS0tLSBhL2NvbXBp bGVyLXJ0L2xpYi9mdXp6ZXIvRnV6emVySW50ZXJjZXB0b3JzLmNwcC5vcmlnCi0rKysgYi9jb21w aWxlci1ydC9saWIvZnV6emVyL0Z1enplckludGVyY2VwdG9ycy5jcHAKLUBAIC0yNSw2ICsyNSw3 IEBACi0gICB9Ci0gCi0gI2luY2x1ZGUgPGNhc3NlcnQ+Ci0rI2luY2x1ZGUgPGNzdGRkZWY+Ci0g I2luY2x1ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1ZGUgPGRsZmNuLmg+IC8vIGZvciBkbHN5bSgpCi0g CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0LXhyYXktcHBj NjQtbXVzbC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29tcGlsZXItcnQteHJheS1w cGM2NC1tdXNsLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMGI2MWM4MGM4 OTcuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0 LXhyYXktcHBjNjQtbXVzbC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLS0t LSBhL2NvbXBpbGVyLXJ0L2xpYi94cmF5L3hyYXlfcG93ZXJwYzY0LmluYwotKysrIGIvY29tcGls ZXItcnQvbGliL3hyYXkveHJheV9wb3dlcnBjNjQuaW5jCi1AQCAtMTIsNyArMTIsMTMgQEAKLSAK LSAjaW5jbHVkZSA8Y3N0ZGludD4KLSAjaW5jbHVkZSA8bXV0ZXg+Ci0rI2lmZGVmIF9fR0xJQkNf XwotICNpbmNsdWRlIDxzeXMvcGxhdGZvcm0vcHBjLmg+Ci0rI2Vsc2UKLSsjaW5jbHVkZSA8Y2N0 eXBlPgotKyNpbmNsdWRlIDxjc3RyaW5nPgotKyNpbmNsdWRlIDxjc3RkbGliPgotKyNlbmRpZgot IAotICNpbmNsdWRlICJ4cmF5X2RlZnMuaCIKLSAKLUBAIC0yMCwxMyArMjYsNDUgQEAgbmFtZXNw YWNlIF9feHJheSB7Ci0gCi0gQUxXQVlTX0lOTElORSB1aW50NjRfdCByZWFkVFNDKHVpbnQ4X3Qg JkNQVSkgWFJBWV9ORVZFUl9JTlNUUlVNRU5UIHsKLSAgIENQVSA9IDA7Ci0rI2lmZGVmIF9fR0xJ QkNfXwotICAgcmV0dXJuIF9fcHBjX2dldF90aW1lYmFzZSgpOwotKyNlbHNlCi0rICByZXR1cm4g X19idWlsdGluX3BwY19nZXRfdGltZWJhc2UoKTsKLSsjZW5kaWYKLSB9Ci0gCi0gaW5saW5lIHVp bnQ2NF90IGdldFRTQ0ZyZXF1ZW5jeSgpIFhSQVlfTkVWRVJfSU5TVFJVTUVOVCB7Ci0gICBzdGF0 aWMgc3RkOjptdXRleCBNOwotICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IEd1YXJkKE0p OwotKyNpZmRlZiBfX0dMSUJDX18KLSAgIHJldHVybiBfX3BwY19nZXRfdGltZWJhc2VfZnJlcSgp OwotKyNlbHNlCi0rICAvKiBGSVhNRTogYSBsZXNzIGRpcnR5IGltcGxlbWVudGF0aW9uPyAqLwot KyAgc3RhdGljIHVpbnQ2NF90IGJhc2U7Ci0rICBpZiAoIWJhc2UpIHsKLSsgICAgRklMRSAqZiA9 IGZvcGVuKCIvcHJvYy9jcHVpbmZvIiwgInJiIik7Ci0rICAgIGlmIChmKSB7Ci0rICAgICAgc3Np emVfdCBucjsKLSsgICAgICAvKiB2aXJ0dWFsbHkgYWx3YXlzIGJpZyBlbm91Z2ggdG8gaG9sZCB0 aGUgbGluZSAqLwotKyAgICAgIGNoYXIgYnVmWzUxMl07Ci0rICAgICAgd2hpbGUgKGZnZXRzKGJ1 Ziwgc2l6ZW9mKGJ1ZiksIGYpKSB7Ci0rICAgICAgICBjaGFyICpyZXQgPSBzdHJzdHIoYnVmLCAi dGltZWJhc2UiKTsKLSsgICAgICAgIGlmICghcmV0KSB7Ci0rICAgICAgICAgIGNvbnRpbnVlOwot KyAgICAgICAgfQotKyAgICAgICAgcmV0ICs9IHNpemVvZigidGltZWJhc2UiKSAtIDE7Ci0rICAg ICAgICByZXQgPSBzdHJjaHIocmV0LCAnOicpOwotKyAgICAgICAgaWYgKCFyZXQpIHsKLSsgICAg ICAgICAgY29udGludWU7Ci0rICAgICAgICB9Ci0rICAgICAgICBiYXNlID0gc3RydG91bChyZXQg KyAxLCBudWxscHRyLCAxMCk7Ci0rICAgICAgICBicmVhazsKLSsgICAgICB9Ci0rICAgICAgZmNs b3NlKGYpOwotKyAgICB9Ci0rICB9Ci0rICByZXR1cm4gYmFzZTsKLSsjZW5kaWYKLSB9Ci0gCi0g aW5saW5lIGJvb2wgcHJvYmVSZXF1aXJlZENQVUZlYXR1cmVzKCkgWFJBWV9ORVZFUl9JTlNUUlVN RU5UIHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4LW11c2wucGF0 Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1tdXNsLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCBiYmQzMWZmYzJjYjEuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNw a2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1tdXNsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MjYgKzAsMCBAQAotLS0tIGEvbGliY3h4L2luY2x1ZGUvbG9jYWxlCi0rKysgYi9saWJjeHgvaW5j bHVkZS9sb2NhbGUKLUBAIC03NDIsNyArNzQyLDExIEBAIF9fbnVtX2dldF9zaWduZWRfaW50ZWdy YWwoY29uc3QgY2hhciogX19hLCBjb25zdCBjaGFyKiBfX2FfZW5kLAotICAgICAgICAgdHlwZW5h bWUgcmVtb3ZlX3JlZmVyZW5jZTxkZWNsdHlwZShlcnJubyk+Ojp0eXBlIF9fc2F2ZV9lcnJubyA9 IGVycm5vOwotICAgICAgICAgZXJybm8gPSAwOwotICAgICAgICAgY2hhciAqX19wMjsKLSsjaWYg ZGVmaW5lZChfX2xpbnV4X18pICYmICFkZWZpbmVkKF9fR0xJQkNfXykKLSsgICAgICAgIGxvbmcg bG9uZyBfX2xsID0gc3RydG9sbChfX2EsICZfX3AyLCBfX2Jhc2UpOwotKyNlbHNlCi0gICAgICAg ICBsb25nIGxvbmcgX19sbCA9IHN0cnRvbGxfbChfX2EsICZfX3AyLCBfX2Jhc2UsIF9MSUJDUFBf R0VUX0NfTE9DQUxFKTsKLSsjZW5kaWYKLSAgICAgICAgIHR5cGVuYW1lIHJlbW92ZV9yZWZlcmVu Y2U8ZGVjbHR5cGUoZXJybm8pPjo6dHlwZSBfX2N1cnJlbnRfZXJybm8gPSBlcnJubzsKLSAgICAg ICAgIGlmIChfX2N1cnJlbnRfZXJybm8gPT0gMCkKLSAgICAgICAgICAgICBlcnJubyA9IF9fc2F2 ZV9lcnJubzsKLUBAIC03ODIsNyArNzg2LDExIEBAIF9fbnVtX2dldF91bnNpZ25lZF9pbnRlZ3Jh bChjb25zdCBjaGFyKiBfX2EsIGNvbnN0IGNoYXIqIF9fYV9lbmQsCi0gICAgICAgICB0eXBlbmFt ZSByZW1vdmVfcmVmZXJlbmNlPGRlY2x0eXBlKGVycm5vKT46OnR5cGUgX19zYXZlX2Vycm5vID0g ZXJybm87Ci0gICAgICAgICBlcnJubyA9IDA7Ci0gICAgICAgICBjaGFyICpfX3AyOwotKyNpZiBk ZWZpbmVkKF9fbGludXhfXykgJiYgIWRlZmluZWQoX19HTElCQ19fKQotKyAgICAgICAgdW5zaWdu ZWQgbG9uZyBsb25nIF9fbGwgPSBzdHJ0b3VsbChfX2EsICZfX3AyLCBfX2Jhc2UpOwotKyNlbHNl Ci0gICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX19sbCA9IHN0cnRvdWxsX2woX19hLCAmX19w MiwgX19iYXNlLCBfTElCQ1BQX0dFVF9DX0xPQ0FMRSk7Ci0rI2VuZGlmCi0gICAgICAgICB0eXBl bmFtZSByZW1vdmVfcmVmZXJlbmNlPGRlY2x0eXBlKGVycm5vKT46OnR5cGUgX19jdXJyZW50X2Vy cm5vID0gZXJybm87Ci0gICAgICAgICBpZiAoX19jdXJyZW50X2Vycm5vID09IDApCi0gICAgICAg ICAgICAgZXJybm8gPSBfX3NhdmVfZXJybm87CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9w YXRjaGVzL2xpYmN4eC1wcGMucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1w cGMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhOTJmODAwNGUxYy4uMDAw MDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4LXBwYy5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVRoaXMgZW5zdXJlcyBgaXNfaWVjNTU5YCBp cyBkZWZpbmVkIGNvcnJlY3RseSB1bmRlciBhbGwgbG9uZyBkb3VibGUgQUJJcywKLWluY2x1ZGlu ZyBtdXNsIGFuZCBpdHMgNjQtYml0IGxvbmcgZG91YmxlLiBBbHNvLCBgX19wcGNfX2Agb3IgYF9f cHBjNjRfX2AKLWlzIG5vdCBkZWZpbmVkIG9uIGdjYy4KLQotLS0tIGEvbGliY3h4L2luY2x1ZGUv bGltaXRzCi0rKysgYi9saWJjeHgvaW5jbHVkZS9saW1pdHMKLUBAIC00MjYsOCArNDI2LDE0IEBA IHByb3RlY3RlZDoKLSAgICAgX0xJQkNQUF9JTkxJTkVfVklTSUJJTElUWSBzdGF0aWMgX0xJQkNQ UF9DT05TVEVYUFIgdHlwZSBzaWduYWxpbmdfTmFOKCkgX05PRVhDRVBUIHtyZXR1cm4gX19idWls dGluX25hbnNsKCIiKTt9Ci0gICAgIF9MSUJDUFBfSU5MSU5FX1ZJU0lCSUxJVFkgc3RhdGljIF9M SUJDUFBfQ09OU1RFWFBSIHR5cGUgZGVub3JtX21pbigpIF9OT0VYQ0VQVCB7cmV0dXJuIF9fTERC TF9ERU5PUk1fTUlOX187fQotIAotLSNpZiAoZGVmaW5lZChfX3BwY19fKSB8fCBkZWZpbmVkKF9f cHBjNjRfXykpCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjX18pIHx8IGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSsjaWYgKF9fTERCTF9NQVhfRVhQX18gPiBfX0RCTF9NQVhfRVhQX18pIHx8IChfX0xE QkxfTUFOVF9ESUdfXyA9PSBfX0RCTF9NQU5UX0RJR19fKQotKyAgICAvKiBJRUVFIDc1NCBxdWFk cnVwbGUgb3IgZG91YmxlIHByZWNpc2lvbiAqLwotKyAgICBzdGF0aWMgX0xJQkNQUF9DT05TVEVY UFIgY29uc3QgYm9vbCBpc19pZWM1NTkgPSB0cnVlOwotKyNlbHNlCi0rICAgIC8qIDEyOC1iaXQg SUJNIGRvdWJsZS1kb3VibGUgKi8KLSAgICAgc3RhdGljIF9MSUJDUFBfQ09OU1RFWFBSIGNvbnN0 IGJvb2wgaXNfaWVjNTU5ID0gZmFsc2U7Ci0rI2VuZGlmCi0gI2Vsc2UKLSAgICAgc3RhdGljIF9M SUJDUFBfQ09OU1RFWFBSIGNvbnN0IGJvb2wgaXNfaWVjNTU5ID0gdHJ1ZTsKLSAjZW5kaWYKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4LXNzcC1ub25zaGFyZWQucGF0 Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1zc3Atbm9uc2hhcmVkLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MDI5MmJlYjJmY2QuLjAwMDAwMDAwMDAwMAot LS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1zc3Atbm9uc2hhcmVkLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotLS0tIGEvbGliY3h4L0NNYWtlTGlzdHMudHh0 Ci0rKysgYi9saWJjeHgvQ01ha2VMaXN0cy50eHQKLUBAIC03NjksNiArNzY5LDggQEAgZnVuY3Rp b24oY3h4X2xpbmtfc3lzdGVtX2xpYnJhcmllcyB0YXJnZXQpCi0gICAgIHRhcmdldF9saW5rX2xp YnJhcmllcygke3RhcmdldH0gUFJJVkFURSBhdG9taWMpCi0gICBlbmRpZigpCi0gCi0rI3NzcCAg dGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7dGFyZ2V0fSBQUklWQVRFIHNzcF9ub25zaGFyZWQpCi0r Ci0gICBpZiAoTUlOR1cpCi0gICAgIHRhcmdldF9saW5rX2xpYnJhcmllcygke3RhcmdldH0gUFJJ VkFURSAiJHtNSU5HV19MSUJSQVJJRVN9IikKLSAgIGVuZGlmKCkKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4YWJpLWRsLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0 Y2hlcy9saWJjeHhhYmktZGwucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNh MTVmOWRiOGM5OC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGli Y3h4YWJpLWRsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotQWxzbyBsaW5r IHRvIC1sZGwgdG8gcHJldmVudCB1bmRlZmluZWQgcmVmZXJlbmNlcy4KLQotLS0tIGEvbGliY3h4 YWJpL3NyYy9DTWFrZUxpc3RzLnR4dAotKysrIGIvbGliY3h4YWJpL3NyYy9DTWFrZUxpc3RzLnR4 dAotQEAgLTczLDYgKzczLDcgQEAKLSAgIGVuZGlmKCkKLSAKLSAgIGFkZF9saWJyYXJ5X2ZsYWdz X2lmKExJQkNYWEFCSV9IQVNfQ19MSUIgYykKLSsgIGFkZF9saWJyYXJ5X2ZsYWdzX2lmKExJQkNY WEFCSV9IQVNfQ19MSUIgZGwpCi0gZW5kaWYoKQotIAotIGlmIChMSUJDWFhBQklfVVNFX0xMVk1f VU5XSU5ERVIpCi0tLS0gYS9saWJjeHgvQ01ha2VMaXN0cy50eHQKLSsrKyBiL2xpYmN4eC9DTWFr ZUxpc3RzLnR4dAotQEAgLTc0NSw2ICs3NDUsMTAgQEAKLSAgICAgdGFyZ2V0X2xpbmtfbGlicmFy aWVzKCR7dGFyZ2V0fSBQUklWQVRFIG0pCi0gICBlbmRpZigpCi0gCi0rICBpZiAoTElCQ1hYX0hB U19DX0xJQikKLSsgICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7dGFyZ2V0fSBQUklWQVRFIGRs KQotKyAgZW5kaWYoKQotKwotICAgaWYgKExJQkNYWF9IQVNfUlRfTElCKQotICAgICB0YXJnZXRf bGlua19saWJyYXJpZXMoJHt0YXJnZXR9IFBSSVZBVEUgcnQpCi0gICBlbmRpZigpCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYnVud2luZC1wcGMzMi5wYXRjaCBiL3NyY3Br Z3MvbGx2bTEyL3BhdGNoZXMvbGlidW53aW5kLXBwYzMyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA3NGFhNzU3NmVjZjkuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xs dm0xMi9wYXRjaGVzL2xpYnVud2luZC1wcGMzMi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDYz ICswLDAgQEAKLVRoaXMgZml4ZXMgYnVpbGQgYXQgbGVhc3Qgd2l0aCBnY2M5IHdoaWNoIGRvZXMg bm90IGRlZmluZSBgX19wcGNfX2AuCi0KLS0tLSBhL2xpYnVud2luZC9pbmNsdWRlL19fbGlidW53 aW5kX2NvbmZpZy5oCi0rKysgYi9saWJ1bndpbmQvaW5jbHVkZS9fX2xpYnVud2luZF9jb25maWcu aAotQEAgLTQ5LDcgKzQ5LDcgQEAKLSAjICBkZWZpbmUgX0xJQlVOV0lORF9DT05URVhUX1NJWkUg MTY3Ci0gIyAgZGVmaW5lIF9MSUJVTldJTkRfQ1VSU09SX1NJWkUgMTc5Ci0gIyAgZGVmaW5lIF9M SUJVTldJTkRfSElHSEVTVF9EV0FSRl9SRUdJU1RFUiBfTElCVU5XSU5EX0hJR0hFU1RfRFdBUkZf UkVHSVNURVJfUFBDNjQKLS0jIGVsaWYgZGVmaW5lZChfX3BwY19fKQotKyMgZWxpZiBkZWZpbmVk KF9fcG93ZXJwY19fKQotICMgIGRlZmluZSBfTElCVU5XSU5EX1RBUkdFVF9QUEMgMQotICMgIGRl ZmluZSBfTElCVU5XSU5EX0NPTlRFWFRfU0laRSAxMTcKLSAjICBkZWZpbmUgX0xJQlVOV0lORF9D VVJTT1JfU0laRSAxMjQKLS0tLSBhL2xpYnVud2luZC9zcmMvVW53aW5kUmVnaXN0ZXJzUmVzdG9y ZS5TCi0rKysgYi9saWJ1bndpbmQvc3JjL1Vud2luZFJlZ2lzdGVyc1Jlc3RvcmUuUwotQEAgLTM5 Miw3ICszOTIsNyBAQCBMbm92ZWM6Ci0gICBQUEM2NF9MUigzKQotICAgYmN0cgotIAotLSNlbGlm IGRlZmluZWQoX19wcGNfXykKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwY19fKQotIAotIERFRklO RV9MSUJVTldJTkRfRlVOQ1RJT04oX1pOOWxpYnVud2luZDEzUmVnaXN0ZXJzX3BwYzZqdW1wdG9F dikKLSAvLwotLS0tIGEvbGlidW53aW5kL3NyYy9VbndpbmRSZWdpc3RlcnNTYXZlLlMKLSsrKyBi L2xpYnVud2luZC9zcmMvVW53aW5kUmVnaXN0ZXJzU2F2ZS5TCi1AQCAtNTU0LDcgKzU1NCw3IEBA IERFRklORV9MSUJVTldJTkRfRlVOQ1RJT04oX191bndfZ2V0Y29udGV4dCkKLSAgIGJscgotIAot IAotLSNlbGlmIGRlZmluZWQoX19wcGNfXykKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwY19fKQot IAotIC8vCi0gLy8gZXh0ZXJuIGludCB1bndfZ2V0Y29udGV4dCh1bndfY29udGV4dF90KiB0aHJl YWRfc3RhdGUpCi0tLS0gYS9saWJ1bndpbmQvc3JjL2NvbmZpZy5oCi0rKysgYi9saWJ1bndpbmQv c3JjL2NvbmZpZy5oCi1AQCAtOTUsMTIgKzk1LDEyIEBACi0gI2RlZmluZSBfTElCVU5XSU5EX0JV SUxEX1NKTEpfQVBJUwotICNlbmRpZgotIAotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZp bmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19wcGNfXykgfHwgZGVmaW5lZChfX3BwYzY0X18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0gI2RlZmluZSBfTElCVU5XSU5EX1NVUFBPUlRfRlJBTUVfQVBJUwotICNlbmRp ZgotIAotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0tICAgIGRlZmluZWQoX19wcGNfXykgfHwg ZGVmaW5lZChfX3BwYzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgICAgICAgIFwK LSsgICAgZGVmaW5lZChfX3Bvd2VycGNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCAg ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAoIWRlZmluZWQoX19BUFBMRV9fKSAmJiBk ZWZpbmVkKF9fYXJtX18pKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg IChkZWZpbmVkKF9fYXJtNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykpIHx8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgZGVmaW5lZChfX21pcHNfXykKLS0tLSBhL2xpYnVu d2luZC9zcmMvbGlidW53aW5kLmNwcAotKysrIGIvbGlidW53aW5kL3NyYy9saWJ1bndpbmQuY3Bw Ci1AQCAtNDIsNyArNDIsNyBAQCBfTElCVU5XSU5EX0hJRERFTiBpbnQgX191bndfaW5pdF9sb2Nh bCh1bndfY3Vyc29yX3QgKmN1cnNvciwKLSAjIGRlZmluZSBSRUdJU1RFUl9LSU5EIFJlZ2lzdGVy c194ODZfNjQKLSAjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gIyBkZWZpbmUgUkVHSVNU RVJfS0lORCBSZWdpc3RlcnNfcHBjNjQKLS0jZWxpZiBkZWZpbmVkKF9fcHBjX18pCi0rI2VsaWYg ZGVmaW5lZChfX3Bvd2VycGNfXykKLSAjIGRlZmluZSBSRUdJU1RFUl9LSU5EIFJlZ2lzdGVyc19w cGMKLSAjZWxpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQotICMgZGVmaW5lIFJFR0lTVEVSX0tJTkQg UmVnaXN0ZXJzX2FybTY0CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsZGIt bXVzbC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGxkYi1tdXNsLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MDFjMGQxMzg1MjMuLjAwMDAwMDAwMDAwMAotLS0g YS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsZGItbXVzbC5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDMxICswLDAgQEAKLS0tLSBhL2xsZGIvc291cmNlL1BsdWdpbnMvUHJvY2Vzcy9MaW51eC9Q cm9jZnMuaAotKysrIGIvbGxkYi9zb3VyY2UvUGx1Z2lucy9Qcm9jZXNzL0xpbnV4L1Byb2Nmcy5o Ci1AQCAtMTAsMjEgKzEwLDEyIEBACi0gLy8gc3lzL3Byb2Nmcy5oIG9uIEFuZHJvaWQvTGludXgg Zm9yIGFsbCBzdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlcy4KLSAKLSAjaW5jbHVkZSA8c3lzL3B0cmFj ZS5oPgotKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+Ci0gCi0tI2lmZGVmIF9fQU5EUk9JRF9fCi0t I2lmIGRlZmluZWQoX19hcm02NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKQotLXR5cGVkZWYg dW5zaWduZWQgbG9uZyBlbGZfZ3JlZ190OwotLXR5cGVkZWYgZWxmX2dyZWdfdAotLSAgICBlbGZf Z3JlZ3NldF90WyhzaXplb2Yoc3RydWN0IHVzZXJfcHRfcmVncykgLyBzaXplb2YoZWxmX2dyZWdf dCkpXTsKLS10eXBlZGVmIHN0cnVjdCB1c2VyX2Zwc2ltZF9zdGF0ZSBlbGZfZnByZWdzZXRfdDsK LS0jaWZuZGVmIE5UX0ZQUkVHU0VUCi0tI2RlZmluZSBOVF9GUFJFR1NFVCBOVF9QUkZQUkVHCi0t I2VuZGlmIC8vIE5UX0ZQUkVHU0VUCi0tI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLS0jaWZuZGVm IE5UX0ZQUkVHU0VUCi0tI2RlZmluZSBOVF9GUFJFR1NFVCBOVF9QUkZQUkVHCi0tI2VuZGlmIC8v IE5UX0ZQUkVHU0VUCi0tI2VuZGlmCi0tI2Vsc2UgLy8gX19BTkRST0lEX18KLSsjaWYgIWRlZmlu ZWQoX19HTElCQ19fKSAmJiBkZWZpbmVkKF9fcG93ZXJwY19fKQotKyNkZWZpbmUgcHRfcmVncyBt dXNsX3B0X3JlZ3MKLSsjaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPgotKyN1bmRlZiBwdF9yZWdzCi0r I2Vsc2UKLSAjaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPgotLSNlbmRpZiAvLyBfX0FORFJPSURfXwot KyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9wcGMzMi1jb21waWxl ci1ydC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvcHBjMzItY29tcGlsZXItcnQucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlMGE5YTc3OWQxYi4uMDAwMDAwMDAw MDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvcHBjMzItY29tcGlsZXItcnQucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi1jb21taXQgYmE0ZWRlNTk1ZmY5NTk5MjMy ZjVkZDJiNDM4NGMyNDMxMzdiNTNmYwotQXV0aG9yOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0 YWZvcmdlLm9yZz4KLURhdGU6ICAgVHVlIEp1biAyMiAyMzo0MDo1NCAyMDIxICswMjAwCi0KLSAg ICBlbmFibGUgY29tcGlsZXItcnQgc3VwcG9ydCBmb3IgcHBjMzIKLQotZGlmZiAtLWdpdCBhL2Nv bXBpbGVyLXJ0L2NtYWtlL2Jhc2UtY29uZmlnLWl4LmNtYWtlIGIvY29tcGlsZXItcnQvY21ha2Uv YmFzZS1jb25maWctaXguY21ha2UKLWluZGV4IDFlZGFiNDMuLjVjMGM4YTIgMTAwNjQ0Ci0tLS0g YS9jb21waWxlci1ydC9jbWFrZS9iYXNlLWNvbmZpZy1peC5jbWFrZQotKysrIGIvY29tcGlsZXIt cnQvY21ha2UvYmFzZS1jb25maWctaXguY21ha2UKLUBAIC0xODIsOSArMTgyLDcgQEAgbWFjcm8o dGVzdF90YXJnZXRzKQotICAgICBlbHNlaWYoIiR7Q09NUElMRVJfUlRfREVGQVVMVF9UQVJHRVRf QVJDSH0iIE1BVENIRVMgInBvd2VycGM2NGxlIikKLSAgICAgICB0ZXN0X3RhcmdldF9hcmNoKHBv d2VycGM2NGxlICIiICItbTY0IikKLSAgICAgZWxzZWlmKCIke0NPTVBJTEVSX1JUX0RFRkFVTFRf VEFSR0VUX0FSQ0h9IiBNQVRDSEVTICJwb3dlcnBjIikKLS0gICAgICBpZihDTUFLRV9TWVNURU1f TkFNRSBNQVRDSEVTICJBSVgiKQotLSAgICAgICAgdGVzdF90YXJnZXRfYXJjaChwb3dlcnBjICIi ICItbTMyIikKLS0gICAgICBlbmRpZigpCi0rICAgICAgdGVzdF90YXJnZXRfYXJjaChwb3dlcnBj ICIiICItbTMyIikKLSAgICAgICB0ZXN0X3RhcmdldF9hcmNoKHBvd2VycGM2NCAiIiAiLW02NCIp Ci0gICAgIGVsc2VpZigiJHtDT01QSUxFUl9SVF9ERUZBVUxUX1RBUkdFVF9BUkNIfSIgTUFUQ0hF UyAiczM5MHgiKQotICAgICAgIHRlc3RfdGFyZ2V0X2FyY2goczM5MHggIiIgIiIpCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGx2bTEyL3RlbXBsYXRlCmlu ZGV4IDdjZTE4MDI4ZTRhMy4uN2IzNjFiYmJmNWJjIDEwMDY0NAotLS0gYS9zcmNwa2dzL2xsdm0x Mi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0ZQpAQCAtMSwyNSArMSwxNyBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGx2bTEyJwogcGtnbmFtZT1sbHZtMTIKIHZlcnNpb249 MTIuMC4xCi1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiB3cmtzcmM9Imxsdm0tcHJvamVjdC0ke3Zl cnNpb259LnNyYyIKIGJ1aWxkX3dya3NyYz1sbHZtCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmln dXJlX2FyZ3M9IgogIC1EQ01BS0VfQlVJTERfVFlQRT1SZWxlYXNlIC1Xbm8tZGV2CiAgLURFTkFC TEVfTElOS0VSX0JVSUxEX0lEPVlFUwotIC1ETExEQl9VU0VfU1lTVEVNX1NJWD1ZRVMKLSAtRExJ QkNYWF9DWFhfQUJJPWxpYmN4eGFiaQotIC1ETElCQ1hYX0VOQUJMRV9TVEFUSUNfQUJJX0xJQlJB Ulk9WUVTCi0gLURMSUJDWFhBQklfVVNFX0xMVk1fVU5XSU5ERVI9WUVTCi0gLURMSUJDWFhBQklf RU5BQkxFX1NUQVRJQ19VTldJTkRFUj1ZRVMKLSAtRExJQk9NUF9FTkFCTEVfU0hBUkVEPVlFUwot IC1ETElCT01QX0lOU1RBTExfQUxJQVNFUz1OTwogIC1ETExWTV9JTkNMVURFX0RPQ1M9WUVTCiAg LURMTFZNX0JVSUxEX0RPQ1M9WUVTCiAgLURMTFZNX0VOQUJMRV9TUEhJTlg9WUVTCiAgLURTUEhJ TlhfV0FSTklOR1NfQVNfRVJST1JTPU5PCi0gLURMTFZNX0lOU1RBTExfVVRJTFM9WUVTCiAgLURM TFZNX0JVSUxEX0xMVk1fRFlMSUI9WUVTCiAgLURMTFZNX0xJTktfTExWTV9EWUxJQj1ZRVMKICAt RExMVk1fRU5BQkxFX1JUVEk9WUVTCkBAIC01MSw4NyArNDMsMTAgQEAgY2FzZSAiJFhCUFNfVEFS R0VUX01BQ0hJTkUiIGluCiAJcHBjKikgY29uZmlndXJlX2FyZ3MrPSIgLURDTEFOR19FTkFCTEVf Q0xBTkdEPU9GRiIgOzsKIGVzYWMKIAotX2VuYWJsZWRfcHJvamVjdHM9ImNsYW5nO2NsYW5nLXRv b2xzLWV4dHJhO2NvbXBpbGVyLXJ0O2xpYmN4eDtsaWJjeHhhYmk7bGlidW53aW5kO2xsZCIKLQot X2xsZGJfZW5hYmxlPXllcwotX2xpYm9tcF9lbmFibGU9bm8KLQotY2FzZSAiJFhCUFNfVEFSR0VU X01BQ0hJTkUiIGluCi0JcHBjNjRsZSopIDs7Ci0JcHBjKnxpNjg2KikgX2xsZGJfZW5hYmxlPW5v IDs7Ci1lc2FjCi0KLWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgotCXg4Nl82NCp8YWFy Y2g2NCp8cHBjNjQqKSBfbGlib21wX2VuYWJsZT15ZXM7OwotZXNhYwotCi1zdWJwYWNrYWdlcz0i Y2xhbmctdG9vbHMtZXh0cmEiCi0KLSMgbXVzdCBnbyBiZWZvcmUgY2xhbmcKLWlmIFsgIiRfbGli b21wX2VuYWJsZSIgPSAieWVzIiBdOyB0aGVuCi0JX2VuYWJsZWRfcHJvamVjdHMrPSI7b3Blbm1w IgotCXN1YnBhY2thZ2VzKz0iIGxpYm9tcCBsaWJvbXAtZGV2ZWwiCi0JIyBiZWNhdXNlIG9mIGNt YWtlIG5vbnNlbnNlIHJlZmVyZW5jaW5nIGxpYm9tcHRhcmdldC5zby4qCi0JZGVwZW5kcys9IiBs aWJvbXA+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi1maQotCi1zdWJwYWNrYWdlcys9IiBjbGFu ZyBjbGFuZy1hbmFseXplciBsaWJjbGFuZyBsaWJjbGFuZy1jcHAKLSBsbHZtLWxpYnVud2luZCBs bHZtLWxpYnVud2luZC1kZXZlbCBsaWJjeHggbGliY3h4LWRldmVsCi0gbGliY3h4YWJpIGxpYmN4 eGFiaS1kZXZlbCBsaWJsbHZtMTIiCi0KLWlmIFsgIiRfbGxkYl9lbmFibGUiID0gInllcyIgXTsg dGhlbgotCSMgWFhYIGZhaWxzIHRvIGNyb3NzIGNvbXBpbGUgZHVlIHRvIHB5dGhvbgotCV9lbmFi bGVkX3Byb2plY3RzKz0iO2xsZGIiCi0Jc3VicGFja2FnZXMrPSIgbGxkYiBsbGRiLWRldmVsIgot ZmkKLQotc3VicGFja2FnZXMrPSIgbGxkIGxsZC1kZXZlbCIKLQotY29uZmlndXJlX2FyZ3MrPSIg LURMTFZNX0VOQUJMRV9QUk9KRUNUUz0ke19lbmFibGVkX3Byb2plY3RzfSIKLQogcG9zdF9wYXRj aCgpIHsKLQlpZiBbICIkX2xsZGJfZW5hYmxlIiA9ICJ5ZXMiIF07IHRoZW4KLQkJaWYgWyAiJFhC UFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KLQkJCXZzZWQgLWkgJ3N8X19wdHJhY2Vf cmVxdWVzdHxpbnR8ZycgXAotCQkJCSR7d3Jrc3JjfS9sbGRiL3NvdXJjZS9QbHVnaW5zL1Byb2Nl c3MvTGludXgvTmF0aXZlUHJvY2Vzc0xpbnV4LmNwcAotCQlmaQotCQkjIGRpc2FibGUgZG9jcyBm b3IgbGxkYiBhcyB0aGV5IGZhaWwgdG8gZ2VuZXJhdGUKLQkJdnNlZCAtaSAnL2FkZF9zdWJkaXJl Y3RvcnkoZG9jcykvZCcgXAotCQkJJHt3cmtzcmN9L2xsZGIvQ01ha2VMaXN0cy50eHQKLQlmaQot CiAJIyB1cGRhdGUgY29uZmlnLmd1ZXNzIGZvciBiZXR0ZXIgcGxhdGZvcm0gZGV0ZWN0aW9uCiAJ Y3AgJFhCUFNfQ09NTU9ORElSL2Vudmlyb25tZW50L2NvbmZpZ3VyZS9hdXRvbWFrZS9jb25maWcu Z3Vlc3MgXAogCQkke3dya3NyY30vbGx2bS9jbWFrZQotCi0JIyBmaXggbGlua2VyIGZhaWx1cmVz IG9uIHNvbWUgYXJjaHMKLQl2c2VkIC1pICdzLGNoZWNrX2xpYnJhcnlfZXhpc3RzKGdjY19zIC4q LHNldChMSUJDWFhBQklfSEFTX0dDQ19TX0xJQiBPTiksJyBcCi0JCSR7d3Jrc3JjfS9saWJjeHhh YmkvY21ha2UvY29uZmlnLWl4LmNtYWtlCi0JdnNlZCAtaSAncyxjaGVja19saWJyYXJ5X2V4aXN0 cyhnY2MgLiosc2V0KExJQkNYWEFCSV9IQVNfR0NDX0xJQiBPTiksJyBcCi0JCSR7d3Jrc3JjfS9s aWJjeHhhYmkvY21ha2UvY29uZmlnLWl4LmNtYWtlCi0KLQkjIG5lZWQgbGlic3NwX25vbnNoYXJl ZCBvbiBzb21lIG11c2wgcGxhdGZvcm1zIChiZWNhdXNlIG9mIG5vZGVmYXVsdGxpYnMpCi0JY2Fz ZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCi0JCXBwYzY0KikgOzsKLQkJcHBjKi1tdXNsfGk2 ODYtbXVzbHxtaXBzKi1tdXNsKQotCQkJdnNlZCAtaSAncyxeIyBTZXR1cCBmbGFncy4kLGFkZF9s aWJyYXJ5X2ZsYWdzKHNzcF9ub25zaGFyZWQpLCcgXAotCQkJCSR7d3Jrc3JjfS9saWJ1bndpbmQv c3JjL0NNYWtlTGlzdHMudHh0Ci0JCQl2c2VkIC1pICdzLF4jIFNldHVwIGZsYWdzLiQsYWRkX2xp YnJhcnlfZmxhZ3Moc3NwX25vbnNoYXJlZCksJyBcCi0JCQkJJHt3cmtzcmN9L2xpYmN4eGFiaS9z cmMvQ01ha2VMaXN0cy50eHQKLQkJCXZzZWQgLWkgJ3MsI3NzcCwsJyAke3dya3NyY30vbGliY3h4 L0NNYWtlTGlzdHMudHh0Ci0JCQk7OwotCWVzYWMKLQotCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNI SU5FIiBpbgotCQl4ODZfNjQtbXVzbCkgIyBzb21lIHNhbml0aXplciBjdXJyZW50bHkgb25seSBv biB4ODZfNjQgc3R1ZmYgbmVlZHMgYmFja3RyYWNlCi0JCQl2c2VkIC1pICdzLCMgU2V0IGNvbW1v biBsaW5rIGZsYWdzLixsaXN0KEFQUEVORCBTQU5JVElaRVJfQ09NTU9OX0xJTktfTElCUyBleGVj aW5mbyksJyBcCi0JCQkJJHt3cmtzcmN9L2NvbXBpbGVyLXJ0L0NNYWtlTGlzdHMudHh0Ci0JCQk7 OwotCQlhcm0qLW11c2x8aTY4Ni1tdXNsKSAjIHNhbml0aXplciBjb2RlIGlzIGJyb2tlbiBzaW5j ZSBpdCBkdXBsaWNhdGVzIHNvbWUgbGliYyBiaXRzCi0JCQl2c2VkIC1pICdzL3NldChDT01QSUxF Ul9SVF9IQVNfU0FOSVRJWkVSX0NPTU1PTiBUUlVFKS9zZXQoQ09NUElMRVJfUlRfSEFTX1NBTklU SVpFUl9DT01NT04gRkFMU0UpLycgXAotCQkJCSR7d3Jrc3JjfS9jb21waWxlci1ydC9jbWFrZS9j b25maWctaXguY21ha2UKLQkJCTs7Ci0JZXNhYwogfQogCiBwcmVfY29uZmlndXJlKCkgewpAQCAt MTU4LDEwICs3Myw4IEBAIHByZV9jb25maWd1cmUoKSB7CiAJCQljbWFrZSAuLi8uLiAtRENNQUtF X0JVSUxEX1RZUEU9UmVsZWFzZSBcCiAJCQktRExMVk1fRU5BQkxFX1BST0pFQ1RTPSR7X2VuYWJs ZWRfcHJvamVjdHN9CiAJCW1ha2UgJHttYWtlam9ic30gLUMgdXRpbHMvVGFibGVHZW4KLQkJbWFr ZSAke21ha2Vqb2JzfSAtQyB0b29scy9jbGFuZy91dGlscy9UYWJsZUdlbgogCQlbICIkX2xsZGJf ZW5hYmxlIiA9ICJ5ZXMiIF0gJiYgbWFrZSAke21ha2Vqb2JzfSAtQyB0b29scy9sbGRiL3V0aWxz L1RhYmxlR2VuCiAJCWNvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9UQUJMRUdFTj0ke3dya3NyY30v bGx2bS9idWlsZC9IT1NUL2Jpbi9sbHZtLXRibGdlbiIKLQkJY29uZmlndXJlX2FyZ3MrPSIgLURD TEFOR19UQUJMRUdFTj0ke3dya3NyY30vbGx2bS9idWlsZC9IT1NUL2Jpbi9jbGFuZy10YmxnZW4i CiAJCVsgIiRfbGxkYl9lbmFibGUiID0gInllcyIgXSAmJiBjb25maWd1cmVfYXJncys9IiAtRExM REJfVEFCTEVHRU49JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4vbGxkYi10YmxnZW4iCiAJ CWNkIC4uLy4uCiAJZmkKQEAgLTIwMiwyMTggKzExNSw2IEBAIGRvX2luc3RhbGwoKSB7CiAJaWYg WyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJCXJtIC1mICR7REVTVERJUn0vdXNyL2Jpbi9sbHZt LWNvbmZpZy1ob3N0CiAJZmkKLQotCSMgSW5zdGFsbCBsaWJjeHhhYmkgaGVhZGVycwotCXZpbnN0 YWxsICR7d3Jrc3JjfS9saWJjeHhhYmkvaW5jbHVkZS9fX2N4eGFiaV9jb25maWcuaCA2NDQgdXNy L2luY2x1ZGUKLQl2aW5zdGFsbCAke3dya3NyY30vbGliY3h4YWJpL2luY2x1ZGUvY3h4YWJpLmgg NjQ0IHVzci9pbmNsdWRlCi0KLQkjIEluc3RhbGwgbGlidW53aW5kIGhlYWRlcnMKLQl2aW5zdGFs bCAke3dya3NyY30vbGlidW53aW5kL2luY2x1ZGUvX19saWJ1bndpbmRfY29uZmlnLmggNjQ0IHVz ci9pbmNsdWRlCi0Jdmluc3RhbGwgJHt3cmtzcmN9L2xpYnVud2luZC9pbmNsdWRlL2xpYnVud2lu ZC5oIDY0NCB1c3IvaW5jbHVkZQotCXZpbnN0YWxsICR7d3Jrc3JjfS9saWJ1bndpbmQvaW5jbHVk ZS91bndpbmQuaCA2NDQgdXNyL2luY2x1ZGUKLQl2aW5zdGFsbCAke3dya3NyY30vbGlidW53aW5k L2luY2x1ZGUvbWFjaC1vL2NvbXBhY3RfdW53aW5kX2VuY29kaW5nLmggXAotCQk2NDQgdXNyL2lu Y2x1ZGUvbWFjaC1vCi19Ci0KLWNsYW5nLWFuYWx5emVyX3BhY2thZ2UoKSB7Ci0JcHljb21waWxl X2RpcnM9InVzci9zaGFyZS9zY2FuLXZpZXciCi0JZGVwZW5kcz0iY2xhbmctJHt2ZXJzaW9ufV8k e3JldmlzaW9ufSBweXRob24zIHBlcmwiCi0Jc2hvcnRfZGVzYys9IiAtIEEgc291cmNlIGNvZGUg YW5hbHlzaXMgZnJhbWV3b3JrIgotCWhvbWVwYWdlPSJodHRwczovL2NsYW5nLWFuYWx5emVyLmxs dm0ub3JnLyIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL3NoYXJlL21hbi9tYW4xL3Nj YW4tYnVpbGQuMQotCQl2bW92ZSAiL3Vzci9iaW4vc2Nhbi0qIgotCQl2bW92ZSAiL3Vzci9zaGFy ZS9zY2FuLSoiCi0JCXZtb3ZlICIvdXNyL2xpYmV4ZWMvKmFuYWx5emVyIgotCX0KLX0KLQotY2xh bmctdG9vbHMtZXh0cmFfcGFja2FnZSgpIHsKLQlsaWIzMmRpc2FibGVkPXllcwotCWRlcGVuZHM9 ImNsYW5nLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gcHl0aG9uMyIKLQlzaG9ydF9kZXNjKz0iIC0g RXh0cmEgQ2xhbmcgdG9vbHMiCi0JaG9tZXBhZ2U9Imh0dHBzOi8vY2xhbmcubGx2bS5vcmcvZXh0 cmEvIgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSB1c3IvaW5jbHVkZS9jbGFuZy10aWR5Ci0J CXZtb3ZlIHVzci9iaW4vY2xhbmctYXBwbHktcmVwbGFjZW1lbnRzCi0JCXZtb3ZlIHVzci9iaW4v Y2xhbmctcXVlcnkKLQkJdm1vdmUgdXNyL2Jpbi9jbGFuZy1yZW5hbWUKLQkJdm1vdmUgdXNyL2Jp bi9jbGFuZy10aWR5Ci0JCXZtb3ZlIHVzci9iaW4vZGlhZ3Rvb2wKLQkJdm1vdmUgdXNyL2Jpbi9m aW5kLWFsbC1zeW1ib2xzCi0JCXZtb3ZlIHVzci9iaW4vaG1hcHRvb2wKLQkJdm1vdmUgdXNyL2Jp bi9tb2R1bGFyaXplCi0JCXZtb3ZlIHVzci9iaW4vcHAtdHJhY2UKLQkJdm1vdmUgdXNyL2Jpbi9z YW5jb3YKLQkJdm1vdmUgInVzci9saWIvbGliY2xhbmdBcHBseVJlcGxhY2VtZW50cyoiCi0JCXZt b3ZlICJ1c3IvbGliL2xpYmNsYW5nUXVlcnkqIgotCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZ1Rp ZHkqIgotCQl2bW92ZSAidXNyL3NoYXJlL2NsYW5nLyp0aWR5KiIKLQkJdm1vdmUgdXNyL3NoYXJl L2RvYy9jbGFuZy10b29scwotCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjEvZXh0cmFjbGFuZ3Rv b2xzLjEKLQkJdm1vdmUgdXNyL3NoYXJlL21hbi9tYW4xL2RpYWd0b29sLjEKLQl9Ci19Ci0KLWNs YW5nX3BhY2thZ2UoKSB7Ci0JbGliMzJkaXNhYmxlZD15ZXMKLQlkZXBlbmRzPSJsaWJzdGRjKyst ZGV2ZWwgbGliZ2NjLWRldmVsICBiaW51dGlscyAke1hCUFNfVEFSR0VUX0xJQkN9LWRldmVsCi0J IGxpYmNsYW5nLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi0Jc2hvcnRfZGVzYys9IiAtIEMgbGFu Z3VhZ2UgZmFtaWx5IGZyb250ZW5kIgotCWhvbWVwYWdlPSJodHRwczovL2NsYW5nLmxsdm0ub3Jn LyIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2luY2x1ZGUvY2xhbmcKLQkJdm1vdmUg dXNyL2luY2x1ZGUvY2xhbmctYwotCQl2bW92ZSAidXNyL2Jpbi8qY2xhbmcqIgotCQl2bW92ZSB1 c3IvYmluL2MtaW5kZXgtdGVzdAotCQl2bW92ZSB1c3IvbGliL2NsYW5nCi0JCXZtb3ZlIHVzci9s aWIvY21ha2UvY2xhbmcKLQkJdm1vdmUgInVzci9saWIvbGliY2xhbmcqLmEiCi0JCXZtb3ZlICJ1 c3IvbGliL2xpYmNsYW5nKi5zbyIKLQkJdm1vdmUgdXNyL3NoYXJlL2NsYW5nCi0JCXZtb3ZlIHVz ci9zaGFyZS9kb2MvY2xhbmcKLQkJdm1vdmUgdXNyL3NoYXJlL21hbi9tYW4xL2NsYW5nLjEKLQl9 Ci19Ci0KLWxpYmNsYW5nX3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVzYys9IiAtIEMgZnJvbnRlbmQg cnVudGltZSBsaWJyYXJ5IgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAidXNyL2xpYi9saWJj bGFuZy5zby4qIgotCX0KLX0KLQotbGliY2xhbmctY3BwX3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVz Yys9IiAtIEMgZnJvbnRlbmQgcnVudGltZSBsaWJyYXJ5IChDKysgaW50ZXJmYWNlKSIKLQlwa2df aW5zdGFsbCgpIHsKLQkJdm1vdmUgInVzci9saWIvbGliY2xhbmctY3BwLnNvLioiCi0JfQotfQot Ci1sbGRfcGFja2FnZSgpIHsKLQlsaWIzMmRpc2FibGVkPXllcwotCXNob3J0X2Rlc2MrPSIgLSBs aW5rZXIiCi0JaG9tZXBhZ2U9Imh0dHBzOi8vbGxkLmxsdm0ub3JnIgotCXBrZ19pbnN0YWxsKCkg ewotCQl2bW92ZSB1c3IvYmluL2xsZCoKLQkJdm1vdmUgdXNyL2Jpbi93YXNtLWxkCi0JCXZtb3Zl IHVzci9iaW4vbGQubGxkKgotCQl2bW92ZSB1c3IvYmluL2xkNjQubGxkKgotCQl2bW92ZSB1c3Iv c2hhcmUvZG9jL2xsZAotCX0KLX0KLQotbGxkLWRldmVsX3BhY2thZ2UoKSB7Ci0JbGliMzJkaXNh YmxlZD15ZXMKLQlzaG9ydF9kZXNjKz0iIC0gbGlua2VyIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCi0J aG9tZXBhZ2U9Imh0dHBzOi8vbGxkLmxsdm0ub3JnIgotCWRlcGVuZHM9ImxsZD49JHt2ZXJzaW9u fV8ke3JldmlzaW9ufSIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2luY2x1ZGUvbGxk Ci0JCXZtb3ZlIHVzci9saWIvY21ha2UvbGxkCi0JCXZtb3ZlICJ1c3IvbGliL2xpYmxsZCphIgot CX0KLX0KLQotbGxkYl9wYWNrYWdlKCkgewotCWxpYjMyZGlzYWJsZWQ9eWVzCi0JZGVwZW5kcys9 IiBweXRob24zLXNpeCIKLQlzaG9ydF9kZXNjKz0iIC0gTExEQiBkZWJ1Z2dlciIKLQlob21lcGFn ZT0iaHR0cHM6Ly9sbGRiLmxsdm0ub3JnLyIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNy L2Jpbi8qbGxkYioKLQkJdm1vdmUgdXNyL2xpYi9saWJsbGRiKnNvLioKLQkJdm1vdmUgL3Vzci9s aWIvcHl0aG9uKgotCX0KLX0KLQotbGxkYi1kZXZlbF9wYWNrYWdlKCkgewotCWxpYjMyZGlzYWJs ZWQ9eWVzCi0JZGVwZW5kcz0ibGxkYj49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLQlzaG9ydF9k ZXNjKz0iIC0gTExEQiBkZWJ1Z2dlciAtIGRldmVsb3BtZW50IGZpbGVzIgotCXBrZ19pbnN0YWxs KCkgewotCQl2bW92ZSB1c3IvaW5jbHVkZS9sbGRiCi0JCXZtb3ZlICJ1c3IvbGliL2xpYmxsZGIq LnNvIgotCX0KLX0KLQotbGx2bS1saWJ1bndpbmRfcGFja2FnZSgpIHsKLQlzaG9ydF9kZXNjKz0i IC0gbGlidW53aW5kIgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAidXNyL2xpYi9saWJ1bndp bmQuc28uKiIKLQl9Ci19Ci0KLWxsdm0tbGlidW53aW5kLWRldmVsX3BhY2thZ2UoKSB7Ci0Jc2hv cnRfZGVzYys9IiAtIGxpYnVud2luZCAtIGRldmVsb3BtZW50IGZpbGVzIgotCWRlcGVuZHM9Imxs dm0tbGlidW53aW5kPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotCWNvbmZsaWN0cz0ibGlidW53 aW5kLWRldmVsPj0wIgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSB1c3IvbGliL2xpYnVud2lu ZC5zbwotCQl2bW92ZSB1c3IvbGliL2xpYnVud2luZC5hCi0JCXZtb3ZlICJ1c3IvaW5jbHVkZS8q dW53aW5kKiIKLQkJdm1vdmUgdXNyL2luY2x1ZGUvbWFjaC1vCi0JCXZtb3ZlIHVzci9zaGFyZS9k b2MvbGlidW53aW5kCi0JfQotfQotCi1saWJjeHhhYmlfcGFja2FnZSgpIHsKLQlzaG9ydF9kZXNj Kz0iIC0gbG93IGxldmVsIHN1cHBvcnQgZm9yIGxpYmMrKyIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJ dm1vdmUgInVzci9saWIvbGliYysrYWJpLnNvLioiCi0JfQotfQotCi1saWJjeHhhYmktZGV2ZWxf cGFja2FnZSgpIHsKLQlzaG9ydF9kZXNjKz0iIC0gbG93IGxldmVsIHN1cHBvcnQgZm9yIGxpYmMr KyAtIGRldmVsb3BtZW50IGZpbGVzIgotCWRlcGVuZHM9ImxpYmN4eGFiaT49JHt2ZXJzaW9ufV8k e3JldmlzaW9ufSIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2xpYi9saWJjKythYmku c28KLQkJdm1vdmUgdXNyL2xpYi9saWJjKythYmkuYQotCQl2bW92ZSAidXNyL2luY2x1ZGUvKmN4 eGFiaSoiCi0JfQotfQotCi1saWJjeHhfcGFja2FnZSgpIHsKLQlzaG9ydF9kZXNjKz0iIC0gQysr IHN0YW5kYXJkIGxpYnJhcnkiCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICJ1c3IvbGliL2xp YmMrKy5zby4qIgotCX0KLX0KLQotbGliY3h4LWRldmVsX3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVz Yys9IiAtIEMrKyBzdGFuZGFyZCBsaWJyYXJ5IC0gZGV2ZWxvcG1lbnQgZmlsZXMiCi0JZGVwZW5k cz0ibGliY3h4Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotCXBrZ19pbnN0YWxsKCkgewotCQl2 bW92ZSB1c3IvbGliL2xpYmMrKy5zbwotCQl2bW92ZSB1c3IvbGliL2xpYmMrKy5hCi0JCXZtb3Zl IHVzci9saWIvbGliYysrZXhwZXJpbWVudGFsLmEKLQkJdm1vdmUgdXNyL2luY2x1ZGUvYysrCi0J CXZtb3ZlIHVzci9zaGFyZS9kb2MvbGliY3h4Ci0JfQotfQotCi1saWJvbXBfcGFja2FnZSgpIHsK LQlzaG9ydF9kZXNjKz0iIC0gQ2xhbmcgT3Blbk1QIHN1cHBvcnQgbGlicmFyeSIKLQlwa2dfaW5z dGFsbCgpIHsKLQkJdm1vdmUgdXNyL2xpYi9saWJvbXAuc28KLQkJdm1vdmUgInVzci9saWIvbGli b21wdGFyZ2V0LnJ0bC4qLnNvIgotCQl2bW92ZSB1c3IvbGliL2xpYmFyY2hlci5zbwotCQl2bW92 ZSAidXNyL2xpYi9saWJvbXAqLnNvLioiCi0JfQotfQotCi1saWJvbXAtZGV2ZWxfcGFja2FnZSgp IHsKLQlzaG9ydF9kZXNjKz0iIC0gQ2xhbmcgT3Blbk1QIHN1cHBvcnQgbGlicmFyeSAtIGRldmVs b3BtZW50IGZpbGVzIgotCWRlcGVuZHM9ImxpYm9tcD49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIK LQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgInVzci9saWIvbGlib21wKi5zbyIKLQkJdm1vdmUg InVzci9saWIvbGliYXJjaGVyKiIKLQkJdm1vdmUgInVzci9pbmNsdWRlL29tcCouaCIKLQkJdm1v dmUgInVzci9saWIvY2xhbmcvJHt2ZXJzaW9ufS9pbmNsdWRlL29tcCouaCIKLQkJdm1vdmUgdXNy L3NoYXJlL21hbi9tYW4xL2xsdm1vcGVubXAuMQotCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL29wZW5t cAotCX0KIH0KIAogbGlibGx2bTEyX3BhY2thZ2UoKSB7CgpGcm9tIDIwMjMzOTI4NjE2NjRkOWVk ZTA0OGY5ZjQ3ODQ0OTMwN2EwNDg4MWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/ VVRGLTg/cT9Mb3Vpcz0yMER1cHI9QzM9QTk9MjBCZXJ0b25pPz0KIDxsb3Vpc2RiQGxlc3BldGl0 c3BlZGVzdHJlcy5vcmc+CkRhdGU6IFNhdCwgMSBKYW4gMjAyMiAxNTo1Nzo1OSArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMDQvMzFdIHJ0YWdzOiByZWJ1aWxkIGZvciBsbHZtMTMKCi0tLQogc3JjcGtn cy9ydGFncy90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwg MSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcnRhZ3MvdGVtcGxhdGUgYi9zcmNw a2dzL3J0YWdzL3RlbXBsYXRlCmluZGV4IGI0OTZhMWIwZTcyMS4uOWIxNjFlNjkwZDc2IDEwMDY0 NAotLS0gYS9zcmNwa2dzL3J0YWdzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcnRhZ3MvdGVtcGxh dGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdydGFncycKIHBrZ25hbWU9 cnRhZ3MKIHZlcnNpb249Mi4zOAotcmV2aXNpb249NQorcmV2aXNpb249NgogYnVpbGRfc3R5bGU9 Y21ha2UKICMgRG9uJ3QgcnVuIHRlc3RzIGluIGRvX2luc3RhbGwsIHBsZWFzZS4KIGNvbmZpZ3Vy ZV9hcmdzPSItRFNLSVBfQ1RFU1Q9VFJVRSIKCkZyb20gZDAyOWQ0Njk3Y2ZjNmNiNzllMDFiNGQ1 NmI3YWExZTA1YjBlMTUxYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9x P0xvdWlzPTIwRHVwcj1DMz1BOT0yMEJlcnRvbmk/PQogPGxvdWlzZGJAbGVzcGV0aXRzcGVkZXN0 cmVzLm9yZz4KRGF0ZTogU2F0LCAxIEphbiAyMDIyIDE1OjU4OjI3ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNS8zMV0gYnBmdHJhY2U6IHJlYnVpbGQgZm9yIGxsdm0xMwoKLS0tCiBzcmNwa2dzL2Jw ZnRyYWNlL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9icGZ0cmFjZS90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvYnBmdHJhY2UvdGVtcGxhdGUKaW5kZXggMjhhYjNjNjI2Mzk5Li5lYjI0ODBkMjIzMGUg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYnBmdHJhY2UvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9icGZ0 cmFjZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2JwZnRy YWNlJwogcGtnbmFtZT1icGZ0cmFjZQogdmVyc2lvbj0wLjE0LjEKLXJldmlzaW9uPTEKK3Jldmlz aW9uPTIKIGFyY2hzPSJ4ODZfNjQqIGFhcmNoNjQqIHBwYzY0KiIKIGJ1aWxkX3N0eWxlPWNtYWtl CiBjb25maWd1cmVfYXJncz0iLURCVUlMRF9URVNUSU5HPU9GRiIgICMgbmVlZHMgcm9vdCB0byBy dW4KCkZyb20gYjM0OTAyY2RjM2E3MzBjYzZkZWQzMDAyZmUxN2U5YjhmMTc4NmFmZCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0xvdWlzPTIwRHVwcj1DMz1BOT0yMEJl cnRvbmk/PQogPGxvdWlzZGJAbGVzcGV0aXRzcGVkZXN0cmVzLm9yZz4KRGF0ZTogU2F0LCAxIEph biAyMDIyIDE1OjU4OjM4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNi8zMV0gY2xhenk6IHJlYnVp bGQgZm9yIGxsdm0xMwoKLS0tCiBzcmNwa2dzL2NsYXp5L3RlbXBsYXRlIHwgMiArLQogMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9jbGF6eS90ZW1wbGF0ZSBiL3NyY3BrZ3MvY2xhenkvdGVtcGxhdGUKaW5kZXggMTFmM2Jh YjU1YWVmLi5mODFkZTA4YWI4MzYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2xhenkvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9jbGF6eS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ2NsYXp5JwogcGtnbmFtZT1jbGF6eQogdmVyc2lvbj0xLjExCi1yZXZpc2lvbj0x CityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogYnVpbGRfaGVscGVyPXFlbXUKIGhvc3Rt YWtlZGVwZW5kcz0ibGx2bSIKCkZyb20gMDZiMjI5YjgyZjEyMzkyOWM2MTIyMzZiODMzMWE3Yzc0 NzJlNWU0ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0xvdWlzPTIw RHVwcj1DMz1BOT0yMEJlcnRvbmk/PQogPGxvdWlzZGJAbGVzcGV0aXRzcGVkZXN0cmVzLm9yZz4K RGF0ZTogU2F0LCAxIEphbiAyMDIyIDE1OjU4OjQ5ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNy8z MV0gY2NsczogcmVidWlsZCBmb3IgbGx2bTEzCgotLS0KIHNyY3BrZ3MvY2Nscy90ZW1wbGF0ZSB8 IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvY2Nscy90ZW1wbGF0ZSBiL3NyY3BrZ3MvY2Nscy90ZW1wbGF0ZQpp bmRleCBmYmI3YzY4NDdiYzEuLjQwYWJhM2I1NWJmZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9jY2xz L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY2Nscy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ2NjbHMnCiBwa2duYW1lPWNjbHMKIHZlcnNpb249MC4yMDIxMDMz MAotcmV2aXNpb249MgorcmV2aXNpb249MwogYnVpbGRfc3R5bGU9Y21ha2UKIGhvc3RtYWtlZGVw ZW5kcz0iY2xhbmctdG9vbHMtZXh0cmEiCiBtYWtlZGVwZW5kcz0ibGx2bSBuY3Vyc2VzLWRldmVs IHJhcGlkanNvbiB6bGliLWRldmVsIGNsYW5nLXRvb2xzLWV4dHJhIgoKRnJvbSA2MmY3MmQ5MmRk MTFhZGMxMTIwYzY1ZGRhM2NkYTYwMjNkMmVhOGFjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiA9P1VURi04P3E/TG91aXM9MjBEdXByPUMzPUE5PTIwQmVydG9uaT89CiA8bG91aXNkYkBs ZXNwZXRpdHNwZWRlc3RyZXMub3JnPgpEYXRlOiBTYXQsIDEgSmFuIDIwMjIgMTU6NTk6MzUgKzAy MDAKU3ViamVjdDogW1BBVENIIDA4LzMxXSBpbmNsdWRlLXdoYXQteW91LXVzZTogcmVidWlsZCBm b3IgbGx2bTEzCgotLS0KIHNyY3BrZ3MvaW5jbHVkZS13aGF0LXlvdS11c2UvdGVtcGxhdGUgfCA0 ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9pbmNsdWRlLXdoYXQteW91LXVzZS90ZW1wbGF0ZSBiL3NyY3Br Z3MvaW5jbHVkZS13aGF0LXlvdS11c2UvdGVtcGxhdGUKaW5kZXggYjEzYmI3ZWU1NmFmLi5iNGIx Njc0MDFlYmUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvaW5jbHVkZS13aGF0LXlvdS11c2UvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9pbmNsdWRlLXdoYXQteW91LXVzZS90ZW1wbGF0ZQpAQCAtMSw2ICsx LDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2luY2x1ZGUtd2hhdC15b3UtdXNlJwogcGtnbmFt ZT1pbmNsdWRlLXdoYXQteW91LXVzZQotdmVyc2lvbj0wLjE2Cit2ZXJzaW9uPTAuMTcKIHJldmlz aW9uPTEKIHdya3NyYz0iJHtwa2duYW1lfSIKIGJ1aWxkX3N0eWxlPWNtYWtlCkBAIC0xMiw3ICsx Miw3IEBAIG1haW50YWluZXI9IkxlYWggTmV1a2lyY2hlbiA8bGVhaEB2dXh1Lm9yZz4iCiBsaWNl bnNlPSJOQ1NBIgogaG9tZXBhZ2U9Imh0dHBzOi8vaW5jbHVkZS13aGF0LXlvdS11c2Uub3JnLyIK IGRpc3RmaWxlcz0iaHR0cHM6Ly9pbmNsdWRlLXdoYXQteW91LXVzZS5vcmcvZG93bmxvYWRzLyR7 cGtnbmFtZX0tJHt2ZXJzaW9ufS5zcmMudGFyLmd6IgotY2hlY2tzdW09OGQ2ZmM5YjI1NTM0M2Jj MWU1ZWM0NTllMzk1MTJkZjFkNTFjNjBlMDM1NjI5ODVlMDA3NjAzNjExOWZmNWExYworY2hlY2tz dW09ZWNhN2MwNGY4YjQxNmI2Mzg1ZWQwMGUzMzY2OWE3ZmE0NjkzY2QyNmNiNzJiNTIyY2RlNTU4 ODI4ZWIwYzY2NQogcHl0aG9uX3ZlcnNpb249MwogCiBwb3N0X2luc3RhbGwoKSB7CgpGcm9tIDll YjU4NGU2ZDMyMGZiYzU4ZTMwNWEyMDJmNTNiMmRhMWE5NGViYmUgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206ID0/VVRGLTg/cT9Mb3Vpcz0yMER1cHI9QzM9QTk9MjBCZXJ0b25pPz0KIDxs b3Vpc2RiQGxlc3BldGl0c3BlZGVzdHJlcy5vcmc+CkRhdGU6IFNhdCwgMSBKYW4gMjAyMiAxNjow MToyMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDkvMzFdIGNvZGVsaXRlOiByZWJ1aWxkIGZvciBs bHZtMTMKCi0tLQogc3JjcGtncy9jb2RlbGl0ZS90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFu Z2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Y29kZWxpdGUvdGVtcGxhdGUgYi9zcmNwa2dzL2NvZGVsaXRlL3RlbXBsYXRlCmluZGV4IDNhOTkz YTJjMGNmYi4uMjRlMmM4NzlkZDQ1IDEwMDY0NAotLS0gYS9zcmNwa2dzL2NvZGVsaXRlL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvY29kZWxpdGUvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdjb2RlbGl0ZScKIHBrZ25hbWU9Y29kZWxpdGUKIHZlcnNpb249MTUu MC42Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogYnVpbGRfaGVs cGVyPWNtYWtlLXd4V2lkZ2V0cy1ndGszCiBjb25maWd1cmVfYXJncz0iLURXSVRIX1BDSD0wIC1E V0lUSF9XWF9DT05GSUc9d3gtY29uZmlnLWd0azMKCkZyb20gNGEyMTFkNWE5ZGJkMjBlYjdkNjM1 NjlmMTQ0OWEyYTIwYTk0ZjE0MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYt OD9xP0xvdWlzPTIwRHVwcj1DMz1BOT0yMEJlcnRvbmk/PQogPGxvdWlzZGJAbGVzcGV0aXRzcGVk ZXN0cmVzLm9yZz4KRGF0ZTogU2F0LCAxIEphbiAyMDIyIDE2OjIyOjQ4ICswMjAwClN1YmplY3Q6 IFtQQVRDSCAxMC8zMV0ga2RldmVsb3A6IHJlYnVpbGQgZm9yIGxsdm0xMwoKLS0tCiBzcmNwa2dz L2tkZXZlbG9wL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9rZGV2ZWxvcC90ZW1wbGF0ZSBi L3NyY3BrZ3Mva2RldmVsb3AvdGVtcGxhdGUKaW5kZXggMDEwMTg1ODQ5ZDgwLi5hYmYwOGMzMTMw NzEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mva2RldmVsb3AvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9r ZGV2ZWxvcC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2tk ZXZlbG9wJwogcGtnbmFtZT1rZGV2ZWxvcAogdmVyc2lvbj0yMS4xMi4zCi1yZXZpc2lvbj0xCity ZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EQlVJTERfVEVT VElORz1PRkYiCiBob3N0bWFrZWRlcGVuZHM9ImV4dHJhLWNtYWtlLW1vZHVsZXMgcXQ1LXFtYWtl IHF0NS1ob3N0LXRvb2xzIHF0NS10b29scwoKRnJvbSBhN2QzMmQyZTA3ODhiZjUyZjZiN2M5MDU2 ZjZlOWQ5MjI3N2VmNGQ1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/ TG91aXM9MjBEdXByPUMzPUE5PTIwQmVydG9uaT89CiA8bG91aXNkYkBsZXNwZXRpdHNwZWRlc3Ry ZXMub3JnPgpEYXRlOiBTYXQsIDEgSmFuIDIwMjIgMTY6MjM6MDcgKzAyMDAKU3ViamVjdDogW1BB VENIIDExLzMxXSBqdUNpKys6IHJlYnVpbGQgZm9yIGxsdm0xMwoKLS0tCiBzcmNwa2dzL2p1Q2kr Ky90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvanVDaSsrL3RlbXBsYXRlIGIvc3JjcGtncy9q dUNpKysvdGVtcGxhdGUKaW5kZXggMWE3NjA0YjQ0YTAwLi41MTAzMzI0ZGVjMjAgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvanVDaSsrL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvanVDaSsrL3RlbXBsYXRl CkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnanVDaSsrJwogcGtnbmFtZT1q dUNpKysKIHZlcnNpb249MS42LjIKLXJldmlzaW9uPTIKK3JldmlzaW9uPTMKIF9saWJjbGFuZ21t X2NvbW1pdD0iYjM0MmY0ZGQ2ZGU0ZmU1MDlhNjkyYTRiNGZjZmM3ZTI0YWFlOTU5MCIKIF90aW55 X2NvbW1pdD0iYzljOGJmODEwZGRhZDhjZDE3ODgyYjlhOWVlNjI4YTY5MGU3NzlmNSIKIHdya3Ny Yz0ianVjaXBwLXYke3ZlcnNpb259IgoKRnJvbSAzMTUxMGVhYWJiZjkwY2Y5YzY2OGZiNmRhNDA1 MWQ2OTkwZjQwNTYzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TG91 aXM9MjBEdXByPUMzPUE5PTIwQmVydG9uaT89CiA8bG91aXNkYkBsZXNwZXRpdHNwZWRlc3RyZXMu b3JnPgpEYXRlOiBTYXQsIDEgSmFuIDIwMjIgMTg6MzA6MDEgKzAyMDAKU3ViamVjdDogW1BBVENI IDEyLzMxXSBsbHZtMTM6IGZpeCBsaWJvbXAqIHBhY2thZ2VzCgotLS0KIHNyY3BrZ3MvbGx2bTEz L3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEzL3RlbXBsYXRlIGIvc3JjcGtn cy9sbHZtMTMvdGVtcGxhdGUKaW5kZXggMDhkODQ3NDcyNTI1Li5iZmM5MTA1NmQyNzcgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvbGx2bTEzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGx2bTEzL3RlbXBs YXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGx2bTEzJwogcGtnbmFt ZT1sbHZtMTMKIHZlcnNpb249MTMuMC4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiB3cmtzcmM9 Imxsdm0tcHJvamVjdC0ke3ZlcnNpb259LnNyYyIKIGJ1aWxkX3dya3NyYz1sbHZtCiBidWlsZF9z dHlsZT1jbWFrZQpAQCAtMzk3LDYgKzM5Nyw3IEBAIGxpYm9tcF9wYWNrYWdlKCkgewogCXNob3J0 X2Rlc2MrPSIgLSBDbGFuZyBPcGVuTVAgc3VwcG9ydCBsaWJyYXJ5IgogCXBrZ19pbnN0YWxsKCkg ewogCQl2bW92ZSB1c3IvbGliL2xpYm9tcC5zbworCQl2bW92ZSB1c3IvbGliL2xpYm9tcHRhcmdl dC5zbwogCQl2bW92ZSAidXNyL2xpYi9saWJvbXB0YXJnZXQucnRsLiouc28iCiAJCXZtb3ZlIHVz ci9saWIvbGliYXJjaGVyLnNvCiAJfQpAQCAtNDA2LDcgKzQwNyw2IEBAIGxpYm9tcC1kZXZlbF9w YWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBDbGFuZyBPcGVuTVAgc3VwcG9ydCBsaWJyYXJ5 IC0gZGV2ZWxvcG1lbnQgZmlsZXMiCiAJZGVwZW5kcz0ibGlib21wPj0ke3ZlcnNpb259XyR7cmV2 aXNpb259IgogCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAidXNyL2xpYi9saWJvbXAqLnNvIgog CQl2bW92ZSAidXNyL2xpYi9saWJhcmNoZXIqIgogCQl2bW92ZSAidXNyL2luY2x1ZGUvb21wKi5o IgogCQl2bW92ZSAidXNyL2xpYi9jbGFuZy8ke3ZlcnNpb259L2luY2x1ZGUvb21wKi5oIgoKRnJv bSAyM2I2ZTI1NmFmYmFhNmNkODg2ZjZjYmI0ZDY3YzhkZjQ0N2Y1YmFiIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TG91aXM9MjBEdXByPUMzPUE5PTIwQmVydG9uaT89 CiA8bG91aXNkYkBsZXNwZXRpdHNwZWRlc3RyZXMub3JnPgpEYXRlOiBTdW4sIDE2IEphbiAyMDIy IDE0OjMzOjU2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMy8zMV0gY2hyb21pdW06IHJlYnVpbGQg Zm9yIGxsdm0xMwoKLS0tCiBzcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlIHwgOCArLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUgYi9zcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRl CmluZGV4IGY2MTU0ZTIyMzc1MS4uMWVkZjYxYTMzOThmIDEwMDY0NAotLS0gYS9zcmNwa2dzL2No cm9taXVtL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUKQEAgLTIwLDcg KzIwLDcgQEAgZGVzY19vcHRpb25fZGVidWc9IkJ1aWxkIHdpdGggZGVidWcgc3ltYm9scyIKIGRl c2Nfb3B0aW9uX2pzX29wdGltaXplPSJPcHRpbWl6ZSB0aGUgSlMgdXNlZCBmb3IgQ2hyb21pdW0n cyBVSSIKIGRlc2Nfb3B0aW9uX3BpcGV3aXJlPSJFbmFibGUgc3VwcG9ydCBmb3Igc2NyZWVuIHNo YXJpbmcgZm9yIFdlYlJUQyB2aWEgUGlwZVdpcmUiCiAKLWhvc3RtYWtlZGVwZW5kcz0iJCh2b3B0 X2lmIGNsYW5nICJjbGFuZyBsbGQgbGx2bTEyIikgcHl0aG9uIHB5dGhvbjMgcGtnY29uZiBwZXJs IGdwZXJmIGJpc29uIG5pbmphIG5vZGVqcyBod2lkcworaG9zdG1ha2VkZXBlbmRzPSIkKHZvcHRf aWYgY2xhbmcgImNsYW5nIGxsZCBsbHZtMTMiKSBweXRob24gcHl0aG9uMyBwa2djb25mIHBlcmwg Z3BlcmYgYmlzb24gbmluamEgbm9kZWpzIGh3aWRzCiAgbGliYXRvbWljLWRldmVsIGxpYmV2ZW50 LWRldmVsIGxpYmdsaWItZGV2ZWwgJCh2b3B0X2lmIGpzX29wdGltaXplIG9wZW5qZGspIHdheWxh bmQtZGV2ZWwgbGliZXBveHktZGV2ZWwiCiBtYWtlZGVwZW5kcz0ibGlicG5nLWRldmVsIGd0ayst ZGV2ZWwgZ3RrKzMtZGV2ZWwgbnNzLWRldmVsIHBjaXV0aWxzLWRldmVsCiAgbGliWGktZGV2ZWwg bGliZ2NyeXB0LWRldmVsIGxpYmdub21lLWtleXJpbmctZGV2ZWwgY3Vwcy1kZXZlbCBlbGZ1dGls cy1kZXZlbApAQCAtMjY2LDEyICsyNjYsNiBAQCBkb19jb25maWd1cmUoKSB7CiAJCSdkaXNhYmxl X2ZpZWxkdHJpYWxfdGVzdGluZ19jb25maWc9dHJ1ZScKIAogCQknaXNfb2ZmaWNpYWxfYnVpbGQ9 dHJ1ZScKLQotCQkjIHNlZ2ZhdWx0cyB3aXRoIGxsdm0tMTIuMC4xCi0JCSdpc19jZmk9ZmFsc2Un Ci0JCSd1c2VfdGhpbl9sdG89ZmFsc2UnCi0JCSd1c2VfY2ZpX2ljYWxsPWZhbHNlJwotCQknY2hy b21lX3Bnb19waGFzZT0wJwogCSkKIAogCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgoKRnJv bSBjZDdkM2U5ZmM3OTliOWQyMTFmZTU0MTc0Njg4Y2QwMmQxZGI1MmFmIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TG91aXM9MjBEdXByPUMzPUE5PTIwQmVydG9uaT89 CiA8bG91aXNkYkBsZXNwZXRpdHNwZWRlc3RyZXMub3JnPgpEYXRlOiBTdW4sIDE2IEphbiAyMDIy IDE0OjM5OjA0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNC8zMV0gbGx2bTEyOiByZW1vdmUKCi0t LQogc3JjcGtncy9sbHZtMTIvSU5TVEFMTC5tc2cgICAgICAgICAgICAgICAgICAgIHwgICAxICsK IC4uLi9sbHZtMTIvZmlsZXMvbGx2bS1Db25maWctbGx2bS1jb25maWcuaCAgICB8ICAgOSAtLQog c3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbHZtLTAwMS1tdXNsLnBhdGNoICAgIHwgIDU3IC0tLS0t LS0tLQogLi4uL3BhdGNoZXMvbGx2bS0wMDItbXVzbC1wcGM2NC1lbGZ2Mi5wYXRjaCAgIHwgIDMw IC0tLS0tCiAuLi4vcGF0Y2hlcy9sbHZtLTAwMy1wcGMtc2VjdXJlcGx0LnBhdGNoICAgICAgfCAg MTEgLS0KIC4uLi9wYXRjaGVzL2xsdm0tMDA0LW92ZXJyaWRlLW9wdC5wYXRjaCAgICAgICB8ICAx OCAtLS0KIC4uLi9sbHZtMTIvcGF0Y2hlcy9sbHZtLTAwNS1wcGMtYmlncGljLnBhdGNoICB8ICAz NiAtLS0tLS0KIC4uLi9wYXRjaGVzL2xsdm0tMDA2LWFhcmNoNjQtbWZfZXhlYy5wYXRjaCAgICB8 ICAyNSAtLS0tCiBzcmNwa2dzL2xsdm0xMi90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAg fCAxMjAgKy0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2xsdm0xMi91cGRhdGUgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDMgLQogMTAgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCsp LCAzMDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvSU5T VEFMTC5tc2cKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9maWxlcy9sbHZtLUNv bmZpZy1sbHZtLWNvbmZpZy5oCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0 Y2hlcy9sbHZtLTAwMS1tdXNsLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZt MTIvcGF0Y2hlcy9sbHZtLTAwMi1tdXNsLXBwYzY0LWVsZnYyLnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbHZtLTAwMy1wcGMtc2VjdXJlcGx0LnBhdGNo CiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbHZtLTAwNC1vdmVy cmlkZS1vcHQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVz L2xsdm0tMDA1LXBwYy1iaWdwaWMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xs dm0xMi9wYXRjaGVzL2xsdm0tMDA2LWFhcmNoNjQtbWZfZXhlYy5wYXRjaAogZGVsZXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3VwZGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEy L0lOU1RBTEwubXNnIGIvc3JjcGtncy9sbHZtMTIvSU5TVEFMTC5tc2cKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4wMDRhY2Y3YjUzMGMKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL2xsdm0xMi9JTlNUQUxMLm1zZwpAQCAtMCwwICsxIEBACitsbHZtMTIgaXMgbm8g bG9uZ2VyIHByb3ZpZGVkIGJ5IFZvaWQgTGludXgKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEy L2ZpbGVzL2xsdm0tQ29uZmlnLWxsdm0tY29uZmlnLmggYi9zcmNwa2dzL2xsdm0xMi9maWxlcy9s bHZtLUNvbmZpZy1sbHZtLWNvbmZpZy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy ZmEwOGM5YmU2OTYuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9maWxlcy9sbHZt LUNvbmZpZy1sbHZtLWNvbmZpZy5oCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi0jaW5j bHVkZSA8Yml0cy93b3Jkc2l6ZS5oPgotCi0jaWYgX19XT1JEU0laRSA9PSAzMgotI2luY2x1ZGUg Imxsdm0tY29uZmlnLTMyLmgiCi0jZWxpZiBfX1dPUkRTSVpFID09IDY0Ci0jaW5jbHVkZSAibGx2 bS1jb25maWctNjQuaCIKLSNlbHNlCi0jZXJyb3IgIlVua25vd24gd29yZCBzaXplIgotI2VuZGlm CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsdm0tMDAxLW11c2wucGF0Y2gg Yi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsdm0tMDAxLW11c2wucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IGYyYTNmOGQ2MjgxMy4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3Br Z3MvbGx2bTEyL3BhdGNoZXMvbGx2bS0wMDEtbXVzbC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDU3ICswLDAgQEAKLUZyb20gZmFjYTNmYmQxNWQwYzMxMDg0OTNjM2M1NGNkOTMxMzhlMDQ5YWM0 MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFuZHJlYSBCcmFuY2FsZW9uaSA8bWl3 YXhlQGdtYWlsLmNvbT4KLURhdGU6IFR1ZSwgOCBTZXAgMjAxNSAyMjowMzowMiArMDIwMAotU3Vi amVjdDogW1BBVENIIDMvM10gbXVzbAotCi0tLS0KLSBpbmNsdWRlL2xsdm0vQW5hbHlzaXMvVGFy Z2V0TGlicmFyeUluZm8uaCB8IDkgKysrKysrKysrCi0gbGliL1N1cHBvcnQvRHluYW1pY0xpYnJh cnkuY3BwICAgICAgICAgICAgfCAyICstCi0gbGliL1N1cHBvcnQvVW5peC9TaWduYWxzLmluYyAg ICAgICAgICAgICAgfCA2ICsrKy0tLQotIHV0aWxzL3VuaXR0ZXN0L2dvb2dsZXRlc3Qvc3JjL2d0 ZXN0LmNjICAgIHwgMSArCi0gNSBmaWxlcyBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCA2IGRl bGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvaW5jbHVkZS9sbHZtL0FuYWx5c2lzL1RhcmdldExp YnJhcnlJbmZvLmggYi9pbmNsdWRlL2xsdm0vQW5hbHlzaXMvVGFyZ2V0TGlicmFyeUluZm8uaAot aW5kZXggMzRhOGExZTMuLjEyMTRlY2U1IDEwMDY0NAotLS0tIGEvbGx2bS9pbmNsdWRlL2xsdm0v QW5hbHlzaXMvVGFyZ2V0TGlicmFyeUluZm8uaAotKysrIGIvbGx2bS9pbmNsdWRlL2xsdm0vQW5h bHlzaXMvVGFyZ2V0TGlicmFyeUluZm8uaAotQEAgLTE4LDYgKzE4LDE1IEBACi0gI2luY2x1ZGUg Imxsdm0vSVIvUGFzc01hbmFnZXIuaCIKLSAjaW5jbHVkZSAibGx2bS9QYXNzLmgiCi0gCi0rI3Vu ZGVmIGZvcGVuNjQKLSsjdW5kZWYgZnNlZWtvNjQKLSsjdW5kZWYgZnN0YXQ2NAotKyN1bmRlZiBm c3RhdHZmczY0Ci0rI3VuZGVmIGZ0ZWxsbzY0Ci0rI3VuZGVmIGxzdGF0NjQKLSsjdW5kZWYgc3Rh dDY0Ci0rI3VuZGVmIHRtcGZpbGU2NAotKwotIG5hbWVzcGFjZSBsbHZtIHsKLSB0ZW1wbGF0ZSA8 dHlwZW5hbWUgVD4gY2xhc3MgQXJyYXlSZWY7Ci0gY2xhc3MgVHJpcGxlOwotZGlmZiAtLWdpdCBh L2xpYi9TdXBwb3J0L1VuaXgvRHluYW1pY0xpYnJhcnkuaW5jIGIvbGliL1N1cHBvcnQvVW5peC9E eW5hbWljTGlicmFyeS5pbmMKLWluZGV4IGEyYTM3OTk2Li4yZjg2YzQ3MCAxMDA2NDQKLS0tLSBh L2xsdm0vbGliL1N1cHBvcnQvVW5peC9EeW5hbWljTGlicmFyeS5pbmMKLSsrKyBiL2xsdm0vbGli L1N1cHBvcnQvVW5peC9EeW5hbWljTGlicmFyeS5pbmMKLUBAIC0xMDIsNyArMTAyLDcgQEAgc3Rh dGljIHZvaWQgKkRvU2VhcmNoKGNvbnN0IGNoYXIqIFN5bWJvbE5hbWUpIHsKLSAKLSAvLyBUaGlz IG1hY3JvIHJldHVybnMgdGhlIGFkZHJlc3Mgb2YgYSB3ZWxsLWtub3duLCBleHBsaWNpdCBzeW1i b2wKLSAjZGVmaW5lIEVYUExJQ0lUX1NZTUJPTChTWU0pIFwKLS0gICBpZiAoIXN0cmNtcChTeW1i b2xOYW1lLCAjU1lNKSkgcmV0dXJuICZTWU0KLSsgICBpZiAoIXN0cmNtcChTeW1ib2xOYW1lLCAj U1lNKSkgcmV0dXJuICh2b2lkICopJlNZTQotIAotIC8vIFVuZGVyIGdsaWJjIHdlIGhhdmUgYSB3 ZWlyZCBzaXR1YXRpb24uIFRoZSBzdGRlcnIvb3V0L2luIHN5bWJvbHMgYXJlIGJvdGgKLSAvLyBt YWNyb3MgYW5kIGdsb2JhbCB2YXJpYWJsZXMgYmVjYXVzZSBvZiBzdGFuZGFyZHMgcmVxdWlyZW1l bnRzLiBTbywgd2UKLWRpZmYgLS1naXQgYS91dGlscy91bml0dGVzdC9nb29nbGV0ZXN0L3NyYy9n dGVzdC5jYyBiL3V0aWxzL3VuaXR0ZXN0L2dvb2dsZXRlc3Qvc3JjL2d0ZXN0LmNjCi1pbmRleCBk ODgyYWIyZS4uZjFmYjEyZDAgMTAwNjQ0Ci0tLS0gYS9sbHZtL3V0aWxzL3VuaXR0ZXN0L2dvb2ds ZXRlc3Qvc3JjL2d0ZXN0LmNjCi0rKysgYi9sbHZtL3V0aWxzL3VuaXR0ZXN0L2dvb2dsZXRlc3Qv c3JjL2d0ZXN0LmNjCi1AQCAtMTI4LDYgKzEyOCw3IEBACi0gCi0gI2lmIEdURVNUX0NBTl9TVFJF QU1fUkVTVUxUU18KLSAjIGluY2x1ZGUgPGFycGEvaW5ldC5oPiAgLy8gTk9MSU5UCi0rIyBpbmNs dWRlIDxzeXMvc29ja2V0Lmg+ICAvLyBOT0xJTlQKLSAjIGluY2x1ZGUgPG5ldGRiLmg+ICAvLyBO T0xJTlQKLSAjIGluY2x1ZGUgPHN5cy9zb2NrZXQuaD4gIC8vIE5PTElOVAotICMgaW5jbHVkZSA8 c3lzL3R5cGVzLmg+ICAvLyBOT0xJTlQKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNo ZXMvbGx2bS0wMDItbXVzbC1wcGM2NC1lbGZ2Mi5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNo ZXMvbGx2bS0wMDItbXVzbC1wcGM2NC1lbGZ2Mi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDA3MWQ5NjRiZDM3Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIv cGF0Y2hlcy9sbHZtLTAwMi1tdXNsLXBwYzY0LWVsZnYyLnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsMzAgKzAsMCBAQAotVGhpcyBwYXRjaGVzIExMVk0gdG8gdXNlIEVMRnYyIG9uIHBwYzY0IHVu Y29uZGl0aW9uYWxseSB1bmxlc3Mgb3ZlcnJpZGRlbi4gV2UKLW5lZWQgdGhpcyBiZWNhdXNlIHVu bGlrZSBtb3N0IGRpc3Ryb3Mgd2UgdXNlIEVMRnYyIGZvciBib3RoIGdsaWJjIGFuZCBtdXNsCi1v biBiaWcgZW5kaWFuIHBwYzY0LgotCi1kaWZmIC0tZ2l0IGEvbGliL1RhcmdldC9Qb3dlclBDL1BQ Q1RhcmdldE1hY2hpbmUuY3BwIGIvbGliL1RhcmdldC9Qb3dlclBDL1BQQ1RhcmdldE1hY2hpbmUu Y3BwCi1pbmRleCAwNjM0ODMzZS4uYjdjYmMyZTcgMTAwNjQ0Ci0tLS0gYS9sbHZtL2xpYi9UYXJn ZXQvUG93ZXJQQy9QUENUYXJnZXRNYWNoaW5lLmNwcAotKysrIGIvbGx2bS9saWIvVGFyZ2V0L1Bv d2VyUEMvUFBDVGFyZ2V0TWFjaGluZS5jcHAKLUBAIC0yMjIsOSArMjIyLDggQEAgc3RhdGljIFBQ Q1RhcmdldE1hY2hpbmU6OlBQQ0FCSSBjb21wdXRlVGFyZ2V0QUJJKGNvbnN0IFRyaXBsZSAmVFQs Ci0gCi0gICBzd2l0Y2ggKFRULmdldEFyY2goKSkgewotICAgY2FzZSBUcmlwbGU6OnBwYzY0bGU6 Ci0tICAgIHJldHVybiBQUENUYXJnZXRNYWNoaW5lOjpQUENfQUJJX0VMRnYyOwotICAgY2FzZSBU cmlwbGU6OnBwYzY0OgotLSAgICByZXR1cm4gUFBDVGFyZ2V0TWFjaGluZTo6UFBDX0FCSV9FTEZ2 MTsKLSsgICAgcmV0dXJuIFBQQ1RhcmdldE1hY2hpbmU6OlBQQ19BQklfRUxGdjI7Ci0gICBkZWZh dWx0OgotICAgICByZXR1cm4gUFBDVGFyZ2V0TWFjaGluZTo6UFBDX0FCSV9VTktOT1dOOwotICAg fQotZGlmZiAtLWdpdCBhL3Rlc3QvQ29kZUdlbi9Qb3dlclBDL3BwYzY0LWVsZi1hYmkubGwgYi90 ZXN0L0NvZGVHZW4vUG93ZXJQQy9wcGM2NC1lbGYtYWJpLmxsCi1pbmRleCA4YjFjZjZiNS4uMjk2 YTJhZmEgMTAwNjQ0Ci0tLS0gYS9sbHZtL3Rlc3QvQ29kZUdlbi9Qb3dlclBDL3BwYzY0LWVsZi1h YmkubGwKLSsrKyBiL2xsdm0vdGVzdC9Db2RlR2VuL1Bvd2VyUEMvcHBjNjQtZWxmLWFiaS5sbAot QEAgLTEsNCArMSw1IEBACi0tOyBSVU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVpbnN0cnMgLW10cmlw bGU9cG93ZXJwYzY0LXVua25vd24tbGludXgtZ251IDwgJXMgfCBGaWxlQ2hlY2sgJXMgLWNoZWNr LXByZWZpeD1DSEVDSy1FTEZ2MQotKzsgUlVOOiBsbGMgLXZlcmlmeS1tYWNoaW5laW5zdHJzIC1t dHJpcGxlPXBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudSA8ICVzIHwgRmlsZUNoZWNrICVzIC1j aGVjay1wcmVmaXg9Q0hFQ0stRUxGdjIKLSs7IFJVTjogbGxjIC12ZXJpZnktbWFjaGluZWluc3Ry cyAtbXRyaXBsZT1wb3dlcnBjNjQtdW5rbm93bi1saW51eC1tdXNsIDwgJXMgfCBGaWxlQ2hlY2sg JXMgLWNoZWNrLXByZWZpeD1DSEVDSy1FTEZ2MgotIDsgUlVOOiBsbGMgLXZlcmlmeS1tYWNoaW5l aW5zdHJzIC1tdHJpcGxlPXBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudSAtdGFyZ2V0LWFiaSBl bGZ2MSA8ICVzIHwgRmlsZUNoZWNrICVzIC1jaGVjay1wcmVmaXg9Q0hFQ0stRUxGdjEKLSA7IFJV TjogbGxjIC12ZXJpZnktbWFjaGluZWluc3RycyAtbXRyaXBsZT1wb3dlcnBjNjQtdW5rbm93bi1s aW51eC1nbnUgLXRhcmdldC1hYmkgZWxmdjIgPCAlcyB8IEZpbGVDaGVjayAlcyAtY2hlY2stcHJl Zml4PUNIRUNLLUVMRnYyCi0gOyBSVU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVpbnN0cnMgLW10cmlw bGU9cG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUgPCAlcyB8IEZpbGVDaGVjayAlcyAtY2hl Y2stcHJlZml4PUNIRUNLLUVMRnYyCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVz L2xsdm0tMDAzLXBwYy1zZWN1cmVwbHQucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xs dm0tMDAzLXBwYy1zZWN1cmVwbHQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IGI1ZDE1OTc0Mzc1ZC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMv bGx2bS0wMDMtcHBjLXNlY3VyZXBsdC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAg QEAKLS0tLSBhL2xsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ1N1YnRhcmdldC5jcHAKLSsrKyBi L2xsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ1N1YnRhcmdldC5jcHAKLUBAIC0xNjUsNyArMTY1 LDcgQEAgdm9pZCBQUENTdWJ0YXJnZXQ6OmluaXRTdWJ0YXJnZXRGZWF0dXJlcyhTdHJpbmdSZWYg Q1BVLCBTdHJpbmdSZWYgRlMpIHsKLSAKLSAgIGlmICgoVGFyZ2V0VHJpcGxlLmlzT1NGcmVlQlNE KCkgJiYgVGFyZ2V0VHJpcGxlLmdldE9TTWFqb3JWZXJzaW9uKCkgPj0gMTMpIHx8Ci0gICAgICAg VGFyZ2V0VHJpcGxlLmlzT1NOZXRCU0QoKSB8fCBUYXJnZXRUcmlwbGUuaXNPU09wZW5CU0QoKSB8 fAotLSAgICAgIFRhcmdldFRyaXBsZS5pc011c2woKSkKLSsgICAgICBpc1RhcmdldExpbnV4KCkp Ci0gICAgIFNlY3VyZVBsdCA9IHRydWU7Ci0gCi0gICBpZiAoSGFzU1BFICYmIElzUFBDNjQpCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsdm0tMDA0LW92ZXJyaWRlLW9wdC5w YXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGx2bS0wMDQtb3ZlcnJpZGUtb3B0LnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MWQwZTRiMzFiMzIuLjAwMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsdm0tMDA0LW92ZXJyaWRlLW9wdC5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoaXMgYWxsb3dzIHVzIHRvIG92ZXJy aWRlIHRoZSBvcHRpbWl6YXRpb24gbGV2ZWwgYXMgbm90IGFsbCBwbGF0Zm9ybXMgY2FuCi1kZWFs IHdpdGggLU8zLgotCi0tLS0gYS9sbHZtL0NNYWtlTGlzdHMudHh0Ci0rKysgYi9sbHZtL0NNYWtl TGlzdHMudHh0Ci1AQCAtOTE4LDYgKzkxOCwxMiBAQCBpZiggTUlOR1cgQU5EIE5PVCAiJHtDTUFL RV9DWFhfQ09NUElMRVJfSUR9IiBNQVRDSEVTICJDbGFuZyIgKQotICAgbGx2bV9yZXBsYWNlX2Nv bXBpbGVyX29wdGlvbihDTUFLRV9DWFhfRkxBR1NfUkVMRUFTRSAiLU8zIiAiLU8yIikKLSBlbmRp ZigpCi0gCi0rc2V0KFZPSURfQ1hYX09QVF9GTEFHUyAiIiBDQUNIRSBTVFJJTkcgIk9wdGltaXph dGlvbiBsZXZlbCB0byB1c2UiKQotKwotK2lmIChOT1QgVk9JRF9DWFhfT1BUX0ZMQUdTIFNUUkVR VUFMICIiKQotKyAgICBsbHZtX3JlcGxhY2VfY29tcGlsZXJfb3B0aW9uKENNQUtFX0NYWF9GTEFH U19SRUxFQVNFICItTzMiICIke1ZPSURfQ1hYX09QVF9GTEFHU30iKQotK2VuZGlmKCkKLSsKLSAj IFB1dCB0aGlzIGJlZm9yZSB0YmxnZW4uIEVsc2Ugd2UgaGF2ZSBhIGNpcmN1bGFyIGRlcGVuZGVu Y2UuCi0gYWRkX3N1YmRpcmVjdG9yeShsaWIvRGVtYW5nbGUpCi0gYWRkX3N1YmRpcmVjdG9yeShs aWIvU3VwcG9ydCkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGx2bS0wMDUt cHBjLWJpZ3BpYy5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGx2bS0wMDUtcHBjLWJp Z3BpYy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDMzMjY4N2I5ZDkyLi4w MDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbHZtLTAwNS1wcGMtYmln cGljLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotRnJvbSBmM2RiZGQ0OWMw NmJmYWZjMWQ2MTM4MDk0Y2Y0Mjg4OWMxNGQzOGI2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogU2FtdWVsIEhvbGxhbmQgPHNhbXVlbEBzaG9sbGFuZC5vcmc+Ci1EYXRlOiBTdW4sIDMg Tm92IDIwMTkgMTA6NTc6MjcgLTA2MDAKLVN1YmplY3Q6IFtQQVRDSF0gW0xMVk1dW1Bvd2VyUENd IEFzc3VtZSBCaWdQSUMgaWYgbm8gUElDIGxldmVsIGlzIHNwZWNpZmllZAotCi0tLS0KLSBsbHZt L2xpYi9UYXJnZXQvUG93ZXJQQy9QUENBc21QcmludGVyLmNwcCAgfCAyICstCi0gbGx2bS9saWIv VGFyZ2V0L1Bvd2VyUEMvUFBDTUNJbnN0TG93ZXIuY3BwIHwgMiArLQotIDIgZmlsZXMgY2hhbmdl ZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbGliL1Rh cmdldC9Qb3dlclBDL1BQQ0FzbVByaW50ZXIuY3BwIGIvbGliL1RhcmdldC9Qb3dlclBDL1BQQ0Fz bVByaW50ZXIuY3BwCi1pbmRleCBjY2UyMWYzMi4uODdjYTVmOWIgMTAwNjQ0Ci0tLS0gYS9sbHZt L2xpYi9UYXJnZXQvUG93ZXJQQy9QUENBc21QcmludGVyLmNwcAotKysrIGIvbGx2bS9saWIvVGFy Z2V0L1Bvd2VyUEMvUFBDQXNtUHJpbnRlci5jcHAKLUBAIC01MjAsNyArNTIwLDcgQEAgdm9pZCBQ UENBc21QcmludGVyOjpFbWl0VGxzQ2FsbChjb25zdCBNYWNoaW5lSW5zdHIgKk1JLAotIAotICAg Ly8gQWRkIDMyNzY4IG9mZnNldCB0byB0aGUgc3ltYm9sIHNvIHdlIGZvbGxvdyB1cCB0aGUgbGF0 ZXN0IEdPVC9QTFQgQUJJLgotICAgaWYgKEtpbmQgPT0gTUNTeW1ib2xSZWZFeHByOjpWS19QTFQg JiYgU3VidGFyZ2V0LT5pc1NlY3VyZVBsdCgpICYmCi0tICAgICAgTS0+Z2V0UElDTGV2ZWwoKSA9 PSBQSUNMZXZlbDo6QmlnUElDKQotKyAgICAgIE0tPmdldFBJQ0xldmVsKCkgIT0gUElDTGV2ZWw6 OlNtYWxsUElDKQotICAgICBUbHNSZWYgPSBNQ0JpbmFyeUV4cHI6OmNyZWF0ZUFkZCgKLSAgICAg ICAgIFRsc1JlZiwgTUNDb25zdGFudEV4cHI6OmNyZWF0ZSgzMjc2OCwgT3V0Q29udGV4dCksIE91 dENvbnRleHQpOwotICAgY29uc3QgTWFjaGluZU9wZXJhbmQgJk1PID0gTUktPmdldE9wZXJhbmQo Mik7Ci1kaWZmIC0tZ2l0IGEvbGliL1RhcmdldC9Qb3dlclBDL1BQQ01DSW5zdExvd2VyLmNwcCBi L2xpYi9UYXJnZXQvUG93ZXJQQy9QUENNQ0luc3RMb3dlci5jcHAKLWluZGV4IDVjYzE4MGQ3Li5h NWIwMjU2NSAxMDA2NDQKLS0tLSBhL2xsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ01DSW5zdExv d2VyLmNwcAotKysrIGIvbGx2bS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDTUNJbnN0TG93ZXIuY3Bw Ci1AQCAtMTE3LDcgKzExNyw3IEBAIHN0YXRpYyBNQ09wZXJhbmQgR2V0U3ltYm9sUmVmKGNvbnN0 IE1hY2hpbmVPcGVyYW5kICZNTywgY29uc3QgTUNTeW1ib2wgKlN5bWJvbCwKLSAgIGNvbnN0IE1D RXhwciAqRXhwciA9IE1DU3ltYm9sUmVmRXhwcjo6Y3JlYXRlKFN5bWJvbCwgUmVmS2luZCwgQ3R4 KTsKLSAgIC8vIElmIC1tc2VjdXJlLXBsdCAtZlBJQywgYWRkIDMyNzY4IHRvIHN5bWJvbC4KLSAg IGlmIChTdWJ0YXJnZXQtPmlzU2VjdXJlUGx0KCkgJiYgVE0uaXNQb3NpdGlvbkluZGVwZW5kZW50 KCkgJiYKLS0gICAgICBNLT5nZXRQSUNMZXZlbCgpID09IFBJQ0xldmVsOjpCaWdQSUMgJiYKLSsg ICAgICBNLT5nZXRQSUNMZXZlbCgpICE9IFBJQ0xldmVsOjpTbWFsbFBJQyAmJgotICAgICAgIE1P LmdldFRhcmdldEZsYWdzKCkgPT0gUFBDSUk6Ok1PX1BMVCkKLSAgICAgRXhwciA9Ci0gICAgICAg ICBNQ0JpbmFyeUV4cHI6OmNyZWF0ZUFkZChFeHByLCBNQ0NvbnN0YW50RXhwcjo6Y3JlYXRlKDMy NzY4LCBDdHgpLCBDdHgpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbHZt LTAwNi1hYXJjaDY0LW1mX2V4ZWMucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsdm0t MDA2LWFhcmNoNjQtbWZfZXhlYy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg YTAwYWJkMjE2NjY1Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9s bHZtLTAwNi1hYXJjaDY0LW1mX2V4ZWMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCww IEBACi1GaXggZmFpbHVyZXMgaW4gQWxsb2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuKiBv biBhYXJjaDY0OgotCi0gICAgRmFpbGluZyBUZXN0cyAoOCk6Ci0gICAgICAgIExMVk0tVW5pdCA6 OiBTdXBwb3J0Ly4vU3VwcG9ydFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0 LkFsbG9jQW5kUmVsZWFzZS8zCi0gICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4vU3VwcG9y dFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0LkR1cGxpY2F0ZU5lYXIvMwot ICAgICAgICBMTFZNLVVuaXQgOjogU3VwcG9ydC8uL1N1cHBvcnRUZXN0cy9BbGxvY2F0aW9uVGVz dHMvTWFwcGVkTWVtb3J5VGVzdC5FbmFibGVkV3JpdGUvMwotICAgICAgICBMTFZNLVVuaXQgOjog U3VwcG9ydC8uL1N1cHBvcnRUZXN0cy9BbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5VGVzdC5N dWx0aXBsZUFsbG9jQW5kUmVsZWFzZS8zCi0gICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4v U3VwcG9ydFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0LlN1Y2Nlc3NpdmVO ZWFyLzMKLSAgICAgICAgTExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxsb2Nh dGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuVW5hbGlnbmVkTmVhci8zCi0gICAgICAgIExMVk0t VW5pdCA6OiBTdXBwb3J0Ly4vU3VwcG9ydFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1v cnlUZXN0Llplcm9OZWFyLzMKLSAgICAgICAgTExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0 VGVzdHMvQWxsb2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuWmVyb1NpemVOZWFyLzMKLQot VXBzdHJlYW0tSXNzdWU6IGh0dHBzOi8vYnVncy5sbHZtLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQy NzgjYzEwCi0KLS0tLSBhL2xsdm0vbGliL1N1cHBvcnQvVW5peC9NZW1vcnkuaW5jCi0rKysgYi9s bHZtL2xpYi9TdXBwb3J0L1VuaXgvTWVtb3J5LmluYwotQEAgLTU4LDcgKzU4LDcgQEAgc3RhdGlj IGludCBnZXRQb3NpeFByb3RlY3Rpb25GbGFncyh1bnNpZ25lZCBGbGFncykgewotICAgICByZXR1 cm4gUFJPVF9SRUFEIHwgUFJPVF9XUklURSB8IFBST1RfRVhFQzsKLSAgIGNhc2UgbGx2bTo6c3lz OjpNZW1vcnk6Ok1GX0VYRUM6Ci0gI2lmIChkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVk KF9fUE9XRVJQQ19fKSB8fCBkZWZpbmVkIChfX3BwY19fKSB8fCBcCi0tICAgICBkZWZpbmVkKF9Q T1dFUikgfHwgZGVmaW5lZChfQVJDSF9QUEMpKQotKyAgICAgZGVmaW5lZChfUE9XRVIpIHx8IGRl ZmluZWQoX0FSQ0hfUFBDKSB8fCAoZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX19hYXJj aDY0X18pKSkKLSAgICAgLy8gT24gUG93ZXJQQywgaGF2aW5nIGFuIGV4ZWN1dGFibGUgcGFnZSB0 aGF0IGhhcyBubyByZWFkIHBlcm1pc3Npb24KLSAgICAgLy8gY2FuIGhhdmUgdW5pbnRlbmRlZCBj b25zZXF1ZW5jZXMuICBUaGUgZnVuY3Rpb24gSW52YWxpZGF0ZUluc3RydWN0aW9uLQotICAgICAv LyBDYWNoZSB1c2VzIGluc3RydWN0aW9ucyBkY2JmIGFuZCBpY2JpLCBib3RoIG9mIHdoaWNoIGFy ZSB0cmVhdGVkIGJ5CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0ZSBiL3NyY3Br Z3MvbGx2bTEyL3RlbXBsYXRlCmluZGV4IDdiMzYxYmJiZjViYy4uZTdlNDBjYWU0MTNlIDEwMDY0 NAotLS0gYS9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xsdm0xMi90ZW1w bGF0ZQpAQCAtMSwxMjUgKzEsMTMgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xsdm0xMicKIHBr Z25hbWU9bGx2bTEyCiB2ZXJzaW9uPTEyLjAuMQotcmV2aXNpb249Mwotd3Jrc3JjPSJsbHZtLXBy b2plY3QtJHt2ZXJzaW9ufS5zcmMiCi1idWlsZF93cmtzcmM9bGx2bQotYnVpbGRfc3R5bGU9Y21h a2UKLWNvbmZpZ3VyZV9hcmdzPSIKLSAtRENNQUtFX0JVSUxEX1RZUEU9UmVsZWFzZSAtV25vLWRl dgotIC1ERU5BQkxFX0xJTktFUl9CVUlMRF9JRD1ZRVMKLSAtRExMVk1fSU5DTFVERV9ET0NTPVlF UwotIC1ETExWTV9CVUlMRF9ET0NTPVlFUwotIC1ETExWTV9FTkFCTEVfU1BISU5YPVlFUwotIC1E U1BISU5YX1dBUk5JTkdTX0FTX0VSUk9SUz1OTwotIC1ETExWTV9CVUlMRF9MTFZNX0RZTElCPVlF UwotIC1ETExWTV9MSU5LX0xMVk1fRFlMSUI9WUVTCi0gLURMTFZNX0VOQUJMRV9SVFRJPVlFUwot IC1ETExWTV9FTkFCTEVfRkZJPVlFUwotIC1ETExWTV9CSU5VVElMU19JTkNESVI9L3Vzci9pbmNs dWRlIgotaG9zdG1ha2VkZXBlbmRzPSJwZXJsIHB5dGhvbjMgemxpYi1kZXZlbCBsaWJmZmktZGV2 ZWwgc3dpZyBweXRob24zLVNwaGlueAotIHB5dGhvbjMtcmVjb21tb25tYXJrIHB5dGhvbjMtc3Bo aW54LWF1dG9tb2RhcGkiCi1tYWtlZGVwZW5kcz0icHl0aG9uMy1kZXZlbCB6bGliLWRldmVsIGVs ZnV0aWxzLWRldmVsIGxpYmZmaS1kZXZlbCBsaWJlZGl0LWRldmVsCi0gbGlieG1sMi1kZXZlbCBi aW51dGlscy1kZXZlbCBsaWJhdG9taWMtZGV2ZWwiCi1kZXBlbmRzPSJsaWJsbHZtMTI+PSR7dmVy c2lvbn1fJHtyZXZpc2lvbn0iCi1zaG9ydF9kZXNjPSJMb3cgTGV2ZWwgVmlydHVhbCBNYWNoaW5l IgorcmV2aXNpb249NAorYnVpbGRfc3R5bGU9bWV0YQorc2hvcnRfZGVzYz0iTG93IExldmVsIFZp cnR1YWwgTWFjaGluZSAocmVtb3ZlZCBwYWNrYWdlKSIKIG1haW50YWluZXI9InE2NiA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+IgotbGljZW5zZT0iQXBhY2hlLTIuMCIKK2xpY2Vuc2U9Im1ldGFwYWNr YWdlIgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3Lmxsdm0ub3JnIgotZGlzdGZpbGVzPSJodHRwczov L2dpdGh1Yi5jb20vbGx2bS9sbHZtLXByb2plY3QvcmVsZWFzZXMvZG93bmxvYWQvbGx2bW9yZy0k e3ZlcnNpb259L2xsdm0tcHJvamVjdC0ke3ZlcnNpb259LnNyYy50YXIueHoiCi1jaGVja3N1bT0x MjljYjI1Y2QxMzY3N2FhZDk1MWNlNWMyZGViMGZlNGFmYzFlOWQ5ODk1MGY1M2I1MWJkY2ZiNWE3 M2FmYTBlCi1saWIzMmRpc2FibGVkPXllcwotcHl0aG9uX3ZlcnNpb249MwotCi1pZiBbICIkWEJQ U19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgotCWNvbmZpZ3VyZV9hcmdzKz0iIC1ETElC Q1hYX0hBU19NVVNMX0xJQkM9WUVTIgotCW1ha2VkZXBlbmRzKz0iIGxpYmV4ZWNpbmZvLWRldmVs IgotCWRlcGVuZHMrPSIgbGliZXhlY2luZm8tZGV2ZWwiCi1maQotCi0jICJvcGVyYW5kIG91dCBv ZiByYW5nZSIgYXNzZW1ibGVyIGZhaWx1cmVzCi1jYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIg aW4KLQlwcGM2NCopIDs7Ci0JcHBjKikgY29uZmlndXJlX2FyZ3MrPSIgLURDTEFOR19FTkFCTEVf Q0xBTkdEPU9GRiIgOzsKLWVzYWMKLQotcG9zdF9wYXRjaCgpIHsKLQkjIHVwZGF0ZSBjb25maWcu Z3Vlc3MgZm9yIGJldHRlciBwbGF0Zm9ybSBkZXRlY3Rpb24KLQljcCAkWEJQU19DT01NT05ESVIv ZW52aXJvbm1lbnQvY29uZmlndXJlL2F1dG9tYWtlL2NvbmZpZy5ndWVzcyBcCi0JCSR7d3Jrc3Jj fS9sbHZtL2NtYWtlCi19Ci0KLXByZV9jb25maWd1cmUoKSB7Ci0JbG9jYWwgdHJpcGxldAotCi0J IyBWYXN0bHkgcmVkdWNlIHNpemUgb2YgZGVidWdnaW5nIHN5bWJvbHM6Ci0JQ0ZMQUdTPSR7Q0ZM QUdTLyAtZy8gLWcxfQotCUNYWEZMQUdTPSR7Q1hYRkxBR1MvIC1nLyAtZzF9Ci0KLQkjIHNpbmNl IGdjYzksIHRoZSBidWlsZCBsaWtlcyB0byBibG93IHVwIGZvciBwcGMzMiBhcHBhcmVudGx5IGJl Y2F1c2UKLQkjIG9mIGNsYW5nIGJlaW5nIHRvbyBsYXJnZSBmb3IgYSAyNC1iaXQgcmVsYXRpdmUg Y2FsbCB0byB0aGUgUExULCBzbwotCSMgb3B0aW1pemUgZm9yIHNpemUgaW5zdGVhZAotCWNhc2Ug IiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgotCQlwcGM2NCopIDs7Ci0JCW1pcHMqLW11c2x8cHBj KikgY29uZmlndXJlX2FyZ3MrPSIgLURWT0lEX0NYWF9PUFRfRkxBR1M9LU9zIiA7OwotCWVzYWMK LQotCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgotCQltc2dfbm9ybWFsICJCdWlsZGluZyBo b3N0IHRibGdlblxuIgotCQlta2RpciAtcCBidWlsZC9IT1NUCi0JCWNkIGJ1aWxkL0hPU1QKLQkJ Q0M9IiRCVUlMRF9DQyIgQ1hYPSIkQlVJTERfQ1hYIiBDRkxBR1M9IiRCVUlMRF9DRkxBR1MiIFwK LQkJCUNYWEZMQUdTPSIkQlVJTERfQ1hYRkxBR1MiIExERkxBR1M9IiRCVUlMRF9MREZMQUdTIiBc Ci0JCQljbWFrZSAuLi8uLiAtRENNQUtFX0JVSUxEX1RZUEU9UmVsZWFzZSBcCi0JCQktRExMVk1f RU5BQkxFX1BST0pFQ1RTPSR7X2VuYWJsZWRfcHJvamVjdHN9Ci0JCW1ha2UgJHttYWtlam9ic30g LUMgdXRpbHMvVGFibGVHZW4KLQkJWyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdICYmIG1ha2Ug JHttYWtlam9ic30gLUMgdG9vbHMvbGxkYi91dGlscy9UYWJsZUdlbgotCQljb25maWd1cmVfYXJn cys9IiAtRExMVk1fVEFCTEVHRU49JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4vbGx2bS10 YmxnZW4iCi0JCVsgIiRfbGxkYl9lbmFibGUiID0gInllcyIgXSAmJiBjb25maWd1cmVfYXJncys9 IiAtRExMREJfVEFCTEVHRU49JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4vbGxkYi10Ymxn ZW4iCi0JCWNkIC4uLy4uCi0JZmkKLQotCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgot CQlpNjg2KikgX2FyY2g9Ilg4NiI7OwotCQl4ODZfNjQqKSBfYXJjaD0iWDg2Ijs7Ci0JCWFybXY1 KikgX2FyY2g9IkFybXY1dGUiOzsKLQkJYXJtdjYqKSBfYXJjaD0iQXJtdjYiOzsKLQkJYXJtdjcq KSBfYXJjaD0iQXJtdjciOzsKLQkJYWFyY2g2NCopIF9hcmNoPSJBQXJjaDY0Ijs7Ci0JCW1pcHMq KSBfYXJjaD0iTWlwcyI7OwotCQlwcGMqKSBfYXJjaD0iUG93ZXJQQyI7OwotCQlyaXNjdjY0Kikg X2FyY2g9IlJJU0NWNjQiOzsKLQllc2FjCi0KLQl0cmlwbGV0PSR7WEJQU19DUk9TU19UUklQTEVU Oi0kWEJQU19UUklQTEVUfQotCi0JY29uZmlndXJlX2FyZ3MrPSIgLURMTFZNX1RBUkdFVF9BUkNI PSR7X2FyY2h9IgotCWNvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9IT1NUX1RSSVBMRT0ke3RyaXBs ZXR9IgotCWNvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9ERUZBVUxUX1RBUkdFVF9UUklQTEU9JHt0 cmlwbGV0fSIKLX0KLQotZG9faW5zdGFsbCgpIHsKLQljZCBidWlsZAotCWNtYWtlIC1EQ01BS0Vf SU5TVEFMTF9QUkVGSVg9JHtERVNURElSfS91c3IgLVAgY21ha2VfaW5zdGFsbC5jbWFrZQotCi0J IyBSZXF1aXJlZCBmb3IgbXVsdGlsaWIuCi0JaWYgWyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0g Ing4Nl82NCIgXTsgdGhlbgotCQlmb3IgX2hlYWRlciBpbiBsbHZtLWNvbmZpZzsgZG8KLQkJCW12 ICR7REVTVERJUn0vdXNyL2luY2x1ZGUvbGx2bS9Db25maWcvJHtfaGVhZGVyfXssLTY0fS5oCi0J CQl2aW5zdGFsbCAke0ZJTEVTRElSfS9sbHZtLUNvbmZpZy0ke19oZWFkZXJ9LmggNjQ0IFwKLQkJ CQl1c3IvaW5jbHVkZS9sbHZtL0NvbmZpZyAke19oZWFkZXJ9LmgKLQkJZG9uZQotCWZpCi0KLQkj IFJlbW92ZSBsbHZtLWNvbmZpZy1ob3N0IGluIGNyb3NzIGJ1aWxkcy4KLQlpZiBbICIkQ1JPU1Nf QlVJTEQiIF07IHRoZW4KLQkJcm0gLWYgJHtERVNURElSfS91c3IvYmluL2xsdm0tY29uZmlnLWhv c3QKLQlmaQotfQogCiBsaWJsbHZtMTJfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gcnVu dGltZSBsaWJyYXJ5IgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAidXNyL2xpYi9saWJMTFZN LSouc28qIgotCX0KIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3VwZGF0ZSBiL3NyY3Br Z3MvbGx2bTEyL3VwZGF0ZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTk1Y2YyNmIz NTg2Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvdXBkYXRlCisrKyAvZGV2L251 bGwKQEAgLTEsMyArMCwwIEBACi1zaXRlPSJodHRwczovL2dpdGh1Yi5jb20vbGx2bS9sbHZtLXBy b2plY3QvcmVsZWFzZXMiCi1wYXR0ZXJuPSJsbHZtb3JnLVxLKFxkKy4pezJ9XGQrKC1yY1xkKyk/ IgotaWdub3JlPSIqLXJjKiIKCkZyb20gYjAxYmUxY2VkNGQ0NDcwNjU4MDVhYmFiYWUyNDYyNTMw OTYxYzhhNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0FuZHI9QzM9 QTk9MjBDZXJxdWVpcmE/PSA8YWNlcnF1ZWlyYTAyMUBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMjgg RmViIDIwMjIgMjE6NDI6NTUgKzAwMDAKU3ViamVjdDogW1BBVENIIDE1LzMxXSBtZXNhOiByZWJ1 aWxkIGZvciBsbHZtMTMKCi0tLQogc3JjcGtncy9tZXNhL3RlbXBsYXRlIHwgMiArLQogMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9tZXNhL3RlbXBsYXRlIGIvc3JjcGtncy9tZXNhL3RlbXBsYXRlCmluZGV4IGM5MDUwMGRl NzQxNi4uOGYwODI2MmZiMTM1IDEwMDY0NAotLS0gYS9zcmNwa2dzL21lc2EvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9tZXNhL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnbWVzYScKIHBrZ25hbWU9bWVzYQogdmVyc2lvbj0yMS4zLjcKLXJldmlzaW9uPTEKK3Jl dmlzaW9uPTIKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURnbHZuZD10cnVl IC1Ec2hhcmVkLWdsYXBpPWVuYWJsZWQgLURnYm09ZW5hYmxlZCAtRGVnbD1lbmFibGVkCiAgLURv c21lc2E9dHJ1ZSAtRGdsZXMxPWVuYWJsZWQgLURnbGVzMj1lbmFibGVkIC1EZ2x4PWRyaSAtRGRy aTM9ZW5hYmxlZAoKRnJvbSA0ZmQ3YTc2NzM5NjIwOTk1NWMyOTVhNDdlODM4MzVjYTlmNjQwYWJl IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/QW5kcj1DMz1BOT0yMENl cnF1ZWlyYT89IDxhY2VycXVlaXJhMDIxQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAyOCBGZWIgMjAy MiAyMTo0Mzo1NiArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMTYvMzFdIHF0Y3JlYXRvcjogdXBkYXRl IHRvIDYuMC4yLgoKLS0tCiBzcmNwa2dzL3F0Y3JlYXRvci90ZW1wbGF0ZSB8IDIgKy0KIDEgZmls ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvcXRjcmVhdG9yL3RlbXBsYXRlIGIvc3JjcGtncy9xdGNyZWF0b3IvdGVtcGxhdGUKaW5k ZXggOTg4NDkxZWM2NDk2Li5iMTY2Y2MwNWE5OTkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXRjcmVh dG9yL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXRjcmVhdG9yL3RlbXBsYXRlCkBAIC01LDcgKzUs NyBAQCByZXZpc2lvbj0xCiB3cmtzcmM9InF0LWNyZWF0b3Itb3BlbnNvdXJjZS1zcmMtJHt2ZXJz aW9ufSIKIGJ1aWxkX3N0eWxlPXFtYWtlCiBtYWtlX2luc3RhbGxfYXJncz0iSU5TVEFMTF9ST09U PVwke0RFU1RESVJ9L3VzciIKLWhvc3RtYWtlZGVwZW5kcz0iY2xhbmcgbGx2bSBwZXJsIHBrZy1j b25maWcgcHl0aG9uMyB3aGljaCBxdDUtcW1ha2UKK2hvc3RtYWtlZGVwZW5kcz0ibGx2bTEzIHBl cmwgcGtnLWNvbmZpZyBweXRob24zIHdoaWNoIHF0NS1xbWFrZQogIHF0NS1ob3N0LXRvb2xzIgog bWFrZWRlcGVuZHM9InF0NS1kZWNsYXJhdGl2ZS1kZXZlbCBxdDUtc2NyaXB0LWRldmVsIHF0NS10 b29scy1kZXZlbAogIHF0NS1xdWlja2NvbnRyb2xzIHF0NS1zdmctZGV2ZWwgY2xhbmcgbGx2bSIK CkZyb20gNTc4YjM5NjlhYWRkMzU4ZDBiYzU3YzA5MTViOWUyOTIxZDZjZmYyZSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0FuZHI9QzM9QTk9MjBDZXJxdWVpcmE/PSA8 YWNlcnF1ZWlyYTAyMUBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMjggRmViIDIwMjIgMjE6NDY6NDgg KzAwMDAKU3ViamVjdDogW1BBVENIIDE3LzMxXSBpc3BjOiB1cGRhdGUgdG8gMS4xNy4wLgoKLS0t CiAuLi4vaXNwYy9wYXRjaGVzL2NtYWtlLWJ1aWxkLXR5cGUtbm9uZS5wYXRjaCAgfCAgIDE4IC0K IHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDEucGF0Y2ggICAgICAgICB8ICAgNTcgLQog c3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMi5wYXRjaCAgICAgICAgIHwgIDkyMyAtLS0t LS0tLQogc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMy5wYXRjaCAgICAgICAgIHwgMTUw NCAtLS0tLS0tLS0tLS0KIHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDQucGF0Y2ggICAg ICAgICB8ICAgMzQgLQogc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNS5wYXRjaCAgICAg ICAgIHwgIDM3MiAtLS0KIHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDYucGF0Y2ggICAg ICAgICB8ICAxMjYgLQogc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNy5wYXRjaCAgICAg ICAgIHwgIDE2MCAtLQogc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwOC5wYXRjaCAgICAg ICAgIHwgIDE0OSAtLQogc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwOS5wYXRjaCAgICAg ICAgIHwgMjEwOSAtLS0tLS0tLS0tLS0tLS0tLQogc3JjcGtncy9pc3BjL3RlbXBsYXRlICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgOCArLQogMTEgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRp b25zKCspLCA1NDU2IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNw Yy9wYXRjaGVzL2NtYWtlLWJ1aWxkLXR5cGUtbm9uZS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDEucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAyLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMy5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA1LnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNi5wYXRjaAogZGVsZXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDcucGF0Y2gKIGRlbGV0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA4LnBhdGNoCiBkZWxldGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwOS5wYXRjaAoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2NtYWtlLWJ1aWxkLXR5cGUtbm9uZS5wYXRjaCBiL3Ny Y3BrZ3MvaXNwYy9wYXRjaGVzL2NtYWtlLWJ1aWxkLXR5cGUtbm9uZS5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggNDExZTM1M2M3MzE0Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy9pc3BjL3BhdGNoZXMvY21ha2UtYnVpbGQtdHlwZS1ub25lLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsMTggKzAsMCBAQAotSW5kZXg6IGlzcGMtMS4xNS4wL0NNYWtlTGlzdHMudHh0Ci09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gaXNwYy0xLjE1LjAub3JpZy9DTWFrZUxpc3RzLnR4dAotKysrIGlzcGMt MS4xNS4wL0NNYWtlTGlzdHMudHh0Ci1AQCAtMTU3LDEzICsxNTcsNiBAQCBzZXQoT1VUUFVUX1JF TEVBU0UgUmVsZWFzZS9iaW4pCi0gc2V0KENNQUtFX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWSAk e0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vYmluICkKLSAKLSBpZihDTUFLRV9CVUlMRF9UWVBF KQotLSAgICAjIFZhbGlkYXRlIGJ1aWxkIHR5cGUKLS0gICAgc2V0KENPTkZJR1VSQVRJT05fVFlQ RVMgIkRlYnVnO1JlbGVhc2U7UmVsV2l0aERlYkluZm8iKQotLQotLSAgICBzdHJpbmcoRklORCAi JHtDT05GSUdVUkFUSU9OX1RZUEVTfSIgIiR7Q01BS0VfQlVJTERfVFlQRX0iIE1BVENIRURfQ09O RklHKQotLSAgICBpZiAoJHtNQVRDSEVEX0NPTkZJR30gRVFVQUwgLTEpCi0tICAgICAgICAgbWVz c2FnZShGQVRBTF9FUlJPUiAiQ01BS0VfQlVJTERfVFlQRSAoJHtDTUFLRV9CVUlMRF9UWVBFfSkg YWxsb3dzIG9ubHkgdGhlIGZvbGxvd2luZyB2YWx1ZXM6ICR7Q09ORklHVVJBVElPTl9UWVBFU30i KQotLSAgICBlbmRpZigpCi0gZWxzZShOT1QgQ01BS0VfQlVJTERfVFlQRSkKLSAgICAgc2V0KENN QUtFX0JVSUxEX1RZUEUgIlJlbGVhc2UiKQotICAgICBtZXNzYWdlKFNUQVRVUyAiQnVpbGQgdHlw ZSBub3Qgc3BlY2lmaWVkOiBVc2UgUmVsZWFzZSBieSBkZWZhdWx0LiIpCmRpZmYgLS1naXQgYS9z cmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAxLnBhdGNoIGIvc3JjcGtncy9pc3BjL3BhdGNo ZXMvbGx2bTEyLTAwMS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWYyZDNm NWE0MDllLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAw MS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLUZyb20gMWMwZjg5ZGNjYjc3 NGYyMTZjN2Y2ZTc2YTk5ZWU5MDdhMWU2NDFjYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZy b206IERtaXRyeSBCYWJva2luIDxkbWl0cnkueS5iYWJva2luQGludGVsLmNvbT4KLURhdGU6IFR1 ZSwgMjIgRGVjIDIwMjAgMTc6MDM6NTkgLTA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4IHRvIHdv cmsgd2l0aCBMTFZNIHRydW5rIGFmdGVyIGxsdm0vbGx2bS1wcm9qZWN0QDQxYzNiMjcxMwotCi0t LS0KLSBzcmMvY3R4LmNwcCB8IDE4ICsrKysrKysrKysrKy0tLS0tLQotIDEgZmlsZSBjaGFuZ2Vk LCAxMiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2N0 eC5jcHAgYi9zcmMvY3R4LmNwcAotaW5kZXggNmZiYjhiOWNmLi45NzdlOWQyMjIgMTAwNjQ0Ci0t LS0gYS9zcmMvY3R4LmNwcAotKysrIGIvc3JjL2N0eC5jcHAKLUBAIC0xNDczLDExICsxNDczLDE1 IEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6QWRkRGVidWdQb3MobGx2bTo6VmFsdWUgKnZh bHVlLCBjb25zdCBTb3VyY2VQb3MgKnBvcywKLSAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3Qg PSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpJbnN0cnVjdGlvbj4odmFsdWUpOwotICAgICBpZiAoaW5z dCAhPSBOVUxMICYmIG0tPmRpQnVpbGRlcikgewotICAgICAgICAgU291cmNlUG9zIHAgPSBwb3Mg PyAqcG9zIDogY3VycmVudFBvczsKLS0gICAgICAgIGlmIChwLmZpcnN0X2xpbmUgIT0gMCkKLSsg ICAgICAgIGlmIChwLmZpcnN0X2xpbmUgIT0gMCkgewotICAgICAgICAgICAgIC8vIElmIGZpcnN0 X2xpbmUgPT0gMCwgdGhlbiB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIHNldHRpbmcgdXAKLSAgICAg ICAgICAgICAvLyB0aGUgc3RhbmRhcmQgbGlicmFyeSBvciB0aGUgbGlrZTsgZG9uJ3QgYWRkIGRl YnVnIHBvc2l0aW9ucwotICAgICAgICAgICAgIC8vIGZvciB0aG9zZSBmdW5jdGlvbnMKLS0gICAg ICAgICAgICBpbnN0LT5zZXREZWJ1Z0xvYyhsbHZtOjpEZWJ1Z0xvYzo6Z2V0KHAuZmlyc3RfbGlu ZSwgcC5maXJzdF9jb2x1bW4sIHNjb3BlID8gc2NvcGUgOiBHZXRESVNjb3BlKCkpKTsKLSsgICAg ICAgICAgICBzY29wZSA9IHNjb3BlID8gc2NvcGUgOiBHZXRESVNjb3BlKCk7Ci0rICAgICAgICAg ICAgbGx2bTo6RGVidWdMb2MgZGlMb2MgPQotKyAgICAgICAgICAgICAgICBsbHZtOjpESUxvY2F0 aW9uOjpnZXQoc2NvcGUtPmdldENvbnRleHQoKSwgcC5maXJzdF9saW5lLCBwLmZpcnN0X2NvbHVt biwgc2NvcGUsIG51bGxwdHIsIGZhbHNlKTsKLSsgICAgICAgICAgICBpbnN0LT5zZXREZWJ1Z0xv YyhkaUxvYyk7Ci0rICAgICAgICB9Ci0gICAgIH0KLSB9Ci0gCi1AQCAtMTUxOCw5ICsxNTIyLDEw IEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6RW1pdFZhcmlhYmxlRGVidWdJbmZvKFN5bWJv bCAqc3ltKSB7Ci0gICAgIGxsdm06OkRJTG9jYWxWYXJpYWJsZSAqdmFyID0gbS0+ZGlCdWlsZGVy LT5jcmVhdGVBdXRvVmFyaWFibGUoCi0gICAgICAgICBzY29wZSwgc3ltLT5uYW1lLCBzeW0tPnBv cy5HZXRESUZpbGUoKSwgc3ltLT5wb3MuZmlyc3RfbGluZSwgZGlUeXBlLCB0cnVlIC8qIHByZXNl cnZlIHRocm91Z2ggb3B0cyAqLyk7Ci0gCi0rICAgIGxsdm06OkRlYnVnTG9jIGRpTG9jID0KLSsg ICAgICAgIGxsdm06OkRJTG9jYXRpb246OmdldChzY29wZS0+Z2V0Q29udGV4dCgpLCBzeW0tPnBv cy5maXJzdF9saW5lLCBzeW0tPnBvcy5maXJzdF9jb2x1bW4sIHNjb3BlLCBudWxscHRyLCBmYWxz ZSk7Ci0gICAgIGxsdm06Okluc3RydWN0aW9uICpkZWNsYXJlSW5zdCA9Ci0tICAgICAgICBtLT5k aUJ1aWxkZXItPmluc2VydERlY2xhcmUoc3ltLT5zdG9yYWdlUHRyLCB2YXIsIG0tPmRpQnVpbGRl ci0+Y3JlYXRlRXhwcmVzc2lvbigpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxsdm06OkRlYnVnTG9jOjpnZXQoc3ltLT5wb3MuZmlyc3RfbGluZSwgc3ltLT5wb3MuZmly c3RfY29sdW1uLCBzY29wZSksIGJibG9jayk7Ci0rICAgICAgICBtLT5kaUJ1aWxkZXItPmluc2Vy dERlY2xhcmUoc3ltLT5zdG9yYWdlUHRyLCB2YXIsIG0tPmRpQnVpbGRlci0+Y3JlYXRlRXhwcmVz c2lvbigpLCBkaUxvYywgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3MoZGVjbGFyZUluc3QsICZz eW0tPnBvcywgc2NvcGUpOwotIH0KLSAKLUBAIC0xNTM1LDkgKzE1NDAsMTAgQEAgdm9pZCBGdW5j dGlvbkVtaXRDb250ZXh0OjpFbWl0RnVuY3Rpb25QYXJhbWV0ZXJEZWJ1Z0luZm8oU3ltYm9sICpz eW0sIGludCBhcmdOdW0KLSAgICAgICAgIG0tPmRpQnVpbGRlci0+Y3JlYXRlUGFyYW1ldGVyVmFy aWFibGUoc2NvcGUsIHN5bS0+bmFtZSwgYXJnTnVtICsgMSwgc3ltLT5wb3MuR2V0RElGaWxlKCks IHN5bS0+cG9zLmZpcnN0X2xpbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRpVHlwZSwgdHJ1ZSAvKiBwcmVzZXJ2ZSB0aHJvdWdoIG9wdHMgKi8sIGZs YWdzKTsKLSAKLSsgICAgbGx2bTo6RGVidWdMb2MgZGlMb2MgPQotKyAgICAgICAgbGx2bTo6RElM b2NhdGlvbjo6Z2V0KHNjb3BlLT5nZXRDb250ZXh0KCksIHN5bS0+cG9zLmZpcnN0X2xpbmUsIHN5 bS0+cG9zLmZpcnN0X2NvbHVtbiwgc2NvcGUsIG51bGxwdHIsIGZhbHNlKTsKLSAgICAgbGx2bTo6 SW5zdHJ1Y3Rpb24gKmRlY2xhcmVJbnN0ID0KLS0gICAgICAgIG0tPmRpQnVpbGRlci0+aW5zZXJ0 RGVjbGFyZShzeW0tPnN0b3JhZ2VQdHIsIHZhciwgbS0+ZGlCdWlsZGVyLT5jcmVhdGVFeHByZXNz aW9uKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6RGVidWdM b2M6OmdldChzeW0tPnBvcy5maXJzdF9saW5lLCBzeW0tPnBvcy5maXJzdF9jb2x1bW4sIHNjb3Bl KSwgYmJsb2NrKTsKLSsgICAgICAgIG0tPmRpQnVpbGRlci0+aW5zZXJ0RGVjbGFyZShzeW0tPnN0 b3JhZ2VQdHIsIHZhciwgbS0+ZGlCdWlsZGVyLT5jcmVhdGVFeHByZXNzaW9uKCksIGRpTG9jLCBi YmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhkZWNsYXJlSW5zdCwgJnN5bS0+cG9zLCBzY29wZSk7 Ci0gfQotIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMi5wYXRj aCBiL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDIucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDA5MDNmMzBkYTEwZC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv aXNwYy9wYXRjaGVzL2xsdm0xMi0wMDIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw5MjMgKzAs MCBAQAotRnJvbSAwNTk3YTc5ZDA4NGMwMTQ3ODAxMzZkYTkwNmFmZTIxZDE1ZTk4MmNiIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogRGVlcGFrUmFqZW5kcmFrdW1hcmFuIDxkZWVwYWsu cmFqZW5kcmFrdW1hcmFuQGludGVsLmNvbT4KLURhdGU6IFR1ZSwgNSBKYW4gMjAyMSAxMzo1Mzoz MCAtMDgwMAotU3ViamVjdDogW1BBVENIXSBSZW1vdmUgTExWTSA4LjAgYW5kIExMVk0gOS4wLiAo IzE5NjYpCi0KLS0tLQotIC5hcHB2ZXlvci55bWwgICAgICAgICAgICAgICAgICAgICAgICB8ICAz IC0tCi0gLnRyYXZpcy55bWwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDcgLS0tCi0gQ01h a2VMaXN0cy50eHQgICAgICAgICAgICAgICAgICAgICAgIHwgMTIgKystLS0tCi0gc3JjL2FzdC5j cHAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQgLS0KLSBzcmMvY3R4LmNwcCAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAzMCAtLS0tLS0tLS0tLS0tCi0gc3JjL2dlbi9HbG9iYWxzTG9j YWxpemF0aW9uLmNwcCAgICAgIHwgIDQgLS0KLSBzcmMvaXNwYy5jcHAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAyMCAtLS0tLS0tLS0KLSBzcmMvaXNwYy5oICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMyArLQotIHNyYy9pc3BjX3ZlcnNpb24uaCAgICAgICAgICAgICAgICAgICB8ICA0 ICstCi0gc3JjL21haW4uY3BwICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTMgLS0tLS0tCi0g c3JjL21vZHVsZS5jcHAgICAgICAgICAgICAgICAgICAgICAgIHwgMjcgLS0tLS0tLS0tLS0tCi0g c3JjL21vZHVsZS5oICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgLQotIHNyYy9vcHQuY3Bw ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDY0ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSBzcmMvdHlwZS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMCArKy0tLQotIHRl c3RzL2xpdC10ZXN0cy8xNzcxLmlzcGMgICAgICAgICAgICB8ICAxIC0KLSB0ZXN0cy9saXQtdGVz dHMvMTg0NC5pc3BjICAgICAgICAgICAgfCAgMyAtLQotIHRlc3RzL2xpdC10ZXN0cy8xOTI2Lmlz cGMgICAgICAgICAgICB8ICAyIC0KLSB0ZXN0cy9saXQtdGVzdHMvY3B1c194ODYuaXNwYyAgICAg ICAgfCAgMiArCi0gdGVzdHMvbGl0LXRlc3RzL2NwdXNfeDg2X2xsdm0xMC5pc3BjIHwgMTEgLS0t LS0KLSB0ZXN0cy9saXQtdGVzdHMvbGl0LmNmZyAgICAgICAgICAgICAgfCAgNSAtLS0KLSAyMCBm aWxlcyBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCAyMTMgZGVsZXRpb25zKC0pCi0gZGVsZXRl IG1vZGUgMTAwNjQ0IHRlc3RzL2xpdC10ZXN0cy9jcHVzX3g4Nl9sbHZtMTAuaXNwYwotCi1kaWZm IC0tZ2l0IGEvLmFwcHZleW9yLnltbCBiLy5hcHB2ZXlvci55bWwKLWluZGV4IDQ1MWE3YjNlMC4u Nzk0NWNjYTJhIDEwMDY0NAotLS0tIGEvLmFwcHZleW9yLnltbAotKysrIGIvLmFwcHZleW9yLnlt bAotQEAgLTQxLDggKzQxLDYgQEAgZW52aXJvbm1lbnQ6Ci0gICAgICAgTExWTV9WRVJTSU9OOiBs YXRlc3QKLSAgICAgLSBBUFBWRVlPUl9CVUlMRF9XT1JLRVJfSU1BR0U6IFZpc3VhbCBTdHVkaW8g MjAxOQotICAgICAgIExMVk1fVkVSU0lPTjogMTAuMAotLSAgICAtIEFQUFZFWU9SX0JVSUxEX1dP UktFUl9JTUFHRTogVmlzdWFsIFN0dWRpbyAyMDE5Ci0tICAgICAgTExWTV9WRVJTSU9OOiA5LjAK LSAKLSBmb3I6Ci0gLQotQEAgLTYyLDcgKzYwLDYgQEAgZm9yOgotICAgICAgICAgaWYgIiVBUFBW RVlPUl9CVUlMRF9XT1JLRVJfSU1BR0UlIj09IlZpc3VhbCBTdHVkaW8gMjAxOSIgKCAoc2V0IGdl bmVyYXRvcj0iVmlzdWFsIFN0dWRpbyAxNiIpICYgKHNldCB2c3ZlcnNpb249MjAxOSkpCi0gICAg ICAgICBzZXQgTExWTV9UQVI9bGx2bS0xMS4wLjAtd2luLnZzMjAxOS1SZWxlYXNlK0Fzc2VydHMt eDg2LmFybS53YXNtLjd6Ci0gICAgICAgICBpZiAiJUxMVk1fVkVSU0lPTiUiPT0iMTAuMCIgKHNl dCBMTFZNX1RBUj1sbHZtLTEwLjAuMS13aW4udnMyMDE5LVJlbGVhc2UrQXNzZXJ0cy14ODYuYXJt Lndhc20uemlwKQotLSAgICAgICAgaWYgIiVMTFZNX1ZFUlNJT04lIj09IjkuMCIgKHNldCBMTFZN X1RBUj1sbHZtLTkuMC4xLXdpbi52czIwMTctUmVsZWFzZStBc3NlcnRzLXg4Ni5hcm0ud2FzbS56 aXApCi0gICBpbnN0YWxsOgotICAgICAtIHBzOiBjaG9jbyBpbnN0YWxsIC0tbm8tcHJvZ3Jlc3Mg d2luZmxleGJpc29uMyB3Z2V0IDd6aXAKLSAgICAgLSBjbWQ6IHwtCi1kaWZmIC0tZ2l0IGEvLnRy YXZpcy55bWwgYi8udHJhdmlzLnltbAotaW5kZXggMmU5NjAxN2E2Li4zYTZiODUyNjQgMTAwNjQ0 Ci0tLS0gYS8udHJhdmlzLnltbAotKysrIGIvLnRyYXZpcy55bWwKLUBAIC0xMDgsMTMgKzEwOCw2 IEBAIGpvYnM6Ci0gICAgICAgICAtIExMVk1fVEFSPWxsdm0tMTAuMC4xLXVidW50dTE2LjA0LVJl bGVhc2UrQXNzZXJ0cy14ODYuYXJtLndhc20udGFyLnh6Ci0gICAgICAgICAtIExMVk1fUkVQTz1o dHRwczovL2dpdGh1Yi5jb20vZGJhYm9raW4vbGx2bS1wcm9qZWN0Ci0gICAgICAgICAtIElTUENf SE9NRT0kVFJBVklTX0JVSUxEX0RJUgotLSAgICAjIExMVk0gOS4wICsgVWJ1bnR1IDE2LjA0OiBi dWlsZCwgbGl0IHRlc3RzLCBleGFtcGxlcyAoYnVpbGQgKyBydW4pLCBiZW5jaG1hcmtzIChidWls ZCArIHRyaWFsIHJ1bikKLS0gICAgLSA8PDogKm15X3RhZwotLSAgICAgIGVudjoKLS0gICAgICAg IC0gTExWTV9WRVJTSU9OPTkuMCBPUz1VYnVudHUxNi4wNAotLSAgICAgICAgLSBMTFZNX1RBUj1s bHZtLTkuMC4xLXVidW50dTE2LjA0LVJlbGVhc2UrQXNzZXJ0cy14ODYuYXJtLndhc20udGFyLnh6 Ci0tICAgICAgICAtIExMVk1fUkVQTz1odHRwczovL2dpdGh1Yi5jb20vZGJhYm9raW4vbGx2bS1w cm9qZWN0Ci0tICAgICAgICAtIElTUENfSE9NRT0kVFJBVklTX0JVSUxEX0RJUgotICAgICAjIFdB U00gZW5hYmxlZCBidWlsZAotICAgICAjIExMVk0gMTEuMCArIFVidW50dSAxNi4wNDogYnVpbGQs IGxpdCB0ZXN0cywgZXhhbXBsZXMgKGJ1aWxkKSwgYmVuY2htYXJrcyAoYnVpbGQgKyB0cmlhbCBy dW4pCi0gICAgIC0gPDw6ICpteV90YWcKLWRpZmYgLS1naXQgYS9DTWFrZUxpc3RzLnR4dCBiL0NN YWtlTGlzdHMudHh0Ci1pbmRleCA1ZmE4NjNmY2YuLmE2YjNlZDI1MSAxMDA2NDQKLS0tLSBhL0NN YWtlTGlzdHMudHh0Ci0rKysgYi9DTWFrZUxpc3RzLnR4dAotQEAgLTI0MSwxMCArMjQxLDggQEAg aWYgKFg4Nl9FTkFCTEVEKQotICAgICAgICAgYXZ4Mi1pOHgzMiBhdngyLWkxNngxNgotICAgICAg ICAgYXZ4Mi1pMzJ4NCBhdngyLWkzMng4IGF2eDItaTMyeDE2IGF2eDItaTY0eDQKLSAgICAgICAg IGF2eDUxMmtubC1pMzJ4MTYKLS0gICAgICAgIGF2eDUxMnNreC1pMzJ4MTYgYXZ4NTEyc2t4LWkz Mng4KQotLSAgICBpZiAoJHtMTFZNX1ZFUlNJT05fTlVNQkVSfSBWRVJTSU9OX0dSRUFURVJfRVFV QUwgIjEwLjAuMCIpCi0tICAgICAgICBsaXN0KEFQUEVORCBJU1BDX1RBUkdFVFMgYXZ4NTEyc2t4 LWk4eDY0IGF2eDUxMnNreC1pMTZ4MzIpCi0tICAgIGVuZGlmKCkKLSsgICAgICAgIGF2eDUxMnNr eC1pMzJ4MTYgYXZ4NTEyc2t4LWkzMng4Ci0rICAgICAgICBhdng1MTJza3gtaTh4NjQgYXZ4NTEy c2t4LWkxNngzMikKLSBlbmRpZigpCi0gaWYgKEFSTV9FTkFCTEVEKQotICAgICBsaXN0KEFQUEVO RCBJU1BDX1RBUkdFVFMgbmVvbi1pOHgxNiBuZW9uLWkxNng4IG5lb24taTMyeDQgbmVvbi1pMzJ4 OCkKLUBAIC0yNTksMTEgKzI1Nyw3IEBAIGlmIChXQVNNX0VOQUJMRUQpCi0gZW5kaWYoKQotIAot IHNldChDTEFOR19MSUJSQVJZX0xJU1QgY2xhbmdGcm9udGVuZCBjbGFuZ0RyaXZlciBjbGFuZ1Nl cmlhbGl6YXRpb24gY2xhbmdQYXJzZSBjbGFuZ1NlbWEgY2xhbmdBbmFseXNpcyBjbGFuZ0FTVCBj bGFuZ0Jhc2ljIGNsYW5nRWRpdCBjbGFuZ0xleCkKLS1zZXQoTExWTV9DT01QT05FTlRTIGVuZ2lu ZSBpcG8gYml0cmVhZGVyIGJpdHdyaXRlciBpbnN0cnVtZW50YXRpb24gbGlua2VyIG9wdGlvbikK LS0KLS1pZiAoJHtMTFZNX1ZFUlNJT05fTlVNQkVSfSBWRVJTSU9OX0dSRUFURVJfRVFVQUwgIjEw LjAuMCIpCi0tICAgIGxpc3QoQVBQRU5EIExMVk1fQ09NUE9ORU5UUyBmcm9udGVuZG9wZW5tcCkK LS1lbmRpZigpCi0rc2V0KExMVk1fQ09NUE9ORU5UUyBlbmdpbmUgaXBvIGJpdHJlYWRlciBiaXR3 cml0ZXIgaW5zdHJ1bWVudGF0aW9uIGxpbmtlciBvcHRpb24gZnJvbnRlbmRvcGVubXApCi0gCi0g aWYgKFg4Nl9FTkFCTEVEKQotICAgICBsaXN0KEFQUEVORCBMTFZNX0NPTVBPTkVOVFMgeDg2KQot ZGlmZiAtLWdpdCBhL3NyYy9hc3QuY3BwIGIvc3JjL2FzdC5jcHAKLWluZGV4IDIwZjc1YTI5Yy4u NWE0M2M0ODU0IDEwMDY0NAotLS0tIGEvc3JjL2FzdC5jcHAKLSsrKyBiL3NyYy9hc3QuY3BwCi1A QCAtNDQsOSArNDQsNyBAQAotICNpbmNsdWRlICJzeW0uaCIKLSAjaW5jbHVkZSAidXRpbC5oIgot IAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICNpbmNsdWRlIDxs bHZtL1N1cHBvcnQvVGltZVByb2ZpbGVyLmg+Ci0tI2VuZGlmCi0gLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ci0gLy8gQVNUTm9kZQotIAotQEAgLTYyLDkgKzYwLDcgQEAgdm9pZCBBU1Q6OkFkZEZ1bmN0aW9u KFN5bWJvbCAqc3ltLCBTdG10ICpjb2RlKSB7Ci0gfQotIAotIHZvaWQgQVNUOjpHZW5lcmF0ZUlS KCkgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZt OjpUaW1lVHJhY2VTY29wZSBUaW1lU2NvcGUoIkdlbmVyYXRlSVIiKTsKLS0jZW5kaWYKLSAgICAg Zm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBmdW5jdGlvbnMuc2l6ZSgpOyArK2kpCi0gICAg ICAgICBmdW5jdGlvbnNbaV0tPkdlbmVyYXRlSVIoKTsKLSB9Ci1kaWZmIC0tZ2l0IGEvc3JjL2N0 eC5jcHAgYi9zcmMvY3R4LmNwcAotaW5kZXggOTc3ZTlkMjIyLi40MmM0ZWEwOWQgMTAwNjQ0Ci0t LS0gYS9zcmMvY3R4LmNwcAotKysrIGIvc3JjL2N0eC5jcHAKLUBAIC0zMDksMjEgKzMwOSwxMyBA QCBGdW5jdGlvbkVtaXRDb250ZXh0OjpGdW5jdGlvbkVtaXRDb250ZXh0KEZ1bmN0aW9uICpmdW5j LCBTeW1ib2wgKmZ1blN5bSwgbGx2bTo6RgotICAgICAgICAgICAgIGNoYXIgYnVmWzI1Nl07Ci0g ICAgICAgICAgICAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIl9fb2ZmX2FsbF9vbl9tYXNr XyVzIiwgZy0+dGFyZ2V0LT5HZXRJU0FTdHJpbmcoKSk7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJT SU9OIDw9IElTUENfTExWTV84XzAKLS0gICAgICAgICAgICBsbHZtOjpDb25zdGFudCAqb2ZmRnVu YyA9IG0tPm1vZHVsZS0+Z2V0T3JJbnNlcnRGdW5jdGlvbihidWYsIExMVk1UeXBlczo6Vm9pZFR5 cGUpOwotLSNlbHNlIC8vIExMVk0gOS4wKwotICAgICAgICAgICAgIGxsdm06OkZ1bmN0aW9uQ2Fs bGVlIG9mZkZ1bmNDYWxsZWUgPSBtLT5tb2R1bGUtPmdldE9ySW5zZXJ0RnVuY3Rpb24oYnVmLCBM TFZNVHlwZXM6OlZvaWRUeXBlKTsKLSAgICAgICAgICAgICBsbHZtOjpDb25zdGFudCAqb2ZmRnVu YyA9IGxsdm06OmNhc3Q8bGx2bTo6Q29uc3RhbnQ+KG9mZkZ1bmNDYWxsZWUuZ2V0Q2FsbGVlKCkp OwotLSNlbmRpZgotICAgICAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBsbHZtOjppc2E8 bGx2bTo6RnVuY3Rpb24+KG9mZkZ1bmMpKTsKLSAgICAgICAgICAgICBsbHZtOjpCYXNpY0Jsb2Nr ICpvZmZCQiA9IGxsdm06OkJhc2ljQmxvY2s6OkNyZWF0ZSgqZy0+Y3R4LCAiZW50cnkiLCAobGx2 bTo6RnVuY3Rpb24gKilvZmZGdW5jLCAwKTsKLSAgICAgICAgICAgICBsbHZtOjpTdG9yZUluc3Qg Kmluc3QgPSBuZXcgbGx2bTo6U3RvcmVJbnN0KExMVk1NYXNrQWxsT2ZmLCBnbG9iYWxBbGxPbk1h c2tQdHIsIG9mZkJCKTsKLSAgICAgICAgICAgICBpZiAoZy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9y eSkgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgICAgICAg ICAgICAgIGluc3QtPnNldEFsaWdubWVudChnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdu bWVudCgpKTsKLS0jZWxzZSAvLyBMTFZNIDEwLjArCi0gICAgICAgICAgICAgICAgIGluc3QtPnNl dEFsaWdubWVudChsbHZtOjpNYXliZUFsaWduKGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxp Z25tZW50KCkpLnZhbHVlT3JPbmUoKSk7Ci0tI2VuZGlmCi0gICAgICAgICAgICAgfQotICAgICAg ICAgICAgIGxsdm06OlJldHVybkluc3Q6OkNyZWF0ZSgqZy0+Y3R4LCBvZmZCQik7Ci0gICAgICAg ICB9Ci1AQCAtMjI4OCwxMSArMjI4MCw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250 ZXh0OjpMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBUeXBlICp0eXBlLCBjCi0gI2Vu ZGlmCi0gCi0gICAgIGlmIChnLT5vcHQuZm9yY2VBbGlnbmVkTWVtb3J5ICYmIGxsdm06OmR5bl9j YXN0PGxsdm06OlZlY3RvclR5cGU+KHB0LT5nZXRFbGVtZW50VHlwZSgpKSkgewotLSNpZiBJU1BD X0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgICAgICBpbnN0LT5zZXRBbGlnbm1l bnQoZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSk7Ci0tI2Vsc2UgLy8gTExW TSAxMC4wKwotICAgICAgICAgaW5zdC0+c2V0QWxpZ25tZW50KGxsdm06Ok1heWJlQWxpZ24oZy0+ dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSkudmFsdWVPck9uZSgpKTsKLS0jZW5k aWYKLSAgICAgfQotIAotICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLUBAIC0yNDMxLDExICsyNDE5 LDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZh bHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLAotICAgICAgICAgICAgICAgICAvLyB2cyB0aGUg cHJvcGVyIGFsaWdubWVudCBpbiBwcmFjdGljZS4pCi0gICAgICAgICAgICAgICAgIGludCBhbGln biA9IDE7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAg ICAgICAgICAgICAgaW5zdC0+c2V0QWxpZ25tZW50KGFsaWduKTsKLS0jZWxzZSAvLyBMTFZNIDEw LjArCi0gICAgICAgICAgICAgICAgIGluc3QtPnNldEFsaWdubWVudChsbHZtOjpNYXliZUFsaWdu KGFsaWduKS52YWx1ZU9yT25lKCkpOwotLSNlbmRpZgotICAgICAgICAgICAgIH0KLSAKLSAgICAg ICAgICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLUBAIC0yNjQ5LDExICsyNjMzLDcgQEAgbGx2bTo6 VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFsbG9jYUluc3QobGx2bTo6VHlwZSAqbGx2bVR5 cGUsIGNvbnN0IGNoYXIgKm4KLSAgICAgICAgIGFsaWduID0gZy0+dGFyZ2V0LT5nZXROYXRpdmVW ZWN0b3JBbGlnbm1lbnQoKTsKLSAKLSAgICAgaWYgKGFsaWduICE9IDApIHsKLS0jaWYgSVNQQ19M TFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAgICAgICAgaW5zdC0+c2V0QWxpZ25tZW50 KGFsaWduKTsKLS0jZWxzZSAvLyBMTFZNIDEwLjArCi0gICAgICAgICBpbnN0LT5zZXRBbGlnbm1l bnQobGx2bTo6TWF5YmVBbGlnbihhbGlnbikudmFsdWVPck9uZSgpKTsKLS0jZW5kaWYKLSAgICAg fQotICAgICAvLyBEb24ndCBhZGQgZGVidWdnaW5nIGluZm8gdG8gYWxsb2NhIGluc3RydWN0aW9u cwotICAgICByZXR1cm4gaW5zdDsKLUBAIC0yOTI2LDExICsyOTA2LDcgQEAgdm9pZCBGdW5jdGlv bkVtaXRDb250ZXh0OjpTdG9yZUluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpWYWx1ZSAq cHRyLCBjb25zdAotICAgICBsbHZtOjpTdG9yZUluc3QgKmluc3QgPSBuZXcgbGx2bTo6U3RvcmVJ bnN0KHZhbHVlLCBwdHIsIGJibG9jayk7Ci0gCi0gICAgIGlmIChnLT5vcHQuZm9yY2VBbGlnbmVk TWVtb3J5ICYmIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHB0LT5nZXRFbGVtZW50 VHlwZSgpKSkgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAg ICAgICBpbnN0LT5zZXRBbGlnbm1lbnQoZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1l bnQoKSk7Ci0tI2Vsc2UgLy8gTExWTSAxMC4wKwotICAgICAgICAgaW5zdC0+c2V0QWxpZ25tZW50 KGxsdm06Ok1heWJlQWxpZ24oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSku dmFsdWVPck9uZSgpKTsKLS0jZW5kaWYKLSAgICAgfQotIAotICNpZmRlZiBJU1BDX0dFTlhfRU5B QkxFRAotQEAgLTMwMjUsMTYgKzMwMDEsMTAgQEAgdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpN ZW1jcHlJbnN0KGxsdm06OlZhbHVlICpkZXN0LCBsbHZtOjpWYWx1ZSAqc3JjLCBsbHZtOjoKLSAg ICAgfQotICAgICBpZiAoYWxpZ24gPT0gTlVMTCkKLSAgICAgICAgIGFsaWduID0gTExWTUludDMy KDEpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOF8wCi0tICAgIGxsdm06 OkNvbnN0YW50ICptY0Z1bmMgPQotLSAgICAgICAgbS0+bW9kdWxlLT5nZXRPckluc2VydEZ1bmN0 aW9uKCJsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0IiwgTExWTVR5cGVzOjpWb2lkVHlwZSwgTExW TVR5cGVzOjpWb2lkUG9pbnRlclR5cGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTExWTVR5cGVzOjpWb2lkUG9pbnRlclR5cGUsIExMVk1UeXBlczo6SW50NjRUeXBl LCBMTFZNVHlwZXM6OkJvb2xUeXBlKTsKLS0jZWxzZSAvLyBMTFZNIDkuMCsKLSAgICAgbGx2bTo6 RnVuY3Rpb25DYWxsZWUgbWNGdW5jQ2FsbGVlID0KLSAgICAgICAgIG0tPm1vZHVsZS0+Z2V0T3JJ bnNlcnRGdW5jdGlvbigibGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NCIsIExMVk1UeXBlczo6Vm9p ZFR5cGUsIExMVk1UeXBlczo6Vm9pZFBvaW50ZXJUeXBlLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExMVk1UeXBlczo6Vm9pZFBvaW50ZXJUeXBlLCBMTFZNVHlwZXM6 OkludDY0VHlwZSwgTExWTVR5cGVzOjpCb29sVHlwZSk7Ci0gICAgIGxsdm06OkNvbnN0YW50ICpt Y0Z1bmMgPSBsbHZtOjpjYXN0PGxsdm06OkNvbnN0YW50PihtY0Z1bmNDYWxsZWUuZ2V0Q2FsbGVl KCkpOwotLSNlbmRpZgotICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbWNGdW5jICE9IE5VTEwp OwotICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbGx2bTo6aXNhPGxsdm06OkZ1bmN0aW9uPiht Y0Z1bmMpKTsKLSAKLWRpZmYgLS1naXQgYS9zcmMvZ2VuL0dsb2JhbHNMb2NhbGl6YXRpb24uY3Bw IGIvc3JjL2dlbi9HbG9iYWxzTG9jYWxpemF0aW9uLmNwcAotaW5kZXggMTkzYTY2Mjg5Li5hMTc2 ZTk0NjIgMTAwNjQ0Ci0tLS0gYS9zcmMvZ2VuL0dsb2JhbHNMb2NhbGl6YXRpb24uY3BwCi0rKysg Yi9zcmMvZ2VuL0dsb2JhbHNMb2NhbGl6YXRpb24uY3BwCi1AQCAtNDcwLDExICs0NzAsNyBAQCB2 b2lkIEdsb2JhbHNMb2NhbGl6YXRpb246OkxvY2FsaXplR2xvYmFscyhMb2NhbGl6YXRpb25JbmZv ICZMSSkgewotICAgICAgICAgSW5zdHJ1Y3Rpb24gJkZpcnN0SSA9ICpGbi0+Z2V0RW50cnlCbG9j aygpLmJlZ2luKCk7Ci0gICAgICAgICBUeXBlICpFbGVtVHkgPSBHVi0+Z2V0VHlwZSgpLT5nZXRF bGVtZW50VHlwZSgpOwotICAgICAgICAgQWxsb2NhSW5zdCAqQWxsb2NhID0gbmV3IEFsbG9jYUlu c3QoRWxlbVR5LCAwLCBHVi0+Z2V0TmFtZSgpICsgIi5sb2NhbCIsICZGaXJzdEkpOwotLSNpZiBJ U1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgICAgICBBbGxvY2EtPnNldEFs aWdubWVudChHVi0+Z2V0QWxpZ25tZW50KCkpOwotLSNlbHNlIC8vIExMVk0gMTAuMCsKLSAgICAg ICAgIEFsbG9jYS0+c2V0QWxpZ25tZW50KGxsdm06Ok1heWJlQWxpZ24oR1YtPmdldEFsaWdubWVu dCgpKSk7Ci0tI2VuZGlmCi0gICAgICAgICBpZiAoIWlzYTxVbmRlZlZhbHVlPihHVi0+Z2V0SW5p dGlhbGl6ZXIoKSkpCi0gICAgICAgICAgICAgbmV3IFN0b3JlSW5zdChHVi0+Z2V0SW5pdGlhbGl6 ZXIoKSwgQWxsb2NhLCAmRmlyc3RJKTsKLSAKLWRpZmYgLS1naXQgYS9zcmMvaXNwYy5jcHAgYi9z cmMvaXNwYy5jcHAKLWluZGV4IGUyZDBmMjA2ZS4uZmFjNTIzM2Y3IDEwMDY0NAotLS0tIGEvc3Jj L2lzcGMuY3BwCi0rKysgYi9zcmMvaXNwYy5jcHAKLUBAIC0yNzIsOSArMjcyLDcgQEAgdHlwZWRl ZiBlbnVtIHsKLSAgICAgQ1BVX1NpbHZlcm1vbnQsCi0gCi0gICAgIENQVV9JQ1gsCi0tI2lmIElT UENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIENQVV9UR0wsCi0tI2VuZGlm Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMl8wCi0gICAgIENQVV9BREws Ci0gICAgIENQVV9TUFIsCi1AQCAtMzY1LDEwICszNjMsOCBAQCBjbGFzcyBBbGxDUFVzIHsKLSAK LSAgICAgICAgIG5hbWVzW0NQVV9JQ1hdLnB1c2hfYmFjaygiaWNlbGFrZS1zZXJ2ZXIiKTsKLSAg ICAgICAgIG5hbWVzW0NQVV9JQ1hdLnB1c2hfYmFjaygiaWN4Iik7Ci0tI2lmIElTUENfTExWTV9W RVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgICAgICBuYW1lc1tDUFVfVEdMXS5wdXNoX2Jh Y2soInRpZ2VybGFrZSIpOwotICAgICAgICAgbmFtZXNbQ1BVX1RHTF0ucHVzaF9iYWNrKCJ0Z2wi KTsKLS0jZW5kaWYKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEyXzAKLSAg ICAgICAgIG5hbWVzW0NQVV9BRExdLnB1c2hfYmFjaygiYWxkZXJsYWtlIik7Ci0gICAgICAgICBu YW1lc1tDUFVfQURMXS5wdXNoX2JhY2soImFkbCIpOwotQEAgLTQxMSwxMSArNDA3LDkgQEAgY2xh c3MgQWxsQ1BVcyB7Ci0gICAgICAgICBjb21wYXRbQ1BVX0FETF0gPSBTZXQoQ1BVX0FETCwgQ1BV X3g4Nl82NCwgQ1BVX0Jvbm5lbGwsIENQVV9QZW5yeW4sIENQVV9Db3JlMiwgQ1BVX05laGFsZW0s IENQVV9TaWx2ZXJtb250LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENQVV9TYW5k eUJyaWRnZSwgQ1BVX0l2eUJyaWRnZSwgQ1BVX0hhc3dlbGwsIENQVV9Ccm9hZHdlbGwsIENQVV9O b25lKTsKLSAjZW5kaWYKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAK LSAgICAgICAgIGNvbXBhdFtDUFVfVEdMXSA9Ci0gICAgICAgICAgICAgU2V0KENQVV9UR0wsIENQ VV94ODZfNjQsIENQVV9Cb25uZWxsLCBDUFVfUGVucnluLCBDUFVfQ29yZTIsIENQVV9OZWhhbGVt LCBDUFVfU2lsdmVybW9udCwgQ1BVX1NhbmR5QnJpZGdlLAotICAgICAgICAgICAgICAgICBDUFVf SXZ5QnJpZGdlLCBDUFVfSGFzd2VsbCwgQ1BVX0Jyb2Fkd2VsbCwgQ1BVX1NLWCwgQ1BVX0lDTCwg Q1BVX0lDWCwgQ1BVX05vbmUpOwotLSNlbmRpZgotICAgICAgICAgY29tcGF0W0NQVV9JQ1hdID0g U2V0KENQVV9JQ1gsIENQVV94ODZfNjQsIENQVV9Cb25uZWxsLCBDUFVfUGVucnluLCBDUFVfQ29y ZTIsIENQVV9OZWhhbGVtLCBDUFVfU2lsdmVybW9udCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDUFVfU2FuZHlCcmlkZ2UsIENQVV9JdnlCcmlkZ2UsIENQVV9IYXN3ZWxsLCBDUFVf QnJvYWR3ZWxsLCBDUFVfU0tYLCBDUFVfSUNMLCBDUFVfTm9uZSk7Ci0gCi1AQCAtNTU2LDkgKzU1 MCw3IEBAIFRhcmdldDo6VGFyZ2V0KEFyY2ggYXJjaCwgY29uc3QgY2hhciAqY3B1LCBJU1BDVGFy Z2V0IGlzcGNfdGFyZ2V0LCBib29sIHBpYywgYm9vCi0gI2lmIElTUENfTExWTV9WRVJTSU9OID49 IElTUENfTExWTV8xMl8wCi0gICAgICAgICBjYXNlIENQVV9TUFI6Ci0gI2VuZGlmCi0tI2lmIElT UENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgICAgICBjYXNlIENQVV9UR0w6 Ci0tI2VuZGlmCi0gICAgICAgICBjYXNlIENQVV9JQ1g6Ci0gICAgICAgICBjYXNlIENQVV9JQ0w6 Ci0gICAgICAgICBjYXNlIENQVV9TS1g6Ci1AQCAtOTE2LDcgKzkwOCw2IEBAIFRhcmdldDo6VGFy Z2V0KEFyY2ggYXJjaCwgY29uc3QgY2hhciAqY3B1LCBJU1BDVGFyZ2V0IGlzcGNfdGFyZ2V0LCBi b29sIHBpYywgYm9vCi0gICAgICAgICB9Ci0gICAgICAgICBicmVhazsKLSAgICAgY2FzZSBJU1BD VGFyZ2V0Ojphdng1MTJza3hfaTh4NjQ6Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENf TExWTV8xMF8wIC8vIExMVk0gMTAuMCsKLSAgICAgICAgIC8vIFRoaXMgdGFyZ2V0IGlzIGVuYWJs ZWQgb25seSBmb3IgTExWTSAxMC4wIGFuZCBsYXRlcgotICAgICAgICAgLy8gYmVjYXVzZSBMTFZN IHJlcXVpcmVzIGEgbnVtYmVyIG9mIGZpeGVzLCB3aGljaCBhcmUKLSAgICAgICAgIC8vIGNvbW1p dHRlZCB0byBMTFZNIDExLjAgYW5kIGNhbiBiZSBhcHBsaWVkIHRvIDEwLjAsIGJ1dCBub3QKLUBA IC05MzcsMTIgKzkyOCw3IEBAIFRhcmdldDo6VGFyZ2V0KEFyY2ggYXJjaCwgY29uc3QgY2hhciAq Y3B1LCBJU1BDVGFyZ2V0IGlzcGNfdGFyZ2V0LCBib29sIHBpYywgYm9vCi0gICAgICAgICB0aGlz LT5tX2hhc1ZlY1ByZWZldGNoID0gZmFsc2U7Ci0gICAgICAgICBDUFVmcm9tSVNBID0gQ1BVX1NL WDsKLSAgICAgICAgIGJyZWFrOwotLSNlbHNlCi0tICAgICAgICB1bnN1cHBvcnRlZF90YXJnZXQg PSB0cnVlOwotLSAgICAgICAgYnJlYWs7Ci0tI2VuZGlmCi0gICAgIGNhc2UgSVNQQ1RhcmdldDo6 YXZ4NTEyc2t4X2kxNngzMjoKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEw XzAgLy8gTExWTSAxMC4wKwotICAgICAgICAgLy8gVGhpcyB0YXJnZXQgaXMgZW5hYmxlZCBvbmx5 IGZvciBMTFZNIDEwLjAgYW5kIGxhdGVyCi0gICAgICAgICAvLyBiZWNhdXNlIExMVk0gcmVxdWly ZXMgYSBudW1iZXIgb2YgZml4ZXMsIHdoaWNoIGFyZQotICAgICAgICAgLy8gY29tbWl0dGVkIHRv IExMVk0gMTEuMCBhbmQgY2FuIGJlIGFwcGxpZWQgdG8gMTAuMCwgYnV0IG5vdAotQEAgLTk2Mywx MCArOTQ5LDYgQEAgVGFyZ2V0OjpUYXJnZXQoQXJjaCBhcmNoLCBjb25zdCBjaGFyICpjcHUsIElT UENUYXJnZXQgaXNwY190YXJnZXQsIGJvb2wgcGljLCBib28KLSAgICAgICAgIHRoaXMtPm1faGFz VmVjUHJlZmV0Y2ggPSBmYWxzZTsKLSAgICAgICAgIENQVWZyb21JU0EgPSBDUFVfU0tYOwotICAg ICAgICAgYnJlYWs7Ci0tI2Vsc2UKLS0gICAgICAgIHVuc3VwcG9ydGVkX3RhcmdldCA9IHRydWU7 Ci0tICAgICAgICBicmVhazsKLS0jZW5kaWYKLSAjaWZkZWYgSVNQQ19BUk1fRU5BQkxFRAotICAg ICBjYXNlIElTUENUYXJnZXQ6Om5lb25faTh4MTY6Ci0gICAgICAgICB0aGlzLT5tX2lzYSA9IFRh cmdldDo6TkVPTjsKLUBAIC0xNjYyLDExICsxNjQ0LDkgQEAgR2xvYmFsczo6R2xvYmFscygpIHsK LSAgICAgaXNNdWx0aVRhcmdldENvbXBpbGF0aW9uID0gZmFsc2U7Ci0gICAgIGVycm9yTGltaXQg PSAtMTsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAg ZW5hYmxlVGltZVRyYWNlID0gZmFsc2U7Ci0gICAgIC8vIHNldCBkZWZhdWx0IGdyYW51bGFyaXR5 IHRvIDUwMC4KLSAgICAgdGltZVRyYWNlR3JhbnVsYXJpdHkgPSA1MDA7Ci0tI2VuZGlmCi0gICAg IHRhcmdldCA9IE5VTEw7Ci0gICAgIGN0eCA9IG5ldyBsbHZtOjpMTFZNQ29udGV4dDsKLSAKLWRp ZmYgLS1naXQgYS9zcmMvaXNwYy5oIGIvc3JjL2lzcGMuaAotaW5kZXggZTI1ZDg4MzBlLi5kZTM1 N2EyMWMgMTAwNjQ0Ci0tLS0gYS9zcmMvaXNwYy5oCi0rKysgYi9zcmMvaXNwYy5oCi1AQCAtNjk1 LDEzICs2OTUsMTIgQEAgc3RydWN0IEdsb2JhbHMgewotIAotICAgICAvKiBOdW1iZXIgb2YgZXJy b3JzIHRvIHNob3cgaW4gSVNQQy4gKi8KLSAgICAgaW50IGVycm9yTGltaXQ7Ci0tI2lmIElTUENf TExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0rCi0gICAgIC8qIFdoZW4gdHJ1ZSwgZW5h YmxlIGNvbXBpbGUgdGltZSB0cmFjaW5nLiAqLwotICAgICBib29sIGVuYWJsZVRpbWVUcmFjZTsK LSAKLSAgICAgLyogV2hlbiBjb21waWxlIHRpbWUgdHJhY2luZyBpcyBlbmFibGVkLCBzZXQgdGlt ZSBncmFudWxhcml0eS4gKi8KLSAgICAgaW50IHRpbWVUcmFjZUdyYW51bGFyaXR5OwotLSNlbmRp ZgotIH07Ci0gCi0gZW51bSB7Ci1kaWZmIC0tZ2l0IGEvc3JjL2lzcGNfdmVyc2lvbi5oIGIvc3Jj L2lzcGNfdmVyc2lvbi5oCi1pbmRleCBkNzgxMzQ3ZmQuLjQzNGIyZDY3OCAxMDA2NDQKLS0tLSBh L3NyYy9pc3BjX3ZlcnNpb24uaAotKysrIGIvc3JjL2lzcGNfdmVyc2lvbi5oCi1AQCAtNDQsMTMg KzQ0LDExIEBACi0gCi0gI2RlZmluZSBJU1BDX0xMVk1fVkVSU0lPTiAoTExWTV9WRVJTSU9OX01B Sk9SICogMTAwMDAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgKiAxMDApCi0gCi0tI2RlZmluZSBJU1BD X0xMVk1fOF8wIDgwMDAwCi0tI2RlZmluZSBJU1BDX0xMVk1fOV8wIDkwMDAwCi0gI2RlZmluZSBJ U1BDX0xMVk1fMTBfMCAxMDAwMDAKLSAjZGVmaW5lIElTUENfTExWTV8xMV8wIDExMDAwMAotICNk ZWZpbmUgSVNQQ19MTFZNXzEyXzAgMTIwMDAwCi0gCi0tI2RlZmluZSBPTERFU1RfU1VQUE9SVEVE X0xMVk0gSVNQQ19MTFZNXzhfMAotKyNkZWZpbmUgT0xERVNUX1NVUFBPUlRFRF9MTFZNIElTUENf TExWTV8xMF8wCi0gI2RlZmluZSBMQVRFU1RfU1VQUE9SVEVEX0xMVk0gSVNQQ19MTFZNXzEyXzAK LSAKLSAjaWZkZWYgX19pc3BjX194c3RyCi1kaWZmIC0tZ2l0IGEvc3JjL21haW4uY3BwIGIvc3Jj L21haW4uY3BwCi1pbmRleCA4ZjY0MzMwY2MuLjVjOTIwZWFiYyAxMDA2NDQKLS0tLSBhL3NyYy9t YWluLmNwcAotKysrIGIvc3JjL21haW4uY3BwCi1AQCAtNTUsOSArNTUsNyBAQAotICNpbmNsdWRl IDxsbHZtL1N1cHBvcnQvU2lnbmFscy5oPgotICNpbmNsdWRlIDxsbHZtL1N1cHBvcnQvVGFyZ2V0 UmVnaXN0cnkuaD4KLSAjaW5jbHVkZSA8bGx2bS9TdXBwb3J0L1RhcmdldFNlbGVjdC5oPgotLSNp ZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICNpbmNsdWRlIDxsbHZtL1N1 cHBvcnQvVG9vbE91dHB1dEZpbGUuaD4KLS0jZW5kaWYKLSAKLSAjaWZkZWYgSVNQQ19IT1NUX0lT X1dJTkRPV1MKLSAjZGVmaW5lIHN0cmNhc2VjbXAgc3RyaWNtcAotQEAgLTE4MSwxMSArMTc5LDkg QEAgc3RhdGljIHZvaWQgbFByaW50VmVyc2lvbigpIHsKLSAgICAgc25wcmludGYodGFyZ2V0SGVs cCwgc2l6ZW9mKHRhcmdldEhlbHApLCAiWy0tdGFyZ2V0LW9zPTxvcz5dXHRcdFx0U2VsZWN0IHRh cmdldCBPUy4gIDxvcz49eyVzfSIsCi0gICAgICAgICAgICAgIGctPnRhcmdldF9yZWdpc3RyeS0+ Z2V0U3VwcG9ydGVkT1NlcygpLmNfc3RyKCkpOwotICAgICBQcmludFdpdGhXb3JkQnJlYWtzKHRh cmdldEhlbHAsIDI0LCBUZXJtaW5hbFdpZHRoKCksIHN0ZG91dCk7Ci0tI2lmIElTUENfTExWTV9W RVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIHByaW50ZigiICAgIFstLXRpbWUtdHJhY2Vd XHRcdFx0VHVybiBvbiB0aW1lIHByb2ZpbGVyLiBHZW5lcmF0ZXMgSlNPTiBmaWxlIGJhc2VkIG9u IG91dHB1dCBmaWxlbmFtZS5cbiIpOwotICAgICBwcmludGYoIiAgICBbLS10aW1lLXRyYWNlLWdy YW51bGFyaXR5PTx2YWx1ZT5cdE1pbmltdW0gdGltZSBncmFudWxhcml0eSAoaW4gbWljcm9zZWNv bmRzKSB0cmFjZWQgYnkgdGltZSAiCi0gICAgICAgICAgICAicHJvZmlsZXIuXG4iKTsKLS0jZW5k aWYKLSAgICAgcHJpbnRmKCIgICAgWy0tdmVyc2lvbl1cdFx0XHRcdFByaW50IGlzcGMgdmVyc2lv blxuIik7Ci0gI2lmZGVmIElTUENfR0VOWF9FTkFCTEVECi0gICAgIHByaW50ZigiICAgIFstLXZj LW9wdGlvbnM9PFwiLW9wdGlvbjEgLW9wdGlvbjIuLi5cIj5dXHRcdFx0XHRQYXNzIGFkZGl0aW9u YWwgb3B0aW9ucyB0byBWZWN0b3IgQ29tcGlsZXIgYmFja2VuZFxuIik7Ci1AQCAtNDYyLDcgKzQ1 OCw2IEBAIHN0YXRpYyB2b2lkIHNldENhbGxpbmdDb252KFZlY3RvckNhbGxTdGF0dXMgdmVjdG9y Q2FsbCwgQXJjaCBhcmNoKSB7Ci0gICAgIH0KLSB9Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9O ID49IElTUENfTExWTV8xMF8wCi0gc3RhdGljIHZvaWQgd3JpdGVDb21waWxlVGltZUZpbGUoY29u c3QgY2hhciAqb3V0RmlsZU5hbWUpIHsKLSAgICAgbGx2bTo6U21hbGxTdHJpbmc8MTI4PiBqc29u RmlsZU5hbWUob3V0RmlsZU5hbWUpOwotICAgICBqc29uRmlsZU5hbWUuYXBwZW5kKCIuanNvbiIp OwotQEAgLTQ3OSw3ICs0NzQsNiBAQCBzdGF0aWMgdm9pZCB3cml0ZUNvbXBpbGVUaW1lRmlsZShj b25zdCBjaGFyICpvdXRGaWxlTmFtZSkgewotICAgICBvZi0+a2VlcCgpOwotICAgICByZXR1cm47 Ci0gfQotLSNlbmRpZgotIAotIHN0YXRpYyBzdGQ6OnNldDxpbnQ+IFBhcnNpbmdQaGFzZXMoY2hh ciAqc3RhZ2VzLCBBcmdFcnJvcnMgJmVycm9ySGFuZGxlcikgewotICAgICBjb25zdGV4cHIgaW50 IHBhcnNpbmdfbGltaXQgPSAxMDA7Ci1AQCAtNzkxLDEyICs3ODUsMTAgQEAgaW50IG1haW4oaW50 IEFyZ2MsIGNoYXIgKkFyZ3ZbXSkgewotICAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSBp ZiAoIXN0cm5jbXAoYXJndltpXSwgIi0tZm9yY2UtYWxpZ25tZW50PSIsIDE4KSkgewotICAgICAg ICAgICAgIGctPmZvcmNlQWxpZ25tZW50ID0gYXRvaShhcmd2W2ldICsgMTgpOwotLSNpZiBJU1BD X0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICAgICAgfSBlbHNlIGlmICghc3Ry Y21wKGFyZ3ZbaV0sICItLXRpbWUtdHJhY2UiKSkgewotICAgICAgICAgICAgIGctPmVuYWJsZVRp bWVUcmFjZSA9IHRydWU7Ci0gICAgICAgICB9IGVsc2UgaWYgKCFzdHJuY21wKGFyZ3ZbaV0sICIt LXRpbWUtdHJhY2UtZ3JhbnVsYXJpdHk9IiwgMjUpKSB7Ci0gICAgICAgICAgICAgZy0+dGltZVRy YWNlR3JhbnVsYXJpdHkgPSBhdG9pKGFyZ3ZbaV0gKyAyNSk7Ci0tI2VuZGlmCi0gICAgICAgICB9 IGVsc2UgaWYgKCFzdHJjbXAoYXJndltpXSwgIi0td29mZiIpIHx8ICFzdHJjbXAoYXJndltpXSwg Ii13b2ZmIikpIHsKLSAgICAgICAgICAgICBnLT5kaXNhYmxlV2FybmluZ3MgPSB0cnVlOwotICAg ICAgICAgICAgIGctPmVtaXRQZXJmV2FybmluZ3MgPSBmYWxzZTsKLUBAIC0xMDU5LDcgKzEwNTEs NiBAQCBpbnQgbWFpbihpbnQgQXJnYywgY2hhciAqQXJndltdKSB7Ci0gCi0gICAgIC8vIFRoaXMg bmVlZHMgdG8gaGFwcGVuIGFmdGVyIHRoZSBUYXJnZXRPUyBpcyBkZWNpZGVkLgotICAgICBzZXRD YWxsaW5nQ29udih2ZWN0b3JDYWxsLCBhcmNoKTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0g SVNQQ19MTFZNXzEwXzAKLSAgICAgaWYgKGctPmVuYWJsZVRpbWVUcmFjZSkgewotICAgICAgICAg bGx2bTo6dGltZVRyYWNlUHJvZmlsZXJJbml0aWFsaXplKGctPnRpbWVUcmFjZUdyYW51bGFyaXR5 LCAiaXNwYyIpOwotICAgICB9Ci1AQCAtMTA3Nyw5ICsxMDY4LDUgQEAgaW50IG1haW4oaW50IEFy Z2MsIGNoYXIgKkFyZ3ZbXSkgewotICAgICAgICAgfQotICAgICAgICAgbGx2bTo6dGltZVRyYWNl UHJvZmlsZXJDbGVhbnVwKCk7Ci0gICAgIH0KLS0jZWxzZQotLSAgICBpbnQgcmV0ID0gTW9kdWxl OjpDb21waWxlQW5kT3V0cHV0KGZpbGUsIGFyY2gsIGNwdSwgdGFyZ2V0cywgZmxhZ3MsIG90LCBv dXRGaWxlTmFtZSwgaGVhZGVyRmlsZU5hbWUsIGRlcHNGaWxlTmFtZSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBzVGFyZ2V0TmFtZSwgaG9zdFN0dWJGaWxlTmFt ZSwgZGV2U3R1YkZpbGVOYW1lKTsKLS0jZW5kaWYKLSAgICAgcmV0dXJuIHJldDsKLSB9Ci1kaWZm IC0tZ2l0IGEvc3JjL21vZHVsZS5jcHAgYi9zcmMvbW9kdWxlLmNwcAotaW5kZXggZmU3NDUyZGYx Li5hODVmZWM3N2EgMTAwNjQ0Ci0tLS0gYS9zcmMvbW9kdWxlLmNwcAotKysrIGIvc3JjL21vZHVs ZS5jcHAKLUBAIC0xNzAsOSArMTcwLDcgQEAgTW9kdWxlOjpNb2R1bGUoY29uc3QgY2hhciAqZm4p IHsKLSAgICAgbW9kdWxlLT5zZXREYXRhTGF5b3V0KGctPnRhcmdldC0+Z2V0RGF0YUxheW91dCgp LT5nZXRTdHJpbmdSZXByZXNlbnRhdGlvbigpKTsKLSAKLSAgICAgaWYgKGctPmdlbmVyYXRlRGVi dWdnaW5nU3ltYm9scykgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBf MAotICAgICAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgVGltZVNjb3BlKCJDcmVhdGUgRGVidWcg RGF0YSIpOwotLSNlbmRpZgotICAgICAgICAgLy8gVG8gZW5hYmxlIGRlYnVnIGluZm9ybWF0aW9u IG9uIFdpbmRvd3MsIHdlIGhhdmUgdG8gbGV0IGxsdm0ga25vdywgdGhhdAotICAgICAgICAgLy8g ZGVidWcgaW5mb3JtYXRpb24gc2hvdWxkIGJlIGVtaXR0ZWQgaW4gQ29kZVZpZXcgZm9ybWF0Lgot ICAgICAgICAgaWYgKGctPnRhcmdldF9vcyA9PSBUYXJnZXRPUzo6d2luZG93cykgewotQEAgLTIy NiwxMCArMjI0LDggQEAgZXh0ZXJuIFlZX0JVRkZFUl9TVEFURSB5eV9jcmVhdGVfYnVmZmVyKEZJ TEUgKiwgaW50KTsKLSBleHRlcm4gdm9pZCB5eV9kZWxldGVfYnVmZmVyKFlZX0JVRkZFUl9TVEFU RSk7Ci0gCi0gaW50IE1vZHVsZTo6Q29tcGlsZUZpbGUoKSB7Ci0tI2lmIElTUENfTExWTV9WRVJT SU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIENvbXBpbGVG aWxlVGltZVNjb3BlKAotICAgICAgICAgIkNvbXBpbGVGaWxlIiwgbGx2bTo6U3RyaW5nUmVmKGZp bGVuYW1lICsgKCJfIiArIHN0ZDo6c3RyaW5nKGctPnRhcmdldC0+R2V0SVNBU3RyaW5nKCkpKSkp OwotLSNlbmRpZgotICAgICBleHRlcm4gdm9pZCBQYXJzZXJJbml0KCk7Ci0gICAgIFBhcnNlcklu aXQoKTsKLSAKLUBAIC0yMzgsMTggKzIzNCwxNCBAQCBpbnQgTW9kdWxlOjpDb21waWxlRmlsZSgp IHsKLSAgICAgLy8gdmFyaWFibGUgJ20nIHRvIGJlIGluaXRpYWxpemVkIGFuZCBhdmFpbGFibGUg KHdoaWNoIGl0IGlzbid0IHVudGlsCi0gICAgIC8vIHRoZSBNb2R1bGUgY29uc3RydWN0b3IgcmV0 dXJucy4uLikKLSAgICAgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBf MAotICAgICAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgVGltZVNjb3BlKCJEZWZpbmVTdGRsaWIi KTsKLS0jZW5kaWYKLSAgICAgICAgIERlZmluZVN0ZGxpYihzeW1ib2xUYWJsZSwgZy0+Y3R4LCBt b2R1bGUsIGctPmluY2x1ZGVTdGRsaWIpOwotICAgICB9Ci0gCi0gICAgIGJvb2wgcnVuUHJlcHJv Y2Vzc29yID0gZy0+cnVuQ1BQOwotIAotICAgICBpZiAocnVuUHJlcHJvY2Vzc29yKSB7Ci0tI2lm IElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgICAgICBsbHZtOjpUaW1l VHJhY2VTY29wZSBUaW1lU2NvcGUoIkZyb250ZW5kIHBhcnNlciIpOwotLSNlbmRpZgotICAgICAg ICAgaWYgKCFJc1N0ZGluKGZpbGVuYW1lKSkgewotICAgICAgICAgICAgIC8vIFRyeSB0byBvcGVu IHRoZSBmaWxlIGZpcnN0LCBzaW5jZSBvdGhlcndpc2Ugd2UgY3Jhc2ggaW4gdGhlCi0gICAgICAg ICAgICAgLy8gcHJlcHJvY2Vzc29yIGlmIHRoZSBmaWxlIGRvZXNuJ3QgZXhpc3QuCi1AQCAtMjY4 LDkgKzI2MCw3IEBAIGludCBNb2R1bGU6OkNvbXBpbGVGaWxlKCkgewotICAgICAgICAgeXlwYXJz ZSgpOwotICAgICAgICAgeXlfZGVsZXRlX2J1ZmZlcihzdHJidWYpOwotICAgICB9IGVsc2Ugewot LSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICAgICAgbGx2bTo6 VGltZVRyYWNlU2NvcGUgVGltZVNjb3BlKCJGcm9udGVuZCBwYXJzZXIiKTsKLS0jZW5kaWYKLSAg ICAgICAgIC8vIE5vIHByZXByb2Nlc3NvciwganVzdCBvcGVuIHVwIHRoZSBmaWxlIGlmIGl0J3Mg bm90IHN0ZGluLi4KLSAgICAgICAgIEZJTEUgKmYgPSBOVUxMOwotICAgICAgICAgaWYgKElzU3Rk aW4oZmlsZW5hbWUpKSB7Ci1AQCAtMjk3LDkgKzI4Nyw3IEBAIGludCBNb2R1bGU6OkNvbXBpbGVG aWxlKCkgewotIAotICAgICBpZiAoZGlCdWlsZGVyKQotICAgICAgICAgZGlCdWlsZGVyLT5maW5h bGl6ZSgpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBs bHZtOjpUaW1lVHJhY2VTY29wZSBUaW1lU2NvcGUoIk9wdGltaXplIik7Ci0tI2VuZGlmCi0gICAg IGlmIChlcnJvckNvdW50ID09IDApCi0gICAgICAgICBPcHRpbWl6ZShtb2R1bGUsIGctPm9wdC5s ZXZlbCk7Ci0gCi1AQCAtMTI0MywxNSArMTIzMSw4IEBAIGJvb2wgTW9kdWxlOjp3cml0ZU9iamVj dEZpbGVPckFzc2VtYmx5KGxsdm06OlRhcmdldE1hY2hpbmUgKnRhcmdldE1hY2hpbmUsIGxsdm06 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqb3V0 RmlsZU5hbWUpIHsKLSAgICAgLy8gRmlndXJlIG91dCBpZiB3ZSdyZSBnZW5lcmF0aW5nIG9iamVj dCBmaWxlIG9yIGFzc2VtYmx5IG91dHB1dCwgYW5kCi0gICAgIC8vIHNldCBiaW5hcnkgb3V0cHV0 IGZvciBvYmplY3QgZmlsZXMKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlf MAotLSAgICBBc3NlcnQoIWctPnRhcmdldC0+aXNHZW5YVGFyZ2V0KCkpOwotLSAgICBsbHZtOjpU YXJnZXRNYWNoaW5lOjpDb2RlR2VuRmlsZVR5cGUgZmlsZVR5cGUgPQotLSAgICAgICAgKG91dHB1 dFR5cGUgPT0gT2JqZWN0KSA/IGxsdm06OlRhcmdldE1hY2hpbmU6OkNHRlRfT2JqZWN0RmlsZSA6 IGxsdm06OlRhcmdldE1hY2hpbmU6OkNHRlRfQXNzZW1ibHlGaWxlOwotLSAgICBib29sIGJpbmFy eSA9IChmaWxlVHlwZSA9PSBsbHZtOjpUYXJnZXRNYWNoaW5lOjpDR0ZUX09iamVjdEZpbGUpOwot LSNlbHNlIC8vIExMVk0gMTAuMCsKLSAgICAgbGx2bTo6Q29kZUdlbkZpbGVUeXBlIGZpbGVUeXBl ID0gKG91dHB1dFR5cGUgPT0gT2JqZWN0KSA/IGxsdm06OkNHRlRfT2JqZWN0RmlsZSA6IGxsdm06 OkNHRlRfQXNzZW1ibHlGaWxlOwotICAgICBib29sIGJpbmFyeSA9IChmaWxlVHlwZSA9PSBsbHZt OjpDR0ZUX09iamVjdEZpbGUpOwotLSNlbmRpZgotIAotICAgICBsbHZtOjpzeXM6OmZzOjpPcGVu RmxhZ3MgZmxhZ3MgPSBiaW5hcnkgPyBsbHZtOjpzeXM6OmZzOjpGX05vbmUgOiBsbHZtOjpzeXM6 OmZzOjpGX1RleHQ7Ci0gCi1AQCAtMjIxOSwxMSArMjIwMCw3IEBAIHZvaWQgTW9kdWxlOjpleGVj UHJlcHJvY2Vzc29yKGNvbnN0IGNoYXIgKmluZmlsZW5hbWUsIGxsdm06OnJhd19zdHJpbmdfb3N0 cmVhbSAqCi0gICAgIGluc3Quc2V0VGFyZ2V0KHRhcmdldCk7Ci0gICAgIGluc3QuY3JlYXRlU291 cmNlTWFuYWdlcihpbnN0LmdldEZpbGVNYW5hZ2VyKCkpOwotIAotLSNpZiBJU1BDX0xMVk1fVkVS U0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgIGNsYW5nOjpGcm9udGVuZElucHV0RmlsZSBpbnB1 dEZpbGUoaW5maWxlbmFtZSwgY2xhbmc6OklucHV0S2luZDo6VW5rbm93bik7Ci0tI2Vsc2UgLy8g TExWTSAxMC4wKwotICAgICBjbGFuZzo6RnJvbnRlbmRJbnB1dEZpbGUgaW5wdXRGaWxlKGluZmls ZW5hbWUsIGNsYW5nOjpJbnB1dEtpbmQoKSk7Ci0tI2VuZGlmCi0gCi0gICAgIGluc3QuSW5pdGlh bGl6ZVNvdXJjZU1hbmFnZXIoaW5wdXRGaWxlKTsKLSAKLUBAIC0yNzIyLDkgKzI2OTksNyBAQCBp bnQgTW9kdWxlOjpDb21waWxlQW5kT3V0cHV0KGNvbnN0IGNoYXIgKnNyY0ZpbGUsIEFyY2ggYXJj aCwgY29uc3QgY2hhciAqY3B1LCBzdAotIAotICAgICAgICAgbSA9IG5ldyBNb2R1bGUoc3JjRmls ZSk7Ci0gICAgICAgICBpZiAobS0+Q29tcGlsZUZpbGUoKSA9PSAwKSB7Ci0tI2lmIElTUENfTExW TV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgICAgICAgICAgbGx2bTo6VGltZVRyYWNl U2NvcGUgVGltZVNjb3BlKCJCYWNrZW5kIik7Ci0tI2VuZGlmCi0gI2lmZGVmIElTUENfR0VOWF9F TkFCTEVECi0gICAgICAgICAgICAgaWYgKG91dHB1dFR5cGUgPT0gQXNtIHx8IG91dHB1dFR5cGUg PT0gT2JqZWN0KSB7Ci0gICAgICAgICAgICAgICAgIGlmIChnLT50YXJnZXQtPmlzR2VuWFRhcmdl dCgpKSB7Ci1AQCAtMjg1NSw5ICsyODMwLDcgQEAgaW50IE1vZHVsZTo6Q29tcGlsZUFuZE91dHB1 dChjb25zdCBjaGFyICpzcmNGaWxlLCBBcmNoIGFyY2gsIGNvbnN0IGNoYXIgKmNwdSwgc3QKLSAK LSAgICAgICAgICAgICBtID0gbmV3IE1vZHVsZShzcmNGaWxlKTsKLSAgICAgICAgICAgICBpbnQg Y29tcGlsZUZpbGVFcnJvciA9IG0tPkNvbXBpbGVGaWxlKCk7Ci0tI2lmIElTUENfTExWTV9WRVJT SU9OID49IElTUENfTExWTV8xMF8wCi0gICAgICAgICAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUg VGltZVNjb3BlKCJCYWNrZW5kIik7Ci0tI2VuZGlmCi0gICAgICAgICAgICAgaWYgKGNvbXBpbGVG aWxlRXJyb3IgPT0gMCkgewotICAgICAgICAgICAgICAgICAvLyBDcmVhdGUgdGhlIGRpc3BhdGNo IG1vZHVsZSwgdW5sZXNzIGFscmVhZHkgY3JlYXRlZDsKLSAgICAgICAgICAgICAgICAgLy8gaW4g dGhlIGxhdHRlciBjYXNlLCBqdXN0IGRvIHRoZSBjaGVja2luZwotZGlmZiAtLWdpdCBhL3NyYy9t b2R1bGUuaCBiL3NyYy9tb2R1bGUuaAotaW5kZXggNjFkM2NmZWEwLi42MDMxMjRkNTAgMTAwNjQ0 Ci0tLS0gYS9zcmMvbW9kdWxlLmgKLSsrKyBiL3NyYy9tb2R1bGUuaAotQEAgLTQzLDkgKzQzLDcg QEAKLSAKLSAjaW5jbHVkZSA8bGx2bS9JUi9EZWJ1Z0luZm8uaD4KLSAKLS0jaWYgSVNQQ19MTFZN X1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAjaW5jbHVkZSA8bGx2bS9TdXBwb3J0L1RpbWVQ cm9maWxlci5oPgotLSNlbmRpZgotIAotICNpZmRlZiBJU1BDX0dFTlhfRU5BQkxFRAotICNpbmNs dWRlICJvY2xfaWdjX2ludGVyZmFjZS9pZ2Nfb2NsX2RldmljZV9jdHguaCIKLWRpZmYgLS1naXQg YS9zcmMvb3B0LmNwcCBiL3NyYy9vcHQuY3BwCi1pbmRleCBhNjU1YTgzNDQuLjViMWFjN2I2MyAx MDA2NDQKLS0tLSBhL3NyYy9vcHQuY3BwCi0rKysgYi9zcmMvb3B0LmNwcAotQEAgLTY2LDYgKzY2 LDcgQEAKLSAjaW5jbHVkZSA8bGx2bS9JUi9JbnN0cnVjdGlvbnMuaD4KLSAjaW5jbHVkZSA8bGx2 bS9JUi9JbnRyaW5zaWNJbnN0Lmg+Ci0gI2luY2x1ZGUgPGxsdm0vSVIvSW50cmluc2ljcy5oPgot KyNpbmNsdWRlIDxsbHZtL0lSL0ludHJpbnNpY3NYODYuaD4KLSAjaW5jbHVkZSA8bGx2bS9JUi9M ZWdhY3lQYXNzTWFuYWdlci5oPgotICNpbmNsdWRlIDxsbHZtL0lSL01vZHVsZS5oPgotICNpbmNs dWRlIDxsbHZtL0lSL1BhdHRlcm5NYXRjaC5oPgotQEAgLTg1LDkgKzg2LDYgQEAKLSAjaW5jbHVk ZSA8bGx2bS9UcmFuc2Zvcm1zL1NjYWxhci9JbnN0U2ltcGxpZnlQYXNzLmg+Ci0gI2luY2x1ZGUg PGxsdm0vVHJhbnNmb3Jtcy9VdGlscy5oPgotICNpbmNsdWRlIDxsbHZtL1RyYW5zZm9ybXMvVXRp bHMvQmFzaWNCbG9ja1V0aWxzLmg+Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExW TV8xMF8wCi0tI2luY2x1ZGUgPGxsdm0vSVIvSW50cmluc2ljc1g4Ni5oPgotLSNlbmRpZgotIAot ICNpZmRlZiBJU1BDX0hPU1RfSVNfTElOVVgKLSAjaW5jbHVkZSA8YWxsb2NhLmg+Ci1AQCAtMTAw MywxMCArMTAwMSw3IEBAIGJvb2wgSW50cmluc2ljc09wdDo6cnVuT25CYXNpY0Jsb2NrKGxsdm06 OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg ICAgICAgIGFsaWduID0gY2FsbEluc3QtPmdldENhbGxlZEZ1bmN0aW9uKCkgPT0gYXZ4TWFza2Vk TG9hZDMyID8gNCA6IDg7Ci0gICAgICAgICAgICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZShjYWxs SW5zdC0+Z2V0QXJnT3BlcmFuZCgwKSwgIl9sb2FkIik7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9O IDw9IElTUENfTExWTV85XzAKLS0gICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxv YWRJbnN0ID0KLS0gICAgICAgICAgICAgICAgICAgIG5ldyBsbHZtOjpMb2FkSW5zdChjYXN0UHRy LCBuYW1lLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGFsaWduLCAobGx2bTo6SW5zdHJ1Y3Rp b24gKilOVUxMKTsKLS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBfMAot KyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBfMAotICAgICAgICAgICAgICAg ICBsbHZtOjpJbnN0cnVjdGlvbiAqbG9hZEluc3QgPSBuZXcgbGx2bTo6TG9hZEluc3QoY2FzdFB0 ciwgbmFtZSwgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6TWF5YmVB bGlnbihhbGlnbiksIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotICNlbHNlCi1AQCAtMTA0 MywxMyArMTAzOCw4IEBAIGJvb2wgSW50cmluc2ljc09wdDo6cnVuT25CYXNpY0Jsb2NrKGxsdm06 OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAgICAgICAgICAgICAgICAgICBhbGlnbiA9IGctPnRhcmdl dC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCk7Ci0gICAgICAgICAgICAgICAgIGVsc2UKLSAg ICAgICAgICAgICAgICAgICAgIGFsaWduID0gY2FsbEluc3QtPmdldENhbGxlZEZ1bmN0aW9uKCkg PT0gYXZ4TWFza2VkU3RvcmUzMiA/IDQgOiA4OwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJ U1BDX0xMVk1fOV8wCi0tICAgICAgICAgICAgICAgIGxsdm06OlN0b3JlSW5zdCAqc3RvcmVJbnN0 ID0gbmV3IGxsdm06OlN0b3JlSW5zdChydmFsdWUsIGNhc3RQdHIsIChsbHZtOjpJbnN0cnVjdGlv biAqKU5VTEwpOwotLSAgICAgICAgICAgICAgICBzdG9yZUluc3QtPnNldEFsaWdubWVudChhbGln bik7Ci0tI2Vsc2UKLSAgICAgICAgICAgICAgICAgbGx2bTo6U3RvcmVJbnN0ICpzdG9yZUluc3Qg PSBuZXcgbGx2bTo6U3RvcmVJbnN0KHJ2YWx1ZSwgY2FzdFB0ciwgKGxsdm06Okluc3RydWN0aW9u ICopTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxsdm06Ok1heWJlQWxpZ24oYWxpZ24pLnZhbHVlT3JPbmUoKSk7 Ci0tI2VuZGlmCi0gICAgICAgICAgICAgICAgIGxDb3B5TWV0YWRhdGEoc3RvcmVJbnN0LCBjYWxs SW5zdCk7Ci0gICAgICAgICAgICAgICAgIGxsdm06OlJlcGxhY2VJbnN0V2l0aEluc3QoY2FsbElu c3QsIHN0b3JlSW5zdCk7Ci0gCi1AQCAtMTA2Niw5ICsxMDU2LDcgQEAgYm9vbCBJbnRyaW5zaWNz T3B0OjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAKLSBib29sIElu dHJpbnNpY3NPcHQ6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAKLS0jaWYg SVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNl U2NvcGUgRnVuY1Njb3BlKCJJbnRyaW5zaWNzT3B0OjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1l KCkpOwotLSNlbmRpZgotICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAo bGx2bTo6QmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5P bkJhc2ljQmxvY2soQkIpOwotQEAgLTEyMzksOSArMTIyNyw3IEBAIGJvb2wgSW5zdHJ1Y3Rpb25T aW1wbGlmeVBhc3M6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIAot IGJvb2wgSW5zdHJ1Y3Rpb25TaW1wbGlmeVBhc3M6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rp b24gJkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAg ICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJJbnN0cnVjdGlvblNpbXBsaWZ5UGFz czo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2Rp ZmllZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewot ICAgICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC0yOTc0LDE2 ICsyOTYwLDEwIEBAIHN0YXRpYyBib29sIGxJbXByb3ZlTWFza2VkU3RvcmUobGx2bTo6Q2FsbElu c3QgKmNhbGxJbnN0KSB7Ci0gCi0gICAgICAgICAgICAgbHZhbHVlID0gbmV3IGxsdm06OkJpdENh c3RJbnN0KGx2YWx1ZSwgcHRyVHlwZSwgImx2YWx1ZV90b19wdHJfdHlwZSIsIGNhbGxJbnN0KTsK LSAgICAgICAgICAgICBsQ29weU1ldGFkYXRhKGx2YWx1ZSwgY2FsbEluc3QpOwotLSNpZiBJU1BD X0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgICAgICAgICAgc3RvcmUgPQotLSAg ICAgICAgICAgICAgICBuZXcgbGx2bTo6U3RvcmVJbnN0KHJ2YWx1ZSwgbHZhbHVlLCBmYWxzZSAv KiBub3Qgdm9sYXRpbGUgKi8sCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Zy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSA/IGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxp Z25tZW50KCkgOiBpbmZvLT5hbGlnbik7Ci0tI2Vsc2UKLSAgICAgICAgICAgICBzdG9yZSA9IG5l dyBsbHZtOjpTdG9yZUluc3QoCi0gICAgICAgICAgICAgICAgIHJ2YWx1ZSwgbHZhbHVlLCBmYWxz ZSAvKiBub3Qgdm9sYXRpbGUgKi8sCi0gICAgICAgICAgICAgICAgIGxsdm06Ok1heWJlQWxpZ24o Zy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSA/IGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxp Z25tZW50KCkgOiBpbmZvLT5hbGlnbikKLSAgICAgICAgICAgICAgICAgICAgIC52YWx1ZU9yT25l KCkpOwotLSNlbmRpZgotICAgICAgICAgfQotICAgICAgICAgaWYgKHN0b3JlICE9IE5VTEwpIHsK LSAgICAgICAgICAgICBsQ29weU1ldGFkYXRhKHN0b3JlLCBjYWxsSW5zdCk7Ci1AQCAtMzA1OSwx MSArMzAzOSw3IEBAIHN0YXRpYyBib29sIGxJbXByb3ZlTWFza2VkTG9hZChsbHZtOjpDYWxsSW5z dCAqY2FsbEluc3QsIGxsdm06OkJhc2ljQmxvY2s6Oml0ZXJhCi0gICAgICAgICB7Ci0gICAgICAg ICAgICAgbGx2bTo6VHlwZSAqcHRyVHlwZSA9IGxsdm06OlBvaW50ZXJUeXBlOjpnZXQoY2FsbElu c3QtPmdldFR5cGUoKSwgMCk7Ci0gICAgICAgICAgICAgcHRyID0gbmV3IGxsdm06OkJpdENhc3RJ bnN0KHB0ciwgcHRyVHlwZSwgInB0cl9jYXN0X2Zvcl9sb2FkIiwgY2FsbEluc3QpOwotLSNpZiBJ U1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgICAgICAgICAgbG9hZCA9IG5l dyBsbHZtOjpMb2FkSW5zdChwdHIsIGNhbGxJbnN0LT5nZXROYW1lKCksIGZhbHNlIC8qIG5vdCB2 b2xhdGlsZSAqLywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGctPm9w dC5mb3JjZUFsaWduZWRNZW1vcnkgPyBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVu dCgpIDogaW5mby0+YWxpZ24sCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9 PSBJU1BDX0xMVk1fMTBfMAotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBf MAotICAgICAgICAgICAgIGxvYWQgPSBuZXcgbGx2bTo6TG9hZEluc3QoCi0gICAgICAgICAgICAg ICAgIHB0ciwgY2FsbEluc3QtPmdldE5hbWUoKSwgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLAot ICAgICAgICAgICAgICAgICBsbHZtOjpNYXliZUFsaWduKGctPm9wdC5mb3JjZUFsaWduZWRNZW1v cnkgPyBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpIDogaW5mby0+YWxpZ24p Ci1AQCAtMzEyOSw5ICszMTA1LDcgQEAgYm9vbCBJbXByb3ZlTWVtb3J5T3BzUGFzczo6cnVuT25C YXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gCi0gYm9vbCBJbXByb3ZlTWVtb3J5 T3BzUGFzczo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotIAotLSNpZiBJU1BD X0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29w ZSBGdW5jU2NvcGUoIkltcHJvdmVNZW1vcnlPcHNQYXNzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXRO YW1lKCkpOwotLSNlbmRpZgotICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZv ciAobGx2bTo6QmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBy dW5PbkJhc2ljQmxvY2soQkIpOwotQEAgLTM0MjQsOSArMzM5OCw3IEBAIGxsdm06OlZhbHVlICps R0VQQW5kTG9hZChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgaW50NjRfdCBvZmZzZXQsIGludCBhbGln biwgbGx2bTo6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlR5cGUgKnR5cGUpIHsK LSAgICAgbGx2bTo6VmFsdWUgKnB0ciA9IGxHRVBJbnN0KGJhc2VQdHIsIExMVk1JbnQ2NChvZmZz ZXQpLCAibmV3X2Jhc2UiLCBpbnNlcnRCZWZvcmUpOwotICAgICBwdHIgPSBuZXcgbGx2bTo6Qml0 Q2FzdEluc3QocHRyLCBsbHZtOjpQb2ludGVyVHlwZTo6Z2V0KHR5cGUsIDApLCAicHRyX2Nhc3Qi LCBpbnNlcnRCZWZvcmUpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8w Ci0tICAgIHJldHVybiBuZXcgbGx2bTo6TG9hZEluc3QocHRyLCAiZ2F0aGVyX2xvYWQiLCBmYWxz ZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGFsaWduLCBpbnNlcnRCZWZvcmUpOwotLSNlbGlmIElTUENf TExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMF8wCi0rI2lmIElTUENfTExWTV9WRVJTSU9OID09 IElTUENfTExWTV8xMF8wCi0gICAgIHJldHVybiBuZXcgbGx2bTo6TG9hZEluc3QocHRyLCAiZ2F0 aGVyX2xvYWQiLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGxsdm06Ok1heWJlQWxpZ24oYWxp Z24pLCBpbnNlcnRCZWZvcmUpOwotICNlbHNlIC8vIExMVk0gMTEuMCsKLSAgICAgcmV0dXJuIG5l dyBsbHZtOjpMb2FkSW5zdChsbHZtOjpkeW5fY2FzdDxsbHZtOjpQb2ludGVyVHlwZT4ocHRyLT5n ZXRUeXBlKCkpLT5nZXRQb2ludGVyRWxlbWVudFR5cGUoKSwgcHRyLAotQEAgLTQxMzUsOSArNDEw Nyw3IEBAIGJvb2wgR2F0aGVyQ29hbGVzY2VQYXNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFz aWNCbG9jayAmYmIpIHsKLSAKLSBib29sIEdhdGhlckNvYWxlc2NlUGFzczo6cnVuT25GdW5jdGlv bihsbHZtOjpGdW5jdGlvbiAmRikgewotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BD X0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIkdhdGhlckNv YWxlc2NlUGFzczo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAg Ym9vbCBtb2RpZmllZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJC IDogRikgewotICAgICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBA IC00NDY3LDkgKzQ0MzcsNyBAQCBib29sIFJlcGxhY2VQc2V1ZG9NZW1vcnlPcHNQYXNzOjpydW5P bkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAKLSBib29sIFJlcGxhY2VQc2V1 ZG9NZW1vcnlPcHNQYXNzOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0gCi0t I2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVU cmFjZVNjb3BlIEZ1bmNTY29wZSgiUmVwbGFjZVBzZXVkb01lbW9yeU9wc1Bhc3M6OnJ1bk9uRnVu Y3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBm YWxzZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1v ZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtNDU3Myw5ICs0NTQxLDcgQEAg Ym9vbCBJc0NvbXBpbGVUaW1lQ29uc3RhbnRQYXNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFz aWNCbG9jayAmYmIpIHsKLSAKLSBib29sIElzQ29tcGlsZVRpbWVDb25zdGFudFBhc3M6OnJ1bk9u RnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04g Pj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJJ c0NvbXBpbGVUaW1lQ29uc3RhbnRQYXNzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwot LSNlbmRpZgotICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6 QmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2lj QmxvY2soQkIpOwotQEAgLTUyMDEsOSArNTE2Nyw3IEBAIGJvb2wgUGVlcGhvbGVQYXNzOjpydW5P bkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAKLSBib29sIFBlZXBob2xlUGFz czo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotIAotLSNpZiBJU1BDX0xMVk1f VkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5j U2NvcGUoIlBlZXBob2xlUGFzczo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5k aWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2lj QmxvY2sgJkJCIDogRikgewotICAgICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2Nr KEJCKTsKLUBAIC01Mjk5LDkgKzUyNjMsNyBAQCBib29sIFJlcGxhY2VTdGRsaWJTaGlmdFBhc3M6 OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIAotIGJvb2wgUmVwbGFj ZVN0ZGxpYlNoaWZ0UGFzczo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotIAot LSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1l VHJhY2VTY29wZSBGdW5jU2NvcGUoIlJlcGxhY2VTdGRsaWJTaGlmdFBhc3M6OnJ1bk9uRnVuY3Rp b24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxz ZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlm aWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtNTM5OSw5ICs1MzYxLDcgQEAgbGx2 bTo6SW5zdHJ1Y3Rpb24gKkZpeEJvb2xlYW5TZWxlY3RQYXNzOjpmaXhTZWxlY3QobGx2bTo6U2Vs ZWN0SW5zdCAqc2VsLCBsbHZtOjoKLSB9Ci0gCi0gYm9vbCBGaXhCb29sZWFuU2VsZWN0UGFzczo6 cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lP TiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUo IkZpeEJvb2xlYW5TZWxlY3RQYXNzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNl bmRpZgotICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gCi0gICAgIHJldHVybiBtb2Rp ZmllZEFueTsKLUBAIC01OTY0LDkgKzU5MjQsNyBAQCBib29sIEdlblhHYXRoZXJDb2FsZXNjaW5n OjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSB9Ci0gCi0gYm9vbCBH ZW5YR2F0aGVyQ29hbGVzY2luZzo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewot LSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1l VHJhY2VTY29wZSBGdW5jU2NvcGUoIkdlblhHYXRoZXJDb2FsZXNjaW5nOjpydW5PbkZ1bmN0aW9u IiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7 Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmll ZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwotQEAgLTYxMTMsOSArNjA3MSw3IEBAIGJvb2wg UHJvbW90ZVRvUHJpdmF0ZU1lbW9yeVBhc3M6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Js b2NrICZiYikgewotIAotIGJvb2wgUHJvbW90ZVRvUHJpdmF0ZU1lbW9yeVBhc3M6OnJ1bk9uRnVu Y3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0g SVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJQcm9t b3RlVG9Qcml2YXRlTWVtb3J5UGFzczo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0j ZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJh c2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Js b2NrKEJCKTsKLUBAIC02MTgxLDkgKzYxMzcsNyBAQCBib29sIFJlcGxhY2VMTFZNSW50cmluc2lj czo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gCi0gYm9vbCBSZXBs YWNlTExWTUludHJpbnNpY3M6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAK LS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGlt ZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJSZXBsYWNlTExWTUludHJpbnNpY3M6OnJ1bk9uRnVuY3Rp b24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxz ZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlm aWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtNjI3OCw5ICs2MjMyLDcgQEAgYm9v bCBSZXBsYWNlVW5zdXBwb3J0ZWRJbnN0czo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxv Y2sgJmJiKSB7Ci0gCi0gYm9vbCBSZXBsYWNlVW5zdXBwb3J0ZWRJbnN0czo6cnVuT25GdW5jdGlv bihsbHZtOjpGdW5jdGlvbiAmRikgewotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BD X0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIlJlcGxhY2VV bnN1cHBvcnRlZEluc3RzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgot ICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9j ayAmQkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIp OwotQEAgLTYzNjksOSArNjMyMSw3IEBAIGJvb2wgQ2hlY2tVbnN1cHBvcnRlZEluc3RzOjpydW5P bkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSB9Ci0gCi0gYm9vbCBDaGVja1Vu c3VwcG9ydGVkSW5zdHM6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLS0jaWYg SVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNl U2NvcGUgRnVuY1Njb3BlKCJDaGVja1Vuc3VwcG9ydGVkSW5zdHM6OnJ1bk9uRnVuY3Rpb24iLCBG LmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAg ICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55 IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtNjQ0MCw5ICs2MzkwLDcgQEAgYm9vbCBNYW5n bGVPcGVuQ0xCdWlsdGluczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7 Ci0gfQotIAotIGJvb2wgTWFuZ2xlT3BlbkNMQnVpbHRpbnM6OnJ1bk9uRnVuY3Rpb24obGx2bTo6 RnVuY3Rpb24gJkYpIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAK LSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJNYW5nbGVPcGVuQ0xCdWlsdGlu czo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2Rp ZmllZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewot ICAgICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC02ODI4LDkg KzY3NzYsNyBAQCBib29sIEZpeEFkZHJlc3NTcGFjZTo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5j dGlvbiAmRikgewotICAgICAvLyBUcmFuc2Zvcm1hdGlvbnMgYXJlIGNvcnJlY3Qgd2hlbiB0aGUg ZnVuY3Rpb24gaXMgbm90IGludGVybmFsLgotICAgICAvLyBUaGlzIGlzIGR1ZSB0byBhZGRyZXNz IHNwYWNlIGNhbGN1bGF0aW9uIGFsZ29yaXRobS4KLSAgICAgLy8gVE9ETzogcHJvYmxlbXMgY2Fu IGJlIG1ldCBpbiBjYXNlIG9mIFN0YWNrIENhbGxzCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49 IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiRml4 QWRkcmVzc1NwYWNlOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAg ICBpZiAoRi5nZXRMaW5rYWdlKCkgPT0gbGx2bTo6R2xvYmFsVmFsdWU6OkxpbmthZ2VUeXBlczo6 SW50ZXJuYWxMaW5rYWdlKQotICAgICAgICAgcmV0dXJuIGZhbHNlOwotIAotQEAgLTY4NTQsOSAr NjgwMCw3IEBAIGNsYXNzIERlbW90ZVBISXMgOiBwdWJsaWMgbGx2bTo6RnVuY3Rpb25QYXNzIHsK LSBjaGFyIERlbW90ZVBISXM6OklEID0gMDsKLSAKLSBib29sIERlbW90ZVBISXM6OnJ1bk9uRnVu Y3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQ Q19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJEZW1vdGVQ SElzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBpZiAoRi5p c0RlY2xhcmF0aW9uKCkgfHwgc2tpcEZ1bmN0aW9uKEYpKQotICAgICAgICAgcmV0dXJuIGZhbHNl OwotICAgICBzdGQ6OnZlY3RvcjxsbHZtOjpJbnN0cnVjdGlvbiAqPiBXb3JrTGlzdDsKLWRpZmYg LS1naXQgYS9zcmMvdHlwZS5jcHAgYi9zcmMvdHlwZS5jcHAKLWluZGV4IDY4OGE0ZTg3NC4uZmEw Y2IwNGRiIDEwMDY0NAotLS0tIGEvc3JjL3R5cGUuY3BwCi0rKysgYi9zcmMvdHlwZS5jcHAKLUBA IC0xODIyLDE0ICsxODIyLDEwIEBAIGxsdm06OkRJVHlwZSAqU3RydWN0VHlwZTo6R2V0RElUeXBl KGxsdm06OkRJU2NvcGUgKnNjb3BlKSBjb25zdCB7Ci0gICAgIGxsdm06OkRJRmlsZSAqZGlGaWxl ID0gcG9zLkdldERJRmlsZSgpOwotICAgICBsbHZtOjpESU5hbWVzcGFjZSAqZGlTcGFjZSA9IHBv cy5HZXRESU5hbWVzcGFjZSgpOwotICAgICByZXR1cm4gbS0+ZGlCdWlsZGVyLT5jcmVhdGVTdHJ1 Y3RUeXBlKGRpU3BhY2UsIEdldFN0cmluZygpLCBkaUZpbGUsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcG9zLmZpcnN0X2xpbmUsICAgICAgICAgIC8vIExpbmUg bnVtYmVyCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0 LT5nZXRTaXplSW5CaXRzKCksIC8vIFNpemUgaW4gYml0cwotLSNpZiBJU1BDX0xMVk1fVkVSU0lP TiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGF5b3V0LT5nZXRBbGlnbm1lbnQoKSAqIDgsIC8vIEFsaWdubWVudCBpbiBiaXRzCi0t I2Vsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIExMVk0gMTAuMCsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwb3MuZmlyc3RfbGluZSwgICAgICAgICAgICAgICAgICAgICAvLyBMaW5l IG51bWJlcgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91 dC0+Z2V0U2l6ZUluQml0cygpLCAgICAgICAgICAgIC8vIFNpemUgaW4gYml0cwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dC0+Z2V0QWxpZ25tZW50KCku dmFsdWUoKSAqIDgsIC8vIEFsaWdubWVudCBpbiBiaXRzCi0tI2VuZGlmCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6RElOb2RlOjpGbGFnWmVybywgLy8g RmxhZ3MKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpE SU5vZGU6OkZsYWdaZXJvLCAgICAgICAgICAgICAvLyBGbGFncwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIGVsZW1lbnRzKTsKLSB9Ci0gCi1kaWZmIC0t Z2l0IGEvdGVzdHMvbGl0LXRlc3RzLzE3NzEuaXNwYyBiL3Rlc3RzL2xpdC10ZXN0cy8xNzcxLmlz cGMKLWluZGV4IDk4MDY0ZDg0ZC4uNGZlYjczZGQ3IDEwMDY0NAotLS0tIGEvdGVzdHMvbGl0LXRl c3RzLzE3NzEuaXNwYwotKysrIGIvdGVzdHMvbGl0LXRlc3RzLzE3NzEuaXNwYwotQEAgLTUsNyAr NSw2IEBACi0gLy8gUlVOOiAle2lzcGN9ICVzIC0tdGFyZ2V0PXNzZTQtaTE2eDggLS1lbWl0LWFz bSAtbyAtIHwgRmlsZUNoZWNrICVzIC1jaGVjay1wcmVmaXg9Q0hFQ0tTU0U0X0kxNlg4Ci0gLy8g UlVOOiAle2lzcGN9ICVzIC0tdGFyZ2V0PXNzZTQtaTh4MTYgLS1lbWl0LWFzbSAtbyAtIHwgRmls ZUNoZWNrICVzIC1jaGVjay1wcmVmaXg9Q0hFQ0tTU0U0X0k4WDE2Ci0gCi0tLy8gUkVRVUlSRVM6 IExMVk1fMTBfMCsKLSAvLyBSRVFVSVJFUzogWDg2X0VOQUJMRUQKLSAKLSAvLyBDSEVDS0FWWDJf STMyWDg6IHt7W2Etel0qeG9yW2Etel0qfX0gICV4bW0wLCAleG1tMCwgJXhtbTAKLWRpZmYgLS1n aXQgYS90ZXN0cy9saXQtdGVzdHMvMTg0NC5pc3BjIGIvdGVzdHMvbGl0LXRlc3RzLzE4NDQuaXNw YwotaW5kZXggNzkzYTg4NjZjLi4xODllZGY0YzMgMTAwNjQ0Ci0tLS0gYS90ZXN0cy9saXQtdGVz dHMvMTg0NC5pc3BjCi0rKysgYi90ZXN0cy9saXQtdGVzdHMvMTg0NC5pc3BjCi1AQCAtNiw5ICs2 LDYgQEAKLSAKLSAvLyBSRVFVSVJFUzogWDg2X0VOQUJMRUQKLSAKLS0vLyBJdCBkb2Vzbid0IHdv cmsgZm9yIGFueXRoaW5nIGVhcmxpZXIgdGhhbiAxMC4wLCBidXQgaXQgd2lsbCBub3QgYmUgZml4 ZWQsIHNvIGRvbid0IHJ1bi4KLS0vLyBSRVFVSVJFUzogTExWTV8xMF8wKwotLQotIGV4dGVybiB1 bmlmb3JtIHVuc2lnbmVkIGludDY0IHZhcl82OwotIGV4dGVybiB1bmlmb3JtIHVuc2lnbmVkIGlu dDE2IHZhcl8xMTsKLSBleHRlcm4gdW5pZm9ybSBib29sIGFycl8yMDEgWzFdIFsxNV0gWzIwXTsK LWRpZmYgLS1naXQgYS90ZXN0cy9saXQtdGVzdHMvMTkyNi5pc3BjIGIvdGVzdHMvbGl0LXRlc3Rz LzE5MjYuaXNwYwotaW5kZXggNzBmN2NjM2MyLi43OTIxYzkxYTYgMTAwNjQ0Ci0tLS0gYS90ZXN0 cy9saXQtdGVzdHMvMTkyNi5pc3BjCi0rKysgYi90ZXN0cy9saXQtdGVzdHMvMTkyNi5pc3BjCi1A QCAtMiw4ICsyLDYgQEAKLSAvLyBSVU46IGNhdCAlVC8xOTI2Lm8uanNvbiBcCi0gLy8gUlVOOiAg IHwgRmlsZUNoZWNrICVzCi0gCi0tLy8gUkVRVUlSRVM6IExMVk1fMTBfMCsKLS0KLSAvLyBDSEVD SzogInRyYWNlRXZlbnRzIgotIC8vIENIRUNLOiAiZGV0YWlsIgotIGV4cG9ydCB1bmlmb3JtIGlu dCBmb28odW5pZm9ybSBpbnQgYVtdLCB1bmlmb3JtIGludCBjb3VudCkgewotZGlmZiAtLWdpdCBh L3Rlc3RzL2xpdC10ZXN0cy9jcHVzX3g4Ni5pc3BjIGIvdGVzdHMvbGl0LXRlc3RzL2NwdXNfeDg2 LmlzcGMKLWluZGV4IDUxNmVmZGQ0Yy4uNGQ2MDE4NmY2IDEwMDY0NAotLS0tIGEvdGVzdHMvbGl0 LXRlc3RzL2NwdXNfeDg2LmlzcGMKLSsrKyBiL3Rlc3RzL2xpdC10ZXN0cy9jcHVzX3g4Ni5pc3Bj Ci1AQCAtMjQsNiArMjQsOCBAQAotIC8vOyBSVU46ICV7aXNwY30gJXMgLW8gJXQubyAtLW5vc3Rk bGliIC0tdGFyZ2V0PXNzZTItaTMyeDQgLS1jcHU9aWNsCi0gLy87IFJVTjogJXtpc3BjfSAlcyAt byAldC5vIC0tbm9zdGRsaWIgLS10YXJnZXQ9c3NlMi1pMzJ4NCAtLWNwdT1pY2VsYWtlLXNlcnZl cgotIC8vOyBSVU46ICV7aXNwY30gJXMgLW8gJXQubyAtLW5vc3RkbGliIC0tdGFyZ2V0PXNzZTIt aTMyeDQgLS1jcHU9aWN4Ci0rLy87IFJVTjogJXtpc3BjfSAlcyAtbyAldC5vIC0tbm9zdGRsaWIg LS10YXJnZXQ9c3NlMi1pMzJ4NCAtLWNwdT10aWdlcmxha2UKLSsvLzsgUlVOOiAle2lzcGN9ICVz IC1vICV0Lm8gLS1ub3N0ZGxpYiAtLXRhcmdldD1zc2UyLWkzMng0IC0tY3B1PXRnbAotIAotIC8v IFJFUVVJUkVTOiBYODZfRU5BQkxFRAotIAotZGlmZiAtLWdpdCBhL3Rlc3RzL2xpdC10ZXN0cy9j cHVzX3g4Nl9sbHZtMTAuaXNwYyBiL3Rlc3RzL2xpdC10ZXN0cy9jcHVzX3g4Nl9sbHZtMTAuaXNw YwotZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCBlZjAwMDAwZTUuLjAwMDAwMDAwMAot LS0tIGEvdGVzdHMvbGl0LXRlc3RzL2NwdXNfeDg2X2xsdm0xMC5pc3BjCi0rKysgL2Rldi9udWxs Ci1AQCAtMSwxMSArMCwwIEBACi0tLy8gVGhlIHRlc3QgY2hlY2tzIHRoYXQgY3B1IGRlZmluaXRp b25zIChpbmNsdWRpbmcgYWxsIHN5bm9ueW1zKSBhcmUgc3VjY2Vzc2Z1bGx5IGNvbnN1bWVkIGJ5 IGNvbXBpbGVyLgotLQotLS8vOyBSVU46ICV7aXNwY30gJXMgLW8gJXQubyAtLW5vc3RkbGliIC0t dGFyZ2V0PXNzZTItaTMyeDQgLS1jcHU9dGlnZXJsYWtlCi0tLy87IFJVTjogJXtpc3BjfSAlcyAt byAldC5vIC0tbm9zdGRsaWIgLS10YXJnZXQ9c3NlMi1pMzJ4NCAtLWNwdT10Z2wKLS0KLS0vLyBS RVFVSVJFUzogWDg2X0VOQUJMRUQKLS0vLyBSRVFVSVJFUzogTExWTV8xMF8wKwotLQotLXVuaWZv cm0gaW50IGk7Ci0tCi0tdm9pZCBmb28oKSB7fQotZGlmZiAtLWdpdCBhL3Rlc3RzL2xpdC10ZXN0 cy9saXQuY2ZnIGIvdGVzdHMvbGl0LXRlc3RzL2xpdC5jZmcKLWluZGV4IDE3MDE2NTc5ZC4uMDQ1 ZTY5NDM3IDEwMDY0NAotLS0tIGEvdGVzdHMvbGl0LXRlc3RzL2xpdC5jZmcKLSsrKyBiL3Rlc3Rz L2xpdC10ZXN0cy9saXQuY2ZnCi1AQCAtMzAsMTEgKzMwLDYgQEAgcHJpbnQoIkNvbmZpZzoiKQot IAotICMgTExWTSB2ZXJzaW9uCi0gbGx2bV92ZXJzaW9uID0gTG9vc2VWZXJzaW9uKGlzcGNfbGx2 bV92ZXJzaW9uX251bWJlcikKLS1pZiBsbHZtX3ZlcnNpb24gPj0gTG9vc2VWZXJzaW9uKCIxMC4w LjAiKToKLS0gICAgcHJpbnQoIkxMVk1fMTBfMCs6IFlFUyIpCi0tICAgIGNvbmZpZy5hdmFpbGFi bGVfZmVhdHVyZXMuYWRkKCJMTFZNXzEwXzArIikKLS1lbHNlOgotLSAgICBwcmludCgiTExWTV8x MF8wKzogTk8iKQotIAotIGlmIGxsdm1fdmVyc2lvbiA+PSBMb29zZVZlcnNpb24oIjEyLjAuMCIp OgotICAgICBwcmludCgiTExWTV8xMl8wKzogWUVTIikKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXNw Yy9wYXRjaGVzL2xsdm0xMi0wMDMucGF0Y2ggYi9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTIt MDAzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNDIzYWZjOWUzZjkuLjAw MDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAzLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMTUwNCArMCwwIEBACi1Gcm9tIDE4NTFkMThiMjEzZGJhZDE2OTkz NzA3NjE3NmIyZDU1MDk3MzNjNzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEZWVw YWsgUmFqZW5kcmFrdW1hcmFuIDxkZWVwYWsucmFqZW5kcmFrdW1hcmFuQGludGVsLmNvbT4KLURh dGU6IFR1ZSwgMTIgSmFuIDIwMjEgMjI6MTU6MTIgLTA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gZml4 ZXMgIzE4MjEgLSBSZW1vdmluZyBMTFZNR2V0TmFtZSgpIGFuZCBzd2l0Y2hpbmcgdG8KLSBMTFZN OjpUd2luZS4KLQotLS0tCi0gc3JjL2N0eC5jcHAgICAgICB8IDMwNCArKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIHNyYy9jdHguaCAgICAgICAgfCAgNzIg KysrKystLS0tLS0KLSBzcmMvZXhwci5jcHAgICAgIHwgIDM2ICsrKy0tLQotIHNyYy9sbHZtdXRp bC5jcHAgfCAgMTcgLS0tCi0gc3JjL2xsdm11dGlsLmggICB8ICAgNSAtCi0gc3JjL29wdC5jcHAg ICAgICB8IDEwMyArKysrKysrKystLS0tLS0tCi0gNiBmaWxlcyBjaGFuZ2VkLCAyNTUgaW5zZXJ0 aW9ucygrKSwgMjgyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5jcHAgYi9z cmMvY3R4LmNwcAotaW5kZXggNDJjNGVhMDlkLi5kZWQ1MjRiNzEgMTAwNjQ0Ci0tLS0gYS9zcmMv Y3R4LmNwcAotKysrIGIvc3JjL2N0eC5jcHAKLUBAIC0xMDIwLDggKzEwMjAsOCBAQCB2b2lkIEZ1 bmN0aW9uRW1pdENvbnRleHQ6OkVtaXRDYXNlTGFiZWwoaW50IHZhbHVlLCBib29sIGNoZWNrTWFz aywgU291cmNlUG9zIHBvcwotICAgICBsbHZtOjpCYXNpY0Jsb2NrICpiYkNhc2VJbXBsID0gTlVM TDsKLSAgICAgaWYgKGVtaXRHZW5YSGFyZHdhcmVNYXNrKCkpIHsKLSAgICAgICAgIC8vIENyZWF0 ZSBiYXNpYyBibG9jayB3aXRoIGFjdHVhbCBjYXNlIGltcGxlbWVudGF0aW9uCi0tICAgICAgICBz dGQ6OnN0cmluZyBiYk5hbWUgPSBiYkNhc2UtPmdldE5hbWUoKS5zdHIoKSArICJfaW1wbCI7Ci0t ICAgICAgICBiYkNhc2VJbXBsID0gQ3JlYXRlQmFzaWNCbG9jayhiYk5hbWUuY19zdHIoKSwgYmJD YXNlKTsKLSsgICAgICAgIGxsdm06OlR3aW5lIGJiTmFtZSA9IGxsdm06OlR3aW5lKGJiQ2FzZS0+ Z2V0TmFtZSgpKSArICJfaW1wbCI7Ci0rICAgICAgICBiYkNhc2VJbXBsID0gQ3JlYXRlQmFzaWNC bG9jayhiYk5hbWUsIGJiQ2FzZSk7Ci0gICAgIH0KLSAjZW5kaWYKLSAKLUBAIC0xMTg1LDcgKzEx ODUsNyBAQCBib29sIEZ1bmN0aW9uRW1pdENvbnRleHQ6OmluaXRMYWJlbEJCbG9ja3MoQVNUTm9k ZSAqbm9kZSwgdm9pZCAqZGF0YSkgewotICAgICBpZiAoY3R4LT5sYWJlbE1hcC5maW5kKGxzLT5u YW1lKSAhPSBjdHgtPmxhYmVsTWFwLmVuZCgpKQotICAgICAgICAgRXJyb3IobHMtPnBvcywgIk11 bHRpcGxlIGxhYmVscyBuYW1lZCBcIiVzXCIgaW4gZnVuY3Rpb24uIiwgbHMtPm5hbWUuY19zdHIo KSk7Ci0gICAgIGVsc2UgewotLSAgICAgICAgbGx2bTo6QmFzaWNCbG9jayAqYmIgPSBjdHgtPkNy ZWF0ZUJhc2ljQmxvY2sobHMtPm5hbWUuY19zdHIoKSk7Ci0rICAgICAgICBsbHZtOjpCYXNpY0Js b2NrICpiYiA9IGN0eC0+Q3JlYXRlQmFzaWNCbG9jayhscy0+bmFtZSk7Ci0gICAgICAgICBjdHgt PmxhYmVsTWFwW2xzLT5uYW1lXSA9IGJiOwotICAgICB9Ci0gICAgIHJldHVybiB0cnVlOwotQEAg LTEyOTksNyArMTI5OSw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpBbnko bGx2bTo6VmFsdWUgKm1hc2spIHsKLSAgICAgLy8gV2UgY2FuIGFjdHVhbGx5IGNhbGwgZWl0aGVy IG9uZSwgc2luY2UgYm90aCBhcmUgaTMycyBhcyBmYXIgYXMKLSAgICAgLy8gTExWTSdzIHR5cGUg c3lzdGVtIGlzIGNvbmNlcm5lZC4uLgotICAgICBsbHZtOjpGdW5jdGlvbiAqZm1tID0gbW1bMF0t PmZ1bmN0aW9uOwotLSAgICByZXR1cm4gQ2FsbEluc3QoZm1tLCBOVUxMLCBtYXNrLCBMTFZNR2V0 TmFtZShtYXNrLCAiX2FueSIpKTsKLSsgICAgcmV0dXJuIENhbGxJbnN0KGZtbSwgTlVMTCwgbWFz aywgbGx2bTo6VHdpbmUobWFzay0+Z2V0TmFtZSgpKSArICJfYW55Iik7Ci0gfQotIAotIGxsdm06 OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpBbGwobGx2bTo6VmFsdWUgKm1hc2spIHsKLUBA IC0xMzE1LDcgKzEzMTUsNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWxs KGxsdm06OlZhbHVlICptYXNrKSB7Ci0gICAgIC8vIFdlIGNhbiBhY3R1YWxseSBjYWxsIGVpdGhl ciBvbmUsIHNpbmNlIGJvdGggYXJlIGkzMnMgYXMgZmFyIGFzCi0gICAgIC8vIExMVk0ncyB0eXBl IHN5c3RlbSBpcyBjb25jZXJuZWQuLi4KLSAgICAgbGx2bTo6RnVuY3Rpb24gKmZtbSA9IG1tWzBd LT5mdW5jdGlvbjsKLS0gICAgcmV0dXJuIENhbGxJbnN0KGZtbSwgTlVMTCwgbWFzaywgTExWTUdl dE5hbWUobWFzaywgIl9hbGwiKSk7Ci0rICAgIHJldHVybiBDYWxsSW5zdChmbW0sIE5VTEwsIG1h c2ssIGxsdm06OlR3aW5lKG1hc2stPmdldE5hbWUoKSkgKyAiX2FsbCIpOwotIH0KLSAKLSBsbHZt OjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Tm9uZShsbHZtOjpWYWx1ZSAqbWFzaykgewot QEAgLTEzMzEsNyArMTMzMSw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpO b25lKGxsdm06OlZhbHVlICptYXNrKSB7Ci0gICAgIC8vIFdlIGNhbiBhY3R1YWxseSBjYWxsIGVp dGhlciBvbmUsIHNpbmNlIGJvdGggYXJlIGkzMnMgYXMgZmFyIGFzCi0gICAgIC8vIExMVk0ncyB0 eXBlIHN5c3RlbSBpcyBjb25jZXJuZWQuLi4KLSAgICAgbGx2bTo6RnVuY3Rpb24gKmZtbSA9IG1t WzBdLT5mdW5jdGlvbjsKLS0gICAgcmV0dXJuIENhbGxJbnN0KGZtbSwgTlVMTCwgbWFzaywgTExW TUdldE5hbWUobWFzaywgIl9ub25lIikpOwotKyAgICByZXR1cm4gQ2FsbEluc3QoZm1tLCBOVUxM LCBtYXNrLCBsbHZtOjpUd2luZShtYXNrLT5nZXROYW1lKCkpICsgIl9ub25lIik7Ci0gfQotIAot IGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMYW5lTWFzayhsbHZtOjpWYWx1ZSAq dikgewotQEAgLTEzNDksNyArMTM0OSw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250 ZXh0OjpMYW5lTWFzayhsbHZtOjpWYWx1ZSAqdikgewotICAgICAvLyBXZSBjYW4gYWN0dWFsbHkg Y2FsbCBlaXRoZXIgb25lLCBzaW5jZSBib3RoIGFyZSBpMzJzIGFzIGZhciBhcwotICAgICAvLyBM TFZNJ3MgdHlwZSBzeXN0ZW0gaXMgY29uY2VybmVkLi4uCi0gICAgIGxsdm06OkZ1bmN0aW9uICpm bW0gPSBtbVswXS0+ZnVuY3Rpb247Ci0tICAgIHJldHVybiBDYWxsSW5zdChmbW0sIE5VTEwsIHYs IExMVk1HZXROYW1lKHYsICJfbW92bXNrIikpOwotKyAgICByZXR1cm4gQ2FsbEluc3QoZm1tLCBO VUxMLCB2LCBsbHZtOjpUd2luZSh2LT5nZXROYW1lKCkpICsgIl9tb3Ztc2siKTsKLSB9Ci0gCi0g bGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6Ok1hc2tzQWxsRXF1YWwobGx2bTo6VmFs dWUgKnYxLCBsbHZtOjpWYWx1ZSAqdjIpIHsKLUBAIC0xMzY0LDExICsxMzY0LDEyIEBAIGxsdm06 OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpNYXNrc0FsbEVxdWFsKGxsdm06OlZhbHVlICp2 MSwgbGx2bTo6VmFsdWUgKnYyCi0gI2Vsc2UKLSAgICAgaWYgKGctPnRhcmdldC0+Z2V0QXJjaCgp ID09IEFyY2g6Ondhc20zMikgewotICAgICAgICAgbGx2bTo6RnVuY3Rpb24gKmZtbSA9IG0tPm1v ZHVsZS0+Z2V0RnVuY3Rpb24oIl9fd2FzbV9jbXBfbXNrX2VxIik7Ci0tICAgICAgICByZXR1cm4g Q2FsbEluc3QoZm1tLCBOVUxMLCB7djEsIHYyfSwgTExWTUdldE5hbWUoIndhc21fY21wX21za19l cSIsIHYxLCB2MikpOwotKyAgICAgICAgcmV0dXJuIENhbGxJbnN0KGZtbSwgTlVMTCwge3YxLCB2 Mn0sICgobGx2bTo6VHdpbmUoIndhc21fY21wX21za19lcV8iKSArIHYxLT5nZXROYW1lKCkpICsg Il8iKSArIHYyLT5nZXROYW1lKCkpOwotICAgICB9Ci0gICAgIGxsdm06OlZhbHVlICptbTEgPSBM YW5lTWFzayh2MSk7Ci0gICAgIGxsdm06OlZhbHVlICptbTIgPSBMYW5lTWFzayh2Mik7Ci0tICAg IHJldHVybiBDbXBJbnN0KGxsdm06Okluc3RydWN0aW9uOjpJQ21wLCBsbHZtOjpDbXBJbnN0OjpJ Q01QX0VRLCBtbTEsIG1tMiwgTExWTUdldE5hbWUoImVxdWFsIiwgdjEsIHYyKSk7Ci0rICAgIHJl dHVybiBDbXBJbnN0KGxsdm06Okluc3RydWN0aW9uOjpJQ21wLCBsbHZtOjpDbXBJbnN0OjpJQ01Q X0VRLCBtbTEsIG1tMiwKLSsgICAgICAgICAgICAgICAgICAgKChsbHZtOjpUd2luZSgiZXF1YWxf IikgKyB2MS0+Z2V0TmFtZSgpKSArICJfIikgKyB2Mi0+Z2V0TmFtZSgpKTsKLSAjZW5kaWYKLSB9 Ci0gCi1AQCAtMTM5Miw3ICsxMzkzLDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRl eHQ6OkdldFN0cmluZ1B0cihjb25zdCBzdGQ6OnN0cmluZyAmc3RyKSB7Ci0gICAgIHJldHVybiBu ZXcgbGx2bTo6Qml0Q2FzdEluc3QobHN0clB0ciwgTExWTVR5cGVzOjpWb2lkUG9pbnRlclR5cGUs ICJzdHJfdm9pZF9wdHIiLCBiYmxvY2spOwotIH0KLSAKLS1sbHZtOjpCYXNpY0Jsb2NrICpGdW5j dGlvbkVtaXRDb250ZXh0OjpDcmVhdGVCYXNpY0Jsb2NrKGNvbnN0IGNoYXIgKm5hbWUsIGxsdm06 OkJhc2ljQmxvY2sgKmluc2VydEFmdGVyKSB7Ci0rbGx2bTo6QmFzaWNCbG9jayAqRnVuY3Rpb25F bWl0Q29udGV4dDo6Q3JlYXRlQmFzaWNCbG9jayhjb25zdCBsbHZtOjpUd2luZSAmbmFtZSwgbGx2 bTo6QmFzaWNCbG9jayAqaW5zZXJ0QWZ0ZXIpIHsKLSAgICAgbGx2bTo6QmFzaWNCbG9jayAqbmV3 QkIgPSBsbHZtOjpCYXNpY0Jsb2NrOjpDcmVhdGUoKmctPmN0eCwgbmFtZSwgbGx2bUZ1bmN0aW9u KTsKLSAgICAgaWYgKGluc2VydEFmdGVyKQotICAgICAgICAgbmV3QkItPm1vdmVBZnRlcihpbnNl cnRBZnRlcik7Ci1AQCAtMTQxNiwxNCArMTQxNywxNSBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25F bWl0Q29udGV4dDo6STFWZWNUb0Jvb2xWZWMobGx2bTo6VmFsdWUgKmIpIHsKLSAKLSAgICAgICAg IGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgYXQtPmdldE51bUVsZW1lbnRzKCk7ICsraSkg ewotICAgICAgICAgICAgIGxsdm06OlZhbHVlICplbHQgPSBFeHRyYWN0SW5zdChiLCBpKTsKLS0g ICAgICAgICAgICBsbHZtOjpWYWx1ZSAqc2V4dCA9IFN3aXRjaEJvb2xTaXplKGVsdCwgTExWTVR5 cGVzOjpCb29sVmVjdG9yU3RvcmFnZVR5cGUsIExMVk1HZXROYW1lKGVsdCwgIl90b19ib29sdmVj IikpOwotKyAgICAgICAgICAgIGxsdm06OlZhbHVlICpzZXh0ID0KLSsgICAgICAgICAgICAgICAg U3dpdGNoQm9vbFNpemUoZWx0LCBMTFZNVHlwZXM6OkJvb2xWZWN0b3JTdG9yYWdlVHlwZSwgbGx2 bTo6VHdpbmUoZWx0LT5nZXROYW1lKCkpICsgIl90b19ib29sdmVjIik7Ci0gICAgICAgICAgICAg cmV0ID0gSW5zZXJ0SW5zdChyZXQsIHNleHQsIGkpOwotICAgICAgICAgfQotICAgICAgICAgcmV0 dXJuIHJldDsKLSAgICAgfSBlbHNlIHsKLSAgICAgICAgIC8vIEZvciBub24tYXJyYXkgdHlwZXMs IGNvbnZlcnQgdG8gJ0xMVk1UeXBlczo6Qm9vbFZlY3RvclR5cGUnIGlmCi0gICAgICAgICAvLyBu ZWNlc3NhcnkuCi0tICAgICAgICByZXR1cm4gU3dpdGNoQm9vbFNpemUoYiwgTExWTVR5cGVzOjpC b29sVmVjdG9yVHlwZSwgTExWTUdldE5hbWUoYiwgIl90b19ib29sdmVjIikpOwotKyAgICAgICAg cmV0dXJuIFN3aXRjaEJvb2xTaXplKGIsIExMVk1UeXBlczo6Qm9vbFZlY3RvclR5cGUsIGxsdm06 OlR3aW5lKGItPmdldE5hbWUoKSkgKyAiX3RvX2Jvb2x2ZWMiKTsKLSAgICAgfQotIH0KLSAKLUBA IC0xNTYzLDcgKzE1NjUsNyBAQCBzdGF0aWMgaW50IGxBcnJheVZlY3RvcldpZHRoKGxsdm06OlR5 cGUgKnQpIHsKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJpbmFy eU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpCaW5hcnlPcHMgaW5zdCwgbGx2bTo6VmFsdWUg KnYwLCBsbHZtOjpWYWx1ZSAqdjEsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpIHsKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsK LSAgICAgaWYgKHYwID09IE5VTEwgfHwgdjEgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9z KGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwot QEAgLTE1NzMsNyArMTU3NSw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpC aW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlvbjo6QmluYXJ5T3BzIGluCi0gICAgIGxsdm06 OlR5cGUgKnR5cGUgPSB2MC0+Z2V0VHlwZSgpOwotICAgICBpbnQgYXJyYXlTaXplID0gbEFycmF5 VmVjdG9yV2lkdGgodHlwZSk7Ci0gICAgIGlmIChhcnJheVNpemUgPT0gMCkgewotLSAgICAgICAg bGx2bTo6SW5zdHJ1Y3Rpb24gKmJvcCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUoaW5z dCwgdjAsIHYxLCBuYW1lID8gbmFtZSA6ICIiLCBiYmxvY2spOwotKyAgICAgICAgbGx2bTo6SW5z dHJ1Y3Rpb24gKmJvcCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUoaW5zdCwgdjAsIHYx LCBuYW1lLCBiYmxvY2spOwotICAgICAgICAgQWRkRGVidWdQb3MoYm9wKTsKLSAgICAgICAgIHJl dHVybiBib3A7Ci0gICAgIH0gZWxzZSB7Ci1AQCAtMTU5MSw3ICsxNTkzLDcgQEAgbGx2bTo6VmFs dWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9u OjpCaW5hcnlPcHMgaW4KLSAgICAgfQotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0 Q29udGV4dDo6Tm90T3BlcmF0b3IobGx2bTo6VmFsdWUgKnYsIGNvbnN0IGNoYXIgKm5hbWUpIHsK LStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Tm90T3BlcmF0b3IobGx2bTo6VmFs dWUgKnYsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2ID09IE5VTEwpIHsK LSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAg ICAgICByZXR1cm4gTlVMTDsKLUBAIC0xNjAzLDE0ICsxNjA1LDE0IEBAIGxsdm06OlZhbHVlICpG dW5jdGlvbkVtaXRDb250ZXh0OjpOb3RPcGVyYXRvcihsbHZtOjpWYWx1ZSAqdiwgY29uc3QgY2hh ciAqbmFtZSkKLSAgICAgbGx2bTo6VHlwZSAqdHlwZSA9IHYtPmdldFR5cGUoKTsKLSAgICAgaW50 IGFycmF5U2l6ZSA9IGxBcnJheVZlY3RvcldpZHRoKHR5cGUpOwotICAgICBpZiAoYXJyYXlTaXpl ID09IDApIHsKLS0gICAgICAgIGxsdm06Okluc3RydWN0aW9uICpiaW5zdCA9IGxsdm06OkJpbmFy eU9wZXJhdG9yOjpDcmVhdGVOb3QodiwgbmFtZSA/IG5hbWUgOiAibm90IiwgYmJsb2NrKTsKLSsg ICAgICAgIGxsdm06Okluc3RydWN0aW9uICpiaW5zdCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpD cmVhdGVOb3QodiwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAibm90IiA6IG5hbWUsIGJibG9j ayk7Ci0gICAgICAgICBBZGREZWJ1Z1BvcyhiaW5zdCk7Ci0gICAgICAgICByZXR1cm4gYmluc3Q7 Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgICBsbHZtOjpWYWx1ZSAqcmV0ID0gbGx2bTo6VW5kZWZW YWx1ZTo6Z2V0KHR5cGUpOwotICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcnJheVNpemU7 ICsraSkgewotICAgICAgICAgICAgIGxsdm06OlZhbHVlICphID0gRXh0cmFjdEluc3QodiwgaSk7 Ci0tICAgICAgICAgICAgbGx2bTo6VmFsdWUgKm9wID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNy ZWF0ZU5vdChhLCBuYW1lID8gbmFtZSA6ICJub3QiLCBiYmxvY2spOwotKyAgICAgICAgICAgIGxs dm06OlZhbHVlICpvcCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGVOb3QoYSwgbmFtZS5p c1RyaXZpYWxseUVtcHR5KCkgPyAibm90IiA6IG5hbWUsIGJibG9jayk7Ci0gICAgICAgICAgICAg QWRkRGVidWdQb3Mob3ApOwotICAgICAgICAgICAgIHJldCA9IEluc2VydEluc3QocmV0LCBvcCwg aSk7Ci0gICAgICAgICB9Ci1AQCAtMTYzOCw3ICsxNjQwLDcgQEAgc3RhdGljIGxsdm06OlR5cGUg KmxHZXRNYXRjaGluZ0Jvb2xWZWN0b3JUeXBlKGxsdm06OlR5cGUgKnR5cGUpIHsKLSB9Ci0gCi0g bGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkNtcEluc3QobGx2bTo6SW5zdHJ1Y3Rp b246Ok90aGVyT3BzIGluc3QsIGxsdm06OkNtcEluc3Q6OlByZWRpY2F0ZSBwcmVkLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICp2MCwgbGx2 bTo6VmFsdWUgKnYxLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnYwLCBsbHZtOjpWYWx1ZSAqdjEsIGNv bnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2MCA9PSBOVUxMIHx8IHYxID09IE5V TEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7 Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0xNjQ4LDcgKzE2NTAsOCBAQCBsbHZtOjpWYWx1 ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Q21wSW5zdChsbHZtOjpJbnN0cnVjdGlvbjo6T3RoZXJP cHMgaW5zdCwgbGx2bQotICAgICBsbHZtOjpUeXBlICp0eXBlID0gdjAtPmdldFR5cGUoKTsKLSAg ICAgaW50IGFycmF5U2l6ZSA9IGxBcnJheVZlY3RvcldpZHRoKHR5cGUpOwotICAgICBpZiAoYXJy YXlTaXplID09IDApIHsKLS0gICAgICAgIGxsdm06Okluc3RydWN0aW9uICpjaSA9IGxsdm06OkNt cEluc3Q6OkNyZWF0ZShpbnN0LCBwcmVkLCB2MCwgdjEsIG5hbWUgPyBuYW1lIDogImNtcCIsIGJi bG9jayk7Ci0rICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqY2kgPQotKyAgICAgICAgICAgIGxs dm06OkNtcEluc3Q6OkNyZWF0ZShpbnN0LCBwcmVkLCB2MCwgdjEsIG5hbWUuaXNUcml2aWFsbHlF bXB0eSgpID8gImNtcCIgOiBuYW1lLCBiYmxvY2spOwotICAgICAgICAgQWRkRGVidWdQb3MoY2kp OwotICAgICAgICAgcmV0dXJuIGNpOwotICAgICB9IGVsc2UgewotQEAgLTE2NTcsMTQgKzE2NjAs MTQgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkNtcEluc3QobGx2bTo6SW5z dHJ1Y3Rpb246Ok90aGVyT3BzIGluc3QsIGxsdm0KLSAgICAgICAgIGZvciAoaW50IGkgPSAwOyBp IDwgYXJyYXlTaXplOyArK2kpIHsKLSAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqYSA9IEV4dHJh Y3RJbnN0KHYwLCBpKTsKLSAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqYiA9IEV4dHJhY3RJbnN0 KHYxLCBpKTsKLS0gICAgICAgICAgICBsbHZtOjpWYWx1ZSAqb3AgPSBDbXBJbnN0KGluc3QsIHBy ZWQsIGEsIGIsIG5hbWUpOwotKyAgICAgICAgICAgIGxsdm06OlZhbHVlICpvcCA9IENtcEluc3Qo aW5zdCwgcHJlZCwgYSwgYiwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAiY21wIiA6IG5hbWUp OwotICAgICAgICAgICAgIHJldCA9IEluc2VydEluc3QocmV0LCBvcCwgaSk7Ci0gICAgICAgICB9 Ci0gICAgICAgICByZXR1cm4gcmV0OwotICAgICB9Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5j dGlvbkVtaXRDb250ZXh0OjpTbWVhclVuaWZvcm0obGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBj aGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlNtZWFyVW5p Zm9ybShsbHZtOjpWYWx1ZSAqdmFsdWUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAg IGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMTcwNCwyMSArMTcw NywxOSBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6U21lYXJVbmlmb3JtKGxs dm06OlZhbHVlICp2YWx1ZSwgY29uc3QgY2hhciAqbgotICAgICByZXR1cm4gcmV0OwotIH0KLSAK LS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Qml0Q2FzdEluc3QobGx2bTo6VmFs dWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6 VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJpdENhc3RJbnN0KGxsdm06OlZhbHVlICp2YWx1 ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYg KHZhbHVlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJv ckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAo bmFtZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX2JpdGNh c3QiKTsKLS0KLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6Qml0Q2Fz dEluc3QodmFsdWUsIHR5cGUsIG5hbWUsIGJibG9jayk7Ci0rICAgIGxsdm06Okluc3RydWN0aW9u ICppbnN0ID0gbmV3IGxsdm06OkJpdENhc3RJbnN0KAotKyAgICAgICAgdmFsdWUsIHR5cGUsIG5h bWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAi X2JpdGNhc3QiIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0gICAg IHJldHVybiBpbnN0OwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6 UHRyVG9JbnRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3QgY2hhciAqbmFtZSkgewotK2xs dm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpQdHJUb0ludEluc3QobGx2bTo6VmFsdWUg KnZhbHVlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodmFsdWUgPT0gTlVM TCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsK LSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTE3MjgsMjMgKzE3MjksMTkgQEAgbGx2bTo6VmFs dWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlB0clRvSW50SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUs IGNvbnN0IGNoYXIgKm4KLSAgICAgICAgIC8vIG5vLW9wIGZvciB2YXJ5aW5nIHBvaW50ZXJzOyB0 aGV5J3JlIGFscmVhZHkgdmVjdG9ycyBvZiBpbnRzCi0gICAgICAgICByZXR1cm4gdmFsdWU7Ci0g Ci0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodmFs dWUsICJfcHRyMmludCIpOwotICAgICBsbHZtOjpUeXBlICp0eXBlID0gTExWTVR5cGVzOjpQb2lu dGVySW50VHlwZTsKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6UHRy VG9JbnRJbnN0KHZhbHVlLCB0eXBlLCBuYW1lLCBiYmxvY2spOwotKyAgICBsbHZtOjpJbnN0cnVj dGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpQdHJUb0ludEluc3QoCi0rICAgICAgICB2YWx1ZSwgdHlw ZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgp KSArICJfcHRyMmludCIgOiBuYW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsK LSAgICAgcmV0dXJuIGluc3Q7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250 ZXh0OjpQdHJUb0ludEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0b1R5cGUs IGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6 UHRyVG9JbnRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdG9UeXBlLCBjb25z dCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodmFsdWUgPT0gTlVMTCkgewotICAgICAg ICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJl dHVybiBOVUxMOwotICAgICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAgICAgICBu YW1lID0gTExWTUdldE5hbWUodmFsdWUsICJfcHRyMmludCIpOwotLQotICAgICBsbHZtOjpUeXBl ICpmcm9tVHlwZSA9IHZhbHVlLT5nZXRUeXBlKCk7Ci0gICAgIGlmIChsbHZtOjppc2E8bGx2bTo6 VmVjdG9yVHlwZT4oZnJvbVR5cGUpKSB7Ci0gICAgICAgICAvLyB2YXJ5aW5nIHBvaW50ZXIKLUBA IC0xNzUyLDI3ICsxNzQ5LDI2IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpQ dHJUb0ludEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0Ci0gICAgICAgICAg ICAgLy8gYWxyZWFkeSB0aGUgcmlnaHQgdHlwZS0tZG9uZQotICAgICAgICAgICAgIHJldHVybiB2 YWx1ZTsKLSAgICAgICAgIGVsc2UgaWYgKGZyb21UeXBlLT5nZXRTY2FsYXJTaXplSW5CaXRzKCkg PiB0b1R5cGUtPmdldFNjYWxhclNpemVJbkJpdHMoKSkKLS0gICAgICAgICAgICByZXR1cm4gVHJ1 bmNJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUpOwotKyAgICAgICAgICAgIHJldHVybiBUcnVuY0lu c3QodmFsdWUsIHRvVHlwZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuaXNU cml2aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX3B0cjJp bnQiIDogbmFtZSk7Ci0gICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICBBc3NlcnRQb3MoY3Vy cmVudFBvcywgZnJvbVR5cGUtPmdldFNjYWxhclNpemVJbkJpdHMoKSA8IHRvVHlwZS0+Z2V0U2Nh bGFyU2l6ZUluQml0cygpKTsKLS0gICAgICAgICAgICByZXR1cm4gWkV4dEluc3QodmFsdWUsIHRv VHlwZSwgbmFtZSk7Ci0rICAgICAgICAgICAgcmV0dXJuIFpFeHRJbnN0KHZhbHVlLCB0b1R5cGUs IG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdpbmUodmFsdWUtPmdldE5hbWUoKSkg KyAiX3B0cjJpbnQiIDogbmFtZSk7Ci0gICAgICAgICB9Ci0gICAgIH0KLSAKLS0gICAgbGx2bTo6 SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6UHRyVG9JbnRJbnN0KHZhbHVlLCB0b1R5cGUs IG5hbWUsIGJibG9jayk7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06 OlB0clRvSW50SW5zdCgKLSsgICAgICAgIHZhbHVlLCB0b1R5cGUsIG5hbWUuaXNUcml2aWFsbHlF bXB0eSgpID8gbGx2bTo6VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX3B0cjJpbnQiIDogbmFt ZSwgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0gICAgIHJldHVybiBpbnN0Owot IH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6SW50VG9QdHJJbnN0KGxs dm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdG9UeXBlLCBjb25zdCBjaGFyICpuYW1lKSB7 Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkludFRvUHRySW5zdChsbHZtOjpW YWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnRvVHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUp IHsKLSAgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50 UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgfQot IAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHZh bHVlLCAiX2ludDJwdHIiKTsKLS0KLSAgICAgbGx2bTo6VHlwZSAqZnJvbVR5cGUgPSB2YWx1ZS0+ Z2V0VHlwZSgpOwotICAgICBpZiAobGx2bTo6aXNhPGxsdm06OlZlY3RvclR5cGU+KGZyb21UeXBl KSkgewotICAgICAgICAgLy8gdmFyeWluZyBwb2ludGVyCi1AQCAtMTc4MCw5NSArMTc3Niw4NyBA QCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6SW50VG9QdHJJbnN0KGxsdm06OlZh bHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdAotICAgICAgICAgICAgIC8vIGRvbmUKLSAgICAgICAg ICAgICByZXR1cm4gdmFsdWU7Ci0gICAgICAgICBlbHNlIGlmIChmcm9tVHlwZS0+Z2V0U2NhbGFy U2l6ZUluQml0cygpID4gdG9UeXBlLT5nZXRTY2FsYXJTaXplSW5CaXRzKCkpCi0tICAgICAgICAg ICAgcmV0dXJuIFRydW5jSW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lKTsKLSsgICAgICAgICAgICBy ZXR1cm4gVHJ1bmNJbnN0KHZhbHVlLCB0b1R5cGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1l KCkpICsgIl9pbnQycHRyIiA6IG5hbWUpOwotICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAg QXNzZXJ0UG9zKGN1cnJlbnRQb3MsIGZyb21UeXBlLT5nZXRTY2FsYXJTaXplSW5CaXRzKCkgPCB0 b1R5cGUtPmdldFNjYWxhclNpemVJbkJpdHMoKSk7Ci0tICAgICAgICAgICAgcmV0dXJuIFpFeHRJ bnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUpOwotKyAgICAgICAgICAgIHJldHVybiBaRXh0SW5zdCh2 YWx1ZSwgdG9UeXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZhbHVl LT5nZXROYW1lKCkpICsgIl9pbnQycHRyIiA6IG5hbWUpOwotICAgICAgICAgfQotICAgICB9Ci0g Ci0tICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OkludFRvUHRySW5zdCh2 YWx1ZSwgdG9UeXBlLCBuYW1lLCBiYmxvY2spOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5z dCA9IG5ldyBsbHZtOjpJbnRUb1B0ckluc3QoCi0rICAgICAgICB2YWx1ZSwgdG9UeXBlLCBuYW1l LmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9p bnQycHRyIiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKGluc3QpOwotICAgICBy ZXR1cm4gaW5zdDsKLSB9Ci0gCi0tbGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRl eHQ6OlRydW5jSW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0 IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpJbnN0cnVjdGlvbiAqRnVuY3Rpb25FbWl0Q29udGV4dDo6 VHJ1bmNJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgbGx2 bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKLSAgICAgICAgIEFz c2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4g TlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9 IExMVk1HZXROYW1lKHZhbHVlLCAiX3RydW5jIik7Ci0tCi0gICAgIC8vIFRPRE86IHdlIHNob3Vs ZCBwcm9iYWJseSBoYW5kbGUgdGhlIGFycmF5IGNhc2UgYXMgaW4KLSAgICAgLy8gZS5nLiBCaXRD YXN0SW5zdCgpLCBidXQgd2UgZG9uJ3QgY3VycmVudGx5IG5lZWQgdGhhdCBmdW5jdGlvbmFsaXR5 Ci0tICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OlRydW5jSW5zdCh2YWx1 ZSwgdHlwZSwgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBu ZXcgbGx2bTo6VHJ1bmNJbnN0KAotKyAgICAgICAgdmFsdWUsIHR5cGUsIG5hbWUuaXNUcml2aWFs bHlFbXB0eSgpID8gbGx2bTo6VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX3RydW5jIiA6IG5h bWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKGluc3QpOwotICAgICByZXR1cm4gaW5zdDsK LSB9Ci0gCi0gbGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkNhc3RJbnN0 KGxsdm06Okluc3RydWN0aW9uOjpDYXN0T3BzIG9wLCBsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06 OlR5cGUgKnR5cGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYg KHZhbHVlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJv ckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAo bmFtZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX2Nhc3Qi KTsKLS0KLSAgICAgLy8gVE9ETzogd2Ugc2hvdWxkIHByb2JhYmx5IGhhbmRsZSB0aGUgYXJyYXkg Y2FzZSBhcyBpbgotICAgICAvLyBlLmcuIEJpdENhc3RJbnN0KCksIGJ1dCB3ZSBkb24ndCBjdXJy ZW50bHkgbmVlZCB0aGF0IGZ1bmN0aW9uYWxpdHkKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmlu c3QgPSBsbHZtOjpDYXN0SW5zdDo6Q3JlYXRlKG9wLCB2YWx1ZSwgdHlwZSwgbmFtZSwgYmJsb2Nr KTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBsbHZtOjpDYXN0SW5zdDo6Q3JlYXRl KAotKyAgICAgICAgb3AsIHZhbHVlLCB0eXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxs dm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9jYXN0IiA6IG5hbWUsIGJibG9jayk7Ci0g ICAgIEFkZERlYnVnUG9zKGluc3QpOwotICAgICByZXR1cm4gaW5zdDsKLSB9Ci0gCi0tbGx2bTo6 SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkZQQ2FzdEluc3QobGx2bTo6VmFsdWUg KnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6SW5z dHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkZQQ2FzdEluc3QobGx2bTo6VmFsdWUgKnZh bHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBp ZiAodmFsdWUgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVy cm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotICAgICB9Ci0gCi0tICAgIGlm IChuYW1lID09IE5VTEwpCi0tICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodmFsdWUsICJfY2Fz dCIpOwotLQotICAgICAvLyBUT0RPOiB3ZSBzaG91bGQgcHJvYmFibHkgaGFuZGxlIHRoZSBhcnJh eSBjYXNlIGFzIGluCi0gICAgIC8vIGUuZy4gQml0Q2FzdEluc3QoKSwgYnV0IHdlIGRvbid0IGN1 cnJlbnRseSBuZWVkIHRoYXQgZnVuY3Rpb25hbGl0eQotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAq aW5zdCA9IGxsdm06OkNhc3RJbnN0OjpDcmVhdGVGUENhc3QodmFsdWUsIHR5cGUsIG5hbWUsIGJi bG9jayk7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbGx2bTo6Q2FzdEluc3Q6OkNy ZWF0ZUZQQ2FzdCgKLSsgICAgICAgIHZhbHVlLCB0eXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHko KSA/IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9jYXN0IiA6IG5hbWUsIGJibG9j ayk7Ci0gICAgIEFkZERlYnVnUG9zKGluc3QpOwotICAgICByZXR1cm4gaW5zdDsKLSB9Ci0gCi0t bGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlNFeHRJbnN0KGxsdm06OlZh bHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06 Okluc3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250ZXh0OjpTRXh0SW5zdChsbHZtOjpWYWx1ZSAq dmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAg IGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0KLSAKLS0gICAg aWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl9z ZXh0Iik7Ci0tCi0gICAgIC8vIFRPRE86IHdlIHNob3VsZCBwcm9iYWJseSBoYW5kbGUgdGhlIGFy cmF5IGNhc2UgYXMgaW4KLSAgICAgLy8gZS5nLiBCaXRDYXN0SW5zdCgpLCBidXQgd2UgZG9uJ3Qg Y3VycmVudGx5IG5lZWQgdGhhdCBmdW5jdGlvbmFsaXR5Ci0tICAgIGxsdm06Okluc3RydWN0aW9u ICppbnN0ID0gbmV3IGxsdm06OlNFeHRJbnN0KHZhbHVlLCB0eXBlLCBuYW1lLCBiYmxvY2spOwot KyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpTRXh0SW5zdCgKLSsgICAg ICAgIHZhbHVlLCB0eXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZh bHVlLT5nZXROYW1lKCkpICsgIl9zZXh0IiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVn UG9zKGluc3QpOwotICAgICByZXR1cm4gaW5zdDsKLSB9Ci0gCi0tbGx2bTo6SW5zdHJ1Y3Rpb24g KkZ1bmN0aW9uRW1pdENvbnRleHQ6OlpFeHRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6 VHlwZSAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06Okluc3RydWN0aW9uICpGdW5j dGlvbkVtaXRDb250ZXh0OjpaRXh0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUg KnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxM KSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwot ICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkK LS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl96ZXh0Iik7Ci0tCi0gICAgIC8v IFRPRE86IHdlIHNob3VsZCBwcm9iYWJseSBoYW5kbGUgdGhlIGFycmF5IGNhc2UgYXMgaW4KLSAg ICAgLy8gZS5nLiBCaXRDYXN0SW5zdCgpLCBidXQgd2UgZG9uJ3QgY3VycmVudGx5IG5lZWQgdGhh dCBmdW5jdGlvbmFsaXR5Ci0tICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06 OlpFeHRJbnN0KHZhbHVlLCB0eXBlLCBuYW1lLCBiYmxvY2spOwotKyAgICBsbHZtOjpJbnN0cnVj dGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpaRXh0SW5zdCgKLSsgICAgICAgIHZhbHVlLCB0eXBlLCBu YW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsg Il96ZXh0IiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKGluc3QpOwotICAgICBy ZXR1cm4gaW5zdDsKLSB9Ci1AQCAtMTkxMywxNCArMTkwMSwxNSBAQCBsbHZtOjpWYWx1ZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6YXBwbHlWYXJ5aW5nR0VQKGxsdm06OlZhbHVlICpiYXNlUHRyLCBs bHZtOjpWYQotICAgICAgICAgc2NhbGUgPSBTbWVhclVuaWZvcm0oc2NhbGUpOwotICAgICAgICAg QXNzZXJ0KGluZGV4ICE9IE5VTEwpOwotICAgICAgICAgLy8gb2Zmc2V0ID0gaW5kZXggKiBzY2Fs ZQotLSAgICAgICAgb2Zmc2V0ID0gQmluYXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246Ok11 bCwgc2NhbGUsIGluZGV4LCBMTFZNR2V0TmFtZSgibXVsIiwgc2NhbGUsIGluZGV4KSk7Ci0rICAg ICAgICBvZmZzZXQgPSBCaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlvbjo6TXVsLCBzY2Fs ZSwgaW5kZXgsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxsdm06OlR3aW5l KCJtdWxfIikgKyBzY2FsZS0+Z2V0TmFtZSgpKSArICJfIikgKyBpbmRleC0+Z2V0TmFtZSgpKTsK LSAgICAgfQotIAotICAgICAvLyBGb3IgNjQtYml0IHRhcmdldHMsIGlmIHdlJ3ZlIGJlZW4gZG9p bmcgb3VyIG9mZnNldCBjYWxjdWxhdGlvbnMgaW4KLSAgICAgLy8gMzIgYml0cywgd2Ugc3RpbGwg aGF2ZSB0byBjb252ZXJ0IHRvIGEgNjQtYml0IHZhbHVlIGJlZm9yZSB3ZQotICAgICAvLyBhY3R1 YWxseSBhZGQgdGhlIG9mZnNldCB0byB0aGUgcG9pbnRlci4KLSAgICAgaWYgKGctPnRhcmdldC0+ aXMzMkJpdCgpID09IGZhbHNlICYmIGctPm9wdC5mb3JjZTMyQml0QWRkcmVzc2luZyA9PSB0cnVl KQotLSAgICAgICAgb2Zmc2V0ID0gU0V4dEluc3Qob2Zmc2V0LCBMTFZNVHlwZXM6OkludDY0VmVj dG9yVHlwZSwgTExWTUdldE5hbWUob2Zmc2V0LCAiX3RvXzY0IikpOwotKyAgICAgICAgb2Zmc2V0 ID0gU0V4dEluc3Qob2Zmc2V0LCBMTFZNVHlwZXM6OkludDY0VmVjdG9yVHlwZSwgbGx2bTo6VHdp bmUob2Zmc2V0LT5nZXROYW1lKCkpICsgIl90b182NCIpOwotIAotICAgICAvLyBTbWVhciBvdXQg dGhlIHBvaW50ZXIgdG8gYmUgdmFyeWluZzsgZWl0aGVyIHRoZSBiYXNlIHBvaW50ZXIgb3IgdGhl Ci0gICAgIC8vIGluZGV4IG11c3QgYmUgdmFyeWluZyBmb3IgdGhpcyBtZXRob2QgdG8gYmUgY2Fs bGVkLgotQEAgLTE5MjksNyArMTkxOCw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250 ZXh0OjphcHBseVZhcnlpbmdHRVAobGx2bTo6VmFsdWUgKmJhc2VQdHIsIGxsdm06OlZhCi0gICAg IGxsdm06OlZhbHVlICp2YXJ5aW5nUHRyID0gYmFzZUlzVW5pZm9ybSA/IFNtZWFyVW5pZm9ybShi YXNlUHRyKSA6IGJhc2VQdHI7Ci0gCi0gICAgIC8vIG5ld1B0ciA9IHB0ciArIG9mZnNldAotLSAg ICByZXR1cm4gQmluYXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwgdmFyeWluZ1B0 ciwgb2Zmc2V0LCBMTFZNR2V0TmFtZShiYXNlUHRyLCAiX29mZnNldCIpKTsKLSsgICAgcmV0dXJu IEJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpBZGQsIHZhcnlpbmdQdHIsIG9mZnNl dCwgbGx2bTo6VHdpbmUoYmFzZVB0ci0+Z2V0TmFtZSgpKSArICJfb2Zmc2V0Iik7Ci0gfQotIAot IHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6TWF0Y2hJbnRlZ2VyVHlwZXMobGx2bTo6VmFsdWUg Kip2MCwgbGx2bTo6VmFsdWUgKip2MSkgewotQEAgLTIwMDYsMTMgKzE5OTUsMTMgQEAgbGx2bTo6 VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6Ok1ha2VTbGljZVBvaW50ZXIobGx2bTo6VmFsdWUg KnB0ciwgbGx2bTo6VmFsdWUKLSAgICAgbGx2bTo6U3RydWN0VHlwZSAqc3QgPSBsbHZtOjpTdHJ1 Y3RUeXBlOjpnZXQoKmctPmN0eCwgZWx0VHlwZXMpOwotIAotICAgICBsbHZtOjpWYWx1ZSAqcmV0 ID0gbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KHN0KTsKLS0gICAgcmV0ID0gSW5zZXJ0SW5zdChyZXQs IHB0ciwgMCwgTExWTUdldE5hbWUocmV0LCAiX3NsaWNlX3B0ciIpKTsKLS0gICAgcmV0ID0gSW5z ZXJ0SW5zdChyZXQsIG9mZnNldCwgMSwgTExWTUdldE5hbWUocmV0LCAiX3NsaWNlX29mZnNldCIp KTsKLSsgICAgcmV0ID0gSW5zZXJ0SW5zdChyZXQsIHB0ciwgMCwgbGx2bTo6VHdpbmUocmV0LT5n ZXROYW1lKCkpICsgIl9zbGljZV9wdHIiKTsKLSsgICAgcmV0ID0gSW5zZXJ0SW5zdChyZXQsIG9m ZnNldCwgMSwgbGx2bTo6VHdpbmUocmV0LT5nZXROYW1lKCkpICsgIl9zbGljZV9vZmZzZXQiKTsK LSAgICAgcmV0dXJuIHJldDsKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRl eHQ6OkdldEVsZW1lbnRQdHJJbnN0KGxsdm06OlZhbHVlICpiYXNlUHRyLCBsbHZtOjpWYWx1ZSAq aW5kZXgsIGNvbnN0IFR5cGUgKnB0clJlZlR5cGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpIHsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6 VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKGJhc2VQdHIgPT0gTlVMTCB8fCBpbmRleCA9PSBOVUxM KSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwot ICAgICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMjA2NSw4ICsyMDU0LDggQEAgbGx2bTo6VmFsdWUg KkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldEVsZW1lbnRQdHJJbnN0KGxsdm06OlZhbHVlICpiYXNl UHRyLCBsbHZtOjoKLSAgICAgICAgIC8vIHVuaWZvcm0sIHNvIGp1c3QgZW1pdCB0aGUgcmVndWxh ciBMTFZNIEdFUCBpbnN0cnVjdGlvbgotICAgICAgICAgbGx2bTo6VmFsdWUgKmluZFsxXSA9IHtp bmRleH07Ci0gICAgICAgICBsbHZtOjpBcnJheVJlZjxsbHZtOjpWYWx1ZSAqPiBhcnJheVJlZigm aW5kWzBdLCAmaW5kWzFdKTsKLS0gICAgICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0KLS0g ICAgICAgICAgICBsbHZtOjpHZXRFbGVtZW50UHRySW5zdDo6Q3JlYXRlKFBUWVBFKGJhc2VQdHIp LCBiYXNlUHRyLCBhcnJheVJlZiwgbmFtZSA/IG5hbWUgOiAiZ2VwIiwgYmJsb2NrKTsKLSsgICAg ICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbGx2bTo6R2V0RWxlbWVudFB0ckluc3Q6OkNy ZWF0ZShQVFlQRShiYXNlUHRyKSwgYmFzZVB0ciwgYXJyYXlSZWYsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5p c1RyaXZpYWxseUVtcHR5KCkgPyAiZ2VwIiA6IG5hbWUsIGJibG9jayk7Ci0gICAgICAgICBBZGRE ZWJ1Z1BvcyhpbnN0KTsKLSAgICAgICAgIHJldHVybiBpbnN0OwotICAgICB9IGVsc2UKLUBAIC0y MDc0LDcgKzIwNjMsNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0RWxl bWVudFB0ckluc3QobGx2bTo6VmFsdWUgKmJhc2VQdHIsIGxsdm06OgotIH0KLSAKLSBsbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0RWxlbWVudFB0ckluc3QobGx2bTo6VmFsdWUg KmJhc2VQdHIsIGxsdm06OlZhbHVlICppbmRleDAsIGxsdm06OlZhbHVlICppbmRleDEsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFR5 cGUgKnB0clJlZlR5cGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVHlwZSAqcHRyUmVmVHlwZSwg Y29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKGJhc2VQdHIgPT0gTlVMTCB8fCBp bmRleDAgPT0gTlVMTCB8fCBpbmRleDEgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1 cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAg LTIxMTQsOCArMjEwMyw4IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRF bGVtZW50UHRySW5zdChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgbGx2bTo6Ci0gICAgICAgICAvLyB1 bmlmb3JtLCBzbyBqdXN0IGVtaXQgdGhlIHJlZ3VsYXIgTExWTSBHRVAgaW5zdHJ1Y3Rpb24KLSAg ICAgICAgIGxsdm06OlZhbHVlICppbmRpY2VzWzJdID0ge2luZGV4MCwgaW5kZXgxfTsKLSAgICAg ICAgIGxsdm06OkFycmF5UmVmPGxsdm06OlZhbHVlICo+IGFycmF5UmVmKCZpbmRpY2VzWzBdLCAm aW5kaWNlc1syXSk7Ci0tICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9Ci0tICAgICAg ICAgICAgbGx2bTo6R2V0RWxlbWVudFB0ckluc3Q6OkNyZWF0ZShQVFlQRShiYXNlUHRyKSwgYmFz ZVB0ciwgYXJyYXlSZWYsIG5hbWUgPyBuYW1lIDogImdlcCIsIGJibG9jayk7Ci0rICAgICAgICBs bHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IGxsdm06OkdldEVsZW1lbnRQdHJJbnN0OjpDcmVhdGUo UFRZUEUoYmFzZVB0ciksIGJhc2VQdHIsIGFycmF5UmVmLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2 aWFsbHlFbXB0eSgpID8gImdlcCIgOiBuYW1lLCBiYmxvY2spOwotICAgICAgICAgQWRkRGVidWdQ b3MoaW5zdCk7Ci0gICAgICAgICByZXR1cm4gaW5zdDsKLSAgICAgfSBlbHNlIHsKLUBAIC0yMTM4 LDcgKzIxMjcsNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0RWxlbWVu dFB0ckluc3QobGx2bTo6VmFsdWUgKmJhc2VQdHIsIGxsdm06OgotIH0KLSAKLSBsbHZtOjpWYWx1 ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWRkRWxlbWVudE9mZnNldChsbHZtOjpWYWx1ZSAqZnVs bEJhc2VQdHIsIGludCBlbGVtZW50TnVtLCBjb25zdCBUeXBlICpwdHJSZWZUeXBlLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIg Km5hbWUsIGNvbnN0IFBvaW50ZXJUeXBlICoqcmVzdWx0UHRyVHlwZSkgewotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5l ICZuYW1lLCBjb25zdCBQb2ludGVyVHlwZSAqKnJlc3VsdFB0clR5cGUpIHsKLSAgICAgaWYgKHJl c3VsdFB0clR5cGUgIT0gTlVMTCkKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBwdHJS ZWZUeXBlICE9IE5VTEwpOwotIAotQEAgLTIxOTUsOCArMjE4NCw4IEBAIGxsdm06OlZhbHVlICpG dW5jdGlvbkVtaXRDb250ZXh0OjpBZGRFbGVtZW50T2Zmc2V0KGxsdm06OlZhbHVlICpmdWxsQmFz ZVB0ciwgaW50Ci0gICAgICAgICAvLyBJZiB0aGUgcG9pbnRlciBpcyB1bmlmb3JtLCB3ZSBjYW4g dXNlIHRoZSByZWd1bGFyIExMVk0gR0VQLgotICAgICAgICAgbGx2bTo6VmFsdWUgKm9mZnNldHNb Ml0gPSB7TExWTUludDMyKDApLCBMTFZNSW50MzIoZWxlbWVudE51bSl9OwotICAgICAgICAgbGx2 bTo6QXJyYXlSZWY8bGx2bTo6VmFsdWUgKj4gYXJyYXlSZWYoJm9mZnNldHNbMF0sICZvZmZzZXRz WzJdKTsKLS0gICAgICAgIHJlc3VsdFB0ciA9Ci0tICAgICAgICAgICAgbGx2bTo6R2V0RWxlbWVu dFB0ckluc3Q6OkNyZWF0ZShQVFlQRShiYXNlUHRyKSwgYmFzZVB0ciwgYXJyYXlSZWYsIG5hbWUg PyBuYW1lIDogInN0cnVjdF9vZmZzZXQiLCBiYmxvY2spOwotKyAgICAgICAgcmVzdWx0UHRyID0g bGx2bTo6R2V0RWxlbWVudFB0ckluc3Q6OkNyZWF0ZShQVFlQRShiYXNlUHRyKSwgYmFzZVB0ciwg YXJyYXlSZWYsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gInN0cnVjdF9vZmZzZXQiIDogbmFtZSwg YmJsb2NrKTsKLSAgICAgfSBlbHNlIHsKLSAgICAgICAgIC8vIE90aGVyd2lzZSBkbyB0aGUgbWF0 aCB0byBmaW5kIHRoZSBvZmZzZXQgYW5kIGFkZCBpdCB0byB0aGUgZ2l2ZW4KLSAgICAgICAgIC8v IHZhcnlpbmcgcG9pbnRlcnMKLUBAIC0yMjM3LDcgKzIyMjYsNyBAQCBsbHZtOjpWYWx1ZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6QWRkRWxlbWVudE9mZnNldChsbHZtOjpWYWx1ZSAqZnVsbEJhc2VQ dHIsIGludAotICAgICAgICAgcmV0dXJuIHJlc3VsdFB0cjsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUg KkZ1bmN0aW9uRW1pdENvbnRleHQ6OlN3aXRjaEJvb2xTaXplKGxsdm06OlZhbHVlICp2YWx1ZSwg bGx2bTo6VHlwZSAqdG9UeXBlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OlN3aXRjaEJvb2xTaXplKGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2 bTo6VHlwZSAqdG9UeXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAoKHZh bHVlID09IE5VTEwpIHx8ICh0b1R5cGUgPT0gTlVMTCkpIHsKLSAgICAgICAgIEFzc2VydFBvcyhj dXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBA IC0yMjQ4LDIwICsyMjM3LDE4IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpT d2l0Y2hCb29sU2l6ZShsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUKLSAgICAgbGx2bTo6 VmFsdWUgKm5ld0Jvb2wgPSB2YWx1ZTsKLSAgICAgaWYgKGctPnRhcmdldC0+Z2V0RGF0YUxheW91 dCgpLT5nZXRUeXBlU2l6ZUluQml0cyhmcm9tVHlwZSkgPgotICAgICAgICAgZy0+dGFyZ2V0LT5n ZXREYXRhTGF5b3V0KCktPmdldFR5cGVTaXplSW5CaXRzKHRvVHlwZSkpIHsKLS0gICAgICAgIGlm IChuYW1lID09IE5VTEwpCi0tICAgICAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAi X3N3aXRjaEJvb2wiKTsKLS0gICAgICAgIG5ld0Jvb2wgPSBUcnVuY0luc3QodmFsdWUsIHRvVHlw ZSwgbmFtZSk7Ci0rICAgICAgICBuZXdCb29sID0KLSsgICAgICAgICAgICBUcnVuY0luc3QodmFs dWUsIHRvVHlwZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUodmFsdWUt PmdldE5hbWUoKSkgKyAiX3N3aXRjaEJvb2wiKSA6IG5hbWUpOwotICAgICB9IGVsc2UgaWYgKGct PnRhcmdldC0+Z2V0RGF0YUxheW91dCgpLT5nZXRUeXBlU2l6ZUluQml0cyhmcm9tVHlwZSkgPAot ICAgICAgICAgICAgICAgIGctPnRhcmdldC0+Z2V0RGF0YUxheW91dCgpLT5nZXRUeXBlU2l6ZUlu Qml0cyh0b1R5cGUpKSB7Ci0tICAgICAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAgICAg IG5hbWUgPSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl9zd2l0Y2hCb29sIik7Ci0tICAgICAgICBuZXdC b29sID0gU0V4dEluc3QodmFsdWUsIHRvVHlwZSwgbmFtZSk7Ci0rICAgICAgICBuZXdCb29sID0K LSsgICAgICAgICAgICBTRXh0SW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1w dHkoKSA/IChsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfc3dpdGNoQm9vbCIpIDog bmFtZSk7Ci0gICAgIH0KLSAKLSAgICAgcmV0dXJuIG5ld0Jvb2w7Ci0gfQotIAotLWxsdm06OlZh bHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBjb25z dCBUeXBlICp0eXBlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9u RW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGNvbnN0IFR5cGUgKnR5cGUs IGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmIChwdHIgPT0gTlVMTCkgewotICAg ICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAg IHJldHVybiBOVUxMOwotQEAgLTIyNzAsMTMgKzIyNTcsMTMgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0 aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGNvbnN0IFR5cGUgKnR5 cGUsIGMKLSAgICAgbGx2bTo6UG9pbnRlclR5cGUgKnB0ID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6 UG9pbnRlclR5cGU+KHB0ci0+Z2V0VHlwZSgpKTsKLSAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3Ms IHB0ICE9IE5VTEwpOwotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9 IExMVk1HZXROYW1lKHB0ciwgIl9sb2FkIik7Ci0tCi0gI2lmIElTUENfTExWTV9WRVJTSU9OID49 IElTUENfTExWTV8xMV8wCi0tICAgIGxsdm06OkxvYWRJbnN0ICppbnN0ID0gbmV3IGxsdm06Okxv YWRJbnN0KHB0LT5nZXRQb2ludGVyRWxlbWVudFR5cGUoKSwgcHRyLCBuYW1lLCBiYmxvY2spOwot KyAgICBsbHZtOjpMb2FkSW5zdCAqaW5zdCA9Ci0rICAgICAgICBuZXcgbGx2bTo6TG9hZEluc3Qo cHQtPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpLCBwdHIsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUocHRyLT5nZXROYW1l KCkpICsgIl9sb2FkIikgOiBuYW1lLCBiYmxvY2spOwotICNlbHNlCi0tICAgIGxsdm06OkxvYWRJ bnN0ICppbnN0ID0gbmV3IGxsdm06OkxvYWRJbnN0KHB0ciwgbmFtZSwgYmJsb2NrKTsKLSsgICAg bGx2bTo6TG9hZEluc3QgKmluc3QgPQotKyAgICAgICAgbmV3IGxsdm06OkxvYWRJbnN0KHB0ciwg bmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUocHRyLT5nZXROYW1lKCkpICsg Il9sb2FkIikgOiBuYW1lLCBiYmxvY2spOwotICNlbmRpZgotIAotICAgICBpZiAoZy0+b3B0LmZv cmNlQWxpZ25lZE1lbW9yeSAmJiBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihwdC0+ Z2V0RWxlbWVudFR5cGUoKSkpIHsKLUBAIC0yMzA3LDggKzIyOTQsOCBAQCBsbHZtOjpWYWx1ZSAq RnVuY3Rpb25FbWl0Q29udGV4dDo6TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgY29uc3QgVHlw ZSAqdHlwZSwgYwotIHN0YXRpYyBsbHZtOjpWYWx1ZSAqbEZpbmFsU2xpY2VPZmZzZXQoRnVuY3Rp b25FbWl0Q29udGV4dCAqY3R4LCBsbHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBQb2ludGVyVHlwZSAq KnB0clR5cGUpIHsKLSAgICAgQXNzZXJ0KENhc3RUeXBlPFBvaW50ZXJUeXBlPigqcHRyVHlwZSkg IT0gTlVMTCk7Ci0gCi0tICAgIGxsdm06OlZhbHVlICpzbGljZVB0ciA9IGN0eC0+RXh0cmFjdElu c3QocHRyLCAwLCBMTFZNR2V0TmFtZShwdHIsICJfcHRyIikpOwotLSAgICBsbHZtOjpWYWx1ZSAq c2xpY2VPZmZzZXQgPSBjdHgtPkV4dHJhY3RJbnN0KHB0ciwgMSwgTExWTUdldE5hbWUocHRyLCAi X29mZnNldCIpKTsKLSsgICAgbGx2bTo6VmFsdWUgKnNsaWNlUHRyID0gY3R4LT5FeHRyYWN0SW5z dChwdHIsIDAsIGxsdm06OlR3aW5lKHB0ci0+Z2V0TmFtZSgpKSArICJfcHRyIik7Ci0rICAgIGxs dm06OlZhbHVlICpzbGljZU9mZnNldCA9IGN0eC0+RXh0cmFjdEluc3QocHRyLCAxLCBsbHZtOjpU d2luZShwdHItPmdldE5hbWUoKSkgKyAiX29mZnNldCIpOwotIAotICAgICAvLyBzbGljZVB0ciBz aG91bGQgYmUgYSBwb2ludGVyIHRvIGFuIHNvYS13aWR0aCB3aWRlIGFycmF5IG9mIHRoZQotICAg ICAvLyBmaW5hbCBhdG9taWMvZW51bS9wb2ludGVyIHR5cGUKLUBAIC0yMzI3LDE0ICsyMzE0LDE0 IEBAIHN0YXRpYyBsbHZtOjpWYWx1ZSAqbEZpbmFsU2xpY2VPZmZzZXQoRnVuY3Rpb25FbWl0Q29u dGV4dCAqY3R4LCBsbHZtOjpWYWx1ZSAqcHRyCi0gICAgICAgICBzbGljZVB0ciA9IGN0eC0+Qml0 Q2FzdEluc3Qoc2xpY2VQdHIsICgqcHRyVHlwZSktPkxMVk1UeXBlKGctPmN0eCkpOwotIAotICAg ICAvLyBBbmQgZmluYWxseSBpbmRleCBiYXNlZCBvbiB0aGUgc2xpY2Ugb2Zmc2V0Ci0tICAgIHJl dHVybiBjdHgtPkdldEVsZW1lbnRQdHJJbnN0KHNsaWNlUHRyLCBzbGljZU9mZnNldCwgKnB0clR5 cGUsIExMVk1HZXROYW1lKHNsaWNlUHRyLCAiX2ZpbmFsX2dlcCIpKTsKLSsgICAgcmV0dXJuIGN0 eC0+R2V0RWxlbWVudFB0ckluc3Qoc2xpY2VQdHIsIHNsaWNlT2Zmc2V0LCAqcHRyVHlwZSwgbGx2 bTo6VHdpbmUoc2xpY2VQdHItPmdldE5hbWUoKSkgKyAiX2ZpbmFsX2dlcCIpOwotIH0KLSAKLSAv KiogVXRpbGl0eSByb3V0aW5lIHRoYXQgbG9hZHMgZnJvbSBhIHVuaWZvcm0gcG9pbnRlciB0byBz b2E8PiBkYXRhLAotICAgICByZXR1cm5pbmcgYSByZWd1bGFyIHVuaWZvcm0gKG5vbi1TT0EgcmVz dWx0KS4KLSAgKi8KLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6bG9hZFVuaWZv cm1Gcm9tU09BKGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLCBjb25zdCBQb2lu dGVyVHlwZSAqcHRyVHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpIHsKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1l KSB7Ci0gICAgIGNvbnN0IFR5cGUgKnVuaWZUeXBlID0gcHRyVHlwZS0+R2V0QmFzZVR5cGUoKS0+ R2V0QXNVbmlmb3JtVHlwZSgpOwotIAotICAgICBjb25zdCBDb2xsZWN0aW9uVHlwZSAqY3QgPSBD YXN0VHlwZTxDb2xsZWN0aW9uVHlwZT4ocHRyVHlwZS0+R2V0QmFzZVR5cGUoKSk7Ci1AQCAtMjM2 Myw3ICsyMzUwLDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OmxvYWRVbmlm b3JtRnJvbVNPQShsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWwKLSB9Ci0gCi0gbGx2bTo6VmFs dWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGxsdm06 OlZhbHVlICptYXNrLCBjb25zdCBUeXBlICpwdHJSZWZUeXBlLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lLCBib29sIG9uZV9lbGVt KSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxs dm06OlR3aW5lICZuYW1lLCBib29sIG9uZV9lbGVtKSB7Ci0gICAgIGlmIChwdHIgPT0gTlVMTCkg ewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAg ICAgICAgIHJldHVybiBOVUxMOwotQEAgLTIzNzEsOSArMjM1OCw2IEBAIGxsdm06OlZhbHVlICpG dW5jdGlvbkVtaXRDb250ZXh0OjpMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1 ZSAqbWFzaywKLSAKLSAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIHB0clJlZlR5cGUgIT0gTlVM TCAmJiBtYXNrICE9IE5VTEwpOwotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAg bmFtZSA9IExMVk1HZXROYW1lKHB0ciwgIl9sb2FkIik7Ci0tCi0gICAgIGNvbnN0IFBvaW50ZXJU eXBlICpwdHJUeXBlOwotICAgICBjb25zdCBUeXBlICplbFR5cGU7Ci0gICAgIGlmIChDYXN0VHlw ZTxSZWZlcmVuY2VUeXBlPihwdHJSZWZUeXBlKSAhPSBOVUxMKSB7Ci1AQCAtMjM5Myw3ICsyMzc3 LDggQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZh bHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLAotIAotICAgICBpZiAocHRyVHlwZS0+SXNVbmlm b3JtVHlwZSgpKSB7Ci0gICAgICAgICBpZiAocHRyVHlwZS0+SXNTbGljZSgpKSB7Ci0tICAgICAg ICAgICAgcmV0dXJuIGxvYWRVbmlmb3JtRnJvbVNPQShwdHIsIG1hc2ssIHB0clR5cGUsIG5hbWUp OwotKyAgICAgICAgICAgIHJldHVybiBsb2FkVW5pZm9ybUZyb21TT0EocHRyLCBtYXNrLCBwdHJU eXBlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZp YWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUocHRyLT5nZXROYW1lKCkpICsgIl9sb2FkIikgOiBu YW1lKTsKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgLy8gRklYTUU6IHNhbWUgaXNz dWUgYXMgYWJvdmUgbG9hZCBpbnN0IHJlZ2FyZGluZyBhbGlnbm1lbnQuLi4KLSAgICAgICAgICAg ICAvLwotQEAgLTI0MDUsMTEgKzIzOTAsMTUgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENv bnRleHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLAotICAg ICAgICAgICAgIGNvbnN0IEF0b21pY1R5cGUgKmF0b21pY1R5cGUgPSBDYXN0VHlwZTxBdG9taWNU eXBlPihwdHJUeXBlLT5HZXRCYXNlVHlwZSgpKTsKLSAKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04g PD0gSVNQQ19MTFZNXzEwXzAKLS0gICAgICAgICAgICBsbHZtOjpMb2FkSW5zdCAqaW5zdCA9IG5l dyBsbHZtOjpMb2FkSW5zdChwdHIsIG5hbWUsIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywgYmJs b2NrKTsKLSsgICAgICAgICAgICBsbHZtOjpMb2FkSW5zdCAqaW5zdCA9Ci0rICAgICAgICAgICAg ICAgIG5ldyBsbHZtOjpMb2FkSW5zdChwdHIsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxs dm06OlR3aW5lKHB0ci0+Z2V0TmFtZSgpKSArICJfbG9hZCIpIDogbmFtZSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywgYmJsb2Nr KTsKLSAjZWxzZSAvLyBMTFZNIDExLjArCi0gICAgICAgICAgICAgbGx2bTo6UG9pbnRlclR5cGUg KnB0cl90eXBlID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6UG9pbnRlclR5cGU+KHB0ci0+Z2V0VHlw ZSgpKTsKLSAgICAgICAgICAgICBsbHZtOjpMb2FkSW5zdCAqaW5zdCA9Ci0tICAgICAgICAgICAg ICAgIG5ldyBsbHZtOjpMb2FkSW5zdChwdHJfdHlwZS0+Z2V0UG9pbnRlckVsZW1lbnRUeXBlKCks IHB0ciwgbmFtZSwgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLCBiYmxvY2spOwotKyAgICAgICAg ICAgICAgICBuZXcgbGx2bTo6TG9hZEluc3QocHRyX3R5cGUtPmdldFBvaW50ZXJFbGVtZW50VHlw ZSgpLCBwdHIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLmlzVHJp dmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZShwdHItPmdldE5hbWUoKSkgKyAiX2xvYWQiKSA6 IG5hbWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSAvKiBub3Qg dm9sYXRpbGUgKi8sIGJibG9jayk7Ci0gI2VuZGlmCi0gCi0gICAgICAgICAgICAgaWYgKGF0b21p Y1R5cGUgIT0gTlVMTCAmJiBhdG9taWNUeXBlLT5Jc1ZhcnlpbmdUeXBlKCkpIHsKLUBAIC0yNDMz LDcgKzI0MjIsOCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TG9hZEluc3Qo bGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ssCi0gICAgIH0gZWxzZSB7Ci0gICAg ICAgICAvLyBPdGhlcndpc2Ugd2Ugc2hvdWxkIGhhdmUgYSB2YXJ5aW5nIHB0ciBhbmQgaXQncyB0 aW1lIGZvciBhCi0gICAgICAgICAvLyBnYXRoZXIuCi0tICAgICAgICBsbHZtOjpWYWx1ZSAqZ2F0 aGVyX3Jlc3VsdCA9IGdhdGhlcihwdHIsIHB0clR5cGUsIEdldEZ1bGxNYXNrKCksIG5hbWUpOwot KyAgICAgICAgbGx2bTo6VmFsdWUgKmdhdGhlcl9yZXN1bHQgPSBnYXRoZXIocHRyLCBwdHJUeXBl LCBHZXRGdWxsTWFzaygpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUocHRyLT5nZXROYW1l KCkpICsgIl9sb2FkIikgOiBuYW1lKTsKLSAgICAgICAgIGlmICghb25lX2VsZW0pCi0gICAgICAg ICAgICAgcmV0dXJuIGdhdGhlcl9yZXN1bHQ7Ci0gCi1AQCAtMjQ1MywxOSArMjQ0MywxOSBAQCBs bHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0 ciwgbGx2bTo6VmFsdWUgKm1hc2ssCi0gICAgICAgICAvLyBXZSBjYW4gYWN0dWFsbHkgY2FsbCBl aXRoZXIgb25lLCBzaW5jZSBib3RoIGFyZSBpMzJzIGFzIGZhciBhcwotICAgICAgICAgLy8gTExW TSdzIHR5cGUgc3lzdGVtIGlzIGNvbmNlcm5lZC4uLgotICAgICAgICAgbGx2bTo6RnVuY3Rpb24g KmZtbSA9IG1tWzBdLT5mdW5jdGlvbjsKLS0gICAgICAgIGxsdm06OlZhbHVlICppbnRfbWFzayA9 IENhbGxJbnN0KGZtbSwgTlVMTCwgbWFzaywgTExWTUdldE5hbWUobWFzaywgIl9tb3Ztc2siKSk7 Ci0rICAgICAgICBsbHZtOjpWYWx1ZSAqaW50X21hc2sgPSBDYWxsSW5zdChmbW0sIE5VTEwsIG1h c2ssIGxsdm06OlR3aW5lKG1hc2stPmdldE5hbWUoKSkgKyAiX21vdm1zayIpOwotICAgICAgICAg c3RkOjp2ZWN0b3I8U3ltYm9sICo+IGx6OwotICAgICAgICAgbS0+c3ltYm9sVGFibGUtPkxvb2t1 cEZ1bmN0aW9uKCJfX2NvdW50X3RyYWlsaW5nX3plcm9zX2k2NCIsICZseik7Ci0gICAgICAgICBs bHZtOjpGdW5jdGlvbiAqZmx6ID0gbHpbMF0tPmZ1bmN0aW9uOwotLSAgICAgICAgbGx2bTo6VmFs dWUgKmVsZW1faWR4ID0gQ2FsbEluc3QoZmx6LCBOVUxMLCBpbnRfbWFzaywgTExWTUdldE5hbWUo bWFzaywgIl9jbHoiKSk7Ci0tICAgICAgICBsbHZtOjpWYWx1ZSAqZWxlbSA9IGxsdm06OkV4dHJh Y3RFbGVtZW50SW5zdDo6Q3JlYXRlKGdhdGhlcl9yZXN1bHQsIGVsZW1faWR4LAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTFZN R2V0TmFtZShnYXRoZXJfcmVzdWx0LCAiX3VtYXNrZWRfZWxlbSIpLCBiYmxvY2spOwotKyAgICAg ICAgbGx2bTo6VmFsdWUgKmVsZW1faWR4ID0gQ2FsbEluc3QoZmx6LCBOVUxMLCBpbnRfbWFzaywg bGx2bTo6VHdpbmUobWFzay0+Z2V0TmFtZSgpKSArICJfY2x6Iik7Ci0rICAgICAgICBsbHZtOjpW YWx1ZSAqZWxlbSA9IGxsdm06OkV4dHJhY3RFbGVtZW50SW5zdDo6Q3JlYXRlKAotKyAgICAgICAg ICAgIGdhdGhlcl9yZXN1bHQsIGVsZW1faWR4LCBsbHZtOjpUd2luZShnYXRoZXJfcmVzdWx0LT5n ZXROYW1lKCkpICsgIl91bWFza2VkX2VsZW0iLCBiYmxvY2spOwotICAgICAgICAgcmV0dXJuIGVs ZW07Ci0gICAgIH0KLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6Omdh dGhlcihsbHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBQb2ludGVyVHlwZSAqcHRyVHlwZSwgbGx2bTo6 VmFsdWUgKm1hc2ssCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBjaGFyICpuYW1lKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICAvLyBXZSBzaG91bGQgaGF2ZSBh IHZhcnlpbmcgcG9pbnRlciBpZiB3ZSBnZXQgaGVyZS4uLgotICAgICBBc3NlcnRQb3MoY3VycmVu dFBvcywgcHRyVHlwZS0+SXNWYXJ5aW5nVHlwZSgpKTsKLSAKLUBAIC0yNjAyLDcgKzI1OTIsOCBA QCB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OmFkZEdTTWV0YWRhdGEobGx2bTo6VmFsdWUgKnYs IFNvdXJjZVBvcyBwb3MpIHsKLSAgICAgaW5zdC0+c2V0TWV0YWRhdGEoImxhc3RfY29sdW1uIiwg bWQpOwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWxsb2NhSW5z dChsbHZtOjpUeXBlICpsbHZtVHlwZSwgY29uc3QgY2hhciAqbmFtZSwgaW50IGFsaWduLCBib29s IGF0RW50cnlCbG9jaykgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpBbGxv Y2FJbnN0KGxsdm06OlR5cGUgKmxsdm1UeXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSwgaW50 IGFsaWduLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJv b2wgYXRFbnRyeUJsb2NrKSB7Ci0gICAgIGlmIChsbHZtVHlwZSA9PSBOVUxMKSB7Ci0gICAgICAg ICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0 dXJuIE5VTEw7Ci1AQCAtMjYxNSwxMiArMjYwNiwxMiBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25F bWl0Q29udGV4dDo6QWxsb2NhSW5zdChsbHZtOjpUeXBlICpsbHZtVHlwZSwgY29uc3QgY2hhciAq bgotICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKnJldEluc3QgPSBhbGxvY2FCbG9jay0+Z2V0 VGVybWluYXRvcigpOwotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIHJldEluc3QpOwot ICAgICAgICAgdW5zaWduZWQgQVMgPSBsbHZtRnVuY3Rpb24tPmdldFBhcmVudCgpLT5nZXREYXRh TGF5b3V0KCkuZ2V0QWxsb2NhQWRkclNwYWNlKCk7Ci0tICAgICAgICBpbnN0ID0gbmV3IGxsdm06 OkFsbG9jYUluc3QobGx2bVR5cGUsIEFTLCBuYW1lID8gbmFtZSA6ICIiLCByZXRJbnN0KTsKLSsg ICAgICAgIGluc3QgPSBuZXcgbGx2bTo6QWxsb2NhSW5zdChsbHZtVHlwZSwgQVMsIG5hbWUsIHJl dEluc3QpOwotICAgICB9IGVsc2UgewotICAgICAgICAgLy8gVW5sZXNzIHRoZSBjYWxsZXIgb3Zl cnJvZGUgdGhlIGRlZmF1bHQgYW5kIHdhbnRzIGl0IGluIHRoZQotICAgICAgICAgLy8gY3VycmVu dCBiYXNpYyBibG9jawotICAgICAgICAgdW5zaWduZWQgQVMgPSBsbHZtRnVuY3Rpb24tPmdldFBh cmVudCgpLT5nZXREYXRhTGF5b3V0KCkuZ2V0QWxsb2NhQWRkclNwYWNlKCk7Ci0tICAgICAgICBp bnN0ID0gbmV3IGxsdm06OkFsbG9jYUluc3QobGx2bVR5cGUsIEFTLCBuYW1lID8gbmFtZSA6ICIi LCBiYmxvY2spOwotKyAgICAgICAgaW5zdCA9IG5ldyBsbHZtOjpBbGxvY2FJbnN0KGxsdm1UeXBl LCBBUywgbmFtZSwgYmJsb2NrKTsKLSAgICAgfQotIAotICAgICAvLyBJZiBubyBhbGlnbm1lbnQg d2FzIHNwZWNpZmllZCBidXQgd2UgaGF2ZSBhbiBhcnJheSBvZiBhIHVuaWZvcm0KLUBAIC0yNjM5 LDcgKzI2MzAsOCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWxsb2NhSW5z dChsbHZtOjpUeXBlICpsbHZtVHlwZSwgY29uc3QgY2hhciAqbgotICAgICByZXR1cm4gaW5zdDsK LSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFsbG9jYUluc3QoY29u c3QgVHlwZSAqcHRyVHlwZSwgY29uc3QgY2hhciAqbmFtZSwgaW50IGFsaWduLCBib29sIGF0RW50 cnlCbG9jaykgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpBbGxvY2FJbnN0 KGNvbnN0IFR5cGUgKnB0clR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lLCBpbnQgYWxpZ24s Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBhdEVu dHJ5QmxvY2spIHsKLSAgICAgaWYgKHB0clR5cGUgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0 UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxM OwotQEAgLTMwNzUsNjYgKzMwNjcsNTkgQEAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1p dENvbnRleHQ6OkJyYW5jaEluc3QobGx2bTo6QmFzaWNCbG9jayAqdHJ1ZUJsb2NrLAotICAgICBy ZXR1cm4gYjsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkV4dHJh Y3RJbnN0KGxsdm06OlZhbHVlICp2LCBpbnQgZWx0LCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2 bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkV4dHJhY3RJbnN0KGxsdm06OlZhbHVlICp2 LCBpbnQgZWx0LCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodiA9PSBOVUxM KSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwot ICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkg ewotLSAgICAgICAgY2hhciBidWZbMzJdOwotLSAgICAgICAgc25wcmludGYoYnVmLCBzaXplb2Yo YnVmKSwgIl9leHRyYWN0XyVkIiwgZWx0KTsKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2 LCBidWYpOwotLSAgICB9Ci0gICAgIGxsdm06Okluc3RydWN0aW9uICplaSA9IE5VTEw7Ci0gICAg IGlmIChsbHZtOjppc2E8bGx2bTo6VmVjdG9yVHlwZT4odi0+Z2V0VHlwZSgpKSkKLS0gICAgICAg IGVpID0gbGx2bTo6RXh0cmFjdEVsZW1lbnRJbnN0OjpDcmVhdGUodiwgTExWTUludDMyKGVsdCks IG5hbWUsIGJibG9jayk7Ci0rICAgICAgICBlaSA9IGxsdm06OkV4dHJhY3RFbGVtZW50SW5zdDo6 Q3JlYXRlKAotKyAgICAgICAgICAgIHYsIExMVk1JbnQzMihlbHQpLAotKyAgICAgICAgICAgIG5h bWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKChsbHZtOjpUd2luZSh2LT5nZXROYW1lKCkpICsgIl9l eHRyYWN0XyIpICsgbGx2bTo6VHdpbmUoZWx0KSkgOiBuYW1lLCBiYmxvY2spOwotICAgICBlbHNl Ci0tICAgICAgICBlaSA9IGxsdm06OkV4dHJhY3RWYWx1ZUluc3Q6OkNyZWF0ZSh2LCBlbHQsIG5h bWUsIGJibG9jayk7Ci0rICAgICAgICBlaSA9IGxsdm06OkV4dHJhY3RWYWx1ZUluc3Q6OkNyZWF0 ZSgKLSsgICAgICAgICAgICB2LCBlbHQsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKChsbHZt OjpUd2luZSh2LT5nZXROYW1lKCkpICsgIl9leHRyYWN0XyIpICsgbGx2bTo6VHdpbmUoZWx0KSkg OiBuYW1lLAotKyAgICAgICAgICAgIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKGVpKTsKLSAg ICAgcmV0dXJuIGVpOwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6 SW5zZXJ0SW5zdChsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6VmFsdWUgKmVsdFZhbCwgaW50IGVsdCwg Y29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpJ bnNlcnRJbnN0KGxsdm06OlZhbHVlICp2LCBsbHZtOjpWYWx1ZSAqZWx0VmFsLCBpbnQgZWx0LCBj b25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodiA9PSBOVUxMIHx8IGVsdFZhbCA9 PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+ IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0g TlVMTCkgewotLSAgICAgICAgY2hhciBidWZbMzJdOwotLSAgICAgICAgc25wcmludGYoYnVmLCBz aXplb2YoYnVmKSwgIl9pbnNlcnRfJWQiLCBlbHQpOwotLSAgICAgICAgbmFtZSA9IExMVk1HZXRO YW1lKHYsIGJ1Zik7Ci0tICAgIH0KLS0KLSAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmlpID0gTlVM TDsKLSAgICAgaWYgKGxsdm06OmlzYTxsbHZtOjpWZWN0b3JUeXBlPih2LT5nZXRUeXBlKCkpKQot LSAgICAgICAgaWkgPSBsbHZtOjpJbnNlcnRFbGVtZW50SW5zdDo6Q3JlYXRlKHYsIGVsdFZhbCwg TExWTUludDMyKGVsdCksIG5hbWUsIGJibG9jayk7Ci0rICAgICAgICBpaSA9IGxsdm06Okluc2Vy dEVsZW1lbnRJbnN0OjpDcmVhdGUoCi0rICAgICAgICAgICAgdiwgZWx0VmFsLCBMTFZNSW50MzIo ZWx0KSwKLSsgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICgobGx2bTo6VHdp bmUodi0+Z2V0TmFtZSgpKSArICJfaW5zZXJ0XyIpICsgbGx2bTo6VHdpbmUoZWx0KSkgOiBuYW1l LCBiYmxvY2spOwotICAgICBlbHNlCi0tICAgICAgICBpaSA9IGxsdm06Okluc2VydFZhbHVlSW5z dDo6Q3JlYXRlKHYsIGVsdFZhbCwgZWx0LCBuYW1lLCBiYmxvY2spOwotKyAgICAgICAgaWkgPSBs bHZtOjpJbnNlcnRWYWx1ZUluc3Q6OkNyZWF0ZSgKLSsgICAgICAgICAgICB2LCBlbHRWYWwsIGVs dCwKLSsgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICgobGx2bTo6VHdpbmUo di0+Z2V0TmFtZSgpKSArICJfaW5zZXJ0XyIpICsgbGx2bTo6VHdpbmUoZWx0KSkgOiBuYW1lLCBi YmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhpaSk7Ci0gICAgIHJldHVybiBpaTsKLSB9Ci0gCi0t bGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlNodWZmbGVJbnN0KGxsdm06OlZhbHVl ICp2MSwgbGx2bTo6VmFsdWUgKnYyLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgY2hhciAqbmFt ZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpTaHVmZmxlSW5zdChsbHZt OjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2MiwgbGx2bTo6VmFsdWUgKm1hc2ssCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5l ICZuYW1lKSB7Ci0gICAgIGlmICh2MSA9PSBOVUxMIHx8IHYyID09IE5VTEwgfHwgbWFzayA9PSBO VUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDAp OwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVM TCkgewotLSAgICAgICAgY2hhciBidWZbMzJdOwotLSAgICAgICAgc25wcmludGYoYnVmLCBzaXpl b2YoYnVmKSwgIl9zaHVmZmxlIik7Ci0tICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodjEsIGJ1 Zik7Ci0tICAgIH0KLS0KLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmlpID0gbmV3IGxsdm06OlNo dWZmbGVWZWN0b3JJbnN0KHYxLCB2MiwgbWFzaywgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6 SW5zdHJ1Y3Rpb24gKmlpID0gbmV3IGxsdm06OlNodWZmbGVWZWN0b3JJbnN0KAotKyAgICAgICAg djEsIHYyLCBtYXNrLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZSh2MS0+ Z2V0TmFtZSgpKSArICJfc2h1ZmZsZSIpIDogbmFtZSwgYmJsb2NrKTsKLSAKLSAgICAgQWRkRGVi dWdQb3MoaWkpOwotICAgICByZXR1cm4gaWk7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlv bkVtaXRDb250ZXh0OjpCcm9hZGNhc3RWYWx1ZShsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6VHlwZSAq dmVjVHlwZSwgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRD b250ZXh0OjpCcm9hZGNhc3RWYWx1ZShsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6VHlwZSAqdmVjVHlw ZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHYgPT0gTlVMTCB8fCB2ZWNU eXBlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNv dW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0zMTQ4LDEyICszMTMzLDYgQEAg bGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJyb2FkY2FzdFZhbHVlKGxsdm06OlZh bHVlICp2LCBsbHZtOjpUeXBlICp2ZWMKLSAgICAgQXNzZXJ0KHR5ICYmIHR5LT5nZXRWZWN0b3JF bGVtZW50VHlwZSgpID09IHYtPmdldFR5cGUoKSk7Ci0gI2VuZGlmCi0gCi0tICAgIGlmIChuYW1l ID09IE5VTEwpIHsKLS0gICAgICAgIGNoYXIgYnVmWzMyXTsKLS0gICAgICAgIHNucHJpbnRmKGJ1 Ziwgc2l6ZW9mKGJ1ZiksICJfYnJvYWRjYXN0Iik7Ci0tICAgICAgICBuYW1lID0gTExWTUdldE5h bWUodiwgYnVmKTsKLS0gICAgfQotLQotICAgICAvLyBHZW5lcmF0ZSB0aGUgZm9sbG93aW5nIHNl cXVlbmNlOgotICAgICAvLyAgICVuYW1lX2luaXQuaSA9IGluc2VydGVsZW1lbnQgPDQgeCBpMzI+ IHVuZGVmLCBpMzIgJXZhbCwgaTMyIDAKLSAgICAgLy8gICAlbmFtZS5pID0gc2h1ZmZsZXZlY3Rv ciA8NCB4IGkzMj4gJW5hbWVfaW5pdC5pLCA8NCB4IGkzMj4gdW5kZWYsCi1AQCAtMzE2Myw3ICsz MTQyLDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJyb2FkY2FzdFZhbHVl KGxsdm06OlZhbHVlICp2LCBsbHZtOjpUeXBlICp2ZWMKLSAgICAgbGx2bTo6VmFsdWUgKnVuZGVm MiA9IGxsdm06OlVuZGVmVmFsdWU6OmdldCh2ZWNUeXBlKTsKLSAKLSAgICAgLy8gSW5zZXJ0RWxl bWVudAotLSAgICBsbHZtOjpUd2luZSB0dyA9IGxsdm06OlR3aW5lKG5hbWUpICsgbGx2bTo6VHdp bmUoIl9pbml0Iik7Ci0rICAgIGxsdm06OlR3aW5lIHR3ID0gbmFtZS5pc1RyaXZpYWxseUVtcHR5 KCkgPyAobGx2bTo6VHdpbmUodi0+Z2V0TmFtZSgpKSArICJfYnJvYWRjYXN0IikgOiBuYW1lICsg bGx2bTo6VHdpbmUoIl9pbml0Iik7Ci0gICAgIGxsdm06OlZhbHVlICppbnNlcnQgPSBJbnNlcnRJ bnN0KHVuZGVmMSwgdiwgMCwgdHcuc3RyKCkuY19zdHIoKSk7Ci0gCi0gICAgIC8vIFNodWZmbGVW ZWN0b3IKLUBAIC0zMTc5LDI4ICszMTU4LDI3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRD b250ZXh0OjpCcm9hZGNhc3RWYWx1ZShsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6VHlwZSAqdmVjCi0g ICAgICAgICBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQobGx2bTo6RWxlbWVudENvdW50 OjpnZXQoc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pih0eS0+Z2V0TnVtRWxlbWVudHMoKSksIGZh bHNlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpDb25z dGFudDo6Z2V0TnVsbFZhbHVlKGxsdm06OlR5cGU6OmdldEludDMyVHkoKmctPmN0eCkpKTsKLSAj ZW5kaWYKLS0gICAgbGx2bTo6VmFsdWUgKnJldCA9IFNodWZmbGVJbnN0KGluc2VydCwgdW5kZWYy LCB6ZXJvVmVjLCBuYW1lKTsKLSsgICAgbGx2bTo6VmFsdWUgKnJldCA9IFNodWZmbGVJbnN0KGlu c2VydCwgdW5kZWYyLCB6ZXJvVmVjLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUodi0+Z2V0TmFtZSgpKSAr ICJfYnJvYWRjYXN0IikgOiBuYW1lKTsKLSAKLSAgICAgcmV0dXJuIHJldDsKLSB9Ci0gCi0tbGx2 bTo6UEhJTm9kZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6UGhpTm9kZShsbHZtOjpUeXBlICp0eXBl LCBpbnQgY291bnQsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLS0gICAgbGx2bTo6UEhJTm9kZSAqcG4g PSBsbHZtOjpQSElOb2RlOjpDcmVhdGUodHlwZSwgY291bnQsIG5hbWUgPyBuYW1lIDogInBoaSIs IGJibG9jayk7Ci0rbGx2bTo6UEhJTm9kZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6UGhpTm9kZShs bHZtOjpUeXBlICp0eXBlLCBpbnQgY291bnQsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0r ICAgIGxsdm06OlBISU5vZGUgKnBuID0gbGx2bTo6UEhJTm9kZTo6Q3JlYXRlKHR5cGUsIGNvdW50 LCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICJwaGkiIDogbmFtZSwgYmJsb2NrKTsKLSAgICAg QWRkRGVidWdQb3MocG4pOwotICAgICByZXR1cm4gcG47Ci0gfQotIAotIGxsdm06Okluc3RydWN0 aW9uICpGdW5jdGlvbkVtaXRDb250ZXh0OjpTZWxlY3RJbnN0KGxsdm06OlZhbHVlICp0ZXN0LCBs bHZtOjpWYWx1ZSAqdmFsMCwgbGx2bTo6VmFsdWUgKnZhbDEsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkgewotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxs dm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh0ZXN0ID09IE5VTEwgfHwgdmFsMCA9PSBOVUxM IHx8IHZhbDEgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVy cm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotICAgICB9Ci0gCi0tICAgIGlm IChuYW1lID09IE5VTEwpCi0tICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodGVzdCwgIl9zZWxl Y3QiKTsKLS0KLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBsbHZtOjpTZWxlY3RJbnN0 OjpDcmVhdGUodGVzdCwgdmFsMCwgdmFsMSwgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6SW5z dHJ1Y3Rpb24gKmluc3QgPSBsbHZtOjpTZWxlY3RJbnN0OjpDcmVhdGUoCi0rICAgICAgICB0ZXN0 LCB2YWwwLCB2YWwxLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZSh0ZXN0 LT5nZXROYW1lKCkpICsgIl9zZWxlY3QiKSA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVn UG9zKGluc3QpOwotICAgICByZXR1cm4gaW5zdDsKLSB9Ci1AQCAtMzIyNiw3ICszMjA0LDcgQEAg c3RhdGljIHVuc2lnbmVkIGludCBsQ2FsbGVlQXJnQ291bnQobGx2bTo6VmFsdWUgKmNhbGxlZSwg Y29uc3QgRnVuY3Rpb25UeXBlICpmdW4KLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OkNhbGxJbnN0KGxsdm06OlZhbHVlICpmdW5jLCBjb25zdCBGdW5jdGlvblR5cGUg KmZ1bmNUeXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBzdGQ6OnZlY3RvcjxsbHZtOjpWYWx1ZSAqPiAmYXJncywgY29uc3QgY2hhciAqbmFtZSkg ewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6 OnZlY3RvcjxsbHZtOjpWYWx1ZSAqPiAmYXJncywgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsK LSAgICAgaWYgKGZ1bmMgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3Ms IG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTMyNTgsOSAr MzIzNiw5IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpDYWxsSW5zdChsbHZt OjpWYWx1ZSAqZnVuYywgY29uc3QgRnVuY3Rpb25UeXBlCi0gI2lmIElTUENfTExWTV9WRVJTSU9O ID49IElTUENfTExWTV8xMV8wCi0gICAgICAgICBsbHZtOjpQb2ludGVyVHlwZSAqZnVuY19wdHJf dHlwZSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlBvaW50ZXJUeXBlPihmdW5jLT5nZXRUeXBlKCkp OwotICAgICAgICAgbGx2bTo6RnVuY3Rpb25UeXBlICpmdW5jX3R5cGUgPSBsbHZtOjpkeW5fY2Fz dDxsbHZtOjpGdW5jdGlvblR5cGU+KGZ1bmNfcHRyX3R5cGUtPmdldFBvaW50ZXJFbGVtZW50VHlw ZSgpKTsKLS0gICAgICAgIGxsdm06OkNhbGxJbnN0ICpjYWxsaW5zdCA9IGxsdm06OkNhbGxJbnN0 OjpDcmVhdGUoZnVuY190eXBlLCBmdW5jLCBhcmdWYWxzLCBuYW1lID8gbmFtZSA6ICIiLCBiYmxv Y2spOwotKyAgICAgICAgbGx2bTo6Q2FsbEluc3QgKmNhbGxpbnN0ID0gbGx2bTo6Q2FsbEluc3Q6 OkNyZWF0ZShmdW5jX3R5cGUsIGZ1bmMsIGFyZ1ZhbHMsIG5hbWUsIGJibG9jayk7Ci0gI2Vsc2UK LS0gICAgICAgIGxsdm06OkNhbGxJbnN0ICpjYWxsaW5zdCA9IGxsdm06OkNhbGxJbnN0OjpDcmVh dGUoZnVuYywgYXJnVmFscywgbmFtZSA/IG5hbWUgOiAiIiwgYmJsb2NrKTsKLSsgICAgICAgIGxs dm06OkNhbGxJbnN0ICpjYWxsaW5zdCA9IGxsdm06OkNhbGxJbnN0OjpDcmVhdGUoZnVuYywgYXJn VmFscywgbmFtZSwgYmJsb2NrKTsKLSAjZW5kaWYKLSAKLSAgICAgICAgIC8vIFdlIGNvdWxkIGJl IGRlYWxpbmcgd2l0aCBhIGZ1bmN0aW9uIHBvaW50ZXIgaW4gd2hpY2ggY2FzZSB0aGlzIHdpbGwg bm90IGJlIGEgJ2xsdm06OkZ1bmN0aW9uJy4KLUBAIC0zNDY0LDE0ICszNDQyLDE0IEBAIGxsdm06 OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpDYWxsSW5zdChsbHZtOjpWYWx1ZSAqZnVuYywg Y29uc3QgRnVuY3Rpb25UeXBlCi0gfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250 ZXh0OjpDYWxsSW5zdChsbHZtOjpWYWx1ZSAqZnVuYywgY29uc3QgRnVuY3Rpb25UeXBlICpmdW5j VHlwZSwgbGx2bTo6VmFsdWUgKmFyZywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkgewotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBzdGQ6 OnZlY3RvcjxsbHZtOjpWYWx1ZSAqPiBhcmdzOwotICAgICBhcmdzLnB1c2hfYmFjayhhcmcpOwot ICAgICByZXR1cm4gQ2FsbEluc3QoZnVuYywgZnVuY1R5cGUsIGFyZ3MsIG5hbWUpOwotIH0KLSAK LSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Q2FsbEluc3QobGx2bTo6VmFsdWUg KmZ1bmMsIGNvbnN0IEZ1bmN0aW9uVHlwZSAqZnVuY1R5cGUsIGxsdm06OlZhbHVlICphcmcwLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAq YXJnMSwgY29uc3QgY2hhciAqbmFtZSkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqYXJnMSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUp IHsKLSAgICAgc3RkOjp2ZWN0b3I8bGx2bTo6VmFsdWUgKj4gYXJnczsKLSAgICAgYXJncy5wdXNo X2JhY2soYXJnMCk7Ci0gICAgIGFyZ3MucHVzaF9iYWNrKGFyZzEpOwotZGlmZiAtLWdpdCBhL3Ny Yy9jdHguaCBiL3NyYy9jdHguaAotaW5kZXggNmU1YWQ3NGJhLi40OGIzYmI4MjYgMTAwNjQ0Ci0t LS0gYS9zcmMvY3R4LmgKLSsrKyBiL3NyYy9jdHguaAotQEAgLTMwMiw3ICszMDIsNyBAQCBjbGFz cyBGdW5jdGlvbkVtaXRDb250ZXh0IHsKLSAgICAgbGx2bTo6VmFsdWUgKkdldFN0cmluZ1B0cihj b25zdCBzdGQ6OnN0cmluZyAmc3RyKTsKLSAKLSAgICAgLyoqIENyZWF0ZSBhIG5ldyBiYXNpYyBi bG9jayB3aXRoIGdpdmVuIG5hbWUgKi8KLS0gICAgbGx2bTo6QmFzaWNCbG9jayAqQ3JlYXRlQmFz aWNCbG9jayhjb25zdCBjaGFyICpuYW1lLCBsbHZtOjpCYXNpY0Jsb2NrICppbnNlcnRBZnRlciA9 IE5VTEwpOwotKyAgICBsbHZtOjpCYXNpY0Jsb2NrICpDcmVhdGVCYXNpY0Jsb2NrKGNvbnN0IGxs dm06OlR3aW5lICZuYW1lLCBsbHZtOjpCYXNpY0Jsb2NrICppbnNlcnRBZnRlciA9IE5VTEwpOwot IAotICAgICAvKiogR2l2ZW4gYSB2ZWN0b3Igd2l0aCBlbGVtZW50IHR5cGUgaTEsIHJldHVybiBh IHZlY3RvciBvZiB0eXBlCi0gICAgICAgICBMTFZNVHlwZXM6OkJvb2xWZWN0b3JUeXBlLiAgVGhp cyBtZXRob2QgaGFuZGxlcyB0aGUgY29udmVyc2lvbiBmb3IKLUBAIC0zODAsMzMgKzM4MCwzMyBA QCBjbGFzcyBGdW5jdGlvbkVtaXRDb250ZXh0IHsKLSAgICAgICAgIHRoaXMgYWxzbyBoYW5kbGVz IGFwcGx5aW5nIHRoZSBnaXZlbiBvcGVyYXRpb24gdG8gdGhlIHZlY3RvcgotICAgICAgICAgZWxl bWVudHMuICovCi0gICAgIGxsdm06OlZhbHVlICpCaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVj dGlvbjo6QmluYXJ5T3BzIGluc3QsIGxsdm06OlZhbHVlICp2MCwgbGx2bTo6VmFsdWUgKnYxLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwp OwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5h bWUgPSAiIik7Ci0gCi0gICAgIC8qKiBFbWl0IHRoZSAibm90IiBvcGVyYXRvci4gIExpa2UgQmlu YXJ5T3BlcmF0b3IoKSwgdGhpcyBhbHNvIGhhbmRsZXMKLSAgICAgICAgIGEgVmVjdG9yVHlwZS1i YXNlZCBvcGVyYW5kLiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqTm90T3BlcmF0b3IobGx2bTo6VmFs dWUgKnYsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6VmFsdWUgKk5vdE9w ZXJhdG9yKGxsdm06OlZhbHVlICp2LCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAK LSAgICAgLyoqIEVtaXQgYSBjb21wYXJpc29uIGluc3RydWN0aW9uLiAgSWYgdGhlIG9wZXJhbmRz IGFyZSBWZWN0b3JUeXBlcywKLSAgICAgICAgIHRoZW4gYSB2YWx1ZSBmb3IgdGhlIGNvcnJlc3Bv bmRpbmcgYm9vbGVhbiBWZWN0b3JUeXBlIGlzCi0gICAgICAgICByZXR1cm5lZC4gKi8KLSAgICAg bGx2bTo6VmFsdWUgKkNtcEluc3QobGx2bTo6SW5zdHJ1Y3Rpb246Ok90aGVyT3BzIGluc3QsIGxs dm06OkNtcEluc3Q6OlByZWRpY2F0ZSBwcmVkLCBsbHZtOjpWYWx1ZSAqdjAsCi0tICAgICAgICAg ICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICp2MSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwp OwotKyAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqdjEsIGNvbnN0IGxsdm06 OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiogR2l2ZW4gYSBzY2FsYXIgdmFsdWUsIHJl dHVybiBhIHZlY3RvciBvZiB0aGUgc2FtZSB0eXBlIChvciBhbgotICAgICAgICAgYXJyYXksIGZv ciBwb2ludGVyIHR5cGVzKS4gKi8KLS0gICAgbGx2bTo6VmFsdWUgKlNtZWFyVW5pZm9ybShsbHZt OjpWYWx1ZSAqdmFsdWUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6VmFs dWUgKlNtZWFyVW5pZm9ybShsbHZtOjpWYWx1ZSAqdmFsdWUsIGNvbnN0IGxsdm06OlR3aW5lICZu YW1lID0gIiIpOwotIAotLSAgICBsbHZtOjpWYWx1ZSAqQml0Q2FzdEluc3QobGx2bTo6VmFsdWUg KnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0tICAg IGxsdm06OlZhbHVlICpQdHJUb0ludEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBjaGFy ICpuYW1lID0gTlVMTCk7Ci0tICAgIGxsdm06OlZhbHVlICpQdHJUb0ludEluc3QobGx2bTo6VmFs dWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0t ICAgIGxsdm06OlZhbHVlICpJbnRUb1B0ckluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpU eXBlICp0eXBlLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgIGxsdm06OlZhbHVlICpC aXRDYXN0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxs dm06OlR3aW5lICZuYW1lID0gIiIpOwotKyAgICBsbHZtOjpWYWx1ZSAqUHRyVG9JbnRJbnN0KGxs dm06OlZhbHVlICp2YWx1ZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0rICAgIGxs dm06OlZhbHVlICpQdHJUb0ludEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0 eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSsgICAgbGx2bTo6VmFsdWUgKklu dFRvUHRySW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxs dm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqVHJ1bmNJ bnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgY2hhciAqbmFt ZSA9IE5VTEwpOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqVHJ1bmNJbnN0KGxsdm06OlZhbHVl ICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7 Ci0gICAgIGxsdm06Okluc3RydWN0aW9uICpDYXN0SW5zdChsbHZtOjpJbnN0cnVjdGlvbjo6Q2Fz dE9wcyBvcCwgbGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotLSAgICBs bHZtOjpJbnN0cnVjdGlvbiAqRlBDYXN0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5 cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rp b24gKlNFeHRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3Qg Y2hhciAqbmFtZSA9IE5VTEwpOwotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqWkV4dEluc3QobGx2 bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBjaGFyICpuYW1lID0gTlVM TCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAm bmFtZSA9ICIiKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkZQQ2FzdEluc3QobGx2bTo6VmFs dWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIi KTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKlNFeHRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwg bGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0rICAgIGxs dm06Okluc3RydWN0aW9uICpaRXh0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUg KnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiogR2l2ZW4g dHdvIGludGVnZXItdHlwZWQgdmFsdWVzIChidXQgcG9zc2libHkgb25lIHZlY3RvciBhbmQgdGhl Ci0gICAgICAgICBvdGhlciBub3QsIGFuZCBvciBvZiBwb3NzaWJseS1kaWZmZXJlbnQgYml0LXdp ZHRocyksIHVwZGF0ZSB0aGVpcgotQEAgLTQyNiw5ICs0MjYsOSBAQCBjbGFzcyBGdW5jdGlvbkVt aXRDb250ZXh0IHsKLSAgICAgICAgIHBvaW50ZXJzLiAgVGhlIHVuZGVybHlpbmcgdHlwZSBvZiB0 aGUgYmFzZSBwb2ludGVyIG11c3QgYmUgcHJvdmlkZWQKLSAgICAgICAgIHZpYSB0aGUgcHRyVHlw ZSBwYXJhbWV0ZXIgKi8KLSAgICAgbGx2bTo6VmFsdWUgKkdldEVsZW1lbnRQdHJJbnN0KGxsdm06 OlZhbHVlICpiYXNlUHRyLCBsbHZtOjpWYWx1ZSAqaW5kZXgsIGNvbnN0IFR5cGUgKnB0clR5cGUs Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lID0g TlVMTCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpU d2luZSAmbmFtZSA9ICIiKTsKLSAgICAgbGx2bTo6VmFsdWUgKkdldEVsZW1lbnRQdHJJbnN0KGxs dm06OlZhbHVlICpiYXNlUHRyLCBsbHZtOjpWYWx1ZSAqaW5kZXgwLCBsbHZtOjpWYWx1ZSAqaW5k ZXgxLCBjb25zdCBUeXBlICpwdHJUeXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBU aGlzIG1ldGhvZCByZXR1cm5zIGEgbmV3IHBvaW50ZXIgdGhhdCByZXByZXNlbnRzIG9mZnNldHRp bmcgdGhlCi0gICAgICAgICBnaXZlbiBiYXNlIHBvaW50ZXIgdG8gcG9pbnQgYXQgdGhlIGdpdmVu IGVsZW1lbnQgbnVtYmVyIG9mIHRoZQotQEAgLTQzNiwyNiArNDM2LDI2IEBAIGNsYXNzIEZ1bmN0 aW9uRW1pdENvbnRleHQgewotICAgICAgICAgcG9pbnRlciBtdXN0IGJlIGEgcG9pbnRlciB0byBh IHN0cnVjdHVyZSB0eXBlLiAgVGhlIHB0clR5cGUgZ2l2ZXMKLSAgICAgICAgIHRoZSB0eXBlIG9m IHRoZSBwb2ludGVyLCB0aG91Z2ggaXQgbWF5IGJlIE5VTEwgaWYgdGhlIGJhc2UgcG9pbnRlcgot ICAgICAgICAgaXMgdW5pZm9ybS4gKi8KLS0gICAgbGx2bTo6VmFsdWUgKkFkZEVsZW1lbnRPZmZz ZXQobGx2bTo6VmFsdWUgKmJhc2VQdHIsIGludCBlbGVtZW50TnVtLCBjb25zdCBUeXBlICpwdHJU eXBlLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgUG9pbnRlclR5cGUgKipyZXN1bHRQdHJUeXBlID0gTlVMTCk7Ci0rICAg IGxsdm06OlZhbHVlICpBZGRFbGVtZW50T2Zmc2V0KGxsdm06OlZhbHVlICpiYXNlUHRyLCBpbnQg ZWxlbWVudE51bSwgY29uc3QgVHlwZSAqcHRyVHlwZSwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIiwgY29uc3QgUG9pbnRlclR5 cGUgKipyZXN1bHRQdHJUeXBlID0gTlVMTCk7Ci0gCi0gICAgIC8qKiBCb29sIGlzIHN0b3JlZCBh cyBpOCBhbmQgPFdJRFRIIHggaTg+IGJ1dCByZXByZXNlbnRlZCBpbiBJUiBhcyBpMSBhbmQKLSAg ICAgICogPFdJRFRIIHggTUFTSz4uIFRoaXMgaXMgYSBoZWxwZXIgZnVuY3Rpb24gdG8gbWF0Y2gg Ym9vbCBzaXplIGF0IHN0b3JhZ2UKLSAgICAgICogaW50ZXJmYWNlLiAqLwotLSAgICBsbHZtOjpW YWx1ZSAqU3dpdGNoQm9vbFNpemUobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0b1R5 cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6VmFsdWUgKlN3aXRjaEJv b2xTaXplKGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdG9UeXBlLCBjb25zdCBsbHZt OjpUd2luZSAmbmFtZSA9ICIiKTsKLSAgICAgLyoqIExvYWQgZnJvbSB0aGUgbWVtb3J5IGxvY2F0 aW9uKHMpIGdpdmVuIGJ5IGx2YWx1ZSwgdXNpbmcgdGhlIGdpdmVuCi0gICAgICAgICBtYXNrLiAg VGhlIGx2YWx1ZSBtYXkgYmUgdmFyeWluZywgaW4gd2hpY2ggY2FzZSB0aGlzIGNvcnJlc3BvbmRz IHRvCi0gICAgICAgICBhIGdhdGhlciBmcm9tIHRoZSBtdWx0aXBsZSBtZW1vcnkgbG9jYXRpb25z IGdpdmVuIGJ5IHRoZSBhcnJheSBvZgotICAgICAgICAgcG9pbnRlciB2YWx1ZXMgZ2l2ZW4gYnkg dGhlIGx2YWx1ZS4gIElmIHRoZSBsdmFsdWUgaXMgbm90IHZhcnlpbmcsCi0gICAgICAgICB0aGVu IGJvdGggdGhlIG1hc2sgcG9pbnRlciBhbmQgdGhlIHR5cGUgcG9pbnRlciBtYXkgYmUgTlVMTC4g Ki8KLS0gICAgbGx2bTo6VmFsdWUgKkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZh bHVlICptYXNrLCBjb25zdCBUeXBlICpwdHJUeXBlLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCwK LSsgICAgbGx2bTo6VmFsdWUgKkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVl ICptYXNrLCBjb25zdCBUeXBlICpwdHJUeXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIi LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBvbmVfZWxlbSA9IGZhbHNlKTsKLSAK LSAgICAgLyogTG9hZCBmcm9tIG1lbW9yeSBsb2NhdGlvbihzKSBnaXZlbi4KLSAgICAgICogJ3R5 cGUnIG5lZWRzIHRvIGJlIHByb3ZpZGVkIHdoZW4gc3RvcmFnZSB0eXBlIGlzIGRpZmZlcmVudCBm cm9tIElSIHR5cGUuIEZvciBleGFtcGxlLAotICAgICAgKiAndW5mb3JtIGJvb2wnIGlzICdpMScg aW4gSVIgYnV0IHN0b3JlZCBhcyAnaTgnLgotICAgICAgKiBPdGhlcndpc2UgbGVhdmUgdGhpcyBh cyBOVUxMLiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqTG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwg Y29uc3QgVHlwZSAqdHlwZSA9IE5VTEwsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAg bGx2bTo6VmFsdWUgKkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGNvbnN0IFR5cGUgKnR5cGUg PSBOVUxMLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgLyoqIEVtaXRz IGFuIGFsbG9jYSBpbnN0cnVjdGlvbiB0byBhbGxvY2F0ZSBzdGFjayBzdG9yYWdlIGZvciB0aGUg Z2l2ZW4KLSAgICAgICAgIHR5cGUuICBJZiBhIG5vbi16ZXJvIGFsaWdubWVudCBpcyBzcGVjaWZp ZWQsIHRoZSBvYmplY3QgaXMgYWxzbwotQEAgLTQ2Myw3ICs0NjMsOCBAQCBjbGFzcyBGdW5jdGlv bkVtaXRDb250ZXh0IHsKLSAgICAgICAgIGluc3RydWN0aW9uIGlzIGFkZGVkIGF0IHRoZSBzdGFy dCBvZiB0aGUgZnVuY3Rpb24gaW4gdGhlIGVudHJ5Ci0gICAgICAgICBiYXNpYyBibG9jazsgaWYg aXQgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBjdXJyZW50IGJhc2ljIGJsb2NrLCB0aGVuCi0gICAg ICAgICB0aGUgYXRFbnRyeUJsb2NrIHBhcmFtZXRlciBzaG91bGQgYmUgZmFsc2UuICovCi0tICAg IGxsdm06OlZhbHVlICpBbGxvY2FJbnN0KGxsdm06OlR5cGUgKmxsdm1UeXBlLCBjb25zdCBjaGFy ICpuYW1lID0gTlVMTCwgaW50IGFsaWduID0gMCwgYm9vbCBhdEVudHJ5QmxvY2sgPSB0cnVlKTsK LSsgICAgbGx2bTo6VmFsdWUgKkFsbG9jYUluc3QobGx2bTo6VHlwZSAqbGx2bVR5cGUsIGNvbnN0 IGxsdm06OlR3aW5lICZuYW1lID0gIiIsIGludCBhbGlnbiA9IDAsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJvb2wgYXRFbnRyeUJsb2NrID0gdHJ1ZSk7Ci0gCi0gICAgIC8qKiBFbWl0 cyBhbiBhbGxvY2EgaW5zdHJ1Y3Rpb24gdG8gYWxsb2NhdGUgc3RhY2sgc3RvcmFnZSBmb3IgdGhl IGdpdmVuCi0gICAgICAgICB0eXBlLiAgSWYgYSBub24temVybyBhbGlnbm1lbnQgaXMgc3BlY2lm aWVkLCB0aGUgb2JqZWN0IGlzIGFsc28KLUBAIC00NzQsNyArNDc1LDcgQEAgY2xhc3MgRnVuY3Rp b25FbWl0Q29udGV4dCB7Ci0gICAgICAgICBUaGlzIGltcGxlbWVudGF0aW9uIGlzIHByZWZlcnJl ZCB3aGVuIHBvc3NpYmxlLiBJdCBpcyBuZWVkZWQgd2hlbgotICAgICAgICAgc3RvcmFnZSB0eXBl IGlzIGRpZmZlcmVudCBmcm9tIElSIHR5cGUuIEZvciBleGFtcGxlLAotICAgICAgICAgJ3VuZm9y bSBib29sJyBpcyAnaTEnIGluIElSIGJ1dCBzdG9yZWQgYXMgJ2k4Jy4gKi8KLS0gICAgbGx2bTo6 VmFsdWUgKkFsbG9jYUluc3QoY29uc3QgVHlwZSAqcHRyVHlwZSwgY29uc3QgY2hhciAqbmFtZSA9 IE5VTEwsIGludCBhbGlnbiA9IDAsIGJvb2wgYXRFbnRyeUJsb2NrID0gdHJ1ZSk7Ci0rICAgIGxs dm06OlZhbHVlICpBbGxvY2FJbnN0KGNvbnN0IFR5cGUgKnB0clR5cGUsIGNvbnN0IGxsdm06OlR3 aW5lICZuYW1lID0gIiIsIGludCBhbGlnbiA9IDAsIGJvb2wgYXRFbnRyeUJsb2NrID0gdHJ1ZSk7 Ci0gCi0gICAgIC8qKiBTdGFuZGFyZCBzdG9yZSBpbnN0cnVjdGlvbjsgZm9yIHRoaXMgdmFyaWFu dCwgdGhlIGx2YWx1ZSBtdXN0IGJlIGEKLSAgICAgICAgIHNpbmdsZSBwb2ludGVyLCBub3QgYSB2 YXJ5aW5nIGx2YWx1ZS4KLUBAIC01MDIsMzkgKzUwMyw0MSBAQCBjbGFzcyBGdW5jdGlvbkVtaXRD b250ZXh0IHsKLSAgICAgLyoqIFRoaXMgY29udmVuaWVuY2UgbWV0aG9kIG1hcHMgdG8gYW4gbGx2 bTo6RXh0cmFjdEVsZW1lbnRJbnN0IGlmIHRoZQotICAgICAgICAgZ2l2ZW4gdmFsdWUgaXMgYSBs bHZtOjpWZWN0b3JUeXBlLCBhbmQgdG8gYW4gbGx2bTo6RXh0cmFjdFZhbHVlSW5zdAotICAgICAg ICAgb3RoZXJ3aXNlLiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqRXh0cmFjdEluc3QobGx2bTo6VmFs dWUgKnYsIGludCBlbHQsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6VmFs dWUgKkV4dHJhY3RJbnN0KGxsdm06OlZhbHVlICp2LCBpbnQgZWx0LCBjb25zdCBsbHZtOjpUd2lu ZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgLyoqIFRoaXMgY29udmVuaWVuY2UgbWV0aG9kIG1hcHMg dG8gYW4gbGx2bTo6SW5zZXJ0RWxlbWVudEluc3QgaWYgdGhlCi0gICAgICAgICBnaXZlbiB2YWx1 ZSBpcyBhIGxsdm06OlZlY3RvclR5cGUsIGFuZCB0byBhbiBsbHZtOjpJbnNlcnRWYWx1ZUluc3QK LSAgICAgICAgIG90aGVyd2lzZS4gKi8KLS0gICAgbGx2bTo6VmFsdWUgKkluc2VydEluc3QobGx2 bTo6VmFsdWUgKnYsIGxsdm06OlZhbHVlICplbHRWYWwsIGludCBlbHQsIGNvbnN0IGNoYXIgKm5h bWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6VmFsdWUgKkluc2VydEluc3QobGx2bTo6VmFsdWUgKnYs IGxsdm06OlZhbHVlICplbHRWYWwsIGludCBlbHQsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0g IiIpOwotIAotICAgICAvKiogVGhpcyBjb252ZW5pZW5jZSBtZXRob2QgbWFwcyB0byBhbiBsbHZt OjpTaHVmZmxlVmVjdG9ySW5zdC4gKi8KLS0gICAgbGx2bTo6VmFsdWUgKlNodWZmbGVJbnN0KGxs dm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYyLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3Qg Y2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICBsbHZtOjpWYWx1ZSAqU2h1ZmZsZUluc3QobGx2bTo6 VmFsdWUgKnYxLCBsbHZtOjpWYWx1ZSAqdjIsIGxsdm06OlZhbHVlICptYXNrLCBjb25zdCBsbHZt OjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgLyoqIFRoaXMgY29udmVuaWVuY2UgbWV0aG9k IHRvIGdlbmVyYXRlIGJyb2FkY2FzdCBwYXR0ZXJuLiBJdCB0YWtlcyBhIHZhbHVlCi0gICAgICAg ICBhbmQgYSB2ZWN0b3IgdHlwZS4gVHlwZSBvZiB0aGUgdmFsdWUgbXVzdCBtYXRjaCBlbGVtZW50 IHR5cGUgb2YgdGhlCi0gICAgICAgICB2ZWN0b3IuICovCi0tICAgIGxsdm06OlZhbHVlICpCcm9h ZGNhc3RWYWx1ZShsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6VHlwZSAqdmVjVHlwZSwgY29uc3QgY2hh ciAqbmFtZSA9IE5VTEwpOwotKyAgICBsbHZtOjpWYWx1ZSAqQnJvYWRjYXN0VmFsdWUobGx2bTo6 VmFsdWUgKnYsIGxsdm06OlR5cGUgKnZlY1R5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0g IiIpOwotIAotLSAgICBsbHZtOjpQSElOb2RlICpQaGlOb2RlKGxsdm06OlR5cGUgKnR5cGUsIGlu dCBjb3VudCwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotLSAgICBsbHZtOjpJbnN0cnVjdGlv biAqU2VsZWN0SW5zdChsbHZtOjpWYWx1ZSAqdGVzdCwgbGx2bTo6VmFsdWUgKnZhbDAsIGxsdm06 OlZhbHVlICp2YWwxLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgIGxsdm06OlBISU5v ZGUgKlBoaU5vZGUobGx2bTo6VHlwZSAqdHlwZSwgaW50IGNvdW50LCBjb25zdCBsbHZtOjpUd2lu ZSAmbmFtZSA9ICIiKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKlNlbGVjdEluc3QobGx2bTo6 VmFsdWUgKnRlc3QsIGxsdm06OlZhbHVlICp2YWwwLCBsbHZtOjpWYWx1ZSAqdmFsMSwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAi Iik7Ci0gCi0gICAgIC8qKiBFbWl0cyBJUiB0byBkbyBhIGZ1bmN0aW9uIGNhbGwgd2l0aCB0aGUg Z2l2ZW4gYXJndW1lbnRzLiAgSWYgdGhlCi0gICAgICAgICBmdW5jdGlvbiB0eXBlIGlzIGEgdmFy eWluZyBmdW5jdGlvbiBwb2ludGVyIHR5cGUsIGl0cyBmdWxsIHR5cGUKLSAgICAgICAgIG11c3Qg YmUgcHJvdmlkZWQgaW4gZnVuY1R5cGUuICBmdW5jVHlwZSBjYW4gYmUgTlVMTCBpZiBmdW5jIGlz IGEKLSAgICAgICAgIHVuaWZvcm0gZnVuY3Rpb24gcG9pbnRlci4gKi8KLSAgICAgbGx2bTo6VmFs dWUgKkNhbGxJbnN0KGxsdm06OlZhbHVlICpmdW5jLCBjb25zdCBGdW5jdGlvblR5cGUgKmZ1bmNU eXBlLCBjb25zdCBzdGQ6OnZlY3RvcjxsbHZtOjpWYWx1ZSAqPiAmYXJncywKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiog VGhpcyBpcyBhIGNvbnZlbmllbmNlIG1ldGhvZCB0aGF0IGlzc3VlcyBhIGNhbGwgaW5zdHJ1Y3Rp b24gdG8gYQotICAgICAgICAgZnVuY3Rpb24gdGhhdCB0YWtlcyBqdXN0IGEgc2luZ2xlIGFyZ3Vt ZW50LiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqQ2FsbEluc3QobGx2bTo6VmFsdWUgKmZ1bmMsIGNv bnN0IEZ1bmN0aW9uVHlwZSAqZnVuY1R5cGUsIGxsdm06OlZhbHVlICphcmcsIGNvbnN0IGNoYXIg Km5hbWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6VmFsdWUgKkNhbGxJbnN0KGxsdm06OlZhbHVlICpm dW5jLCBjb25zdCBGdW5jdGlvblR5cGUgKmZ1bmNUeXBlLCBsbHZtOjpWYWx1ZSAqYXJnLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0g Ci0gICAgIC8qKiBUaGlzIGlzIGEgY29udmVuaWVuY2UgbWV0aG9kIHRoYXQgaXNzdWVzIGEgY2Fs bCBpbnN0cnVjdGlvbiB0byBhCi0gICAgICAgICBmdW5jdGlvbiB0aGF0IHRha2VzIHR3byBhcmd1 bWVudHMuICovCi0gICAgIGxsdm06OlZhbHVlICpDYWxsSW5zdChsbHZtOjpWYWx1ZSAqZnVuYywg Y29uc3QgRnVuY3Rpb25UeXBlICpmdW5jVHlwZSwgbGx2bTo6VmFsdWUgKmFyZzAsIGxsdm06OlZh bHVlICphcmcxLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSA9 IE5VTEwpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5h bWUgPSAiIik7Ci0gCi0gICAgIC8qKiBMYXVuY2ggYW4gYXN5bmNocm9ub3VzIHRhc2sgdG8gcnVu IHRoZSBnaXZlbiBmdW5jdGlvbiwgcGFzc2luZyBpdAotICAgICAgICAgaGUgZ2l2ZW4gYXJndW1l bnQgdmFsdWVzLiAqLwotQEAgLTc1Niw5ICs3NTksMTAgQEAgY2xhc3MgRnVuY3Rpb25FbWl0Q29u dGV4dCB7Ci0gICAgIHZvaWQgbWFza2VkU3RvcmUobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpW YWx1ZSAqcHRyLCBjb25zdCBUeXBlICpwdHJUeXBlLCBsbHZtOjpWYWx1ZSAqbWFzayk7Ci0gICAg IHZvaWQgc3RvcmVVbmlmb3JtVG9TT0EobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpWYWx1ZSAq cHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgVHlwZSAqdmFsdWVUeXBlLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IFBvaW50ZXJUeXBlICpwdHJUeXBlKTsKLS0gICAgbGx2 bTo6VmFsdWUgKmxvYWRVbmlmb3JtRnJvbVNPQShsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1 ZSAqbWFzaywgY29uc3QgUG9pbnRlclR5cGUgKnB0clR5cGUsIGNvbnN0IGNoYXIgKm5hbWUpOwot KyAgICBsbHZtOjpWYWx1ZSAqbG9hZFVuaWZvcm1Gcm9tU09BKGxsdm06OlZhbHVlICpwdHIsIGxs dm06OlZhbHVlICptYXNrLCBjb25zdCBQb2ludGVyVHlwZSAqcHRyVHlwZSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsK LSAKLS0gICAgbGx2bTo6VmFsdWUgKmdhdGhlcihsbHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBQb2lu dGVyVHlwZSAqcHRyVHlwZSwgbGx2bTo6VmFsdWUgKm1hc2ssIGNvbnN0IGNoYXIgKm5hbWUpOwot KyAgICBsbHZtOjpWYWx1ZSAqZ2F0aGVyKGxsdm06OlZhbHVlICpwdHIsIGNvbnN0IFBvaW50ZXJU eXBlICpwdHJUeXBlLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUg PSAiIik7Ci0gCi0gICAgIGxsdm06OlZhbHVlICphZGRWYXJ5aW5nT2Zmc2V0c0lmTmVlZGVkKGxs dm06OlZhbHVlICpwdHIsIGNvbnN0IFR5cGUgKnB0clR5cGUpOwotIH07Ci1kaWZmIC0tZ2l0IGEv c3JjL2V4cHIuY3BwIGIvc3JjL2V4cHIuY3BwCi1pbmRleCA4MGNjMzAyMGEuLjZkMzhkMTg4OSAx MDA2NDQKLS0tLSBhL3NyYy9leHByLmNwcAotKysrIGIvc3JjL2V4cHIuY3BwCi1AQCAtMTAyMSwx MSArMTAyMSwxMSBAQCBzdGF0aWMgbGx2bTo6VmFsdWUgKmxFbWl0TmVnYXRlKEV4cHIgKmFyZywg U291cmNlUG9zIHBvcywgRnVuY3Rpb25FbWl0Q29udGV4dCAqYwotICAgICBjdHgtPlNldERlYnVn UG9zKHBvcyk7Ci0gICAgIGlmICh0eXBlLT5Jc0Zsb2F0VHlwZSgpKSB7Ci0gICAgICAgICBsbHZt OjpWYWx1ZSAqemVybyA9IGxsdm06OkNvbnN0YW50RlA6OmdldFplcm9WYWx1ZUZvck5lZ2F0aW9u KHR5cGUtPkxMVk1UeXBlKGctPmN0eCkpOwotLSAgICAgICAgcmV0dXJuIGN0eC0+QmluYXJ5T3Bl cmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246OkZTdWIsIHplcm8sIGFyZ1ZhbCwgTExWTUdldE5hbWUo YXJnVmFsLCAiX25lZ2F0ZSIpKTsKLSsgICAgICAgIHJldHVybiBjdHgtPkJpbmFyeU9wZXJhdG9y KGxsdm06Okluc3RydWN0aW9uOjpGU3ViLCB6ZXJvLCBhcmdWYWwsIGxsdm06OlR3aW5lKGFyZ1Zh bC0+Z2V0TmFtZSgpKSArICJfbmVnYXRlIik7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgICBsbHZt OjpWYWx1ZSAqemVybyA9IGxMTFZNQ29uc3RhbnRWYWx1ZSh0eXBlLCBnLT5jdHgsIDAuKTsKLSAg ICAgICAgIEFzc2VydFBvcyhwb3MsIHR5cGUtPklzSW50VHlwZSgpKTsKLS0gICAgICAgIHJldHVy biBjdHgtPkJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpTdWIsIHplcm8sIGFyZ1Zh bCwgTExWTUdldE5hbWUoYXJnVmFsLCAiX25lZ2F0ZSIpKTsKLSsgICAgICAgIHJldHVybiBjdHgt PkJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpTdWIsIHplcm8sIGFyZ1ZhbCwgbGx2 bTo6VHdpbmUoYXJnVmFsLT5nZXROYW1lKCkpICsgIl9uZWdhdGUiKTsKLSAgICAgfQotIH0KLSAK LUBAIC0xMDQ3LDExICsxMDQ3LDExIEBAIGxsdm06OlZhbHVlICpVbmFyeUV4cHI6OkdldFZhbHVl KEZ1bmN0aW9uRW1pdENvbnRleHQgKmN0eCkgY29uc3QgewotICAgICAgICAgcmV0dXJuIGxFbWl0 TmVnYXRlKGV4cHIsIHBvcywgY3R4KTsKLSAgICAgY2FzZSBMb2dpY2FsTm90OiB7Ci0gICAgICAg ICBsbHZtOjpWYWx1ZSAqYXJnVmFsID0gZXhwci0+R2V0VmFsdWUoY3R4KTsKLS0gICAgICAgIHJl dHVybiBjdHgtPk5vdE9wZXJhdG9yKGFyZ1ZhbCwgTExWTUdldE5hbWUoYXJnVmFsLCAiX2xvZ2lj YWxub3QiKSk7Ci0rICAgICAgICByZXR1cm4gY3R4LT5Ob3RPcGVyYXRvcihhcmdWYWwsIGxsdm06 OlR3aW5lKGFyZ1ZhbC0+Z2V0TmFtZSgpKSArICJfbG9naWNhbG5vdCIpOwotICAgICB9Ci0gICAg IGNhc2UgQml0Tm90OiB7Ci0gICAgICAgICBsbHZtOjpWYWx1ZSAqYXJnVmFsID0gZXhwci0+R2V0 VmFsdWUoY3R4KTsKLS0gICAgICAgIHJldHVybiBjdHgtPk5vdE9wZXJhdG9yKGFyZ1ZhbCwgTExW TUdldE5hbWUoYXJnVmFsLCAiX2JpdG5vdCIpKTsKLSsgICAgICAgIHJldHVybiBjdHgtPk5vdE9w ZXJhdG9yKGFyZ1ZhbCwgbGx2bTo6VHdpbmUoYXJnVmFsLT5nZXROYW1lKCkpICsgIl9iaXRub3Qi KTsKLSAgICAgfQotICAgICBkZWZhdWx0OgotICAgICAgICAgRkFUQUwoImxvZ2ljIGVycm9yIik7 Ci1AQCAtMTUxOCw3ICsxNTE4LDggQEAgc3RhdGljIGxsdm06OlZhbHVlICpsRW1pdEJpbmFyeUFy aXRoKEJpbmFyeUV4cHI6Ok9wIG9wLCBsbHZtOjpWYWx1ZSAqdmFsdWUwLCBsbHYKLSAgICAgICAg ICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgIH0KLSAKLS0gICAgICAgIHJldHVybiBjdHgtPkJp bmFyeU9wZXJhdG9yKGluc3QsIHZhbHVlMCwgdmFsdWUxLCBMTFZNR2V0TmFtZShvcE5hbWUsIHZh bHVlMCwgdmFsdWUxKSk7Ci0rICAgICAgICByZXR1cm4gY3R4LT5CaW5hcnlPcGVyYXRvcihpbnN0 LCB2YWx1ZTAsIHZhbHVlMSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgo KGxsdm06OlR3aW5lKG9wTmFtZSkgKyAiXyIpICsgdmFsdWUwLT5nZXROYW1lKCkpICsgIl8iKSAr IHZhbHVlMS0+Z2V0TmFtZSgpKTsKLSAgICAgfQotIH0KLSAKLUBAIC0xNTYzLDcgKzE1NjQsNyBA QCBzdGF0aWMgbGx2bTo6VmFsdWUgKmxFbWl0QmluYXJ5Q21wKEJpbmFyeUV4cHI6Ok9wIG9wLCBs bHZtOjpWYWx1ZSAqZTBWYWwsIGxsdm06OgotICAgICB9Ci0gCi0gICAgIGxsdm06OlZhbHVlICpj bXAgPSBjdHgtPkNtcEluc3QoaXNGbG9hdE9wID8gbGx2bTo6SW5zdHJ1Y3Rpb246OkZDbXAgOiBs bHZtOjpJbnN0cnVjdGlvbjo6SUNtcCwgcHJlZCwgZTBWYWwsIGUxVmFsLAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExMVk1HZXROYW1lKG9wTmFtZSwgZTBWYWwsIGUxVmFs KSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgobGx2bTo6VHdpbmUo b3BOYW1lKSArICJfIikgKyBlMFZhbC0+Z2V0TmFtZSgpKSArICJfIikgKyBlMVZhbC0+Z2V0TmFt ZSgpKTsKLSAgICAgLy8gVGhpcyBpcyBhIGxpdHRsZSB1Z2x5OiBDbXBJbnN0IHJldHVybnMgaTEg dmFsdWVzLCBidXQgd2UgdXNlIHZlY3RvcnMKLSAgICAgLy8gb2YgaTMycyBmb3IgdmFyeWluZyBi b29sIHZhbHVlczsgdHlwZSBjb252ZXJ0IHRoZSByZXN1bHQgaGVyZSBpZgotICAgICAvLyBuZWVk ZWQuCi1AQCAtNDE3Nyw3ICs0MTc4LDcgQEAgc3RhdGljIGxsdm06OlZhbHVlICpsQ29udmVydFRv U2xpY2VQb2ludGVyKEZ1bmN0aW9uRW1pdENvbnRleHQgKmN0eCwgbGx2bTo6VmFsdWUKLSAgICAg Ly8gb2Zmc2V0cwotICAgICBsbHZtOjpWYWx1ZSAqcmVzdWx0ID0gbGx2bTo6Q29uc3RhbnQ6Omdl dE51bGxWYWx1ZShzbGljZVN0cnVjdFR5cGUpOwotICAgICAvLyBBbmQgcmVwbGFjZSB0aGUgcG9p bnRlciBpbiB0aGUgc3RydWN0IHdpdGggdGhlIGdpdmVuIHBvaW50ZXIKLS0gICAgcmV0dXJuIGN0 eC0+SW5zZXJ0SW5zdChyZXN1bHQsIHB0ciwgMCwgTExWTUdldE5hbWUocHRyLCAiX3NsaWNlIikp OwotKyAgICByZXR1cm4gY3R4LT5JbnNlcnRJbnN0KHJlc3VsdCwgcHRyLCAwLCBsbHZtOjpUd2lu ZShwdHItPmdldE5hbWUoKSkgKyAiX3NsaWNlIik7Ci0gfQotIAotIC8qKiBJZiB0aGUgZ2l2ZW4g YXJyYXkgaW5kZXggaXMgYSBjb21waWxlIHRpbWUgY29uc3RhbnQsIGNoZWNrIHRvIHNlZSBpZiBp dAotQEAgLTQyNTgsOCArNDI1OSw4IEBAIGxsdm06OlZhbHVlICpJbmRleEV4cHI6OkdldExWYWx1 ZShGdW5jdGlvbkVtaXRDb250ZXh0ICpjdHgpIGNvbnN0IHsKLSAgICAgICAgIC8vIENvbnZlcnQg dG8gYSBzbGljZSBwb2ludGVyIGlmIHdlJ3JlIGluZGV4aW5nIGludG8gU09BIGRhdGEKLSAgICAg ICAgIGJhc2VQdHJWYWx1ZSA9IGxDb252ZXJ0UHRyVG9TbGljZUlmTmVlZGVkKGN0eCwgYmFzZVB0 clZhbHVlLCAmYmFzZUV4cHJUeXBlKTsKLSAKLS0gICAgICAgIGxsdm06OlZhbHVlICpwdHIgPQot LSAgICAgICAgICAgIGN0eC0+R2V0RWxlbWVudFB0ckluc3QoYmFzZVB0clZhbHVlLCBpbmRleFZh bHVlLCBiYXNlRXhwclR5cGUsIExMVk1HZXROYW1lKGJhc2VQdHJWYWx1ZSwgIl9vZmZzZXQiKSk7 Ci0rICAgICAgICBsbHZtOjpWYWx1ZSAqcHRyID0gY3R4LT5HZXRFbGVtZW50UHRySW5zdChiYXNl UHRyVmFsdWUsIGluZGV4VmFsdWUsIGJhc2VFeHByVHlwZSwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlR3aW5lKGJhc2VQdHJWYWx1ZS0+ Z2V0TmFtZSgpKSArICJfb2Zmc2V0Iik7Ci0gICAgICAgICByZXR1cm4gbEFkZFZhcnlpbmdPZmZz ZXRzSWZOZWVkZWQoY3R4LCBwdHIsIEdldExWYWx1ZVR5cGUoKSk7Ci0gICAgIH0KLSAKLUBAIC00 MjkwLDggKzQyOTEsOCBAQCBsbHZtOjpWYWx1ZSAqSW5kZXhFeHByOjpHZXRMVmFsdWUoRnVuY3Rp b25FbWl0Q29udGV4dCAqY3R4KSBjb25zdCB7Ci0gICAgIGN0eC0+U2V0RGVidWdQb3MocG9zKTsK LSAKLSAgICAgLy8gQW5kIGRvIHRoZSBhY3R1YWwgaW5kZXhpbmcgY2FsY3VsYXRpb24uLgotLSAg ICBsbHZtOjpWYWx1ZSAqcHRyID0KLS0gICAgICAgIGN0eC0+R2V0RWxlbWVudFB0ckluc3QoYmFz ZVB0ciwgTExWTUludDMyKDApLCBpbmRleFZhbHVlLCBiYXNlUHRyVHlwZSwgTExWTUdldE5hbWUo YmFzZVB0ciwgIl9vZmZzZXQiKSk7Ci0rICAgIGxsdm06OlZhbHVlICpwdHIgPSBjdHgtPkdldEVs ZW1lbnRQdHJJbnN0KGJhc2VQdHIsIExMVk1JbnQzMigwKSwgaW5kZXhWYWx1ZSwgYmFzZVB0clR5 cGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06 OlR3aW5lKGJhc2VQdHItPmdldE5hbWUoKSkgKyAiX29mZnNldCIpOwotICAgICByZXR1cm4gbEFk ZFZhcnlpbmdPZmZzZXRzSWZOZWVkZWQoY3R4LCBwdHIsIEdldExWYWx1ZVR5cGUoKSk7Ci0gfQot IAotQEAgLTQ3ODgsMTUgKzQ3ODksMTQgQEAgbGx2bTo6VmFsdWUgKlZlY3Rvck1lbWJlckV4cHI6 OkdldFZhbHVlKEZ1bmN0aW9uRW1pdENvbnRleHQgKmN0eCkgY29uc3QgewotICAgICAgICAgZm9y IChzaXplX3QgaSA9IDA7IGkgPCBpZGVudGlmaWVyLnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAg ICAgY2hhciBpZFN0clsyXSA9IHtpZGVudGlmaWVyW2ldLCAnXDAnfTsKLSAgICAgICAgICAgICBs bHZtOjpWYWx1ZSAqZWxlbWVudFB0ciA9Ci0tICAgICAgICAgICAgICAgIGN0eC0+QWRkRWxlbWVu dE9mZnNldChiYXNlUHRyLCBpbmRpY2VzW2ldLCBiYXNlUHRyVHlwZSwgTExWTUdldE5hbWUoYmFz ZVB0ciwgaWRTdHIpKTsKLSsgICAgICAgICAgICAgICAgY3R4LT5BZGRFbGVtZW50T2Zmc2V0KGJh c2VQdHIsIGluZGljZXNbaV0sIGJhc2VQdHJUeXBlLCBsbHZtOjpUd2luZShiYXNlUHRyLT5nZXRO YW1lKCkpICsgaWRTdHIpOwotICAgICAgICAgICAgIGxsdm06OlZhbHVlICplbGVtZW50VmFsdWUg PSBjdHgtPkxvYWRJbnN0KGVsZW1lbnRQdHIsIGVsZW1lbnRNYXNrLCBlbGVtZW50UHRyVHlwZSk7 Ci0gCi0tICAgICAgICAgICAgY29uc3QgY2hhciAqcmVzdWx0TmFtZSA9IExMVk1HZXROYW1lKHJl c3VsdFB0ciwgaWRTdHIpOwotLSAgICAgICAgICAgIGxsdm06OlZhbHVlICpwdG1wID0gY3R4LT5B ZGRFbGVtZW50T2Zmc2V0KHJlc3VsdFB0ciwgaSwgTlVMTCwgcmVzdWx0TmFtZSk7Ci0rICAgICAg ICAgICAgbGx2bTo6VmFsdWUgKnB0bXAgPSBjdHgtPkFkZEVsZW1lbnRPZmZzZXQocmVzdWx0UHRy LCBpLCBOVUxMLCBsbHZtOjpUd2luZShyZXN1bHRQdHItPmdldE5hbWUoKSkgKyBpZFN0cik7Ci0g ICAgICAgICAgICAgY3R4LT5TdG9yZUluc3QoZWxlbWVudFZhbHVlLCBwdG1wLCBlbGVtZW50UHRy VHlwZSwgZXhwci0+R2V0VHlwZSgpLT5Jc1VuaWZvcm1UeXBlKCkpOwotICAgICAgICAgfQotIAot LSAgICAgICAgcmV0dXJuIGN0eC0+TG9hZEluc3QocmVzdWx0UHRyLCBtZW1iZXJUeXBlLCBMTFZN R2V0TmFtZShiYXNlUHRyLCAiX3N3aXp6bGUiKSk7Ci0rICAgICAgICByZXR1cm4gY3R4LT5Mb2Fk SW5zdChyZXN1bHRQdHIsIG1lbWJlclR5cGUsIGxsdm06OlR3aW5lKGJhc2VQdHItPmdldE5hbWUo KSkgKyAiX3N3aXp6bGUiKTsKLSAgICAgfQotIH0KLSAKLUBAIC00OTMyLDcgKzQ5MzIsNyBAQCBs bHZtOjpWYWx1ZSAqTWVtYmVyRXhwcjo6R2V0VmFsdWUoRnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4 KSBjb25zdCB7Ci0gCi0gICAgIGN0eC0+U2V0RGVidWdQb3MocG9zKTsKLSAgICAgc3RkOjpzdHJp bmcgc3VmZml4ID0gc3RkOjpzdHJpbmcoIl8iKSArIGlkZW50aWZpZXI7Ci0tICAgIHJldHVybiBj dHgtPkxvYWRJbnN0KGx2YWx1ZSwgbWFzaywgbHZhbHVlVHlwZSwgTExWTUdldE5hbWUobHZhbHVl LCBzdWZmaXguY19zdHIoKSkpOwotKyAgICByZXR1cm4gY3R4LT5Mb2FkSW5zdChsdmFsdWUsIG1h c2ssIGx2YWx1ZVR5cGUsIGxsdm06OlR3aW5lKGx2YWx1ZS0+Z2V0TmFtZSgpKSArIHN1ZmZpeCk7 Ci0gfQotIAotIGNvbnN0IFR5cGUgKk1lbWJlckV4cHI6OkdldFR5cGUoKSBjb25zdCB7IHJldHVy biBOVUxMOyB9Ci1AQCAtNjUwMiw3ICs2NTAyLDcgQEAgc3RhdGljIGxsdm06OlZhbHVlICpsVHlw ZUNvbnZBdG9taWMoRnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4LCBsbHZtOjpWYWx1ZSAqZXhwclYK LSAgICAgICAgICAgICAgICAgLy8gZG9lcyBmb3IgZXZlcnlvbmUgZWxzZS4uLgotICAgICAgICAg ICAgICAgICBBc3NlcnQoY2FzdCk7Ci0gICAgICAgICAgICAgICAgIGNhc3QgPSBjdHgtPlN3aXRj aEJvb2xTaXplKGNhc3QsIExMVk1UeXBlczo6Qm9vbFZlY3RvclR5cGUtPmdldEVsZW1lbnRUeXBl KCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExMVk1HZXRO YW1lKGNhc3QsICJ0b19pX2Jvb2wiKSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxsdm06OlR3aW5lKGNhc3QtPmdldE5hbWUoKSkgKyAidG9faV9ib29sIik7 Ci0gICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAvLyBmcm9t VHlwZS0+SXNWYXJ5aW5nVHlwZSgpKQotQEAgLTgyNDYsNyArODI0Niw3IEBAIGxsdm06OlZhbHVl ICpOZXdFeHByOjpHZXRWYWx1ZShGdW5jdGlvbkVtaXRDb250ZXh0ICpjdHgpIGNvbnN0IHsKLSAg ICAgICAgIC8vIHBvaW50ZXIgb2YgdGhlIHJldHVybiB0eXBlIGFuZCB0byBydW4gdGhlIGNvZGUg Zm9yIGluaXRpYWxpemVycywKLSAgICAgICAgIC8vIGlmIHByZXNlbnQuCi0gICAgICAgICBsbHZt OjpUeXBlICpwdHJUeXBlID0gcmV0VHlwZS0+TExWTVR5cGUoZy0+Y3R4KTsKLS0gICAgICAgIHB0 clZhbHVlID0gY3R4LT5CaXRDYXN0SW5zdChwdHJWYWx1ZSwgcHRyVHlwZSwgTExWTUdldE5hbWUo cHRyVmFsdWUsICJfY2FzdF9wdHIiKSk7Ci0rICAgICAgICBwdHJWYWx1ZSA9IGN0eC0+Qml0Q2Fz dEluc3QocHRyVmFsdWUsIHB0clR5cGUsIGxsdm06OlR3aW5lKHB0clZhbHVlLT5nZXROYW1lKCkp ICsgIl9jYXN0X3B0ciIpOwotIAotICAgICAgICAgaWYgKGluaXRFeHByICE9IE5VTEwpCi0gICAg ICAgICAgICAgSW5pdFN5bWJvbChwdHJWYWx1ZSwgYWxsb2NUeXBlLCBpbml0RXhwciwgY3R4LCBw b3MpOwotZGlmZiAtLWdpdCBhL3NyYy9sbHZtdXRpbC5jcHAgYi9zcmMvbGx2bXV0aWwuY3BwCi1p bmRleCA5NzAxNzVkYmYuLmQwYmVjYjlmNSAxMDA2NDQKLS0tLSBhL3NyYy9sbHZtdXRpbC5jcHAK LSsrKyBiL3NyYy9sbHZtdXRpbC5jcHAKLUBAIC0xNjA1LDIzICsxNjA1LDYgQEAgbGx2bTo6VmFs dWUgKkxMVk1TaHVmZmxlVmVjdG9ycyhsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2Miwg aW50MzJfdCBzaHVmW10KLSAgICAgcmV0dXJuIG5ldyBsbHZtOjpTaHVmZmxlVmVjdG9ySW5zdCh2 MSwgdjIsIHZlYywgInNodWZmbGUiLCBpbnNlcnRCZWZvcmUpOwotIH0KLSAKLS1jb25zdCBjaGFy ICpMTFZNR2V0TmFtZShsbHZtOjpWYWx1ZSAqdiwgY29uc3QgY2hhciAqcykgewotLSAgICBpZiAo diA9PSBOVUxMKQotLSAgICAgICAgcmV0dXJuIHM7Ci0tICAgIHN0ZDo6c3RyaW5nIHJldCA9IHN0 ZDo6c3RyaW5nKHYtPmdldE5hbWUoKSk7Ci0tICAgIHJldCArPSBzOwotLSAgICByZXR1cm4gc3Ry ZHVwKHJldC5jX3N0cigpKTsKLS19Ci0tCi0tY29uc3QgY2hhciAqTExWTUdldE5hbWUoY29uc3Qg Y2hhciAqb3AsIGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYyKSB7Ci0tICAgIHN0ZDo6 c3RyaW5nIHIgPSBvcDsKLS0gICAgciArPSAiXyI7Ci0tICAgIHIgKz0gdjEtPmdldE5hbWUoKS5z dHIoKTsKLS0gICAgciArPSAiXyI7Ci0tICAgIHIgKz0gdjItPmdldE5hbWUoKS5zdHIoKTsKLS0g ICAgcmV0dXJuIHN0cmR1cChyLmNfc3RyKCkpOwotLX0KLS0KLSAjaWZkZWYgSVNQQ19HRU5YX0VO QUJMRUQKLSBib29sIGxJc1NWTUxvYWQobGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QpIHsKLSAgICAg QXNzZXJ0KGluc3QpOwotZGlmZiAtLWdpdCBhL3NyYy9sbHZtdXRpbC5oIGIvc3JjL2xsdm11dGls LmgKLWluZGV4IDQyY2NlNGQ4My4uMDdkMDg5YmI0IDEwMDY0NAotLS0tIGEvc3JjL2xsdm11dGls LmgKLSsrKyBiL3NyYy9sbHZtdXRpbC5oCi1AQCAtMzI4LDExICszMjgsNiBAQCBleHRlcm4gbGx2 bTo6VmFsdWUgKkxMVk1Db25jYXRWZWN0b3JzKGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUg KnYyLCBsbHZtOjpJbgotIGV4dGVybiBsbHZtOjpWYWx1ZSAqTExWTVNodWZmbGVWZWN0b3JzKGxs dm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYyLCBpbnQzMl90IHNodWZbXSwgaW50IHNodWZT aXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06Okluc3Ry dWN0aW9uICppbnNlcnRCZWZvcmUpOwotIAotLS8qKiBVdGlsaXR5IHJvdXRpbmVzIHRvIGNvbmNh dCBzdHJpbmdzIHdpdGggdGhlIG5hbWVzIG9mIGV4aXN0aW5nIHZhbHVlcyB0bwotLSAgICBjcmVh dGUgbWVhbmluZ2Z1bCBuZXcgbmFtZXMgZm9yIGluc3RydWN0aW9uIHZhbHVlcy4KLS0qLwotLWV4 dGVybiBjb25zdCBjaGFyICpMTFZNR2V0TmFtZShsbHZtOjpWYWx1ZSAqdiwgY29uc3QgY2hhciAq KTsKLS1leHRlcm4gY29uc3QgY2hhciAqTExWTUdldE5hbWUoY29uc3QgY2hhciAqb3AsIGxsdm06 OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYyKTsKLSAjaWZkZWYgSVNQQ19HRU5YX0VOQUJMRUQK LSBlbnVtIEFkZHJlc3NTcGFjZSB7IExvY2FsLCBHbG9iYWwsIEV4dGVybmFsIH07Ci0gCi1kaWZm IC0tZ2l0IGEvc3JjL29wdC5jcHAgYi9zcmMvb3B0LmNwcAotaW5kZXggNWIxYWM3YjYzLi45ZDZj YWUwNTggMTAwNjQ0Ci0tLS0gYS9zcmMvb3B0LmNwcAotKysrIGIvc3JjL29wdC5jcHAKLUBAIC0y NTcsNyArMjU3LDcgQEAgc3RhdGljIGJvb2wgbEdldFNvdXJjZVBvc0Zyb21NZXRhZGF0YShjb25z dCBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCwgU291cmNlUG9zICoKLSAgICAgcmV0dXJuIHRydWU7 Ci0gfQotIAotLXN0YXRpYyBsbHZtOjpJbnN0cnVjdGlvbiAqbENhbGxJbnN0KGxsdm06OkZ1bmN0 aW9uICpmdW5jLCBsbHZtOjpWYWx1ZSAqYXJnMCwgbGx2bTo6VmFsdWUgKmFyZzEsIGNvbnN0IGNo YXIgKm5hbWUsCi0rc3RhdGljIGxsdm06Okluc3RydWN0aW9uICpsQ2FsbEluc3QobGx2bTo6RnVu Y3Rpb24gKmZ1bmMsIGxsdm06OlZhbHVlICphcmcwLCBsbHZtOjpWYWx1ZSAqYXJnMSwgY29uc3Qg bGx2bTo6VHdpbmUgJm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGx2bTo6SW5zdHJ1Y3Rpb24gKmluc2VydEJlZm9yZSA9IE5VTEwpIHsKLSAgICAgbGx2bTo6VmFs dWUgKmFyZ3NbMl0gPSB7YXJnMCwgYXJnMX07Ci0gICAgIGxsdm06OkFycmF5UmVmPGxsdm06OlZh bHVlICo+IG5ld0FyZ0FycmF5KCZhcmdzWzBdLCAmYXJnc1syXSk7Ci1AQCAtMjY1LDIxICsyNjUs MjIgQEAgc3RhdGljIGxsdm06Okluc3RydWN0aW9uICpsQ2FsbEluc3QobGx2bTo6RnVuY3Rpb24g KmZ1bmMsIGxsdm06OlZhbHVlICphcmcwLCBsbHYKLSB9Ci0gCi0gc3RhdGljIGxsdm06Okluc3Ry dWN0aW9uICpsQ2FsbEluc3QobGx2bTo6RnVuY3Rpb24gKmZ1bmMsIGxsdm06OlZhbHVlICphcmcw LCBsbHZtOjpWYWx1ZSAqYXJnMSwgbGx2bTo6VmFsdWUgKmFyZzIsCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSwgbGx2bTo6SW5zdHJ1Y3Rpb24g Kmluc2VydEJlZm9yZSA9IE5VTEwpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSwgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc2VydEJl Zm9yZSA9IE5VTEwpIHsKLSAgICAgbGx2bTo6VmFsdWUgKmFyZ3NbM10gPSB7YXJnMCwgYXJnMSwg YXJnMn07Ci0gICAgIGxsdm06OkFycmF5UmVmPGxsdm06OlZhbHVlICo+IG5ld0FyZ0FycmF5KCZh cmdzWzBdLCAmYXJnc1szXSk7Ci0gICAgIHJldHVybiBsbHZtOjpDYWxsSW5zdDo6Q3JlYXRlKGZ1 bmMsIG5ld0FyZ0FycmF5LCBuYW1lLCBpbnNlcnRCZWZvcmUpOwotIH0KLSAKLSBzdGF0aWMgbGx2 bTo6SW5zdHJ1Y3Rpb24gKmxDYWxsSW5zdChsbHZtOjpGdW5jdGlvbiAqZnVuYywgbGx2bTo6VmFs dWUgKmFyZzAsIGxsdm06OlZhbHVlICphcmcxLCBsbHZtOjpWYWx1ZSAqYXJnMiwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqYXJnMywgY29uc3QgY2hh ciAqbmFtZSwgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc2VydEJlZm9yZSA9IE5VTEwpIHsKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqYXJnMywgY29uc3Qg bGx2bTo6VHdpbmUgJm5hbWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGx2bTo6SW5zdHJ1Y3Rpb24gKmluc2VydEJlZm9yZSA9IE5VTEwpIHsKLSAgICAgbGx2bTo6VmFs dWUgKmFyZ3NbNF0gPSB7YXJnMCwgYXJnMSwgYXJnMiwgYXJnM307Ci0gICAgIGxsdm06OkFycmF5 UmVmPGxsdm06OlZhbHVlICo+IG5ld0FyZ0FycmF5KCZhcmdzWzBdLCAmYXJnc1s0XSk7Ci0gICAg IHJldHVybiBsbHZtOjpDYWxsSW5zdDo6Q3JlYXRlKGZ1bmMsIG5ld0FyZ0FycmF5LCBuYW1lLCBp bnNlcnRCZWZvcmUpOwotIH0KLSAKLSBzdGF0aWMgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxDYWxsSW5z dChsbHZtOjpGdW5jdGlvbiAqZnVuYywgbGx2bTo6VmFsdWUgKmFyZzAsIGxsdm06OlZhbHVlICph cmcxLCBsbHZtOjpWYWx1ZSAqYXJnMiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsbHZtOjpWYWx1ZSAqYXJnMywgbGx2bTo6VmFsdWUgKmFyZzQsIGNvbnN0IGNoYXIgKm5h bWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmFy ZzMsIGxsdm06OlZhbHVlICphcmc0LCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zZXJ0QmVm b3JlID0gTlVMTCkgewotICAgICBsbHZtOjpWYWx1ZSAqYXJnc1s1XSA9IHthcmcwLCBhcmcxLCBh cmcyLCBhcmczLCBhcmc0fTsKLSAgICAgbGx2bTo6QXJyYXlSZWY8bGx2bTo6VmFsdWUgKj4gbmV3 QXJnQXJyYXkoJmFyZ3NbMF0sICZhcmdzWzVdKTsKLUBAIC0yODcsNyArMjg4LDcgQEAgc3RhdGlj IGxsdm06Okluc3RydWN0aW9uICpsQ2FsbEluc3QobGx2bTo6RnVuY3Rpb24gKmZ1bmMsIGxsdm06 OlZhbHVlICphcmcwLCBsbHYKLSB9Ci0gCi0gc3RhdGljIGxsdm06Okluc3RydWN0aW9uICpsQ2Fs bEluc3QobGx2bTo6RnVuY3Rpb24gKmZ1bmMsIGxsdm06OlZhbHVlICphcmcwLCBsbHZtOjpWYWx1 ZSAqYXJnMSwgbGx2bTo6VmFsdWUgKmFyZzIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGx2bTo6VmFsdWUgKmFyZzMsIGxsdm06OlZhbHVlICphcmc0LCBsbHZtOjpWYWx1 ZSAqYXJnNSwgY29uc3QgY2hhciAqbmFtZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsbHZtOjpWYWx1ZSAqYXJnMywgbGx2bTo6VmFsdWUgKmFyZzQsIGxsdm06OlZhbHVl ICphcmc1LCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zZXJ0QmVmb3JlID0gTlVMTCkgewot ICAgICBsbHZtOjpWYWx1ZSAqYXJnc1s2XSA9IHthcmcwLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0 LCBhcmc1fTsKLSAgICAgbGx2bTo6QXJyYXlSZWY8bGx2bTo6VmFsdWUgKj4gbmV3QXJnQXJyYXko JmFyZ3NbMF0sICZhcmdzWzZdKTsKLUBAIC05OTEsMjMgKzk5MiwyNCBAQCBib29sIEludHJpbnNp Y3NPcHQ6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotICAgICAgICAg ICAgICAgICBsbHZtOjpUeXBlICpyZXR1cm5UeXBlID0gY2FsbEluc3QtPmdldFR5cGUoKTsKLSAg ICAgICAgICAgICAgICAgQXNzZXJ0KGxsdm06OmlzYTxsbHZtOjpWZWN0b3JUeXBlPihyZXR1cm5U eXBlKSk7Ci0gICAgICAgICAgICAgICAgIC8vIGNhc3QgdGhlIGk4ICogdG8gdGhlIGFwcHJvcHJp YXRlIHR5cGUKLS0gICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSA9IExMVk1HZXROYW1l KGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLCAiX2Nhc3QiKTsKLS0gICAgICAgICAgICAgICAg bGx2bTo6VmFsdWUgKmNhc3RQdHIgPSBuZXcgbGx2bTo6Qml0Q2FzdEluc3QoY2FsbEluc3QtPmdl dEFyZ09wZXJhbmQoMCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlBvaW50ZXJUeXBlOjpnZXQocmV0dXJuVHlwZSwg MCksIG5hbWUsIGNhbGxJbnN0KTsKLSsgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmNhc3RQ dHIgPQotKyAgICAgICAgICAgICAgICAgICAgbmV3IGxsdm06OkJpdENhc3RJbnN0KGNhbGxJbnN0 LT5nZXRBcmdPcGVyYW5kKDApLCBsbHZtOjpQb2ludGVyVHlwZTo6Z2V0KHJldHVyblR5cGUsIDAp LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlR3aW5l KGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLT5nZXROYW1lKCkpICsgIl9jYXN0IiwgY2FsbElu c3QpOwotICAgICAgICAgICAgICAgICBsQ29weU1ldGFkYXRhKGNhc3RQdHIsIGNhbGxJbnN0KTsK LSAgICAgICAgICAgICAgICAgaW50IGFsaWduOwotICAgICAgICAgICAgICAgICBpZiAoZy0+b3B0 LmZvcmNlQWxpZ25lZE1lbW9yeSkKLSAgICAgICAgICAgICAgICAgICAgIGFsaWduID0gZy0+dGFy Z2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKTsKLSAgICAgICAgICAgICAgICAgZWxzZQot ICAgICAgICAgICAgICAgICAgICAgYWxpZ24gPSBjYWxsSW5zdC0+Z2V0Q2FsbGVkRnVuY3Rpb24o KSA9PSBhdnhNYXNrZWRMb2FkMzIgPyA0IDogODsKLS0gICAgICAgICAgICAgICAgbmFtZSA9IExM Vk1HZXROYW1lKGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLCAiX2xvYWQiKTsKLSAjaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEwXzAKLS0gICAgICAgICAgICAgICAgbGx2bTo6 SW5zdHJ1Y3Rpb24gKmxvYWRJbnN0ID0gbmV3IGxsdm06OkxvYWRJbnN0KGNhc3RQdHIsIG5hbWUs IGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06Ok1heWJlQWxpZ24oYWxp Z24pLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLSsgICAgICAgICAgICAgICAgbGx2bTo6 SW5zdHJ1Y3Rpb24gKmxvYWRJbnN0ID0KLSsgICAgICAgICAgICAgICAgICAgIG5ldyBsbHZtOjpM b2FkSW5zdChjYXN0UHRyLCBsbHZtOjpUd2luZShjYWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgwKS0+ Z2V0TmFtZSgpKSArICJfbG9hZCIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLCBsbHZtOjpNYXliZUFsaWduKGFsaWduKSwg KGxsdm06Okluc3RydWN0aW9uICopTlVMTCk7Ci0gI2Vsc2UKLSAgICAgICAgICAgICAgICAgbGx2 bTo6SW5zdHJ1Y3Rpb24gKmxvYWRJbnN0ID0gbmV3IGxsdm06OkxvYWRJbnN0KAotLSAgICAgICAg ICAgICAgICAgICAgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6UG9pbnRlclR5cGU+KGNhc3RQdHItPmdl dFR5cGUoKSktPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpLCBjYXN0UHRyLCBuYW1lLAotLSAgICAg ICAgICAgICAgICAgICAgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLCBsbHZtOjpNYXliZUFsaWdu KGFsaWduKS52YWx1ZU9yT25lKCksIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotKyAgICAg ICAgICAgICAgICAgICAgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6UG9pbnRlclR5cGU+KGNhc3RQdHIt PmdldFR5cGUoKSktPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpLCBjYXN0UHRyLAotKyAgICAgICAg ICAgICAgICAgICAgbGx2bTo6VHdpbmUoY2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMCktPmdldE5h bWUoKSkgKyAiX2xvYWQiLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sCi0rICAgICAgICAgICAg ICAgICAgICBsbHZtOjpNYXliZUFsaWduKGFsaWduKS52YWx1ZU9yT25lKCksIChsbHZtOjpJbnN0 cnVjdGlvbiAqKU5VTEwpOwotICNlbmRpZgotICAgICAgICAgICAgICAgICBsQ29weU1ldGFkYXRh KGxvYWRJbnN0LCBjYWxsSW5zdCk7Ci0gICAgICAgICAgICAgICAgIGxsdm06OlJlcGxhY2VJbnN0 V2l0aEluc3QoY2FsbEluc3QsIGxvYWRJbnN0KTsKLUBAIC0xMDI4LDkgKzEwMzAsOSBAQCBib29s IEludHJpbnNpY3NPcHQ6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewot ICAgICAgICAgICAgICAgICAvLyBhbGwgbGFuZXMgc3RvcmluZywgc28gcmVwbGFjZSB3aXRoIGEg cmVndWxhciBzdG9yZQotICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqcnZhbHVlID0gY2Fs bEluc3QtPmdldEFyZ09wZXJhbmQoMik7Ci0gICAgICAgICAgICAgICAgIGxsdm06OlR5cGUgKnN0 b3JlVHlwZSA9IHJ2YWx1ZS0+Z2V0VHlwZSgpOwotLSAgICAgICAgICAgICAgICBjb25zdCBjaGFy ICpuYW1lID0gTExWTUdldE5hbWUoY2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMCksICJfcHRyY2Fz dCIpOwotLSAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqY2FzdFB0ciA9IG5ldyBsbHZtOjpC aXRDYXN0SW5zdChjYWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgwKSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6UG9pbnRl clR5cGU6OmdldChzdG9yZVR5cGUsIDApLCBuYW1lLCBjYWxsSW5zdCk7Ci0rICAgICAgICAgICAg ICAgIGxsdm06OlZhbHVlICpjYXN0UHRyID0KLSsgICAgICAgICAgICAgICAgICAgIG5ldyBsbHZt OjpCaXRDYXN0SW5zdChjYWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgwKSwgbGx2bTo6UG9pbnRlclR5 cGU6OmdldChzdG9yZVR5cGUsIDApLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxsdm06OlR3aW5lKGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLT5nZXROYW1l KCkpICsgIl9wdHJjYXN0IiwgY2FsbEluc3QpOwotICAgICAgICAgICAgICAgICBsQ29weU1ldGFk YXRhKGNhc3RQdHIsIGNhbGxJbnN0KTsKLSAKLSAgICAgICAgICAgICAgICAgaW50IGFsaWduOwot QEAgLTEzMzksOCArMTM0MSw4IEBAIHN0YXRpYyBsbHZtOjpWYWx1ZSAqbEdldEJhc2VQb2ludGVy KGxsdm06OlZhbHVlICp2LCBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zZXJ0QmVmCi0gICAgICAgICBp ZiAodCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICB9IGVs c2UgewotLSAgICAgICAgICAgIHJldHVybiBsbHZtOjpDYXN0SW5zdDo6Q3JlYXRlKGNpLT5nZXRP cGNvZGUoKSwgdCwgY2ktPmdldFR5cGUoKS0+Z2V0U2NhbGFyVHlwZSgpLCBMTFZNR2V0TmFtZSh0 LCAiX2Nhc3QiKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bnNlcnRCZWZvcmUpOwotKyAgICAgICAgICAgIHJldHVybiBsbHZtOjpDYXN0SW5zdDo6Q3JlYXRl KGNpLT5nZXRPcGNvZGUoKSwgdCwgY2ktPmdldFR5cGUoKS0+Z2V0U2NhbGFyVHlwZSgpLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlR3aW5lKHQtPmdl dE5hbWUoKSkgKyAiX2Nhc3QiLCBpbnNlcnRCZWZvcmUpOwotICAgICAgICAgfQotICAgICB9Ci0g Ci1AQCAtMTU4MywxMyArMTU4NSwxMyBAQCBzdGF0aWMgdm9pZCBsRXh0cmFjdENvbnN0YW50T2Zm c2V0KGxsdm06OlZhbHVlICp2ZWMsIGxsdm06OlZhbHVlICoqY29uc3RPZmZzZXQsCi0gICAgICAg ICBpZiAoY28gPT0gTlVMTCkKLSAgICAgICAgICAgICAqY29uc3RPZmZzZXQgPSBOVUxMOwotICAg ICAgICAgZWxzZQotLSAgICAgICAgICAgICpjb25zdE9mZnNldCA9Ci0tICAgICAgICAgICAgICAg IGxsdm06OkNhc3RJbnN0OjpDcmVhdGUoY2FzdC0+Z2V0T3Bjb2RlKCksIGNvLCBjYXN0LT5nZXRU eXBlKCksIExMVk1HZXROYW1lKGNvLCAiX2Nhc3QiKSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAg ICAgICAqY29uc3RPZmZzZXQgPSBsbHZtOjpDYXN0SW5zdDo6Q3JlYXRlKGNhc3QtPmdldE9wY29k ZSgpLCBjbywgY2FzdC0+Z2V0VHlwZSgpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHdpbmUoY28tPmdldE5hbWUoKSkgKyAiX2Nhc3Qi LCBpbnNlcnRCZWZvcmUpOwotICAgICAgICAgaWYgKHZvID09IE5VTEwpCi0gICAgICAgICAgICAg KnZhcmlhYmxlT2Zmc2V0ID0gTlVMTDsKLSAgICAgICAgIGVsc2UKLS0gICAgICAgICAgICAqdmFy aWFibGVPZmZzZXQgPQotLSAgICAgICAgICAgICAgICBsbHZtOjpDYXN0SW5zdDo6Q3JlYXRlKGNh c3QtPmdldE9wY29kZSgpLCB2bywgY2FzdC0+Z2V0VHlwZSgpLCBMTFZNR2V0TmFtZSh2bywgIl9j YXN0IiksIGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0gbGx2 bTo6Q2FzdEluc3Q6OkNyZWF0ZShjYXN0LT5nZXRPcGNvZGUoKSwgdm8sIGNhc3QtPmdldFR5cGUo KSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxsdm06OlR3aW5lKHZvLT5nZXROYW1lKCkpICsgIl9jYXN0IiwgaW5zZXJ0QmVmb3JlKTsKLSAg ICAgICAgIHJldHVybjsKLSAgICAgfQotIAotQEAgLTE2MDgsMTYgKzE2MTAsMTggQEAgc3RhdGlj IHZvaWQgbEV4dHJhY3RDb25zdGFudE9mZnNldChsbHZtOjpWYWx1ZSAqdmVjLCBsbHZtOjpWYWx1 ZSAqKmNvbnN0T2Zmc2V0LAotICAgICAgICAgICAgIGVsc2UgaWYgKGMxID09IE5VTEwgfHwgbGx2 bTo6aXNhPGxsdm06OkNvbnN0YW50QWdncmVnYXRlWmVybz4oYzEpKQotICAgICAgICAgICAgICAg ICAqY29uc3RPZmZzZXQgPSBjMDsKLSAgICAgICAgICAgICBlbHNlCi0tICAgICAgICAgICAgICAg ICpjb25zdE9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5zdHJ1 Y3Rpb246OkFkZCwgYzAsIGMxLCBMTFZNR2V0TmFtZSgiYWRkIiwgYzAsIGMxKSwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNl cnRCZWZvcmUpOwotKyAgICAgICAgICAgICAgICAqY29uc3RPZmZzZXQgPSBsbHZtOjpCaW5hcnlP cGVyYXRvcjo6Q3JlYXRlKAotKyAgICAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb246 OkFkZCwgYzAsIGMxLCAoKGxsdm06OlR3aW5lKCJhZGRfIikgKyBjMC0+Z2V0TmFtZSgpKSArICJf IikgKyBjMS0+Z2V0TmFtZSgpLAotKyAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsK LSAKLSAgICAgICAgICAgICBpZiAodjAgPT0gTlVMTCB8fCBsbHZtOjppc2E8bGx2bTo6Q29uc3Rh bnRBZ2dyZWdhdGVaZXJvPih2MCkpCi0gICAgICAgICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9 IHYxOwotICAgICAgICAgICAgIGVsc2UgaWYgKHYxID09IE5VTEwgfHwgbGx2bTo6aXNhPGxsdm06 OkNvbnN0YW50QWdncmVnYXRlWmVybz4odjEpKQotICAgICAgICAgICAgICAgICAqdmFyaWFibGVP ZmZzZXQgPSB2MDsKLSAgICAgICAgICAgICBlbHNlCi0tICAgICAgICAgICAgICAgICp2YXJpYWJs ZU9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246 OkFkZCwgdjAsIHYxLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExMVk1HZXROYW1lKCJhZGQiLCB2MCwgdjEpLCBpbnNlcnRC ZWZvcmUpOwotKyAgICAgICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPSBsbHZtOjpCaW5hcnlP cGVyYXRvcjo6Q3JlYXRlKAotKyAgICAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb246 OkFkZCwgdjAsIHYxLCAoKGxsdm06OlR3aW5lKCJhZGRfIikgKyB2MC0+Z2V0TmFtZSgpKSArICJf IikgKyB2MS0+Z2V0TmFtZSgpLAotKyAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsK LSAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICB9IGVsc2UgaWYgKGJvcC0+Z2V0T3Bjb2Rl KCkgPT0gbGx2bTo6SW5zdHJ1Y3Rpb246OlNobCkgewotICAgICAgICAgICAgIGxFeHRyYWN0Q29u c3RhbnRPZmZzZXQob3AwLCAmYzAsICZ2MCwgaW5zZXJ0QmVmb3JlKTsKLUBAIC0xNjMzLDEwICsx NjM3LDEyIEBAIHN0YXRpYyB2b2lkIGxFeHRyYWN0Q29uc3RhbnRPZmZzZXQobGx2bTo6VmFsdWUg KnZlYywgbGx2bTo6VmFsdWUgKipjb25zdE9mZnNldCwKLSAgICAgICAgICAgICAgICAgKmNvbnN0 T2Zmc2V0ID0gdmVjOwotICAgICAgICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPSBOVUxMOwot ICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgICpjb25zdE9mZnNldCA9IGxs dm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246OlNobCwgYzAsIGMx LCBMTFZNR2V0TmFtZSgic2hsIiwgYzAsIGMxKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotLSAgICAg ICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRl KGxsdm06Okluc3RydWN0aW9uOjpTaGwsIHYwLCBjMSwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTFZNR2V0TmFtZSgic2hs IiwgdjAsIGMxKSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAgICAgKmNvbnN0T2Zmc2V0 ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZSgKLSsgICAgICAgICAgICAgICAgICAgIGxs dm06Okluc3RydWN0aW9uOjpTaGwsIGMwLCBjMSwgKChsbHZtOjpUd2luZSgic2hsXyIpICsgYzAt PmdldE5hbWUoKSkgKyAiXyIpICsgYzEtPmdldE5hbWUoKSwKLSsgICAgICAgICAgICAgICAgICAg IGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9IGxsdm06 OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUoCi0rICAgICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0 cnVjdGlvbjo6U2hsLCB2MCwgYzEsICgobGx2bTo6VHdpbmUoInNobF8iKSArIHYwLT5nZXROYW1l KCkpICsgIl8iKSArIGMxLT5nZXROYW1lKCksCi0rICAgICAgICAgICAgICAgICAgICBpbnNlcnRC ZWZvcmUpOwotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICB9 IGVsc2UgaWYgKGJvcC0+Z2V0T3Bjb2RlKCkgPT0gbGx2bTo6SW5zdHJ1Y3Rpb246Ok11bCkgewot QEAgLTE2NDgsMjUgKzE2NTQsMzAgQEAgc3RhdGljIHZvaWQgbEV4dHJhY3RDb25zdGFudE9mZnNl dChsbHZtOjpWYWx1ZSAqdmVjLCBsbHZtOjpWYWx1ZSAqKmNvbnN0T2Zmc2V0LAotICAgICAgICAg ICAgIC8vIE5vdGUgdGhhdCB0aGUgZmlyc3QgdGVybSBpcyBhIGNvbnN0YW50IGFuZCB0aGUgbGFz dCB0aHJlZSBhcmUKLSAgICAgICAgICAgICAvLyB2YXJpYWJsZS4KLSAgICAgICAgICAgICBpZiAo YzAgIT0gTlVMTCAmJiBjMSAhPSBOVUxMKQotLSAgICAgICAgICAgICAgICAqY29uc3RPZmZzZXQg PSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpNdWwsIGMw LCBjMSwgTExWTUdldE5hbWUoIm11bCIsIGMwLCBjMSksCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSsg ICAgICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0 ZSgKLSsgICAgICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uOjpNdWwsIGMwLCBjMSwg KChsbHZtOjpUd2luZSgibXVsXyIpICsgYzAtPmdldE5hbWUoKSkgKyAiXyIpICsgYzEtPmdldE5h bWUoKSwKLSsgICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICAgICAg ZWxzZQotICAgICAgICAgICAgICAgICAqY29uc3RPZmZzZXQgPSBOVUxMOwotIAotICAgICAgICAg ICAgIGxsdm06OlZhbHVlICp2YSA9IE5VTEwsICp2YiA9IE5VTEwsICp2YyA9IE5VTEw7Ci0gICAg ICAgICAgICAgaWYgKHYwICE9IE5VTEwgJiYgYzEgIT0gTlVMTCkKLS0gICAgICAgICAgICAgICAg dmEgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpNdWws IHYwLCBjMSwgTExWTUdldE5hbWUoIm11bCIsIHYwLCBjMSksCi0rICAgICAgICAgICAgICAgIHZh ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6TXVsLCB2 MCwgYzEsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoKGxsdm06OlR3aW5lKCJtdWxfIikgKyB2MC0+Z2V0TmFtZSgpKSArICJfIikgKyBjMS0+Z2V0 TmFtZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgICAgICBpZiAoYzAgIT0gTlVMTCAmJiB2MSAhPSBO VUxMKQotLSAgICAgICAgICAgICAgICB2YiA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUo bGx2bTo6SW5zdHJ1Y3Rpb246Ok11bCwgYzAsIHYxLCBMTFZNR2V0TmFtZSgibXVsIiwgYzAsIHYx KSwKLSsgICAgICAgICAgICAgICAgdmIgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxs dm06Okluc3RydWN0aW9uOjpNdWwsIGMwLCB2MSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICgobGx2bTo6VHdpbmUoIm11bF8iKSArIGMwLT5nZXRO YW1lKCkpICsgIl8iKSArIHYxLT5nZXROYW1lKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotICAgICAgICAgICAgIGlm ICh2MCAhPSBOVUxMICYmIHYxICE9IE5VTEwpCi0tICAgICAgICAgICAgICAgIHZjID0gbGx2bTo6 QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6TXVsLCB2MCwgdjEsIExM Vk1HZXROYW1lKCJtdWwiLCB2MCwgdjEpLAotKyAgICAgICAgICAgICAgICB2YyA9IGxsdm06OkJp bmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246Ok11bCwgdjAsIHYxLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsbHZtOjpU d2luZSgibXVsXyIpICsgdjAtPmdldE5hbWUoKSkgKyAiXyIpICsgdjEtPmdldE5hbWUoKSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydEJl Zm9yZSk7Ci0gCi0gICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnZhYiA9IE5VTEw7Ci0gICAgICAg ICAgICAgaWYgKHZhICE9IE5VTEwgJiYgdmIgIT0gTlVMTCkKLS0gICAgICAgICAgICAgICAgdmFi ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6QWRkLCB2 YSwgdmIsIExMVk1HZXROYW1lKCJhZGQiLCB2YSwgdmIpLAotKyAgICAgICAgICAgICAgICB2YWIg PSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpBZGQsIHZh LCB2YiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoKGxsdm06OlR3aW5lKCJhZGRfIikgKyB2YS0+Z2V0TmFtZSgpKSArICJfIikgKyB2Yi0+Z2V0 TmFtZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICAgICAgZWxzZSBpZiAodmEgIT0gTlVMTCkKLSAg ICAgICAgICAgICAgICAgdmFiID0gdmE7Ci1AQCAtMTY3NCw4ICsxNjg1LDkgQEAgc3RhdGljIHZv aWQgbEV4dHJhY3RDb25zdGFudE9mZnNldChsbHZtOjpWYWx1ZSAqdmVjLCBsbHZtOjpWYWx1ZSAq KmNvbnN0T2Zmc2V0LAotICAgICAgICAgICAgICAgICB2YWIgPSB2YjsKLSAKLSAgICAgICAgICAg ICBpZiAodmFiICE9IE5VTEwgJiYgdmMgIT0gTlVMTCkKLS0gICAgICAgICAgICAgICAgKnZhcmlh YmxlT2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlv bjo6QWRkLCB2YWIsIHZjLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExMVk1HZXROYW1lKCJhZGQiLCB2YWIsIHZjKSwgaW5z ZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0gbGx2bTo6Qmlu YXJ5T3BlcmF0b3I6OkNyZWF0ZSgKLSsgICAgICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0 aW9uOjpBZGQsIHZhYiwgdmMsICgobGx2bTo6VHdpbmUoImFkZF8iKSArIHZhYi0+Z2V0TmFtZSgp KSArICJfIikgKyB2Yy0+Z2V0TmFtZSgpLAotKyAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVm b3JlKTsKLSAgICAgICAgICAgICBlbHNlIGlmICh2YWIgIT0gTlVMTCkKLSAgICAgICAgICAgICAg ICAgKnZhcmlhYmxlT2Zmc2V0ID0gdmFiOwotICAgICAgICAgICAgIGVsc2UKLUBAIC0xOTQzLDcg KzE5NTUsNyBAQCBzdGF0aWMgYm9vbCBsT2Zmc2V0czMyQml0U2FmZShsbHZtOjpWYWx1ZSAqKnZh cmlhYmxlT2Zmc2V0UHRyLCBsbHZtOjpWYWx1ZSAqKmNvbgotICAgICAgICAgICAgIC8vIGFsbCB6 ZXJvcyAoaS5lLiBhIENvbnN0YW50QWdncmVnYXRlWmVybywgYnV0IGp1c3QgaW4gY2FzZSwKLSAg ICAgICAgICAgICAvLyBkbyB0aGUgbW9yZSBnZW5lcmFsIGNoZWNrIHdpdGggbFZlY3RvcklzMzJC aXRJbnRzKCkuCi0gICAgICAgICAgICAgdmFyaWFibGVPZmZzZXQgPSBuZXcgbGx2bTo6VHJ1bmNJ bnN0KHZhcmlhYmxlT2Zmc2V0LCBMTFZNVHlwZXM6OkludDMyVmVjdG9yVHlwZSwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTExWTUdldE5hbWUodmFy aWFibGVPZmZzZXQsICJfdHJ1bmMiKSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHdpbmUodmFyaWFibGVPZmZz ZXQtPmdldE5hbWUoKSkgKyAiX3RydW5jIiwgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgIGVsc2UK LSAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgIH0KLUBAIC0xOTUyLDcgKzE5NjQsNyBA QCBzdGF0aWMgYm9vbCBsT2Zmc2V0czMyQml0U2FmZShsbHZtOjpWYWx1ZSAqKnZhcmlhYmxlT2Zm c2V0UHRyLCBsbHZtOjpWYWx1ZSAqKmNvbgotICAgICAgICAgaWYgKGxWZWN0b3JJczMyQml0SW50 cyhjb25zdE9mZnNldCkpIHsKLSAgICAgICAgICAgICAvLyBUcnVuY2F0ZSB0aGVtIHNvIHdlIGhh dmUgYSAzMi1iaXQgdmVjdG9yIHR5cGUgZm9yIHRoZW0uCi0gICAgICAgICAgICAgY29uc3RPZmZz ZXQgPSBuZXcgbGx2bTo6VHJ1bmNJbnN0KGNvbnN0T2Zmc2V0LCBMTFZNVHlwZXM6OkludDMyVmVj dG9yVHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TExWTUdldE5hbWUoY29uc3RPZmZzZXQsICJfdHJ1bmMiKSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHdpbmUoY29u c3RPZmZzZXQtPmdldE5hbWUoKSkgKyAiX3RydW5jIiwgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAg IH0gZWxzZSB7Ci0gICAgICAgICAgICAgLy8gRklYTUU6IG90aGVyd2lzZSB3ZSBqdXN0IGFzc3Vt ZSB0aGF0IGFsbCBjb25zdGFudCBvZmZzZXRzCi0gICAgICAgICAgICAgLy8gY2FuIGFjdHVhbGx5 IGFsd2F5cyBmaXQgaW50byAzMi1iaXRzLi4uICAoVGhpcyBjb3VsZCBiZQotQEAgLTE5NjMsNyAr MTk3NSw3IEBAIHN0YXRpYyBib29sIGxPZmZzZXRzMzJCaXRTYWZlKGxsdm06OlZhbHVlICoqdmFy aWFibGVPZmZzZXRQdHIsIGxsdm06OlZhbHVlICoqY29uCi0gICAgICAgICAgICAgLy8gbGx2bTo6 Q29uc3RhbnRGb2xkSW5zdHJ1Y3Rpb24oKSBkb2Vzbid0IHNlZW0gdG8gYmUgZG9pbmcKLSAgICAg ICAgICAgICAvLyBlbm91Z2ggZm9yIHVzIGluIHNvbWUgY2FzZXMgaWYgd2UgY2FsbCBpdCBmcm9t IGhlcmUuCi0gICAgICAgICAgICAgY29uc3RPZmZzZXQgPSBuZXcgbGx2bTo6VHJ1bmNJbnN0KGNv bnN0T2Zmc2V0LCBMTFZNVHlwZXM6OkludDMyVmVjdG9yVHlwZSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTExWTUdldE5hbWUoY29uc3RPZmZzZXQsICJf dHJ1bmMiKSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGx2bTo6VHdpbmUoY29uc3RPZmZzZXQtPmdldE5hbWUoKSkgKyAiX3Ry dW5jIiwgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgIH0KLSAgICAgfQotIAotQEAgLTIwMTIsOCAr MjAyNCw4IEBAIHN0YXRpYyBib29sIGxPZmZzZXRzMzJCaXRTYWZlKGxsdm06OlZhbHVlICoqb2Zm c2V0UHRyLCBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zZXJ0Ci0gCi0gICAgICAgICAvLyBBbHRlcm5h dGl2ZWx5LCBvZmZzZXQgY291bGQgYmUgYSBzZXF1ZW5jZSBvZiBhZGRzIHRlcm1pbmF0aW5nCi0g ICAgICAgICAvLyBpbiBzYWZlIGNvbnN0YW50IHZlY3RvcnMgb3IgYSBTRXh0LgotLSAgICAgICAg Km9mZnNldFB0ciA9Ci0tICAgICAgICAgICAgbmV3IGxsdm06OlRydW5jSW5zdChvZmZzZXQsIExM Vk1UeXBlczo6SW50MzJWZWN0b3JUeXBlLCBMTFZNR2V0TmFtZShvZmZzZXQsICJfdHJ1bmMiKSwg aW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICpvZmZzZXRQdHIgPSBuZXcgbGx2bTo6VHJ1bmNJbnN0 KG9mZnNldCwgTExWTVR5cGVzOjpJbnQzMlZlY3RvclR5cGUsIGxsdm06OlR3aW5lKG9mZnNldC0+ Z2V0TmFtZSgpKSArICJfdHJ1bmMiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgIHJldHVybiB0cnVlOwotICAgICB9IGVs c2UKLSAgICAgICAgIHJldHVybiBmYWxzZTsKLUBAIC0yMjI5LDcgKzIyNDEsOCBAQCBzdGF0aWMg Ym9vbCBsR1NUb0dTQmFzZU9mZnNldHMobGx2bTo6Q2FsbEluc3QgKmNhbGxJbnN0KSB7Ci0gICAg IH0KLSAgICAgLy8gQ2FzdCB0aGUgYmFzZSBwb2ludGVyIHRvIGEgdm9pZCAqLCBzaW5jZSB0aGF0 J3Mgd2hhdCB0aGUKLSAgICAgLy8gX19wc2V1ZG9fKl9iYXNlX29mZnNldHNfKiBmdW5jdGlvbnMg d2FudC4KLS0gICAgYmFzZVB0ciA9IG5ldyBsbHZtOjpJbnRUb1B0ckluc3QoYmFzZVB0ciwgTExW TVR5cGVzOjpWb2lkUG9pbnRlclR5cGUsIExMVk1HZXROYW1lKGJhc2VQdHIsICJfMnZvaWQiKSwg Y2FsbEluc3QpOwotKyAgICBiYXNlUHRyID0gbmV3IGxsdm06OkludFRvUHRySW5zdChiYXNlUHRy LCBMTFZNVHlwZXM6OlZvaWRQb2ludGVyVHlwZSwgbGx2bTo6VHdpbmUoYmFzZVB0ci0+Z2V0TmFt ZSgpKSArICJfMnZvaWQiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj YWxsSW5zdCk7Ci0gICAgIGxDb3B5TWV0YWRhdGEoYmFzZVB0ciwgY2FsbEluc3QpOwotICAgICBs bHZtOjpGdW5jdGlvbiAqZ2F0aGVyU2NhdHRlckZ1bmMgPSBpbmZvLT5iYXNlT2Zmc2V0c0Z1bmM7 Ci0gCi1AQCAtMjgwMyw3ICsyODE2LDcgQEAgc3RhdGljIGJvb2wgbEdTVG9Mb2FkU3RvcmUobGx2 bTo6Q2FsbEluc3QgKmNhbGxJbnN0KSB7Ci0gICAgICAgICAgICAgICAgIGxDb3B5TWV0YWRhdGEo cHRyLCBjYWxsSW5zdCk7Ci0gICAgICAgICAgICAgICAgIERlYnVnKHBvcywgIlRyYW5zZm9ybWVk IGdhdGhlciB0byB1bmFsaWduZWQgdmVjdG9yIGxvYWQhIik7Ci0gICAgICAgICAgICAgICAgIGxs dm06Okluc3RydWN0aW9uICpuZXdDYWxsID0KLS0gICAgICAgICAgICAgICAgICAgIGxDYWxsSW5z dChnYXRoZXJJbmZvLT5sb2FkTWFza2VkRnVuYywgcHRyLCBtYXNrLCBMTFZNR2V0TmFtZShwdHIs ICJfbWFza2VkX2xvYWQiKSk7Ci0rICAgICAgICAgICAgICAgICAgICBsQ2FsbEluc3QoZ2F0aGVy SW5mby0+bG9hZE1hc2tlZEZ1bmMsIHB0ciwgbWFzaywgbGx2bTo6VHdpbmUocHRyLT5nZXROYW1l KCkpICsgIl9tYXNrZWRfbG9hZCIpOwotICAgICAgICAgICAgICAgICBsQ29weU1ldGFkYXRhKG5l d0NhbGwsIGNhbGxJbnN0KTsKLSAgICAgICAgICAgICAgICAgbGx2bTo6UmVwbGFjZUluc3RXaXRo SW5zdChjYWxsSW5zdCwgbmV3Q2FsbCk7Ci0gICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNC5wYXRjaCBiL3NyY3Br Z3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDNhOTRkODQ0M2E1ZS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRj aGVzL2xsdm0xMi0wMDQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi1Gcm9t IGMwM2E1MTQyNDQ0NDc2YTFjYWE1YzJiYTdmYTJkOTJkNzc5M2Q2ZjEgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCi1Gcm9tOiBEZWVwYWsgUmFqZW5kcmFrdW1hcmFuIDxkZWVwYWsucmFqZW5kcmFr dW1hcmFuQGludGVsLmNvbT4KLURhdGU6IE1vbiwgMjUgSmFuIDIwMjEgMDk6MjI6NDkgLTA4MDAK LVN1YmplY3Q6IFtQQVRDSF0gRml4aW5nIGJ1aWxkIG9uIGxsdm0gdHJ1bmsuCi0KLS0tLQotIHNy Yy9jdHguY3BwIHwgNyArKystLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwg NCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9jdHguY3BwIGIvc3JjL2N0eC5jcHAK LWluZGV4IGRlZDUyNGI3MS4uYjYwZTZmZTg0IDEwMDY0NAotLS0tIGEvc3JjL2N0eC5jcHAKLSsr KyBiL3NyYy9jdHguY3BwCi1AQCAtMTAyMCw4ICsxMDIwLDcgQEAgdm9pZCBGdW5jdGlvbkVtaXRD b250ZXh0OjpFbWl0Q2FzZUxhYmVsKGludCB2YWx1ZSwgYm9vbCBjaGVja01hc2ssIFNvdXJjZVBv cyBwb3MKLSAgICAgbGx2bTo6QmFzaWNCbG9jayAqYmJDYXNlSW1wbCA9IE5VTEw7Ci0gICAgIGlm IChlbWl0R2VuWEhhcmR3YXJlTWFzaygpKSB7Ci0gICAgICAgICAvLyBDcmVhdGUgYmFzaWMgYmxv Y2sgd2l0aCBhY3R1YWwgY2FzZSBpbXBsZW1lbnRhdGlvbgotLSAgICAgICAgbGx2bTo6VHdpbmUg YmJOYW1lID0gbGx2bTo6VHdpbmUoYmJDYXNlLT5nZXROYW1lKCkpICsgIl9pbXBsIjsKLS0gICAg ICAgIGJiQ2FzZUltcGwgPSBDcmVhdGVCYXNpY0Jsb2NrKGJiTmFtZSwgYmJDYXNlKTsKLSsgICAg ICAgIGJiQ2FzZUltcGwgPSBDcmVhdGVCYXNpY0Jsb2NrKGxsdm06OlR3aW5lKGJiQ2FzZS0+Z2V0 TmFtZSgpKSArICJfaW1wbCIsIGJiQ2FzZSk7Ci0gICAgIH0KLSAjZW5kaWYKLSAKLUBAIC0zMTQy LDggKzMxNDEsOCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QnJvYWRjYXN0 VmFsdWUobGx2bTo6VmFsdWUgKnYsIGxsdm06OlR5cGUgKnZlYwotICAgICBsbHZtOjpWYWx1ZSAq dW5kZWYyID0gbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KHZlY1R5cGUpOwotIAotICAgICAvLyBJbnNl cnRFbGVtZW50Ci0tICAgIGxsdm06OlR3aW5lIHR3ID0gbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkg PyAobGx2bTo6VHdpbmUodi0+Z2V0TmFtZSgpKSArICJfYnJvYWRjYXN0IikgOiBuYW1lICsgbGx2 bTo6VHdpbmUoIl9pbml0Iik7Ci0tICAgIGxsdm06OlZhbHVlICppbnNlcnQgPSBJbnNlcnRJbnN0 KHVuZGVmMSwgdiwgMCwgdHcuc3RyKCkuY19zdHIoKSk7Ci0rICAgIGxsdm06OlZhbHVlICppbnNl cnQgPQotKyAgICAgICAgSW5zZXJ0SW5zdCh1bmRlZjEsIHYsIDAsIG5hbWUuaXNUcml2aWFsbHlF bXB0eSgpID8gKGxsdm06OlR3aW5lKHYtPmdldE5hbWUoKSkgKyAiX2Jyb2FkY2FzdCIpIDogbmFt ZSArICJfaW5pdCIpOwotIAotICAgICAvLyBTaHVmZmxlVmVjdG9yCi0gI2lmIElTUENfTExWTV9W RVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVz L2xsdm0xMi0wMDUucGF0Y2ggYi9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA1LnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlM2U5NmIwMGFiZmEuLjAwMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA1LnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsMzcyICswLDAgQEAKLUZyb20gYzFkMGE1MWJmODQxNmQ0MjE0NGRlOWUyYmRkNTk4 MjVlYWVmZjFhYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFyaW5hIE5lc2hseWFl dmEgPGFyaW5hLm5lc2hseWFldmFAaW50ZWwuY29tPgotRGF0ZTogRnJpLCA4IEphbiAyMDIxIDE0 OjEzOjQ5IC0wODAwCi1TdWJqZWN0OiBbUEFUQ0hdIExMVk0gMTEgc3VwcG9ydCBmb3IgZ2VuIGNv ZGUKLQotLS0tCi0gc3JjL2N0eC5jcHAgICAgICAgICAgICAgICAgICAgICB8ICAxMyArKy0KLSBz cmMvZ2VuL0dsb2JhbHNMb2NhbGl6YXRpb24uY3BwIHwgICA5ICstCi0gc3JjL29wdC5jcHAgICAg ICAgICAgICAgICAgICAgICB8IDE0MyArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQot IDMgZmlsZXMgY2hhbmdlZCwgMTI0IGluc2VydGlvbnMoKyksIDQxIGRlbGV0aW9ucygtKQotCi1k aWZmIC0tZ2l0IGEvc3JjL2N0eC5jcHAgYi9zcmMvY3R4LmNwcAotaW5kZXggYjYwZTZmZTg0Li4y YTcyZTY4MzcgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4LmNwcAotKysrIGIvc3JjL2N0eC5jcHAKLUBA IC0xLDUgKzEsNSBAQAotIC8qCi0tICBDb3B5cmlnaHQgKGMpIDIwMTAtMjAyMCwgSW50ZWwgQ29y cG9yYXRpb24KLSsgIENvcHlyaWdodCAoYykgMjAxMC0yMDIxLCBJbnRlbCBDb3Jwb3JhdGlvbgot ICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAKLSAgIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotQEAgLTM2ODUsOCArMzY4 NSwxNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2VuWFNpbWRDRlByZWRp Y2F0ZShsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OgotICAgICBBc3NlcnRQb3MoY3VycmVudFBv cywgbGx2bTo6aXNhPGxsdm06OlZlY3RvclR5cGU+KHZhbHVlLT5nZXRUeXBlKCkpKTsKLSAgICAg bGx2bTo6VmVjdG9yVHlwZSAqdnQgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPih2 YWx1ZS0+Z2V0VHlwZSgpKTsKLSAgICAgaWYgKGRlZmF1bHRzID09IE5VTEwpIHsKLS0gICAgICAg IGRlZmF1bHRzID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KHZhbHVlLT5nZXRUeXBl KCktPmdldFZlY3Rvck51bUVsZW1lbnRzKCksCi0rI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQ Q19MTFZNXzExXzAKLSsgICAgICAgIGRlZmF1bHRzID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6Omdl dFNwbGF0KHZ0LT5nZXRWZWN0b3JOdW1FbGVtZW50cygpLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1 ZSh2dC0+Z2V0RWxlbWVudFR5cGUoKSkpOwotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElT UENfTExWTV8xMV8wCi0rICAgICAgICBkZWZhdWx0cyA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpn ZXRTcGxhdCh7c3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pih2dC0+Z2V0TnVtRWxlbWVudHMoKSks IGZhbHNlfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUodnQtPmdldEVsZW1lbnRUeXBlKCkpKTsK LSsjZWxzZQotKyAgICAgICAgZGVmYXVsdHMgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3Bs YXQoCi0rICAgICAgICAgICAgbGx2bTo6RWxlbWVudENvdW50OjpnZXQoc3RhdGljX2Nhc3Q8dW5z aWduZWQgaW50Pih2dC0+Z2V0TnVtRWxlbWVudHMoKSksIGZhbHNlKSwKLSsgICAgICAgICAgICBs bHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKHZ0LT5nZXRFbGVtZW50VHlwZSgpKSk7Ci0rI2Vu ZGlmCi0gICAgIH0KLSAKLSAgICAgYXV0byBGbiA9IGxsdm06OkdlblhJbnRyaW5zaWM6OmdldEdl blhEZWNsYXJhdGlvbihtLT5tb2R1bGUsIGxsdm06OkdlblhJbnRyaW5zaWM6Omdlbnhfc2ltZGNm X3ByZWRpY2F0ZSwKLWRpZmYgLS1naXQgYS9zcmMvZ2VuL0dsb2JhbHNMb2NhbGl6YXRpb24uY3Bw IGIvc3JjL2dlbi9HbG9iYWxzTG9jYWxpemF0aW9uLmNwcAotaW5kZXggYTE3NmU5NDYyLi40MWYz YjAwZTIgMTAwNjQ0Ci0tLS0gYS9zcmMvZ2VuL0dsb2JhbHNMb2NhbGl6YXRpb24uY3BwCi0rKysg Yi9zcmMvZ2VuL0dsb2JhbHNMb2NhbGl6YXRpb24uY3BwCi1AQCAtMSw1ICsxLDUgQEAKLSAvKgot LSAgQ29weXJpZ2h0IChjKSAyMDE0LCAyMDE2LTIwMjAsIEludGVsIENvcnBvcmF0aW9uCi0rICBD b3B5cmlnaHQgKGMpIDIwMTQsIDIwMTYtMjAyMSwgSW50ZWwgQ29ycG9yYXRpb24KLSAgIEFsbCBy aWdodHMgcmVzZXJ2ZWQuCi0gCi0gICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLUBAIC01Myw4ICs1MywxMCBAQAotICNp bmNsdWRlIDxsbHZtL0dlblhJbnRyaW5zaWNzL0dlblhJbnRyT3B0cy5oPgotICNpbmNsdWRlIDxs bHZtL0dlblhJbnRyaW5zaWNzL0dlblhJbnRyaW5zaWNzLmg+Ci0gI2luY2x1ZGUgPGxsdm0vR2Vu WEludHJpbnNpY3MvR2VuWE1ldGFkYXRhLmg+Ci0tI2luY2x1ZGUgPGxsdm0vSVIvQ0ZHLmg+Ci0r I2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAjaW5jbHVkZSA8bGx2bS9J Ui9DYWxsU2l0ZS5oPgotKyNlbmRpZgotKyNpbmNsdWRlIDxsbHZtL0lSL0NGRy5oPgotICNpbmNs dWRlIDxsbHZtL0lSL0RlYnVnSW5mby5oPgotICNpbmNsdWRlIDxsbHZtL0lSL0RvbWluYXRvcnMu aD4KLSAjaW5jbHVkZSA8bGx2bS9JUi9GdW5jdGlvbi5oPgotQEAgLTQ3MCw3ICs0NzIsOCBAQCB2 b2lkIEdsb2JhbHNMb2NhbGl6YXRpb246OkxvY2FsaXplR2xvYmFscyhMb2NhbGl6YXRpb25JbmZv ICZMSSkgewotICAgICAgICAgSW5zdHJ1Y3Rpb24gJkZpcnN0SSA9ICpGbi0+Z2V0RW50cnlCbG9j aygpLmJlZ2luKCk7Ci0gICAgICAgICBUeXBlICpFbGVtVHkgPSBHVi0+Z2V0VHlwZSgpLT5nZXRF bGVtZW50VHlwZSgpOwotICAgICAgICAgQWxsb2NhSW5zdCAqQWxsb2NhID0gbmV3IEFsbG9jYUlu c3QoRWxlbVR5LCAwLCBHVi0+Z2V0TmFtZSgpICsgIi5sb2NhbCIsICZGaXJzdEkpOwotLSAgICAg ICAgQWxsb2NhLT5zZXRBbGlnbm1lbnQobGx2bTo6TWF5YmVBbGlnbihHVi0+Z2V0QWxpZ25tZW50 KCkpKTsKLSsgICAgICAgIEFsbG9jYS0+c2V0QWxpZ25tZW50KGxsdm06Ok1heWJlQWxpZ24oR1Yt PmdldEFsaWdubWVudCgpKS52YWx1ZU9yT25lKCkpOwotKwotICAgICAgICAgaWYgKCFpc2E8VW5k ZWZWYWx1ZT4oR1YtPmdldEluaXRpYWxpemVyKCkpKQotICAgICAgICAgICAgIG5ldyBTdG9yZUlu c3QoR1YtPmdldEluaXRpYWxpemVyKCksIEFsbG9jYSwgJkZpcnN0SSk7Ci0gCi1kaWZmIC0tZ2l0 IGEvc3JjL29wdC5jcHAgYi9zcmMvb3B0LmNwcAotaW5kZXggZDU4ZDc3ZjczLi4xNzg5Yjg0NzYg MTAwNjQ0Ci0tLS0gYS9zcmMvb3B0LmNwcAotKysrIGIvc3JjL29wdC5jcHAKLUBAIC0yODk5LDE1 ICsyODk5LDE3IEBAIHN0YXRpYyBsbHZtOjpGdW5jdGlvbiAqbEdlblhNYXNrZWRJbnQ4SW5zdChs bHZtOjpJbnN0cnVjdGlvbiAqaW5zdCwgYm9vbCBpc1N0b3JlCi0gc3RhdGljIGxsdm06OkNhbGxJ bnN0ICpsR2VuWFN0b3JlSW5zdChsbHZtOjpWYWx1ZSAqdmFsLCBsbHZtOjpWYWx1ZSAqcHRyLCBs bHZtOjpJbnN0cnVjdGlvbiAqaW5zdCkgewotICAgICBBc3NlcnQoZy0+dGFyZ2V0LT5pc0dlblhU YXJnZXQoKSk7Ci0gICAgIEFzc2VydChsbHZtOjppc2E8bGx2bTo6VmVjdG9yVHlwZT4odmFsLT5n ZXRUeXBlKCkpKTsKLS0gICAgQXNzZXJ0KGxsdm06OmlzUG93ZXJPZjJfMzIodmFsLT5nZXRUeXBl KCktPmdldFZlY3Rvck51bUVsZW1lbnRzKCkpKTsKLS0gICAgQXNzZXJ0KHZhbC0+Z2V0VHlwZSgp LT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkgLyA4IDw9IDggKiBPV09SRCk7Ci0rCi0rICAgIGxs dm06OlZlY3RvclR5cGUgKnZhbFZlY1R5cGUgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JU eXBlPih2YWwtPmdldFR5cGUoKSk7Ci0rICAgIEFzc2VydChsbHZtOjppc1Bvd2VyT2YyXzMyKHZh bFZlY1R5cGUtPmdldE51bUVsZW1lbnRzKCkpKTsKLSsgICAgQXNzZXJ0KHZhbFZlY1R5cGUtPmdl dFByaW1pdGl2ZVNpemVJbkJpdHMoKSAvIDggPD0gOCAqIE9XT1JEKTsKLSAKLSAgICAgLy8gVGhl IGRhdGEgd3JpdGUgb2Ygc3ZtIHN0b3JlIG11c3QgaGF2ZSBhIHNpemUgdGhhdCBpcyBhIHBvd2Vy IG9mIHR3byBmcm9tIDE2IHRvIDEyOAotICAgICAvLyBieXRlcy4gSG93ZXZlciBmb3IgaW50OCB0 eXBlIGFuZCBzaW1kIHdpZHRoID0gOCwgdGhlIGRhdGEgd3JpdGUgc2l6ZSBpcyA4LgotICAgICAv LyBTbyB3ZSB1c2UgbWFza2VkIHN0b3JlIGZ1bmN0aW9uIGhlcmUgaW5zdGVhZCBvZiBzdm0gc3Rv cmUgd2hpY2ggcHJvY2VzcyBpbnQ4IHR5cGUKLSAgICAgLy8gY29ycmVjdGx5LgotLSAgICBpZiAo dmFsLT5nZXRUeXBlKCktPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSAvIDggPCAxNikgewotLSAg ICAgICAgQXNzZXJ0KHZhbC0+Z2V0VHlwZSgpLT5nZXRTY2FsYXJUeXBlKCkgPT0gTExWTVR5cGVz OjpJbnQ4VHlwZSk7Ci0rICAgIGlmICh2YWxWZWNUeXBlLT5nZXRQcmltaXRpdmVTaXplSW5CaXRz KCkgLyA4IDwgMTYpIHsKLSsgICAgICAgIEFzc2VydCh2YWxWZWNUeXBlLT5nZXRTY2FsYXJUeXBl KCkgPT0gTExWTVR5cGVzOjpJbnQ4VHlwZSk7Ci0gICAgICAgICBpZiAobGx2bTo6RnVuY3Rpb24g Km1hc2tlZEZ1bmMgPSBsR2VuWE1hc2tlZEludDhJbnN0KGluc3QsIHRydWUpKQotICAgICAgICAg ICAgIHJldHVybiBsbHZtOjpkeW5fY2FzdDxsbHZtOjpDYWxsSW5zdD4obENhbGxJbnN0KG1hc2tl ZEZ1bmMsIHB0ciwgdmFsLCBMTFZNTWFza0FsbE9uLCAiIikpOwotICAgICAgICAgZWxzZSB7Ci1A QCAtMjkyMywxNSArMjkyNSwxNyBAQCBzdGF0aWMgbGx2bTo6Q2FsbEluc3QgKmxHZW5YU3RvcmVJ bnN0KGxsdm06OlZhbHVlICp2YWwsIGxsdm06OlZhbHVlICpwdHIsIGxsdm06OgotIAotIHN0YXRp YyBsbHZtOjpDYWxsSW5zdCAqbEdlblhMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpU eXBlICpyZXRUeXBlLCBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCkgewotICAgICBBc3NlcnQobGx2 bTo6aXNhPGxsdm06OlZlY3RvclR5cGU+KHJldFR5cGUpKTsKLS0gICAgQXNzZXJ0KGxsdm06Omlz UG93ZXJPZjJfMzIocmV0VHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSkpOwotLSAgICBBc3Nl cnQocmV0VHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpKTsKLS0gICAgQXNzZXJ0KHJldFR5 cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSAvIDggPD0gOCAqIE9XT1JEKTsKLSsKLSsgICAg bGx2bTo6VmVjdG9yVHlwZSAqcmV0VmVjVHlwZSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3Rv clR5cGU+KHJldFR5cGUpOwotKyAgICBBc3NlcnQobGx2bTo6aXNQb3dlck9mMl8zMihyZXRWZWNU eXBlLT5nZXROdW1FbGVtZW50cygpKSk7Ci0rICAgIEFzc2VydChyZXRWZWNUeXBlLT5nZXRQcmlt aXRpdmVTaXplSW5CaXRzKCkpOwotKyAgICBBc3NlcnQocmV0VmVjVHlwZS0+Z2V0UHJpbWl0aXZl U2l6ZUluQml0cygpIC8gOCA8PSA4ICogT1dPUkQpOwotICAgICAvLyBUaGUgZGF0YSByZWFkIG9m IHN2bSBsb2FkIG11c3QgaGF2ZSBhIHNpemUgdGhhdCBpcyBhIHBvd2VyIG9mIHR3byBmcm9tIDE2 IHRvIDEyOAotICAgICAvLyBieXRlcy4gSG93ZXZlciBmb3IgaW50OCB0eXBlIGFuZCBzaW1kIHdp ZHRoID0gOCwgdGhlIGRhdGEgcmVhZCBzaXplIGlzIDguCi0gICAgIC8vIFNvIHdlIHVzZSBtYXNr ZWQgbG9hZCBmdW5jdGlvbiBoZXJlIGluc3RlYWQgb2Ygc3ZtIGxvYWQgd2hpY2ggcHJvY2VzcyBp bnQ4IHR5cGUKLSAgICAgLy8gY29ycmVjdGx5LgotLSAgICBpZiAocmV0VHlwZS0+Z2V0UHJpbWl0 aXZlU2l6ZUluQml0cygpIC8gOCA8IDE2KSB7Ci0tICAgICAgICBBc3NlcnQocmV0VHlwZS0+Z2V0 U2NhbGFyVHlwZSgpID09IExMVk1UeXBlczo6SW50OFR5cGUpOwotKyAgICBpZiAocmV0VmVjVHlw ZS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpIC8gOCA8IDE2KSB7Ci0rICAgICAgICBBc3NlcnQo cmV0VmVjVHlwZS0+Z2V0U2NhbGFyVHlwZSgpID09IExMVk1UeXBlczo6SW50OFR5cGUpOwotICAg ICAgICAgaWYgKGxsdm06OkZ1bmN0aW9uICptYXNrZWRGdW5jID0gbEdlblhNYXNrZWRJbnQ4SW5z dChpbnN0LCBmYWxzZSkpCi0gICAgICAgICAgICAgcmV0dXJuIGxsdm06OmR5bl9jYXN0PGxsdm06 OkNhbGxJbnN0PihsQ2FsbEluc3QobWFza2VkRnVuYywgcHRyLCBMTFZNTWFza0FsbE9uLCAiIikp OwotICAgICAgICAgZWxzZSB7Ci1AQCAtNTYyMiwxNSArNTYyNiwyNCBAQCBzdGF0aWMgYm9vbCBs VmVjdG9yaXplR0VQcyhsbHZtOjpWYWx1ZSAqcHRyLCBzdGQ6OnZlY3RvcjxQdHJVc2U+ICZwdHJV c2VzLCBzdGQ6OgotICAgICAgICAgbGx2bTo6UHRyVG9JbnRJbnN0ICpwdHJUb0ludCA9Ci0gICAg ICAgICAgICAgbmV3IGxsdm06OlB0clRvSW50SW5zdChwdHIsIExMVk1UeXBlczo6SW50NjRUeXBl LCAidmVjdG9yaXplZF9wdHJ0b2ludCIsIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICBsbHZtOjpJ bnN0cnVjdGlvbiAqYWRkciA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGVBZGQocHRyVG9J bnQsIG9mZnNldCwgInZlY3Rvcml6ZWRfYWRkcmVzcyIsIGluc2VydEJlZm9yZSk7Ci0rI2lmIElT UENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0rICAgICAgICBsbHZtOjpUeXBlICpy ZXRUeXBlID0gbGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoc2NhbGFyX3R5cGUsIHJlcVNpemUg LyB0X3NpemUpOwotKyNlbHNlCi0gICAgICAgICBsbHZtOjpUeXBlICpyZXRUeXBlID0gbGx2bTo6 VmVjdG9yVHlwZTo6Z2V0KHNjYWxhcl90eXBlLCByZXFTaXplIC8gdF9zaXplKTsKLSsjZW5kaWYK LSAgICAgICAgIGxsdm06OkZ1bmN0aW9uICpmbiA9IGxsdm06OkdlblhJbnRyaW5zaWM6OmdldEdl blhEZWNsYXJhdGlvbigKLSAgICAgICAgICAgICBtLT5tb2R1bGUsIGxsdm06OkdlblhJbnRyaW5z aWM6Omdlbnhfc3ZtX2Jsb2NrX2xkX3VuYWxpZ25lZCwge3JldFR5cGUsIGFkZHItPmdldFR5cGUo KX0pOwotICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxkID0gbGx2bTo6Q2FsbEluc3Q6OkNy ZWF0ZShmbiwge2FkZHJ9LCAidmVjdG9yaXplZF9sZCIsIGluc2VydEJlZm9yZSk7Ci0gCi0gICAg ICAgICBpZiAobG9hZGluZ1B0cikgewotICAgICAgICAgICAgIC8vIENhc3QgaW50IHRvIHB0ciB2 aWEgaW50dG9wdHIKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsg ICAgICAgICAgICBsZCA9IG5ldyBsbHZtOjpJbnRUb1B0ckluc3QobGQsIGxsdm06OkZpeGVkVmVj dG9yVHlwZTo6Z2V0KG9yaWdpbmFsVHlwZSwgcmVxU2l6ZSAvIHRfc2l6ZSksCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2ZWN0b3JpemVkX2ludHRvcHRyIiwgaW5z ZXJ0QmVmb3JlKTsKLSsjZWxzZQotICAgICAgICAgICAgIGxkID0gbmV3IGxsdm06OkludFRvUHRy SW5zdChsZCwgbGx2bTo6VmVjdG9yVHlwZTo6Z2V0KG9yaWdpbmFsVHlwZSwgcmVxU2l6ZSAvIHRf c2l6ZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2ZWN0b3Jp emVkX2ludHRvcHRyIiwgaW5zZXJ0QmVmb3JlKTsKLSsjZW5kaWYKLSAgICAgICAgIH0KLSAKLSAg ICAgICAgIC8vIFNjYWxhciBleHRyYWN0cyBmb3IgYWxsIGxvYWRlZCBlbGVtZW50cwotQEAgLTYx NjAsMTkgKzYxNzMsMzQgQEAgYm9vbCBSZXBsYWNlTExWTUludHJpbnNpY3M6OnJ1bk9uQmFzaWNC bG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24g Kmluc3QgPSAmKkk7Ci0gICAgICAgICBpZiAobGx2bTo6Q2FsbEluc3QgKmNpID0gbGx2bTo6ZHlu X2Nhc3Q8bGx2bTo6Q2FsbEluc3Q+KGluc3QpKSB7Ci0gICAgICAgICAgICAgbGx2bTo6RnVuY3Rp b24gKmZ1bmMgPSBjaS0+Z2V0Q2FsbGVkRnVuY3Rpb24oKTsKLS0gICAgICAgICAgICBpZiAoZnVu YyAmJiBmdW5jLT5nZXROYW1lKCkgPT0gImxsdm0udHJhcCIpIHsKLSsgICAgICAgICAgICBpZiAo ZnVuYyAmJiBmdW5jLT5nZXROYW1lKCkuZXF1YWxzKCJsbHZtLnRyYXAiKSkgewotICAgICAgICAg ICAgICAgICBsbHZtOjpUeXBlICphcmdUeXBlc1tdID0ge0xMVk1UeXBlczo6SW50MVZlY3RvclR5 cGUsIExMVk1UeXBlczo6SW50MTZWZWN0b3JUeXBlfTsKLSAgICAgICAgICAgICAgICAgLy8gRGVz Y3JpcHRpb24gb2YgcGFyYW1ldGVycyBmb3IgZ2VueF9yYXdfc2VuZF9ub3Jlc3VsdCBjYW4gYmUg Zm91bmQgaW4gdGFyZ2V0LWdlbngubGwKLSAgICAgICAgICAgICAgICAgYXV0byBGbiA9ICtsbHZt OjpHZW5YSW50cmluc2ljOjpnZXRHZW5YRGVjbGFyYXRpb24oCi0gICAgICAgICAgICAgICAgICAg ICBtLT5tb2R1bGUsIGxsdm06OkdlblhJbnRyaW5zaWM6OmdlbnhfcmF3X3NlbmRfbm9yZXN1bHQs IGFyZ1R5cGVzKTsKLSAgICAgICAgICAgICAgICAgbGx2bTo6U21hbGxWZWN0b3I8bGx2bTo6VmFs dWUgKiwgOD4gQXJnczsKLSAgICAgICAgICAgICAgICAgQXJncy5wdXNoX2JhY2sobGx2bTo6Q29u c3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDMyVHlwZSwgMCkpOwotLSAgICAgICAgICAgICAg ICBBcmdzLnB1c2hfYmFjayhsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoZy0+dGFyZ2V0 LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnRJbnQ6OmdldFRy dWUoKmctPmN0eCkpKTsKLSsgICAgICAgICAgICAgICAgQXJncy5wdXNoX2JhY2sobGx2bTo6Q29u c3RhbnRWZWN0b3I6OmdldFNwbGF0KAotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExW TV8xMV8wCi0rICAgICAgICAgICAgICAgICAgICBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3Rvcldp ZHRoKCksCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsgICAg ICAgICAgICAgICAgICAgIHtzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGctPnRhcmdldC0+Z2V0 TmF0aXZlVmVjdG9yV2lkdGgoKSksIGZhbHNlfSwKLSsjZWxzZSAvLyBMTFZNIDEyLjArCi0rICAg ICAgICAgICAgICAgICAgICBsbHZtOjpFbGVtZW50Q291bnQ6OmdldChzdGF0aWNfY2FzdDx1bnNp Z25lZCBpbnQ+KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSksIGZhbHNlKSwKLSsj ZW5kaWYKLSsgICAgICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50SW50OjpnZXRUcnVlKCpn LT5jdHgpKSk7Ci0rCi0gICAgICAgICAgICAgICAgIEFyZ3MucHVzaF9iYWNrKGxsdm06OkNvbnN0 YW50SW50OjpnZXQoTExWTVR5cGVzOjpJbnQzMlR5cGUsIDM5KSk7Ci0gICAgICAgICAgICAgICAg IEFyZ3MucHVzaF9iYWNrKGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJbnQzMlR5 cGUsIDMzNTU0NDQ4KSk7Ci0gICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICp6ZXJvTWFzayA9 IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCgKLS0gICAgICAgICAgICAgICAgICAgIGct PnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSwgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxW YWx1ZShsbHZtOjpUeXBlOjpnZXRJbnQxNlR5KCpnLT5jdHgpKSk7Ci0rI2lmIElTUENfTExWTV9W RVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSsgICAgICAgICAgICAgICAgICAgIGctPnRhcmdldC0+ Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSwKLSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BD X0xMVk1fMTFfMAotKyAgICAgICAgICAgICAgICAgICAge3N0YXRpY19jYXN0PHVuc2lnbmVkIGlu dD4oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpKSwgZmFsc2V9LAotKyNlbHNlIC8v IExMVk0gMTIuMCsKLSsgICAgICAgICAgICAgICAgICAgIGxsdm06OkVsZW1lbnRDb3VudDo6Z2V0 KHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0 aCgpKSwgZmFsc2UpLAotKyNlbmRpZgotKyAgICAgICAgICAgICAgICAgICAgbGx2bTo6Q29uc3Rh bnQ6OmdldE51bGxWYWx1ZShsbHZtOjpUeXBlOjpnZXRJbnQxNlR5KCpnLT5jdHgpKSk7Ci0gICAg ICAgICAgICAgICAgIEFyZ3MucHVzaF9iYWNrKHplcm9NYXNrKTsKLSAKLSAgICAgICAgICAgICAg ICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKm5ld0luc3QgPSBsbHZtOjpDYWxsSW5zdDo6Q3JlYXRlKEZu LCBBcmdzLCBjaS0+Z2V0TmFtZSgpKTsKLUBAIC02MTgxLDcgKzYyMDksNyBAQCBib29sIFJlcGxh Y2VMTFZNSW50cmluc2ljczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7 Ci0gICAgICAgICAgICAgICAgICAgICBtb2RpZmllZEFueSA9IHRydWU7Ci0gICAgICAgICAgICAg ICAgICAgICBnb3RvIHJlc3RhcnQ7Ci0gICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9 IGVsc2UgaWYgKGZ1bmMgJiYgZnVuYy0+Z2V0TmFtZSgpID09ICJsbHZtLmFzc3VtZSIpIHsKLSsg ICAgICAgICAgICB9IGVsc2UgaWYgKGZ1bmMgJiYgZnVuYy0+Z2V0TmFtZSgpLmVxdWFscygibGx2 bS5hc3N1bWUiKSkgewotICAgICAgICAgICAgICAgICBjaS0+ZXJhc2VGcm9tUGFyZW50KCk7Ci0g ICAgICAgICAgICAgICAgIG1vZGlmaWVkQW55ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgZ290 byByZXN0YXJ0OwotQEAgLTYzMzUsNyArNjM2Myw3IEBAIGJvb2wgQ2hlY2tVbnN1cHBvcnRlZElu c3RzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAgICAgICAgICAg ICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB1bnN1cHBv cnRlZEZ1bmNzLnNpemUoKTsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgIHN0ZDo6c21hdGNoIG1h dGNoOwotLSAgICAgICAgICAgICAgICBzdGQ6OnN0cmluZyBmdW5jTmFtZSA9IGZ1bmMtPmdldE5h bWUoKTsKLSsgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmcgZnVuY05hbWUgPSBmdW5jLT5nZXRO YW1lKCkuc3RyKCk7Ci0gICAgICAgICAgICAgICAgIGlmIChzdGQ6OnJlZ2V4X21hdGNoKGZ1bmNO YW1lLCBtYXRjaCwgdW5zdXBwb3J0ZWRGdW5jc1tpXSkpIHsKLSAgICAgICAgICAgICAgICAgICAg IC8vIFdlIGZvdW5kIHVuc3VwcG9ydGVkIGZ1bmN0aW9uLiBHZW5lcmF0ZSBlcnJvciBhbmQgc3Rv cCBjb21waWxhdGlvbi4KLSAgICAgICAgICAgICAgICAgICAgIFNvdXJjZVBvcyBwb3M7Ci1AQCAt NjQxOCwxMiArNjQ0NiwxNCBAQCBib29sIE1hbmdsZU9wZW5DTEJ1aWx0aW5zOjpydW5PbkJhc2lj QmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAgICAgICAgICAgICBpZiAoZnVuYy0+Z2V0 TmFtZSgpLnN0YXJ0c3dpdGgoIl9fc3BpcnZfb2NsIikpIHsKLSAgICAgICAgICAgICAgICAgc3Rk OjpzdHJpbmcgbWFuZ2xlZE5hbWU7Ci0gICAgICAgICAgICAgICAgIGxsdm06OlR5cGUgKnJldFR5 cGUgPSBmdW5jLT5nZXRSZXR1cm5UeXBlKCk7Ci0tICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5n IGZ1bmNOYW1lID0gZnVuYy0+Z2V0TmFtZSgpOwotKyAgICAgICAgICAgICAgICBzdGQ6OnN0cmlu ZyBmdW5jTmFtZSA9IGZ1bmMtPmdldE5hbWUoKS5zdHIoKTsKLSAgICAgICAgICAgICAgICAgc3Rk Ojp2ZWN0b3I8bGx2bTo6VHlwZSAqPiBBcmdUeTsKLSAgICAgICAgICAgICAgICAgLy8gc3BpcnYg T3BlbkNMIGJ1aWx0aW5zIGFyZSB1c2VkIGZvciBkb3VibGUgdHlwZXMgb25seQotLSAgICAgICAg ICAgICAgICBBc3NlcnQocmV0VHlwZS0+aXNWZWN0b3JUeSgpICYmIHJldFR5cGUtPmdldFZlY3Rv ckVsZW1lbnRUeXBlKCktPmlzRG91YmxlVHkoKSB8fAotKyAgICAgICAgICAgICAgICBBc3NlcnQo cmV0VHlwZS0+aXNWZWN0b3JUeSgpICYmCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2 bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4ocmV0VHlwZSktPmdldEVsZW1lbnRUeXBlKCkt PmlzRG91YmxlVHkoKSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgcmV0VHlwZS0+aXNTaW5n bGVWYWx1ZVR5cGUoKSAmJiByZXRUeXBlLT5pc0RvdWJsZVR5KCkpOwotLSAgICAgICAgICAgICAg ICBpZiAocmV0VHlwZS0+aXNWZWN0b3JUeSgpICYmIHJldFR5cGUtPmdldFZlY3RvckVsZW1lbnRU eXBlKCktPmlzRG91YmxlVHkoKSkgewotKyAgICAgICAgICAgICAgICBpZiAocmV0VHlwZS0+aXNW ZWN0b3JUeSgpICYmCi0rICAgICAgICAgICAgICAgICAgICBsbHZtOjpkeW5fY2FzdDxsbHZtOjpW ZWN0b3JUeXBlPihyZXRUeXBlKS0+Z2V0RWxlbWVudFR5cGUoKS0+aXNEb3VibGVUeSgpKSB7Ci0g ICAgICAgICAgICAgICAgICAgICBBcmdUeS5wdXNoX2JhY2soTExWTVR5cGVzOjpEb3VibGVWZWN0 b3JUeXBlKTsKLSAgICAgICAgICAgICAgICAgICAgIC8vIF9EdldJRFRIIHN1ZmZpeCBpcyB1c2Vk IGluIHRhcmdldCBmaWxlIHRvIGRpZmZlcmVudGlhdGUgc2NhbGFyCi0gICAgICAgICAgICAgICAg ICAgICAvLyBhbmQgdmVjdG9yIHZlcnNpb25zIG9mIGludHJpbnNpY3MuIEhlcmUgd2UgcmVtb3Zl IHRoaXMKLUBAIC02NTExLDggKzY1NDEsMTUgQEAgbGx2bTo6VmFsdWUgKkZpeEFkZHJlc3NTcGFj ZTo6Y2FsY3VsYXRlR2F0aGVyU2NhdHRlckFkZHJlc3MobGx2bTo6VmFsdWUgKlB0ciwgbGwKLSAK LSAgICAgLy8gQ2FzdCBvZmZzZXRzIHRvIGludDY0Ci0gICAgIE9mZnNldHMgPSBuZXcgbGx2bTo6 WkV4dEluc3QoCi0rI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0rICAg ICAgICBPZmZzZXRzLAotKyAgICAgICAgbGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoTExWTVR5 cGVzOjpJbnQ2NFR5cGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZt OjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihPZmZzZXRzLT5nZXRUeXBlKCkpLT5nZXROdW1F bGVtZW50cygpKSwKLSsgICAgICAgICJzdm1fb2Zmc2V0X3pleHQiLCBJbnNlcnRCZWZvcmUpOwot KyNlbHNlCi0gICAgICAgICBPZmZzZXRzLCBsbHZtOjpWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVz OjpJbnQ2NFR5cGUsIE9mZnNldHMtPmdldFR5cGUoKS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSks Ci0gICAgICAgICAic3ZtX29mZnNldF96ZXh0IiwgSW5zZXJ0QmVmb3JlKTsKLSsjZW5kaWYKLSAK LSAgICAgaWYgKCFsbHZtOjppc2E8bGx2bTo6Q29uc3RhbnRQb2ludGVyTnVsbD4oUHRyKSkgewot ICAgICAgICAgLy8gQ2FzdCBwdHIgdG8gaW50NjQKLUBAIC02NTIwLDEzICs2NTU3LDMxIEBAIGxs dm06OlZhbHVlICpGaXhBZGRyZXNzU3BhY2U6OmNhbGN1bGF0ZUdhdGhlclNjYXR0ZXJBZGRyZXNz KGxsdm06OlZhbHVlICpQdHIsIGxsCi0gCi0gICAgICAgICAvLyBWZWN0b3JpemUgcHRyCi0gICAg ICAgICBsbHZtOjpWYWx1ZSAqdW5kZWZJbnNlcnRWYWx1ZSA9Ci0rI2lmIElTUENfTExWTV9WRVJT SU9OID49IElTUENfTExWTV8xMV8wCi0rICAgICAgICAgICAgbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0 KGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KAotKyAgICAgICAgICAgICAgICBMTFZNVHlwZXM6 OkludDY0VHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUp LT5nZXROdW1FbGVtZW50cygpKSk7Ci0rI2Vsc2UKLSAgICAgICAgICAgICBsbHZtOjpVbmRlZlZh bHVlOjpnZXQobGx2bTo6VmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6SW50NjRUeXBlLCBhZGRy ZXNzVHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSkpOwotKyNlbmRpZgotICAgICAgICAgYWRk cmVzcyA9IGxsdm06Okluc2VydEVsZW1lbnRJbnN0OjpDcmVhdGUodW5kZWZJbnNlcnRWYWx1ZSwg YWRkcmVzcywgTExWTUludDMyKDApLCAic3ZtX3B0cl9pZWkiLCBJbnNlcnRCZWZvcmUpOwotICAg ICAgICAgbGx2bTo6Q29uc3RhbnQgKnplcm9WZWMgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0 U3BsYXQoCi0rI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAg ICAgICBhZGRyZXNzVHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSwKLSsjZWxpZiBJU1BDX0xM Vk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgICAgIHtsbHZtOjpkeW5fY2Fz dDxsbHZtOjpWZWN0b3JUeXBlPihhZGRyZXNzVHlwZSktPmdldE51bUVsZW1lbnRzKCksIGZhbHNl fSwKLSsjZWxzZQotKyAgICAgICAgbGx2bTo6RWxlbWVudENvdW50OjpnZXQoCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5 cGU+KGFkZHJlc3NUeXBlLT5nZXROdW1FbGVtZW50cygpLCBmYWxzZSksCi0rI2VuZGlmCi0gICAg ICAgICAgICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZShsbHZtOjpUeXBlOjpnZXRJbnQz MlR5KEluc2VydEJlZm9yZS0+Z2V0Q29udGV4dCgpKSkpOwotKwotICAgICAgICAgbGx2bTo6VmFs dWUgKnVuZGVmU2h1ZmZsZVZhbHVlID0KLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19M TFZNXzExXzAKLSsgICAgICAgICAgICBsbHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6Rml4ZWRW ZWN0b3JUeXBlOjpnZXQoCi0rICAgICAgICAgICAgICAgIExMVk1UeXBlczo6SW50NjRUeXBlLCBs bHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihhZGRyZXNzVHlwZSktPmdldE51bUVsZW1l bnRzKCkpKTsKLSsjZWxzZQotICAgICAgICAgICAgIGxsdm06OlVuZGVmVmFsdWU6OmdldChsbHZt OjpWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ2NFR5cGUsIGFkZHJlc3NUeXBlLT5nZXRW ZWN0b3JOdW1FbGVtZW50cygpKSk7Ci0rI2VuZGlmCi0gICAgICAgICBhZGRyZXNzID0gbmV3IGxs dm06OlNodWZmbGVWZWN0b3JJbnN0KGFkZHJlc3MsIHVuZGVmU2h1ZmZsZVZhbHVlLCB6ZXJvVmVj LCAic3ZtX3B0cl9zdmkiLCBJbnNlcnRCZWZvcmUpOwotIAotICAgICAgICAgLy8gQ2FsY3VsYXRl IGFkZHJlc3MKLUBAIC02NTUzLDkgKzY2MDgsMTIgQEAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkZpeEFk ZHJlc3NTcGFjZTo6cHJvY2Vzc1ZlY3RvckxvYWQobGx2bTo6TG9hZEluc3QgKkxJKSB7Ci0gICAg IGlmIChyZXRUeXBlLT5nZXRTY2FsYXJUeXBlKCktPmlzUG9pbnRlclR5KCkpIHsKLSAgICAgICAg IGlzUHRyTG9hZCA9IHRydWU7Ci0gICAgICAgICBhdXRvIHNjYWxhclR5cGUgPSBnLT50YXJnZXQt PmlzMzJCaXQoKSA/IExMVk1UeXBlczo6SW50MzJUeXBlIDogTExWTVR5cGVzOjpJbnQ2NFR5cGU7 Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0rICAgICAgICByZXRU eXBlID0gbGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoc2NhbGFyVHlwZSwgbGx2bTo6ZHluX2Nh c3Q8bGx2bTo6VmVjdG9yVHlwZT4ocmV0VHlwZSktPmdldE51bUVsZW1lbnRzKCkpOwotKyNlbHNl Ci0gICAgICAgICByZXRUeXBlID0gbGx2bTo6VmVjdG9yVHlwZTo6Z2V0KHNjYWxhclR5cGUsIHJl dFR5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCkpOwotKyNlbmRpZgotICAgICB9Ci0tCi0gICAg IGxsdm06Okluc3RydWN0aW9uICpyZXMgPSBsR2VuWExvYWRJbnN0KHB0ciwgcmV0VHlwZSwgbGx2 bTo6ZHluX2Nhc3Q8bGx2bTo6SW5zdHJ1Y3Rpb24+KExJKSk7Ci0gICAgIEFzc2VydChyZXMpOwot IAotQEAgLTY1ODAsMTEgKzY2MzgsMTYgQEAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkZpeEFkZHJlc3NT cGFjZTo6cHJvY2Vzc1NWTVZlY3RvckxvYWQobGx2bTo6SW5zdHJ1Y3Rpb24gKkNJKQotICAgICBw dHIgPSBuZXcgbGx2bTo6SW50VG9QdHJJbnN0KHB0ciwgbGx2bTo6UG9pbnRlclR5cGU6OmdldChy ZXRUeXBlLCAwKSwgQ0ktPmdldE5hbWUoKSArICJfaW50dG9wdHIiLCBDSSk7Ci0gICAgIGxsdm06 Okluc3RydWN0aW9uICpsb2FkSW5zdCA9IE5VTEw7Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OID49 IElTUENfTExWTV8xMV8wCi0tICAgIGxvYWRJbnN0ID0gbmV3IGxsdm06OkxvYWRJbnN0KGxsdm06 OmR5bl9jYXN0PGxsdm06OlBvaW50ZXJUeXBlPihwdHItPmdldFR5cGUoKSktPmdldFBvaW50ZXJF bGVtZW50VHlwZSgpLCBsb2FkSW5zdCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ0ktPmdldE5hbWUoKSwgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCk7Ci0rICAgIGxvYWRJ bnN0ID0gbmV3IGxsdm06OkxvYWRJbnN0KGxsdm06OmR5bl9jYXN0PGxsdm06OlBvaW50ZXJUeXBl PihwdHItPmdldFR5cGUoKSktPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpLCBwdHIsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENJLT5nZXROYW1lKCksIGZhbHNlIC8qIG5vdCB2 b2xhdGlsZSAqLywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6TWF5 YmVBbGlnbihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpKS52YWx1ZU9yT25l KCksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsbHZtOjpJbnN0cnVjdGlv biAqKU5VTEwpOwotICNlbHNlCi0tICAgIGxvYWRJbnN0ID0gbmV3IGxsdm06OkxvYWRJbnN0KHB0 ciwgQ0ktPmdldE5hbWUoKSwgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCk7Ci0rICAgIGxvYWRJ bnN0ID0gbmV3IGxsdm06OkxvYWRJbnN0KHB0ciwgQ0ktPmdldE5hbWUoKSwgZmFsc2UsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06Ok1heWJlQWxpZ24oZy0+dGFyZ2V0 LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSkudmFsdWVPck9uZSgpLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLSAjZW5k aWYKLSsKLSAgICAgQXNzZXJ0KGxvYWRJbnN0KTsKLSAgICAgcmV0dXJuIGxvYWRJbnN0OwotIH0K LUBAIC02NjA2LDcgKzY2NjksMTEgQEAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkZpeEFkZHJlc3NTcGFj ZTo6cHJvY2Vzc1ZlY3RvclN0b3JlKGxsdm06OlN0b3JlSW5zdCAqU0kpIHsKLSAgICAgLy8gTm90 ZTogaXQgZG9lc24ndCBsb29rIGxpa2UgYSBub3JtYWwgY2FzZSBmb3IgR2VuWCB0YXJnZXQKLSAg ICAgaWYgKHZhbFR5cGUtPmdldFNjYWxhclR5cGUoKS0+aXNQb2ludGVyVHkoKSkgewotICAgICAg ICAgYXV0byBzY2FsYXJUeXBlID0gZy0+dGFyZ2V0LT5pczMyQml0KCkgPyBMTFZNVHlwZXM6Oklu dDMyVHlwZSA6IExMVk1UeXBlczo6SW50NjRUeXBlOwotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+ PSBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgdmFsVHlwZSA9IGxsdm06OkZpeGVkVmVjdG9yVHlw ZTo6Z2V0KHNjYWxhclR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHZhbFR5 cGUpLT5nZXROdW1FbGVtZW50cygpKTsKLSsjZWxzZQotICAgICAgICAgdmFsVHlwZSA9IGxsdm06 OlZlY3RvclR5cGU6OmdldChzY2FsYXJUeXBlLCB2YWxUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50 cygpKTsKLSsjZW5kaWYKLSAgICAgICAgIHZhbCA9IG5ldyBsbHZtOjpQdHJUb0ludEluc3QodmFs LCB2YWxUeXBlLCAic3ZtX3N0X3ZhbF9wdHJ0b2ludCIsIFNJKTsKLSAgICAgfQotIAotQEAgLTY2 MzEsMTIgKzY2OTgsOCBAQCBsbHZtOjpJbnN0cnVjdGlvbiAqRml4QWRkcmVzc1NwYWNlOjpwcm9j ZXNzU1ZNVmVjdG9yU3RvcmUobGx2bTo6SW5zdHJ1Y3Rpb24gKkNJKQotICAgICBwdHIgPSBuZXcg bGx2bTo6SW50VG9QdHJJbnN0KHB0ciwgbGx2bTo6UG9pbnRlclR5cGU6OmdldCh2YWxUeXBlLCAw KSwgQ0ktPmdldE5hbWUoKSArICJfaW50dG9wdHIiLCBDSSk7Ci0gCi0gICAgIGxsdm06Okluc3Ry dWN0aW9uICpzdG9yZUluc3QgPSBOVUxMOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BD X0xMVk1fMTFfMAotLSAgICBsb2FkSW5zdCA9IG5ldyBsbHZtOjpTdG9yZUluc3QodmFsLCBsbHZt OjpkeW5fY2FzdDxsbHZtOjpQb2ludGVyVHlwZT4ocHRyLT5nZXRUeXBlKCkpLT5nZXRQb2ludGVy RWxlbWVudFR5cGUoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3Jl SW5zdCwgQ0ktPmdldE5hbWUoKSwgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCk7Ci0tI2Vsc2UK LS0gICAgc3RvcmVJbnN0ID0gbmV3IGxsdm06OlN0b3JlSW5zdCh2YWwsIHB0ciwgKGxsdm06Oklu c3RydWN0aW9uICopTlVMTCk7Ci0tI2VuZGlmCi0rICAgIHN0b3JlSW5zdCA9IG5ldyBsbHZtOjpT dG9yZUluc3QodmFsLCBwdHIsIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6TWF5YmVBbGlnbihnLT50YXJnZXQtPmdl dE5hdGl2ZVZlY3RvckFsaWdubWVudCgpKS52YWx1ZU9yT25lKCkpOwotICAgICBBc3NlcnQoc3Rv cmVJbnN0KTsKLSAgICAgcmV0dXJuIHN0b3JlSW5zdDsKLSB9Ci1AQCAtNjY0NSwxNSArNjcwOCwx OCBAQCBsbHZtOjpJbnN0cnVjdGlvbiAqRml4QWRkcmVzc1NwYWNlOjpjcmVhdGVJbnQ4V3JSZWdp b24obGx2bTo6VmFsdWUgKlZhbCwgbGx2bTo6VgotICAgICBpbnQgd2lkdGggPSBnLT50YXJnZXQt PmdldFZlY3RvcldpZHRoKCk7Ci0gCi0gICAgIGxsdm06OlZhbHVlICpBcmdzWzhdOwotLQotKyNp ZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotKyAgICBBcmdzWzBdID0gbGx2 bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6 SW50OFR5cGUsIHdpZHRoICogNCkpOyAvLyBvbGQgdmFsdWUKLSsjZWxzZQotICAgICBBcmdzWzBd ID0gbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OlZlY3RvclR5cGU6OmdldChMTFZNVHlwZXM6 OkludDhUeXBlLCB3aWR0aCAqIDQpKTsgLy8gb2xkIHZhbHVlCi0tICAgIEFyZ3NbMV0gPSBWYWw7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyB2YWx1ZSB0byBzdG9yZQotLSAgICBBcmdzWzJdID0gbGx2bTo6 Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDMyVHlwZSwgMCk7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gdnN0cmlkZQotLSAgICBBcmdzWzNdID0gbGx2bTo6Q29uc3RhbnRJ bnQ6OmdldChMTFZNVHlwZXM6OkludDMyVHlwZSwgd2lkdGgpOyAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gd2lkdGgKLS0gICAgQXJnc1s0XSA9IGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExW TVR5cGVzOjpJbnQzMlR5cGUsIDQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN0 cmlkZQotLSAgICBBcmdzWzVdID0gbGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6Oklu dDE2VHlwZSwgMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb2Zmc2V0cwotLSAg ICBBcmdzWzZdID0gbGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDMyVHlwZSwg MCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcGFyZW50IHdpZHRoIChpZ25vcmVk KQotLSAgICBBcmdzWzddID0gTWFzazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFzawotKyNlbmRpZgot KyAgICBBcmdzWzFdID0gVmFsOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyB2YWx1ZSB0byBzdG9yZQotKyAgICBBcmdzWzJdID0gbGx2bTo6Q29uc3Rh bnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDMyVHlwZSwgMCk7ICAgICAvLyB2c3RyaWRlCi0rICAg IEFyZ3NbM10gPSBsbHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCB3 aWR0aCk7IC8vIHdpZHRoCi0rICAgIEFyZ3NbNF0gPSBsbHZtOjpDb25zdGFudEludDo6Z2V0KExM Vk1UeXBlczo6SW50MzJUeXBlLCA0KTsgICAgIC8vIHN0cmlkZQotKyAgICBBcmdzWzVdID0gbGx2 bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDE2VHlwZSwgMCk7ICAgICAvLyBvZmZz ZXRzCi0rICAgIEFyZ3NbNl0gPSBsbHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50 MzJUeXBlLCAwKTsgICAgIC8vIHBhcmVudCB3aWR0aCAoaWdub3JlZCkKLSsgICAgQXJnc1s3XSA9 IE1hc2s7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g bWFzawotIAotICAgICBsbHZtOjpUeXBlICpUeXNbNF07Ci0gCi1AQCAtNjcwOCw3ICs2Nzc0LDEy IEBAIGxsdm06Okluc3RydWN0aW9uICpGaXhBZGRyZXNzU3BhY2U6OnByb2Nlc3NHYXRoZXJTY2F0 dGVyUHJpdmF0ZShsbHZtOjpDYWxsSW5zdCAqCi0gICAgICAgICByZXR1cm4gTlVMTDsKLSAKLSAg ICAgbGx2bTo6VmFsdWUgKmFkZHJlc3MgPSBjYWxjdWxhdGVHYXRoZXJTY2F0dGVyQWRkcmVzcyhw dHIsIG9mZnNldHMsIENJKTsKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEx XzAKLSsgICAgbGx2bTo6VHlwZSAqaThWZWNUeXBlID0gbGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpn ZXQoTExWTVR5cGVzOjpJbnQ4VHlwZSwgd2lkdGggKiA0KTsKLSsjZWxzZQotICAgICBsbHZtOjpU eXBlICppOFZlY1R5cGUgPSBsbHZtOjpWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ4VHlw ZSwgd2lkdGggKiA0KTsKLSsjZW5kaWYKLSsKLSAgICAgYm9vbCBpc0ludDggPSAodmFsdWUtPmdl dFR5cGUoKS0+Z2V0U2NhbGFyVHlwZSgpID09IExMVk1UeXBlczo6SW50OFR5cGUpOwotIAotICAg ICBBc3NlcnQoYWRkcmVzcyAmJiAiQmFkIGdhdGhlci9zY2F0dGVyIGFkZHJlc3MhIik7CmRpZmYg LS1naXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA2LnBhdGNoIGIvc3JjcGtncy9p c3BjL3BhdGNoZXMvbGx2bTEyLTAwNi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggYTgyOWVhNDgzOTFlLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9pc3BjL3BhdGNoZXMv bGx2bTEyLTAwNi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEyNiArMCwwIEBACi1Gcm9tIGJi M2Y0OTNkMWZiZDQ1Yzc5ZTFkOWRlZTY3YTA0MzBiYTMxM2VhYWQgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBBcmluYSBOZXNobHlhZXZhIDxhcmluYS5uZXNobHlhZXZhQGludGVsLmNv bT4KLURhdGU6IFR1ZSwgMTkgSmFuIDIwMjEgMTE6MDc6MzMgLTA4MDAKLVN1YmplY3Q6IFtQQVRD SF0gRml4ZWQgaWZkZWZzIGZvciBMTFZNXzExCi0KLS0tLQotIHNyYy9jdHguY3BwIHwgIDYgKysr LS0tCi0gc3JjL29wdC5jcHAgfCAxOCArKysrKysrKystLS0tLS0tLS0KLSAyIGZpbGVzIGNoYW5n ZWQsIDEyIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3Jj L2N0eC5jcHAgYi9zcmMvY3R4LmNwcAotaW5kZXggMmE3MmU2ODM3Li41MjdhMDJmMzAgMTAwNjQ0 Ci0tLS0gYS9zcmMvY3R4LmNwcAotKysrIGIvc3JjL2N0eC5jcHAKLUBAIC0xNjkxLDcgKzE2OTEs NyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6U21lYXJVbmlmb3JtKGxsdm06 OlZhbHVlICp2YWx1ZSwgY29uc3QgbGx2bTo6VAotICAgICBpZiAobGx2bTo6Q29uc3RhbnQgKmNv bnN0X3ZhbCA9IGxsdm06OmR5bl9jYXN0PGxsdm06OkNvbnN0YW50Pih2YWx1ZSkpIHsKLSAjaWYg SVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgcmV0ID0gbGx2bTo6 Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KGctPnRhcmdldC0+Z2V0VmVjdG9yV2lkdGgoKSwgY29u c3RfdmFsKTsKLS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTFfMAotKyNl bGlmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzEyXzAKLSAgICAgICAgIHJldCA9Ci0g ICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KHtzdGF0aWNfY2FzdDx1 bnNpZ25lZCBpbnQ+KGctPnRhcmdldC0+Z2V0VmVjdG9yV2lkdGgoKSksIGZhbHNlfSwgY29uc3Rf dmFsKTsKLSAjZWxzZSAvLyBMTFZNIDEyLjArCi1AQCAtMzE0OCw3ICszMTQ4LDcgQEAgbGx2bTo6 VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJyb2FkY2FzdFZhbHVlKGxsdm06OlZhbHVlICp2 LCBsbHZtOjpUeXBlICp2ZWMKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFf MAotICAgICBsbHZtOjpDb25zdGFudCAqemVyb1ZlYyA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpn ZXRTcGxhdCgKLSAgICAgICAgIHZlY1R5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCksIGxsdm06 OkNvbnN0YW50OjpnZXROdWxsVmFsdWUobGx2bTo6VHlwZTo6Z2V0SW50MzJUeSgqZy0+Y3R4KSkp OwotLSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMV8wCi0rI2VsaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTJfMAotICAgICBsbHZtOjpDb25zdGFudCAqemVy b1ZlYyA9Ci0gICAgICAgICBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoe3N0YXRpY19j YXN0PHVuc2lnbmVkIGludD4odHktPmdldE51bUVsZW1lbnRzKCkpLCBmYWxzZX0sCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxW YWx1ZShsbHZtOjpUeXBlOjpnZXRJbnQzMlR5KCpnLT5jdHgpKSk7Ci1AQCAtMzY4OCw3ICszNjg4 LDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdlblhTaW1kQ0ZQcmVkaWNh dGUobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjoKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJ U1BDX0xMVk1fMTFfMAotICAgICAgICAgZGVmYXVsdHMgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6 Z2V0U3BsYXQodnQtPmdldFZlY3Rvck51bUVsZW1lbnRzKCksCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZh bHVlKHZ0LT5nZXRFbGVtZW50VHlwZSgpKSk7Ci0tI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0g SVNQQ19MTFZNXzExXzAKLSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMl8w Ci0gICAgICAgICBkZWZhdWx0cyA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCh7c3Rh dGljX2Nhc3Q8dW5zaWduZWQgaW50Pih2dC0+Z2V0TnVtRWxlbWVudHMoKSksIGZhbHNlfSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OkNv bnN0YW50OjpnZXROdWxsVmFsdWUodnQtPmdldEVsZW1lbnRUeXBlKCkpKTsKLSAjZWxzZQotZGlm ZiAtLWdpdCBhL3NyYy9vcHQuY3BwIGIvc3JjL29wdC5jcHAKLWluZGV4IDE3ODliODQ3Ni4uM2Zm MTkxYTBhIDEwMDY0NAotLS0tIGEvc3JjL29wdC5jcHAKLSsrKyBiL3NyYy9vcHQuY3BwCi1AQCAt MTA0NSw3ICsxMDQ1LDcgQEAgYm9vbCBJbnRyaW5zaWNzT3B0OjpydW5PbkJhc2ljQmxvY2sobGx2 bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAgICAgICAgICAgICAgICAgICAgIGFsaWduID0gZy0+dGFy Z2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKTsKLSAgICAgICAgICAgICAgICAgZWxzZQot ICAgICAgICAgICAgICAgICAgICAgYWxpZ24gPSBjYWxsSW5zdC0+Z2V0Q2FsbGVkRnVuY3Rpb24o KSA9PSBhdnhNYXNrZWRMb2FkMzIgPyA0IDogODsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0g SVNQQ19MTFZNXzEwXzAKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAot ICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqbG9hZEluc3QgPQotICAgICAgICAg ICAgICAgICAgICAgbmV3IGxsdm06OkxvYWRJbnN0KGNhc3RQdHIsIGxsdm06OlR3aW5lKGNhbGxJ bnN0LT5nZXRBcmdPcGVyYW5kKDApLT5nZXROYW1lKCkpICsgIl9sb2FkIiwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGxs dm06Ok1heWJlQWxpZ24oYWxpZ24pLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLUBAIC0x NDcyLDcgKzE0NzIsNyBAQCBzdGF0aWMgbGx2bTo6VmFsdWUgKmxHZXRCYXNlUHRyQW5kT2Zmc2V0 cyhsbHZtOjpWYWx1ZSAqcHRycywgbGx2bTo6VmFsdWUgKipvZmZzZQotICAgICAgICAgICAgICAg ICAgICAgbGx2bTo6VmFsdWUgKnplcm9NYXNrID0KLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJ U1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50VmVj dG9yOjpnZXRTcGxhdChjdi0+Z2V0VHlwZSgpLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpLAotLSNl bGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMV8wCi0rI2VsaWYgSVNQQ19MTFZN X1ZFUlNJT04gPCBJU1BDX0xMVk1fMTJfMAotICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06 OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg e2xsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KGN2LT5nZXRUeXBlKCkpLT5nZXROdW1F bGVtZW50cygpLCBmYWxzZX0sCi0gI2Vsc2UgLy8gTExWTSAxMi4wKwotQEAgLTE0OTUsNyArMTQ5 NSw3IEBAIHN0YXRpYyBsbHZtOjpWYWx1ZSAqbEdldEJhc2VQdHJBbmRPZmZzZXRzKGxsdm06OlZh bHVlICpwdHJzLCBsbHZtOjpWYWx1ZSAqKm9mZnNlCi0gICAgICAgICAgICAgICAgICAgICAgICAg bGx2bTo6VmFsdWUgKnplcm9NYXNrID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KAot ICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJvcF92YXJfdHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSwKLS0jZWxp ZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTFfMAotKyNlbGlmIElTUENfTExWTV9W RVJTSU9OIDwgSVNQQ19MTFZNXzEyXzAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2xs dm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KGJvcF92YXJfdHlwZSktPmdldE51bUVsZW1l bnRzKCksIGZhbHNlfSwKLSAjZWxzZSAvLyBMTFZNIDEyLjArCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxsdm06OkVsZW1lbnRDb3VudDo6Z2V0KAotQEAgLTI4MDMsNyArMjgwMyw3IEBA IHN0YXRpYyBib29sIGxHU1RvTG9hZFN0b3JlKGxsdm06OkNhbGxJbnN0ICpjYWxsSW5zdCkgewot ICAgICAgICAgICAgIGxsdm06OlZhbHVlICp6ZXJvTWFzayA9Ci0gI2lmIElTUENfTExWTV9WRVJT SU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnRWZWN0 b3I6OmdldFNwbGF0KGNhbGxJbnN0LT5nZXRUeXBlKCktPmdldFZlY3Rvck51bUVsZW1lbnRzKCks Ci0tI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsjZWxpZiBJU1BD X0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMl8wCi0gICAgICAgICAgICAgICAgIGxsdm06OkNv bnN0YW50VmVjdG9yOjpnZXRTcGxhdCgKLSAgICAgICAgICAgICAgICAgICAgIHtsbHZtOjpkeW5f Y2FzdDxsbHZtOjpWZWN0b3JUeXBlPihjYWxsSW5zdC0+Z2V0VHlwZSgpKS0+Z2V0TnVtRWxlbWVu dHMoKSwgZmFsc2V9LAotIAotQEAgLTMxMDAsNyArMzEwMCw3IEBAIHN0YXRpYyBib29sIGxJbXBy b3ZlTWFza2VkTG9hZChsbHZtOjpDYWxsSW5zdCAqY2FsbEluc3QsIGxsdm06OkJhc2ljQmxvY2s6 Oml0ZXJhCi0gICAgICAgICB7Ci0gICAgICAgICAgICAgbGx2bTo6VHlwZSAqcHRyVHlwZSA9IGxs dm06OlBvaW50ZXJUeXBlOjpnZXQoY2FsbEluc3QtPmdldFR5cGUoKSwgMCk7Ci0gICAgICAgICAg ICAgcHRyID0gbmV3IGxsdm06OkJpdENhc3RJbnN0KHB0ciwgcHRyVHlwZSwgInB0cl9jYXN0X2Zv cl9sb2FkIiwgY2FsbEluc3QpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1f MTBfMAotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAgICAgICAg ICAgbG9hZCA9IG5ldyBsbHZtOjpMb2FkSW5zdCgKLSAgICAgICAgICAgICAgICAgcHRyLCBjYWxs SW5zdC0+Z2V0TmFtZSgpLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sCi0gICAgICAgICAgICAg ICAgIGxsdm06Ok1heWJlQWxpZ24oZy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSA/IGctPnRhcmdl dC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkgOiBpbmZvLT5hbGlnbikKLUBAIC0zNDU5LDcg KzM0NTksNyBAQCBsbHZtOjpWYWx1ZSAqbEdFUEFuZExvYWQobGx2bTo6VmFsdWUgKmJhc2VQdHIs IGludDY0X3Qgb2Zmc2V0LCBpbnQgYWxpZ24sIGxsdm06OgotICAgICAgICAgICAgICAgICAgICAg ICAgICBsbHZtOjpUeXBlICp0eXBlKSB7Ci0gICAgIGxsdm06OlZhbHVlICpwdHIgPSBsR0VQSW5z dChiYXNlUHRyLCBMTFZNSW50NjQob2Zmc2V0KSwgIm5ld19iYXNlIiwgaW5zZXJ0QmVmb3JlKTsK LSAgICAgcHRyID0gbmV3IGxsdm06OkJpdENhc3RJbnN0KHB0ciwgbGx2bTo6UG9pbnRlclR5cGU6 OmdldCh0eXBlLCAwKSwgInB0cl9jYXN0IiwgaW5zZXJ0QmVmb3JlKTsKLS0jaWYgSVNQQ19MTFZN X1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEwXzAKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BD X0xMVk1fMTFfMAotICAgICByZXR1cm4gbmV3IGxsdm06OkxvYWRJbnN0KHB0ciwgImdhdGhlcl9s b2FkIiwgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLCBsbHZtOjpNYXliZUFsaWduKGFsaWduKSwg aW5zZXJ0QmVmb3JlKTsKLSAjZWxzZSAvLyBMTFZNIDExLjArCi0gICAgIHJldHVybiBuZXcgbGx2 bTo6TG9hZEluc3QobGx2bTo6ZHluX2Nhc3Q8bGx2bTo6UG9pbnRlclR5cGU+KHB0ci0+Z2V0VHlw ZSgpKS0+Z2V0UG9pbnRlckVsZW1lbnRUeXBlKCksIHB0ciwKLUBAIC02MTgzLDcgKzYxODMsNyBA QCBib29sIFJlcGxhY2VMTFZNSW50cmluc2ljczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2lj QmxvY2sgJmJiKSB7Ci0gICAgICAgICAgICAgICAgIEFyZ3MucHVzaF9iYWNrKGxsdm06OkNvbnN0 YW50VmVjdG9yOjpnZXRTcGxhdCgKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1f MTFfMAotICAgICAgICAgICAgICAgICAgICAgZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0 aCgpLAotLSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMV8wCi0rI2VsaWYg SVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTJfMAotICAgICAgICAgICAgICAgICAgICAg e3N0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0 aCgpKSwgZmFsc2V9LAotICNlbHNlIC8vIExMVk0gMTIuMCsKLSAgICAgICAgICAgICAgICAgICAg IGxsdm06OkVsZW1lbnRDb3VudDo6Z2V0KHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oZy0+dGFy Z2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpKSwgZmFsc2UpLAotQEAgLTYxOTUsNyArNjE5NSw3 IEBAIGJvb2wgUmVwbGFjZUxMVk1JbnRyaW5zaWNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFz aWNCbG9jayAmYmIpIHsKLSAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnplcm9NYXNrID0g bGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KAotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8 IElTUENfTExWTV8xMV8wCi0gICAgICAgICAgICAgICAgICAgICBnLT50YXJnZXQtPmdldE5hdGl2 ZVZlY3RvcldpZHRoKCksCi0tI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEx XzAKLSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMl8wCi0gICAgICAgICAg ICAgICAgICAgICB7c3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihnLT50YXJnZXQtPmdldE5hdGl2 ZVZlY3RvcldpZHRoKCkpLCBmYWxzZX0sCi0gI2Vsc2UgLy8gTExWTSAxMi4wKwotICAgICAgICAg ICAgICAgICAgICAgbGx2bTo6RWxlbWVudENvdW50OjpnZXQoc3RhdGljX2Nhc3Q8dW5zaWduZWQg aW50PihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCkpLCBmYWxzZSksCi1AQCAtNjU2 Nyw3ICs2NTY3LDcgQEAgbGx2bTo6VmFsdWUgKkZpeEFkZHJlc3NTcGFjZTo6Y2FsY3VsYXRlR2F0 aGVyU2NhdHRlckFkZHJlc3MobGx2bTo6VmFsdWUgKlB0ciwgbGwKLSAgICAgICAgIGxsdm06OkNv bnN0YW50ICp6ZXJvVmVjID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KAotICNpZiBJ U1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAgICAgICAgICAgYWRkcmVzc1R5 cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCksCi0tI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0g SVNQQ19MTFZNXzExXzAKLSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMl8w Ci0gICAgICAgICAgICAge2xsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KGFkZHJlc3NU eXBlKS0+Z2V0TnVtRWxlbWVudHMoKSwgZmFsc2V9LAotICNlbHNlCi0gICAgICAgICBsbHZtOjpF bGVtZW50Q291bnQ6OmdldCgKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0x Mi0wMDcucGF0Y2ggYi9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA3LnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYjk3NWY4OTZjN2UuLjAwMDAwMDAwMDAwMAotLS0g YS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA3LnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsMTYwICswLDAgQEAKLUZyb20gNjJmNWE2YzM3YmYyNmZjMjVhN2NmODE4NjgwNTJkMzQ3Mjg3 NDYxMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFyaW5hIE5lc2hseWFldmEgPGFy aW5hLm5lc2hseWFldmFAaW50ZWwuY29tPgotRGF0ZTogVHVlLCAyMyBNYXIgMjAyMSAyMzowNzoz MCAtMDcwMAotU3ViamVjdDogW1BBVENIXSBEbyBub3QgZ2VuZXJhdGUgZnVuY3Rpb24gbWFzayB3 aGVuIGl0IGlzIG5vdCByZXF1aXJlZAotCi0tLS0KLSBzcmMvY3R4LmNwcCAgICAgICAgICAgICAg ICAgICAgfCAzOSArKysrKysrKysrKysrKy0tLS0tLS0KLSB0ZXN0cy9saXQtdGVzdHMvZnVsbF9t YXNrLmlzcGMgfCA2MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCi0gMiBmaWxl cyBjaGFuZ2VkLCA5MCBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKLSBjcmVhdGUgbW9k ZSAxMDA2NDQgdGVzdHMvbGl0LXRlc3RzL2Z1bGxfbWFzay5pc3BjCi0KLWRpZmYgLS1naXQgYS9z cmMvY3R4LmNwcCBiL3NyYy9jdHguY3BwCi1pbmRleCA1MjdhMDJmMzAuLjllNzc1ZmM1YyAxMDA2 NDQKLS0tLSBhL3NyYy9jdHguY3BwCi0rKysgYi9zcmMvY3R4LmNwcAotQEAgLTIzMSwxMCArMjMx LDE4IEBAIEZ1bmN0aW9uRW1pdENvbnRleHQ6OkZ1bmN0aW9uRW1pdENvbnRleHQoRnVuY3Rpb24g KmZ1bmMsIFN5bWJvbCAqZnVuU3ltLCBsbHZtOjpGCi0gICAgIGludGVybmFsTWFza1BvaW50ZXIg PSBBbGxvY2FJbnN0KExMVk1UeXBlczo6TWFza1R5cGUsICJpbnRlcm5hbF9tYXNrX21lbW9yeSIp OwotICAgICBTdG9yZUluc3QoTExWTU1hc2tBbGxPbiwgaW50ZXJuYWxNYXNrUG9pbnRlcik7Ci0g Ci0tICAgIGZ1bmN0aW9uTWFza1ZhbHVlID0gTExWTU1hc2tBbGxPbjsKLS0KLS0gICAgZnVsbE1h c2tQb2ludGVyID0gQWxsb2NhSW5zdChMTFZNVHlwZXM6Ok1hc2tUeXBlLCAiZnVsbF9tYXNrX21l bW9yeSIpOwotLSAgICBTdG9yZUluc3QoTExWTU1hc2tBbGxPbiwgZnVsbE1hc2tQb2ludGVyKTsK LSsgICAgLy8gSWYgdGhlIGZ1bmN0aW9uIGRvZXNuJ3QgaGF2ZSBfX21hc2sgaW4gcGFyYW1ldGVy cywgdGhlcmUgaXMgbm8gbmVlZCB0bwotKyAgICAvLyBoYXZlIGZ1bmN0aW9uIG1hc2sKLSsgICAg aWYgKChmdW5jLT5HZXRUeXBlKCktPmlzRXhwb3J0ZWQgJiYKLSsgICAgICAgICAobGYtPmdldEZ1 bmN0aW9uVHlwZSgpLT5nZXROdW1QYXJhbXMoKSA9PSBmdW5jLT5HZXRUeXBlKCktPkdldE51bVBh cmFtZXRlcnMoKSkpIHx8Ci0rICAgICAgICAoZnVuYy0+R2V0VHlwZSgpLT5pc1VubWFza2VkKSB8 fCAoZnVuYy0+R2V0VHlwZSgpLT5pc1Rhc2spKSB7Ci0rICAgICAgICBmdW5jdGlvbk1hc2tWYWx1 ZSA9IE5VTEw7Ci0rICAgICAgICBmdWxsTWFza1BvaW50ZXIgPSBOVUxMOwotKyAgICB9IGVsc2Ug ewotKyAgICAgICAgZnVuY3Rpb25NYXNrVmFsdWUgPSBMTFZNTWFza0FsbE9uOwotKyAgICAgICAg ZnVsbE1hc2tQb2ludGVyID0gQWxsb2NhSW5zdChMTFZNVHlwZXM6Ok1hc2tUeXBlLCAiZnVsbF9t YXNrX21lbW9yeSIpOwotKyAgICAgICAgU3RvcmVJbnN0KExMVk1NYXNrQWxsT24sIGZ1bGxNYXNr UG9pbnRlcik7Ci0rICAgIH0KLSAKLSAgICAgYmxvY2tFbnRyeU1hc2sgPSBOVUxMOwotICAgICBi cmVha0xhbmVzUHRyID0gY29udGludWVMYW5lc1B0ciA9IE5VTEw7Ci1AQCAtMzg5LDIwICszOTcs MjYgQEAgbGx2bTo6QmFzaWNCbG9jayAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0Q3VycmVudEJh c2ljQmxvY2soKSB7IHJldHVybiBiYmxvY2s7IH0KLSAKLSB2b2lkIEZ1bmN0aW9uRW1pdENvbnRl eHQ6OlNldEN1cnJlbnRCYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgKmJiKSB7IGJibG9jayA9 IGJiOyB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldEZ1bmN0aW9u TWFzaygpIHsgcmV0dXJuIGZ1bmN0aW9uTWFza1ZhbHVlOyB9Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0 aW9uRW1pdENvbnRleHQ6OkdldEZ1bmN0aW9uTWFzaygpIHsgcmV0dXJuIGZ1bGxNYXNrUG9pbnRl ciA/IGZ1bmN0aW9uTWFza1ZhbHVlIDogTExWTU1hc2tBbGxPbjsgfQotIAotIGxsdm06OlZhbHVl ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRJbnRlcm5hbE1hc2soKSB7IHJldHVybiBMb2FkSW5z dChpbnRlcm5hbE1hc2tQb2ludGVyLCBOVUxMLCAibG9hZF9tYXNrIik7IH0KLSAKLSBsbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0RnVsbE1hc2soKSB7Ci0tICAgIHJldHVybiBC aW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlvbjo6QW5kLCBHZXRJbnRlcm5hbE1hc2soKSwg ZnVuY3Rpb25NYXNrVmFsdWUsICJpbnRlcm5hbF9tYXNrJmZ1bmN0aW9uX21hc2siKTsKLSsgICAg cmV0dXJuIGZ1bGxNYXNrUG9pbnRlciA/IEJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9u OjpBbmQsIEdldEludGVybmFsTWFzaygpLCBmdW5jdGlvbk1hc2tWYWx1ZSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbnRlcm5hbF9tYXNrJmZ1bmN0aW9u X21hc2siKQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDogR2V0SW50ZXJuYWxNYXNrKCk7 Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRGdWxsTWFza1Bv aW50ZXIoKSB7IHJldHVybiBmdWxsTWFza1BvaW50ZXI7IH0KLStsbHZtOjpWYWx1ZSAqRnVuY3Rp b25FbWl0Q29udGV4dDo6R2V0RnVsbE1hc2tQb2ludGVyKCkgewotKyAgICByZXR1cm4gZnVsbE1h c2tQb2ludGVyID8gZnVsbE1hc2tQb2ludGVyIDogaW50ZXJuYWxNYXNrUG9pbnRlcjsKLSt9Ci0g Ci0gdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpTZXRGdW5jdGlvbk1hc2sobGx2bTo6VmFsdWUg KnZhbHVlKSB7Ci0tICAgIGZ1bmN0aW9uTWFza1ZhbHVlID0gdmFsdWU7Ci0tICAgIGlmIChiYmxv Y2sgIT0gTlVMTCkKLS0gICAgICAgIFN0b3JlSW5zdChHZXRGdWxsTWFzaygpLCBmdWxsTWFza1Bv aW50ZXIpOwotKyAgICBpZiAoZnVsbE1hc2tQb2ludGVyICE9IE5VTEwpIHsKLSsgICAgICAgIGZ1 bmN0aW9uTWFza1ZhbHVlID0gdmFsdWU7Ci0rICAgICAgICBpZiAoYmJsb2NrICE9IE5VTEwpCi0r ICAgICAgICAgICAgU3RvcmVJbnN0KEdldEZ1bGxNYXNrKCksIGZ1bGxNYXNrUG9pbnRlcik7Ci0r ICAgIH0KLSB9Ci0gCi0gdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpTZXRCbG9ja0VudHJ5TWFz ayhsbHZtOjpWYWx1ZSAqdmFsdWUpIHsgYmxvY2tFbnRyeU1hc2sgPSB2YWx1ZTsgfQotQEAgLTQx MCw3ICs0MjQsOCBAQCB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OlNldEJsb2NrRW50cnlNYXNr KGxsdm06OlZhbHVlICp2YWx1ZSkgeyBibG9ja0VudHJ5TWFzawotIHZvaWQgRnVuY3Rpb25FbWl0 Q29udGV4dDo6U2V0SW50ZXJuYWxNYXNrKGxsdm06OlZhbHVlICp2YWx1ZSkgewotICAgICBTdG9y ZUluc3QodmFsdWUsIGludGVybmFsTWFza1BvaW50ZXIpOwotICAgICAvLyBrbHVkZ2Ugc28gdGhh dCBfX21hc2sgcmV0dXJucyB0aGUgcmlnaHQgdmFsdWUgaW4gaXNwYyBjb2RlLgotLSAgICBTdG9y ZUluc3QoR2V0RnVsbE1hc2soKSwgZnVsbE1hc2tQb2ludGVyKTsKLSsgICAgaWYgKGZ1bGxNYXNr UG9pbnRlcikKLSsgICAgICAgIFN0b3JlSW5zdChHZXRGdWxsTWFzaygpLCBmdWxsTWFza1BvaW50 ZXIpOwotIH0KLSAKLSB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OlNldEludGVybmFsTWFza0Fu ZChsbHZtOjpWYWx1ZSAqb2xkTWFzaywgbGx2bTo6VmFsdWUgKnRlc3QpIHsKLUBAIC0xMjY1LDcg KzEyODAsNyBAQCB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OkN1cnJlbnRMYW5lc1JldHVybmVk KEV4cHIgKmV4cHIsIGJvb2wgZG9Db2hlcmVuY2VDaGVjawotICAgICAgICAgLy8gbGFuZXMgaGF2 ZSByZXR1cm5lZAotICAgICAgICAgaWYgKGRvQ29oZXJlbmNlQ2hlY2spIHsKLSAgICAgICAgICAg ICAvLyBpZiBuZXdSZXR1cm5lZExhbmVzID09IGZ1bmN0aW9uTWFza1ZhbHVlLCBnZXQgb3V0IG9m IGhlcmUhCi0tICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmNtcCA9IE1hc2tzQWxsRXF1YWwoZnVu Y3Rpb25NYXNrVmFsdWUsIG5ld1JldHVybmVkTGFuZXMpOwotKyAgICAgICAgICAgIGxsdm06OlZh bHVlICpjbXAgPSBNYXNrc0FsbEVxdWFsKEdldEZ1bmN0aW9uTWFzaygpLCBuZXdSZXR1cm5lZExh bmVzKTsKLSAgICAgICAgICAgICBsbHZtOjpCYXNpY0Jsb2NrICpiRG9SZXR1cm4gPSBDcmVhdGVC YXNpY0Jsb2NrKCJkb19yZXR1cm4iKTsKLSAgICAgICAgICAgICBsbHZtOjpCYXNpY0Jsb2NrICpi Tm9SZXR1cm4gPSBDcmVhdGVCYXNpY0Jsb2NrKCJub19yZXR1cm4iKTsKLSAgICAgICAgICAgICBC cmFuY2hJbnN0KGJEb1JldHVybiwgYk5vUmV0dXJuLCBjbXApOwotZGlmZiAtLWdpdCBhL3Rlc3Rz L2xpdC10ZXN0cy9mdWxsX21hc2suaXNwYyBiL3Rlc3RzL2xpdC10ZXN0cy9mdWxsX21hc2suaXNw YwotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAwMC4uYWMwYjBiY2EzCi0tLS0g L2Rldi9udWxsCi0rKysgYi90ZXN0cy9saXQtdGVzdHMvZnVsbF9tYXNrLmlzcGMKLUBAIC0wLDAg KzEsNjMgQEAKLSsvLyBSVU46ICV7aXNwY30gJXMgLURJU1BDX0VYUE9SVCAtLWVtaXQtbGx2bS10 ZXh0IC1PMCAtLW5vd3JhcCAtbyAldC5sbAotKy8vIFJVTjogRmlsZUNoZWNrIC0taW5wdXQtZmls ZT0ldC5sbCAtY2hlY2stcHJlZml4PUNIRUNLX0lTUENfRVhQT1JUICVzCi0rCi0rLy8gUlVOOiAl e2lzcGN9ICVzIC1ESVNQQ19VTk1BU0tFRCAtLWVtaXQtbGx2bS10ZXh0IC1PMCAtLW5vd3JhcCAt byAldC5sbAotKy8vIFJVTjogRmlsZUNoZWNrIC0taW5wdXQtZmlsZT0ldC5sbCAtY2hlY2stcHJl Zml4PUNIRUNLX0lTUENfVU5NQVNLRUQgJXMKLSsKLSsvLyBSVU46ICV7aXNwY30gJXMgLURJU1BD X05PUVVBTElGIC0tZW1pdC1sbHZtLXRleHQgLU8wIC0tbm93cmFwIC1vICV0LmxsCi0rLy8gUlVO OiBGaWxlQ2hlY2sgLS1pbnB1dC1maWxlPSV0LmxsIC1jaGVjay1wcmVmaXg9Q0hFQ0tfSVNQQ19O T1FVQUxJRiAlcwotKwotKy8vIFJVTjogJXtpc3BjfSAlcyAtRElTUENfVEFTSyAtLWVtaXQtbGx2 bS10ZXh0IC1PMCAtLW5vd3JhcCAtbyAldC5sbAotKy8vIFJVTjogRmlsZUNoZWNrIC0taW5wdXQt ZmlsZT0ldC5sbCAtY2hlY2stcHJlZml4PUNIRUNLX0lTUENfVEFTSyAlcwotKwotK3N0cnVjdCBQ YXJhbWV0ZXJzIHsKLSsgICAgZmxvYXQgKnZvdXQ7Ci0rICAgIGludCBwYXJhbTsKLSt9OwotKwot KyNpZmRlZiBJU1BDX0VYUE9SVAotKy8vIENIRUNLX0lTUENfRVhQT1JUOiBkZWZpbmUgdm9pZCBA c2ltcGxlX2V4cG9ydF9fXwotKy8vIENIRUNLX0lTUENfRVhQT1JUOiAlZnVsbF9tYXNrX21lbW9y eSA9IGFsbG9jYQotKy8vIENIRUNLX0lTUENfRVhQT1JUOiBkZWZpbmUgdm9pZCBAc2ltcGxlX2V4 cG9ydCgKLSsvLyBDSEVDS19JU1BDX0VYUE9SVC1OT1Q6ICVmdWxsX21hc2tfbWVtb3J5ID0gYWxs b2NhCi0rZXhwb3J0IHZvaWQgc2ltcGxlX2V4cG9ydCh2b2lkICp1bmlmb3JtIF9wKSB7Ci0rICAg IFBhcmFtZXRlcnMgKnVuaWZvcm0gcCA9IChQYXJhbWV0ZXJzICogdW5pZm9ybSkgX3A7Ci0rICAg IGlmIChwcm9ncmFtSW5kZXggPiBwLT5wYXJhbSkKLSsgICAgICAgIHAtPnZvdXRbcHJvZ3JhbUlu ZGV4XSA9IHByb2dyYW1Db3VudCAqIHByb2dyYW1JbmRleDsKLSt9Ci0rI2VuZGlmCi0rI2lmZGVm IElTUENfVU5NQVNLRUQKLSsvLyBDSEVDS19JU1BDX1VOTUFTS0VEOiBkZWZpbmUgdm9pZCBAc2lt cGxlX3VubWFza2VkCi0rLy8gQ0hFQ0tfSVNQQ19VTk1BU0tFRC1OT1Q6ICVmdWxsX21hc2tfbWVt b3J5ID0gYWxsb2NhCi0rdW5tYXNrZWQgdm9pZCBzaW1wbGVfdW5tYXNrZWQodm9pZCAqdW5pZm9y bSBfcCkgewotKyAgICBQYXJhbWV0ZXJzICp1bmlmb3JtIHAgPSAoUGFyYW1ldGVycyAqIHVuaWZv cm0pIF9wOwotKyAgICBpZiAocHJvZ3JhbUluZGV4ID4gcC0+cGFyYW0pCi0rICAgICAgICBwLT52 b3V0W3Byb2dyYW1JbmRleF0gPSBwcm9ncmFtQ291bnQgKiBwcm9ncmFtSW5kZXg7Ci0rfQotKyNl bmRpZgotKyNpZmRlZiBJU1BDX05PUVVBTElGCi0rLy8gQ0hFQ0tfSVNQQ19OT1FVQUxJRjogZGVm aW5lIHZvaWQgQHNpbXBsZQotKy8vIENIRUNLX0lTUENfTk9RVUFMSUY6ICVmdWxsX21hc2tfbWVt b3J5ID0gYWxsb2NhCi0rdm9pZCBzaW1wbGUodm9pZCAqdW5pZm9ybSBfcCkgewotKyAgICBQYXJh bWV0ZXJzICp1bmlmb3JtIHAgPSAoUGFyYW1ldGVycyAqIHVuaWZvcm0pIF9wOwotKyAgICBpZiAo cHJvZ3JhbUluZGV4ID4gcC0+cGFyYW0pCi0rICAgICAgICBwLT52b3V0W3Byb2dyYW1JbmRleF0g PSBwcm9ncmFtQ291bnQgKiBwcm9ncmFtSW5kZXg7Ci0rfQotKyNlbmRpZgotKyNpZmRlZiBJU1BD X1RBU0sKLSsKLSsvLyBDSEVDS19JU1BDX1RBU0s6IGRlZmluZSB2b2lkIEBzaW1wbGVfdGFzawot Ky8vIENIRUNLX0lTUENfVEFTSy1OT1Q6ICVmdWxsX21hc2tfbWVtb3J5ID0gYWxsb2NhCi0rLy8g Q0hFQ0tfSVNQQ19UQVNLOiBkZWZpbmUgdm9pZCBAc2ltcGxlX2VudHJ5X3BvaW50X18KLSsvLyBD SEVDS19JU1BDX1RBU0s6ICVmdWxsX21hc2tfbWVtb3J5ID0gYWxsb2NhCi0rLy8gQ0hFQ0tfSVNQ Q19UQVNLOiBkZWZpbmUgdm9pZCBAc2ltcGxlX2VudHJ5X3BvaW50KAotKy8vIENIRUNLX0lTUENf VEFTSy1OT1Q6ICVmdWxsX21hc2tfbWVtb3J5ID0gYWxsb2NhCi0rdGFzayB2b2lkIHNpbXBsZV90 YXNrKHZvaWQgKnVuaWZvcm0gX3ApIHsKLSsgICAgUGFyYW1ldGVycyAqdW5pZm9ybSBwID0gKFBh cmFtZXRlcnMgKiB1bmlmb3JtKSBfcDsKLSsgICAgaWYgKHByb2dyYW1JbmRleCA+IHAtPnBhcmFt KQotKyAgICAgICAgcC0+dm91dFtwcm9ncmFtSW5kZXhdID0gcHJvZ3JhbUNvdW50ICogcHJvZ3Jh bUluZGV4OwotK30KLStleHBvcnQgdm9pZCBzaW1wbGVfZW50cnlfcG9pbnQodm9pZCAqdW5pZm9y bSBwYXJhbWV0ZXJzLCB1bmlmb3JtIGludCBkaW0wLCB1bmlmb3JtIGludCBkaW0xLCB1bmlmb3Jt IGludCBkaW0yKSB7Ci0rICAgIGxhdW5jaFtkaW0wLCBkaW0xLCBkaW0yXSBzaW1wbGVfdGFzayhw YXJhbWV0ZXJzKTsKLSt9Ci0rI2VuZGlmCi1cIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDgucGF0Y2ggYi9zcmNwa2dz L2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCBjODQxM2Q4Yjc4ODcuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2lzcGMvcGF0Y2hl cy9sbHZtMTItMDA4LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTQ5ICswLDAgQEAKLUZyb20g YWZhZDE0MjI3ZDkyMDRhM2M4YTYyNmNhNjA4ZjViNDNjMzIxOGZlOSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKLUZyb206IEFyaW5hIE5lc2hseWFldmEgPGFyaW5hLm5lc2hseWFldmFAaW50ZWwu Y29tPgotRGF0ZTogVHVlLCA0IE1heSAyMDIxIDExOjQzOjUyIC0wNzAwCi1TdWJqZWN0OiBbUEFU Q0hdIEZpeGVkIElTUEMgZ2VuIGJ1aWxkIGZvciBMTFZNMTIKLQotLS0tCi0gc3JjL2N0eC5jcHAg fCAgNCArKysrCi0gc3JjL29wdC5jcHAgfCA0MyArKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0tCi0gMiBmaWxlcyBjaGFuZ2VkLCAzMyBpbnNlcnRpb25zKCspLCAxNCBk ZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9jdHguY3BwIGIvc3JjL2N0eC5jcHAKLWlu ZGV4IDBjNzA1MDU5MS4uZjdkYzA2OTM5IDEwMDY0NAotLS0tIGEvc3JjL2N0eC5jcHAKLSsrKyBi L3NyYy9jdHguY3BwCi1AQCAtMzczOCw3ICszNzM4LDExIEBAIGxsdm06OlZhbHVlICpGdW5jdGlv bkVtaXRDb250ZXh0OjpHZW5YU2ltZENGQW55KGxsdm06OlZhbHVlICp2YWx1ZSkgewotIAotIGxs dm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZW5YU2ltZENGUHJlZGljYXRlKGxsdm06 OlZhbHVlICp2YWx1ZSwgbGx2bTo6VmFsdWUgKmRlZmF1bHRzKSB7Ci0gICAgIEFzc2VydFBvcyhj dXJyZW50UG9zLCBsbHZtOjppc2E8bGx2bTo6VmVjdG9yVHlwZT4odmFsdWUtPmdldFR5cGUoKSkp OwotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotKyAgICBsbHZtOjpG aXhlZFZlY3RvclR5cGUgKnZ0ID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBl Pih2YWx1ZS0+Z2V0VHlwZSgpKTsKLSsjZWxzZQotICAgICBsbHZtOjpWZWN0b3JUeXBlICp2dCA9 IGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHZhbHVlLT5nZXRUeXBlKCkpOwotKyNl bmRpZgotICAgICBpZiAoZGVmYXVsdHMgPT0gTlVMTCkgewotICNpZiBJU1BDX0xMVk1fVkVSU0lP TiA8IElTUENfTExWTV8xMV8wCi0gICAgICAgICBkZWZhdWx0cyA9IGxsdm06OkNvbnN0YW50VmVj dG9yOjpnZXRTcGxhdCh2dC0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSwKLWRpZmYgLS1naXQgYS9z cmMvb3B0LmNwcCBiL3NyYy9vcHQuY3BwCi1pbmRleCBjZWE0YWZhMjMuLjRlMzNkNmIxYSAxMDA2 NDQKLS0tLSBhL3NyYy9vcHQuY3BwCi0rKysgYi9zcmMvb3B0LmNwcAotQEAgLTI5MTYsOSArMjkx NiwxMyBAQCBzdGF0aWMgbGx2bTo6RnVuY3Rpb24gKmxHZW5YTWFza2VkSW50OEluc3QobGx2bTo6 SW5zdHJ1Y3Rpb24gKmluc3QsIGJvb2wgaXNTdG9yZQotIAotIHN0YXRpYyBsbHZtOjpDYWxsSW5z dCAqbEdlblhTdG9yZUluc3QobGx2bTo6VmFsdWUgKnZhbCwgbGx2bTo6VmFsdWUgKnB0ciwgbGx2 bTo6SW5zdHJ1Y3Rpb24gKmluc3QpIHsKLSAgICAgQXNzZXJ0KGctPnRhcmdldC0+aXNHZW5YVGFy Z2V0KCkpOwotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotKyAgICBB c3NlcnQobGx2bTo6aXNhPGxsdm06OkZpeGVkVmVjdG9yVHlwZT4odmFsLT5nZXRUeXBlKCkpKTsK LSsgICAgbGx2bTo6Rml4ZWRWZWN0b3JUeXBlICp2YWxWZWNUeXBlID0gbGx2bTo6ZHluX2Nhc3Q8 bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPih2YWwtPmdldFR5cGUoKSk7Ci0rI2Vsc2UKLSAgICAgQXNz ZXJ0KGxsdm06OmlzYTxsbHZtOjpWZWN0b3JUeXBlPih2YWwtPmdldFR5cGUoKSkpOwotLQotICAg ICBsbHZtOjpWZWN0b3JUeXBlICp2YWxWZWNUeXBlID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVj dG9yVHlwZT4odmFsLT5nZXRUeXBlKCkpOwotKyNlbmRpZgotICAgICBBc3NlcnQobGx2bTo6aXNQ b3dlck9mMl8zMih2YWxWZWNUeXBlLT5nZXROdW1FbGVtZW50cygpKSk7Ci0gICAgIEFzc2VydCh2 YWxWZWNUeXBlLT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkgLyA4IDw9IDggKiBPV09SRCk7Ci0g Ci1AQCAtMjk0Miw5ICsyOTQ2LDEzIEBAIHN0YXRpYyBsbHZtOjpDYWxsSW5zdCAqbEdlblhTdG9y ZUluc3QobGx2bTo6VmFsdWUgKnZhbCwgbGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6Ci0gfQotIAot IHN0YXRpYyBsbHZtOjpDYWxsSW5zdCAqbEdlblhMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBs bHZtOjpUeXBlICpyZXRUeXBlLCBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCkgewotKyNpZiBJU1BD X0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotKyAgICBBc3NlcnQobGx2bTo6aXNhPGxs dm06OkZpeGVkVmVjdG9yVHlwZT4ocmV0VHlwZSkpOwotKyAgICBsbHZtOjpGaXhlZFZlY3RvclR5 cGUgKnJldFZlY1R5cGUgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KHJl dFR5cGUpOwotKyNlbHNlCi0gICAgIEFzc2VydChsbHZtOjppc2E8bGx2bTo6VmVjdG9yVHlwZT4o cmV0VHlwZSkpOwotLQotICAgICBsbHZtOjpWZWN0b3JUeXBlICpyZXRWZWNUeXBlID0gbGx2bTo6 ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4ocmV0VHlwZSk7Ci0rI2VuZGlmCi0gICAgIEFzc2Vy dChsbHZtOjppc1Bvd2VyT2YyXzMyKHJldFZlY1R5cGUtPmdldE51bUVsZW1lbnRzKCkpKTsKLSAg ICAgQXNzZXJ0KHJldFZlY1R5cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSk7Ci0gICAgIEFz c2VydChyZXRWZWNUeXBlLT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkgLyA4IDw9IDggKiBPV09S RCk7Ci1AQCAtNTQ4NSw4ICs1NDkzLDEzIEBAIHN0YXRpYyB2b2lkIGxDcmVhdGVCbG9ja0xEVXNl KGxsdm06Okluc3RydWN0aW9uICpjdXJySW5zdCwgc3RkOjp2ZWN0b3I8bGx2bTo6RXh0Ci0gICAg ICAgICB9IGVsc2UgaWYgKGF1dG8gZ2F0aGVyID0gbEdldFBzZXVkb0dhdGhlcihsbHZtOjpkeW5f Y2FzdDxsbHZtOjpJbnN0cnVjdGlvbj4odWktPmdldFVzZXIoKSkpKSB7Ci0gICAgICAgICAgICAg Ly8gQ29sbGVjdCBpZHhzIGZyb20gZ2F0aGVyIGFuZCBmaXggdXNlcnMKLSAgICAgICAgICAgICBs bHZtOjpWYWx1ZSAqcmVzID0gbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGdhdGhlci0+Z2V0VHlwZSgp KTsKLS0gICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBlbmQgPSBsbHZtOjpkeW5fY2Fz dDxsbHZtOjpWZWN0b3JUeXBlPihyZXMtPmdldFR5cGUoKSktPmdldE51bUVsZW1lbnRzKCk7IGkg PCBlbmQ7Ci0tICAgICAgICAgICAgICAgICArK2kpIHsKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04g Pj0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBlbmQg PSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KHJlcy0+Z2V0VHlwZSgpKS0+ Z2V0TnVtRWxlbWVudHMoKTsgaSA8IGVuZDsKLSsgICAgICAgICAgICAgICAgICsraSkKLSsjZWxz ZQotKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGVuZCA9IGxsdm06OmR5bl9jYXN0 PGxsdm06OlZlY3RvclR5cGU+KHJlcy0+Z2V0VHlwZSgpKS0+Z2V0TnVtRWxlbWVudHMoKTsgaSA8 IGVuZDsgKytpKQotKyNlbmRpZgotKyAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgLy8g R2V0IGVsZW1lbnQgdmlhIElFSQotICAgICAgICAgICAgICAgICByZXMgPSBsbHZtOjpJbnNlcnRF bGVtZW50SW5zdDo6Q3JlYXRlKHJlcywgRUVJc1twdHJVc2UuaWR4c1tjdXJyX2lkeCsrXV0sCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2 bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDMyVHlwZSwgaSksCi1AQCAtNTUyMiwx MCArNTUzNSwxMSBAQCBzdGF0aWMgYm9vbCBsVmVjdG9yaXplR0VQcyhsbHZtOjpWYWx1ZSAqcHRy LCBzdGQ6OnZlY3RvcjxQdHJVc2U+ICZwdHJVc2VzLCBzdGQ6OgotIAotICAgICAvLyBBZGp1c3Qg dmFsdWVzIGZvciB2ZWN0b3IgbG9hZAotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xM Vk1fMTFfMAotLSAgICBpZiAoYXV0byB2ZWNUeSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVk VmVjdG9yVHlwZT4odHlwZSkpIHsKLSsgICAgaWYgKGF1dG8gdmVjVHkgPSBsbHZtOjpkeW5fY2Fz dDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KHR5cGUpKQotICNlbHNlCi0tICAgIGlmIChhdXRvIHZl Y1R5ID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4odHlwZSkpIHsKLSsgICAgaWYg KGF1dG8gdmVjVHkgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPih0eXBlKSkKLSAj ZW5kaWYKLSsgICAgewotICAgICAgICAgLy8gR2V0IHNpbmdsZSBlbGVtZW50IHNpemUKLSAgICAg ICAgIHRfc2l6ZSAvPSB2ZWNUeS0+Z2V0TnVtRWxlbWVudHMoKTsKLSAgICAgICAgIC8vIEdldCBz aW5nbGUgZWxlbWVudCB0eXBlCi1AQCAtNjQ3Nyw3ICs2NDkxLDcgQEAgbGx2bTo6VmFsdWUgKkZp eEFkZHJlc3NTcGFjZTo6Y2FsY3VsYXRlR2F0aGVyU2NhdHRlckFkZHJlc3MobGx2bTo6VmFsdWUg KlB0ciwgbGwKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSAgICAg ICAgIE9mZnNldHMsCi0gICAgICAgICBsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChMTFZNVHlw ZXM6OkludDY0VHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06 OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KE9mZnNldHMtPmdldFR5cGUoKSktPmdldE51bUVs ZW1lbnRzKCkpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6ZHlu X2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihPZmZzZXRzLT5nZXRUeXBlKCkpLT5nZXROdW1F bGVtZW50cygpKSwKLSAgICAgICAgICJzdm1fb2Zmc2V0X3pleHQiLCBJbnNlcnRCZWZvcmUpOwot ICNlbHNlCi0gICAgICAgICBPZmZzZXRzLCBsbHZtOjpWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVz OjpJbnQ2NFR5cGUsIE9mZnNldHMtPmdldFR5cGUoKS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSks Ci1AQCAtNjQ5Miw3ICs2NTA2LDcgQEAgbGx2bTo6VmFsdWUgKkZpeEFkZHJlc3NTcGFjZTo6Y2Fs Y3VsYXRlR2F0aGVyU2NhdHRlckFkZHJlc3MobGx2bTo6VmFsdWUgKlB0ciwgbGwKLSAgICAgICAg IGxsdm06OlZhbHVlICp1bmRlZkluc2VydFZhbHVlID0KLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04g Pj0gSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAgICBsbHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2 bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoCi0tICAgICAgICAgICAgICAgIExMVk1UeXBlczo6SW50 NjRUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihhZGRyZXNzVHlwZSktPmdl dE51bUVsZW1lbnRzKCkpKTsKLSsgICAgICAgICAgICAgICAgTExWTVR5cGVzOjpJbnQ2NFR5cGUs IGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUpLT5nZXRO dW1FbGVtZW50cygpKSk7Ci0gI2Vsc2UKLSAgICAgICAgICAgICBsbHZtOjpVbmRlZlZhbHVlOjpn ZXQobGx2bTo6VmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6SW50NjRUeXBlLCBhZGRyZXNzVHlw ZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSkpOwotICNlbmRpZgotQEAgLTY1MDEsMTcgKzY1MTUs MTYgQEAgbGx2bTo6VmFsdWUgKkZpeEFkZHJlc3NTcGFjZTo6Y2FsY3VsYXRlR2F0aGVyU2NhdHRl ckFkZHJlc3MobGx2bTo6VmFsdWUgKlB0ciwgbGwKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJ U1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgIGFkZHJlc3NUeXBlLT5nZXRWZWN0b3JOdW1FbGVt ZW50cygpLAotICNlbGlmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzEyXzAKLS0gICAg ICAgICAgICB7bGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUpLT5n ZXROdW1FbGVtZW50cygpLCBmYWxzZX0sCi0rICAgICAgICAgICAge2xsdm06OmR5bl9jYXN0PGxs dm06OkZpeGVkVmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpLCBmYWxz ZX0sCi0gI2Vsc2UKLS0gICAgICAgIGxsdm06OkVsZW1lbnRDb3VudDo6Z2V0KAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JU eXBlPihhZGRyZXNzVHlwZS0+Z2V0TnVtRWxlbWVudHMoKSwgZmFsc2UpLAotKyAgICAgICAgICAg IGxsdm06OkVsZW1lbnRDb3VudDo6Z2V0KGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9y VHlwZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpLCBmYWxzZSksCi0gI2VuZGlmCi0g ICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZShsbHZtOjpUeXBlOjpnZXRJ bnQzMlR5KEluc2VydEJlZm9yZS0+Z2V0Q29udGV4dCgpKSkpOwotIAotICAgICAgICAgbGx2bTo6 VmFsdWUgKnVuZGVmU2h1ZmZsZVZhbHVlID0KLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQ Q19MTFZNXzExXzAKLSAgICAgICAgICAgICBsbHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6Rml4 ZWRWZWN0b3JUeXBlOjpnZXQoCi0tICAgICAgICAgICAgICAgIExMVk1UeXBlczo6SW50NjRUeXBl LCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihhZGRyZXNzVHlwZSktPmdldE51bUVs ZW1lbnRzKCkpKTsKLSsgICAgICAgICAgICAgICAgTExWTVR5cGVzOjpJbnQ2NFR5cGUsIGxsdm06 OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVt ZW50cygpKSk7Ci0gI2Vsc2UKLSAgICAgICAgICAgICBsbHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2 bTo6VmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6SW50NjRUeXBlLCBhZGRyZXNzVHlwZS0+Z2V0 VmVjdG9yTnVtRWxlbWVudHMoKSkpOwotICNlbmRpZgotQEAgLTY1NDIsNyArNjU1NSw4IEBAIGxs dm06Okluc3RydWN0aW9uICpGaXhBZGRyZXNzU3BhY2U6OnByb2Nlc3NWZWN0b3JMb2FkKGxsdm06 OkxvYWRJbnN0ICpMSSkgewotICAgICAgICAgaXNQdHJMb2FkID0gdHJ1ZTsKLSAgICAgICAgIGF1 dG8gc2NhbGFyVHlwZSA9IGctPnRhcmdldC0+aXMzMkJpdCgpID8gTExWTVR5cGVzOjpJbnQzMlR5 cGUgOiBMTFZNVHlwZXM6OkludDY0VHlwZTsKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQ Q19MTFZNXzExXzAKLS0gICAgICAgIHJldFR5cGUgPSBsbHZtOjpGaXhlZFZlY3RvclR5cGU6Omdl dChzY2FsYXJUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihyZXRUeXBlKS0+ Z2V0TnVtRWxlbWVudHMoKSk7Ci0rICAgICAgICByZXRUeXBlID0KLSsgICAgICAgICAgICBsbHZt OjpGaXhlZFZlY3RvclR5cGU6OmdldChzY2FsYXJUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpG aXhlZFZlY3RvclR5cGU+KHJldFR5cGUpLT5nZXROdW1FbGVtZW50cygpKTsKLSAjZWxzZQotICAg ICAgICAgcmV0VHlwZSA9IGxsdm06OlZlY3RvclR5cGU6OmdldChzY2FsYXJUeXBlLCByZXRUeXBl LT5nZXRWZWN0b3JOdW1FbGVtZW50cygpKTsKLSAjZW5kaWYKLUBAIC02NjA0LDcgKzY2MTgsOCBA QCBsbHZtOjpJbnN0cnVjdGlvbiAqRml4QWRkcmVzc1NwYWNlOjpwcm9jZXNzVmVjdG9yU3RvcmUo bGx2bTo6U3RvcmVJbnN0ICpTSSkgewotICAgICBpZiAodmFsVHlwZS0+Z2V0U2NhbGFyVHlwZSgp LT5pc1BvaW50ZXJUeSgpKSB7Ci0gICAgICAgICBhdXRvIHNjYWxhclR5cGUgPSBnLT50YXJnZXQt PmlzMzJCaXQoKSA/IExMVk1UeXBlczo6SW50MzJUeXBlIDogTExWTVR5cGVzOjpJbnQ2NFR5cGU7 Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0tICAgICAgICB2YWxU eXBlID0gbGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoc2NhbGFyVHlwZSwgbGx2bTo6ZHluX2Nh c3Q8bGx2bTo6VmVjdG9yVHlwZT4odmFsVHlwZSktPmdldE51bUVsZW1lbnRzKCkpOwotKyAgICAg ICAgdmFsVHlwZSA9Ci0rICAgICAgICAgICAgbGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoc2Nh bGFyVHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPih2YWxUeXBlKS0+ Z2V0TnVtRWxlbWVudHMoKSk7Ci0gI2Vsc2UKLSAgICAgICAgIHZhbFR5cGUgPSBsbHZtOjpWZWN0 b3JUeXBlOjpnZXQoc2NhbGFyVHlwZSwgdmFsVHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSk7 Ci0gI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA5LnBh dGNoIGIvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwOS5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggZDNlYTY3ODI4NTgyLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtn cy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwOS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIxMDkg KzAsMCBAQAotRnJvbSA5N2IxM2MzMjEzMmUyNzA0YTVlM2U3YjJlYWU0OWQ4NTRkMDg3ZTNlIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQXJpbmEgTmVzaGx5YWV2YSA8YXJpbmEubmVz aGx5YWV2YUBpbnRlbC5jb20+Ci1EYXRlOiBUdWUsIDQgTWF5IDIwMjEgMTE6MzE6NTUgLTA3MDAK LVN1YmplY3Q6IFtQQVRDSF0gVXBkYXRlZCBidWlsdGlucy1jbSogZm9yIHN3aXRjaCB0byBMTFZN MTIKLQotLS0tCi0gYnVpbHRpbnMvYnVpbHRpbnMtY20tMzIubGwgfCAyMzQgKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQotIGJ1aWx0aW5zL2J1aWx0aW5zLWNtLTY0LmxsIHwg MjMyICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQotIDIgZmlsZXMgY2hhbmdl ZCwgMjMzIGluc2VydGlvbnMoKyksIDIzMyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2J1 aWx0aW5zL2J1aWx0aW5zLWNtLTMyLmxsIGIvYnVpbHRpbnMvYnVpbHRpbnMtY20tMzIubGwKLWlu ZGV4IDMyZGViZjMyZS4uNDgxYmJkYzQ4IDEwMDY0NAotLS0tIGEvYnVpbHRpbnMvYnVpbHRpbnMt Y20tMzIubGwKLSsrKyBiL2J1aWx0aW5zL2J1aWx0aW5zLWNtLTMyLmxsCi1AQCAtNTU3LDcgKzU1 Nyw3IEBAICRfWk4xM1ZhcnlpbmdXcml0ZXIxMldyaXRlVmVjRWxlbUlQdkVFdnYgPSBjb21kYXQg YW55Ci0gQC5zdHIuMTAgPSBwcml2YXRlIHVubmFtZWRfYWRkciBjb25zdGFudCBbNSB4IGk4XSBj IiUwOFhcMDAiLCBhbGlnbiAxCi0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NkaXZjYyhpOCBzaWduZXh0LCBpOCBzaWduZXh0KSAjMCB7Ci0rZGVmaW5lIGludGVybmFsIHNp Z25leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZjYyhpOCBzaWduZXh0LCBpOCBz aWduZXh0KSAjMCB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2Eg aTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtNjE4LDcg KzYxOCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1pON2RldGFpbHMxM19faW1wbF9k aXZyZW1JTGkxRUVFdTJDTXZiVF9fY1MxX1MxX3UyQ012Ci0gZGVjbGFyZSA8MSB4IGk4PiBAbGx2 bS5nZW54LnJkcmVnaW9uaS52MWk4LnYxaTguaTE2KDwxIHggaTg+LCBpMzIsIGkzMiwgaTMyLCBp MTYsIGkzMikgIzIKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNN dmIxX2NTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMwIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBp OD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX2NTXyg8MSB4IGk4PiwgPDEg eCBpOD4pICMwIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNCA9IGFs bG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEK LUBAIC02MzQsNyArNjM0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfY1NfKDwxIHggaTg+LCA8MQotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBp OD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIyX2NTXyg8MiB4IGk4PiwgPDIg eCBpOD4pICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NkaXZ1MkNNdmIyX2NTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMzIHsKLSAgICUzID0g YWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24g MgotICAgJTUgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLUBAIC02ODAsNyArNjgwLDcgQEAg ZGVmaW5lIGludGVybmFsIDwyIHggaTg+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTJF RUV1MkNNdmJUX19jUzFfUzFfdTJDTXYKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zZGl2dTJDTXZiNF9jU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjNSB7Ci0rZGVmaW5l IGludGVybmFsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9j U18oPDQgeCBpOD4sIDw0IHggaTg+KSAjNSB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGk4PiwgYWxp Z24gNAotICAgJTQgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDw0 IHggaTg+LCBhbGlnbiA0Ci1AQCAtODE4LDcgKzgxOCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYg eCBpOD4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMTZFRUV1MkNNdmJUX19jUzFfUzFf dTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIz Ml9jU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxMSB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4 IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjMyX2NTXyg8MzIgeCBpOD4s IDwzMiB4IGk4PikgIzExIHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAg ICU0ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGk4 PiwgYWxpZ24gMzIKLUBAIC04NjQsNyArODY0LDcgQEAgZGVmaW5lIGludGVybmFsIDwzMiB4IGk4 PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkzMkVFRXUyQ012YlRfX2NTMV9TMV91MkMK LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNv X2xvY2FsIHNpZ25leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1jYyhpOCBzaWdu ZXh0LCBpOCBzaWduZXh0KSAjMCB7Ci0rZGVmaW5lIGludGVybmFsIHNpZ25leHQgaTggQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NyZW1jYyhpOCBzaWduZXh0LCBpOCBzaWduZXh0KSAjMCB7Ci0g ICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAg ICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtODkwLDcgKzg5MCw3IEBAIGRlZmlu ZSBkc29fbG9jYWwgc2lnbmV4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbWNjKGk4 IHNpZ25leHQsIGk4IHNpZ25lCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbXUyQ012YjFfY1NfKDwxIHggaTg+LCA8MSB4IGk4PikgIzAgewotK2RlZmluZSBpbnRl cm5hbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfY1NfKDwx IHggaTg+LCA8MSB4IGk4PikgIzAgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEK LSAgICU0ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4 PiwgYWxpZ24gMQotQEAgLTkwNCw3ICs5MDQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9jU18oPDEgeCBpOD4sIDwxCi0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfY1NfKDwy IHggaTg+LCA8MiB4IGk4PikgIzMgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfY1NfKDwyIHggaTg+LCA8MiB4IGk4PikgIzMg ewotICAgJTMgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwyIHgg aTg+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotQEAgLTkxOCw3 ICs5MTgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zcmVtdTJDTXZiMl9jU18oPDIgeCBpOD4sIDwyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGk4PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfY1NfKDw0IHggaTg+LCA8NCB4IGk4PikgIzUg ewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXUyQ012YjRfY1NfKDw0IHggaTg+LCA8NCB4IGk4PikgIzUgewotICAgJTMgPSBhbGxvY2EgPDQg eCBpOD4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNSA9 IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotQEAgLTkzMiw3ICs5MzIsNyBAQCBkZWZpbmUgZHNv X2xvY2FsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9jU18o PDQgeCBpOD4sIDw0Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5k Ci0tZGVmaW5lIGRzb19sb2NhbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXUyQ012YjhfY1NfKDw4IHggaTg+LCA8OCB4IGk4PikgIzcgewotK2RlZmluZSBpbnRlcm5hbCA8 OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjhfY1NfKDw4IHggaTg+ LCA8OCB4IGk4PikgIzcgewotICAgJTMgPSBhbGxvY2EgPDggeCBpOD4sIGFsaWduIDgKLSAgICU0 ID0gYWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8OCB4IGk4PiwgYWxp Z24gOAotQEAgLTk0Niw3ICs5NDYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw4IHggaTg+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9jU18oPDggeCBpOD4sIDw4Ci0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8 MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9jU18oPDE2IHgg aTg+LCA8MTYgeCBpOD4pICM5IHsKLStkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTg+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfY1NfKDwxNiB4IGk4PiwgPDE2IHggaTg+KSAj OSB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8 MTYgeCBpOD4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2Ci1A QCAtOTYwLDcgKzk2MCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDE2IHggaTg+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfY1NfKDwxNiB4IGk4PiwKLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX2NTXyg8MzIgeCBpOD4sIDwz MiB4IGk4PikgIzExIHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfY1NfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTEgewot ICAgJTMgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDMyIHgg aTg+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotQEAgLTk3 NCw3ICs5NzQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc3JlbXUyQ012YjMyX2NTXyg8MzIgeCBpOD4sCi0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBzaWduZXh0IGkxNiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnNzKGkxNiBzaWduZXh0LCBpMTYgc2lnbmV4dCkg IzMgewotK2RlZmluZSBpbnRlcm5hbCBzaWduZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc2RpdnNzKGkxNiBzaWduZXh0LCBpMTYgc2lnbmV4dCkgIzMgewotICAgJTMgPSBhbGxvY2Eg aTE2LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU1ID0gYWxsb2Nh IDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTEwNTgsNyArMTA1OCw3IEBAIGRlZmluZSBpbnRlcm5h bCA8MSB4IGkxNj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMUVFRXUyQ012YlRfX3NT MV9TMV91MkNNCi0gZGVjbGFyZSA8MSB4IGkxNj4gQGxsdm0uZ2VueC5yZHJlZ2lvbmkudjFpMTYu djFpMTYuaTE2KDwxIHggaTE2PiwgaTMyLCBpMzIsIGkzMiwgaTE2LCBpMzIpICMyCi0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfc1NfKDwxIHggaTE2Piwg PDEgeCBpMTY+KSAjMyB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTE2PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfc1NfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMyB7Ci0g ICAlMyA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwxIHggaTE2 PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMTA3NCw3 ICsxMDc0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NkaXZ1MkNNdmIxX3NTXyg8MSB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfc1NfKDwyIHggaTE2PiwgPDIgeCBpMTY+ KSAjNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc2RpdnUyQ012YjJfc1NfKDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjNSB7Ci0gICAlMyA9IGFs bG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24g NAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci1AQCAtMTE0Myw3ICsxMTQzLDcg QEAgZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1J TGkyRUVFdTJDTXZiVF9fc1MxX1MxX3UyQ00KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfc1NfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAjNyB7Ci0r ZGVmaW5lIGludGVybmFsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUy Q012YjRfc1NfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAjNyB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4 IGkxNj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTUg PSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci1AQCAtMTM1MCw3ICsxMzUwLDcgQEAgZGVmaW5l IGludGVybmFsIDwxNiB4IGkxNj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMTZFRUV1 MkNNdmJUX19zUzFfUzFfdTIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NkaXZ1MkNNdmIzMl9zU18oPDMyIHggaTE2PiwgPDMyIHggaTE2PikgIzEzIHsKLStkZWZp bmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012 YjMyX3NTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTMgewotICAgJTMgPSBhbGxvY2EgPDMy IHggaTE2PiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0g ICAlNSA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotQEAgLTE0MTksNyArMTQxOSw3IEBA IGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlM aTMyRUVFdTJDTXZiVF9fc1MxX1MxX3UyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBzaWduZXh0IGkxNiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc3JlbXNzKGkxNiBzaWduZXh0LCBpMTYgc2lnbmV4dCkgIzMgewotK2RlZmlu ZSBpbnRlcm5hbCBzaWduZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXNzKGkx NiBzaWduZXh0LCBpMTYgc2lnbmV4dCkgIzMgewotICAgJTMgPSBhbGxvY2EgaTE2LCBhbGlnbiAy Ci0gICAlNCA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2Piwg YWxpZ24gMgotQEAgLTE0NDUsNyArMTQ0NSw3IEBAIGRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBp MTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1zcyhpMTYgc2lnbmV4dCwgaTE2IHNpCi0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX3NTXyg8 MSB4IGkxNj4sIDwxIHggaTE2PikgIzMgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX3NTXyg8MSB4IGkxNj4sIDwxIHggaTE2 PikgIzMgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9j YSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgot QEAgLTE0NTksNyArMTQ1OSw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9zU18oPDEgeCBpMTY+LCA8Ci0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4 IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX3NTXyg8MiB4IGkxNj4s IDwyIHggaTE2PikgIzUgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX3NTXyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzUgewot ICAgJTMgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkx Nj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotQEAgLTE0NzMs NyArMTQ3Myw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtdTJDTXZiMl9zU18oPDIgeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X3NTXyg8NCB4IGkxNj4sIDw0IHggaTE2 PikgIzcgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmI0X3NTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzcgewotICAgJTMgPSBh bGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWdu IDgKLSAgICU1ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotQEAgLTE0ODcsNyArMTQ4Nyw3 IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z cmVtdTJDTXZiNF9zU18oPDQgeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X3NTXyg8OCB4IGkxNj4sIDw4IHggaTE2PikgIzkgewot K2RlZmluZSBpbnRlcm5hbCA8OCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11 MkNNdmI4X3NTXyg8OCB4IGkxNj4sIDw4IHggaTE2PikgIzkgewotICAgJTMgPSBhbGxvY2EgPDgg eCBpMTY+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAxNgotICAg JTUgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAxNgotQEAgLTE1MDEsNyArMTUwMSw3IEBAIGRl ZmluZSBkc29fbG9jYWwgPDggeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJD TXZiOF9zU18oPDggeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtdTJDTXZiMTZfc1NfKDwxNiB4IGkxNj4sIDwxNiB4IGkxNj4pICMxMSB7Ci0r ZGVmaW5lIGludGVybmFsIDwxNiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11 MkNNdmIxNl9zU18oPDE2IHggaTE2PiwgPDE2IHggaTE2PikgIzExIHsKLSAgICUzID0gYWxsb2Nh IDwxNiB4IGkxNj4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAz MgotICAgJTUgPSBhbGxvY2EgPDE2IHggaTE2PiwgYWxpZ24gMzIKLUBAIC0xNTE1LDcgKzE1MTUs NyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmIxNl9zU18oPDE2IHggaTE2PgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTE2PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX3NTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAj MTMgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zcmVtdTJDTXZiMzJfc1NfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxMyB7Ci0gICAlMyA9 IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTE2Piwg YWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci1AQCAtMTUyOSw3 ICsxNTI5LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtdTJDTXZiMzJfc1NfKDwzMiB4IGkxNj4KLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIGkzMiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfc2RpdmlpKGkzMiwgaTMyKSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCBp MzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZpaShpMzIsIGkzMikgIzE0IHsKLSAgICUz ID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAl NSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0xNzMwLDcgKzE3MzAsNyBAQCBkZWZp bmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTFFRUV1 MkNNdmJUX19pUzFfUzFfdTJDTQotIGRlY2xhcmUgPDEgeCBpMzI+IEBsbHZtLmdlbngucmRyZWdp b25pLnYxaTMyLnYxaTMyLmkxNig8MSB4IGkzMj4sIGkzMiwgaTMyLCBpMzIsIGkxNiwgaTMyKSAj MgotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX2lTXyg8 MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9pU18oPDEgeCBpMzI+LCA8MSB4IGkz Mj4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU0ID0gYWxs b2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0 Ci1AQCAtMTc0Niw3ICsxNzQ2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwy IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfaVNfKDwyIHggaTMy PiwgPDIgeCBpMzI+KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIyX2lTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1 IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDIg eCBpMzI+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLUBAIC0x OTMyLDcgKzE5MzIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBfWk43ZGV0YWlsczEz X19pbXBsX2RpdnJlbUlMaTJFRUV1MkNNdmJUX19pUzFfUzFfdTJDTQotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9pU18oPDQgeCBpMzI+LCA8NCB4 IGkzMj4pICMxNiB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc2RpdnUyQ012YjRfaVNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotICAg JTMgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDQgeCBpMzI+ LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotQEAgLTI0OTAs NyArMjQ5MCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYgeCBpMzI+IEBfWk43ZGV0YWlsczEzX19p bXBsX2RpdnJlbUlMaTE2RUVFdTJDTXZiVF9faVMxX1MxX3UyCi0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMzJfaVNfKDwzMiB4IGkzMj4sIDwzMiB4 IGkzMj4pICMxOSB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9pU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsK LSAgICUzID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTQgPSBhbGxvY2EgPDMy IHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgK LUBAIC0yNjc2LDcgKzI2NzYsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMyPiBAX1pON2Rl dGFpbHMxM19faW1wbF9kaXZyZW1JTGkzMkVFRXUyQ012YlRfX2lTMV9TMV91MgotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgaTMy IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtaWkoaTMyLCBpMzIpICMxNCB7Ci0rZGVmaW5l IGludGVybmFsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbWlpKGkzMiwgaTMyKSAj MTQgewotICAgJTMgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSBpMzIsIGFs aWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTI3MDIsNyArMjcw Miw3IEBAIGRlZmluZSBkc29fbG9jYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVt aWkoaTMyLCBpMzIpICMxNCB7Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLStkZWZpbmUg aW50ZXJuYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9p U18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkzMj4s IGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTUgPSBhbGxv Y2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtMjcxNiw3ICsyNzE2LDcgQEAgZGVmaW5lIGRzb19s b2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2lTXyg8 MSB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQK LS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXUyQ012YjJfaVNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotK2RlZmluZSBpbnRlcm5h bCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX2lTXyg8MiB4 IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24g OAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8MiB4 IGkzMj4sIGFsaWduIDgKLUBAIC0yNzMwLDcgKzI3MzAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwy IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfaVNfKDwyIHggaTMy PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZi NF9pU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfaVNfKDw0IHggaTMyPiwg PDQgeCBpMzI+KSAjMTYgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAg JTQgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDQgeCBpMzI+ LCBhbGlnbiAxNgotQEAgLTI3NDQsNyArMjc0NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBp MzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9pU18oPDQgeCBpMzI+LCA8 Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2lT Xyg8OCB4IGkzMj4sIDw4IHggaTMyPikgIzE3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDggeCBpMzI+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9pU18oPDggeCBpMzI+LCA8OCB4 IGkzMj4pICMxNyB7Ci0gICAlMyA9IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi0gICAlNCA9 IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8OCB4IGkzMj4sIGFs aWduIDMyCi1AQCAtMjc1OCw3ICsyNzU4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkzMj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2lTXyg8OCB4IGkzMj4sIDwKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9pU18o PDE2IHggaTMyPiwgPDE2IHggaTMyPikgIzE4IHsKLStkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTMy PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X2lTXyg8MTYgeCBpMzI+LCA8 MTYgeCBpMzI+KSAjMTggewotICAgJTMgPSBhbGxvY2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLSAg ICU0ID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MTYgeCBp MzI+LCBhbGlnbiA2NAotQEAgLTI3NzIsNyArMjc3Miw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDE2 IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X2lTXyg8MTYgeCBp MzI+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZi MzJfaVNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0rZGVmaW5lIGludGVybmFsIDwz MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9pU18oPDMyIHgg aTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWdu IDEyOAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNSA9IGFsbG9j YSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLUBAIC0yNzg2LDcgKzI3ODYsNyBAQCBkZWZpbmUgZHNv X2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9p U18oPDMyIHggaTMyPgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dWRpdmhoKGk4IHplcm9leHQsIGk4IHplcm9leHQpICMyMSB7Ci0rZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZoaChpOCB6ZXJvZXh0LCBpOCB6 ZXJvZXh0KSAjMjEgewotICAgJTMgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU0ID0gYWxsb2Nh IGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTI4NDQs NyArMjg0NCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1pON2RldGFpbHMxNF9faW1w bF91ZGl2cmVtSUxpMUVFRXUyQ012YlRfX2hTMV9TMV91MkNNCi0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfaFNfKDwxIHggaTg+LCA8MSB4IGk4Pikg IzIxIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3VkaXZ1MkNNdmIxX2hTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMyMSB7Ci0gICAlMyA9IGFsbG9j YSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAg ICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtMjg2MCw3ICsyODYwLDcgQEAgZGVm aW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012 YjFfaFNfKDwxIHggaTg+LCA8MQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBu b3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VkaXZ1MkNNdmIyX2hTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMyMiB7Ci0rZGVmaW5lIGlu dGVybmFsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMl9oU18o PDIgeCBpOD4sIDwyIHggaTg+KSAjMjIgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWdu IDIKLSAgICU0ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MiB4 IGk4PiwgYWxpZ24gMgotQEAgLTI5MDYsNyArMjkwNiw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4 IGk4PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMkVFRXUyQ012YlRfX2hTMV9TMV91 MkNNCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjRf aFNfKDw0IHggaTg+LCA8NCB4IGk4PikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpOD4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0X2hTXyg8NCB4IGk4PiwgPDQgeCBp OD4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTQgPSBhbGxv Y2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci1A QCAtMzA0NCw3ICszMDQ0LDcgQEAgZGVmaW5lIGludGVybmFsIDwxNiB4IGk4PiBAX1pON2RldGFp bHMxNF9faW1wbF91ZGl2cmVtSUxpMTZFRUV1MkNNdmJUX19oUzFfUzFfdTIKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4 IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjMyX2hTXyg8MzIgeCBpOD4s IDwzMiB4IGk4PikgIzE3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTg+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJfaFNfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTcg ewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDMy IHggaTg+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotQEAg LTMwOTAsNyArMzA5MCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpOD4gQF9aTjdkZXRhaWxz MTRfX2ltcGxfdWRpdnJlbUlMaTMyRUVFdTJDTXZiVF9faFMxX1MxX3UyCi0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0 IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtaGgoaTggemVyb2V4dCwgaTggemVyb2V4 dCkgIzIxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpOCBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdXJlbWhoKGk4IHplcm9leHQsIGk4IHplcm9leHQpICMyMSB7Ci0gICAlMyA9IGFsbG9j YSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2Nh IDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtMzExNiw3ICszMTE2LDcgQEAgZGVmaW5lIGRzb19sb2Nh bCB6ZXJvZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtaGgoaTggemVyb2V4dCwg aTggemVyb2UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJD TXZiMV9oU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMjEgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4 IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfaFNfKDwxIHggaTg+LCA8 MSB4IGk4PikgIzIxIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNCA9 IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWdu IDEKLUBAIC0zMTMwLDcgKzMxMzAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9oU18oPDEgeCBpOD4sIDwxCi0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8 MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfaFNfKDwyIHggaTg+ LCA8MiB4IGk4PikgIzIyIHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2hTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMyMiB7Ci0g ICAlMyA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgPDIgeCBpOD4s IGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi1AQCAtMzE0NCw3ICsz MTQ0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjJfaFNfKDwyIHggaTg+LCA8MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2hTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICMxNCB7 Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt dTJDTXZiNF9oU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDQg eCBpOD4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNSA9 IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotQEAgLTMxNTgsNyArMzE1OCw3IEBAIGRlZmluZSBk c29fbG9jYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2hT Xyg8NCB4IGk4PiwgPDQKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 cmVtdTJDTXZiOF9oU18oPDggeCBpOD4sIDw4IHggaTg+KSAjMTUgewotK2RlZmluZSBpbnRlcm5h bCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfaFNfKDw4IHgg aTg+LCA8OCB4IGk4PikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci0g ICAlNCA9IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDggeCBpOD4s IGFsaWduIDgKLUBAIC0zMTcyLDcgKzMxNzIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw4IHggaTg+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF9oU18oPDggeCBpOD4sIDw4Ci0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl9oU18o PDE2IHggaTg+LCA8MTYgeCBpOD4pICMxNiB7Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGk4PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X2hTXyg8MTYgeCBpOD4sIDwxNiB4 IGk4PikgIzE2IHsKLSAgICUzID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYKLSAgICU0ID0g YWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxp Z24gMTYKLUBAIC0zMTg2LDcgKzMxODYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGk4PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X2hTXyg8MTYgeCBpOD4sCi0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2Nh bCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl9oU18oPDMy IHggaTg+LCA8MzIgeCBpOD4pICMxNyB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGk4PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2hTXyg8MzIgeCBpOD4sIDwzMiB4IGk4 PikgIzE3IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxs b2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24g MzIKLUBAIC0zMjAwLDcgKzMyMDAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2hTXyg8MzIgeCBpOD4sCi0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCB6 ZXJvZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnR0KGkxNiB6ZXJvZXh0LCBp MTYgemVyb2V4dCkgIzIyIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMTYgQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VkaXZ0dChpMTYgemVyb2V4dCwgaTE2IHplcm9leHQpICMyMiB7Ci0g ICAlMyA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIGkxNiwgYWxpZ24gMgot ICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMzI3OCw3ICszMjc4LDcgQEAg ZGVmaW5lIGludGVybmFsIDwxIHggaTE2PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxp MUVFRXUyQ012YlRfX3RTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdWRpdnUyQ012YjFfdFNfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMjIgewotK2Rl ZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNN dmIxX3RTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzIyIHsKLSAgICUzID0gYWxsb2NhIDwxIHgg aTE2PiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNSA9 IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0zMjk0LDcgKzMyOTQsNyBAQCBkZWZpbmUg ZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFf dFNfKDwxIHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vu d2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF91ZGl2dTJDTXZiMl90U18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICMxNCB7Ci0rZGVmaW5lIGlu dGVybmFsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjJfdFNf KDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMTY+LCBh bGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2Nh IDwyIHggaTE2PiwgYWxpZ24gNAotQEAgLTMzNjAsNyArMzM2MCw3IEBAIGRlZmluZSBpbnRlcm5h bCA8MiB4IGkxNj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTJFRUV1MkNNdmJUX190 UzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0t ZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1 MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwg PDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiNF90U18oPDQgeCBp MTY+LCA8NCB4IGkxNj4pICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgK LSAgICU0ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDQgeCBp MTY+LCBhbGlnbiA4Ci1AQCAtMzU1OCw3ICszNTU4LDcgQEAgZGVmaW5lIGludGVybmFsIDwxNiB4 IGkxNj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTE2RUVFdTJDTXZiVF9fdFMxX1Mx X3UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUg ZHNvX2xvY2FsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIz Ml90U18oPDMyIHggaTE2PiwgPDMyIHggaTE2PikgIzE4IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMy IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjMyX3RTXyg8MzIgeCBp MTY+LCA8MzIgeCBpMTY+KSAjMTggewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24g NjQKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8 MzIgeCBpMTY+LCBhbGlnbiA2NAotQEAgLTM2MjQsNyArMzYyNCw3IEBAIGRlZmluZSBpbnRlcm5h bCA8MzIgeCBpMTY+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkzMkVFRXUyQ012YlRf X3RTMV9TMV91Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0t ZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJl bXR0KGkxNiB6ZXJvZXh0LCBpMTYgemVyb2V4dCkgIzIyIHsKLStkZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW10dChpMTYgemVyb2V4dCwgaTE2 IHplcm9leHQpICMyMiB7Ci0gICAlMyA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU0ID0gYWxs b2NhIGkxNiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAt MzY1MCw3ICszNjUwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGkxNiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdXJlbXR0KGkxNiB6ZXJvZXh0LCBpMTYgemUKLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfdFNfKDwxIHggaTE2PiwgPDEg eCBpMTY+KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmIxX3RTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzIyIHsKLSAg ICUzID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgPDEgeCBpMTY+ LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0zNjY0LDcg KzM2NjQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdXJlbXUyQ012YjFfdFNfKDwxIHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl90U18oPDIgeCBpMTY+LCA8MiB4IGkxNj4p ICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjJfdFNfKDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjMTQgewotICAgJTMgPSBh bGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWdu IDQKLSAgICU1ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotQEAgLTM2NzgsNyArMzY3OCw3 IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 cmVtdTJDTXZiMl90U18oPDIgeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzE1IHsK LStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt dTJDTXZiNF90U18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8 NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAg JTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci1AQCAtMzY5Miw3ICszNjkyLDcgQEAgZGVm aW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNN dmI0X3RTXyg8NCB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTE2PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdXJlbXUyQ012YjhfdFNfKDw4IHggaTE2PiwgPDggeCBpMTY+KSAjMTYgewotK2RlZmlu ZSBpbnRlcm5hbCA8OCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4 X3RTXyg8OCB4IGkxNj4sIDw4IHggaTE2PikgIzE2IHsKLSAgICUzID0gYWxsb2NhIDw4IHggaTE2 PiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYKLSAgICU1ID0g YWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYKLUBAIC0zNzA2LDcgKzM3MDYsNyBAQCBkZWZpbmUg ZHNvX2xvY2FsIDw4IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012Yjhf dFNfKDw4IHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vu d2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjE2X3RTXyg8MTYgeCBpMTY+LCA8MTYgeCBpMTY+KSAjMTcgewotK2RlZmlu ZSBpbnRlcm5hbCA8MTYgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZi MTZfdFNfKDwxNiB4IGkxNj4sIDwxNiB4IGkxNj4pICMxNyB7Ci0gICAlMyA9IGFsbG9jYSA8MTYg eCBpMTY+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDE2IHggaTE2PiwgYWxpZ24gMzIKLSAg ICU1ID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFsaWduIDMyCi1AQCAtMzcyMCw3ICszNzIwLDcgQEAg ZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt dTJDTXZiMTZfdFNfKDwxNiB4IGkxNj4KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmIzMl90U18oPDMyIHggaTE2PiwgPDMyIHggaTE2PikgIzE4IHsK LStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJl bXUyQ012YjMyX3RTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTggewotICAgJTMgPSBhbGxv Y2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWdu IDY0Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotQEAgLTM3MzQsNyArMzcz NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjMyX3RTXyg8MzIgeCBpMTY+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VkaXZqaihpMzIsIGkzMikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgaTMyIEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2amooaTMyLCBpMzIpICMxNCB7Ci0gICAlMyA9IGFs bG9jYSBpMzIsIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTUgPSBh bGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtMzg5Miw3ICszODkyLDcgQEAgZGVmaW5lIGlu dGVybmFsIDwxIHggaTMyPiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMUVFRXUyQ012 YlRfX2pTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dWRpdnUyQ012YjFfalNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotK2RlZmluZSBpbnRl cm5hbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX2pTXyg8 MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTMyPiwgYWxp Z24gNAotICAgJTQgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8 MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0zOTA4LDcgKzM5MDgsNyBAQCBkZWZpbmUgZHNvX2xvY2Fs IDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfalNfKDwxIHgg aTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJD TXZiMl9qU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDwy IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjJfalNfKDwyIHggaTMy PiwgPDIgeCBpMzI+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0g ICAlNCA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDwyIHggaTMy PiwgYWxpZ24gOAotQEAgLTQwNTQsNyArNDA1NCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGkz Mj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTJFRUV1MkNNdmJUX19qUzFfUzFfdTJD Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0X2pT Xyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMzI+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiNF9qU18oPDQgeCBpMzI+LCA8NCB4 IGkzMj4pICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNCA9 IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkzMj4sIGFs aWduIDE2Ci1AQCAtNDQ5Miw3ICs0NDkyLDcgQEAgZGVmaW5lIGludGVybmFsIDwxNiB4IGkzMj4g QF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTE2RUVFdTJDTXZiVF9falMxX1MxX3UKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIzMl9qU18o PDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMy PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjMyX2pTXyg8MzIgeCBpMzI+LCA8 MzIgeCBpMzI+KSAjMTkgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0g ICAlNCA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU1ID0gYWxsb2NhIDwzMiB4 IGkzMj4sIGFsaWduIDEyOAotQEAgLTQ2MzgsNyArNDYzOCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8 MzIgeCBpMzI+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkzMkVFRXUyQ012YlRfX2pT MV9TMV91Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW1qaihpMzIsIGkz MikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 cmVtamooaTMyLCBpMzIpICMxNCB7Ci0gICAlMyA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU0 ID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0 Ci1AQCAtNDY2NCw3ICs0NjY0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW1qaihpMzIsIGkzMikgIzE0IHsKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfalNfKDwxIHggaTMyPiwgPDEgeCBpMzI+ KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLSAgICUzID0g YWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGln biA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC00Njc4LDcgKzQ2Nzgs NyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbXUyQ012YjFfalNfKDwxIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9qU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7 Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJl bXUyQ012YjJfalNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotICAgJTMgPSBhbGxvY2Eg PDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAg ICU1ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotQEAgLTQ2OTIsNyArNDY5Miw3IEBAIGRl ZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJD TXZiMl9qU18oPDIgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmI0X2pTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLStkZWZp bmUgaW50ZXJuYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZi NF9qU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkz Mj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNSA9 IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci1AQCAtNDcwNiw3ICs0NzA2LDcgQEAgZGVmaW5l IGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0 X2pTXyg8NCB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjhfalNfKDw4IHggaTMyPiwgPDggeCBpMzI+KSAjMTcgewotK2RlZmluZSBp bnRlcm5hbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2pT Xyg8OCB4IGkzMj4sIDw4IHggaTMyPikgIzE3IHsKLSAgICUzID0gYWxsb2NhIDw4IHggaTMyPiwg YWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLSAgICU1ID0gYWxs b2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLUBAIC00NzIwLDcgKzQ3MjAsNyBAQCBkZWZpbmUgZHNv X2xvY2FsIDw4IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfalNf KDw4IHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbXUyQ012YjE2X2pTXyg8MTYgeCBpMzI+LCA8MTYgeCBpMzI+KSAjMTggewotK2RlZmluZSBp bnRlcm5hbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZf alNfKDwxNiB4IGkzMj4sIDwxNiB4IGkzMj4pICMxOCB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBp MzI+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLSAgICU1 ID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci1AQCAtNDczNCw3ICs0NzM0LDcgQEAgZGVm aW5lIGRzb19sb2NhbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJD TXZiMTZfalNfKDwxNiB4IGkzMj4KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmIzMl9qU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLStk ZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUy Q012YjMyX2pTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotICAgJTMgPSBhbGxvY2Eg PDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAx MjgKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotQEAgLTQ3NDgsNyArNDc0 OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjMyX2pTXyg8MzIgeCBpMzI+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCB2b2lkIEBfX2RvX3ByaW50X2Nt KGk4KiwgaTgqLCBpMzIsIGk2NCwgaTMyKiwgaTMyLCBpMzIpICMyMyAhZGJnICExNSB7Ci0rZGVm aW5lIGludGVybmFsIHZvaWQgQF9fZG9fcHJpbnRfY20oaTgqLCBpOCosIGkzMiwgaTY0LCBpMzIq LCBpMzIsIGkzMikgIzIzICFkYmcgITE1IHsKLSAgICU4ID0gYWxsb2NhIGk4KiwgYWxpZ24gNAot ICAgJTkgPSBhbGxvY2EgaTgqLCBhbGlnbiA0Ci0gICAlMTAgPSBhbGxvY2EgaTMyLCBhbGlnbiA0 Ci1AQCAtNDk4OCw3ICs0OTg4LDcgQEAgZGVmaW5lIGludGVybmFsIHZvaWQgQF9aTjdkZXRhaWxz MTZfY21fcHJpbnRfZm9ybWF0SUxpMTI4RUVFdjE1Y21fc3VyZmFjZWluZGV4anUKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHZv aWQgQF9fZG9fcHJpbnRfbHooaTMyLCBpOCosIGkzMiwgaTY0LCBpMzIqLCBpMzIsIGkzMiwgaTMy LCBpMzIpICMyNiAhZGJnICExMTcgewotK2RlZmluZSBpbnRlcm5hbCB2b2lkIEBfX2RvX3ByaW50 X2x6KGkzMiwgaTgqLCBpMzIsIGk2NCwgaTMyKiwgaTMyLCBpMzIsIGkzMiwgaTMyKSAjMjYgIWRi ZyAhMTE3IHsKLSAgICUxMCA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICUxMSA9IGFsbG9jYSBp OCosIGFsaWduIDQKLSAgICUxMiA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLUBAIC01MDY5LDcgKzUw NjksNyBAQCBkZWZpbmUgZHNvX2xvY2FsIHZvaWQgQF9fZG9fcHJpbnRfbHooaTMyLCBpOCosIGkz MiwgaTY0LCBpMzIqLCBpMzIsIGkzMiwgaTMyLCBpMwotICAgJTY3ID0gbG9hZCBpNjQsIGk2NCog JTEzLCBhbGlnbiA4LCAhZGJnICExNTksICF0YmFhICExOQotICAgJTY4ID0gbG9hZCA8NSB4IGkz Mj4sIDw1IHggaTMyPiogJTIxLCBhbGlnbiAzMiwgIWRiZyAhMTYwLCAhdGJhYSAhNwotICAgY2Fs bCB2b2lkIEBfWk4xM1ZhcnlpbmdXcml0ZXJDMkVSalJQS2ppeXUyQ012YjVfaSglY2xhc3MuVmFy eWluZ1dyaXRlciogJTIzLCBpMzIqIGRlcmVmZXJlbmNlYWJsZSg0KSAlMTksIGkzMioqIGRlcmVm ZXJlbmNlYWJsZSg0KSAlMTQsIGkzMiAlNjYsIGk2NCAlNjcsIDw1IHggaTMyPiAlNjgpLCAhZGJn ICExNjEKLS0gICU2OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzE0c3dpdGNoRW5j b2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfVDBf KGk4IHNpZ25leHQgJTYyLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTIy LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTIzKSwgIWRiZyAhMTYyCi0r ICAlNjkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEz VW5pZm9ybVdyaXRlcjEzVmFyeWluZ1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWdu ZXh0ICU2MiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVy KSBhbGlnbiAzMiAlMjIsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWlu Z1dyaXRlcikgYWxpZ24gMzIgJTIzKSwgIWRiZyAhMTYyCi0gICBiciBsYWJlbCAlNzAsICFkYmcg ITE2MwotIAotIDsgPGxhYmVsPjo3MDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOyBwcmVkcyA9ICU2MAotQEAgLTUxODcsNyArNTE4Nyw3IEBAIGRlZmluZSBpbnRlcm5hbCA8 NSB4IGkzMj4gQF9aMTdnZXRfYXV4aWxpYXJ5X3N0cnYoKSAjMjggY29tZGF0ICFkYmcgITE3OCB7 Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53 aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVu Y29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFyeWluZ1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUX1Qw XyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICVjbGFz cy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMikgIzI1IGNvbWRhdCAhZGJnICExOTEgewot K2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGlu Z0kxM1VuaWZvcm1Xcml0ZXIxM1ZhcnlpbmdXcml0ZXJFRWJOU184RW5jb2RpbmdFVF9UMF8oaTgg c2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVy KSBhbGlnbiAzMiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3Jp dGVyKSBhbGlnbiAzMikgIzI1IGNvbWRhdCAhZGJnICExOTEgewotICAgJTQgPSBhbGxvY2EgaTgs IGFsaWduIDEKLSAgICU1ID0gYWxsb2NhICVjbGFzcy5Vbmlmb3JtV3JpdGVyLCBhbGlnbiAzMgot ICAgJTYgPSBhbGxvY2EgJWNsYXNzLlZhcnlpbmdXcml0ZXIsIGFsaWduIDMyCi1AQCAtNTE5Niw3 ICs1MTk2LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3 aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFyeWkKLSAgICU4ID0gYml0Y2FzdCAlY2xh c3MuVW5pZm9ybVdyaXRlciogJTUgdG8gaTgqLCAhZGJnICExOTYKLSAgICU5ID0gYml0Y2FzdCAl Y2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExOTYKLSAgIGNhbGwgdm9pZCBA bGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTgsIGk4KiBhbGlnbiAzMiAl OSwgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITE5NiwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUx MCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9y bUkxM1VuaWZvcm1Xcml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCAlNywgJWNsYXNz LlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU1KSwgIWRiZyAhMTk4Ci0rICAlMTAgPSBj YWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNV bmlmb3JtV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQgJTcsICVjbGFzcy5Vbmlm b3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTUpLCAhZGJn ICExOTgKLSAgIGJyIGkxICUxMCwgbGFiZWwgJTE2LCBsYWJlbCAlMTEsICFkYmcgITE5OQotIAot IDsgPGxhYmVsPjoxMTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVk cyA9ICUzCi1AQCAtNTIwNCw3ICs1MjA0LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFyeWkKLSAg ICUxMyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICU2IHRvIGk4KiwgIWRiZyAhMjAx Ci0gICAlMTQgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMiB0byBpOCosICFkYmcg ITIwMQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAz MiAlMTMsIGk4KiBhbGlnbiAzMiAlMTQsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDEsICF0 YmFhLnN0cnVjdCAhMTk3Ci0tICAlMTUgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8y MnN3aXRjaEVuY29kaW5nNFZhcnlpbmdJMTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRf KGk4IHNpZ25leHQgJTEyLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTYp LCAhZGJnICEyMDIKLSsgICUxNSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dp dGNoRW5jb2Rpbmc0VmFyeWluZ0kxM1ZhcnlpbmdXcml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTgg c2lnbmV4dCAlMTIsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dy aXRlcikgYWxpZ24gMzIgJTYpLCAhZGJnICEyMDIKLSAgIGJyIGxhYmVsICUxNiwgIWRiZyAhMTk5 Ci0gCi0gOyA8bGFiZWw+OjE2OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7 IHByZWRzID0gJTExLCAlMwotQEAgLTUyNzksNyArNTI3OSw3IEBAIGRlZmluZSBpbnRlcm5hbCB2 b2lkIEBfWk4xM1ZhcnlpbmdXcml0ZXJDMkVSalJQS2ppeXUyQ012YjVfaSglY2xhc3MuVmFyeWlu Z1dyaXRlCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCBpMzIgQF9fbnVtX2NvcmVzKCkgIzI5ICFkYmcgITIzNiB7Ci0rZGVmaW5l IGludGVybmFsIGkzMiBAX19udW1fY29yZXMoKSAjMjkgIWRiZyAhMjM2IHsKLSAgIHJldCBpMzIg LTEsICFkYmcgITIzNwotIH0KLSAKLUBAIC04ODYwLDcgKzg4NjAsNyBAQCBkZWNsYXJlIGRzb19s b2NhbCB2b2lkIEBfWk43ZGV0YWlsczM3X19jbV9pbnRyaW5zaWNfaW1wbF9zdm1fc2NhdHRlcl93 cml0ZUlpTGkxRQotIGRlY2xhcmUgdm9pZCBAbGx2bS5nZW54LnN2bS5zY2F0dGVyLnYxaTEudjFp NjQudjFpMzIoPDEgeCBpMT4sIGkzMiwgPDEgeCBpNjQ+LCA8MSB4IGkzMj4pICMyNwotIAotIDsg RnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5l IGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZv cm1JMTNVbmlmb3JtV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQsICVjbGFzcy5V bmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMikgIzI1IGNvbWRhdCAhZGJnICExNjQ1IHsKLStk ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0 VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCwgJWNs YXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMikg IzI1IGNvbWRhdCAhZGJnICExNjQ1IHsKLSAgICUzID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAl NCA9IGFsbG9jYSAlY2xhc3MuVW5pZm9ybVdyaXRlciwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2Nh ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIsIGFsaWduIDEKLUBAIC04ODY5 LDcgKzg4NjksNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIy c3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZQotICAgJTcgPSBiaXRjYXN0ICVj bGFzcy5Vbmlmb3JtV3JpdGVyKiAlNCB0byBpOCosICFkYmcgITE2NDcKLSAgICU4ID0gYml0Y2Fz dCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjQ3Ci0gICBjYWxsIHZv aWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICU3LCBpOCogYWxpZ24g MzIgJTgsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjQ3LCAhdGJhYS5zdHJ1Y3QgITE5Nwot LSAgJTkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNv ZGluZ0kxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5n RVRfVDBfKGk4IHNpZ25leHQgJTYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAz MiAlNCwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24g MSAlNSksICFkYmcgITE2NDgKLSsgICU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlm b3JtRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2LCAlY2xhc3MuVW5pZm9ybVdy aXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICU0LCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICU1KSwgIWRiZyAhMTY0OAotICAgcmV0IGkxICU5LCAh ZGJnICExNjQ5Ci0gfQotIAotQEAgLTg4NzcsNyArODg3Nyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9y bVdyaXRlCi0gZGVjbGFyZSB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBub2Nh cHR1cmUgd3JpdGVvbmx5LCBpOCogbm9jYXB0dXJlIHJlYWRvbmx5LCBpMzIsIGkxKSAjMzIKLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRW YXJ5aW5nSTEzVmFyeWluZ1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0LCAlY2xh c3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAhMTY1MCB7 Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29k aW5nNFZhcnlpbmdJMTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQs ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24g MzIpICMyNSBjb21kYXQgIWRiZyAhMTY1MCB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQot ICAgJTQgPSBhbGxvY2EgJWNsYXNzLlZhcnlpbmdXcml0ZXIsIGFsaWduIDMyCi0gICAlNSA9IGFs bG9jYSAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciLCBhbGlnbiAxCi1AQCAt ODg4NiwxMiArODg4NiwxMiBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kxM1ZhcnlpbmdXcml0ZQotICAgJTcgPSBiaXRj YXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlNCB0byBpOCosICFkYmcgITE2NTIKLSAgICU4ID0g Yml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjUyCi0gICBj YWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICU3LCBpOCog YWxpZ24gMzIgJTgsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjUyLCAhdGJhYS5zdHJ1Y3Qg ITE5NwotLSAgJTkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0 Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVu Y29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBh bGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwg YWxpZ24gMSAlNSksICFkYmcgITE2NTMKLSsgICU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGlu ZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2LCAlY2xhc3MuVmFy eWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICU0LCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICU1KSwgIWRiZyAhMTY1MwotICAgcmV0IGkx ICU5LCAhZGJnICExNjU0Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBp bmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5n NFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3Jt V3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlm b3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNjU1IHsKLStkZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEz VW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVF9UMF8o aTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3Jp dGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2 YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNv bWRhdCAhZGJnICExNjU1IHsKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFs bG9jYSAlY2xhc3MuVW5pZm9ybVdyaXRlciwgYWxpZ24gMzIKLSAgICU2ID0gYWxsb2NhICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIsIGFsaWduIDEKLUBAIC04OTE0LDcgKzg5 MTQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwx NHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTIyID0gYml0Y2FzdCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogJTUgdG8gaTgqLCAhZGJnICExNjU3Ci0gICAlMjMgPSBiaXRjYXN0ICVj bGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NTcKLSAgIGNhbGwgdm9pZCBA bGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTIyLCBpOCogYWxpZ24gMzIg JTIzLCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY1NywgIXRiYWEuc3RydWN0ICExOTcKLS0g ICUyNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0liMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZh bCBhbGlnbiAzMiAlNSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2 YWwgYWxpZ24gMSAlNiksICFkYmcgITE2NTgKLSsgICUyNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmb3JtV3JpdGVy TlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAl MjEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxp Z24gMzIgJTUsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTYpLCAhZGJnICEx NjU4Ci0gICBiciBpMSAlMjQsIGxhYmVsICU2MCwgbGFiZWwgJTI1LCAhZGJnICExNjU5Ci0gCi0g OyA8bGFiZWw+OjI1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRz ID0gJTMKLUBAIC04OTIyLDcgKzg5MjIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAg JTI3ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTcgdG8gaTgqLCAhZGJnICExNjYx Ci0gICAlMjggPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcg ITE2NjEKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24g MzIgJTI3LCBpOCogYWxpZ24gMzIgJTI4LCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY2MSwg IXRiYWEuc3RydWN0ICExOTcKLS0gICUyOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNv ZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjYsICVjbGFz cy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlOCksICFkYmcgITE2NjIKLSsgICUyOSA9 IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNv ZGluZ0lpMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGlu Z0VUMF9UMV8oaTggc2lnbmV4dCAlMjYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xh c3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIp IGFsaWduIDEgJTgpLCAhZGJnICExNjYyCi0gICBiciBpMSAlMjksIGxhYmVsICU2MCwgbGFiZWwg JTMwLCAhZGJnICExNjYzCi0gCi0gOyA8bGFiZWw+OjMwOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA7IHByZWRzID0gJTI1Ci1AQCAtODkzMCw3ICs4OTMwLDcgQEAgZGVmaW5l IGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGlu Z0kxM1VuaWZvcm1Xcml0ZXIKLSAgICUzMiA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq ICU5IHRvIGk4KiwgIWRiZyAhMTY2NQotICAgJTMzID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdy aXRlciogJTEgdG8gaTgqLCAhZGJnICExNjY1Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAw aTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICUzMiwgaTgqIGFsaWduIDMyICUzMywgaTMyIDY0LCBp MSBmYWxzZSksICFkYmcgITE2NjUsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMzQgPSBjYWxsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEz VW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQgJTMxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTks ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTEw KSwgIWRiZyAhMTY2NgotKyAgJTM0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5n NFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzMSwgJWNsYXNzLlVu aWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlOSwgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMTApLCAhZGJnICExNjY2Ci0gICBiciBp MSAlMzQsIGxhYmVsICU2MCwgbGFiZWwgJTM1LCAhZGJnICExNjY3Ci0gCi0gOyA8bGFiZWw+OjM1 OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTMwCi1AQCAt ODkzOCw3ICs4OTM4LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICUzNyA9IGJpdGNh c3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxMSB0byBpOCosICFkYmcgITE2NjkKLSAgICUzOCA9 IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY2OQotICAg Y2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlMzcsIGk4 KiBhbGlnbiAzMiAlMzgsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjY5LCAhdGJhYS5zdHJ1 Y3QgITE5NwotLSAgJTM5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZv cm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzNiwgJWNsYXNzLlVuaWZvcm1X cml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxMSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRV bmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMTIpLCAhZGJnICExNjcwCi0rICAlMzkgPSBjYWxsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEz VW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQgJTM2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZv cm1Xcml0ZXIpIGFsaWduIDMyICUxMSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlm b3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24g MSAlMTIpLCAhZGJnICExNjcwCi0gICBiciBpMSAlMzksIGxhYmVsICU2MCwgbGFiZWwgJTQwLCAh ZGJnICExNjcxCi0gCi0gOyA8bGFiZWw+OjQwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA7IHByZWRzID0gJTM1Ci1AQCAtODk0Niw3ICs4OTQ2LDcgQEAgZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1Vu aWZvcm1Xcml0ZXIKLSAgICU0MiA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxMyB0 byBpOCosICFkYmcgITE2NzMKLSAgICU0MyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq ICUxIHRvIGk4KiwgIWRiZyAhMTY3MwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAw aTguaTMyKGk4KiBhbGlnbiAzMiAlNDIsIGk4KiBhbGlnbiAzMiAlNDMsIGkzMiA2NCwgaTEgZmFs c2UpLCAhZGJnICExNjczLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTQ0ID0gY2FsbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1VuaWZv cm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBz aWduZXh0ICU0MSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxMywgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMTQpLCAh ZGJnICExNjc0Ci0rICAlNDQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5p Zm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQxLCAlY2xhc3MuVW5pZm9y bVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxMywgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMTQpLCAhZGJnICExNjc0Ci0gICBiciBpMSAl NDQsIGxhYmVsICU2MCwgbGFiZWwgJTQ1LCAhZGJnICExNjc1Ci0gCi0gOyA8bGFiZWw+OjQ1OiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTQwCi1AQCAtODk1 NCw3ICs4OTU0LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICU0NyA9IGJpdGNhc3Qg JWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxNSB0byBpOCosICFkYmcgITE2NzcKLSAgICU0OCA9IGJp dGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY3NwotICAgY2Fs bCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlNDcsIGk4KiBh bGlnbiAzMiAlNDgsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjc3LCAhdGJhYS5zdHJ1Y3Qg ITE5NwotLSAgJTQ5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSXkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1F RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0NiwgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqIGJ5dmFsIGFsaWduIDMyICUxNSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlm b3JtIiogYnl2YWwgYWxpZ24gMSAlMTYpLCAhZGJnICExNjc4Ci0rICAlNDkgPSBjYWxsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5p Zm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQgJTQ2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1X cml0ZXIpIGFsaWduIDMyICUxNSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3Jt IiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAl MTYpLCAhZGJnICExNjc4Ci0gICBiciBpMSAlNDksIGxhYmVsICU2MCwgbGFiZWwgJTUwLCAhZGJn ICExNjc5Ci0gCi0gOyA8bGFiZWw+OjUwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA7IHByZWRzID0gJTQ1Ci1AQCAtODk2Miw3ICs4OTYyLDcgQEAgZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZv cm1Xcml0ZXIKLSAgICU1MiA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxNyB0byBp OCosICFkYmcgITE2ODEKLSAgICU1MyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUx IHRvIGk4KiwgIWRiZyAhMTY4MQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTgu aTMyKGk4KiBhbGlnbiAzMiAlNTIsIGk4KiBhbGlnbiAzMiAlNTMsIGkzMiA2NCwgaTEgZmFsc2Up LCAhZGJnICExNjgxLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTU0ID0gY2FsbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1VuaWZvcm1X cml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0ICU1MSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxNywgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMTgpLCAhZGJn ICExNjgyCi0rICAlNTQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9y bUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTUxLCAlY2xhc3MuVW5pZm9ybVdy aXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxNywgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMTgpLCAhZGJnICExNjgyCi0gICBiciBpMSAlNTQs IGxhYmVsICU2MCwgbGFiZWwgJTU1LCAhZGJnICExNjgzCi0gCi0gOyA8bGFiZWw+OjU1OiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTUwCi1AQCAtODk3MCw3 ICs4OTcwLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICU1NyA9IGJpdGNhc3QgJWNs YXNzLlVuaWZvcm1Xcml0ZXIqICUxOSB0byBpOCosICFkYmcgITE2ODUKLSAgICU1OCA9IGJpdGNh c3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY4NQotICAgY2FsbCB2 b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlNTcsIGk4KiBhbGln biAzMiAlNTgsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjg1LCAhdGJhYS5zdHJ1Y3QgITE5 NwotLSAgJTU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSVB2MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVF Yk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTYsICVjbGFzcy5Vbmlmb3JtV3JpdGVy KiBieXZhbCBhbGlnbiAzMiAlMTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9y bSIqIGJ5dmFsIGFsaWduIDEgJTIwKSwgIWRiZyAhMTY4NgotKyAgJTU5ID0gY2FsbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNVbmlm b3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTgg c2lnbmV4dCAlNTYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdy aXRlcikgYWxpZ24gMzIgJTE5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0i KiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICUy MCksICFkYmcgITE2ODYKLSAgIGJyIGxhYmVsICU2MCwgIWRiZyAhMTY4MwotIAotIDsgPGxhYmVs Pjo2MDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU1NSwg JTUwLCAlNDUsICU0MCwgJTM1LCAlMzAsICUyNSwgJTMKLUBAIC04OTc5LDcgKzg5NzksNyBAQCBk ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVu Y29kaW5nSTEzVW5pZm9ybVdyaXRlcgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNp bmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1VuaWZvcm1Xcml0 ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0 LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTY4 OCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9y bUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVy KiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTY4OCB7Ci0gICAlNCA9IGFsbG9j YSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUw LCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MDA1LDcgKzkwMDUsNyBAQCBkZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0liMTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxp bmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1VuaWZvcm1Xcml0ZXJO U18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAl Y2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTY5NyB7 Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBs eUlmUHJvcGVyRW5jb2RpbmdJaTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVF RWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBi eXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5p Zm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTY5NyB7Ci0gICAlNCA9IGFsbG9jYSBp MSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBp OCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MDMxLDcgKzkwMzEsNyBAQCBkZWZpbmUg aW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJF bmNvZGluZ0lpMTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUg aW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1VuaWZvcm1Xcml0ZXJOU18x NkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xh c3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTcwNiB7Ci0r ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJajEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJO U184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZh bCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9y bSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTcwNiB7Ci0gICAlNCA9IGFsbG9jYSBpMSwg YWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCog JTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MDU3LDcgKzkwNTcsNyBAQCBkZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNv ZGluZ0lqMTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5s aW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1VuaWZvcm1Xcml0ZXJOU18xNkVu Y29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTcxNSB7Ci0rZGVm aW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJv cGVyRW5jb2RpbmdJZjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184 RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCgl Y2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIp IGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTcxNSB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxp Z24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUs IGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MDgzLDcgKzkwODMsNyBAQCBkZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0lmMTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5l aGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29k aW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5p Zm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTcyNCB7Ci0rZGVmaW5l IGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVy RW5jb2RpbmdJeDEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5j b2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xh c3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFs aWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTcyNCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24g MQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFs aWduIDEsICF0YmFhICExOTMKLUBAIC05MTA5LDcgKzkxMDksNyBAQCBkZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4 MTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGlu dCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5n NFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9y bVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5p Zm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTczMyB7Ci0rZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5j b2RpbmdJeTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2Rp bmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3Mu VW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5p Zm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWdu IDEpICMyNSBjb21kYXQgIWRiZyAhMTczMyB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQot ICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWdu IDEsICF0YmFhICExOTMKLUBAIC05MTM1LDcgKzkxMzUsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNV bmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBu b3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVu aWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdy aXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9y bSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTc0MiB7Ci0rZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2Rp bmdJZDEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdF VDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5p Zm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9y bSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEp ICMyNSBjb21kYXQgIWRiZyAhMTc0MiB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAg JTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEs ICF0YmFhICExOTMKLUBAIC05MTYxLDcgKzkxNjEsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNVbmlm bwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vu d2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlm b3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0i KiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3NTEgewotK2RlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SVB2MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlm b3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3Jt IiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkg IzI1IGNvbWRhdCAhZGJnICExNzUxIHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAl NSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwg IXRiYWEgITE5MwotQEAgLTk5ODQsNyArOTk4NCw3IEBAIGRlZmluZSBpbnRlcm5hbCBpMzIgQF9a TjdkZXRhaWxzMThfY21fcHJpbnRfdHlwZV9vY2xJUHZFRU5TXzE4U0hBREVSX1BSSU5URl9UWVBF Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53 aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRz d2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNf OEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBh bGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxp Z24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMDU1IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlck5T XzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNs YXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMDU1 IHsKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSAlY2xhc3MuVmFy eWluZ1dyaXRlciwgYWxpZ24gMzIKLSAgICU2ID0gYWxsb2NhICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VmFyeWluZyIsIGFsaWduIDEKLUBAIC0xMDAwNyw3ICsxMDAwNyw3IEBAIGRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2Rp bmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlMjIgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVy KiAlNSB0byBpOCosICFkYmcgITIwNTcKLSAgICUyMyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdX cml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA1NwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5w MGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlMjIsIGk4KiBhbGlnbiAzMiAlMjMsIGkzMiA2NCwg aTEgZmFsc2UpLCAhZGJnICEyMDU3LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTI0ID0gY2FsbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIx M1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0ICUyMSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU1 LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICU2 KSwgIWRiZyAhMjA1OAotKyAgJTI0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5n NFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyMSwgJWNsYXNzLlZh cnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlNSwgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlNiksICFkYmcgITIwNTgKLSAgIGJyIGkx ICUyNCwgbGFiZWwgJTYwLCBsYWJlbCAlMjUsICFkYmcgITIwNTkKLSAKLSA7IDxsYWJlbD46MjU6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMwotQEAgLTEw MDE1LDcgKzEwMDE1LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICUyNyA9IGJpdGNh c3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICU3IHRvIGk4KiwgIWRiZyAhMjA2MQotICAgJTI4ID0g Yml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDYxCi0gICBj YWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICUyNywgaTgq IGFsaWduIDMyICUyOCwgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITIwNjEsICF0YmFhLnN0cnVj dCAhMTk3Ci0tICAlMjkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWlu Z0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTI2LCAlY2xhc3MuVmFyeWluZ1dy aXRlciogYnl2YWwgYWxpZ24gMzIgJTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFy eWluZyIqIGJ5dmFsIGFsaWduIDEgJTgpLCAhZGJnICEyMDYyCi0rICAlMjkgPSBjYWxsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFy eWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQgJTI2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdX cml0ZXIpIGFsaWduIDMyICU3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICU4 KSwgIWRiZyAhMjA2MgotICAgYnIgaTEgJTI5LCBsYWJlbCAlNjAsIGxhYmVsICUzMCwgIWRiZyAh MjA2MwotIAotIDsgPGxhYmVsPjozMDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOyBwcmVkcyA9ICUyNQotQEAgLTEwMDIzLDcgKzEwMDIzLDcgQEAgZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1Zhcnlp bmdXcml0ZXIKLSAgICUzMiA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICU5IHRvIGk4 KiwgIWRiZyAhMjA2NQotICAgJTMzID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEg dG8gaTgqLCAhZGJnICEyMDY1Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5p MzIoaTgqIGFsaWduIDMyICUzMiwgaTgqIGFsaWduIDMyICUzMywgaTMyIDY0LCBpMSBmYWxzZSks ICFkYmcgITIwNjUsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMzQgPSBjYWxsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVmFyeWluZ1dy aXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQgJTMxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTksICUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTEwKSwgIWRiZyAh MjA2NgotKyAgJTM0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSWoxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdF RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzMSwgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlOSwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMTApLCAhZGJnICEyMDY2Ci0gICBiciBpMSAlMzQsIGxh YmVsICU2MCwgbGFiZWwgJTM1LCAhZGJnICEyMDY3Ci0gCi0gOyA8bGFiZWw+OjM1OiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTMwCi1AQCAtMTAwMzEsNyAr MTAwMzEsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTM3ID0gYml0Y2FzdCAlY2xh c3MuVmFyeWluZ1dyaXRlciogJTExIHRvIGk4KiwgIWRiZyAhMjA2OQotICAgJTM4ID0gYml0Y2Fz dCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDY5Ci0gICBjYWxsIHZv aWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICUzNywgaTgqIGFsaWdu IDMyICUzOCwgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITIwNjksICF0YmFhLnN0cnVjdCAhMTk3 Ci0tICAlMzkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJZjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJO U184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTM2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciog Ynl2YWwgYWxpZ24gMzIgJTExLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KiBieXZhbCBhbGlnbiAxICUxMiksICFkYmcgITIwNzAKLSsgICUzOSA9IGNhbGwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNWYXJ5aW5n V3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCAlMzYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRl cikgYWxpZ24gMzIgJTExLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBi eXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUxMiks ICFkYmcgITIwNzAKLSAgIGJyIGkxICUzOSwgbGFiZWwgJTYwLCBsYWJlbCAlNDAsICFkYmcgITIw NzEKLSAKLSA7IDxsYWJlbD46NDA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDsgcHJlZHMgPSAlMzUKLUBAIC0xMDAzOSw3ICsxMDAzOSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5n V3JpdGVyCi0gICAlNDIgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMTMgdG8gaTgq LCAhZGJnICEyMDczCi0gICAlNDMgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0 byBpOCosICFkYmcgITIwNzMKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmkz MihpOCogYWxpZ24gMzIgJTQyLCBpOCogYWxpZ24gMzIgJTQzLCBpMzIgNjQsIGkxIGZhbHNlKSwg IWRiZyAhMjA3MywgIXRiYWEuc3RydWN0ICExOTcKLS0gICU0NCA9IGNhbGwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNWYXJ5aW5nV3Jp dGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4 dCAlNDEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTMsICUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTE0KSwgIWRiZyAh MjA3NAotKyAgJTQ0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSXgxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdF RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0MSwgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlMTMsICUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTE0KSwgIWRiZyAhMjA3NAotICAgYnIgaTEgJTQ0LCBs YWJlbCAlNjAsIGxhYmVsICU0NSwgIWRiZyAhMjA3NQotIAotIDsgPGxhYmVsPjo0NTogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU0MAotQEAgLTEwMDQ3LDcg KzEwMDQ3LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICU0NyA9IGJpdGNhc3QgJWNs YXNzLlZhcnlpbmdXcml0ZXIqICUxNSB0byBpOCosICFkYmcgITIwNzcKLSAgICU0OCA9IGJpdGNh c3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA3NwotICAgY2FsbCB2 b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlNDcsIGk4KiBhbGln biAzMiAlNDgsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDc3LCAhdGJhYS5zdHJ1Y3QgITE5 NwotLSAgJTQ5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSXkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUVi TlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0NiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIq IGJ5dmFsIGFsaWduIDMyICUxNSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IiogYnl2YWwgYWxpZ24gMSAlMTYpLCAhZGJnICEyMDc4Ci0rICAlNDkgPSBjYWxsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVmFyeWlu Z1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQgJTQ2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0 ZXIpIGFsaWduIDMyICUxNSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiog Ynl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMTYp LCAhZGJnICEyMDc4Ci0gICBiciBpMSAlNDksIGxhYmVsICU2MCwgbGFiZWwgJTUwLCAhZGJnICEy MDc5Ci0gCi0gOyA8bGFiZWw+OjUwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA7IHByZWRzID0gJTQ1Ci1AQCAtMTAwNTUsNyArMTAwNTUsNyBAQCBkZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWlu Z1dyaXRlcgotICAgJTUyID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTE3IHRvIGk4 KiwgIWRiZyAhMjA4MQotICAgJTUzID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEg dG8gaTgqLCAhZGJnICEyMDgxCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5p MzIoaTgqIGFsaWduIDMyICU1MiwgaTgqIGFsaWduIDMyICU1MywgaTMyIDY0LCBpMSBmYWxzZSks ICFkYmcgITIwODEsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNTQgPSBjYWxsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVmFyeWluZ1dy aXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQgJTUxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTE3LCAlInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICUxOCksICFkYmcg ITIwODIKLSsgICU1NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5n RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTEsICVjbGFzcy5WYXJ5aW5nV3Jp dGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTE3LCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUxOCksICFkYmcgITIwODIKLSAgIGJyIGkxICU1NCwg bGFiZWwgJTYwLCBsYWJlbCAlNTUsICFkYmcgITIwODMKLSAKLSA7IDxsYWJlbD46NTU6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNTAKLUBAIC0xMDA2Myw3 ICsxMDA2Myw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlNTcgPSBiaXRjYXN0ICVj bGFzcy5WYXJ5aW5nV3JpdGVyKiAlMTkgdG8gaTgqLCAhZGJnICEyMDg1Ci0gICAlNTggPSBiaXRj YXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwODUKLSAgIGNhbGwg dm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTU3LCBpOCogYWxp Z24gMzIgJTU4LCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA4NSwgIXRiYWEuc3RydWN0ICEx OTcKLS0gICU1OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0lQdjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VF RWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTU2LCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogYnl2YWwgYWxpZ24gMzIgJTE5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlp bmciKiBieXZhbCBhbGlnbiAxICUyMCksICFkYmcgITIwODYKLSsgICU1OSA9IGNhbGwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVmFy eWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQgJTU2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdX cml0ZXIpIGFsaWduIDMyICUxOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAl MjApLCAhZGJnICEyMDg2Ci0gICBiciBsYWJlbCAlNjAsICFkYmcgITIwODMKLSAKLSA7IDxsYWJl bD46NjA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNTUs ICU1MCwgJTQ1LCAlNDAsICUzNSwgJTMwLCAlMjUsICUzCi1AQCAtMTAwNzIsNyArMTAwNzIsNyBA QCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRj aEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdh eXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1ZhcnlpbmdX cml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAh MjA4OCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFy eWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3Jp dGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjA4OCB7Ci0gICAlNCA9IGFs bG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4 ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC0xMDA5OCw3ICsxMDA5OCw3IEBA IGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSWIxM1ZhcnlpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5 c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFyeWluZ1dy aXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEy MDk3IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5 aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMDk3IHsKLSAgICU0ID0gYWxs b2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTgg JTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTEwMTI0LDcgKzEwMTI0LDcgQEAg ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJaTEzVmFyeWkKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlz aW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNWYXJ5aW5nV3Jp dGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4 dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIx MDYgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlp bmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMDYgewotICAgJTQgPSBhbGxv Y2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAl MCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtMTAxNTAsNyArMTAxNTAsNyBAQCBk ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0lqMTNWYXJ5aQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNp bmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1ZhcnlpbmdXcml0 ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0 LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjEx NSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWlu Z0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVy KiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjExNSB7Ci0gICAlNCA9IGFsbG9j YSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUw LCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC0xMDE3Niw3ICsxMDE3Niw3IEBAIGRl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSWYxM1ZhcnlpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lu bGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVmFyeWluZ1dyaXRl ck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQs ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTI0 IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5n RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIq IGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRW YXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTI0IHsKLSAgICU0ID0gYWxsb2Nh IGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAs IGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTEwMjAyLDcgKzEwMjAyLDcgQEAgZGVm aW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJv cGVyRW5jb2RpbmdJeDEzVmFyeWkKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5s aW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNWYXJ5aW5nV3JpdGVy TlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwg JWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMzMg ewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSXkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdF RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciog Ynl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZh cnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMzMgewotICAgJTQgPSBhbGxvY2Eg aTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwg aTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtMTAyMjgsNyArMTAyMjgsNyBAQCBkZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0l5MTNWYXJ5aQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxp bmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1ZhcnlpbmdXcml0ZXJO U18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAl Y2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjE0MiB7 Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBs eUlmUHJvcGVyRW5jb2RpbmdJZDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VF RWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBi eXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFy eWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjE0MiB7Ci0gICAlNCA9IGFsbG9jYSBp MSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBp OCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC0xMDI1NCw3ICsxMDI1NCw3IEBAIGRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSWQxM1ZhcnlpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGlu ZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJUHYxM1ZhcnlpbmdXcml0ZXJO U18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAl Y2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjE1MSB7 Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBs eUlmUHJvcGVyRW5jb2RpbmdJUHYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdF RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciog Ynl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZh cnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxNTEgewotICAgJTQgPSBhbGxvY2Eg aTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwg aTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1kaWZmIC0tZ2l0IGEvYnVpbHRpbnMvYnVpbHRp bnMtY20tNjQubGwgYi9idWlsdGlucy9idWlsdGlucy1jbS02NC5sbAotaW5kZXggMzlhMmRkOGJl Li4zNzVkMDFiZWQgMTAwNjQ0Ci0tLS0gYS9idWlsdGlucy9idWlsdGlucy1jbS02NC5sbAotKysr IGIvYnVpbHRpbnMvYnVpbHRpbnMtY20tNjQubGwKLUBAIC01NTcsNyArNTU3LDcgQEAgJF9aTjEz VmFyeWluZ1dyaXRlcjEyV3JpdGVWZWNFbGVtSVB2RUV2diA9IGNvbWRhdCBhbnkKLSBALnN0ci4x MCA9IHByaXZhdGUgdW5uYW1lZF9hZGRyIGNvbnN0YW50IFs4IHggaThdIGMiJTAxNmxsWFwwMCIs IGFsaWduIDEKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgc2lnbmV4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdmNjKGk4 IHNpZ25leHQsIGk4IHNpZ25leHQpICMwIHsKLStkZWZpbmUgaW50ZXJuYWwgc2lnbmV4dCBpOCBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdmNjKGk4IHNpZ25leHQsIGk4IHNpZ25leHQpICMw IHsKLSAgICUzID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24g MQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC02MTgsNyArNjE4LDcgQEAg ZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTFF RUV1MkNNdmJUX19jUzFfUzFfdTJDTXYKLSBkZWNsYXJlIDwxIHggaTg+IEBsbHZtLmdlbngucmRy ZWdpb25pLnYxaTgudjFpOC5pMTYoPDEgeCBpOD4sIGkzMiwgaTMyLCBpMzIsIGkxNiwgaTMyKSAj MgotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfY1NfKDwx IHggaTg+LCA8MSB4IGk4PikgIzAgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfY1NfKDwxIHggaTg+LCA8MSB4IGk4PikgIzAg ewotICAgJTMgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIDwxIHgg aTg+LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTYzNCw3 ICs2MzQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zZGl2dTJDTXZiMV9jU18oPDEgeCBpOD4sIDwxCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfY1NfKDwyIHggaTg+LCA8MiB4IGk4PikgIzMg ewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2Rp dnUyQ012YjJfY1NfKDwyIHggaTg+LCA8MiB4IGk4PikgIzMgewotICAgJTMgPSBhbGxvY2EgPDIg eCBpOD4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNSA9 IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotQEAgLTY4MCw3ICs2ODAsNyBAQCBkZWZpbmUgaW50 ZXJuYWwgPDIgeCBpOD4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMkVFRXUyQ012YlRf X2NTMV9TMV91MkNNdgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Nk aXZ1MkNNdmI0X2NTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICM1IHsKLStkZWZpbmUgaW50ZXJuYWwg PDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X2NTXyg8NCB4IGk4 PiwgPDQgeCBpOD4pICM1IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAl NCA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDQgeCBpOD4sIGFs aWduIDQKLUBAIC04MTgsNyArODE4LDcgQEAgZGVmaW5lIGludGVybmFsIDwxNiB4IGk4PiBAX1pO N2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkxNkVFRXUyQ012YlRfX2NTMV9TMV91MkMKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjMyX2NTXyg8MzIg eCBpOD4sIDwzMiB4IGk4PikgIzExIHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTg+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMzJfY1NfKDwzMiB4IGk4PiwgPDMyIHggaTg+ KSAjMTEgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxv Y2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAz MgotQEAgLTg2NCw3ICs4NjQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTg+IEBfWk43ZGV0 YWlsczEzX19pbXBsX2RpdnJlbUlMaTMyRUVFdTJDTXZiVF9fY1MxX1MxX3UyQwotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgc2ln bmV4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbWNjKGk4IHNpZ25leHQsIGk4IHNp Z25leHQpICMwIHsKLStkZWZpbmUgaW50ZXJuYWwgc2lnbmV4dCBpOCBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc3JlbWNjKGk4IHNpZ25leHQsIGk4IHNpZ25leHQpICMwIHsKLSAgICUzID0gYWxs b2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxv Y2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC04OTAsNyArODkwLDcgQEAgZGVmaW5lIGRzb19sb2Nh bCBzaWduZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtY2MoaTggc2lnbmV4dCwg aTggc2lnbmUKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJD TXZiMV9jU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHgg aTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9jU18oPDEgeCBpOD4sIDwx IHggaTg+KSAjMCB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTQgPSBh bGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAx Ci1AQCAtOTA0LDcgKzkwNCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2NTXyg8MSB4IGk4PiwgPDEKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHgg aTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9jU18oPDIgeCBpOD4sIDwy IHggaTg+KSAjMyB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtdTJDTXZiMl9jU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMyB7Ci0gICAlMyA9 IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWdu IDIKLSAgICU1ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi1AQCAtOTE4LDcgKzkxOCw3IEBA IGRlZmluZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11 MkNNdmIyX2NTXyg8MiB4IGk4PiwgPDIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtdTJDTXZiNF9jU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjNSB7Ci0rZGVmaW5l IGludGVybmFsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9j U18oPDQgeCBpOD4sIDw0IHggaTg+KSAjNSB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGk4PiwgYWxp Z24gNAotICAgJTQgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDw0 IHggaTg+LCBhbGlnbiA0Ci1AQCAtOTMyLDcgKzkzMiw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQg eCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X2NTXyg8NCB4IGk4Piwg PDQKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUg ZHNvX2xvY2FsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9j U18oPDggeCBpOD4sIDw4IHggaTg+KSAjNyB7Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTg+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9jU18oPDggeCBpOD4sIDw4IHggaTg+ KSAjNyB7Ci0gICAlMyA9IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2Eg PDggeCBpOD4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci1AQCAt OTQ2LDcgKzk0Niw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDggeCBpOD4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW11MkNNdmI4X2NTXyg8OCB4IGk4PiwgPDgKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGk4PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X2NTXyg8MTYgeCBpOD4sIDwxNiB4 IGk4PikgIzkgewotK2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NyZW11MkNNdmIxNl9jU18oPDE2IHggaTg+LCA8MTYgeCBpOD4pICM5IHsKLSAgICUz ID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDwxNiB4IGk4Piwg YWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYKLUBAIC05NjAsNyAr OTYwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmIxNl9jU18oPDE2IHggaTg+LAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTg+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfY1NfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAj MTEgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmIzMl9jU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxMSB7Ci0gICAlMyA9IGFs bG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWdu IDMyCi0gICAlNSA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi1AQCAtOTc0LDcgKzk3NCw3 IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z cmVtdTJDTXZiMzJfY1NfKDwzMiB4IGk4PiwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQgaTE2IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zZGl2c3MoaTE2IHNpZ25leHQsIGkxNiBzaWduZXh0KSAjMyB7Ci0rZGVm aW5lIGludGVybmFsIHNpZ25leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2c3Mo aTE2IHNpZ25leHQsIGkxNiBzaWduZXh0KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSBpMTYsIGFsaWdu IDIKLSAgICU0ID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+ LCBhbGlnbiAyCi1AQCAtMTA1OCw3ICsxMDU4LDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTE2 PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkxRUVFdTJDTXZiVF9fc1MxX1MxX3UyQ00K LSBkZWNsYXJlIDwxIHggaTE2PiBAbGx2bS5nZW54LnJkcmVnaW9uaS52MWkxNi52MWkxNi5pMTYo PDEgeCBpMTY+LCBpMzIsIGkzMiwgaTMyLCBpMTYsIGkzMikgIzIKLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9zU18oPDEgeCBpMTY+LCA8MSB4IGkxNj4p ICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zZGl2dTJDTXZiMV9zU18oPDEgeCBpMTY+LCA8MSB4IGkxNj4pICMzIHsKLSAgICUzID0gYWxs b2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAy Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0xMDc0LDcgKzEwNzQsNyBA QCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2Rp dnUyQ012YjFfc1NfKDwxIHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lu bGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zZGl2dTJDTXZiMl9zU18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICM1IHsKLStk ZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJD TXZiMl9zU18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICM1IHsKLSAgICUzID0gYWxsb2NhIDwyIHgg aTE2PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNSA9 IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLUBAIC0xMTQzLDcgKzExNDMsNyBAQCBkZWZpbmUg aW50ZXJuYWwgPDIgeCBpMTY+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTJFRUV1MkNN dmJUX19zUzFfUzFfdTJDTQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vu d2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zZGl2dTJDTXZiNF9zU18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICM3IHsKLStkZWZpbmUgaW50 ZXJuYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9zU18o PDQgeCBpMTY+LCA8NCB4IGkxNj4pICM3IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTE2PiwgYWxp Z24gOAotICAgJTQgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8 NCB4IGkxNj4sIGFsaWduIDgKLUBAIC0xMzUwLDcgKzEzNTAsNyBAQCBkZWZpbmUgaW50ZXJuYWwg PDE2IHggaTE2PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkxNkVFRXUyQ012YlRfX3NT MV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUy Q012YjMyX3NTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTMgewotK2RlZmluZSBpbnRlcm5h bCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMzJfc1NfKDwz MiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxMyB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMTY+LCBh bGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU1ID0gYWxs b2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci1AQCAtMTQxOSw3ICsxNDE5LDcgQEAgZGVmaW5lIGlu dGVybmFsIDwzMiB4IGkxNj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMzJFRUV1MkNN dmJUX19zUzFfUzFfdTIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zcmVtc3MoaTE2IHNpZ25leHQsIGkxNiBzaWduZXh0KSAjMyB7Ci0rZGVmaW5lIGludGVybmFs IHNpZ25leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtc3MoaTE2IHNpZ25leHQs IGkxNiBzaWduZXh0KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU0ID0g YWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1A QCAtMTQ0NSw3ICsxNDQ1LDcgQEAgZGVmaW5lIGRzb19sb2NhbCBzaWduZXh0IGkxNiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc3JlbXNzKGkxNiBzaWduZXh0LCBpMTYgc2kKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfc1NfKDwxIHggaTE2Piwg PDEgeCBpMTY+KSAjMyB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTE2PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfc1NfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMyB7Ci0g ICAlMyA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwxIHggaTE2 PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMTQ1OSw3 ICsxNDU5LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NyZW11MkNNdmIxX3NTXyg8MSB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfc1NfKDwyIHggaTE2PiwgPDIgeCBpMTY+ KSAjNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbXUyQ012YjJfc1NfKDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjNSB7Ci0gICAlMyA9IGFs bG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24g NAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci1AQCAtMTQ3Myw3ICsxNDczLDcg QEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Ny ZW11MkNNdmIyX3NTXyg8MiB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfc1NfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAjNyB7Ci0r ZGVmaW5lIGludGVybmFsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUy Q012YjRfc1NfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAjNyB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4 IGkxNj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTUg PSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci1AQCAtMTQ4Nyw3ICsxNDg3LDcgQEAgZGVmaW5l IGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0 X3NTXyg8NCB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbXUyQ012Yjhfc1NfKDw4IHggaTE2PiwgPDggeCBpMTY+KSAjOSB7Ci0rZGVmaW5lIGlu dGVybmFsIDw4IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012Yjhfc1Nf KDw4IHggaTE2PiwgPDggeCBpMTY+KSAjOSB7Ci0gICAlMyA9IGFsbG9jYSA8OCB4IGkxNj4sIGFs aWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8OCB4IGkxNj4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9j YSA8OCB4IGkxNj4sIGFsaWduIDE2Ci1AQCAtMTUwMSw3ICsxNTAxLDcgQEAgZGVmaW5lIGRzb19s b2NhbCA8OCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X3NTXyg8 OCB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQK LS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Ny ZW11MkNNdmIxNl9zU18oPDE2IHggaTE2PiwgPDE2IHggaTE2PikgIzExIHsKLStkZWZpbmUgaW50 ZXJuYWwgPDE2IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X3NT Xyg8MTYgeCBpMTY+LCA8MTYgeCBpMTY+KSAjMTEgewotICAgJTMgPSBhbGxvY2EgPDE2IHggaTE2 PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFsaWduIDMyCi0gICAlNSA9 IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAzMgotQEAgLTE1MTUsNyArMTUxNSw3IEBAIGRlZmlu ZSBkc29fbG9jYWwgPDE2IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012 YjE2X3NTXyg8MTYgeCBpMTY+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zcmVtdTJDTXZiMzJfc1NfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxMyB7Ci0rZGVm aW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNN dmIzMl9zU18oPDMyIHggaTE2PiwgPDMyIHggaTE2PikgIzEzIHsKLSAgICUzID0gYWxsb2NhIDwz MiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAot ICAgJTUgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLUBAIC0xNTI5LDcgKzE1MjksNyBA QCBkZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Ny ZW11MkNNdmIzMl9zU18oPDMyIHggaTE2PgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lu bGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zZGl2aWkoaTMyLCBpMzIpICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIGkzMiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc2RpdmlpKGkzMiwgaTMyKSAjMTQgewotICAgJTMgPSBhbGxvY2Eg aTMyLCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU1ID0gYWxsb2Nh IDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTE3MzAsNyArMTczMCw3IEBAIGRlZmluZSBpbnRlcm5h bCA8MSB4IGkzMj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMUVFRXUyQ012YlRfX2lT MV9TMV91MkNNCi0gZGVjbGFyZSA8MSB4IGkzMj4gQGxsdm0uZ2VueC5yZHJlZ2lvbmkudjFpMzIu djFpMzIuaTE2KDwxIHggaTMyPiwgaTMyLCBpMzIsIGkzMiwgaTE2LCBpMzIpICMyCi0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfaVNfKDwxIHggaTMyPiwg PDEgeCBpMzI+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsK LSAgICUzID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDEgeCBp MzI+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0xNzQ2 LDcgKzE3NDYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc2RpdnUyQ012YjFfaVNfKDwxIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMl9pU18oPDIgeCBpMzI+LCA8MiB4IGkz Mj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc2RpdnUyQ012YjJfaVNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotICAgJTMg PSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkzMj4sIGFs aWduIDgKLSAgICU1ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotQEAgLTE5MzIsNyArMTkz Miw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGkzMj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2 cmVtSUxpMkVFRXUyQ012YlRfX2lTMV9TMV91MkNNCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X2lTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2 IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z ZGl2dTJDTXZiNF9pU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0gICAlMyA9IGFsbG9j YSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2 Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci1AQCAtMjQ5MCw3ICsyNDkwLDcg QEAgZGVmaW5lIGludGVybmFsIDwxNiB4IGkzMj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVt SUxpMTZFRUV1MkNNdmJUX19pUzFfUzFfdTIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9pU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5 IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c2RpdnUyQ012YjMyX2lTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotICAgJTMgPSBh bGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMzI+LCBh bGlnbiAxMjgKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotQEAgLTI2NzYs NyArMjY3Niw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpMzI+IEBfWk43ZGV0YWlsczEzX19p bXBsX2RpdnJlbUlMaTMyRUVFdTJDTXZiVF9faVMxX1MxX3UyCi0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NyZW1paShpMzIsIGkzMikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwg aTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtaWkoaTMyLCBpMzIpICMxNCB7Ci0gICAl MyA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAg JTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtMjcwMiw3ICsyNzAyLDcgQEAgZGVm aW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1paShpMzIsIGkz MikgIzE0IHsKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUy Q012YjFfaVNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8 MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2lTXyg8MSB4IGkz Mj4sIDwxIHggaTMyPikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAot ICAgJTQgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkz Mj4sIGFsaWduIDQKLUBAIC0yNzE2LDcgKzI3MTYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfaVNfKDwxIHggaTMyPiwg PAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBk c29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9p U18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTMy PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfaVNfKDwyIHggaTMyPiwgPDIg eCBpMzI+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNCA9 IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxp Z24gOAotQEAgLTI3MzAsNyArMjczMCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9pU18oPDIgeCBpMzI+LCA8Ci0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2Nh bCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X2lTXyg8NCB4 IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMzI+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9pU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4p ICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9j YSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2 Ci1AQCAtMjc0NCw3ICsyNzQ0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X2lTXyg8NCB4IGkzMj4sIDwKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4 IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjhfaVNfKDw4IHggaTMy PiwgPDggeCBpMzI+KSAjMTcgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2lTXyg8OCB4IGkzMj4sIDw4IHggaTMyPikgIzE3 IHsKLSAgICUzID0gYWxsb2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDw4 IHggaTMyPiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLUBA IC0yNzU4LDcgKzI3NTgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw4IHggaTMyPiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjhfaVNfKDw4IHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X2lTXyg8MTYgeCBpMzI+ LCA8MTYgeCBpMzI+KSAjMTggewotK2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfaVNfKDwxNiB4IGkzMj4sIDwxNiB4IGkzMj4p ICMxOCB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpMzI+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxv Y2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWdu IDY0Ci1AQCAtMjc3Miw3ICsyNzcyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMzI+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfaVNfKDwxNiB4IGkzMj4KLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9pU18oPDMy IHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMyPiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX2lTXyg8MzIgeCBpMzI+LCA8MzIg eCBpMzI+KSAjMTkgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAl NCA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkz Mj4sIGFsaWduIDEyOAotQEAgLTI3ODYsNyArMjc4Niw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMy IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX2lTXyg8MzIgeCBp MzI+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCB6ZXJvZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2aGgoaTgg emVyb2V4dCwgaTggemVyb2V4dCkgIzIxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpOCBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdmhoKGk4IHplcm9leHQsIGk4IHplcm9leHQpICMy MSB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWdu IDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtMjg0NCw3ICsyODQ0LDcg QEAgZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1J TGkxRUVFdTJDTXZiVF9faFMxX1MxX3UyQ00KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91ZGl2dTJDTXZiMV9oU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMjEgewotK2Rl ZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012 YjFfaFNfKDwxIHggaTg+LCA8MSB4IGk4PikgIzIxIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTg+ LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTUgPSBhbGxv Y2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC0yODYwLDcgKzI4NjAsNyBAQCBkZWZpbmUgZHNvX2xv Y2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV9oU18oPDEg eCBpOD4sIDwxCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0t ZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUy Q012YjJfaFNfKDwyIHggaTg+LCA8MiB4IGk4PikgIzIyIHsKLStkZWZpbmUgaW50ZXJuYWwgPDIg eCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIyX2hTXyg8MiB4IGk4Piwg PDIgeCBpOD4pICMyMiB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTQg PSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwyIHggaTg+LCBhbGln biAyCi1AQCAtMjkwNiw3ICsyOTA2LDcgQEAgZGVmaW5lIGludGVybmFsIDwyIHggaTg+IEBfWk43 ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkyRUVFdTJDTXZiVF9faFMxX1MxX3UyQ00KLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiNF9oU18oPDQgeCBp OD4sIDw0IHggaTg+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGk4PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjRfaFNfKDw0IHggaTg+LCA8NCB4IGk4PikgIzE0IHsK LSAgICUzID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGk4 PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLUBAIC0zMDQ0LDcg KzMwNDQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTg+IEBfWk43ZGV0YWlsczE0X19pbXBs X3VkaXZyZW1JTGkxNkVFRXUyQ012YlRfX2hTMV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTg+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJfaFNfKDwzMiB4IGk4PiwgPDMyIHggaTg+ KSAjMTcgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VkaXZ1MkNNdmIzMl9oU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxNyB7Ci0gICAlMyA9 IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8MzIgeCBpOD4sIGFs aWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi1AQCAtMzA5MCw3ICsz MDkwLDcgQEAgZGVmaW5lIGludGVybmFsIDwzMiB4IGk4PiBAX1pON2RldGFpbHMxNF9faW1wbF91 ZGl2cmVtSUxpMzJFRUV1MkNNdmJUX19oUzFfUzFfdTIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRy czogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHplcm9leHQgaTggQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VyZW1oaChpOCB6ZXJvZXh0LCBpOCB6ZXJvZXh0KSAjMjEgewot K2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt aGgoaTggemVyb2V4dCwgaTggemVyb2V4dCkgIzIxIHsKLSAgICUzID0gYWxsb2NhIGk4LCBhbGln biAxCi0gICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4s IGFsaWduIDEKLUBAIC0zMTE2LDcgKzMxMTYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIHplcm9leHQg aTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW1oaChpOCB6ZXJvZXh0LCBpOCB6ZXJvZQot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29f bG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX2hTXyg8 MSB4IGk4PiwgPDEgeCBpOD4pICMyMSB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9oU18oPDEgeCBpOD4sIDwxIHggaTg+KSAj MjEgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIDwx IHggaTg+LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTMx MzAsNyArMzEzMCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmIxX2hTXyg8MSB4IGk4PiwgPDEKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9oU18oPDIgeCBpOD4sIDwyIHggaTg+ KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjJfaFNfKDwyIHggaTg+LCA8MiB4IGk4PikgIzIyIHsKLSAgICUzID0gYWxs b2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgot ICAgJTUgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLUBAIC0zMTQ0LDcgKzMxNDQsNyBAQCBk ZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJD TXZiMl9oU18oPDIgeCBpOD4sIDwyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdXJlbXUyQ012YjRfaFNfKDw0IHggaTg+LCA8NCB4IGk4PikgIzE0IHsKLStkZWZpbmUg aW50ZXJuYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2hT Xyg8NCB4IGk4PiwgPDQgeCBpOD4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGk4PiwgYWxp Z24gNAotICAgJTQgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDw0 IHggaTg+LCBhbGlnbiA0Ci1AQCAtMzE1OCw3ICszMTU4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8 NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfaFNfKDw0IHggaTg+ LCA8NAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDggeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4 X2hTXyg8OCB4IGk4PiwgPDggeCBpOD4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTg+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF9oU18oPDggeCBpOD4sIDw4IHgg aTg+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDggeCBpOD4sIGFsaWduIDgKLSAgICU0ID0gYWxs b2NhIDw4IHggaTg+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24gOAot QEAgLTMxNzIsNyArMzE3Miw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDggeCBpOD4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2hTXyg8OCB4IGk4PiwgPDgKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4 IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X2hTXyg8MTYgeCBpOD4s IDwxNiB4IGk4PikgIzE2IHsKLStkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTg+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfaFNfKDwxNiB4IGk4PiwgPDE2IHggaTg+KSAjMTYg ewotICAgJTMgPSBhbGxvY2EgPDE2IHggaTg+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDE2 IHggaTg+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDE2IHggaTg+LCBhbGlnbiAxNgotQEAg LTMxODYsNyArMzE4Niw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDE2IHggaTg+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfaFNfKDwxNiB4IGk4PiwKLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2hTXyg8MzIgeCBpOD4sIDwz MiB4IGk4PikgIzE3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfaFNfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTcgewot ICAgJTMgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDMyIHgg aTg+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotQEAgLTMy MDAsNyArMzIwMCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfaFNfKDwzMiB4IGk4PiwKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHplcm9leHQgaTE2 IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dHQoaTE2IHplcm9leHQsIGkxNiB6ZXJvZXh0 KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdWRpdnR0KGkxNiB6ZXJvZXh0LCBpMTYgemVyb2V4dCkgIzIyIHsKLSAgICUzID0gYWxs b2NhIGkxNiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNSA9IGFs bG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0zMjc4LDcgKzMyNzgsNyBAQCBkZWZpbmUgaW50 ZXJuYWwgPDEgeCBpMTY+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkxRUVFdTJDTXZi VF9fdFMxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 ZGl2dTJDTXZiMV90U18oPDEgeCBpMTY+LCA8MSB4IGkxNj4pICMyMiB7Ci0rZGVmaW5lIGludGVy bmFsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfdFNfKDwx IHggaTE2PiwgPDEgeCBpMTY+KSAjMjIgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGln biAyCi0gICAlNCA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwx IHggaTE2PiwgYWxpZ24gMgotQEAgLTMyOTQsNyArMzI5NCw3IEBAIGRlZmluZSBkc29fbG9jYWwg PDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV90U18oPDEgeCBp MTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNN dmIyX3RTXyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIg eCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMl90U18oPDIgeCBpMTY+ LCA8MiB4IGkxNj4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAg ICU0ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMTY+ LCBhbGlnbiA0Ci1AQCAtMzM2MCw3ICszMzYwLDcgQEAgZGVmaW5lIGludGVybmFsIDwyIHggaTE2 PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMkVFRXUyQ012YlRfX3RTMV9TMV91MkMK LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNv X2xvY2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjRfdFNf KDw0IHggaTE2PiwgPDQgeCBpMTY+KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkxNj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDw0IHgg aTE2PikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTQgPSBh bGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWdu IDgKLUBAIC0zNTU4LDcgKzM1NTgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTE2PiBAX1pO N2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMTZFRUV1MkNNdmJUX190UzFfUzFfdQotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwg PDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjMyX3RTXyg8MzIg eCBpMTY+LCA8MzIgeCBpMTY+KSAjMTggewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJfdFNfKDwzMiB4IGkxNj4sIDwzMiB4 IGkxNj4pICMxOCB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTQg PSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkxNj4s IGFsaWduIDY0Ci1AQCAtMzYyNCw3ICszNjI0LDcgQEAgZGVmaW5lIGludGVybmFsIDwzMiB4IGkx Nj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTMyRUVFdTJDTXZiVF9fdFMxX1MxX3UK LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNv X2xvY2FsIHplcm9leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdHQoaTE2IHpl cm9leHQsIGkxNiB6ZXJvZXh0KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxNiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXR0KGkxNiB6ZXJvZXh0LCBpMTYgemVyb2V4dCkg IzIyIHsKLSAgICUzID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgaTE2LCBh bGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0zNjUwLDcgKzM2 NTAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIHplcm9leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91cmVtdHQoaTE2IHplcm9leHQsIGkxNiB6ZQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV90U18oPDEgeCBpMTY+LCA8MSB4IGkxNj4pICMy MiB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbXUyQ012YjFfdFNfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMjIgewotICAgJTMgPSBhbGxv Y2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIK LSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTM2NjQsNyArMzY2NCw3IEBA IGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt dTJDTXZiMV90U18oPDEgeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmIyX3RTXyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzE0IHsKLStk ZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJD TXZiMl90U18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4 IGkxNj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTUg PSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci1AQCAtMzY3OCw3ICszNjc4LDcgQEAgZGVmaW5l IGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIy X3RTXyg8MiB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjRfdFNfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAjMTUgewotK2RlZmluZSBp bnRlcm5hbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X3RT Xyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTE2Piwg YWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9j YSA8NCB4IGkxNj4sIGFsaWduIDgKLUBAIC0zNjkyLDcgKzM2OTIsNyBAQCBkZWZpbmUgZHNvX2xv Y2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfdFNfKDw0 IHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgPDggeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt dTJDTXZiOF90U18oPDggeCBpMTY+LCA8OCB4IGkxNj4pICMxNiB7Ci0rZGVmaW5lIGludGVybmFs IDw4IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfdFNfKDw4IHgg aTE2PiwgPDggeCBpMTY+KSAjMTYgewotICAgJTMgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAx NgotICAgJTQgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDgg eCBpMTY+LCBhbGlnbiAxNgotQEAgLTM3MDYsNyArMzcwNiw3IEBAIGRlZmluZSBkc29fbG9jYWwg PDggeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF90U18oPDggeCBp MTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCA8MTYgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJD TXZiMTZfdFNfKDwxNiB4IGkxNj4sIDwxNiB4IGkxNj4pICMxNyB7Ci0rZGVmaW5lIGludGVybmFs IDwxNiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl90U18oPDE2 IHggaTE2PiwgPDE2IHggaTE2PikgIzE3IHsKLSAgICUzID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFs aWduIDMyCi0gICAlNCA9IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxv Y2EgPDE2IHggaTE2PiwgYWxpZ24gMzIKLUBAIC0zNzIwLDcgKzM3MjAsNyBAQCBkZWZpbmUgZHNv X2xvY2FsIDwxNiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl90 U18oPDE2IHggaTE2PgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbXUyQ012YjMyX3RTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTggewotK2RlZmluZSBp bnRlcm5hbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJf dFNfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxOCB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBp MTY+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU1 ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci1AQCAtMzczNCw3ICszNzM0LDcgQEAgZGVm aW5lIGRzb19sb2NhbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJD TXZiMzJfdFNfKDwzMiB4IGkxNj4KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dWRpdmpqKGkzMiwgaTMyKSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCBpMzIgQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VkaXZqaihpMzIsIGkzMikgIzE0IHsKLSAgICUzID0gYWxsb2NhIGkzMiwg YWxpZ24gNAotICAgJTQgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4 IGkzMj4sIGFsaWduIDQKLUBAIC0zODkyLDcgKzM4OTIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEg eCBpMzI+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkxRUVFdTJDTXZiVF9falMxX1Mx X3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZi MV9qU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfalNfKDwxIHggaTMyPiwg PDEgeCBpMzI+KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAl NCA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwg YWxpZ24gNAotQEAgLTM5MDgsNyArMzkwOCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV9qU18oPDEgeCBpMzI+LCA8Ci0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIyX2pTXyg8 MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMl9qU18oPDIgeCBpMzI+LCA8MiB4IGkz Mj4pICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU0ID0gYWxs b2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4 Ci1AQCAtNDA1NCw3ICs0MDU0LDcgQEAgZGVmaW5lIGludGVybmFsIDwyIHggaTMyPiBAX1pON2Rl dGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMkVFRXUyQ012YlRfX2pTMV9TMV91MkMKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0 IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjRfalNfKDw0IHggaTMy PiwgPDQgeCBpMzI+KSAjMTYgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0X2pTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2 IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw0 IHggaTMyPiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLUBA IC00NDkyLDcgKzQ0OTIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTMyPiBAX1pON2RldGFp bHMxNF9faW1wbF91ZGl2cmVtSUxpMTZFRUV1MkNNdmJUX19qUzFfUzFfdQotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjMyX2pTXyg8MzIgeCBpMzI+ LCA8MzIgeCBpMzI+KSAjMTkgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJfalNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4p ICMxOSB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU0ID0gYWxs b2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxp Z24gMTI4Ci1AQCAtNDYzOCw3ICs0NjM4LDcgQEAgZGVmaW5lIGludGVybmFsIDwzMiB4IGkzMj4g QF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTMyRUVFdTJDTXZiVF9falMxX1MxX3UKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbWpqKGkzMiwgaTMyKSAjMTQgewot K2RlZmluZSBpbnRlcm5hbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW1qaihpMzIs IGkzMikgIzE0IHsKLSAgICUzID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2Eg aTMyLCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC00NjY0 LDcgKzQ2NjQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbWpqKGkzMiwgaTMyKSAjMTQgewotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lu bGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91cmVtdTJDTXZiMV9qU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0r ZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUy Q012YjFfalNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDEg eCBpMzI+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU1 ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTQ2NzgsNyArNDY3OCw3IEBAIGRlZmlu ZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZi MV9qU18oPDEgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmIyX2pTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLStkZWZpbmUg aW50ZXJuYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9q U18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkzMj4s IGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTUgPSBhbGxv Y2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci1AQCAtNDY5Miw3ICs0NjkyLDcgQEAgZGVmaW5lIGRzb19s b2NhbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2pTXyg8 MiB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQK LS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJl bXUyQ012YjRfalNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotK2RlZmluZSBpbnRlcm5h bCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2pTXyg8NCB4 IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24g MTYKLSAgICU0ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDw0 IHggaTMyPiwgYWxpZ24gMTYKLUBAIC00NzA2LDcgKzQ3MDYsNyBAQCBkZWZpbmUgZHNvX2xvY2Fs IDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfalNfKDw0IHgg aTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgPDggeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJD TXZiOF9qU18oPDggeCBpMzI+LCA8OCB4IGkzMj4pICMxNyB7Ci0rZGVmaW5lIGludGVybmFsIDw4 IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfalNfKDw4IHggaTMy PiwgPDggeCBpMzI+KSAjMTcgewotICAgJTMgPSBhbGxvY2EgPDggeCBpMzI+LCBhbGlnbiAzMgot ICAgJTQgPSBhbGxvY2EgPDggeCBpMzI+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDggeCBp MzI+LCBhbGlnbiAzMgotQEAgLTQ3MjAsNyArNDcyMCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDgg eCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF9qU18oPDggeCBpMzI+ LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZi MTZfalNfKDwxNiB4IGkzMj4sIDwxNiB4IGkzMj4pICMxOCB7Ci0rZGVmaW5lIGludGVybmFsIDwx NiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl9qU18oPDE2IHgg aTMyPiwgPDE2IHggaTMyPikgIzE4IHsKLSAgICUzID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWdu IDY0Ci0gICAlNCA9IGFsbG9jYSA8MTYgeCBpMzI+LCBhbGlnbiA2NAotICAgJTUgPSBhbGxvY2Eg PDE2IHggaTMyPiwgYWxpZ24gNjQKLUBAIC00NzM0LDcgKzQ3MzQsNyBAQCBkZWZpbmUgZHNvX2xv Y2FsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl9qU18o PDE2IHggaTMyPgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJl bXUyQ012YjMyX2pTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotK2RlZmluZSBpbnRl cm5hbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfalNf KDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMzI+ LCBhbGlnbiAxMjgKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTUg PSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci1AQCAtNDc0OCw3ICs0NzQ4LDcgQEAgZGVm aW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJD TXZiMzJfalNfKDwzMiB4IGkzMj4KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHZvaWQgQF9fZG9fcHJpbnRfY20oaTgqLCBpOCos IGkzMiwgaTY0LCBpMzIqLCBpMzIsIGkzMikgIzIzICFkYmcgITE1IHsKLStkZWZpbmUgaW50ZXJu YWwgdm9pZCBAX19kb19wcmludF9jbShpOCosIGk4KiwgaTMyLCBpNjQsIGkzMiosIGkzMiwgaTMy KSAjMjMgIWRiZyAhMTUgewotICAgJTggPSBhbGxvY2EgaTgqLCBhbGlnbiA4Ci0gICAlOSA9IGFs bG9jYSBpOCosIGFsaWduIDgKLSAgICUxMCA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLUBAIC01MDcw LDcgKzUwNzAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIHZvaWQgQF9fZG9fcHJpbnRfbHooaTMyLCBp OCosIGkzMiwgaTY0LCBpMzIqLCBpMzIsIGkzMiwgaTMyLCBpMwotICAgJTY3ID0gbG9hZCBpNjQs IGk2NCogJTEzLCBhbGlnbiA4LCAhZGJnICExNTksICF0YmFhICExOQotICAgJTY4ID0gbG9hZCA8 NSB4IGkzMj4sIDw1IHggaTMyPiogJTIxLCBhbGlnbiAzMiwgIWRiZyAhMTYwLCAhdGJhYSAhNwot ICAgY2FsbCB2b2lkIEBfWk4xM1ZhcnlpbmdXcml0ZXJDMkVSeVJQS2ppeXUyQ012YjVfaSglY2xh c3MuVmFyeWluZ1dyaXRlciogJTIzLCBpNjQqIGRlcmVmZXJlbmNlYWJsZSg4KSAlMTksIGkzMioq IGRlcmVmZXJlbmNlYWJsZSg4KSAlMTQsIGkzMiAlNjYsIGk2NCAlNjcsIDw1IHggaTMyPiAlNjgp LCAhZGJnICExNjEKLS0gICU2OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzE0c3dp dGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5n RVRfVDBfKGk4IHNpZ25leHQgJTYyLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24g MzIgJTIyLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTIzKSwgIWRiZyAh MTYyCi0rICAlNjkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29k aW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFyeWluZ1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUX1QwXyhp OCBzaWduZXh0ICU2MiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3Jt V3JpdGVyKSBhbGlnbiAzMiAlMjIsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3Mu VmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTIzKSwgIWRiZyAhMTYyCi0gICBiciBsYWJlbCAlNzAs ICFkYmcgITE2MwotIAotIDsgPGxhYmVsPjo3MDogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOyBwcmVkcyA9ICU2MAotQEAgLTUxODgsNyArNTE4OCw3IEBAIGRlZmluZSBpbnRl cm5hbCA8NSB4IGkzMj4gQF9aMTdnZXRfYXV4aWxpYXJ5X3N0cnYoKSAjMjggY29tZGF0ICFkYmcg ITE3OCB7Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50 IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3 aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFyeWluZ1dyaXRlckVFYk5TXzhFbmNvZGlu Z0VUX1QwXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIs ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMikgIzI1IGNvbWRhdCAhZGJnICEx OTEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hF bmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1ZhcnlpbmdXcml0ZXJFRWJOU184RW5jb2RpbmdFVF9U MF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3Jt V3JpdGVyKSBhbGlnbiAzMiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5 aW5nV3JpdGVyKSBhbGlnbiAzMikgIzI1IGNvbWRhdCAhZGJnICExOTEgewotICAgJTQgPSBhbGxv Y2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhICVjbGFzcy5Vbmlmb3JtV3JpdGVyLCBhbGln biAzMgotICAgJTYgPSBhbGxvY2EgJWNsYXNzLlZhcnlpbmdXcml0ZXIsIGFsaWduIDMyCi1AQCAt NTE5Nyw3ICs1MTk3LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFyeWkKLSAgICU4ID0gYml0Y2Fz dCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTUgdG8gaTgqLCAhZGJnICExOTYKLSAgICU5ID0gYml0 Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExOTYKLSAgIGNhbGwg dm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTgsIGk4KiBhbGln biAzMiAlOSwgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITE5NiwgIXRiYWEuc3RydWN0ICExOTcK LS0gICUxMCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0 VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCAlNywg JWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU1KSwgIWRiZyAhMTk4Ci0rICAl MTAgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZv cm1JMTNVbmlmb3JtV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQgJTcsICVjbGFz cy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTUp LCAhZGJnICExOTgKLSAgIGJyIGkxICUxMCwgbGFiZWwgJTE2LCBsYWJlbCAlMTEsICFkYmcgITE5 OQotIAotIDsgPGxhYmVsPjoxMTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg OyBwcmVkcyA9ICUzCi1AQCAtNTIwNSw3ICs1MjA1LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFy eWkKLSAgICUxMyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICU2IHRvIGk4KiwgIWRi ZyAhMjAxCi0gICAlMTQgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMiB0byBpOCos ICFkYmcgITIwMQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBh bGlnbiAzMiAlMTMsIGk4KiBhbGlnbiAzMiAlMTQsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICEy MDEsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMTUgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm8yMnN3aXRjaEVuY29kaW5nNFZhcnlpbmdJMTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29k aW5nRVRfKGk4IHNpZ25leHQgJTEyLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24g MzIgJTYpLCAhZGJnICEyMDIKLSsgICUxNSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzIyc3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kxM1ZhcnlpbmdXcml0ZXJFRWJOU184RW5jb2RpbmdF VF8oaTggc2lnbmV4dCAlMTIsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFy eWluZ1dyaXRlcikgYWxpZ24gMzIgJTYpLCAhZGJnICEyMDIKLSAgIGJyIGxhYmVsICUxNiwgIWRi ZyAhMTk5Ci0gCi0gOyA8bGFiZWw+OjE2OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA7IHByZWRzID0gJTExLCAlMwotQEAgLTUyODAsNyArNTI4MCw3IEBAIGRlZmluZSBpbnRl cm5hbCB2b2lkIEBfWk4xM1ZhcnlpbmdXcml0ZXJDMkVSeVJQS2ppeXUyQ012YjVfaSglY2xhc3Mu VmFyeWluZ1dyaXRlCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5k Ci0tZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9fbnVtX2NvcmVzKCkgIzI5ICFkYmcgITIzNiB7Ci0r ZGVmaW5lIGludGVybmFsIGkzMiBAX19udW1fY29yZXMoKSAjMjkgIWRiZyAhMjM2IHsKLSAgIHJl dCBpMzIgLTEsICFkYmcgITIzNwotIH0KLSAKLUBAIC04ODcwLDcgKzg4NzAsNyBAQCBkZWNsYXJl IGRzb19sb2NhbCB2b2lkIEBfWk43ZGV0YWlsczM3X19jbV9pbnRyaW5zaWNfaW1wbF9zdm1fc2Nh dHRlcl93cml0ZUlpTGkxRQotIGRlY2xhcmUgdm9pZCBAbGx2bS5nZW54LnN2bS5zY2F0dGVyLnYx aTEudjFpNjQudjFpMzIoPDEgeCBpMT4sIGkzMiwgPDEgeCBpNjQ+LCA8MSB4IGkzMj4pICMyNwot IAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0t ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5n NFVuaWZvcm1JMTNVbmlmb3JtV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQsICVj bGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMikgIzI1IGNvbWRhdCAhZGJnICExNjQ1 IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5j b2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4 dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGln biAzMikgIzI1IGNvbWRhdCAhZGJnICExNjQ1IHsKLSAgICUzID0gYWxsb2NhIGk4LCBhbGlnbiAx Ci0gICAlNCA9IGFsbG9jYSAlY2xhc3MuVW5pZm9ybVdyaXRlciwgYWxpZ24gMzIKLSAgICU1ID0g YWxsb2NhICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIsIGFsaWduIDEKLUBA IC04ODc5LDcgKzg4NzksNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZQotICAgJTcgPSBiaXRj YXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlNCB0byBpOCosICFkYmcgITE2NDcKLSAgICU4ID0g Yml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjQ3Ci0gICBj YWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICU3LCBpOCog YWxpZ24gMzIgJTgsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjQ3LCAhdGJhYS5zdHJ1Y3Qg ITE5NwotLSAgJTkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0 Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVu Y29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBh bGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwg YWxpZ24gMSAlNSksICFkYmcgITE2NDgKLSsgICU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGlu ZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2LCAlY2xhc3MuVW5p Zm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICU0LCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICU1KSwgIWRiZyAhMTY0OAotICAgcmV0IGkx ICU5LCAhZGJnICExNjQ5Ci0gfQotIAotQEAgLTg4ODcsNyArODg4Nyw3IEBAIGRlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEz VW5pZm9ybVdyaXRlCi0gZGVjbGFyZSB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4 KiBub2NhcHR1cmUgd3JpdGVvbmx5LCBpOCogbm9jYXB0dXJlIHJlYWRvbmx5LCBpNjQsIGkxKSAj MzIKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2lu ZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNv ZGluZzRWYXJ5aW5nSTEzVmFyeWluZ1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0 LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAh MTY1MCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRj aEVuY29kaW5nNFZhcnlpbmdJMTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNp Z25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikg YWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAhMTY1MCB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxp Z24gMQotICAgJTQgPSBhbGxvY2EgJWNsYXNzLlZhcnlpbmdXcml0ZXIsIGFsaWduIDMyCi0gICAl NSA9IGFsbG9jYSAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciLCBhbGlnbiAx Ci1AQCAtODg5NiwxMiArODg5NiwxMiBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kxM1ZhcnlpbmdXcml0ZQotICAgJTcg PSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlNCB0byBpOCosICFkYmcgITE2NTIKLSAg ICU4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjUy Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICU3 LCBpOCogYWxpZ24gMzIgJTgsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjUyLCAhdGJhYS5z dHJ1Y3QgITE5NwotLSAgJTkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUVi TlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBi eXZhbCBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiog Ynl2YWwgYWxpZ24gMSAlNSksICFkYmcgITE2NTMKLSsgICU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyTlNfMTZF bmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2LCAlY2xh c3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICU0 LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICU1KSwgIWRiZyAhMTY1MwotICAg cmV0IGkxICU5LCAhZGJnICExNjU0Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lu bGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXJOU18xNkVu Y29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVjbGFzcy5V bmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNjU1IHsKLStkZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29k aW5nSTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdF VF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlm b3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3Jt IiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkg IzI1IGNvbWRhdCAhZGJnICExNjU1IHsKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAl NSA9IGFsbG9jYSAlY2xhc3MuVW5pZm9ybVdyaXRlciwgYWxpZ24gMzIKLSAgICU2ID0gYWxsb2Nh ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIsIGFsaWduIDEKLUBAIC04OTI0 LDcgKzg5MjQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTIyID0gYml0Y2FzdCAl Y2xhc3MuVW5pZm9ybVdyaXRlciogJTUgdG8gaTgqLCAhZGJnICExNjU3Ci0gICAlMjMgPSBiaXRj YXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NTcKLSAgIGNhbGwg dm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTIyLCBpOCogYWxp Z24gMzIgJTIzLCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY1NywgIXRiYWEuc3RydWN0ICEx OTcKLS0gICUyNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVF Yk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjEsICVjbGFzcy5Vbmlmb3JtV3JpdGVy KiBieXZhbCBhbGlnbiAzMiAlNSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3Jt IiogYnl2YWwgYWxpZ24gMSAlNiksICFkYmcgITE2NTgKLSsgICUyNCA9IGNhbGwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmb3Jt V3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCAlMjEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRl cikgYWxpZ24gMzIgJTUsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5 dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTYpLCAh ZGJnICExNjU4Ci0gICBiciBpMSAlMjQsIGxhYmVsICU2MCwgbGFiZWwgJTI1LCAhZGJnICExNjU5 Ci0gCi0gOyA8bGFiZWw+OjI1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7 IHByZWRzID0gJTMKLUBAIC04OTMyLDcgKzg5MzIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRl cgotICAgJTI3ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTcgdG8gaTgqLCAhZGJn ICExNjYxCi0gICAlMjggPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCos ICFkYmcgITE2NjEKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCog YWxpZ24gMzIgJTI3LCBpOCogYWxpZ24gMzIgJTI4LCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAh MTY2MSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUyOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNVbmlmb3JtV3JpdGVyTlNf MTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjYs ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNywgJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlOCksICFkYmcgITE2NjIKLSsg ICUyOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0lpMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZh bCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTcsICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5p Zm9ybSIpIGFsaWduIDEgJTgpLCAhZGJnICExNjYyCi0gICBiciBpMSAlMjksIGxhYmVsICU2MCwg bGFiZWwgJTMwLCAhZGJnICExNjYzCi0gCi0gOyA8bGFiZWw+OjMwOiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTI1Ci1AQCAtODk0MCw3ICs4OTQwLDcgQEAg ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hF bmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICUzMiA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1X cml0ZXIqICU5IHRvIGk4KiwgIWRiZyAhMTY2NQotICAgJTMzID0gYml0Y2FzdCAlY2xhc3MuVW5p Zm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjY1Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVt Y3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICUzMiwgaTgqIGFsaWduIDMyICUzMywgaTY0 IDY0LCBpMSBmYWxzZSksICFkYmcgITE2NjUsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMzQgPSBj YWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2Rp bmdJajEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdF VDBfVDFfKGk4IHNpZ25leHQgJTMxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24g MzIgJTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWdu IDEgJTEwKSwgIWRiZyAhMTY2NgotKyAgJTM0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1VuaWZvcm1Xcml0ZXJOU18xNkVu Y29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzMSwgJWNs YXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAl OSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMTApLCAhZGJnICExNjY2Ci0g ICBiciBpMSAlMzQsIGxhYmVsICU2MCwgbGFiZWwgJTM1LCAhZGJnICExNjY3Ci0gCi0gOyA8bGFi ZWw+OjM1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTMw Ci1AQCAtODk0OCw3ICs4OTQ4LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICUzNyA9 IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxMSB0byBpOCosICFkYmcgITE2NjkKLSAg ICUzOCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY2 OQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAl MzcsIGk4KiBhbGlnbiAzMiAlMzgsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjY5LCAhdGJh YS5zdHJ1Y3QgITE5NwotLSAgJTM5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5n NFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzNiwgJWNsYXNzLlVu aWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxMSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMTIpLCAhZGJnICExNjcwCi0rICAlMzkgPSBj YWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2Rp bmdJZjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdF VDBfVDFfKGk4IHNpZ25leHQgJTM2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNz LlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxMSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikg YWxpZ24gMSAlMTIpLCAhZGJnICExNjcwCi0gICBiciBpMSAlMzksIGxhYmVsICU2MCwgbGFiZWwg JTQwLCAhZGJnICExNjcxCi0gCi0gOyA8bGFiZWw+OjQwOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA7IHByZWRzID0gJTM1Ci1AQCAtODk1Niw3ICs4OTU2LDcgQEAgZGVmaW5l IGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGlu Z0kxM1VuaWZvcm1Xcml0ZXIKLSAgICU0MiA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq ICUxMyB0byBpOCosICFkYmcgITE2NzMKLSAgICU0MyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1X cml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY3MwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5w MGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNDIsIGk4KiBhbGlnbiAzMiAlNDMsIGk2NCA2NCwg aTEgZmFsc2UpLCAhZGJnICExNjczLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTQ0ID0gY2FsbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgx M1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0ICU0MSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUx MywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAl MTQpLCAhZGJnICExNjc0Ci0rICAlNDQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rp bmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQxLCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxMywg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMTQpLCAhZGJnICExNjc0Ci0gICBi ciBpMSAlNDQsIGxhYmVsICU2MCwgbGFiZWwgJTQ1LCAhZGJnICExNjc1Ci0gCi0gOyA8bGFiZWw+ OjQ1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTQwCi1A QCAtODk2NCw3ICs4OTY0LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICU0NyA9IGJp dGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxNSB0byBpOCosICFkYmcgITE2NzcKLSAgICU0 OCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY3Nwot ICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNDcs IGk4KiBhbGlnbiAzMiAlNDgsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjc3LCAhdGJhYS5z dHJ1Y3QgITE5NwotLSAgJTQ5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVu aWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0NiwgJWNsYXNzLlVuaWZv cm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxNSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMTYpLCAhZGJnICExNjc4Ci0rICAlNDkgPSBjYWxs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJ eTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBf VDFfKGk4IHNpZ25leHQgJTQ2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVu aWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxNSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRV bmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxp Z24gMSAlMTYpLCAhZGJnICExNjc4Ci0gICBiciBpMSAlNDksIGxhYmVsICU2MCwgbGFiZWwgJTUw LCAhZGJnICExNjc5Ci0gCi0gOyA8bGFiZWw+OjUwOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA7IHByZWRzID0gJTQ1Ci1AQCAtODk3Miw3ICs4OTcyLDcgQEAgZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kx M1VuaWZvcm1Xcml0ZXIKLSAgICU1MiA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUx NyB0byBpOCosICFkYmcgITE2ODEKLSAgICU1MyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY4MQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4 LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNTIsIGk4KiBhbGlnbiAzMiAlNTMsIGk2NCA2NCwgaTEg ZmFsc2UpLCAhZGJnICExNjgxLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTU0ID0gY2FsbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1Vu aWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0ICU1MSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxNywg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMTgp LCAhZGJnICExNjgyCi0rICAlNTQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0 VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTUxLCAlY2xhc3MuVW5p Zm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxNywgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMTgpLCAhZGJnICExNjgyCi0gICBiciBp MSAlNTQsIGxhYmVsICU2MCwgbGFiZWwgJTU1LCAhZGJnICExNjgzCi0gCi0gOyA8bGFiZWw+OjU1 OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTUwCi1AQCAt ODk4MCw3ICs4OTgwLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICU1NyA9IGJpdGNh c3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxOSB0byBpOCosICFkYmcgITE2ODUKLSAgICU1OCA9 IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY4NQotICAg Y2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNTcsIGk4 KiBhbGlnbiAzMiAlNTgsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjg1LCAhdGJhYS5zdHJ1 Y3QgITE5NwotLSAgJTU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlm b3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTYsICVjbGFzcy5Vbmlmb3Jt V3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTIwKSwgIWRiZyAhMTY4NgotKyAgJTU5ID0gY2FsbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2 MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9U MV8oaTggc2lnbmV4dCAlNTYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5p Zm9ybVdyaXRlcikgYWxpZ24gMzIgJTE5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVu aWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGln biAxICUyMCksICFkYmcgITE2ODYKLSAgIGJyIGxhYmVsICU2MCwgIWRiZyAhMTY4MwotIAotIDsg PGxhYmVsPjo2MDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9 ICU1NSwgJTUwLCAlNDUsICU0MCwgJTM1LCAlMzAsICUyNSwgJTMKLUBAIC04OTg5LDcgKzg5ODks NyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3 aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBh bHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1VuaWZv cm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBz aWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRi ZyAhMTY4OCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0 VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3Jt V3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTY4OCB7Ci0gICAlNCA9 IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3Jl IGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MDE1LDcgKzkwMTUsNyBA QCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdh eXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1VuaWZvcm1X cml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAh MTY5NyB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5p Zm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3Jp dGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTY5NyB7Ci0gICAlNCA9IGFs bG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4 ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MDQxLDcgKzkwNDEsNyBAQCBk ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0lpMTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNp bmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1VuaWZvcm1Xcml0 ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0 LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTcw NiB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9y bUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVy KiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTcwNiB7Ci0gICAlNCA9IGFsbG9j YSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUw LCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MDY3LDcgKzkwNjcsNyBAQCBkZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0lqMTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxp bmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1VuaWZvcm1Xcml0ZXJO U18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAl Y2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTcxNSB7 Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBs eUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVF RWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBi eXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5p Zm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTcxNSB7Ci0gICAlNCA9IGFsbG9jYSBp MSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBp OCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MDkzLDcgKzkwOTMsNyBAQCBkZWZpbmUg aW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJF bmNvZGluZ0lmMTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUg aW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1VuaWZvcm1Xcml0ZXJOU18x NkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xh c3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTcyNCB7Ci0r ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJeDEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJO U184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZh bCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9y bSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTcyNCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwg YWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCog JTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MTE5LDcgKzkxMTksNyBAQCBkZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNv ZGluZ0l4MTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5s aW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1VuaWZvcm1Xcml0ZXJOU18xNkVu Y29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTczMyB7Ci0rZGVm aW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJv cGVyRW5jb2RpbmdJeTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184 RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCgl Y2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIp IGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTczMyB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxp Z24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUs IGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MTQ1LDcgKzkxNDUsNyBAQCBkZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0l5MTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5l aGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29k aW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5p Zm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTc0MiB7Ci0rZGVmaW5l IGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVy RW5jb2RpbmdJZDEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5j b2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xh c3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFs aWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTc0MiB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24g MQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFs aWduIDEsICF0YmFhICExOTMKLUBAIC05MTcxLDcgKzkxNzEsNyBAQCBkZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lk MTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGlu dCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGlu ZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZv cm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVu aWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3NTEgewotK2RlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSVB2MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNv ZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFz cy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRV bmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxp Z24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzUxIHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAx Ci0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxp Z24gMSwgIXRiYWEgITE5MwotQEAgLTEwMDEzLDcgKzEwMDEzLDcgQEAgZGVmaW5lIGludGVybmFs IGkzMiBAX1pON2RldGFpbHMxOF9jbV9wcmludF90eXBlX29jbElQdkVFTlNfMThTSEFERVJfUFJJ TlRGX1RZUEUKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhp bnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWlu Z0VFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIq IGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBi eXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIwNjEgewotK2RlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5n V3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWdu ZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFk YmcgITIwNjEgewotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhICVj bGFzcy5WYXJ5aW5nV3JpdGVyLCBhbGlnbiAzMgotICAgJTYgPSBhbGxvY2EgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiwgYWxpZ24gMQotQEAgLTEwMDM2LDcgKzEwMDM2LDcg QEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0 Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICUyMiA9IGJpdGNhc3QgJWNsYXNzLlZhcnlp bmdXcml0ZXIqICU1IHRvIGk4KiwgIWRiZyAhMjA2MwotICAgJTIzID0gYml0Y2FzdCAlY2xhc3Mu VmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDYzCi0gICBjYWxsIHZvaWQgQGxsdm0u bWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICUyMiwgaTgqIGFsaWduIDMyICUyMywg aTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITIwNjMsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMjQg PSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5j b2RpbmdJYjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2Rp bmdFVDBfVDFfKGk4IHNpZ25leHQgJTIxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxp Z24gMzIgJTUsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFs aWduIDEgJTYpLCAhZGJnICEyMDY0Ci0rICAlMjQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVmFyeWluZ1dyaXRlck5TXzE2 RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTIxLCAl Y2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMy ICU1LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICU2KSwgIWRiZyAhMjA2NAot ICAgYnIgaTEgJTI0LCBsYWJlbCAlNjAsIGxhYmVsICUyNSwgIWRiZyAhMjA2NQotIAotIDsgPGxh YmVsPjoyNTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUz Ci1AQCAtMTAwNDQsNyArMTAwNDQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTI3 ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTcgdG8gaTgqLCAhZGJnICEyMDY3Ci0g ICAlMjggPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIw NjcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIg JTI3LCBpOCogYWxpZ24gMzIgJTI4LCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA2NywgIXRi YWEuc3RydWN0ICExOTcKLS0gICUyOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGlu ZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjYsICVjbGFzcy5W YXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlOCksICFkYmcgITIwNjgKLSsgICUyOSA9IGNh bGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0lpMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCAlMjYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3Mu VmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFs aWduIDEgJTgpLCAhZGJnICEyMDY4Ci0gICBiciBpMSAlMjksIGxhYmVsICU2MCwgbGFiZWwgJTMw LCAhZGJnICEyMDY5Ci0gCi0gOyA8bGFiZWw+OjMwOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA7IHByZWRzID0gJTI1Ci1AQCAtMTAwNTIsNyArMTAwNTIsNyBAQCBkZWZpbmUg aW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5n STEzVmFyeWluZ1dyaXRlcgotICAgJTMyID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciog JTkgdG8gaTgqLCAhZGJnICEyMDcxCi0gICAlMzMgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3Jp dGVyKiAlMSB0byBpOCosICFkYmcgITIwNzEKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBp OC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTMyLCBpOCogYWxpZ24gMzIgJTMzLCBpNjQgNjQsIGkx IGZhbHNlKSwgIWRiZyAhMjA3MSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUzNCA9IGNhbGwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNW YXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8o aTggc2lnbmV4dCAlMzEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlOSwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlMTAp LCAhZGJnICEyMDcyCi0rICAlMzQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0 VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTMxLCAlY2xhc3MuVmFy eWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICU5LCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUxMCksICFkYmcgITIwNzIKLSAgIGJyIGkx ICUzNCwgbGFiZWwgJTYwLCBsYWJlbCAlMzUsICFkYmcgITIwNzMKLSAKLSA7IDxsYWJlbD46MzU6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMzAKLUBAIC0x MDA2MCw3ICsxMDA2MCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlMzcgPSBiaXRj YXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMTEgdG8gaTgqLCAhZGJnICEyMDc1Ci0gICAlMzgg PSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwNzUKLSAg IGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTM3LCBp OCogYWxpZ24gMzIgJTM4LCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA3NSwgIXRiYWEuc3Ry dWN0ICExOTcKLS0gICUzOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5 aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzYsICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTEsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTEyKSwgIWRiZyAhMjA3NgotKyAgJTM5ID0gY2FsbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYx M1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0ICUzNiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5 aW5nV3JpdGVyKSBhbGlnbiAzMiAlMTEsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFy eWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWdu IDEgJTEyKSwgIWRiZyAhMjA3NgotICAgYnIgaTEgJTM5LCBsYWJlbCAlNjAsIGxhYmVsICU0MCwg IWRiZyAhMjA3NwotIAotIDsgPGxhYmVsPjo0MDogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOyBwcmVkcyA9ICUzNQotQEAgLTEwMDY4LDcgKzEwMDY4LDcgQEAgZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kx M1ZhcnlpbmdXcml0ZXIKLSAgICU0MiA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUx MyB0byBpOCosICFkYmcgITIwNzkKLSAgICU0MyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA3OQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4 LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNDIsIGk4KiBhbGlnbiAzMiAlNDMsIGk2NCA2NCwgaTEg ZmFsc2UpLCAhZGJnICEyMDc5LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTQ0ID0gY2FsbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1Zh cnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0ICU0MSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxMywg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlMTQp LCAhZGJnICEyMDgwCi0rICAlNDQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0 VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQxLCAlY2xhc3MuVmFy eWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUxMywgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMTQpLCAhZGJnICEyMDgwCi0gICBiciBp MSAlNDQsIGxhYmVsICU2MCwgbGFiZWwgJTQ1LCAhZGJnICEyMDgxCi0gCi0gOyA8bGFiZWw+OjQ1 OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTQwCi1AQCAt MTAwNzYsNyArMTAwNzYsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTQ3ID0gYml0 Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTE1IHRvIGk4KiwgIWRiZyAhMjA4MwotICAgJTQ4 ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDgzCi0g ICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICU0Nywg aTgqIGFsaWduIDMyICU0OCwgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITIwODMsICF0YmFhLnN0 cnVjdCAhMTk3Ci0tICAlNDkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFy eWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQ2LCAlY2xhc3MuVmFyeWlu Z1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTE1LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICUxNiksICFkYmcgITIwODQKLSsgICU0OSA9IGNhbGwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5 MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9U MV8oaTggc2lnbmV4dCAlNDYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFy eWluZ1dyaXRlcikgYWxpZ24gMzIgJTE1LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZh cnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGln biAxICUxNiksICFkYmcgITIwODQKLSAgIGJyIGkxICU0OSwgbGFiZWwgJTYwLCBsYWJlbCAlNTAs ICFkYmcgITIwODUKLSAKLSA7IDxsYWJlbD46NTA6ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDsgcHJlZHMgPSAlNDUKLUBAIC0xMDA4NCw3ICsxMDA4NCw3IEBAIGRlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJ MTNWYXJ5aW5nV3JpdGVyCi0gICAlNTIgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAl MTcgdG8gaTgqLCAhZGJnICEyMDg3Ci0gICAlNTMgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3Jp dGVyKiAlMSB0byBpOCosICFkYmcgITIwODcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBp OC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTUyLCBpOCogYWxpZ24gMzIgJTUzLCBpNjQgNjQsIGkx IGZhbHNlKSwgIWRiZyAhMjA4NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICU1NCA9IGNhbGwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNW YXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8o aTggc2lnbmV4dCAlNTEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTcs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTE4 KSwgIWRiZyAhMjA4OAotKyAgJTU0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5n NFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1MSwgJWNsYXNzLlZh cnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlMTcsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTE4KSwgIWRiZyAhMjA4OAotICAgYnIg aTEgJTU0LCBsYWJlbCAlNjAsIGxhYmVsICU1NSwgIWRiZyAhMjA4OQotIAotIDsgPGxhYmVsPjo1 NTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU1MAotQEAg LTEwMDkyLDcgKzEwMDkyLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICU1NyA9IGJp dGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxOSB0byBpOCosICFkYmcgITIwOTEKLSAgICU1 OCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA5MQot ICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNTcs IGk4KiBhbGlnbiAzMiAlNTgsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDkxLCAhdGJhYS5z dHJ1Y3QgITE5NwotLSAgJTU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRW YXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTYsICVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTIwKSwgIWRiZyAhMjA5MgotKyAgJTU5ID0gY2Fs bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SVB2MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCAlNTYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3Mu VmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTE5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBh bGlnbiAxICUyMCksICFkYmcgITIwOTIKLSAgIGJyIGxhYmVsICU2MCwgIWRiZyAhMjA4OQotIAot IDsgPGxhYmVsPjo2MDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVk cyA9ICU1NSwgJTUwLCAlNDUsICU0MCwgJTM1LCAlMzAsICUyNSwgJTMKLUBAIC0xMDEwMSw3ICsx MDEwMSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEz VmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRh dCAhZGJnICEyMDk0IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNv ZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZh cnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMDk0IHsKLSAg ICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAg c3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTEwMTI3LDcgKzEw MTI3LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVmFyeWkKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRy czogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNW YXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8o aTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0 ICFkYmcgITIxMDMgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29k aW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFy eWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMDMgewotICAg JTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBz dG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtMTAxNTMsNyArMTAx NTMsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNWYXJ5aQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1Zh cnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQg IWRiZyAhMjExMiB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rp bmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjExMiB7Ci0gICAl NCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0 b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC0xMDE3OSw3ICsxMDE3 OSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1ZhcnlpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVmFy eWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAh ZGJnICEyMTIxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGlu ZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlp bmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTIxIHsKLSAgICU0 ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3Rv cmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTEwMjA1LDcgKzEwMjA1 LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVmFyeWkKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczog YWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNWYXJ5 aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTgg c2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFk YmcgITIxMzAgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5n NFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWlu Z1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMzAgewotICAgJTQg PSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9y ZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtMTAyMzEsNyArMTAyMzEs NyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNWYXJ5aQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBh bHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1Zhcnlp bmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBz aWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRi ZyAhMjEzOSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0 VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjEzOSB7Ci0gICAlNCA9 IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3Jl IGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC0xMDI1Nyw3ICsxMDI1Nyw3 IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSXkxM1ZhcnlpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFs d2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVmFyeWlu Z1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJn ICEyMTQ4IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRW YXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdX cml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTQ4IHsKLSAgICU0ID0g YWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUg aTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTEwMjgzLDcgKzEwMjgzLDcg QEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBs eUlmUHJvcGVyRW5jb2RpbmdJZDEzVmFyeWkKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3 YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVmFyeWlu Z1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJn ICEyMTU3IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0 VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjE1NyB7Ci0gICAlNCA9 IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3Jl IGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv aXNwYy90ZW1wbGF0ZSBiL3NyY3BrZ3MvaXNwYy90ZW1wbGF0ZQppbmRleCA5YzNhY2I0MmE5Y2Yu LjY4ZmVkNWE0YzY1OSAxMDA2NDQKLS0tIGEvc3JjcGtncy9pc3BjL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvaXNwYy90ZW1wbGF0ZQpAQCAtMSwxMCArMSwxMCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZv ciAnaXNwYycKIHBrZ25hbWU9aXNwYwotdmVyc2lvbj0xLjE1LjAKLXJldmlzaW9uPTIKK3ZlcnNp b249MS4xNy4wCityZXZpc2lvbj0xCiBhcmNocz0ieDg2XzY0KiIKIGJ1aWxkX3N0eWxlPWNtYWtl Ci1jb25maWd1cmVfYXJncz0iLURJU1BDX05PX0RVTVBTPU9OIC1EQVJNX0VOQUJMRUQ9T0ZGIgor Y29uZmlndXJlX2FyZ3M9Ii1ESVNQQ19OT19EVU1QUz1PTiAtREFSTV9FTkFCTEVEPU9GRiAtRENN QUtFX0JVSUxEX1RZUEU9UmVsZWFzZSIKIGhvc3RtYWtlZGVwZW5kcz0iY2xhbmcgY2xhbmctdG9v bHMtZXh0cmEgcHl0aG9uMyBtNCBiaXNvbiBmbGV4IGxsdm0iCiBtYWtlZGVwZW5kcz0ibmN1cnNl cy1kZXZlbCBuY3Vyc2VzLWxpYnRpbmZvLWRldmVsIHpsaWItZGV2ZWwiCiBzaG9ydF9kZXNjPSJD b21waWxlciBmb3IgaGlnaC1wZXJmb3JtYW5jZSBTSU1EIHByb2dyYW1taW5nIG9uIHRoZSBDUFUi CkBAIC0xMiw3ICsxMiw3IEBAIG1haW50YWluZXI9IkFuZHJlYSBCcmFuY2FsZW9uaSA8YWJjQHBv bXBlbC5tZT4iCiBsaWNlbnNlPSJCU0QtMy1DbGF1c2UiCiBob21lcGFnZT0iaHR0cHM6Ly9pc3Bj LmdpdGh1Yi5pbyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL2lzcGMvaXNwYy9hcmNo aXZlL3Yke3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPTI2NThmZjAwZGMwNDVhYzlmY2VmYmY2 YmQyNmRmZmFmNzIzYjA1OWE5NDJhMjdkZjkxYmJiNjFiYzUwM2EyODUKK2NoZWNrc3VtPTM3ZmIx MDU1ZDZjNmIyMzJlMTEyZDhkNTAxNDVkNzI2ODI0ZWQ0ZDhkYTkzYTczOTYzMTVkY2ViYTZjNzZl NjIKIG5vY3Jvc3M9eWVzCiBub3BpZT15ZXMKIAoKRnJvbSBhMWQzOWM4ZmY1ZTgwYTk0Yzk4ZDhk NGI5M2E3MzMzZDY2MjBkNDMyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04 P3E/QW5kcj1DMz1BOT0yMENlcnF1ZWlyYT89IDxhY2VycXVlaXJhMDIxQGdtYWlsLmNvbT4KRGF0 ZTogTW9uLCAyOCBGZWIgMjAyMiAyMTo0NzoyNCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMTgvMzFd IHppZzogdXBkYXRlIHRvIDAuOS4xLgoKLS0tCiAuLi4vMDAwMS1zdGQuYnVpbGQtZml4LWhhbmRs aW5nLW9mLURjcHUucGF0Y2ggfCA0OCAtLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL3ppZy90 ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgOCArKy0tCiAyIGZpbGVzIGNoYW5n ZWQsIDQgaW5zZXJ0aW9ucygrKSwgNTIgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQg c3JjcGtncy96aWcvcGF0Y2hlcy8wMDAxLXN0ZC5idWlsZC1maXgtaGFuZGxpbmctb2YtRGNwdS5w YXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvemlnL3BhdGNoZXMvMDAwMS1zdGQuYnVpbGQtZml4 LWhhbmRsaW5nLW9mLURjcHUucGF0Y2ggYi9zcmNwa2dzL3ppZy9wYXRjaGVzLzAwMDEtc3RkLmJ1 aWxkLWZpeC1oYW5kbGluZy1vZi1EY3B1LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCA0MTAxZjI0NDU5YmIuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3ppZy9wYXRjaGVz LzAwMDEtc3RkLmJ1aWxkLWZpeC1oYW5kbGluZy1vZi1EY3B1LnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsNDggKzAsMCBAQAotRnJvbSAxZThjZGFjZTdhZDMyNGE0MjIyOGFlYjVjZDZlYjhkZDE1 NDI5NDEzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSXNhYWMgRnJldW5kIDxpZnJl dW5kQGlmcmV1bmQueHl6PgotRGF0ZTogVHVlLCAyMSBTZXAgMjAyMSAyMTowNjoxMCArMDIwMAot U3ViamVjdDogW1BBVENIXSBzdGQuYnVpbGQ6IGZpeCBoYW5kbGluZyBvZiAtRGNwdQotCi1DdXJy ZW50bHkgLURjcHUgaXMgY29tcGxldGVseSBpZ25vcmVkIGlmIC1EdGFyZ2V0IGlzbid0IHBhc3Nl ZCBhcyB3ZWxsLgotRnVydGhlciwgLURjcHU9YmFzZWxpbmUgaXMgaWdub3JlZCBldmVuIGlmIC1E dGFyZ2V0PW5hdGl2ZSBpcyBwYXNzZWQuCi0KLVRoaXMgcGF0Y2ggZml4ZXMgdGhlc2UgMiBpc3N1 ZXMsIGFsd2F5cyByZXNwZWN0aW5nIHRoZSAtRGNwdSBvcHRpb24gaWYKLXByZXNlbnQuCi0tLS0K LSBsaWIvc3RkL2J1aWxkLnppZyB8IDEzICsrKysrKystLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwg NyBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbGliL3N0ZC9i dWlsZC56aWcgYi9saWIvc3RkL2J1aWxkLnppZwotaW5kZXggOWI3ZWJiMWY0Li5lMzk4NTI5Zjkg MTAwNjQ0Ci0tLS0gYS9saWIvc3RkL2J1aWxkLnppZwotKysrIGIvbGliL3N0ZC9idWlsZC56aWcK LUBAIC02ODUsNyArNjg1LDExIEBAIHB1YiBjb25zdCBCdWlsZGVyID0gc3RydWN0IHsKLSAgICAg ICAgICk7Ci0gICAgICAgICBjb25zdCBtY3B1ID0gc2VsZi5vcHRpb24oW11jb25zdCB1OCwgImNw dSIsICJUYXJnZXQgQ1BVIik7Ci0gCi0tICAgICAgICBjb25zdCB0cmlwbGUgPSBtYXliZV90cmlw bGUgb3JlbHNlIHJldHVybiBhcmdzLmRlZmF1bHRfdGFyZ2V0OwotKyAgICAgICAgaWYgKG1heWJl X3RyaXBsZSA9PSBudWxsIGFuZCBtY3B1ID09IG51bGwpIHsKLSsgICAgICAgICAgICByZXR1cm4g YXJncy5kZWZhdWx0X3RhcmdldDsKLSsgICAgICAgIH0KLSsKLSsgICAgICAgIGNvbnN0IHRyaXBs ZSA9IG1heWJlX3RyaXBsZSBvcmVsc2UgIm5hdGl2ZSI7Ci0gCi0gICAgICAgICB2YXIgZGlhZ3M6 IENyb3NzVGFyZ2V0LlBhcnNlT3B0aW9ucy5EaWFnbm9zdGljcyA9IC57fTsKLSAgICAgICAgIGNv bnN0IHNlbGVjdGVkX3RhcmdldCA9IENyb3NzVGFyZ2V0LnBhcnNlKC57Ci1AQCAtMjQ1MSwxMSAr MjQ1NSw4IEBAIHB1YiBjb25zdCBMaWJFeGVPYmpTdGVwID0gc3RydWN0IHsKLSAKLSAgICAgICAg ICAgICBpZiAocG9wdWxhdGVkX2NwdV9mZWF0dXJlcy5lcWwoY3Jvc3MuY3B1LmZlYXR1cmVzKSkg ewotICAgICAgICAgICAgICAgICAvLyBUaGUgQ1BVIG5hbWUgYWxvbmUgaXMgc3VmZmljaWVudC4K LS0gICAgICAgICAgICAgICAgLy8gSWYgaXQgaXMgdGhlIGJhc2VsaW5lIENQVSwgbm8gY29tbWFu ZCBsaW5lIGFyZ3MgYXJlIHJlcXVpcmVkLgotLSAgICAgICAgICAgICAgICBpZiAoY3Jvc3MuY3B1 Lm1vZGVsICE9IHN0ZC5UYXJnZXQuQ3B1LmJhc2VsaW5lKGNyb3NzLmNwdS5hcmNoKS5tb2RlbCkg ewotLSAgICAgICAgICAgICAgICAgICAgdHJ5IHppZ19hcmdzLmFwcGVuZCgiLW1jcHUiKTsKLS0g ICAgICAgICAgICAgICAgICAgIHRyeSB6aWdfYXJncy5hcHBlbmQoY3Jvc3MuY3B1Lm1vZGVsLm5h bWUpOwotLSAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgIHRyeSB6aWdfYXJncy5h cHBlbmQoIi1tY3B1Iik7Ci0rICAgICAgICAgICAgICAgIHRyeSB6aWdfYXJncy5hcHBlbmQoY3Jv c3MuY3B1Lm1vZGVsLm5hbWUpOwotICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg ICAgIHZhciBtY3B1X2J1ZmZlciA9IHN0ZC5BcnJheUxpc3QodTgpLmluaXQoYnVpbGRlci5hbGxv Y2F0b3IpOwotIAotLS0gCi0yLjMzLjEKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy96aWcvdGVtcGxh dGUgYi9zcmNwa2dzL3ppZy90ZW1wbGF0ZQppbmRleCA3MjhjNWE2NGU5ZGYuLjQ4MzJjODkzODE2 MCAxMDA2NDQKLS0tIGEvc3JjcGtncy96aWcvdGVtcGxhdGUKKysrIGIvc3JjcGtncy96aWcvdGVt cGxhdGUKQEAgLTEsMTcgKzEsMTcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3ppZycKIHBrZ25h bWU9emlnCi12ZXJzaW9uPTAuOC4xCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTAuOS4xCityZXZpc2lv bj0xCiBhcmNocz0ieDg2XzY0KiBhYXJjaDY0KiIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBtYWtlX2Nt ZD1tYWtlCi1tYWtlZGVwZW5kcz0iY2xhbmcgbGx2bTEyIGxsZC1kZXZlbCIKK21ha2VkZXBlbmRz PSJjbGFuZyBsbHZtMTMgbGxkLWRldmVsIgogc2hvcnRfZGVzYz0iUHJvZ3JhbW1pbmcgbGFuZ3Vh Z2UgZGVzaWduZWQgZm9yIHJvYnVzdG5lc3MsIG9wdGltYWxpdHksIGFuZCBjbGFyaXR5IgogbWFp bnRhaW5lcj0iSXNhYWMgRnJldW5kIDxtYWlsQGlzYWFjZnJldW5kLmNvbT4iCiBsaWNlbnNlPSJN SVQiCiBob21lcGFnZT0iaHR0cHM6Ly96aWdsYW5nLm9yZyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly96 aWdsYW5nLm9yZy9kb3dubG9hZC8ke3ZlcnNpb259L3ppZy0ke3ZlcnNpb259LnRhci54eiIKLWNo ZWNrc3VtPThjNDI4ZTE0YTBhODljYjdhMTVhNjc2ODQyNGEzNzQ0MjI5Mjg1OGNkYjY5NWUyZWI1 MDNmYTNjN2JmNDdmMWEKK2NoZWNrc3VtPTM4Y2Y0ZTg0NDgxZjVmYWNjNzY2YmE3Mjc4M2U3NDYy ZTA4ZDZkMjlhNWQ0N2UzYjc1YzhlZTMxNDI0ODUyMTAKIG5vcGllPXllcwogbm9jcm9zcz15ZXMK IAoKRnJvbSAzZjc3YjJmOWM1YWFkZmE0Nzc1YjdmNjJlNWMwM2YzMjk1MjRhYjY0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/QW5kcj1DMz1BOT0yMENlcnF1ZWlyYT89 IDxhY2VycXVlaXJhMDIxQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAyOCBGZWIgMjAyMiAyMTo1Mjow NyArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMTkvMzFdIGJlaWduZXQ6IHJlbW92ZSBwYWNrYWdlCgot LS0KIHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2NsX3VpbnQucGF0Y2ggICAgICAgICB8ICAyMiAt CiAuLi40MTlhMDAwOGUzOGVmMmQ5ZDI1NWQ5ZTljNzRlOWZiYTA4NGIucGF0Y2ggfCAxMzQgLS0t CiBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDYucGF0Y2ggICAgICAgICAgfCAgMzMgLQog c3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA4LnBhdGNoICAgICAgICAgIHwgIDU2IC0tCiBz cmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDkucGF0Y2ggICAgICAgICAgfCAxMTEgLS0tCiBz cmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTAucGF0Y2ggICAgICAgICAgfCAzNDcgLS0tLS0t LQogc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTExLnBhdGNoICAgICAgICAgIHwgOTM3IC0t LS0tLS0tLS0tLS0tLS0tLQogc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTEyLnBhdGNoICAg ICAgICAgIHwgMTE1IC0tLQogc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbXVzbC5wYXRjaCAgICAg ICAgICAgIHwgIDExIC0KIHNyY3BrZ3MvYmVpZ25ldC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAg ICAgICB8ICAyMiAtCiBzcmNwa2dzL2JlaWduZXQvdXBkYXRlICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDEgLQogc3JjcGtncy9yZW1vdmVkLXBhY2thZ2VzL3RlbXBsYXRlICAgICAgICAgICAg IHwgICAxICsKIDEyIGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxNzg5IGRlbGV0aW9u cygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2NsX3VpbnQu cGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9lMWIyNDE5 YTAwMDhlMzhlZjJkOWQyNTVkOWU5Yzc0ZTlmYmEwODRiLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA2LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA4LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA5LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTEwLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTExLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTEyLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbXVzbC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvYmVpZ25ldC90ZW1wbGF0ZQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvYmVp Z25ldC91cGRhdGUKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9jbF91aW50 LnBhdGNoIGIvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvY2xfdWludC5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggODZiYTAwZjA0ZTk1Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy9iZWlnbmV0L3BhdGNoZXMvY2xfdWludC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIy ICswLDAgQEAKLS0tLSBhL3NyYy9jbF9hcGlfa2VybmVsLmMJMjAxNy0wOS0yMiAxMDowNToyMi4w MDAwMDAwMDAgKzAyMDAKLSsrKyBiL3NyYy9jbF9hcGlfa2VybmVsLmMJMjAyMC0wMy0yNCAxODoy Nzo0MC4xODY0ODU4ODcgKzAxMDAKLUBAIC0xNTEsNyArMTUxLDcgQEAKLSAgICAgICAgIGZpeGVk X2xvY2FsX3N6WzBdID0gMTY7Ci0gICAgICAgICBmaXhlZF9sb2NhbF9zelsxXSA9IDE7Ci0gICAg ICAgfSBlbHNlIHsKLS0gICAgICAgIHVpbnQgaiwgbWF4RGltU2l6ZSA9IDY0IC8qIGZyb20gNjQ/ ICovLCBtYXhHcm91cFNpemUgPSAyNTY7IC8vTUFYX1dPUktfR1JPVVBfU0laRSBtYXkgdG9vIGxh cmdlCi0rICAgICAgICBjbF91aW50IGosIG1heERpbVNpemUgPSA2NCAvKiBmcm9tIDY0PyAqLywg bWF4R3JvdXBTaXplID0gMjU2OyAvL01BWF9XT1JLX0dST1VQX1NJWkUgbWF5IHRvbyBsYXJnZQot ICAgICAgICAgc2l6ZV90IHJlYWxHcm91cFNpemUgPSAxOwotICAgICAgICAgZm9yIChpID0gMDsg aSA8IHdvcmtfZGltOyBpKyspIHsKLSAgICAgICAgICAgZm9yIChqID0gbWF4RGltU2l6ZTsgaiA+ IDE7IGotLSkgewotLS0tIGEvc3JjL2NsX2VucXVldWUuYwkyMDE3LTA5LTIyIDEwOjA1OjIyLjAw MDAwMDAwMCArMDIwMAotKysrIGIvc3JjL2NsX2VucXVldWUuYwkyMDIwLTAzLTI0IDE4OjMwOjEy LjAzMTQ3OTgzMyArMDEwMAotQEAgLTQ5NCw3ICs0OTQsNyBAQAotIGNsX2ludCBjbF9lbnF1ZXVl X3N2bV9mcmVlKGVucXVldWVfZGF0YSAqZGF0YSwgY2xfaW50IHN0YXR1cykgewotICAgaW50IGk7 Ci0gICB2b2lkICoqcG9pbnRlcnMgPSBkYXRhLT5wb2ludGVyczsKLS0gIHVpbnQgbnVtX3N2bV9w dHJzID0gZGF0YS0+c2l6ZTsKLSsgIGNsX3VpbnQgbnVtX3N2bV9wdHJzID0gZGF0YS0+c2l6ZTsK LSAgIGNsX2ludCBlcnIgPSBDTF9TVUNDRVNTOwotIAotICAgaWYgKHN0YXR1cyAhPSBDTF9DT01Q TEVURSkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2UxYjI0MTlhMDAwOGUz OGVmMmQ5ZDI1NWQ5ZTljNzRlOWZiYTA4NGIucGF0Y2ggYi9zcmNwa2dzL2JlaWduZXQvcGF0Y2hl cy9lMWIyNDE5YTAwMDhlMzhlZjJkOWQyNTVkOWU5Yzc0ZTlmYmEwODRiLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZGU5ZTZlMmYwOTMuLjAwMDAwMDAwMDAwMAotLS0gYS9z cmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9lMWIyNDE5YTAwMDhlMzhlZjJkOWQyNTVkOWU5Yzc0ZTlm YmEwODRiLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTM0ICswLDAgQEAKLUZyb20gZTFiMjQx OWEwMDA4ZTM4ZWYyZDlkMjU1ZDllOWM3NGU5ZmJhMDg0YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKLUZyb206ICJSZWJlY2NhIE4uIFBhbG1lciIgPHJlYmVjY2FfcGFsbWVyQHpvaG8uY29tPgot RGF0ZTogU2F0LCAyMSBKdWwgMjAxOCAyMDowNTo1NCArMDEwMAotU3ViamVjdDogQWRkIHByZWxp bWluYXJ5IExMVk0gNyBzdXBwb3J0Ci0KLVRoaXMgaXMgcHJlbGltaW5hcnkgYmVjYXVzZSBMTFZN IDcgaGFzIG5vdCBiZWVuIHJlbGVhc2VkIHlldDoKLWl0IHdhcyB0ZXN0ZWQgd2l0aCB0aGUgc25h cHNob3QgZnJvbSBEZWJpYW4gZXhwZXJpbWVudGFsIChzdm4zMzY4OTQpLgotCi0xLkNoYW5nZSBs aW5raW5nIG9yZGVyLCBhcyBjbGFuZ0NvZGVHZW4gbm93IGxpbmtzIHRvIGNsYW5nRnJvbnRlbmQK LTIuUGFzcyByZWZlcmVuY2VzIG5vdCBwb2ludGVycyB0byBXcml0ZUJpdGNvZGVUb0ZpbGUgYW5k IENsb25lTW9kdWxlCi0zLkFkZCB0aGUgaGVhZGVycyB0aGF0IExvb3BTaW1wbGlmeUlELCBMQ1NT QUlEIGFuZAotc29tZSBjcmVhdGUqUGFzcyBoYXZlIG1vdmVkIHRvCi00LkRlZmluZSBvdXIgREVC VUcgd2hldGhlciBvciBub3Qgd2UganVzdCB1bmRlZmluZWQgTExWTSdzCi0odGhlaXJzIGlzIG5v dyBMTFZNX0RFQlVHLCBidXQgd2UgbmV2ZXIgYWN0dWFsbHkgdXNlIGl0KQotCi1TaWduZWQtb2Zm LWJ5OiBSZWJlY2NhIE4uIFBhbG1lciA8cmViZWNjYV9wYWxtZXJAem9oby5jb20+Ci1SZXZpZXdl ZC1ieTogWWFuZyBSb25nIDxyb25nLnIueWFuZ0BpbnRlbC5jb20+Ci0tLS0KLSBDTWFrZS9GaW5k TExWTS5jbWFrZSAgICAgICAgICAgICAgICAgICAgIHwgMiArLQotIGJhY2tlbmQvc3JjL2JhY2tl bmQvZ2VuX3Byb2dyYW0uY3BwICAgICAgfCA4ICsrKysrKysrCi0gYmFja2VuZC9zcmMvYmFja2Vu ZC9wcm9ncmFtLmNwcCAgICAgICAgICB8IDQgKysrKwotIGJhY2tlbmQvc3JjL2xsdm0vRXhwYW5k TGFyZ2VJbnRlZ2Vycy5jcHAgfCAyICstCi0gYmFja2VuZC9zcmMvbGx2bS9sbHZtX2JpdGNvZGVf bGluay5jcHAgICB8IDQgKysrKwotIGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbmNsdWRlcy5ocHAg ICAgICAgfCA0ICsrKysKLSA2IGZpbGVzIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9DTWFrZS9GaW5kTExWTS5jbWFrZSBiL0NNYWtlL0Zp bmRMTFZNLmNtYWtlCi1pbmRleCA1NDU3ZjI0Li5mODgyNTg5IDEwMDY0NAotLS0tIGEvQ01ha2Uv RmluZExMVk0uY21ha2UKLSsrKyBiL0NNYWtlL0ZpbmRMTFZNLmNtYWtlCi1AQCAtMTEzLDEwICsx MTMsMTAgQEAgbWFjcm8oYWRkX29uZV9saWIgbmFtZSkKLSBlbmRtYWNybygpCi0gCi0gI0Fzc3Vt ZSBjbGFuZyBsaWIgcGF0aCBzYW1lIGFzIGxsdm0gbGliIHBhdGgKLSthZGRfb25lX2xpYigiY2xh bmdDb2RlR2VuIikKLSBhZGRfb25lX2xpYigiY2xhbmdGcm9udGVuZCIpCi0gYWRkX29uZV9saWIo ImNsYW5nU2VyaWFsaXphdGlvbiIpCi0gYWRkX29uZV9saWIoImNsYW5nRHJpdmVyIikKLS1hZGRf b25lX2xpYigiY2xhbmdDb2RlR2VuIikKLSBhZGRfb25lX2xpYigiY2xhbmdTZW1hIikKLSBhZGRf b25lX2xpYigiY2xhbmdTdGF0aWNBbmFseXplckZyb250ZW5kIikKLSBhZGRfb25lX2xpYigiY2xh bmdTdGF0aWNBbmFseXplckNoZWNrZXJzIikKLWRpZmYgLS1naXQgYS9iYWNrZW5kL3NyYy9iYWNr ZW5kL2dlbl9wcm9ncmFtLmNwcCBiL2JhY2tlbmQvc3JjL2JhY2tlbmQvZ2VuX3Byb2dyYW0uY3Bw Ci1pbmRleCAyNzRjOTljLi40MTU5MjM0IDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvYmFja2Vu ZC9nZW5fcHJvZ3JhbS5jcHAKLSsrKyBiL2JhY2tlbmQvc3JjL2JhY2tlbmQvZ2VuX3Byb2dyYW0u Y3BwCi1AQCAtNDU0LDcgKzQ1NCwxMSBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAjaWZkZWYgR0JFX0NP TVBJTEVSX0FWQUlMQUJMRQotICAgICAgIHN0ZDo6c3RyaW5nIHN0cjsKLSAgICAgICBsbHZtOjpy YXdfc3RyaW5nX29zdHJlYW0gT1Moc3RyKTsKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SID49IDcK LSsgICAgICBsbHZtOjpXcml0ZUJpdGNvZGVUb0ZpbGUoKigobGx2bTo6TW9kdWxlKilwcm9nLT5t b2R1bGUpLCBPUyk7Ci0rI2Vsc2UKLSAgICAgICBsbHZtOjpXcml0ZUJpdGNvZGVUb0ZpbGUoKGxs dm06Ok1vZHVsZSopcHJvZy0+bW9kdWxlLCBPUyk7Ci0rI2VuZGlmCi0gICAgICAgc3RkOjpzdHJp bmcmIGJpbl9zdHIgPSBPUy5zdHIoKTsKLSAgICAgICBpbnQgbGxzeiA9IGJpbl9zdHIuc2l6ZSgp OwotICAgICAgICpiaW5hcnkgPSAoY2hhciAqKW1hbGxvYyhzaXplb2YoY2hhcikgKiAobGxzeisx KSApOwotQEAgLTU0NSw3ICs1NDksMTEgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJm1vZFJlZik7Ci0gICAgICAgICBzcmMgPSBsbHZtOjp1 bndyYXAobW9kUmVmKTsKLSAgICAgICB9Ci0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiA+PSA3Ci0r ICAgICAgbGx2bTo6TW9kdWxlKiBjbG9uZSA9IGxsdm06OkNsb25lTW9kdWxlKCpzcmMpLnJlbGVh c2UoKTsKLSsjZWxzZQotICAgICAgIGxsdm06Ok1vZHVsZSogY2xvbmUgPSBsbHZtOjpDbG9uZU1v ZHVsZShzcmMpLnJlbGVhc2UoKTsKLSsjZW5kaWYKLSAgICAgICBpZiAoTExWTUxpbmtNb2R1bGVz Mih3cmFwKGRzdCksIHdyYXAoY2xvbmUpKSkgewotICNlbGlmIExMVk1fVkVSU0lPTl9NQUpPUiAq IDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM3Ci0gICAgICAgaWYgKExMVk1MaW5rTW9kdWxl cyh3cmFwKGRzdCksIHdyYXAoc3JjKSwgTExWTUxpbmtlclByZXNlcnZlU291cmNlX1JlbW92ZWQs ICZlcnJNc2cpKSB7Ci1kaWZmIC0tZ2l0IGEvYmFja2VuZC9zcmMvYmFja2VuZC9wcm9ncmFtLmNw cCBiL2JhY2tlbmQvc3JjL2JhY2tlbmQvcHJvZ3JhbS5jcHAKLWluZGV4IGMzN2M1OTUuLmIzNmY3 YjQgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9iYWNrZW5kL3Byb2dyYW0uY3BwCi0rKysgYi9i YWNrZW5kL3NyYy9iYWNrZW5kL3Byb2dyYW0uY3BwCi1AQCAtNzk0LDcgKzc5NCwxMSBAQCBuYW1l c3BhY2UgZ2JlIHsKLSAgICAgICBsbHZtOjpyYXdfZmRfb3N0cmVhbSBvc3RyZWFtIChkdW1wU1BJ UkJpbmFyeU5hbWUuY19zdHIoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBlcnIsIGxsdm06OnN5czo6ZnM6OkZfTm9uZSk7Ci0gICAgICAgaWYgKCFlcnIpCi0rI2lmIExM Vk1fVkVSU0lPTl9NQUpPUjw3Ci0gICAgICAgICBsbHZtOjpXcml0ZUJpdGNvZGVUb0ZpbGUoKm91 dF9tb2R1bGUsIG9zdHJlYW0pOwotKyNlbHNlCi0rICAgICAgICBsbHZtOjpXcml0ZUJpdGNvZGVU b0ZpbGUoKipvdXRfbW9kdWxlLCBvc3RyZWFtKTsKLSsjZW5kaWYKLSAgICAgfQotICNlbmRpZgot ICAgICByZXR1cm4gdHJ1ZTsKLWRpZmYgLS1naXQgYS9iYWNrZW5kL3NyYy9sbHZtL0V4cGFuZExh cmdlSW50ZWdlcnMuY3BwIGIvYmFja2VuZC9zcmMvbGx2bS9FeHBhbmRMYXJnZUludGVnZXJzLmNw cAotaW5kZXggODUxNWRjMS4uNGFlYzQ0ZSAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0v RXhwYW5kTGFyZ2VJbnRlZ2Vycy5jcHAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vRXhwYW5kTGFy Z2VJbnRlZ2Vycy5jcHAKLUBAIC05OSw4ICs5OSw4IEBAIHVzaW5nIG5hbWVzcGFjZSBsbHZtOwot IAotICNpZmRlZiBERUJVRwotICAgI3VuZGVmIERFQlVHCi0tICAjZGVmaW5lIERFQlVHKC4uLikK LSAjZW5kaWYKLSsjZGVmaW5lIERFQlVHKC4uLikKLSAvLyBCcmVhayBpbnN0cnVjdGlvbnMgdXAg aW50byBubyBsYXJnZXIgdGhhbiA2NC1iaXQgY2h1bmtzLgotIHN0YXRpYyBjb25zdCB1bnNpZ25l ZCBrQ2h1bmtCaXRzID0gNjQ7Ci0gc3RhdGljIGNvbnN0IHVuc2lnbmVkIGtDaHVua0J5dGVzID0g a0NodW5rQml0cyAvIENIQVJfQklUOwotZGlmZiAtLWdpdCBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2 bV9iaXRjb2RlX2xpbmsuY3BwIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2JpdGNvZGVfbGluay5j cHAKLWluZGV4IGVmNTZlNGMuLjRjM2UyMGUgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZt L2xsdm1fYml0Y29kZV9saW5rLmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2JpdGNv ZGVfbGluay5jcHAKLUBAIC0zNDAsNyArMzQwLDExIEBAIG5hbWVzcGFjZSBnYmUKLSAgICAgLyog V2UgdXNlIGJlaWduZXQncyBiaXRjb2RlIGFzIGRzdCBiZWNhdXNlIGl0IHdpbGwgaGF2ZSBhIGxv dCBvZgotICAgICAgICBsYXp5IGZ1bmN0aW9ucyB3aGljaCB3aWxsIG5vdCBiZSBsb2FkZWQuICov Ci0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM5 Ci0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiA+PSA3Ci0rICAgIGxsdm06Ok1vZHVsZSAqIGxpbmtl ZF9tb2R1bGUgPSBsbHZtOjpDbG9uZU1vZHVsZSgqKGxsdm06Ok1vZHVsZSopbW9kKS5yZWxlYXNl KCk7Ci0rI2Vsc2UKLSAgICAgbGx2bTo6TW9kdWxlICogbGlua2VkX21vZHVsZSA9IGxsdm06OkNs b25lTW9kdWxlKChsbHZtOjpNb2R1bGUqKW1vZCkucmVsZWFzZSgpOwotKyNlbmRpZgotICAgICBp ZihMTFZNTGlua01vZHVsZXMyKHdyYXAoY2xvbmVkTGliKSwgd3JhcChsaW5rZWRfbW9kdWxlKSkp IHsKLSAjZWxzZQotICAgICBjaGFyKiBlcnJvck1zZzsKLWRpZmYgLS1naXQgYS9iYWNrZW5kL3Ny Yy9sbHZtL2xsdm1faW5jbHVkZXMuaHBwIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2luY2x1ZGVz LmhwcAotaW5kZXggMTg0NTUzYS4uZmZjY2YwMiAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xs dm0vbGx2bV9pbmNsdWRlcy5ocHAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbmNsdWRl cy5ocHAKLUBAIC04OSw2ICs4OSwxMCBAQAotICNpbmNsdWRlICJsbHZtL0NvZGVHZW4vSW50cmlu c2ljTG93ZXJpbmcuaCIKLSAKLSAjaW5jbHVkZSAibGx2bS9UcmFuc2Zvcm1zL1NjYWxhci5oIgot KyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgPj0gNwotKyNpbmNsdWRlICJsbHZtL1RyYW5zZm9ybXMv VXRpbHMuaCIKLSsjaW5jbHVkZSAibGx2bS9UcmFuc2Zvcm1zL0luc3RDb21iaW5lL0luc3RDb21i aW5lLmgiCi0rI2VuZGlmCi0gI2luY2x1ZGUgImxsdm0vTUMvTUNBc21JbmZvLmgiCi0gI2luY2x1 ZGUgImxsdm0vTUMvTUNDb250ZXh0LmgiCi0gI2luY2x1ZGUgImxsdm0vTUMvTUNJbnN0ckluZm8u aCIKLS0tIAotY2dpdCB2MS4xCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVz L2xsdm0wNi5wYXRjaCBiL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wNi5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzM4OWU2NmM4MmRmLi4wMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA2LnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsMzMgKzAsMCBAQAotU291cmNlOiBBcmNoIExpbnV4Ci1VcHN0cmVhbTogdW5rbm93bgotUmVh c29uOiBmaXhlcyBsbHZtNiBjb21waWxhdGlvbgotCi0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xs dm1fdG9fZ2VuLmNwcAkyMDE3LTEwLTI0IDA5OjA0OjQ4LjAwMDAwMDAwMCArMDMwMAotKysrIGIv YmFja2VuZC9zcmMvbGx2bS9sbHZtX3RvX2dlbi5jcHAJMjAxOC0wMy0xNiAxNjowODo1NC42Njk5 NjM4MjQgKzAyMDAKLUBAIC0zMjIsNyArMzIyLDExIEBAIG5hbWVzcGFjZSBnYmUKLSAgICAgRGF0 YUxheW91dCBETCgmbW9kKTsKLSAgICAgCi0gICAgIGdiZURpYWdub3N0aWNDb250ZXh0IGRjOwot KyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgPj0gNgotKyAgICBtb2QuZ2V0Q29udGV4dCgpLnNldERp YWdub3N0aWNIYW5kbGVyQ2FsbEJhY2soJmdiZURpYWdub3N0aWNIYW5kbGVyLCZkYyk7Ci0rI2Vs c2UKLSAgICAgbW9kLmdldENvbnRleHQoKS5zZXREaWFnbm9zdGljSGFuZGxlcigmZ2JlRGlhZ25v c3RpY0hhbmRsZXIsJmRjKTsKLSsjZW5kaWYKLSAKLSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICog MTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gMzcKLSAgICAgbW9kLnNldERhdGFMYXlvdXQoREwp OwotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3Vucm9sbC5jcHAJMjAxNy0xMC0yNCAwOTow NDo0OC4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV91bnJvbGwu Y3BwCTIwMTgtMDMtMTYgMTY6MDk6NDcuNzM2NDAzNTU3ICswMjAwCi1AQCAtMjA1LDcgKzIwNSw5 IEBAIG5hbWVzcGFjZSBnYmUgewotICAgICAgICAgICBpZiAocGFyZW50VHJpcENvdW50ICE9IDAg JiYgY3VyclRyaXBDb3VudCAqIHBhcmVudFRyaXBDb3VudCA+IDMyKSB7Ci0gICAgICAgICAgICAg Ly9Eb24ndCBjaGFuZ2UgdGhlIHVucm9sbElEIGlmIGRvZXNuJ3QgZm9yY2UgdW5yb2xsLgotICAg ICAgICAgICAgIC8vc2V0VW5yb2xsSUQocGFyZW50TCwgZmFsc2UpOwotLSNpZiBMTFZNX1ZFUlNJ T05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSAzOAotKyNpZiBMTFZNX1ZFUlNJ T05fTUFKT1IgPj0gNgotKyAgICAgICAgICAgIGxvb3BJbmZvLmVyYXNlKHBhcmVudEwpOwotKyNl bGlmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM4Ci0g ICAgICAgICAgICAgbG9vcEluZm8ubWFya0FzUmVtb3ZlZChwYXJlbnRMKTsKLSAjZWxzZQotICAg ICAgICAgICAgIExQTS5kZWxldGVMb29wRnJvbVF1ZXVlKHBhcmVudEwpOwotT25seSBpbiBCZWln bmV0LTEuMy4yLVNvdXJjZTogYnVpbGQKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iZWlnbmV0L3Bh dGNoZXMvbGx2bTA4LnBhdGNoIGIvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA4LnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMGM1ZTdhN2M0ZjcuLjAwMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDgucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSw1NiArMCwwIEBACi1Gcm9tIDc1YzE1MjU5OWE3YzE3MzllNmRhZGNkYjliMzc3YWNm N2U0NGQ5Y2YgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBKYW4gQmVpY2ggPGpiZWlj aEBGcmVlQlNELm9yZz4KLURhdGU6IFdlZCwgMzAgSmFuIDIwMTkgMTI6NDI6MzQgKzAwMDAKLVN1 YmplY3Q6IFtQQVRDSF0gbGFuZy9iZWlnbmV0OiB1bmJyZWFrIHdpdGggbGx2bTgwCi0KLVJlZ3Jl c3NlZCBieSBodHRwczovL2dpdGh1Yi5jb20vbGx2bS9sbHZtLXByb2plY3QvY29tbWl0LzcyMWQ5 NTcxM2E5ZQotCi11bmFibGUgdG8gbG9hZCAvdXNyL2xvY2FsL2xpYi9iZWlnbmV0Ly9saWJnYmVp bnRlcnAuc28gd2hpY2ggaXMgcGFydCBvZiB0aGUgZHJpdmVyLCBwbGVhc2UgY2hlY2shCi1sZC1l bGYuc28uMTogL3Vzci9sb2NhbC9saWIvYmVpZ25ldC8vbGliZ2JlaW50ZXJwLnNvOiBVbmRlZmlu ZWQgc3ltYm9sICJfWk40bGx2bTI0RGlzYWJsZUFCSUJyZWFraW5nQ2hlY2tzRSIKLQotUmVncmVz c2VkIGJ5IGh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9jb21taXQvNGEyZDU4 ZTE2YWNjCi0KLWJhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5jcHA6MzA3Njo1OiBl cnJvcjoKLSAgICAgIHVua25vd24gdHlwZSBuYW1lICdUZXJtaW5hdG9ySW5zdCcKLSAgICBUZXJt aW5hdG9ySW5zdCAqdGVybSA9IGJiLT5nZXRUZXJtaW5hdG9yKCk7Ci0gICAgXgotYmFja2VuZC9z cmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcDozMDgzOjU6IGVycm9yOgotICAgICAgdW5rbm93 biB0eXBlIG5hbWUgJ1Rlcm1pbmF0b3JJbnN0JwotICAgIFRlcm1pbmF0b3JJbnN0ICp0ZXJtID0g YmItPmdldFRlcm1pbmF0b3IoKTsKLSAgICBeCi0KLS0tLSBhL2JhY2tlbmQvc3JjL0NNYWtlTGlz dHMudHh0CTIwMTctMDktMjIgMDg6MDU6MjIgVVRDCi0rKysgYi9iYWNrZW5kL3NyYy9DTWFrZUxp c3RzLnR4dAotQEAgLTE2OCw2ICsxNjgsNyBAQCBhZGRfZGVwZW5kZW5jaWVzKGdiZSBiZWlnbmV0 X2JpdGNvZGUpCi0gZW5kaWYgKE5PVCAoVVNFX1NUQU5EQUxPTkVfR0JFX0NPTVBJTEVSIFNUUkVR VUFMICJ0cnVlIikpCi0gCi0gYWRkX2xpYnJhcnkoZ2JlaW50ZXJwIFNIQVJFRCBnYmVfYmluX2lu dGVycHJldGVyLmNwcCkKLSt0YXJnZXRfbGlua19saWJyYXJpZXMoZ2JlaW50ZXJwICR7TExWTV9N T0RVTEVfTElCU30pCi0gCi0gaWYgKExMVk1fVkVSU0lPTl9OT0RPVCBWRVJTSU9OX0VRVUFMIDM0 KQotICAgZmluZF9saWJyYXJ5KFRFUk1JTkZPIE5BTUVTIHRpbmZvIG5jdXJzZXMpCi0tLS0gYS9i YWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwCTIwMTctMTAtMjQgMDY6MDQ6NDgg VVRDCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwCi1AQCAtMzA3 MywxNCArMzA3MywyMiBAQCBuYW1lc3BhY2UgZ2JlCi0gCi0gCi0gICBzdGF0aWMgdW5zaWduZWQg Z2V0Q2hpbGRObyhCYXNpY0Jsb2NrICpiYikgewotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgPCA4 Ci0gICAgIFRlcm1pbmF0b3JJbnN0ICp0ZXJtID0gYmItPmdldFRlcm1pbmF0b3IoKTsKLSsjZWxz ZQotKyAgICBJbnN0cnVjdGlvbiAqdGVybSA9IGJiLT5nZXRUZXJtaW5hdG9yKCk7Ci0rI2VuZGlm Ci0gICAgIHJldHVybiB0ZXJtLT5nZXROdW1TdWNjZXNzb3JzKCk7Ci0gICB9Ci0gCi0gICAvLyBy ZXR1cm4gTlVMTCBpZiBpbmRleCBvdXQtcmFuZ2Ugb2YgY2hpbGRyZW4gbnVtYmVyCi0gICBzdGF0 aWMgQmFzaWNCbG9jayAqZ2V0Q2hpbGRQb3NzaWJsZShCYXNpY0Jsb2NrICpiYiwgdW5zaWduZWQg aW5kZXgpIHsKLSAKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SIDwgOAotICAgICBUZXJtaW5hdG9y SW5zdCAqdGVybSA9IGJiLT5nZXRUZXJtaW5hdG9yKCk7Ci0rI2Vsc2UKLSsgICAgSW5zdHJ1Y3Rp b24gKnRlcm0gPSBiYi0+Z2V0VGVybWluYXRvcigpOwotKyNlbmRpZgotICAgICB1bnNpZ25lZCBj aGlsZE5vID0gdGVybS0+Z2V0TnVtU3VjY2Vzc29ycygpOwotICAgICBCYXNpY0Jsb2NrICpjaGls ZCA9IE5VTEw7Ci0gICAgIGlmKGluZGV4IDwgY2hpbGRObykgewpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA5LnBhdGNoIGIvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMv bGx2bTA5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhY2FlY2VhYmI2ZGQu LjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDkucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSwxMTEgKzAsMCBAQAotU291cmNlOiBGcmVlQlNEICsgcTY2Ci0K LU1vc3RseSBGcmVlQlNEIG90aGVyIHRoYW4gRmluZExMVk0uY21ha2UgY2hhbmdlcy4KLUxpbmtp bmcgYWdhaW5zdCBjbGFuZy1jcHAgZG9lcyBub3Qgd29yayBmb3IgdXMuCi0KLS0tLSBhL0NNYWtl L0ZpbmRMTFZNLmNtYWtlCi0rKysgYi9DTWFrZS9GaW5kTExWTS5jbWFrZQotQEAgLTE0MCw2ICsx NDAsNyBAQCBhZGRfb25lX2xpYigiY2xhbmdTdGF0aWNBbmFseXplckNvcmUiKQotIGFkZF9vbmVf bGliKCJjbGFuZ0FuYWx5c2lzIikKLSBhZGRfb25lX2xpYigiY2xhbmdFZGl0IikKLSBhZGRfb25l X2xpYigiY2xhbmdBU1QiKQotK2FkZF9vbmVfbGliKCJjbGFuZ0FTVE1hdGNoZXJzIikKLSBhZGRf b25lX2xpYigiY2xhbmdQYXJzZSIpCi0gYWRkX29uZV9saWIoImNsYW5nU2VtYSIpCi0gYWRkX29u ZV9saWIoImNsYW5nTGV4IikKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbnRyaW5zaWNf bG93ZXJpbmcuY3BwCTIwMTctMTAtMjQgMDY6MDQ6NDggVVRDCi0rKysgYi9iYWNrZW5kL3NyYy9s bHZtL2xsdm1faW50cmluc2ljX2xvd2VyaW5nLmNwcAotQEAgLTc3LDcgKzc3LDExIEBAIG5hbWVz cGFjZSBnYmUgewotICAgICAgICAgc3RkOjp2ZWN0b3I8VHlwZSAqPiBQYXJhbVR5czsKLSAgICAg ICAgIGZvciAoVmFsdWUqKiBJID0gQXJnQmVnaW47IEkgIT0gQXJnRW5kOyArK0kpCi0gICAgICAg ICAgIFBhcmFtVHlzLnB1c2hfYmFjaygoKkkpLT5nZXRUeXBlKCkpOwotKyNpZiBMTFZNX1ZFUlNJ T05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA5MAotKyAgICAgICAgRnVuY3Rp b25DYWxsZWUgRkNhY2hlID0gTS0+Z2V0T3JJbnNlcnRGdW5jdGlvbihOZXdGbiwKLSsjZWxzZQot ICAgICAgICAgQ29uc3RhbnQqIEZDYWNoZSA9IE0tPmdldE9ySW5zZXJ0RnVuY3Rpb24oTmV3Rm4s Ci0rI2VuZGlmCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0 aW9uVHlwZTo6Z2V0KFJldFR5LCBQYXJhbVR5cywgZmFsc2UpKTsKLSAKLSAgICAgICAgIElSQnVp bGRlcjw+IEJ1aWxkZXIoQ0ktPmdldFBhcmVudCgpLCBCYXNpY0Jsb2NrOjppdGVyYXRvcihDSSkp OwotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NhbXBsZXJfZml4LmNwcAkyMDE3LTEwLTI0 IDA2OjA0OjQ4IFVUQwotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NhbXBsZXJfZml4LmNw cAotQEAgLTgyLDcgKzgyLDExIEBAIG5hbWVzcGFjZSBnYmUgewotICNpZiBMTFZNX1ZFUlNJT05f TUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA0MAotICAgICAgICAgICBNb2R1bGUg Kk0gPSBJLT5nZXRQYXJlbnQoKS0+Z2V0UGFyZW50KCktPmdldFBhcmVudCgpOwotICNpZiBMTFZN X1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA1MAotKyNpZiBMTFZN X1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA5MAotKyAgICAgICAg ICBGdW5jdGlvbkNhbGxlZSBzYW1wbGVyQ3Z0ID0gTS0+Z2V0T3JJbnNlcnRGdW5jdGlvbigiX19n ZW5fb2NsX3NhbXBsZXJfdG9faW50IiwgaTMyVHksIEktPmdldE9wZXJhbmQoMCktPmdldFR5cGUo KSk7Ci0rI2Vsc2UKLSAgICAgICAgICAgVmFsdWUqIHNhbXBsZXJDdnQgPSBNLT5nZXRPckluc2Vy dEZ1bmN0aW9uKCJfX2dlbl9vY2xfc2FtcGxlcl90b19pbnQiLCBpMzJUeSwgSS0+Z2V0T3BlcmFu ZCgwKS0+Z2V0VHlwZSgpKTsKLSsjZW5kaWYKLSAjZWxzZQotICAgICAgICAgICBWYWx1ZSogc2Ft cGxlckN2dCA9IE0tPmdldE9ySW5zZXJ0RnVuY3Rpb24oIl9fZ2VuX29jbF9zYW1wbGVyX3RvX2lu dCIsIGkzMlR5LCBJLT5nZXRPcGVyYW5kKDApLT5nZXRUeXBlKCksIG51bGxwdHIpOwotICNlbmRp ZgotQEAgLTEyNCw3ICsxMjgsMTEgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gI2lmIExMVk1fVkVSU0lP Tl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDQwCi0gICAgICAgICAgIE1vZHVs ZSAqTSA9IEktPmdldFBhcmVudCgpLT5nZXRQYXJlbnQoKS0+Z2V0UGFyZW50KCk7Ci0gI2lmIExM Vk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDUwCi0rI2lmIExM Vk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDkwCi0rICAgICAg ICAgIEZ1bmN0aW9uQ2FsbGVlIHNhbXBsZXJDdnQgPSBNLT5nZXRPckluc2VydEZ1bmN0aW9uKCJf X2dlbl9vY2xfc2FtcGxlcl90b19pbnQiLCBpMzJUeSwgSS0+Z2V0T3BlcmFuZCgwKS0+Z2V0VHlw ZSgpKTsKLSsjZWxzZQotICAgICAgICAgICBWYWx1ZSogc2FtcGxlckN2dCA9IE0tPmdldE9ySW5z ZXJ0RnVuY3Rpb24oIl9fZ2VuX29jbF9zYW1wbGVyX3RvX2ludCIsIGkzMlR5LCBJLT5nZXRPcGVy YW5kKDApLT5nZXRUeXBlKCkpOwotKyNlbmRpZgotICNlbHNlCi0gICAgICAgICAgIFZhbHVlKiBz YW1wbGVyQ3Z0ID0gTS0+Z2V0T3JJbnNlcnRGdW5jdGlvbigiX19nZW5fb2NsX3NhbXBsZXJfdG9f aW50IiwgaTMyVHksIEktPmdldE9wZXJhbmQoMCktPmdldFR5cGUoKSwgbnVsbHB0cik7Ci0gI2Vu ZGlmCi0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fcHJvZmlsaW5nLmNwcAkyMDE3LTEwLTI0 IDA2OjA0OjQ4IFVUQwotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3Byb2ZpbGluZy5jcHAK LUBAIC0xNjMsMTAgKzE2MywxOCBAQCBuYW1lc3BhY2UgZ2JlCi0gICAgICAgLy8gX19nZW5fb2Ns X3N0b3JlX3RpbWVzdGFtcChpbnQgbnRoLCBpbnQgdHlwZSk7Ci0gICAgICAgVmFsdWUgKkFyZ3Nb Ml0gPSB7Q29uc3RhbnRJbnQ6OmdldChpbnRUeSwgcG9pbnROdW0rKyksIENvbnN0YW50SW50Ojpn ZXQoaW50VHksIHByb2ZpbGluZ1R5cGUpfTsKLSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAg KyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gNTAKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAg KyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gOTAKLSsgICAgICBidWlsZGVyLT5DcmVhdGVDYWxsKG1v ZHVsZS0+Z2V0T3JJbnNlcnRGdW5jdGlvbigKLSsjZWxzZQotICAgICAgIGJ1aWxkZXItPkNyZWF0 ZUNhbGwoY2FzdDxsbHZtOjpGdW5jdGlvbj4obW9kdWxlLT5nZXRPckluc2VydEZ1bmN0aW9uKAot KyNlbmRpZgotICAgICAgICAgICAgICAgIl9fZ2VuX29jbF9jYWxjX3RpbWVzdGFtcCIsIFR5cGU6 OmdldFZvaWRUeShtb2R1bGUtPmdldENvbnRleHQoKSksCi0gICAgICAgICAgICAgICBJbnRlZ2Vy VHlwZTo6Z2V0SW50MzJUeShtb2R1bGUtPmdldENvbnRleHQoKSksCi0rI2lmIExMVk1fVkVSU0lP Tl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDkwCi0rICAgICAgICAgICAgICBJ bnRlZ2VyVHlwZTo6Z2V0SW50MzJUeShtb2R1bGUtPmdldENvbnRleHQoKSkpLAotKyNlbHNlCi0g ICAgICAgICAgICAgICBJbnRlZ2VyVHlwZTo6Z2V0SW50MzJUeShtb2R1bGUtPmdldENvbnRleHQo KSkpKSwKLSsjZW5kaWYKLSAgICAgICAgICAgICAgIEFycmF5UmVmPFZhbHVlKj4oQXJncykpOwot ICNlbHNlCi0gICAgICAgYnVpbGRlci0+Q3JlYXRlQ2FsbChjYXN0PGxsdm06OkZ1bmN0aW9uPiht b2R1bGUtPmdldE9ySW5zZXJ0RnVuY3Rpb24oCi1AQCAtMTg1LDEwICsxOTMsMTggQEAgbmFtZXNw YWNlIGdiZQotICAgICBWYWx1ZSAqQXJnczJbMl0gPSB7cHJvZmlsaW5nQnVmLCBDb25zdGFudElu dDo6Z2V0KGludFR5LCBwcm9maWxpbmdUeXBlKX07Ci0gCi0gI2lmIExMVk1fVkVSU0lPTl9NQUpP UiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDUwCi0rI2lmIExMVk1fVkVSU0lPTl9NQUpP UiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDkwCi0rICAgIGJ1aWxkZXItPkNyZWF0ZUNh bGwobW9kdWxlLT5nZXRPckluc2VydEZ1bmN0aW9uKAotKyNlbHNlCi0gICAgIGJ1aWxkZXItPkNy ZWF0ZUNhbGwoY2FzdDxsbHZtOjpGdW5jdGlvbj4obW9kdWxlLT5nZXRPckluc2VydEZ1bmN0aW9u KAotKyNlbmRpZgotICAgICAgICAgICAgICJfX2dlbl9vY2xfc3RvcmVfcHJvZmlsaW5nIiwgVHlw ZTo6Z2V0Vm9pZFR5KG1vZHVsZS0+Z2V0Q29udGV4dCgpKSwKLSAgICAgICAgICAgICBwdHJUeSwK LSsjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gOTAK LSsgICAgICAgICAgICBJbnRlZ2VyVHlwZTo6Z2V0SW50MzJUeShtb2R1bGUtPmdldENvbnRleHQo KSkpLAotKyNlbHNlCi0gICAgICAgICAgICAgSW50ZWdlclR5cGU6OmdldEludDMyVHkobW9kdWxl LT5nZXRDb250ZXh0KCkpKSksCi0rI2VuZGlmCi0gICAgICAgICAgICAgQXJyYXlSZWY8VmFsdWUq PihBcmdzMikpOwotICNlbHNlCi0gICAgIGJ1aWxkZXItPkNyZWF0ZUNhbGwoY2FzdDxsbHZtOjpG dW5jdGlvbj4obW9kdWxlLT5nZXRPckluc2VydEZ1bmN0aW9uKAotLS0tIGEvYmFja2VuZC9zcmMv bGx2bS9sbHZtX2RldmljZV9lbnF1ZXVlLmNwcAkyMDE3LTEwLTI0IDA2OjA0OjQ4IFVUQwotKysr IGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2RldmljZV9lbnF1ZXVlLmNwcAotQEAgLTM5OCw4ICsz OTgsMTMgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxUeXBl ICo+IFBhcmFtVHlzOwotICAgICAgICAgICAgICAgZm9yIChWYWx1ZSoqIGl0ZXIgPSBhcmdzLmJl Z2luKCk7IGl0ZXIgIT0gYXJncy5lbmQoKTsgKytpdGVyKQotICAgICAgICAgICAgICAgICBQYXJh bVR5cy5wdXNoX2JhY2soKCppdGVyKS0+Z2V0VHlwZSgpKTsKLSsjaWYgTExWTV9WRVJTSU9OX01B Sk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gOTAKLSsgICAgICAgICAgICAgIENhbGxJ bnN0KiBuZXdDSSA9IGJ1aWxkZXIuQ3JlYXRlQ2FsbChtb2QtPmdldE9ySW5zZXJ0RnVuY3Rpb24o Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl9fZ2VuX2VucXVldWVfa2VybmVsX3Ns bSIsIEZ1bmN0aW9uVHlwZTo6Z2V0KGludFR5LCBQYXJhbVR5cywgZmFsc2UpKSwgYXJncyk7Ci0r I2Vsc2UKLSAgICAgICAgICAgICAgIENhbGxJbnN0KiBuZXdDSSA9IGJ1aWxkZXIuQ3JlYXRlQ2Fs bChjYXN0PGxsdm06OkZ1bmN0aW9uPihtb2QtPmdldE9ySW5zZXJ0RnVuY3Rpb24oCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIl9fZ2VuX2VucXVldWVfa2VybmVsX3NsbSIsIEZ1bmN0 aW9uVHlwZTo6Z2V0KGludFR5LCBQYXJhbVR5cywgZmFsc2UpKSksIGFyZ3MpOwotKyNlbmRpZgot ICAgICAgICAgICAgICAgQ0ktPnJlcGxhY2VBbGxVc2VzV2l0aChuZXdDSSk7Ci0gICAgICAgICAg ICAgICBkZWFkSW5zblNldC5pbnNlcnQoQ0kpOwotICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBh L3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMC5wYXRjaCBiL3NyY3BrZ3MvYmVpZ25ldC9w YXRjaGVzL2xsdm0xMC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGFhZmU0 OGEyNDBkLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTEw LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzQ3ICswLDAgQEAKLWRpZmYgLS1naXQgQ01ha2Uv RmluZExMVk0uY21ha2UgQ01ha2UvRmluZExMVk0uY21ha2UKLWluZGV4IDBhNTllNDcuLjZlOTA5 MjMgMTAwNjQ0Ci0tLS0gYS9DTWFrZS9GaW5kTExWTS5jbWFrZQotKysrIGIvQ01ha2UvRmluZExM Vk0uY21ha2UKLUBAIC0xMDQsMjggKzEwNCwxNiBAQCBzdHJpbmcoUkVHRVggUkVQTEFDRSAiICpc biIgIiIgTExWTV9TWVNURU1fTElCUyAke0xMVk1fU1lTVEVNX0xJQlNfT1JJR30pCi0gZW5kaWYg KExMVk1fU1lTVEVNX0xJQlNfT1JJRykKLSBlbmRpZiAoTExWTV9WRVJTSU9OX05PRE9UIFZFUlNJ T05fR1JFQVRFUiAzNCkKLSAKLSsjc29tZXRoaW5nIGhhcm1sZXNzIGJlY2F1c2Ugd2hpdGVzcGFj ZSBhdCBzdGFydCBpcyBhbiBlcnJvcgotK3NldChDTEFOR19MSUJSQVJJRVMgIi1sZGwiKQotIG1h Y3JvKGFkZF9vbmVfbGliIG5hbWUpCi0gICBGSU5EX0xJQlJBUlkoQ0xBTkdfTElCCi0gICAgIE5B TUVTICR7bmFtZX0KLSAgICAgUEFUSFMgJHtMTFZNX0xJQlJBUllfRElSfSBOT19ERUZBVUxUX1BB VEgpCi0tICBzZXQoQ0xBTkdfTElCUkFSSUVTICR7Q0xBTkdfTElCUkFSSUVTfSAke0NMQU5HX0xJ Qn0pCi0rICBzZXQoQ0xBTkdfTElCUkFSSUVTICIke0NMQU5HX0xJQlJBUklFU30gJHtDTEFOR19M SUJ9IikKLSsgIG1lc3NhZ2UoU1RBVFVTICJjbGFuZ2xpYnMgbmFtZSAke25hbWV9IHRoaXMgJHtD TEFOR19MSUJ9IGFsbCAke0NMQU5HX0xJQlJBUklFU30gIikKLSAJdW5zZXQoQ0xBTkdfTElCIENB Q0hFKQotIGVuZG1hY3JvKCkKLSAKLSAjQXNzdW1lIGNsYW5nIGxpYiBwYXRoIHNhbWUgYXMgbGx2 bSBsaWIgcGF0aAotLWFkZF9vbmVfbGliKCJjbGFuZ0NvZGVHZW4iKQotLWFkZF9vbmVfbGliKCJj bGFuZ0Zyb250ZW5kIikKLS1hZGRfb25lX2xpYigiY2xhbmdTZXJpYWxpemF0aW9uIikKLS1hZGRf b25lX2xpYigiY2xhbmdEcml2ZXIiKQotLWFkZF9vbmVfbGliKCJjbGFuZ1NlbWEiKQotLWFkZF9v bmVfbGliKCJjbGFuZ1N0YXRpY0FuYWx5emVyRnJvbnRlbmQiKQotLWFkZF9vbmVfbGliKCJjbGFu Z1N0YXRpY0FuYWx5emVyQ2hlY2tlcnMiKQotLWFkZF9vbmVfbGliKCJjbGFuZ1N0YXRpY0FuYWx5 emVyQ29yZSIpCi0tYWRkX29uZV9saWIoImNsYW5nQW5hbHlzaXMiKQotLWFkZF9vbmVfbGliKCJj bGFuZ0VkaXQiKQotLWFkZF9vbmVfbGliKCJjbGFuZ0FTVCIpCi0tYWRkX29uZV9saWIoImNsYW5n QVNUTWF0Y2hlcnMiKQotLWFkZF9vbmVfbGliKCJjbGFuZ1BhcnNlIikKLS1hZGRfb25lX2xpYigi Y2xhbmdTZW1hIikKLS1hZGRfb25lX2xpYigiY2xhbmdMZXgiKQotLWFkZF9vbmVfbGliKCJjbGFu Z0Jhc2ljIikKLSthZGRfb25lX2xpYigiY2xhbmctY3BwIikKLWRpZmYgLS1naXQgQ01ha2VMaXN0 cy50eHQgQ01ha2VMaXN0cy50eHQKLWluZGV4IGMxMWFjYmIuLjA4ZjQyN2QgMTAwNjQ0Ci0tLS0g YS9DTWFrZUxpc3RzLnR4dAotKysrIGIvQ01ha2VMaXN0cy50eHQKLUBAIC03OSw3ICs3OSw3IEBA IGVsc2VpZiAoQ09NUElMRVIgU1RSRVFVQUwgIkNMQU5HIikKLSBlbHNlaWYgKENPTVBJTEVSIFNU UkVRVUFMICJJQ0MiKQotICAgc2V0IChDTUFLRV9DX0NYWF9GTEFHUyAiJHtDTUFLRV9DX0NYWF9G TEFHU30gIC13ZDI5MjggLVdhbGwgLWZQSUMgLWZzdHJpY3QtYWxpYXNpbmcgLWZwLW1vZGVsIGZh c3QgLW1zc2U0LjEgLVdsLC1FIikKLSBlbmRpZiAoKQotLXNldCAoQ01BS0VfQ1hYX0ZMQUdTICIk e0NNQUtFX0NYWF9GTEFHU30gJHtDTUFLRV9DX0NYWF9GTEFHU30gLXN0ZD1jKysweCAtV25vLWlu dmFsaWQtb2Zmc2V0b2YiKQotK3NldCAoQ01BS0VfQ1hYX0ZMQUdTICIke0NNQUtFX0NYWF9GTEFH U30gJHtDTUFLRV9DX0NYWF9GTEFHU30gLVduby1pbnZhbGlkLW9mZnNldG9mIikKLSBzZXQgKENN QUtFX0NfRkxBR1MgIiR7Q01BS0VfQ19GTEFHU30gJHtDTUFLRV9DX0NYWF9GTEFHU30iKQotIHNl dCAoQ01BS0VfQ1hYX0ZMQUdTX0RFQlVHICAgICAgICAgICItTzAgLWcgLURHQkVfREVCVUc9MSIp Ci0gc2V0IChDTUFLRV9DWFhfRkxBR1NfUkVMV0lUSERFQklORk8gIi1PMiAtZyAtREdCRV9ERUJV Rz0xIikKLWRpZmYgLS1naXQgYmFja2VuZC9zcmMvYmFja2VuZC9wcm9ncmFtLmNwcCBiYWNrZW5k L3NyYy9iYWNrZW5kL3Byb2dyYW0uY3BwCi1pbmRleCBiMzZmN2I0Li5lNjY2MDMxIDEwMDY0NAot LS0tIGEvYmFja2VuZC9zcmMvYmFja2VuZC9wcm9ncmFtLmNwcAotKysrIGIvYmFja2VuZC9zcmMv YmFja2VuZC9wcm9ncmFtLmNwcAotQEAgLTY5NCw5ICs2OTQsOSBAQCBuYW1lc3BhY2UgZ2JlIHsK LSAjZW5kaWYKLSAgICAgICAgICAgICAgICAgKTsKLSAKLSsgICAgbGx2bTo6Y2w6OlJlc2V0QWxs T3B0aW9uT2NjdXJyZW5jZXMoKTsKLSAgICAgY2xhbmc6OkNvbXBpbGVySW52b2NhdGlvbjo6Q3Jl YXRlRnJvbUFyZ3MoKkNJLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmYXJnc1swXSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJmFyZ3NbMF0gKyBhcmdzLnNpemUoKSwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY2xhbmc6OkFycmF5UmVmPGNvbnN0IGNoYXIqPihhcmdz KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlhZ3Mp OwotICAgICAvLyBDcmVhdGUgdGhlIGNvbXBpbGVyIGluc3RhbmNlCi0gICAgIGNsYW5nOjpDb21w aWxlckluc3RhbmNlIENsYW5nOwotQEAgLTEyNDIsOCArMTI0Miw3IEBAIEVYVEVORF9RVU9URToK LSAgICAgICAvLyBDcmVhdGUgdGhlIGNvbXBpbGVyIGludm9jYXRpb24KLSAgICAgICBzdGQ6OnVu aXF1ZV9wdHI8Y2xhbmc6OkNvbXBpbGVySW52b2NhdGlvbj4gQ0kobmV3IGNsYW5nOjpDb21waWxl ckludm9jYXRpb24pOwotICAgICAgIHJldHVybiBjbGFuZzo6Q29tcGlsZXJJbnZvY2F0aW9uOjpD cmVhdGVGcm9tQXJncygqQ0ksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICZhcmdzWzBdLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYXJnc1swXSArIGFyZ3Muc2l6ZSgpLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFu Zzo6QXJyYXlSZWY8Y29uc3QgY2hhcio+KGFyZ3MpLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaWFncyk7Ci0gICAgIH0KLSAjZW5kaWYK LWRpZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcCBiYWNrZW5k L3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwCi1pbmRleCBjNmZjMzBkLi44MjQ0MWQ4IDEw MDY0NAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcAotKysrIGIv YmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcAotQEAgLTU3NSwxMCArNTc1LDEy IEBAIG5hbWVzcGFjZSBnYmUKLSAgICAgICAgIGhhc19lcnJvcnMoZmFsc2UpLAotICAgICAgICAg bGVnYWN5TW9kZSh0cnVlKQotICAgICB7Ci0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiA8IDEwCi0g I2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM3Ci0g ICAgICAgaW5pdGlhbGl6ZUxvb3BJbmZvV3JhcHBlclBhc3NQYXNzKCpQYXNzUmVnaXN0cnk6Omdl dFBhc3NSZWdpc3RyeSgpKTsKLSAjZWxzZQotICAgICAgIGluaXRpYWxpemVMb29wSW5mb1Bhc3Mo KlBhc3NSZWdpc3RyeTo6Z2V0UGFzc1JlZ2lzdHJ5KCkpOwotKyNlbmRpZgotICNlbmRpZgotICAg ICAgIHBhc3MgPSBQQVNTX0VNSVRfUkVHSVNURVJTOwotICAgICB9Ci1kaWZmIC0tZ2l0IGJhY2tl bmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5ocHAgYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dl bl9iYWNrZW5kLmhwcAotaW5kZXggYjQ3MTViMS4uOGU3NGY3YSAxMDA2NDQKLS0tLSBhL2JhY2tl bmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5ocHAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0v bGx2bV9nZW5fYmFja2VuZC5ocHAKLUBAIC0xMzAsMTAgKzEzMCwxMCBAQCBuYW1lc3BhY2UgZ2Jl Ci0gICBsbHZtOjpGdW5jdGlvblBhc3MgKmNyZWF0ZUdlblBhc3MoaXI6OlVuaXQgJnVuaXQpOwot IAotICAgLyohIFJlbW92ZSB0aGUgR0VQIGluc3RydWN0aW9ucyAqLwotLSAgbGx2bTo6QmFzaWNC bG9ja1Bhc3MgKmNyZWF0ZVJlbW92ZUdFUFBhc3MoY29uc3QgaXI6OlVuaXQgJnVuaXQpOwotKyAg bGx2bTo6RnVuY3Rpb25QYXNzICpjcmVhdGVSZW1vdmVHRVBQYXNzKGNvbnN0IGlyOjpVbml0ICZ1 bml0KTsKLSAKLSAgIC8qISBNZXJnZSBsb2FkL3N0b3JlIGlmIHBvc3NpYmxlICovCi0tICBsbHZt OjpCYXNpY0Jsb2NrUGFzcyAqY3JlYXRlTG9hZFN0b3JlT3B0aW1pemF0aW9uUGFzcygpOwotKyAg bGx2bTo6RnVuY3Rpb25QYXNzICpjcmVhdGVMb2FkU3RvcmVPcHRpbWl6YXRpb25QYXNzKCk7Ci0g Ci0gICAvKiEgU2NhbGFyaXplIGFsbCB2ZWN0b3Igb3AgaW5zdHJ1Y3Rpb25zICovCi0gICBsbHZt OjpGdW5jdGlvblBhc3MqIGNyZWF0ZVNjYWxhcml6ZVBhc3MoKTsKLUBAIC0xNDEsNyArMTQxLDcg QEAgbmFtZXNwYWNlIGdiZQotICAgbGx2bTo6TW9kdWxlUGFzcyogY3JlYXRlQmFycmllck5vZHVw UGFzcyhib29sKTsKLSAKLSAgIC8qISBDb252ZXJ0IHRoZSBJbnRyaW5zaWMgY2FsbCB0byBnZW4g ZnVuY3Rpb24gKi8KLS0gIGxsdm06OkJhc2ljQmxvY2tQYXNzICpjcmVhdGVJbnRyaW5zaWNMb3dl cmluZ1Bhc3MoKTsKLSsgIGxsdm06OkZ1bmN0aW9uUGFzcyAqY3JlYXRlSW50cmluc2ljTG93ZXJp bmdQYXNzKCk7Ci0gCi0gICAvKiEgUGFzc2VyIHRoZSBwcmludGYgZnVuY3Rpb24gY2FsbC4gKi8K LSAgIGxsdm06OkZ1bmN0aW9uUGFzcyogY3JlYXRlUHJpbnRmUGFyc2VyUGFzcyhpcjo6VW5pdCAm dW5pdCk7Ci1kaWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbnRyaW5zaWNfbG93ZXJp bmcuY3BwIGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbnRyaW5zaWNfbG93ZXJpbmcuY3BwCi1pbmRl eCA5NGYwY2U2Li5iNTUzOWU5IDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2lu dHJpbnNpY19sb3dlcmluZy5jcHAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbnRyaW5z aWNfbG93ZXJpbmcuY3BwCi1AQCAtMjksMTIgKzI5LDEyIEBACi0gdXNpbmcgbmFtZXNwYWNlIGxs dm07Ci0gCi0gbmFtZXNwYWNlIGdiZSB7Ci0tICAgIGNsYXNzIEluc3RyaW5zaWNMb3dlcmluZyA6 IHB1YmxpYyBCYXNpY0Jsb2NrUGFzcwotKyAgICBjbGFzcyBJbnN0cmluc2ljTG93ZXJpbmcgOiBw dWJsaWMgRnVuY3Rpb25QYXNzCi0gICAgIHsKLSAgICAgcHVibGljOgotICAgICAgIHN0YXRpYyBj aGFyIElEOwotICAgICAgIEluc3RyaW5zaWNMb3dlcmluZygpIDoKLS0gICAgICAgIEJhc2ljQmxv Y2tQYXNzKElEKSB7fQotKyAgICAgICAgRnVuY3Rpb25QYXNzKElEKSB7fQotIAotICAgICAgIHZv aWQgZ2V0QW5hbHlzaXNVc2FnZShBbmFseXNpc1VzYWdlICZBVSkgY29uc3QgewotIAotQEAgLTkz LDkgKzkzLDkgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gICAgICAgICBDSS0+ZXJhc2VGcm9tUGFyZW50 KCk7Ci0gICAgICAgICByZXR1cm4gTmV3Q0k7Ci0gICAgICAgfQotLSAgICAgIHZpcnR1YWwgYm9v bCBydW5PbkJhc2ljQmxvY2soQmFzaWNCbG9jayAmQkIpCi0rICAgICAgdmlydHVhbCBib29sIHJ1 bk9uRnVuY3Rpb24oRnVuY3Rpb24gJkYpCi0gICAgICAgewotLSAgICAgICAgYm9vbCBjaGFuZ2Vk QmxvY2sgPSBmYWxzZTsKLSsgICAgICAgIGZvciAoQmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0gICAg ICAgICBNb2R1bGUgKk0gPSBCQi5nZXRQYXJlbnQoKS0+Z2V0UGFyZW50KCk7Ci0gCi0gICAgICAg ICBEYXRhTGF5b3V0IFREKE0pOwotQEAgLTE1OSwxMyArMTU5LDE0IEBAIG5hbWVzcGFjZSBnYmUg ewotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgfQotICAgICAgICAgfQotLSAgICAgICAgcmV0 dXJuIGNoYW5nZWRCbG9jazsKLSsgICAgICAgIH0KLSsgICAgICAgIHJldHVybiB0cnVlOwotICAg ICAgIH0KLSAgICAgfTsKLSAKLSAgICAgY2hhciBJbnN0cmluc2ljTG93ZXJpbmc6OklEID0gMDsK LSAKLS0gICAgQmFzaWNCbG9ja1Bhc3MgKmNyZWF0ZUludHJpbnNpY0xvd2VyaW5nUGFzcygpIHsK LSsgICAgRnVuY3Rpb25QYXNzICpjcmVhdGVJbnRyaW5zaWNMb3dlcmluZ1Bhc3MoKSB7Ci0gICAg ICAgcmV0dXJuIG5ldyBJbnN0cmluc2ljTG93ZXJpbmcoKTsKLSAgICAgfQotIH0gLy8gZW5kIG5h bWVzcGFjZQotZGlmZiAtLWdpdCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fbG9hZHN0b3JlX29wdGlt aXphdGlvbi5jcHAgYmFja2VuZC9zcmMvbGx2bS9sbHZtX2xvYWRzdG9yZV9vcHRpbWl6YXRpb24u Y3BwCi1pbmRleCA1YWEzOGJlLi5lMzE0MzAyIDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvbGx2 bS9sbHZtX2xvYWRzdG9yZV9vcHRpbWl6YXRpb24uY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZt L2xsdm1fbG9hZHN0b3JlX29wdGltaXphdGlvbi5jcHAKLUBAIC0yNiwxMyArMjYsMTMgQEAKLSAK LSB1c2luZyBuYW1lc3BhY2UgbGx2bTsKLSBuYW1lc3BhY2UgZ2JlIHsKLS0gIGNsYXNzIEdlbkxv YWRTdG9yZU9wdGltaXphdGlvbiA6IHB1YmxpYyBCYXNpY0Jsb2NrUGFzcyB7Ci0rICBjbGFzcyBH ZW5Mb2FkU3RvcmVPcHRpbWl6YXRpb24gOiBwdWJsaWMgRnVuY3Rpb25QYXNzIHsKLSAKLSAgIHB1 YmxpYzoKLSAgICAgc3RhdGljIGNoYXIgSUQ7Ci0gICAgIFNjYWxhckV2b2x1dGlvbiAqU0U7Ci0g ICAgIGNvbnN0IERhdGFMYXlvdXQgKlREOwotLSAgICBHZW5Mb2FkU3RvcmVPcHRpbWl6YXRpb24o KSA6IEJhc2ljQmxvY2tQYXNzKElEKSB7fQotKyAgICBHZW5Mb2FkU3RvcmVPcHRpbWl6YXRpb24o KSA6IEZ1bmN0aW9uUGFzcyhJRCkge30KLSAKLSAgICAgdm9pZCBnZXRBbmFseXNpc1VzYWdlKEFu YWx5c2lzVXNhZ2UgJkFVKSBjb25zdCB7Ci0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsg TExWTV9WRVJTSU9OX01JTk9SID49IDM4Ci1AQCAtNDUsNyArNDUsOSBAQCBuYW1lc3BhY2UgZ2Jl IHsKLSAgICAgICBBVS5zZXRQcmVzZXJ2ZXNDRkcoKTsKLSAgICAgfQotIAotLSAgICB2aXJ0dWFs IGJvb2wgcnVuT25CYXNpY0Jsb2NrKEJhc2ljQmxvY2sgJkJCKSB7Ci0rICAgIHZpcnR1YWwgYm9v bCBydW5PbkZ1bmN0aW9uKEZ1bmN0aW9uICZGKSB7Ci0rICAgICAgICBib29sIGNoYW5nZWRBbnlC bG9jayA9IGZhbHNlOwotKyAgICAgICAgZm9yIChCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAjaWYg TExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gMzgKLSAgICAg ICBTRSA9ICZnZXRBbmFseXNpczxTY2FsYXJFdm9sdXRpb25XcmFwcGVyUGFzcz4oKS5nZXRTRSgp OwotICNlbHNlCi1AQCAtNTksNyArNjEsOSBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgICAjZWxz ZQotICAgICAgICAgVEQgPSBnZXRBbmFseXNpc0lmQXZhaWxhYmxlPERhdGFMYXlvdXQ+KCk7Ci0g ICAgICAgI2VuZGlmCi0tICAgICAgcmV0dXJuIG9wdGltaXplTG9hZFN0b3JlKEJCKTsKLSsgICAg ICAgICAgIGNoYW5nZWRBbnlCbG9jayA9IG9wdGltaXplTG9hZFN0b3JlKEJCKSB8IGNoYW5nZWRB bnlCbG9jazsKLSsgICAgICAgIH0KLSsgICAgICAgIHJldHVybiBjaGFuZ2VkQW55QmxvY2s7Ci0g ICAgIH0KLSAgICAgVHlwZSAgICAqZ2V0VmFsdWVUeXBlKFZhbHVlICppbnNuKTsKLSAgICAgVmFs dWUgICAqZ2V0UG9pbnRlck9wZXJhbmQoVmFsdWUgKkkpOwotQEAgLTE0OCw3ICsxNTIsNyBAQCBu YW1lc3BhY2UgZ2JlIHsKLSAgICAgICB2YWx1ZXMucHVzaF9iYWNrKG1lcmdlZFtpXSk7Ci0gICAg IH0KLSAgICAgTG9hZEluc3QgKmxkID0gY2FzdDxMb2FkSW5zdD4obWVyZ2VkWzBdKTsKLS0gICAg dW5zaWduZWQgYWxpZ24gPSBsZC0+Z2V0QWxpZ25tZW50KCk7Ci0rICAgIE1heWJlQWxpZ24gYWxp Z24gPSBsZC0+Z2V0QWxpZ24oKTsKLSAgICAgdW5zaWduZWQgYWRkclNwYWNlID0gbGQtPmdldFBv aW50ZXJBZGRyZXNzU3BhY2UoKTsKLSAgICAgLy8gaW5zZXJ0IGJlZm9yZSBmaXJzdCBsb2FkCi0g ICAgIEJ1aWxkZXIuU2V0SW5zZXJ0UG9pbnQobGQpOwotQEAgLTIzMSw3ICsyMzUsNyBAQCBuYW1l c3BhY2UgZ2JlIHsKLSAKLSAgICAgdW5zaWduZWQgYWRkclNwYWNlID0gc3QtPmdldFBvaW50ZXJB ZGRyZXNzU3BhY2UoKTsKLSAKLS0gICAgdW5zaWduZWQgYWxpZ24gPSBzdC0+Z2V0QWxpZ25tZW50 KCk7Ci0rICAgIE1heWJlQWxpZ24gYWxpZ24gPSBzdC0+Z2V0QWxpZ24oKTsKLSAgICAgLy8gaW5z ZXJ0IGJlZm9yZSB0aGUgbGFzdCBzdG9yZQotICAgICBCdWlsZGVyLlNldEluc2VydFBvaW50KG1l cmdlZFtzaXplLTFdKTsKLSAKLUBAIC0zMjUsNyArMzI5LDcgQEAgbmFtZXNwYWNlIGdiZSB7Ci0g ICAgIHJldHVybiBjaGFuZ2VkOwotICAgfQotIAotLSAgQmFzaWNCbG9ja1Bhc3MgKmNyZWF0ZUxv YWRTdG9yZU9wdGltaXphdGlvblBhc3MoKSB7Ci0rICBGdW5jdGlvblBhc3MgKmNyZWF0ZUxvYWRT dG9yZU9wdGltaXphdGlvblBhc3MoKSB7Ci0gICAgIHJldHVybiBuZXcgR2VuTG9hZFN0b3JlT3B0 aW1pemF0aW9uKCk7Ci0gICB9Ci0gfTsKLWRpZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2bS9sbHZt X3Bhc3Nlcy5jcHAgYmFja2VuZC9zcmMvbGx2bS9sbHZtX3Bhc3Nlcy5jcHAKLWluZGV4IDEwNzUy YTMuLmI4ZjIyODIgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fcGFzc2VzLmNw cAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3Bhc3Nlcy5jcHAKLUBAIC0zNyw3ICszNyw3 IEBACi0gI2luY2x1ZGUgInN5cy9tYXAuaHBwIgotIAotIHVzaW5nIG5hbWVzcGFjZSBsbHZtOwot LQotK3RlbXBsYXRlIGNsYXNzIGNmZzo6VXBkYXRlPEJhc2ljQmxvY2sgKj47Ci0gbmFtZXNwYWNl IGdiZQotIHsKLSAgIGJvb2wgaXNLZXJuZWxGdW5jdGlvbihjb25zdCBsbHZtOjpGdW5jdGlvbiAm RikgewotQEAgLTIxOSwxMyArMjE5LDEzIEBAIG5hbWVzcGFjZSBnYmUKLSAgICAgcmV0dXJuIG9m ZnNldDsKLSAgIH0KLSAKLS0gIGNsYXNzIEdlblJlbW92ZUdFUFBhc3NzIDogcHVibGljIEJhc2lj QmxvY2tQYXNzCi0rICBjbGFzcyBHZW5SZW1vdmVHRVBQYXNzcyA6IHB1YmxpYyBGdW5jdGlvblBh c3MKLSAgIHsKLSAKLSAgICBwdWJsaWM6Ci0gICAgIHN0YXRpYyBjaGFyIElEOwotICAgICBHZW5S ZW1vdmVHRVBQYXNzcyhjb25zdCBpcjo6VW5pdCAmdW5pdCkgOgotLSAgICAgIEJhc2ljQmxvY2tQ YXNzKElEKSwKLSsgICAgICBGdW5jdGlvblBhc3MoSUQpLAotICAgICAgIHVuaXQodW5pdCkge30K LSAgICAgY29uc3QgaXI6OlVuaXQgJnVuaXQ7Ci0gICAgIHZvaWQgZ2V0QW5hbHlzaXNVc2FnZShB bmFseXNpc1VzYWdlICZBVSkgY29uc3QgewotQEAgLTI0MiwxNiArMjQyLDE4IEBAIG5hbWVzcGFj ZSBnYmUKLSAKLSAgICAgYm9vbCBzaW1wbGlmeUdFUEluc3RydWN0aW9ucyhHZXRFbGVtZW50UHRy SW5zdCogR0VQSW5zdCk7Ci0gCi0tICAgIHZpcnR1YWwgYm9vbCBydW5PbkJhc2ljQmxvY2soQmFz aWNCbG9jayAmQkIpCi0rICAgIHZpcnR1YWwgYm9vbCBydW5PbkZ1bmN0aW9uKEZ1bmN0aW9uICZG KQotICAgICB7Ci0tICAgICAgYm9vbCBjaGFuZ2VkQmxvY2sgPSBmYWxzZTsKLSsgICAgICBib29s IGNoYW5nZWRBbnlCbG9jayA9IGZhbHNlOwotKyAgICAgICAgZm9yIChCYXNpY0Jsb2NrICZCQiA6 IEYpIHsKLSAgICAgICBpcGxpc3Q8SW5zdHJ1Y3Rpb24+OjppdGVyYXRvciBJID0gQkIuZ2V0SW5z dExpc3QoKS5iZWdpbigpOwotICAgICAgIGZvciAoYXV0byBuZXh0SSA9IEksIEUgPSAtLUJCLmdl dEluc3RMaXN0KCkuZW5kKCk7IEkgIT0gRTsgSSA9IG5leHRJKSB7Ci0gICAgICAgICBpcGxpc3Q8 SW5zdHJ1Y3Rpb24+OjppdGVyYXRvciBJID0gbmV4dEkrKzsKLSAgICAgICAgIGlmKEdldEVsZW1l bnRQdHJJbnN0KiBnZXAgPSBkeW5fY2FzdDxHZXRFbGVtZW50UHRySW5zdD4oJipJKSkKLS0gICAg ICAgICAgY2hhbmdlZEJsb2NrID0gKHNpbXBsaWZ5R0VQSW5zdHJ1Y3Rpb25zKGdlcCkgfHwgY2hh bmdlZEJsb2NrKTsKLSsgICAgICAgICAgY2hhbmdlZEFueUJsb2NrID0gKHNpbXBsaWZ5R0VQSW5z dHJ1Y3Rpb25zKGdlcCkgfCBjaGFuZ2VkQW55QmxvY2spOwotICAgICAgIH0KLS0gICAgICByZXR1 cm4gY2hhbmdlZEJsb2NrOwotKyAgICAgICAgfQotKyAgICAgIHJldHVybiBjaGFuZ2VkQW55Qmxv Y2s7Ci0gICAgIH0KLSAgIH07Ci0gCi1AQCAtMzY3LDcgKzM2OSw3IEBAIG5hbWVzcGFjZSBnYmUK LSAgICAgcmV0dXJuIHRydWU7Ci0gICB9Ci0gCi0tICBCYXNpY0Jsb2NrUGFzcyAqY3JlYXRlUmVt b3ZlR0VQUGFzcyhjb25zdCBpcjo6VW5pdCAmdW5pdCkgewotKyAgRnVuY3Rpb25QYXNzICpjcmVh dGVSZW1vdmVHRVBQYXNzKGNvbnN0IGlyOjpVbml0ICZ1bml0KSB7Ci0gICAgIHJldHVybiBuZXcg R2VuUmVtb3ZlR0VQUGFzc3ModW5pdCk7Ci0gICB9Ci0gfSAvKiBuYW1lc3BhY2UgZ2JlICovCi1k aWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9zYW1wbGVyX2ZpeC5jcHAgYmFja2VuZC9z cmMvbGx2bS9sbHZtX3NhbXBsZXJfZml4LmNwcAotaW5kZXggMmEwOTdjOC4uODYzYmU2ZCAxMDA2 NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9zYW1wbGVyX2ZpeC5jcHAKLSsrKyBiL2Jh Y2tlbmQvc3JjL2xsdm0vbGx2bV9zYW1wbGVyX2ZpeC5jcHAKLUBAIC0zMywxMCArMzMsMTIgQEAg bmFtZXNwYWNlIGdiZSB7Ci0gICBjbGFzcyBTYW1wbGVyRml4IDogcHVibGljIEZ1bmN0aW9uUGFz cyB7Ci0gICBwdWJsaWM6Ci0gICAgIFNhbXBsZXJGaXgoKSA6IEZ1bmN0aW9uUGFzcyhJRCkgewot KyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgPCAxMAotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAx MCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSAzNQotICAgICAgIGluaXRpYWxpemVEb21pbmF0b3JU cmVlV3JhcHBlclBhc3NQYXNzKCpQYXNzUmVnaXN0cnk6OmdldFBhc3NSZWdpc3RyeSgpKTsKLSAj ZWxzZQotICAgICAgIGluaXRpYWxpemVEb21pbmF0b3JUcmVlUGFzcygqUGFzc1JlZ2lzdHJ5Ojpn ZXRQYXNzUmVnaXN0cnkoKSk7Ci0rI2VuZGlmCi0gI2VuZGlmCi0gICAgIH0KLSAKLWRpZmYgLS1n aXQgYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NjYWxhcml6ZS5jcHAgYmFja2VuZC9zcmMvbGx2bS9s bHZtX3NjYWxhcml6ZS5jcHAKLWluZGV4IGU5YTJhNjYuLmU5ZDJlZTQgMTAwNjQ0Ci0tLS0gYS9i YWNrZW5kL3NyYy9sbHZtL2xsdm1fc2NhbGFyaXplLmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2 bS9sbHZtX3NjYWxhcml6ZS5jcHAKLUBAIC05NiwxMCArOTYsMTIgQEAgbmFtZXNwYWNlIGdiZSB7 Ci0gCi0gICAgIFNjYWxhcml6ZSgpIDogRnVuY3Rpb25QYXNzKElEKQotICAgICB7Ci0rI2lmIExM Vk1fVkVSU0lPTl9NQUpPUiA8IDEwCi0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExW TV9WRVJTSU9OX01JTk9SID49IDM1Ci0gICAgICAgaW5pdGlhbGl6ZURvbWluYXRvclRyZWVXcmFw cGVyUGFzc1Bhc3MoKlBhc3NSZWdpc3RyeTo6Z2V0UGFzc1JlZ2lzdHJ5KCkpOwotICNlbHNlCi0g ICAgICAgaW5pdGlhbGl6ZURvbWluYXRvclRyZWVQYXNzKCpQYXNzUmVnaXN0cnk6OmdldFBhc3NS ZWdpc3RyeSgpKTsKLSsjZW5kaWYKLSAjZW5kaWYKLSAgICAgfQotIAotZGlmZiAtLWdpdCB1dGVz dHMvQ01ha2VMaXN0cy50eHQgdXRlc3RzL0NNYWtlTGlzdHMudHh0Ci1pbmRleCAzMDBkODdhLi42 NDE3OWM3IDEwMDY0NAotLS0tIGEvdXRlc3RzL0NNYWtlTGlzdHMudHh0Ci0rKysgYi91dGVzdHMv Q01ha2VMaXN0cy50eHQKLUBAIC0yNiw4ICsyNiw4IEBAIGlmIChOT1QgTk9UX0JVSUxEX1NUQU5E X0FMT05FX1VURVNUKQotICAgIyBUaHJlYWRzCi0gICBGaW5kX1BhY2thZ2UoVGhyZWFkcykKLSAK LS0gIHNldCAoQ01BS0VfQ1hYX0ZMQUdTICIke0NNQUtFX0NYWF9GTEFHU30gJHtDTUFLRV9DX0NY WF9GTEFHU30gLXN0ZD1jKysweCAtV25vLWludmFsaWQtb2Zmc2V0b2YiKQotLSAgc2V0IChDTUFL RV9DX0ZMQUdTICIke0NNQUtFX0NfRkxBR1N9ICR7Q01BS0VfQ19DWFhfRkxBR1N9IikKLSsgIHNl dCAoQ01BS0VfQ1hYX0ZMQUdTICIke0NNQUtFX0NYWF9GTEFHU30gJHtDTUFLRV9DX0NYWF9GTEFH U30gLVduby1pbnZhbGlkLW9mZnNldG9mIC1mZmxvYXQtc3RvcmUgLWZuby1zdHJpY3QtYWxpYXNp bmciKQotKyAgc2V0IChDTUFLRV9DX0ZMQUdTICIke0NNQUtFX0NfRkxBR1N9ICR7Q01BS0VfQ19D WFhfRkxBR1N9IC1mZmxvYXQtc3RvcmUgLWZuby1zdHJpY3QtYWxpYXNpbmciKSAjY29tcGlsZXJf e2RlZ3JlZXMscmFkaWFucyxmdW5jdGlvbl9hcmd1bWVudDJ9IHVzZSBlcXVhbGl0eSBjb21wYXJp c29uIG9mIGZsb2F0cywgY29tcGlsZXJfbG9uZ19iaXRjYXN0IHVzZXMgYWxpYXNpbmcKLSAgIHNl dCAoQ01BS0VfQ1hYX0ZMQUdTX0RFQlVHICAgICAgICAgICItTzAgLWcgLURHQkVfREVCVUc9MSIp Ci0gICBzZXQgKENNQUtFX0NYWF9GTEFHU19SRUxXSVRIREVCSU5GTyAiLU8yIC1nIC1ER0JFX0RF QlVHPTEiKQotICAgc2V0IChDTUFLRV9DWFhfRkxBR1NfTUlOU0laRVJFTCAgICAgIi1PcyAtRE5E RUJVRyAtREdCRV9ERUJVRz0wIikKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVz L2xsdm0xMS5wYXRjaCBiL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMS5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmMzYTQyNzg5NDNjLi4wMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTExLnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsOTM3ICswLDAgQEAKLVNvdXJjZTogU25la3Ryb24KLQotVGhlcmUgd2VyZSBhIGZldyBjaGFu Z2VzIHJlcXVpcmVkIGZvciBMTFZNIDExOgotKiBsbHZtOjpTdHJpbmdSZWYgcmVxdWlyZXMgLnN0 cigpLCBpbXBsaWNpdCBjb252ZXJzaW9uIHdhcyByZW1vdmVkCi0qIGxsdm06OkNhbGxTaXRlIHdh cyByZW1vdmVkLCBidXQgdGhlIHJlcXVpcmVkIG1ldGhvZHMgYXJlIGF2YWlsYWJsZSBvbiBsbHZt OjpDYWxsSW5zdAotKiBWZWN0b3JUeUlEIHdhcyBzcGxpdCBpbnRvIEZpeGVkVmVjdG9yVHlJRCBh bmQgU2NhbGFibGVWZWN0b3JUeUlELCBGaXhlZFZlY3RvclR5SUQgd2FzIHVzZWQKLSogQ2FsbElu c3Q6OmdldENhbGxlZFZhbHVlKCkgd2FzIHJlbmFtZWQgdG8gQ2FsbEluc3Q6OmdldENhbGxlZE9w ZXJhbmQoKQotKiBJbXBsaWNpdCBjb252ZXJzaW9uIGZyb20gTWF5YmVBbGlnbiB0byBBbGlnbiB3 YXMgcmVtb3ZlZCwgc28gTWF5YmVBbGlnbjo6dmFsdWVPck9uZSB3YXMgdXNlZCBpbnN0ZWFkLgot Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL1N0cmlwQXR0cmlidXRlcy5jcHAJMjAyMC0xMS0wOSAx Njo0ODoyMC44MjM4NjYxMTIgKzAxMDAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vU3RyaXBBdHRy aWJ1dGVzLmNwcAkyMDIwLTExLTA5IDE5OjA0OjE5LjY0MTg5NzE0MSArMDEwMAotQEAgLTEwNyw5 ICsxMDcsOCBAQAotICAgICAgICBCQiAhPSBFOyArK0JCKSB7Ci0gICAgIGZvciAoQmFzaWNCbG9j azo6aXRlcmF0b3IgSW5zdCA9IEJCLT5iZWdpbigpLCBFID0gQkItPmVuZCgpOwotICAgICAgICAg IEluc3QgIT0gRTsgKytJbnN0KSB7Ci0tICAgICAgQ2FsbFNpdGUgQ2FsbCgmKkluc3QpOwotLSAg ICAgIGlmIChDYWxsKQotLSAgICAgICAgQ2FsbC5zZXRDYWxsaW5nQ29udihDYWxsaW5nQ29udjo6 Qyk7Ci0rICAgICAgaWYgKENhbGxJbnN0KiBjYWxsSW5zdCA9IGR5bl9jYXN0PENhbGxJbnN0Pigm Kkluc3QpKQotKyAgICAgICAgY2FsbEluc3QtPnNldENhbGxpbmdDb252KENhbGxpbmdDb252OjpD KTsKLSAgICAgfQotICAgfQotCi0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fYml0Y29kZV9s aW5rLmNwcAkyMDIwLTExLTA5IDE2OjQ4OjIwLjgyMzg2NjExMiArMDEwMAotKysrIGIvYmFja2Vu ZC9zcmMvbGx2bS9sbHZtX2JpdGNvZGVfbGluay5jcHAJMjAyMC0xMS0wOSAxNzowNDowOS42MzM3 NTM0MjggKzAxMDAKLUBAIC05OCw3ICs5OCw3IEBACi0gICAgICAgICBpZiAoY2FsbEZ1bmMgJiYg Y2FsbEZ1bmMtPmdldEludHJpbnNpY0lEKCkgIT0gMCkKLSAgICAgICAgICAgY29udGludWU7Ci0K LS0gICAgICAgIHN0ZDo6c3RyaW5nIGZuTmFtZSA9IGNhbGwtPmdldENhbGxlZFZhbHVlKCktPnN0 cmlwUG9pbnRlckNhc3RzKCktPmdldE5hbWUoKTsKLSsgICAgICAgIHN0ZDo6c3RyaW5nIGZuTmFt ZSA9IGNhbGwtPmdldENhbGxlZE9wZXJhbmQoKS0+c3RyaXBQb2ludGVyQ2FzdHMoKS0+Z2V0TmFt ZSgpLnN0cigpOwotCi0gICAgICAgICBpZiAoIU1GUy5pbnNlcnQoZm5OYW1lKS5zZWNvbmQpIHsK LSAgICAgICAgICAgY29udGludWU7Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZGV2aWNl X2VucXVldWUuY3BwCTIwMjAtMTEtMDkgMTY6NDg6MjAuODIzODY2MTEyICswMTAwCi0rKysgYi9i YWNrZW5kL3NyYy9sbHZtL2xsdm1fZGV2aWNlX2VucXVldWUuY3BwCTIwMjAtMTEtMDkgMTk6MDE6 NDkuMjAxOTE1MDA4ICswMTAwCi1AQCAtNDUsNyArNDUsNyBAQAotICAgICAgIHJldHVybiBOVUxM OwotCi0gICAgIC8qIFRoaXMgaXMgYSBmYWtlLCB0byBjaGVjayB0aGUgZnVuY3Rpb24gYml0Y2Fz dCBpcyBmb3IgYmxvY2sgb3Igbm90ICovCi0tICAgIHN0ZDo6c3RyaW5nIGZuTmFtZSA9IEZuLT5n ZXROYW1lKCk7Ci0rICAgIHN0ZDo6c3RyaW5nIGZuTmFtZSA9IEZuLT5nZXROYW1lKCkuc3RyKCk7 Ci0gICAgIGlmKGZuTmFtZS5maW5kKCJfaW52b2tlIikgPT0gc3RkOjpzdHJpbmc6Om5wb3MpCi0g ICAgICAgcmV0dXJuIE5VTEw7Ci0KLUBAIC0xMTksMTggKzExOSwxOCBAQAotICAgICAgIFBhcmFt VHlzLnB1c2hfYmFjayh0eSk7Ci0gICAgIH0KLSAgICAgRnVuY3Rpb25UeXBlKiBOZXdGVCA9IEZ1 bmN0aW9uVHlwZTo6Z2V0KEZuLT5nZXRSZXR1cm5UeXBlKCksIFBhcmFtVHlzLCBmYWxzZSk7Ci0t ICAgIEZ1bmN0aW9uKiBOZXdGbiA9IEZ1bmN0aW9uOjpDcmVhdGUoTmV3RlQsIEZ1bmN0aW9uOjpF eHRlcm5hbExpbmthZ2UsIEZuLT5nZXROYW1lKCkpOwotKyAgICBGdW5jdGlvbiogTmV3Rm4gPSBG dW5jdGlvbjo6Q3JlYXRlKE5ld0ZULCBGdW5jdGlvbjo6RXh0ZXJuYWxMaW5rYWdlLCBGbi0+Z2V0 TmFtZSgpLnN0cigpKTsKLSAgICAgU21hbGxWZWN0b3I8UmV0dXJuSW5zdCosIDg+IFJldHVybnM7 Ci0KLSAgICAgRnVuY3Rpb246OmFyZ19pdGVyYXRvciBOZXdGbkFyZ0l0ID0gTmV3Rm4tPmFyZ19i ZWdpbigpOwotICAgICBmb3IgKEZ1bmN0aW9uOjphcmdfaXRlcmF0b3IgSSA9IEZuLT5hcmdfYmVn aW4oKSwgRSA9IEZuLT5hcmdfZW5kKCk7IEkgIT0gRTsgKytJKSB7Ci0tICAgICAgc3RkOjpzdHJp bmcgQXJnTmFtZSA9IEktPmdldE5hbWUoKTsKLSsgICAgICBzdGQ6OnN0cmluZyBBcmdOYW1lID0g SS0+Z2V0TmFtZSgpLnN0cigpOwotICAgICAgIE5ld0ZuQXJnSXQtPnNldE5hbWUoQXJnTmFtZSk7 Ci0gICAgICAgVk1hcFsmKkldID0gJigqTmV3Rm5BcmdJdCsrKTsKLSAgICAgfQotICAgICBDbG9u ZUZ1bmN0aW9uSW50byhOZXdGbiwgRm4sIFZNYXAsIC8qTW9kdWxlTGV2ZWxDaGFuZ2VzPSovdHJ1 ZSwgUmV0dXJucyk7Ci0KLS0gICAgRm4tPnNldE5hbWUoIl9fZCIgKyBGbi0+Z2V0TmFtZSgpKTsK LSsgICAgRm4tPnNldE5hbWUoIl9fZCIgKyBGbi0+Z2V0TmFtZSgpLnN0cigpKTsKLSAgICAgbW9k LT5nZXRGdW5jdGlvbkxpc3QoKS5wdXNoX2JhY2soTmV3Rm4pOwotICAgICAvL21vZC0+Z2V0T3JJ bnNlcnRGdW5jdGlvbihOZXdGbi0+Z2V0TmFtZSgpLCBOZXdGbi0+Z2V0RnVuY3Rpb25UeXBlKCks Ci0gICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIE5ld0ZuLT5nZXRBdHRyaWJ1dGVzKCkp OwotQEAgLTE0Nyw3ICsxNDcsNyBAQAotICAgICAgIGFyZ1R5cGVOYW1lcy5wdXNoX2JhY2sobGx2 bTo6TURTdHJpbmc6OmdldChDb250ZXh0LCAiY2hhcioiKSk7Ci0gICAgICAgYXJnQmFzZVR5cGVO YW1lcy5wdXNoX2JhY2sobGx2bTo6TURTdHJpbmc6OmdldChDb250ZXh0LCAiY2hhcioiKSk7Ci0g ICAgICAgYXJnVHlwZVF1YWxzLnB1c2hfYmFjayhsbHZtOjpNRFN0cmluZzo6Z2V0KENvbnRleHQs ICIiKSk7Ci0tICAgICAgYXJnTmFtZXMucHVzaF9iYWNrKGxsdm06Ok1EU3RyaW5nOjpnZXQoQ29u dGV4dCwgSS0+Z2V0TmFtZSgpKSk7Ci0rICAgICAgYXJnTmFtZXMucHVzaF9iYWNrKGxsdm06Ok1E U3RyaW5nOjpnZXQoQ29udGV4dCwgSS0+Z2V0TmFtZSgpLnN0cigpKSk7Ci0gICAgIH0KLQotICAg ICAvL0lmIHJ1biB0byBoZXJlLCBsbHZtIHZlcnNpb24gYWx3YXlzID4gMy45LCBhZGQgdGhlIHZl cnNpb24gY2hlY2sganVzdCBmb3IgYnVpbGQuCi1AQCAtMTk4LDcgKzE5OCw3IEBACi0gICAgICAg ICAgICAqIGludm9rZSBwb2ludGVyIHRvIHN0b3JlIHRoZSBpbmRleCBpbiB0aGUgdW5pdCdzIGJs b2NrIGZ1bmN0aW9ucyBpbmRleC4qLwotICAgICAgICAgICBGdW5jdGlvbiAqRm4gPSBkeW5fY2Fz dDxGdW5jdGlvbj4oYnQtPmdldE9wZXJhbmQoMCkpOwotCi0tICAgICAgICAgIHN0ZDo6c3RyaW5n IGZuTmFtZSA9IEZuLT5nZXROYW1lKCk7Ci0rICAgICAgICAgIHN0ZDo6c3RyaW5nIGZuTmFtZSA9 IEZuLT5nZXROYW1lKCkuc3RyKCk7Ci0gICAgICAgICAgIGludCBpbmRleCA9IC0xOwotICAgICAg ICAgICBmb3Ioc2l6ZV90IGk9MDsgaTx1bml0LmJsb2NrRnVuY3Muc2l6ZSgpOyBpKyspIHsKLSAg ICAgICAgICAgICBpZih1bml0LmJsb2NrRnVuY3NbaV0gPT0gZm5OYW1lKSB7Ci1AQCAtMjQxLDcg KzI0MSw3IEBACi0gICAgICAgICAgICAgLy91bm5hbWVkIGNhbGwgZnVuY3Rpb24sIHBhcnNlIHRo ZSB1c2UgdG8gZmluZCB0aGUgZGVmaW5lIG9mIGNhbGxlZCBmdW5jdGlvbgotICAgICAgICAgICAg IFNtYWxsVmVjdG9yPFZhbHVlKiwgMTY+IGFyZ3MoQ0ktPm9wX2JlZ2luKCksIENJLT5vcF9lbmQo KS0xKTsKLQotLSAgICAgICAgICAgIFZhbHVlICp2ID0gQ0ktPmdldENhbGxlZFZhbHVlKCk7Ci0r ICAgICAgICAgICAgVmFsdWUgKnYgPSBDSS0+Z2V0Q2FsbGVkT3BlcmFuZCgpOwotICAgICAgICAg ICAgIEJpdENhc3RJbnN0KiBidCA9IGR5bl9jYXN0PEJpdENhc3RJbnN0Pih2KTsKLSAgICAgICAg ICAgICBpZihidCA9PSBOVUxMKQotICAgICAgICAgICAgICAgY29udGludWU7Ci1AQCAtMzE2LDcg KzMxNiw3IEBACi0gICAgICAgICAgICAgICAgICAgQ29uc3RhbnRFeHByICpleHByID0gZHluX2Nh c3Q8Q29uc3RhbnRFeHByPihjLT5nZXRPcGVyYW5kKDMpKTsKLSAgICAgICAgICAgICAgICAgICBC aXRDYXN0SW5zdCAqYnQgPSBkeW5fY2FzdDxCaXRDYXN0SW5zdD4oZXhwci0+Z2V0QXNJbnN0cnVj dGlvbigpKTsKLSAgICAgICAgICAgICAgICAgICBGdW5jdGlvbiogZiA9IGR5bl9jYXN0PEZ1bmN0 aW9uPihidC0+Z2V0T3BlcmFuZCgwKSk7Ci0tICAgICAgICAgICAgICAgICAgYmxvY2tzW3ZdID0g Zi0+Z2V0TmFtZSgpOwotKyAgICAgICAgICAgICAgICAgIGJsb2Nrc1t2XSA9IGYtPmdldE5hbWUo KS5zdHIoKTsKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotCi1AQCAtMzMy LDcgKzMzMiw3IEBACi0gICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgLy9oYW5kbGUg ZW5xdWV1ZV9rZXJuZWwgZnVuY3Rpb24gY2FsbAotICAgICAgICAgICAgIEZ1bmN0aW9uICpmbiA9 IENJLT5nZXRDYWxsZWRGdW5jdGlvbigpOwotLSAgICAgICAgICAgIGlmIChmbi0+Z2V0TmFtZSgp LmZpbmQoImVucXVldWVfa2VybmVsIikgPT0gc3RkOjpzdHJpbmc6Om5wb3MpCi0rICAgICAgICAg ICAgaWYgKGZuLT5nZXROYW1lKCkuc3RyKCkuZmluZCgiZW5xdWV1ZV9rZXJuZWwiKSA9PSBzdGQ6 OnN0cmluZzo6bnBvcykKLSAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAgICAg Ly9ibG9jayBwYXJhbWV0ZXIncyBpbmRleCwgMyBvciA2Ci1AQCAtMzYxLDcgKzM2MSw3IEBACi0g ICAgICAgICAgICAgICAgICAgQ29uc3RhbnRFeHByICpleHByID0gZHluX2Nhc3Q8Q29uc3RhbnRF eHByPihjLT5nZXRPcGVyYW5kKDMpKTsKLSAgICAgICAgICAgICAgICAgICBCaXRDYXN0SW5zdCAq YnQgPSBkeW5fY2FzdDxCaXRDYXN0SW5zdD4oZXhwci0+Z2V0QXNJbnN0cnVjdGlvbigpKTsKLSAg ICAgICAgICAgICAgICAgICBGdW5jdGlvbiogZiA9IGR5bl9jYXN0PEZ1bmN0aW9uPihidC0+Z2V0 T3BlcmFuZCgwKSk7Ci0tICAgICAgICAgICAgICAgICAgYmxvY2tzW3ZdID0gZi0+Z2V0TmFtZSgp OwotKyAgICAgICAgICAgICAgICAgIGJsb2Nrc1t2XSA9IGYtPmdldE5hbWUoKS5zdHIoKTsKLSAg ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgIH0gZWxzZSBp Zihpc2E8QWxsb2NhSW5zdD4oYmxvY2spKSB7Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1f Z2VuX2JhY2tlbmQuY3BwCTIwMjAtMTEtMDkgMTY6NDg6MjAuODIzODY2MTEyICswMTAwCi0rKysg Yi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwCTIwMjAtMTEtMDkgMTg6MzM6 NTAuOTE5MTE0MzI3ICswMTAwCi1AQCAtMzc2LDcgKzM3Niw3IEBACi0gICAgICAgICAgIEdCRV9B U1NFUlQoaW5kZXggPT0gMCk7Ci0gICAgICAgICAgIHJldHVybiB0aGlzLT5fbmV3U2NhbGFyKHZh bHVlLCBrZXksIHR5cGUsIGluZGV4LCB1bmlmb3JtKTsKLSAgICAgICAgICAgYnJlYWs7Ci0tICAg ICAgICBjYXNlIFR5cGU6OlZlY3RvclR5SUQ6Ci0rICAgICAgICBjYXNlIFR5cGU6OkZpeGVkVmVj dG9yVHlJRDoKLSAgICAgICAgIHsKLSAgICAgICAgICAgYXV0byB2ZWN0b3JUeXBlID0gY2FzdDxW ZWN0b3JUeXBlPih0eXBlKTsKLSAgICAgICAgICAgYXV0byBlbGVtZW50VHlwZSA9IHZlY3RvclR5 cGUtPmdldEVsZW1lbnRUeXBlKCk7Ci1AQCAtNzQzLDIwICs3NDMsMjAgQEAKLSAjdW5kZWYgREVD TF9WSVNJVF9GTgotCi0gICAgIC8vIEVtaXQgcm91bmRpbmcgaW5zdHJ1Y3Rpb25zIGZyb20gZ2Vu IG5hdGl2ZSBmdW5jdGlvbgotLSAgICB2b2lkIGVtaXRSb3VuZGluZ0NhbGxJbnN0KENhbGxJbnN0 ICZJLCBDYWxsU2l0ZSAmQ1MsIGlyOjpPcGNvZGUgb3Bjb2RlKTsKLSsgICAgdm9pZCBlbWl0Um91 bmRpbmdDYWxsSW5zdChDYWxsSW5zdCAmSSwgaXI6Ok9wY29kZSBvcGNvZGUpOwotICAgICAvLyBF bWl0IHVuYXJ5IGluc3RydWN0aW9ucyBmcm9tIGdlbiBuYXRpdmUgZnVuY3Rpb24KLS0gICAgdm9p ZCBlbWl0VW5hcnlDYWxsSW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBpcjo6T3Bjb2Rl IG9wY29kZSwgaXI6OlR5cGUgPSBpcjo6VFlQRV9GTE9BVCk7Ci0rICAgIHZvaWQgZW1pdFVuYXJ5 Q2FsbEluc3QoQ2FsbEluc3QgJkksIGlyOjpPcGNvZGUgb3Bjb2RlLCBpcjo6VHlwZSA9IGlyOjpU WVBFX0ZMT0FUKTsKLSAgICAgLy8gRW1pdCB1bmFyeSBpbnN0cnVjdGlvbnMgZnJvbSBnZW4gbmF0 aXZlIGZ1bmN0aW9uCi0tICAgIHZvaWQgZW1pdEF0b21pY0luc3QoQ2FsbEluc3QgJkksIENhbGxT aXRlICZDUywgaXI6OkF0b21pY09wcyBvcGNvZGUpOwotKyAgICB2b2lkIGVtaXRBdG9taWNJbnN0 KENhbGxJbnN0ICZJLCBpcjo6QXRvbWljT3BzIG9wY29kZSk7Ci0gICAgIC8vIEVtaXQgd29ya2dy b3VwIGluc3RydWN0aW9ucwotLSAgICB2b2lkIGVtaXRXb3JrR3JvdXBJbnN0KENhbGxJbnN0ICZJ LCBDYWxsU2l0ZSAmQ1MsIGlyOjpXb3JrR3JvdXBPcHMgb3Bjb2RlKTsKLSsgICAgdm9pZCBlbWl0 V29ya0dyb3VwSW5zdChDYWxsSW5zdCAmSSwgaXI6OldvcmtHcm91cE9wcyBvcGNvZGUpOwotICAg ICAvLyBFbWl0IHN1Ymdyb3VwIGluc3RydWN0aW9ucwotLSAgICB2b2lkIGVtaXRTdWJHcm91cElu c3QoQ2FsbEluc3QgJkksIENhbGxTaXRlICZDUywgaXI6OldvcmtHcm91cE9wcyBvcGNvZGUpOwot KyAgICB2b2lkIGVtaXRTdWJHcm91cEluc3QoQ2FsbEluc3QgJkksIGlyOjpXb3JrR3JvdXBPcHMg b3Bjb2RlKTsKLSAgICAgLy8gRW1pdCBzdWJncm91cCBpbnN0cnVjdGlvbnMKLS0gICAgdm9pZCBl bWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGJvb2wg aXNXcml0ZSwgdWludDhfdCB2ZWNfc2l6ZSwgaXI6OlR5cGUgPSBpcjo6VFlQRV9VMzIpOwotLSAg ICB2b2lkIGVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUg JkNTLCBib29sIGlzV3JpdGUsIHVpbnQ4X3QgdmVjX3NpemUsIGlyOjpUeXBlID0gaXI6OlRZUEVf VTMyKTsKLSsgICAgdm9pZCBlbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KENhbGxJbnN0ICZJLCBi b29sIGlzV3JpdGUsIHVpbnQ4X3QgdmVjX3NpemUsIGlyOjpUeXBlID0gaXI6OlRZUEVfVTMyKTsK LSsgICAgdm9pZCBlbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoQ2FsbEluc3QgJkksIGJvb2wg aXNXcml0ZSwgdWludDhfdCB2ZWNfc2l6ZSwgaXI6OlR5cGUgPSBpcjo6VFlQRV9VMzIpOwotCi0t ICAgIHVpbnQ4X3QgYXBwZW5kU2FtcGxlcihDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFJKTsKLSsg ICAgdWludDhfdCBhcHBlbmRTYW1wbGVyKFVzZXI6Om9wX2l0ZXJhdG9yIEFJKTsKLSAgICAgdWlu dDhfdCBnZXRJbWFnZUlEKENhbGxJbnN0ICZJKTsKLQotICAgICAvLyBUaGVzZSBpbnN0cnVjdGlv bnMgYXJlIG5vdCBzdXBwb3J0ZWQgYXQgYWxsCi1AQCAtMTMyMCwxMyArMTMyMCwxMyBAQAotICNl bmRpZgotCi0gICAgICAgaWYodHlwZU5hbWVOb2RlKSB7Ci0tICAgICAgICBsbHZtSW5mby50eXBl TmFtZT0gKGNhc3Q8TURTdHJpbmc+KHR5cGVOYW1lTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5n ZXRTdHJpbmcoKTsKLSsgICAgICAgIGxsdm1JbmZvLnR5cGVOYW1lPSAoY2FzdDxNRFN0cmluZz4o dHlwZU5hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpLnN0cigpOwotICAg ICAgIH0KLSAgICAgICBpZih0eXBlQmFzZU5hbWVOb2RlKSB7Ci0tICAgICAgICBsbHZtSW5mby50 eXBlQmFzZU5hbWU9IChjYXN0PE1EU3RyaW5nPih0eXBlQmFzZU5hbWVOb2RlLT5nZXRPcGVyYW5k KG9wSUQpKSktPmdldFN0cmluZygpOwotKyAgICAgICAgbGx2bUluZm8udHlwZUJhc2VOYW1lPSAo Y2FzdDxNRFN0cmluZz4odHlwZUJhc2VOYW1lTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRT dHJpbmcoKS5zdHIoKTsKLSAgICAgICB9Ci0tICAgICAgbGx2bUluZm8udHlwZU5hbWU9IChjYXN0 PE1EU3RyaW5nPih0eXBlTmFtZU5vZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCk7 Ci0tICAgICAgbGx2bUluZm8udHlwZVF1YWwgPSAoY2FzdDxNRFN0cmluZz4odHlwZVF1YWxOb2Rl LT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpOwotKyAgICAgIGxsdm1JbmZvLnR5cGVO YW1lPSAoY2FzdDxNRFN0cmluZz4odHlwZU5hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdl dFN0cmluZygpLnN0cigpOwotKyAgICAgIGxsdm1JbmZvLnR5cGVRdWFsID0gKGNhc3Q8TURTdHJp bmc+KHR5cGVRdWFsTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKS5zdHIoKTsK LSAgICAgICBib29sIGlzSW1hZ2UgPSBsbHZtSW5mby5pc0ltYWdlVHlwZSgpOwotICAgICAgIGJv b2wgaXNQaXBlID0gbGx2bUluZm8uaXNQaXBlVHlwZSgpOwotICAgICAgIGlmIChJLT5nZXRUeXBl KCktPmlzUG9pbnRlclR5KCkgfHwgaXNJbWFnZSB8fCBpc1BpcGUpIHsKLUBAIC0xNTMxLDcgKzE1 MzEsNyBAQAotICAgICAgICAgICAgIEVsdFR5ID0gZ2V0RWx0VHlwZShFbHRUeSwgVHlwZUluZGV4 KTsKLSAgICAgICAgIH0KLQotLSAgICAgICAgaXI6OkNvbnN0YW50IGNjID0gdW5pdC5nZXRDb25z dGFudFNldCgpLmdldENvbnN0YW50KHBvaW50ZXItPmdldE5hbWUoKSk7Ci0rICAgICAgICBpcjo6 Q29uc3RhbnQgY2MgPSB1bml0LmdldENvbnN0YW50U2V0KCkuZ2V0Q29uc3RhbnQocG9pbnRlci0+ Z2V0TmFtZSgpLnN0cigpKTsKLSAgICAgICAgIHVuc2lnbmVkIGludCBkZWZPZmZzZXQgPSBjYy5n ZXRPZmZzZXQoKTsKLSAgICAgICAgIHJlbG9jcy5wdXNoX2JhY2soaXI6OlJlbG9jRW50cnkob2Zm c2V0LCBkZWZPZmZzZXQgKyBjb25zdGFudE9mZnNldCkpOwotCi1AQCAtMTU0Niw3ICsxNTQ2LDcg QEAKLSAgICAgICByZXR1cm47Ci0gICAgIH0KLSAgICAgaWYgKGlzYTxHbG9iYWxWYXJpYWJsZT4o YykpIHsKLS0gICAgICBpcjo6Q29uc3RhbnQgY2MgPSB1bml0LmdldENvbnN0YW50U2V0KCkuZ2V0 Q29uc3RhbnQoYy0+Z2V0TmFtZSgpKTsKLSsgICAgICBpcjo6Q29uc3RhbnQgY2MgPSB1bml0Lmdl dENvbnN0YW50U2V0KCkuZ2V0Q29uc3RhbnQoYy0+Z2V0TmFtZSgpLnN0cigpKTsKLSAgICAgICB1 bnNpZ25lZCBpbnQgZGVmT2Zmc2V0ID0gY2MuZ2V0T2Zmc2V0KCk7Ci0KLSAgICAgICByZWxvY3Mu cHVzaF9iYWNrKGlyOjpSZWxvY0VudHJ5KG9mZnNldCwgZGVmT2Zmc2V0KSk7Ci1AQCAtMTYwOSw3 ICsxNjA5LDcgQEAKLSAgICAgICAgICAgfQotICAgICAgICAgICBicmVhazsKLSAgICAgICAgIH0K LS0gICAgICBjYXNlIFR5cGU6OlR5cGVJRDo6VmVjdG9yVHlJRDoKLSsgICAgICBjYXNlIFR5cGU6 OlR5cGVJRDo6Rml4ZWRWZWN0b3JUeUlEOgotICAgICAgICAgewotICAgICAgICAgICBjb25zdCBD b25zdGFudERhdGFTZXF1ZW50aWFsICpjZHMgPSBkeW5fY2FzdDxDb25zdGFudERhdGFTZXF1ZW50 aWFsPihjKTsKLSAgICAgICAgICAgY29uc3QgVmVjdG9yVHlwZSAqdmVjVHkgPSBjYXN0PFZlY3Rv clR5cGU+KHR5cGUpOwotQEAgLTE5MzYsNyArMTkzNiw3IEBACi0gICAgICAgY2FzZSBUeXBlOjpQ b2ludGVyVHlJRDoKLSAgICAgICAgIHJlZ1RyYW5zbGF0b3IubmV3U2NhbGFyKHZhbHVlLCBrZXks IDAsIHVuaWZvcm0pOwotICAgICAgICAgYnJlYWs7Ci0tICAgICAgY2FzZSBUeXBlOjpWZWN0b3JU eUlEOgotKyAgICAgIGNhc2UgVHlwZTo6Rml4ZWRWZWN0b3JUeUlEOgotICAgICAgIHsKLSAgICAg ICAgIGF1dG8gdmVjdG9yVHlwZSA9IGNhc3Q8VmVjdG9yVHlwZT4odHlwZSk7Ci0gICAgICAgICBj b25zdCB1aW50MzJfdCBlbGVtTnVtID0gdmVjdG9yVHlwZS0+Z2V0TnVtRWxlbWVudHMoKTsKLUBA IC0yMzk1LDcgKzIzOTUsNyBAQAotICNlbmRpZgotICAgICAgICAgfQotICAgICAgICAgaWYodHlw ZU5hbWVOb2RlKSB7Ci0tICAgICAgICAgIGxsdm1JbmZvLnR5cGVOYW1lID0gKGNhc3Q8TURTdHJp bmc+KHR5cGVOYW1lTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKTsKLSsgICAg ICAgICAgbGx2bUluZm8udHlwZU5hbWUgPSAoY2FzdDxNRFN0cmluZz4odHlwZU5hbWVOb2RlLT5n ZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpLnN0cigpOwotICAgICAgICAgICAvL0xMVk0g My45IGltYWdlJ3MgdHlwZSBuYW1lIGluY2x1ZGUgYWNjZXNzIHF1YWwsIGRvbid0IG1hdGNoIE9w ZW5DTCBzcGVjLCBlcmFzZSB0aGVtLgotICAgICAgICAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmlu Zz4gZmlsdGVycyA9IHsiX19yZWFkX29ubHkgIiwgIl9fd3JpdGVfb25seSAifTsKLSAgICAgICAg ICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IGZpbHRlcnMuc2l6ZSgpOyBpKyspIHsKLUBAIC0y NDA2LDE2ICsyNDA2LDE2IEBACi0gICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGlm KHR5cGVCYXNlTmFtZU5vZGUpewotLSAgICAgICAgICBsbHZtSW5mby50eXBlQmFzZU5hbWUgPSAo Y2FzdDxNRFN0cmluZz4odHlwZUJhc2VOYW1lTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRT dHJpbmcoKTsKLSsgICAgICAgICAgbGx2bUluZm8udHlwZUJhc2VOYW1lID0gKGNhc3Q8TURTdHJp bmc+KHR5cGVCYXNlTmFtZU5vZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCkuc3Ry KCk7Ci0gICAgICAgICB9Ci0gICAgICAgICBpZihhY2Nlc3NRdWFsTm9kZSkgewotLSAgICAgICAg ICBsbHZtSW5mby5hY2Nlc3NRdWFsID0gKGNhc3Q8TURTdHJpbmc+KGFjY2Vzc1F1YWxOb2RlLT5n ZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpOwotKyAgICAgICAgICBsbHZtSW5mby5hY2Nl c3NRdWFsID0gKGNhc3Q8TURTdHJpbmc+KGFjY2Vzc1F1YWxOb2RlLT5nZXRPcGVyYW5kKG9wSUQp KSktPmdldFN0cmluZygpLnN0cigpOwotICAgICAgICAgfQotICAgICAgICAgaWYodHlwZVF1YWxO b2RlKSB7Ci0tICAgICAgICAgIGxsdm1JbmZvLnR5cGVRdWFsID0gKGNhc3Q8TURTdHJpbmc+KHR5 cGVRdWFsTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKTsKLSsgICAgICAgICAg bGx2bUluZm8udHlwZVF1YWwgPSAoY2FzdDxNRFN0cmluZz4odHlwZVF1YWxOb2RlLT5nZXRPcGVy YW5kKG9wSUQpKSktPmdldFN0cmluZygpLnN0cigpOwotICAgICAgICAgfQotICAgICAgICAgaWYo YXJnTmFtZU5vZGUpewotLSAgICAgICAgICBsbHZtSW5mby5hcmdOYW1lID0gKGNhc3Q8TURTdHJp bmc+KGFyZ05hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpOwotKyAgICAg ICAgICBsbHZtSW5mby5hcmdOYW1lID0gKGNhc3Q8TURTdHJpbmc+KGFyZ05hbWVOb2RlLT5nZXRP cGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpLnN0cigpOwotICAgICAgICAgfQotCi0gICAgICAg ICAvLyBmdW5jdGlvbiBhcmd1bWVudHMgYXJlIHVuaWZvcm0gdmFsdWVzLgotQEAgLTMwMTAsNyAr MzAxMCw3IEBACi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICB0aGlzLT5uZXdSZWdpc3Rl cihjb25zdF9jYXN0PEdsb2JhbFZhcmlhYmxlKj4oJnYpKTsKLSAgICAgICAgICAgaXI6OlJlZ2lz dGVyIHJlZyA9IHJlZ1RyYW5zbGF0b3IuZ2V0U2NhbGFyKGNvbnN0X2Nhc3Q8R2xvYmFsVmFyaWFi bGUqPigmdiksIDApOwotLSAgICAgICAgICBpcjo6Q29uc3RhbnQgJmNvbiA9IHVuaXQuZ2V0Q29u c3RhbnRTZXQoKS5nZXRDb25zdGFudCh2LmdldE5hbWUoKSk7Ci0rICAgICAgICAgIGlyOjpDb25z dGFudCAmY29uID0gdW5pdC5nZXRDb25zdGFudFNldCgpLmdldENvbnN0YW50KHYuZ2V0TmFtZSgp LnN0cigpKTsKLSAgICAgICAgICAgaWYgKCFsZWdhY3lNb2RlKSB7Ci0gICAgICAgICAgICAgaXI6 OlJlZ2lzdGVyIHJlZ2xvYWQgPSBjdHgucmVnKGdldEZhbWlseShnZXRUeXBlKGN0eCwgdi5nZXRU eXBlKCkpKSk7Ci0gICAgICAgICAgICAgY3R4LkxPQURJKGdldFR5cGUoY3R4LCB2LmdldFR5cGUo KSksIHJlZ2xvYWQsIGN0eC5uZXdJbnRlZ2VySW1tZWRpYXRlKGNvbi5nZXRPZmZzZXQoKSwgZ2V0 VHlwZShjdHgsIHYuZ2V0VHlwZSgpKSkpOwotQEAgLTMyMTIsNyArMzIxMiw3IEBACi0gICAgICAg ICBHQkVfQVNTRVJUTShmYWxzZSwgIlVuc3VwcG9ydGVkIGNhbGxpbmcgY29udmVudGlvbiIpOwot ICAgICB9Ci0KLS0gICAgY3R4LnN0YXJ0RnVuY3Rpb24oRi5nZXROYW1lKCkpOwotKyAgICBjdHgu c3RhcnRGdW5jdGlvbihGLmdldE5hbWUoKS5zdHIoKSk7Ci0KLSAgICAgaXI6OkZ1bmN0aW9uICZm biA9IGN0eC5nZXRGdW5jdGlvbigpOwotICAgICB0aGlzLT5yZWdUcmFuc2xhdG9yLmNsZWFyKCk7 Ci1AQCAtMzgxMCw5ICszODEwLDkgQEAKLQotICAgdm9pZCBHZW5Xcml0ZXI6OnJlZ0FsbG9jYXRl Q2FsbEluc3QoQ2FsbEluc3QgJkkpIHsKLSAgICAgVmFsdWUgKmRzdCA9ICZJOwotLSAgICBWYWx1 ZSAqQ2FsbGVlID0gSS5nZXRDYWxsZWRWYWx1ZSgpOwotKyAgICBWYWx1ZSAqQ2FsbGVlID0gSS5n ZXRDYWxsZWRPcGVyYW5kKCk7Ci0gICAgIEdCRV9BU1NFUlQoY3R4LmdldEZ1bmN0aW9uKCkuZ2V0 UHJvZmlsZSgpID09IGlyOjpQUk9GSUxFX09DTCk7Ci0tICAgIEdCRV9BU1NFUlQoaXNhPElubGlu ZUFzbT4oSS5nZXRDYWxsZWRWYWx1ZSgpKSA9PSBmYWxzZSk7Ci0rICAgIEdCRV9BU1NFUlQoaXNh PElubGluZUFzbT4oSS5nZXRDYWxsZWRPcGVyYW5kKCkpID09IGZhbHNlKTsKLSAgICAgaWYoSS5n ZXROdW1BcmdPcGVyYW5kcygpKSBHQkVfQVNTRVJUKEkuaGFzU3RydWN0UmV0QXR0cigpID09IGZh bHNlKTsKLQotICAgICAvLyBXZSBvbmx5IHN1cHBvcnQgYSBzbWFsbCBudW1iZXIgb2YgaW50cmlu c2ljcyByaWdodCBub3cKLUBAIC0zODcwLDcgKzM4NzAsNyBAQAotICAgICAgIH0KLSAgICAgfQot ICAgICAvLyBHZXQgdGhlIG5hbWUgb2YgdGhlIGNhbGxlZCBmdW5jdGlvbiBhbmQgaGFuZGxlIGl0 Ci0tICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZuTmFtZSA9IENhbGxlZS0+c3RyaXBQb2ludGVyQ2Fz dHMoKS0+Z2V0TmFtZSgpOwotKyAgICBjb25zdCBzdGQ6OnN0cmluZyBmbk5hbWUgPSBDYWxsZWUt PnN0cmlwUG9pbnRlckNhc3RzKCktPmdldE5hbWUoKS5zdHIoKTsKLSAgICAgYXV0byBnZW5JbnRy aW5zaWNJRCA9IGludHJpbnNpY01hcC5maW5kKGZuTmFtZSk7Ci0gICAgIHN3aXRjaCAoZ2VuSW50 cmluc2ljSUQpIHsKLSAgICAgICBjYXNlIEdFTl9PQ0xfR0VUX0dST1VQX0lEMDoKLUBAIC00MTY2 LDcgKzQxNjYsNyBAQAotICAgICB9OwotICAgfQotCi0tICB2b2lkIEdlbldyaXRlcjo6ZW1pdFJv dW5kaW5nQ2FsbEluc3QoQ2FsbEluc3QgJkksIENhbGxTaXRlICZDUywgaXI6Ok9wY29kZSBvcGNv ZGUpIHsKLSsgIHZvaWQgR2VuV3JpdGVyOjplbWl0Um91bmRpbmdDYWxsSW5zdChDYWxsSW5zdCAm SSwgaXI6Ok9wY29kZSBvcGNvZGUpIHsKLSAgICAgaWYgKEkuZ2V0VHlwZSgpLT5pc0hhbGZUeSgp KSB7Ci0gICAgICAgY29uc3QgaXI6OlJlZ2lzdGVyIHNyYyA9IHRoaXMtPmdldFJlZ2lzdGVyKEku Z2V0T3BlcmFuZCgwKSk7Ci0gICAgICAgY29uc3QgaXI6OlJlZ2lzdGVyIHNyY0Zsb2F0ID0gY3R4 LnJlZyhpcjo6RkFNSUxZX0RXT1JEKTsKLUBAIC00MTc3LDE0ICs0MTc3LDE0IEBACi0gICAgICAg Y3R4LkYzMlRPMTYoaXI6OlRZUEVfVTE2LCBpcjo6VFlQRV9GTE9BVCwgZHN0LCBkc3RGbG9hdCk7 Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgR0JFX0FTU0VSVChJLmdldFR5cGUoKS0+aXNGbG9hdFR5 KCkpOwotLSAgICAgIHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksQ1Msb3Bjb2RlKTsKLSsgICAg ICB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLG9wY29kZSk7Ci0gICAgIH0KLSAgIH0KLQotLSAg dm9pZCBHZW5Xcml0ZXI6OmVtaXRVbmFyeUNhbGxJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAm Q1MsIGlyOjpPcGNvZGUgb3Bjb2RlLCBpcjo6VHlwZSB0eXBlKSB7Ci0tICAgIENhbGxTaXRlOjph cmdfaXRlcmF0b3IgQUkgPSBDUy5hcmdfYmVnaW4oKTsKLSsgIHZvaWQgR2VuV3JpdGVyOjplbWl0 VW5hcnlDYWxsSW5zdChDYWxsSW5zdCAmSSwgaXI6Ok9wY29kZSBvcGNvZGUsIGlyOjpUeXBlIHR5 cGUpIHsKLSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUkgPSBJLmFyZ19iZWdpbigpOwotICNpZiBH QkVfREVCVUcKLS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBRSA9IENTLmFyZ19lbmQoKTsK LSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUUgPSBJLmFyZ19lbmQoKTsKLSAjZW5kaWYgLyogR0JF X0RFQlVHICovCi0gICAgIEdCRV9BU1NFUlQoQUkgIT0gQUUpOwotICAgICBjb25zdCBpcjo6UmVn aXN0ZXIgc3JjID0gdGhpcy0+Z2V0UmVnaXN0ZXIoKkFJKTsKLUBAIC00MjkzLDkgKzQyOTMsOSBA QAotICAgICB0aGlzLT5lbWl0QXRvbWljSW5zdEhlbHBlcihvcGNvZGUsIHR5cGUsIGRzdCwgbGx2 bVB0ciwgcGF5bG9hZFR1cGxlKTsKLSAgIH0KLQotLSAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRBdG9t aWNJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGlyOjpBdG9taWNPcHMgb3Bjb2RlKSB7 Ci0tICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUkgPSBDUy5hcmdfYmVnaW4oKTsKLS0gICAg Q2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBRSA9IENTLmFyZ19lbmQoKTsKLSsgIHZvaWQgR2VuV3Jp dGVyOjplbWl0QXRvbWljSW5zdChDYWxsSW5zdCAmSSwgaXI6OkF0b21pY09wcyBvcGNvZGUpIHsK LSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUkgPSBJLmFyZ19iZWdpbigpOwotKyAgICBVc2VyOjpv cF9pdGVyYXRvciBBRSA9IEkuYXJnX2VuZCgpOwotICAgICBHQkVfQVNTRVJUKEFJICE9IEFFKTsK LSAgICAgVmFsdWUgKmxsdm1QdHIgPSAqQUk7Ci0gICAgIGlyOjpBZGRyZXNzU3BhY2UgYWRkclNw YWNlID0gYWRkcmVzc1NwYWNlTExWTVRvR2VuKGxsdm1QdHItPmdldFR5cGUoKS0+Z2V0UG9pbnRl ckFkZHJlc3NTcGFjZSgpKTsKLUBAIC00MzQ4LDcgKzQzNDgsNyBAQAotICAgICB9Ci0gICB9Ci0K LS0gIHZvaWQgR2VuV3JpdGVyOjplbWl0V29ya0dyb3VwSW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNp dGUgJkNTLCBpcjo6V29ya0dyb3VwT3BzIG9wY29kZSkgewotKyAgdm9pZCBHZW5Xcml0ZXI6OmVt aXRXb3JrR3JvdXBJbnN0KENhbGxJbnN0ICZJLCBpcjo6V29ya0dyb3VwT3BzIG9wY29kZSkgewot ICAgICBpcjo6RnVuY3Rpb24gJmYgPSBjdHguZ2V0RnVuY3Rpb24oKTsKLQotICAgICBpZiAoZi5n ZXR3Z0Jyb2FkY2FzdFNMTSgpIDwgMCAmJiBvcGNvZGUgPT0gaXI6OldPUktHUk9VUF9PUF9CUk9B RENBU1QpIHsKLUBAIC00Mzc4LDggKzQzNzgsOCBAQAotICAgICAgIEdCRV9BU1NFUlQoZi5nZXR0 aWRNYXBTTE0oKSA+PSAwKTsKLSAgICAgfQotCi0tICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3Ig QUkgPSBDUy5hcmdfYmVnaW4oKTsKLS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBRSA9IENT LmFyZ19lbmQoKTsKLSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUkgPSBJLmFyZ19iZWdpbigpOwot KyAgICBVc2VyOjpvcF9pdGVyYXRvciBBRSA9IEkuYXJnX2VuZCgpOwotICAgICBHQkVfQVNTRVJU KEFJICE9IEFFKTsKLQotICAgICBpZiAob3Bjb2RlID09IGlyOjpXT1JLR1JPVVBfT1BfQUxMIHx8 IG9wY29kZSA9PSBpcjo6V09SS0dST1VQX09QX0FOWSkgewotQEAgLTQzOTEsMTQgKzQzOTEsMTQg QEAKLSAgICAgICBjb25zdCBpcjo6VHVwbGUgc3JjVHVwbGUgPSBjdHguYXJyYXlUdXBsZSgmc3Jj WzBdLCAzKTsKLSAgICAgICBjdHguV09SS0dST1VQKG9wY29kZSwgKHVpbnQzMl90KWYuZ2V0dGlk TWFwU0xNKCksIGdldFJlZ2lzdGVyKCZJKSwgc3JjVHVwbGUsIDMsIGlyOjpUWVBFX1MzMik7Ci0g ICAgIH0gZWxzZSBpZiAob3Bjb2RlID09IGlyOjpXT1JLR1JPVVBfT1BfQlJPQURDQVNUKSB7Ci0t ICAgICAgaW50IGFyZ051bSA9IENTLmFyZ19zaXplKCk7Ci0rICAgICAgaW50IGFyZ051bSA9IEku YXJnX3NpemUoKTsKLSAgICAgICBzdGQ6OnZlY3Rvcjxpcjo6UmVnaXN0ZXI+IHNyYyhhcmdOdW0p OwotICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJnTnVtOyBpKyspIHsKLSAgICAgICAgIHNy Y1tpXSA9IHRoaXMtPmdldFJlZ2lzdGVyKCooQUkrKykpOwotICAgICAgIH0KLSAgICAgICBjb25z dCBpcjo6VHVwbGUgc3JjVHVwbGUgPSBjdHguYXJyYXlUdXBsZSgmc3JjWzBdLCBhcmdOdW0pOwot ICAgICAgIGN0eC5XT1JLR1JPVVAoaXI6OldPUktHUk9VUF9PUF9CUk9BRENBU1QsICh1aW50MzJf dClmLmdldHdnQnJvYWRjYXN0U0xNKCksIGdldFJlZ2lzdGVyKCZJKSwgc3JjVHVwbGUsIGFyZ051 bSwKLS0gICAgICAgICAgZ2V0VHlwZShjdHgsICgqQ1MuYXJnX2JlZ2luKCkpLT5nZXRUeXBlKCkp KTsKLSsgICAgICAgICAgZ2V0VHlwZShjdHgsICgqSS5hcmdfYmVnaW4oKSktPmdldFR5cGUoKSkp OwotICAgICB9IGVsc2UgewotICAgICAgIENvbnN0YW50SW50ICpzaWduID0gZHluX2Nhc3Q8Q29u c3RhbnRJbnQ+KEFJKTsKLSAgICAgICBHQkVfQVNTRVJUKHNpZ24pOwotQEAgLTQ0MjMsOSArNDQy Myw5IEBACi0gICAgIEdCRV9BU1NFUlQoQUkgPT0gQUUpOwotICAgfQotCi0tICB2b2lkIEdlbldy aXRlcjo6ZW1pdFN1Ykdyb3VwSW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBpcjo6V29y a0dyb3VwT3BzIG9wY29kZSkgewotLSAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFJID0gQ1Mu YXJnX2JlZ2luKCk7Ci0tICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUUgPSBDUy5hcmdfZW5k KCk7Ci0rICB2b2lkIEdlbldyaXRlcjo6ZW1pdFN1Ykdyb3VwSW5zdChDYWxsSW5zdCAmSSwgaXI6 OldvcmtHcm91cE9wcyBvcGNvZGUpIHsKLSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUkgPSBJLmFy Z19iZWdpbigpOwotKyAgICBVc2VyOjpvcF9pdGVyYXRvciBBRSA9IEkuYXJnX2VuZCgpOwotICAg ICBHQkVfQVNTRVJUKEFJICE9IEFFKTsKLQotICAgICBpZiAob3Bjb2RlID09IGlyOjpXT1JLR1JP VVBfT1BfQUxMIHx8IG9wY29kZSA9PSBpcjo6V09SS0dST1VQX09QX0FOWSkgewotQEAgLTQ0MzUs NyArNDQzNSw3IEBACi0gICAgICAgY29uc3QgaXI6OlR1cGxlIHNyY1R1cGxlID0gY3R4LmFycmF5 VHVwbGUoJnNyY1swXSwgMSk7Ci0gICAgICAgY3R4LlNVQkdST1VQKG9wY29kZSwgZ2V0UmVnaXN0 ZXIoJkkpLCBzcmNUdXBsZSwgMSwgaXI6OlRZUEVfUzMyKTsKLSAgICAgfSBlbHNlIGlmIChvcGNv ZGUgPT0gaXI6OldPUktHUk9VUF9PUF9CUk9BRENBU1QpIHsKLS0gICAgICBpbnQgYXJnTnVtID0g Q1MuYXJnX3NpemUoKTsKLSsgICAgICBpbnQgYXJnTnVtID0gSS5hcmdfc2l6ZSgpOwotICAgICAg IEdCRV9BU1NFUlQoYXJnTnVtID09IDIpOwotICAgICAgIHN0ZDo6dmVjdG9yPGlyOjpSZWdpc3Rl cj4gc3JjKGFyZ051bSk7Ci0gICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdOdW07IGkrKykg ewotQEAgLTQ0NDMsNyArNDQ0Myw3IEBACi0gICAgICAgfQotICAgICAgIGNvbnN0IGlyOjpUdXBs ZSBzcmNUdXBsZSA9IGN0eC5hcnJheVR1cGxlKCZzcmNbMF0sIGFyZ051bSk7Ci0gICAgICAgY3R4 LlNVQkdST1VQKGlyOjpXT1JLR1JPVVBfT1BfQlJPQURDQVNULCBnZXRSZWdpc3RlcigmSSksIHNy Y1R1cGxlLCBhcmdOdW0sCi0tICAgICAgICAgIGdldFR5cGUoY3R4LCAoKkNTLmFyZ19iZWdpbigp KS0+Z2V0VHlwZSgpKSk7Ci0rICAgICAgICAgIGdldFR5cGUoY3R4LCAoKkkuYXJnX2JlZ2luKCkp LT5nZXRUeXBlKCkpKTsKLSAgICAgfSBlbHNlIHsKLSAgICAgICBDb25zdGFudEludCAqc2lnbiA9 IGR5bl9jYXN0PENvbnN0YW50SW50PihBSSk7Ci0gICAgICAgR0JFX0FTU0VSVChzaWduKTsKLUBA IC00NDY2LDkgKzQ0NjYsOSBAQAotICAgICBHQkVfQVNTRVJUKEFJID09IEFFKTsKLSAgIH0KLQot LSAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoQ2FsbEluc3QgJkks IENhbGxTaXRlICZDUywgYm9vbCBpc1dyaXRlLCB1aW50OF90IHZlY19zaXplLCBpcjo6VHlwZSB0 eXBlKSB7Ci0tICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUkgPSBDUy5hcmdfYmVnaW4oKTsK LS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBRSA9IENTLmFyZ19lbmQoKTsKLSsgIHZvaWQg R2VuV3JpdGVyOjplbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KENhbGxJbnN0ICZJLCBib29sIGlz V3JpdGUsIHVpbnQ4X3QgdmVjX3NpemUsIGlyOjpUeXBlIHR5cGUpIHsKLSsgICAgVXNlcjo6b3Bf aXRlcmF0b3IgQUkgPSBJLmFyZ19iZWdpbigpOwotKyAgICBVc2VyOjpvcF9pdGVyYXRvciBBRSA9 IEkuYXJnX2VuZCgpOwotICAgICBHQkVfQVNTRVJUKEFJICE9IEFFKTsKLQotICAgICBWYWx1ZSAq bGx2bVB0ciA9ICooQUkrKyk7Ci1AQCAtNDUyMiw5ICs0NTIyLDkgQEAKLSAgICAgR0JFX0FTU0VS VChBSSA9PSBBRSk7Ci0gICB9Ci0KLS0gIHZvaWQgR2VuV3JpdGVyOjplbWl0QmxvY2tSZWFkV3Jp dGVJbWFnZUluc3QoQ2FsbEluc3QgJkksIENhbGxTaXRlICZDUywgYm9vbCBpc1dyaXRlLCB1aW50 OF90IHZlY19zaXplLCBpcjo6VHlwZSB0eXBlKSB7Ci0tICAgIENhbGxTaXRlOjphcmdfaXRlcmF0 b3IgQUkgPSBDUy5hcmdfYmVnaW4oKTsKLS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBRSA9 IENTLmFyZ19lbmQoKTsKLSsgIHZvaWQgR2VuV3JpdGVyOjplbWl0QmxvY2tSZWFkV3JpdGVJbWFn ZUluc3QoQ2FsbEluc3QgJkksIGJvb2wgaXNXcml0ZSwgdWludDhfdCB2ZWNfc2l6ZSwgaXI6OlR5 cGUgdHlwZSkgewotKyAgICBVc2VyOjpvcF9pdGVyYXRvciBBSSA9IEkuYXJnX2JlZ2luKCk7Ci0r ICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFFID0gSS5hcmdfZW5kKCk7Ci0gICAgIEdCRV9BU1NFUlQo QUkgIT0gQUUpOwotCi0gICAgIGNvbnN0IHVpbnQ4X3QgaW1hZ2VJRCA9IGdldEltYWdlSUQoSSk7 Ci1AQCAtNDU1Nyw3ICs0NTU3LDcgQEAKLQotICAgLyogYXBwZW5kIGEgbmV3IHNhbXBsZXIuIHNo b3VsZCBiZSBjYWxsZWQgYmVmb3JlIGFueSByZWZlcmVuY2UgdG8KLSAgICAqIGEgc2FtcGxlcl90 IHZhbHVlLiAqLwotLSAgdWludDhfdCBHZW5Xcml0ZXI6OmFwcGVuZFNhbXBsZXIoQ2FsbFNpdGU6 OmFyZ19pdGVyYXRvciBBSSkgewotKyAgdWludDhfdCBHZW5Xcml0ZXI6OmFwcGVuZFNhbXBsZXIo VXNlcjo6b3BfaXRlcmF0b3IgQUkpIHsKLSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBM TFZNX1ZFUlNJT05fTUlOT1IgPj0gNDAKLSAgICAgQ2FsbEluc3QgKlRDID0gZHluX2Nhc3Q8Q2Fs bEluc3Q+KCpBSSk7Ci0gICAgIENvbnN0YW50ICpDUFYgPSBUQyA/IGR5bl9jYXN0PENvbnN0YW50 PihUQy0+Z2V0T3BlcmFuZCgwKSkgOiBOVUxMOwotQEAgLTQ1OTUsMTAgKzQ1OTUsOSBAQAotICAg ICAgICAgY29uc3QgaXI6OkZ1bmN0aW9uICZmbiA9IGN0eC5nZXRGdW5jdGlvbigpOwotCi0gICAg ICAgICAvLyBHZXQgdGhlIGZ1bmN0aW9uIGFyZ3VtZW50cwotLSAgICAgICAgQ2FsbFNpdGUgQ1Mo JkkpOwotLSAgICAgICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBSSA9IENTLmFyZ19iZWdpbigp OwotKyAgICAgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUkgPSBJLmFyZ19iZWdpbigpOwotICNpZiBH QkVfREVCVUcKLS0gICAgICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUUgPSBDUy5hcmdfZW5k KCk7Ci0rICAgICAgICBVc2VyOjpvcF9pdGVyYXRvciBBRSA9IEkuYXJnX2VuZCgpOwotICNlbmRp ZiAvKiBHQkVfREVCVUcgKi8KLSAgICAgICAgIHN3aXRjaCAoRi0+Z2V0SW50cmluc2ljSUQoKSkg ewotICAgICAgICAgICBjYXNlIEludHJpbnNpYzo6c3RhY2tzYXZlOgotQEAgLTQ3NjQsMTcgKzQ3 NjMsMTcgQEAKLSAgICAgICAgICAgICBjdHguTUFEKHNyY1R5cGUsIGRzdCwgc3JjMCwgc3JjMSwg c3JjMik7Ci0gICAgICAgICAgIH0KLSAgICAgICAgICAgYnJlYWs7Ci0tICAgICAgICAgIGNhc2Ug SW50cmluc2ljOjpzcXJ0OiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9TUVIp OyBicmVhazsKLS0gICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OmNlaWw6IHRoaXMtPmVtaXRSb3Vu ZGluZ0NhbGxJbnN0KEksQ1MsaXI6Ok9QX1JORFUpOyBicmVhazsKLS0gICAgICAgICAgY2FzZSBJ bnRyaW5zaWM6OnRydW5jOiB0aGlzLT5lbWl0Um91bmRpbmdDYWxsSW5zdChJLENTLGlyOjpPUF9S TkRaKTsgYnJlYWs7Ci0tICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpyaW50OiB0aGlzLT5lbWl0 Um91bmRpbmdDYWxsSW5zdChJLENTLGlyOjpPUF9STkRFKTsgYnJlYWs7Ci0tICAgICAgICAgIGNh c2UgSW50cmluc2ljOjpmbG9vcjogdGhpcy0+ZW1pdFJvdW5kaW5nQ2FsbEluc3QoSSxDUyxpcjo6 T1BfUk5ERCk7IGJyZWFrOwotLSAgICAgICAgICBjYXNlIEludHJpbnNpYzo6c2luOiB0aGlzLT5l bWl0VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9TSU4pOyBicmVhazsKLS0gICAgICAgICAgY2Fz ZSBJbnRyaW5zaWM6OmNvczogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxDUyxpcjo6T1BfQ09T KTsgYnJlYWs7Ci0tICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpsb2cyOiB0aGlzLT5lbWl0VW5h cnlDYWxsSW5zdChJLENTLGlyOjpPUF9MT0cpOyBicmVhazsKLS0gICAgICAgICAgY2FzZSBJbnRy aW5zaWM6OmV4cDI6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksQ1MsaXI6Ok9QX0VYUCk7IGJy ZWFrOwotKyAgICAgICAgICBjYXNlIEludHJpbnNpYzo6c3FydDogdGhpcy0+ZW1pdFVuYXJ5Q2Fs bEluc3QoSSxpcjo6T1BfU1FSKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpj ZWlsOiB0aGlzLT5lbWl0Um91bmRpbmdDYWxsSW5zdChJLGlyOjpPUF9STkRVKTsgYnJlYWs7Ci0r ICAgICAgICAgIGNhc2UgSW50cmluc2ljOjp0cnVuYzogdGhpcy0+ZW1pdFJvdW5kaW5nQ2FsbElu c3QoSSxpcjo6T1BfUk5EWik7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEludHJpbnNpYzo6cmlu dDogdGhpcy0+ZW1pdFJvdW5kaW5nQ2FsbEluc3QoSSxpcjo6T1BfUk5ERSk7IGJyZWFrOwotKyAg ICAgICAgICBjYXNlIEludHJpbnNpYzo6Zmxvb3I6IHRoaXMtPmVtaXRSb3VuZGluZ0NhbGxJbnN0 KEksaXI6Ok9QX1JOREQpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OnNpbjog dGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1BfU0lOKTsgYnJlYWs7Ci0rICAgICAgICAg IGNhc2UgSW50cmluc2ljOjpjb3M6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksaXI6Ok9QX0NP Uyk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEludHJpbnNpYzo6bG9nMjogdGhpcy0+ZW1pdFVu YXJ5Q2FsbEluc3QoSSxpcjo6T1BfTE9HKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgSW50cmlu c2ljOjpleHAyOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLGlyOjpPUF9FWFApOyBicmVhazsK LSAgICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OmJzd2FwOgotLSAgICAgICAgICAgIHRoaXMtPmVt aXRVbmFyeUNhbGxJbnN0KEksQ1MsaXI6Ok9QX0JTV0FQLCBnZXRVbnNpZ25lZFR5cGUoY3R4LCBJ LmdldFR5cGUoKSkpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0VW5hcnlDYWxsSW5z dChJLGlyOjpPUF9CU1dBUCwgZ2V0VW5zaWduZWRUeXBlKGN0eCwgSS5nZXRUeXBlKCkpKTsgYnJl YWs7Ci0gICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpwb3c6Ci0gICAgICAgICAgIHsKLSAgICAg ICAgICAgICBjb25zdCBpcjo6UmVnaXN0ZXIgc3JjMCA9IHRoaXMtPmdldFJlZ2lzdGVyKCpBSSk7 ICsrQUk7Ci1AQCAtNDc5NCwyMSArNDc5MywyMCBAQAotICAgICAgICAgfQotICAgICAgIH0gZWxz ZSB7Ci0gICAgICAgICAvLyBHZXQgdGhlIG5hbWUgb2YgdGhlIGNhbGxlZCBmdW5jdGlvbiBhbmQg aGFuZGxlIGl0Ci0tICAgICAgICBWYWx1ZSAqQ2FsbGVlID0gSS5nZXRDYWxsZWRWYWx1ZSgpOwot LSAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgZm5OYW1lID0gQ2FsbGVlLT5zdHJpcFBvaW50ZXJD YXN0cygpLT5nZXROYW1lKCk7Ci0rICAgICAgICBWYWx1ZSAqQ2FsbGVlID0gSS5nZXRDYWxsZWRP cGVyYW5kKCk7Ci0rICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyBmbk5hbWUgPSBDYWxsZWUtPnN0 cmlwUG9pbnRlckNhc3RzKCktPmdldE5hbWUoKS5zdHIoKTsKLSAgICAgICAgIGF1dG8gZ2VuSW50 cmluc2ljSUQgPSBpbnRyaW5zaWNNYXAuZmluZChmbk5hbWUpOwotCi0gICAgICAgICAvLyBHZXQg dGhlIGZ1bmN0aW9uIGFyZ3VtZW50cwotLSAgICAgICAgQ2FsbFNpdGUgQ1MoJkkpOwotLSAgICAg ICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBSSA9IENTLmFyZ19iZWdpbigpOwotKyAgICAgICAg VXNlcjo6b3BfaXRlcmF0b3IgQUkgPSBJLmFyZ19iZWdpbigpOwotICNpZiBHQkVfREVCVUcKLS0g ICAgICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUUgPSBDUy5hcmdfZW5kKCk7Ci0rICAgICAg ICBVc2VyOjpvcF9pdGVyYXRvciBBRSA9IEkuYXJnX2VuZCgpOwotICNlbmRpZiAvKiBHQkVfREVC VUcgKi8KLQotICAgICAgICAgc3dpdGNoIChnZW5JbnRyaW5zaWNJRCkgewotLSAgICAgICAgICBj YXNlIEdFTl9PQ0xfRkJIOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9GQkgs IGlyOjpUWVBFX1UzMik7IGJyZWFrOwotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfRkJMOiB0aGlz LT5lbWl0VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9GQkwsIGlyOjpUWVBFX1UzMik7IGJyZWFr OwotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQ0JJVDogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3Qo SSxDUyxpcjo6T1BfQ0JJVCwgZ2V0VW5zaWduZWRUeXBlKGN0eCwgKCpBSSktPmdldFR5cGUoKSkp OyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0ZCSDogdGhpcy0+ZW1pdFVuYXJ5Q2Fs bEluc3QoSSxpcjo6T1BfRkJILCBpcjo6VFlQRV9VMzIpOyBicmVhazsKLSsgICAgICAgICAgY2Fz ZSBHRU5fT0NMX0ZCTDogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1BfRkJMLCBpcjo6 VFlQRV9VMzIpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0NCSVQ6IHRoaXMtPmVt aXRVbmFyeUNhbGxJbnN0KEksaXI6Ok9QX0NCSVQsIGdldFVuc2lnbmVkVHlwZShjdHgsICgqQUkp LT5nZXRUeXBlKCkpKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9BQlM6Ci0gICAg ICAgICAgIHsKLSAgICAgICAgICAgICBjb25zdCBpcjo6UmVnaXN0ZXIgc3JjID0gdGhpcy0+Z2V0 UmVnaXN0ZXIoKkFJKTsKLUBAIC00OTE1LDggKzQ5MTMsOCBAQAotICAgICAgICAgICAgIGN0eC5S RUdJT04oZHN0LCBzcmMsIHguZ2V0SW50ZWdlclZhbHVlKCkpOwotICAgICAgICAgICAgIGJyZWFr OwotICAgICAgICAgICB9Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9SU1E6IHRoaXMtPmVtaXRV bmFyeUNhbGxJbnN0KEksQ1MsaXI6Ok9QX1JTUSk7IGJyZWFrOwotLSAgICAgICAgICBjYXNlIEdF Tl9PQ0xfUkNQOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9SQ1ApOyBicmVh azsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX1JTUTogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3Qo SSxpcjo6T1BfUlNRKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9SQ1A6IHRoaXMt PmVtaXRVbmFyeUNhbGxJbnN0KEksaXI6Ok9QX1JDUCk7IGJyZWFrOwotICAgICAgICAgICBjYXNl IEdFTl9PQ0xfRk9SQ0VfU0lNRDg6IGN0eC5zZXRTaW1kV2lkdGgoOCk7IGJyZWFrOwotICAgICAg ICAgICBjYXNlIEdFTl9PQ0xfRk9SQ0VfU0lNRDE2OiBjdHguc2V0U2ltZFdpZHRoKDE2KTsgYnJl YWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9MQkFSUklFUjogY3R4LlNZTkMoaXI6OnN5bmNM b2NhbEJhcnJpZXIpOyBicmVhazsKLUBAIC00OTQ3LDMxICs0OTQ1LDMxIEBACi0gICAgICAgICAg ICAgYnJlYWs7Ci0gICAgICAgICAgIH0KLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19B REQwOgotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0FERDE6IHRoaXMtPmVtaXRBdG9t aWNJbnN0KEksQ1MsaXI6OkFUT01JQ19PUF9BREQpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBH RU5fT0NMX0FUT01JQ19BREQxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1Bf QUREKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfU1VCMDoKLS0gICAg ICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19TVUIxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENT LGlyOjpBVE9NSUNfT1BfU1VCKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9N SUNfU1VCMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxpcjo6QVRPTUlDX09QX1NVQik7IGJyZWFr OwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0FORDA6Ci0tICAgICAgICAgIGNhc2Ug R0VOX09DTF9BVE9NSUNfQU5EMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxDUyxpcjo6QVRPTUlD X09QX0FORCk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0FORDE6IHRo aXMtPmVtaXRBdG9taWNJbnN0KEksaXI6OkFUT01JQ19PUF9BTkQpOyBicmVhazsKLSAgICAgICAg ICAgY2FzZSBHRU5fT0NMX0FUT01JQ19PUjA6Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9N SUNfT1IxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfT1IpOyBicmVh azsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19PUjE6IHRoaXMtPmVtaXRBdG9taWNJ bnN0KEksaXI6OkFUT01JQ19PUF9PUik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xf QVRPTUlDX1hPUjA6Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfWE9SMTogdGhpcy0+ ZW1pdEF0b21pY0luc3QoSSxDUyxpcjo6QVRPTUlDX09QX1hPUik7IGJyZWFrOwotKyAgICAgICAg ICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1hPUjE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksaXI6OkFU T01JQ19PUF9YT1IpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19YQ0hH MDoKLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19YQ0hHMTogdGhpcy0+ZW1pdEF0b21p Y0luc3QoSSxDUyxpcjo6QVRPTUlDX09QX1hDSEcpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBH RU5fT0NMX0FUT01JQ19YQ0hHMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxpcjo6QVRPTUlDX09Q X1hDSEcpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19JTkMwOgotLSAg ICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0lOQzE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEks Q1MsaXI6OkFUT01JQ19PUF9JTkMpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0FU T01JQ19JTkMxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfSU5DKTsgYnJl YWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfREVDMDoKLS0gICAgICAgICAgY2Fz ZSBHRU5fT0NMX0FUT01JQ19ERUMxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9N SUNfT1BfREVDKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfREVDMTog dGhpcy0+ZW1pdEF0b21pY0luc3QoSSxpcjo6QVRPTUlDX09QX0RFQyk7IGJyZWFrOwotICAgICAg ICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1VNSU4wOgotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xf QVRPTUlDX1VNSU4xOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfVU1J Tik7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1VNSU4xOiB0aGlzLT5l bWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfVU1JTik7IGJyZWFrOwotICAgICAgICAgICBj YXNlIEdFTl9PQ0xfQVRPTUlDX1VNQVgwOgotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlD X1VNQVgxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfVU1BWCk7IGJy ZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1VNQVgxOiB0aGlzLT5lbWl0QXRv bWljSW5zdChJLGlyOjpBVE9NSUNfT1BfVU1BWCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdF Tl9PQ0xfQVRPTUlDX0lNSU4wOgotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0lNSU4x OiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfSU1JTik7IGJyZWFrOwot KyAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0lNSU4xOiB0aGlzLT5lbWl0QXRvbWljSW5z dChJLGlyOjpBVE9NSUNfT1BfSU1JTik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xf QVRPTUlDX0lNQVgwOgotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0lNQVgxOiB0aGlz LT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfSU1BWCk7IGJyZWFrOwotKyAgICAg ICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0lNQVgxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGly OjpBVE9NSUNfT1BfSU1BWCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlD X0NNUFhDSEcwOgotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0NNUFhDSEcxOiB0aGlz LT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfQ01QWENIRyk7IGJyZWFrOwotKyAg ICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0NNUFhDSEcxOiB0aGlzLT5lbWl0QXRvbWljSW5z dChJLGlyOjpBVE9NSUNfT1BfQ01QWENIRyk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9P Q0xfR0VUX0lNQUdFX1dJRFRIOgotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfR0VUX0lNQUdFX0hF SUdIVDoKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0dFVF9JTUFHRV9ERVBUSDoKLUBAIC01NDI5 LDQ4ICs1NDI3LDQ4IEBACi0gICAgICAgICAgICAgY3R4LldBSVQoKTsKLSAgICAgICAgICAgICBi cmVhazsKLSAgICAgICAgICAgfQotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfV09SS19HUk9VUF9B TEw6IHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0FMTCk7 IGJyZWFrOwotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfV09SS19HUk9VUF9BTlk6IHRoaXMtPmVt aXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0FOWSk7IGJyZWFrOwotKyAg ICAgICAgICBjYXNlIEdFTl9PQ0xfV09SS19HUk9VUF9BTEw6IHRoaXMtPmVtaXRXb3JrR3JvdXBJ bnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfQUxMKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VO X09DTF9XT1JLX0dST1VQX0FOWTogdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktH Uk9VUF9PUF9BTlkpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1dPUktfR1JPVVBf QlJPQURDQVNUOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENTLCBp cjo6V09SS0dST1VQX09QX0JST0FEQ0FTVCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVt aXRXb3JrR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfQlJPQURDQVNUKTsgYnJlYWs7Ci0g ICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX1JFRFVDRV9BREQ6Ci0tICAgICAgICAg ICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNF X0FERCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIGly OjpXT1JLR1JPVVBfT1BfUkVEVUNFX0FERCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9P Q0xfV09SS19HUk9VUF9SRURVQ0VfTUFYOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3Jv dXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX1JFRFVDRV9NQVgpOyBicmVhazsKLSsgICAg ICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX1JFRFVD RV9NQVgpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1dPUktfR1JPVVBfUkVEVUNF X01JTjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldP UktHUk9VUF9PUF9SRURVQ0VfTUlOKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFdv cmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9SRURVQ0VfTUlOKTsgYnJlYWs7Ci0gICAg ICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX1NDQU5fRVhDTFVTSVZFX0FERDoKLS0gICAg ICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9F WENMVVNJVkVfQUREKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cElu c3QoSSwgaXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVfQUREKTsgYnJlYWs7Ci0gICAgICAgICAg IGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX1NDQU5fRVhDTFVTSVZFX01BWDoKLS0gICAgICAgICAg ICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9FWENMVVNJ VkVfTUFYKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwg aXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVfTUFYKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2Ug R0VOX09DTF9XT1JLX0dST1VQX1NDQU5fRVhDTFVTSVZFX01JTjoKLS0gICAgICAgICAgICB0aGlz LT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVfTUlO KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldP UktHUk9VUF9PUF9FWENMVVNJVkVfTUlOKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09D TF9XT1JLX0dST1VQX1NDQU5fSU5DTFVTSVZFX0FERDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0 V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfQUREKTsgYnJl YWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9V UF9PUF9JTkNMVVNJVkVfQUREKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JL X0dST1VQX1NDQU5fSU5DTFVTSVZFX01BWDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dy b3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfTUFYKTsgYnJlYWs7Ci0r ICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9J TkNMVVNJVkVfTUFYKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQ X1NDQU5fSU5DTFVTSVZFX01JTjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5z dChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfTUlOKTsgYnJlYWs7Ci0rICAgICAg ICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9JTkNMVVNJ VkVfTUlOKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQlJPQURD QVNUOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JL R1JPVVBfT1BfQlJPQURDQVNUKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdy b3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX0JST0FEQ0FTVCk7IGJyZWFrOwotICAgICAgICAg ICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX1JFRFVDRV9BREQ6Ci0tICAgICAgICAgICAgdGhpcy0+ ZW1pdFN1Ykdyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9SRURVQ0VfQUREKTsgYnJl YWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQ X09QX1JFRFVDRV9BREQpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9V UF9SRURVQ0VfTUFYOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgQ1Ms IGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNFX01BWCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMt PmVtaXRTdWJHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9SRURVQ0VfTUFYKTsgYnJlYWs7 Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfUkVEVUNFX01JTjoKLS0gICAgICAg ICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX1JFRFVD RV9NSU4pOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIGly OjpXT1JLR1JPVVBfT1BfUkVEVUNFX01JTik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9P Q0xfU1VCX0dST1VQX1NDQU5fRVhDTFVTSVZFX0FERDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0 U3ViR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0VYQ0xVU0lWRV9BREQpOyBicmVh azsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBf T1BfRVhDTFVTSVZFX0FERCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dS T1VQX1NDQU5fRVhDTFVTSVZFX01BWDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJ bnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0VYQ0xVU0lWRV9NQVgpOyBicmVhazsKLSsgICAg ICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfRVhDTFVT SVZFX01BWCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX1NDQU5f RVhDTFVTSVZFX01JTjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIENT LCBpcjo6V09SS0dST1VQX09QX0VYQ0xVU0lWRV9NSU4pOyBicmVhazsKLSsgICAgICAgICAgICB0 aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfRVhDTFVTSVZFX01JTik7 IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX1NDQU5fSU5DTFVTSVZF X0FERDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIENTLCBpcjo6V09S S0dST1VQX09QX0lOQ0xVU0lWRV9BREQpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0 U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfSU5DTFVTSVZFX0FERCk7IGJyZWFrOwot ICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX1NDQU5fSU5DTFVTSVZFX01BWDoKLS0g ICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09Q X0lOQ0xVU0lWRV9NQVgpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJ bnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfSU5DTFVTSVZFX01BWCk7IGJyZWFrOwotICAgICAgICAg ICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX1NDQU5fSU5DTFVTSVZFX01JTjoKLS0gICAgICAgICAg ICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0lOQ0xVU0lW RV9NSU4pOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIGly OjpXT1JLR1JPVVBfT1BfSU5DTFVTSVZFX01JTik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdF Tl9PQ0xfTFJQOgotICAgICAgICAgICB7Ci0gICAgICAgICAgICAgY29uc3QgaXI6OlJlZ2lzdGVy IGRzdCAgPSB0aGlzLT5nZXRSZWdpc3RlcigmSSk7Ci1AQCAtNTQ4NCw2OSArNTQ4Miw2OSBAQAot ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICB9Ci0gICAgICAgICAgIGNhc2UgR0VOX09D TF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VSV9NRU06Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJs b2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywgZmFsc2UsIDEpOyBicmVhazsKLSsgICAgICAgICAg ICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIGZhbHNlLCAxKTsgYnJlYWs7Ci0g ICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VSV9NRU0yOgotLSAg ICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIGZhbHNlLCAy KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJ LCBmYWxzZSwgMik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JM T0NLX1JFQURfVUlfTUVNNDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVN ZW1JbnN0KEksIENTLCBmYWxzZSwgNCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRC bG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgZmFsc2UsIDQpOyBicmVhazsKLSAgICAgICAgICAgY2Fz ZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VJX01FTTg6Ci0tICAgICAgICAgICAgdGhp cy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywgZmFsc2UsIDgpOyBicmVhazsKLSsg ICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIGZhbHNlLCA4KTsg YnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVUlf TUVNOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1Ms IHRydWUsIDEpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVN ZW1JbnN0KEksIHRydWUsIDEpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9H Uk9VUF9CTE9DS19XUklURV9VSV9NRU0yOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1Jl YWRXcml0ZU1lbUluc3QoSSwgQ1MsIHRydWUsIDIpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlz LT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIHRydWUsIDIpOyBicmVhazsKLSAgICAgICAg ICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9VSV9NRU00OgotLSAgICAgICAg ICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIHRydWUsIDQpOyBicmVh azsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIHRydWUs IDQpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklU RV9VSV9NRU04OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3Qo SSwgQ1MsIHRydWUsIDgpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFk V3JpdGVNZW1JbnN0KEksIHRydWUsIDgpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NM X1NVQl9HUk9VUF9CTE9DS19SRUFEX1VJX0lNQUdFOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRC bG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgZmFsc2UsIDEpOyBicmVhazsKLSsgICAgICAg ICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgZmFsc2UsIDEpOyBicmVh azsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VJX0lNQUdF MjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1Ms IGZhbHNlLCAyKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRl SW1hZ2VJbnN0KEksIGZhbHNlLCAyKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9T VUJfR1JPVVBfQkxPQ0tfUkVBRF9VSV9JTUFHRTQ6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJs b2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIENTLCBmYWxzZSwgNCk7IGJyZWFrOwotKyAgICAgICAg ICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBmYWxzZSwgNCk7IGJyZWFr OwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVUlfSU1BR0U4 OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywg ZmFsc2UsIDgpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJ bWFnZUluc3QoSSwgZmFsc2UsIDgpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NV Ql9HUk9VUF9CTE9DS19XUklURV9VSV9JTUFHRToKLS0gICAgICAgICAgICB0aGlzLT5lbWl0Qmxv Y2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIHRydWUsIDEpOyBicmVhazsKLSsgICAgICAgICAg ICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgdHJ1ZSwgMSk7IGJyZWFrOwot ICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VJX0lNQUdFMjoK LS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIHRy dWUsIDIpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFn ZUluc3QoSSwgdHJ1ZSwgMik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dS T1VQX0JMT0NLX1dSSVRFX1VJX0lNQUdFNDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tS ZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIHRydWUsIDQpOyBicmVhazsKLSsgICAgICAgICAgICB0 aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgdHJ1ZSwgNCk7IGJyZWFrOwotICAg ICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VJX0lNQUdFODoKLS0g ICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIHRydWUs IDgpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUlu c3QoSSwgdHJ1ZSwgOCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQ X0JMT0NLX1JFQURfVVNfTUVNOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0 ZU1lbUluc3QoSSwgQ1MsIGZhbHNlLCAxLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAg ICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIGZhbHNlLCAxLCBpcjo6VFlQ RV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19S RUFEX1VTX01FTTI6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5z dChJLCBDUywgZmFsc2UsIDIsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAgICAgIHRo aXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgZmFsc2UsIDIsIGlyOjpUWVBFX1UxNik7 IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVVNf TUVNNDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENT LCBmYWxzZSwgNCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1p dEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBmYWxzZSwgNCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7 Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VU19NRU04Ogot LSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIGZhbHNl LCA4LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tS ZWFkV3JpdGVNZW1JbnN0KEksIGZhbHNlLCA4LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAg ICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9VU19NRU06Ci0tICAgICAg ICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywgdHJ1ZSwgMSwgaXI6 OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRl TWVtSW5zdChJLCB0cnVlLCAxLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2Fz ZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9VU19NRU0yOgotLSAgICAgICAgICAgIHRo aXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIHRydWUsIDIsIGlyOjpUWVBFX1Ux Nik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3Qo SSwgdHJ1ZSwgMiwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09D TF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVVNfTUVNNDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0 QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENTLCB0cnVlLCA0LCBpcjo6VFlQRV9VMTYpOyBicmVh azsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIHRydWUs IDQsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dS T1VQX0JMT0NLX1dSSVRFX1VTX01FTTg6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVh ZFdyaXRlTWVtSW5zdChJLCBDUywgdHJ1ZSwgOCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAg ICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCB0cnVlLCA4LCBpcjo6 VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9D S19SRUFEX1VTX0lNQUdFOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUlt YWdlSW5zdChJLCBDUywgZmFsc2UsIDEsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAg ICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBmYWxzZSwgMSwgaXI6OlRZ UEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tf UkVBRF9VU19JTUFHRTI6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1h Z2VJbnN0KEksIENTLCBmYWxzZSwgMiwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAgICAgICAg ICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIGZhbHNlLCAyLCBpcjo6VFlQ RV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19S RUFEX1VTX0lNQUdFNDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFn ZUluc3QoSSwgQ1MsIGZhbHNlLCA0LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAgICAg ICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgZmFsc2UsIDQsIGlyOjpUWVBF X1UxNik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JF QURfVVNfSU1BR0U4OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdl SW5zdChJLCBDUywgZmFsc2UsIDgsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAgICAg IHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBmYWxzZSwgOCwgaXI6OlRZUEVf VTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJ VEVfVVNfSU1BR0U6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJ bnN0KEksIENTLCB0cnVlLCAxLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAgICAgICB0 aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgdHJ1ZSwgMSwgaXI6OlRZUEVfVTE2 KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVf VVNfSU1BR0UyOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5z dChJLCBDUywgdHJ1ZSwgMiwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhp cy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIHRydWUsIDIsIGlyOjpUWVBFX1UxNik7 IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VT X0lNQUdFNDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3Qo SSwgQ1MsIHRydWUsIDQsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMt PmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCB0cnVlLCA0LCBpcjo6VFlQRV9VMTYpOyBi cmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9VU19J TUFHRTg6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEks IENTLCB0cnVlLCA4LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5l bWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgdHJ1ZSwgOCwgaXI6OlRZUEVfVTE2KTsgYnJl YWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9HRVRfUElQRToKLSAgICAgICAgICAgY2FzZSBH RU5fT0NMX01BS0VfUklEOgotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfR0VUX1JJRDoKLS0tLSBh L2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbmNsdWRlcy5ocHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44 MjM4NjYxMTIgKzAxMDAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbmNsdWRlcy5ocHAJ MjAyMC0xMS0wOSAxOTowMDowOS45NTU5MjY3OTUgKzAxMDAKLUBAIC0xMDMsNyArMTAzLDYgQEAK LQotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSAz NQotICNpbmNsdWRlICJsbHZtL0lSL01hbmdsZXIuaCIKLS0jaW5jbHVkZSAibGx2bS9JUi9DYWxs U2l0ZS5oIgotICNpbmNsdWRlICJsbHZtL0lSL0NGRy5oIgotICNpbmNsdWRlICJsbHZtL0lSL0lu c3RWaXNpdG9yLmgiCi0gI2luY2x1ZGUgImxsdm0vSVIvSVJQcmludGluZ1Bhc3Nlcy5oIgotLS0t IGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2xvYWRzdG9yZV9vcHRpbWl6YXRpb24uY3BwCTIwMjAt MTEtMDkgMTY6NDg6MjAuODIzODY2MTEyICswMTAwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xs dm1fbG9hZHN0b3JlX29wdGltaXphdGlvbi5jcHAJMjAyMC0xMS0wOSAxOToxMDozNy4xNDE4NTIz MDggKzAxMDAKLUBAIC0xNjAsNyArMTYwLDcgQEAKLSAgICAgVmFsdWUgKnZlY1B0ciA9IEJ1aWxk ZXIuQ3JlYXRlQml0Q2FzdChsZC0+Z2V0UG9pbnRlck9wZXJhbmQoKSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9pbnRlclR5cGU6OmdldCh2ZWNUeSwgYWRkclNw YWNlKSk7Ci0gICAgIExvYWRJbnN0ICp2ZWNWYWx1ZSA9IEJ1aWxkZXIuQ3JlYXRlTG9hZCh2ZWNQ dHIpOwotLSAgICB2ZWNWYWx1ZS0+c2V0QWxpZ25tZW50KGFsaWduKTsKLSsgICAgdmVjVmFsdWUt PnNldEFsaWdubWVudChhbGlnbi52YWx1ZU9yT25lKCkpOwotCi0gICAgIGZvciAodW5zaWduZWQg aSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAgICBWYWx1ZSAqUyA9IEJ1aWxkZXIuQ3JlYXRl RXh0cmFjdEVsZW1lbnQodmVjVmFsdWUsIEJ1aWxkZXIuZ2V0SW50MzIoaSkpOwotQEAgLTI1MSw3 ICsyNTEsNyBAQAotICAgICAgIHJldHVybjsKLSAgICAgVmFsdWUgKm5ld1B0ciA9IEJ1aWxkZXIu Q3JlYXRlQml0Q2FzdChzdFBvaW50ZXIsIFBvaW50ZXJUeXBlOjpnZXQodmVjVHksIGFkZHJTcGFj ZSkpOwotICAgICBTdG9yZUluc3QgKm5ld1NUID0gQnVpbGRlci5DcmVhdGVTdG9yZShwYXJlbnQs IG5ld1B0cik7Ci0tICAgIG5ld1NULT5zZXRBbGlnbm1lbnQoYWxpZ24pOwotKyAgICBuZXdTVC0+ c2V0QWxpZ25tZW50KGFsaWduLnZhbHVlT3JPbmUoKSk7Ci0gICB9Ci0KLSAgIC8vIEZpbmQgdGhl IHNhZmUgaXRlcmF0b3Igd2UgY2FuIHBvaW50IHRvLiBJZiByZW9yZGVyIGhhcHBlbnMsIHdlIG5l ZWQgdG8KLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9wYXNzZXMuY3BwCTIwMjAtMTEtMDkg MTY6NDg6MjAuODIzODY2MTEyICswMTAwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fcGFz c2VzLmNwcAkyMDIwLTExLTA5IDE4OjQ4OjU1Ljk5NzAwNjgzNyArMDEwMAotQEAgLTk1LDcgKzk1 LDcgQEAKLSAgIHsKLSAgICAgc3dpdGNoIChUeS0+Z2V0VHlwZUlEKCkpIHsKLSAgICAgICBjYXNl IFR5cGU6OlZvaWRUeUlEOiBOT1RfU1VQUE9SVEVEOwotLSAgICAgIGNhc2UgVHlwZTo6VmVjdG9y VHlJRDoKLSsgICAgICBjYXNlIFR5cGU6OkZpeGVkVmVjdG9yVHlJRDoKLSAgICAgICB7Ci0gICAg ICAgICBjb25zdCBWZWN0b3JUeXBlKiBWZWNUeSA9IGNhc3Q8VmVjdG9yVHlwZT4oVHkpOwotICAg ICAgICAgdWludDMyX3QgZWxlbU51bSA9IFZlY1R5LT5nZXROdW1FbGVtZW50cygpOwotQEAgLTEz OCw3ICsxMzgsNyBAQAotICAgICAgIGNhc2UgVHlwZTo6SGFsZlR5SUQ6ICAgIHJldHVybiAxNjsK LSAgICAgICBjYXNlIFR5cGU6OkZsb2F0VHlJRDogICByZXR1cm4gMzI7Ci0gICAgICAgY2FzZSBU eXBlOjpEb3VibGVUeUlEOiAgcmV0dXJuIDY0OwotLSAgICAgIGNhc2UgVHlwZTo6VmVjdG9yVHlJ RDoKLSsgICAgICBjYXNlIFR5cGU6OkZpeGVkVmVjdG9yVHlJRDoKLSAgICAgICB7Ci0gICAgICAg ICBjb25zdCBWZWN0b3JUeXBlKiBWZWNUeSA9IGNhc3Q8VmVjdG9yVHlwZT4oVHkpOwotICAgICAg ICAgdWludDMyX3QgbnVtRWxlbSA9IFZlY1R5LT5nZXROdW1FbGVtZW50cygpOwotQEAgLTE4NCwx MCArMTg0LDEyIEBACi0gICAgIFR5cGUgKmVsZW1lbnRUeXBlID0gTlVMTDsKLSAgICAgaWYgKFBv aW50ZXJUeXBlKiBwdHJUeXBlID0gZHluX2Nhc3Q8UG9pbnRlclR5cGU+KGVsdFR5KSkKLSAgICAg ICBlbGVtZW50VHlwZSA9IHB0clR5cGUtPmdldEVsZW1lbnRUeXBlKCk7Ci0tICAgIGVsc2UgaWYo U2VxdWVudGlhbFR5cGUgKiBzZXFUeXBlID0gZHluX2Nhc3Q8U2VxdWVudGlhbFR5cGU+KGVsdFR5 KSkKLS0gICAgICBlbGVtZW50VHlwZSA9IHNlcVR5cGUtPmdldEVsZW1lbnRUeXBlKCk7Ci0tICAg IGVsc2UgaWYoQ29tcG9zaXRlVHlwZSAqIGNvbXBUeT0gZHluX2Nhc3Q8Q29tcG9zaXRlVHlwZT4o ZWx0VHkpKQotLSAgICAgIGVsZW1lbnRUeXBlID0gY29tcFR5LT5nZXRUeXBlQXRJbmRleChpbmRl eCk7Ci0rICAgIGVsc2UgaWYgKEFycmF5VHlwZSAqIGFyclR5cGUgPSBkeW5fY2FzdDxBcnJheVR5 cGU+KGVsdFR5KSkKLSsgICAgICBlbGVtZW50VHlwZSA9IGFyclR5cGUtPmdldEVsZW1lbnRUeXBl KCk7Ci0rICAgIGVsc2UgaWYoVmVjdG9yVHlwZSAqIHZlY1R5cGUgPSBkeW5fY2FzdDxWZWN0b3JU eXBlPihlbHRUeSkpCi0rICAgICAgZWxlbWVudFR5cGUgPSB2ZWNUeXBlLT5nZXRFbGVtZW50VHlw ZSgpOwotKyAgICBlbHNlIGlmKFN0cnVjdFR5cGUgKiBzdHJ1Y3RUeXBlID0gZHluX2Nhc3Q8U3Ry dWN0VHlwZT4oZWx0VHkpKQotKyAgICAgIGVsZW1lbnRUeXBlID0gc3RydWN0VHlwZS0+Z2V0VHlw ZUF0SW5kZXgoaW5kZXgpOwotICAgICBHQkVfQVNTRVJUKGVsZW1lbnRUeXBlKTsKLSAgICAgcmV0 dXJuIGVsZW1lbnRUeXBlOwotICAgfQotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3ByaW50 Zl9wYXJzZXIuY3BwCTIwMjAtMTEtMDkgMTY6NDg6MjAuODIzODY2MTEyICswMTAwCi0rKysgYi9i YWNrZW5kL3NyYy9sbHZtL2xsdm1fcHJpbnRmX3BhcnNlci5jcHAJMjAyMC0xMS0wOSAxODo1Nzo1 Mi42MTg5NDMxMDUgKzAxMDAKLUBAIC0zMjMsOCArMzIzLDcgQEAKLQotICAgYm9vbCBQcmludGZQ YXJzZXI6OnBhcnNlT25lUHJpbnRmSW5zdHJ1Y3Rpb24oQ2FsbEluc3QgKiBjYWxsKQotICAgewot LSAgICBDYWxsU2l0ZSBDUyhjYWxsKTsKLS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBDSV9G TVQgPSBDUy5hcmdfYmVnaW4oKTsKLSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQ0lfRk1UID0gY2Fs bC0+YXJnX2JlZ2luKCk7Ci0gICAgIGludCBwYXJhbV9udW0gPSAwOwotCi0gICAgIGxsdm06OkNv bnN0YW50KiBhcmcwID0gZHluX2Nhc3Q8bGx2bTo6Q29uc3RhbnRFeHByPigqQ0lfRk1UKTsKLUBA IC0zNDEsNyArMzQwLDcgQEAKLSAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgIH0KLQotLSAgICBz dGQ6OnN0cmluZyBmbXQgPSBmbXRfYXJnLT5nZXRBc0NTdHJpbmcoKTsKLSsgICAgc3RkOjpzdHJp bmcgZm10ID0gZm10X2FyZy0+Z2V0QXNDU3RyaW5nKCkuc3RyKCk7Ci0gICAgIGlmIChmbXQuc2l6 ZSgpID09IDApCi0gICAgICAgcmV0dXJuIGZhbHNlOwotCi1AQCAtNDM3LDggKzQzNiw4IEBACi0g ICAgICAgICBpZiAoIGNhbGxGdW5jLT5nZXRJbnRyaW5zaWNJRCgpICE9IDApCi0gICAgICAgICAg IGNvbnRpbnVlOwotCi0tICAgICAgICBWYWx1ZSAqQ2FsbGVlID0gY2FsbC0+Z2V0Q2FsbGVkVmFs dWUoKTsKLS0gICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZuTmFtZSA9IENhbGxlZS0+Z2V0TmFt ZSgpOwotKyAgICAgICAgVmFsdWUgKkNhbGxlZSA9IGNhbGwtPmdldENhbGxlZE9wZXJhbmQoKTsK LSsgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZuTmFtZSA9IENhbGxlZS0+Z2V0TmFtZSgpLnN0 cigpOwotCi0gICAgICAgICBpZiAoZm5OYW1lICE9ICJfX2dlbl9vY2xfcHJpbnRmX3N0dWIiICYm IGZuTmFtZSAhPSAiX19nZW5fb2NsX3B1dHNfc3R1YiIpCi0gICAgICAgICAgIGNvbnRpbnVlOwot QEAgLTU4Miw3ICs1ODEsNyBAQAotICAgICAgICAgICAgIGlmICghZm10X2FyZyB8fCAhZm10X2Fy Zy0+aXNDU3RyaW5nKCkpIHsKLSAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgc2xvdC5zdGF0ZS5zdHIgPSBmbXRfYXJnLT5nZXRBc0NTdHJp bmcoKTsKLSsgICAgICAgICAgICBzbG90LnN0YXRlLnN0ciA9IGZtdF9hcmctPmdldEFzQ1N0cmlu ZygpLnN0cigpOwotICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICB9Ci0gICAg ICAgICAgIGNhc2UgUFJJTlRGX0NPTlZFUlNJT05fUDogewotQEAgLTU5NSwxMCArNTk0LDEwIEBA Ci0KLSAgICAgICAgIGJyZWFrOwotCi0tICAgICAgY2FzZSBUeXBlOjpWZWN0b3JUeUlEOiB7Ci0t ICAgICAgICBUeXBlKiB2ZWN0X3R5cGUgPSBhcmctPmdldFR5cGUoKTsKLS0gICAgICAgIFR5cGUq IGVsdF90eXBlID0gdmVjdF90eXBlLT5nZXRWZWN0b3JFbGVtZW50VHlwZSgpOwotLSAgICAgICAg aW50IHZlY19udW0gPSB2ZWN0X3R5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCk7Ci0rICAgICAg Y2FzZSBUeXBlOjpGaXhlZFZlY3RvclR5SUQ6IHsKLSsgICAgICAgIFZlY3RvclR5cGUqIHZlY3Rf dHlwZSA9IGR5bl9jYXN0PFZlY3RvclR5cGU+KGFyZy0+Z2V0VHlwZSgpKTsKLSsgICAgICAgIFR5 cGUqIGVsdF90eXBlID0gdmVjdF90eXBlLT5nZXRFbGVtZW50VHlwZSgpOwotKyAgICAgICAgaW50 IHZlY19udW0gPSB2ZWN0X3R5cGUtPmdldE51bUVsZW1lbnRzKCk7Ci0gICAgICAgICBib29sIHNp Z24gPSBmYWxzZTsKLQotICAgICAgICAgaWYgKHZlY19udW0gIT0gc2xvdC5zdGF0ZS52ZWN0b3Jf bikgewotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3Byb2ZpbGluZy5jcHAJMjAyMC0xMS0w OSAxNjo0ODoyMC44MjM4NjYxMTIgKzAxMDAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9w cm9maWxpbmcuY3BwCTIwMjAtMTEtMDkgMTg6NTk6NTAuMTIwOTI5MTUwICswMTAwCi1AQCAtMzUs NyArMzUsNiBAQAotICNpbmNsdWRlICJsbHZtL0lSL0lSQnVpbGRlci5oIgotCi0gI2lmIExMVk1f VkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM1Ci0tI2luY2x1ZGUg Imxsdm0vSVIvQ2FsbFNpdGUuaCIKLSAjaW5jbHVkZSAibGx2bS9JUi9DRkcuaCIKLSAjZWxzZQot ICNpbmNsdWRlICJsbHZtL1N1cHBvcnQvQ2FsbFNpdGUuaCIKLS0tLSBhL2JhY2tlbmQvc3JjL2xs dm0vbGx2bV9zYW1wbGVyX2ZpeC5jcHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYxMTIgKzAx MDAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9zYW1wbGVyX2ZpeC5jcHAJMjAyMC0xMS0w OSAxNzowMTowOS40MDc3NzQ4MzIgKzAxMDAKLUBAIC00NSw4ICs0NSw4IEBACi0gICAgIGJvb2wg dmlzaXRDYWxsSW5zdChDYWxsSW5zdCAqSSkgewotICAgICAgIGlmKCFJKQotICAgICAgICAgcmV0 dXJuIGZhbHNlOwotLSAgICAgIFZhbHVlICpDYWxsZWUgPSBJLT5nZXRDYWxsZWRWYWx1ZSgpOwot LSAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZuTmFtZSA9IENhbGxlZS0+Z2V0TmFtZSgpOwotKyAg ICAgIFZhbHVlICpDYWxsZWUgPSBJLT5nZXRDYWxsZWRPcGVyYW5kKCk7Ci0rICAgICAgY29uc3Qg c3RkOjpzdHJpbmcgZm5OYW1lID0gQ2FsbGVlLT5nZXROYW1lKCkuc3RyKCk7Ci0gICAgICAgYm9v bCBjaGFuZ2VkID0gZmFsc2U7Ci0gICAgICAgVHlwZSAqYm9vbFR5ID0gSW50ZWdlclR5cGU6Omdl dChJLT5nZXRDb250ZXh0KCksIDEpOwotICAgICAgIFR5cGUgKmkzMlR5ID0gSW50ZWdlclR5cGU6 OmdldChJLT5nZXRDb250ZXh0KCksIDMyKTsKLUBAIC01OSw3ICs1OSw3IEBACi0gICAgICAgICBW YWx1ZSAqbmVlZEZpeFZhbDsKLSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZF UlNJT05fTUlOT1IgPj0gNDAKLSAgICAgICAgIENhbGxJbnN0ICppbml0ID0gZHluX2Nhc3Q8Q2Fs bEluc3Q+KEktPmdldE9wZXJhbmQoMCkpOwotLSAgICAgICAgaWYgKGluaXQgJiYgaW5pdC0+Z2V0 Q2FsbGVkVmFsdWUoKS0+Z2V0TmFtZSgpLmNvbXBhcmUoIl9fdHJhbnNsYXRlX3NhbXBsZXJfaW5p dGlhbGl6ZXIiKSkKLSsgICAgICAgIGlmIChpbml0ICYmIGluaXQtPmdldENhbGxlZE9wZXJhbmQo KS0+Z2V0TmFtZSgpLmNvbXBhcmUoIl9fdHJhbnNsYXRlX3NhbXBsZXJfaW5pdGlhbGl6ZXIiKSkK LSAgICAgICAgIHsKLSAgICAgICAgICAgY29uc3QgQ29uc3RhbnRJbnQgKmNpID0gZHluX2Nhc3Q8 Q29uc3RhbnRJbnQ+KGluaXQtPmdldE9wZXJhbmQoMCkpOwotICAgICAgICAgICB1aW50MzJfdCBz YW1wbGVySW50ID0gY2ktPmdldFpFeHRWYWx1ZSgpOwotQEAgLTExMyw3ICsxMTMsNyBAQAotICAg ICAgICAgVmFsdWUgKm5lZWRGaXhWYWw7Ci0gICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCAr IExMVk1fVkVSU0lPTl9NSU5PUiA+PSA0MAotICAgICAgICAgQ2FsbEluc3QgKmluaXQgPSBkeW5f Y2FzdDxDYWxsSW5zdD4oSS0+Z2V0T3BlcmFuZCgwKSk7Ci0tICAgICAgICBpZiAoaW5pdCAmJiBp bml0LT5nZXRDYWxsZWRWYWx1ZSgpLT5nZXROYW1lKCkuY29tcGFyZSgiX190cmFuc2xhdGVfc2Ft cGxlcl9pbml0aWFsaXplciIpKQotKyAgICAgICAgaWYgKGluaXQgJiYgaW5pdC0+Z2V0Q2FsbGVk T3BlcmFuZCgpLT5nZXROYW1lKCkuY29tcGFyZSgiX190cmFuc2xhdGVfc2FtcGxlcl9pbml0aWFs aXplciIpKQotICAgICAgICAgewotICAgICAgICAgICBjb25zdCBDb25zdGFudEludCAqY2kgPSBk eW5fY2FzdDxDb25zdGFudEludD4oaW5pdC0+Z2V0T3BlcmFuZCgwKSk7Ci0gICAgICAgICAgIHVp bnQzMl90IHNhbXBsZXJJbnQgPSBjaS0+Z2V0WkV4dFZhbHVlKCk7Ci0tLS0gYS9iYWNrZW5kL3Ny Yy9sbHZtL2xsdm1fc2NhbGFyaXplLmNwcAkyMDIwLTExLTA5IDE2OjQ4OjIwLjgyMzg2NjExMiAr MDEwMAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NjYWxhcml6ZS5jcHAJMjAyMC0xMS0w OSAxODo1MToxNi44ODg5OTAxMDQgKzAxMDAKLUBAIC0xNzgsNyArMTc4LDcgQEAKLSAgICAgICBp ZighdHlwZSkKLSAgICAgICAgIHJldHVybiB0eXBlOwotICAgICAgIHN3aXRjaCh0eXBlLT5nZXRU eXBlSUQoKSkgewotLSAgICAgIGNhc2UgVHlwZTo6VmVjdG9yVHlJRDoKLSsgICAgICBjYXNlIFR5 cGU6OkZpeGVkVmVjdG9yVHlJRDoKLSAgICAgICBjYXNlIFR5cGU6OkFycmF5VHlJRDoKLSAgICAg ICAgIHJldHVybiBHZXRCYXNpY1R5cGUodHlwZS0+Z2V0Q29udGFpbmVkVHlwZSgwKSk7Ci0gICAg ICAgZGVmYXVsdDoKLUBAIC0xODgsNyArMTg4LDcgQEAKLSAgICAgfQotCi0gICAgIGludCBHZXRD b21wb25lbnRDb3VudChjb25zdCBUeXBlKiB0eXBlKSAgewotLSAgICAgIGlmICh0eXBlICYmIHR5 cGUtPmdldFR5cGVJRCgpID09IFR5cGU6OlZlY3RvclR5SUQpCi0rICAgICAgaWYgKHR5cGUgJiYg dHlwZS0+Z2V0VHlwZUlEKCkgPT0gVHlwZTo6Rml4ZWRWZWN0b3JUeUlEKQotICAgICAgICAgcmV0 dXJuIGxsdm06OmR5bl9jYXN0PFZlY3RvclR5cGU+KHR5cGUpLT5nZXROdW1FbGVtZW50cygpOwot ICAgICAgIGVsc2UKLSAgICAgICAgIHJldHVybiAxOwotQEAgLTY1MiwxMyArNjUyLDEyIEBACi0g ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgfQotICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICBW YWx1ZSAqQ2FsbGVlID0gY2FsbC0+Z2V0Q2FsbGVkVmFsdWUoKTsKLS0gICAgICAgIGNvbnN0IHN0 ZDo6c3RyaW5nIGZuTmFtZSA9IENhbGxlZS0+Z2V0TmFtZSgpOwotKyAgICAgICAgVmFsdWUgKkNh bGxlZSA9IGNhbGwtPmdldENhbGxlZE9wZXJhbmQoKTsKLSsgICAgICAgIGNvbnN0IHN0ZDo6c3Ry aW5nIGZuTmFtZSA9IENhbGxlZS0+Z2V0TmFtZSgpLnN0cigpOwotICAgICAgICAgYXV0byBnZW5J bnRyaW5zaWNJRCA9IGludHJpbnNpY01hcC5maW5kKGZuTmFtZSk7Ci0KLSAgICAgICAgIC8vIEdl dCB0aGUgZnVuY3Rpb24gYXJndW1lbnRzCi0tICAgICAgICBDYWxsU2l0ZSBDUyhjYWxsKTsKLS0g ICAgICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQ0kgPSBDUy5hcmdfYmVnaW4oKSArIDE7Ci0r ICAgICAgICBVc2VyOjpvcF9pdGVyYXRvciBDSSA9IGNhbGwtPmFyZ19iZWdpbigpICsgMTsKLQot ICAgICAgICAgc3dpdGNoIChnZW5JbnRyaW5zaWNJRCkgewotICAgICAgICAgICBjYXNlIEdFTl9P Q0xfTk9UX0ZPVU5EOgotQEAgLTcyOSw3ICs3MjgsNyBAQAotICAgICAgICAgICAgIGV4dHJhY3RG cm9tVmVjdG9yKGNhbGwpOwotICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICBjYXNlIEdF Tl9PQ0xfUFJJTlRGOgotLSAgICAgICAgICAgIGZvciAoOyBDSSAhPSBDUy5hcmdfZW5kKCk7ICsr Q0kpCi0rICAgICAgICAgICAgZm9yICg7IENJICE9IGNhbGwtPmFyZ19lbmQoKTsgKytDSSkKLSAg ICAgICAgICAgICAgIGlmICgoKkNJKS0+Z2V0VHlwZSgpLT5pc1ZlY3RvclR5KCkpCi0gICAgICAg ICAgICAgICAgICpDSSA9IEluc2VydFRvVmVjdG9yKGNhbGwsICpDSSk7Ci0gICAgICAgICAgICAg YnJlYWs7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTIucGF0Y2gg Yi9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDZmOGFiMDA1YzE0OC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvYmVp Z25ldC9wYXRjaGVzL2xsdm0xMi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExNSArMCwwIEBA Ci1kaWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2xsdm0vRXhwYW5kTGFyZ2VJbnRlZ2Vycy5jcHAgYmFj a2VuZC9zcmMvbGx2bS9FeHBhbmRMYXJnZUludGVnZXJzLmNwcAotaW5kZXggODUxNWRjMTMuLjI3 MDgwMzgwIDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9FeHBhbmRMYXJnZUludGVnZXJz LmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9FeHBhbmRMYXJnZUludGVnZXJzLmNwcAotQEAg LTMyOCw3ICszMjgsNyBAQCBzdGF0aWMgVmFsdWUgKmJ1aWxkVmVjdG9yT3JTY2FsYXIoQ29udmVy c2lvblN0YXRlICZTdGF0ZSwgSVJCdWlsZGVyPD4gJklSQiwgU21hbAotICAgICAvLyBzcGxpdGVk LCB0aGF0J3Mgd2h5IHRoZXNlIHRlbXBvcmFyeSB2YWx1ZXMgc2hvdWxkIGJlIGVyYXNlZC4KLSAg ICAgYm9vbCBLZWVwSW5zZXJ0ID0gaXNMZWdhbEJpdFNpemUoRWxlbVR5LT5nZXRQcmltaXRpdmVT aXplSW5CaXRzKCkgKiBFbGVtTm8pOwotICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgRWxl bU5vOyArK2kpIHsKLS0gICAgICBWYWx1ZSAqdG1wID0gdmVjID8gdmVjIDogVW5kZWZWYWx1ZTo6 Z2V0KFZlY3RvclR5cGU6OmdldChFbGVtVHksIEVsZW1ObykpOwotKyAgICAgIFZhbHVlICp0bXAg PSB2ZWMgPyB2ZWMgOiBVbmRlZlZhbHVlOjpnZXQoVmVjdG9yVHlwZTo6Z2V0KEVsZW1UeSwgRWxl bU5vLCBmYWxzZSkpOwotICAgICAgIFZhbHVlICppZHggPSBDb25zdGFudEludDo6Z2V0KEludFR5 LCBpKTsKLSAgICAgICB2ZWMgPSBJUkIuQ3JlYXRlSW5zZXJ0RWxlbWVudCh0bXAsIEVsZW1lbnRz W2ldLCBpZHgpOwotICAgICAgIGlmICghS2VlcEluc2VydCAmJiAhaXNhPENvbnN0YW50Pih2ZWMp KSB7Ci1AQCAtMzczLDcgKzM3Myw3IEBAIHN0YXRpYyB2b2lkIHVuaWZ5RWxlbWVudFR5cGUoSVJC dWlsZGVyPD4gJklSQiwgU21hbGxWZWN0b3I8VmFsdWUgKiwgMTY+ICZTcmMsIFNtCi0gICAgICAg YXNzZXJ0KChTaXplICUgTWluV2lkdGgpID09IDApOwotIAotICAgICAgIGlmIChTaXplID4gTWlu V2lkdGgpIHsKLS0gICAgICAgIFZlY3RvclR5cGUgKlZlY1R5ID0gVmVjdG9yVHlwZTo6Z2V0KEVs ZW1UeSwgU2l6ZS9NaW5XaWR0aCk7Ci0rICAgICAgICBWZWN0b3JUeXBlICpWZWNUeSA9IFZlY3Rv clR5cGU6OmdldChFbGVtVHksIFNpemUvTWluV2lkdGgsIGZhbHNlKTsKLSAgICAgICAgIFZhbHVl ICpDYXN0ZWQgPSBJUkIuQ3JlYXRlQml0Q2FzdChTcmNbaV0sIFZlY1R5KTsKLSAgICAgICAgIGZv ciAodW5zaWduZWQgaiA9IDA7IGogPCBTaXplL01pbldpZHRoOyBqKyspCi0gICAgICAgICAgIERz dC5wdXNoX2JhY2soSVJCLkNyZWF0ZUV4dHJhY3RFbGVtZW50KENhc3RlZCwgQ29uc3RhbnRJbnQ6 OmdldChJbnRUeSwgaikpKTsKLUBAIC00NjIsNyArNDYyLDcgQEAgc3RhdGljIHZvaWQgY29udmVy dEluc3RydWN0aW9uKEluc3RydWN0aW9uICpJbnN0LCBDb252ZXJzaW9uU3RhdGUgJlN0YXRlLAot ICAgICAgIHVuc2lnbmVkIEVsZW1ObyA9IFVuaWZpZWQuc2l6ZSgpOwotICAgICAgIFR5cGUgKkVs ZW1UeSA9IFVuaWZpZWRbMF0tPmdldFR5cGUoKTsKLSAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw OyBpIDwgRWxlbU5vOyArK2kpIHsKLS0gICAgICAgIFZhbHVlICp0bXAgPSB2ZWMgPyB2ZWMgOiBV bmRlZlZhbHVlOjpnZXQoVmVjdG9yVHlwZTo6Z2V0KEVsZW1UeSwgRWxlbU5vKSk7Ci0rICAgICAg ICBWYWx1ZSAqdG1wID0gdmVjID8gdmVjIDogVW5kZWZWYWx1ZTo6Z2V0KFZlY3RvclR5cGU6Omdl dChFbGVtVHksIEVsZW1ObywgZmFsc2UpKTsKLSAgICAgICAgIFZhbHVlICppZHggPSBDb25zdGFu dEludDo6Z2V0KEludFR5LCBpKTsKLSAgICAgICAgIHZlYyA9IElSQi5DcmVhdGVJbnNlcnRFbGVt ZW50KHRtcCwgVW5pZmllZFtpXSwgaWR4KTsKLSAgICAgICB9Ci1kaWZmIC0tZ2l0IGJhY2tlbmQv c3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5jcHAgYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9i YWNrZW5kLmNwcAotaW5kZXggYzkzZDg5Y2MuLjY0ZDViMGU1IDEwMDY0NAotLS0tIGEvYmFja2Vu ZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9s bHZtX2dlbl9iYWNrZW5kLmNwcAotQEAgLTMwNCw3ICszMDQsNyBAQCBuYW1lc3BhY2UgZ2JlCi0g ICAgICAgVFlQRVNJWkVWRUMobG9uZyw4KQotICAgICAgIFRZUEVTSVpFVkVDKHVuc2lnbmVkIGxv bmcsOCkKLSAgICAgICBlbHNlewotLSAgICAgICAgU3RydWN0VHlwZSAqU3RyVHkgPSBNLT5nZXRU eXBlQnlOYW1lKCJzdHJ1Y3QuIituYW1lKTsKLSsgICAgICAgIFN0cnVjdFR5cGUgKlN0clR5ID0g U3RydWN0VHlwZTo6Z2V0VHlwZUJ5TmFtZShNLT5nZXRDb250ZXh0KCksICJzdHJ1Y3QuIituYW1l KTsKLSAgICAgICAgIGlmKFN0clR5KQotICAgICAgICAgICByZXR1cm4gZ2V0VHlwZUJ5dGVTaXpl KHVuaXQsU3RyVHkpOwotICAgICAgIH0KLWRpZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2bS9sbHZt X2xvYWRzdG9yZV9vcHRpbWl6YXRpb24uY3BwIGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9sb2Fkc3Rv cmVfb3B0aW1pemF0aW9uLmNwcAotaW5kZXggNWFhMzhiZWYuLjZiNWMxYmFkIDEwMDY0NAotLS0t IGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2xvYWRzdG9yZV9vcHRpbWl6YXRpb24uY3BwCi0rKysg Yi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fbG9hZHN0b3JlX29wdGltaXphdGlvbi5jcHAKLUBAIC0x NTIsNyArMTUyLDcgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gICAgIHVuc2lnbmVkIGFkZHJTcGFjZSA9 IGxkLT5nZXRQb2ludGVyQWRkcmVzc1NwYWNlKCk7Ci0gICAgIC8vIGluc2VydCBiZWZvcmUgZmly c3QgbG9hZAotICAgICBCdWlsZGVyLlNldEluc2VydFBvaW50KGxkKTsKLS0gICAgVmVjdG9yVHlw ZSAqdmVjVHkgPSBWZWN0b3JUeXBlOjpnZXQobGQtPmdldFR5cGUoKSwgc2l6ZSk7Ci0rICAgIFZl Y3RvclR5cGUgKnZlY1R5ID0gVmVjdG9yVHlwZTo6Z2V0KGxkLT5nZXRUeXBlKCksIHNpemUsIGZh bHNlKTsKLSAgICAgVmFsdWUgKnZlY1B0ciA9IEJ1aWxkZXIuQ3JlYXRlQml0Q2FzdChsZC0+Z2V0 UG9pbnRlck9wZXJhbmQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUG9pbnRlclR5cGU6OmdldCh2ZWNUeSwgYWRkclNwYWNlKSk7Ci0gICAgIExvYWRJbnN0ICp2 ZWNWYWx1ZSA9IEJ1aWxkZXIuQ3JlYXRlTG9hZCh2ZWNQdHIpOwotQEAgLTIzNiw3ICsyMzYsNyBA QCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgQnVpbGRlci5TZXRJbnNlcnRQb2ludChtZXJnZWRbc2l6 ZS0xXSk7Ci0gCi0gICAgIFR5cGUgKmRhdGFUeSA9IHN0LT5nZXRWYWx1ZU9wZXJhbmQoKS0+Z2V0 VHlwZSgpOwotLSAgICBWZWN0b3JUeXBlICp2ZWNUeSA9IFZlY3RvclR5cGU6OmdldChkYXRhVHks IHNpemUpOwotKyAgICBWZWN0b3JUeXBlICp2ZWNUeSA9IFZlY3RvclR5cGU6OmdldChkYXRhVHks IHNpemUsIGZhbHNlKTsKLSAgICAgVmFsdWUgKiBwYXJlbnQgPSBVbmRlZlZhbHVlOjpnZXQodmVj VHkpOwotICAgICBmb3IodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKLSAgICAgICBw YXJlbnQgPSBCdWlsZGVyLkNyZWF0ZUluc2VydEVsZW1lbnQocGFyZW50LCB2YWx1ZXNbaV0sIENv bnN0YW50SW50OjpnZXQoSW50ZWdlclR5cGU6OmdldChzdC0+Z2V0Q29udGV4dCgpLCAzMiksIGkp KTsKLWRpZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2bS9sbHZtX3ByaW50Zl9wYXJzZXIuY3BwIGJh Y2tlbmQvc3JjL2xsdm0vbGx2bV9wcmludGZfcGFyc2VyLmNwcAotaW5kZXggNmJiN2M1MmEuLmFm NDU5Y2QyIDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3ByaW50Zl9wYXJzZXIu Y3BwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fcHJpbnRmX3BhcnNlci5jcHAKLUBAIC02 MzAsNyArNjMwLDcgQEAgZXJyb3I6Ci0gICAgICAgICAgICAgaWYgKGVsdF90eXBlICE9IGVsdF9k c3RfdHlwZSkgewotICAgICAgICAgICAgICAgVmFsdWUgKklJID0gTlVMTDsKLSAgICAgICAgICAg ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmVjX251bTsgaSsrKSB7Ci0tICAgICAgICAgICAgICAg IFZhbHVlICp2ZWMgPSBJSSA/IElJIDogVW5kZWZWYWx1ZTo6Z2V0KFZlY3RvclR5cGU6OmdldChl bHRfZHN0X3R5cGUsIHZlY19udW0pKTsKLSsgICAgICAgICAgICAgICAgVmFsdWUgKnZlYyA9IElJ ID8gSUkgOiBVbmRlZlZhbHVlOjpnZXQoVmVjdG9yVHlwZTo6Z2V0KGVsdF9kc3RfdHlwZSwgdmVj X251bSwgZmFsc2UpKTsKLSAgICAgICAgICAgICAgICAgVmFsdWUgKmN2ID0gQ29uc3RhbnRJbnQ6 OmdldChUeXBlOjpnZXRJbnQzMlR5KGVsdF90eXBlLT5nZXRDb250ZXh0KCkpLCBpKTsKLSAgICAg ICAgICAgICAgICAgVmFsdWUgKm9yZyA9IGJ1aWxkZXItPkNyZWF0ZUV4dHJhY3RFbGVtZW50KGFy ZywgY3YpOwotICAgICAgICAgICAgICAgICBWYWx1ZSAqY3Z0ID0gYnVpbGRlci0+Q3JlYXRlSW50 Q2FzdChvcmcsIGVsdF9kc3RfdHlwZSwgc2lnbik7Ci1AQCAtNjU4LDcgKzY1OCw3IEBAIGVycm9y OgotICAgICAgICAgICAgIGlmIChlbHRfdHlwZS0+Z2V0VHlwZUlEKCkgIT0gVHlwZTo6RmxvYXRU eUlEKSB7Ci0gICAgICAgICAgICAgICBWYWx1ZSAqSUkgPSBOVUxMOwotICAgICAgICAgICAgICAg Zm9yIChpbnQgaSA9IDA7IGkgPCB2ZWNfbnVtOyBpKyspIHsKLS0gICAgICAgICAgICAgICAgVmFs dWUgKnZlYyA9IElJID8gSUkgOiBVbmRlZlZhbHVlOjpnZXQoVmVjdG9yVHlwZTo6Z2V0KFR5cGU6 OmdldEZsb2F0VHkoZWx0X3R5cGUtPmdldENvbnRleHQoKSksIHZlY19udW0pKTsKLSsgICAgICAg ICAgICAgICAgVmFsdWUgKnZlYyA9IElJID8gSUkgOiBVbmRlZlZhbHVlOjpnZXQoVmVjdG9yVHlw ZTo6Z2V0KFR5cGU6OmdldEZsb2F0VHkoZWx0X3R5cGUtPmdldENvbnRleHQoKSksIHZlY19udW0s IGZhbHNlKSk7Ci0gICAgICAgICAgICAgICAgIFZhbHVlICpjdiA9IENvbnN0YW50SW50OjpnZXQo VHlwZTo6Z2V0SW50MzJUeShlbHRfdHlwZS0+Z2V0Q29udGV4dCgpKSwgaSk7Ci0gICAgICAgICAg ICAgICAgIFZhbHVlICpvcmcgPSBidWlsZGVyLT5DcmVhdGVFeHRyYWN0RWxlbWVudChhcmcsIGN2 KTsKLSAgICAgICAgICAgICAgICAgVmFsdWUqIGN2dCAgPSBidWlsZGVyLT5DcmVhdGVGUENhc3Qo b3JnLCBUeXBlOjpnZXRGbG9hdFR5KG1vZHVsZS0+Z2V0Q29udGV4dCgpKSk7Ci1kaWZmIC0tZ2l0 IGJhY2tlbmQvc3JjL2xsdm0vbGx2bV90b19nZW4uY3BwIGJhY2tlbmQvc3JjL2xsdm0vbGx2bV90 b19nZW4uY3BwCi1pbmRleCA3ZjdkZWZmZS4uOWU4Y2NjNjcgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5k L3NyYy9sbHZtL2xsdm1fdG9fZ2VuLmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3Rv X2dlbi5jcHAKLUBAIC0zNTgsNyArMzU4LDcgQEAgbmFtZXNwYWNlIGdiZQotICAgICBwYXNzZXMu YWRkKGNyZWF0ZVNjYWxhclJlcGxBZ2dyZWdhdGVzUGFzcyg2NCwgdHJ1ZSwgLTEsIC0xLCA2NCkp OwotICNlbmRpZgotICAgICBwYXNzZXMuYWRkKGNyZWF0ZUxvYWRTdG9yZU9wdGltaXphdGlvblBh c3MoKSk7Ci0tICAgIHBhc3Nlcy5hZGQoY3JlYXRlQ29uc3RhbnRQcm9wYWdhdGlvblBhc3MoKSk7 Ci0rICAgIC8vcGFzc2VzLmFkZChjcmVhdGVDb25zdGFudFByb3BhZ2F0aW9uUGFzcygpKTsKLSAg ICAgcGFzc2VzLmFkZChjcmVhdGVQcm9tb3RlTWVtb3J5VG9SZWdpc3RlclBhc3MoKSk7Ci0gICAg IGlmKG9wdExldmVsID4gMCkKLSAgICAgICBwYXNzZXMuYWRkKGNyZWF0ZUdWTlBhc3MoKSk7ICAg ICAgICAgICAgICAgICAvLyBSZW1vdmUgcmVkdW5kYW5jaWVzCi1AQCAtMzY3LDExICszNjcsMTEg QEAgbmFtZXNwYWNlIGdiZQotICAgICBwYXNzZXMuYWRkKGNyZWF0ZVNjYWxhcml6ZVBhc3MoKSk7 ICAgICAgICAgICAgIC8vIEV4cGFuZCBhbGwgdmVjdG9yIG9wcwotICAgICBwYXNzZXMuYWRkKGNy ZWF0ZUV4cGFuZExhcmdlSW50ZWdlcnNQYXNzKCkpOyAgIC8vIGxlZ2FsaXplIGxhcmdlIGludGVn ZXIgb3BlcmF0aW9uCi0gICAgIHBhc3Nlcy5hZGQoY3JlYXRlSW5zdHJ1Y3Rpb25Db21iaW5pbmdQ YXNzKCkpOyAgLy8gbGVnYWxpemUgd2lsbCBnZW5lcmF0ZSBzb21lIHNpbGx5IGluc3RydWN0aW9u cwotLSAgICBwYXNzZXMuYWRkKGNyZWF0ZUNvbnN0YW50UHJvcGFnYXRpb25QYXNzKCkpOyAgIC8v IHByb3BhZ2F0ZSBjb25zdGFudCBhZnRlciBzY2FsYXJpemUvbGVnYWxpemUKLSsgICAgLy9wYXNz ZXMuYWRkKGNyZWF0ZUNvbnN0YW50UHJvcGFnYXRpb25QYXNzKCkpOyAgIC8vIHByb3BhZ2F0ZSBj b25zdGFudCBhZnRlciBzY2FsYXJpemUvbGVnYWxpemUKLSAgICAgcGFzc2VzLmFkZChjcmVhdGVF eHBhbmRDb25zdGFudEV4cHJQYXNzKCkpOyAgICAvLyBjb25zdGFudCBwcm9wIG1heSBnZW5lcmF0 ZSBDb25zdGFudEV4cHIKLSAgICAgcGFzc2VzLmFkZChjcmVhdGVQcm9tb3RlSW50ZWdlcnNQYXNz KCkpOyAgICAgICAvLyBhbGlnbiBpbnRlZ2VyIHNpemUgdG8gcG93ZXIgb2YgdHdvCi0gICAgIHBh c3Nlcy5hZGQoY3JlYXRlUmVtb3ZlR0VQUGFzcyh1bml0KSk7ICAgICAgICAgLy8gQ29uc3RhbnQg cHJvcCBtYXkgZ2VuZXJhdGUgZ2VwCi0tICAgIHBhc3Nlcy5hZGQoY3JlYXRlRGVhZEluc3RFbGlt aW5hdGlvblBhc3MoKSk7ICAgLy8gUmVtb3ZlIHNpbXBsaWZpZWQgaW5zdHJ1Y3Rpb25zCi0rICAg IC8vcGFzc2VzLmFkZChjcmVhdGVEZWFkSW5zdEVsaW1pbmF0aW9uUGFzcygpKTsgICAvLyBSZW1v dmUgc2ltcGxpZmllZCBpbnN0cnVjdGlvbnMKLSAgICAgcGFzc2VzLmFkZChjcmVhdGVDRkdTaW1w bGlmaWNhdGlvblBhc3MoKSk7ICAgICAvLyBNZXJnZSAmIHJlbW92ZSBCQnMKLSAgICAgcGFzc2Vz LmFkZChjcmVhdGVMb3dlclN3aXRjaFBhc3MoKSk7ICAgICAgICAgICAvLyBzaW1wbGlmeSBjZmcg d2lsbCBnZW5lcmF0ZSBzd2l0Y2gtY2FzZSBpbnN0cnVjdGlvbgotICAgICBpZiAocHJvZmlsaW5n KSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9tdXNsLnBhdGNoIGIvc3Jj cGtncy9iZWlnbmV0L3BhdGNoZXMvbXVzbC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggY2VmYWZiYjY1NTg4Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9iZWlnbmV0L3Bh dGNoZXMvbXVzbC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLSBhL2Jh Y2tlbmQvc3JjL2JhY2tlbmQvZ2VuL2dlbl9tZXNhX2Rpc2FzbS5jCi0rKysgYi9iYWNrZW5kL3Ny Yy9iYWNrZW5kL2dlbi9nZW5fbWVzYV9kaXNhc20uYwotQEAgLTExMzcsNyArMTEzNyw3IEBAIHN0 YXRpYyB1aW50MzJfdCBfX2NvbnZfaGFsZl90b19mbG9hdCh1aW50MTZfdCBoKQotICAgICAgIC8v IEFkanVzdCBtYW50aXNzYSBzbyBpdCdzIG5vcm1hbGl6ZWQgKGFuZCBrZWVwCi0gICAgICAgLy8g dHJhY2sgb2YgZXhwb25lbnQgYWRqdXN0bWVudCkKLSAgICAgICBpbnQgZSA9IC0xOwotLSAgICAg IHVpbnQgbSA9IGkubWFudGlzc2E7Ci0rICAgICAgdW5zaWduZWQgaW50IG0gPSBpLm1hbnRpc3Nh OwotICAgICAgIGRvIHsKLSAgICAgICAgIGUrKzsKLSAgICAgICAgIG0gPDw9IDE7CmRpZmYgLS1n aXQgYS9zcmNwa2dzL2JlaWduZXQvdGVtcGxhdGUgYi9zcmNwa2dzL2JlaWduZXQvdGVtcGxhdGUK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRjZTZiYmI3YWUyNC4uMDAwMDAwMDAwMDAw Ci0tLSBhL3NyY3BrZ3MvYmVpZ25ldC90ZW1wbGF0ZQorKysgL2Rldi9udWxsCkBAIC0xLDIyICsw LDAgQEAKLSMgVGVtcGxhdGUgZmlsZSBmb3IgJ2JlaWduZXQnCi1wa2duYW1lPWJlaWduZXQKLXZl cnNpb249MS4zLjIKLXJldmlzaW9uPTEwCi1hcmNocz0iaTY4NiogeDg2XzY0KiIKLXdya3NyYz0i QmVpZ25ldC0ke3ZlcnNpb259LVNvdXJjZSIKLWJ1aWxkX3N0eWxlPWNtYWtlCi1ob3N0bWFrZWRl cGVuZHM9ImNsYW5nIGxsdm0gcGtnLWNvbmZpZyIKLW1ha2VkZXBlbmRzPSJNZXNhTGliLWRldmVs IGxpYmVkaXQtZGV2ZWwgbGliZmZpLWRldmVsIG9jbC1pY2QtZGV2ZWwgemxpYi1kZXZlbAotIGxp YlhmaXhlcy1kZXZlbCIKLWRlcGVuZHM9Im9jbC1pY2QiCi1zaG9ydF9kZXNjPSJCZWlnbmV0IEdQ R1BVIFN5c3RlbSBmb3IgSW50ZWwgR1BVcyIKLW1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5A dm9pZGxpbnV4Lm9yZz4iCi1saWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKLWhvbWVwYWdlPSJo dHRwOi8vd3d3LmZyZWVkZXNrdG9wLm9yZy93aWtpL1NvZnR3YXJlL0JlaWduZXQvIgotZGlzdGZp bGVzPSJodHRwczovLzAxLm9yZy9zaXRlcy9kZWZhdWx0L2ZpbGVzLyR7cGtnbmFtZX0tJHt2ZXJz aW9ufS1zb3VyY2UudGFyLmd6IgotY2hlY2tzdW09YzU1NWVkYmExNDlkZTIzMjQzOTY1YTcwM2Yz OWY3OWZhMDZmMTViY2ZmNWEzNzYyYjU1NDRiMDkyNTAxMGI0MwotCi1wb3N0X2luc3RhbGwoKSB7 Ci0JIyByZW1vdmUgQ0wgaGVhZGVycywgd2UgZG8gdXNlIG9wZW5jbC1oZWFkZXJzIGluc3RlYWQu Ci0Jcm0gLXIgJHtERVNURElSfS91c3IvaW5jbHVkZQotfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9i ZWlnbmV0L3VwZGF0ZSBiL3NyY3BrZ3MvYmVpZ25ldC91cGRhdGUKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IGNhNDFlMGFmZTYwYy4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvYmVp Z25ldC91cGRhdGUKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1zaXRlPSJodHRwczovLzAx Lm9yZy9iZWlnbmV0L2Rvd25sb2FkcyIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcmVtb3ZlZC1wYWNr YWdlcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvcmVtb3ZlZC1wYWNrYWdlcy90ZW1wbGF0ZQppbmRleCBk ZjI2NGM5ZDc1MDEuLjkwNTljYzA4MzQ5ZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9yZW1vdmVkLXBh Y2thZ2VzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcmVtb3ZlZC1wYWNrYWdlcy90ZW1wbGF0ZQpA QCAtMjMsNiArMjMsNyBAQCByZXBsYWNlcz0iCiAgYXRvbTw9MS40NC4wXzEKICBhdm9nYWRyby1k ZXZlbDw9MS4yLjBfOAogIGF2b2dhZHJvPD0xLjIuMF84CisgYmVpZ25ldDw9MS4zLjIKICBib2tr ZW48PTEuOF8zCiAgYm9taTw9MC45LjExXzE3CiAgYnVycC1jbGllbnQ8PTEuNC40MF8xMwoKRnJv bSA3ZDVlZTFkMDVjZTFiM2FmYTU1ZjAzY2QwOTBiMzhkMTRmMTZjMjY2IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/QW5kcj1DMz1BOT0yMENlcnF1ZWlyYT89IDxhY2Vy cXVlaXJhMDIxQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAyOCBGZWIgMjAyMiAyMjowMDo1NCArMDAw MApTdWJqZWN0OiBbUEFUQ0ggMjAvMzFdIGxsdm0xMzogdXBkYXRlIHRvIDEzLjAuMS4KCi0tLQog c3JjcGtncy9sbHZtL3RlbXBsYXRlICAgfCAyICstCiBzcmNwa2dzL2xsdm0xMy90ZW1wbGF0ZSB8 IDYgKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0vdGVtcGxhdGUgYi9zcmNwa2dzL2xsdm0vdGVt cGxhdGUKaW5kZXggYmNmZWU4MjA5OGZmLi45NmQxOGY3MzBmY2EgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvbGx2bS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xsdm0vdGVtcGxhdGUKQEAgLTQsOCArNCw4 IEBAIHZlcnNpb249MTMuMC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXRhCiBkZXBlbmRz PSJsbHZtMTMiCi1yZXBsYWNlcz0ibGx2bTEyPj0wIGxsdm0xMT49MCBsbHZtMTA+PTAgbGx2bTk+ PTAgbGx2bTg+PTAgbGx2bTc+PTAgbGx2bTYuMD49MCBsbHZtMy45Pj0wIgogc2hvcnRfZGVzYz0i TExWTSBtZXRhIHBhY2thZ2UiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRs aW51eC5vcmc+IgogbGljZW5zZT0iUHVibGljIERvbWFpbiIKIGhvbWVwYWdlPSJodHRwczovL3d3 dy52b2lkbGludXgub3JnIgorcmVwbGFjZXM9Imxsdm0xMj49MCBsbHZtMTE+PTAgbGx2bTEwPj0w IGxsdm05Pj0wIGxsdm04Pj0wIGxsdm03Pj0wIGxsdm02LjA+PTAgbGx2bTMuOT49MCIKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvbGx2bTEzL3RlbXBsYXRlIGIvc3JjcGtncy9sbHZtMTMvdGVtcGxhdGUK aW5kZXggYmZjOTEwNTZkMjc3Li44ZTY3MzcwMWZiOWIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGx2 bTEzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGx2bTEzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGx2bTEzJwogcGtnbmFtZT1sbHZtMTMKLXZlcnNpb249 MTMuMC4wCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTEzLjAuMQorcmV2aXNpb249MQogd3Jrc3JjPSJs bHZtLXByb2plY3QtJHt2ZXJzaW9ufS5zcmMiCiBidWlsZF93cmtzcmM9bGx2bQogYnVpbGRfc3R5 bGU9Y21ha2UKQEAgLTM1LDcgKzM1LDcgQEAgbWFpbnRhaW5lcj0icTY2IDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4iCiBsaWNlbnNlPSJBcGFjaGUtMi4wIgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3Lmxs dm0ub3JnIgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vbGx2bS9sbHZtLXByb2plY3Qv cmVsZWFzZXMvZG93bmxvYWQvbGx2bW9yZy0ke3ZlcnNpb259L2xsdm0tcHJvamVjdC0ke3ZlcnNp b259LnNyYy50YXIueHoiCi1jaGVja3N1bT02MDc1YWQzMGYxYWMwZTE1ZjA3YzFiZjA2MmMxZTEy NjhjMjQxZDY3NGYxMWJkMzJjZGYwZTA0MGM3MWYyYmYzCitjaGVja3N1bT0zMjYzMzVhODMwZjJl MzJkMDZkMGEzNjM5M2I1NDU1ZDE3ZGM3M2UwYmQxMjExMDY1MjI3ZWUwMTRmOTJjYmY4CiBsaWIz MmRpc2FibGVkPXllcwogcHl0aG9uX3ZlcnNpb249MwogCgpGcm9tIDNhYzdmZDI0MzhmOWJkM2U0 NjRmZTA2ZDUwNGQwMjkzN2JjZjU4ZWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IElz YWFjIEZyZXVuZCA8bWFpbEBpc2FhY2ZyZXVuZC5jb20+CkRhdGU6IFdlZCwgMiBNYXIgMjAyMiAy MDo0OTozNyArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMjEvMzFdIHJpdmVyOiB1cGRhdGUgdG8gMC4x LjMKCi0tLQogLi4uYWJsZS1QSUUtZm9yLXJpdmVyLXJpdmVyY3RsLXJpdmVydGlsZS5wYXRjaCB8 IDE4ICsrKysrKysrKy0tLS0tLS0tLQogc3JjcGtncy9yaXZlci90ZW1wbGF0ZSAgICAgICAgICAg ICAgICAgICAgICAgICB8ICA0ICsrLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygr KSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9yaXZlci9wYXRjaGVzLzAw MDEtRW5hYmxlLVBJRS1mb3Itcml2ZXItcml2ZXJjdGwtcml2ZXJ0aWxlLnBhdGNoIGIvc3JjcGtn cy9yaXZlci9wYXRjaGVzLzAwMDEtRW5hYmxlLVBJRS1mb3Itcml2ZXItcml2ZXJjdGwtcml2ZXJ0 aWxlLnBhdGNoCmluZGV4IGVjYzY4MzAyZGIwOS4uOWRhMGU1ZDVkMDQzIDEwMDY0NAotLS0gYS9z cmNwa2dzL3JpdmVyL3BhdGNoZXMvMDAwMS1FbmFibGUtUElFLWZvci1yaXZlci1yaXZlcmN0bC1y aXZlcnRpbGUucGF0Y2gKKysrIGIvc3JjcGtncy9yaXZlci9wYXRjaGVzLzAwMDEtRW5hYmxlLVBJ RS1mb3Itcml2ZXItcml2ZXJjdGwtcml2ZXJ0aWxlLnBhdGNoCkBAIC0xMCwzMyArMTAsMzMgQEAg YnVpbGQgc3lzdGVtLiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS96aWdsYW5nL3ppZy9pc3N1ZXMv NzIwMQogIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykKIAogZGlmZiAtLWdpdCBhL2J1 aWxkLnppZyBiL2J1aWxkLnppZwotaW5kZXggZDU2MWY0OS4uOGFjOWE0ZSAxMDA2NDQKK2luZGV4 IDk4Mjk2MzMuLjE4MDE3OWYgMTAwNjQ0CiAtLS0gYS9idWlsZC56aWcKICsrKyBiL2J1aWxkLnpp ZwotQEAgLTg1LDYgKzg1LDcgQEAgcHViIGZuIGJ1aWxkKGI6ICp6YnMuQnVpbGRlcikgIXZvaWQg eworQEAgLTg5LDYgKzg5LDcgQEAgcHViIGZuIGJ1aWxkKGI6ICp6YnMuQnVpbGRlcikgIXZvaWQg ewogICAgICAgICAgY29uc3Qgcml2ZXIgPSBiLmFkZEV4ZWN1dGFibGUoInJpdmVyIiwgInJpdmVy L21haW4uemlnIik7CiAgICAgICAgICByaXZlci5zZXRUYXJnZXQodGFyZ2V0KTsKICAgICAgICAg IHJpdmVyLnNldEJ1aWxkTW9kZShtb2RlKTsKICsgICAgICAgIHJpdmVyLnBpZSA9IHRydWU7Ci0g ICAgICAgICByaXZlci5hZGRCdWlsZE9wdGlvbihib29sLCAieHdheWxhbmQiLCB4d2F5bGFuZCk7 Ci0gICAgICAgICByaXZlci5hZGRCdWlsZE9wdGlvbihbOjBdY29uc3QgdTgsICJ2ZXJzaW9uIiwg ZnVsbF92ZXJzaW9uKTsKKyAgICAgICAgIHJpdmVyLmFkZE9wdGlvbnMoImJ1aWxkX29wdGlvbnMi LCBvcHRpb25zKTsKICAKLUBAIC05Nyw2ICs5OCw3IEBAIHB1YiBmbiBidWlsZChiOiAqemJzLkJ1 aWxkZXIpICF2b2lkIHsKKyAgICAgICAgIGFkZFNlcnZlckRlcHMocml2ZXIsIHNjYW5uZXIpOwor QEAgLTEwMCw2ICsxMDEsNyBAQCBwdWIgZm4gYnVpbGQoYjogKnpicy5CdWlsZGVyKSAhdm9pZCB7 CiAgICAgICAgICBjb25zdCByaXZlcmN0bCA9IGIuYWRkRXhlY3V0YWJsZSgicml2ZXJjdGwiLCAi cml2ZXJjdGwvbWFpbi56aWciKTsKICAgICAgICAgIHJpdmVyY3RsLnNldFRhcmdldCh0YXJnZXQp OwogICAgICAgICAgcml2ZXJjdGwuc2V0QnVpbGRNb2RlKG1vZGUpOwogKyAgICAgICAgcml2ZXJj dGwucGllID0gdHJ1ZTsKLSAgICAgICAgIHJpdmVyY3RsLmFkZEJ1aWxkT3B0aW9uKFs6MF1jb25z dCB1OCwgInZlcnNpb24iLCBmdWxsX3ZlcnNpb24pOworICAgICAgICAgcml2ZXJjdGwuYWRkT3B0 aW9ucygiYnVpbGRfb3B0aW9ucyIsIG9wdGlvbnMpOwogIAogICAgICAgICAgcml2ZXJjdGwuc3Rl cC5kZXBlbmRPbigmc2Nhbm5lci5zdGVwKTsKLUBAIC0xMTQsNiArMTE2LDcgQEAgcHViIGZuIGJ1 aWxkKGI6ICp6YnMuQnVpbGRlcikgIXZvaWQgeworQEAgLTEyMCw2ICsxMjIsNyBAQCBwdWIgZm4g YnVpbGQoYjogKnpicy5CdWlsZGVyKSAhdm9pZCB7CiAgICAgICAgICBjb25zdCByaXZlcnRpbGUg PSBiLmFkZEV4ZWN1dGFibGUoInJpdmVydGlsZSIsICJyaXZlcnRpbGUvbWFpbi56aWciKTsKICAg ICAgICAgIHJpdmVydGlsZS5zZXRUYXJnZXQodGFyZ2V0KTsKICAgICAgICAgIHJpdmVydGlsZS5z ZXRCdWlsZE1vZGUobW9kZSk7CiArICAgICAgICByaXZlcnRpbGUucGllID0gdHJ1ZTsKLSAgICAg ICAgIHJpdmVydGlsZS5hZGRCdWlsZE9wdGlvbihbOjBdY29uc3QgdTgsICJ2ZXJzaW9uIiwgZnVs bF92ZXJzaW9uKTsKKyAgICAgICAgIHJpdmVydGlsZS5hZGRPcHRpb25zKCJidWlsZF9vcHRpb25z Iiwgb3B0aW9ucyk7CiAgCiAgICAgICAgICByaXZlcnRpbGUuc3RlcC5kZXBlbmRPbigmc2Nhbm5l ci5zdGVwKTsKIC0tIAotMi4zMy4xCisyLjM1LjEKIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9yaXZl ci90ZW1wbGF0ZSBiL3NyY3BrZ3Mvcml2ZXIvdGVtcGxhdGUKaW5kZXggOWNmM2FiZTRiODViLi5h ZTA5YWU1NGIzNGYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvcml2ZXIvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9yaXZlci90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J3JpdmVyJwogcGtnbmFtZT1yaXZlcgotdmVyc2lvbj0wLjEuMQordmVyc2lvbj0wLjEuMwogcmV2 aXNpb249MQogYnVpbGRfc3R5bGU9emlnLWJ1aWxkCiBjb25maWd1cmVfYXJncz0iJCh2b3B0X2lm IHh3YXlsYW5kIC1EeHdheWxhbmQpIgpAQCAtMTIsNyArMTIsNyBAQCBtYWludGFpbmVyPSJJc2Fh YyBGcmV1bmQgPG1haWxAaXNhYWNmcmV1bmQuY29tPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0 ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRodWIuY29tL3JpdmVyd20vcml2ZXIiCiBkaXN0Zmls ZXM9IiR7aG9tZXBhZ2V9L3JlbGVhc2VzL2Rvd25sb2FkL3Yke3ZlcnNpb259L3JpdmVyLSR7dmVy c2lvbn0udGFyLmd6IgotY2hlY2tzdW09MmEwYmNkNDY3MGVkOWViZDM5YzI3OWYyYmYxMDgwM2Zj NjVjOWYzZWUyMzA3Y2U0MDcyOGRmMjNjZTkxNGQxOAorY2hlY2tzdW09ZjYzNDQ0YzMwMGFiNTU0 ZWYzY2EwZDkwNGE2YjEyNGE4MzJjODM5N2Q0NzRlZjA2N2JkZGU5MTFjOTgxYzc5ZgogCiBidWls ZF9vcHRpb25zPSJ4d2F5bGFuZCIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0ieHdheWxhbmQiCgpG cm9tIDg3Mzc2NTQ2Y2Q5YTE1NTQ1NjE4YTZjZWE1YzYyNzM1NmFiMWE4ZjcgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IElzYWFjIEZyZXVuZCA8bWFpbEBpc2FhY2ZyZXVuZC5jb20+CkRh dGU6IFdlZCwgMiBNYXIgMjAyMiAyMDo1MDoxNyArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMjIvMzFd IHJ1bmRpcmQ6IHJlbW92ZSBwYWNrYWdlCgogICAgVGhpcyBoYXMgYmVlbiBkZXByZWNhdGVkIGJ5 IHVwc3RyZWFtIHdoaWNoIHJlY29tbWVuZHMgdXNpbmcKICAgIGR1bWJfcnVudGltZV9kaXIgKGFs cmVhZHkgcGFja2FnZWQgZm9yIHZvaWQpIGluc3RlYWQuCgogICAgUmVtb3Zpbmcgbm93IHNpbmNl IHJ1bmRpcmQgMC4yLjAgaXMgbm90IGNvbXBhdGlibGUgd2l0aCB6aWcgMC45IGFuZAogICAgdGhl cmUgd29uJ3QgYmUgYW55IG5ldyBydW5kaXJkIHJlbGVhc2VzLgotLS0KIHNyY3BrZ3MvcmVtb3Zl ZC1wYWNrYWdlcy90ZW1wbGF0ZSB8ICAxICsKIHNyY3BrZ3MvcnVuZGlyZC9maWxlcy9ydW5kaXJk L3J1biB8ICAyIC0tCiBzcmNwa2dzL3J1bmRpcmQvdGVtcGxhdGUgICAgICAgICAgfCAxNyAtLS0t LS0tLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMTkgZGVsZXRp b25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9ydW5kaXJkL2ZpbGVzL3J1bmRpcmQv cnVuCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9ydW5kaXJkL3RlbXBsYXRlCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9yZW1vdmVkLXBhY2thZ2VzL3RlbXBsYXRlIGIvc3JjcGtncy9yZW1vdmVk LXBhY2thZ2VzL3RlbXBsYXRlCmluZGV4IDkwNTljYzA4MzQ5ZC4uNGYyNGM1MjMyZGQ5IDEwMDY0 NAotLS0gYS9zcmNwa2dzL3JlbW92ZWQtcGFja2FnZXMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9y ZW1vdmVkLXBhY2thZ2VzL3RlbXBsYXRlCkBAIC0zNjAsNiArMzYwLDcgQEAgcmVwbGFjZXM9Igog IHJrdC1zdGFnZTEtY29yZW9zPD0xLjMwLjBfMwogIHJrdC1zdGFnZTEtZmx5PD0xLjMwLjBfMwog IHJrdDw9MS4zMC4wXzMKKyBydW5kaXJkPD0wLjIuMF8xCiAgc2NhbnRhaWxvcjw9MC45LjEyLjFf MgogIHNlYWhvcnNlLXNoYXJpbmc8PTMuOC4wXzQKICBzZXJpZXNwbDw9Mi4zLjVfMgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9ydW5kaXJkL2ZpbGVzL3J1bmRpcmQvcnVuIGIvc3JjcGtncy9ydW5kaXJk L2ZpbGVzL3J1bmRpcmQvcnVuCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNGFhZThj ODNiNGIuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3J1bmRpcmQvZmlsZXMvcnVuZGlyZC9y dW4KKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLSMhL2Jpbi9zaAotZXhlYyBydW5kaXJk CmRpZmYgLS1naXQgYS9zcmNwa2dzL3J1bmRpcmQvdGVtcGxhdGUgYi9zcmNwa2dzL3J1bmRpcmQv dGVtcGxhdGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVmZjg5N2FiZDQ1Ni4uMDAw MDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvcnVuZGlyZC90ZW1wbGF0ZQorKysgL2Rldi9udWxsCkBA IC0xLDE3ICswLDAgQEAKLSMgVGVtcGxhdGUgZmlsZSBmb3IgJ3J1bmRpcmQnCi1wa2duYW1lPXJ1 bmRpcmQKLXZlcnNpb249MC4yLjAKLXJldmlzaW9uPTEKLWJ1aWxkX3N0eWxlPXppZy1idWlsZAot bWFrZWRlcGVuZHM9InBhbS1kZXZlbCIKLXNob3J0X2Rlc2M9IlNpbXBsZSBkYWVtb24gKyBQQU0g bW9kdWxlIHByb3ZpZGluZyBhbiBYREdfUlVOVElNRV9ESVIiCi1tYWludGFpbmVyPSJJc2FhYyBG cmV1bmQgPG1haWxAaXNhYWNmcmV1bmQuY29tPiIKLWxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIi Ci1ob21lcGFnZT0iaHR0cHM6Ly9naXRodWIuY29tL2lmcmV1bmQvcnVuZGlyZCIKLWRpc3RmaWxl cz0iJHtob21lcGFnZX0vYXJjaGl2ZS92JHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT0xZGVh MjA3ZjM5Mzg4ZThjMmMyNzViOGE5YWFkYTAxNjZkMWY1ODdhODA2ZjJlNWU0NDg2ZDk4MjU5ZTIz ZTRjCi0KLXBvc3RfaW5zdGFsbCgpIHsKLQl2c3YgcnVuZGlyZAotCXZkb2MgUkVBRE1FLm1kCi19 CgpGcm9tIDk3NWUxNmE3NjM2ZjE0YzgzYmY2NjY4YTc5YmUzZDQ0MjYwMzhlM2UgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9BbmRyPUMzPUE5PTIwQ2VycXVlaXJhPz0g PGFjZXJxdWVpcmEwMjFAZ21haWwuY29tPgpEYXRlOiBGcmksIDQgTWFyIDIwMjIgMTE6NTU6NDYg KzAwMDAKU3ViamVjdDogW1BBVENIIDIzLzMxXSBiY2M6IHJlYnVpbGQgZm9yIGxsdm0xMwoKLS0t CiBzcmNwa2dzL2JjYy90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv bigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmNjL3RlbXBsYXRlIGIv c3JjcGtncy9iY2MvdGVtcGxhdGUKaW5kZXggNTQ1MDliNjNkNWE3Li4yY2ZhMGEyOTc3ZDAgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvYmNjL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYmNjL3RlbXBsYXRl CkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnYmNjJwogcGtnbmFtZT1iY2MK IHZlcnNpb249MC4yNC4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiB3cmtzcmM9ImJjYyIKIGJ1 aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURSRVZJU0lPTj0ke3ZlcnNpb259IC1E RU5BQkxFX0xMVk1fU0hBUkVEPTEiCgpGcm9tIDdkNmI4MDA0NDRlNjcyNGFiOGQwYmQ1ODc1ZWIz NTlmNmJkNzE1ZGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9BbmRy PUMzPUE5PTIwQ2VycXVlaXJhPz0gPGFjZXJxdWVpcmEwMjFAZ21haWwuY29tPgpEYXRlOiBGcmks IDQgTWFyIDIwMjIgMTE6NTY6MzIgKzAwMDAKU3ViamVjdDogW1BBVENIIDI0LzMxXSBnbm9tZS1i dWlsZGVyOiByZWJ1aWxkIGZvciBsbHZtMTMKCi0tLQogc3JjcGtncy9nbm9tZS1idWlsZGVyL3Rl bXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9u KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1idWlsZGVyL3RlbXBsYXRlIGIvc3JjcGtn cy9nbm9tZS1idWlsZGVyL3RlbXBsYXRlCmluZGV4IDkzNTU5YjIxNzc0Zi4uNWE1YTUxODkzYWU4 IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWJ1aWxkZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9nbm9tZS1idWlsZGVyL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnZ25vbWUtYnVpbGRlcicKIHBrZ25hbWU9Z25vbWUtYnVpbGRlcgogdmVyc2lvbj00MS4z Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVy PXFlbXUKIGNvbmZpZ3VyZV9hcmdzPSItRGhlbHA9dHJ1ZSAtRG5ldHdvcmtfdGVzdHM9ZmFsc2Ui CgpGcm9tIGZjYjdhMDFhODk4NDFiMDJlYzA5OGE3Y2M5ZjQ5NWJmMDQ3ZDFjMzAgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9BbmRyPUMzPUE5PTIwQ2VycXVlaXJhPz0g PGFjZXJxdWVpcmEwMjFAZ21haWwuY29tPgpEYXRlOiBGcmksIDQgTWFyIDIwMjIgMTE6NTY6NTgg KzAwMDAKU3ViamVjdDogW1BBVENIIDI1LzMxXSBsZGM6IHJlYnVpbGQgZm9yIGxsdm0xMwoKLS0t CiBzcmNwa2dzL2xkYy90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0 aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xkYy90ZW1wbGF0 ZSBiL3NyY3BrZ3MvbGRjL3RlbXBsYXRlCmluZGV4IGEyNzI4MGRkZTNiOC4uODA1OTc4YTgxZmQ5 IDEwMDY0NAotLS0gYS9zcmNwa2dzL2xkYy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xkYy90ZW1w bGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xkYycKIHBrZ25hbWU9 bGRjCiB2ZXJzaW9uPTEuMjguMAotcmV2aXNpb249MQorcmV2aXNpb249Mgogd3Jrc3JjPSJsZGMt JHt2ZXJzaW9ufS1zcmMiCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9IgpAQCAt MTEsNyArMTEsNyBAQCBjb25maWd1cmVfYXJncz0iCiAgLURCQVNIX0NPTVBMRVRJT05fQ09NUExF VElPTlNESVI9L3Vzci9zaGFyZS9iYXNoLWNvbXBsZXRpb24KICAtRENfU1lTVEVNX0xJQlM9J3Vu d2luZDttO3B0aHJlYWQ7cnQ7ZGwnIgogY29uZl9maWxlcz0iL2V0Yy9sZGMyLmNvbmYiCi1ob3N0 bWFrZWRlcGVuZHM9ImRtZCBsbHZtMTIgcGVybCBwa2ctY29uZmlnIgoraG9zdG1ha2VkZXBlbmRz PSJkbWQgbGx2bSBwZXJsIHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0ibGliY3VybC1kZXZlbCBs aWJmZmktZGV2ZWwgbmN1cnNlcy1kZXZlbCB6bGliLWRldmVsCiAgbGx2bS1saWJ1bndpbmQtZGV2 ZWwiCiBkZXBlbmRzPSJsZGMtcnVudGltZSBsbHZtLWxpYnVud2luZC1kZXZlbCIKCkZyb20gMDE3 MDYzN2JkN2M3MjdmZjIwZDI2ZThkMjgwY2M2NmUxZjZmOTk4ZiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogPT9VVEYtOD9xP0FuZHI9QzM9QTk9MjBDZXJxdWVpcmE/PSA8YWNlcnF1ZWly YTAyMUBnbWFpbC5jb20+CkRhdGU6IEZyaSwgNCBNYXIgMjAyMiAxMTo1ODoxNyArMDAwMApTdWJq ZWN0OiBbUEFUQ0ggMjYvMzFdIHNoaWJva2VuMjogcmVidWlsZCBmb3IgbGx2bTEzCgotLS0KIHNy Y3BrZ3Mvc2hpYm9rZW4yL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9zaGlib2tlbjIvdGVt cGxhdGUgYi9zcmNwa2dzL3NoaWJva2VuMi90ZW1wbGF0ZQppbmRleCBiNTY2MTMyMjljMTMuLmFi OWQyYzRjYjhmOSAxMDA2NDQKLS0tIGEvc3JjcGtncy9zaGlib2tlbjIvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9zaGlib2tlbjIvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdzaGlib2tlbjInCiBwa2duYW1lPXNoaWJva2VuMgogdmVyc2lvbj01LjE1LjIKLXJl dmlzaW9uPTQKK3JldmlzaW9uPTUKIF9wa2duYW1lPSJweXNpZGUtc2V0dXAtb3BlbnNvdXJjZS1z cmMtJHt2ZXJzaW9ufSIKIHdya3NyYz0iJHtfcGtnbmFtZS8lNS4xNC4yLjEvNS4xNC4yfSIKIGJ1 aWxkX3dya3NyYz0ic291cmNlcy9zaGlib2tlbjIiCgpGcm9tIDQ5ZDllZjJhYmEwZmI0NGIyZWQ5 N2UwOTQ3NjViMGYyOTcxYjcyYTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRG LTg/cT9BbmRyPUMzPUE5PTIwQ2VycXVlaXJhPz0gPGFjZXJxdWVpcmEwMjFAZ21haWwuY29tPgpE YXRlOiBGcmksIDQgTWFyIDIwMjIgMTE6NTg6MjMgKzAwMDAKU3ViamVjdDogW1BBVENIIDI3LzMx XSB0aWxpeDogcmVidWlsZCBmb3IgbGx2bTEzCgotLS0KIHNyY3BrZ3MvdGlsaXgvdGVtcGxhdGUg fCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3RpbGl4L3RlbXBsYXRlIGIvc3JjcGtncy90aWxpeC90ZW1wbGF0 ZQppbmRleCBkOGYwMTRiYzc4YzUuLmFjMWJmN2RkM2JkZCAxMDA2NDQKLS0tIGEvc3JjcGtncy90 aWxpeC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3RpbGl4L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAndGlsaXgnCiBwa2duYW1lPXRpbGl4CiB2ZXJzaW9uPTEu OS40Ci1yZXZpc2lvbj0zCityZXZpc2lvbj00CiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJl X2FyZ3M9Ii1EYl9sdG89ZmFsc2UiCiBob3N0bWFrZWRlcGVuZHM9ImF1dG9tYWtlIGdldHRleHQt ZGV2ZWwgZ2RrLXBpeGJ1ZiBnbGliLWRldmVsIGxkYyBwbzRhIHBrZy1jb25maWcKCkZyb20gMThh ODkyODdlZTQ1OGU5MDRkMmI2MTczYzViMDhlZWJlNjJkMGQwZCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogPT9VVEYtOD9xP0FuZHI9QzM9QTk9MjBDZXJxdWVpcmE/PSA8YWNlcnF1ZWly YTAyMUBnbWFpbC5jb20+CkRhdGU6IEZyaSwgNCBNYXIgMjAyMiAxMjowODo1NSArMDAwMApTdWJq ZWN0OiBbUEFUQ0ggMjgvMzFdIFNQSVJWLUxMVk0tVHJhbnNsYXRvcjogcmVidWlsZCBmb3IgbGx2 bTEzCgotLS0KIHNyY3BrZ3MvU1BJUlYtTExWTS1UcmFuc2xhdG9yL3RlbXBsYXRlIHwgMiArLQog MSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9TUElSVi1MTFZNLVRyYW5zbGF0b3IvdGVtcGxhdGUgYi9zcmNwa2dzL1NQSVJW LUxMVk0tVHJhbnNsYXRvci90ZW1wbGF0ZQppbmRleCAyNTA0Y2FiZWQzNjcuLjg1MmFhNWNiMzg0 MCAxMDA2NDQKLS0tIGEvc3JjcGtncy9TUElSVi1MTFZNLVRyYW5zbGF0b3IvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9TUElSVi1MTFZNLVRyYW5zbGF0b3IvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdTUElSVi1MTFZNLVRyYW5zbGF0b3InCiBwa2duYW1lPVNQ SVJWLUxMVk0tVHJhbnNsYXRvcgogdmVyc2lvbj0xMi4wLjAKLXJldmlzaW9uPTEKK3JldmlzaW9u PTIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBtYWtlX2J1aWxkX2FyZ3M9Imxsdm0tc3BpcnYiCiBjb25m aWd1cmVfYXJncz0iLVduby1kZXYgLURMTFZNX0xJTktfTExWTV9EWUxJQj1PTiAtRENNQUtFX1NL SVBfUlBBVEg9T04KCkZyb20gMTgwZDU4ZGI3OGM0OGJjMjk1OGY1NDVlODVhMDFkODgzMDc3ZjY3 MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0FuZHI9QzM9QTk9MjBD ZXJxdWVpcmE/PSA8YWNlcnF1ZWlyYTAyMUBnbWFpbC5jb20+CkRhdGU6IEZyaSwgNCBNYXIgMjAy MiAxMjoxMTo0OSArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMjkvMzFdIGdoZGw6IHJlYnVpbGQgZm9y IGxsdm0xMwoKLS0tCiAuLi5iNzY0ZjQ5NjY2NjE2MDYzZDQyMzlkZjgzYjVhZWQ5NjFmZmYucGF0 Y2ggfCA0OSAtLS0tLS0tLS0tLS0tLS0tLS0tCiAuLi4vcGF0Y2hlcy97bGx2bTEyLnBhdGNoID0+ IGxsdm0xMy5wYXRjaH0gICAgfCAgMSArCiBzcmNwa2dzL2doZGwvdGVtcGxhdGUgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgNyArLS0KIDMgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCsp LCA1MiBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2doZGwvcGF0Y2hl cy8zOTZlYjc2NGY0OTY2NjYxNjA2M2Q0MjM5ZGY4M2I1YWVkOTYxZmZmLnBhdGNoCiByZW5hbWUg c3JjcGtncy9naGRsL3BhdGNoZXMve2xsdm0xMi5wYXRjaCA9PiBsbHZtMTMucGF0Y2h9ICg5MCUp CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9naGRsL3BhdGNoZXMvMzk2ZWI3NjRmNDk2NjY2MTYwNjNk NDIzOWRmODNiNWFlZDk2MWZmZi5wYXRjaCBiL3NyY3BrZ3MvZ2hkbC9wYXRjaGVzLzM5NmViNzY0 ZjQ5NjY2NjE2MDYzZDQyMzlkZjgzYjVhZWQ5NjFmZmYucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDIzYzU2NzNlNTkzZS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZ2hk bC9wYXRjaGVzLzM5NmViNzY0ZjQ5NjY2NjE2MDYzZDQyMzlkZjgzYjVhZWQ5NjFmZmYucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi1Gcm9tIDM5NmViNzY0ZjQ5NjY2NjE2MDYz ZDQyMzlkZjgzYjVhZWQ5NjFmZmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBKZXJv ZW4gVmFuIGRlbiBLZXlidXMgPGplcm9lbi52YW5kZW5rZXlidXNAZ21haWwuY29tPgotRGF0ZTog TW9uLCAyNiBBcHIgMjAyMSAyMDoxNzo0MCArMDIwMAotU3ViamVjdDogW1BBVENIXSBNaWdyYXRl IGRlcHJlY2F0ZWQgRGVidWdMb2M6OmdldCB0byBESUxvY2F0aW9uOjpnZXQKLQotLS0tCi0gc3Jj L29ydGhvL2xsdm02L2xsdm0tY2JpbmRpbmdzLmNwcCB8IDggKysrKy0tLS0KLSAxIGZpbGUgY2hh bmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3Jj L29ydGhvL2xsdm02L2xsdm0tY2JpbmRpbmdzLmNwcCBiL3NyYy9vcnRoby9sbHZtNi9sbHZtLWNi aW5kaW5ncy5jcHAKLWluZGV4IGY4Mjg0NWZmY2QuLjk4NDcwZDhmYWIgMTAwNjQ0Ci0tLS0gYS9z cmMvb3J0aG8vbGx2bTYvbGx2bS1jYmluZGluZ3MuY3BwCi0rKysgYi9zcmMvb3J0aG8vbGx2bTYv bGx2bS1jYmluZGluZ3MuY3BwCi1AQCAtMTI1NCw3ICsxMjU0LDcgQEAgbmV3X3Zhcl9kZWNsKE9E bm9kZSAqUmVzLCBPSWRlbnQgSWRlbnQsIE9TdG9yYWdlIFN0b3JhZ2UsIE9Ubm9kZSBBdHlwZSkK LSAgICAgICAgICBEZWJ1Z0N1cnJlbnRMaW5lLCBBdHlwZS0+RGJnLCB0cnVlKTsKLSAgICAgICBE QnVpbGRlci0+aW5zZXJ0RGVjbGFyZQotICAgICAgICAgKHVud3JhcChEZWNsKSwgRCwgREJ1aWxk ZXItPmNyZWF0ZUV4cHJlc3Npb24oKSwKLS0gICAgICAgICBEZWJ1Z0xvYzo6Z2V0KERlYnVnQ3Vy cmVudExpbmUsIDAsIERlYnVnQ3VycmVudFNjb3BlKSwKLSsgICAgICAgICBESUxvY2F0aW9uOjpn ZXQoRGVidWdDdXJyZW50U2NvcGUtPmdldENvbnRleHQoKSwgRGVidWdDdXJyZW50TGluZSwgMCwg RGVidWdDdXJyZW50U2NvcGUpLAotICAgICAgICAgIHVud3JhcChMTFZNR2V0SW5zZXJ0QmxvY2so RGVjbEJ1aWxkZXIpKSk7Ci0gICAgIH0KLSAjZW5kaWYKLUBAIC0xNTk3LDcgKzE1OTcsNyBAQCBz dGFydF9zdWJwcm9ncmFtX2JvZHkoT0Rub2RlU3VicHJnICpGdW5jKQotICAgICBEZWJ1Z0N1cnJl bnRTY29wZSA9IERlYnVnQ3VycmVudFN1YnByZzsKLSAKLSAgICAgdW53cmFwKEJ1aWxkZXIpLT5T ZXRDdXJyZW50RGVidWdMb2NhdGlvbgotLSAgICAgIChEZWJ1Z0xvYzo6Z2V0KERlYnVnQ3VycmVu dExpbmUsIDAsIERlYnVnQ3VycmVudFNjb3BlKSk7Ci0rICAgICAgKERJTG9jYXRpb246OmdldChE ZWJ1Z0N1cnJlbnRTY29wZS0+Z2V0Q29udGV4dCgpLCBEZWJ1Z0N1cnJlbnRMaW5lLCAwLCBEZWJ1 Z0N1cnJlbnRTY29wZSkpOwotICAgfQotIAotICAgaWYgKEZsYWdEZWJ1ZykgewotQEAgLTE2MTIs NyArMTYxMiw3IEBAIHN0YXJ0X3N1YnByb2dyYW1fYm9keShPRG5vZGVTdWJwcmcgKkZ1bmMpCi0g ICAgICAgICAgRGVidWdDdXJyZW50RmlsZSwgRGVidWdDdXJyZW50TGluZSwgSW50ZXItPkR0eXBl LT5EYmcsIHRydWUpOwotICAgICAgIERCdWlsZGVyLT5pbnNlcnREZWNsYXJlCi0gICAgICAgICAo dW53cmFwKFZhciksIEQsIERCdWlsZGVyLT5jcmVhdGVFeHByZXNzaW9uKCksCi0tICAgICAgICAg RGVidWdMb2M6OmdldChEZWJ1Z0N1cnJlbnRMaW5lLCAwLCBEZWJ1Z0N1cnJlbnRTdWJwcmcpLAot KyAgICAgICAgIERJTG9jYXRpb246OmdldChEZWJ1Z0N1cnJlbnRTdWJwcmctPmdldENvbnRleHQo KSwgRGVidWdDdXJyZW50TGluZSwgMCwgRGVidWdDdXJyZW50U3VicHJnKSwKLSAgICAgICAgICB1 bndyYXAoTExWTUdldEluc2VydEJsb2NrKERlY2xCdWlsZGVyKSkpOwotICAgICAgIExMVk1CdWls ZFN0b3JlKERlY2xCdWlsZGVyLCBJbnRlci0+UmVmLCBWYXIpOwotICAgICAgIEludGVyLT5SZWYg PSBWYXI7Ci1AQCAtMjc1OSw3ICsyNzU5LDcgQEAgbmV3X2RlYnVnX2xpbmVfc3RtdCAodW5zaWdu ZWQgTGluZSkKLSAgIGlmIChGbGFnRGVidWdMaW5lcyAmJiBMaW5lICE9IERlYnVnQ3VycmVudExp bmUpIHsKLSAgICAgRGVidWdDdXJyZW50TGluZSA9IExpbmU7Ci0gICAgIHVud3JhcChCdWlsZGVy KS0+U2V0Q3VycmVudERlYnVnTG9jYXRpb24KLS0gICAgICAoRGVidWdMb2M6OmdldChEZWJ1Z0N1 cnJlbnRMaW5lLCAwLCBEZWJ1Z0N1cnJlbnRTY29wZSkpOwotKyAgICAgIChESUxvY2F0aW9uOjpn ZXQoRGVidWdDdXJyZW50U2NvcGUtPmdldENvbnRleHQoKSwgRGVidWdDdXJyZW50TGluZSwgMCwg RGVidWdDdXJyZW50U2NvcGUpKTsKLSAgIH0KLSAjZW5kaWYKLSB9CmRpZmYgLS1naXQgYS9zcmNw a2dzL2doZGwvcGF0Y2hlcy9sbHZtMTIucGF0Y2ggYi9zcmNwa2dzL2doZGwvcGF0Y2hlcy9sbHZt MTMucGF0Y2gKc2ltaWxhcml0eSBpbmRleCA5MCUKcmVuYW1lIGZyb20gc3JjcGtncy9naGRsL3Bh dGNoZXMvbGx2bTEyLnBhdGNoCnJlbmFtZSB0byBzcmNwa2dzL2doZGwvcGF0Y2hlcy9sbHZtMTMu cGF0Y2gKaW5kZXggOGQyZjc2YmZkYTA2Li4zOGRkYjA4OGU4MzIgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvZ2hkbC9wYXRjaGVzL2xsdm0xMi5wYXRjaAorKysgYi9zcmNwa2dzL2doZGwvcGF0Y2hlcy9s bHZtMTMucGF0Y2gKQEAgLTcsNiArNyw3IEBAIGluZGV4IGMxYzFhNmQuLmRhZDdjMzggMTAwNzU1 CiAgICAgICAgIGNoZWNrX3ZlcnNpb24gMTAuMCAkbGx2bV92ZXJzaW9uIHx8CiAgICAgICAgIGNo ZWNrX3ZlcnNpb24gMTEuMCAkbGx2bV92ZXJzaW9uIHx8CiArICAgICAgIGNoZWNrX3ZlcnNpb24g MTIuMCAkbGx2bV92ZXJzaW9uIHx8CisrICAgICAgIGNoZWNrX3ZlcnNpb24gMTMuMCAkbGx2bV92 ZXJzaW9uIHx8CiAgICAgICAgIGZhbHNlOyB0aGVuCiAgICAgIGVjaG8gIkRlYnVnZ2luZyBpcyBl bmFibGVkIHdpdGggbGx2bSAkbGx2bV92ZXJzaW9uIgogICAgZWxzZQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9naGRsL3RlbXBsYXRlIGIvc3JjcGtncy9naGRsL3RlbXBsYXRlCmluZGV4IGU3NTZkOGMz Y2Q4Ny4uOGE1ZjJlNjIzMjAzIDEwMDY0NAotLS0gYS9zcmNwa2dzL2doZGwvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9naGRsL3RlbXBsYXRlCkBAIC02LDcgKzYsNyBAQAogIwogcGtnbmFtZT1naGRs CiByZXZlcnRzPSIyMDE4MTEyOV8xIgotdmVyc2lvbj0xLjAuMAordmVyc2lvbj0yLjAuMAogcmV2 aXNpb249MQogYnVpbGRfc3R5bGU9Y29uZmlndXJlCiBjb25maWd1cmVfYXJncz0iLS1wcmVmaXg9 L3VzciAtLXNyY2Rpcj0uLiAtLWluY2Rpcj1saWIvZ2hkbC9pbmNsdWRlIgpAQCAtMTYsNyArMTYs NyBAQCBtYWludGFpbmVyPSJtM3RhdjNyc2UgPG10dnJzQHR1dGEuaW8+IgogbGljZW5zZT0iR1BM LTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGh1Yi5jb20vZ2hkbC9naGRsIgog ZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vZ2hkbC9naGRsL2FyY2hpdmUvdiR7dmVyc2lv bn0udGFyLmd6IgotY2hlY2tzdW09Y2I0MjQ3NjZmYmU4MzFmZjQxYmVjODQwMTZhNmFmMDQwNmQ3 MzVjMjcyYjBiNjM5ZDUwN2MzNTAzZGYzMDQ5NQorY2hlY2tzdW09NWYyNTgzNjllMGZhZjczMDI5 ODkxNmRmZGMxMzRjNTRjMjVhN2E4YTdmMTk3MjJiN2NlMjcxN2RiMTlhZjZlYwogbm9jcm9zcz15 ZXMKIG1ha2VfY2hlY2s9ZXh0ZW5kZWQKIApAQCAtNTEsNyArNTEsNyBAQCBmaQogCiBpZiBbICIk YnVpbGRfb3B0aW9uX2xsdm0iIF07IHRoZW4KIAlzdWJwYWNrYWdlcys9IiBnaGRsLWxsdm0iCi0J bWFrZWRlcGVuZHMrPSIgbGx2bTEyIgorCW1ha2VkZXBlbmRzKz0iIGxsdm0iCiBmaQogCiBkb19j b25maWd1cmUoKSB7CkBAIC0xMzUsMyArMTM1LDQgQEAgZ2hkbC1sbHZtX3BhY2thZ2UoKSB7CiAJ CXZtb3ZlIHVzci9saWIvZ2hkbC9sbHZtCiAJfQogfQorCgpGcm9tIDkyY2U4ZmQ0YjY3OGNlZTFk ZWY2ZTA4N2VjMmQwMTBmMGQwZDE5ZTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/ VVRGLTg/cT9BbmRyPUMzPUE5PTIwQ2VycXVlaXJhPz0gPGFjZXJxdWVpcmEwMjFAZ21haWwuY29t PgpEYXRlOiBGcmksIDQgTWFyIDIwMjIgMTI6MTM6MTggKzAwMDAKU3ViamVjdDogW1BBVENIIDMw LzMxXSBydXN0OiByZWJ1aWxkIGZvciBsbHZtMTMKCi0tLQogc3JjcGtncy9ydXN0L3RlbXBsYXRl IHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ydXN0L3RlbXBsYXRlIGIvc3JjcGtncy9ydXN0L3Rl bXBsYXRlCmluZGV4IDU2MGE2MjlmM2RhMi4uMjdmNDkxZDNjNjk3IDEwMDY0NAotLS0gYS9zcmNw a2dzL3J1c3QvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9ydXN0L3RlbXBsYXRlCkBAIC05LDEwICs5 LDEwIEBACiAjCiBwa2duYW1lPXJ1c3QKIHZlcnNpb249MS41Ny4wCi1yZXZpc2lvbj0xCityZXZp c2lvbj0yCiB3cmtzcmM9InJ1c3RjLSR7dmVyc2lvbn0tc3JjIgogaG9zdG1ha2VkZXBlbmRzPSJj bWFrZSBjdXJsIHBrZy1jb25maWcgcHl0aG9uMyB0YXIgY2FyZ28tYm9vdHN0cmFwIgotbWFrZWRl cGVuZHM9ImxpYmZmaS1kZXZlbCBuY3Vyc2VzLWRldmVsIGxpYnhtbDItZGV2ZWwgemxpYi1kZXZl bCBsbHZtMTIiCittYWtlZGVwZW5kcz0ibGliZmZpLWRldmVsIG5jdXJzZXMtZGV2ZWwgbGlieG1s Mi1kZXZlbCB6bGliLWRldmVsIGxsdm0iCiBkZXBlbmRzPSJydXN0LXN0ZCIKIHNob3J0X2Rlc2M9 IlNhZmUsIGNvbmN1cnJlbnQsIHByYWN0aWNhbCBzeXN0ZW1zIGxhbmd1YWdlIgogbWFpbnRhaW5l cj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKQEAgLTM0LDcgKzM0LDcgQEAg aWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KIGZpCiAKIGlmIFsgIiRD Uk9TU19CVUlMRCIgXTsgdGhlbgotCWhvc3RtYWtlZGVwZW5kcys9IiBydXN0IGxsdm0xMiIKKwlo b3N0bWFrZWRlcGVuZHMrPSIgcnVzdCBsbHZtIgogCSMgVGhlc2UgYXJlIHJlcXVpcmVkIGZvciBi dWlsZGluZyB0aGUgYnVpbGRob3N0J3Mgc3RhZ2UwLzEKIAlob3N0bWFrZWRlcGVuZHMrPSIgbGli ZmZpLWRldmVsIGxpYnhtbDItZGV2ZWwgbmN1cnNlcy1kZXZlbCB6bGliLWRldmVsIgogZWxzZQoK RnJvbSA1YWI1ZTc2ZTk1ODIyNDdmYjQwZDlkNGViMGFjNGUwNTExMmI5MjkwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/QW5kcj1DMz1BOT0yMENlcnF1ZWlyYT89IDxh Y2VycXVlaXJhMDIxQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAyOSBNYXIgMjAyMiAwOToyODoxNiAr MDEwMApTdWJqZWN0OiBbUEFUQ0ggMzEvMzFdIGxsdm0xMzogYWRkIHBhdGNoIHRvIGJ1aWxkIG9u IHg4Nl82NC1tdXNsCgotLS0KIC4uLjZiZTAxMjgxZTliMzliMTJlY2JiYjBmMWQ3NTVkNTJlMjFm Ny5wYXRjaCB8IDU1ICsrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA1NSBpbnNl cnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9kNjkw NmJlMDEyODFlOWIzOWIxMmVjYmJiMGYxZDc1NWQ1MmUyMWY3LnBhdGNoCgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9kNjkwNmJlMDEyODFlOWIzOWIxMmVjYmJiMGYxZDc1NWQ1 MmUyMWY3LnBhdGNoIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9kNjkwNmJlMDEyODFlOWIzOWIx MmVjYmJiMGYxZDc1NWQ1MmUyMWY3LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uNDAwYjIwOTczMDYwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZt MTMvcGF0Y2hlcy9kNjkwNmJlMDEyODFlOWIzOWIxMmVjYmJiMGYxZDc1NWQ1MmUyMWY3LnBhdGNo CkBAIC0wLDAgKzEsNTUgQEAKK0Zyb20gZDY5MDZiZTAxMjgxZTliMzliMTJlY2JiYjBmMWQ3NTVk NTJlMjFmNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE5lbmFkIE1pa3NhIDxuZW5h ZC5taWtzYUBtaWNyb2JsaW5rLmNvbT4KK0RhdGU6IFR1ZSwgNSBPY3QgMjAyMSAxNDowMjozNiAr MDIwMAorU3ViamVjdDogW1BBVENIXSBmaXggYnVpbGQgb24gQWxwaW5lIExpbnV4CisKKy0gbWFr ZSBzdXJlIGxpYmV4ZWNpbmZvIGdldHMgbGlua2VkIGludG8gY29tcGlsZXItcnQgd2hlbiBidWls ZGluZworICBhZ2FpbnN0IG11c2wgYyBsaWJyYXJ5IG9uIEFscGluZSBMaW51eAorLS0tCisgY29t cGlsZXItcnQvY21ha2UvY29uZmlnLWl4LmNtYWtlICAgICAgICAgICAgICAgfCAxICsKKyBjb21w aWxlci1ydC9saWIvc2N1ZG8vQ01ha2VMaXN0cy50eHQgICAgICAgICAgICB8IDIgKysKKyBjb21w aWxlci1ydC9saWIvc2N1ZG8vc3RhbmRhbG9uZS9DTWFrZUxpc3RzLnR4dCB8IDEgKworIDMgZmls ZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9jb21waWxlci1ydC9j bWFrZS9jb25maWctaXguY21ha2UgYi9jb21waWxlci1ydC9jbWFrZS9jb25maWctaXguY21ha2UK K2luZGV4IDM5YjkxMjBmMDBhZGYuLjczZDAyNzhkYWUxMTQgMTAwNjQ0CistLS0gYS9jb21waWxl ci1ydC9jbWFrZS9jb25maWctaXguY21ha2UKKysrKyBiL2NvbXBpbGVyLXJ0L2NtYWtlL2NvbmZp Zy1peC5jbWFrZQorQEAgLTE0LDYgKzE0LDcgQEAgZnVuY3Rpb24oY29tcGlsZXJfcnRfY2hlY2tf bGlua2VyX2ZsYWcgZmxhZyBvdXRfdmFyKQorIGVuZGZ1bmN0aW9uKCkKKyAKKyBjaGVja19saWJy YXJ5X2V4aXN0cyhjIGZvcGVuICIiIENPTVBJTEVSX1JUX0hBU19MSUJDKQorK2NoZWNrX2xpYnJh cnlfZXhpc3RzKGV4ZWNpbmZvIGJhY2t0cmFjZSAiIiBDT01QSUxFUl9SVF9IQVNfRVhFQ0lORk8p CisgaWYgKENPTVBJTEVSX1JUX1VTRV9CVUlMVElOU19MSUJSQVJZKQorICAgaW5jbHVkZShIYW5k bGVDb21waWxlclJUKQorICAgZmluZF9jb21waWxlcl9ydF9saWJyYXJ5KGJ1aWx0aW5zICIiIENP TVBJTEVSX1JUX0JVSUxUSU5TX0xJQlJBUlkpCitkaWZmIC0tZ2l0IGEvY29tcGlsZXItcnQvbGli L3NjdWRvL0NNYWtlTGlzdHMudHh0IGIvY29tcGlsZXItcnQvbGliL3NjdWRvL0NNYWtlTGlzdHMu dHh0CitpbmRleCBlNTgwZDZkMTQwOGJkLi5lOTkzNjQxNjlmNDkyIDEwMDY0NAorLS0tIGEvY29t cGlsZXItcnQvbGliL3NjdWRvL0NNYWtlTGlzdHMudHh0CisrKysgYi9jb21waWxlci1ydC9saWIv c2N1ZG8vQ01ha2VMaXN0cy50eHQKK0BAIC0xNCwxMSArMTQsMTMgQEAgYXBwZW5kX2xpc3RfaWYo Q09NUElMRVJfUlRfSEFTX0xJQlBUSFJFQUQgcHRocmVhZCBTQ1VET19NSU5JTUFMX0RZTkFNSUNf TElCUykKKyBhcHBlbmRfbGlzdF9pZihDT01QSUxFUl9SVF9IQVNfTElCTE9HIGxvZyBTQ1VET19N SU5JTUFMX0RZTkFNSUNfTElCUykKKyBhcHBlbmRfbGlzdF9pZihDT01QSUxFUl9SVF9IQVNfT01J VF9GUkFNRV9QT0lOVEVSX0ZMQUcgLWZuby1vbWl0LWZyYW1lLXBvaW50ZXIKKyAgICAgICAgICAg ICAgICBTQ1VET19DRkxBR1MpCisrYXBwZW5kX2xpc3RfaWYoQ09NUElMRVJfUlRfSEFTX0VYRUNJ TkZPIGV4ZWNpbmZvIFNDVURPX01JTklNQUxfRFlOQU1JQ19MSUJTKQorIAorIHNldChTQ1VET19E WU5BTUlDX0xJTktfRkxBR1MgJHtTQU5JVElaRVJfQ09NTU9OX0xJTktfRkxBR1N9KQorICMgVXNl IGdjLXNlY3Rpb25zIGJ5IGRlZmF1bHQgdG8gYXZvaWQgdW51c2VkIGNvZGUgYmVpbmcgcHVsbGVk IGluLgorIGxpc3QoQVBQRU5EIFNDVURPX0RZTkFNSUNfTElOS19GTEFHUyAtV2wsLS1nYy1zZWN0 aW9ucykKKyAKKysKKyBpZihBTkRST0lEKQorICMgUHV0IG1vc3QgU2FuaXRpemVyIHNoYXJlZCBs aWJyYXJpZXMgaW4gdGhlIGdsb2JhbCBncm91cC4gRm9yIG1vcmUgZGV0YWlscywgc2VlCisgIyBh bmRyb2lkLWNoYW5nZXMtZm9yLW5kay1kZXZlbG9wZXJzLm1kI2NoYW5nZXMtdG8tbGlicmFyeS1z ZWFyY2gtb3JkZXIKK2RpZmYgLS1naXQgYS9jb21waWxlci1ydC9saWIvc2N1ZG8vc3RhbmRhbG9u ZS9DTWFrZUxpc3RzLnR4dCBiL2NvbXBpbGVyLXJ0L2xpYi9zY3Vkby9zdGFuZGFsb25lL0NNYWtl TGlzdHMudHh0CitpbmRleCBkNmZmYTQ0OGQ3ZTA5Li45NTlhZmVkYzBjMGNkIDEwMDY0NAorLS0t IGEvY29tcGlsZXItcnQvbGliL3NjdWRvL3N0YW5kYWxvbmUvQ01ha2VMaXN0cy50eHQKKysrKyBi L2NvbXBpbGVyLXJ0L2xpYi9zY3Vkby9zdGFuZGFsb25lL0NNYWtlTGlzdHMudHh0CitAQCAtMTM0 LDYgKzEzNCw3IEBAIGVuZGlmKCkKKyBzZXQoU0NVRE9fTElOS19MSUJTKQorIAorIGFwcGVuZF9s aXN0X2lmKENPTVBJTEVSX1JUX0hBU19MSUJQVEhSRUFEIC1wdGhyZWFkIFNDVURPX0xJTktfRkxB R1MpCisrYXBwZW5kX2xpc3RfaWYoQ09NUElMRVJfUlRfSEFTX0VYRUNJTkZPIGV4ZWNpbmZvIFND VURPX0xJTktfTElCUykKKyAKKyBhcHBlbmRfbGlzdF9pZihGVUNIU0lBIHppcmNvbiBTQ1VET19M SU5LX0xJQlMpCisgCg== --===============0382271139106962191==--