From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 9743 invoked from network); 10 Oct 2023 12:42:05 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 10 Oct 2023 12:42:05 -0000 Content-Type: multipart/mixed; boundary="===============3632186177541119468==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_sagemath=3A_use_cython_3?= To: ml@inbox.vuxu.org From: tornaria Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Tue, 10 Oct 2023 14:42:05 +0200 List-Id: Message-ID: <20231010124205._cVreRqTZBi55DzIcVJRfTtHOajPDziRLMUYCLV1y0A@z> GitHub notification mails are now in MIME to allow UTF8. --===============3632186177541119468== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgdG9ybmFyaWEgYWdhaW5zdCBtYXN0 ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL3Rv cm5hcmlhL3ZvaWQtcGFja2FnZXMgc2FnZW1hdGgtY3l0aG9uMwpodHRwczovL2dpdGh1Yi5jb20v dm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvNDU4ODcKCnNhZ2VtYXRoOiB1c2UgY3l0aG9u IDMKIyMjIyBUZXN0aW5nIHRoZSBjaGFuZ2VzDQotIEkgdGVzdGVkIHRoZSBjaGFuZ2VzIGluIHRo aXMgUFI6ICoqYnJpZWZseSoqDQoNClNpbmNlIGh0dHBzOi8vZ2l0aHViLmNvbS9zYWdlbWF0aC9z YWdlL3B1bGwvMzYxMDkgd2FzIG1lcmdlZCB1cHN0cmVhbSwgaXQncyBub3cgYWxtb3N0IHRyaXZp YWwgdG8gYnVpbGQgc2FnZW1hdGggd2l0aCBjeXRob24gMy4gVGhpcyBQUiBpcyBwcmV0dHkgc3Ry YWlnaHRmb3J3YXJkIHRvIHVuZGVyc3RhbmQ6DQoNCiAtIGNvbW1pdCA3ZjhlNjUxNGZmYTU0NDQ5 YTgwZTAxZmJhZTdmOTM1NWE3NzM5YTQ2IHJlYnVpbGRzIGBweXRob24zLXBwbHB5YCB1c2luZyBj eXRob24gMy4gTm90aGluZyBmYW5jeSBoZXJlIGFuZCB0aGlzIGNvbW1pdCB3YXMgYWxyZWFkeSB0 ZXN0ZWQgYW5kIG9ubHkgZHJvcHBlZCBzaW5jZSBpdCB0dXJuZWQgb3V0IGl0IGhhZCB0byBiZSBi dWlsdCB3aXRoIHRoZSBzYW1lIHZlcnNpb24gb2YgY3l0aG9uIGFzIHNhZ2VtYXRoIGl0c2VsZi4N CiAtIGNvbW1pdCBkZjBkMjE4NzFjZTg1MGVmZWEzZmMwMWYxOWEzZDllOGMwZDVmMGQ0IGlzIGp1 c3QgYWRkaW5nIGEgZmV3IHBhdGNoZXMgdG8gc2FnZW1hdGgsIHN3aXRjaGluZyB0byBjeXRob24g MywgYW5kIGJ1bXBpbmcuDQoNCkRlc2NyaXB0aW9uIG9mIGFkZGVkIHBhdGNoZXM6DQoxLiBwYXRj aCBgMzYxMDktMDBwcmUucGF0Y2hgOiB0aGlzIGlzIGhhbmQgcGlja2VkIHRyaXZpYWwgcGF0Y2gg dGhhdCBhbGxvd3MgdXMgdG8gYXBwbHkgaHR0cHM6Ly9naXRodWIuY29tL3NhZ2VtYXRoL3NhZ2Uv cHVsbC8zNjEwOSBjbGVhbmx5IG9uIDEwLjEgKHNpbmNlIHRoYXQgUFIgaXMgYmFzZWQgb24gMTAu MS5iZXRhMCkuIEFsbCBjaGFuZ2VzIGFyZSBjb21tZW50cyENCjIuIHBhdGNoIGAzNjEwOS1wcmVw YXJlX2Zvcl9jeXRob25fMy4wLnBhdGNoYDogdGhpcyBpcyBsb25nLCB0YWtlbiB2ZXJiYXRpbSBm cm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9zYWdlbWF0aC9zYWdlL3B1bGwvMzYxMDkuZGlmZiwgYW5k IGlzIGFscmVhZHkgbWVyZ2VkLg0KMy4gcGF0Y2ggYGJ1aWxkLWN5dGhvbjMucGF0Y2hgOiB0aGlz IGlzIDIgbGluZXMgY2hhbmdlZCBwbHVzIDQgbGVnYWN5IGJ1aWxkIG9wdGlvbnMgYWRkZWQgdG8g Y3l0aG9uIHNldHVwLg0KNC4gcGF0Y2ggYGZpeC1kb2N0ZXN0LWN5dGhvbjMucGF0Y2hgOiB0aGlz IGlzIGEgZmV3IGZpeGVzIGluIGRvY3Rlc3RzIHRvIGFjY29tb2RhdGUgbWlub3IgY2hhbmdlcyBp biBjeXRob24gb3V0cHV0IChgX19yZXByX19gIGZvciBjeXRob24gY2xhc3NlcywgZnVuY3Rpb25z LCBhbmQgZ2VuZXJhdG9ycykuDQoNCkNDOiBAYWhlc2ZvcmQgDQoNCjwhLS0NCiMjIyMgTmV3IHBh Y2thZ2UNCi0gVGhpcyBuZXcgcGFja2FnZSBjb25mb3JtcyB0byB0aGUgW3BhY2thZ2UgcmVxdWly ZW1lbnRzXShodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2Iv bWFzdGVyL0NPTlRSSUJVVElORy5tZCNwYWNrYWdlLXJlcXVpcmVtZW50cyk6ICoqWUVTKip8KipO TyoqDQotLT4NCg0KPCEtLSBOb3RlOiBJZiB0aGUgYnVpbGQgaXMgbGlrZWx5IHRvIHRha2UgbW9y ZSB0aGFuIDIgaG91cnMsIHBsZWFzZSBhZGQgY2kgc2tpcCB0YWcgYXMgZGVzY3JpYmVkIGluDQpo dHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL0NP TlRSSUJVVElORy5tZCNjb250aW51b3VzLWludGVncmF0aW9uDQphbmQgdGVzdCBhdCBsZWFzdCBv bmUgbmF0aXZlIGJ1aWxkIGFuZCwgaWYgc3VwcG9ydGVkLCBhdCBsZWFzdCBvbmUgY3Jvc3MgYnVp bGQuDQpJZ25vcmUgdGhpcyBzZWN0aW9uIGlmIHRoaXMgUFIgaXMgbm90IHNraXBwaW5nIENJLg0K LS0+DQo8IS0tDQojIyMjIExvY2FsIGJ1aWxkIHRlc3RpbmcNCi0gSSBidWlsdCB0aGlzIFBSIGxv Y2FsbHkgZm9yIG15IG5hdGl2ZSBhcmNoaXRlY3R1cmUsIChBUkNILUxJQkMpDQotIEkgYnVpbHQg dGhpcyBQUiBsb2NhbGx5IGZvciB0aGVzZSBhcmNoaXRlY3R1cmVzIChpZiBzdXBwb3J0ZWQuIG1h cmsgY3Jvc3NidWlsZHMpOg0KICAtIGFhcmNoNjQtbXVzbA0KICAtIGFybXY3bA0KICAtIGFybXY2 bC1tdXNsDQotLT4NCgoKQSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQt bGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzQ1ODg3LnBhdGNoIGlzIGF0dGFjaGVk --===============3632186177541119468== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-sagemath-cython3-45887.patch" RnJvbSA2ODVlYWJmNjgwNjAyMTdiMzc5YTVmM2QwN2Q2ZTA5ZjM0ZTVjOTA5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/R29uemFsbz0yMFRvcm5hcj1DMz1BRGE/PSA8 dG9ybmFyaWFAY21hdC5lZHUudXk+CkRhdGU6IFR1ZSwgMTAgT2N0IDIwMjMgMDg6NTE6MjUgLTAz MDAKU3ViamVjdDogW1BBVENIIDEvM10gcHl0aG9uMy1DeXRob246IGZpeCBtZW1vcnkgbGVhayAr IGRlYnVnIG91dHB1dCBmb3IKIGdlbmVyYXRvcnMKCmh0dHBzOi8vZ2l0aHViLmNvbS9jeXRob24v Y3l0aG9uL3B1bGwvNTY5MApodHRwczovL2dpdGh1Yi5jb20vY3l0aG9uL2N5dGhvbi9wdWxsLzU3 MjUKCkJvdGggYXJlIG1lcmdlZCBpbiBjeXRob24gMy4wLjMsIGhvd2V2ZXIgdGhhdCByZWxlYXNl IGJyZWFrcyBzY2lweS4KLS0tCiBzcmNwa2dzL3B5dGhvbjMtQ3l0aG9uL3BhdGNoZXMvNTY5MC5w YXRjaCB8IDEzOCArKysrKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL3B5dGhvbjMtQ3l0aG9u L3BhdGNoZXMvNTcyNS5wYXRjaCB8ICA0OSArKysrKysrKwogc3JjcGtncy9weXRob24zLUN5dGhv bi90ZW1wbGF0ZSAgICAgICAgICAgfCAgIDIgKy0KIDMgZmlsZXMgY2hhbmdlZCwgMTg4IGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3B5dGhv bjMtQ3l0aG9uL3BhdGNoZXMvNTY5MC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv cHl0aG9uMy1DeXRob24vcGF0Y2hlcy81NzI1LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9w eXRob24zLUN5dGhvbi9wYXRjaGVzLzU2OTAucGF0Y2ggYi9zcmNwa2dzL3B5dGhvbjMtQ3l0aG9u L3BhdGNoZXMvNTY5MC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAwLi5iM2E1MTVjM2Y0MGY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9weXRob24zLUN5 dGhvbi9wYXRjaGVzLzU2OTAucGF0Y2gKQEAgLTAsMCArMSwxMzggQEAKK1Rha2VuIGZyb20gaHR0 cHM6Ly9naXRodWIuY29tL2N5dGhvbi9jeXRob24vcHVsbC81NjkwCisKK0Zyb20gZDAxMzkzOTQ3 OTRjMjA3OTU2Yzk3MmU5MGNlNTlmMzNlZjFmZDcwOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206IE9sZWtzYW5kciBQYXZseWsgPG9sZWtzYW5kci5wYXZseWtAaW50ZWwuY29tPgorRGF0 ZTogRnJpLCA4IFNlcCAyMDIzIDE0OjMwOjA2IC0wNTAwCitTdWJqZWN0OiBbUEFUQ0ggMS80XSBT a2lwIGJ1aWxkaW5nIHRyZWVzIGZvciBub2RlcyB3aXRoIGludmFsaWQgdGFnIG5hbWUKKworVGhp cyBjaGFuZ2UgYXR0ZW1wdHMgdG8gZXhjbHVkZSBhcmd1bWVudHMgd2l0aCBpbnZhbGlkIHRhZyBu YW1lcworZnJvbSBiZWluZyBpbnNlcnRlZCBpbnRvIHRoZSBUcmVlQnVpbGRlcgorLS0tCisgQ3l0 aG9uL0RlYnVnZ2VyL0RlYnVnV3JpdGVyLnB5IHwgMTggKysrKysrKysrKysrKystLS0tCisgMSBm aWxlIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1n aXQgYS9DeXRob24vRGVidWdnZXIvRGVidWdXcml0ZXIucHkgYi9DeXRob24vRGVidWdnZXIvRGVi dWdXcml0ZXIucHkKK2luZGV4IDhiMWZiNzViMDI3Li5kYmU3Y2Y1NTY3MSAxMDA2NDQKKy0tLSBh L0N5dGhvbi9EZWJ1Z2dlci9EZWJ1Z1dyaXRlci5weQorKysrIGIvQ3l0aG9uL0RlYnVnZ2VyL0Rl YnVnV3JpdGVyLnB5CitAQCAtMjAsNiArMjAsMTMgQEAKKyBmcm9tIC4uQ29tcGlsZXIgaW1wb3J0 IEVycm9ycworIAorIAorK2RlZiBpc192YWxpZF90YWcobmFtZSk6CisrICAgIGlmIGhhc2F0dHIo bmFtZSwgInN0YXJ0c3dpdGgiKToKKysgICAgICAgIGlmIG5hbWUuc3RhcnRzd2l0aCgiLiIpIGFu ZCBuYW1lWzE6XS5pc251bWVyaWMoKToKKysgICAgICAgICAgICByZXR1cm4gRmFsc2UKKysgICAg cmV0dXJuIFRydWUKKysKKysKKyBjbGFzcyBDeXRob25EZWJ1Z1dyaXRlcihvYmplY3QpOgorICAg ICAiIiIKKyAgICAgQ2xhc3MgdG8gb3V0cHV0IGRlYnVnZ2luZyBpbmZvcm1hdGlvbiBmb3IgY3ln ZGIKK0BAIC0zOSwxNCArNDYsMTcgQEAgZGVmIF9faW5pdF9fKHNlbGYsIG91dHB1dF9kaXIpOgor ICAgICAgICAgc2VsZi5zdGFydCgnY3l0aG9uX2RlYnVnJywgYXR0cnM9ZGljdCh2ZXJzaW9uPScx LjAnKSkKKyAKKyAgICAgZGVmIHN0YXJ0KHNlbGYsIG5hbWUsIGF0dHJzPU5vbmUpOgorLSAgICAg ICAgc2VsZi50Yi5zdGFydChuYW1lLCBhdHRycyBvciB7fSkKKysgICAgICAgIGlmIGlzX3ZhbGlk X3RhZyhuYW1lKToKKysgICAgICAgICAgICBzZWxmLnRiLnN0YXJ0KG5hbWUsIGF0dHJzIG9yIHt9 KQorIAorICAgICBkZWYgZW5kKHNlbGYsIG5hbWUpOgorLSAgICAgICAgc2VsZi50Yi5lbmQobmFt ZSkKKysgICAgICAgIGlmIGlzX3ZhbGlkX3RhZyhuYW1lKToKKysgICAgICAgICAgICBzZWxmLnRi LmVuZChuYW1lKQorIAorICAgICBkZWYgYWRkX2VudHJ5KHNlbGYsIG5hbWUsICoqYXR0cnMpOgor LSAgICAgICAgc2VsZi50Yi5zdGFydChuYW1lLCBhdHRycykKKy0gICAgICAgIHNlbGYudGIuZW5k KG5hbWUpCisrICAgICAgICBpZiBpc192YWxpZF90YWcobmFtZSk6CisrICAgICAgICAgICAgc2Vs Zi50Yi5zdGFydChuYW1lLCBhdHRycykKKysgICAgICAgICAgICBzZWxmLnRiLmVuZChuYW1lKQor IAorICAgICBkZWYgc2VyaWFsaXplKHNlbGYpOgorICAgICAgICAgc2VsZi50Yi5lbmQoJ01vZHVs ZScpCisKK0Zyb20gMWVhNzZjMWFkYzNmNWFiMDAzYTZhZDk1MTNjZTI1ZTVlNzYyMDM4OCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE9sZWtzYW5kciBQYXZseWsgPG9sZWtzYW5kci5w YXZseWtAaW50ZWwuY29tPgorRGF0ZTogRnJpLCA4IFNlcCAyMDIzIDE1OjE4OjIxIC0wNTAwCitT dWJqZWN0OiBbUEFUQ0ggMi80XSBVc2UgdHlwZSBjaGVja2luZyBpcyBpc192YWxpZF90YWcgZm9y IGVmZmljaWVuY3kKKworRG9jdW1lbnRlZCB0aGUgcHVycG9zZSBvZiBpc192YWxpZF90YWcgZnVu Y3Rpb24gaW4gaXRzIGRvY3N0cmluZy4KKy0tLQorIEN5dGhvbi9EZWJ1Z2dlci9EZWJ1Z1dyaXRl ci5weSB8IDEwICsrKysrKysrKy0KKyAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9DeXRob24vRGVidWdnZXIvRGVidWdXcml0ZXIu cHkgYi9DeXRob24vRGVidWdnZXIvRGVidWdXcml0ZXIucHkKK2luZGV4IGRiZTdjZjU1NjcxLi41 N2FkYTg0YWMyZSAxMDA2NDQKKy0tLSBhL0N5dGhvbi9EZWJ1Z2dlci9EZWJ1Z1dyaXRlci5weQor KysrIGIvQ3l0aG9uL0RlYnVnZ2VyL0RlYnVnV3JpdGVyLnB5CitAQCAtMTgsMTAgKzE4LDE4IEBA CisgICAgICAgICAgICAgZXRyZWUgPSBOb25lCisgCisgZnJvbSAuLkNvbXBpbGVyIGltcG9ydCBF cnJvcnMKKytmcm9tIC4uQ29tcGlsZXIuU3RyaW5nRW5jb2RpbmcgaW1wb3J0IEVuY29kZWRTdHJp bmcKKyAKKyAKKyBkZWYgaXNfdmFsaWRfdGFnKG5hbWUpOgorLSAgICBpZiBoYXNhdHRyKG5hbWUs ICJzdGFydHN3aXRoIik6CisrICAgICIiIgorKyAgICBOYW1lcyBsaWtlICcuMCcgYXJlIHVzZWQg aW50ZXJuYWxseSBmb3IgYXJndW1lbnRzCisrICAgIHRvIGZ1bmN0aW9ucyBjcmVhdGluZyBnZW5l cmF0b3IgZXhwcmVzc2lvbnMsCisrICAgIGhvd2V2ZXIgdGhleSBhcmUgbm90IGlkZW50aWZpZXJz LiAKKysKKysgICAgU2VlIGdoLTU1NTIKKysgICAgIiIiCisrICAgIGlmIGlzaW5zdGFuY2UobmFt ZSwgRW5jb2RlZFN0cmluZyk6CisgICAgICAgICBpZiBuYW1lLnN0YXJ0c3dpdGgoIi4iKSBhbmQg bmFtZVsxOl0uaXNudW1lcmljKCk6CisgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgIHJl dHVybiBUcnVlCisKK0Zyb20gNGYwY2Y1OGVmMTE3NmFmNmM2NmU0OTI0MjhiNzhhNGRhMzdjNDFk YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IHNjb2RlciA8c3RlZmFuX21sQGJlaG5l bC5kZT4KK0RhdGU6IFNhdCwgOSBTZXAgMjAyMyAxMToyODo0NyArMDIwMAorU3ViamVjdDogW1BB VENIIDMvNF0gRml4IG1pbm9yIGlzc3Vlcy4KKworLS0tCisgQ3l0aG9uL0RlYnVnZ2VyL0RlYnVn V3JpdGVyLnB5IHwgNCArKy0tCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL0N5dGhvbi9EZWJ1Z2dlci9EZWJ1Z1dyaXRlci5w eSBiL0N5dGhvbi9EZWJ1Z2dlci9EZWJ1Z1dyaXRlci5weQoraW5kZXggNTdhZGE4NGFjMmUuLjQ2 ZGI0OGE2YmQ4IDEwMDY0NAorLS0tIGEvQ3l0aG9uL0RlYnVnZ2VyL0RlYnVnV3JpdGVyLnB5Cisr KysgYi9DeXRob24vRGVidWdnZXIvRGVidWdXcml0ZXIucHkKK0BAIC0yNywxMCArMjcsMTAgQEAg ZGVmIGlzX3ZhbGlkX3RhZyhuYW1lKToKKyAgICAgdG8gZnVuY3Rpb25zIGNyZWF0aW5nIGdlbmVy YXRvciBleHByZXNzaW9ucywKKyAgICAgaG93ZXZlciB0aGV5IGFyZSBub3QgaWRlbnRpZmllcnMu IAorIAorLSAgICBTZWUgZ2gtNTU1MgorKyAgICBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2N5dGhv bi9jeXRob24vaXNzdWVzLzU1NTIKKyAgICAgIiIiCisgICAgIGlmIGlzaW5zdGFuY2UobmFtZSwg RW5jb2RlZFN0cmluZyk6CistICAgICAgICBpZiBuYW1lLnN0YXJ0c3dpdGgoIi4iKSBhbmQgbmFt ZVsxOl0uaXNudW1lcmljKCk6CisrICAgICAgICBpZiBuYW1lLnN0YXJ0c3dpdGgoIi4iKSBhbmQg bmFtZVsxOl0uaXNkZWNpbWFsKCk6CisgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgIHJl dHVybiBUcnVlCisgCisKK0Zyb20gMGQxMzU2ODk0NmY1ODY1YTU1MzQwZGIwOTMxMGFjY2QyMzIz ZjZiZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IHNjb2RlciA8c3RlZmFuX21sQGJl aG5lbC5kZT4KK0RhdGU6IFNhdCwgOSBTZXAgMjAyMyAxMjoyMjoyMSArMDIwMAorU3ViamVjdDog W1BBVENIIDQvNF0gUmVtb3ZlIHRyYWlsaW5nIHdoaXRlc3BhY2UuCisKKy0tLQorIEN5dGhvbi9E ZWJ1Z2dlci9EZWJ1Z1dyaXRlci5weSB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL0N5dGhvbi9EZWJ1Z2dlci9EZWJ1 Z1dyaXRlci5weSBiL0N5dGhvbi9EZWJ1Z2dlci9EZWJ1Z1dyaXRlci5weQoraW5kZXggNDZkYjQ4 YTZiZDguLjJjM2MzMTBmYzY0IDEwMDY0NAorLS0tIGEvQ3l0aG9uL0RlYnVnZ2VyL0RlYnVnV3Jp dGVyLnB5CisrKysgYi9DeXRob24vRGVidWdnZXIvRGVidWdXcml0ZXIucHkKK0BAIC0yNSw3ICsy NSw3IEBAIGRlZiBpc192YWxpZF90YWcobmFtZSk6CisgICAgICIiIgorICAgICBOYW1lcyBsaWtl ICcuMCcgYXJlIHVzZWQgaW50ZXJuYWxseSBmb3IgYXJndW1lbnRzCisgICAgIHRvIGZ1bmN0aW9u cyBjcmVhdGluZyBnZW5lcmF0b3IgZXhwcmVzc2lvbnMsCistICAgIGhvd2V2ZXIgdGhleSBhcmUg bm90IGlkZW50aWZpZXJzLiAKKysgICAgaG93ZXZlciB0aGV5IGFyZSBub3QgaWRlbnRpZmllcnMu CisgCisgICAgIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY3l0aG9uL2N5dGhvbi9pc3N1ZXMvNTU1 MgorICAgICAiIiIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcHl0aG9uMy1DeXRob24vcGF0Y2hlcy81 NzI1LnBhdGNoIGIvc3JjcGtncy9weXRob24zLUN5dGhvbi9wYXRjaGVzLzU3MjUucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uZTJmODExZmUwZTAyMAotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcHl0aG9uMy1DeXRob24vcGF0Y2hlcy81NzI1LnBhdGNo CkBAIC0wLDAgKzEsNDkgQEAKK1Rha2VuIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2N5dGhvbi9j eXRob24vcHVsbC81NzI1CisKK0Zyb20gYzM4YjMyMDc2NGJkMmE3YzA4OWIzMzJlMGEzZDI3ZWM4 N2I3MjVkMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IHl1dDIzIDx5dXQyM0Bndmxq b2huc29ucy5jb20+CitEYXRlOiBNb24sIDI1IFNlcCAyMDIzIDE2OjM0OjUwIC0wNDAwCitTdWJq ZWN0OiBbUEFUQ0ggMS8yXSBSZWxlYXNlIHJlZmVyZW5jZXMgdG8gdHJhY2ViYWNrIG9iamVjdHMg aW4gUHl0aG9uIDMuMTIrCisKK0ZpeGVzOiAjNTcyNAorLS0tCisgQ3l0aG9uL1V0aWxpdHkvRXhj ZXB0aW9ucy5jIHwgMiArKworIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKKworZGlm ZiAtLWdpdCBhL0N5dGhvbi9VdGlsaXR5L0V4Y2VwdGlvbnMuYyBiL0N5dGhvbi9VdGlsaXR5L0V4 Y2VwdGlvbnMuYworaW5kZXggMjBkYzdmYWYzYTguLmE0NDE2NDYyNTAwIDEwMDY0NAorLS0tIGEv Q3l0aG9uL1V0aWxpdHkvRXhjZXB0aW9ucy5jCisrKysgYi9DeXRob24vVXRpbGl0eS9FeGNlcHRp b25zLmMKK0BAIC0xOTAsNiArMTkwLDggQEAgc3RhdGljIENZVEhPTl9JTkxJTkUgdm9pZCBfX1B5 eF9FcnJSZXN0b3JlSW5TdGF0ZShQeVRocmVhZFN0YXRlICp0c3RhdGUsIFB5T2JqZWMKKyAgICAg dG1wX3ZhbHVlID0gdHN0YXRlLT5jdXJyZW50X2V4Y2VwdGlvbjsKKyAgICAgdHN0YXRlLT5jdXJy ZW50X2V4Y2VwdGlvbiA9IHZhbHVlOworICAgICBQeV9YREVDUkVGKHRtcF92YWx1ZSk7CisrICAg IFB5X1hERUNSRUYodGIpOworKyAgICBQeV9YREVDUkVGKHR5cGUpOworICNlbHNlCisgICAgIFB5 T2JqZWN0ICp0bXBfdHlwZSwgKnRtcF92YWx1ZSwgKnRtcF90YjsKKyAgICAgdG1wX3R5cGUgPSB0 c3RhdGUtPmN1cmV4Y190eXBlOworCitGcm9tIGQ4YjcxZWY4Y2NiNWVmMTE0YTc3Y2U0OTlmMTky ZjEyMTA2MGNhMDIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBzY29kZXIgPHN0ZWZh bl9tbEBiZWhuZWwuZGU+CitEYXRlOiBUdWUsIDI2IFNlcCAyMDIzIDExOjA4OjI0ICswMjAwCitT dWJqZWN0OiBbUEFUQ0ggMi8yXSBSZW1vdmUgbm93LXVudXNlZCAidW51c2VkIiBtYXJrZXIuCisK Ky0tLQorIEN5dGhvbi9VdGlsaXR5L0V4Y2VwdGlvbnMuYyB8IDMgKy0tCisgMSBmaWxlIGNoYW5n ZWQsIDEgaW5zZXJ0aW9uKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvQ3l0aG9u L1V0aWxpdHkvRXhjZXB0aW9ucy5jIGIvQ3l0aG9uL1V0aWxpdHkvRXhjZXB0aW9ucy5jCitpbmRl eCBhNDQxNjQ2MjUwMC4uMjE0NDU5NGJhNTMgMTAwNjQ0CistLS0gYS9DeXRob24vVXRpbGl0eS9F eGNlcHRpb25zLmMKKysrKyBiL0N5dGhvbi9VdGlsaXR5L0V4Y2VwdGlvbnMuYworQEAgLTE5MCw4 ICsxODksOCBAQCBzdGF0aWMgQ1lUSE9OX0lOTElORSB2b2lkIF9fUHl4X0VyclJlc3RvcmVJblN0 YXRlKFB5VGhyZWFkU3RhdGUgKnRzdGF0ZSwgUHlPYmplYworICAgICB0bXBfdmFsdWUgPSB0c3Rh dGUtPmN1cnJlbnRfZXhjZXB0aW9uOworICAgICB0c3RhdGUtPmN1cnJlbnRfZXhjZXB0aW9uID0g dmFsdWU7CisgICAgIFB5X1hERUNSRUYodG1wX3ZhbHVlKTsKKy0gICAgUHlfWERFQ1JFRih0Yik7 CisgICAgIFB5X1hERUNSRUYodHlwZSk7CisrICAgIFB5X1hERUNSRUYodGIpOworICNlbHNlCisg ICAgIFB5T2JqZWN0ICp0bXBfdHlwZSwgKnRtcF92YWx1ZSwgKnRtcF90YjsKKyAgICAgdG1wX3R5 cGUgPSB0c3RhdGUtPmN1cmV4Y190eXBlOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9weXRob24zLUN5 dGhvbi90ZW1wbGF0ZSBiL3NyY3BrZ3MvcHl0aG9uMy1DeXRob24vdGVtcGxhdGUKaW5kZXggZjI5 NzkzMzU5MjU0NS4uNzgyZGU2YWQ2NjQ2OCAxMDA2NDQKLS0tIGEvc3JjcGtncy9weXRob24zLUN5 dGhvbi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3B5dGhvbjMtQ3l0aG9uL3RlbXBsYXRlCkBAIC0x LDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncHl0aG9uMy1DeXRob24nCiBwa2duYW1l PXB5dGhvbjMtQ3l0aG9uCiB2ZXJzaW9uPTMuMC4yCi1yZXZpc2lvbj0zCityZXZpc2lvbj00CiBi dWlsZF9zdHlsZT1weXRob24zLW1vZHVsZQogaG9zdG1ha2VkZXBlbmRzPSJweXRob24zLXNldHVw dG9vbHMiCiBtYWtlZGVwZW5kcz0icHl0aG9uMy1kZXZlbCIKCkZyb20gMjVmYmQ0MjI4YTY5NzQ3 MTNjOThmMjFmYjcxYTQwNmM3OTg4MWYxOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog PT9VVEYtOD9xP0dvbnphbG89MjBUb3JuYXI9QzM9QURhPz0gPHRvcm5hcmlhQGNtYXQuZWR1LnV5 PgpEYXRlOiBXZWQsIDE5IEp1bCAyMDIzIDIxOjA0OjMzIC0wMzAwClN1YmplY3Q6IFtQQVRDSCAy LzNdIHB5dGhvbjMtcHBscHk6IHVwZGF0ZSB0byAwLjguOSwgdXNlIGN5dGhvbiAzLgoKLS0tCiBz cmNwa2dzL3B5dGhvbjMtcHBscHkvdGVtcGxhdGUgfCAxMiArKysrKystLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9weXRob24zLXBwbHB5L3RlbXBsYXRlIGIvc3JjcGtncy9weXRob24zLXBwbHB5L3RlbXBs YXRlCmluZGV4IGZlNmIwOGRiYTQwZjIuLmQ3YTMxYWVhYjIwMjMgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvcHl0aG9uMy1wcGxweS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3B5dGhvbjMtcHBscHkvdGVt cGxhdGUKQEAgLTEsMTkgKzEsMTkgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3B5dGhvbjMtcHBs cHknCiBwa2duYW1lPXB5dGhvbjMtcHBscHkKLXZlcnNpb249MC44LjcKLXJldmlzaW9uPTQKK3Zl cnNpb249MC44LjkKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPXB5dGhvbjMtbW9kdWxlCi1ob3N0 bWFrZWRlcGVuZHM9InB5dGhvbjMtc2V0dXB0b29scyBweXRob24zLUN5dGhvbjAuMjkiCitob3N0 bWFrZWRlcGVuZHM9InB5dGhvbjMtc2V0dXB0b29scyBweXRob24zLUN5dGhvbiIKIG1ha2VkZXBl bmRzPSJweXRob24zLWN5c2lnbmFscyBweXRob24zLWdtcHkyIHB5dGhvbjMtZGV2ZWwgZ21wLWRl dmVsCiAgZ21weHgtZGV2ZWwgcHBsLWRldmVsIG1wZnItZGV2ZWwgbGlibXBjLWRldmVsIHBhcmkt ZGV2ZWwiCiBkZXBlbmRzPSJweXRob24zIgogc2hvcnRfZGVzYz0iUHl0aG9uIHdyYXBwZXIgdG8g dGhlIEMrKyBQYXJtYSBQb2x5aGVkcmEgTGlicmFyeSAoUFBMKSIKIG1haW50YWluZXI9Ikdvbnph bG8gVG9ybmFyw61hIDx0b3JuYXJpYUBjbWF0LmVkdS51eT4iCiBsaWNlbnNlPSJHUEwtMy4wLW9y LWxhdGVyIgotaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmNvbS92aWRlbGVjL3BwbHB5IgotY2hh bmdlbG9nPSJodHRwczovL2dpdGxhYi5jb20vdmlkZWxlYy9wcGxweS8tL3Jhdy9tYXN0ZXIvQ0hB TkdFUy50eHQiCitob21lcGFnZT0iaHR0cHM6Ly9naXRodWIuY29tL3NhZ2VtYXRoL3BwbHB5Igor Y2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vc2FnZW1hdGgvcHBs cHkvbWFzdGVyL0NIQU5HRVMudHh0IgogZGlzdGZpbGVzPSIke1BZUElfU0lURX0vcC9wcGxweS9w cGxweS0ke3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPTUwMGJkMGY0YWUxYTc2OTU2ZmFlN2Zj YmE3Nzg1NGY1ZWMzZTY0ZmNlNzY4MDM2NjQ5ODM3NjNjM2YyYmQ4YmQKK2NoZWNrc3VtPWRiN2Ez YjU3MWQ2ZWYwNTNmNzUxMzc5NzVlOTQ3YzNhMWMxZTQ1YTMwYmFiOTBlYWYyMTViNGU1Y2MxNTc5 N2UKIAogZG9fY2hlY2soKSB7CiAJUFlUSE9OUEFUSD0kKGNkIGJ1aWxkL2xpYiogJiYgcHdkKSBw eXRob24zIHNldHVwLnB5IHRlc3QKCkZyb20gZDI2NjM2ZjA2OTRhYmUyNTYwZjQxMjhjNmU3ZDMy ZmYzYTU4OGMwMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0dvbnph bG89MjBUb3JuYXI9QzM9QURhPz0gPHRvcm5hcmlhQGNtYXQuZWR1LnV5PgpEYXRlOiBUdWUsIDI5 IEF1ZyAyMDIzIDIyOjE0OjQ5IC0wMzAwClN1YmplY3Q6IFtQQVRDSCAzLzNdIHNhZ2VtYXRoOiB1 c2UgY3l0aG9uIDMuMAoKLS0tCiBzcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvMzYxMDktMDBwcmUu cGF0Y2ggICAgfCAgIDUwICsKIC4uLi8zNjEwOS1wcmVwYXJlX2Zvcl9jeXRob25fMy4wLnBhdGNo ICAgICAgICB8IDk5OTUgKysrKysrKysrKysrKysrKysKIHNyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hl cy9idWlsZC1jeXRob24zLnBhdGNoICB8ICAgNDQgKwogLi4uL3BhdGNoZXMvZml4LWRvY3Rlc3Qt Y3l0aG9uMy5wYXRjaCAgICAgICAgIHwgIDIwNyArCiBzcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMv Z2V0X3BhdGNoZXMgICAgICAgICAgfCAgICAzICstCiBzcmNwa2dzL3NhZ2VtYXRoL3RlbXBsYXRl ICAgICAgICAgICAgICAgICAgICAgfCAgICA2ICstCiA2IGZpbGVzIGNoYW5nZWQsIDEwMzAxIGlu c2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9z YWdlbWF0aC9wYXRjaGVzLzM2MTA5LTAwcHJlLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9zYWdlbWF0aC9wYXRjaGVzLzM2MTA5LXByZXBhcmVfZm9yX2N5dGhvbl8zLjAucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvYnVpbGQtY3l0aG9u My5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy9maXgt ZG9jdGVzdC1jeXRob24zLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9zYWdlbWF0aC9wYXRj aGVzLzM2MTA5LTAwcHJlLnBhdGNoIGIvc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzLzM2MTA5LTAw cHJlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjBhMzBk NjIyZjBmNjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvMzYx MDktMDBwcmUucGF0Y2gKQEAgLTAsMCArMSw1MCBAQAorUHJlLXBhdGNoIHNvIHRoYXQgUFIgIzM2 MTA5IGFwcGxpZXMgY2xlYW5seSBvbiB0b3Agb2YgMTAuMQorCitkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvY2F0ZWdvcmllcy9ob3BmX2FsZ2VicmFzX3dpdGhfYmFzaXMucHkgYi9zcmMvc2FnZS9jYXRl Z29yaWVzL2hvcGZfYWxnZWJyYXNfd2l0aF9iYXNpcy5weQoraW5kZXggZWE0MDE4OTZjYTAuLjI5 YjZmNDhhODZmIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY2F0ZWdvcmllcy9ob3BmX2FsZ2VicmFz X3dpdGhfYmFzaXMucHkKKysrKyBiL3NyYy9zYWdlL2NhdGVnb3JpZXMvaG9wZl9hbGdlYnJhc193 aXRoX2Jhc2lzLnB5CitAQCAtMzMsMTEgKzMzLDExIEBAIGNsYXNzIEhvcGZBbGdlYnJhc1dpdGhC YXNpcyhDYXRlZ29yeVdpdGhBeGlvbV9vdmVyX2Jhc2VfcmluZyk6CisgICAgIFdlIG5vdyBzaG93 IGhvdyB0byB1c2UgYSBzaW1wbGUgSG9wZiBhbGdlYnJhLCBuYW1lbHkgdGhlIGdyb3VwIGFsZ2Vi cmEgb2YgdGhlIGRpaGVkcmFsIGdyb3VwCisgICAgIChzZWUgYWxzbyBBbGdlYnJhc1dpdGhCYXNp cyk6OgorIAorLSAgICAgICAgc2FnZTogQSA9IEMuZXhhbXBsZSgpOyBBICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsIC0gc2Fn ZS5ncm91cHMKKysgICAgICAgIHNhZ2U6IEEgPSBDLmV4YW1wbGUoKTsgQSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBuZWVkcyBzYWdlLmdy b3VwcworICAgICAgICAgQW4gZXhhbXBsZSBvZiBIb3BmIGFsZ2VicmEgd2l0aCBiYXNpczogdGhl IGdyb3VwIGFsZ2VicmEgb2YgdGhlCisgICAgICAgICAgRGloZWRyYWwgZ3JvdXAgb2Ygb3JkZXIg NiBhcyBhIHBlcm11dGF0aW9uIGdyb3VwIG92ZXIgUmF0aW9uYWwgRmllbGQKKy0gICAgICAgIHNh Z2U6IEEuX19jdXN0b21fbmFtZSA9ICJBIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCAtIHNhZ2UuZ3JvdXBzCistICAgICAgICBz YWdlOiBBLmNhdGVnb3J5KCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwgLSBzYWdlLmdyb3VwcworKyAgICAgICAg c2FnZTogQS5fX2N1c3RvbV9uYW1lID0gIkEiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjIG5lZWRzIHNhZ2UuZ3JvdXBzCisrICAgICAgICBzYWdl OiBBLmNhdGVnb3J5KCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICMgbmVlZHMgc2FnZS5ncm91cHMKKyAgICAgICAgIENhdGVnb3J5 IG9mIGZpbml0ZSBkaW1lbnNpb25hbCBob3BmIGFsZ2VicmFzIHdpdGggYmFzaXMgb3ZlciBSYXRp b25hbCBGaWVsZAorIAorICAgICAgICAgc2FnZTogQS5vbmVfYmFzaXMoKSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFs IC0gc2FnZS5ncm91cHMKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9jYXRlZ29yaWVzL21vZHVsZXNf d2l0aF9iYXNpcy5weSBiL3NyYy9zYWdlL2NhdGVnb3JpZXMvbW9kdWxlc193aXRoX2Jhc2lzLnB5 CitpbmRleCA4NWEwZDUwMjM5YS4uYzBlMjk4ODZiNWYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9j YXRlZ29yaWVzL21vZHVsZXNfd2l0aF9iYXNpcy5weQorKysrIGIvc3JjL3NhZ2UvY2F0ZWdvcmll cy9tb2R1bGVzX3dpdGhfYmFzaXMucHkKK0BAIC02Niw5ICs2Niw5IEBAIGNsYXNzIE1vZHVsZXNX aXRoQmFzaXMoQ2F0ZWdvcnlXaXRoQXhpb21fb3Zlcl9iYXNlX3JpbmcpOgorIAorICAgICBMZXQg YFhgIGFuZCBgWWAgYmUgdHdvIG1vZHVsZXMgd2l0aCBiYXNpcy4gV2UgY2FuIGJ1aWxkIGBIb20o WCxZKWA6OgorIAorLSAgICAgICAgc2FnZTogWCA9IENvbWJpbmF0b3JpYWxGcmVlTW9kdWxlKFFR LCBbMSwyXSk7IFguX19jdXN0b21fbmFtZSA9ICJYIiAgICAgICAgICAgICAjIG9wdGlvbmFsIC0g c2FnZS5tb2R1bGVzCistICAgICAgICBzYWdlOiBZID0gQ29tYmluYXRvcmlhbEZyZWVNb2R1bGUo UVEsIFszLDRdKTsgWS5fX2N1c3RvbV9uYW1lID0gIlkiICAgICAgICAgICAgICMgb3B0aW9uYWwg LSBzYWdlLm1vZHVsZXMKKy0gICAgICAgIHNhZ2U6IEggPSBIb20oWCwgWSk7IEggICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25h bCAtIHNhZ2UubW9kdWxlcworKyAgICAgICAgc2FnZTogWCA9IENvbWJpbmF0b3JpYWxGcmVlTW9k dWxlKFFRLCBbMSwyXSk7IFguX19jdXN0b21fbmFtZSA9ICJYIiAgICAgICAgICAgICAjIG5lZWRz IHNhZ2UubW9kdWxlcworKyAgICAgICAgc2FnZTogWSA9IENvbWJpbmF0b3JpYWxGcmVlTW9kdWxl KFFRLCBbMyw0XSk7IFkuX19jdXN0b21fbmFtZSA9ICJZIiAgICAgICAgICAgICAjIG5lZWRzIHNh Z2UubW9kdWxlcworKyAgICAgICAgc2FnZTogSCA9IEhvbShYLCBZKTsgSCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG5lZWRzIHNhZ2Uu bW9kdWxlcworICAgICAgICAgU2V0IG9mIE1vcnBoaXNtcyBmcm9tIFggdG8gWQorICAgICAgICAg IGluIENhdGVnb3J5IG9mIGZpbml0ZSBkaW1lbnNpb25hbCB2ZWN0b3Igc3BhY2VzIHdpdGggYmFz aXMgb3ZlciBSYXRpb25hbCBGaWVsZAorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21pc2MvY2Fj aGVmdW5jLnB5eCBiL3NyYy9zYWdlL21pc2MvY2FjaGVmdW5jLnB5eAoraW5kZXggZGFjNGM2ODRm NDcuLjliMjkxNmU1NDdkIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWlzYy9jYWNoZWZ1bmMucHl4 CisrKysgYi9zcmMvc2FnZS9taXNjL2NhY2hlZnVuYy5weXgKK0BAIC0yOTcsNiArMjk3LDcgQEAg bWV0aG9kcyBvZiBleHRlbnNpb24gY2xhc3NlcywgYXMgbG9uZyBhcyB0aGV5IGVpdGhlciBzdXBw b3J0IGF0dHJpYnV0ZSBhc3NpZ25tZW4KKyBvciBoYXZlIGEgcHVibGljIGF0dHJpYnV0ZSBvZiB0 eXBlIGBgPGRpY3Q+YGAgY2FsbGVkIGBgX19jYWNoZWRfbWV0aG9kc2BgLiBUaGUKKyBsYXR0ZXIg aXMgZWFzeTo6CisgCisrICAgIHNhZ2U6ICMgbmVlZHMgc2FnZS5taXNjLmN5dGhvbgorICAgICBz YWdlOiBjeXRob25fY29kZSA9IFsKKyAgICAgLi4uLjogImZyb20gc2FnZS5taXNjLmNhY2hlZnVu YyBpbXBvcnQgY2FjaGVkX21ldGhvZCIsCisgICAgIC4uLi46ICJjZGVmIGNsYXNzIE15Q2xhc3M6 IiwKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy8zNjEwOS1wcmVwYXJlX2Zv cl9jeXRob25fMy4wLnBhdGNoIGIvc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzLzM2MTA5LXByZXBh cmVfZm9yX2N5dGhvbl8zLjAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwMC4uOTMzOTBmN2VlZjk5MgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvc2FnZW1h dGgvcGF0Y2hlcy8zNjEwOS1wcmVwYXJlX2Zvcl9jeXRob25fMy4wLnBhdGNoCkBAIC0wLDAgKzEs OTk5NSBAQAorZGlmZiAtLWdpdCBhL3NyYy9kb2MvZW4vdGhlbWF0aWNfdHV0b3JpYWxzL2NvZXJj aW9uX2FuZF9jYXRlZ29yaWVzLnJzdCBiL3NyYy9kb2MvZW4vdGhlbWF0aWNfdHV0b3JpYWxzL2Nv ZXJjaW9uX2FuZF9jYXRlZ29yaWVzLnJzdAoraW5kZXggNGVmZTY4YTI2MTcuLmRlMjM0OWE5YTNm IDEwMDY0NAorLS0tIGEvc3JjL2RvYy9lbi90aGVtYXRpY190dXRvcmlhbHMvY29lcmNpb25fYW5k X2NhdGVnb3JpZXMucnN0CisrKysgYi9zcmMvZG9jL2VuL3RoZW1hdGljX3R1dG9yaWFscy9jb2Vy Y2lvbl9hbmRfY2F0ZWdvcmllcy5yc3QKK0BAIC0xMDYsNyArMTA2LDYgQEAgVGhpcyBiYXNlIGNs YXNzIHByb3ZpZGVzIGEgbG90IG1vcmUgbWV0aG9kcyB0aGFuIGEgZ2VuZXJhbCBwYXJlbnQ6Ogor IAorICAgICBzYWdlOiBbcCBmb3IgcCBpbiBkaXIoRmllbGQpIGlmIHAgbm90IGluIGRpcihQYXJl bnQpXQorICAgICBbJ19fZnJhY3Rpb25fZmllbGQnLAorLSAgICAgJ19faWRlYWxfbW9ub2lkJywK KyAgICAgICdfX2l0ZXJfXycsCisgICAgICAnX19sZW5fXycsCisgICAgICAnX19yeG9yX18nLAor QEAgLTExOSw2ICsxMTgsNyBAQCBUaGlzIGJhc2UgY2xhc3MgcHJvdmlkZXMgYSBsb3QgbW9yZSBt ZXRob2RzIHRoYW4gYSBnZW5lcmFsIHBhcmVudDo6CisgICAgICAnX2RlZmF1bHRfY2F0ZWdvcnkn LAorICAgICAgJ19nZW5zJywKKyAgICAgICdfaWRlYWxfY2xhc3NfJywKKysgICAgICdfaWRlYWxf bW9ub2lkJywKKyAgICAgICdfbGF0ZXhfbmFtZXMnLAorICAgICAgJ19saXN0JywKKyAgICAgICdf b25lX2VsZW1lbnQnLAorZGlmZiAtLWdpdCBhL3NyYy9kb2MvZW4vdGhlbWF0aWNfdHV0b3JpYWxz L3R1dG9yaWFsLW9iamVjdHMtYW5kLWNsYXNzZXMucnN0IGIvc3JjL2RvYy9lbi90aGVtYXRpY190 dXRvcmlhbHMvdHV0b3JpYWwtb2JqZWN0cy1hbmQtY2xhc3Nlcy5yc3QKK2luZGV4IDUxYWVjOTg5 ODEwLi41NTNhOTQ2YzRkOCAxMDA2NDQKKy0tLSBhL3NyYy9kb2MvZW4vdGhlbWF0aWNfdHV0b3Jp YWxzL3R1dG9yaWFsLW9iamVjdHMtYW5kLWNsYXNzZXMucnN0CisrKysgYi9zcmMvZG9jL2VuL3Ro ZW1hdGljX3R1dG9yaWFscy90dXRvcmlhbC1vYmplY3RzLWFuZC1jbGFzc2VzLnJzdAorQEAgLTI5 OCw3ICsyOTgsNyBAQCBodHRwOi8vZG9jcy5weXRob24ub3JnL2xpYnJhcnkvIGZvciBhIGNvbXBs ZXRlIGxpc3QuIDo6CisgICAgICAgICBzYWdlOiBlbAorICAgICAgICAgYmxhCisgICAgICAgICBz YWdlOiBlbC5fX2RpY3RfXworLSAgICAgICAgeydfX2N1c3RvbV9uYW1lJzogJ2JsYScsICd2YWx1 ZSc6IDQyfQorKyAgICAgICAgeydfU2FnZU9iamVjdF9fY3VzdG9tX25hbWUnOiAnYmxhJywgJ3Zh bHVlJzogNDJ9CisgCisgICAgIExvdHMgb2YgU2FnZSBvYmplY3RzIGFyZSBub3QgUHl0aG9uIG9i amVjdHMgYnV0IGNvbXBpbGVkIEN5dGhvbgorICAgICBvYmplY3RzLiBQeXRob24gc2VlcyB0aGVt IGFzIGJ1aWx0aW4gb2JqZWN0cyBhbmQgeW91IGRvIG5vdCBoYXZlCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvYWxnZWJyYXMvbGV0dGVycGxhY2UvZnJlZV9hbGdlYnJhX2xldHRlcnBsYWNlLnB4ZCBi L3NyYy9zYWdlL2FsZ2VicmFzL2xldHRlcnBsYWNlL2ZyZWVfYWxnZWJyYV9sZXR0ZXJwbGFjZS5w eGQKK2luZGV4IGQxZDE2MmMzYjQwLi40N2E3Mjc1YWJhMCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L2FsZ2VicmFzL2xldHRlcnBsYWNlL2ZyZWVfYWxnZWJyYV9sZXR0ZXJwbGFjZS5weGQKKysrKyBi L3NyYy9zYWdlL2FsZ2VicmFzL2xldHRlcnBsYWNlL2ZyZWVfYWxnZWJyYV9sZXR0ZXJwbGFjZS5w eGQKK0BAIC0yMCwxNiArMjAsMTUgQEAgY2RlZiBjbGFzcyBGcmVlQWxnZWJyYV9sZXR0ZXJwbGFj ZV9saWJzaW5ndWxhcigpOgorICAgICBjZGVmIHJpbmcqIF9scF9yaW5nCisgICAgIGNkZWYgTVBv bHlub21pYWxSaW5nX2xpYnNpbmd1bGFyIF9jb21tdXRhdGl2ZV9yaW5nCisgICAgIGNkZWYgTVBv bHlub21pYWxSaW5nX2xpYnNpbmd1bGFyIF9scF9yaW5nX2ludGVybmFsCistICAgIGNkZWYgb2Jq ZWN0IF9fbmdlbnMKKysgICAgY2RlZiBvYmplY3QgX25nZW5zCisgCisgY2RlZiBjbGFzcyBGcmVl QWxnZWJyYV9sZXR0ZXJwbGFjZShBbGdlYnJhKToKKyAgICAgY2RlZiBNUG9seW5vbWlhbFJpbmdf bGlic2luZ3VsYXIgX2NvbW11dGF0aXZlX3JpbmcKKyAgICAgY2RlZiBNUG9seW5vbWlhbFJpbmdf bGlic2luZ3VsYXIgX2N1cnJlbnRfcmluZworICAgICBjZGVmIGludCBfZGVnYm91bmQKKy0gICAg Y2RlZiBpbnQgX19uZ2VucworKyAgICBjZGVmIGludCBfbmdlbnMKKyAgICAgY2RlZiBpbnQgX25i X3NsYWNrdmFycworICAgICBjZGVmIG9iamVjdCBfX21vbm9pZAorLSAgICBjZGVmIHB1YmxpYyBv YmplY3QgX19jdXN0b21fbmFtZQorICAgICBjZGVmIHN0ciBleHBvbmVudHNfdG9fc3RyaW5nKHNl bGYsIEUpCisgICAgIGNkZWYgc3RyIGV4cG9uZW50c190b19sYXRleChzZWxmLCBFKQorICAgICBj ZGVmIHR1cGxlIF9kZWdyZWVzCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvYWxnZWJyYXMvbGV0dGVy cGxhY2UvZnJlZV9hbGdlYnJhX2xldHRlcnBsYWNlLnB5eCBiL3NyYy9zYWdlL2FsZ2VicmFzL2xl dHRlcnBsYWNlL2ZyZWVfYWxnZWJyYV9sZXR0ZXJwbGFjZS5weXgKK2luZGV4IGU5YzcwYzlkZTI5 Li41M2YwZGZkZWE2ZCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2FsZ2VicmFzL2xldHRlcnBsYWNl L2ZyZWVfYWxnZWJyYV9sZXR0ZXJwbGFjZS5weXgKKysrKyBiL3NyYy9zYWdlL2FsZ2VicmFzL2xl dHRlcnBsYWNlL2ZyZWVfYWxnZWJyYV9sZXR0ZXJwbGFjZS5weXgKK0BAIC0yNTUsNyArMjU1LDcg QEAgY2RlZiBjbGFzcyBGcmVlQWxnZWJyYV9sZXR0ZXJwbGFjZShBbGdlYnJhKToKKyAgICAgICAg ICIiIgorICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoUiwgTVBvbHlub21pYWxSaW5nX2xpYnNp bmd1bGFyKToKKyAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoImEgbGV0dGVycGxhY2UgYWxn ZWJyYSBtdXN0IGJlIHByb3ZpZGVkIGJ5IGEgcG9seW5vbWlhbCByaW5nIG9mIHR5cGUgJXMiICUg TVBvbHlub21pYWxSaW5nX2xpYnNpbmd1bGFyKQorLSAgICAgICAgc2VsZi5fX25nZW5zID0gUi5u Z2VucygpCisrICAgICAgICBzZWxmLl9uZ2VucyA9IFIubmdlbnMoKQorICAgICAgICAgaWYgZGVn cmVlcyBpcyBOb25lOgorICAgICAgICAgICAgIHZhcm5hbWVzID0gUi52YXJpYWJsZV9uYW1lcygp CisgICAgICAgICAgICAgc2VsZi5fbmJfc2xhY2t2YXJzID0gMAorQEAgLTI2OSwxMiArMjY5LDEy IEBAIGNkZWYgY2xhc3MgRnJlZUFsZ2VicmFfbGV0dGVycGxhY2UoQWxnZWJyYSk6CisgICAgICAg ICBzZWxmLl9jdXJyZW50X3JpbmcgPSBtYWtlX2xldHRlcnBsYWNlX3JpbmcoUiwgMSkKKyAgICAg ICAgIHNlbGYuX2RlZ2JvdW5kID0gMQorICAgICAgICAgaWYgZGVncmVlcyBpcyBOb25lOgorLSAg ICAgICAgICAgIHNlbGYuX2RlZ3JlZXMgPSB0dXBsZShbaW50KDEpXSAqIHNlbGYuX19uZ2VucykK KysgICAgICAgICAgICBzZWxmLl9kZWdyZWVzID0gdHVwbGUoW2ludCgxKV0gKiBzZWxmLl9uZ2Vu cykKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgaWYgKG5vdCBpc2luc3RhbmNlKGRlZ3Jl ZXMsICh0dXBsZSwgbGlzdCkpKSBcCistICAgICAgICAgICAgICAgICAgICBvciBsZW4oZGVncmVl cykgIT0gc2VsZi5fX25nZW5zIC0gc2VsZi5fbmJfc2xhY2t2YXJzIFwKKysgICAgICAgICAgICAg ICAgICAgIG9yIGxlbihkZWdyZWVzKSAhPSBzZWxmLl9uZ2VucyAtIHNlbGYuX25iX3NsYWNrdmFy cyBcCisgICAgICAgICAgICAgICAgICAgICBvciBhbnkoaSA8PSAwIGZvciBpIGluIGRlZ3JlZXMp OgorLSAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoInRoZSBnZW5lcmF0b3IgZGVncmVl cyBtdXN0IGJlIGdpdmVuIGJ5IGEgbGlzdCBvciB0dXBsZSBvZiAlZCBwb3NpdGl2ZSBpbnRlZ2Vy cyIgJSAoc2VsZi5fX25nZW5zIC0gMSkpCisrICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJv cigidGhlIGdlbmVyYXRvciBkZWdyZWVzIG11c3QgYmUgZ2l2ZW4gYnkgYSBsaXN0IG9yIHR1cGxl IG9mICVkIHBvc2l0aXZlIGludGVnZXJzIiAlIChzZWxmLl9uZ2VucyAtIDEpKQorICAgICAgICAg ICAgIHNlbGYuX2RlZ3JlZXMgPSB0dXBsZShbaW50KGkpIGZvciBpIGluIGRlZ3JlZXNdKQorICAg ICAgICAgICAgIHNlbGYuc2V0X2RlZ2JvdW5kKG1heChzZWxmLl9kZWdyZWVzKSkKKyAgICAgICAg IHNlbGYuX3BvcHVsYXRlX2NvZXJjaW9uX2xpc3RzXyhjb2VyY2VfbGlzdD1bYmFzZV9yaW5nXSkK K0BAIC0zMDUsNyArMzA1LDcgQEAgY2RlZiBjbGFzcyBGcmVlQWxnZWJyYV9sZXR0ZXJwbGFjZShB bGdlYnJhKToKKyAgICAgICAgICAgICBzYWdlOiBGLm5nZW5zKCkKKyAgICAgICAgICAgICAzCisg ICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBzZWxmLl9fbmdlbnMgLSBzZWxmLl9uYl9zbGFj a3ZhcnMKKysgICAgICAgIHJldHVybiBzZWxmLl9uZ2VucyAtIHNlbGYuX25iX3NsYWNrdmFycwor IAorICAgICBkZWYgZ2VuKHNlbGYsIGkpOgorICAgICAgICAgIiIiCitAQCAtMzI3LDE3ICszMjcs MTcgQEAgY2RlZiBjbGFzcyBGcmVlQWxnZWJyYV9sZXR0ZXJwbGFjZShBbGdlYnJhKToKKyAgICAg ICAgICAgICBzYWdlOiBGLmdlbigyKQorICAgICAgICAgICAgIGMKKyAgICAgICAgICIiIgorLSAg ICAgICAgaWYgaSA+PSBzZWxmLl9fbmdlbnMgLSBzZWxmLl9uYl9zbGFja3ZhcnM6CistICAgICAg ICAgICAgcmFpc2UgVmFsdWVFcnJvcigidGhpcyBmcmVlIGFsZ2VicmEgb25seSBoYXMgJWQgZ2Vu ZXJhdG9ycyIgJSAoc2VsZi5fX25nZW5zIC0gc2VsZi5fbmJfc2xhY2t2YXJzKSkKKysgICAgICAg IGlmIGkgPj0gc2VsZi5fbmdlbnMgLSBzZWxmLl9uYl9zbGFja3ZhcnM6CisrICAgICAgICAgICAg cmFpc2UgVmFsdWVFcnJvcigidGhpcyBmcmVlIGFsZ2VicmEgb25seSBoYXMgJWQgZ2VuZXJhdG9y cyIgJSAoc2VsZi5fbmdlbnMgLSBzZWxmLl9uYl9zbGFja3ZhcnMpKQorICAgICAgICAgaWYgc2Vs Zi5fZ2VucyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fZ2Vuc1tpXQor ICAgICAgICAgZGVnID0gc2VsZi5fZGVncmVlc1tpXQorICAgICAgICAgIyBzZWxmLnNldF9kZWdi b3VuZChkZWcpCisgICAgICAgICBwID0gc2VsZi5fY3VycmVudF9yaW5nLmdlbihpKQorICAgICAg ICAgY2RlZiBpbnQgbgorLSAgICAgICAgY2RlZiBpbnQgaiA9IHNlbGYuX19uZ2VucyAtIDEKKysg ICAgICAgIGNkZWYgaW50IGogPSBzZWxmLl9uZ2VucyAtIDEKKyAgICAgICAgIGZvciBuIGluIHJh bmdlKDEsIGRlZyk6CistICAgICAgICAgICAgaiArPSBzZWxmLl9fbmdlbnMKKysgICAgICAgICAg ICBqICs9IHNlbGYuX25nZW5zCisgICAgICAgICAgICAgcCAqPSBzZWxmLl9jdXJyZW50X3Jpbmcu Z2VuKGopCisgICAgICAgICByZXR1cm4gRnJlZUFsZ2VicmFFbGVtZW50X2xldHRlcnBsYWNlKHNl bGYsIHApCisgCitAQCAtNDEzLDcgKzQxMyw3IEBAIGNkZWYgY2xhc3MgRnJlZUFsZ2VicmFfbGV0 dGVycGxhY2UoQWxnZWJyYSk6CisgICAgICAgICAgICAgc2FnZTogRnJlZUFsZ2VicmEoUVEsIGlt cGxlbWVudGF0aW9uPSdsZXR0ZXJwbGFjZScsIG5hbWVzPVsneCddKS5pc19jb21tdXRhdGl2ZSgp CisgICAgICAgICAgICAgVHJ1ZQorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5f X25nZW5zIC0gc2VsZi5fbmJfc2xhY2t2YXJzIDw9IDEKKysgICAgICAgIHJldHVybiBzZWxmLl9u Z2VucyAtIHNlbGYuX25iX3NsYWNrdmFycyA8PSAxCisgCisgICAgIGRlZiBpc19maWVsZChzZWxm LCBwcm9vZj1UcnVlKToKKyAgICAgICAgICIiIgorQEAgLTQzMCw3ICs0MzAsNyBAQCBjZGVmIGNs YXNzIEZyZWVBbGdlYnJhX2xldHRlcnBsYWNlKEFsZ2VicmEpOgorICAgICAgICAgICAgIHNhZ2U6 IEYuaXNfZmllbGQoKQorICAgICAgICAgICAgIEZhbHNlCisgICAgICAgICAiIiIKKy0gICAgICAg IHJldHVybiAobm90IChzZWxmLl9fbmdlbnMgLSBzZWxmLl9uYl9zbGFja3ZhcnMpKSBhbmQgc2Vs Zi5fYmFzZS5pc19maWVsZChwcm9vZj1wcm9vZikKKysgICAgICAgIHJldHVybiAobm90IChzZWxm Ll9uZ2VucyAtIHNlbGYuX25iX3NsYWNrdmFycykpIGFuZCBzZWxmLl9iYXNlLmlzX2ZpZWxkKHBy b29mPXByb29mKQorIAorICAgICBkZWYgX3JlcHJfKHNlbGYpOgorICAgICAgICAgIiIiCitAQCAt NDQ2LDcgKzQ0Niw3IEBAIGNkZWYgY2xhc3MgRnJlZUFsZ2VicmFfbGV0dGVycGxhY2UoQWxnZWJy YSk6CisgICAgICAgICAgICAgc2FnZTogRgorICAgICAgICAgICAgIEZyZWUgQXNzb2NpYXRpdmUg VW5pdGFsIEFsZ2VicmEgb24gMyBnZW5lcmF0b3JzICh4LCB5LCB6KSBvdmVyIFJhdGlvbmFsIEZp ZWxkCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiAiRnJlZSBBc3NvY2lhdGl2ZSBVbml0 YWwgQWxnZWJyYSBvbiAlZCBnZW5lcmF0b3JzICVzIG92ZXIgJXMiICUgKHNlbGYuX19uZ2VucyAt IHNlbGYuX25iX3NsYWNrdmFycywgc2VsZi5nZW5zKCksIHNlbGYuX2Jhc2UpCisrICAgICAgICBy ZXR1cm4gIkZyZWUgQXNzb2NpYXRpdmUgVW5pdGFsIEFsZ2VicmEgb24gJWQgZ2VuZXJhdG9ycyAl cyBvdmVyICVzIiAlIChzZWxmLl9uZ2VucyAtIHNlbGYuX25iX3NsYWNrdmFycywgc2VsZi5nZW5z KCksIHNlbGYuX2Jhc2UpCisgCisgICAgIGRlZiBfbGF0ZXhfKHNlbGYpOgorICAgICAgICAgciIi IgorQEAgLTU4Niw3ICs1ODYsNyBAQCBjZGVmIGNsYXNzIEZyZWVBbGdlYnJhX2xldHRlcnBsYWNl KEFsZ2VicmEpOgorICAgICAgICAgICAgICAgZ2VuZXJhdGVkIGZyZWUgYWJlbGlhbiBtb25vaWQu CisgICAgICAgICAgICAgICBJbiBwcmluY2lwbGUsIHRoaXMgaXMgY29ycmVjdCwgYnV0IGl0IGlz IG5vdCBpbXBsZW1lbnRlZCwgeWV0Lj4KKyAgICAgICAgICIiIgorLSAgICAgICAgY2RlZiBpbnQg bmdlbnMgPSBzZWxmLl9fbmdlbnMKKysgICAgICAgIGNkZWYgaW50IG5nZW5zID0gc2VsZi5fbmdl bnMKKyAgICAgICAgIGNkZWYgaW50IG5ibG9ja3MgPSBsZW4oRSkgLy8gbmdlbnMKKyAgICAgICAg IGNkZWYgaW50IGksIGosIGJhc2UsIGV4cCwgdmFyX2luZAorICAgICAgICAgY2RlZiBsaXN0IG91 dCA9IFtdCitAQCAtNjE4LDcgKzYxOCw3IEBAIGNkZWYgY2xhc3MgRnJlZUFsZ2VicmFfbGV0dGVy cGxhY2UoQWxnZWJyYSk6CisgICAgICAgICAgICAgc2FnZTogbGF0ZXgoLShhKmIqKHorMSktYyle MikgICAgICMgaW5kaXJlY3QgZG9jdGVzdAorICAgICAgICAgICAgIFxsZWZ0KDIgeiArIDFccmln aHQpIGEgYiBhIGIgKyBcbGVmdCh6ICsgMVxyaWdodCkgYSBiIGMgKyBcbGVmdCh6ICsgMVxyaWdo dCkgYyBhIGIgLSBjIGMKKyAgICAgICAgICIiIgorLSAgICAgICAgY2RlZiBpbnQgbmdlbnMgPSBz ZWxmLl9fbmdlbnMKKysgICAgICAgIGNkZWYgaW50IG5nZW5zID0gc2VsZi5fbmdlbnMKKyAgICAg ICAgIGNkZWYgaW50IG5ibG9ja3MgPSBsZW4oRSkgLy8gbmdlbnMKKyAgICAgICAgIGNkZWYgaW50 IGksIGosIGJhc2UsIGV4cCwgdmFyX2luZAorICAgICAgICAgY2RlZiBsaXN0IG91dCA9IFtdCitA QCAtNjc4LDcgKzY3OCw3IEBAIGNkZWYgY2xhc3MgRnJlZUFsZ2VicmFfbGV0dGVycGxhY2UoQWxn ZWJyYSk6CisgICAgICAgICBjZGVmIGxpc3Qgb3V0ID0gW10KKyAgICAgICAgIEMgPSBzZWxmLmN1 cnJlbnRfcmluZygpCisgICAgICAgICBjZGVmIEZyZWVBbGdlYnJhRWxlbWVudF9sZXR0ZXJwbGFj ZSB4CistICAgICAgICBuZ2VucyA9IHNlbGYuX19uZ2VucworKyAgICAgICAgbmdlbnMgPSBzZWxm Ll9uZ2VucworICAgICAgICAgY2RlZiBsaXN0IEcgPSBbQyh4Ll9wb2x5KSBmb3IgeCBpbiBnXQor ICAgICAgICAgZnJvbSBzYWdlLmdyb3Vwcy5wZXJtX2dwcy5wZXJtZ3JvdXBfbmFtZWQgaW1wb3J0 IEN5Y2xpY1Blcm11dGF0aW9uR3JvdXAKKyAgICAgICAgIENHID0gQ3ljbGljUGVybXV0YXRpb25H cm91cChDLm5nZW5zKCkpCitAQCAtODExLDcgKzgxMSw3IEBAIGNkZWYgY2xhc3MgRnJlZUFsZ2Vi cmFfbGV0dGVycGxhY2UoQWxnZWJyYSk6CisgICAgICAgICAgICAgbCA9IGxlbihlKQorICAgICAg ICAgICAgIGJyZWFrCisgICAgICAgICBjZGVmIGRpY3Qgb3V0ID0ge30KKy0gICAgICAgIHNlbGYu c2V0X2RlZ2JvdW5kKGwgLy8gc2VsZi5fX25nZW5zKQorKyAgICAgICAgc2VsZi5zZXRfZGVnYm91 bmQobCAvLyBzZWxmLl9uZ2VucykKKyAgICAgICAgIGNkZWYgUHlfc3NpemVfdCBuID0gc2VsZi5f Y3VycmVudF9yaW5nLm5nZW5zKCkKKyAgICAgICAgIGZvciBlLCBjIGluIEQuaXRlcml0ZW1zKCk6 CisgICAgICAgICAgICAgb3V0W3R1cGxlKGUpICsgKDAsKSAqIChuIC0gbCldID0gYworQEAgLTg5 Niw3ICs4OTYsNyBAQCBjZGVmIGNsYXNzIEZyZWVBbGdlYnJhX2xldHRlcnBsYWNlX2xpYnNpbmd1 bGFyKCk6CisgICAgICAgICBzZWxmLl9jb21tdXRhdGl2ZV9yaW5nID0gY29tbXV0YXRpdmVfcmlu ZworIAorICAgICBkZWYgX19pbml0X18oc2VsZiwgY29tbXV0YXRpdmVfcmluZywgZGVnYm91bmQp OgorLSAgICAgICAgc2VsZi5fX25nZW5zID0gY29tbXV0YXRpdmVfcmluZy5uZ2VucygpICogZGVn Ym91bmQKKysgICAgICAgIHNlbGYuX25nZW5zID0gY29tbXV0YXRpdmVfcmluZy5uZ2VucygpICog ZGVnYm91bmQKKyAKKyAgICAgZGVmIF9fZGVhbGxvY19fKHNlbGYpOgorICAgICAgICAgciIiIgor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2FsZ2VicmFzL3F1YXRhbGcvcXVhdGVybmlvbl9hbGdlYnJh X2VsZW1lbnQucHl4IGIvc3JjL3NhZ2UvYWxnZWJyYXMvcXVhdGFsZy9xdWF0ZXJuaW9uX2FsZ2Vi cmFfZWxlbWVudC5weXgKK2luZGV4IGY2ZTg3NDQwZmU5Li44Y2I3ZTg0OGZkMCAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL2FsZ2VicmFzL3F1YXRhbGcvcXVhdGVybmlvbl9hbGdlYnJhX2VsZW1lbnQu cHl4CisrKysgYi9zcmMvc2FnZS9hbGdlYnJhcy9xdWF0YWxnL3F1YXRlcm5pb25fYWxnZWJyYV9l bGVtZW50LnB5eAorQEAgLTE3MDAsMTUgKzE3MDAsMTUgQEAgY2RlZiBjbGFzcyBRdWF0ZXJuaW9u QWxnZWJyYUVsZW1lbnRfbnVtYmVyX2ZpZWxkKFF1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9hYnN0 cmEKKyAgICAgICAgICAgICB4LCB5LCB6LCB3ID0gdgorICAgICAgICAgY2RlZiBOdW1iZXJGaWVs ZEVsZW1lbnQgYSA9IDxOdW1iZXJGaWVsZEVsZW1lbnQ+KHBhcmVudC5fYmFzZShwYXJlbnQuX2Ep KQorICAgICAgICAgY2RlZiBOdW1iZXJGaWVsZEVsZW1lbnQgYiA9IDxOdW1iZXJGaWVsZEVsZW1l bnQ+KHBhcmVudC5fYmFzZShwYXJlbnQuX2IpKQorLSAgICAgICAgZm1wel9wb2x5X3NldF9aWlgo c2VsZi54LCAoPE51bWJlckZpZWxkRWxlbWVudD54KS5fX251bWVyYXRvcikKKy0gICAgICAgIGZt cHpfcG9seV9zZXRfWlpYKHNlbGYueSwgKDxOdW1iZXJGaWVsZEVsZW1lbnQ+eSkuX19udW1lcmF0 b3IpCistICAgICAgICBmbXB6X3BvbHlfc2V0X1paWChzZWxmLnosICg8TnVtYmVyRmllbGRFbGVt ZW50PnopLl9fbnVtZXJhdG9yKQorLSAgICAgICAgZm1wel9wb2x5X3NldF9aWlgoc2VsZi53LCAo PE51bWJlckZpZWxkRWxlbWVudD53KS5fX251bWVyYXRvcikKKysgICAgICAgIGZtcHpfcG9seV9z ZXRfWlpYKHNlbGYueCwgKDxOdW1iZXJGaWVsZEVsZW1lbnQ+eCkuX251bWVyYXRvcikKKysgICAg ICAgIGZtcHpfcG9seV9zZXRfWlpYKHNlbGYueSwgKDxOdW1iZXJGaWVsZEVsZW1lbnQ+eSkuX251 bWVyYXRvcikKKysgICAgICAgIGZtcHpfcG9seV9zZXRfWlpYKHNlbGYueiwgKDxOdW1iZXJGaWVs ZEVsZW1lbnQ+eikuX251bWVyYXRvcikKKysgICAgICAgIGZtcHpfcG9seV9zZXRfWlpYKHNlbGYu dywgKDxOdW1iZXJGaWVsZEVsZW1lbnQ+dykuX251bWVyYXRvcikKKyAKKy0gICAgICAgIFpaX3Rv X21weihUMSwgJig8TnVtYmVyRmllbGRFbGVtZW50PngpLl9fZGVub21pbmF0b3IpCistICAgICAg ICBaWl90b19tcHooVDIsICYoPE51bWJlckZpZWxkRWxlbWVudD55KS5fX2Rlbm9taW5hdG9yKQor LSAgICAgICAgWlpfdG9fbXB6KHQzLCAmKDxOdW1iZXJGaWVsZEVsZW1lbnQ+eikuX19kZW5vbWlu YXRvcikKKy0gICAgICAgIFpaX3RvX21weih0NCwgJig8TnVtYmVyRmllbGRFbGVtZW50PncpLl9f ZGVub21pbmF0b3IpCisrICAgICAgICBaWl90b19tcHooVDEsICYoPE51bWJlckZpZWxkRWxlbWVu dD54KS5fZGVub21pbmF0b3IpCisrICAgICAgICBaWl90b19tcHooVDIsICYoPE51bWJlckZpZWxk RWxlbWVudD55KS5fZGVub21pbmF0b3IpCisrICAgICAgICBaWl90b19tcHoodDMsICYoPE51bWJl ckZpZWxkRWxlbWVudD56KS5fZGVub21pbmF0b3IpCisrICAgICAgICBaWl90b19tcHoodDQsICYo PE51bWJlckZpZWxkRWxlbWVudD53KS5fZGVub21pbmF0b3IpCisgCisgICAgICAgICBtcHpfbGNt KHNlbGYuZCwgVDEsIFQyKQorICAgICAgICAgbXB6X2xjbShzZWxmLmQsIHNlbGYuZCwgdDMpCitA QCAtMTcyNCwxMCArMTcyNCwxMCBAQCBjZGVmIGNsYXNzIFF1YXRlcm5pb25BbGdlYnJhRWxlbWVu dF9udW1iZXJfZmllbGQoUXVhdGVybmlvbkFsZ2VicmFFbGVtZW50X2Fic3RyYQorICAgICAgICAg Zm1wel9wb2x5X3NjYWxhcl9tdWxfbXB6KHNlbGYueiwgc2VsZi56LCB0MykKKyAgICAgICAgIGZt cHpfcG9seV9zY2FsYXJfbXVsX21weihzZWxmLncsIHNlbGYudywgdDQpCisgCistICAgICAgICBm bXB6X3BvbHlfc2V0X1paWChzZWxmLmEsIGEuX19udW1lcmF0b3IpICAgICAjIHdlIHdpbGwgYXNz dW1lIHRoYXQgdGhlIGRlbm9taW5hdG9yIG9mIGEgYW5kIGIgYXJlIDEKKy0gICAgICAgIGZtcHpf cG9seV9zZXRfWlpYKHNlbGYuYiwgYi5fX251bWVyYXRvcikKKysgICAgICAgIGZtcHpfcG9seV9z ZXRfWlpYKHNlbGYuYSwgYS5fbnVtZXJhdG9yKSAgICAgIyB3ZSB3aWxsIGFzc3VtZSB0aGF0IHRo ZSBkZW5vbWluYXRvciBvZiBhIGFuZCBiIGFyZSAxCisrICAgICAgICBmbXB6X3BvbHlfc2V0X1pa WChzZWxmLmIsIGIuX251bWVyYXRvcikKKyAKKy0gICAgICAgIGZtcHpfcG9seV9zZXRfWlpYKHNl bGYubW9kdWx1cywgKDxOdW1iZXJGaWVsZEVsZW1lbnQ+eCkuX19mbGRfbnVtZXJhdG9yLngpICAj IGFuZCBzYW1lIGZvciB0aGUgbW9kdWx1cworKyAgICAgICAgZm1wel9wb2x5X3NldF9aWlgoc2Vs Zi5tb2R1bHVzLCAoPE51bWJlckZpZWxkRWxlbWVudD54KS5fZmxkX251bWVyYXRvci54KSAgIyBh bmQgc2FtZSBmb3IgdGhlIG1vZHVsdXMKKyAKKyAgICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGlu dCBpKToKKyAgICAgICAgICIiIgorQEAgLTE3NTYsMTcgKzE3NTYsMTcgQEAgY2RlZiBjbGFzcyBR dWF0ZXJuaW9uQWxnZWJyYUVsZW1lbnRfbnVtYmVyX2ZpZWxkKFF1YXRlcm5pb25BbGdlYnJhRWxl bWVudF9hYnN0cmEKKyAgICAgICAgIGNkZWYgTnVtYmVyRmllbGRFbGVtZW50IGl0ZW0gPSBlbC5f bmV3KCkKKyAKKyAgICAgICAgIGlmIGkgPT0gMDoKKy0gICAgICAgICAgICBmbXB6X3BvbHlfZ2V0 X1paWChpdGVtLl9fbnVtZXJhdG9yLCBzZWxmLngpCisrICAgICAgICAgICAgZm1wel9wb2x5X2dl dF9aWlgoaXRlbS5fbnVtZXJhdG9yLCBzZWxmLngpCisgICAgICAgICBlbGlmIGkgPT0gMToKKy0g ICAgICAgICAgICBmbXB6X3BvbHlfZ2V0X1paWChpdGVtLl9fbnVtZXJhdG9yLCBzZWxmLnkpCisr ICAgICAgICAgICAgZm1wel9wb2x5X2dldF9aWlgoaXRlbS5fbnVtZXJhdG9yLCBzZWxmLnkpCisg ICAgICAgICBlbGlmIGkgPT0gMjoKKy0gICAgICAgICAgICBmbXB6X3BvbHlfZ2V0X1paWChpdGVt Ll9fbnVtZXJhdG9yLCBzZWxmLnopCisrICAgICAgICAgICAgZm1wel9wb2x5X2dldF9aWlgoaXRl bS5fbnVtZXJhdG9yLCBzZWxmLnopCisgICAgICAgICBlbGlmIGkgPT0gMzoKKy0gICAgICAgICAg ICBmbXB6X3BvbHlfZ2V0X1paWChpdGVtLl9fbnVtZXJhdG9yLCBzZWxmLncpCisrICAgICAgICAg ICAgZm1wel9wb2x5X2dldF9aWlgoaXRlbS5fbnVtZXJhdG9yLCBzZWxmLncpCisgICAgICAgICBl bHNlOgorICAgICAgICAgICAgIHJhaXNlIEluZGV4RXJyb3IoInF1YXRlcm5pb24gZWxlbWVudCBp bmRleCBvdXQgb2YgcmFuZ2UiKQorIAorLSAgICAgICAgbXB6X3RvX1paKCZpdGVtLl9fZGVub21p bmF0b3IsIHNlbGYuZCkKKysgICAgICAgIG1wel90b19aWigmaXRlbS5fZGVub21pbmF0b3IsIHNl bGYuZCkKKyAKKyAgICAgICAgIHJldHVybiBpdGVtCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv Y2F0ZWdvcmllcy9ob3BmX2FsZ2VicmFzX3dpdGhfYmFzaXMucHkgYi9zcmMvc2FnZS9jYXRlZ29y aWVzL2hvcGZfYWxnZWJyYXNfd2l0aF9iYXNpcy5weQoraW5kZXggMWJlOTY0Y2I2YzkuLjYxNWZj NGVhZTA2IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY2F0ZWdvcmllcy9ob3BmX2FsZ2VicmFzX3dp dGhfYmFzaXMucHkKKysrKyBiL3NyYy9zYWdlL2NhdGVnb3JpZXMvaG9wZl9hbGdlYnJhc193aXRo X2Jhc2lzLnB5CitAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBIb3BmQWxnZWJyYXNXaXRoQmFzaXMo Q2F0ZWdvcnlXaXRoQXhpb21fb3Zlcl9iYXNlX3JpbmcpOgorICAgICAgICAgc2FnZTogQSA9IEMu ZXhhbXBsZSgpOyBBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAjIG5lZWRzIHNhZ2UuZ3JvdXBzCisgICAgICAgICBBbiBleGFtcGxlIG9mIEhv cGYgYWxnZWJyYSB3aXRoIGJhc2lzOiB0aGUgZ3JvdXAgYWxnZWJyYSBvZiB0aGUKKyAgICAgICAg ICBEaWhlZHJhbCBncm91cCBvZiBvcmRlciA2IGFzIGEgcGVybXV0YXRpb24gZ3JvdXAgb3ZlciBS YXRpb25hbCBGaWVsZAorLSAgICAgICAgc2FnZTogQS5fX2N1c3RvbV9uYW1lID0gIkEiICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG5lZWRzIHNh Z2UuZ3JvdXBzCisrICAgICAgICBzYWdlOiBBLnJlbmFtZSgiQSIpICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgbmVlZHMgc2FnZS5n cm91cHMKKyAgICAgICAgIHNhZ2U6IEEuY2F0ZWdvcnkoKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBuZWVkcyBzYWdlLmdyb3Vw cworICAgICAgICAgQ2F0ZWdvcnkgb2YgZmluaXRlIGRpbWVuc2lvbmFsIGhvcGYgYWxnZWJyYXMg d2l0aCBiYXNpcyBvdmVyIFJhdGlvbmFsIEZpZWxkCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv Y2F0ZWdvcmllcy9tb2R1bGVzX3dpdGhfYmFzaXMucHkgYi9zcmMvc2FnZS9jYXRlZ29yaWVzL21v ZHVsZXNfd2l0aF9iYXNpcy5weQoraW5kZXggNjVmZDQ3Y2I4OTAuLmZjMTg1N2YwYzhlIDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvY2F0ZWdvcmllcy9tb2R1bGVzX3dpdGhfYmFzaXMucHkKKysrKyBi L3NyYy9zYWdlL2NhdGVnb3JpZXMvbW9kdWxlc193aXRoX2Jhc2lzLnB5CitAQCAtNjYsOCArNjYs OCBAQCBjbGFzcyBNb2R1bGVzV2l0aEJhc2lzKENhdGVnb3J5V2l0aEF4aW9tX292ZXJfYmFzZV9y aW5nKToKKyAKKyAgICAgTGV0IGBYYCBhbmQgYFlgIGJlIHR3byBtb2R1bGVzIHdpdGggYmFzaXMu IFdlIGNhbiBidWlsZCBgSG9tKFgsWSlgOjoKKyAKKy0gICAgICAgIHNhZ2U6IFggPSBDb21iaW5h dG9yaWFsRnJlZU1vZHVsZShRUSwgWzEsMl0pOyBYLl9fY3VzdG9tX25hbWUgPSAiWCIgICAgICAg ICAgICAgIyBuZWVkcyBzYWdlLm1vZHVsZXMKKy0gICAgICAgIHNhZ2U6IFkgPSBDb21iaW5hdG9y aWFsRnJlZU1vZHVsZShRUSwgWzMsNF0pOyBZLl9fY3VzdG9tX25hbWUgPSAiWSIgICAgICAgICAg ICAgIyBuZWVkcyBzYWdlLm1vZHVsZXMKKysgICAgICAgIHNhZ2U6IFggPSBDb21iaW5hdG9yaWFs RnJlZU1vZHVsZShRUSwgWzEsMl0pOyBYLnJlbmFtZSgiWCIpICAgICAgICAgICAgICAgICAgICAg IyBuZWVkcyBzYWdlLm1vZHVsZXMKKysgICAgICAgIHNhZ2U6IFkgPSBDb21iaW5hdG9yaWFsRnJl ZU1vZHVsZShRUSwgWzMsNF0pOyBZLnJlbmFtZSgiWSIpICAgICAgICAgICAgICAgICAgICAgIyBu ZWVkcyBzYWdlLm1vZHVsZXMKKyAgICAgICAgIHNhZ2U6IEggPSBIb20oWCwgWSk7IEggICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBuZWVk cyBzYWdlLm1vZHVsZXMKKyAgICAgICAgIFNldCBvZiBNb3JwaGlzbXMgZnJvbSBYIHRvIFkKKyAg ICAgICAgICBpbiBDYXRlZ29yeSBvZiBmaW5pdGUgZGltZW5zaW9uYWwgdmVjdG9yIHNwYWNlcyB3 aXRoIGJhc2lzIG92ZXIgUmF0aW9uYWwgRmllbGQKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9jb21i aW5hdC9jbHVzdGVyX2NvbXBsZXgucHkgYi9zcmMvc2FnZS9jb21iaW5hdC9jbHVzdGVyX2NvbXBs ZXgucHkKK2luZGV4IGVkYzRmMjM1YWViLi5lMjYzZDk4Mzg4NyAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL2NvbWJpbmF0L2NsdXN0ZXJfY29tcGxleC5weQorKysrIGIvc3JjL3NhZ2UvY29tYmluYXQv Y2x1c3Rlcl9jb21wbGV4LnB5CitAQCAtMjIyLDEwICsyMjIsNiBAQCBkZWYgX19pbml0X18oc2Vs ZiwgVywgaywgY294ZXRlcl9lbGVtZW50LCBhbGdvcml0aG0pOgorICAgICAgICAgc2VsZi5fVyA9 IFcKKyAgICAgICAgIHNlbGYuX3cwID0gdworICAgICAgICAgc2VsZi5fayA9IGsKKy0gICAgICAg IGlmIGsgPT0gMToKKy0gICAgICAgICAgICBzZWxmLl9fY3VzdG9tX25hbWUgPSAnQ2x1c3RlciBj b21wbGV4JworLSAgICAgICAgZWxzZToKKy0gICAgICAgICAgICBzZWxmLl9fY3VzdG9tX25hbWUg PSAnTXVsdGktY2x1c3RlciBjb21wbGV4JworIAorICAgICAgICAgc2VsZi5zZXRfaW1tdXRhYmxl KCkKKyAKK0BAIC0yNzEsNyArMjY3LDEwIEBAIGRlZiBfcmVwcl8oc2VsZik6CisgICAgICAgICAg ICAgc2FnZTogQ2x1c3RlckNvbXBsZXgoWydBJywgMl0pLl9yZXByXygpCisgICAgICAgICAgICAg IkNsdXN0ZXIgY29tcGxleCBvZiB0eXBlIFsnQScsIDJdIHdpdGggNSB2ZXJ0aWNlcyBhbmQgNSBm YWNldHMiCisgICAgICAgICAiIiIKKy0gICAgICAgIG5hbWUgPSBzZWxmLl9fY3VzdG9tX25hbWUK KysgICAgICAgIGlmIHNlbGYuX2sgPT0gMToKKysgICAgICAgICAgICBuYW1lID0gJ0NsdXN0ZXIg Y29tcGxleCcKKysgICAgICAgIGVsc2U6CisrICAgICAgICAgICAgbmFtZSA9ICdNdWx0aS1jbHVz dGVyIGNvbXBsZXgnCisgICAgICAgICBuYW1lICs9ICgnIG9mIHR5cGUgJXMgd2l0aCAlcyB2ZXJ0 aWNlcyBhbmQgJXMgZmFjZXRzJworICAgICAgICAgICAgICAgICAgJSAoc2VsZi5jYXJ0YW5fdHlw ZSgpLCBsZW4oc2VsZi52ZXJ0aWNlcygpKSwKKyAgICAgICAgICAgICAgICAgICAgIGxlbihzZWxm Ll9mYWNldHMpKSkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9jb21iaW5hdC9pbnRlZ2VyX2xpc3Rz L2Jhc2UucHhkIGIvc3JjL3NhZ2UvY29tYmluYXQvaW50ZWdlcl9saXN0cy9iYXNlLnB4ZAoraW5k ZXggZWNiNTU1MGE5Y2YuLjNkMzczYTY0ZmUwIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY29tYmlu YXQvaW50ZWdlcl9saXN0cy9iYXNlLnB4ZAorKysrIGIvc3JjL3NhZ2UvY29tYmluYXQvaW50ZWdl cl9saXN0cy9iYXNlLnB4ZAorQEAgLTEyLDQgKzEyLDQgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTGlz dHNCYWNrZW5kKCk6CisgICAgIGNkZWYgcmVhZG9ubHkgbWluX3BhcnQsIG1heF9wYXJ0CisgICAg IGNkZWYgcmVhZG9ubHkgbWluX3Nsb3BlLCBtYXhfc2xvcGUKKyAgICAgY2RlZiByZWFkb25seSBF bnZlbG9wZSBmbG9vciwgY2VpbGluZworLSAgICBjZGVmIHB1YmxpYyBkaWN0IF9fY2FjaGVkX21l dGhvZHMgICMgU3VwcG9ydCBjYWNoZWRfbWV0aG9kCisrICAgIGNkZWYgcHVibGljIGRpY3QgX2Nh Y2hlZF9tZXRob2RzICAjIFN1cHBvcnQgY2FjaGVkX21ldGhvZAorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL2NvbWJpbmF0L3N1YndvcmRfY29tcGxleC5weSBiL3NyYy9zYWdlL2NvbWJpbmF0L3N1Yndv cmRfY29tcGxleC5weQoraW5kZXggYjc0ODliZGY3NTQuLmRlN2VlZmU5NDZlIDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvY29tYmluYXQvc3Vid29yZF9jb21wbGV4LnB5CisrKysgYi9zcmMvc2FnZS9j b21iaW5hdC9zdWJ3b3JkX2NvbXBsZXgucHkKK0BAIC0xMTMxLDcgKzExMzEsNiBAQCBkZWYgX19p bml0X18oc2VsZiwgUSwgdywgYWxnb3JpdGhtPSJpbmR1Y3RpdmUiKToKKyAgICAgICAgIFNpbXBs aWNpYWxDb21wbGV4Ll9faW5pdF9fKHNlbGYsIG1heGltYWxfZmFjZXM9RnMsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhpbWFsaXR5X2NoZWNrPUZhbHNlLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnk9Y2F0KQorLSAgICAgICAgc2Vs Zi5fX2N1c3RvbV9uYW1lID0gJ1N1YndvcmQgY29tcGxleCcKKyAgICAgICAgIHNlbGYuX1cgPSBX CisgICAgICAgICB0cnk6CisgICAgICAgICAgICAgVCA9IFcuY294ZXRlcl9tYXRyaXgoKS5jb3hl dGVyX3R5cGUoKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2NweXRob24vY3l0aG9uX21ldGFjbGFz cy5oIGIvc3JjL3NhZ2UvY3B5dGhvbi9jeXRob25fbWV0YWNsYXNzLmgKK2luZGV4IGRhMDZhYjc1 YTZiLi5lY2Y3Zjk3M2MzZSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2NweXRob24vY3l0aG9uX21l dGFjbGFzcy5oCisrKysgYi9zcmMvc2FnZS9jcHl0aG9uL2N5dGhvbl9tZXRhY2xhc3MuaAorQEAg LTUyLDYgKzUyLDE2IEBAIHN0YXRpYyBDWVRIT05fSU5MSU5FIGludCBTYWdlX1B5VHlwZV9SZWFk eShQeVR5cGVPYmplY3QqIHQpCisgICAgIGlmIChyIDwgMCkKKyAgICAgICAgIHJldHVybiByOwor IAorKyNpZiBQWV9WRVJTSU9OX0hFWCA+PSAweDAzMDUwMDAwCisrICAgIC8vIEN5dGhvbiAzIHNl dHMgUHlfVFBGTEFHU19IRUFQVFlQRSBiZWZvcmUgY2FsbGluZyBQeVR5cGVfUmVhZHksCisrICAg IC8vIGFuZCByZXNldHMganVzdCBhZnRlciB0aGUgY2FsbC4gV2UgbmVlZCB0byByZXNldCBpdCBl YXJsaWVyLAorKyAgICAvLyBzaW5jZSBvdGhlcndpc2UgdGhlIGNhbGwgdG8gbWV0YWNsYXNzLl9f aW5pdF9fIGJlbG93IG1heSBoYXZlCisrICAgIC8vIGlsbGVnYWwgbWVtb3J5IGFjY2Vzc2VzLgor KyAgICAvLyBTZWUgYWxzbzoKKysgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2N5dGhvbi9jeXRo b24vaXNzdWVzLzM2MDMKKysgICAgdC0+dHBfZmxhZ3MgJj0gflB5X1RQRkxBR1NfSEVBUFRZUEU7 CisrI2VuZGlmCisrCisgICAgIC8qIFNldCBvciBnZXQgbWV0YWNsYXNzICh0aGUgdHlwZSBvZiB0 KSAqLworICAgICBQeVR5cGVPYmplY3QqIG1ldGFjbGFzczsKKyAKK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9jcHl0aG9uL2N5dGhvbl9tZXRhY2xhc3MucHl4IGIvc3JjL3NhZ2UvY3B5dGhvbi9jeXRo b25fbWV0YWNsYXNzLnB5eAoraW5kZXggYThmZTg1MzY2MWQuLmE4ZmE5MmZjMWE4IDEwMDY0NAor LS0tIGEvc3JjL3NhZ2UvY3B5dGhvbi9jeXRob25fbWV0YWNsYXNzLnB5eAorKysrIGIvc3JjL3Nh Z2UvY3B5dGhvbi9jeXRob25fbWV0YWNsYXNzLnB5eAorQEAgLTE5LDEzICsxOSwxNiBAQCBmaWxl IGlmIHlvdSBhcmUgdXNpbmcgb25lKS4KKyAKKyBJbiB0aGUgZXh0ZW5zaW9uIHR5cGUgKGEuay5h LiBgYGNkZWYgY2xhc3NgYCkgZm9yIHdoaWNoIHlvdSB3YW50IHRvCisgZGVmaW5lIGEgbWV0YWNs YXNzLCBkZWZpbmUgYSBtZXRob2QgYGBfX2dldG1ldGFjbGFzc19fYGAgd2l0aCBhIHNpbmdsZQor LXVudXNlZCBhcmd1bWVudC4gVGhpcyBtZXRob2Qgc2hvdWxkIHJldHVybiBhIHR5cGUgdG8gYmUg dXNlZCBhcworK3VudXNlZCBhcmd1bWVudCwgYW5kIHR1cm4gb2ZmIHRoZSBDeXRob24gZGlyZWN0 aXZlCisrYGBhbHdheXNfYWxsb3dfa2V5d29yZHNgYC4gVGhpcyBtZXRob2Qgc2hvdWxkIHJldHVy biBhIHR5cGUgdG8gYmUgdXNlZCBhcworIG1ldGFjbGFzczoKKyAKKyAuLiBjb2RlLWJsb2NrOjog Y3l0aG9uCisgCisrICAgIGNpbXBvcnQgY3l0aG9uCisgICAgIGNpbXBvcnQgc2FnZS5jcHl0aG9u LmN5dGhvbl9tZXRhY2xhc3MKKyAgICAgY2RlZiBjbGFzcyBNeUN1c3RvbVR5cGUoKToKKysgICAg ICAgIEBjeXRob24uYWx3YXlzX2FsbG93X2tleXdvcmRzKEZhbHNlKQorICAgICAgICAgZGVmIF9f Z2V0bWV0YWNsYXNzX18oXyk6CisgICAgICAgICAgICAgZnJvbSBmb28gaW1wb3J0IE15TWV0YWNs YXNzCisgICAgICAgICAgICAgcmV0dXJuIE15TWV0YWNsYXNzCitAQCAtNjMsOCArNjYsMTAgQEAg RVhBTVBMRVM6OgorIAorICAgICBzYWdlOiBjeXRob24oICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG5lZWRzIHNh Z2UubWlzYy5jeXRob24KKyAgICAgLi4uLjogJycnCisrICAgIC4uLi46IGNpbXBvcnQgY3l0aG9u CisgICAgIC4uLi46IGNpbXBvcnQgc2FnZS5jcHl0aG9uLmN5dGhvbl9tZXRhY2xhc3MKKyAgICAg Li4uLjogY2RlZiBjbGFzcyBNeUN1c3RvbVR5cGUoKToKKysgICAgLi4uLjogICAgIEBjeXRob24u YWx3YXlzX2FsbG93X2tleXdvcmRzKEZhbHNlKQorICAgICAuLi4uOiAgICAgZGVmIF9fZ2V0bWV0 YWNsYXNzX18oXyk6CisgICAgIC4uLi46ICAgICAgICAgY2xhc3MgTXlNZXRhY2xhc3ModHlwZSk6 CisgICAgIC4uLi46ICAgICAgICAgICAgIGRlZiBfX2luaXRfXygqYXJncyk6CitAQCAtMTAxLDgg KzEwNiwxMCBAQCByZXR1cm5zIGEgbm9uLXR5cGU6OgorIAorICAgICBzYWdlOiBjeXRob24oICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAjIG5lZWRzIHNhZ2UubWlzYy5jeXRob24KKyAgICAgLi4uLjogJycnCisrICAg IC4uLi46IGNpbXBvcnQgY3l0aG9uCisgICAgIC4uLi46IGNpbXBvcnQgc2FnZS5jcHl0aG9uLmN5 dGhvbl9tZXRhY2xhc3MKKyAgICAgLi4uLjogY2RlZiBjbGFzcyBNeUN1c3RvbVR5cGUoKToKKysg ICAgLi4uLjogICAgIEBjeXRob24uYWx3YXlzX2FsbG93X2tleXdvcmRzKEZhbHNlKQorICAgICAu Li4uOiAgICAgZGVmIF9fZ2V0bWV0YWNsYXNzX18oXyk6CisgICAgIC4uLi46ICAgICAgICAgcmV0 dXJuIDIKKyAgICAgLi4uLjogJycnKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2NweXRob24vZ2V0 YXR0ci5weXggYi9zcmMvc2FnZS9jcHl0aG9uL2dldGF0dHIucHl4CitpbmRleCAzZjYwM2I5ODA0 MC4uMTZmNjQ5YzA4M2QgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jcHl0aG9uL2dldGF0dHIucHl4 CisrKysgYi9zcmMvc2FnZS9jcHl0aG9uL2dldGF0dHIucHl4CitAQCAtMjcxLDcgKzI3MSw3IEBA IGNwZGVmIGdldGF0dHJfZnJvbV9vdGhlcl9jbGFzcyhzZWxmLCBjbHMsIG5hbWUpOgorIAorICAg ICBDYXZlYXQ6IGxhenkgYXR0cmlidXRlcyB3b3JrIHdpdGggZXh0ZW5zaW9uIHR5cGVzIG9ubHkK KyAgICAgaWYgdGhleSBhbGxvdyBhdHRyaWJ1dGUgYXNzaWdubWVudCBvciBoYXZlIGEgcHVibGlj IGF0dHJpYnV0ZQorLSAgICBgYF9fY2FjaGVkX21ldGhvZHNgYCBvZiB0eXBlIGBgPGRpY3Q+YGAu IFRoaXMgY29uZGl0aW9uCisrICAgIGBgX2NhY2hlZF9tZXRob2RzYGAgb2YgdHlwZSBgYDxkaWN0 PmBgLiBUaGlzIGNvbmRpdGlvbgorICAgICBpcyBzYXRpc2ZpZWQsIGUuZy4sIGJ5IGFueSBjbGFz cyB0aGF0IGlzIGRlcml2ZWQgZnJvbQorICAgICA6Y2xhc3M6YFBhcmVudGA6OgorIAorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL2dlb21ldHJ5L3BvbHloZWRyb24vY29tYmluYXRvcmlhbF9wb2x5aGVk cm9uL2Jhc2UucHhkIGIvc3JjL3NhZ2UvZ2VvbWV0cnkvcG9seWhlZHJvbi9jb21iaW5hdG9yaWFs X3BvbHloZWRyb24vYmFzZS5weGQKK2luZGV4IGJkZDQ5MjI1ZmYyLi4wMzBjOWRlZmE0NSAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL2dlb21ldHJ5L3BvbHloZWRyb24vY29tYmluYXRvcmlhbF9wb2x5 aGVkcm9uL2Jhc2UucHhkCisrKysgYi9zcmMvc2FnZS9nZW9tZXRyeS9wb2x5aGVkcm9uL2NvbWJp bmF0b3JpYWxfcG9seWhlZHJvbi9iYXNlLnB4ZAorQEAgLTgsNyArOCw3IEBAIGZyb20gLnBvbHlo ZWRyb25fZmFjZV9sYXR0aWNlICAgICAgICAgICBjaW1wb3J0IFBvbHloZWRyb25GYWNlTGF0dGlj ZQorIAorIEBjeXRob24uZmluYWwKKyBjZGVmIGNsYXNzIENvbWJpbmF0b3JpYWxQb2x5aGVkcm9u KFNhZ2VPYmplY3QpOgorLSAgICBjZGVmIHB1YmxpYyBkaWN0IF9fY2FjaGVkX21ldGhvZHMKKysg ICAgY2RlZiBwdWJsaWMgZGljdCBfY2FjaGVkX21ldGhvZHMKKyAKKyAgICAgIyBEbyBub3QgYXNz dW1lIGFueSBvZiB0aG9zZSBhdHRyaWJ1dGVzIHRvIGJlIGluaXRpYWxpemVkLCB1c2UgdGhlIGNv cnJlc3BvbmRpbmcgbWV0aG9kcyBpbnN0ZWFkLgorICAgICBjZGVmIHR1cGxlIF9WcmVwICAgICAg ICAgICAgICAgICAgICAgICAjIHRoZSBuYW1lcyBvZiBWUmVwLCBpZiB0aGV5IGV4aXN0CitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvZ3JvdXBzL3Blcm1fZ3BzL3Blcm1ncm91cF9lbGVtZW50LnB4ZCBi L3NyYy9zYWdlL2dyb3Vwcy9wZXJtX2dwcy9wZXJtZ3JvdXBfZWxlbWVudC5weGQKK2luZGV4IGEy YWM4ZjIwZWFhLi4wYTU4NDc0NWY5NiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dyb3Vwcy9wZXJt X2dwcy9wZXJtZ3JvdXBfZWxlbWVudC5weGQKKysrKyBiL3NyYy9zYWdlL2dyb3Vwcy9wZXJtX2dw cy9wZXJtZ3JvdXBfZWxlbWVudC5weGQKK0BAIC0yMiw3ICsyMiw3IEBAIGNkZWYgY2xhc3MgUGVy bXV0YXRpb25Hcm91cEVsZW1lbnQoTXVsdGlwbGljYXRpdmVHcm91cEVsZW1lbnQpOgorICAgICBj cGRlZiBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudCBfZ2VuZXJhdGVfbmV3X0dBUChzZWxmLCBvbGQp CisgICAgIGNwZGVmIF9nYXBfbGlzdChzZWxmKQorICAgICBjcGRlZiBkb21haW4oc2VsZikKKy0g ICAgY2RlZiBwdWJsaWMgX19jdXN0b21fbmFtZQorKyAgICBjZGVmIHB1YmxpYyBfU2FnZU9iamVj dF9fY3VzdG9tX25hbWUKKyAgICAgY3BkZWYgbGlzdCBfYWN0X29uX2xpc3Rfb25fcG9zaXRpb24o c2VsZiwgbGlzdCB4KQorICAgICBjcGRlZiBDbG9uYWJsZUludEFycmF5IF9hY3Rfb25fYXJyYXlf b25fcG9zaXRpb24oc2VsZiwgQ2xvbmFibGVJbnRBcnJheSB4KQorICAgICBjcGRlZiBFVHVwbGUg X2FjdF9vbl9ldHVwbGVfb25fcG9zaXRpb24oc2VsZiwgRVR1cGxlIHgpCitkaWZmIC0tZ2l0IGEv c3JjL3NhZ2UvaW50ZXJmYWNlcy9pbnRlcmZhY2UucHkgYi9zcmMvc2FnZS9pbnRlcmZhY2VzL2lu dGVyZmFjZS5weQoraW5kZXggZjgyMzdkM2FkOTQuLjMxODAxMTNjOWM3IDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvaW50ZXJmYWNlcy9pbnRlcmZhY2UucHkKKysrKyBiL3NyYy9zYWdlL2ludGVyZmFj ZXMvaW50ZXJmYWNlLnB5CitAQCAtMTE2OSwxMSArMTE2OSw4IEBAIGRlZiBfX3JlcHJfXyhzZWxm KToKKyAgICAgICAgICAgICBzID0gY3IKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcyA9 IHNlbGYuX3JlcHJfKCkKKy0gICAgICAgIGlmIHNlbGYuX25hbWUgaW4gczoKKy0gICAgICAgICAg ICB0cnk6CistICAgICAgICAgICAgICAgIHMgPSBzLnJlcGxhY2Uoc2VsZi5fbmFtZSwgZ2V0YXR0 cihzZWxmLCAnX19jdXN0b21fbmFtZScpKQorLSAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVF cnJvcjoKKy0gICAgICAgICAgICAgICAgcGFzcworKyAgICAgICAgaWYgc2VsZi5fbmFtZSBpbiBz IGFuZCBzZWxmLmdldF9jdXN0b21fbmFtZSgpIGlzIG5vdCBOb25lOgorKyAgICAgICAgICAgIHMg PSBzLnJlcGxhY2Uoc2VsZi5fbmFtZSwgc2VsZi5nZXRfY3VzdG9tX25hbWUoKSkKKyAgICAgICAg IGlmIGNyOgorICAgICAgICAgICAgIHNlbGYuX2NhY2hlZF9yZXByID0gcworICAgICAgICAgcmV0 dXJuIHMKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9pbnRlcmZhY2VzL3Npbmd1bGFyLnB5IGIvc3Jj L3NhZ2UvaW50ZXJmYWNlcy9zaW5ndWxhci5weQoraW5kZXggNGI1Yzc2ZTJiZmEuLjcwNWZhNmY2 NmUxIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvaW50ZXJmYWNlcy9zaW5ndWxhci5weQorKysrIGIv c3JjL3NhZ2UvaW50ZXJmYWNlcy9zaW5ndWxhci5weQorQEAgLTE0MDAsOCArMTQwMCw4IEBAIGRl ZiBfcmVwcl8oc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIHMgPSBzdXBlcihTaW5ndWxh ckVsZW1lbnQsIHNlbGYpLl9yZXByXygpCisgICAgICAgICBpZiBzZWxmLl9uYW1lIGluIHM6Cist ICAgICAgICAgICAgaWYgKG5vdCBoYXNhdHRyKHNlbGYsICJfX2N1c3RvbV9uYW1lIikpIGFuZCBz ZWxmLnR5cGUoKSA9PSAnbWF0cml4JzoKKy0gICAgICAgICAgICAgICAgcyA9IHNlbGYucGFyZW50 KCkuZXZhbCgncG1hdCglcywyMCknJShzZWxmLm5hbWUoKSkpCisrICAgICAgICAgICAgaWYgc2Vs Zi5nZXRfY3VzdG9tX25hbWUoKSBpcyBOb25lIGFuZCBzZWxmLnR5cGUoKSA9PSAnbWF0cml4JzoK KysgICAgICAgICAgICAgICAgcyA9IHNlbGYucGFyZW50KCkuZXZhbCgncG1hdCglcywyMCknICUg KHNlbGYubmFtZSgpKSkKKyAgICAgICAgIHJldHVybiBzCisgCisgICAgIGRlZiBfX2NvcHlfXyhz ZWxmKToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL2FyYi9hcml0aC5weXggYi9zcmMvc2Fn ZS9saWJzL2FyYi9hcml0aC5weXgKK2luZGV4IGQ4ODVmOTdiMjM4Li4zYjMyZmU3ZThlZCAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvYXJiL2FyaXRoLnB5eAorKysrIGIvc3JjL3NhZ2UvbGli cy9hcmIvYXJpdGgucHl4CitAQCAtODEsNSArODEsNSBAQCBkZWYgaGlsYmVydF9jbGFzc19wb2x5 bm9taWFsKEQpOgorICAgICBjZGVmIGxvbmcgbiA9IEQKKyAgICAgY2RlZiBQb2x5bm9taWFsX2lu dGVnZXJfZGVuc2VfZmxpbnQgcG9seQorICAgICBwb2x5ID0gUG9seW5vbWlhbFJpbmcoWlosICJ4 IiwgaW1wbGVtZW50YXRpb249IkZMSU5UIikoKQorLSAgICBhY2JfbW9kdWxhcl9oaWxiZXJ0X2Ns YXNzX3BvbHkocG9seS5fX3BvbHksIG4pCisrICAgIGFjYl9tb2R1bGFyX2hpbGJlcnRfY2xhc3Nf cG9seShwb2x5Ll9wb2x5LCBuKQorICAgICByZXR1cm4gcG9seQorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL2xpYnMvY294ZXRlcjMvY294ZXRlci5weGQgYi9zcmMvc2FnZS9saWJzL2NveGV0ZXIzL2Nv eGV0ZXIucHhkCitpbmRleCA5ZDVjYjJhM2Y1ZC4uZGJkMmI4YTYxYzYgMTAwNjQ0CistLS0gYS9z cmMvc2FnZS9saWJzL2NveGV0ZXIzL2NveGV0ZXIucHhkCisrKysgYi9zcmMvc2FnZS9saWJzL2Nv eGV0ZXIzL2NveGV0ZXIucHhkCitAQCAtMjksNiArMjksMyBAQCBjZGVmIGNsYXNzIENveEdyb3Vw RWxlbWVudDoKKyAgICAgY2RlZiBDb3hHcm91cCBfcGFyZW50X2dyb3VwCisgICAgIGNkZWYgQ294 R3JvdXBFbGVtZW50IF9uZXcoc2VsZikKKyAgICAgY3BkZWYgQ294R3JvdXAgcGFyZW50X2dyb3Vw KHNlbGYpCistCistY2RlZiBjbGFzcyBDb3hHcmFwaDoKKy0gICAgY2RlZiBjX0NveEdyYXBoIHgK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL2dhcC9lbGVtZW50LnB5eCBiL3NyYy9zYWdlL2xp YnMvZ2FwL2VsZW1lbnQucHl4CitpbmRleCAxZGM1M2M4MWY2Ny4uNDc4Y2FmOWY5ZDAgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9saWJzL2dhcC9lbGVtZW50LnB5eAorKysrIGIvc3JjL3NhZ2UvbGli cy9nYXAvZWxlbWVudC5weXgKK0BAIC03MjAsNyArNzIwLDcgQEAgY2RlZiBjbGFzcyBHYXBFbGVt ZW50KFJpbmdFbGVtZW50KToKKyAgICAgICAgICAgICAuLi4KKyAgICAgICAgICAgICBBdHRyaWJ1 dGVFcnJvcjogJ3NvbWVfbmFtZScgZG9lcyBub3QgZGVmaW5lIGEgR0FQIGZ1bmN0aW9uCisgICAg ICAgICAiIiIKKy0gICAgICAgIGlmIG5hbWUgaW4gKCdfX2RpY3RfXycsICdfZ2V0QXR0cmlidXRl TmFtZXMnLCAnX19jdXN0b21fbmFtZScsICdrZXlzJyk6CisrICAgICAgICBpZiBuYW1lIGluICgn X19kaWN0X18nLCAnX2dldEF0dHJpYnV0ZU5hbWVzJywgJ19TYWdlT2JqZWN0X19jdXN0b21fbmFt ZScsICdrZXlzJyk6CisgICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IoJ1B5dGhvbiBz cGVjaWFsIG5hbWUsIG5vdCBhIEdBUCBmdW5jdGlvbi4nKQorICAgICAgICAgdHJ5OgorICAgICAg ICAgICAgIHByb3h5ID0gbWFrZV9HYXBFbGVtZW50X01ldGhvZFByb3h5XAorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL2xpYnMvZ2FwL2dhcF9pbmNsdWRlcy5weGQgYi9zcmMvc2FnZS9saWJzL2dhcC9n YXBfaW5jbHVkZXMucHhkCitpbmRleCA4NDBiOGEwMDQyZS4uMWVkNDM3OGE2YzcgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9saWJzL2dhcC9nYXBfaW5jbHVkZXMucHhkCisrKysgYi9zcmMvc2FnZS9s aWJzL2dhcC9nYXBfaW5jbHVkZXMucHhkCitAQCAtMTQ0LDMgKzE0NCwxOCBAQCBjZGVmIGV4dGVy biBmcm9tICJnYXAvc3RyaW5nb2JqLmgiIG5vZ2lsOgorICAgICBiaW50IElTX1NUUklORyhPYmog b2JqKQorICAgICBiaW50IElzU3RyaW5nQ29udihPYmogb2JqKQorICAgICBPYmogTkVXX1NUUklO RyhJbnQpCisrCisrCisrY2RlZiBleHRlcm4gZnJvbSAiPHN0cnVjdG1lbWJlci5oPiIgbm9naWw6 CisrICAgICIiIgorKyAgICAvKiBIYWNrOiBDeXRob24gMy4wIGF1dG9tYXRpY2FsbHkgaW5jbHVk ZXMgPHN0cnVjdG1lbWJlci5oPiwgd2hpY2gKKysgICAgICogZGVmaW5lcyBzZXZlcmFsIG1hY3Jv cyB0aGF0IGNvbGxpZGVzIHdpdGggZW51bSBkZWZpbml0aW9ucyBpbgorKyAgICAgKiBnYXAvb2Jq ZWN0cy5oLiBXZSBuZWVkIHRvIGluY2x1ZGUgdGhlIGhlYWRlciBleHBsaWNpdGx5IGFuZAorKyAg ICAgKiB1bmRlZmluZSB0aGVzZSBtYWNyb3MuCisrICAgICAqLworKyAgICAjdW5kZWYgVF9JTlQK KysgICAgI3VuZGVmIFRfU1RSSU5HCisrICAgICN1bmRlZiBUX0NIQVIKKysgICAgI3VuZGVmIFRf Qk9PTAorKyAgICAiIiIKKysgICAgcGFzcworZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvbGNh bGMvbGNhbGNfTGZ1bmN0aW9uLnB4ZCBiL3NyYy9zYWdlL2xpYnMvbGNhbGMvbGNhbGNfTGZ1bmN0 aW9uLnB4ZAoraW5kZXggNWVkZjA4NDRmM2UuLjFkNTk1MTgwYTZmIDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvbGlicy9sY2FsYy9sY2FsY19MZnVuY3Rpb24ucHhkCisrKysgYi9zcmMvc2FnZS9saWJz L2xjYWxjL2xjYWxjX0xmdW5jdGlvbi5weGQKK0BAIC05OSwxOSArOTksMTkgQEAgY2RlZiBleHRl cm4gZnJvbSAibGNhbGNfc2FnZS5oIjoKKyAjIyMjIyMjIyMjIyMjIyMjCisgCisgIyBzdHJhbmdl IGJ1ZywgSSBjYW4ndCBjb21waWxlIHdpdGhvdXQgdGhpcyB0cmljayA/Pz8KKy0jIGl0J3Mgb25s eSB1c2VkIGluIF9fdHlwZWROCisrIyBpdCdzIG9ubHkgdXNlZCBpbiBfdHlwZWROCisgY3R5cGVk ZWYgZG91YmxlIERvdWJsZQorIAorIGNkZWYgY2xhc3MgTGZ1bmN0aW9uOgorICAgICBjZGVmIHZv aWQgKnRoaXNwdHIKKy0gICAgY2RlZiB2b2lkIF9faW5pdF9mdW4oc2VsZiwgY2hhciAqTkFNRSwg aW50IHdoYXRfdHlwZSwgZGlyaWNobGV0X2NvZWZmLCBsb25nIGxvbmcgUGVyaW9kLCBkb3VibGUg cSwgIGNfQ29tcGxleCB3LCBpbnQgQSwgZG91YmxlICpnLCBjX0NvbXBsZXggKmwsIGludCBuX3Bv bGVzLCBjX0NvbXBsZXggKnAsIGNfQ29tcGxleCAqcikKKy0gICAgY2RlZiBjX0NvbXBsZXggX192 YWx1ZShzZWxmLGNfQ29tcGxleCBzLGludCBkZXJpdmF0aXZlKQorLSAgICBjZGVmIGNfQ29tcGxl eCBfX2hhcmR5X3pfZnVuY3Rpb24oc2VsZixjX0NvbXBsZXggcykKKy0gICAgY2RlZiBpbnQgX19j b21wdXRlX3Jhbmsoc2VsZikKKysgICAgY2RlZiB2b2lkIF9pbml0X2Z1bihzZWxmLCBjaGFyICpO QU1FLCBpbnQgd2hhdF90eXBlLCBkaXJpY2hsZXRfY29lZmYsIGxvbmcgbG9uZyBQZXJpb2QsIGRv dWJsZSBxLCAgY19Db21wbGV4IHcsIGludCBBLCBkb3VibGUgKmcsIGNfQ29tcGxleCAqbCwgaW50 IG5fcG9sZXMsIGNfQ29tcGxleCAqcCwgY19Db21wbGV4ICpyKQorKyAgICBjZGVmIGNfQ29tcGxl eCBfdmFsdWUoc2VsZixjX0NvbXBsZXggcyxpbnQgZGVyaXZhdGl2ZSkKKysgICAgY2RlZiBjX0Nv bXBsZXggX2hhcmR5X3pfZnVuY3Rpb24oc2VsZixjX0NvbXBsZXggcykKKysgICAgY2RlZiBpbnQg X2NvbXB1dGVfcmFuayhzZWxmKQorICAgICAjc3RyYW5nZSBidWcsIHJlcGxhY2luZyBEb3VibGUg d2l0aCBkb3VibGUgZ2l2ZXMgbWUgYSBjb21waWxlIGVycm9yCistICAgIGNkZWYgRG91YmxlIF9f dHlwZWROKHNlbGYsIGRvdWJsZSBUKQorLSAgICBjZGVmIHZvaWQgX19maW5kX3plcm9zX3Yoc2Vs ZiwgZG91YmxlIFQxLCBkb3VibGUgVDIsIGRvdWJsZSBzdGVwc2l6ZSxkb3VibGV2ZWMgKnJlc3Vs dCkKKy0gICAgY2RlZiBpbnQgX19maW5kX3plcm9zKHNlbGYsIGxvbmcgY291bnQsIGxvbmcgc3Rh cnQsIGRvdWJsZSBtYXhfcmVmaW5lLCBpbnQgcmFuaywgY29uc3QgY2hhciogbWVzc2FnZV9zdGFt cCwgZG91YmxldmVjKiByZXN1bHQpCisrICAgIGNkZWYgRG91YmxlIF90eXBlZE4oc2VsZiwgZG91 YmxlIFQpCisrICAgIGNkZWYgdm9pZCBfZmluZF96ZXJvc192KHNlbGYsIGRvdWJsZSBUMSwgZG91 YmxlIFQyLCBkb3VibGUgc3RlcHNpemUsZG91YmxldmVjICpyZXN1bHQpCisrICAgIGNkZWYgaW50 IF9maW5kX3plcm9zKHNlbGYsIGxvbmcgY291bnQsIGxvbmcgc3RhcnQsIGRvdWJsZSBtYXhfcmVm aW5lLCBpbnQgcmFuaywgY29uc3QgY2hhciogbWVzc2FnZV9zdGFtcCwgZG91YmxldmVjKiByZXN1 bHQpCisgCisgICAgIGNkZWYgc3RyIF9yZXByCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGli cy9sY2FsYy9sY2FsY19MZnVuY3Rpb24ucHl4IGIvc3JjL3NhZ2UvbGlicy9sY2FsYy9sY2FsY19M ZnVuY3Rpb24ucHl4CitpbmRleCA2ZTkwMDVjNTAyYi4uN2I4NzFlZDA0OWYgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9saWJzL2xjYWxjL2xjYWxjX0xmdW5jdGlvbi5weXgKKysrKyBiL3NyYy9zYWdl L2xpYnMvbGNhbGMvbGNhbGNfTGZ1bmN0aW9uLnB5eAorQEAgLTk5LDcgKzk5LDcgQEAgY2RlZiBj bGFzcyBMZnVuY3Rpb246CisgICAgICAgICAgICAgdG1wYz1DQ0MocmVzaWR1ZVtpXSkKKyAgICAg ICAgICAgICByW2krMV0gPSBuZXdfQ29tcGxleChtcGZyX2dldF9kKHRtcGMuX19yZSwgTVBGUl9S TkROKSwgbXBmcl9nZXRfZCh0bXBjLl9faW0sIE1QRlJfUk5ETikpCisgCistICAgICAgICBzZWxm Ll9faW5pdF9mdW4oTkFNRSwgd2hhdF90eXBlLCBkaXJpY2hsZXRfY29lZmZpY2llbnQsIFBlcmlv ZCwgcSwgIHcsICBBLCBnLCBsLCBuX3BvbGVzLCBwLCByKQorKyAgICAgICAgc2VsZi5faW5pdF9m dW4oTkFNRSwgd2hhdF90eXBlLCBkaXJpY2hsZXRfY29lZmZpY2llbnQsIFBlcmlvZCwgcSwgIHcs ICBBLCBnLCBsLCBuX3BvbGVzLCBwLCByKQorIAorICAgICAgICAgaWYgbmFtZToKKyAgICAgICAg ICAgICBuYW1lICs9ICc6ICcKK0BAIC0xODAsNyArMTgwLDcgQEAgY2RlZiBjbGFzcyBMZnVuY3Rp b246CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgQ29tcGxleE51bWJlciBjb21wbGV4aWZp ZWRfcyA9IENDQyhzKQorICAgICAgICAgY2RlZiBjX0NvbXBsZXggeiA9IG5ld19Db21wbGV4KG1w ZnJfZ2V0X2QoY29tcGxleGlmaWVkX3MuX19yZSwgTVBGUl9STkROKSwgbXBmcl9nZXRfZChjb21w bGV4aWZpZWRfcy5fX2ltLCBNUEZSX1JORE4pKQorLSAgICAgICAgY2RlZiBjX0NvbXBsZXggcmVz dWx0ID0gc2VsZi5fX3ZhbHVlKHosIGRlcml2YXRpdmUpCisrICAgICAgICBjZGVmIGNfQ29tcGxl eCByZXN1bHQgPSBzZWxmLl92YWx1ZSh6LCBkZXJpdmF0aXZlKQorICAgICAgICAgcmV0dXJuIEND QyhyZXN1bHQucmVhbCgpLHJlc3VsdC5pbWFnKCkpCisgCisgICAgIGRlZiBoYXJkeV96X2Z1bmN0 aW9uKHNlbGYsIHMpOgorQEAgLTIyMyw3ICsyMjMsNyBAQCBjZGVmIGNsYXNzIExmdW5jdGlvbjoK KyAgICAgICAgICNUaGlzIHRha2VzIHMgLT4gLjUgKyBJKnMKKyAgICAgICAgIGNkZWYgQ29tcGxl eE51bWJlciBjb21wbGV4aWZpZWRfcyA9IENDQygwLjUpKyBDQ0MoMCwxKSpDQ0MocykKKyAgICAg ICAgIGNkZWYgY19Db21wbGV4IHogPSBuZXdfQ29tcGxleChtcGZyX2dldF9kKGNvbXBsZXhpZmll ZF9zLl9fcmUsIE1QRlJfUk5ETiksIG1wZnJfZ2V0X2QoY29tcGxleGlmaWVkX3MuX19pbSwgTVBG Ul9STkROKSkKKy0gICAgICAgIGNkZWYgY19Db21wbGV4IHJlc3VsdCA9IHNlbGYuX19oYXJkeV96 X2Z1bmN0aW9uKHopCisrICAgICAgICBjZGVmIGNfQ29tcGxleCByZXN1bHQgPSBzZWxmLl9oYXJk eV96X2Z1bmN0aW9uKHopCisgICAgICAgICByZXR1cm4gQ0NDKHJlc3VsdC5yZWFsKCkscmVzdWx0 LmltYWcoKSkKKyAKKyAKK0BAIC0yNDksOSArMjQ5LDkgQEAgY2RlZiBjbGFzcyBMZnVuY3Rpb246 CisgICAgICAgICAgICAgMworIAorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5f X2NvbXB1dGVfcmFuaygpCisrICAgICAgICByZXR1cm4gc2VsZi5fY29tcHV0ZV9yYW5rKCkKKyAK Ky0gICAgZGVmIF9fTihzZWxmLCBUKToKKysgICAgZGVmIF9OKHNlbGYsIFQpOgorICAgICAgICAg IiIiCisgICAgICAgICBDb21wdXRlIHRoZSBudW1iZXIgb2YgemVyb2VzIHVwdG8gaGVpZ2h0IGBU YCB1c2luZyB0aGUgZm9ybXVsYSBmb3IKKyAgICAgICAgIGBOKFQpYCB3aXRoIHRoZSBlcnJvciBv ZiBgUyhUKWAuIFBsZWFzZSBkbyBub3QgdXNlIHRoaXMuIEl0IGlzIG9ubHkKK0BAIC0yNjIsMTIg KzI2MiwxMiBAQCBjZGVmIGNsYXNzIExmdW5jdGlvbjoKKyAgICAgICAgICAgICBzYWdlOiBmcm9t IHNhZ2UubGlicy5sY2FsYy5sY2FsY19MZnVuY3Rpb24gaW1wb3J0ICoKKyAgICAgICAgICAgICBz YWdlOiBjaGkgPSBEaXJpY2hsZXRHcm91cCg1KVsyXSAjVGhpcyBpcyBhIHF1YWRyYXRpYyBjaGFy YWN0ZXIKKyAgICAgICAgICAgICBzYWdlOiBMPUxmdW5jdGlvbl9mcm9tX2NoYXJhY3RlcihjaGks IHR5cGU9ImNvbXBsZXgiKQorLSAgICAgICAgICAgIHNhZ2U6IEwuX19OKDEwKSAjIGFicyB0b2wg MWUtOAorKyAgICAgICAgICAgIHNhZ2U6IEwuX04oMTApICMgYWJzIHRvbCAxZS04CisgICAgICAg ICAgICAgNC4wCisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUmVhbE51bWJlciByZWFsX1Q9 UlJSKFQpCisgICAgICAgICBjZGVmIGRvdWJsZSBkb3VibGVfVCA9IG1wZnJfZ2V0X2QocmVhbF9U LnZhbHVlLCBNUEZSX1JORE4pCistICAgICAgICBjZGVmIGRvdWJsZSByZXNfZCA9IHNlbGYuX190 eXBlZE4oZG91YmxlX1QpCisrICAgICAgICBjZGVmIGRvdWJsZSByZXNfZCA9IHNlbGYuX3R5cGVk Tihkb3VibGVfVCkKKyAgICAgICAgIHJldHVybiBSUlIocmVzX2QpCisgCisgICAgIGRlZiBmaW5k X3plcm9zKHNlbGYsIFQxLCBUMiwgc3RlcHNpemUpOgorQEAgLTMyMyw3ICszMjMsNyBAQCBjZGVm IGNsYXNzIExmdW5jdGlvbjoKKyAgICAgICAgIGNkZWYgUmVhbE51bWJlciByZWFsX1QyID0gUlJS KFQyKQorICAgICAgICAgY2RlZiBSZWFsTnVtYmVyIHJlYWxfc3RlcHNpemUgPSBSUlIoc3RlcHNp emUpCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgc2VsZi5fX2ZpbmRfemVyb3NfdiggbXBm cl9nZXRfZChyZWFsX1QxLnZhbHVlLCBNUEZSX1JORE4pLCBtcGZyX2dldF9kKHJlYWxfVDIudmFs dWUsIE1QRlJfUk5ETiksIG1wZnJfZ2V0X2QocmVhbF9zdGVwc2l6ZS52YWx1ZSwgTVBGUl9STkRO KSwmcmVzdWx0KQorKyAgICAgICAgc2VsZi5fZmluZF96ZXJvc192KCBtcGZyX2dldF9kKHJlYWxf VDEudmFsdWUsIE1QRlJfUk5ETiksIG1wZnJfZ2V0X2QocmVhbF9UMi52YWx1ZSwgTVBGUl9STkRO KSwgbXBmcl9nZXRfZChyZWFsX3N0ZXBzaXplLnZhbHVlLCBNUEZSX1JORE4pLCZyZXN1bHQpCisg ICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIGk9cmVzdWx0LnNpemUoKQorICAgICAgICAgcmV0 dXJudmFsdWUgPSBbXQorQEAgLTM5OSw3ICszOTksNyBAQCBjZGVmIGNsYXNzIExmdW5jdGlvbjoK KyAgICAgICAgIGNkZWYgY29uc3QgY2hhciogbWVzc2FnZV9zdGFtcCA9ICIiCisgICAgICAgICBj ZGVmIGRvdWJsZXZlYyByZXN1bHQKKyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBzZWxmLl9f ZmluZF96ZXJvcyhjb3VudCwgc3RhcnQsIG1heF9yZWZpbmUsIHJhbmssIG1lc3NhZ2Vfc3RhbXAs ICZyZXN1bHQpCisrICAgICAgICBzZWxmLl9maW5kX3plcm9zKGNvdW50LCBzdGFydCwgbWF4X3Jl ZmluZSwgcmFuaywgbWVzc2FnZV9zdGFtcCwgJnJlc3VsdCkKKyAgICAgICAgIHNpZ19vZmYoKQor ICAgICAgICAgcmV0dXJudmFsdWUgPSBbXQorICAgICAgICAgZm9yIGkgaW4gcmFuZ2UocmVzdWx0 LnNpemUoKSk6CitAQCAtNDA4LDI1ICs0MDgsMjUgQEAgY2RlZiBjbGFzcyBMZnVuY3Rpb246Cisg ICAgICAgICByZXR1cm4gcmV0dXJudmFsdWUKKyAKKyAgICAgIyBOZWVkcyB0byBiZSBvdmVycmlk ZW4KKy0gICAgY2RlZiB2b2lkIF9faW5pdF9mdW4oc2VsZiwgY2hhciAqTkFNRSwgaW50IHdoYXRf dHlwZSwgZGlyaWNobGV0X2NvZWZmLCBsb25nIGxvbmcgUGVyaW9kLCBkb3VibGUgcSwgIGNfQ29t cGxleCB3LCBpbnQgQSwgZG91YmxlICpnLCBjX0NvbXBsZXggKmwsIGludCBuX3BvbGVzLCBjX0Nv bXBsZXggKnAsIGNfQ29tcGxleCAqcik6CisrICAgIGNkZWYgdm9pZCBfaW5pdF9mdW4oc2VsZiwg Y2hhciAqTkFNRSwgaW50IHdoYXRfdHlwZSwgZGlyaWNobGV0X2NvZWZmLCBsb25nIGxvbmcgUGVy aW9kLCBkb3VibGUgcSwgIGNfQ29tcGxleCB3LCBpbnQgQSwgZG91YmxlICpnLCBjX0NvbXBsZXgg KmwsIGludCBuX3BvbGVzLCBjX0NvbXBsZXggKnAsIGNfQ29tcGxleCAqcik6CisgICAgICAgICBy YWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgCistICAgIGNkZWYgY19Db21wbGV4IF9fdmFsdWUo c2VsZixjX0NvbXBsZXggcyxpbnQgZGVyaXZhdGl2ZSk6CisrICAgIGNkZWYgY19Db21wbGV4IF92 YWx1ZShzZWxmLGNfQ29tcGxleCBzLGludCBkZXJpdmF0aXZlKToKKyAgICAgICAgIHJhaXNlIE5v dEltcGxlbWVudGVkRXJyb3IKKyAKKy0gICAgY2RlZiBjX0NvbXBsZXggX19oYXJkeV96X2Z1bmN0 aW9uKHNlbGYsY19Db21wbGV4IHMpOgorKyAgICBjZGVmIGNfQ29tcGxleCBfaGFyZHlfel9mdW5j dGlvbihzZWxmLGNfQ29tcGxleCBzKToKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJy b3IKKyAKKy0gICAgY2RlZiBpbnQgX19jb21wdXRlX3Jhbmsoc2VsZik6CisrICAgIGNkZWYgaW50 IF9jb21wdXRlX3Jhbmsoc2VsZik6CisgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9y CisgCistICAgIGNkZWYgZG91YmxlIF9fdHlwZWROKHNlbGYsZG91YmxlIFQpOgorKyAgICBjZGVm IGRvdWJsZSBfdHlwZWROKHNlbGYsZG91YmxlIFQpOgorICAgICAgICAgcmFpc2UgTm90SW1wbGVt ZW50ZWRFcnJvcgorIAorLSAgICBjZGVmIHZvaWQgX19maW5kX3plcm9zX3Yoc2VsZixkb3VibGUg VDEsIGRvdWJsZSBUMiwgZG91YmxlIHN0ZXBzaXplLCBkb3VibGV2ZWMgKnJlc3VsdCk6CisrICAg IGNkZWYgdm9pZCBfZmluZF96ZXJvc192KHNlbGYsZG91YmxlIFQxLCBkb3VibGUgVDIsIGRvdWJs ZSBzdGVwc2l6ZSwgZG91YmxldmVjICpyZXN1bHQpOgorICAgICAgICAgcmFpc2UgTm90SW1wbGVt ZW50ZWRFcnJvcgorIAorLSAgICBjZGVmIGludCBfX2ZpbmRfemVyb3Moc2VsZiwgbG9uZyBjb3Vu dCwgbG9uZyBzdGFydCwgZG91YmxlIG1heF9yZWZpbmUsIGludCByYW5rLCBjb25zdCBjaGFyKiBt ZXNzYWdlX3N0YW1wLCBkb3VibGV2ZWMgKnJlc3VsdCk6CisrICAgIGNkZWYgaW50IF9maW5kX3pl cm9zKHNlbGYsIGxvbmcgY291bnQsIGxvbmcgc3RhcnQsIGRvdWJsZSBtYXhfcmVmaW5lLCBpbnQg cmFuaywgY29uc3QgY2hhciogbWVzc2FnZV9zdGFtcCwgZG91YmxldmVjICpyZXN1bHQpOgorICAg ICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorIAorICMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworQEAgLTQ5Nyw3ICs0OTcsNyBAQCBjZGVmIGNsYXNzIExmdW5jdGlvbl9JKExmdW5jdGlvbik6 CisgICAgICAgICBzZWxmLl9yZXByICs9ICIgd2l0aCBpbnRlZ2VyIERpcmljaGxldCBjb2VmZmlj aWVudHMiCisgCisgICAgICMgb3ZlcnJpZGUKKy0gICAgY2RlZiB2b2lkIF9faW5pdF9mdW4oc2Vs ZiwgY2hhciAqTkFNRSwgaW50IHdoYXRfdHlwZSwgZGlyaWNobGV0X2NvZWZmLCBsb25nIGxvbmcg UGVyaW9kLCBkb3VibGUgcSwgIGNfQ29tcGxleCB3LCBpbnQgQSwgZG91YmxlICpnLCBjX0NvbXBs ZXggKmwsIGludCBuX3BvbGVzLCBjX0NvbXBsZXggKnAsIGNfQ29tcGxleCAqcik6CisrICAgIGNk ZWYgdm9pZCBfaW5pdF9mdW4oc2VsZiwgY2hhciAqTkFNRSwgaW50IHdoYXRfdHlwZSwgZGlyaWNo bGV0X2NvZWZmLCBsb25nIGxvbmcgUGVyaW9kLCBkb3VibGUgcSwgIGNfQ29tcGxleCB3LCBpbnQg QSwgZG91YmxlICpnLCBjX0NvbXBsZXggKmwsIGludCBuX3BvbGVzLCBjX0NvbXBsZXggKnAsIGNf Q29tcGxleCAqcik6CisgICAgICAgICBjZGVmIGludCBOID0gbGVuKGRpcmljaGxldF9jb2VmZikK KyAgICAgICAgIGNkZWYgSW50ZWdlciB0bXBpCisgICAgICAgICBjZGVmIGludCAqIGNvZWZmcyA9 IG5ld19pbnRzKE4rMSkgI2xjYWxjIGlnbm9yZXMgMHRoZSBjb2VmZmljaWVudAorQEAgLTUwNywy MiArNTA3LDIyIEBAIGNkZWYgY2xhc3MgTGZ1bmN0aW9uX0koTGZ1bmN0aW9uKToKKyAgICAgICAg IHNlbGYudGhpc3B0cj1uZXdfY19MZnVuY3Rpb25fSShOQU1FLCB3aGF0X3R5cGUsICBOLCBjb2Vm ZnMsIFBlcmlvZCwgcSwgIHcsICBBLCBnLCBsLCBuX3BvbGVzLCBwLCByKQorICAgICAgICAgZGVs X2ludHMoY29lZmZzKQorIAorLSAgICBjZGVmIGlubGluZSBjX0NvbXBsZXggX192YWx1ZShzZWxm LGNfQ29tcGxleCBzLGludCBkZXJpdmF0aXZlKToKKysgICAgY2RlZiBpbmxpbmUgY19Db21wbGV4 IF92YWx1ZShzZWxmLGNfQ29tcGxleCBzLGludCBkZXJpdmF0aXZlKToKKyAgICAgICAgIHJldHVy biAoPGNfTGZ1bmN0aW9uX0kgKj4oc2VsZi50aGlzcHRyKSkudmFsdWUocywgZGVyaXZhdGl2ZSwg InB1cmUiKQorIAorLSAgICBjZGVmIGlubGluZSBjX0NvbXBsZXggX19oYXJkeV96X2Z1bmN0aW9u KHNlbGYsY19Db21wbGV4IHMpOgorKyAgICBjZGVmIGlubGluZSBjX0NvbXBsZXggX2hhcmR5X3pf ZnVuY3Rpb24oc2VsZixjX0NvbXBsZXggcyk6CisgICAgICAgICByZXR1cm4gKDxjX0xmdW5jdGlv bl9JICo+KHNlbGYudGhpc3B0cikpLnZhbHVlKHMsIDAsICJyb3RhdGVkIHB1cmUiKQorIAorLSAg ICBjZGVmIGludCBfX2NvbXB1dGVfcmFuayhzZWxmKToKKysgICAgY2RlZiBpbnQgX2NvbXB1dGVf cmFuayhzZWxmKToKKyAgICAgICAgIHJldHVybiAoPGNfTGZ1bmN0aW9uX0kgKj4oc2VsZi50aGlz cHRyKSkuY29tcHV0ZV9yYW5rKCkKKyAKKy0gICAgY2RlZiB2b2lkIF9fZmluZF96ZXJvc192KHNl bGYsIGRvdWJsZSBUMSwgZG91YmxlIFQyLCBkb3VibGUgc3RlcHNpemUsIGRvdWJsZXZlYyAqcmVz dWx0KToKKysgICAgY2RlZiB2b2lkIF9maW5kX3plcm9zX3Yoc2VsZiwgZG91YmxlIFQxLCBkb3Vi bGUgVDIsIGRvdWJsZSBzdGVwc2l6ZSwgZG91YmxldmVjICpyZXN1bHQpOgorICAgICAgICAgKDxj X0xmdW5jdGlvbl9JICo+c2VsZi50aGlzcHRyKS5maW5kX3plcm9zX3YoVDEsVDIsc3RlcHNpemUs cmVzdWx0WzBdKQorIAorLSAgICBjZGVmIGRvdWJsZSBfX3R5cGVkTihzZWxmLCBkb3VibGUgVCk6 CisrICAgIGNkZWYgZG91YmxlIF90eXBlZE4oc2VsZiwgZG91YmxlIFQpOgorICAgICAgICAgcmV0 dXJuICg8Y19MZnVuY3Rpb25fSSAqPnNlbGYudGhpc3B0cikuTihUKQorIAorLSAgICBjZGVmIGlu dCBfX2ZpbmRfemVyb3Moc2VsZiwgbG9uZyBjb3VudCwgbG9uZyBzdGFydCwgZG91YmxlIG1heF9y ZWZpbmUsIGludCByYW5rLCBjb25zdCBjaGFyKiBtZXNzYWdlX3N0YW1wLCBkb3VibGV2ZWMgKnJl c3VsdCk6CisrICAgIGNkZWYgaW50IF9maW5kX3plcm9zKHNlbGYsIGxvbmcgY291bnQsIGxvbmcg c3RhcnQsIGRvdWJsZSBtYXhfcmVmaW5lLCBpbnQgcmFuaywgY29uc3QgY2hhciogbWVzc2FnZV9z dGFtcCwgZG91YmxldmVjICpyZXN1bHQpOgorICAgICAgICAgKDxjX0xmdW5jdGlvbl9JICo+c2Vs Zi50aGlzcHRyKS5maW5kX3plcm9zKGNvdW50LCBzdGFydCwgbWF4X3JlZmluZSwgcmFuaywgbWVz c2FnZV9zdGFtcCwgcmVzdWx0KQorIAorICAgICAjIGRlYnVnIHRvb2xzCitAQCAtNjMzLDcgKzYz Myw3IEBAIGNkZWYgY2xhc3MgTGZ1bmN0aW9uX0QoTGZ1bmN0aW9uKToKKyAgICAgICAgIHNlbGYu X3JlcHIgKz0gIiB3aXRoIHJlYWwgRGlyaWNobGV0IGNvZWZmaWNpZW50cyIKKyAKKyAgICAgIyBv dmVycmlkZQorLSAgICBjZGVmIHZvaWQgX19pbml0X2Z1bihzZWxmLCBjaGFyICpOQU1FLCBpbnQg d2hhdF90eXBlLCBkaXJpY2hsZXRfY29lZmYsIGxvbmcgbG9uZyBQZXJpb2QsIGRvdWJsZSBxLCAg Y19Db21wbGV4IHcsIGludCBBLCBkb3VibGUgKmcsIGNfQ29tcGxleCAqbCwgaW50IG5fcG9sZXMs IGNfQ29tcGxleCAqcCwgY19Db21wbGV4ICpyKToKKysgICAgY2RlZiB2b2lkIF9pbml0X2Z1bihz ZWxmLCBjaGFyICpOQU1FLCBpbnQgd2hhdF90eXBlLCBkaXJpY2hsZXRfY29lZmYsIGxvbmcgbG9u ZyBQZXJpb2QsIGRvdWJsZSBxLCAgY19Db21wbGV4IHcsIGludCBBLCBkb3VibGUgKmcsIGNfQ29t cGxleCAqbCwgaW50IG5fcG9sZXMsIGNfQ29tcGxleCAqcCwgY19Db21wbGV4ICpyKToKKyAgICAg ICAgIGNkZWYgaW50IGkKKyAgICAgICAgIGNkZWYgUmVhbE51bWJlciB0bXByCisgICAgICAgICBj ZGVmIGludCBOID0gbGVuKGRpcmljaGxldF9jb2VmZikKK0BAIC02NDQsMjMgKzY0NCwyMyBAQCBj ZGVmIGNsYXNzIExmdW5jdGlvbl9EKExmdW5jdGlvbik6CisgICAgICAgICBzZWxmLnRoaXNwdHI9 bmV3X2NfTGZ1bmN0aW9uX0QoTkFNRSwgd2hhdF90eXBlLCAgTiwgY29lZmZzLCBQZXJpb2QsIHEs ICB3LCAgQSwgZywgbCwgbl9wb2xlcywgcCwgcikKKyAgICAgICAgIGRlbF9kb3VibGVzKGNvZWZm cykKKyAKKy0gICAgY2RlZiBpbmxpbmUgY19Db21wbGV4IF9fdmFsdWUoc2VsZixjX0NvbXBsZXgg cyxpbnQgZGVyaXZhdGl2ZSk6CisrICAgIGNkZWYgaW5saW5lIGNfQ29tcGxleCBfdmFsdWUoc2Vs ZixjX0NvbXBsZXggcyxpbnQgZGVyaXZhdGl2ZSk6CisgICAgICAgICByZXR1cm4gKDxjX0xmdW5j dGlvbl9EICo+KHNlbGYudGhpc3B0cikpLnZhbHVlKHMsIGRlcml2YXRpdmUsICJwdXJlIikKKyAK KyAKKy0gICAgY2RlZiBpbmxpbmUgY19Db21wbGV4IF9faGFyZHlfel9mdW5jdGlvbihzZWxmLGNf Q29tcGxleCBzKToKKysgICAgY2RlZiBpbmxpbmUgY19Db21wbGV4IF9oYXJkeV96X2Z1bmN0aW9u KHNlbGYsY19Db21wbGV4IHMpOgorICAgICAgICAgcmV0dXJuICg8Y19MZnVuY3Rpb25fRCAqPihz ZWxmLnRoaXNwdHIpKS52YWx1ZShzLCAwLCAicm90YXRlZCBwdXJlIikKKyAKKy0gICAgY2RlZiBp bmxpbmUgaW50IF9fY29tcHV0ZV9yYW5rKHNlbGYpOgorKyAgICBjZGVmIGlubGluZSBpbnQgX2Nv bXB1dGVfcmFuayhzZWxmKToKKyAgICAgICAgIHJldHVybiAoPGNfTGZ1bmN0aW9uX0QgKj4oc2Vs Zi50aGlzcHRyKSkuY29tcHV0ZV9yYW5rKCkKKyAKKy0gICAgY2RlZiB2b2lkIF9fZmluZF96ZXJv c192KHNlbGYsIGRvdWJsZSBUMSwgZG91YmxlIFQyLCBkb3VibGUgc3RlcHNpemUsIGRvdWJsZXZl YyAqcmVzdWx0KToKKysgICAgY2RlZiB2b2lkIF9maW5kX3plcm9zX3Yoc2VsZiwgZG91YmxlIFQx LCBkb3VibGUgVDIsIGRvdWJsZSBzdGVwc2l6ZSwgZG91YmxldmVjICpyZXN1bHQpOgorICAgICAg ICAgKDxjX0xmdW5jdGlvbl9EICo+c2VsZi50aGlzcHRyKS5maW5kX3plcm9zX3YoVDEsVDIsc3Rl cHNpemUscmVzdWx0WzBdKQorIAorLSAgICBjZGVmIGRvdWJsZSBfX3R5cGVkTihzZWxmLCBkb3Vi bGUgVCk6CisrICAgIGNkZWYgZG91YmxlIF90eXBlZE4oc2VsZiwgZG91YmxlIFQpOgorICAgICAg ICAgcmV0dXJuICg8Y19MZnVuY3Rpb25fRCAqPnNlbGYudGhpc3B0cikuTihUKQorIAorLSAgICBj ZGVmIGludCBfX2ZpbmRfemVyb3Moc2VsZiwgbG9uZyBjb3VudCwgbG9uZyBzdGFydCxkb3VibGUg bWF4X3JlZmluZSwgaW50IHJhbmssIGNvbnN0IGNoYXIqIG1lc3NhZ2Vfc3RhbXAsIGRvdWJsZXZl YyAqcmVzdWx0KToKKysgICAgY2RlZiBpbnQgX2ZpbmRfemVyb3Moc2VsZiwgbG9uZyBjb3VudCwg bG9uZyBzdGFydCxkb3VibGUgbWF4X3JlZmluZSwgaW50IHJhbmssIGNvbnN0IGNoYXIqIG1lc3Nh Z2Vfc3RhbXAsIGRvdWJsZXZlYyAqcmVzdWx0KToKKyAgICAgICAgICg8Y19MZnVuY3Rpb25fRCAq PnNlbGYudGhpc3B0cikuZmluZF96ZXJvcyhjb3VudCwgc3RhcnQsIG1heF9yZWZpbmUsIHJhbmss IG1lc3NhZ2Vfc3RhbXAsIHJlc3VsdCkKKyAKKyAgICAgIyBkZWJ1ZyB0b29scworQEAgLTc3Myw3 ICs3NzMsNyBAQCBjZGVmIGNsYXNzIExmdW5jdGlvbl9DOgorICAgICAgICAgc2VsZi5fcmVwciAr PSAiIHdpdGggY29tcGxleCBEaXJpY2hsZXQgY29lZmZpY2llbnRzIgorIAorICAgICAjIG92ZXJy aWRlCistICAgIGNkZWYgdm9pZCBfX2luaXRfZnVuKHNlbGYsIGNoYXIgKk5BTUUsIGludCB3aGF0 X3R5cGUsIGRpcmljaGxldF9jb2VmZiwgbG9uZyBsb25nIFBlcmlvZCwgZG91YmxlIHEsICBjX0Nv bXBsZXggdywgaW50IEEsIGRvdWJsZSAqZywgY19Db21wbGV4ICpsLCBpbnQgbl9wb2xlcywgY19D b21wbGV4ICpwLCBjX0NvbXBsZXggKnIpOgorKyAgICBjZGVmIHZvaWQgX2luaXRfZnVuKHNlbGYs IGNoYXIgKk5BTUUsIGludCB3aGF0X3R5cGUsIGRpcmljaGxldF9jb2VmZiwgbG9uZyBsb25nIFBl cmlvZCwgZG91YmxlIHEsICBjX0NvbXBsZXggdywgaW50IEEsIGRvdWJsZSAqZywgY19Db21wbGV4 ICpsLCBpbnQgbl9wb2xlcywgY19Db21wbGV4ICpwLCBjX0NvbXBsZXggKnIpOgorICAgICAgICAg Y2RlZiBpbnQgaQorICAgICAgICAgY2RlZiBpbnQgTiA9IGxlbihkaXJpY2hsZXRfY29lZmYpCisg ICAgICAgICBjZGVmIENvbXBsZXhOdW1iZXIgdG1wYworQEAgLTc4OCwyNCArNzg4LDI0IEBAIGNk ZWYgY2xhc3MgTGZ1bmN0aW9uX0M6CisgCisgICAgICAgICBkZWxfQ29tcGxleGVzKGNvZWZmcykK KyAKKy0gICAgY2RlZiBpbmxpbmUgY19Db21wbGV4IF9fdmFsdWUoc2VsZixjX0NvbXBsZXggcyxp bnQgZGVyaXZhdGl2ZSk6CisrICAgIGNkZWYgaW5saW5lIGNfQ29tcGxleCBfdmFsdWUoc2VsZixj X0NvbXBsZXggcyxpbnQgZGVyaXZhdGl2ZSk6CisgICAgICAgICByZXR1cm4gKDxjX0xmdW5jdGlv bl9DICo+KHNlbGYudGhpc3B0cikpLnZhbHVlKHMsIGRlcml2YXRpdmUsICJwdXJlIikKKyAKKyAK Ky0gICAgY2RlZiBpbmxpbmUgY19Db21wbGV4IF9faGFyZHlfel9mdW5jdGlvbihzZWxmLGNfQ29t cGxleCBzKToKKysgICAgY2RlZiBpbmxpbmUgY19Db21wbGV4IF9oYXJkeV96X2Z1bmN0aW9uKHNl bGYsY19Db21wbGV4IHMpOgorICAgICAgICAgcmV0dXJuICg8Y19MZnVuY3Rpb25fQyAqPihzZWxm LnRoaXNwdHIpKS52YWx1ZShzLCAwLCJyb3RhdGVkIHB1cmUiKQorIAorLSAgICBjZGVmIGlubGlu ZSBpbnQgX19jb21wdXRlX3Jhbmsoc2VsZik6CisrICAgIGNkZWYgaW5saW5lIGludCBfY29tcHV0 ZV9yYW5rKHNlbGYpOgorICAgICAgICAgcmV0dXJuICg8Y19MZnVuY3Rpb25fQyAqPihzZWxmLnRo aXNwdHIpKS5jb21wdXRlX3JhbmsoKQorIAorIAorLSAgICBjZGVmIHZvaWQgX19maW5kX3plcm9z X3Yoc2VsZiwgZG91YmxlIFQxLCBkb3VibGUgVDIsIGRvdWJsZSBzdGVwc2l6ZSwgZG91YmxldmVj ICpyZXN1bHQpOgorKyAgICBjZGVmIHZvaWQgX2ZpbmRfemVyb3NfdihzZWxmLCBkb3VibGUgVDEs IGRvdWJsZSBUMiwgZG91YmxlIHN0ZXBzaXplLCBkb3VibGV2ZWMgKnJlc3VsdCk6CisgICAgICAg ICAoPGNfTGZ1bmN0aW9uX0MgKj5zZWxmLnRoaXNwdHIpLmZpbmRfemVyb3NfdihUMSxUMixzdGVw c2l6ZSxyZXN1bHRbMF0pCisgCistICAgIGNkZWYgZG91YmxlIF9fdHlwZWROKHNlbGYsIGRvdWJs ZSBUKToKKysgICAgY2RlZiBkb3VibGUgX3R5cGVkTihzZWxmLCBkb3VibGUgVCk6CisgICAgICAg ICByZXR1cm4gKDxjX0xmdW5jdGlvbl9DICo+c2VsZi50aGlzcHRyKS5OKFQpCisgCistICAgIGNk ZWYgaW50IF9fZmluZF96ZXJvcyhzZWxmLCBsb25nIGNvdW50LCBsb25nIHN0YXJ0LCBkb3VibGUg bWF4X3JlZmluZSwgaW50IHJhbmssIGNvbnN0IGNoYXIqIG1lc3NhZ2Vfc3RhbXAsIGRvdWJsZXZl YyAqcmVzdWx0KToKKysgICAgY2RlZiBpbnQgX2ZpbmRfemVyb3Moc2VsZiwgbG9uZyBjb3VudCwg bG9uZyBzdGFydCwgZG91YmxlIG1heF9yZWZpbmUsIGludCByYW5rLCBjb25zdCBjaGFyKiBtZXNz YWdlX3N0YW1wLCBkb3VibGV2ZWMgKnJlc3VsdCk6CisgICAgICAgICAoPGNfTGZ1bmN0aW9uX0Mg Kj5zZWxmLnRoaXNwdHIpLmZpbmRfemVyb3MoY291bnQsIHN0YXJ0LCBtYXhfcmVmaW5lLCByYW5r LCBtZXNzYWdlX3N0YW1wLCByZXN1bHQpCisgCisgICAgICMgZGVidWcgdG9vbHMKK0BAIC04NzMs MjQgKzg3MywyNCBAQCBjZGVmIGNsYXNzIExmdW5jdGlvbl9aZXRhKExmdW5jdGlvbik6CisgICAg ICAgICBzZWxmLnRoaXNwdHIgPSBuZXdfY19MZnVuY3Rpb25fWmV0YSgpCisgICAgICAgICBzZWxm Ll9yZXByID0gIlRoZSBSaWVtYW5uIHpldGEgZnVuY3Rpb24iCisgCistICAgIGNkZWYgaW5saW5l IGNfQ29tcGxleCBfX3ZhbHVlKHNlbGYsY19Db21wbGV4IHMsaW50IGRlcml2YXRpdmUpOgorKyAg ICBjZGVmIGlubGluZSBjX0NvbXBsZXggX3ZhbHVlKHNlbGYsY19Db21wbGV4IHMsaW50IGRlcml2 YXRpdmUpOgorICAgICAgICAgcmV0dXJuICg8Y19MZnVuY3Rpb25fWmV0YSAqPihzZWxmLnRoaXNw dHIpKS52YWx1ZShzLCBkZXJpdmF0aXZlLCAicHVyZSIpCisgCisgCistICAgIGNkZWYgaW5saW5l IGNfQ29tcGxleCBfX2hhcmR5X3pfZnVuY3Rpb24oc2VsZixjX0NvbXBsZXggcyk6CisrICAgIGNk ZWYgaW5saW5lIGNfQ29tcGxleCBfaGFyZHlfel9mdW5jdGlvbihzZWxmLGNfQ29tcGxleCBzKToK KyAgICAgICAgIHJldHVybiAoPGNfTGZ1bmN0aW9uX1pldGEgKj4oc2VsZi50aGlzcHRyKSkudmFs dWUocywgMCwgInJvdGF0ZWQgcHVyZSIpCisgCistICAgIGNkZWYgaW5saW5lIGludCBfX2NvbXB1 dGVfcmFuayhzZWxmKToKKysgICAgY2RlZiBpbmxpbmUgaW50IF9jb21wdXRlX3Jhbmsoc2VsZik6 CisgICAgICAgICByZXR1cm4gKDxjX0xmdW5jdGlvbl9aZXRhICo+KHNlbGYudGhpc3B0cikpLmNv bXB1dGVfcmFuaygpCisgCisgCistICAgIGNkZWYgdm9pZCBfX2ZpbmRfemVyb3NfdihzZWxmLCBk b3VibGUgVDEsIGRvdWJsZSBUMiwgZG91YmxlIHN0ZXBzaXplLCBkb3VibGV2ZWMgKnJlc3VsdCk6 CisrICAgIGNkZWYgdm9pZCBfZmluZF96ZXJvc192KHNlbGYsIGRvdWJsZSBUMSwgZG91YmxlIFQy LCBkb3VibGUgc3RlcHNpemUsIGRvdWJsZXZlYyAqcmVzdWx0KToKKyAgICAgICAgICg8Y19MZnVu Y3Rpb25fWmV0YSAqPnNlbGYudGhpc3B0cikuZmluZF96ZXJvc192KFQxLFQyLHN0ZXBzaXplLHJl c3VsdFswXSkKKyAKKy0gICAgY2RlZiBkb3VibGUgX190eXBlZE4oc2VsZiwgZG91YmxlIFQpOgor KyAgICBjZGVmIGRvdWJsZSBfdHlwZWROKHNlbGYsIGRvdWJsZSBUKToKKyAgICAgICAgIHJldHVy biAoPGNfTGZ1bmN0aW9uX1pldGEgKj5zZWxmLnRoaXNwdHIpLk4oVCkKKyAKKy0gICAgY2RlZiBp bnQgX19maW5kX3plcm9zKHNlbGYsIGxvbmcgY291bnQsIGxvbmcgc3RhcnQsIGRvdWJsZSBtYXhf cmVmaW5lLCBpbnQgcmFuaywgY29uc3QgY2hhciogbWVzc2FnZV9zdGFtcCwgZG91YmxldmVjICpy ZXN1bHQpOgorKyAgICBjZGVmIGludCBfZmluZF96ZXJvcyhzZWxmLCBsb25nIGNvdW50LCBsb25n IHN0YXJ0LCBkb3VibGUgbWF4X3JlZmluZSwgaW50IHJhbmssIGNvbnN0IGNoYXIqIG1lc3NhZ2Vf c3RhbXAsIGRvdWJsZXZlYyAqcmVzdWx0KToKKyAgICAgICAgICg8Y19MZnVuY3Rpb25fWmV0YSAq PnNlbGYudGhpc3B0cikuZmluZF96ZXJvcyhjb3VudCwgc3RhcnQsIG1heF9yZWZpbmUsIHJhbmss IG1lc3NhZ2Vfc3RhbXAsIHJlc3VsdCkKKyAKKyAgICAgZGVmIF9fZGVhbGxvY19fKHNlbGYpOgor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvbGlua2FnZXMvcGFkaWNzL1BvbHlub21pYWxfcmFt LnB4aSBiL3NyYy9zYWdlL2xpYnMvbGlua2FnZXMvcGFkaWNzL1BvbHlub21pYWxfcmFtLnB4aQor aW5kZXggMWFjNTFmMTIxMWYuLmUwNTg0ZWNiOGFkIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGli cy9saW5rYWdlcy9wYWRpY3MvUG9seW5vbWlhbF9yYW0ucHhpCisrKysgYi9zcmMvc2FnZS9saWJz L2xpbmthZ2VzL3BhZGljcy9Qb2x5bm9taWFsX3JhbS5weGkKK0BAIC01NSwxNiArNTUsMTYgQEAg Y2RlZiBpbmxpbmUgYmludCBjcmVkdWNlKGNlbGVtZW50IG91dCwgY2VsZW1lbnQgYSwgbG9uZyBw cmVjLCBQb3dDb21wdXRlcl8gcHJpbWUKKyAgICAgIiIiCisgICAgIGNkZWYgY2VsZW1lbnQgYXJl ZCA9IGEgJSBwcmltZV9wb3cubW9kdWx1cworICAgICBpZiBhcmVkIGlzIGEgYW5kIG91dCBpcyBu b3QgYToKKy0gICAgICAgIG91dC5fX2NvZWZmcyA9IGFyZWQuX19jb2VmZnNbOl0KKysgICAgICAg IG91dC5fY29lZmZzID0gYXJlZC5fY29lZmZzWzpdCisgICAgIGVsc2U6CistICAgICAgICBvdXQu X19jb2VmZnMgPSBhcmVkLl9fY29lZmZzCisrICAgICAgICBvdXQuX2NvZWZmcyA9IGFyZWQuX2Nv ZWZmcworICAgICBjZGVmIGxvbmcgY29lZmZfcHJlYyA9IHByZWMgLyBwcmltZV9wb3cuZSArIDEK KyAgICAgY2RlZiBsb25nIGJyZWFrX3B0ID0gcHJlYyAlIHByaW1lX3Bvdy5lCistICAgIGZvciBp IGluIHJhbmdlKGxlbihvdXQuX19jb2VmZnMpKToKKysgICAgZm9yIGkgaW4gcmFuZ2UobGVuKG91 dC5fY29lZmZzKSk6CisgICAgICAgICBpZiBpID09IGJyZWFrX3B0OgorICAgICAgICAgICAgIGNv ZWZmX3ByZWMgLT0gMQorLSAgICAgICAgb3V0Ll9fY29lZmZzW2ldID0gb3V0Ll9fY29lZmZzW2ld LmFkZF9iaWdvaChjb2VmZl9wcmVjKQorLSAgICBvdXQuX19ub3JtYWxpemUoKQorKyAgICAgICAg b3V0Ll9jb2VmZnNbaV0gPSBvdXQuX2NvZWZmc1tpXS5hZGRfYmlnb2goY29lZmZfcHJlYykKKysg ICAgb3V0Ll9ub3JtYWxpemUoKQorICAgICByZXR1cm4gb3V0ID09IDAKKyAKKyBjZGVmIGlubGlu ZSBiaW50IGNyZWR1Y2Vfc21hbGwoY2VsZW1lbnQgb3V0LCBjZWxlbWVudCBhLCBsb25nIHByZWMs IFBvd0NvbXB1dGVyXyBwcmltZV9wb3cpIGV4Y2VwdCAtMToKK0BAIC0xMTYsNyArMTE2LDcgQEAg Y2RlZiBpbmxpbmUgbG9uZyBjdmFsdWF0aW9uKGNlbGVtZW50IGEsIGxvbmcgcHJlYywgUG93Q29t cHV0ZXJfIHByaW1lX3BvdykgZXhjZXAKKyAgICAgaGlnaGVyLgorIAorICAgICAiIiIKKy0gICAg QyA9IGEuX19jb2VmZnMKKysgICAgQyA9IGEuX2NvZWZmcworICAgICBpZiBub3QgQzoKKyAgICAg ICAgIHJldHVybiBwcmVjCisgICAgIGNkZWYgbG9uZyByZXQgPSBtYXhvcmRwCitAQCAtMTYxLDcg KzE2MSw3IEBAIGNkZWYgaW5saW5lIGludCBjc2hpZnQoY2VsZW1lbnQgc2hpZnRlZCwgY2VsZW1l bnQgcmVtLCBjZWxlbWVudCBhLCBsb25nIG4sIGxvbmcKKyAgICAgICAgIHYgPSBjdmFsdWF0aW9u KGEsIHByZWMsIHByaW1lX3BvdykKKyAgICAgICAgIG5vdHJ1bmMgPSAodiA+PSAtbikKKyAgICAg aWYgbm90cnVuYzoKKy0gICAgICAgIHJlbS5fX2NvZWZmcyA9IFtdCisrICAgICAgICByZW0uX2Nv ZWZmcyA9IFtdCisgICAgICAgICByZXR1cm4gY3NoaWZ0X25vdHJ1bmMoc2hpZnRlZCwgYSwgbiwg cHJlYywgcHJpbWVfcG93LCByZWR1Y2VfYWZ0ZXJ3YXJkKQorICAgICBpZiB2ID4gMDoKKyAgICAg ICAgIGIgPSBwcmltZV9wb3cucG9seV9yaW5nKDApCitAQCAtMTg1LDcgKzE4NSw3IEBAIGNkZWYg aW5saW5lIGludCBjc2hpZnQoY2VsZW1lbnQgc2hpZnRlZCwgY2VsZW1lbnQgcmVtLCBjZWxlbWVu dCBhLCBsb25nIG4sIGxvbmcKKyAgICAgaWYgcmVkdWNlX2FmdGVyd2FyZDoKKyAgICAgICAgIGNy ZWR1Y2Uoc2hpZnRlZCwgYSwgcHJlYywgcHJpbWVfcG93KQorICAgICBlbHNlOgorLSAgICAgICAg c2hpZnRlZC5fX2NvZWZmcyA9IGEuX19jb2VmZnNbOl0KKysgICAgICAgIHNoaWZ0ZWQuX2NvZWZm cyA9IGEuX2NvZWZmc1s6XQorIAorIGNkZWYgaW5saW5lIGludCBjc2hpZnRfbm90cnVuYyhjZWxl bWVudCBvdXQsIGNlbGVtZW50IGEsIGxvbmcgbiwgbG9uZyBwcmVjLCBQb3dDb21wdXRlcl8gcHJp bWVfcG93LCBiaW50IHJlZHVjZV9hZnRlcndhcmQpIGV4Y2VwdCAtMToKKyAgICAgciIiIgorQEAg LTIzNiw3ICsyMzYsNyBAQCBjZGVmIGlubGluZSBpbnQgY3NoaWZ0X25vdHJ1bmMoY2VsZW1lbnQg b3V0LCBjZWxlbWVudCBhLCBsb25nIG4sIGxvbmcgcHJlYywgUG93QworICAgICBpZiByZWR1Y2Vf YWZ0ZXJ3YXJkOgorICAgICAgICAgY3JlZHVjZShvdXQsIGEsIHByZWMsIHByaW1lX3BvdykKKyAg ICAgZWxzZToKKy0gICAgICAgIG91dC5fX2NvZWZmcyA9IGEuX19jb2VmZnNbOl0KKysgICAgICAg IG91dC5fY29lZmZzID0gYS5fY29lZmZzWzpdCisgCisgY2RlZiBpbmxpbmUgaW50IGNpbnZlcnQo Y2VsZW1lbnQgb3V0LCBjZWxlbWVudCBhLCBsb25nIHByZWMsIFBvd0NvbXB1dGVyXyBwcmltZV9w b3cpIGV4Y2VwdCAtMToKKyAgICAgciIiIgorQEAgLTI1Myw3ICsyNTMsNyBAQCBjZGVmIGlubGlu ZSBpbnQgY2ludmVydChjZWxlbWVudCBvdXQsIGNlbGVtZW50IGEsIGxvbmcgcHJlYywgUG93Q29t cHV0ZXJfIHByaW1lXworICAgICAtIGBgcHJpbWVfcG93YGAgLS0gdGhlIGBgUG93Q29tcHV0ZXJg YCBmb3IgdGhlIHJpbmcKKyAKKyAgICAgIiIiCistICAgIG91dC5fX2NvZWZmcyA9IHByaW1lX3Bv dy5pbnZlcnQoYSwgcHJlYykuX19jb2VmZnMKKysgICAgb3V0Ll9jb2VmZnMgPSBwcmltZV9wb3cu aW52ZXJ0KGEsIHByZWMpLl9jb2VmZnMKKyAgICAgY3JlZHVjZShvdXQsIG91dCwgcHJlYywgcHJp bWVfcG93KQorIAorIGNkZWYgaW5saW5lIGludCBjZGl2dW5pdChjZWxlbWVudCBvdXQsIGNlbGVt ZW50IGEsIGNlbGVtZW50IGIsIGxvbmcgcHJlYywgUG93Q29tcHV0ZXJfIHByaW1lX3BvdykgZXhj ZXB0IC0xOgorQEAgLTMzNSw3ICszMzUsNyBAQCBjZGVmIGlubGluZSBjZXhwYW5zaW9uX25leHQo Y2VsZW1lbnQgdmFsdWUsIGV4cGFuc2lvbl9tb2RlIG1vZGUsIGxvbmcgY3VycG93ZXIsCisgICAg ICMgdGhlIGZvbGxvd2luZyBpcyBzcGVjaWZpYyB0byB0aGUgcmFtaWZpZWQgb3ZlciB1bnJhbWlm aWVkIGNhc2UuCisgICAgIG1vZHBfcmVwLCB0ZXJtID0gdmFsdWVbMF0uX21vZHBfcmVwKG1vZGUg PT0gc21hbGxlc3RfbW9kZSkKKyAgICAgaWYgdGVybToKKy0gICAgICAgIHZhbHVlLl9fY29lZmZz WzBdIC09IG1vZHBfcmVwCisrICAgICAgICB2YWx1ZS5fY29lZmZzWzBdIC09IG1vZHBfcmVwCisg ICAgIGNzaGlmdF9ub3RydW5jKHZhbHVlLCB2YWx1ZSwgLTEsIGN1cnBvd2VyLCBwcmltZV9wb3cs IEZhbHNlKQorICAgICByZXR1cm4gdGVybQorIAorQEAgLTM1NCwxMCArMzU0LDEwIEBAIGNkZWYg aW5saW5lIGNleHBhbnNpb25fZ2V0aXRlbShjZWxlbWVudCB2YWx1ZSwgbG9uZyBtLCBQb3dDb21w dXRlcl8gcHJpbWVfcG93KToKKyAgICAgd2hpbGUgbSA+PSAwOgorICAgICAgICAgbW9kcF9yZXAs IHRlcm0gPSB2YWx1ZVswXS5fbW9kcF9yZXAoKQorICAgICAgICAgaWYgbToKKy0gICAgICAgICAg ICBpZiBsZW4odmFsdWUuX19jb2VmZnMpOgorLSAgICAgICAgICAgICAgICB2YWx1ZS5fX2NvZWZm c1swXSAtPSBtb2RwX3JlcAorKyAgICAgICAgICAgIGlmIGxlbih2YWx1ZS5fY29lZmZzKToKKysg ICAgICAgICAgICAgICAgdmFsdWUuX2NvZWZmc1swXSAtPSBtb2RwX3JlcAorICAgICAgICAgICAg IGVsc2U6CistICAgICAgICAgICAgICAgIHZhbHVlLl9fY29lZmZzLmFwcGVuZCgtbW9kcF9yZXAp CisrICAgICAgICAgICAgICAgIHZhbHVlLl9jb2VmZnMuYXBwZW5kKC1tb2RwX3JlcCkKKyAgICAg ICAgICAgICBjc2hpZnRfbm90cnVuYyh2YWx1ZSwgdmFsdWUsIC0xLCAxLCBwcmltZV9wb3csIEZh bHNlKQorICAgICAgICAgbSAtPSAxCisgICAgIHJldHVybiB0ZXJtCitAQCAtMzc5LDkgKzM3OSw5 IEBAIGNkZWYgaW50IGN0ZWljaG11bGxlcihjZWxlbWVudCBvdXQsIGNlbGVtZW50IHZhbHVlLCBs b25nIHByZWMsIFBvd0NvbXB1dGVyXyBwcmltCisgCisgICAgICIiIgorICAgICBpZiB2YWx1ZVsw XS52YWx1YXRpb24oKSA+IDA6CistICAgICAgICBvdXQuX19jb2VmZnMgPSBbXQorKyAgICAgICAg b3V0Ll9jb2VmZnMgPSBbXQorICAgICBlbHNlOgorLSAgICAgICAgb3V0Ll9fY29lZmZzID0gW3Zh bHVlWzBdLnBhcmVudCgpLnRlaWNobXVsbGVyKHZhbHVlWzBdKV0KKysgICAgICAgIG91dC5fY29l ZmZzID0gW3ZhbHVlWzBdLnBhcmVudCgpLnRlaWNobXVsbGVyKHZhbHVlWzBdKV0KKyAKKyBjZGVm IGxpc3QgY2NvZWZmaWNpZW50cyhjZWxlbWVudCB4LCBsb25nIHZhbHNoaWZ0LCBsb25nIHByZWMs IFBvd0NvbXB1dGVyXyBwcmltZV9wb3cpOgorICAgICAiIiIKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9saWJzL2xpbmthZ2VzL3BhZGljcy9Qb2x5bm9taWFsX3NoYXJlZC5weGkgYi9zcmMvc2FnZS9s aWJzL2xpbmthZ2VzL3BhZGljcy9Qb2x5bm9taWFsX3NoYXJlZC5weGkKK2luZGV4IDQ5NWRjNmIw ODQ4Li4zNjdiYmMyZjMzZCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvbGlua2FnZXMvcGFk aWNzL1BvbHlub21pYWxfc2hhcmVkLnB4aQorKysrIGIvc3JjL3NhZ2UvbGlicy9saW5rYWdlcy9w YWRpY3MvUG9seW5vbWlhbF9zaGFyZWQucHhpCitAQCAtMTA2LDcgKzEwNiw3IEBAIGNkZWYgaW5s aW5lIGludCBjY21wKGNlbGVtZW50IGEsIGNlbGVtZW50IGIsIGxvbmcgcHJlYywgYmludCByZWR1 Y2VfYSwgYmludCByZWR1CisgICAgIGlmIG5vdCAocmVkdWNlX2Egb3IgcmVkdWNlX2IpOgorICAg ICAgICAgcmV0dXJuIDAgaWYgYSA9PSBiIGVsc2UgMQorICAgICBjc3ViKHByaW1lX3Bvdy50bXBf Y2NtcF9hLCBhLCBiLCBwcmVjLCBwcmltZV9wb3cpCistICAgIGNvZWZmcyA9IHByaW1lX3Bvdy50 bXBfY2NtcF9hLl9fY29lZmZzCisrICAgIGNvZWZmcyA9IHByaW1lX3Bvdy50bXBfY2NtcF9hLl9j b2VmZnMKKyAgICAgY2RlZiBsb25nIGksIGNvZWZmX3ByZWMsIGJyZWFrX3B0CisgICAgIGlmIHBy aW1lX3Bvdy5lID09IDE6CisgICAgICAgICBmb3IgaSBpbiByYW5nZShwcmltZV9wb3cudG1wX2Nj bXBfYS5kZWdyZWUoKSsxKToKK0BAIC0xODYsOSArMTg2LDkgQEAgY2RlZiBpbmxpbmUgaW50IGNu ZWcoY2VsZW1lbnQgb3V0LCBjZWxlbWVudCBhLCBsb25nIHByZWMsIFBvd0NvbXB1dGVyXyBwcmlt ZV9wb3cKKyAgICAgIiIiCisgICAgIGNkZWYgY2VsZW1lbnQgbWEgPSAtYQorICAgICBpZiBtYSBp cyBhOgorLSAgICAgICAgb3V0Ll9fY29lZmZzID0gbWEuX19jb2VmZnNbOl0KKysgICAgICAgIG91 dC5fY29lZmZzID0gbWEuX2NvZWZmc1s6XQorICAgICBlbHNlOgorLSAgICAgICAgb3V0Ll9fY29l ZmZzID0gbWEuX19jb2VmZnMKKysgICAgICAgIG91dC5fY29lZmZzID0gbWEuX2NvZWZmcworIAor IGNkZWYgaW5saW5lIGludCBjYWRkKGNlbGVtZW50IG91dCwgY2VsZW1lbnQgYSwgY2VsZW1lbnQg YiwgbG9uZyBwcmVjLCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KSBleGNlcHQgLTE6CisgICAgIHIi IiIKK0BAIC0yMTEsOSArMjExLDkgQEAgY2RlZiBpbmxpbmUgaW50IGNhZGQoY2VsZW1lbnQgb3V0 LCBjZWxlbWVudCBhLCBjZWxlbWVudCBiLCBsb25nIHByZWMsIFBvd0NvbXB1dGUKKyAgICAgIiIi CisgICAgIGNkZWYgY2VsZW1lbnQgc20gPSBhICsgYgorICAgICBpZiBzbSBpcyBhIG9yIHNtIGlz IGI6CistICAgICAgICBvdXQuX19jb2VmZnMgPSBzbS5fX2NvZWZmc1s6XQorKyAgICAgICAgb3V0 Ll9jb2VmZnMgPSBzbS5fY29lZmZzWzpdCisgICAgIGVsc2U6CistICAgICAgICBvdXQuX19jb2Vm ZnMgPSBzbS5fX2NvZWZmcworKyAgICAgICAgb3V0Ll9jb2VmZnMgPSBzbS5fY29lZmZzCisgCisg Y2RlZiBpbmxpbmUgaW50IGNzdWIoY2VsZW1lbnQgb3V0LCBjZWxlbWVudCBhLCBjZWxlbWVudCBi LCBsb25nIHByZWMsIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cpIGV4Y2VwdCAtMToKKyAgICAgciIi IgorQEAgLTIzNiw5ICsyMzYsOSBAQCBjZGVmIGlubGluZSBpbnQgY3N1YihjZWxlbWVudCBvdXQs IGNlbGVtZW50IGEsIGNlbGVtZW50IGIsIGxvbmcgcHJlYywgUG93Q29tcHV0ZQorICAgICAiIiIK KyAgICAgY2RlZiBjZWxlbWVudCBkZiA9IGEgLSBiCisgICAgIGlmIGRmIGlzIGEgb3IgZGYgaXMg YjoKKy0gICAgICAgIG91dC5fX2NvZWZmcyA9IGRmLl9fY29lZmZzWzpdCisrICAgICAgICBvdXQu X2NvZWZmcyA9IGRmLl9jb2VmZnNbOl0KKyAgICAgZWxzZToKKy0gICAgICAgIG91dC5fX2NvZWZm cyA9IGRmLl9fY29lZmZzCisrICAgICAgICBvdXQuX2NvZWZmcyA9IGRmLl9jb2VmZnMKKyAKKyBj ZGVmIGlubGluZSBpbnQgY211bChjZWxlbWVudCBvdXQsIGNlbGVtZW50IGEsIGNlbGVtZW50IGIs IGxvbmcgcHJlYywgUG93Q29tcHV0ZXJfIHByaW1lX3BvdykgZXhjZXB0IC0xOgorICAgICByIiIi CitAQCAtMjYxLDkgKzI2MSw5IEBAIGNkZWYgaW5saW5lIGludCBjbXVsKGNlbGVtZW50IG91dCwg Y2VsZW1lbnQgYSwgY2VsZW1lbnQgYiwgbG9uZyBwcmVjLCBQb3dDb21wdXRlCisgICAgICIiIgor ICAgICBjZGVmIGNlbGVtZW50IHBkID0gYSpiCisgICAgIGlmIHBkIGlzIGEgb3IgcGQgaXMgYjoK Ky0gICAgICAgIG91dC5fX2NvZWZmcyA9IHBkLl9fY29lZmZzWzpdCisrICAgICAgICBvdXQuX2Nv ZWZmcyA9IHBkLl9jb2VmZnNbOl0KKyAgICAgZWxzZToKKy0gICAgICAgIG91dC5fX2NvZWZmcyA9 IHBkLl9fY29lZmZzCisrICAgICAgICBvdXQuX2NvZWZmcyA9IHBkLl9jb2VmZnMKKyAKKyBjZGVm IGlubGluZSBpbnQgY3NldG9uZShjZWxlbWVudCBvdXQsIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cp IGV4Y2VwdCAtMToKKyAgICAgciIiIgorQEAgLTI3Niw3ICsyNzYsNyBAQCBjZGVmIGlubGluZSBp bnQgY3NldG9uZShjZWxlbWVudCBvdXQsIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cpIGV4Y2VwdCAt MToKKyAgICAgLSBgYHByaW1lX3Bvd2BgIC0tIHRoZSBgYFBvd0NvbXB1dGVyYGAgZm9yIHRoZSBy aW5nCisgCisgICAgICIiIgorLSAgICBvdXQuX19jb2VmZnMgPSBbcHJpbWVfcG93LmJhc2Vfcmlu ZygxKV0KKysgICAgb3V0Ll9jb2VmZnMgPSBbcHJpbWVfcG93LmJhc2VfcmluZygxKV0KKyAKKyBj ZGVmIGlubGluZSBpbnQgY3NldHplcm8oY2VsZW1lbnQgb3V0LCBQb3dDb21wdXRlcl8gcHJpbWVf cG93KSBleGNlcHQgLTE6CisgICAgIHIiIiIKK0BAIC0yODksNyArMjg5LDcgQEAgY2RlZiBpbmxp bmUgaW50IGNzZXR6ZXJvKGNlbGVtZW50IG91dCwgUG93Q29tcHV0ZXJfIHByaW1lX3BvdykgZXhj ZXB0IC0xOgorICAgICAtIGBgcHJpbWVfcG93YGAgLS0gdGhlIGBgUG93Q29tcHV0ZXJgYCBmb3Ig dGhlIHJpbmcKKyAKKyAgICAgIiIiCistICAgIG91dC5fX2NvZWZmcyA9IFtdCisrICAgIG91dC5f Y29lZmZzID0gW10KKyAKKyBjZGVmIGlubGluZSBiaW50IGNpc29uZShjZWxlbWVudCBhLCBQb3dD b21wdXRlcl8gcHJpbWVfcG93KSBleGNlcHQgLTE6CisgICAgIHIiIiIKK0BAIC0zMzAsNyArMzMw LDcgQEAgY2RlZiBpbmxpbmUgaW50IGNjb3B5KGNlbGVtZW50IG91dCwgY2VsZW1lbnQgYSwgUG93 Q29tcHV0ZXJfIHByaW1lX3BvdykgZXhjZXB0IC0KKyAgICAgLSBgYHByaW1lX3Bvd2BgIC0tIHRo ZSBgYFBvd0NvbXB1dGVyYGAgZm9yIHRoZSByaW5nCisgCisgICAgICIiIgorLSAgICBvdXQuX19j b2VmZnMgPSBhLl9fY29lZmZzWzpdCisrICAgIG91dC5fY29lZmZzID0gYS5fY29lZmZzWzpdCisg CisgY2RlZiBpbmxpbmUgY3BpY2tsZShjZWxlbWVudCBhLCBQb3dDb21wdXRlcl8gcHJpbWVfcG93 KToKKyAgICAgciIiIgorQEAgLTM0Myw3ICszNDMsNyBAQCBjZGVmIGlubGluZSBjcGlja2xlKGNl bGVtZW50IGEsIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cpOgorICAgICAtIGBgcHJpbWVfcG93YGAg dGhlIGBgUG93Q29tcHV0ZXJgYCBmb3IgdGhlIHJpbmcKKyAKKyAgICAgIiIiCistICAgIHJldHVy biBhLl9fY29lZmZzCisrICAgIHJldHVybiBhLl9jb2VmZnMKKyAKKyBjZGVmIGlubGluZSBpbnQg Y3VucGlja2xlKGNlbGVtZW50IG91dCwgeCwgUG93Q29tcHV0ZXJfIHByaW1lX3BvdykgZXhjZXB0 IC0xOgorICAgICByIiIiCitAQCAtMzU4LDcgKzM1OCw3IEBAIGNkZWYgaW5saW5lIGludCBjdW5w aWNrbGUoY2VsZW1lbnQgb3V0LCB4LCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KSBleGNlcHQgLTE6 CisgICAgIC0gYGBwcmltZV9wb3dgYCAtLSB0aGUgYGBQb3dDb21wdXRlcmBgIGZvciB0aGUgcmlu ZworIAorICAgICAiIiIKKy0gICAgb3V0Ll9fY29lZmZzID0geAorKyAgICBvdXQuX2NvZWZmcyA9 IHgKKyAKKyBjZGVmIGlubGluZSBsb25nIGNoYXNoKGNlbGVtZW50IGEsIGxvbmcgb3JkcCwgbG9u ZyBwcmVjLCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KSBleGNlcHQgLTE6CisgICAgIHIiIiIKK0BA IC00MTMsOSArNDEzLDkgQEAgY2RlZiBpbnQgY2NvbnYoY2VsZW1lbnQgb3V0LCB4LCBsb25nIHBy ZWMsIGxvbmcgdmFsc2hpZnQsIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cKKyAgICAgZWxzZToKKyAg ICAgICAgIHh4ID0gcHJpbWVfcG93LnBvbHlfcmluZyh4KQorICAgICBpZiB4eCBpcyB4OgorLSAg ICAgICAgb3V0Ll9fY29lZmZzID0geHguX19jb2VmZnNbOl0KKysgICAgICAgIG91dC5fY29lZmZz ID0geHguX2NvZWZmc1s6XQorICAgICBlbHNlOgorLSAgICAgICAgb3V0Ll9fY29lZmZzID0geHgu X19jb2VmZnMKKysgICAgICAgIG91dC5fY29lZmZzID0geHguX2NvZWZmcworICAgICBpZiB2YWxz aGlmdCA+IDA6CisgICAgICAgICBjc2hpZnRfbm90cnVuYyhvdXQsIG91dCwgLXZhbHNoaWZ0LCBw cmVjLCBwcmltZV9wb3csIFRydWUpCisgICAgIGVsaWYgdmFsc2hpZnQgPT0gMDoKK0BAIC00NTgs MTIgKzQ1OCwxMiBAQCBjZGVmIGlubGluZSBsb25nIGNjb252X21wel90KGNlbGVtZW50IG91dCwg bXB6X3QgeCwgbG9uZyBwcmVjLCBiaW50IGFic29sdXRlLCBQbworICAgICBtcHpfc2V0KG4udmFs dWUsIHgpCisgCisgICAgIGlmIG46CistICAgICAgICBvdXQuX19jb2VmZnMgPSBbcHJpbWVfcG93 LmJhc2VfcmluZyhuKV0KKysgICAgICAgIG91dC5fY29lZmZzID0gW3ByaW1lX3Bvdy5iYXNlX3Jp bmcobildCisgICAgICAgICBpZiBub3QgYWJzb2x1dGU6CisgICAgICAgICAgICAgdmFsdWF0aW9u ID0gY3JlbW92ZShvdXQsIG91dCwgcHJlYywgcHJpbWVfcG93KQorICAgICAgICAgY3JlZHVjZShv dXQsIG91dCwgcHJlYywgcHJpbWVfcG93KQorICAgICBlbHNlOgorLSAgICAgICAgb3V0Ll9fY29l ZmZzID0gW10KKysgICAgICAgIG91dC5fY29lZmZzID0gW10KKyAKKyAgICAgcmV0dXJuIHZhbHVh dGlvbgorIAorQEAgLTQ5MiwxMiArNDkyLDEyIEBAIGNkZWYgaW5saW5lIGludCBjY29udl9tcHpf dF9vdXQobXB6X3Qgb3V0LCBjZWxlbWVudCB4LCBsb25nIHZhbHNoaWZ0LCBsb25nIHByZWMsCisg ICAgIGVsc2U6CisgICAgICAgICBwcmltZV9wb3cucG93aGVscGVyX2Njb252X291dCA9IHgKKyAK Ky0gICAgaWYgbGVuKHByaW1lX3Bvdy5wb3doZWxwZXJfY2NvbnZfb3V0Ll9fY29lZmZzKSA9PSAw OgorKyAgICBpZiBsZW4ocHJpbWVfcG93LnBvd2hlbHBlcl9jY29udl9vdXQuX2NvZWZmcykgPT0g MDoKKyAgICAgICAgIG1wel9zZXRfdWkob3V0LCAwKQorLSAgICBlbGlmIGxlbihwcmltZV9wb3cu cG93aGVscGVyX2Njb252X291dC5fX2NvZWZmcykgPT0gMToKKysgICAgZWxpZiBsZW4ocHJpbWVf cG93LnBvd2hlbHBlcl9jY29udl9vdXQuX2NvZWZmcykgPT0gMToKKyAgICAgICAgICMgcmVjdXJz aXZlbHkgbGV0IHRoZSB1bmRlcmx5aW5nIHBvbHlub21pYWwgY29udmVydCB0aGUgY29uc3RhbnQK KyAgICAgICAgICMgY29lZmZpY2llbnQgdG8gYW4gaW50ZWdlciAoaWYgcG9zc2libGUpCistICAg ICAgICBuID0gWloocHJpbWVfcG93LnBvd2hlbHBlcl9jY29udl9vdXQuX19jb2VmZnNbMF0pCisr ICAgICAgICBuID0gWloocHJpbWVfcG93LnBvd2hlbHBlcl9jY29udl9vdXQuX2NvZWZmc1swXSkK KyAgICAgICAgIG1wel9zZXQob3V0LCBuLnZhbHVlKQorICAgICBlbHNlOgorICAgICAgICAgcmFp c2UgVmFsdWVFcnJvcigiY2Fubm90IGNvbnZlcnQgdG8gaW50ZWdlciIpCitAQCAtNTMyLDcgKzUz Miw3IEBAIGNkZWYgaW5saW5lIGxvbmcgY2NvbnZfbXBxX3QoY2VsZW1lbnQgb3V0LCBtcHFfdCB4 LCBsb25nIHByZWMsIGJpbnQgYWJzb2x1dGUsIFBvCisgICAgICIiIgorICAgICBjZGVmIFJhdGlv bmFsIHIgPSBQWV9ORVcoUmF0aW9uYWwpCisgICAgIG1wcV9zZXQoci52YWx1ZSwgeCkKKy0gICAg b3V0Ll9fY29lZmZzID0gW3ByaW1lX3Bvdy5iYXNlX3JpbmcocildCisrICAgIG91dC5fY29lZmZz ID0gW3ByaW1lX3Bvdy5iYXNlX3JpbmcocildCisgCisgICAgIGlmIG5vdCBhYnNvbHV0ZToKKyAg ICAgICAgIHJldHVybiBjcmVtb3ZlKG91dCwgb3V0LCBwcmVjLCBwcmltZV9wb3cpCitAQCAtNTY1 LDEyICs1NjUsMTIgQEAgY2RlZiBpbmxpbmUgaW50IGNjb252X21wcV90X291dChtcHFfdCBvdXQs IGNlbGVtZW50IHgsIGxvbmcgdmFsc2hpZnQsIGxvbmcgcHJlYywKKyAgICAgZWxzZToKKyAgICAg ICAgIHByaW1lX3Bvdy5wb3doZWxwZXJfY2NvbnZfb3V0ID0geAorIAorLSAgICBpZiBsZW4ocHJp bWVfcG93LnBvd2hlbHBlcl9jY29udl9vdXQuX19jb2VmZnMpID09IDA6CisrICAgIGlmIGxlbihw cmltZV9wb3cucG93aGVscGVyX2Njb252X291dC5fY29lZmZzKSA9PSAwOgorICAgICAgICAgbXBx X3NldF91aShvdXQsIDAsIDEpCistICAgIGVsaWYgbGVuKHByaW1lX3Bvdy5wb3doZWxwZXJfY2Nv bnZfb3V0Ll9fY29lZmZzKSA9PSAxOgorKyAgICBlbGlmIGxlbihwcmltZV9wb3cucG93aGVscGVy X2Njb252X291dC5fY29lZmZzKSA9PSAxOgorICAgICAgICAgIyByZWN1cnNpdmVseSBsZXQgdGhl IHVuZGVybHlpbmcgcG9seW5vbWlhbCBjb252ZXJ0IHRoZSBjb25zdGFudAorICAgICAgICAgIyBj b2VmZmljaWVudCB0byBhIHJhdGlvbmFsIChpZiBwb3NzaWJsZSkKKy0gICAgICAgIGMgPSBRUShw cmltZV9wb3cucG93aGVscGVyX2Njb252X291dC5fX2NvZWZmc1swXSkKKysgICAgICAgIGMgPSBR UShwcmltZV9wb3cucG93aGVscGVyX2Njb252X291dC5fY29lZmZzWzBdKQorICAgICAgICAgbXBx X3NldChvdXQsIGMudmFsdWUpCisgICAgIGVsc2U6CisgICAgICAgICByYWlzZSBWYWx1ZUVycm9y KCJjYW5ub3QgY29udmVydCB0byByYXRpb25hbCIpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGli cy9udGwvbnRsX2x6el9wLnB5eCBiL3NyYy9zYWdlL2xpYnMvbnRsL250bF9senpfcC5weXgKK2lu ZGV4IDE2MWQwNzgyYmMyLi5hZjg2YjliY2Y2OSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMv bnRsL250bF9senpfcC5weXgKKysrKyBiL3NyYy9zYWdlL2xpYnMvbnRsL250bF9senpfcC5weXgK K0BAIC04OSwxOSArODksMTkgQEAgY2RlZiBjbGFzcyBudGxfenpfcCgpOgorICAgICAgICAgI3Nl bGYuYy5yZXN0b3JlX2MoKSAgICMjIFRoaXMgd2FzIGRvbmUgaW4gX19uZXdfXworIAorICAgICAg ICAgaWYgaXNpbnN0YW5jZShhLCBJbnRlZ2VyTW9kX2ludCk6CistICAgICAgICAgICAgaWYgKHNl bGYuYy5wID09ICg8SW50ZWdlck1vZF9pbnQ+YSkuX19tb2R1bHVzLmludDMyKTogIyMgdGhpcyBp cyBzbG93CisrICAgICAgICAgICAgaWYgKHNlbGYuYy5wID09ICg8SW50ZWdlck1vZF9pbnQ+YSku X21vZHVsdXMuaW50MzIpOiAjIyB0aGlzIGlzIHNsb3cKKyAgICAgICAgICAgICAgICAgc2VsZi54 ID0gKDxJbnRlZ2VyTW9kX2ludD5hKS5pdmFsdWUKKyAgICAgICAgICAgICBlbHNlOgorICAgICAg ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNaXNtYXRjaGVkIG1vZHVsdXMgZm9yIGNvbnZl cnRpbmcgdG8genpfcC4iKQorIAorICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGEsIEludGVnZXJN b2RfaW50NjQpOgorLSAgICAgICAgICAgIGlmIChzZWxmLmMucCA9PSAoPEludGVnZXJNb2RfaW50 NjQ+YSkuX19tb2R1bHVzLmludDY0KTogIyMgdGhpcyBpcyBzbG93CisrICAgICAgICAgICAgaWYg KHNlbGYuYy5wID09ICg8SW50ZWdlck1vZF9pbnQ2ND5hKS5fbW9kdWx1cy5pbnQ2NCk6ICMjIHRo aXMgaXMgc2xvdworICAgICAgICAgICAgICAgICBzZWxmLnggPSAoPEludGVnZXJNb2RfaW50NjQ+ YSkuaXZhbHVlCisgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgcmFpc2UgVmFs dWVFcnJvcigiTWlzbWF0Y2hlZCBtb2R1bHVzIGZvciBjb252ZXJ0aW5nIHRvIHp6X3AuIikKKyAK KyAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShhLCBJbnRlZ2VyTW9kX2dtcCk6CistICAgICAgICAg ICAgaWYgKHBfc2FnZSA9PSAoPEludGVnZXJNb2RfZ21wPmEpLl9fbW9kdWx1cy5zYWdlSW50ZWdl cik6ICMjIHRoaXMgaXMgc2xvdworKyAgICAgICAgICAgIGlmIChwX3NhZ2UgPT0gKDxJbnRlZ2Vy TW9kX2dtcD5hKS5fbW9kdWx1cy5zYWdlSW50ZWdlcik6ICMjIHRoaXMgaXMgc2xvdworICAgICAg ICAgICAgICAgICBzZWxmLnggPSBtcHpfZ2V0X3NpKCg8SW50ZWdlck1vZF9nbXA+YSkudmFsdWUp CisgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigi TWlzbWF0Y2hlZCBtb2R1bHVzIGZvciBjb252ZXJ0aW5nIHRvIHp6X3AuIikKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9saWJzL250bC9udGxfbHp6X3BYLnB5eCBiL3NyYy9zYWdlL2xpYnMvbnRsL250 bF9senpfcFgucHl4CitpbmRleCAyNGI1MDNhOWE2Mi4uN2QxOWNjNTVlMzcgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9saWJzL250bC9udGxfbHp6X3BYLnB5eAorKysrIGIvc3JjL3NhZ2UvbGlicy9u dGwvbnRsX2x6el9wWC5weXgKK0BAIC0xMDgsMTcgKzEwOCwxNyBAQCBjZGVmIGNsYXNzIG50bF96 el9wWCgpOgorICAgICAgICAgICAgIGEgPSBsc1tpXQorIAorICAgICAgICAgICAgIGlmIGlzaW5z dGFuY2UoYSwgSW50ZWdlck1vZF9pbnQpOgorLSAgICAgICAgICAgICAgICBpZiAoc2VsZi5jLnAg PT0gKDxJbnRlZ2VyTW9kX2ludD5hKS5fX21vZHVsdXMuaW50MzIpOiAjIyB0aGlzIGlzIHNsb3cK KysgICAgICAgICAgICAgICAgaWYgKHNlbGYuYy5wID09ICg8SW50ZWdlck1vZF9pbnQ+YSkuX21v ZHVsdXMuaW50MzIpOiAjIyB0aGlzIGlzIHNsb3cKKyAgICAgICAgICAgICAgICAgICAgIHp6X3BY X1NldENvZWZmX2xvbmcoc2VsZi54LCBpLCAoPEludGVnZXJNb2RfaW50PmEpLml2YWx1ZSkKKyAg ICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy b3IoIk1pc21hdGNoZWQgbW9kdWx1cyBmb3IgY29udmVydGluZyB0byB6el9wWC4iKQorICAgICAg ICAgICAgIGVsaWYgaXNpbnN0YW5jZShhLCBJbnRlZ2VyTW9kX2ludDY0KToKKy0gICAgICAgICAg ICAgICAgaWYgKHNlbGYuYy5wID09ICg8SW50ZWdlck1vZF9pbnQ2ND5hKS5fX21vZHVsdXMuaW50 NjQpOiAjIyB0aGlzIGlzIHNsb3cKKysgICAgICAgICAgICAgICAgaWYgKHNlbGYuYy5wID09ICg8 SW50ZWdlck1vZF9pbnQ2ND5hKS5fbW9kdWx1cy5pbnQ2NCk6ICMjIHRoaXMgaXMgc2xvdworICAg ICAgICAgICAgICAgICAgICAgenpfcFhfU2V0Q29lZmZfbG9uZyhzZWxmLngsIGksICg8SW50ZWdl ck1vZF9pbnQ2ND5hKS5pdmFsdWUpCisgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNaXNtYXRjaGVkIG1vZHVsdXMgZm9yIGNvbnZl cnRpbmcgdG8genpfcFguIikKKyAgICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoYSwgSW50ZWdl ck1vZF9nbXApOgorLSAgICAgICAgICAgICAgICBpZiAocF9zYWdlID09ICg8SW50ZWdlck1vZF9n bXA+YSkuX19tb2R1bHVzLnNhZ2VJbnRlZ2VyKTogIyMgdGhpcyBpcyBzbG93CisrICAgICAgICAg ICAgICAgIGlmIChwX3NhZ2UgPT0gKDxJbnRlZ2VyTW9kX2dtcD5hKS5fbW9kdWx1cy5zYWdlSW50 ZWdlcik6ICMjIHRoaXMgaXMgc2xvdworICAgICAgICAgICAgICAgICAgICAgenpfcFhfU2V0Q29l ZmZfbG9uZyhzZWxmLngsIGksIG1wel9nZXRfc2koKDxJbnRlZ2VyTW9kX2dtcD5hKS52YWx1ZSkp CisgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1 ZUVycm9yKCJNaXNtYXRjaGVkIG1vZHVsdXMgZm9yIGNvbnZlcnRpbmcgdG8genpfcFguIikKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2NvbXBsZXhfYmFsbF9kZW5zZS5weXgg Yi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2NvbXBsZXhfYmFsbF9kZW5zZS5weXgKK2luZGV4IDll MTQwNzljNmQ0Li40N2NhNDEwNzBmYSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJpeC9tYXRy aXhfY29tcGxleF9iYWxsX2RlbnNlLnB5eAorKysrIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9j b21wbGV4X2JhbGxfZGVuc2UucHl4CitAQCAtNjY0LDcgKzY2NCw3IEBAIGNkZWYgY2xhc3MgTWF0 cml4X2NvbXBsZXhfYmFsbF9kZW5zZShNYXRyaXhfZGVuc2UpOgorICAgICAgICAgUG9sID0gcG9s eW5vbWlhbF9yaW5nX2NvbnN0cnVjdG9yLl9zaW5nbGVfdmFyaWF0ZShzZWxmLmJhc2VfcmluZygp LCB2YXIpCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfY29tcGxleF9hcmIgcmVzID0gUG9seW5v bWlhbF9jb21wbGV4X2FyYihQb2wpCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgYWNiX21h dF9jaGFycG9seShyZXMuX19wb2x5LCBzZWxmLnZhbHVlLCBwcmVjKHNlbGYpKQorKyAgICAgICAg YWNiX21hdF9jaGFycG9seShyZXMuX3BvbHksIHNlbGYudmFsdWUsIHByZWMoc2VsZikpCisgICAg ICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9tYXRyaXgvbWF0cml4X2N5Y2xvX2RlbnNlLnB5eCBiL3NyYy9zYWdlL21hdHJpeC9tYXRy aXhfY3ljbG9fZGVuc2UucHl4CitpbmRleCAxNWZmNjM5NDk1MS4uZjFlZDlhZjg0MDMgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2N5Y2xvX2RlbnNlLnB5eAorKysrIGIvc3Jj L3NhZ2UvbWF0cml4L21hdHJpeF9jeWNsb19kZW5zZS5weXgKK0BAIC0zOTYsMTEgKzM5NiwxMSBA QCBjZGVmIGNsYXNzIE1hdHJpeF9jeWNsb19kZW5zZShNYXRyaXhfZGVuc2UpOgorICAgICAgICAg ICAgICMgTm93IHNldCBrLXRoIGVudHJ5IG9mIHgncyBudW1lcmF0b3IgdG8gdG1wCisgICAgICAg ICAgICAgZm1wel9nZXRfbXB6KHRtcCwgZnRtcCkKKyAgICAgICAgICAgICBtcHpfdG9fWlooJmNv ZWZmLCB0bXApCistICAgICAgICAgICAgWlpYX1NldENvZWZmKHguX19udW1lcmF0b3IsIGssIGNv ZWZmKQorKyAgICAgICAgICAgIFpaWF9TZXRDb2VmZih4Ll9udW1lcmF0b3IsIGssIGNvZWZmKQor IAorICAgICAgICAgIyBTZXQgdGhlIGRlbm9taW5hdG9yIG9mIHggdG8gZGVub20uCisgICAgICAg ICBmbXB6X2dldF9tcHoodG1wLCBkZW5vbSkKKy0gICAgICAgIG1wel90b19aWigmeC5fX2Rlbm9t aW5hdG9yLCB0bXApCisrICAgICAgICBtcHpfdG9fWlooJnguX2Rlbm9taW5hdG9yLCB0bXApCisg ICAgICAgICBmbXB6X2NsZWFyKGRlbm9tKQorICAgICAgICAgbXB6X2NsZWFyKHRtcCkKKyAgICAg ICAgIGZtcHpfY2xlYXIoZnRtcCkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4 X2ludGVnZXJfZGVuc2UucHl4IGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9pbnRlZ2VyX2RlbnNl LnB5eAoraW5kZXggOWM1MDkxMDQ5NjcuLjgwODgzNTA1NzdjIDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvbWF0cml4L21hdHJpeF9pbnRlZ2VyX2RlbnNlLnB5eAorKysrIGIvc3JjL3NhZ2UvbWF0cml4 L21hdHJpeF9pbnRlZ2VyX2RlbnNlLnB5eAorQEAgLTEzNzEsMTIgKzEzNzEsMTIgQEAgY2RlZiBj bGFzcyBNYXRyaXhfaW50ZWdlcl9kZW5zZShNYXRyaXhfZGVuc2UpOgorICAgICAgICAgaWYgYWxn b3JpdGhtID09ICdmbGludCc6CisgICAgICAgICAgICAgZyA9ICg8UG9seW5vbWlhbF9pbnRlZ2Vy X2RlbnNlX2ZsaW50PiBQb2x5bm9taWFsUmluZyhaWiwgbmFtZXM9dmFyKS5nZW4oKSkuX25ldygp CisgICAgICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgICAgICBmbXB6X21hdF9jaGFycG9seShn Ll9fcG9seSwgc2VsZi5fbWF0cml4KQorKyAgICAgICAgICAgIGZtcHpfbWF0X2NoYXJwb2x5KGcu X3BvbHksIHNlbGYuX21hdHJpeCkKKyAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIGVs aWYgYWxnb3JpdGhtID09ICdsaW5ib3gnOgorICAgICAgICAgICAgIGcgPSAoPFBvbHlub21pYWxf aW50ZWdlcl9kZW5zZV9mbGludD4gUG9seW5vbWlhbFJpbmcoWlosIG5hbWVzPXZhcikuZ2VuKCkp Ll9uZXcoKQorICAgICAgICAgICAgIHNpZ19vbigpCistICAgICAgICAgICAgbGluYm94X2ZtcHpf bWF0X2NoYXJwb2x5KGcuX19wb2x5LCBzZWxmLl9tYXRyaXgpCisrICAgICAgICAgICAgbGluYm94 X2ZtcHpfbWF0X2NoYXJwb2x5KGcuX3BvbHksIHNlbGYuX21hdHJpeCkKKyAgICAgICAgICAgICBz aWdfb2ZmKCkKKyAgICAgICAgIGVsaWYgYWxnb3JpdGhtID09ICdnZW5lcmljJzoKKyAgICAgICAg ICAgICBnID0gTWF0cml4X2RlbnNlLmNoYXJwb2x5KHNlbGYsIHZhcikKK0BAIC0xNDYwLDcgKzE0 NjAsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9pbnRlZ2VyX2RlbnNlKE1hdHJpeF9kZW5zZSk6Cisg ICAgICAgICBpZiBhbGdvcml0aG0gPT0gJ2xpbmJveCc6CisgICAgICAgICAgICAgZyA9ICg8UG9s eW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50PiBQb2x5bm9taWFsUmluZyhaWiwgbmFtZXM9dmFy KS5nZW4oKSkuX25ldygpCisgICAgICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgICAgICBsaW5i b3hfZm1wel9tYXRfbWlucG9seShnLl9fcG9seSwgc2VsZi5fbWF0cml4KQorKyAgICAgICAgICAg IGxpbmJveF9mbXB6X21hdF9taW5wb2x5KGcuX3BvbHksIHNlbGYuX21hdHJpeCkKKyAgICAgICAg ICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIGVsaWYgYWxnb3JpdGhtID09ICdnZW5lcmljJzoKKyAg ICAgICAgICAgICBnID0gTWF0cml4X2RlbnNlLm1pbnBvbHkoc2VsZiwgdmFyKQorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfaW50ZWdlcl9zcGFyc2UucHl4IGIvc3JjL3NhZ2Uv bWF0cml4L21hdHJpeF9pbnRlZ2VyX3NwYXJzZS5weXgKK2luZGV4IGE0MTY3N2M3YjZhLi44M2Q1 ZWU0MmZiZSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfaW50ZWdlcl9zcGFy c2UucHl4CisrKysgYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2ludGVnZXJfc3BhcnNlLnB5eAor QEAgLTg2OSwxMCArODY5LDEwIEBAIGNkZWYgY2xhc3MgTWF0cml4X2ludGVnZXJfc3BhcnNlKE1h dHJpeF9zcGFyc2UpOgorICAgICAgICAgc2lnX29mZigpCisgCisgICAgICAgICBjZGVmIHNpemVf dCBpCistICAgICAgICBmbXB6X3BvbHlfZml0X2xlbmd0aChnLl9fcG9seSwgcC5zaXplKCkpCisr ICAgICAgICBmbXB6X3BvbHlfZml0X2xlbmd0aChnLl9wb2x5LCBwLnNpemUoKSkKKyAgICAgICAg IGZvciBpIGluIHJhbmdlKHAuc2l6ZSgpKToKKy0gICAgICAgICAgICBmbXB6X3BvbHlfc2V0X2Nv ZWZmX21weihnLl9fcG9seSwgaSwgcFswXVtpXS5nZXRfbXB6X2NvbnN0KCkpCistICAgICAgICBf Zm1wel9wb2x5X3NldF9sZW5ndGgoZy5fX3BvbHksIHAuc2l6ZSgpKQorKyAgICAgICAgICAgIGZt cHpfcG9seV9zZXRfY29lZmZfbXB6KGcuX3BvbHksIGksIHBbMF1baV0uZ2V0X21wel9jb25zdCgp KQorKyAgICAgICAgX2ZtcHpfcG9seV9zZXRfbGVuZ3RoKGcuX3BvbHksIHAuc2l6ZSgpKQorIAor ICAgICAgICAgZGVsIE0KKyAgICAgICAgIGRlbCBwCitAQCAtOTY4LDEwICs5NjgsMTAgQEAgY2Rl ZiBjbGFzcyBNYXRyaXhfaW50ZWdlcl9zcGFyc2UoTWF0cml4X3NwYXJzZSk6CisgICAgICAgICBz aWdfb2ZmKCkKKyAKKyAgICAgICAgIGNkZWYgc2l6ZV90IGkKKy0gICAgICAgIGZtcHpfcG9seV9m aXRfbGVuZ3RoKGcuX19wb2x5LCBwLnNpemUoKSkKKysgICAgICAgIGZtcHpfcG9seV9maXRfbGVu Z3RoKGcuX3BvbHksIHAuc2l6ZSgpKQorICAgICAgICAgZm9yIGkgaW4gcmFuZ2UocC5zaXplKCkp OgorLSAgICAgICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZfbXB6KGcuX19wb2x5LCBpLCBwWzBd W2ldLmdldF9tcHpfY29uc3QoKSkKKy0gICAgICAgIF9mbXB6X3BvbHlfc2V0X2xlbmd0aChnLl9f cG9seSwgcC5zaXplKCkpCisrICAgICAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9tcHooZy5f cG9seSwgaSwgcFswXVtpXS5nZXRfbXB6X2NvbnN0KCkpCisrICAgICAgICBfZm1wel9wb2x5X3Nl dF9sZW5ndGgoZy5fcG9seSwgcC5zaXplKCkpCisgCisgICAgICAgICBkZWwgTQorICAgICAgICAg ZGVsIHAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyb2lkcy9iYXNpc19leGNoYW5nZV9tYXRy b2lkLnB4ZCBiL3NyYy9zYWdlL21hdHJvaWRzL2Jhc2lzX2V4Y2hhbmdlX21hdHJvaWQucHhkCitp bmRleCBhZWMzYmI1NGM0Mi4uMjhjYzdhZDg2OGMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRy b2lkcy9iYXNpc19leGNoYW5nZV9tYXRyb2lkLnB4ZAorKysrIGIvc3JjL3NhZ2UvbWF0cm9pZHMv YmFzaXNfZXhjaGFuZ2VfbWF0cm9pZC5weGQKK0BAIC0xNSwxMyArMTUsMTMgQEAgY2RlZiBjbGFz cyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgY2RlZiBfd2Vha19pbnZhcmlh bnRfdmFyLCBfc3Ryb25nX2ludmFyaWFudF92YXIsIF9oZXVyaXN0aWNfaW52YXJpYW50X3Zhcgor ICAgICBjZGVmIFNldFN5c3RlbSBfd2Vha19wYXJ0aXRpb25fdmFyLCBfc3Ryb25nX3BhcnRpdGlv bl92YXIsIF9oZXVyaXN0aWNfcGFydGl0aW9uX3ZhcgorIAorLSAgICBjZGVmIF9fcmVsYWJlbChz ZWxmLCBsKQorKyAgICBjZGVmIF9yZWxhYmVsKHNlbGYsIGwpCisgCistICAgIGNkZWYgX19wYWNr KHNlbGYsIGJpdHNldF90LCBYKQorKyAgICBjZGVmIF9wYWNrKHNlbGYsIGJpdHNldF90LCBYKQor ICAgICBjZGVmIF9fdW5wYWNrKHNlbGYsIGJpdHNldF90KQorLSAgICBjZGVmIGJpbnQgX19pc19l eGNoYW5nZV9wYWlyKHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBleGNlcHQgLTEKKy0gICAgY2RlZiBp bnQgX19leGNoYW5nZShzZWxmLCBsb25nIHgsIGxvbmcgeSkgZXhjZXB0IC0xCistICAgIGNkZWYg aW50IF9fbW92ZShzZWxmLCBiaXRzZXRfdCBYLCBiaXRzZXRfdCBZKSBleGNlcHQgLTEKKysgICAg Y2RlZiBiaW50IF9pc19leGNoYW5nZV9wYWlyKHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBleGNlcHQg LTEKKysgICAgY2RlZiBpbnQgX2V4Y2hhbmdlKHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBleGNlcHQg LTEKKysgICAgY2RlZiBpbnQgX21vdmUoc2VsZiwgYml0c2V0X3QgWCwgYml0c2V0X3QgWSkgZXhj ZXB0IC0xCisgICAgIGNkZWYgX19mdW5kYW1lbnRhbF9jb2NpcmN1aXQoc2VsZiwgYml0c2V0X3Qs IGxvbmcgeCkKKyAgICAgY2RlZiBfX2Z1bmRhbWVudGFsX2NpcmN1aXQoc2VsZiwgYml0c2V0X3Qs IGxvbmcgeSkKKyAKK0BAIC0zMCw3ICszMCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1h dHJvaWQoTWF0cm9pZCk6CisgICAgIGNkZWYgX19jbG9zdXJlKHNlbGYsIGJpdHNldF90LCBiaXRz ZXRfdCkKKyAgICAgY2RlZiBfX21heF9jb2luZGVwZW5kZW50KHNlbGYsIGJpdHNldF90LCBiaXRz ZXRfdCkKKyAgICAgY2RlZiBfX2NvY2lyY3VpdChzZWxmLCBiaXRzZXRfdCwgYml0c2V0X3QpCist ICAgIGNkZWYgX19jb2Nsb3N1cmUoc2VsZiwgYml0c2V0X3QsIGJpdHNldF90KQorKyAgICBjZGVm IF9jb2Nsb3N1cmVfaW50ZXJuYWwoc2VsZiwgYml0c2V0X3QsIGJpdHNldF90KQorIAorICAgICBj ZGVmIF9fYXVnbWVudChzZWxmLCBiaXRzZXRfdCwgYml0c2V0X3QsIGJpdHNldF90KQorICAgICBj ZGVmIGJpbnQgX19pc19pbmRlcGVuZGVudChzZWxmLCBiaXRzZXRfdCBGKSBleGNlcHQgLTEKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyb2lkcy9iYXNpc19leGNoYW5nZV9tYXRyb2lkLnB5eCBi L3NyYy9zYWdlL21hdHJvaWRzL2Jhc2lzX2V4Y2hhbmdlX21hdHJvaWQucHl4CitpbmRleCA5MGQx MDg0MmQ0Ni4uMDE1ZmE4YjhkZjMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyb2lkcy9iYXNp c19leGNoYW5nZV9tYXRyb2lkLnB5eAorKysrIGIvc3JjL3NhZ2UvbWF0cm9pZHMvYmFzaXNfZXhj aGFuZ2VfbWF0cm9pZC5weXgKK0BAIC01NywxMCArNTcsMTAgQEAgY2RlZiBjbGFzcyBCYXNpc0V4 Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAKKyAgICAgVGhpcyBiYXNlIGV4Y2hhbmdlIGdyYXBo IGlzIG5vdCBzdG9yZWQgYXMgc3VjaCwgYnV0IHNob3VsZCBiZSBwcm92aWRlZAorICAgICBpbXBs aWNpdGx5IGJ5IHRoZSBjaGlsZCBjbGFzcyBpbiB0aGUgZm9ybSBvZiB0d28gbWV0aG9kcworLSAg ICBgYF9faXNfZXhjaGFuZ2VfcGFpcih4LCB5KWBgIGFuZCBgYF9fZXhjaGFuZ2UoeCwgeSlgYCwg YXMgd2VsbCBhcyBhbgorKyAgICBgYF9pc19leGNoYW5nZV9wYWlyKHgsIHkpYGAgYW5kIGBgX2V4 Y2hhbmdlKHgsIHkpYGAsIGFzIHdlbGwgYXMgYW4KKyAgICAgaW5pdGlhbCBiYXNpcy4gQXQgYW55 IG1vbWVudCwgQmFzaXNFeGNoYW5nZU1hdHJvaWQga2VlcHMgYSBjdXJyZW50IGJhc2lzCistICAg IGBCYC4gVGhlIG1ldGhvZCBgYF9faXNfZXhjaGFuZ2VfcGFpcih4LCB5KWBgIHNob3VsZCByZXR1 cm4gYSBib29sZWFuCistICAgIGluZGljYXRpbmcgd2hldGhlciBgQiAtIHggKyB5YCBpcyBhIGJh c2lzLiBUaGUgbWV0aG9kIGBgX19leGNoYW5nZSh4LCB5KWBgCisrICAgIGBCYC4gVGhlIG1ldGhv ZCBgYF9pc19leGNoYW5nZV9wYWlyKHgsIHkpYGAgc2hvdWxkIHJldHVybiBhIGJvb2xlYW4KKysg ICAgaW5kaWNhdGluZyB3aGV0aGVyIGBCIC0geCArIHlgIGlzIGEgYmFzaXMuIFRoZSBtZXRob2Qg YGBfZXhjaGFuZ2UoeCwgeSlgYAorICAgICBpcyBjYWxsZWQgd2hlbiB0aGUgY3VycmVudCBiYXNp cyBgQmAgaXMgcmVwbGFjZWQgYnkgc2FpZCBgQi14ICsgeWAuIEl0IGlzCisgICAgIHVwIHRvIHRo ZSBjaGlsZCBjbGFzcyB0byB1cGRhdGUgaXRzIGludGVybmFsIGRhdGEgc3RydWN0dXJlIHRvIG1h a2UKKyAgICAgaW5mb3JtYXRpb24gcmVsYXRpdmUgdG8gdGhlIG5ldyBiYXNpcyBtb3JlIGFjY2Vz c2libGUuIEZvciBpbnN0YW5jZSwgYQorQEAgLTgxLDE2ICs4MSwxNiBAQCBjZGVmIGNsYXNzIEJh c2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAtIDpjbGFzczpgQmFzaXNNYXRyb2lk IDxzYWdlLm1hdHJvaWRzLmJhc2lzX21hdHJvaWQuQmFzaXNNYXRyb2lkPmA6IGtlZXBzCisgICAg ICAgYSBsaXN0IG9mIGFsbCBiYXNlcy4KKyAKKy0gICAgICAgIC0gYGBfX2lzX2V4Y2hhbmdlX3Bh aXIoeCwgeSlgYCByZWR1Y2VzIHRvIGEgcXVlcnkgd2hldGhlciBgQiAtIHggKyB5YAorKyAgICAg ICAgLSBgYF9pc19leGNoYW5nZV9wYWlyKHgsIHkpYGAgcmVkdWNlcyB0byBhIHF1ZXJ5IHdoZXRo ZXIgYEIgLSB4ICsgeWAKKyAgICAgICAgICAgaXMgYSBiYXNpcy4KKy0gICAgICAgIC0gYGBfX2V4 Y2hhbmdlKHgsIHkpYGAgaGFzIG5vIHdvcmsgdG8gZG8uCisrICAgICAgICAtIGBgX2V4Y2hhbmdl KHgsIHkpYGAgaGFzIG5vIHdvcmsgdG8gZG8uCisgCisgICAgIC0gOmNsYXNzOmBMaW5lYXJNYXRy b2lkIDxzYWdlLm1hdHJvaWRzLmxpbmVhcl9tYXRyb2lkLkxpbmVhck1hdHJvaWQ+YDoKKyAgICAg ICBrZWVwcyBhIG1hdHJpeCByZXByZXNlbnRhdGlvbiBgQWAgb2YgdGhlIG1hdHJvaWQgc28gdGhh dCBgQVtCXSA9IElgLgorIAorLSAgICAgICAgLSBgYF9faXNfZXhjaGFuZ2VfcGFpcih4LCB5KWBg IHJlZHVjZXMgdG8gdGVzdGluZyB3aGV0aGVyIGBBW3IsIHldYAorKyAgICAgICAgLSBgYF9pc19l eGNoYW5nZV9wYWlyKHgsIHkpYGAgcmVkdWNlcyB0byB0ZXN0aW5nIHdoZXRoZXIgYEFbciwgeV1g CisgICAgICAgICAgIGlzIG5vbnplcm8sIHdoZXJlIGBBW3IsIHhdPTFgLgorLSAgICAgICAgLSBg YF9fZXhjaGFuZ2UoeCwgeSlgYCBzaG91bGQgbW9kaWZ5IHRoZSBtYXRyaXggc28gdGhhdCBgQVtC IC0geCArIHldYAorKyAgICAgICAgLSBgYF9leGNoYW5nZSh4LCB5KWBgIHNob3VsZCBtb2RpZnkg dGhlIG1hdHJpeCBzbyB0aGF0IGBBW0IgLSB4ICsgeV1gCisgICAgICAgICAgIGJlY29tZXMgYElg LCB3aGljaCBtZWFucyBwaXZvdGluZyBvbiBgQVtyLCB5XWAuCisgCisgICAgIC0gYGBUcmFuc3Zl cnNhbE1hdHJvaWRgYCAobm90IHlldCBpbXBsZW1lbnRlZCk6IElmIGBBYCBpcyBhIHNldCBvZiBz dWJzZXRzCitAQCAtMTAwLDE3ICsxMDAsMTcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0 cm9pZChNYXRyb2lkKToKKyAgICAgICBlZGdlIGAoQV9pLGUpYCBpZiBgZWAgaXMgaW4gdGhlIHN1 YnNldCBgQV9pYC4gQXQgYW55IHRpbWUgeW91IGtlZXAgYQorICAgICAgIG1heGltdW0gbWF0Y2hp bmcgYE1gIG9mIGBHYCBjb3ZlcmluZyB0aGUgY3VycmVudCBiYXNpcyBgQmAuCisgCistICAgICAg ICAtIGBgX19pc19leGNoYW5nZV9wYWlyKHgsIHkpYGAgY2hlY2tzIGZvciB0aGUgZXhpc3RlbmNl IG9mIGFuCisrICAgICAgICAtIGBgX2lzX2V4Y2hhbmdlX3BhaXIoeCwgeSlgYCBjaGVja3MgZm9y IHRoZSBleGlzdGVuY2Ugb2YgYW4KKyAgICAgICAgICAgYE1gLWFsdGVybmF0aW5nIHBhdGggYFBg IGZyb20gYHlgIHRvIGB4YC4KKy0gICAgICAgIC0gYGBfX2V4Y2hhbmdlKHgsIHkpYGAgcmVwbGFj ZXMgYE1gIGJ5IHRoZSBzeW1tZXRyaWMgZGlmZmVyZW5jZSBvZgorKyAgICAgICAgLSBgYF9leGNo YW5nZSh4LCB5KWBgIHJlcGxhY2VzIGBNYCBieSB0aGUgc3ltbWV0cmljIGRpZmZlcmVuY2Ugb2YK KyAgICAgICAgICAgYE1gIGFuZCBgRShQKWAuCisgCisgICAgIC0gYGBBbGdlYnJhaWNNYXRyb2lk YGAgKG5vdCB5ZXQgaW1wbGVtZW50ZWQpOiBrZWVwcyBhIGxpc3Qgb2YgcG9seW5vbWlhbHMKKyAg ICAgICBpbiB2YXJpYWJsZXMgYEUgLSBCICsgZWAgZm9yIGVhY2ggdmFyaWFibGUgYGVgIGluIGBC YC4KKyAKKy0gICAgICAgIC0gYGBfX2lzX2V4Y2hhbmdlX3BhaXIoeCwgeSlgYCBjaGVja3Mgd2hl dGhlciB0aGUgcG9seW5vbWlhbCB0aGF0CisrICAgICAgICAtIGBgX2lzX2V4Y2hhbmdlX3BhaXIo eCwgeSlgYCBjaGVja3Mgd2hldGhlciB0aGUgcG9seW5vbWlhbCB0aGF0CisgICAgICAgICAgIHJl bGF0ZXMgYHlgIHRvIGBFLUJgIHVzZXMgYHhgLgorLSAgICAgICAgLSBgYF9fZXhjaGFuZ2UoeCwg eSlgYCBtYWtlIG5ldyBsaXN0IG9mIHBvbHlub21pYWxzIGJ5IGNvbXB1dGluZworKyAgICAgICAg LSBgYF9leGNoYW5nZSh4LCB5KWBgIG1ha2UgbmV3IGxpc3Qgb2YgcG9seW5vbWlhbHMgYnkgY29t cHV0aW5nCisgICAgICAgICAgIHJlc3VsdGFudHMuCisgCisgICAgIEFsbCBidXQgdGhlIGZpcnN0 IG9mIHRoZSBhYm92ZSBtYXRyb2lkcyBhcmUgYWxnZWJyYWljLCBhbmQgYWxsCitAQCAtMTM5LDcg KzEzOSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAg ICAgICBUaGlzIGluaXRpYWxpemVyIHNldHMgdXAgYSBjb3JyZXNwb25kZW5jZSBiZXR3ZWVuIGVs ZW1lbnRzIG9mCisgICAgICAgICBgYGdyb3VuZHNldGBgIGFuZCBgYHJhbmdlKGxlbihncm91bmRz ZXQpKWBgLiBgYEJhc2lzRXhjaGFuZ2VNYXRyb2lkYGAKKyAgICAgICAgIHVzZXMgdGhpcyBjb3Jy ZXNwb25kZW5jZSBmb3IgZW5jb2Rpbmcgb2Ygc3Vic2V0cyBvZiB0aGUgZ3JvdW5kc2V0IGFzCist ICAgICAgICBiaXRwYWNrZWQgc2V0cyBvZiBpbnRlZ2VycyAtLS0gc2VlIGBgX19wYWNrKClgYCBh bmQgYGBfX3VucGFjaygpYGAuIEluCisrICAgICAgICBiaXRwYWNrZWQgc2V0cyBvZiBpbnRlZ2Vy cyAtLS0gc2VlIGBgX3BhY2soKWBgIGFuZCBgYF9fdW5wYWNrKClgYC4gSW4KKyAgICAgICAgIGdl bmVyYWwsIG1ldGhvZHMgb2YgYGBCYXNpc0V4Y2hhbmdlTWF0cm9pZGBgIGhhdmluZyBhIG5hbWUg c3RhcnRpbmcKKyAgICAgICAgIHdpdGggdHdvIHVuZGVyc2NvcmVzIGRlYWwgd2l0aCBzdWNoIGVu Y29kZWQgc3Vic2V0cy4KKyAKK0BAIC0xODAsNyArMTgwLDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4 Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAgICBzZWxmLl9pZHhbc2VsZi5fRVtp XV0gPSBpCisgCisgICAgICAgICBpZiBiYXNpcyBpcyBub3QgTm9uZToKKy0gICAgICAgICAgICBz ZWxmLl9fcGFjayhzZWxmLl9jdXJyZW50X2Jhc2lzLCBmcm96ZW5zZXQoYmFzaXMpKQorKyAgICAg ICAgICAgIHNlbGYuX3BhY2soc2VsZi5fY3VycmVudF9iYXNpcywgZnJvemVuc2V0KGJhc2lzKSkK KyAKKyAgICAgZGVmIF9fZGVhbGxvY19fKHNlbGYpOgorICAgICAgICAgYml0c2V0X2ZyZWUoc2Vs Zi5fY3VycmVudF9iYXNpcykKK0BAIC0xOTEsNyArMTkxLDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4 Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgIGJpdHNldF9mcmVlKHNlbGYuX291dHB1 dCkKKyAgICAgICAgIGJpdHNldF9mcmVlKHNlbGYuX3RlbXApCisgCistICAgIGNkZWYgX19yZWxh YmVsKHNlbGYsIGwpOgorKyAgICBjZGVmIF9yZWxhYmVsKHNlbGYsIGwpOgorICAgICAgICAgIiIi CisgICAgICAgICBSZWxhYmVsIGVhY2ggZWxlbWVudCBgZWAgYXMgYGxbZV1gLCB3aGVyZSBgbGAg aXMgYSBnaXZlbiBpbmplY3RpdmUgbWFwLgorIAorQEAgLTIzMSw3ICsyMzEsNyBAQCBjZGVmIGNs YXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgICAgIHNlbGYuX2hl dXJpc3RpY19wYXJ0aXRpb25fdmFyLl9yZWxhYmVsKGwpCisgCisgICAgICMgdGhlIGVuZ2luZQor LSAgICBjZGVmIF9fcGFjayhzZWxmLCBiaXRzZXRfdCBJLCBGKToKKysgICAgY2RlZiBfcGFjayhz ZWxmLCBiaXRzZXRfdCBJLCBGKToKKyAgICAgICAgICIiIgorICAgICAgICAgRW5jb2RlIGEgc3Vi c2V0IEYgb2YgdGhlIGdyb3VuZHNldCBpbnRvIGEgYml0cGFja2VkIHNldCBvZiBpbnRlZ2Vycwor ICAgICAgICAgIiIiCitAQCAtMjUyLDIxICsyNTIsMjEgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hh bmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgIHJldHVybiBmcm96ZW5zZXQoRikKKyAKKyAg ICAgIyB0aGlzIG1ldGhvZCBuZWVkcyB0byBiZSBvdmVycmlkZGVuIGJ5IGNoaWxkIGNsYXNzCist ICAgIGNkZWYgYmludCBfX2lzX2V4Y2hhbmdlX3BhaXIoc2VsZiwgbG9uZyB4LCBsb25nIHkpIGV4 Y2VwdCAtMToKKysgICAgY2RlZiBiaW50IF9pc19leGNoYW5nZV9wYWlyKHNlbGYsIGxvbmcgeCwg bG9uZyB5KSBleGNlcHQgLTE6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRlc3QgaWYgY3VycmVu dF9iYXNpcy14ICsgeSBpcyBhIGJhc2lzCisgICAgICAgICAiIiIKKyAgICAgICAgIHJhaXNlIE5v dEltcGxlbWVudGVkRXJyb3IKKyAKKyAgICAgIyBpZiB0aGlzIG1ldGhvZCBpcyBvdmVycmlkZGVu IGJ5IGEgY2hpbGQgY2xhc3MsIHRoZSBjaGlsZCBjbGFzcyBuZWVkcyB0byBjYWxsIHRoaXMgbWV0 aG9kCistICAgIGNkZWYgaW50IF9fZXhjaGFuZ2Uoc2VsZiwgbG9uZyB4LCBsb25nIHkpIGV4Y2Vw dCAtMToKKysgICAgY2RlZiBpbnQgX2V4Y2hhbmdlKHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBleGNl cHQgLTE6CisgICAgICAgICAiIiIKKyAgICAgICAgIHB1dCBjdXJyZW50X2Jhc2lzIDwtLSBjdXJy ZW50X2Jhc2lzLXggKyB5CisgICAgICAgICAiIiIKKyAgICAgICAgIGJpdHNldF9kaXNjYXJkKHNl bGYuX2N1cnJlbnRfYmFzaXMsIHgpCisgICAgICAgICBiaXRzZXRfYWRkKHNlbGYuX2N1cnJlbnRf YmFzaXMsIHkpCisgCistICAgIGNkZWYgaW50IF9fbW92ZShzZWxmLCBiaXRzZXRfdCBYLCBiaXRz ZXRfdCBZKSBleGNlcHQgLTE6CisrICAgIGNkZWYgaW50IF9tb3ZlKHNlbGYsIGJpdHNldF90IFgs IGJpdHNldF90IFkpIGV4Y2VwdCAtMToKKyAgICAgICAgICIiIgorICAgICAgICAgQ2hhbmdlIGN1 cnJlbnRfYmFzaXMgdG8gbWluaW1pemUgaW50ZXJzZWN0aW9uIHdpdGggYGBYYGAsIG1heGltaXpl IGludGVyc2VjdGlvbiB3aXRoIGBgWWBgLgorICAgICAgICAgIiIiCitAQCAtMjc1LDggKzI3NSw4 IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICB3 aGlsZSB4ID49IDA6CisgICAgICAgICAgICAgeSA9IGJpdHNldF9maXJzdChZKQorICAgICAgICAg ICAgIHdoaWxlIHkgPj0gMDoKKy0gICAgICAgICAgICAgICAgaWYgc2VsZi5fX2lzX2V4Y2hhbmdl X3BhaXIoeCwgeSk6CistICAgICAgICAgICAgICAgICAgICBzZWxmLl9fZXhjaGFuZ2UoeCwgeSkK KysgICAgICAgICAgICAgICAgaWYgc2VsZi5faXNfZXhjaGFuZ2VfcGFpcih4LCB5KToKKysgICAg ICAgICAgICAgICAgICAgIHNlbGYuX2V4Y2hhbmdlKHgsIHkpCisgICAgICAgICAgICAgICAgICAg ICBiaXRzZXRfZGlzY2FyZChZLCB5KQorICAgICAgICAgICAgICAgICAgICAgYml0c2V0X2Rpc2Nh cmQoWCwgeCkKKyAgICAgICAgICAgICAgICAgICAgIGlmIGJpdHNldF9pc2VtcHR5KFkpOgorQEAg LTI5NSw3ICsyOTUsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQp OgorICAgICAgICAgYml0c2V0X2NvbXBsZW1lbnQoc2VsZi5fdGVtcCwgc2VsZi5fY3VycmVudF9i YXNpcykKKyAgICAgICAgIHkgPSBiaXRzZXRfZmlyc3Qoc2VsZi5fdGVtcCkKKyAgICAgICAgIHdo aWxlIHkgPj0gMDoKKy0gICAgICAgICAgICBpZiBzZWxmLl9faXNfZXhjaGFuZ2VfcGFpcih4LCB5 KToKKysgICAgICAgICAgICBpZiBzZWxmLl9pc19leGNoYW5nZV9wYWlyKHgsIHkpOgorICAgICAg ICAgICAgICAgICBiaXRzZXRfYWRkKEMsIHkpCisgICAgICAgICAgICAgeSA9IGJpdHNldF9uZXh0 KHNlbGYuX3RlbXAsIHkgKyAxKQorICAgICAgICAgYml0c2V0X2FkZChDLCB4KQorQEAgLTMwOCw3 ICszMDgsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAg ICAgICAgYml0c2V0X2NsZWFyKEMpCisgICAgICAgICB4ID0gYml0c2V0X2ZpcnN0KHNlbGYuX2N1 cnJlbnRfYmFzaXMpCisgICAgICAgICB3aGlsZSB4ID49IDA6CistICAgICAgICAgICAgaWYgc2Vs Zi5fX2lzX2V4Y2hhbmdlX3BhaXIoeCwgeSk6CisrICAgICAgICAgICAgaWYgc2VsZi5faXNfZXhj aGFuZ2VfcGFpcih4LCB5KToKKyAgICAgICAgICAgICAgICAgYml0c2V0X2FkZChDLCB4KQorICAg ICAgICAgICAgIHggPSBiaXRzZXRfbmV4dChzZWxmLl9jdXJyZW50X2Jhc2lzLCB4ICsgMSkKKyAg ICAgICAgIGJpdHNldF9hZGQoQywgeSkKK0BAIC0zMTksNyArMzE5LDcgQEAgY2RlZiBjbGFzcyBC YXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICIiIgorICAgICAgICAgYml0 c2V0X2RpZmZlcmVuY2Uoc2VsZi5faW5zaWRlLCBzZWxmLl9jdXJyZW50X2Jhc2lzLCBGKQorICAg ICAgICAgYml0c2V0X2RpZmZlcmVuY2Uoc2VsZi5fb3V0c2lkZSwgRiwgc2VsZi5fY3VycmVudF9i YXNpcykKKy0gICAgICAgIHNlbGYuX19tb3ZlKHNlbGYuX2luc2lkZSwgc2VsZi5fb3V0c2lkZSkK KysgICAgICAgIHNlbGYuX21vdmUoc2VsZi5faW5zaWRlLCBzZWxmLl9vdXRzaWRlKQorICAgICAg ICAgYml0c2V0X2ludGVyc2VjdGlvbihSLCBzZWxmLl9jdXJyZW50X2Jhc2lzLCBGKQorIAorICAg ICBjZGVmIF9fY2lyY3VpdChzZWxmLCBiaXRzZXRfdCBSLCBiaXRzZXRfdCBGKToKK0BAIC0zMzUs OCArMzM1LDggQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAg ICAgICAgIHdoaWxlIHkgPj0gMDoKKyAgICAgICAgICAgICB4ID0gYml0c2V0X2ZpcnN0KHNlbGYu X2luc2lkZSkKKyAgICAgICAgICAgICB3aGlsZSB4ID49IDA6CistICAgICAgICAgICAgICAgIGlm IHNlbGYuX19pc19leGNoYW5nZV9wYWlyKHgsIHkpOgorLSAgICAgICAgICAgICAgICAgICAgc2Vs Zi5fX2V4Y2hhbmdlKHgsIHkpCisrICAgICAgICAgICAgICAgIGlmIHNlbGYuX2lzX2V4Y2hhbmdl X3BhaXIoeCwgeSk6CisrICAgICAgICAgICAgICAgICAgICBzZWxmLl9leGNoYW5nZSh4LCB5KQor ICAgICAgICAgICAgICAgICAgICAgYml0c2V0X2Rpc2NhcmQoc2VsZi5fb3V0c2lkZSwgeSkKKyAg ICAgICAgICAgICAgICAgICAgIGJpdHNldF9kaXNjYXJkKHNlbGYuX2luc2lkZSwgeCkKKyAgICAg ICAgICAgICAgICAgICAgIGlmIGJpdHNldF9pc2VtcHR5KHNlbGYuX291dHNpZGUpOgorQEAgLTM1 NSw3ICszNTUsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgor ICAgICAgICAgIiIiCisgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9pbnNpZGUsIHNl bGYuX2N1cnJlbnRfYmFzaXMsIEYpCisgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9v dXRzaWRlLCBGLCBzZWxmLl9jdXJyZW50X2Jhc2lzKQorLSAgICAgICAgc2VsZi5fX21vdmUoc2Vs Zi5faW5zaWRlLCBzZWxmLl9vdXRzaWRlKQorKyAgICAgICAgc2VsZi5fbW92ZShzZWxmLl9pbnNp ZGUsIHNlbGYuX291dHNpZGUpCisgICAgICAgICBiaXRzZXRfc2V0X2ZpcnN0X24oUiwgc2VsZi5f Z3JvdW5kc2V0X3NpemUpCisgICAgICAgICBjZGVmIGxvbmcgeCA9IGJpdHNldF9maXJzdChzZWxm Ll9pbnNpZGUpCisgICAgICAgICB3aGlsZSB4ID49IDA6CitAQCAtMzcwLDcgKzM3MCw3IEBAIGNk ZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICBiaXRzZXRf Y29tcGxlbWVudChSLCBGKQorICAgICAgICAgYml0c2V0X2RpZmZlcmVuY2Uoc2VsZi5faW5zaWRl LCBzZWxmLl9jdXJyZW50X2Jhc2lzLCBSKQorICAgICAgICAgYml0c2V0X2RpZmZlcmVuY2Uoc2Vs Zi5fb3V0c2lkZSwgUiwgc2VsZi5fY3VycmVudF9iYXNpcykKKy0gICAgICAgIHNlbGYuX19tb3Zl KHNlbGYuX2luc2lkZSwgc2VsZi5fb3V0c2lkZSkKKysgICAgICAgIHNlbGYuX21vdmUoc2VsZi5f aW5zaWRlLCBzZWxmLl9vdXRzaWRlKQorICAgICAgICAgYml0c2V0X2RpZmZlcmVuY2UoUiwgRiwg c2VsZi5fY3VycmVudF9iYXNpcykKKyAKKyAgICAgY2RlZiBfX2NvY2lyY3VpdChzZWxmLCBiaXRz ZXRfdCBSLCBiaXRzZXRfdCBGKToKK0BAIC0zODcsOCArMzg3LDggQEAgY2RlZiBjbGFzcyBCYXNp c0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgIHdoaWxlIHggPj0gMDoKKyAgICAg ICAgICAgICB5ID0gYml0c2V0X2ZpcnN0KHNlbGYuX291dHNpZGUpCisgICAgICAgICAgICAgd2hp bGUgeSA+PSAwOgorLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9faXNfZXhjaGFuZ2VfcGFpcih4 LCB5KToKKy0gICAgICAgICAgICAgICAgICAgIHNlbGYuX19leGNoYW5nZSh4LCB5KQorKyAgICAg ICAgICAgICAgICBpZiBzZWxmLl9pc19leGNoYW5nZV9wYWlyKHgsIHkpOgorKyAgICAgICAgICAg ICAgICAgICAgc2VsZi5fZXhjaGFuZ2UoeCwgeSkKKyAgICAgICAgICAgICAgICAgICAgIGJpdHNl dF9kaXNjYXJkKHNlbGYuX291dHNpZGUsIHkpCisgICAgICAgICAgICAgICAgICAgICBiaXRzZXRf ZGlzY2FyZChzZWxmLl9pbnNpZGUsIHgpCisgICAgICAgICAgICAgICAgICAgICBpZiBiaXRzZXRf aXNlbXB0eShzZWxmLl9pbnNpZGUpOgorQEAgLTQwMSwxNCArNDAxLDE0IEBAIGNkZWYgY2xhc3Mg QmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAgICAgICAgIHJldHVybgor ICAgICAgICAgICAgIHggPSBiaXRzZXRfbmV4dChzZWxmLl9pbnNpZGUsIHggKyAxKQorIAorLSAg ICBjZGVmIF9fY29jbG9zdXJlKHNlbGYsIGJpdHNldF90IFIsIGJpdHNldF90IEYpOgorKyAgICBj ZGVmIF9jb2Nsb3N1cmVfaW50ZXJuYWwoc2VsZiwgYml0c2V0X3QgUiwgYml0c2V0X3QgRik6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIEJpdHBhY2tlZCB2ZXJzaW9uIG9mIGBgY2xvc3VyZWBgLgor ICAgICAgICAgIiIiCisgICAgICAgICBiaXRzZXRfY29tcGxlbWVudChSLCBGKQorICAgICAgICAg Yml0c2V0X2RpZmZlcmVuY2Uoc2VsZi5faW5zaWRlLCBzZWxmLl9jdXJyZW50X2Jhc2lzLCBSKQor ICAgICAgICAgYml0c2V0X2RpZmZlcmVuY2Uoc2VsZi5fb3V0c2lkZSwgUiwgc2VsZi5fY3VycmVu dF9iYXNpcykKKy0gICAgICAgIHNlbGYuX19tb3ZlKHNlbGYuX2luc2lkZSwgc2VsZi5fb3V0c2lk ZSkKKysgICAgICAgIHNlbGYuX21vdmUoc2VsZi5faW5zaWRlLCBzZWxmLl9vdXRzaWRlKQorICAg ICAgICAgYml0c2V0X3NldF9maXJzdF9uKFIsIHNlbGYuX2dyb3VuZHNldF9zaXplKQorICAgICAg ICAgY2RlZiBsb25nIHkgPSBiaXRzZXRfZmlyc3Qoc2VsZi5fb3V0c2lkZSkKKyAgICAgICAgIHdo aWxlIHkgPj0gMDoKK0BAIC00MjIsMTAgKzQyMiwxMCBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFu Z2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgIiIiCisgICAgICAgICBiaXRzZXRfZGlmZmVy ZW5jZShzZWxmLl9pbnNpZGUsIHNlbGYuX2N1cnJlbnRfYmFzaXMsIFgpCisgICAgICAgICBiaXRz ZXRfZGlmZmVyZW5jZShzZWxmLl9vdXRzaWRlLCBYLCBzZWxmLl9jdXJyZW50X2Jhc2lzKQorLSAg ICAgICAgc2VsZi5fX21vdmUoc2VsZi5faW5zaWRlLCBzZWxmLl9vdXRzaWRlKQorKyAgICAgICAg c2VsZi5fbW92ZShzZWxmLl9pbnNpZGUsIHNlbGYuX291dHNpZGUpCisgICAgICAgICBiaXRzZXRf ZGlmZmVyZW5jZShzZWxmLl9pbnNpZGUsIHNlbGYuX2luc2lkZSwgWSkKKyAgICAgICAgIGJpdHNl dF9kaWZmZXJlbmNlKHNlbGYuX291dHNpZGUsIFksIHNlbGYuX2N1cnJlbnRfYmFzaXMpCistICAg ICAgICBzZWxmLl9fbW92ZShzZWxmLl9pbnNpZGUsIHNlbGYuX291dHNpZGUpCisrICAgICAgICBz ZWxmLl9tb3ZlKHNlbGYuX2luc2lkZSwgc2VsZi5fb3V0c2lkZSkKKyAgICAgICAgIGJpdHNldF9p bnRlcnNlY3Rpb24oUiwgc2VsZi5fY3VycmVudF9iYXNpcywgWSkKKyAKKyAgICAgY2RlZiBiaW50 IF9faXNfaW5kZXBlbmRlbnQoc2VsZiwgYml0c2V0X3QgRikgZXhjZXB0IC0xOgorQEAgLTQzNCw3 ICs0MzQsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAg ICAgICAgIiIiCisgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9pbnNpZGUsIHNlbGYu X2N1cnJlbnRfYmFzaXMsIEYpCisgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9vdXRz aWRlLCBGLCBzZWxmLl9jdXJyZW50X2Jhc2lzKQorLSAgICAgICAgc2VsZi5fX21vdmUoc2VsZi5f aW5zaWRlLCBzZWxmLl9vdXRzaWRlKQorKyAgICAgICAgc2VsZi5fbW92ZShzZWxmLl9pbnNpZGUs IHNlbGYuX291dHNpZGUpCisgICAgICAgICByZXR1cm4gYml0c2V0X2lzZW1wdHkoc2VsZi5fb3V0 c2lkZSkKKyAKKyAgICAgY2RlZiBfX21vdmVfY3VycmVudF9iYXNpcyhzZWxmLCBiaXRzZXRfdCBY LCBiaXRzZXRfdCBZKToKK0BAIC00NDMsMjEgKzQ0MywyMSBAQCBjZGVmIGNsYXNzIEJhc2lzRXhj aGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgIiIiCisgICAgICAgICBiaXRzZXRfZGlm ZmVyZW5jZShzZWxmLl9pbnNpZGUsIHNlbGYuX2N1cnJlbnRfYmFzaXMsIFgpCisgICAgICAgICBi aXRzZXRfZGlmZmVyZW5jZShzZWxmLl9vdXRzaWRlLCBYLCBzZWxmLl9jdXJyZW50X2Jhc2lzKQor LSAgICAgICAgc2VsZi5fX21vdmUoc2VsZi5faW5zaWRlLCBzZWxmLl9vdXRzaWRlKQorKyAgICAg ICAgc2VsZi5fbW92ZShzZWxmLl9pbnNpZGUsIHNlbGYuX291dHNpZGUpCisgICAgICAgICBiaXRz ZXRfaW50ZXJzZWN0aW9uKHNlbGYuX2luc2lkZSwgc2VsZi5fY3VycmVudF9iYXNpcywgWSkKKyAg ICAgICAgIGJpdHNldF9jb21wbGVtZW50KHNlbGYuX291dHNpZGUsIHNlbGYuX2N1cnJlbnRfYmFz aXMpCisgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9vdXRzaWRlLCBzZWxmLl9vdXRz aWRlLCBZKQorLSAgICAgICAgc2VsZi5fX21vdmUoc2VsZi5faW5zaWRlLCBzZWxmLl9vdXRzaWRl KQorKyAgICAgICAgc2VsZi5fbW92ZShzZWxmLl9pbnNpZGUsIHNlbGYuX291dHNpZGUpCisgCisg ICAgICMgZnVuY3Rpb25zIGZvciBkZXJpdmVkIGNsYXNzZXMgYW5kIGZvciBwYXJlbnQgY2xhc3MK KyAgICAgY2RlZiBiaW50IF9zZXRfY3VycmVudF9iYXNpcyhzZWxmLCBGKToKKyAgICAgICAgICIi IgorICAgICAgICAgU2V0IF9jdXJyZW50X2Jhc2lzIHRvIHN1YnNldCBvZiB0aGUgZ3JvdW5kc2V0 IGBgRmBgLgorICAgICAgICAgIiIiCistICAgICAgICBzZWxmLl9fcGFjayhzZWxmLl9pbnB1dCwg RikKKysgICAgICAgIHNlbGYuX3BhY2soc2VsZi5faW5wdXQsIEYpCisgICAgICAgICBiaXRzZXRf ZGlmZmVyZW5jZShzZWxmLl9pbnNpZGUsIHNlbGYuX2N1cnJlbnRfYmFzaXMsIHNlbGYuX2lucHV0 KQorICAgICAgICAgYml0c2V0X2RpZmZlcmVuY2Uoc2VsZi5fb3V0c2lkZSwgc2VsZi5faW5wdXQs IHNlbGYuX2N1cnJlbnRfYmFzaXMpCistICAgICAgICBzZWxmLl9fbW92ZShzZWxmLl9pbnNpZGUs IHNlbGYuX291dHNpZGUpCisrICAgICAgICBzZWxmLl9tb3ZlKHNlbGYuX2luc2lkZSwgc2VsZi5f b3V0c2lkZSkKKyAgICAgICAgIHJldHVybiBiaXRzZXRfaXNlbXB0eShzZWxmLl9vdXRzaWRlKSBh bmQgYml0c2V0X2lzZW1wdHkoc2VsZi5faW5zaWRlKQorIAorICAgICAjIGdyb3VuZHNldCBhbmQg ZnVsbF9yYW5rCitAQCAtNjMwLDggKzYzMCw4IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1h dHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAgICAgWydiJywgJ2MnLCAnZScsICdmJ10KKyAKKyAg ICAgICAgICIiIgorLSAgICAgICAgc2VsZi5fX3BhY2soc2VsZi5faW5wdXQsIFgpCistICAgICAg ICBzZWxmLl9fcGFjayhzZWxmLl9pbnB1dDIsIFkpCisrICAgICAgICBzZWxmLl9wYWNrKHNlbGYu X2lucHV0LCBYKQorKyAgICAgICAgc2VsZi5fcGFjayhzZWxmLl9pbnB1dDIsIFkpCisgICAgICAg ICBzZWxmLl9fbW92ZV9jdXJyZW50X2Jhc2lzKHNlbGYuX2lucHV0LCBzZWxmLl9pbnB1dDIpCisg CisgICAgIGNwZGVmIF9tYXhfaW5kZXBlbmRlbnQoc2VsZiwgRik6CitAQCAtNjYxLDcgKzY2MSw3 IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAg ICAgc2VlIDptZXRoOmA8c2FnZS5tYXRyb2lkcy5tYXRyb2lkLk1hdHJvaWQubWF4X2luZGVwZW5k ZW50PmAuCisgCisgICAgICAgICAiIiIKKy0gICAgICAgIHNlbGYuX19wYWNrKHNlbGYuX2lucHV0 LCBGKQorKyAgICAgICAgc2VsZi5fcGFjayhzZWxmLl9pbnB1dCwgRikKKyAgICAgICAgIHNlbGYu X19tYXhfaW5kZXBlbmRlbnQoc2VsZi5fb3V0cHV0LCBzZWxmLl9pbnB1dCkKKyAgICAgICAgIHJl dHVybiBzZWxmLl9fdW5wYWNrKHNlbGYuX291dHB1dCkKKyAKK0BAIC02OTIsNyArNjkyLDcgQEAg Y2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAgICBz ZWUgOm1ldGg6YDxzYWdlLm1hdHJvaWRzLm1hdHJvaWQuTWF0cm9pZC5yYW5rPmAuCisgCisgICAg ICAgICAiIiIKKy0gICAgICAgIHNlbGYuX19wYWNrKHNlbGYuX2lucHV0LCBGKQorKyAgICAgICAg c2VsZi5fcGFjayhzZWxmLl9pbnB1dCwgRikKKyAgICAgICAgIHNlbGYuX19tYXhfaW5kZXBlbmRl bnQoc2VsZi5fb3V0cHV0LCBzZWxmLl9pbnB1dCkKKyAgICAgICAgIHJldHVybiBiaXRzZXRfbGVu KHNlbGYuX291dHB1dCkKKyAKK0BAIC03MjksNyArNzI5LDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4 Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAgICB0aGUgaW5wdXQgaXMgaW5kZWVk IGEgc3Vic2V0IG9mIHRoZSBncm91bmQgc2V0LAorICAgICAgICAgICAgIHNlZSA6bWV0aDpgPHNh Z2UubWF0cm9pZHMubWF0cm9pZC5NYXRyb2lkLmNpcmN1aXQ+YC4KKyAgICAgICAgICIiIgorLSAg ICAgICAgc2VsZi5fX3BhY2soc2VsZi5faW5wdXQsIEYpCisrICAgICAgICBzZWxmLl9wYWNrKHNl bGYuX2lucHV0LCBGKQorICAgICAgICAgc2VsZi5fX2NpcmN1aXQoc2VsZi5fb3V0cHV0LCBzZWxm Ll9pbnB1dCkKKyAgICAgICAgIHJldHVybiBzZWxmLl9fdW5wYWNrKHNlbGYuX291dHB1dCkKKyAK K0BAIC03NTQsNyArNzU0LDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRy b2lkKToKKyAgICAgICAgICAgICBzYWdlOiBzb3J0ZWQoTS5fZnVuZGFtZW50YWxfY2lyY3VpdCgn YWJjZCcsICdlJykpCisgICAgICAgICAgICAgWydhJywgJ2InLCAnYycsICdlJ10KKyAgICAgICAg ICIiIgorLSAgICAgICAgc2VsZi5fX3BhY2soc2VsZi5faW5wdXQsIEIpCisrICAgICAgICBzZWxm Ll9wYWNrKHNlbGYuX2lucHV0LCBCKQorICAgICAgICAgYml0c2V0X2NsZWFyKHNlbGYuX2lucHV0 MikKKyAgICAgICAgIHNlbGYuX19tb3ZlX2N1cnJlbnRfYmFzaXMoc2VsZi5faW5wdXQsIHNlbGYu X2lucHV0MikKKyAgICAgICAgIHNlbGYuX19mdW5kYW1lbnRhbF9jaXJjdWl0KHNlbGYuX291dHB1 dCwgc2VsZi5faWR4W2VdKQorQEAgLTc4Nyw3ICs3ODcsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhj aGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgICAgIDptZXRoOmA8c2FnZS5tYXRyb2lk cy5tYXRyb2lkLk1hdHJvaWQuY2xvc3VyZT5gLgorIAorICAgICAgICAgIiIiCistICAgICAgICBz ZWxmLl9fcGFjayhzZWxmLl9pbnB1dCwgRikKKysgICAgICAgIHNlbGYuX3BhY2soc2VsZi5faW5w dXQsIEYpCisgICAgICAgICBzZWxmLl9fY2xvc3VyZShzZWxmLl9vdXRwdXQsIHNlbGYuX2lucHV0 KQorICAgICAgICAgcmV0dXJuIHNlbGYuX191bnBhY2soc2VsZi5fb3V0cHV0KQorIAorQEAgLTgx OCw3ICs4MTgsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgor ICAgICAgICAgICAgIHNlZSA6bWV0aDpgPHNhZ2UubWF0cm9pZHMubWF0cm9pZC5NYXRyb2lkLm1h eF9jb2luZGVwZW5kZW50PmAuCisgCisgICAgICAgICAiIiIKKy0gICAgICAgIHNlbGYuX19wYWNr KHNlbGYuX2lucHV0LCBGKQorKyAgICAgICAgc2VsZi5fcGFjayhzZWxmLl9pbnB1dCwgRikKKyAg ICAgICAgIHNlbGYuX19tYXhfY29pbmRlcGVuZGVudChzZWxmLl9vdXRwdXQsIHNlbGYuX2lucHV0 KQorICAgICAgICAgcmV0dXJuIHNlbGYuX191bnBhY2soc2VsZi5fb3V0cHV0KQorIAorQEAgLTg0 OCw3ICs4NDgsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgor ICAgICAgICAgICAgIGlucHV0IGlzIGluZGVlZCBhIHN1YnNldCBvZiB0aGUgZ3JvdW5kIHNldCwK KyAgICAgICAgICAgICBzZWUgOm1ldGg6YDxzYWdlLm1hdHJvaWRzLm1hdHJvaWQuTWF0cm9pZC5j b3Jhbms+YC4KKyAgICAgICAgICIiIgorLSAgICAgICAgc2VsZi5fX3BhY2soc2VsZi5faW5wdXQs IEYpCisrICAgICAgICBzZWxmLl9wYWNrKHNlbGYuX2lucHV0LCBGKQorICAgICAgICAgc2VsZi5f X21heF9jb2luZGVwZW5kZW50KHNlbGYuX291dHB1dCwgc2VsZi5faW5wdXQpCisgICAgICAgICBy ZXR1cm4gYml0c2V0X2xlbihzZWxmLl9vdXRwdXQpCisgCitAQCAtODg1LDcgKzg4NSw3IEBAIGNk ZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAgICAgaW5w dXQgaXMgaW5kZWVkIGEgc3Vic2V0IG9mIHRoZSBncm91bmQgc2V0LAorICAgICAgICAgICAgIHNl ZSA6bWV0aDpgPHNhZ2UubWF0cm9pZHMubWF0cm9pZC5NYXRyb2lkLmNvY2lyY3VpdD5gLgorICAg ICAgICAgIiIiCistICAgICAgICBzZWxmLl9fcGFjayhzZWxmLl9pbnB1dCwgRikKKysgICAgICAg IHNlbGYuX3BhY2soc2VsZi5faW5wdXQsIEYpCisgICAgICAgICBzZWxmLl9fY29jaXJjdWl0KHNl bGYuX291dHB1dCwgc2VsZi5faW5wdXQpCisgICAgICAgICByZXR1cm4gc2VsZi5fX3VucGFjayhz ZWxmLl9vdXRwdXQpCisgCitAQCAtOTEwLDcgKzkxMCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNo YW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAgICAgc2FnZTogc29ydGVkKE0uX2Z1bmRh bWVudGFsX2NvY2lyY3VpdCgnZWZnaCcsICdlJykpCisgICAgICAgICAgICAgWydiJywgJ2MnLCAn ZCcsICdlJ10KKyAgICAgICAgICIiIgorLSAgICAgICAgc2VsZi5fX3BhY2soc2VsZi5faW5wdXQs IEIpCisrICAgICAgICBzZWxmLl9wYWNrKHNlbGYuX2lucHV0LCBCKQorICAgICAgICAgYml0c2V0 X2NsZWFyKHNlbGYuX2lucHV0MikKKyAgICAgICAgIHNlbGYuX19tb3ZlX2N1cnJlbnRfYmFzaXMo c2VsZi5faW5wdXQsIHNlbGYuX2lucHV0MikKKyAgICAgICAgIHNlbGYuX19mdW5kYW1lbnRhbF9j b2NpcmN1aXQoc2VsZi5fb3V0cHV0LCBzZWxmLl9pZHhbZV0pCitAQCAtOTQzLDggKzk0Myw4IEBA IGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAgICAg c2VlIDptZXRoOmA8c2FnZS5tYXRyb2lkcy5tYXRyb2lkLk1hdHJvaWQuY29jbG9zdXJlPmAuCisg CisgICAgICAgICAiIiIKKy0gICAgICAgIHNlbGYuX19wYWNrKHNlbGYuX2lucHV0LCBGKQorLSAg ICAgICAgc2VsZi5fX2NvY2xvc3VyZShzZWxmLl9vdXRwdXQsIHNlbGYuX2lucHV0KQorKyAgICAg ICAgc2VsZi5fcGFjayhzZWxmLl9pbnB1dCwgRikKKysgICAgICAgIHNlbGYuX2NvY2xvc3VyZV9p bnRlcm5hbChzZWxmLl9vdXRwdXQsIHNlbGYuX2lucHV0KQorICAgICAgICAgcmV0dXJuIHNlbGYu X191bnBhY2soc2VsZi5fb3V0cHV0KQorIAorICAgICBjcGRlZiBfYXVnbWVudChzZWxmLCBYLCBZ KToKK0BAIC05NzMsOCArOTczLDggQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChN YXRyb2lkKToKKyAgICAgICAgICAgICBbJ2UnLCAnZicsICdnJ10KKyAKKyAgICAgICAgICIiIgor LSAgICAgICAgc2VsZi5fX3BhY2soc2VsZi5faW5wdXQsIFgpCistICAgICAgICBzZWxmLl9fcGFj ayhzZWxmLl9pbnB1dDIsIFkpCisrICAgICAgICBzZWxmLl9wYWNrKHNlbGYuX2lucHV0LCBYKQor KyAgICAgICAgc2VsZi5fcGFjayhzZWxmLl9pbnB1dDIsIFkpCisgICAgICAgICBzZWxmLl9fYXVn bWVudChzZWxmLl9vdXRwdXQsIHNlbGYuX2lucHV0LCBzZWxmLl9pbnB1dDIpCisgICAgICAgICBy ZXR1cm4gc2VsZi5fX3VucGFjayhzZWxmLl9vdXRwdXQpCisgCitAQCAtMTAwNiw3ICsxMDA2LDcg QEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAg ICB0aGUgaW5wdXQgaXMgaW5kZWVkIGEgc3Vic2V0IG9mIHRoZSBncm91bmQgc2V0LAorICAgICAg ICAgICAgIHNlZSA6bWV0aDpgPHNhZ2UubWF0cm9pZHMubWF0cm9pZC5NYXRyb2lkLmlzX2luZGVw ZW5kZW50PmAuCisgICAgICAgICAiIiIKKy0gICAgICAgIHNlbGYuX19wYWNrKHNlbGYuX2lucHV0 LCBGKQorKyAgICAgICAgc2VsZi5fcGFjayhzZWxmLl9pbnB1dCwgRikKKyAgICAgICAgIHJldHVy biBzZWxmLl9faXNfaW5kZXBlbmRlbnQoc2VsZi5faW5wdXQpCisgCisgICAgICMgY29ubmVjdGl2 aXR5CitAQCAtMTE0Miw4ICsxMTQyLDggQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9p ZChNYXRyb2lkKToKKyAgICAgICAgIGNkZWYgYml0c2V0X3QgU1MsIFRUCisgICAgICAgICBiaXRz ZXRfaW5pdChTUywgc2VsZi5fZ3JvdW5kc2V0X3NpemUpCisgICAgICAgICBiaXRzZXRfaW5pdChU VCwgc2VsZi5fZ3JvdW5kc2V0X3NpemUpCistICAgICAgICBzZWxmLl9fcGFjayhTUyxTKQorLSAg ICAgICAgc2VsZi5fX3BhY2soVFQsVCkKKysgICAgICAgIHNlbGYuX3BhY2soU1MsUykKKysgICAg ICAgIHNlbGYuX3BhY2soVFQsVCkKKyAgICAgICAgICNGID0gc2V0KHNlbGYuZ3JvdW5kc2V0KCkp IC0gKFMgfCBUKQorICAgICAgICAgY2RlZiBiaXRzZXRfdCBGLCBJCisgICAgICAgICBiaXRzZXRf aW5pdChGLCBzZWxmLl9ncm91bmRzZXRfc2l6ZSkKK0BAIC0xNDIxLDcgKzE0MjEsNyBAQCBjZGVm IGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgUmNvZmxhdHMg PSBTZXRTeXN0ZW0oc2VsZi5fRSkKKyAgICAgICAgIGkgPSAwCisgICAgICAgICBiaXRzZXRfY2xl YXIodG9kb1swXSkKKy0gICAgICAgIHNlbGYuX19jb2Nsb3N1cmUoY29mbGF0c1swXSwgdG9kb1sw XSkKKysgICAgICAgIHNlbGYuX2NvY2xvc3VyZV9pbnRlcm5hbChjb2ZsYXRzWzBdLCB0b2RvWzBd KQorICAgICAgICAgYml0c2V0X2NvbXBsZW1lbnQodG9kb1swXSwgY29mbGF0c1swXSkKKyAgICAg ICAgIHNlbGYuX2NvZmxhdHNfcmVjKFJjb2ZsYXRzLCByLCBjb2ZsYXRzLCB0b2RvLCAwLCAwKQor ICAgICAgICAgZm9yIGkgaW4gcmFuZ2UociArIDEpOgorQEAgLTE0NDMsNyArMTQ0Myw3IEBAIGNk ZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICB3aGlsZSBl ID49IDA6CisgICAgICAgICAgICAgYml0c2V0X2NvcHkoc2VsZi5faW5wdXQsIGNvZmxhdHNbaV0p CisgICAgICAgICAgICAgYml0c2V0X2FkZChzZWxmLl9pbnB1dCwgZSkKKy0gICAgICAgICAgICBz ZWxmLl9fY29jbG9zdXJlKGNvZmxhdHNbaSArIDFdLCBzZWxmLl9pbnB1dCkKKysgICAgICAgICAg ICBzZWxmLl9jb2Nsb3N1cmVfaW50ZXJuYWwoY29mbGF0c1tpICsgMV0sIHNlbGYuX2lucHV0KQor ICAgICAgICAgICAgIGJpdHNldF9kaWZmZXJlbmNlKHRvZG9baV0sIHRvZG9baV0sIGNvZmxhdHNb aSArIDFdKQorICAgICAgICAgICAgIGJpdHNldF9kaWZmZXJlbmNlKHRvZG9baSArIDFdLCBjb2Zs YXRzW2kgKyAxXSwgY29mbGF0c1tpXSkKKyAgICAgICAgICAgICBpZiBiaXRzZXRfZmlyc3QodG9k b1tpICsgMV0pID09IGU6CitAQCAtMjM5Nyw3ICsyMzk3LDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4 Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAgICAgICAgIyBTZXQgY3VycmVudCBi YXNpcyB0byBZCisgICAgICAgICAgICAgICAgIGJpdHNldF9kaWZmZXJlbmNlKHNlbGYuX2luc2lk ZSwgc2VsZi5fY3VycmVudF9iYXNpcywgQkIuX3N1YnNldHNbcG9pbnRlclldKQorICAgICAgICAg ICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9vdXRzaWRlLCBCQi5fc3Vic2V0c1twb2lu dGVyWV0sIHNlbGYuX2N1cnJlbnRfYmFzaXMpCistICAgICAgICAgICAgICAgIHNlbGYuX19tb3Zl KHNlbGYuX2luc2lkZSwgc2VsZi5fb3V0c2lkZSkKKysgICAgICAgICAgICAgICAgc2VsZi5fbW92 ZShzZWxmLl9pbnNpZGUsIHNlbGYuX291dHNpZGUpCisgICAgICAgICAgICAgICAgIGlmIG5vdCBi aXRzZXRfZXEoc2VsZi5fY3VycmVudF9iYXNpcywgQkIuX3N1YnNldHNbcG9pbnRlclldKToKKyAg ICAgICAgICAgICAgICAgICAgICMgV2UgZmFpbGVkIHRvIHNldCB0aGUgY3VycmVudCBiYXNpcyB0 byBZIHRocm91Z2ggYmFzaXMgZXhjaGFuZ2VzLgorICAgICAgICAgICAgICAgICAgICAgIyBUaGVy ZWZvcmUsIHRoZSBleGNoYW5nZSBheGlvbXMgYXJlIHZpb2xhdGVkIQorQEAgLTI0MDksNyArMjQw OSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAg ICAgICAgICAgICAgICBmb3VuZHBhaXIgPSBGYWxzZQorICAgICAgICAgICAgICAgICAgICAgeSA9 IGJpdHNldF9maXJzdChzZWxmLl9pbnB1dDIpCisgICAgICAgICAgICAgICAgICAgICB3aGlsZSB5 ID49IDA6ICAjIGZvciB5IGluIFktWAorLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYu X19pc19leGNoYW5nZV9wYWlyKHksIHgpOgorKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNl bGYuX2lzX2V4Y2hhbmdlX3BhaXIoeSwgeCk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZvdW5kcGFpciA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeSA9IC0xCisg ICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRy b2lkcy9iYXNpc19tYXRyb2lkLnB5eCBiL3NyYy9zYWdlL21hdHJvaWRzL2Jhc2lzX21hdHJvaWQu cHl4CitpbmRleCAzYWM0MzExMjYyNy4uYzFiNmU5YjA0YzggMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9tYXRyb2lkcy9iYXNpc19tYXRyb2lkLnB5eAorKysrIGIvc3JjL3NhZ2UvbWF0cm9pZHMvYmFz aXNfbWF0cm9pZC5weXgKK0BAIC0yMTksNyArMjE5LDcgQEAgY2RlZiBjbGFzcyBCYXNpc01hdHJv aWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFs dWVFcnJvcigiYmFzaXMgaGFzIHdyb25nIGNhcmRpbmFsaXR5LiIpCisgICAgICAgICAgICAgICAg IGlmIG5vdCBiLmlzc3Vic2V0KHNlbGYuX2dyb3VuZHNldCk6CisgICAgICAgICAgICAgICAgICAg ICByYWlzZSBWYWx1ZUVycm9yKCJiYXNpcyBpcyBub3QgYSBzdWJzZXQgb2YgdGhlIGdyb3VuZHNl dCIpCistICAgICAgICAgICAgICAgIHNlbGYuX19wYWNrKHNlbGYuX2IsIGIpCisrICAgICAgICAg ICAgICAgIHNlbGYuX3BhY2soc2VsZi5fYiwgYikKKyAgICAgICAgICAgICAgICAgaSA9IHNldF90 b19pbmRleChzZWxmLl9iKQorICAgICAgICAgICAgICAgICBpZiBub3QgYml0c2V0X2luKHNlbGYu X2JiLCBpKToKKyAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2Jjb3VudCArPSAxCitAQCAtMjM0 LDcgKzIzNCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lk KToKKyAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJub25iYXNpcyBo YXMgd3JvbmcgY2FyZGluYWxpdHkiKQorICAgICAgICAgICAgICAgICAgICAgaWYgbm90IGIuaXNz dWJzZXQoc2VsZi5fZ3JvdW5kc2V0KToKKyAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBW YWx1ZUVycm9yKCJub25iYXNpcyBpcyBub3QgYSBzdWJzZXQgb2YgdGhlIGdyb3VuZHNldCIpCist ICAgICAgICAgICAgICAgICAgICBzZWxmLl9fcGFjayhzZWxmLl9iLCBiKQorKyAgICAgICAgICAg ICAgICAgICAgc2VsZi5fcGFjayhzZWxmLl9iLCBiKQorICAgICAgICAgICAgICAgICAgICAgaSA9 IHNldF90b19pbmRleChzZWxmLl9iKQorICAgICAgICAgICAgICAgICAgICAgaWYgYml0c2V0X2lu KHNlbGYuX2JiLCBpKToKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9iY291bnQgLT0g MQorQEAgLTI2Myw3ICsyNjMsNyBAQCBjZGVmIGNsYXNzIEJhc2lzTWF0cm9pZChCYXNpc0V4Y2hh bmdlTWF0cm9pZCk6CisgCisgICAgICMgc3VwcG9ydCBmb3IgcGFyZW50IEJhc2lzRXhjaGFuZ2VN YXRyb2lkCisgCistICAgIGNkZWYgYmludCBfX2lzX2V4Y2hhbmdlX3BhaXIoc2VsZiwgbG9uZyB4 LCBsb25nIHkpIGV4Y2VwdCAtMTogICAgICAjIHRlc3QgaWYgY3VycmVudF9iYXNpcy14ICsgeSBp cyBhIGJhc2lzCisrICAgIGNkZWYgYmludCBfaXNfZXhjaGFuZ2VfcGFpcihzZWxmLCBsb25nIHgs IGxvbmcgeSkgZXhjZXB0IC0xOiAgICAgICMgdGVzdCBpZiBjdXJyZW50X2Jhc2lzLXggKyB5IGlz IGEgYmFzaXMKKyAgICAgICAgICIiIgorICAgICAgICAgVGVzdCBpZiBgQi1lICsgZmAgaXMgYSBi YXNpcyBvZiB0aGUgY3VycmVudCBtYXRyb2lkLgorIAorQEAgLTMyNiw3ICszMjYsNyBAQCBjZGVm IGNsYXNzIEJhc2lzTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgICAgICAgICAg c2FnZTogTS5faXNfYmFzaXMoc2V0KFsnYScsICdiJywgJ2MnLCAnZCddKSkKKyAgICAgICAgICAg ICBGYWxzZQorICAgICAgICAgIiIiCistICAgICAgICBzZWxmLl9fcGFjayhzZWxmLl9iLCBYKQor KyAgICAgICAgc2VsZi5fcGFjayhzZWxmLl9iLCBYKQorICAgICAgICAgcmV0dXJuIGJpdHNldF9p bihzZWxmLl9iYiwgc2V0X3RvX2luZGV4KHNlbGYuX2IpKQorIAorICAgICAjIGR1YWwgYW5kIG1p bm9ycworQEAgLTU1Nyw3ICs1NTcsNyBAQCBjZGVmIGNsYXNzIEJhc2lzTWF0cm9pZChCYXNpc0V4 Y2hhbmdlTWF0cm9pZCk6CisgCisgICAgICAgICAiIiIKKyAgICAgICAgIE0gPSBCYXNpc01hdHJv aWQoTT1zZWxmKQorLSAgICAgICAgTS5fX3JlbGFiZWwobCkKKysgICAgICAgIE0uX3JlbGFiZWwo bCkKKyAgICAgICAgIHJldHVybiBNCisgCisgICAgICMgZW51bWVyYXRpb24KK0BAIC0xMTc3LDcg KzExNzcsNyBAQCBjZGVmIGNsYXNzIEJhc2lzTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6 CisgCisgICAgICAgICAiIiIKKyAgICAgICAgIE4gPSBCYXNpc01hdHJvaWQoTT1zZWxmKQorLSAg ICAgICAgTi5yZW5hbWUoZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpKQorKyAgICAgICAg Ti5yZW5hbWUoc2VsZi5nZXRfY3VzdG9tX25hbWUoKSkKKyAgICAgICAgIHJldHVybiBOCisgCisg ICAgIGRlZiBfX2RlZXBjb3B5X18oc2VsZiwgbWVtbz1Ob25lKToKK0BAIC0xMjAxLDcgKzEyMDEs NyBAQCBjZGVmIGNsYXNzIEJhc2lzTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAg ICAgICBpZiBtZW1vIGlzIE5vbmU6CisgICAgICAgICAgICAgbWVtbyA9IHt9CisgICAgICAgICBO ID0gQmFzaXNNYXRyb2lkKE09c2VsZikKKy0gICAgICAgIE4ucmVuYW1lKGdldGF0dHIoc2VsZiwg J19fY3VzdG9tX25hbWUnKSkKKysgICAgICAgIE4ucmVuYW1lKHNlbGYuZ2V0X2N1c3RvbV9uYW1l KCkpCisgICAgICAgICByZXR1cm4gTgorIAorICAgICBkZWYgX19yZWR1Y2VfXyhzZWxmKToKK0BA IC0xMjMwLDcgKzEyMzAsNyBAQCBjZGVmIGNsYXNzIEJhc2lzTWF0cm9pZChCYXNpc0V4Y2hhbmdl TWF0cm9pZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIGltcG9ydCBzYWdlLm1hdHJvaWRzLnVu cGlja2xpbmcKKyAgICAgICAgIEJCID0gYml0c2V0X3BpY2tsZShzZWxmLl9iYikKKy0gICAgICAg IGRhdGEgPSAoc2VsZi5fRSwgc2VsZi5fbWF0cm9pZF9yYW5rLCBnZXRhdHRyKHNlbGYsICdfX2N1 c3RvbV9uYW1lJyksIEJCKQorKyAgICAgICAgZGF0YSA9IChzZWxmLl9FLCBzZWxmLl9tYXRyb2lk X3JhbmssIHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCksIEJCKQorICAgICAgICAgdmVyc2lvbiA9IDAK KyAgICAgICAgIHJldHVybiBzYWdlLm1hdHJvaWRzLnVucGlja2xpbmcudW5waWNrbGVfYmFzaXNf bWF0cm9pZCwgKHZlcnNpb24sIGRhdGEpCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cm9p ZHMvY2lyY3VpdF9jbG9zdXJlc19tYXRyb2lkLnB5eCBiL3NyYy9zYWdlL21hdHJvaWRzL2NpcmN1 aXRfY2xvc3VyZXNfbWF0cm9pZC5weXgKK2luZGV4IDQwMjgyMmIyZGM2Li40ZTc5YjA1NzVlMiAx MDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJvaWRzL2NpcmN1aXRfY2xvc3VyZXNfbWF0cm9pZC5w eXgKKysrKyBiL3NyYy9zYWdlL21hdHJvaWRzL2NpcmN1aXRfY2xvc3VyZXNfbWF0cm9pZC5weXgK K0BAIC01MTMsOCArNTEzLDcgQEAgY2RlZiBjbGFzcyBDaXJjdWl0Q2xvc3VyZXNNYXRyb2lkKE1h dHJvaWQpOgorICAgICAgICAgTi5fZ3JvdW5kc2V0ID0gc2VsZi5fZ3JvdW5kc2V0CisgICAgICAg ICBOLl9jaXJjdWl0X2Nsb3N1cmVzID0gc2VsZi5fY2lyY3VpdF9jbG9zdXJlcworICAgICAgICAg Ti5fbWF0cm9pZF9yYW5rID0gc2VsZi5fbWF0cm9pZF9yYW5rCistICAgICAgICBpZiBnZXRhdHRy KHNlbGYsICdfX2N1c3RvbV9uYW1lJykgaXMgbm90IE5vbmU6ICAjIGJlY2F1c2Ugb2YgbmFtZSB3 cmFuZ2xpbmcsIHRoaXMgaXMgbm90IGNhdWdodCBieSB0aGUgZGVmYXVsdCBjb3B5CistICAgICAg ICAgICAgTi5yZW5hbWUoZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpKQorKyAgICAgICAg Ti5yZW5hbWUoc2VsZi5nZXRfY3VzdG9tX25hbWUoKSkKKyAgICAgICAgIHJldHVybiBOCisgCisg ICAgIGRlZiBfX2RlZXBjb3B5X18oc2VsZiwgbWVtbz1Ob25lKToKK0BAIC01MzksOCArNTM4LDcg QEAgY2RlZiBjbGFzcyBDaXJjdWl0Q2xvc3VyZXNNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAg ZnJvbSBjb3B5IGltcG9ydCBkZWVwY29weQorICAgICAgICAgIyBTaW5jZSBtYXRyb2lkcyBhcmUg aW1tdXRhYmxlLCBOIGNhbm5vdCByZWZlcmVuY2UgaXRzZWxmIGluIGNvcnJlY3QgY29kZSwgc28g bm8gbmVlZCB0byB3b3JyeSBhYm91dCB0aGUgcmVjdXJzaW9uLgorICAgICAgICAgTiA9IENpcmN1 aXRDbG9zdXJlc01hdHJvaWQoZ3JvdW5kc2V0PWRlZXBjb3B5KHNlbGYuX2dyb3VuZHNldCwgbWVt byksIGNpcmN1aXRfY2xvc3VyZXM9ZGVlcGNvcHkoc2VsZi5fY2lyY3VpdF9jbG9zdXJlcywgbWVt bykpCistICAgICAgICBpZiBnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJykgaXMgbm90IE5v bmU6ICAjIGJlY2F1c2Ugb2YgbmFtZSB3cmFuZ2xpbmcsIHRoaXMgaXMgbm90IGNhdWdodCBieSB0 aGUgZGVmYXVsdCBkZWVwY29weQorLSAgICAgICAgICAgIE4ucmVuYW1lKGRlZXBjb3B5KGdldGF0 dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSwgbWVtbykpCisrICAgICAgICBOLnJlbmFtZShkZWVw Y29weShzZWxmLmdldF9jdXN0b21fbmFtZSgpLCBtZW1vKSkKKyAgICAgICAgIHJldHVybiBOCisg CisgICAgIGRlZiBfX3JlZHVjZV9fKHNlbGYpOgorQEAgLTU3MCw3ICs1NjgsNyBAQCBjZGVmIGNs YXNzIENpcmN1aXRDbG9zdXJlc01hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAgICAgIDQ6IHt7 J2EnLCAnYicsICdjJywgJ2QnLCAnZScsICdmJywgJ2cnLCAnaCd9fX0KKyAgICAgICAgICIiIgor ICAgICAgICAgaW1wb3J0IHNhZ2UubWF0cm9pZHMudW5waWNrbGluZworLSAgICAgICAgZGF0YSA9 IChzZWxmLl9ncm91bmRzZXQsIHNlbGYuX2NpcmN1aXRfY2xvc3VyZXMsIGdldGF0dHIoc2VsZiwg J19fY3VzdG9tX25hbWUnKSkKKysgICAgICAgIGRhdGEgPSAoc2VsZi5fZ3JvdW5kc2V0LCBzZWxm Ll9jaXJjdWl0X2Nsb3N1cmVzLCBzZWxmLmdldF9jdXN0b21fbmFtZSgpKQorICAgICAgICAgdmVy c2lvbiA9IDAKKyAgICAgICAgIHJldHVybiBzYWdlLm1hdHJvaWRzLnVucGlja2xpbmcudW5waWNr bGVfY2lyY3VpdF9jbG9zdXJlc19tYXRyb2lkLCAodmVyc2lvbiwgZGF0YSkKKyAKK2RpZmYgLS1n aXQgYS9zcmMvc2FnZS9tYXRyb2lkcy9kdWFsX21hdHJvaWQucHkgYi9zcmMvc2FnZS9tYXRyb2lk cy9kdWFsX21hdHJvaWQucHkKK2luZGV4IDgwNGU0M2YwMzViLi5kYTY2Mzk4MjdlNCAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL21hdHJvaWRzL2R1YWxfbWF0cm9pZC5weQorKysrIGIvc3JjL3NhZ2Uv bWF0cm9pZHMvZHVhbF9tYXRyb2lkLnB5CitAQCAtNTE5LDkgKzUxOSw3IEBAIGRlZiBfX2NvcHlf XyhzZWxmKToKKyAKKyAgICAgICAgICIiIgorICAgICAgICAgTiA9IER1YWxNYXRyb2lkKHNlbGYu X21hdHJvaWQpCistICAgICAgICBpZiBnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJykgaXMg bm90IE5vbmU6CistICAgICAgICAgICAgIyBiZWNhdXNlIG9mIG5hbWUgd3JhbmdsaW5nLCB0aGlz IGlzIG5vdCBjYXVnaHQgYnkgdGhlIGRlZmF1bHQgY29weQorLSAgICAgICAgICAgIE4ucmVuYW1l KGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSkKKysgICAgICAgIE4ucmVuYW1lKHNlbGYu Z2V0X2N1c3RvbV9uYW1lKCkpCisgICAgICAgICByZXR1cm4gTgorIAorICAgICBkZWYgX19kZWVw Y29weV9fKHNlbGYsIG1lbW89e30pOgorQEAgLTU0MywxMCArNTQxLDcgQEAgZGVmIF9fZGVlcGNv cHlfXyhzZWxmLCBtZW1vPXt9KToKKyAgICAgICAgICIiIgorICAgICAgICAgZnJvbSBjb3B5IGlt cG9ydCBkZWVwY29weQorICAgICAgICAgTiA9IER1YWxNYXRyb2lkKGRlZXBjb3B5KHNlbGYuX21h dHJvaWQsIG1lbW8pKQorLSAgICAgICAgaWYgZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScp IGlzIG5vdCBOb25lOgorLSAgICAgICAgICAgICMgYmVjYXVzZSBvZiBuYW1lIHdyYW5nbGluZywg dGhpcyBpcyBub3QgY2F1Z2h0IGJ5IHRoZQorLSAgICAgICAgICAgICMgZGVmYXVsdCBkZWVwY29w eQorLSAgICAgICAgICAgIE4ucmVuYW1lKGRlZXBjb3B5KGdldGF0dHIoc2VsZiwgJ19fY3VzdG9t X25hbWUnKSwgbWVtbykpCisrICAgICAgICBOLnJlbmFtZShkZWVwY29weShzZWxmLmdldF9jdXN0 b21fbmFtZSgpLCBtZW1vKSkKKyAgICAgICAgIHJldHVybiBOCisgCisgICAgIGRlZiBfX3JlZHVj ZV9fKHNlbGYpOgorQEAgLTU3NSw2ICs1NzAsNiBAQCBkZWYgX19yZWR1Y2VfXyhzZWxmKToKKyAg ICAgICAgICAgICAgNDoge3snYScsICdiJywgJ2MnLCAnZCcsICdlJywgJ2YnLCAnZycsICdoJ319 fScKKyAgICAgICAgICIiIgorICAgICAgICAgaW1wb3J0IHNhZ2UubWF0cm9pZHMudW5waWNrbGlu ZworLSAgICAgICAgZGF0YSA9IChzZWxmLl9tYXRyb2lkLCBnZXRhdHRyKHNlbGYsICdfX2N1c3Rv bV9uYW1lJykpCisrICAgICAgICBkYXRhID0gKHNlbGYuX21hdHJvaWQsIHNlbGYuZ2V0X2N1c3Rv bV9uYW1lKCkpCisgICAgICAgICB2ZXJzaW9uID0gMAorICAgICAgICAgcmV0dXJuIHNhZ2UubWF0 cm9pZHMudW5waWNrbGluZy51bnBpY2tsZV9kdWFsX21hdHJvaWQsICh2ZXJzaW9uLCBkYXRhKQor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJvaWRzL2dyYXBoaWNfbWF0cm9pZC5weSBiL3NyYy9z YWdlL21hdHJvaWRzL2dyYXBoaWNfbWF0cm9pZC5weQoraW5kZXggNTIxNmVmMTE1MTcuLmM3Mjdk YzU0ZTUyIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cm9pZHMvZ3JhcGhpY19tYXRyb2lkLnB5 CisrKysgYi9zcmMvc2FnZS9tYXRyb2lkcy9ncmFwaGljX21hdHJvaWQucHkKK0BAIC00ODEsOCAr NDgxLDcgQEAgZGVmIF9fY29weV9fKHNlbGYpOgorICAgICAgICAgICAgIEZhbHNlCisgICAgICAg ICAiIiIKKyAgICAgICAgIE4gPSBHcmFwaGljTWF0cm9pZChzZWxmLl9HKQorLSAgICAgICAgaWYg Z2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpIGlzIG5vdCBOb25lOiAgIyBiZWNhdXNlIG9m IG5hbWUgd3JhbmdsaW5nLCB0aGlzIGlzIG5vdCBjYXVnaHQgYnkgdGhlIGRlZmF1bHQgY29weQor LSAgICAgICAgICAgIE4ucmVuYW1lKGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSkKKysg ICAgICAgIE4ucmVuYW1lKHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCkpCisgICAgICAgICByZXR1cm4g TgorIAorICAgICBkZWYgX19kZWVwY29weV9fKHNlbGYsIG1lbW89e30pOgorQEAgLTUwMiw4ICs1 MDEsNyBAQCBkZWYgX19kZWVwY29weV9fKHNlbGYsIG1lbW89e30pOgorICAgICAgICAgIiIiCisg ICAgICAgICAjIFRoZSBvbmx5IHJlYWwgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgYW5kIF9fY29w eV9fKCkgaXMgdGhlIG1lbW8KKyAgICAgICAgIE4gPSBHcmFwaGljTWF0cm9pZChkZWVwY29weShz ZWxmLl9HLCBtZW1vKSkKKy0gICAgICAgIGlmIGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUn KSBpcyBub3QgTm9uZTogICMgYmVjYXVzZSBvZiBuYW1lIHdyYW5nbGluZywgdGhpcyBpcyBub3Qg Y2F1Z2h0IGJ5IHRoZSBkZWZhdWx0IGRlZXBjb3B5CistICAgICAgICAgICAgTi5yZW5hbWUoZGVl cGNvcHkoZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpLCBtZW1vKSkKKysgICAgICAgIE4u cmVuYW1lKGRlZXBjb3B5KHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCksIG1lbW8pKQorICAgICAgICAg cmV0dXJuIE4KKyAKKyAgICAgZGVmIF9fcmVkdWNlX18oc2VsZik6CitAQCAtNTE5LDcgKzUxNyw3 IEBAIGRlZiBfX3JlZHVjZV9fKHNlbGYpOgorICAgICAgICAgICAgIEdyYXBoaWMgbWF0cm9pZCBv ZiByYW5rIDkgb24gMTUgZWxlbWVudHMKKyAgICAgICAgICIiIgorICAgICAgICAgZnJvbSAudW5w aWNrbGluZyBpbXBvcnQgdW5waWNrbGVfZ3JhcGhpY19tYXRyb2lkCistICAgICAgICBkYXRhID0g KHNlbGYuX0csIGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSkKKysgICAgICAgIGRhdGEg PSAoc2VsZi5fRywgc2VsZi5nZXRfY3VzdG9tX25hbWUoKSkKKyAgICAgICAgIHZlcnNpb24gPSAw CisgICAgICAgICByZXR1cm4gdW5waWNrbGVfZ3JhcGhpY19tYXRyb2lkLCAodmVyc2lvbiwgZGF0 YSkKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyb2lkcy9saW5lYXJfbWF0cm9pZC5weGQg Yi9zcmMvc2FnZS9tYXRyb2lkcy9saW5lYXJfbWF0cm9pZC5weGQKK2luZGV4IDAxNGM4YWVmNTdk Li45YWViZDQ0NmI2OCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJvaWRzL2xpbmVhcl9tYXRy b2lkLnB4ZAorKysrIGIvc3JjL3NhZ2UvbWF0cm9pZHMvbGluZWFyX21hdHJvaWQucHhkCitAQCAt MTUsNyArMTUsNyBAQCBjZGVmIGNsYXNzIExpbmVhck1hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJv aWQpOgorICAgICBjcGRlZiBjaGFyYWN0ZXJpc3RpYyhzZWxmKQorIAorICAgICBjZGVmIGxpc3Qg X3NldHVwX2ludGVybmFsX3JlcHJlc2VudGF0aW9uKHNlbGYsIG1hdHJpeCwgcmVkdWNlZF9tYXRy aXgsIHJpbmcsIGtlZXBfaW5pdGlhbF9yZXByZXNlbnRhdGlvbikKKy0gICAgY2RlZiBfX2V4Y2hh bmdlX3ZhbHVlKHNlbGYsIGxvbmcgeCwgbG9uZyB5KQorKyAgICBjZGVmIF9leGNoYW5nZV92YWx1 ZV9pbnRlcm5hbChzZWxmLCBsb25nIHgsIGxvbmcgeSkKKyAKKyAgICAgY3BkZWYgcmVwcmVzZW50 YXRpb24oc2VsZiwgQj0qLCByZWR1Y2VkPSosIGxhYmVscz0qLCBvcmRlcj0qLCBsaWZ0X21hcD0q KQorICAgICBjcGRlZiBfY3VycmVudF9yb3dzX2NvbHMoc2VsZiwgQj0qKQorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL21hdHJvaWRzL2xpbmVhcl9tYXRyb2lkLnB5eCBiL3NyYy9zYWdlL21hdHJvaWRz L2xpbmVhcl9tYXRyb2lkLnB5eAoraW5kZXggNjE0NTJlODBjNDguLjM2ZjU2M2FhNDMzIDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvbWF0cm9pZHMvbGluZWFyX21hdHJvaWQucHl4CisrKysgYi9zcmMv c2FnZS9tYXRyb2lkcy9saW5lYXJfbWF0cm9pZC5weXgKK0BAIC0zOTEsMTMgKzM5MSwxMyBAQCBj ZGVmIGNsYXNzIExpbmVhck1hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAg IiIiCisgICAgICAgICByZXR1cm4gY2hhcmFjdGVyaXN0aWMoc2VsZi5fQSkKKyAKKy0gICAgY2Rl ZiBiaW50IF9faXNfZXhjaGFuZ2VfcGFpcihzZWxmLCBsb25nIHgsIGxvbmcgeSkgZXhjZXB0IC0x OgorKyAgICBjZGVmIGJpbnQgX2lzX2V4Y2hhbmdlX3BhaXIoc2VsZiwgbG9uZyB4LCBsb25nIHkp IGV4Y2VwdCAtMToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIENoZWNrIGlmIGBgc2VsZi5iYXNp cygpIC0geCArIHlgYCBpcyBhZ2FpbiBhIGJhc2lzLiBJbnRlcm5hbCBtZXRob2QuCisgICAgICAg ICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9BLmlzX25vbnplcm8oc2VsZi5fcHJvd1t4XSwg c2VsZi5fcHJvd1t5XSkKKyAKKy0gICAgY2RlZiBpbnQgX19leGNoYW5nZShzZWxmLCBsb25nIHgs IGxvbmcgeSkgZXhjZXB0IC0xOgorKyAgICBjZGVmIGludCBfZXhjaGFuZ2Uoc2VsZiwgbG9uZyB4 LCBsb25nIHkpIGV4Y2VwdCAtMToKKyAgICAgICAgICIiIgorICAgICAgICAgUHV0IGVsZW1lbnQg aW5kZXhlZCBieSBgYHhgYCBpbnRvIGJhc2lzLCB0YWtpbmcgb3V0IGVsZW1lbnQgYGB5YGAuCisg ICAgICAgICBBc3N1bXB0aW9ucyBhcmUgdGhhdCB0aGlzIGlzIGEgdmFsaWQgYmFzaXMgZXhjaGFu Z2UuCitAQCAtNDIwLDkgKzQyMCw5IEBAIGNkZWYgY2xhc3MgTGluZWFyTWF0cm9pZChCYXNpc0V4 Y2hhbmdlTWF0cm9pZCk6CisgICAgICAgICBzZWxmLl9BLnNldF91bnNhZmUocHgsIHB5LCBwaXZp KQorICAgICAgICAgc2VsZi5fcHJvd1t5XSA9IHB4CisgICAgICAgICBzZWxmLl9wcm93W3hdID0g cHkKKy0gICAgICAgIEJhc2lzRXhjaGFuZ2VNYXRyb2lkLl9fZXhjaGFuZ2Uoc2VsZiwgeCwgeSkK KysgICAgICAgIEJhc2lzRXhjaGFuZ2VNYXRyb2lkLl9leGNoYW5nZShzZWxmLCB4LCB5KQorIAor LSAgICBjZGVmICBfX2V4Y2hhbmdlX3ZhbHVlKHNlbGYsIGxvbmcgeCwgbG9uZyB5KToKKysgICAg Y2RlZiAgX2V4Y2hhbmdlX3ZhbHVlX2ludGVybmFsKHNlbGYsIGxvbmcgeCwgbG9uZyB5KToKKyAg ICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgKHgsIHkpIGVudHJ5IG9mIHRoZSBjdXJy ZW50IHJlcHJlc2VudGF0aW9uLgorICAgICAgICAgIiIiCitAQCAtNjA1LDcgKzYwNSw3IEBAIGNk ZWYgY2xhc3MgTGluZWFyTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgICAgICAg ICAgICAgICAgICBzZWxmLl9yZXByZXNlbnRhdGlvbiA9IHNlbGYuX2Jhc2ljX3JlcHJlc2VudGF0 aW9uKEIpCisgICAgICAgICAgICAgICAgIEEgPSBzZWxmLl9yZXByZXNlbnRhdGlvbgorICAgICAg ICAgICAgIGVsc2U6CistICAgICAgICAgICAgICAgIEIgPSBzZWxmLl9fc3Vic2V0KEIpCisrICAg ICAgICAgICAgICAgIEIgPSBzZWxmLl9zdWJzZXRfaW50ZXJuYWwoQikKKyAgICAgICAgICAgICAg ICAgQSA9IHNlbGYuX2Jhc2ljX3JlcHJlc2VudGF0aW9uKEIpCisgICAgICAgICAgICAgQSA9IEEu bWF0cml4X2Zyb21fcm93c19hbmRfY29sdW1ucyhyYW5nZShBLm5yb3dzKCkpLCBvcmRlcl9pZHgp CisgICAgICAgICAgICAgaWYgbGlmdF9tYXAgaXMgTm9uZToKK0BAIC02MjIsNyArNjIyLDcgQEAg Y2RlZiBjbGFzcyBMaW5lYXJNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAg ICAgICBpZiBCIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgIEIgPSBmcm96ZW5zZXQoc2VsZi5i YXNpcygpKQorICAgICAgICAgICAgIGVsc2U6CistICAgICAgICAgICAgICAgIEIgPSBzZWxmLl9f c3Vic2V0KEIpCisrICAgICAgICAgICAgICAgIEIgPSBzZWxmLl9zdWJzZXRfaW50ZXJuYWwoQikK KyAgICAgICAgICAgICBBID0gc2VsZi5fcmVkdWNlZF9yZXByZXNlbnRhdGlvbihCKQorICAgICAg ICAgICAgIFIsIEMgPSBzZWxmLl9jdXJyZW50X3Jvd3NfY29scygpCisgICAgICAgICAgICAgUmkg PSBbXQorQEAgLTE0OTMsNyArMTQ5Myw3IEBAIGNkZWYgY2xhc3MgTGluZWFyTWF0cm9pZChCYXNp c0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgICAgICAgICAgc2FnZTogTS5fZXhjaGFuZ2VfdmFsdWUo MSwgMykKKyAgICAgICAgICAgICA0CisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBzZWxm Ll9fZXhjaGFuZ2VfdmFsdWUoc2VsZi5faWR4W2VdLCBzZWxmLl9pZHhbZl0pCisrICAgICAgICBy ZXR1cm4gc2VsZi5fZXhjaGFuZ2VfdmFsdWVfaW50ZXJuYWwoc2VsZi5faWR4W2VdLCBzZWxmLl9p ZHhbZl0pCisgCisgICAgIGNwZGVmIGZ1bmRhbWVudGFsX2N5Y2xlKHNlbGYsIEIsIGUpOgorICAg ICAgICAgIiIiCitAQCAtMjkwOSw3ICsyOTA5LDcgQEAgY2RlZiBjbGFzcyBMaW5lYXJNYXRyb2lk KEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcm93 cywgY29scyA9IHNlbGYuX2N1cnJlbnRfcm93c19jb2xzKCkKKyAgICAgICAgICAgICBOID0gTGlu ZWFyTWF0cm9pZChncm91bmRzZXQ9cm93cyArIGNvbHMsIHJlZHVjZWRfbWF0cml4PXNlbGYuX0Ep CistICAgICAgICBOLnJlbmFtZShnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJykpCisrICAg ICAgICBOLnJlbmFtZShzZWxmLmdldF9jdXN0b21fbmFtZSgpKQorICAgICAgICAgcmV0dXJuIE4K KyAKKyAgICAgZGVmIF9fZGVlcGNvcHlfXyhzZWxmLCBtZW1vKToKK0BAIC0yOTMwLDcgKzI5MzAs NyBAQCBjZGVmIGNsYXNzIExpbmVhck1hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAg ICAgICAgZWxzZToKKyAgICAgICAgICAgICByb3dzLCBjb2xzID0gc2VsZi5fY3VycmVudF9yb3dz X2NvbHMoKQorICAgICAgICAgICAgIE4gPSBMaW5lYXJNYXRyb2lkKGdyb3VuZHNldD1kZWVwY29w eShyb3dzICsgY29scywgbWVtbyksIHJlZHVjZWRfbWF0cml4PWRlZXBjb3B5KHNlbGYuX0EsIG1l bW8pKQorLSAgICAgICAgTi5yZW5hbWUoZGVlcGNvcHkoZ2V0YXR0cihzZWxmLCAnX19jdXN0b21f bmFtZScpLCBtZW1vKSkKKysgICAgICAgIE4ucmVuYW1lKGRlZXBjb3B5KHNlbGYuZ2V0X2N1c3Rv bV9uYW1lKCksIG1lbW8pKQorICAgICAgICAgcmV0dXJuIE4KKyAKKyAgICAgZGVmIF9fcmVkdWNl X18oc2VsZik6CitAQCAtMjk3OSw3ICsyOTc5LDcgQEAgY2RlZiBjbGFzcyBMaW5lYXJNYXRyb2lk KEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgICAgICByb3dzLCBjb2xzID0gc2VsZi5f Y3VycmVudF9yb3dzX2NvbHMoKQorICAgICAgICAgICAgIGdzID0gcm93cyArIGNvbHMKKyAgICAg ICAgICAgICByZWR1Y2VkID0gVHJ1ZQorLSAgICAgICAgZGF0YSA9IChBLCBncywgcmVkdWNlZCwg Z2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpKQorKyAgICAgICAgZGF0YSA9IChBLCBncywg cmVkdWNlZCwgc2VsZi5nZXRfY3VzdG9tX25hbWUoKSkKKyAgICAgICAgIHJldHVybiBzYWdlLm1h dHJvaWRzLnVucGlja2xpbmcudW5waWNrbGVfbGluZWFyX21hdHJvaWQsICh2ZXJzaW9uLCBkYXRh KQorIAorICMgQmluYXJ5IG1hdHJvaWQKK0BAIC0zMTUyLDIwICszMTUyLDIwIEBAIGNkZWYgY2xh c3MgQmluYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgICIiIgorICAgICAgICAg cmV0dXJuIDIKKyAKKy0gICAgY2RlZiBiaW50IF9faXNfZXhjaGFuZ2VfcGFpcihzZWxmLCBsb25n IHgsIGxvbmcgeSkgZXhjZXB0IC0xOgorKyAgICBjZGVmIGJpbnQgX2lzX2V4Y2hhbmdlX3BhaXIo c2VsZiwgbG9uZyB4LCBsb25nIHkpIGV4Y2VwdCAtMToKKyAgICAgICAgIHIiIiIKKyAgICAgICAg IENoZWNrIGlmIGBgc2VsZi5iYXNpcygpIC0geCArIHlgYCBpcyBhZ2FpbiBhIGJhc2lzLiBJbnRl cm5hbCBtZXRob2QuCisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiAoPEJpbmFyeU1hdHJp eD5zZWxmLl9BKS5pc19ub256ZXJvKHNlbGYuX3Byb3dbeF0sIHkpCisgCistICAgIGNkZWYgaW50 IF9fZXhjaGFuZ2Uoc2VsZiwgbG9uZyB4LCBsb25nIHkpIGV4Y2VwdCAtMToKKysgICAgY2RlZiBp bnQgX2V4Y2hhbmdlKHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBleGNlcHQgLTE6CisgICAgICAgICBy IiIiCisgICAgICAgICBSZXBsYWNlIGBgc2VsZi5iYXNpcygpIHdpdGggYGBzZWxmLmJhc2lzKCkg LSB4ICsgeWBgLiBJbnRlcm5hbCBtZXRob2QsIGRvZXMgbm8gY2hlY2tzLgorICAgICAgICAgIiIi CisgICAgICAgICBjZGVmIGxvbmcgcCA9IHNlbGYuX3Byb3dbeF0KKyAgICAgICAgIHNlbGYuX0Eu cGl2b3QocCwgeSkgICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorICAgICAgICAgc2Vs Zi5fcHJvd1t5XSA9IHAKKy0gICAgICAgIEJhc2lzRXhjaGFuZ2VNYXRyb2lkLl9fZXhjaGFuZ2Uo c2VsZiwgeCwgeSkKKysgICAgICAgIEJhc2lzRXhjaGFuZ2VNYXRyb2lkLl9leGNoYW5nZShzZWxm LCB4LCB5KQorIAorICAgICBjZGVmICBfX2Z1bmRhbWVudGFsX2NvY2lyY3VpdChzZWxmLCBiaXRz ZXRfdCBDLCBsb25nIHgpOgorICAgICAgICAgciIiIgorQEAgLTMxNzMsMTggKzMxNzMsMTggQEAg Y2RlZiBjbGFzcyBCaW5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgIiIiCisg ICAgICAgICBiaXRzZXRfY29weShDLCAoPEJpbmFyeU1hdHJpeD5zZWxmLl9BKS5fTVtzZWxmLl9w cm93W3hdXSkKKyAKKy0gICAgY2RlZiBfX2NvY2xvc3VyZShzZWxmLCBiaXRzZXRfdCBSLCBiaXRz ZXRfdCBGKToKKysgICAgY2RlZiBfY29jbG9zdXJlX2ludGVybmFsKHNlbGYsIGJpdHNldF90IFIs IGJpdHNldF90IEYpOgorICAgICAgICAgIiIiCisgICAgICAgICBCaXRwYWNrZWQgdmVyc2lvbiBv ZiBgYGNvY2xvc3VyZWBgLgorIAorLSAgICAgICAgVGhpcyBmdW5jdGlvbiBvdmVycmlkZXMgdGhl IGludGVybmFsIGZ1bmN0aW9uIEJhc2lzRXhjaGFuZ2VNYXRyb2lkLl9fY29jbG9zdXJlKCkgb2Yg dGhlIHBhcmVudCBjbGFzcy4KKysgICAgICAgIFRoaXMgZnVuY3Rpb24gb3ZlcnJpZGVzIHRoZSBp bnRlcm5hbCBmdW5jdGlvbiBCYXNpc0V4Y2hhbmdlTWF0cm9pZC5fY29jbG9zdXJlX2ludGVybmFs KCkgb2YgdGhlIHBhcmVudCBjbGFzcy4KKyAgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBzaG91 bGQgYmUgbW9yZSBlZmZpY2llbnQgZm9yIEJpbmFyeU1hdHJvaWQsIGR1ZSB0byB0aGUgZmFjdCB0 aGF0IGluIHRoaXMgY2xhc3MsCisgICAgICAgICBfX2Z1bmRhbWVudGFsX2NvY2lyY3VpdCBpcyBt dWNoIGZhc3RlciB0aGFuIF9fZnVuZGFtZW50YWxfY2lyY3VpdC4KKyAgICAgICAgICIiIgorICAg ICAgICAgYml0c2V0X2NvbXBsZW1lbnQoUiwgRikKKyAgICAgICAgIGJpdHNldF9kaWZmZXJlbmNl KHNlbGYuX2luc2lkZSwgc2VsZi5fY3VycmVudF9iYXNpcywgUikKKyAgICAgICAgIGJpdHNldF9k aWZmZXJlbmNlKHNlbGYuX291dHNpZGUsIFIsIHNlbGYuX2N1cnJlbnRfYmFzaXMpCistICAgICAg ICBzZWxmLl9fbW92ZShzZWxmLl9pbnNpZGUsIHNlbGYuX291dHNpZGUpCisrICAgICAgICBzZWxm Ll9tb3ZlKHNlbGYuX2luc2lkZSwgc2VsZi5fb3V0c2lkZSkKKyAKKyAgICAgICAgIGJpdHNldF9j b3B5KFIsIEYpCisgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9pbnNpZGUsIHNlbGYu X2N1cnJlbnRfYmFzaXMsIEYpCitAQCAtMzE5Niw3ICszMTk2LDcgQEAgY2RlZiBjbGFzcyBCaW5h cnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgICAgICAgICBiaXRzZXRfYWRkKFIs IHkpCisgICAgICAgICAgICAgeSA9IGJpdHNldF9uZXh0KHNlbGYuX2luc2lkZSwgeSArIDEpCisg CistICAgIGNkZWYgIF9fZXhjaGFuZ2VfdmFsdWUoc2VsZiwgbG9uZyB4LCBsb25nIHkpOgorKyAg ICBjZGVmICBfZXhjaGFuZ2VfdmFsdWVfaW50ZXJuYWwoc2VsZiwgbG9uZyB4LCBsb25nIHkpOgor ICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSAoeCwgeSkgZW50cnkgb2YgdGhlIGN1 cnJlbnQgcmVwcmVzZW50YXRpb24uCisgICAgICAgICAiIiIKK0BAIC0zOTY0LDcgKzM5NjQsNyBA QCBjZGVmIGNsYXNzIEJpbmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAgICAg Zm9yIGUgaW4gc2VsZi5iYXNpcygpOgorICAgICAgICAgICAgICAgICBiYXNpc1tzZWxmLl9wcm93 W3NlbGYuX2lkeFtlXV1dID0gZQorICAgICAgICAgICAgIE4gPSBCaW5hcnlNYXRyb2lkKGdyb3Vu ZHNldD1zZWxmLl9FLCBtYXRyaXg9c2VsZi5fQSwgYmFzaXM9YmFzaXMpCistICAgICAgICBOLnJl bmFtZShnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJykpCisrICAgICAgICBOLnJlbmFtZShz ZWxmLmdldF9jdXN0b21fbmFtZSgpKQorICAgICAgICAgcmV0dXJuIE4KKyAKKyAgICAgZGVmIF9f ZGVlcGNvcHlfXyhzZWxmLCBtZW1vKToKK0BAIC0zOTg5LDcgKzM5ODksNyBAQCBjZGVmIGNsYXNz IEJpbmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAgICAgZm9yIGUgaW4gc2Vs Zi5iYXNpcygpOgorICAgICAgICAgICAgICAgICBiYXNpc1tzZWxmLl9wcm93W3NlbGYuX2lkeFtl XV1dID0gZQorICAgICAgICAgICAgIE4gPSBCaW5hcnlNYXRyb2lkKGdyb3VuZHNldD1kZWVwY29w eShzZWxmLl9FLCBtZW1vKSwgbWF0cml4PWRlZXBjb3B5KHNlbGYuX0EsIG1lbW8pLCBiYXNpcz1k ZWVwY29weShiYXNpcywgbWVtbykpCistICAgICAgICBOLnJlbmFtZShkZWVwY29weShnZXRhdHRy KHNlbGYsICdfX2N1c3RvbV9uYW1lJyksIG1lbW8pKQorKyAgICAgICAgTi5yZW5hbWUoZGVlcGNv cHkoc2VsZi5nZXRfY3VzdG9tX25hbWUoKSwgbWVtbykpCisgICAgICAgICByZXR1cm4gTgorIAor ICAgICBkZWYgX19yZWR1Y2VfXyhzZWxmKToKK0BAIC00MDQ3LDcgKzQwNDcsNyBAQCBjZGVmIGNs YXNzIEJpbmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAgICAgQSA9IHNlbGYu X0EKKyAgICAgICAgICAgICAjIGN1cnJlbnQgYmFzaXMgb3JkZXJlZCBzbyBtYXRyaXggY29scyBm b3JtIGlkZW50aXR5IG1hdHJpeDoKKyAgICAgICAgICAgICBiYXNpcyA9IHNlbGYuX2N1cnJlbnRf cm93c19jb2xzKClbMF0KKy0gICAgICAgIGRhdGEgPSAoQSwgZ3MsIGJhc2lzLCBnZXRhdHRyKHNl bGYsICdfX2N1c3RvbV9uYW1lJykpCisrICAgICAgICBkYXRhID0gKEEsIGdzLCBiYXNpcywgc2Vs Zi5nZXRfY3VzdG9tX25hbWUoKSkKKyAgICAgICAgIHJldHVybiBzYWdlLm1hdHJvaWRzLnVucGlj a2xpbmcudW5waWNrbGVfYmluYXJ5X21hdHJvaWQsICh2ZXJzaW9uLCBkYXRhKQorIAorIGNkZWYg Y2xhc3MgVGVybmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CitAQCAtNDIyMCwyMCArNDIyMCwy MCBAQCBjZGVmIGNsYXNzIFRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAg IiIiCisgICAgICAgICByZXR1cm4gMworIAorLSAgICBjZGVmIGJpbnQgX19pc19leGNoYW5nZV9w YWlyKHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBleGNlcHQgLTE6CisrICAgIGNkZWYgYmludCBfaXNf ZXhjaGFuZ2VfcGFpcihzZWxmLCBsb25nIHgsIGxvbmcgeSkgZXhjZXB0IC0xOgorICAgICAgICAg ciIiIgorICAgICAgICAgQ2hlY2sgaWYgYGBzZWxmLmJhc2lzKCkgLSB4ICsgeWBgIGlzIGFnYWlu IGEgYmFzaXMuIEludGVybmFsIG1ldGhvZC4KKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJu ICg8VGVybmFyeU1hdHJpeD5zZWxmLl9BKS5pc19ub256ZXJvKHNlbGYuX3Byb3dbeF0sIHkpCisg CistICAgIGNkZWYgaW50IF9fZXhjaGFuZ2Uoc2VsZiwgbG9uZyB4LCBsb25nIHkpIGV4Y2VwdCAt MToKKysgICAgY2RlZiBpbnQgX2V4Y2hhbmdlKHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBleGNlcHQg LTE6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXBsYWNlIGBgc2VsZi5iYXNpcygpIHdpdGgg YGBzZWxmLmJhc2lzKCkgLSB4ICsgeWBgLiBJbnRlcm5hbCBtZXRob2QsIGRvZXMgbm8gY2hlY2tz LgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIGxvbmcgcCA9IHNlbGYuX3Byb3dbeF0KKyAg ICAgICAgIHNlbGYuX0EucGl2b3QocCwgeSkgICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlv bgorICAgICAgICAgc2VsZi5fcHJvd1t5XSA9IHAKKy0gICAgICAgIEJhc2lzRXhjaGFuZ2VNYXRy b2lkLl9fZXhjaGFuZ2Uoc2VsZiwgeCwgeSkKKysgICAgICAgIEJhc2lzRXhjaGFuZ2VNYXRyb2lk Ll9leGNoYW5nZShzZWxmLCB4LCB5KQorIAorICAgICBjZGVmICBfX2Z1bmRhbWVudGFsX2NvY2ly Y3VpdChzZWxmLCBiaXRzZXRfdCBDLCBsb25nIHgpOgorICAgICAgICAgciIiIgorQEAgLTQyNDEs MTggKzQyNDEsMTggQEAgY2RlZiBjbGFzcyBUZXJuYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToK KyAgICAgICAgICIiIgorICAgICAgICAgYml0c2V0X2NvcHkoQywgKDxUZXJuYXJ5TWF0cml4PnNl bGYuX0EpLl9NMFtzZWxmLl9wcm93W3hdXSkKKyAKKy0gICAgY2RlZiBfX2NvY2xvc3VyZShzZWxm LCBiaXRzZXRfdCBSLCBiaXRzZXRfdCBGKToKKysgICAgY2RlZiBfY29jbG9zdXJlX2ludGVybmFs KHNlbGYsIGJpdHNldF90IFIsIGJpdHNldF90IEYpOgorICAgICAgICAgIiIiCisgICAgICAgICBC aXRwYWNrZWQgdmVyc2lvbiBvZiBgYGNvY2xvc3VyZWBgLgorIAorLSAgICAgICAgVGhpcyBmdW5j dGlvbiBvdmVycmlkZXMgdGhlIGludGVybmFsIGZ1bmN0aW9uIEJhc2lzRXhjaGFuZ2VNYXRyb2lk Ll9fY29jbG9zdXJlKCkgb2YgdGhlIHBhcmVudCBjbGFzcy4KKysgICAgICAgIFRoaXMgZnVuY3Rp b24gb3ZlcnJpZGVzIHRoZSBpbnRlcm5hbCBmdW5jdGlvbiBCYXNpc0V4Y2hhbmdlTWF0cm9pZC5f Y29jbG9zdXJlX2ludGVybmFsKCkgb2YgdGhlIHBhcmVudCBjbGFzcy4KKyAgICAgICAgIFRoZSBp bXBsZW1lbnRhdGlvbiBzaG91bGQgYmUgbW9yZSBlZmZpY2llbnQgZm9yIFRlcm5hcnlNYXRyb2lk LCBkdWUgdG8gdGhlIGZhY3QgdGhhdCBpbiB0aGlzIGNsYXNzLAorICAgICAgICAgX19mdW5kYW1l bnRhbF9jb2NpcmN1aXQgaXMgbXVjaCBmYXN0ZXIgdGhhbiBfX2Z1bmRhbWVudGFsX2NpcmN1aXQu CisgICAgICAgICAiIiIKKyAgICAgICAgIGJpdHNldF9jb21wbGVtZW50KFIsIEYpCisgICAgICAg ICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9pbnNpZGUsIHNlbGYuX2N1cnJlbnRfYmFzaXMsIFIp CisgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9vdXRzaWRlLCBSLCBzZWxmLl9jdXJy ZW50X2Jhc2lzKQorLSAgICAgICAgc2VsZi5fX21vdmUoc2VsZi5faW5zaWRlLCBzZWxmLl9vdXRz aWRlKQorKyAgICAgICAgc2VsZi5fbW92ZShzZWxmLl9pbnNpZGUsIHNlbGYuX291dHNpZGUpCisg CisgICAgICAgICBiaXRzZXRfY29weShSLCBGKQorICAgICAgICAgYml0c2V0X2RpZmZlcmVuY2Uo c2VsZi5faW5zaWRlLCBzZWxmLl9jdXJyZW50X2Jhc2lzLCBGKQorQEAgLTQyNjQsNyArNDI2NCw3 IEBAIGNkZWYgY2xhc3MgVGVybmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAg ICAgICAgIGJpdHNldF9hZGQoUiwgeSkKKyAgICAgICAgICAgICB5ID0gYml0c2V0X25leHQoc2Vs Zi5faW5zaWRlLCB5ICsgMSkKKyAKKy0gICAgY2RlZiAgX19leGNoYW5nZV92YWx1ZShzZWxmLCBs b25nIHgsIGxvbmcgeSk6CisrICAgIGNkZWYgIF9leGNoYW5nZV92YWx1ZV9pbnRlcm5hbChzZWxm LCBsb25nIHgsIGxvbmcgeSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlICh4 LCB5KSBlbnRyeSBvZiB0aGUgY3VycmVudCByZXByZXNlbnRhdGlvbi4KKyAgICAgICAgICIiIgor QEAgLTQ4NTgsNyArNDg1OCw3IEBAIGNkZWYgY2xhc3MgVGVybmFyeU1hdHJvaWQoTGluZWFyTWF0 cm9pZCk6CisgICAgICAgICAgICAgZm9yIGUgaW4gc2VsZi5iYXNpcygpOgorICAgICAgICAgICAg ICAgICBiYXNpc1tzZWxmLl9wcm93W3NlbGYuX2lkeFtlXV1dID0gZQorICAgICAgICAgICAgIE4g PSBUZXJuYXJ5TWF0cm9pZChncm91bmRzZXQ9c2VsZi5fRSwgbWF0cml4PXNlbGYuX0EsIGJhc2lz PWJhc2lzKQorLSAgICAgICAgTi5yZW5hbWUoZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScp KQorKyAgICAgICAgTi5yZW5hbWUoc2VsZi5nZXRfY3VzdG9tX25hbWUoKSkKKyAgICAgICAgIHJl dHVybiBOCisgCisgICAgIGRlZiBfX2RlZXBjb3B5X18oc2VsZiwgbWVtbyk6CitAQCAtNDg4Myw3 ICs0ODgzLDcgQEAgY2RlZiBjbGFzcyBUZXJuYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAg ICAgICAgICAgICBmb3IgZSBpbiBzZWxmLmJhc2lzKCk6CisgICAgICAgICAgICAgICAgIGJhc2lz W3NlbGYuX3Byb3dbc2VsZi5faWR4W2VdXV0gPSBlCisgICAgICAgICAgICAgTiA9IFRlcm5hcnlN YXRyb2lkKGdyb3VuZHNldD1kZWVwY29weShzZWxmLl9FLCBtZW1vKSwgbWF0cml4PWRlZXBjb3B5 KHNlbGYuX0EsIG1lbW8pLCBiYXNpcz1kZWVwY29weShiYXNpcywgbWVtbykpCistICAgICAgICBO LnJlbmFtZShkZWVwY29weShnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJyksIG1lbW8pKQor KyAgICAgICAgTi5yZW5hbWUoZGVlcGNvcHkoc2VsZi5nZXRfY3VzdG9tX25hbWUoKSwgbWVtbykp CisgICAgICAgICByZXR1cm4gTgorIAorICAgICBkZWYgX19yZWR1Y2VfXyhzZWxmKToKK0BAIC00 OTQ1LDcgKzQ5NDUsNyBAQCBjZGVmIGNsYXNzIFRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQp OgorICAgICAgICAgICAgIEEgPSBzZWxmLl9BCisgICAgICAgICAgICAgIyBjdXJyZW50IGJhc2lz IG9yZGVyZWQgc28gbWF0cml4IGNvbHMgZm9ybSBpZGVudGl0eSBtYXRyaXg6CisgICAgICAgICAg ICAgYmFzaXMgPSBzZWxmLl9jdXJyZW50X3Jvd3NfY29scygpWzBdCistICAgICAgICBkYXRhID0g KEEsIGdzLCBiYXNpcywgZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpKQorKyAgICAgICAg ZGF0YSA9IChBLCBncywgYmFzaXMsIHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCkpCisgICAgICAgICBy ZXR1cm4gc2FnZS5tYXRyb2lkcy51bnBpY2tsaW5nLnVucGlja2xlX3Rlcm5hcnlfbWF0cm9pZCwg KHZlcnNpb24sIGRhdGEpCisgCisgIyBRdWF0ZXJuYXJ5IE1hdHJvaWRzCitAQCAtNTEyMiwyMCAr NTEyMiwyMCBAQCBjZGVmIGNsYXNzIFF1YXRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgor ICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gMgorIAorLSAgICBjZGVmIGJpbnQgX19pc19l eGNoYW5nZV9wYWlyKHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBleGNlcHQgLTE6CisrICAgIGNkZWYg YmludCBfaXNfZXhjaGFuZ2VfcGFpcihzZWxmLCBsb25nIHgsIGxvbmcgeSkgZXhjZXB0IC0xOgor ICAgICAgICAgciIiIgorICAgICAgICAgQ2hlY2sgaWYgYGBzZWxmLmJhc2lzKCkgLSB4ICsgeWBg IGlzIGFnYWluIGEgYmFzaXMuIEludGVybmFsIG1ldGhvZC4KKyAgICAgICAgICIiIgorICAgICAg ICAgcmV0dXJuICg8UXVhdGVybmFyeU1hdHJpeD5zZWxmLl9BKS5pc19ub256ZXJvKHNlbGYuX3By b3dbeF0sIHkpCisgCistICAgIGNkZWYgaW50IF9fZXhjaGFuZ2Uoc2VsZiwgbG9uZyB4LCBsb25n IHkpIGV4Y2VwdCAtMToKKysgICAgY2RlZiBpbnQgX2V4Y2hhbmdlKHNlbGYsIGxvbmcgeCwgbG9u ZyB5KSBleGNlcHQgLTE6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXBsYWNlIGBgc2VsZi5i YXNpcygpIHdpdGggYGBzZWxmLmJhc2lzKCkgLSB4ICsgeWBgLiBJbnRlcm5hbCBtZXRob2QsIGRv ZXMgbm8gY2hlY2tzLgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIGxvbmcgcCA9IHNlbGYu X3Byb3dbeF0KKyAgICAgICAgIHNlbGYuX0EucGl2b3QocCwgeSkgICAjIE5vdCBhIFNhZ2UgbWF0 cml4IG9wZXJhdGlvbgorICAgICAgICAgc2VsZi5fcHJvd1t5XSA9IHAKKy0gICAgICAgIEJhc2lz RXhjaGFuZ2VNYXRyb2lkLl9fZXhjaGFuZ2Uoc2VsZiwgeCwgeSkKKysgICAgICAgIEJhc2lzRXhj aGFuZ2VNYXRyb2lkLl9leGNoYW5nZShzZWxmLCB4LCB5KQorIAorICAgICBjZGVmICBfX2Z1bmRh bWVudGFsX2NvY2lyY3VpdChzZWxmLCBiaXRzZXRfdCBDLCBsb25nIHgpOgorICAgICAgICAgciIi IgorQEAgLTUxNDMsMTggKzUxNDMsMTggQEAgY2RlZiBjbGFzcyBRdWF0ZXJuYXJ5TWF0cm9pZChM aW5lYXJNYXRyb2lkKToKKyAgICAgICAgICIiIgorICAgICAgICAgYml0c2V0X3VuaW9uKEMsICg8 UXVhdGVybmFyeU1hdHJpeD5zZWxmLl9BKS5fTTBbc2VsZi5fcHJvd1t4XV0sICg8UXVhdGVybmFy eU1hdHJpeD5zZWxmLl9BKS5fTTFbc2VsZi5fcHJvd1t4XV0pCisgCistICAgIGNkZWYgX19jb2Ns b3N1cmUoc2VsZiwgYml0c2V0X3QgUiwgYml0c2V0X3QgRik6CisrICAgIGNkZWYgX2NvY2xvc3Vy ZV9pbnRlcm5hbChzZWxmLCBiaXRzZXRfdCBSLCBiaXRzZXRfdCBGKToKKyAgICAgICAgICIiIgor ICAgICAgICAgQml0cGFja2VkIHZlcnNpb24gb2YgYGBjb2Nsb3N1cmVgYC4KKyAKKy0gICAgICAg IFRoaXMgZnVuY3Rpb24gb3ZlcnJpZGVzIHRoZSBpbnRlcm5hbCBmdW5jdGlvbiBCYXNpc0V4Y2hh bmdlTWF0cm9pZC5fX2NvY2xvc3VyZSgpIG9mIHRoZSBwYXJlbnQgY2xhc3MuCisrICAgICAgICBU aGlzIGZ1bmN0aW9uIG92ZXJyaWRlcyB0aGUgaW50ZXJuYWwgZnVuY3Rpb24gQmFzaXNFeGNoYW5n ZU1hdHJvaWQuX2NvY2xvc3VyZV9pbnRlcm5hbCgpIG9mIHRoZSBwYXJlbnQgY2xhc3MuCisgICAg ICAgICBUaGUgaW1wbGVtZW50YXRpb24gc2hvdWxkIGJlIG1vcmUgZWZmaWNpZW50IGZvciBRdWF0 ZXJuYXJ5TWF0cm9pZCwgZHVlIHRvIHRoZSBmYWN0IHRoYXQgaW4gdGhpcyBjbGFzcywKKyAgICAg ICAgIF9fZnVuZGFtZW50YWxfY29jaXJjdWl0IGlzIG11Y2ggZmFzdGVyIHRoYW4gX19mdW5kYW1l bnRhbF9jaXJjdWl0LgorICAgICAgICAgIiIiCisgICAgICAgICBiaXRzZXRfY29tcGxlbWVudChS LCBGKQorICAgICAgICAgYml0c2V0X2RpZmZlcmVuY2Uoc2VsZi5faW5zaWRlLCBzZWxmLl9jdXJy ZW50X2Jhc2lzLCBSKQorICAgICAgICAgYml0c2V0X2RpZmZlcmVuY2Uoc2VsZi5fb3V0c2lkZSwg Uiwgc2VsZi5fY3VycmVudF9iYXNpcykKKy0gICAgICAgIHNlbGYuX19tb3ZlKHNlbGYuX2luc2lk ZSwgc2VsZi5fb3V0c2lkZSkKKysgICAgICAgIHNlbGYuX21vdmUoc2VsZi5faW5zaWRlLCBzZWxm Ll9vdXRzaWRlKQorIAorICAgICAgICAgYml0c2V0X2NvcHkoUiwgRikKKyAgICAgICAgIGJpdHNl dF9kaWZmZXJlbmNlKHNlbGYuX2luc2lkZSwgc2VsZi5fY3VycmVudF9iYXNpcywgRikKK0BAIC01 MTY2LDcgKzUxNjYsNyBAQCBjZGVmIGNsYXNzIFF1YXRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJv aWQpOgorICAgICAgICAgICAgICAgICBiaXRzZXRfYWRkKFIsIHkpCisgICAgICAgICAgICAgeSA9 IGJpdHNldF9uZXh0KHNlbGYuX2luc2lkZSwgeSArIDEpCisgCistICAgIGNkZWYgIF9fZXhjaGFu Z2VfdmFsdWUoc2VsZiwgbG9uZyB4LCBsb25nIHkpOgorKyAgICBjZGVmICBfZXhjaGFuZ2VfdmFs dWVfaW50ZXJuYWwoc2VsZiwgbG9uZyB4LCBsb25nIHkpOgorICAgICAgICAgciIiIgorICAgICAg ICAgUmV0dXJuIHRoZSAoeCwgeSkgZW50cnkgb2YgdGhlIGN1cnJlbnQgcmVwcmVzZW50YXRpb24u CisgICAgICAgICAiIiIKK0BAIC01NTg5LDcgKzU1ODksNyBAQCBjZGVmIGNsYXNzIFF1YXRlcm5h cnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgICAgIGZvciBlIGluIHNlbGYuYmFz aXMoKToKKyAgICAgICAgICAgICAgICAgYmFzaXNbc2VsZi5fcHJvd1tzZWxmLl9pZHhbZV1dXSA9 IGUKKyAgICAgICAgICAgICBOID0gUXVhdGVybmFyeU1hdHJvaWQoZ3JvdW5kc2V0PXNlbGYuX0Us IG1hdHJpeD1zZWxmLl9BLCBiYXNpcz1iYXNpcykKKy0gICAgICAgIE4ucmVuYW1lKGdldGF0dHIo c2VsZiwgJ19fY3VzdG9tX25hbWUnKSkKKysgICAgICAgIE4ucmVuYW1lKHNlbGYuZ2V0X2N1c3Rv bV9uYW1lKCkpCisgICAgICAgICByZXR1cm4gTgorIAorICAgICBkZWYgX19kZWVwY29weV9fKHNl bGYsIG1lbW8pOgorQEAgLTU2MTQsNyArNTYxNCw3IEBAIGNkZWYgY2xhc3MgUXVhdGVybmFyeU1h dHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAgICAgZm9yIGUgaW4gc2VsZi5iYXNpcygp OgorICAgICAgICAgICAgICAgICBiYXNpc1tzZWxmLl9wcm93W3NlbGYuX2lkeFtlXV1dID0gZQor ICAgICAgICAgICAgIE4gPSBRdWF0ZXJuYXJ5TWF0cm9pZChncm91bmRzZXQ9ZGVlcGNvcHkoc2Vs Zi5fRSwgbWVtbyksIG1hdHJpeD1kZWVwY29weShzZWxmLl9BLCBtZW1vKSwgYmFzaXM9ZGVlcGNv cHkoYmFzaXMsIG1lbW8pKQorLSAgICAgICAgTi5yZW5hbWUoZGVlcGNvcHkoZ2V0YXR0cihzZWxm LCAnX19jdXN0b21fbmFtZScpLCBtZW1vKSkKKysgICAgICAgIE4ucmVuYW1lKGRlZXBjb3B5KHNl bGYuZ2V0X2N1c3RvbV9uYW1lKCksIG1lbW8pKQorICAgICAgICAgcmV0dXJuIE4KKyAKKyAgICAg ZGVmIF9fcmVkdWNlX18oc2VsZik6CitAQCAtNTY3Miw3ICs1NjcyLDcgQEAgY2RlZiBjbGFzcyBR dWF0ZXJuYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgICAgICBBID0gc2VsZi5f QQorICAgICAgICAgICAgICMgY3VycmVudCBiYXNpcyBvcmRlcmVkIHNvIG1hdHJpeCBjb2xzIGZv cm0gaWRlbnRpdHkgbWF0cml4OgorICAgICAgICAgICAgIGJhc2lzID0gc2VsZi5fY3VycmVudF9y b3dzX2NvbHMoKVswXQorLSAgICAgICAgZGF0YSA9IChBLCBncywgYmFzaXMsIGdldGF0dHIoc2Vs ZiwgJ19fY3VzdG9tX25hbWUnKSkKKysgICAgICAgIGRhdGEgPSAoQSwgZ3MsIGJhc2lzLCBzZWxm LmdldF9jdXN0b21fbmFtZSgpKQorICAgICAgICAgcmV0dXJuIHNhZ2UubWF0cm9pZHMudW5waWNr bGluZy51bnBpY2tsZV9xdWF0ZXJuYXJ5X21hdHJvaWQsICh2ZXJzaW9uLCBkYXRhKQorIAorICMg UmVndWxhciBNYXRyb2lkcworQEAgLTU4MzgsMTMgKzU4MzgsMTMgQEAgY2RlZiBjbGFzcyBSZWd1 bGFyTWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJu IDAKKyAKKy0gICAgY2RlZiBiaW50IF9faXNfZXhjaGFuZ2VfcGFpcihzZWxmLCBsb25nIHgsIGxv bmcgeSkgZXhjZXB0IC0xOgorKyAgICBjZGVmIGJpbnQgX2lzX2V4Y2hhbmdlX3BhaXIoc2VsZiwg bG9uZyB4LCBsb25nIHkpIGV4Y2VwdCAtMToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIENoZWNr IGlmIGBgc2VsZi5iYXNpcygpIC0geCArIHlgYCBpcyBhZ2FpbiBhIGJhc2lzLiBJbnRlcm5hbCBt ZXRob2QuCisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiAoPFBsdXNNaW51c09uZU1hdHJp eD5zZWxmLl9BKS5pc19ub256ZXJvKHNlbGYuX3Byb3dbeF0sIHNlbGYuX3Byb3dbeV0pCisgCist ICAgIGNkZWYgaW50IF9fZXhjaGFuZ2Uoc2VsZiwgbG9uZyB4LCBsb25nIHkpIGV4Y2VwdCAtMToK KysgICAgY2RlZiBpbnQgX2V4Y2hhbmdlKHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBleGNlcHQgLTE6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFB1dCBlbGVtZW50IGluZGV4ZWQgYnkgYGB4YGAgaW50 byBiYXNpcywgdGFraW5nIG91dCBlbGVtZW50IGBgeWBgLiBBc3N1bXB0aW9ucyBhcmUgdGhhdCB0 aGlzIGlzIGEgdmFsaWQgYmFzaXMgZXhjaGFuZ2UuCisgCitAQCAtNTg2Nyw5ICs1ODY3LDkgQEAg Y2RlZiBjbGFzcyBSZWd1bGFyTWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgICg8UGx1 c01pbnVzT25lTWF0cml4PnNlbGYuX0EpLnNldChweCwgcHksIHBpdmkpICAgIyBOb3QgYSBTYWdl IG1hdHJpeCBvcGVyYXRpb24KKyAgICAgICAgIHNlbGYuX3Byb3dbeV0gPSBweAorICAgICAgICAg c2VsZi5fcHJvd1t4XSA9IHB5CistICAgICAgICBCYXNpc0V4Y2hhbmdlTWF0cm9pZC5fX2V4Y2hh bmdlKHNlbGYsIHgsIHkpCisrICAgICAgICBCYXNpc0V4Y2hhbmdlTWF0cm9pZC5fZXhjaGFuZ2Uo c2VsZiwgeCwgeSkKKyAKKy0gICAgY2RlZiAgX19leGNoYW5nZV92YWx1ZShzZWxmLCBsb25nIHgs IGxvbmcgeSk6CisrICAgIGNkZWYgIF9leGNoYW5nZV92YWx1ZV9pbnRlcm5hbChzZWxmLCBsb25n IHgsIGxvbmcgeSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlICh4LCB5KSBl bnRyeSBvZiB0aGUgY3VycmVudCByZXByZXNlbnRhdGlvbi4KKyAKK0BAIC02NTI0LDcgKzY1MjQs NyBAQCBjZGVmIGNsYXNzIFJlZ3VsYXJNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAg ZWxzZToKKyAgICAgICAgICAgICByb3dzLCBjb2xzID0gc2VsZi5fY3VycmVudF9yb3dzX2NvbHMo KQorICAgICAgICAgICAgIE4gPSBSZWd1bGFyTWF0cm9pZChncm91bmRzZXQ9cm93cyArIGNvbHMs IHJlZHVjZWRfbWF0cml4PXNlbGYuX0EpCistICAgICAgICBOLnJlbmFtZShnZXRhdHRyKHNlbGYs ICdfX2N1c3RvbV9uYW1lJykpCisrICAgICAgICBOLnJlbmFtZShzZWxmLmdldF9jdXN0b21fbmFt ZSgpKQorICAgICAgICAgcmV0dXJuIE4KKyAKKyAgICAgZGVmIF9fZGVlcGNvcHlfXyhzZWxmLCBt ZW1vKToKK0BAIC02NTQ0LDcgKzY1NDQsNyBAQCBjZGVmIGNsYXNzIFJlZ3VsYXJNYXRyb2lkKExp bmVhck1hdHJvaWQpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByb3dzLCBjb2xzID0g c2VsZi5fY3VycmVudF9yb3dzX2NvbHMoKQorICAgICAgICAgICAgIE4gPSBSZWd1bGFyTWF0cm9p ZChncm91bmRzZXQ9ZGVlcGNvcHkocm93cyArIGNvbHMsIG1lbW8pLCByZWR1Y2VkX21hdHJpeD1k ZWVwY29weShzZWxmLl9BLCBtZW1vKSkKKy0gICAgICAgIE4ucmVuYW1lKGRlZXBjb3B5KGdldGF0 dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSwgbWVtbykpCisrICAgICAgICBOLnJlbmFtZShkZWVw Y29weShzZWxmLmdldF9jdXN0b21fbmFtZSgpLCBtZW1vKSkKKyAgICAgICAgIHJldHVybiBOCisg CisgICAgIGRlZiBfX3JlZHVjZV9fKHNlbGYpOgorQEAgLTY1OTMsNSArNjU5Myw1IEBAIGNkZWYg Y2xhc3MgUmVndWxhck1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAgICAgcm93cywg Y29scyA9IHNlbGYuX2N1cnJlbnRfcm93c19jb2xzKCkKKyAgICAgICAgICAgICBncyA9IHJvd3Mg KyBjb2xzCisgICAgICAgICAgICAgcmVkdWNlZCA9IFRydWUKKy0gICAgICAgIGRhdGEgPSAoQSwg Z3MsIHJlZHVjZWQsIGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSkKKysgICAgICAgIGRh dGEgPSAoQSwgZ3MsIHJlZHVjZWQsIHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCkpCisgICAgICAgICBy ZXR1cm4gc2FnZS5tYXRyb2lkcy51bnBpY2tsaW5nLnVucGlja2xlX3JlZ3VsYXJfbWF0cm9pZCwg KHZlcnNpb24sIGRhdGEpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cm9pZHMvbWF0cm9pZC5w eGQgYi9zcmMvc2FnZS9tYXRyb2lkcy9tYXRyb2lkLnB4ZAoraW5kZXggZmU2YzA3ZTNiNzEuLmU5 ZGRmZWM5NmFlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cm9pZHMvbWF0cm9pZC5weGQKKysr KyBiL3NyYy9zYWdlL21hdHJvaWRzL21hdHJvaWQucHhkCitAQCAtMSw4ICsxLDcgQEAKKyBmcm9t IHNhZ2Uuc3RydWN0dXJlLnNhZ2Vfb2JqZWN0IGNpbXBvcnQgU2FnZU9iamVjdAorIAorIGNkZWYg Y2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKy0gICAgY2RlZiBwdWJsaWMgX19jdXN0b21fbmFt ZQorLSAgICBjZGVmIHB1YmxpYyBfY3VzdG9tX25hbWUKKysgICAgY2RlZiBwdWJsaWMgX1NhZ2VP YmplY3RfX2N1c3RvbV9uYW1lCisgICAgIGNkZWYgcHVibGljIF9jYWNoZWRfaW5mbworICAgICBj ZGVmIGludCBfc3RvcmVkX2Z1bGxfcmFuaworICAgICBjZGVmIGludCBfc3RvcmVkX3NpemUKK0BA IC0zNyw3ICszNiw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgY3Bk ZWYgX2xpbmVfbGVuZ3RoKHNlbGYsIEYpCisgICAgIGNwZGVmIF9leHRlbnNpb24oc2VsZiwgZWxl bWVudCwgaHlwZXJwbGFuZXMpCisgCistICAgIGNkZWYgaW5saW5lIF9fc3Vic2V0KHNlbGYsIFgp OgorKyAgICBjZGVmIGlubGluZSBfc3Vic2V0X2ludGVybmFsKHNlbGYsIFgpOgorICAgICAgICAg IiIiCisgICAgICAgICBDb252ZXJ0IGBgWGBgIHRvIGEgYGBmcm96ZW5zZXRgYCBhbmQgY2hlY2sg dGhhdCBpdCBpcyBhIHN1YnNldAorICAgICAgICAgb2YgdGhlIGdyb3VuZHNldC4KK2RpZmYgLS1n aXQgYS9zcmMvc2FnZS9tYXRyb2lkcy9tYXRyb2lkLnB5eCBiL3NyYy9zYWdlL21hdHJvaWRzL21h dHJvaWQucHl4CitpbmRleCBkY2VlODdlYTQ5Yy4uOGFjNWVjM2Y2NzggMTAwNjQ0CistLS0gYS9z cmMvc2FnZS9tYXRyb2lkcy9tYXRyb2lkLnB5eAorKysrIGIvc3JjL3NhZ2UvbWF0cm9pZHMvbWF0 cm9pZC5weXgKK0BAIC0xMzA3LDcgKzEzMDcsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9i amVjdCk6CisgICAgICAgICAgICAgVHlwZUVycm9yOiAnc2FnZS5yaW5ncy5pbnRlZ2VyLkludGVn ZXInIG9iamVjdCBpcyBub3QgaXRlcmFibGUKKyAgICAgICAgICIiIgorICAgICAgICAgIyBDYWxs IGNvcnJlc3BvbmRpbmcgQ3l0aG9uIG1ldGhvZAorLSAgICAgICAgcmV0dXJuIHNlbGYuX19zdWJz ZXQoWCkKKysgICAgICAgIHJldHVybiBzZWxmLl9zdWJzZXRfaW50ZXJuYWwoWCkKKyAKKyAgICAg ZGVmIF9zdWJzZXRfYWxsKHNlbGYsIFgpOgorICAgICAgICAgIiIiCitAQCAtMTM3NCw3ICsxMzc0 LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAg ICAgICBpZiBYIGlzIE5vbmU6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZnVsbF9yYW5rKCkK Ky0gICAgICAgIHJldHVybiBzZWxmLl9yYW5rKHNlbGYuX19zdWJzZXQoWCkpCisrICAgICAgICBy ZXR1cm4gc2VsZi5fcmFuayhzZWxmLl9zdWJzZXRfaW50ZXJuYWwoWCkpCisgCisgICAgIGNwZGVm IGZ1bGxfcmFuayhzZWxmKToKKyAgICAgICAgIHIiIiIKK0BAIC0xNDUzLDcgKzE0NTMsNyBAQCBj ZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgLi4uCisgICAgICAg ICAgICAgVmFsdWVFcnJvcjogWyd4J10gaXMgbm90IGEgc3Vic2V0IG9mIHRoZSBncm91bmRzZXQK KyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIHNlbGYuX21heF9pbmRlcGVuZGVudChzZWxm Ll9fc3Vic2V0KFgpKQorKyAgICAgICAgcmV0dXJuIHNlbGYuX21heF9pbmRlcGVuZGVudChzZWxm Ll9zdWJzZXRfaW50ZXJuYWwoWCkpCisgCisgICAgIGNwZGVmIGNpcmN1aXQoc2VsZiwgWD1Ob25l KToKKyAgICAgICAgICIiIgorQEAgLTE1NTgsNyArMTU1OCw3IEBAIGNkZWYgY2xhc3MgTWF0cm9p ZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICAuLi4KKyAgICAgICAgICAgICBWYWx1ZUVycm9y OiBbJ3gnXSBpcyBub3QgYSBzdWJzZXQgb2YgdGhlIGdyb3VuZHNldAorICAgICAgICAgIiIiCist ICAgICAgICByZXR1cm4gc2VsZi5fY2xvc3VyZShzZWxmLl9fc3Vic2V0KFgpKQorKyAgICAgICAg cmV0dXJuIHNlbGYuX2Nsb3N1cmUoc2VsZi5fc3Vic2V0X2ludGVybmFsKFgpKQorIAorICAgICBj cGRlZiBrX2Nsb3N1cmUoc2VsZiwgWCwgayk6CisgICAgICAgICByIiIiCitAQCAtMTU5Nyw3ICsx NTk3LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIHNh Z2U6IHNvcnRlZChNLmtfY2xvc3VyZSh7MCwxfSwgNCkpCisgICAgICAgICAgICAgWzAsIDEsIDRd CisgICAgICAgICAiIiIKKy0gICAgICAgIFggPSBzZWxmLl9fc3Vic2V0KFgpCisrICAgICAgICBY ID0gc2VsZi5fc3Vic2V0X2ludGVybmFsKFgpCisgICAgICAgICBjZGVmIGludCBjdXIKKyAgICAg ICAgIGNkZWYgZnJvemVuc2V0IFMsIGNsCisgICAgICAgICBjdXIgPSAwCitAQCAtMTY0NCw3ICsx NjQ0LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIC4u LgorICAgICAgICAgICAgIFZhbHVlRXJyb3I6IFsneCddIGlzIG5vdCBhIHN1YnNldCBvZiB0aGUg Z3JvdW5kc2V0CisgICAgICAgICAiIiIKKy0gICAgICAgIFggPSBzZWxmLl9fc3Vic2V0KFgpCisr ICAgICAgICBYID0gc2VsZi5fc3Vic2V0X2ludGVybmFsKFgpCisgICAgICAgICBZID0gc2VsZi5f X3N1YnNldF9hbGwoWSkKKyAgICAgICAgIHJldHVybiBzZWxmLl9hdWdtZW50KFgsIFkuZGlmZmVy ZW5jZShYKSkKKyAKK0BAIC0xNzgxLDcgKzE3ODEsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2Fn ZU9iamVjdCk6CisgICAgICAgICAgICAgLi4uCisgICAgICAgICAgICAgVmFsdWVFcnJvcjogWyd4 J10gaXMgbm90IGEgc3Vic2V0IG9mIHRoZSBncm91bmRzZXQKKyAgICAgICAgICIiIgorLSAgICAg ICAgcmV0dXJuIHNlbGYuX21heF9jb2luZGVwZW5kZW50KHNlbGYuX19zdWJzZXQoWCkpCisrICAg ICAgICByZXR1cm4gc2VsZi5fbWF4X2NvaW5kZXBlbmRlbnQoc2VsZi5fc3Vic2V0X2ludGVybmFs KFgpKQorIAorICAgICBjcGRlZiBjb2Nsb3N1cmUoc2VsZiwgWCk6CisgICAgICAgICAiIiIKK0BA IC0xODEzLDcgKzE4MTMsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAg ICAgICAgICAgLi4uCisgICAgICAgICAgICAgVmFsdWVFcnJvcjogWyd4J10gaXMgbm90IGEgc3Vi c2V0IG9mIHRoZSBncm91bmRzZXQKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIHNlbGYu X2NvY2xvc3VyZShzZWxmLl9fc3Vic2V0KFgpKQorKyAgICAgICAgcmV0dXJuIHNlbGYuX2NvY2xv c3VyZShzZWxmLl9zdWJzZXRfaW50ZXJuYWwoWCkpCisgCisgICAgIGNwZGVmIGNvY2lyY3VpdChz ZWxmLCBYPU5vbmUpOgorICAgICAgICAgIiIiCitAQCAtMTk0Nyw3ICsxOTQ3LDcgQEAgY2RlZiBj bGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIC4uLgorICAgICAgICAgICAg IFZhbHVlRXJyb3I6ICdhYmN4JyBpcyBub3QgYSBzdWJzZXQgb2YgdGhlIGdyb3VuZHNldAorICAg ICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5faXNfaW5kZXBlbmRlbnQoc2VsZi5fX3N1 YnNldChYKSkKKysgICAgICAgIHJldHVybiBzZWxmLl9pc19pbmRlcGVuZGVudChzZWxmLl9zdWJz ZXRfaW50ZXJuYWwoWCkpCisgCisgICAgIGNwZGVmIGlzX2RlcGVuZGVudChzZWxmLCBYKToKKyAg ICAgICAgIHIiIiIKK0BAIC0xOTczLDcgKzE5NzMsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2Fn ZU9iamVjdCk6CisgICAgICAgICAgICAgLi4uCisgICAgICAgICAgICAgVmFsdWVFcnJvcjogJ2Fi Y3gnIGlzIG5vdCBhIHN1YnNldCBvZiB0aGUgZ3JvdW5kc2V0CisgICAgICAgICAiIiIKKy0gICAg ICAgIHJldHVybiBub3Qgc2VsZi5faXNfaW5kZXBlbmRlbnQoc2VsZi5fX3N1YnNldChYKSkKKysg ICAgICAgIHJldHVybiBub3Qgc2VsZi5faXNfaW5kZXBlbmRlbnQoc2VsZi5fc3Vic2V0X2ludGVy bmFsKFgpKQorIAorICAgICBjcGRlZiBpc19iYXNpcyhzZWxmLCBYKToKKyAgICAgICAgIHIiIiIK K0BAIC0xOTk5LDcgKzE5OTksNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6Cisg ICAgICAgICAgICAgLi4uCisgICAgICAgICAgICAgVmFsdWVFcnJvcjogJ2FiY3gnIGlzIG5vdCBh IHN1YnNldCBvZiB0aGUgZ3JvdW5kc2V0CisgICAgICAgICAiIiIKKy0gICAgICAgIFggPSBzZWxm Ll9fc3Vic2V0KFgpCisrICAgICAgICBYID0gc2VsZi5fc3Vic2V0X2ludGVybmFsKFgpCisgICAg ICAgICBpZiBsZW4oWCkgIT0gc2VsZi5mdWxsX3JhbmsoKToKKyAgICAgICAgICAgICByZXR1cm4g RmFsc2UKKyAgICAgICAgIHJldHVybiBzZWxmLl9pc19iYXNpcyhYKQorQEAgLTIwMzUsNyArMjAz NSw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICAuLi4K KyAgICAgICAgICAgICBWYWx1ZUVycm9yOiAnYWJjeCcgaXMgbm90IGEgc3Vic2V0IG9mIHRoZSBn cm91bmRzZXQKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIHNlbGYuX2lzX2Nsb3NlZChz ZWxmLl9fc3Vic2V0KFgpKQorKyAgICAgICAgcmV0dXJuIHNlbGYuX2lzX2Nsb3NlZChzZWxmLl9z dWJzZXRfaW50ZXJuYWwoWCkpCisgCisgICAgIGNwZGVmIGlzX3N1YnNldF9rX2Nsb3NlZChzZWxm LCBYLCBpbnQgayk6CisgICAgICAgICByIiIiCitAQCAtMjExOCw3ICsyMTE4LDcgQEAgY2RlZiBj bGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIC4uLgorICAgICAgICAgICAg IFZhbHVlRXJyb3I6ICdhYmN4JyBpcyBub3QgYSBzdWJzZXQgb2YgdGhlIGdyb3VuZHNldAorICAg ICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5faXNfY2lyY3VpdChzZWxmLl9fc3Vic2V0 KFgpKQorKyAgICAgICAgcmV0dXJuIHNlbGYuX2lzX2NpcmN1aXQoc2VsZi5fc3Vic2V0X2ludGVy bmFsKFgpKQorIAorICAgICBjcGRlZiBjb2xvb3BzKHNlbGYpOgorICAgICAgICAgciIiIgorQEAg LTIxNzgsNyArMjE3OCw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAg ICAgICAgICAuLi4KKyAgICAgICAgICAgICBWYWx1ZUVycm9yOiAnYWJjeCcgaXMgbm90IGEgc3Vi c2V0IG9mIHRoZSBncm91bmRzZXQKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIHNlbGYu X2lzX2NvaW5kZXBlbmRlbnQoc2VsZi5fX3N1YnNldChYKSkKKysgICAgICAgIHJldHVybiBzZWxm Ll9pc19jb2luZGVwZW5kZW50KHNlbGYuX3N1YnNldF9pbnRlcm5hbChYKSkKKyAKKyAgICAgY3Bk ZWYgaXNfY29kZXBlbmRlbnQoc2VsZiwgWCk6CisgICAgICAgICByIiIiCitAQCAtMjIxMSw3ICsy MjExLDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIC4u LgorICAgICAgICAgICAgIFZhbHVlRXJyb3I6ICdhYmN4JyBpcyBub3QgYSBzdWJzZXQgb2YgdGhl IGdyb3VuZHNldAorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gbm90IHNlbGYuX2lzX2Nv aW5kZXBlbmRlbnQoc2VsZi5fX3N1YnNldChYKSkKKysgICAgICAgIHJldHVybiBub3Qgc2VsZi5f aXNfY29pbmRlcGVuZGVudChzZWxmLl9zdWJzZXRfaW50ZXJuYWwoWCkpCisgCisgICAgIGNwZGVm IGlzX2NvYmFzaXMoc2VsZiwgWCk6CisgICAgICAgICByIiIiCitAQCAtMjI0NSw3ICsyMjQ1LDcg QEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIC4uLgorICAg ICAgICAgICAgIFZhbHVlRXJyb3I6ICdhYmN4JyBpcyBub3QgYSBzdWJzZXQgb2YgdGhlIGdyb3Vu ZHNldAorICAgICAgICAgIiIiCistICAgICAgICBYID0gc2VsZi5fX3N1YnNldChYKQorKyAgICAg ICAgWCA9IHNlbGYuX3N1YnNldF9pbnRlcm5hbChYKQorICAgICAgICAgaWYgbGVuKFgpICE9IHNl bGYuZnVsbF9jb3JhbmsoKToKKyAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgIHJl dHVybiBzZWxmLl9pc19jb2Jhc2lzKFgpCitAQCAtMjI4Miw3ICsyMjgyLDcgQEAgY2RlZiBjbGFz cyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIC4uLgorICAgICAgICAgICAgIFZh bHVlRXJyb3I6ICdhYmN4JyBpcyBub3QgYSBzdWJzZXQgb2YgdGhlIGdyb3VuZHNldAorICAgICAg ICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5faXNfY29jaXJjdWl0KHNlbGYuX19zdWJzZXQo WCkpCisrICAgICAgICByZXR1cm4gc2VsZi5faXNfY29jaXJjdWl0KHNlbGYuX3N1YnNldF9pbnRl cm5hbChYKSkKKyAKKyAgICAgY3BkZWYgaXNfY29jbG9zZWQoc2VsZiwgWCk6CisgICAgICAgICBy IiIiCitAQCAtMjMxNSw3ICsyMzE1LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3Qp OgorICAgICAgICAgICAgIC4uLgorICAgICAgICAgICAgIFZhbHVlRXJyb3I6ICdhYmN4JyBpcyBu b3QgYSBzdWJzZXQgb2YgdGhlIGdyb3VuZHNldAorICAgICAgICAgIiIiCistICAgICAgICByZXR1 cm4gc2VsZi5faXNfY29jbG9zZWQoc2VsZi5fX3N1YnNldChYKSkKKysgICAgICAgIHJldHVybiBz ZWxmLl9pc19jb2Nsb3NlZChzZWxmLl9zdWJzZXRfaW50ZXJuYWwoWCkpCisgCisgICAgICMgdmVy aWZpY2F0aW9uCisgCitAQCAtNDg2OCwxMCArNDg2OCwxMCBAQCBjZGVmIGNsYXNzIE1hdHJvaWQo U2FnZU9iamVjdCk6CisgICAgICAgICAgICAgc2FnZTogTS5jb25uZWN0aXZpdHkoJ2FiJywgJ2Nk JykKKyAgICAgICAgICAgICAyCisgICAgICAgICAiIiIKKy0gICAgICAgIFMgPSBzZWxmLl9fc3Vi c2V0KFMpCisrICAgICAgICBTID0gc2VsZi5fc3Vic2V0X2ludGVybmFsKFMpCisgICAgICAgICBp ZiBUIGlzIE5vbmU6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3JhbmsoUykgKyBzZWxmLl9y YW5rKHNlbGYuZ3JvdW5kc2V0KCktUykgLSBzZWxmLmZ1bGxfcmFuaygpCistICAgICAgICBUID0g c2VsZi5fX3N1YnNldChUKQorKyAgICAgICAgVCA9IHNlbGYuX3N1YnNldF9pbnRlcm5hbChUKQor ICAgICAgICAgaWYgUy5pbnRlcnNlY3Rpb24oVCk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVF cnJvcigiUyBhbmQgVCBhcmUgbm90IGRpc2pvaW50IikKKyAgICAgICAgIHJldHVybiBsZW4oc2Vs Zi5fbGluayhTLCBUKVswXSkgLSBzZWxmLmZ1bGxfcmFuaygpICsgc2VsZi5fcmFuayhTKSArIHNl bGYuX3JhbmsoVCkKK0BAIC00OTU2LDggKzQ5NTYsOCBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2Fn ZU9iamVjdCk6CisgICAgICAgICAgICAgc2FnZTogTi5jb25uZWN0aXZpdHkoUykKKyAgICAgICAg ICAgICAyCisgICAgICAgICAiIiIKKy0gICAgICAgIFMgPSBzZWxmLl9fc3Vic2V0KFMpCistICAg ICAgICBUID0gc2VsZi5fX3N1YnNldChUKQorKyAgICAgICAgUyA9IHNlbGYuX3N1YnNldF9pbnRl cm5hbChTKQorKyAgICAgICAgVCA9IHNlbGYuX3N1YnNldF9pbnRlcm5hbChUKQorICAgICAgICAg aWYgbm90IFMuaXNkaXNqb2ludChUKToKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJT IGFuZCBUIGFyZSBub3QgZGlzam9pbnQiKQorICAgICAgICAgcmV0dXJuIHNlbGYuX2xpbmsoUywg VCkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyb2lkcy9taW5vcl9tYXRyb2lkLnB5IGIvc3Jj L3NhZ2UvbWF0cm9pZHMvbWlub3JfbWF0cm9pZC5weQoraW5kZXggYzBlNzU2OTE3ZjUuLjk4ODU2 MzQ4YWMxIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cm9pZHMvbWlub3JfbWF0cm9pZC5weQor KysrIGIvc3JjL3NhZ2UvbWF0cm9pZHMvbWlub3JfbWF0cm9pZC5weQorQEAgLTQ4Niw4ICs0ODYs NyBAQCBkZWYgX19jb3B5X18oc2VsZik6CisgICAgICAgICAgICAgVHJ1ZQorICAgICAgICAgIiIi CisgICAgICAgICBOID0gTWlub3JNYXRyb2lkKHNlbGYuX21hdHJvaWQsIHNlbGYuX2NvbnRyYWN0 aW9ucywgc2VsZi5fZGVsZXRpb25zKQorLSAgICAgICAgaWYgZ2V0YXR0cihzZWxmLCAnX19jdXN0 b21fbmFtZScpIGlzIG5vdCBOb25lOiAgIyBiZWNhdXNlIG9mIG5hbWUgd3JhbmdsaW5nLCB0aGlz IGlzIG5vdCBjYXVnaHQgYnkgdGhlIGRlZmF1bHQgY29weQorLSAgICAgICAgICAgIE4ucmVuYW1l KGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSkKKysgICAgICAgIE4ucmVuYW1lKHNlbGYu Z2V0X2N1c3RvbV9uYW1lKCkpCisgICAgICAgICByZXR1cm4gTgorIAorICAgICBkZWYgX19kZWVw Y29weV9fKHNlbGYsIG1lbW89e30pOgorQEAgLTUxMiw4ICs1MTEsNyBAQCBkZWYgX19kZWVwY29w eV9fKHNlbGYsIG1lbW89e30pOgorICAgICAgICAgZnJvbSBjb3B5IGltcG9ydCBkZWVwY29weQor ICAgICAgICAgIyBTaW5jZSBtYXRyb2lkcyBhcmUgaW1tdXRhYmxlLCBOIGNhbm5vdCByZWZlcmVu Y2UgaXRzZWxmIGluIGNvcnJlY3QgY29kZSwgc28gbm8gbmVlZCB0byB3b3JyeSBhYm91dCB0aGUg cmVjdXJzaW9uLgorICAgICAgICAgTiA9IE1pbm9yTWF0cm9pZChkZWVwY29weShzZWxmLl9tYXRy b2lkLCBtZW1vKSwgZGVlcGNvcHkoc2VsZi5fY29udHJhY3Rpb25zLCBtZW1vKSwgZGVlcGNvcHko c2VsZi5fZGVsZXRpb25zLCBtZW1vKSkKKy0gICAgICAgIGlmIGdldGF0dHIoc2VsZiwgJ19fY3Vz dG9tX25hbWUnKSBpcyBub3QgTm9uZTogICMgYmVjYXVzZSBvZiBuYW1lIHdyYW5nbGluZywgdGhp cyBpcyBub3QgY2F1Z2h0IGJ5IHRoZSBkZWZhdWx0IGRlZXBjb3B5CistICAgICAgICAgICAgTi5y ZW5hbWUoZGVlcGNvcHkoZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpLCBtZW1vKSkKKysg ICAgICAgIE4ucmVuYW1lKGRlZXBjb3B5KHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCksIG1lbW8pKQor ICAgICAgICAgcmV0dXJuIE4KKyAKKyAgICAgZGVmIF9fcmVkdWNlX18oc2VsZik6CitAQCAtNTM0 LDYgKzUzMiw2IEBAIGRlZiBfX3JlZHVjZV9fKHNlbGYpOgorICAgICAgICAgICAgICA0OiB7eydh JywgJ2InLCAnYycsICdkJywgJ2UnLCAnZicsICdnJywgJ2gnfX19CisgICAgICAgICAiIiIKKyAg ICAgICAgIGltcG9ydCBzYWdlLm1hdHJvaWRzLnVucGlja2xpbmcKKy0gICAgICAgIGRhdGEgPSAo c2VsZi5fbWF0cm9pZCwgc2VsZi5fY29udHJhY3Rpb25zLCBzZWxmLl9kZWxldGlvbnMsIGdldGF0 dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSkKKysgICAgICAgIGRhdGEgPSAoc2VsZi5fbWF0cm9p ZCwgc2VsZi5fY29udHJhY3Rpb25zLCBzZWxmLl9kZWxldGlvbnMsIHNlbGYuZ2V0X2N1c3RvbV9u YW1lKCkpCisgICAgICAgICB2ZXJzaW9uID0gMAorICAgICAgICAgcmV0dXJuIHNhZ2UubWF0cm9p ZHMudW5waWNrbGluZy51bnBpY2tsZV9taW5vcl9tYXRyb2lkLCAodmVyc2lvbiwgZGF0YSkKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyb2lkcy9yYW5rX21hdHJvaWQucHkgYi9zcmMvc2FnZS9t YXRyb2lkcy9yYW5rX21hdHJvaWQucHkKK2luZGV4IDQ2MzNmZjBhNzkyLi42YzRlOTQ3MGFkYSAx MDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJvaWRzL3JhbmtfbWF0cm9pZC5weQorKysrIGIvc3Jj L3NhZ2UvbWF0cm9pZHMvcmFua19tYXRyb2lkLnB5CitAQCAtMjY3LDkgKzI2Nyw3IEBAIGRlZiBf X2NvcHlfXyhzZWxmKToKKyAgICAgICAgIE4gPSBSYW5rTWF0cm9pZChncm91bmRzZXQ9W10sIHJh bmtfZnVuY3Rpb249Tm9uZSkKKyAgICAgICAgIE4uX2dyb3VuZHNldCA9IHNlbGYuX2dyb3VuZHNl dAorICAgICAgICAgTi5fcmFua19mdW5jdGlvbiA9IHNlbGYuX3JhbmtfZnVuY3Rpb24KKy0gICAg ICAgIGlmIGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSBpcyBub3QgTm9uZToKKy0gICAg ICAgICAgICAjIGJlY2F1c2Ugb2YgbmFtZSB3cmFuZ2xpbmcsIHRoaXMgaXMgbm90IGNhdWdodCBi eSB0aGUgZGVmYXVsdCBjb3B5CistICAgICAgICAgICAgTi5yZW5hbWUoZ2V0YXR0cihzZWxmLCAn X19jdXN0b21fbmFtZScpKQorKyAgICAgICAgTi5yZW5hbWUoc2VsZi5nZXRfY3VzdG9tX25hbWUo KSkKKyAgICAgICAgIHJldHVybiBOCisgCisgICAgIGRlZiBfX2RlZXBjb3B5X18oc2VsZiwgbWVt bz17fSk6CitAQCAtMjkzLDggKzI5MSw3IEBAIGRlZiBfX2RlZXBjb3B5X18oc2VsZiwgbWVtbz17 fSk6CisgICAgICAgICBmcm9tIGNvcHkgaW1wb3J0IGRlZXBjb3B5CisgICAgICAgICAjIFNpbmNl IG1hdHJvaWRzIGFyZSBpbW11dGFibGUsIE4gY2Fubm90IHJlZmVyZW5jZSBpdHNlbGYgaW4gY29y cmVjdCBjb2RlLCBzbyBubyBuZWVkIHRvIHdvcnJ5IGFib3V0IHRoZSByZWN1cnNpb24uCisgICAg ICAgICBOID0gUmFua01hdHJvaWQoZ3JvdW5kc2V0PWRlZXBjb3B5KHNlbGYuX2dyb3VuZHNldCks IHJhbmtfZnVuY3Rpb249ZGVlcGNvcHkoc2VsZi5fcmFua19mdW5jdGlvbikpCistICAgICAgICBp ZiBnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJykgaXMgbm90IE5vbmU6ICAjIGJlY2F1c2Ug b2YgbmFtZSB3cmFuZ2xpbmcsIHRoaXMgaXMgbm90IGNhdWdodCBieSB0aGUgZGVmYXVsdCBkZWVw Y29weQorLSAgICAgICAgICAgIE4ucmVuYW1lKGRlZXBjb3B5KGdldGF0dHIoc2VsZiwgJ19fY3Vz dG9tX25hbWUnKSwgbWVtbykpCisrICAgICAgICBOLnJlbmFtZShkZWVwY29weShzZWxmLmdldF9j dXN0b21fbmFtZSgpLCBtZW1vKSkKKyAgICAgICAgIHJldHVybiBOCisgCisgICAgIGRlZiBfX3Jl ZHVjZV9fKHNlbGYpOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21pc2MvY2FjaGVmdW5jLnB4ZCBi L3NyYy9zYWdlL21pc2MvY2FjaGVmdW5jLnB4ZAoraW5kZXggZDNjYzY3N2RlY2UuLjhlNWQ5ZGZh NDJhIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWlzYy9jYWNoZWZ1bmMucHhkCisrKysgYi9zcmMv c2FnZS9taXNjL2NhY2hlZnVuYy5weGQKK0BAIC01LDcgKzUsNyBAQCBjcGRlZiBjYWNoZV9rZXko bykKKyAKKyBjZGVmIGNsYXNzIENhY2hlZEZ1bmN0aW9uKCk6CisgICAgIGNkZWYgcHVibGljIHN0 ciBfX25hbWVfXworLSAgICBjZGVmIHB1YmxpYyBzdHIgX19tb2R1bGVfXworKyAgICBjZGVmIHB1 YmxpYyBzdHIgX19jYWNoZWRfbW9kdWxlX18KKyAgICAgY2RlZiBBcmd1bWVudEZpeGVyIF9hcmd1 bWVudF9maXhlcgorICAgICBjZGVmIHB1YmxpYyBmCisgICAgIGNkZWYgcHVibGljIGNhY2hlICAj IG5vdCBhbHdheXMgb2YgdHlwZSA8ZGljdD4KK0BAIC0yMCw3ICsyMCw3IEBAIGNkZWYgY2xhc3Mg Q2FjaGVkRnVuY3Rpb24oKToKKyBjZGVmIGNsYXNzIENhY2hlZE1ldGhvZCgpOgorICAgICBjZGVm IHN0ciBfY2FjaGVfbmFtZQorICAgICBjZGVmIHB1YmxpYyBzdHIgX19uYW1lX18KKy0gICAgY2Rl ZiBwdWJsaWMgc3RyIF9fbW9kdWxlX18KKysgICAgY2RlZiBwdWJsaWMgc3RyIF9fY2FjaGVkX21v ZHVsZV9fCisgICAgIGNkZWYgQ2FjaGVkRnVuY3Rpb24gX2NhY2hlZGZ1bmMKKyAgICAgY2RlZiBQ eV9zc2l6ZV90IG5hcmdzCisgICAgIGNwZGVmIF9nZXRfaW5zdGFuY2VfY2FjaGUoc2VsZiwgaW5z dCkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9taXNjL2NhY2hlZnVuYy5weXggYi9zcmMvc2FnZS9t aXNjL2NhY2hlZnVuYy5weXgKK2luZGV4IGEzMDdjMzNlMzJiLi44YWEzMGE4NTI3MiAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL21pc2MvY2FjaGVmdW5jLnB5eAorKysrIGIvc3JjL3NhZ2UvbWlzYy9j YWNoZWZ1bmMucHl4CitAQCAtNjAsNyArNjAsNyBAQCBiZSB1c2VkOjoKKyAKKyBXZSBjYW4gcHJv Y2VlZCBzaW1pbGFybHkgZm9yIGNhY2hlZCBtZXRob2RzIG9mIEN5dGhvbiBjbGFzc2VzLAorIHBy b3ZpZGVkIHRoYXQgdGhleSBhbGxvdyBhdHRyaWJ1dGUgYXNzaWdubWVudCBvciBoYXZlIGEgcHVi bGljCistYXR0cmlidXRlIGBgX19jYWNoZWRfbWV0aG9kc2BgIG9mIHR5cGUgYGA8ZGljdD5gYC4g U2luY2UKKythdHRyaWJ1dGUgYGBfY2FjaGVkX21ldGhvZHNgYCBvZiB0eXBlIGBgPGRpY3Q+YGAu IFNpbmNlCisgOnRyYWM6YDExMTE1YCwgdGhpcyBpcyB0aGUgY2FzZSBmb3IgYWxsIGNsYXNzZXMg aW5oZXJpdGluZyBmcm9tCisgOmNsYXNzOmB+c2FnZS5zdHJ1Y3R1cmUucGFyZW50LlBhcmVudGAu IFNlZSBiZWxvdyBmb3IgYSBtb3JlIGV4cGxpY2l0CisgZXhhbXBsZS4gQnkgOnRyYWM6YDEyOTUx YCwgY2FjaGVkIG1ldGhvZHMgb2YgZXh0ZW5zaW9uIGNsYXNzZXMgY2FuCitAQCAtMzAxLDE0ICsz MDEsMTQgQEAgb3VnaHQgdG8gYmUgY2hvc2VuLiBBIHR5cGljYWwgZXhhbXBsZSBpcworIAorIEJ5 IDp0cmFjOmAxMjk1MWAsIHRoZSBjYWNoZWRfbWV0aG9kIGRlY29yYXRvciBpcyBhbHNvIHN1cHBv cnRlZCBvbiBub24tYyhwKWRlZgorIG1ldGhvZHMgb2YgZXh0ZW5zaW9uIGNsYXNzZXMsIGFzIGxv bmcgYXMgdGhleSBlaXRoZXIgc3VwcG9ydCBhdHRyaWJ1dGUgYXNzaWdubWVudAorLW9yIGhhdmUg YSBwdWJsaWMgYXR0cmlidXRlIG9mIHR5cGUgYGA8ZGljdD5gYCBjYWxsZWQgYGBfX2NhY2hlZF9t ZXRob2RzYGAuIFRoZQorK29yIGhhdmUgYSBwdWJsaWMgYXR0cmlidXRlIG9mIHR5cGUgYGA8ZGlj dD5gYCBjYWxsZWQgYGBfY2FjaGVkX21ldGhvZHNgYC4gVGhlCisgbGF0dGVyIGlzIGVhc3k6Ogor IAorICAgICBzYWdlOiAjIG5lZWRzIHNhZ2UubWlzYy5jeXRob24KKyAgICAgc2FnZTogY3l0aG9u X2NvZGUgPSBbCisgICAgIC4uLi46ICJmcm9tIHNhZ2UubWlzYy5jYWNoZWZ1bmMgaW1wb3J0IGNh Y2hlZF9tZXRob2QiLAorICAgICAuLi4uOiAiY2RlZiBjbGFzcyBNeUNsYXNzOiIsCistICAgIC4u Li46ICIgICAgY2RlZiBwdWJsaWMgZGljdCBfX2NhY2hlZF9tZXRob2RzIiwKKysgICAgLi4uLjog IiAgICBjZGVmIHB1YmxpYyBkaWN0IF9jYWNoZWRfbWV0aG9kcyIsCisgICAgIC4uLi46ICIgICAg QGNhY2hlZF9tZXRob2QiLAorICAgICAuLi4uOiAiICAgIGRlZiBmKHNlbGYsIGEsYik6IiwKKyAg ICAgLi4uLjogIiAgICAgICAgcmV0dXJuIGEqYiJdCitAQCAtNzc0LDEzICs3NzQsMTcgQEAgY2Rl ZiBjbGFzcyBDYWNoZWRGdW5jdGlvbigpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBz ZWxmLl9fbmFtZV9fID0gZi5fX25hbWVfXworICAgICAgICAgdHJ5OgorLSAgICAgICAgICAgIHNl bGYuX19tb2R1bGVfXyA9IGYuX19tb2R1bGVfXworKyAgICAgICAgICAgIHNlbGYuX19jYWNoZWRf bW9kdWxlX18gPSBmLl9fbW9kdWxlX18KKyAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoK Ky0gICAgICAgICAgICBzZWxmLl9fbW9kdWxlX18gPSBmLl9fb2JqY2xhc3NfXy5fX21vZHVsZV9f CisrICAgICAgICAgICAgc2VsZi5fX2NhY2hlZF9tb2R1bGVfXyA9IGYuX19vYmpjbGFzc19fLl9f bW9kdWxlX18KKyAgICAgICAgIGlmIGFyZ3VtZW50X2ZpeGVyIGlzIG5vdCBOb25lOiAjIGl0IGlz IE5vbmUgdW5sZXNzIHRoZSBhcmd1bWVudCBmaXhlcgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICMgd2FzIGtub3duIHByZXZpb3VzbHkuIFNlZSAjMTUwMzguCisgICAg ICAgICAgICAgc2VsZi5fYXJndW1lbnRfZml4ZXIgPSBhcmd1bWVudF9maXhlcgorIAorKyAgICBA cHJvcGVydHkKKysgICAgZGVmIF9fbW9kdWxlX18oc2VsZik6CisrICAgICAgICByZXR1cm4gc2Vs Zi5fX2NhY2hlZF9tb2R1bGVfXworKworICAgICBjZGVmIGdldF9rZXlfYXJnc19rd2RzKHNlbGYs IHR1cGxlIGFyZ3MsIGRpY3Qga3dkcyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0 aGUga2V5IGluIHRoZSBjYWNoZSB0byBiZSB1c2VkIHdoZW4gYGBhcmdzYGAgYW5kCitAQCAtODQx LDcgKzg0NSw3IEBAIGNkZWYgY2xhc3MgQ2FjaGVkRnVuY3Rpb24oKToKKyAgICAgICAgICAgICBz YWdlOiBsb2FkcyhkdW1wcyhoaWxiZXJ0X2NsYXNzX3BvbHlub21pYWwpKSBpcyBoaWxiZXJ0X2Ns YXNzX3BvbHlub21pYWwgICNpbmRpcmVjdCBkb2N0ZXN0ICAgICAgICAgICAgICAgICAjIG5lZWRz IHNhZ2Uuc2NoZW1lcworICAgICAgICAgICAgIFRydWUKKyAgICAgICAgICIiIgorLSAgICAgICAg cmV0dXJuIF9jYWNoZWRfZnVuY3Rpb25fdW5waWNrbGUsIChzZWxmLl9fbW9kdWxlX18sIHNlbGYu X19uYW1lX18sIHNlbGYuY2FjaGUpCisrICAgICAgICByZXR1cm4gX2NhY2hlZF9mdW5jdGlvbl91 bnBpY2tsZSwgKHNlbGYuX19jYWNoZWRfbW9kdWxlX18sIHNlbGYuX19uYW1lX18sIHNlbGYuY2Fj aGUpCisgCisgICAgICMjIyMjIyMjIworICAgICAjIyBJbnRyb3NwZWN0aW9uCitAQCAtMjAxOSw3 ICsyMDIzLDcgQEAgY2RlZiBjbGFzcyBDYWNoZWRNZXRob2RDYWxsZXIoQ2FjaGVkRnVuY3Rpb24p OgorICAgICAgICAgVGhpcyBnZXR0ZXIgYXR0ZW1wdHMgdG8gYXNzaWduIGEgYm91bmQgbWV0aG9k IGFzIGFuCisgICAgICAgICBhdHRyaWJ1dGUgdG8gdGhlIGdpdmVuIGluc3RhbmNlLiBJZiB0aGlz IGlzIG5vdAorICAgICAgICAgcG9zc2libGUgKGZvciBleGFtcGxlLCBmb3Igc29tZSBleHRlbnNp b24gY2xhc3NlcyksCistICAgICAgICBpdCBpcyBhdHRlbXB0ZWQgdG8gZmluZCBhbiBhdHRyaWJ1 dGUgYGBfX2NhY2hlZF9tZXRob2RzYGAsCisrICAgICAgICBpdCBpcyBhdHRlbXB0ZWQgdG8gZmlu ZCBhbiBhdHRyaWJ1dGUgYGBfY2FjaGVkX21ldGhvZHNgYCwKKyAgICAgICAgIGFuZCBzdG9yZS9y ZXRyaWV2ZSB0aGUgYm91bmQgbWV0aG9kIHRoZXJlLiBJbiB0aGF0CisgICAgICAgICB3YXksIGNh Y2hlZCBtZXRob2RzIGNhbiBiZSBpbXBsZW1lbnRlZCBmb3IgZXh0ZW5zaW9uCisgICAgICAgICBj bGFzc2VzIGRlcml2aW5nIGZyb20gOmNsYXNzOmB+c2FnZS5zdHJ1Y3R1cmUucGFyZW50LlBhcmVu dGAKK0BAIC0yMDg1LDcgKzIwODksNyBAQCBjZGVmIGNsYXNzIENhY2hlZE1ldGhvZENhbGxlcihD YWNoZWRGdW5jdGlvbik6CisgICAgICAgICAiIiIKKyAgICAgICAgICMgVGhpcyBpcyBmb3IgUGFy ZW50cyBvciBFbGVtZW50cyB0aGF0IGRvIG5vdCBhbGxvdyBhdHRyaWJ1dGUgYXNzaWdubWVudAor ICAgICAgICAgdHJ5OgorLSAgICAgICAgICAgIHJldHVybiAoPGRpY3Q+aW5zdC5fX2NhY2hlZF9t ZXRob2RzKVtzZWxmLl9jYWNoZWRtZXRob2QuX2NhY2hlZGZ1bmMuX19uYW1lX19dCisrICAgICAg ICAgICAgcmV0dXJuICg8ZGljdD5pbnN0Ll9jYWNoZWRfbWV0aG9kcylbc2VsZi5fY2FjaGVkbWV0 aG9kLl9jYWNoZWRmdW5jLl9fbmFtZV9fXQorICAgICAgICAgZXhjZXB0IChBdHRyaWJ1dGVFcnJv ciwgVHlwZUVycm9yLCBLZXlFcnJvcik6CisgICAgICAgICAgICAgcGFzcworIAorQEAgLTIxMDAs MTAgKzIxMDQsMTAgQEAgY2RlZiBjbGFzcyBDYWNoZWRNZXRob2RDYWxsZXIoQ2FjaGVkRnVuY3Rp b24pOgorICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgIHBhc3MK KyAgICAgICAgIHRyeToKKy0gICAgICAgICAgICBpZiBpbnN0Ll9fY2FjaGVkX21ldGhvZHMgaXMg Tm9uZToKKy0gICAgICAgICAgICAgICAgaW5zdC5fX2NhY2hlZF9tZXRob2RzID0ge3NlbGYuX2Nh Y2hlZG1ldGhvZC5fY2FjaGVkZnVuYy5fX25hbWVfXyA6IENhbGxlcn0KKysgICAgICAgICAgICBp ZiBpbnN0Ll9jYWNoZWRfbWV0aG9kcyBpcyBOb25lOgorKyAgICAgICAgICAgICAgICBpbnN0Ll9j YWNoZWRfbWV0aG9kcyA9IHtzZWxmLl9jYWNoZWRtZXRob2QuX2NhY2hlZGZ1bmMuX19uYW1lX18g OiBDYWxsZXJ9CisgICAgICAgICAgICAgZWxzZToKKy0gICAgICAgICAgICAgICAgKDxkaWN0Pmlu c3QuX19jYWNoZWRfbWV0aG9kcylbc2VsZi5fY2FjaGVkbWV0aG9kLl9jYWNoZWRmdW5jLl9fbmFt ZV9fXSA9IENhbGxlcgorKyAgICAgICAgICAgICAgICAoPGRpY3Q+aW5zdC5fY2FjaGVkX21ldGhv ZHMpW3NlbGYuX2NhY2hlZG1ldGhvZC5fY2FjaGVkZnVuYy5fX25hbWVfX10gPSBDYWxsZXIKKyAg ICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICBwYXNzCisgICAgICAg ICByZXR1cm4gQ2FsbGVyCitAQCAtMjQyMSw3ICsyNDI1LDcgQEAgY2RlZiBjbGFzcyBDYWNoZWRN ZXRob2RDYWxsZXJOb0FyZ3MoQ2FjaGVkRnVuY3Rpb24pOgorICAgICAgICAgVGhpcyBnZXR0ZXIg YXR0ZW1wdHMgdG8gYXNzaWduIGEgYm91bmQgbWV0aG9kIGFzIGFuCisgICAgICAgICBhdHRyaWJ1 dGUgdG8gdGhlIGdpdmVuIGluc3RhbmNlLiBJZiB0aGlzIGlzIG5vdAorICAgICAgICAgcG9zc2li bGUgKGZvciBleGFtcGxlLCBmb3Igc29tZSBleHRlbnNpb24gY2xhc3NlcyksCistICAgICAgICBp dCBpcyBhdHRlbXB0ZWQgdG8gZmluZCBhbiBhdHRyaWJ1dGUgYGBfX2NhY2hlZF9tZXRob2RzYGAs CisrICAgICAgICBpdCBpcyBhdHRlbXB0ZWQgdG8gZmluZCBhbiBhdHRyaWJ1dGUgYGBfY2FjaGVk X21ldGhvZHNgYCwKKyAgICAgICAgIGFuZCBzdG9yZS9yZXRyaWV2ZSB0aGUgYm91bmQgbWV0aG9k IHRoZXJlLiBJbiB0aGF0CisgICAgICAgICB3YXksIGNhY2hlZCBtZXRob2RzIGNhbiBiZSBpbXBs ZW1lbnRlZCBmb3IgZXh0ZW5zaW9uCisgICAgICAgICBjbGFzc2VzIGRlcml2aW5nIGZyb20gOmNs YXNzOmB+c2FnZS5zdHJ1Y3R1cmUucGFyZW50LlBhcmVudGAKK0BAIC0yNDcyLDcgKzI0NzYsNyBA QCBjZGVmIGNsYXNzIENhY2hlZE1ldGhvZENhbGxlck5vQXJncyhDYWNoZWRGdW5jdGlvbik6Cisg ICAgICAgICAiIiIKKyAgICAgICAgICMgVGhpcyBpcyBmb3IgUGFyZW50cyBvciBFbGVtZW50cyB0 aGF0IGRvIG5vdCBhbGxvdyBhdHRyaWJ1dGUgYXNzaWdubWVudAorICAgICAgICAgdHJ5OgorLSAg ICAgICAgICAgIHJldHVybiAoPGRpY3Q+aW5zdC5fX2NhY2hlZF9tZXRob2RzKVtzZWxmLl9fbmFt ZV9fXQorKyAgICAgICAgICAgIHJldHVybiAoPGRpY3Q+aW5zdC5fY2FjaGVkX21ldGhvZHMpW3Nl bGYuX19uYW1lX19dCisgICAgICAgICBleGNlcHQgKEF0dHJpYnV0ZUVycm9yLCBUeXBlRXJyb3Is IEtleUVycm9yKToKKyAgICAgICAgICAgICBwYXNzCisgICAgICAgICBDYWxsZXIgPSBDYWNoZWRN ZXRob2RDYWxsZXJOb0FyZ3MoaW5zdCwgc2VsZi5mLCBuYW1lPXNlbGYuX19uYW1lX18sIGRvX3Bp Y2tsZT1zZWxmLmRvX3BpY2tsZSkKK0BAIC0yNDgyLDEwICsyNDg2LDEwIEBAIGNkZWYgY2xhc3Mg Q2FjaGVkTWV0aG9kQ2FsbGVyTm9BcmdzKENhY2hlZEZ1bmN0aW9uKToKKyAgICAgICAgIGV4Y2Vw dCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICBwYXNzCisgICAgICAgICB0cnk6CistICAg ICAgICAgICAgaWYgaW5zdC5fX2NhY2hlZF9tZXRob2RzIGlzIE5vbmU6CistICAgICAgICAgICAg ICAgIGluc3QuX19jYWNoZWRfbWV0aG9kcyA9IHtzZWxmLl9fbmFtZV9fIDogQ2FsbGVyfQorKyAg ICAgICAgICAgIGlmIGluc3QuX2NhY2hlZF9tZXRob2RzIGlzIE5vbmU6CisrICAgICAgICAgICAg ICAgIGluc3QuX2NhY2hlZF9tZXRob2RzID0ge3NlbGYuX19uYW1lX18gOiBDYWxsZXJ9CisgICAg ICAgICAgICAgZWxzZToKKy0gICAgICAgICAgICAgICAgKDxkaWN0Pmluc3QuX19jYWNoZWRfbWV0 aG9kcylbc2VsZi5fX25hbWVfX10gPSBDYWxsZXIKKysgICAgICAgICAgICAgICAgKDxkaWN0Pmlu c3QuX2NhY2hlZF9tZXRob2RzKVtzZWxmLl9fbmFtZV9fXSA9IENhbGxlcgorICAgICAgICAgZXhj ZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIHJldHVybiBD YWxsZXIKK0BAIC0yNjk4LDcgKzI3MDIsMTEgQEAgY2RlZiBjbGFzcyBDYWNoZWRNZXRob2QoKToK KyAgICAgICAgIHNlbGYuX2NhY2hlX25hbWUgPSAnX2NhY2hlX18nICsgKG5hbWUgb3IgZi5fX25h bWVfXykKKyAgICAgICAgIHNlbGYuX2NhY2hlZGZ1bmMgPSBDYWNoZWRGdW5jdGlvbihmLCBjbGFz c21ldGhvZD1UcnVlLCBuYW1lPW5hbWUsIGtleT1rZXksIGRvX3BpY2tsZT1kb19waWNrbGUpCisg ICAgICAgICBzZWxmLl9fbmFtZV9fID0gc2VsZi5fY2FjaGVkZnVuYy5fX25hbWVfXworLSAgICAg ICAgc2VsZi5fX21vZHVsZV9fID0gc2VsZi5fY2FjaGVkZnVuYy5fX21vZHVsZV9fCisrICAgICAg ICBzZWxmLl9fY2FjaGVkX21vZHVsZV9fID0gc2VsZi5fY2FjaGVkZnVuYy5fX21vZHVsZV9fCisr CisrICAgIEBwcm9wZXJ0eQorKyAgICBkZWYgX19tb2R1bGVfXyhzZWxmKToKKysgICAgICAgIHJl dHVybiBzZWxmLl9fY2FjaGVkX21vZHVsZV9fCisgCisgICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBp bnN0LCAqYXJncywgKiprd2RzKToKKyAgICAgICAgICIiIgorQEAgLTI4MjgsNyArMjgzNiw3IEBA IGNkZWYgY2xhc3MgQ2FjaGVkTWV0aG9kKCk6CisgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJy b3I6CisgICAgICAgICAgICAgbmFtZSA9IHNlbGYuX19uYW1lX18KKyAgICAgICAgIHRyeToKKy0g ICAgICAgICAgICByZXR1cm4gKDxkaWN0Pmluc3QuX19jYWNoZWRfbWV0aG9kcylbbmFtZV0KKysg ICAgICAgICAgICByZXR1cm4gKDxkaWN0Pmluc3QuX2NhY2hlZF9tZXRob2RzKVtuYW1lXQorICAg ICAgICAgZXhjZXB0IChBdHRyaWJ1dGVFcnJvciwgVHlwZUVycm9yLCBLZXlFcnJvcik6CisgICAg ICAgICAgICAgcGFzcworICAgICAgICAgIyBBcHBhcmVudGx5IHdlIG5lZWQgdG8gY29uc3RydWN0 IHRoZSBjYWxsZXIuCitAQCAtMjg0MCw4ICsyODQ4LDYgQEAgY2RlZiBjbGFzcyBDYWNoZWRNZXRo b2QoKToKKyAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgaWYgTUVU SF9OT0FSR1MmUHlDRnVuY3Rpb25fR2V0RmxhZ3MoZi5fX2dldF9fKGluc3QsY2xzKSk6CisgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5uYXJncyA9IDEKKy0gICAgICAgICAgICAgICAgICAg IGVsc2U6CistICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5uYXJncyA9IDIKKyAgICAgICAg ICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAg ICAgICAgICAgICBpZiBzZWxmLm5hcmdzID09IDA6CitAQCAtMjg2NCwxMCArMjg3MCwxMCBAQCBj ZGVmIGNsYXNzIENhY2hlZE1ldGhvZCgpOgorICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9y OgorICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIHRyeToKKy0gICAgICAgICAgICBpZiBpbnN0 Ll9fY2FjaGVkX21ldGhvZHMgaXMgTm9uZToKKy0gICAgICAgICAgICAgICAgaW5zdC5fX2NhY2hl ZF9tZXRob2RzID0ge25hbWUgOiBDYWxsZXJ9CisrICAgICAgICAgICAgaWYgaW5zdC5fY2FjaGVk X21ldGhvZHMgaXMgTm9uZToKKysgICAgICAgICAgICAgICAgaW5zdC5fY2FjaGVkX21ldGhvZHMg PSB7bmFtZSA6IENhbGxlcn0KKyAgICAgICAgICAgICBlbHNlOgorLSAgICAgICAgICAgICAgICAo PGRpY3Q+aW5zdC5fX2NhY2hlZF9tZXRob2RzKVtuYW1lXSA9IENhbGxlcgorKyAgICAgICAgICAg ICAgICAoPGRpY3Q+aW5zdC5fY2FjaGVkX21ldGhvZHMpW25hbWVdID0gQ2FsbGVyCisgICAgICAg ICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAgcGFzcworICAgICAgICAgcmV0 dXJuIENhbGxlcgorQEAgLTI5NjUsMTIgKzI5NzEsMTIgQEAgY2RlZiBjbGFzcyBDYWNoZWRTcGVj aWFsTWV0aG9kKENhY2hlZE1ldGhvZCk6CisgICAgICAgICAgICAgICAgIEQgPSBpbnN0Ll9fZGlj dF9fCisgICAgICAgICAgICAgZXhjZXB0IChUeXBlRXJyb3IsIEF0dHJpYnV0ZUVycm9yKToKKyAg ICAgICAgICAgICAgICAgdHJ5OgorLSAgICAgICAgICAgICAgICAgICAgRCA9IGluc3QuX19jYWNo ZWRfbWV0aG9kcworKyAgICAgICAgICAgICAgICAgICAgRCA9IGluc3QuX2NhY2hlZF9tZXRob2Rz CisgICAgICAgICAgICAgICAgIGV4Y2VwdCAoVHlwZUVycm9yLCBBdHRyaWJ1dGVFcnJvcik6Cist ICAgICAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIkZvciBhIGNhY2hlZCBzcGVjaWFs IG1ldGhvZCwgZWl0aGVyIGF0dHJpYnV0ZSBhc3NpZ25tZW50IG9yIGEgcHVibGljICdfX2NhY2hl ZF9tZXRob2RzJyBhdHRyaWJ1dGUgb2YgdHlwZSA8ZGljdD4gaXMgbmVlZGVkIikKKysgICAgICAg ICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiRm9yIGEgY2FjaGVkIHNwZWNpYWwgbWV0aG9k LCBlaXRoZXIgYXR0cmlidXRlIGFzc2lnbm1lbnQgb3IgYSBwdWJsaWMgJ19jYWNoZWRfbWV0aG9k cycgYXR0cmlidXRlIG9mIHR5cGUgPGRpY3Q+IGlzIG5lZWRlZCIpCisgICAgICAgICAgICAgaWYg RCBpcyBOb25lOgorLSAgICAgICAgICAgICAgICAjIFRoaXMgY2FuIG9ubHkgaGFwcGVuIGluIHRo ZSBjYXNlIG9mIF9fY2FjaGVkX21ldGhvZHMKKy0gICAgICAgICAgICAgICAgRCA9IGluc3QuX19j YWNoZWRfbWV0aG9kcyA9IHt9CisrICAgICAgICAgICAgICAgICMgVGhpcyBjYW4gb25seSBoYXBw ZW4gaW4gdGhlIGNhc2Ugb2YgX2NhY2hlZF9tZXRob2RzCisrICAgICAgICAgICAgICAgIEQgPSBp bnN0Ll9jYWNoZWRfbWV0aG9kcyA9IHt9CisgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERbbmFtZV0KK0BAIC0zMjk4 LDEzICszMzA0LDEzIEBAIGNkZWYgY2xhc3MgQ2FjaGVkSW5QYXJlbnRNZXRob2QoQ2FjaGVkTWV0 aG9kKToKKyAgICAgICAgICAgICByZXR1cm4gUC5fX2RpY3RfXy5zZXRkZWZhdWx0KHNlbGYuX2Nh Y2hlX25hbWUsIGRlZmF1bHQpCisgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAg ICAgICAgICAgcGFzcworLSAgICAgICAgaWYgbm90IGhhc2F0dHIoUCwnX19jYWNoZWRfbWV0aG9k cycpOgorKyAgICAgICAgaWYgbm90IGhhc2F0dHIoUCwnX2NhY2hlZF9tZXRob2RzJyk6CisgICAg ICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJUaGUgcGFyZW50IG9mIHRoaXMgZWxlbWVudCBkb2Vz IG5vdCBhbGxvdyBhdHRyaWJ1dGUgYXNzaWdubWVudFxuIiArCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICIgICAgYW5kIGRvZXMgbm90IGRlc2NlbmQgZnJvbSB0aGUgUGFyZW50IGJhc2Ug Y2xhc3MuXG4iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICBDYW5ub3QgdXNl IENhY2hlZEluUGFyZW50TWV0aG9kLiIpCistICAgICAgICBpZiBQLl9fY2FjaGVkX21ldGhvZHMg aXMgTm9uZToKKy0gICAgICAgICAgICBQLl9fY2FjaGVkX21ldGhvZHMgPSB7fQorLSAgICAgICAg cmV0dXJuICg8ZGljdD5QLl9fY2FjaGVkX21ldGhvZHMpLnNldGRlZmF1bHQoc2VsZi5fY2FjaGVf bmFtZSwgZGVmYXVsdCkKKysgICAgICAgIGlmIFAuX2NhY2hlZF9tZXRob2RzIGlzIE5vbmU6Cisr ICAgICAgICAgICAgUC5fY2FjaGVkX21ldGhvZHMgPSB7fQorKyAgICAgICAgcmV0dXJuICg8ZGlj dD5QLl9jYWNoZWRfbWV0aG9kcykuc2V0ZGVmYXVsdChzZWxmLl9jYWNoZV9uYW1lLCBkZWZhdWx0 KQorIAorICAgICBkZWYgX19nZXRfXyhzZWxmLCBpbnN0LCBjbHMpOgorICAgICAgICAgIiIiCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWlzYy9jeXRob24ucHkgYi9zcmMvc2FnZS9taXNjL2N5dGhv bi5weQoraW5kZXggZjQwODNmMzkwOWIuLjVmODNmNTg1YzNhIDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvbWlzYy9jeXRob24ucHkKKysrKyBiL3NyYy9zYWdlL21pc2MvY3l0aG9uLnB5CitAQCAtNjQ2 LDkgKzY0Niw5IEBAIGRlZiBjb21waWxlX2FuZF9sb2FkKGNvZGUsICoqa3dkcyk6CisgICAgICAg ICAuLi4uOiAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJlcyA9IGYuX25ldygp CisgICAgICAgICAuLi4uOiAgICAgY2RlZiB1bnNpZ25lZCBsb25nIGsKKyAgICAgICAgIC4uLi46 ICAgICBjZGVmIFJhdGlvbmFsIHogPSBSYXRpb25hbCgwKQorLSAgICAgICAgLi4uLjogICAgIGZv ciBrIGluIHJhbmdlKGZtcHFfcG9seV9sZW5ndGgoZi5fX3BvbHkpKToKKy0gICAgICAgIC4uLi46 ICAgICAgICAgZm1wcV9wb2x5X2dldF9jb2VmZl9tcHEoei52YWx1ZSwgZi5fX3BvbHksIGspCist ICAgICAgICAuLi4uOiAgICAgICAgIGZtcHFfcG9seV9zZXRfY29lZmZfbXBxKHJlcy5fX3BvbHks IG4qaywgei52YWx1ZSkKKysgICAgICAgIC4uLi46ICAgICBmb3IgayBpbiByYW5nZShmbXBxX3Bv bHlfbGVuZ3RoKGYuX3BvbHkpKToKKysgICAgICAgIC4uLi46ICAgICAgICAgZm1wcV9wb2x5X2dl dF9jb2VmZl9tcHEoei52YWx1ZSwgZi5fcG9seSwgaykKKysgICAgICAgIC4uLi46ICAgICAgICAg Zm1wcV9wb2x5X3NldF9jb2VmZl9tcHEocmVzLl9wb2x5LCBuKmssIHoudmFsdWUpCisgICAgICAg ICAuLi4uOiAgICAgcmV0dXJuIHJlcworICAgICAgICAgLi4uLjogJycnCisgICAgICAgICBzYWdl OiBtb2R1bGUgPSBjb21waWxlX2FuZF9sb2FkKGNvZGUpICAjIGxvbmcgdGltZQorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL21pc2MvZnBpY2tsZS5weXggYi9zcmMvc2FnZS9taXNjL2ZwaWNrbGUucHl4 CitpbmRleCA5ZjgwYThmMzFhYS4uMzdjMjZlNDMxYmEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9t aXNjL2ZwaWNrbGUucHl4CisrKysgYi9zcmMvc2FnZS9taXNjL2ZwaWNrbGUucHl4CitAQCAtMTI0 LDEwICsxMjQsMTIgQEAgZGVmIGNhbGxfcGlja2xlZF9mdW5jdGlvbihmcGFyZ3MpOgorIGRlZiBw aWNrbGVNZXRob2QobWV0aG9kKToKKyAgICAgJ3N1cHBvcnQgZnVuY3Rpb24gZm9yIGNvcHlyZWcg dG8gcGlja2xlIG1ldGhvZCByZWZzJworIAorLSAgICAjIE5vdGU6IE9uIFB5dGhvbiAzIHRoZXJl IGlzIG5vIC5pbV9jbGFzcyBidXQgd2UgY2FuIGdldCB0aGUgaW5zdGFuY2UncworLSAgICAjIGNs YXNzIHRocm91Z2ggLl9fc2VsZl9fLl9fY2xhc3NfXworLSAgICBjbHMgPSBnZXRhdHRyKG1ldGhv ZCwgJ2ltX2NsYXNzJywgbWV0aG9kLl9fc2VsZl9fLl9fY2xhc3NfXykKKy0gICAgcmV0dXJuICh1 bnBpY2tsZU1ldGhvZCwgKG1ldGhvZC5fX2Z1bmNfXy5fX25hbWVfXywgbWV0aG9kLl9fc2VsZl9f LCBjbHMpKQorKyAgICBpZiBpc2luc3RhbmNlKG1ldGhvZC5fX3NlbGZfXywgdHlwZSk6CisrICAg ICAgICAjIFRoaXMgaXMgYSBjbGFzcyBtZXRob2QsIHNvIGdldCBpdCBmcm9tIHRoZSB0eXBlIGRp cmVjdGx5CisrICAgICAgICByZXR1cm4gKGdldGF0dHIsIChtZXRob2QuX19zZWxmX18sIG1ldGhv ZC5fX2Z1bmNfXy5fX25hbWVfXykpCisrICAgIGVsc2U6CisrICAgICAgICBjbHMgPSBtZXRob2Qu X19zZWxmX18uX19jbGFzc19fCisrICAgICAgICByZXR1cm4gKHVucGlja2xlTWV0aG9kLCAobWV0 aG9kLl9fZnVuY19fLl9fbmFtZV9fLCBtZXRob2QuX19zZWxmX18sIGNscykpCisgCisgCisgZGVm IHVucGlja2xlTWV0aG9kKGltX25hbWUsCitAQCAtMTM5LDEwICsxNDEsNyBAQCBkZWYgdW5waWNr bGVNZXRob2QoaW1fbmFtZSwKKyAgICAgICAgIGlmIF9fc2VsZl9fIGlzIE5vbmU6CisgICAgICAg ICAgICAgcmV0dXJuIHVuYm91bmQKKyAKKy0gICAgICAgICMgTm90ZTogT24gUHl0aG9uIDIgInVu Ym91bmQgbWV0aG9kcyIgYXJlIGp1c3QgZnVuY3Rpb25zLCBzbyB0aGV5IGRvbid0CistICAgICAg ICAjIGhhdmUgYSBfX2Z1bmNfXworLSAgICAgICAgYm91bmQgPSB0eXBlcy5NZXRob2RUeXBlKGdl dGF0dHIodW5ib3VuZCwgJ19fZnVuY19fJywgdW5ib3VuZCksCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgX19zZWxmX18pCisrICAgICAgICBib3VuZCA9IHR5cGVzLk1ldGhvZFR5 cGUodW5ib3VuZCwgX19zZWxmX18pCisgICAgICAgICByZXR1cm4gYm91bmQKKyAgICAgZXhjZXB0 IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgYXNzZXJ0IF9fc2VsZl9fIGlzIG5vdCBOb25lLCAi Tm8gcmVjb3Vyc2U6IG5vIGluc3RhbmNlIHRvIGd1ZXNzIGZyb20uIgorQEAgLTE1MCwxMSArMTQ5 LDggQEAgZGVmIHVucGlja2xlTWV0aG9kKGltX25hbWUsCisgICAgICAgICAjIGNoYW5nZWQgYXJv dW5kIHNpbmNlIHdlIHBpY2tsZWQgdGhpcyBtZXRob2QsIHdlIG1heSBzdGlsbCBiZQorICAgICAg ICAgIyBhYmxlIHRvIGdldCBpdCBieSBsb29raW5nIG9uIHRoZSBpbnN0YW5jZSdzIGN1cnJlbnQg Y2xhc3MuCisgICAgICAgICB1bmJvdW5kID0gZ2V0YXR0cihfX3NlbGZfXy5fX2NsYXNzX18sIGlt X25hbWUpCistICAgICAgICBpZiBfX3NlbGZfXyBpcyBOb25lOgorLSAgICAgICAgICAgIHJldHVy biB1bmJvdW5kCisgCistICAgICAgICBib3VuZCA9IHR5cGVzLk1ldGhvZFR5cGUoZ2V0YXR0cih1 bmJvdW5kLCAnX19mdW5jX18nLCB1bmJvdW5kKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBfX3NlbGZfXykKKysgICAgICAgIGJvdW5kID0gdHlwZXMuTWV0aG9kVHlwZSh1bmJv dW5kLCBfX3NlbGZfXykKKyAgICAgICAgIHJldHVybiBib3VuZAorIAorIAorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL21pc2MvaW5oZXJpdF9jb21wYXJpc29uLnB5eCBiL3NyYy9zYWdlL21pc2MvaW5o ZXJpdF9jb21wYXJpc29uLnB5eAoraW5kZXggZjA0NmY1ZmI4Y2UuLmFhOTdmNjY0NDk2IDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvbWlzYy9pbmhlcml0X2NvbXBhcmlzb24ucHl4CisrKysgYi9zcmMv c2FnZS9taXNjL2luaGVyaXRfY29tcGFyaXNvbi5weXgKK0BAIC01NCw2ICs1NCw4IEBAIGNkZWYg Y2xhc3MgSW5oZXJpdENvbXBhcmlzb25NZXRhY2xhc3ModHlwZSk6CisgICAgICAgICBzYWdlOiAj IG5lZWRzIHNhZ2UubWlzYy5jeXRob24KKyAgICAgICAgIHNhZ2U6IGN5dGhvbigKKyAgICAgICAg IC4uLi46ICcnJworKyAgICAgICAgLi4uLjogY2ltcG9ydCBjeXRob24KKysgICAgICAgIC4uLi46 CisgICAgICAgICAuLi4uOiBmcm9tIHNhZ2UubWlzYy5pbmhlcml0X2NvbXBhcmlzb24gY2ltcG9y dCBJbmhlcml0Q29tcGFyaXNvbk1ldGFjbGFzcworICAgICAgICAgLi4uLjoKKyAgICAgICAgIC4u Li46IGNkZWYgY2xhc3MgQmFzZSgpOgorQEAgLTY2LDYgKzY4LDcgQEAgY2RlZiBjbGFzcyBJbmhl cml0Q29tcGFyaXNvbk1ldGFjbGFzcyh0eXBlKToKKyAgICAgICAgIC4uLi46ICAgICAgICAgcmV0 dXJuIDEKKyAgICAgICAgIC4uLi46CisgICAgICAgICAuLi4uOiBjZGVmIGNsYXNzIERlcml2ZWRX aXRoUmljaGNtcChCYXNlKToKKysgICAgICAgIC4uLi46ICAgICBAY3l0aG9uLmFsd2F5c19hbGxv d19rZXl3b3JkcyhGYWxzZSkKKyAgICAgICAgIC4uLi46ICAgICBkZWYgX19nZXRtZXRhY2xhc3Nf XyhfKToKKyAgICAgICAgIC4uLi46ICAgICAgICAgZnJvbSBzYWdlLm1pc2MuaW5oZXJpdF9jb21w YXJpc29uIGltcG9ydCBJbmhlcml0Q29tcGFyaXNvbk1ldGFjbGFzcworICAgICAgICAgLi4uLjog ICAgICAgICByZXR1cm4gSW5oZXJpdENvbXBhcmlzb25NZXRhY2xhc3MKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9taXNjL2xhenlfYXR0cmlidXRlLnB5eCBiL3NyYy9zYWdlL21pc2MvbGF6eV9hdHRy aWJ1dGUucHl4CitpbmRleCA4MmEwZjkwYjc3NS4uYmRiZWMzYjNiYTEgMTAwNjQ0CistLS0gYS9z cmMvc2FnZS9taXNjL2xhenlfYXR0cmlidXRlLnB5eAorKysrIGIvc3JjL3NhZ2UvbWlzYy9sYXp5 X2F0dHJpYnV0ZS5weXgKK0BAIC0xMTEsMTIgKzExMSwxMiBAQCBjZGVmIGNsYXNzIF9sYXp5X2F0 dHJpYnV0ZSgpOgorICAgICAgICAgaWYgYSBpcyBOb25lOiAjIHdoZW4gZG9pbmcgY2xzLnggZm9y IGNscyBhIGNsYXNzIGFuZCB4IGEgbGF6eSBhdHRyaWJ1dGUKKyAgICAgICAgICAgICByZXR1cm4g c2VsZgorICAgICAgICAgdHJ5OgorLSAgICAgICAgICAgICMgX19jYWNoZWRfbWV0aG9kcyBpcyBz dXBwb3NlZCB0byBiZSBhIHB1YmxpYyBDeXRob24gYXR0cmlidXRlLgorKyAgICAgICAgICAgICMg X2NhY2hlZF9tZXRob2RzIGlzIHN1cHBvc2VkIHRvIGJlIGEgcHVibGljIEN5dGhvbiBhdHRyaWJ1 dGUuCisgICAgICAgICAgICAgIyBBcHBhcmVudGx5LCB0aGVzZSBhcmUgKm5vdCogc3ViamVjdCB0 byBuYW1lIG1hbmdsaW5nLgorLSAgICAgICAgICAgIENNID0gZ2V0YXR0cihhLCAnX19jYWNoZWRf bWV0aG9kcycpCisrICAgICAgICAgICAgQ00gPSBnZXRhdHRyKGEsICdfY2FjaGVkX21ldGhvZHMn KQorICAgICAgICAgICAgIGlmIENNIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgIENNID0ge30K Ky0gICAgICAgICAgICAgICAgc2V0YXR0cihhLCAnX19jYWNoZWRfbWV0aG9kcycsIENNKQorKyAg ICAgICAgICAgICAgICBzZXRhdHRyKGEsICdfY2FjaGVkX21ldGhvZHMnLCBDTSkKKyAgICAgICAg IGV4Y2VwdCBBdHRyaWJ1dGVFcnJvciBhcyBtc2c6CisgICAgICAgICAgICAgQ00gPSBOb25lCisg ICAgICAgICBpZiBDTSBpcyBub3QgTm9uZToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9taXNjL2xh enlfbGlzdC5weXggYi9zcmMvc2FnZS9taXNjL2xhenlfbGlzdC5weXgKK2luZGV4IGMxZmEwMjUw YTk1Li5iYTYyYzQ0NmI2OSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21pc2MvbGF6eV9saXN0LnB5 eAorKysrIGIvc3JjL3NhZ2UvbWlzYy9sYXp5X2xpc3QucHl4CitAQCAtMTA1OSw3ICsxMDU5LDEx IEBAIGNkZWYgY2xhc3MgbGF6eV9saXN0X2Zyb21fZnVuY3Rpb24obGF6eV9saXN0X2dlbmVyaWMp OgorICAgICAgICAgICAgIHN0ZXAgICAgICAgICAxCisgICAgICAgICAiIiIKKyAgICAgICAgIHdo aWxlIGxlbihzZWxmLmNhY2hlKSA8PSBpOgorLSAgICAgICAgICAgIHNlbGYuY2FjaGUuYXBwZW5k KHNlbGYuY2FsbGFibGUobGVuKHNlbGYuY2FjaGUpKSkKKysgICAgICAgICAgICB0cnk6CisrICAg ICAgICAgICAgICAgIHZhbHVlID0gc2VsZi5jYWxsYWJsZShsZW4oc2VsZi5jYWNoZSkpCisrICAg ICAgICAgICAgZXhjZXB0IFN0b3BJdGVyYXRpb246CisrICAgICAgICAgICAgICAgIHJldHVybiAx CisrICAgICAgICAgICAgc2VsZi5jYWNoZS5hcHBlbmQodmFsdWUpCisgCisgICAgIGRlZiBfX3Jl ZHVjZV9fKHNlbGYpOgorICAgICAgICAgciIiIgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21pc2Mv c2FnZWluc3BlY3QucHkgYi9zcmMvc2FnZS9taXNjL3NhZ2VpbnNwZWN0LnB5CitpbmRleCAzZGQw Y2MwYTQ1Yi4uY2U1ZTk5ODcwMjcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9taXNjL3NhZ2VpbnNw ZWN0LnB5CisrKysgYi9zcmMvc2FnZS9taXNjL3NhZ2VpbnNwZWN0LnB5CitAQCAtMjI0LDcgKzIy NCwxMSBAQCBkZWYgaXNjbGFzc2luc3RhbmNlKG9iaik6CisgICAgIHJldHVybiAobm90IGluc3Bl Y3QuaXNjbGFzcyhvYmopIGFuZAorICAgICAgICAgICAgIGhhc2F0dHIob2JqLCAnX19jbGFzc19f JykgYW5kCisgICAgICAgICAgICAgaGFzYXR0cihvYmouX19jbGFzc19fLCAnX19tb2R1bGVfXycp IGFuZAorLSAgICAgICAgICAgIG9iai5fX2NsYXNzX18uX19tb2R1bGVfXyBub3QgaW4gYnVpbHRp bl9tb2RzKQorKyAgICAgICAgICAgIG9iai5fX2NsYXNzX18uX19tb2R1bGVfXyBub3QgaW4gYnVp bHRpbl9tb2RzIGFuZAorKyAgICAgICAgICAgICMgU3RhcnRpbmcgd2l0aCBDeXRob24gMywgQ3l0 aG9uJ3MgYnVpbHRpbiB0eXBlcyBoYXZlIF9fbW9kdWxlX18gc2V0CisrICAgICAgICAgICAgIyB0 byB0aGUgc2hhcmVkIG1vZHVsZSBuYW1lcyBsaWtlIF9jeXRob25fM18wXzAuCisrICAgICAgICAg ICAgbm90IChpc2luc3RhbmNlKG9iai5fX2NsYXNzX18uX19tb2R1bGVfXywgc3RyKSBhbmQKKysg ICAgICAgICAgICAgICAgIG9iai5fX2NsYXNzX18uX19tb2R1bGVfXy5zdGFydHN3aXRoKCdfY3l0 aG9uXycpKSkKKyAKKyAKKyAjIFBhcnNlIHN0cmluZ3Mgb2YgZm9ybSAiRmlsZTogc2FnZS9yaW5n cy9yYXRpb25hbC5weXggKHN0YXJ0aW5nIGF0IGxpbmUgMTA4MCkiCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvbWlzYy9zZXNzaW9uLnB5eCBiL3NyYy9zYWdlL21pc2Mvc2Vzc2lvbi5weXgKK2luZGV4 IGRlNjQ5ZjgwNDI1Li4zMTQ1NGRhYzk5MyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21pc2Mvc2Vz c2lvbi5weXgKKysrKyBiL3NyYy9zYWdlL21pc2Mvc2Vzc2lvbi5weXgKK0BAIC04MCw2ICs4MCw4 IEBAIGZyb20gc2FnZS5taXNjLnBlcnNpc3QgaW1wb3J0IGxvYWQsIHNhdmUsIGxvYWRzLCBkdW1w cworIAorIHN0YXRlX2F0X2luaXQgPSBOb25lCisgCisrQ3l0aG9uRnVuY3Rpb25UeXBlID0gdHlw ZShsYW1iZGE6IE5vbmUpCisrCisgZGVmIGluaXQoc3RhdGU9Tm9uZSk6CisgICAgICIiIgorICAg ICBJbml0aWFsaXplIHNvbWUgZGljdGlvbmFyaWVzIG5lZWRlZCBieSB0aGUgOmZ1bmM6YHNob3df aWRlbnRpZmllcnNgLAorQEAgLTMxMSw3ICszMTMsNyBAQCBkZWYgc2F2ZV9zZXNzaW9uKG5hbWU9 J3NhZ2Vfc2Vzc2lvbicsIHZlcmJvc2U9RmFsc2UpOgorICAgICBmb3IgayBpbiBzaG93X2lkZW50 aWZpZXJzKGhpZGRlbiA9IFRydWUpOgorICAgICAgICAgdHJ5OgorICAgICAgICAgICAgIHggPSBz dGF0ZVtrXQorLSAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoeCwgKHR5cGVzLkZ1bmN0aW9uVHlw ZSwgdHlwZXMuQnVpbHRpbkZ1bmN0aW9uVHlwZSwgdHlwZXMuQnVpbHRpbk1ldGhvZFR5cGUsIHR5 cGUpKToKKysgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHgsICh0eXBlcy5GdW5jdGlvblR5cGUs IHR5cGVzLkJ1aWx0aW5GdW5jdGlvblR5cGUsIHR5cGVzLkJ1aWx0aW5NZXRob2RUeXBlLCBDeXRo b25GdW5jdGlvblR5cGUsIHR5cGUpKToKKyAgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9y KCd7fSBpcyBhIGZ1bmN0aW9uLCBtZXRob2QsIGNsYXNzIG9yIHR5cGUnLmZvcm1hdChrKSkKKyAK KyAgICAgICAgICAgICAjIFdlIGF0dGVtcHQgdG8gcGlja2xlICphbmQqIHVucGlja2xlIGV2ZXJ5 IHZhcmlhYmxlIHRvCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbW9kdWxhci9tb2RzeW0vcDFsaXN0 LnB4ZCBiL3NyYy9zYWdlL21vZHVsYXIvbW9kc3ltL3AxbGlzdC5weGQKK2luZGV4IGNjMjRhMzMx MzliLi5iNjZmMjhiOGFkNiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21vZHVsYXIvbW9kc3ltL3Ax bGlzdC5weGQKKysrKyBiL3NyYy9zYWdlL21vZHVsYXIvbW9kc3ltL3AxbGlzdC5weGQKK0BAIC0y MSw3ICsyMSw3IEBAIGNkZWYgY2xhc3MgUDFMaXN0OgorICAgICAjIEhlcmUgd2UgdXNlIGEgcG9p bnRlciB0byBhIGZ1bmN0aW9uLCBzbyB0aGUgaWYgbG9naWMKKyAgICAgIyBmb3Igbm9ybWFsaXpp bmcgYW4gZWxlbWVudCBkb2VzIG5vdCBuZWVkIHRvIGJlIHVzZWQKKyAgICAgIyBldmVyeSB0aW1l IHRoZSB1c2VyIGNhbGxzIHRoZSBub3JtYWxpemUgZnVuY3Rpb24uCistICAgIGNkZWYgaW50ICgq X19ub3JtYWxpemUpKGludCBOLCBpbnQgdSwgaW50IHYsCisrICAgIGNkZWYgaW50ICgqX25vcm1h bGl6ZSkoaW50IE4sIGludCB1LCBpbnQgdiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW50KiB1dSwgaW50KiB2diwgaW50KiBzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW50IGNvbXB1dGVfcykgZXhjZXB0IC0xCisgICAgIGNwZGVmIGluZGV4KHNlbGYsIGludCB1LCBp bnQgdikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tb2R1bGFyL21vZHN5bS9wMWxpc3QucHl4IGIv c3JjL3NhZ2UvbW9kdWxhci9tb2RzeW0vcDFsaXN0LnB5eAoraW5kZXggMTExZDQwOGNlZTQuLjMw YThmNzQ3MWRkIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbW9kdWxhci9tb2RzeW0vcDFsaXN0LnB5 eAorKysrIGIvc3JjL3NhZ2UvbW9kdWxhci9tb2RzeW0vcDFsaXN0LnB5eAorQEAgLTcyMywxMCAr NzIzLDEwIEBAIGNkZWYgY2xhc3MgUDFMaXN0KCk6CisgICAgICAgICBzZWxmLl9fTiA9IE4KKyAg ICAgICAgIGlmIE4gPD0gNDYzNDA6CisgICAgICAgICAgICAgc2VsZi5fX2xpc3QgPSBwMWxpc3Rf aW50KE4pCistICAgICAgICAgICAgc2VsZi5fX25vcm1hbGl6ZSA9IGNfcDFfbm9ybWFsaXplX2lu dAorKyAgICAgICAgICAgIHNlbGYuX25vcm1hbGl6ZSA9IGNfcDFfbm9ybWFsaXplX2ludAorICAg ICAgICAgZWxpZiBOIDw9IDIxNDc0ODM2NDc6CisgICAgICAgICAgICAgc2VsZi5fX2xpc3QgPSBw MWxpc3RfbGxvbmcoTikKKy0gICAgICAgICAgICBzZWxmLl9fbm9ybWFsaXplID0gY19wMV9ub3Jt YWxpemVfbGxvbmcKKysgICAgICAgICAgICBzZWxmLl9ub3JtYWxpemUgPSBjX3AxX25vcm1hbGl6 ZV9sbG9uZworICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByYWlzZSBPdmVyZmxvd0Vycm9y KCJwMWxpc3Qgbm90IGRlZmluZWQgZm9yIHN1Y2ggbGFyZ2UgTi4iKQorICAgICAgICAgc2VsZi5f X2xpc3Quc29ydCgpCitAQCAtOTIxLDcgKzkyMSw3IEBAIGNkZWYgY2xhc3MgUDFMaXN0KCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgaW50IHUsIHYsIHV1LCB2diwgc3MKKyAgICAgICAg IHUsdiA9IHNlbGYuX19saXN0W2ldCistICAgICAgICBzZWxmLl9fbm9ybWFsaXplKHNlbGYuX19O LCAtdSwgdiwgJnV1LCAmdnYsICZzcywgMCkKKysgICAgICAgIHNlbGYuX25vcm1hbGl6ZShzZWxm Ll9fTiwgLXUsIHYsICZ1dSwgJnZ2LCAmc3MsIDApCisgICAgICAgICBfLCBqID0gc2VhcmNoKHNl bGYuX19saXN0LCAodXUsdnYpKQorICAgICAgICAgcmV0dXJuIGoKKyAKK0BAIC05NTQsNyArOTU0 LDcgQEAgY2RlZiBjbGFzcyBQMUxpc3QoKToKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBp bnQgdSwgdiwgdXUsIHZ2LCBzcworICAgICAgICAgdSx2ID0gc2VsZi5fX2xpc3RbaV0KKy0gICAg ICAgIHNlbGYuX19ub3JtYWxpemUoc2VsZi5fX04sIC12LCB1LCAmdXUsICZ2diwgJnNzLCAwKQor KyAgICAgICAgc2VsZi5fbm9ybWFsaXplKHNlbGYuX19OLCAtdiwgdSwgJnV1LCAmdnYsICZzcywg MCkKKyAgICAgICAgIF8sIGogPSBzZWFyY2goc2VsZi5fX2xpc3QsICh1dSx2dikpCisgICAgICAg ICByZXR1cm4gagorIAorQEAgLTk4Nyw3ICs5ODcsNyBAQCBjZGVmIGNsYXNzIFAxTGlzdCgpOgor ICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIGludCB1LCB2LCB1dSwgdnYsIHNzCisgICAgICAg ICB1LHYgPSBzZWxmLl9fbGlzdFtpXQorLSAgICAgICAgc2VsZi5fX25vcm1hbGl6ZShzZWxmLl9f TiwgdiwgLXUtdiwgJnV1LCAmdnYsICZzcywgMCkKKysgICAgICAgIHNlbGYuX25vcm1hbGl6ZShz ZWxmLl9fTiwgdiwgLXUtdiwgJnV1LCAmdnYsICZzcywgMCkKKyAgICAgICAgIF8sIGogPSBzZWFy Y2goc2VsZi5fX2xpc3QsICh1dSx2dikpCisgICAgICAgICByZXR1cm4gagorIAorQEAgLTExNTMs NyArMTE1Myw3IEBAIGNkZWYgY2xhc3MgUDFMaXN0KCk6CisgICAgICAgICAgICAgVHJ1ZQorICAg ICAgICAgIiIiCisgICAgICAgICBjZGVmIGludCB1dSwgdnYsIHNzCistICAgICAgICBzZWxmLl9f bm9ybWFsaXplKHNlbGYuX19OLCB1LCB2LCAmdXUsICZ2diwgJnNzLCAwKQorKyAgICAgICAgc2Vs Zi5fbm9ybWFsaXplKHNlbGYuX19OLCB1LCB2LCAmdXUsICZ2diwgJnNzLCAwKQorICAgICAgICAg cmV0dXJuICh1dSx2dikKKyAKKyAgICAgZGVmIG5vcm1hbGl6ZV93aXRoX3NjYWxhcihzZWxmLCBp bnQgdSwgaW50IHYpOgorQEAgLTExODYsNyArMTE4Niw3IEBAIGNkZWYgY2xhc3MgUDFMaXN0KCk6 CisgICAgICAgICAgICAgVHJ1ZQorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIGludCB1dSwg dnYsIHNzCistICAgICAgICBzZWxmLl9fbm9ybWFsaXplKHNlbGYuX19OLCB1LCB2LCAmdXUsICZ2 diwgJnNzLCAxKQorKyAgICAgICAgc2VsZi5fbm9ybWFsaXplKHNlbGYuX19OLCB1LCB2LCAmdXUs ICZ2diwgJnNzLCAxKQorICAgICAgICAgcmV0dXJuICh1dSwgdnYsIHNzKQorIAorICAgICBkZWYg TihzZWxmKToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9udW1lcmljYWwvZ2F1c3NfbGVnZW5kcmUu cHl4IGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2dhdXNzX2xlZ2VuZHJlLnB5eAoraW5kZXggNTMyNTc5 N2M3YWEuLjk2NzA4YzViMWFjIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbnVtZXJpY2FsL2dhdXNz X2xlZ2VuZHJlLnB5eAorKysrIGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2dhdXNzX2xlZ2VuZHJlLnB5 eAorQEAgLTExNyw4ICsxMTcsOCBAQCBkZWYgbm9kZXNfdW5jYWNoZWQoZGVncmVlLCBwcmVjKToK KyAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImRlZ3JlZT0lcyBub3Qgc3VwcG9ydGVkIChkZWdy ZWUgbXVzdCBiZSAzIG9yIGV2ZW4pIiAlIGRlZ3JlZSkKKyAgICAgUiA9IFJlYWxGaWVsZChpbnQo cHJlYyozLzIpKQorICAgICBSb3V0ID0gUmVhbEZpZWxkKHByZWMpCistICAgIG1wZnJfaW5pdDIo dSxSLl9fcHJlYykKKy0gICAgbXBmcl9pbml0Mih2LFIuX19wcmVjKQorKyAgICBtcGZyX2luaXQy KHUsUi5fcHJlYykKKysgICAgbXBmcl9pbml0Mih2LFIuX3ByZWMpCisgICAgIFpFUk8gPSBSLnpl cm8oKQorICAgICBPTkUgPSBSLm9uZSgpCisgICAgIEhBTEYgPSBPTkUvMgorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL251bWVyaWNhbC9saW5lYXJfZnVuY3Rpb25zLnB5eCBiL3NyYy9zYWdlL251bWVy aWNhbC9saW5lYXJfZnVuY3Rpb25zLnB5eAoraW5kZXggNTU0OWZmNDM2ZjUuLmYzZmM2ZmU0MTlj IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbnVtZXJpY2FsL2xpbmVhcl9mdW5jdGlvbnMucHl4Cisr KysgYi9zcmMvc2FnZS9udW1lcmljYWwvbGluZWFyX2Z1bmN0aW9ucy5weXgKK0BAIC0xNTc5LDcg KzE1NzksMTAgQEAgY2RlZiBjbGFzcyBMaW5lYXJDb25zdHJhaW50KExpbmVhckZ1bmN0aW9uT3JD b25zdHJhaW50KToKKyAgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICAgeWllbGQgKGxo cywgcmhzKQorICAgICAgICAgICAgIGxocyA9IHJocworLSAgICAgICAgICAgIHJocyA9IG5leHQo dGVybV9pdGVyKQorKyAgICAgICAgICAgIHRyeToKKysgICAgICAgICAgICAgICAgcmhzID0gbmV4 dCh0ZXJtX2l0ZXIpCisrICAgICAgICAgICAgZXhjZXB0IFN0b3BJdGVyYXRpb246CisrICAgICAg ICAgICAgICAgIHJldHVybgorIAorICAgICBkZWYgaW5lcXVhbGl0aWVzKHNlbGYpOgorICAgICAg ICAgIiIiCitAQCAtMTYxMiw3ICsxNjE1LDEwIEBAIGNkZWYgY2xhc3MgTGluZWFyQ29uc3RyYWlu dChMaW5lYXJGdW5jdGlvbk9yQ29uc3RyYWludCk6CisgICAgICAgICB3aGlsZSBUcnVlOgorICAg ICAgICAgICAgIHlpZWxkIChsaHMsIHJocykKKyAgICAgICAgICAgICBsaHMgPSByaHMKKy0gICAg ICAgICAgICByaHMgPSBuZXh0KHRlcm1faXRlcikKKysgICAgICAgICAgICB0cnk6CisrICAgICAg ICAgICAgICAgIHJocyA9IG5leHQodGVybV9pdGVyKQorKyAgICAgICAgICAgIGV4Y2VwdCBTdG9w SXRlcmF0aW9uOgorKyAgICAgICAgICAgICAgICByZXR1cm4KKyAKKyAgICAgZGVmIF9yZXByXyhz ZWxmKToKKyAgICAgICAgIHIiIiIKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9xdWl2ZXJzL3JlcHJl c2VudGF0aW9uLnB5IGIvc3JjL3NhZ2UvcXVpdmVycy9yZXByZXNlbnRhdGlvbi5weQoraW5kZXgg OWMxMWViOGFkMGUuLmRiODJjYmQ3Yzg2IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcXVpdmVycy9y ZXByZXNlbnRhdGlvbi5weQorKysrIGIvc3JjL3NhZ2UvcXVpdmVycy9yZXByZXNlbnRhdGlvbi5w eQorQEAgLTEyOTcsMTAgKzEyOTcsNyBAQCBkZWYgY29weShzZWxmKToKKyAgICAgICAgICAgICBz YWdlOiB2LmdldF9lbGVtZW50KDEpCisgICAgICAgICAgICAgKDEsIDApCisgICAgICAgICAiIiIK Ky0gICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKToKKy0gICAgICAgICAg ICBuYW1lID0gc2VsZi5fX2N1c3RvbV9uYW1lCistICAgICAgICBlbHNlOgorLSAgICAgICAgICAg IG5hbWUgPSBOb25lCisrICAgICAgICBuYW1lID0gc2VsZi5nZXRfY3VzdG9tX25hbWUoKQorICAg ICAgICAgcmV0dXJuIHNlbGYucGFyZW50KCkoc2VsZi5fZWxlbXMuY29weSgpLCBuYW1lKQorIAor ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvY29tcGxleF9hcmIucHl4 IGIvc3JjL3NhZ2UvcmluZ3MvY29tcGxleF9hcmIucHl4CitpbmRleCBlZjQzMmMxZTk0NS4uOTVl NjE1ZjNlZTYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X2FyYi5weXgKKysr KyBiL3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhfYXJiLnB5eAorQEAgLTg3NCw3ICs4NzQsNyBAQCBj bGFzcyBDb21wbGV4QmFsbEZpZWxkKFVuaXF1ZVJlcHJlc2VudGF0aW9uLCBzYWdlLnJpbmdzLmFi Yy5Db21wbGV4QmFsbEZpZWxkKToKKyAgICAgICAgIGNkZWYgUmVhbEJhbGwgcmIKKyAgICAgICAg IGNkZWYgQ29tcGxleEJhbGwgY2IKKyAgICAgICAgIGFjYl9wb2x5X2luaXQocm91bmRlZF9wb2x5 KQorLSAgICAgICAgY2RlZiBsb25nIGRlZyA9IGFjYl9wb2x5X2RlZ3JlZShwb2x5Ll9fcG9seSkK KysgICAgICAgIGNkZWYgbG9uZyBkZWcgPSBhY2JfcG9seV9kZWdyZWUocG9seS5fcG9seSkKKyAg ICAgICAgIGlmIGRlZyA8IDA6CisgICAgICAgICAgICAgcmFpc2UgQXJpdGhtZXRpY0Vycm9yKCJ0 YWtpbmcgdGhlIHJvb3RzIG9mIHRoZSB6ZXJvIHBvbHlub21pYWwiKQorICAgICAgICAgY2RlZiBh Y2JfcHRyIHJvb3RzID0gX2FjYl92ZWNfaW5pdChkZWcpCitAQCAtODgzLDcgKzg4Myw3IEBAIGNs YXNzIENvbXBsZXhCYWxsRmllbGQoVW5pcXVlUmVwcmVzZW50YXRpb24sIHNhZ2UucmluZ3MuYWJj LkNvbXBsZXhCYWxsRmllbGQpOgorICAgICAgICAgICAgIHdoaWxlICgoaXNvbGF0ZWQgPCBkZWcg b3IgYW55KGFjYl9yZWxfYWNjdXJhY3lfYml0cygmcm9vdHNbaV0pIDwgdGd0cHJlYworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiByYW5nZShkZWcpKSkK KyAgICAgICAgICAgICAgICAgYW5kIHByZWMgPCBtYXhwcmVjKToKKy0gICAgICAgICAgICAgICAg YWNiX3BvbHlfc2V0X3JvdW5kKHJvdW5kZWRfcG9seSwgcG9seS5fX3BvbHksIHByZWMpCisrICAg ICAgICAgICAgICAgIGFjYl9wb2x5X3NldF9yb3VuZChyb3VuZGVkX3BvbHksIHBvbHkuX3BvbHks IHByZWMpCisgICAgICAgICAgICAgICAgIG1heGl0ZXIgPSBtaW4obWF4KGRlZywgMzIpLCBwcmVj KQorICAgICAgICAgICAgICAgICBpZiAocHJlYyA9PSBpbml0aWFsX3ByZWMpOgorICAgICAgICAg ICAgICAgICAgICAgaXNvbGF0ZWQgPSBhY2JfcG9seV9maW5kX3Jvb3RzKHJvb3RzLCByb3VuZGVk X3BvbHksIE5VTEwsIG1heGl0ZXIsIHByZWMpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3Mv Y29tcGxleF9tcGMucHhkIGIvc3JjL3NhZ2UvcmluZ3MvY29tcGxleF9tcGMucHhkCitpbmRleCA3 NjJjMzhhZmJkYy4uZjdkOGNiOTQ5MmMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9jb21w bGV4X21wYy5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhfbXBjLnB4ZAorQEAgLTEx LDcgKzExLDcgQEAgY2RlZiBjbGFzcyBNUENvbXBsZXhOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxl bWVudC5GaWVsZEVsZW1lbnQpOgorICAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcikKKyAKKyBj ZGVmIGNsYXNzIE1QQ29tcGxleEZpZWxkX2NsYXNzKHNhZ2UucmluZ3MucmluZy5GaWVsZCk6Cist ICAgIGNkZWYgcmVhZG9ubHkgaW50IF9fcHJlYworKyAgICBjZGVmIHJlYWRvbmx5IGludCBfcHJl YworICAgICBjZGVmIG1wY19ybmRfdCBfX3JuZAorICAgICBjZGVmIG9iamVjdCBfX3JuZF9zdHIK KyAgICAgY2RlZiBvYmplY3QgX19yZWFsX2ZpZWxkCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvcmlu Z3MvY29tcGxleF9tcGMucHl4IGIvc3JjL3NhZ2UvcmluZ3MvY29tcGxleF9tcGMucHl4CitpbmRl eCBiMzY4MWZmNzI0Zi4uYzg0N2E5MzAyYjUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9j b21wbGV4X21wYy5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhfbXBjLnB5eAorQEAg LTMwNyw3ICszMDcsNyBAQCBjZGVmIGNsYXNzIE1QQ29tcGxleEZpZWxkX2NsYXNzKHNhZ2Uucmlu Z3MucmluZy5GaWVsZCk6CisgICAgICAgICBpZiBwcmVjIDwgbXBmcl9wcmVjX21pbigpIG9yIHBy ZWMgPiBtcGZyX3ByZWNfbWF4KCk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigicHJl YyAoPSVzKSBtdXN0IGJlID49ICVzIGFuZCA8PSAlcy4iICUgKAorICAgICAgICAgICAgICAgICBw cmVjLCBtcGZyX3ByZWNfbWluKCksIG1wZnJfcHJlY19tYXgoKSkpCistICAgICAgICBzZWxmLl9f cHJlYyA9IHByZWMKKysgICAgICAgIHNlbGYuX3ByZWMgPSBwcmVjCisgICAgICAgICBpZiBub3Qg aXNpbnN0YW5jZShybmQsIHN0cik6CisgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJybmQg bXVzdCBiZSBhIHN0cmluZyIpCisgICAgICAgICB0cnk6CitAQCAtMzMxLDcgKzMzMSw3IEBAIGNk ZWYgY2xhc3MgTVBDb21wbGV4RmllbGRfY2xhc3Moc2FnZS5yaW5ncy5yaW5nLkZpZWxkKToKKyAg ICAgICAgIGNkZWYgTVBDb21wbGV4TnVtYmVyIHoKKyAgICAgICAgIHogPSBNUENvbXBsZXhOdW1i ZXIuX19uZXdfXyhNUENvbXBsZXhOdW1iZXIpCisgICAgICAgICB6Ll9wYXJlbnQgPSBzZWxmCist ICAgICAgICBtcGNfaW5pdDIoei52YWx1ZSwgc2VsZi5fX3ByZWMpCisrICAgICAgICBtcGNfaW5p dDIoei52YWx1ZSwgc2VsZi5fcHJlYykKKyAgICAgICAgIHouaW5pdCA9IDEKKyAgICAgICAgIHJl dHVybiB6CisgCitAQCAtMzQ0LDcgKzM0NCw3IEBAIGNkZWYgY2xhc3MgTVBDb21wbGV4RmllbGRf Y2xhc3Moc2FnZS5yaW5ncy5yaW5nLkZpZWxkKToKKyAgICAgICAgICAgICBzYWdlOiBNUENvbXBs ZXhGaWVsZCgyMDAsICdSTkREVScpICMgaW5kaXJlY3QgZG9jdGVzdAorICAgICAgICAgICAgIENv bXBsZXggRmllbGQgd2l0aCAyMDAgYml0cyBvZiBwcmVjaXNpb24gYW5kIHJvdW5kaW5nIFJORERV CisgICAgICAgICAiIiIKKy0gICAgICAgIHMgPSAiQ29tcGxleCBGaWVsZCB3aXRoICVzIGJpdHMg b2YgcHJlY2lzaW9uIiVzZWxmLl9fcHJlYworKyAgICAgICAgcyA9ICJDb21wbGV4IEZpZWxkIHdp dGggJXMgYml0cyBvZiBwcmVjaXNpb24iJXNlbGYuX3ByZWMKKyAgICAgICAgIGlmIHNlbGYuX19y bmQgIT0gTVBDX1JORE5OOgorICAgICAgICAgICAgIHMgPSBzICsgIiBhbmQgcm91bmRpbmcgJXMi JShzZWxmLl9fcm5kX3N0cikKKyAgICAgICAgIHJldHVybiBzCitAQCAtNDY1LDEzICs0NjUsMTMg QEAgY2RlZiBjbGFzcyBNUENvbXBsZXhGaWVsZF9jbGFzcyhzYWdlLnJpbmdzLnJpbmcuRmllbGQp OgorICAgICAgICAgaWYgUlIuaGFzX2NvZXJjZV9tYXBfZnJvbShTKToKKyAgICAgICAgICAgICBy ZXR1cm4gc2VsZi5fY29lcmNlX21hcF92aWEoW1JSXSwgUykKKyAKKy0gICAgICAgIGlmIGlzaW5z dGFuY2UoUywgTVBDb21wbGV4RmllbGRfY2xhc3MpIGFuZCBTLnByZWMoKSA+PSBzZWxmLl9fcHJl YzoKKysgICAgICAgIGlmIGlzaW5zdGFuY2UoUywgTVBDb21wbGV4RmllbGRfY2xhc3MpIGFuZCBT LnByZWMoKSA+PSBzZWxmLl9wcmVjOgorICAgICAgICAgICAgICNGSVhNRTogV2hhdCBtYXAgd2hl biByb3VuZGluZyBtb2RlcyBkaWZmZXIgYnV0IHByZWMgaXMgdGhlIHNhbWUgPworICAgICAgICAg ICAgICMgICAgICAgSG93IHRvIHByb3ZpZGUgY29tbXV0YXRpdml0eSBvZiBtb3JwaGlzbXMgPwor ICAgICAgICAgICAgICMgICAgICAgQ2hhbmdlIF9jbXBfIHdoZW4gZG9uZQorICAgICAgICAgICAg IHJldHVybiBNUEN0b01QQyhTLCBzZWxmKQorIAorLSAgICAgICAgaWYgaXNpbnN0YW5jZShTLCBD b21wbGV4RmllbGRfY2xhc3MpIGFuZCBTLnByZWMoKSA+PSBzZWxmLl9fcHJlYzoKKysgICAgICAg IGlmIGlzaW5zdGFuY2UoUywgQ29tcGxleEZpZWxkX2NsYXNzKSBhbmQgUy5wcmVjKCkgPj0gc2Vs Zi5fcHJlYzoKKyAgICAgICAgICAgICByZXR1cm4gQ0N0b01QQyhTLCBzZWxmKQorIAorICAgICAg ICAgbGF0ZV9pbXBvcnQoKQorQEAgLTQ5MCw3ICs0OTAsNyBAQCBjZGVmIGNsYXNzIE1QQ29tcGxl eEZpZWxkX2NsYXNzKHNhZ2UucmluZ3MucmluZy5GaWVsZCk6CisgICAgICAgICAgICAgc2FnZTog bG9hZHMoZHVtcHMoQykpID09IEMKKyAgICAgICAgICAgICBUcnVlCisgICAgICAgICAiIiIKKy0g ICAgICAgIHJldHVybiBfX2NyZWF0ZV9fTVBDb21wbGV4RmllbGRfdmVyc2lvbjAsIChzZWxmLl9f cHJlYywgc2VsZi5fX3JuZF9zdHIpCisrICAgICAgICByZXR1cm4gX19jcmVhdGVfX01QQ29tcGxl eEZpZWxkX3ZlcnNpb24wLCAoc2VsZi5fcHJlYywgc2VsZi5fX3JuZF9zdHIpCisgCisgICAgIGRl ZiBfX3JpY2hjbXBfXyhsZWZ0LCByaWdodCwgaW50IG9wKToKKyAgICAgICAgICIiIgorQEAgLTUx Myw3ICs1MTMsNyBAQCBjZGVmIGNsYXNzIE1QQ29tcGxleEZpZWxkX2NsYXNzKHNhZ2UucmluZ3Mu cmluZy5GaWVsZCk6CisgCisgICAgICAgICBjZGVmIE1QQ29tcGxleEZpZWxkX2NsYXNzIHMgPSA8 TVBDb21wbGV4RmllbGRfY2xhc3M+bGVmdAorICAgICAgICAgY2RlZiBNUENvbXBsZXhGaWVsZF9j bGFzcyBvID0gPE1QQ29tcGxleEZpZWxkX2NsYXNzPnJpZ2h0CistICAgICAgICByZXR1cm4gcmlj aGNtcChzLl9fcHJlYywgby5fX3ByZWMsIG9wKQorKyAgICAgICAgcmV0dXJuIHJpY2hjbXAocy5f cHJlYywgby5fcHJlYywgb3ApCisgCisgICAgIGRlZiBnZW4oc2VsZiwgbj0wKToKKyAgICAgICAg ICIiIgorQEAgLTYwNCw3ICs2MDQsNyBAQCBjZGVmIGNsYXNzIE1QQ29tcGxleEZpZWxkX2NsYXNz KHNhZ2UucmluZ3MucmluZy5GaWVsZCk6CisgICAgICAgICAgICAgc2FnZTogQyA9IE1QQ29tcGxl eEZpZWxkKDEwLCAnUk5ETlonKTsgQy5uYW1lKCkKKyAgICAgICAgICAgICAnTVBDb21wbGV4Rmll bGQxMF9STkROWicKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuICJNUENvbXBsZXhGaWVs ZCVzXyVzIiUoc2VsZi5fX3ByZWMsIHNlbGYuX19ybmRfc3RyKQorKyAgICAgICAgcmV0dXJuICJN UENvbXBsZXhGaWVsZCVzXyVzIiUoc2VsZi5fcHJlYywgc2VsZi5fX3JuZF9zdHIpCisgCisgICAg IGRlZiBfX2hhc2hfXyhzZWxmKToKKyAgICAgICAgICIiIgorQEAgLTYyOSw3ICs2MjksNyBAQCBj ZGVmIGNsYXNzIE1QQ29tcGxleEZpZWxkX2NsYXNzKHNhZ2UucmluZ3MucmluZy5GaWVsZCk6Cisg ICAgICAgICAgICAgc2FnZTogTVBDb21wbGV4RmllbGQoMjIpLnByZWMoKQorICAgICAgICAgICAg IDIyCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBzZWxmLl9fcHJlYworKyAgICAgICAg cmV0dXJuIHNlbGYuX3ByZWMKKyAKKyAgICAgZGVmIHJvdW5kaW5nX21vZGUoc2VsZik6CisgICAg ICAgICAiIiIKK0BAIC03MDcsNyArNzA3LDcgQEAgY2RlZiBjbGFzcyBNUENvbXBsZXhOdW1iZXIo c2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5GaWVsZEVsZW1lbnQpOgorICAgICAgICAgY2RlZiBNUENv bXBsZXhOdW1iZXIgegorICAgICAgICAgeiA9IE1QQ29tcGxleE51bWJlci5fX25ld19fKE1QQ29t cGxleE51bWJlcikKKyAgICAgICAgIHouX3BhcmVudCA9IHNlbGYuX3BhcmVudAorLSAgICAgICAg bXBjX2luaXQyKHoudmFsdWUsICg8TVBDb21wbGV4RmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5f X3ByZWMpCisrICAgICAgICBtcGNfaW5pdDIoei52YWx1ZSwgKDxNUENvbXBsZXhGaWVsZF9jbGFz cz5zZWxmLl9wYXJlbnQpLl9wcmVjKQorICAgICAgICAgei5pbml0ID0gMQorICAgICAgICAgcmV0 dXJuIHoKKyAKK0BAIC03NjAsNyArNzYwLDcgQEAgY2RlZiBjbGFzcyBNUENvbXBsZXhOdW1iZXIo c2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5GaWVsZEVsZW1lbnQpOgorICAgICAgICAgaWYgcGFyZW50 IGlzIE5vbmU6CisgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yCisgICAgICAgICBzZWxmLl9w YXJlbnQgPSBwYXJlbnQKKy0gICAgICAgIG1wY19pbml0MihzZWxmLnZhbHVlLCBwYXJlbnQuX19w cmVjKQorKyAgICAgICAgbXBjX2luaXQyKHNlbGYudmFsdWUsIHBhcmVudC5fcHJlYykKKyAgICAg ICAgIHNlbGYuaW5pdCA9IDEKKyAgICAgICAgIGlmIHggaXMgTm9uZTogcmV0dXJuCisgICAgICAg ICBzZWxmLl9zZXQoeCwgeSwgYmFzZSkKK0BAIC0xMDEwLDcgKzEwMTAsNyBAQCBjZGVmIGNsYXNz IE1QQ29tcGxleE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkZpZWxkRWxlbWVudCk6Cisg ICAgICAgICAgICAgc2FnZTogaS5wcmVjKCkKKyAgICAgICAgICAgICAyMDAwCisgICAgICAgICAi IiIKKy0gICAgICAgIHJldHVybiA8TVBDb21wbGV4RmllbGRfY2xhc3M+KHNlbGYuX3BhcmVudCku X19wcmVjCisrICAgICAgICByZXR1cm4gPE1QQ29tcGxleEZpZWxkX2NsYXNzPihzZWxmLl9wYXJl bnQpLl9wcmVjCisgCisgICAgIGRlZiByZWFsKHNlbGYpOgorICAgICAgICAgIiIiCitAQCAtMTU3 MSwyNiArMTU3MSw2IEBAIGNkZWYgY2xhc3MgTVBDb21wbGV4TnVtYmVyKHNhZ2Uuc3RydWN0dXJl LmVsZW1lbnQuRmllbGRFbGVtZW50KToKKyAgICAgICAgIG1wY19ub3JtKHgudmFsdWUsIHNlbGYu dmFsdWUsICg8UmVhbEZpZWxkX2NsYXNzPnguX3BhcmVudCkucm5kKQorICAgICAgICAgcmV0dXJu IHgKKyAKKy0gICAgZGVmIF9fcnRydWVkaXZfXyhzZWxmLCBsZWZ0KToKKy0gICAgICAgIHIiIiIK Ky0gICAgICAgIFJldHVybnMgdGhlIHF1b3RpZW50IG9mIGBgbGVmdGBgIHdpdGggYGBzZWxmYGAs IHRoYXQgaXM6IGBgbGVmdC9zZWxmYGAKKy0gICAgICAgIGFzIGEgY29tcGxleCBudW1iZXIuCist CistICAgICAgICBJTlBVVDoKKy0KKy0gICAgICAgIC0gYGBsZWZ0YGAgLS0gYSBjb21wbGV4IG51 bWJlcgorLQorLSAgICAgICAgRVhBTVBMRVM6OgorLQorLSAgICAgICAgICAgIHNhZ2U6IE1QQyA9 IE1QQ29tcGxleEZpZWxkKCkKKy0gICAgICAgICAgICBzYWdlOiBhID0gTVBDKDIsIDIpCistICAg ICAgICAgICAgc2FnZTogYS5fX3J0cnVlZGl2X18oTVBDKDEpKQorLSAgICAgICAgICAgIDAuMjUw MDAwMDAwMDAwMDAwIC0gMC4yNTAwMDAwMDAwMDAwMDAqSQorLSAgICAgICAgICAgIHNhZ2U6IE1Q QygxKS9hCistICAgICAgICAgICAgMC4yNTAwMDAwMDAwMDAwMDAgLSAwLjI1MDAwMDAwMDAwMDAw MCpJCistICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBNUENvbXBsZXhOdW1iZXIoc2VsZi5f cGFyZW50LCBsZWZ0KS9zZWxmCistCisgICAgIGRlZiBfX3Bvd19fKHNlbGYsIHJpZ2h0LCBtb2R1 bHVzKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29tcHV0ZSBgYHNlbGZgYCByYWlzZWQgdG8g dGhlIHBvd2VyIG9mIGV4cG9uZW50LCByb3VuZGVkIGluCitAQCAtMjM0Nyw3ICsyMzI3LDcgQEAg Y2RlZiBjbGFzcyBNUENvbXBsZXhOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5GaWVsZEVs ZW1lbnQpOgorIAorICAgICAgICAgY2RlZiBtcGNfcm5kX3Qgcm5kID0gKDxNUENvbXBsZXhGaWVs ZF9jbGFzcz4oc2VsZi5fcGFyZW50KSkuX19ybmQKKyAKKy0gICAgICAgIGNkZWYgaW50IHByZWMg PSBzZWxmLl9wYXJlbnQuX19wcmVjCisrICAgICAgICBjZGVmIGludCBwcmVjID0gc2VsZi5fcGFy ZW50Ll9wcmVjCisgCisgICAgICAgICBpZiBvcHRpbWFsIG9yIGFsZ29yaXRobSA9PSAicHJpbmNp cGFsIjoKKyAgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShyaWdodCwgTVBDb21wbGV4TnVt YmVyKSBvciAoPE1QQ29tcGxleE51bWJlcj5yaWdodCkuX3BhcmVudCBpcyBub3Qgc2VsZi5fcGFy ZW50OgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhfbXBmci5weXggYi9zcmMv c2FnZS9yaW5ncy9jb21wbGV4X21wZnIucHl4CitpbmRleCAzM2Q3M2Q4MWIxMi4uNjFmMmNhZGM4 ZTQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X21wZnIucHl4CisrKysgYi9z cmMvc2FnZS9yaW5ncy9jb21wbGV4X21wZnIucHl4CitAQCAtMTY1OCwyOCArMTY1OCw2IEBAIGNk ZWYgY2xhc3MgQ29tcGxleE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkZpZWxkRWxlbWVu dCk6CisgICAgICAgICBtcGZyX2NsZWFyKHJpZ2h0X25tKQorICAgICAgICAgcmV0dXJuIHgKKyAK Ky0gICAgZGVmIF9fcnRydWVkaXZfXyhzZWxmLCBsZWZ0KToKKy0gICAgICAgIHIiIiIKKy0gICAg ICAgIFJldHVybiB0aGUgcXVvdGllbnQgb2YgbGVmdCB3aXRoIGBgc2VsZmBgLCB0aGF0IGlzOgor LQorLSAgICAgICAgYGBsZWZ0L3NlbGZgYAorLQorLSAgICAgICAgYXMgYSBjb21wbGV4IG51bWJl ci4KKy0KKy0gICAgICAgIElOUFVUOgorLQorLSAgICAgICAgLSBgYGxlZnRgYCAtLSBhIGNvbXBs ZXggbnVtYmVyIHRvIGRpdmlkZSBieSBgYHNlbGZgYAorLQorLSAgICAgICAgRVhBTVBMRVM6Ogor LQorLSAgICAgICAgICAgIHNhZ2U6IGEgPSBDb21wbGV4TnVtYmVyKDIsMCkKKy0gICAgICAgICAg ICBzYWdlOiBhLl9fcnRydWVkaXZfXyhDQygxKSkKKy0gICAgICAgICAgICAwLjUwMDAwMDAwMDAw MDAwMAorLSAgICAgICAgICAgIHNhZ2U6IENDKDEpL2EKKy0gICAgICAgICAgICAwLjUwMDAwMDAw MDAwMDAwMAorLSAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gQ29tcGxleE51bWJlcihzZWxm Ll9wYXJlbnQsIGxlZnQpL3NlbGYKKy0KKyAgICAgZGVmIF9fcG93X18oc2VsZiwgcmlnaHQsIG1v ZHVsdXMpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmFpc2UgYGBzZWxmYGAgdG8gdGhlIGBg cmlnaHRgYCBleHBvbmVudC4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmlu Z3MvaW50ZWdlcl9tb2QucHhkIGIvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2ludGVnZXJf bW9kLnB4ZAoraW5kZXggMWUzY2I4MWMxNDguLjM1MWZmYTI1ZTFiIDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2ludGVnZXJfbW9kLnB4ZAorKysrIGIvc3JjL3NhZ2Uv cmluZ3MvZmluaXRlX3JpbmdzL2ludGVnZXJfbW9kLnB4ZAorQEAgLTIwLDcgKzIwLDcgQEAgY2Rl ZiBjbGFzcyBOYXRpdmVJbnRTdHJ1Y3Q6CisgCisgCisgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2Fi c3RyYWN0KEZpbml0ZVJpbmdFbGVtZW50KToKKy0gICAgY2RlZiBOYXRpdmVJbnRTdHJ1Y3QgX19t b2R1bHVzCisrICAgIGNkZWYgTmF0aXZlSW50U3RydWN0IF9tb2R1bHVzCisgICAgIGNkZWYgX25l d19jX2Zyb21fbG9uZyhzZWxmLCBsb25nIHZhbHVlKQorICAgICBjZGVmIEludGVnZXJNb2RfYWJz dHJhY3QgX25ld19jX2Zhc3Qoc2VsZiwgdW5zaWduZWQgbG9uZyB2YWx1ZSkKKyAgICAgY2RlZiB2 b2lkIHNldF9mcm9tX21weihzZWxmLCBtcHpfdCB2YWx1ZSkKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9yaW5ncy9maW5pdGVfcmluZ3MvaW50ZWdlcl9tb2QucHl4IGIvc3JjL3NhZ2UvcmluZ3MvZmlu aXRlX3JpbmdzL2ludGVnZXJfbW9kLnB5eAoraW5kZXggYjk0NjFiZDM2MmUuLmQ2NGJhNWFmODRm IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2ludGVnZXJfbW9kLnB5 eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2ludGVnZXJfbW9kLnB5eAorQEAg LTM2MSw3ICszNjEsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfYWJzdHJhY3QoRmluaXRlUmlu Z0VsZW1lbnQpOgorICAgICAgICAgICAgIFplcm9EaXZpc2lvbkVycm9yOiBpbnZlcnNlIG9mIE1v ZCg0LCAzMCkgZG9lcyBub3QgZXhpc3QKKyAgICAgICAgICIiIgorICAgICAgICAgc2VsZi5fcGFy ZW50ID0gcGFyZW50CistICAgICAgICBzZWxmLl9fbW9kdWx1cyA9IHBhcmVudC5fcHl4X29yZGVy CisrICAgICAgICBzZWxmLl9tb2R1bHVzID0gcGFyZW50Ll9weXhfb3JkZXIKKyAKKyAgICAgICAg IGlmIHZhbHVlIGlzIE5vbmU6CisgICAgICAgICAgICAgcmV0dXJuCitAQCAtMzczLDcgKzM3Myw3 IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9hYnN0cmFjdChGaW5pdGVSaW5nRWxlbWVudCk6Cisg ICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBJbnRlZ2VyKToKKyAgICAgICAgICAgICB6ID0g PEludGVnZXI+dmFsdWUKKyAgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh2YWx1ZSwgcmF0aW9uYWwu UmF0aW9uYWwpOgorLSAgICAgICAgICAgIHogPSB2YWx1ZSAlIHNlbGYuX19tb2R1bHVzLnNhZ2VJ bnRlZ2VyCisrICAgICAgICAgICAgeiA9IHZhbHVlICUgc2VsZi5fbW9kdWx1cy5zYWdlSW50ZWdl cgorICAgICAgICAgZWxpZiBpbnRlZ2VyX2NoZWNrX2xvbmdfcHkodmFsdWUsICZsb25ndmFsLCAm ZXJyKSBhbmQgbm90IGVycjoKKyAgICAgICAgICAgICBzZWxmLnNldF9mcm9tX2xvbmcobG9uZ3Zh bCkKKyAgICAgICAgICAgICByZXR1cm4KK0BAIC0zODgsNyArMzg4LDcgQEAgY2RlZiBjbGFzcyBJ bnRlZ2VyTW9kX2Fic3RyYWN0KEZpbml0ZVJpbmdFbGVtZW50KToKKyAgICAgICAgICAgICAgICAg ICAgIHZhbHVlID0gcHlfc2NhbGFyX3RvX2VsZW1lbnQodmFsdWUpCisgICAgICAgICAgICAgICAg IGlmIGlzaW5zdGFuY2UodmFsdWUsIEVsZW1lbnQpIGFuZCB2YWx1ZS5wYXJlbnQoKS5pc19leGFj dCgpOgorICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzYWdlLnJpbmdzLnJhdGlvbmFsX2Zp ZWxkLlFRKHZhbHVlKQorLSAgICAgICAgICAgICAgICAgICAgeiA9IHZhbHVlICUgc2VsZi5fX21v ZHVsdXMuc2FnZUludGVnZXIKKysgICAgICAgICAgICAgICAgICAgIHogPSB2YWx1ZSAlIHNlbGYu X21vZHVsdXMuc2FnZUludGVnZXIKKyAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICAgICAgICAgIHJhaXNlCisgICAgICAgICBzZWxmLnNldF9mcm9tX21weih6LnZhbHVlKQorQEAg LTM5Nyw3ICszOTcsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfYWJzdHJhY3QoRmluaXRlUmlu Z0VsZW1lbnQpOgorICAgICAgICAgY2RlZiB0eXBlIHQgPSB0eXBlKHNlbGYpCisgICAgICAgICB4 ID0gPEludGVnZXJNb2RfYWJzdHJhY3Q+dC5fX25ld19fKHQpCisgICAgICAgICB4Ll9wYXJlbnQg PSBzZWxmLl9wYXJlbnQKKy0gICAgICAgIHguX19tb2R1bHVzID0gc2VsZi5fX21vZHVsdXMKKysg ICAgICAgIHguX21vZHVsdXMgPSBzZWxmLl9tb2R1bHVzCisgICAgICAgICB4LnNldF9mcm9tX3Vs b25nX2Zhc3QodmFsdWUpCisgICAgICAgICByZXR1cm4geAorIAorQEAgLTQwNSw3ICs0MDUsNyBA QCBjZGVmIGNsYXNzIEludGVnZXJNb2RfYWJzdHJhY3QoRmluaXRlUmluZ0VsZW1lbnQpOgorICAg ICAgICAgY2RlZiB0eXBlIHQgPSB0eXBlKHNlbGYpCisgICAgICAgICBjZGVmIEludGVnZXJNb2Rf YWJzdHJhY3QgeCA9IDxJbnRlZ2VyTW9kX2Fic3RyYWN0PnQuX19uZXdfXyh0KQorICAgICAgICAg eC5fcGFyZW50ID0gc2VsZi5fcGFyZW50CistICAgICAgICB4Ll9fbW9kdWx1cyA9IHNlbGYuX19t b2R1bHVzCisrICAgICAgICB4Ll9tb2R1bHVzID0gc2VsZi5fbW9kdWx1cworICAgICAgICAgeC5z ZXRfZnJvbV9sb25nKHZhbHVlKQorICAgICAgICAgcmV0dXJuIHgKKyAKK0BAIC01MjksMTcgKzUy OSwxNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfYWJzdHJhY3QoRmluaXRlUmluZ0VsZW1lbnQp OgorICAgICAgICAgIiIiCisgICAgICAgICBpZiBzZWxmLmlzX3plcm8oKToKKyAgICAgICAgICAg ICByZXR1cm4gVHJ1ZQorLSAgICAgICAgbSA9IHNlbGYuX19tb2R1bHVzLnNhZ2VJbnRlZ2VyLmV4 YWN0X2xvZygyKSArIDEKKysgICAgICAgIG0gPSBzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyLmV4 YWN0X2xvZygyKSArIDEKKyAgICAgICAgIHJldHVybiAoc2VsZioqbSkuaXNfemVybygpCisgCisg ICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisgICAgICMgSW50ZXJmYWNlcworICAgICAjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICAgICBkZWYg X3BhcmlfaW5pdF8oc2VsZik6CistICAgICAgICByZXR1cm4gJ01vZCglcywlcyknJShzdHIoc2Vs ZiksIHNlbGYuX19tb2R1bHVzLnNhZ2VJbnRlZ2VyKQorKyAgICAgICAgcmV0dXJuICdNb2QoJXMs JXMpJyUoc3RyKHNlbGYpLCBzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyKQorIAorICAgICBkZWYg X19wYXJpX18oc2VsZik6CistICAgICAgICByZXR1cm4gc2VsZi5saWZ0KCkuX19wYXJpX18oKS5N b2Qoc2VsZi5fX21vZHVsdXMuc2FnZUludGVnZXIpCisrICAgICAgICByZXR1cm4gc2VsZi5saWZ0 KCkuX19wYXJpX18oKS5Nb2Qoc2VsZi5fbW9kdWx1cy5zYWdlSW50ZWdlcikKKyAKKyAgICAgZGVm IF9nYXBfaW5pdF8oc2VsZik6CisgICAgICAgICByIiIiCitAQCAtNTU4LDcgKzU1OCw3IEBAIGNk ZWYgY2xhc3MgSW50ZWdlck1vZF9hYnN0cmFjdChGaW5pdGVSaW5nRWxlbWVudCk6CisgICAgICAg ICAgICAgc2FnZTogZ2FwKE1vZCg0LCA0OCkpCisgICAgICAgICAgICAgWm1vZG5aT2JqKCA0LCA0 OCApCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiAnJXMqT25lKFptb2RuWiglcykpJyAl IChzZWxmLCBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlcikKKysgICAgICAgIHJldHVybiAnJXMq T25lKFptb2RuWiglcykpJyAlIChzZWxmLCBzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyKQorIAor ICAgICBkZWYgX21hZ21hX2luaXRfKHNlbGYsIG1hZ21hKToKKyAgICAgICAgICIiIgorQEAgLTg2 OSw3ICs4NjksNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfYWJzdHJhY3QoRmluaXRlUmluZ0Vs ZW1lbnQpOgorICAgICAgICAgICAgIHNhZ2U6IE1vZCgzLDE3KS5tb2R1bHVzKCkKKyAgICAgICAg ICAgICAxNworICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5fX21vZHVsdXMuc2Fn ZUludGVnZXIKKysgICAgICAgIHJldHVybiBzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyCisgCisg ICAgIGRlZiBjaGFycG9seShzZWxmLCB2YXI9J3gnKToKKyAgICAgICAgICIiIgorQEAgLTEyMjks NyArMTIyOSw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9hYnN0cmFjdChGaW5pdGVSaW5nRWxl bWVudCk6CisgICAgICAgICAgICAgICAgIG1vZHVsdXMgPSBSLmdlbigpKioyIC0gUihzZWxmKQor ICAgICAgICAgICAgICAgICBpZiBzZWxmLl9wYXJlbnQuaXNfZmllbGQoKToKKyAgICAgICAgICAg ICAgICAgICAgIGZyb20gLmZpbml0ZV9maWVsZF9jb25zdHJ1Y3RvciBpbXBvcnQgRmluaXRlRmll bGQKKy0gICAgICAgICAgICAgICAgICAgIFEgPSBGaW5pdGVGaWVsZChzZWxmLl9fbW9kdWx1cy5z YWdlSW50ZWdlcioqMiwgeSwgbW9kdWx1cykKKysgICAgICAgICAgICAgICAgICAgIFEgPSBGaW5p dGVGaWVsZChzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyKioyLCB5LCBtb2R1bHVzKQorICAgICAg ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgUiA9IHNlbGYucGFyZW50KClb J3gnXQorICAgICAgICAgICAgICAgICAgICAgUSA9IFIucXVvdGllbnQobW9kdWx1cywgbmFtZXM9 KHksKSkKK0BAIC0xMjUwLDcgKzEyNTAsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfYWJzdHJh Y3QoRmluaXRlUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgIGlmIGFsbCBhbmQgZSA+IDEgYW5k IG5vdCBzZWxmLmlzX3VuaXQoKToKKyAgICAgICAgICAgICAgICAgaWYgc2VsZi5pc196ZXJvKCk6 CisgICAgICAgICAgICAgICAgICAgICAjIEFsbCBtdWx0aXBsZXMgb2YgcF5jaWVsKGUvMikgdmFu aXNoCistICAgICAgICAgICAgICAgICAgICByZXR1cm4gW3NlbGYuX3BhcmVudCh4KSBmb3IgeCBp biByYW5nZSgwLCBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlciwgcCoqKChlKzEpLzIpKV0KKysg ICAgICAgICAgICAgICAgICAgIHJldHVybiBbc2VsZi5fcGFyZW50KHgpIGZvciB4IGluIHJhbmdl KDAsIHNlbGYuX21vZHVsdXMuc2FnZUludGVnZXIsIHAqKigoZSsxKS8yKSldCisgICAgICAgICAg ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICB6ID0gc2VsZi5saWZ0KCkKKyAgICAg ICAgICAgICAgICAgICAgIHZhbCA9IHoudmFsdWF0aW9uKHApLzIgICMgc3F1YXJlID0+IHZhbHVh dGlvbiBpcyBldmVuCitAQCAtMTI3Miw3ICsxMjcyLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9k X2Fic3RyYWN0KEZpbml0ZVJpbmdFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgICAgIHBfZXhw ID0gcCoqZXhwCisgICAgICAgICAgICAgICAgICAgICB3ID0gW3NlbGYuX3BhcmVudChhLmxpZnQo KSAqIHBfdmFsICsgYikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGEgaW4gdS5z cXJ0KGFsbD1UcnVlKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgYiBpbiByYW5n ZSgwLCBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlciwgcF9leHApXQorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBmb3IgYiBpbiByYW5nZSgwLCBzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2Vy LCBwX2V4cCldCisgICAgICAgICAgICAgICAgICAgICBpZiBwID09IDI6CisgICAgICAgICAgICAg ICAgICAgICAgICAgdyA9IGxpc3Qoc2V0KHcpKQorICAgICAgICAgICAgICAgICAgICAgdy5zb3J0 KCkKK0BAIC0xNjI0LDcgKzE2MjQsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfYWJzdHJhY3Qo RmluaXRlUmluZ0VsZW1lbnQpOgorICAgICAgICAgZGVzcGl0ZSB0aGUgcG9zc2libHkgcHJvYmFi aWxpc3RpYyBuYXR1cmUgb2YgdGhlIHVuZGVybHlpbmcKKyAgICAgICAgIGFsZ29yaXRobS4KKyAg ICAgICAgICIiIgorLSAgICAgICAgaWYgc2VsZi5saWZ0KCkgPiBzZWxmLl9fbW9kdWx1cy5zYWdl SW50ZWdlciA+PiAxOgorKyAgICAgICAgaWYgc2VsZi5saWZ0KCkgPiBzZWxmLl9tb2R1bHVzLnNh Z2VJbnRlZ2VyID4+IDE6CisgICAgICAgICAgICAgcmV0dXJuIC1zZWxmCisgICAgICAgICByZXR1 cm4gc2VsZgorIAorQEAgLTE3MDUsMjcgKzE3MDUsMjcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9k X2Fic3RyYWN0KEZpbml0ZVJpbmdFbGVtZW50KToKKyAgICAgICAgIGNkZWYgaW50X2Zhc3Q2NF90 IG5ld19tb2R1bHVzCisgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShzZWxmLCBJbnRlZ2VyTW9k X2dtcCkgYW5kIG5vdCBpc2luc3RhbmNlKG90aGVyLCBJbnRlZ2VyTW9kX2dtcCk6CisgCistICAg ICAgICAgICAgaWYgb3RoZXIuX19tb2R1bHVzLmludDY0ID09IDE6IHJldHVybiBzZWxmCistICAg ICAgICAgICAgbmV3X21vZHVsdXMgPSBzZWxmLl9fbW9kdWx1cy5pbnQ2NCAqIG90aGVyLl9fbW9k dWx1cy5pbnQ2NAorKyAgICAgICAgICAgIGlmIG90aGVyLl9tb2R1bHVzLmludDY0ID09IDE6IHJl dHVybiBzZWxmCisrICAgICAgICAgICAgbmV3X21vZHVsdXMgPSBzZWxmLl9tb2R1bHVzLmludDY0 ICogb3RoZXIuX21vZHVsdXMuaW50NjQKKyAgICAgICAgICAgICBpZiBuZXdfbW9kdWx1cyA8IElO VEVHRVJfTU9EX0lOVDMyX0xJTUlUOgorLSAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fX2Ny dChvdGhlcikKKysgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2NydChvdGhlcikKKyAKKyAg ICAgICAgICAgICBlbGlmIG5ld19tb2R1bHVzIDwgSU5URUdFUl9NT0RfSU5UNjRfTElNSVQ6Cisg ICAgICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHNlbGYsIEludGVnZXJNb2RfaW50NjQp OgorICAgICAgICAgICAgICAgICAgICAgc2VsZiA9IEludGVnZXJNb2RfaW50NjQoc2VsZi5fcGFy ZW50LCBzZWxmLmxpZnQoKSkKKyAgICAgICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob3Ro ZXIsIEludGVnZXJNb2RfaW50NjQpOgorICAgICAgICAgICAgICAgICAgICAgb3RoZXIgPSBJbnRl Z2VyTW9kX2ludDY0KG90aGVyLl9wYXJlbnQsIG90aGVyLmxpZnQoKSkKKy0gICAgICAgICAgICAg ICAgcmV0dXJuIHNlbGYuX19jcnQob3RoZXIpCisrICAgICAgICAgICAgICAgIHJldHVybiBzZWxm Ll9jcnQob3RoZXIpCisgCisgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShzZWxmLCBJbnRlZ2Vy TW9kX2dtcCk6CistICAgICAgICAgICAgaWYgc2VsZi5fX21vZHVsdXMuaW50NjQgPT0gMTogcmV0 dXJuIG90aGVyCisrICAgICAgICAgICAgaWYgc2VsZi5fbW9kdWx1cy5pbnQ2NCA9PSAxOiByZXR1 cm4gb3RoZXIKKyAgICAgICAgICAgICBzZWxmID0gSW50ZWdlck1vZF9nbXAoc2VsZi5fcGFyZW50 LCBzZWxmLmxpZnQoKSkKKyAKKyAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG90aGVyLCBJbnRl Z2VyTW9kX2dtcCk6CistICAgICAgICAgICAgaWYgb3RoZXIuX19tb2R1bHVzLmludDY0ID09IDE6 IHJldHVybiBzZWxmCisrICAgICAgICAgICAgaWYgb3RoZXIuX21vZHVsdXMuaW50NjQgPT0gMTog cmV0dXJuIHNlbGYKKyAgICAgICAgICAgICBvdGhlciA9IEludGVnZXJNb2RfZ21wKG90aGVyLl9w YXJlbnQsIG90aGVyLmxpZnQoKSkKKyAKKy0gICAgICAgIHJldHVybiBzZWxmLl9fY3J0KG90aGVy KQorKyAgICAgICAgcmV0dXJuIHNlbGYuX2NydChvdGhlcikKKyAKKyAgICAgZGVmIGFkZGl0aXZl X29yZGVyKHNlbGYpOgorICAgICAgICAgciIiIgorQEAgLTE3NDIsNyArMTc0Miw3IEBAIGNkZWYg Y2xhc3MgSW50ZWdlck1vZF9hYnN0cmFjdChGaW5pdGVSaW5nRWxlbWVudCk6CisgICAgICAgICAg ICAgc2FnZTogSW50ZWdlcnMoOTAzMDg0MDIzODQ5MDIpKDIpLmFkZGl0aXZlX29yZGVyKCkKKyAg ICAgICAgICAgICA0NTE1NDIwMTE5MjQ1MQorICAgICAgICAgIiIiCistICAgICAgICBuID0gc2Vs Zi5fX21vZHVsdXMuc2FnZUludGVnZXIKKysgICAgICAgIG4gPSBzZWxmLl9tb2R1bHVzLnNhZ2VJ bnRlZ2VyCisgICAgICAgICByZXR1cm4gc2FnZS5yaW5ncy5pbnRlZ2VyLkludGVnZXIobiAvLyBz ZWxmLmxpZnQoKS5nY2QobikpCisgCisgICAgIGRlZiBpc19wcmltaXRpdmVfcm9vdChzZWxmKToK K0BAIC0xODU2LDcgKzE4NTYsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfYWJzdHJhY3QoRmlu aXRlUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgIHJldHVybiBzYWdlLnJpbmdzLmludGVnZXIu SW50ZWdlcihzZWxmLl9fcGFyaV9fKCkuem5vcmRlcigpKQorICAgICAgICAgZXhjZXB0IFBhcmlF cnJvcjoKKyAgICAgICAgICAgICByYWlzZSBBcml0aG1ldGljRXJyb3IoIm11bHRpcGxpY2F0aXZl IG9yZGVyIG9mICVzIG5vdCBkZWZpbmVkIHNpbmNlIGl0IGlzIG5vdCBhIHVuaXQgbW9kdWxvICVz IiUoCistICAgICAgICAgICAgICAgIHNlbGYsIHNlbGYuX19tb2R1bHVzLnNhZ2VJbnRlZ2VyKSkK KysgICAgICAgICAgICAgICAgc2VsZiwgc2VsZi5fbW9kdWx1cy5zYWdlSW50ZWdlcikpCisgCisg ICAgIGRlZiB2YWx1YXRpb24oc2VsZiwgcCk6CisgICAgICAgICAiIiIKK0BAIC0xOTA1LDcgKzE5 MDUsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfYWJzdHJhY3QoRmluaXRlUmluZ0VsZW1lbnQp OgorICAgICAgICAgICAgIDIKKyAKKyAgICAgICAgICIiIgorLSAgICAgICAgcD1zZWxmLl9fbW9k dWx1cy5zYWdlSW50ZWdlci5nY2QocCkKKysgICAgICAgIHA9c2VsZi5fbW9kdWx1cy5zYWdlSW50 ZWdlci5nY2QocCkKKyAgICAgICAgIGlmIHA9PTE6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVF cnJvcigiVmFsdWF0aW9uIHdpdGggcmVzcGVjdCB0byBhIHVuaXQgaXMgbm90IGRlZmluZWQuIikK KyAgICAgICAgIHIgPSAwCitAQCAtMTkxMyw3ICsxOTEzLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2Vy TW9kX2Fic3RyYWN0KEZpbml0ZVJpbmdFbGVtZW50KToKKyAgICAgICAgIHdoaWxlIG5vdCAoc2Vs ZiAlIHBvd2VyKTogIyBzZWxmICUgcG93ZXIgPT0gMAorICAgICAgICAgICAgIHIgKz0gMQorICAg ICAgICAgICAgIHBvd2VyICo9IHAKKy0gICAgICAgICAgICBpZiBub3QgcG93ZXIuZGl2aWRlcyhz ZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlcik6CisrICAgICAgICAgICAgaWYgbm90IHBvd2VyLmRp dmlkZXMoc2VsZi5fbW9kdWx1cy5zYWdlSW50ZWdlcik6CisgICAgICAgICAgICAgICAgIGZyb20g c2FnZS5yaW5ncy5pbmZpbml0eSBpbXBvcnQgaW5maW5pdHkKKyAgICAgICAgICAgICAgICAgcmV0 dXJuIGluZmluaXR5CisgICAgICAgICByZXR1cm4gcgorQEAgLTE5ODAsNyArMTk4MCw3IEBAIGNk ZWYgY2xhc3MgSW50ZWdlck1vZF9nbXAoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgIGNkZWYg SW50ZWdlck1vZF9nbXAgX25ld19jKHNlbGYpOgorICAgICAgICAgY2RlZiBJbnRlZ2VyTW9kX2dt cCB4CisgICAgICAgICB4ID0gSW50ZWdlck1vZF9nbXAuX19uZXdfXyhJbnRlZ2VyTW9kX2dtcCkK Ky0gICAgICAgIHguX19tb2R1bHVzID0gc2VsZi5fX21vZHVsdXMKKysgICAgICAgIHguX21vZHVs dXMgPSBzZWxmLl9tb2R1bHVzCisgICAgICAgICB4Ll9wYXJlbnQgPSBzZWxmLl9wYXJlbnQKKyAg ICAgICAgIHJldHVybiB4CisgCitAQCAtMTk4OSw3ICsxOTg5LDcgQEAgY2RlZiBjbGFzcyBJbnRl Z2VyTW9kX2dtcChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAKKyAgICAgY2RlZiB2b2lkIHNldF9m cm9tX21weihzZWxmLCBtcHpfdCB2YWx1ZSk6CisgICAgICAgICBjZGVmIHNhZ2UucmluZ3MuaW50 ZWdlci5JbnRlZ2VyIG1vZHVsdXMKKy0gICAgICAgIG1vZHVsdXMgPSBzZWxmLl9fbW9kdWx1cy5z YWdlSW50ZWdlcgorKyAgICAgICAgbW9kdWx1cyA9IHNlbGYuX21vZHVsdXMuc2FnZUludGVnZXIK KyAgICAgICAgIG1wel9tb2Qoc2VsZi52YWx1ZSwgdmFsdWUsIG1vZHVsdXMudmFsdWUpCisgCisg ICAgIGNkZWYgdm9pZCBzZXRfZnJvbV9sb25nKHNlbGYsIGxvbmcgdmFsdWUpOgorQEAgLTIwMDEs NyArMjAwMSw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9nbXAoSW50ZWdlck1vZF9hYnN0cmFj dCk6CisgICAgICAgICAgICAgMQorICAgICAgICAgIiIiCisgICAgICAgICBtcHpfc2V0X3NpKHNl bGYudmFsdWUsIHZhbHVlKQorLSAgICAgICAgbXB6X21vZChzZWxmLnZhbHVlLCBzZWxmLnZhbHVl LCBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlci52YWx1ZSkKKysgICAgICAgIG1wel9tb2Qoc2Vs Zi52YWx1ZSwgc2VsZi52YWx1ZSwgc2VsZi5fbW9kdWx1cy5zYWdlSW50ZWdlci52YWx1ZSkKKyAK KyAgICAgY2RlZiB2b2lkIHNldF9mcm9tX3Vsb25nX2Zhc3Qoc2VsZiwgdW5zaWduZWQgbG9uZyB2 YWx1ZSk6CisgICAgICAgICBtcHpfc2V0X3VpKHNlbGYudmFsdWUsIHZhbHVlKQorQEAgLTIwNzEs NyArMjA3MSw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9nbXAoSW50ZWdlck1vZF9hYnN0cmFj dCk6CisgICAgICAgICAgICAgeCA9IHNlbGYuX25ld19jKCkKKyAgICAgICAgICAgICBpZiBrID4g MDoKKyAgICAgICAgICAgICAgICAgbXB6X211bF8yZXhwKHgudmFsdWUsIHNlbGYudmFsdWUsIGsp CistICAgICAgICAgICAgICAgIG1wel9mZGl2X3IoeC52YWx1ZSwgeC52YWx1ZSwgc2VsZi5fX21v ZHVsdXMuc2FnZUludGVnZXIudmFsdWUpCisrICAgICAgICAgICAgICAgIG1wel9mZGl2X3IoeC52 YWx1ZSwgeC52YWx1ZSwgc2VsZi5fbW9kdWx1cy5zYWdlSW50ZWdlci52YWx1ZSkKKyAgICAgICAg ICAgICBlbHNlOgorICAgICAgICAgICAgICAgICBtcHpfZmRpdl9xXzJleHAoeC52YWx1ZSwgc2Vs Zi52YWx1ZSwgLWspCisgICAgICAgICAgICAgcmV0dXJuIHgKK0BAIC0yMTMyLDEyICsyMTMyLDEy IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9nbXAoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLmxpZnQoKS5nY2Qoc2VsZi5tb2R1bHVzKCkp ID09IDEKKyAKKy0gICAgZGVmIF9fY3J0KEludGVnZXJNb2RfZ21wIHNlbGYsIEludGVnZXJNb2Rf Z21wIG90aGVyKToKKysgICAgZGVmIF9jcnQoSW50ZWdlck1vZF9nbXAgc2VsZiwgSW50ZWdlck1v ZF9nbXAgb3RoZXIpOgorICAgICAgICAgY2RlZiBJbnRlZ2VyTW9kX2dtcCBsaWZ0LCB4CisgICAg ICAgICBjZGVmIHNhZ2UucmluZ3MuaW50ZWdlci5JbnRlZ2VyIG1vZHVsdXMsIG90aGVyX21vZHVs dXMKKyAKKy0gICAgICAgIG1vZHVsdXMgPSBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlcgorLSAg ICAgICAgb3RoZXJfbW9kdWx1cyA9IG90aGVyLl9fbW9kdWx1cy5zYWdlSW50ZWdlcgorKyAgICAg ICAgbW9kdWx1cyA9IHNlbGYuX21vZHVsdXMuc2FnZUludGVnZXIKKysgICAgICAgIG90aGVyX21v ZHVsdXMgPSBvdGhlci5fbW9kdWx1cy5zYWdlSW50ZWdlcgorICAgICAgICAgZnJvbSAuaW50ZWdl cl9tb2RfcmluZyBpbXBvcnQgSW50ZWdlck1vZFJpbmcKKyAgICAgICAgIGxpZnQgPSBJbnRlZ2Vy TW9kX2dtcChJbnRlZ2VyTW9kUmluZyhtb2R1bHVzKm90aGVyX21vZHVsdXMpKQorICAgICAgICAg dHJ5OgorQEAgLTIxODgsOCArMjE4OCw4IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9nbXAoSW50 ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICBjZGVmIEludGVnZXJNb2RfZ21wIHgKKyAgICAg ICAgIHggPSBzZWxmLl9uZXdfYygpCisgICAgICAgICBtcHpfYWRkKHgudmFsdWUsIHNlbGYudmFs dWUsICg8SW50ZWdlck1vZF9nbXA+cmlnaHQpLnZhbHVlKQorLSAgICAgICAgaWYgbXB6X2NtcCh4 LnZhbHVlLCBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlci52YWx1ZSkgID49IDA6CistICAgICAg ICAgICAgbXB6X3N1Yih4LnZhbHVlLCB4LnZhbHVlLCBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdl ci52YWx1ZSkKKysgICAgICAgIGlmIG1wel9jbXAoeC52YWx1ZSwgc2VsZi5fbW9kdWx1cy5zYWdl SW50ZWdlci52YWx1ZSkgID49IDA6CisrICAgICAgICAgICAgbXB6X3N1Yih4LnZhbHVlLCB4LnZh bHVlLCBzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyLnZhbHVlKQorICAgICAgICAgcmV0dXJuIHgK KyAKKyAgICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpOgorQEAgLTIyMDQsNyArMjIwNCw3IEBA IGNkZWYgY2xhc3MgSW50ZWdlck1vZF9nbXAoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAg ICB4ID0gc2VsZi5fbmV3X2MoKQorICAgICAgICAgbXB6X3N1Yih4LnZhbHVlLCBzZWxmLnZhbHVl LCAoPEludGVnZXJNb2RfZ21wPnJpZ2h0KS52YWx1ZSkKKyAgICAgICAgIGlmIG1wel9zZ24oeC52 YWx1ZSkgPT0gLTE6CistICAgICAgICAgICAgbXB6X2FkZCh4LnZhbHVlLCB4LnZhbHVlLCBzZWxm Ll9fbW9kdWx1cy5zYWdlSW50ZWdlci52YWx1ZSkKKysgICAgICAgICAgICBtcHpfYWRkKHgudmFs dWUsIHgudmFsdWUsIHNlbGYuX21vZHVsdXMuc2FnZUludGVnZXIudmFsdWUpCisgICAgICAgICBy ZXR1cm4geAorIAorICAgICBjcGRlZiBfbmVnXyhzZWxmKToKK0BAIC0yMjIwLDcgKzIyMjAsNyBA QCBjZGVmIGNsYXNzIEludGVnZXJNb2RfZ21wKEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICAg ICAgICAgIHJldHVybiBzZWxmCisgICAgICAgICBjZGVmIEludGVnZXJNb2RfZ21wIHgKKyAgICAg ICAgIHggPSBzZWxmLl9uZXdfYygpCistICAgICAgICBtcHpfc3ViKHgudmFsdWUsIHNlbGYuX19t b2R1bHVzLnNhZ2VJbnRlZ2VyLnZhbHVlLCBzZWxmLnZhbHVlKQorKyAgICAgICAgbXB6X3N1Yih4 LnZhbHVlLCBzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyLnZhbHVlLCBzZWxmLnZhbHVlKQorICAg ICAgICAgcmV0dXJuIHgKKyAKKyAgICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHQpOgorQEAgLTIy MzQsNyArMjIzNCw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9nbXAoSW50ZWdlck1vZF9hYnN0 cmFjdCk6CisgICAgICAgICBjZGVmIEludGVnZXJNb2RfZ21wIHgKKyAgICAgICAgIHggPSBzZWxm Ll9uZXdfYygpCisgICAgICAgICBtcHpfbXVsKHgudmFsdWUsIHNlbGYudmFsdWUsICAoPEludGVn ZXJNb2RfZ21wPnJpZ2h0KS52YWx1ZSkKKy0gICAgICAgIG1wel9mZGl2X3IoeC52YWx1ZSwgeC52 YWx1ZSwgc2VsZi5fX21vZHVsdXMuc2FnZUludGVnZXIudmFsdWUpCisrICAgICAgICBtcHpfZmRp dl9yKHgudmFsdWUsIHgudmFsdWUsIHNlbGYuX21vZHVsdXMuc2FnZUludGVnZXIudmFsdWUpCisg ICAgICAgICByZXR1cm4geAorIAorICAgICBjcGRlZiBfZGl2XyhzZWxmLCByaWdodCk6CitAQCAt MjMxMCw3ICsyMzEwLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2dtcChJbnRlZ2VyTW9kX2Fi c3RyYWN0KToKKyAgICAgICAgIGNkZWYgSW50ZWdlck1vZF9nbXAgeCA9IHNlbGYuX25ld19jKCkK KyAgICAgICAgIHNpZ19vbigpCisgICAgICAgICB0cnk6CistICAgICAgICAgICAgbXB6X3Bvd19o ZWxwZXIoeC52YWx1ZSwgc2VsZi52YWx1ZSwgZXhwLCBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdl ci52YWx1ZSkKKysgICAgICAgICAgICBtcHpfcG93X2hlbHBlcih4LnZhbHVlLCBzZWxmLnZhbHVl LCBleHAsIHNlbGYuX21vZHVsdXMuc2FnZUludGVnZXIudmFsdWUpCisgICAgICAgICBmaW5hbGx5 OgorICAgICAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHgKK0BAIC0yMzMxLDEy ICsyMzMxLDEyIEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9nbXAoSW50ZWdlck1vZF9hYnN0cmFj dCk6CisgICAgICAgICAgICAgWmVyb0RpdmlzaW9uRXJyb3I6IGludmVyc2Ugb2YgTW9kKDIsIDEw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwKSBkb2VzIG5vdCBleGlz dAorICAgICAgICAgIiIiCisgICAgICAgICBpZiBzZWxmLmlzX3plcm8oKToKKy0gICAgICAgICAg ICByYWlzZSBaZXJvRGl2aXNpb25FcnJvcihmImludmVyc2Ugb2YgTW9kKDAsIHtzZWxmLl9fbW9k dWx1cy5zYWdlSW50ZWdlcn0pIGRvZXMgbm90IGV4aXN0IikKKysgICAgICAgICAgICByYWlzZSBa ZXJvRGl2aXNpb25FcnJvcihmImludmVyc2Ugb2YgTW9kKDAsIHtzZWxmLl9tb2R1bHVzLnNhZ2VJ bnRlZ2VyfSkgZG9lcyBub3QgZXhpc3QiKQorIAorICAgICAgICAgY2RlZiBJbnRlZ2VyTW9kX2dt cCB4CisgICAgICAgICB4ID0gc2VsZi5fbmV3X2MoKQorLSAgICAgICAgaWYgbm90IG1wel9pbnZl cnQoeC52YWx1ZSwgc2VsZi52YWx1ZSwgc2VsZi5fX21vZHVsdXMuc2FnZUludGVnZXIudmFsdWUp OgorLSAgICAgICAgICAgIHJhaXNlIFplcm9EaXZpc2lvbkVycm9yKGYiaW52ZXJzZSBvZiBNb2Qo e3NlbGZ9LCB7c2VsZi5fX21vZHVsdXMuc2FnZUludGVnZXJ9KSBkb2VzIG5vdCBleGlzdCIpCisr ICAgICAgICBpZiBub3QgbXB6X2ludmVydCh4LnZhbHVlLCBzZWxmLnZhbHVlLCBzZWxmLl9tb2R1 bHVzLnNhZ2VJbnRlZ2VyLnZhbHVlKToKKysgICAgICAgICAgICByYWlzZSBaZXJvRGl2aXNpb25F cnJvcihmImludmVyc2Ugb2YgTW9kKHtzZWxmfSwge3NlbGYuX21vZHVsdXMuc2FnZUludGVnZXJ9 KSBkb2VzIG5vdCBleGlzdCIpCisgICAgICAgICByZXR1cm4geAorIAorICAgICBkZWYgbGlmdChJ bnRlZ2VyTW9kX2dtcCBzZWxmKToKK0BAIC0yMzkxLDEwICsyMzkxLDEwIEBAIGNkZWYgY2xhc3Mg SW50ZWdlck1vZF9nbXAoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIGNkZWYgSW50ZWdlck1vZF9nbXAgYW5zID0gc2VsZi5fbmV3X2MoKQorICAgICAgICAgc2ln X29uKCkKKy0gICAgICAgIG1wel9nY2QoYW5zLnZhbHVlLCBzZWxmLnZhbHVlLCBzZWxmLl9fbW9k dWx1cy5zYWdlSW50ZWdlci52YWx1ZSkKKysgICAgICAgIG1wel9nY2QoYW5zLnZhbHVlLCBzZWxm LnZhbHVlLCBzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyLnZhbHVlKQorICAgICAgICAgbXB6X2dj ZChhbnMudmFsdWUsIGFucy52YWx1ZSwgb3RoZXIudmFsdWUpCisgICAgICAgICBzaWdfb2ZmKCkK Ky0gICAgICAgIGlmIG1wel9jbXAoYW5zLnZhbHVlLCBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdl ci52YWx1ZSkgPT0gMDoKKysgICAgICAgIGlmIG1wel9jbXAoYW5zLnZhbHVlLCBzZWxmLl9tb2R1 bHVzLnNhZ2VJbnRlZ2VyLnZhbHVlKSA9PSAwOgorICAgICAgICAgICAgICMgc2VsZiA9IG90aGVy ID0gMAorICAgICAgICAgICAgIG1wel9zZXRfdWkoYW5zLnZhbHVlLCAwKQorICAgICAgICAgcmV0 dXJuIGFucworQEAgLTI0MjIsMzAgKzI0MjIsMzAgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2lu dChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgIiIiCisgCisgICAgIGNkZWYgSW50ZWdlck1v ZF9pbnQgX25ld19jKHNlbGYsIGludF9mYXN0MzJfdCB2YWx1ZSk6CistICAgICAgICBpZiBzZWxm Ll9fbW9kdWx1cy50YWJsZSBpcyBub3QgTm9uZToKKy0gICAgICAgICAgICByZXR1cm4gc2VsZi5f X21vZHVsdXMudGFibGVbdmFsdWVdCisrICAgICAgICBpZiBzZWxmLl9tb2R1bHVzLnRhYmxlIGlz IG5vdCBOb25lOgorKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9tb2R1bHVzLnRhYmxlW3ZhbHVl XQorICAgICAgICAgY2RlZiBJbnRlZ2VyTW9kX2ludCB4ID0gSW50ZWdlck1vZF9pbnQuX19uZXdf XyhJbnRlZ2VyTW9kX2ludCkKKyAgICAgICAgIHguX3BhcmVudCA9IHNlbGYuX3BhcmVudAorLSAg ICAgICAgeC5fX21vZHVsdXMgPSBzZWxmLl9fbW9kdWx1cworKyAgICAgICAgeC5fbW9kdWx1cyA9 IHNlbGYuX21vZHVsdXMKKyAgICAgICAgIHguaXZhbHVlID0gdmFsdWUKKyAgICAgICAgIHJldHVy biB4CisgCisgICAgIGNkZWYgdm9pZCBzZXRfZnJvbV9tcHooc2VsZiwgbXB6X3QgdmFsdWUpOgor LSAgICAgICAgc2VsZi5pdmFsdWUgPSBtcHpfZmRpdl91aSh2YWx1ZSwgc2VsZi5fX21vZHVsdXMu aW50MzIpCisrICAgICAgICBzZWxmLml2YWx1ZSA9IG1wel9mZGl2X3VpKHZhbHVlLCBzZWxmLl9t b2R1bHVzLmludDMyKQorIAorICAgICBjZGVmIHZvaWQgc2V0X2Zyb21fbG9uZyhzZWxmLCBsb25n IHZhbHVlKToKKy0gICAgICAgIHNlbGYuaXZhbHVlID0gdmFsdWUgJSBzZWxmLl9fbW9kdWx1cy5p bnQzMgorKyAgICAgICAgc2VsZi5pdmFsdWUgPSB2YWx1ZSAlIHNlbGYuX21vZHVsdXMuaW50MzIK KyAgICAgICAgIGlmIHNlbGYuaXZhbHVlIDwgMDoKKy0gICAgICAgICAgICBzZWxmLml2YWx1ZSAr PSBzZWxmLl9fbW9kdWx1cy5pbnQzMgorKyAgICAgICAgICAgIHNlbGYuaXZhbHVlICs9IHNlbGYu X21vZHVsdXMuaW50MzIKKyAKKyAgICAgY2RlZiB2b2lkIHNldF9mcm9tX3Vsb25nX2Zhc3Qoc2Vs ZiwgdW5zaWduZWQgbG9uZyB2YWx1ZSk6CisgICAgICAgICBzZWxmLml2YWx1ZSA9IHZhbHVlCisg CisgICAgIGNkZWYgdm9pZCBzZXRfZnJvbV9pbnQoSW50ZWdlck1vZF9pbnQgc2VsZiwgaW50X2Zh c3QzMl90IGl2YWx1ZSk6CisgICAgICAgICBpZiBpdmFsdWUgPCAwOgorLSAgICAgICAgICAgIHNl bGYuaXZhbHVlID0gc2VsZi5fX21vZHVsdXMuaW50MzIgKyAoaXZhbHVlICUgc2VsZi5fX21vZHVs dXMuaW50MzIpCistICAgICAgICBlbGlmIGl2YWx1ZSA+PSBzZWxmLl9fbW9kdWx1cy5pbnQzMjoK Ky0gICAgICAgICAgICBzZWxmLml2YWx1ZSA9IGl2YWx1ZSAlIHNlbGYuX19tb2R1bHVzLmludDMy CisrICAgICAgICAgICAgc2VsZi5pdmFsdWUgPSBzZWxmLl9tb2R1bHVzLmludDMyICsgKGl2YWx1 ZSAlIHNlbGYuX21vZHVsdXMuaW50MzIpCisrICAgICAgICBlbGlmIGl2YWx1ZSA+PSBzZWxmLl9t b2R1bHVzLmludDMyOgorKyAgICAgICAgICAgIHNlbGYuaXZhbHVlID0gaXZhbHVlICUgc2VsZi5f bW9kdWx1cy5pbnQzMgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBzZWxmLml2YWx1ZSA9 IGl2YWx1ZQorIAorQEAgLTI0OTAsNyArMjQ5MCw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9p bnQoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICAgICAgc2FnZTogWm1vZCgxKS5vbmUo KS5pc19vbmUoKQorICAgICAgICAgICAgIFRydWUKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0 dXJuIHNlbGYuaXZhbHVlID09IDEgb3Igc2VsZi5fX21vZHVsdXMuaW50MzIgPT0gMQorKyAgICAg ICAgcmV0dXJuIHNlbGYuaXZhbHVlID09IDEgb3Igc2VsZi5fbW9kdWx1cy5pbnQzMiA9PSAxCisg CisgICAgIGRlZiBfX2Jvb2xfXyhJbnRlZ2VyTW9kX2ludCBzZWxmKToKKyAgICAgICAgICIiIgor QEAgLTI1MTksOSArMjUxOSw5IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQoSW50ZWdlck1v ZF9hYnN0cmFjdCk6CisgICAgICAgICAgICAgc2FnZTogYS5pc191bml0KCkKKyAgICAgICAgICAg ICBGYWxzZQorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gZ2NkX2ludChzZWxmLml2YWx1 ZSwgc2VsZi5fX21vZHVsdXMuaW50MzIpID09IDEKKysgICAgICAgIHJldHVybiBnY2RfaW50KHNl bGYuaXZhbHVlLCBzZWxmLl9tb2R1bHVzLmludDMyKSA9PSAxCisgCistICAgIGRlZiBfX2NydChJ bnRlZ2VyTW9kX2ludCBzZWxmLCBJbnRlZ2VyTW9kX2ludCBvdGhlcik6CisrICAgIGRlZiBfY3J0 KEludGVnZXJNb2RfaW50IHNlbGYsIEludGVnZXJNb2RfaW50IG90aGVyKToKKyAgICAgICAgICIi IgorICAgICAgICAgVXNlIHRoZSBDaGluZXNlIFJlbWFpbmRlciBUaGVvcmVtIHRvIGZpbmQgYW4g ZWxlbWVudCBvZiB0aGUKKyAgICAgICAgIGludGVnZXJzIG1vZHVsbyB0aGUgcHJvZHVjdCBvZiB0 aGUgbW9kdWxpIHRoYXQgcmVkdWNlcyB0byBzZWxmIGFuZAorQEAgLTI1NDMsMTEgKzI1NDMsMTEg QEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2ludChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAg ICAgIGNkZWYgaW50X2Zhc3QzMl90IHgKKyAKKyAgICAgICAgIGZyb20gLmludGVnZXJfbW9kX3Jp bmcgaW1wb3J0IEludGVnZXJNb2RSaW5nCistICAgICAgICBsaWZ0ID0gSW50ZWdlck1vZF9pbnQo SW50ZWdlck1vZFJpbmcoc2VsZi5fX21vZHVsdXMuaW50MzIgKiBvdGhlci5fX21vZHVsdXMuaW50 MzIpKQorKyAgICAgICAgbGlmdCA9IEludGVnZXJNb2RfaW50KEludGVnZXJNb2RSaW5nKHNlbGYu X21vZHVsdXMuaW50MzIgKiBvdGhlci5fbW9kdWx1cy5pbnQzMikpCisgCisgICAgICAgICB0cnk6 CistICAgICAgICAgICAgeCA9IChvdGhlci5pdmFsdWUgLSBzZWxmLml2YWx1ZSAlIG90aGVyLl9f bW9kdWx1cy5pbnQzMikgKiBtb2RfaW52ZXJzZV9pbnQoc2VsZi5fX21vZHVsdXMuaW50MzIsIG90 aGVyLl9fbW9kdWx1cy5pbnQzMikKKy0gICAgICAgICAgICBsaWZ0LnNldF9mcm9tX2ludCggeCAq IHNlbGYuX19tb2R1bHVzLmludDMyICsgc2VsZi5pdmFsdWUgKQorKyAgICAgICAgICAgIHggPSAo b3RoZXIuaXZhbHVlIC0gc2VsZi5pdmFsdWUgJSBvdGhlci5fbW9kdWx1cy5pbnQzMikgKiBtb2Rf aW52ZXJzZV9pbnQoc2VsZi5fbW9kdWx1cy5pbnQzMiwgb3RoZXIuX21vZHVsdXMuaW50MzIpCisr ICAgICAgICAgICAgbGlmdC5zZXRfZnJvbV9pbnQoIHggKiBzZWxmLl9tb2R1bHVzLmludDMyICsg c2VsZi5pdmFsdWUgKQorICAgICAgICAgICAgIHJldHVybiBsaWZ0CisgICAgICAgICBleGNlcHQg WmVyb0RpdmlzaW9uRXJyb3I6CisgICAgICAgICAgICAgcmFpc2UgWmVyb0RpdmlzaW9uRXJyb3Io Im1vZHVsaSBtdXN0IGJlIGNvcHJpbWUiKQorQEAgLTI1ODYsOCArMjU4Niw4IEBAIGNkZWYgY2xh c3MgSW50ZWdlck1vZF9pbnQoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIGNkZWYgaW50X2Zhc3QzMl90IHgKKyAgICAgICAgIHggPSBzZWxmLml2YWx1ZSArICg8 SW50ZWdlck1vZF9pbnQ+cmlnaHQpLml2YWx1ZQorLSAgICAgICAgaWYgeCA+PSBzZWxmLl9fbW9k dWx1cy5pbnQzMjoKKy0gICAgICAgICAgICB4ID0geCAtIHNlbGYuX19tb2R1bHVzLmludDMyCisr ICAgICAgICBpZiB4ID49IHNlbGYuX21vZHVsdXMuaW50MzI6CisrICAgICAgICAgICAgeCA9IHgg LSBzZWxmLl9tb2R1bHVzLmludDMyCisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MoeCkKKyAK KyAgICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpOgorQEAgLTI2MDEsNyArMjYwMSw3IEBAIGNk ZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICBj ZGVmIGludF9mYXN0MzJfdCB4CisgICAgICAgICB4ID0gc2VsZi5pdmFsdWUgLSAoPEludGVnZXJN b2RfaW50PnJpZ2h0KS5pdmFsdWUKKyAgICAgICAgIGlmIHggPCAwOgorLSAgICAgICAgICAgIHgg PSB4ICsgc2VsZi5fX21vZHVsdXMuaW50MzIKKysgICAgICAgICAgICB4ID0geCArIHNlbGYuX21v ZHVsdXMuaW50MzIKKyAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyh4KQorIAorICAgICBjcGRl ZiBfbmVnXyhzZWxmKToKK0BAIC0yNjE1LDcgKzI2MTUsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJN b2RfaW50KEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICBpZiBz ZWxmLml2YWx1ZSA9PSAwOgorICAgICAgICAgICAgIHJldHVybiBzZWxmCistICAgICAgICByZXR1 cm4gc2VsZi5fbmV3X2Moc2VsZi5fX21vZHVsdXMuaW50MzIgLSBzZWxmLml2YWx1ZSkKKysgICAg ICAgIHJldHVybiBzZWxmLl9uZXdfYyhzZWxmLl9tb2R1bHVzLmludDMyIC0gc2VsZi5pdmFsdWUp CisgCisgICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorQEAgLTI2 MjUsNyArMjYyNSw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQoSW50ZWdlck1vZF9hYnN0 cmFjdCk6CisgICAgICAgICAgICAgc2FnZTogUig3KSAqIFIoOCkKKyAgICAgICAgICAgICA2Cisg ICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBzZWxmLl9uZXdfYygoc2VsZi5pdmFsdWUgKiAo PEludGVnZXJNb2RfaW50PnJpZ2h0KS5pdmFsdWUpICUgc2VsZi5fX21vZHVsdXMuaW50MzIpCisr ICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MoKHNlbGYuaXZhbHVlICogKDxJbnRlZ2VyTW9kX2lu dD5yaWdodCkuaXZhbHVlKSAlIHNlbGYuX21vZHVsdXMuaW50MzIpCisgCisgICAgIGNwZGVmIF9k aXZfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorQEAgLTI2MzUsMTYgKzI2MzUsMTYgQEAg Y2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2ludChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAg ICAgICBzYWdlOiBSKDIpLzMKKyAgICAgICAgICAgICA0CisgICAgICAgICAiIiIKKy0gICAgICAg IGlmIHNlbGYuX19tb2R1bHVzLmludmVyc2VzIGlzIG5vdCBOb25lOgorLSAgICAgICAgICAgIHJp Z2h0X2ludmVyc2UgPSBzZWxmLl9fbW9kdWx1cy5pbnZlcnNlc1soPEludGVnZXJNb2RfaW50PnJp Z2h0KS5pdmFsdWVdCisrICAgICAgICBpZiBzZWxmLl9tb2R1bHVzLmludmVyc2VzIGlzIG5vdCBO b25lOgorKyAgICAgICAgICAgIHJpZ2h0X2ludmVyc2UgPSBzZWxmLl9tb2R1bHVzLmludmVyc2Vz Wyg8SW50ZWdlck1vZF9pbnQ+cmlnaHQpLml2YWx1ZV0KKyAgICAgICAgICAgICBpZiByaWdodF9p bnZlcnNlIGlzIE5vbmU6CistICAgICAgICAgICAgICAgIHJhaXNlIFplcm9EaXZpc2lvbkVycm9y KGYiaW52ZXJzZSBvZiBNb2Qoe3JpZ2h0fSwge3NlbGYuX19tb2R1bHVzLnNhZ2VJbnRlZ2VyfSkg ZG9lcyBub3QgZXhpc3QiKQorKyAgICAgICAgICAgICAgICByYWlzZSBaZXJvRGl2aXNpb25FcnJv cihmImludmVyc2Ugb2YgTW9kKHtyaWdodH0sIHtzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyfSkg ZG9lcyBub3QgZXhpc3QiKQorICAgICAgICAgICAgIGVsc2U6CistICAgICAgICAgICAgICAgIHJl dHVybiBzZWxmLl9uZXdfYygoc2VsZi5pdmFsdWUgKiAoPEludGVnZXJNb2RfaW50PnJpZ2h0X2lu dmVyc2UpLml2YWx1ZSkgJSBzZWxmLl9fbW9kdWx1cy5pbnQzMikKKysgICAgICAgICAgICAgICAg cmV0dXJuIHNlbGYuX25ld19jKChzZWxmLml2YWx1ZSAqICg8SW50ZWdlck1vZF9pbnQ+cmlnaHRf aW52ZXJzZSkuaXZhbHVlKSAlIHNlbGYuX21vZHVsdXMuaW50MzIpCisgCisgICAgICAgICBjZGVm IGludF9mYXN0MzJfdCB4CistICAgICAgICB4ID0gc2VsZi5pdmFsdWUgKiBtb2RfaW52ZXJzZV9p bnQoKDxJbnRlZ2VyTW9kX2ludD5yaWdodCkuaXZhbHVlLCBzZWxmLl9fbW9kdWx1cy5pbnQzMikK Ky0gICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyh4JSBzZWxmLl9fbW9kdWx1cy5pbnQzMikKKysg ICAgICAgIHggPSBzZWxmLml2YWx1ZSAqIG1vZF9pbnZlcnNlX2ludCgoPEludGVnZXJNb2RfaW50 PnJpZ2h0KS5pdmFsdWUsIHNlbGYuX21vZHVsdXMuaW50MzIpCisrICAgICAgICByZXR1cm4gc2Vs Zi5fbmV3X2MoeCUgc2VsZi5fbW9kdWx1cy5pbnQzMikKKyAKKyAgICAgZGVmIF9faW50X18oSW50 ZWdlck1vZF9pbnQgc2VsZik6CisgICAgICAgICAiIiIKK0BAIC0yNzM5LDcgKzI3MzksNyBAQCBj ZGVmIGNsYXNzIEludGVnZXJNb2RfaW50KEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICAgICAg aWYgayA9PSAwOgorICAgICAgICAgICAgIHJldHVybiBzZWxmCisgICAgICAgICBlbGlmIGsgPiAw OgorLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYygoc2VsZi5pdmFsdWUgPDwgaykgJSBz ZWxmLl9fbW9kdWx1cy5pbnQzMikKKysgICAgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MoKHNl bGYuaXZhbHVlIDw8IGspICUgc2VsZi5fbW9kdWx1cy5pbnQzMikKKyAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKHNlbGYuaXZhbHVlID4+ICgtaykpCisgCitA QCAtMjgwMiw3ICsyODAyLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2ludChJbnRlZ2VyTW9k X2Fic3RyYWN0KToKKyAgICAgICAgICAgICBzaWdfb24oKQorICAgICAgICAgICAgIHRyeToKKyAg ICAgICAgICAgICAgICAgbXB6X2luaXQocmVzX21weikKKy0gICAgICAgICAgICAgICAgbXB6X3Bv d19oZWxwZXIocmVzX21weiwgKDxJbnRlZ2VyPmJhc2UpLnZhbHVlLCBleHAsIHNlbGYuX19tb2R1 bHVzLnNhZ2VJbnRlZ2VyLnZhbHVlKQorKyAgICAgICAgICAgICAgICBtcHpfcG93X2hlbHBlcihy ZXNfbXB6LCAoPEludGVnZXI+YmFzZSkudmFsdWUsIGV4cCwgc2VsZi5fbW9kdWx1cy5zYWdlSW50 ZWdlci52YWx1ZSkKKyAgICAgICAgICAgICAgICAgcmVzID0gbXB6X2dldF91aShyZXNfbXB6KQor ICAgICAgICAgICAgICAgICBtcHpfY2xlYXIocmVzX21weikKKyAgICAgICAgICAgICBmaW5hbGx5 OgorQEAgLTI4MTEsMTIgKzI4MTEsMTIgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2ludChJbnRl Z2VyTW9kX2Fic3RyYWN0KToKKyAKKyAgICAgICAgIGlmIGxvbmdfZXhwID09IDAgYW5kIHNlbGYu aXZhbHVlID09IDA6CisgICAgICAgICAgICAgIyBSZXR1cm4gMCBpZiB0aGUgbW9kdWx1cyBpcyAx LCBvdGhlcndpc2UgcmV0dXJuIDEuCistICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKHNl bGYuX19tb2R1bHVzLmludDMyICE9IDEpCisrICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19j KHNlbGYuX21vZHVsdXMuaW50MzIgIT0gMSkKKyAgICAgICAgIGNkZWYgYmludCBpbnZlcnQgPSBG YWxzZQorICAgICAgICAgaWYgbG9uZ19leHAgPCAwOgorICAgICAgICAgICAgIGludmVydCA9IFRy dWUKKyAgICAgICAgICAgICBsb25nX2V4cCA9IC1sb25nX2V4cAorLSAgICAgICAgcmVzID0gbW9k X3Bvd19pbnQoc2VsZi5pdmFsdWUsIGxvbmdfZXhwLCBzZWxmLl9fbW9kdWx1cy5pbnQzMikKKysg ICAgICAgIHJlcyA9IG1vZF9wb3dfaW50KHNlbGYuaXZhbHVlLCBsb25nX2V4cCwgc2VsZi5fbW9k dWx1cy5pbnQzMikKKyAgICAgICAgIGlmIGludmVydDoKKyAgICAgICAgICAgICByZXR1cm4gfnNl bGYuX25ld19jKHJlcykKKyAgICAgICAgIGVsc2U6CitAQCAtMjgzMywxNCArMjgzMywxNCBAQCBj ZGVmIGNsYXNzIEludGVnZXJNb2RfaW50KEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICAgICAg ICAgIHNhZ2U6IE1vZCgwLDEpXi0xCisgICAgICAgICAgICAgMAorICAgICAgICAgIiIiCistICAg ICAgICBpZiBzZWxmLl9fbW9kdWx1cy5pbnZlcnNlcyBpcyBub3QgTm9uZToKKy0gICAgICAgICAg ICB4ID0gc2VsZi5fX21vZHVsdXMuaW52ZXJzZXNbc2VsZi5pdmFsdWVdCisrICAgICAgICBpZiBz ZWxmLl9tb2R1bHVzLmludmVyc2VzIGlzIG5vdCBOb25lOgorKyAgICAgICAgICAgIHggPSBzZWxm Ll9tb2R1bHVzLmludmVyc2VzW3NlbGYuaXZhbHVlXQorICAgICAgICAgICAgIGlmIHggaXMgTm9u ZToKKy0gICAgICAgICAgICAgICAgcmFpc2UgWmVyb0RpdmlzaW9uRXJyb3IoZiJpbnZlcnNlIG9m IE1vZCh7c2VsZn0sIHtzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlcn0pIGRvZXMgbm90IGV4aXN0 IikKKysgICAgICAgICAgICAgICAgcmFpc2UgWmVyb0RpdmlzaW9uRXJyb3IoZiJpbnZlcnNlIG9m IE1vZCh7c2VsZn0sIHtzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyfSkgZG9lcyBub3QgZXhpc3Qi KQorICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIHJldHVybiB4CisgICAgICAg ICBlbHNlOgorLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyhtb2RfaW52ZXJzZV9pbnQo c2VsZi5pdmFsdWUsIHNlbGYuX19tb2R1bHVzLmludDMyKSkKKysgICAgICAgICAgICByZXR1cm4g c2VsZi5fbmV3X2MobW9kX2ludmVyc2VfaW50KHNlbGYuaXZhbHVlLCBzZWxmLl9tb2R1bHVzLmlu dDMyKSkKKyAKKyAgICAgZGVmIGxpZnQoSW50ZWdlck1vZF9pbnQgc2VsZik6CisgICAgICAgICAi IiIKK0BAIC0zMDA2LDE1ICszMDA2LDE1IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQoSW50 ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICAgICAgc2FnZTogR0YoMTAzKSgtMSkuc3FydChl eHRlbmQ9RmFsc2UsIGFsbD1UcnVlKQorICAgICAgICAgICAgIFtdCisgICAgICAgICAiIiIKKy0g ICAgICAgIGNkZWYgaW50X2Zhc3QzMl90IGksIG4gPSBzZWxmLl9fbW9kdWx1cy5pbnQzMgorKyAg ICAgICAgY2RlZiBpbnRfZmFzdDMyX3QgaSwgbiA9IHNlbGYuX21vZHVsdXMuaW50MzIKKyAgICAg ICAgIGlmIG4gPiAxMDA6CisgICAgICAgICAgICAgbW9kdWxpID0gc2VsZi5fcGFyZW50LmZhY3Rv cmVkX29yZGVyKCkKKyAgICAgICAgICMgVW5sZXNzIHRoZSBtb2R1bHVzIGlzIHRpbnksIHRlc3Qg dG8gc2VlIGlmIHdlJ3JlIGluIHRoZSByZWFsbHkKKyAgICAgICAgICMgZWFzeSBjYXNlIG9mIG4g cHJpbWUsIG4gPSAzIG1vZCA0LgorICAgICAgICAgaWYgbiA+IDEwMCBhbmQgbiAlIDQgPT0gMyBh bmQgbGVuKG1vZHVsaSkgPT0gMSBhbmQgbW9kdWxpWzBdWzFdID09IDE6CistICAgICAgICAgICAg aWYgamFjb2JpX2ludChzZWxmLml2YWx1ZSwgc2VsZi5fX21vZHVsdXMuaW50MzIpID09IDE6Cisr ICAgICAgICAgICAgaWYgamFjb2JpX2ludChzZWxmLml2YWx1ZSwgc2VsZi5fbW9kdWx1cy5pbnQz MikgPT0gMToKKyAgICAgICAgICAgICAgICAgIyBpdCdzIGEgbm9uLXplcm8gc3F1YXJlLCBzcXJ0 KGEpID0gYV4ocCsxKS80CistICAgICAgICAgICAgICAgIGkgPSBtb2RfcG93X2ludChzZWxmLml2 YWx1ZSwgKHNlbGYuX19tb2R1bHVzLmludDMyKzEpLzQsIG4pCisrICAgICAgICAgICAgICAgIGkg PSBtb2RfcG93X2ludChzZWxmLml2YWx1ZSwgKHNlbGYuX21vZHVsdXMuaW50MzIrMSkvNCwgbikK KyAgICAgICAgICAgICAgICAgaWYgaSA+IG4gLyAyOgorICAgICAgICAgICAgICAgICAgICAgaSA9 IG4gLSBpCisgICAgICAgICAgICAgICAgIGlmIGFsbDoKK0BAIC0zMDQ5LDcgKzMwNDksNyBAQCBj ZGVmIGNsYXNzIEludGVnZXJNb2RfaW50KEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICAgICAg VGhpcyBmdW5jdGlvbiByZXR1cm5zIGB4YCBvciBgLXhgLCB3aGljaGV2ZXIgaGFzIGEKKyAgICAg ICAgIHBvc2l0aXZlIHJlcHJlc2VudGF0aXZlIGluIGAtbi8yIDwgeCBcbGVxIG4vMmAuCisgICAg ICAgICAiIiIKKy0gICAgICAgIGlmIHNlbGYuaXZhbHVlID4gc2VsZi5fX21vZHVsdXMuaW50MzIg LyAyOgorKyAgICAgICAgaWYgc2VsZi5pdmFsdWUgPiBzZWxmLl9tb2R1bHVzLmludDMyIC8gMjoK KyAgICAgICAgICAgICByZXR1cm4gLXNlbGYKKyAgICAgICAgIHJldHVybiBzZWxmCisgCitAQCAt MzA4Miw5ICszMDgyLDkgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2ludChJbnRlZ2VyTW9kX2Fi c3RyYWN0KToKKyAgICAgICAgICAgICBzYWdlOiBtb2QoMCwxKS5nY2QobW9kKDAsMSkpCisgICAg ICAgICAgICAgMAorICAgICAgICAgIiIiCistICAgICAgICBjZGVmIGludF9mYXN0MzJfdCBnID0g Z2NkX2ludChzZWxmLml2YWx1ZSwgc2VsZi5fX21vZHVsdXMuaW50MzIpCisrICAgICAgICBjZGVm IGludF9mYXN0MzJfdCBnID0gZ2NkX2ludChzZWxmLml2YWx1ZSwgc2VsZi5fbW9kdWx1cy5pbnQz MikKKyAgICAgICAgIGcgPSBnY2RfaW50KGcsIG90aGVyLml2YWx1ZSkKKy0gICAgICAgIGlmIGcg PT0gc2VsZi5fX21vZHVsdXMuaW50MzI6ICMgc2VsZiA9IG90aGVyID0gMAorKyAgICAgICAgaWYg ZyA9PSBzZWxmLl9tb2R1bHVzLmludDMyOiAjIHNlbGYgPSBvdGhlciA9IDAKKyAgICAgICAgICAg ICBnID0gMAorICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKGcpCisgCitAQCAtMzI1NiwyNyAr MzI1NiwyNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfaW50NjQoSW50ZWdlck1vZF9hYnN0cmFj dCk6CisgICAgIGNkZWYgSW50ZWdlck1vZF9pbnQ2NCBfbmV3X2Moc2VsZiwgaW50X2Zhc3Q2NF90 IHZhbHVlKToKKyAgICAgICAgIGNkZWYgSW50ZWdlck1vZF9pbnQ2NCB4CisgICAgICAgICB4ID0g SW50ZWdlck1vZF9pbnQ2NC5fX25ld19fKEludGVnZXJNb2RfaW50NjQpCistICAgICAgICB4Ll9f bW9kdWx1cyA9IHNlbGYuX19tb2R1bHVzCisrICAgICAgICB4Ll9tb2R1bHVzID0gc2VsZi5fbW9k dWx1cworICAgICAgICAgeC5fcGFyZW50ID0gc2VsZi5fcGFyZW50CisgICAgICAgICB4Lml2YWx1 ZSA9IHZhbHVlCisgICAgICAgICByZXR1cm4geAorIAorICAgICBjZGVmIHZvaWQgc2V0X2Zyb21f bXB6KHNlbGYsIG1wel90IHZhbHVlKToKKy0gICAgICAgIHNlbGYuaXZhbHVlID0gbXB6X2ZkaXZf dWkodmFsdWUsIHNlbGYuX19tb2R1bHVzLmludDY0KQorKyAgICAgICAgc2VsZi5pdmFsdWUgPSBt cHpfZmRpdl91aSh2YWx1ZSwgc2VsZi5fbW9kdWx1cy5pbnQ2NCkKKyAKKyAgICAgY2RlZiB2b2lk IHNldF9mcm9tX2xvbmcoc2VsZiwgbG9uZyB2YWx1ZSk6CistICAgICAgICBzZWxmLml2YWx1ZSA9 IHZhbHVlICUgc2VsZi5fX21vZHVsdXMuaW50NjQKKysgICAgICAgIHNlbGYuaXZhbHVlID0gdmFs dWUgJSBzZWxmLl9tb2R1bHVzLmludDY0CisgICAgICAgICBpZiBzZWxmLml2YWx1ZSA8IDA6Cist ICAgICAgICAgICAgc2VsZi5pdmFsdWUgKz0gc2VsZi5fX21vZHVsdXMuaW50NjQKKysgICAgICAg ICAgICBzZWxmLml2YWx1ZSArPSBzZWxmLl9tb2R1bHVzLmludDY0CisgCisgICAgIGNkZWYgdm9p ZCBzZXRfZnJvbV91bG9uZ19mYXN0KHNlbGYsIHVuc2lnbmVkIGxvbmcgdmFsdWUpOgorICAgICAg ICAgc2VsZi5pdmFsdWUgPSB2YWx1ZQorIAorICAgICBjZGVmIHZvaWQgc2V0X2Zyb21faW50KElu dGVnZXJNb2RfaW50NjQgc2VsZiwgaW50X2Zhc3Q2NF90IGl2YWx1ZSk6CisgICAgICAgICBpZiBp dmFsdWUgPCAwOgorLSAgICAgICAgICAgIHNlbGYuaXZhbHVlID0gc2VsZi5fX21vZHVsdXMuaW50 NjQgKyAoaXZhbHVlICUgc2VsZi5fX21vZHVsdXMuaW50NjQpICMgSXMgaXZhbHVlICUgc2VsZi5f X21vZHVsdXMuaW50NjQgYWN0dWFsbHkgbmVnYXRpdmU/CistICAgICAgICBlbGlmIGl2YWx1ZSA+ PSBzZWxmLl9fbW9kdWx1cy5pbnQ2NDoKKy0gICAgICAgICAgICBzZWxmLml2YWx1ZSA9IGl2YWx1 ZSAlIHNlbGYuX19tb2R1bHVzLmludDY0CisrICAgICAgICAgICAgc2VsZi5pdmFsdWUgPSBzZWxm Ll9tb2R1bHVzLmludDY0ICsgKGl2YWx1ZSAlIHNlbGYuX21vZHVsdXMuaW50NjQpICMgSXMgaXZh bHVlICUgc2VsZi5fbW9kdWx1cy5pbnQ2NCBhY3R1YWxseSBuZWdhdGl2ZT8KKysgICAgICAgIGVs aWYgaXZhbHVlID49IHNlbGYuX21vZHVsdXMuaW50NjQ6CisrICAgICAgICAgICAgc2VsZi5pdmFs dWUgPSBpdmFsdWUgJSBzZWxmLl9tb2R1bHVzLmludDY0CisgICAgICAgICBlbHNlOgorICAgICAg ICAgICAgIHNlbGYuaXZhbHVlID0gaXZhbHVlCisgCitAQCAtMzM0NCw5ICszMzQ0LDkgQEAgY2Rl ZiBjbGFzcyBJbnRlZ2VyTW9kX2ludDY0KEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICAgICAg ICAgIHNhZ2U6IG1vZCgyNSwgNV4xMCkuaXNfdW5pdCgpCisgICAgICAgICAgICAgRmFsc2UKKyAg ICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIGdjZF9pbnQ2NChzZWxmLml2YWx1ZSwgc2VsZi5f X21vZHVsdXMuaW50NjQpID09IDEKKysgICAgICAgIHJldHVybiBnY2RfaW50NjQoc2VsZi5pdmFs dWUsIHNlbGYuX21vZHVsdXMuaW50NjQpID09IDEKKyAKKy0gICAgZGVmIF9fY3J0KEludGVnZXJN b2RfaW50NjQgc2VsZiwgSW50ZWdlck1vZF9pbnQ2NCBvdGhlcik6CisrICAgIGRlZiBfY3J0KElu dGVnZXJNb2RfaW50NjQgc2VsZiwgSW50ZWdlck1vZF9pbnQ2NCBvdGhlcik6CisgICAgICAgICAi IiIKKyAgICAgICAgIFVzZSB0aGUgQ2hpbmVzZSBSZW1haW5kZXIgVGhlb3JlbSB0byBmaW5kIGFu IGVsZW1lbnQgb2YgdGhlCisgICAgICAgICBpbnRlZ2VycyBtb2R1bG8gdGhlIHByb2R1Y3Qgb2Yg dGhlIG1vZHVsaSB0aGF0IHJlZHVjZXMgdG8gc2VsZiBhbmQKK0BAIC0zMzc5LDExICszMzc5LDEx IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQ2NChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAg ICAgICAgIGNkZWYgaW50X2Zhc3Q2NF90IHgKKyAKKyAgICAgICAgIGZyb20gLmludGVnZXJfbW9k X3JpbmcgaW1wb3J0IEludGVnZXJNb2RSaW5nCistICAgICAgICBsaWZ0ID0gSW50ZWdlck1vZF9p bnQ2NChJbnRlZ2VyTW9kUmluZyhzZWxmLl9fbW9kdWx1cy5pbnQ2NCAqIG90aGVyLl9fbW9kdWx1 cy5pbnQ2NCkpCisrICAgICAgICBsaWZ0ID0gSW50ZWdlck1vZF9pbnQ2NChJbnRlZ2VyTW9kUmlu ZyhzZWxmLl9tb2R1bHVzLmludDY0ICogb3RoZXIuX21vZHVsdXMuaW50NjQpKQorIAorICAgICAg ICAgdHJ5OgorLSAgICAgICAgICAgIHggPSAob3RoZXIuaXZhbHVlIC0gc2VsZi5pdmFsdWUgJSBv dGhlci5fX21vZHVsdXMuaW50NjQpICogbW9kX2ludmVyc2VfaW50NjQoc2VsZi5fX21vZHVsdXMu aW50NjQsIG90aGVyLl9fbW9kdWx1cy5pbnQ2NCkKKy0gICAgICAgICAgICBsaWZ0LnNldF9mcm9t X2ludCggeCAqIHNlbGYuX19tb2R1bHVzLmludDY0ICsgc2VsZi5pdmFsdWUgKQorKyAgICAgICAg ICAgIHggPSAob3RoZXIuaXZhbHVlIC0gc2VsZi5pdmFsdWUgJSBvdGhlci5fbW9kdWx1cy5pbnQ2 NCkgKiBtb2RfaW52ZXJzZV9pbnQ2NChzZWxmLl9tb2R1bHVzLmludDY0LCBvdGhlci5fbW9kdWx1 cy5pbnQ2NCkKKysgICAgICAgICAgICBsaWZ0LnNldF9mcm9tX2ludCggeCAqIHNlbGYuX21vZHVs dXMuaW50NjQgKyBzZWxmLml2YWx1ZSApCisgICAgICAgICAgICAgcmV0dXJuIGxpZnQKKyAgICAg ICAgIGV4Y2VwdCBaZXJvRGl2aXNpb25FcnJvcjoKKyAgICAgICAgICAgICByYWlzZSBaZXJvRGl2 aXNpb25FcnJvcigibW9kdWxpIG11c3QgYmUgY29wcmltZSIpCitAQCAtMzQyMiw4ICszNDIyLDgg QEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2ludDY0KEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAg ICAgICAgIiIiCisgICAgICAgICBjZGVmIGludF9mYXN0NjRfdCB4CisgICAgICAgICB4ID0gc2Vs Zi5pdmFsdWUgKyAoPEludGVnZXJNb2RfaW50NjQ+cmlnaHQpLml2YWx1ZQorLSAgICAgICAgaWYg eCA+PSBzZWxmLl9fbW9kdWx1cy5pbnQ2NDoKKy0gICAgICAgICAgICB4ID0geCAtIHNlbGYuX19t b2R1bHVzLmludDY0CisrICAgICAgICBpZiB4ID49IHNlbGYuX21vZHVsdXMuaW50NjQ6CisrICAg ICAgICAgICAgeCA9IHggLSBzZWxmLl9tb2R1bHVzLmludDY0CisgICAgICAgICByZXR1cm4gc2Vs Zi5fbmV3X2MoeCkKKyAKKyAgICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpOgorQEAgLTM0Mzcs NyArMzQzNyw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQ2NChJbnRlZ2VyTW9kX2Fic3Ry YWN0KToKKyAgICAgICAgIGNkZWYgaW50X2Zhc3Q2NF90IHgKKyAgICAgICAgIHggPSBzZWxmLml2 YWx1ZSAtICg8SW50ZWdlck1vZF9pbnQ2ND5yaWdodCkuaXZhbHVlCisgICAgICAgICBpZiB4IDwg MDoKKy0gICAgICAgICAgICB4ID0geCArIHNlbGYuX19tb2R1bHVzLmludDY0CisrICAgICAgICAg ICAgeCA9IHggKyBzZWxmLl9tb2R1bHVzLmludDY0CisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3 X2MoeCkKKyAKKyAgICAgY3BkZWYgX25lZ18oc2VsZik6CitAQCAtMzQ1MSw3ICszNDUxLDcgQEAg Y2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2ludDY0KEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICAg ICAgIiIiCisgICAgICAgICBpZiBzZWxmLml2YWx1ZSA9PSAwOgorICAgICAgICAgICAgIHJldHVy biBzZWxmCistICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2Moc2VsZi5fX21vZHVsdXMuaW50NjQg LSBzZWxmLml2YWx1ZSkKKysgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyhzZWxmLl9tb2R1bHVz LmludDY0IC0gc2VsZi5pdmFsdWUpCisgCisgICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KToK KyAgICAgICAgICIiIgorQEAgLTM0NjEsNyArMzQ2MSw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1v ZF9pbnQ2NChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgICAgICBzYWdlOiBSKDcwMCkg KiBSKDgwMCkKKyAgICAgICAgICAgICA2MDAwMAorICAgICAgICAgIiIiCistICAgICAgICByZXR1 cm4gc2VsZi5fbmV3X2MoKHNlbGYuaXZhbHVlICogKDxJbnRlZ2VyTW9kX2ludDY0PnJpZ2h0KS5p dmFsdWUpICUgc2VsZi5fX21vZHVsdXMuaW50NjQpCisrICAgICAgICByZXR1cm4gc2VsZi5fbmV3 X2MoKHNlbGYuaXZhbHVlICogKDxJbnRlZ2VyTW9kX2ludDY0PnJpZ2h0KS5pdmFsdWUpICUgc2Vs Zi5fbW9kdWx1cy5pbnQ2NCkKKyAKKyAKKyAgICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHQpOgor QEAgLTM0NzMsNyArMzQ3Myw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQ2NChJbnRlZ2Vy TW9kX2Fic3RyYWN0KToKKyAgICAgICAgICAgICAzMzMzNAorICAgICAgICAgIiIiCisgICAgICAg ICByZXR1cm4gc2VsZi5fbmV3X2MoKHNlbGYuaXZhbHVlICogbW9kX2ludmVyc2VfaW50NjQoKDxJ bnRlZ2VyTW9kX2ludDY0PnJpZ2h0KS5pdmFsdWUsCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLl9fbW9kdWx1cy5pbnQ2NCkgKSAlIHNlbGYuX19tb2R1bHVzLmludDY0 KQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbW9kdWx1cy5pbnQ2 NCkgKSAlIHNlbGYuX21vZHVsdXMuaW50NjQpCisgCisgICAgIGRlZiBfX2ludF9fKEludGVnZXJN b2RfaW50NjQgc2VsZik6CisgICAgICAgICByZXR1cm4gc2VsZi5pdmFsdWUKK0BAIC0zNTU5LDcg KzM1NTksNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfaW50NjQoSW50ZWdlck1vZF9hYnN0cmFj dCk6CisgICAgICAgICBpZiBrID09IDA6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYKKyAgICAg ICAgIGVsaWYgayA+IDA6CistICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKChzZWxmLml2 YWx1ZSA8PCBrKSAlIHNlbGYuX19tb2R1bHVzLmludDY0KQorKyAgICAgICAgICAgIHJldHVybiBz ZWxmLl9uZXdfYygoc2VsZi5pdmFsdWUgPDwgaykgJSBzZWxmLl9tb2R1bHVzLmludDY0KQorICAg ICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2Moc2VsZi5pdmFsdWUg Pj4gKC1rKSkKKyAKK0BAIC0zNjMzLDcgKzM2MzMsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2Rf aW50NjQoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICAgICAgc2lnX29uKCkKKyAgICAg ICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgIG1wel9pbml0KHJlc19tcHopCistICAgICAg ICAgICAgICAgIG1wel9wb3dfaGVscGVyKHJlc19tcHosICg8SW50ZWdlcj5iYXNlKS52YWx1ZSwg ZXhwLCBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlci52YWx1ZSkKKysgICAgICAgICAgICAgICAg bXB6X3Bvd19oZWxwZXIocmVzX21weiwgKDxJbnRlZ2VyPmJhc2UpLnZhbHVlLCBleHAsIHNlbGYu X21vZHVsdXMuc2FnZUludGVnZXIudmFsdWUpCisgICAgICAgICAgICAgICAgIHJlcyA9IG1wel9n ZXRfdWkocmVzX21weikKKyAgICAgICAgICAgICAgICAgbXB6X2NsZWFyKHJlc19tcHopCisgICAg ICAgICAgICAgZmluYWxseToKK0BAIC0zNjQyLDE0ICszNjQyLDE0IEBAIGNkZWYgY2xhc3MgSW50 ZWdlck1vZF9pbnQ2NChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAKKyAgICAgICAgIGlmIGxvbmdf ZXhwID09IDAgYW5kIHNlbGYuaXZhbHVlID09IDA6CisgICAgICAgICAgICAgIyBSZXR1cm4gMCBp ZiB0aGUgbW9kdWx1cyBpcyAxLCBvdGhlcndpc2UgcmV0dXJuIDEuCistICAgICAgICAgICAgcmV0 dXJuIHNlbGYuX25ld19jKHNlbGYuX19tb2R1bHVzLmludDY0ICE9IDEpCisrICAgICAgICAgICAg cmV0dXJuIHNlbGYuX25ld19jKHNlbGYuX21vZHVsdXMuaW50NjQgIT0gMSkKKyAgICAgICAgIGNk ZWYgYmludCBpbnZlcnQgPSBGYWxzZQorICAgICAgICAgaWYgbG9uZ19leHAgPCAwOgorICAgICAg ICAgICAgIGludmVydCA9IFRydWUKKyAgICAgICAgICAgICBsb25nX2V4cCA9IC1sb25nX2V4cAor LSAgICAgICAgcmVzID0gbW9kX3Bvd19pbnQ2NChzZWxmLml2YWx1ZSwgbG9uZ19leHAsIHNlbGYu X19tb2R1bHVzLmludDY0KQorKyAgICAgICAgcmVzID0gbW9kX3Bvd19pbnQ2NChzZWxmLml2YWx1 ZSwgbG9uZ19leHAsIHNlbGYuX21vZHVsdXMuaW50NjQpCisgICAgICAgICBpZiBpbnZlcnQ6Cist ICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKG1vZF9pbnZlcnNlX2ludDY0KHJlcywgc2Vs Zi5fX21vZHVsdXMuaW50NjQpKQorKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyhtb2Rf aW52ZXJzZV9pbnQ2NChyZXMsIHNlbGYuX21vZHVsdXMuaW50NjQpKQorICAgICAgICAgZWxzZToK KyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MocmVzKQorIAorQEAgLTM2NjYsNyArMzY2 Niw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQ2NChJbnRlZ2VyTW9kX2Fic3RyYWN0KToK KyAgICAgICAgICAgICBzYWdlOiBhCisgICAgICAgICAgICAgNworICAgICAgICAgIiIiCistICAg ICAgICByZXR1cm4gc2VsZi5fbmV3X2MobW9kX2ludmVyc2VfaW50NjQoc2VsZi5pdmFsdWUsIHNl bGYuX19tb2R1bHVzLmludDY0KSkKKysgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyhtb2RfaW52 ZXJzZV9pbnQ2NChzZWxmLml2YWx1ZSwgc2VsZi5fbW9kdWx1cy5pbnQ2NCkpCisgCisgICAgIGRl ZiBsaWZ0KEludGVnZXJNb2RfaW50NjQgc2VsZik6CisgICAgICAgICAiIiIKK0BAIC0zNzE1LDcg KzM3MTUsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfaW50NjQoSW50ZWdlck1vZF9hYnN0cmFj dCk6CisgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYHhgIG9yIGAteGAsIHdoaWNoZXZl ciBoYXMgYQorICAgICAgICAgcG9zaXRpdmUgcmVwcmVzZW50YXRpdmUgaW4gYC1uLzIgPCB4IFxs ZXEgbi8yYC4KKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgc2VsZi5pdmFsdWUgPiBzZWxmLl9f bW9kdWx1cy5pbnQ2NCAvIDI6CisrICAgICAgICBpZiBzZWxmLml2YWx1ZSA+IHNlbGYuX21vZHVs dXMuaW50NjQgLyAyOgorICAgICAgICAgICAgIHJldHVybiAtc2VsZgorICAgICAgICAgcmV0dXJu IHNlbGYKKyAKK0BAIC0zNzM4LDkgKzM3MzgsOSBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfaW50 NjQoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICAgICAgc2FnZTogbW9kKDAsMTdeNSku Z2NkKG1vZCgwLDE3XjUpKQorICAgICAgICAgICAgIDAKKyAgICAgICAgICIiIgorLSAgICAgICAg Y2RlZiBpbnRfZmFzdDY0X3QgZyA9IGdjZF9pbnQ2NChzZWxmLml2YWx1ZSwgc2VsZi5fX21vZHVs dXMuaW50NjQpCisrICAgICAgICBjZGVmIGludF9mYXN0NjRfdCBnID0gZ2NkX2ludDY0KHNlbGYu aXZhbHVlLCBzZWxmLl9tb2R1bHVzLmludDY0KQorICAgICAgICAgZyA9IGdjZF9pbnQ2NChnLCBv dGhlci5pdmFsdWUpCistICAgICAgICBpZiBnID09IHNlbGYuX19tb2R1bHVzLmludDY0OiAjIHNl bGYgPSBvdGhlciA9IDAKKysgICAgICAgIGlmIGcgPT0gc2VsZi5fbW9kdWx1cy5pbnQ2NDogIyBz ZWxmID0gb3RoZXIgPSAwCisgICAgICAgICAgICAgZyA9IDAKKyAgICAgICAgIHJldHVybiBzZWxm Ll9uZXdfYyhnKQorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL2ZyYWN0aW9uX2ZpZWxk X0ZwVC5weXggYi9zcmMvc2FnZS9yaW5ncy9mcmFjdGlvbl9maWVsZF9GcFQucHl4CitpbmRleCAw YTI1MTkxYTExYy4uYzliYjVkNWEzODQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9mcmFj dGlvbl9maWVsZF9GcFQucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9mcmFjdGlvbl9maWVsZF9G cFQucHl4CitAQCAtMTY1MCw3ICsxNjUwLDcgQEAgY2RlZiBjbGFzcyBGcFRfRnBfc2VjdGlvbihT ZWN0aW9uKToKKyAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibm90IGNvbnN0YW50 IikKKyAgICAgICAgIGFucyA9IEludGVnZXJNb2RfaW50Ll9fbmV3X18oSW50ZWdlck1vZF9pbnQp CisgICAgICAgICBhbnMuX3BhcmVudCA9IHNlbGYuY29kb21haW4oKQorLSAgICAgICAgYW5zLl9f bW9kdWx1cyA9IGFucy5fcGFyZW50Ll9weXhfb3JkZXIKKysgICAgICAgIGFucy5fbW9kdWx1cyA9 IGFucy5fcGFyZW50Ll9weXhfb3JkZXIKKyAgICAgICAgIGlmIG5tb2RfcG9seV9nZXRfY29lZmZf dWkoeC5fZGVub20sIDApICE9IDE6CisgICAgICAgICAgICAgbm9ybWFsaXplKHguX251bWVyLCB4 Ll9kZW5vbSwgc2VsZi5wKQorICAgICAgICAgYW5zLml2YWx1ZSA9IG5tb2RfcG9seV9nZXRfY29l ZmZfdWkoeC5fbnVtZXIsIDApCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvZnJhY3Rpb25f ZmllbGRfZWxlbWVudC5weXggYi9zcmMvc2FnZS9yaW5ncy9mcmFjdGlvbl9maWVsZF9lbGVtZW50 LnB5eAoraW5kZXggMTFhMmI2NDZkMzUuLjc1ZTQ3YWYxMjk5IDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvcmluZ3MvZnJhY3Rpb25fZmllbGRfZWxlbWVudC5weXgKKysrKyBiL3NyYy9zYWdlL3Jpbmdz L2ZyYWN0aW9uX2ZpZWxkX2VsZW1lbnQucHl4CitAQCAtNzgsOCArNzgsOCBAQCBjZGVmIGNsYXNz IEZyYWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICBzYWdlOiBGLm9u ZSgpLnF1b19yZW0oRi5vbmUoKSkKKyAgICAgICAgICgxLCAwKQorICAgICAiIiIKKy0gICAgY2Rl ZiBvYmplY3QgX19udW1lcmF0b3IKKy0gICAgY2RlZiBvYmplY3QgX19kZW5vbWluYXRvcgorKyAg ICBjZGVmIG9iamVjdCBfbnVtZXJhdG9yCisrICAgIGNkZWYgb2JqZWN0IF9kZW5vbWluYXRvcgor ICAgICBjZGVmIGJpbnQgX2lzX3JlZHVjZWQKKyAKKyAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBh cmVudCwgbnVtZXJhdG9yLCBkZW5vbWluYXRvcj0xLAorQEAgLTEwOCwxNyArMTA4LDE3IEBAIGNk ZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICIi IgorICAgICAgICAgRmllbGRFbGVtZW50Ll9faW5pdF9fKHNlbGYsIHBhcmVudCkKKyAgICAgICAg IGlmIGNvZXJjZToKKy0gICAgICAgICAgICBzZWxmLl9fbnVtZXJhdG9yICAgPSBwYXJlbnQucmlu ZygpKG51bWVyYXRvcikKKy0gICAgICAgICAgICBzZWxmLl9fZGVub21pbmF0b3IgPSBwYXJlbnQu cmluZygpKGRlbm9taW5hdG9yKQorKyAgICAgICAgICAgIHNlbGYuX251bWVyYXRvciAgID0gcGFy ZW50LnJpbmcoKShudW1lcmF0b3IpCisrICAgICAgICAgICAgc2VsZi5fZGVub21pbmF0b3IgPSBw YXJlbnQucmluZygpKGRlbm9taW5hdG9yKQorICAgICAgICAgZWxzZToKKy0gICAgICAgICAgICBz ZWxmLl9fbnVtZXJhdG9yICAgPSBudW1lcmF0b3IKKy0gICAgICAgICAgICBzZWxmLl9fZGVub21p bmF0b3IgPSBkZW5vbWluYXRvcgorKyAgICAgICAgICAgIHNlbGYuX251bWVyYXRvciAgID0gbnVt ZXJhdG9yCisrICAgICAgICAgICAgc2VsZi5fZGVub21pbmF0b3IgPSBkZW5vbWluYXRvcgorICAg ICAgICAgaWYgcmVkdWNlIGFuZCBwYXJlbnQuaXNfZXhhY3QoKToKKyAgICAgICAgICAgICB0cnk6 CisgICAgICAgICAgICAgICAgIHNlbGYucmVkdWNlKCkKKyAgICAgICAgICAgICBleGNlcHQgQXJp dGhtZXRpY0Vycm9yOgorICAgICAgICAgICAgICAgICBwYXNzCistICAgICAgICBpZiBzZWxmLl9f ZGVub21pbmF0b3IuaXNfemVybygpOgorKyAgICAgICAgaWYgc2VsZi5fZGVub21pbmF0b3IuaXNf emVybygpOgorICAgICAgICAgICAgIHJhaXNlIFplcm9EaXZpc2lvbkVycm9yKCJmcmFjdGlvbiBm aWVsZCBlbGVtZW50IGRpdmlzaW9uIGJ5IHplcm8iKQorIAorICAgICBkZWYgX2ltX2dlbnNfKHNl bGYsIGNvZG9tYWluLCBpbV9nZW5zLCBiYXNlX21hcD1Ob25lKToKK0BAIC0xNTQsOCArMTU0LDgg QEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAg ICAgICAgIHNhZ2U6IHBoaShpL2EpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsIC0gc2FnZS5yaW5ncy5udW1iZXJf ZmllbGQKKyAgICAgICAgICAgICAoKC1pKSkvYgorICAgICAgICAgIiIiCistICAgICAgICBubnVt ID0gY29kb21haW4uY29lcmNlKHNlbGYuX19udW1lcmF0b3IuX2ltX2dlbnNfKGNvZG9tYWluLCBp bV9nZW5zLCBiYXNlX21hcD1iYXNlX21hcCkpCistICAgICAgICBuZGVuID0gY29kb21haW4uY29l cmNlKHNlbGYuX19kZW5vbWluYXRvci5faW1fZ2Vuc18oY29kb21haW4sIGltX2dlbnMsIGJhc2Vf bWFwPWJhc2VfbWFwKSkKKysgICAgICAgIG5udW0gPSBjb2RvbWFpbi5jb2VyY2Uoc2VsZi5fbnVt ZXJhdG9yLl9pbV9nZW5zXyhjb2RvbWFpbiwgaW1fZ2VucywgYmFzZV9tYXA9YmFzZV9tYXApKQor KyAgICAgICAgbmRlbiA9IGNvZG9tYWluLmNvZXJjZShzZWxmLl9kZW5vbWluYXRvci5faW1fZ2Vu c18oY29kb21haW4sIGltX2dlbnMsIGJhc2VfbWFwPWJhc2VfbWFwKSkKKyAgICAgICAgIHJldHVy biBjb2RvbWFpbi5jb2VyY2Uobm51bS9uZGVuKQorIAorICAgICBjcGRlZiByZWR1Y2Uoc2VsZik6 CitAQCAtMTkxLDEwICsxOTEsMTAgQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudChG aWVsZEVsZW1lbnQpOgorICAgICAgICAgaWYgc2VsZi5faXNfcmVkdWNlZDoKKyAgICAgICAgICAg ICByZXR1cm4KKyAgICAgICAgIHRyeToKKy0gICAgICAgICAgICBnID0gc2VsZi5fX251bWVyYXRv ci5nY2Qoc2VsZi5fX2Rlbm9taW5hdG9yKQorKyAgICAgICAgICAgIGcgPSBzZWxmLl9udW1lcmF0 b3IuZ2NkKHNlbGYuX2Rlbm9taW5hdG9yKQorICAgICAgICAgICAgIGlmIG5vdCBnLmlzX3VuaXQo KToKKy0gICAgICAgICAgICAgICAgc2VsZi5fX251bWVyYXRvciAvLz0gZworLSAgICAgICAgICAg ICAgICBzZWxmLl9fZGVub21pbmF0b3IgLy89IGcKKysgICAgICAgICAgICAgICAgc2VsZi5fbnVt ZXJhdG9yIC8vPSBnCisrICAgICAgICAgICAgICAgIHNlbGYuX2Rlbm9taW5hdG9yIC8vPSBnCisg ICAgICAgICAgICAgc2VsZi5faXNfcmVkdWNlZCA9IFRydWUKKyAgICAgICAgIGV4Y2VwdCBBdHRy aWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICByYWlzZSBBcml0aG1ldGljRXJyb3IoInVuYWJsZSB0 byByZWR1Y2UgYmVjYXVzZSBsYWNrIG9mIGdjZCBvciBxdW9fcmVtIGFsZ29yaXRobSIpCitAQCAt MjAyLDE0ICsyMDIsMTQgQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVs ZW1lbnQpOgorICAgICAgICAgICAgIHJhaXNlIEFyaXRobWV0aWNFcnJvcigidW5hYmxlIHRvIHJl ZHVjZSBiZWNhdXNlIGdjZCBhbGdvcml0aG0gZG9lc24ndCB3b3JrIG9uIGlucHV0IikKKyAgICAg ICAgIGV4Y2VwdCBOb3RJbXBsZW1lbnRlZEVycm9yOgorICAgICAgICAgICAgIHJhaXNlIEFyaXRo bWV0aWNFcnJvcigidW5hYmxlIHRvIHJlZHVjZSBiZWNhdXNlIGdjZCBhbGdvcml0aG0gbm90IGlt cGxlbWVudGVkIG9uIGlucHV0IikKKy0gICAgICAgIGlmIG5vdCBzZWxmLl9fZGVub21pbmF0b3Iu aXNfb25lKCkgYW5kIHNlbGYuX19kZW5vbWluYXRvci5pc191bml0KCk6CisrICAgICAgICBpZiBu b3Qgc2VsZi5fZGVub21pbmF0b3IuaXNfb25lKCkgYW5kIHNlbGYuX2Rlbm9taW5hdG9yLmlzX3Vu aXQoKToKKyAgICAgICAgICAgICB0cnk6CistICAgICAgICAgICAgICAgIGludiA9IHNlbGYuX19k ZW5vbWluYXRvci5pbnZlcnNlX29mX3VuaXQoKQorKyAgICAgICAgICAgICAgICBpbnYgPSBzZWxm Ll9kZW5vbWluYXRvci5pbnZlcnNlX29mX3VuaXQoKQorICAgICAgICAgICAgIGV4Y2VwdCBFeGNl cHRpb246CisgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgICBlbHNlOgorLSAgICAg ICAgICAgICAgICBzZWxmLl9fbnVtZXJhdG9yICo9IGludgorLSAgICAgICAgICAgICAgICBzZWxm Ll9fZGVub21pbmF0b3IgPSBzZWxmLl9fZGVub21pbmF0b3IucGFyZW50KCkub25lKCkKKysgICAg ICAgICAgICAgICAgc2VsZi5fbnVtZXJhdG9yICo9IGludgorKyAgICAgICAgICAgICAgICBzZWxm Ll9kZW5vbWluYXRvciA9IHNlbGYuX2Rlbm9taW5hdG9yLnBhcmVudCgpLm9uZSgpCisgCisgICAg IGRlZiBfX2NvcHlfXyhzZWxmKToKKyAgICAgICAgICIiIgorQEAgLTIyMyw4ICsyMjMsOCBAQCBj ZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAg ICAgc2FnZTogY29weShmKQorICAgICAgICAgICAgICh4ICsgeSkveQorICAgICAgICAgIiIiCist ICAgICAgICByZXR1cm4gc2VsZi5fX2NsYXNzX18oc2VsZi5fcGFyZW50LCBzZWxmLl9fbnVtZXJh dG9yLAorLSAgICAgICAgICAgICAgICBzZWxmLl9fZGVub21pbmF0b3IsIGNvZXJjZT1GYWxzZSwg cmVkdWNlPUZhbHNlKQorKyAgICAgICAgcmV0dXJuIHNlbGYuX19jbGFzc19fKHNlbGYuX3BhcmVu dCwgc2VsZi5fbnVtZXJhdG9yLAorKyAgICAgICAgICAgICAgICBzZWxmLl9kZW5vbWluYXRvciwg Y29lcmNlPUZhbHNlLCByZWR1Y2U9RmFsc2UpCisgCisgICAgIGRlZiBudW1lcmF0b3Ioc2VsZik6 CisgICAgICAgICAiIiIKK0BAIC0yMzgsNyArMjM4LDcgQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZp ZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgICAgIHNhZ2U6IGYubnVtZXJhdG9y KCkKKyAgICAgICAgICAgICB4ICsgeQorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2Vs Zi5fX251bWVyYXRvcgorKyAgICAgICAgcmV0dXJuIHNlbGYuX251bWVyYXRvcgorIAorICAgICBk ZWYgZGVub21pbmF0b3Ioc2VsZik6CisgICAgICAgICAiIiIKK0BAIC0yNTIsNyArMjUyLDcgQEAg Y2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAg ICAgIHNhZ2U6IGYuZGVub21pbmF0b3IoKQorICAgICAgICAgICAgIHkKKyAgICAgICAgICIiIgor LSAgICAgICAgcmV0dXJuIHNlbGYuX19kZW5vbWluYXRvcgorKyAgICAgICAgcmV0dXJuIHNlbGYu X2Rlbm9taW5hdG9yCisgCisgCisgICAgIGRlZiBpc19zcXVhcmUoc2VsZixyb290PUZhbHNlKToK K0BAIC0zOTksMTAgKzM5OSwxMCBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50KEZp ZWxkRWxlbWVudCk6CisgICAgICAgICAgICAgc2FnZTogKCh4KzEpLyh4XjIrMSkpLnN1YnMoe3g6 IDF9KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwg LSBzYWdlLnJpbmdzLm51bWJlcl9maWVsZAorICAgICAgICAgICAgIDEKKyAgICAgICAgICIiIgor LSAgICAgICAgaWYgc2VsZi5fX2Rlbm9taW5hdG9yLmlzX29uZSgpOgorKyAgICAgICAgaWYgc2Vs Zi5fZGVub21pbmF0b3IuaXNfb25lKCk6CisgICAgICAgICAgICAgIyBIYW5kbGUgdGhpcyBjYXNl IGV2ZW4gb3ZlciByaW5ncyB0aGF0IGRvbid0IHN1cHBvcnQgcmVkdWN0aW9uLCB0bworICAgICAg ICAgICAgICMgYXZvaWQgYnJlYWtpbmcgZXhpc3RpbmcgY29kZSB0aGF0IGNhcmVsZXNzbHkgbWl4 ZXMgcCBhbmQgcC8xCistICAgICAgICAgICAgcmV0dXJuIGhhc2goc2VsZi5fX251bWVyYXRvcikK KysgICAgICAgICAgICByZXR1cm4gaGFzaChzZWxmLl9udW1lcmF0b3IpCisgICAgICAgICBpZiBz ZWxmLl9wYXJlbnQuaXNfZXhhY3QoKToKKyAgICAgICAgICAgICAjIE1heSBmYWlsOyBsZXQgdGhl IGV4Y2VwdGlvbiBwcm9wYWdhdGUgdGhlbi4KKyAgICAgICAgICAgICAjIChJbiBjb250cmFzdCwg b3ZlciBpbmV4YWN0IHJpbmdzLCB3ZSBoYXNoIHVucmVkdWNlZCBmcmFjdGlvbnMKK0BAIC00MTMs OCArNDEzLDggQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQp OgorICAgICAgICAgICAgICMgaXNzdWVzIGV2ZW4gaWYgd2UgZGlkbid0Li4uKQorICAgICAgICAg ICAgIHNlbGYucmVkdWNlKCkKKyAgICAgICAgICMgU2FtZSBhbGdvcml0aG0gYXMgZm9yIGVsZW1l bnRzIG9mIFFRCistICAgICAgICBuID0gaGFzaChzZWxmLl9fbnVtZXJhdG9yKQorLSAgICAgICAg ZCA9IGhhc2goc2VsZi5fX2Rlbm9taW5hdG9yKQorKyAgICAgICAgbiA9IGhhc2goc2VsZi5fbnVt ZXJhdG9yKQorKyAgICAgICAgZCA9IGhhc2goc2VsZi5fZGVub21pbmF0b3IpCisgICAgICAgICBp ZiBkID09IDE6CisgICAgICAgICAgICAgcmV0dXJuIG4KKyAgICAgICAgIGVsc2U6CitAQCAtNDQz LDcgKzQ0Myw3IEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50 KToKKyAgICAgICAgICAgICBzYWdlOiBoKHgwPTEpCisgICAgICAgICAgICAgKC0yKngxKngyICsg eDEgKyAxKS8oeDEgKyB4MikKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIHNlbGYuX19u dW1lcmF0b3IoKngsICoqa3dkcykgLyBzZWxmLl9fZGVub21pbmF0b3IoKngsICoqa3dkcykKKysg ICAgICAgIHJldHVybiBzZWxmLl9udW1lcmF0b3IoKngsICoqa3dkcykgLyBzZWxmLl9kZW5vbWlu YXRvcigqeCwgKiprd2RzKQorIAorICAgICBkZWYgX2lzX2F0b21pYyhzZWxmKToKKyAgICAgICAg ICIiIgorQEAgLTQ1Niw3ICs0NTYsNyBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50 KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAgICAgc2FnZTogZi5faXNfYXRvbWljKCkKKyAgICAg ICAgICAgICBGYWxzZQorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5fX251bWVy YXRvci5faXNfYXRvbWljKCkgYW5kIHNlbGYuX19kZW5vbWluYXRvci5faXNfYXRvbWljKCkKKysg ICAgICAgIHJldHVybiBzZWxmLl9udW1lcmF0b3IuX2lzX2F0b21pYygpIGFuZCBzZWxmLl9kZW5v bWluYXRvci5faXNfYXRvbWljKCkKKyAKKyAgICAgZGVmIF9yZXByXyhzZWxmKToKKyAgICAgICAg ICIiIgorQEAgLTQ3NiwxMyArNDc2LDEzIEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1l bnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgaWYgc2VsZi5pc196ZXJv KCk6CisgICAgICAgICAgICAgcmV0dXJuICIwIgorLSAgICAgICAgcyA9ICIlcyIgJSBzZWxmLl9f bnVtZXJhdG9yCistICAgICAgICBpZiBzZWxmLl9fZGVub21pbmF0b3IgIT0gMToKKy0gICAgICAg ICAgICBkZW5vbV9zdHJpbmcgPSBzdHIoIHNlbGYuX19kZW5vbWluYXRvciApCistICAgICAgICAg ICAgaWYgc2VsZi5fX2Rlbm9taW5hdG9yLl9pc19hdG9taWMoKSBhbmQgbm90ICgnKicgaW4gZGVu b21fc3RyaW5nIG9yICcvJyBpbiBkZW5vbV9zdHJpbmcpOgorLSAgICAgICAgICAgICAgICBzID0g IiVzLyVzIiUoc2VsZi5fX251bWVyYXRvci5fY29lZmZfcmVwcihub19zcGFjZT1GYWxzZSksZGVu b21fc3RyaW5nKQorKyAgICAgICAgcyA9ICIlcyIgJSBzZWxmLl9udW1lcmF0b3IKKysgICAgICAg IGlmIHNlbGYuX2Rlbm9taW5hdG9yICE9IDE6CisrICAgICAgICAgICAgZGVub21fc3RyaW5nID0g c3RyKCBzZWxmLl9kZW5vbWluYXRvciApCisrICAgICAgICAgICAgaWYgc2VsZi5fZGVub21pbmF0 b3IuX2lzX2F0b21pYygpIGFuZCBub3QgKCcqJyBpbiBkZW5vbV9zdHJpbmcgb3IgJy8nIGluIGRl bm9tX3N0cmluZyk6CisrICAgICAgICAgICAgICAgIHMgPSAiJXMvJXMiJShzZWxmLl9udW1lcmF0 b3IuX2NvZWZmX3JlcHIobm9fc3BhY2U9RmFsc2UpLGRlbm9tX3N0cmluZykKKyAgICAgICAgICAg ICBlbHNlOgorLSAgICAgICAgICAgICAgICBzID0gIiVzLyglcykiJShzZWxmLl9fbnVtZXJhdG9y Ll9jb2VmZl9yZXByKG5vX3NwYWNlPUZhbHNlKSxkZW5vbV9zdHJpbmcpCisrICAgICAgICAgICAg ICAgIHMgPSAiJXMvKCVzKSIlKHNlbGYuX251bWVyYXRvci5fY29lZmZfcmVwcihub19zcGFjZT1G YWxzZSksZGVub21fc3RyaW5nKQorICAgICAgICAgcmV0dXJuIHMKKyAKKyAgICAgZGVmIF9sYXRl eF8oc2VsZik6CitAQCAtNTE4LDEwICs1MTgsMTAgQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxk RWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICBpZiBzZWxmLmlz X3plcm8oKToKKyAgICAgICAgICAgICByZXR1cm4gIjAiCistICAgICAgICBpZiBzZWxmLl9fZGVu b21pbmF0b3IgPT0gMToKKy0gICAgICAgICAgICByZXR1cm4gbGF0ZXgubGF0ZXgoc2VsZi5fX251 bWVyYXRvcikKKy0gICAgICAgIHJldHVybiAiXFxmcmFjeyVzfXslc30iJShsYXRleC5sYXRleChz ZWxmLl9fbnVtZXJhdG9yKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXRl eC5sYXRleChzZWxmLl9fZGVub21pbmF0b3IpKQorKyAgICAgICAgaWYgc2VsZi5fZGVub21pbmF0 b3IgPT0gMToKKysgICAgICAgICAgICByZXR1cm4gbGF0ZXgubGF0ZXgoc2VsZi5fbnVtZXJhdG9y KQorKyAgICAgICAgcmV0dXJuICJcXGZyYWN7JXN9eyVzfSIlKGxhdGV4LmxhdGV4KHNlbGYuX251 bWVyYXRvciksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF0ZXgubGF0ZXgo c2VsZi5fZGVub21pbmF0b3IpKQorIAorICAgICBkZWYgX21hZ21hX2luaXRfKHNlbGYsIG1hZ21h KToKKyAgICAgICAgICIiIgorQEAgLTU3NywxMCArNTc3LDEwIEBAIGNkZWYgY2xhc3MgRnJhY3Rp b25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICBzYWdlOiB0IC0gMS90 ICMgaW5kaXJlY3QgZG9jdGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIyBvcHRpb25hbCAtIHNhZ2UucmluZ3MuZmluaXRlX3JpbmdzCisgICAgICAgICAgICAg KHReMiArIDYpL3QKKyAgICAgICAgICIiIgorLSAgICAgICAgcm51bSA9IHNlbGYuX19udW1lcmF0 b3IKKy0gICAgICAgIHJkZW4gPSBzZWxmLl9fZGVub21pbmF0b3IKKy0gICAgICAgIHNudW0gPSAo PEZyYWN0aW9uRmllbGRFbGVtZW50PiByaWdodCkuX19udW1lcmF0b3IKKy0gICAgICAgIHNkZW4g PSAoPEZyYWN0aW9uRmllbGRFbGVtZW50PiByaWdodCkuX19kZW5vbWluYXRvcgorKyAgICAgICAg cm51bSA9IHNlbGYuX251bWVyYXRvcgorKyAgICAgICAgcmRlbiA9IHNlbGYuX2Rlbm9taW5hdG9y CisrICAgICAgICBzbnVtID0gKDxGcmFjdGlvbkZpZWxkRWxlbWVudD4gcmlnaHQpLl9udW1lcmF0 b3IKKysgICAgICAgIHNkZW4gPSAoPEZyYWN0aW9uRmllbGRFbGVtZW50PiByaWdodCkuX2Rlbm9t aW5hdG9yCisgCisgICAgICAgICBpZiAocm51bS5pc196ZXJvKCkpOgorICAgICAgICAgICAgIHJl dHVybiA8RnJhY3Rpb25GaWVsZEVsZW1lbnQ+IHJpZ2h0CitAQCAtNjAyLDcgKzYwMiw3IEBAIGNk ZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5fcGFyZW50LnJpbmcoKS5vbmUoKSwgY29lcmNlPUZhbHNl LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWR1Y2U9RmFsc2UpCisgICAgICAgICAg ICAgICAgICAgICBlbHNlOgorLSAgICAgICAgICAgICAgICAgICAgICAgIHRkZW4gPSBzZWxmLl9f ZGVub21pbmF0b3IgKiBzZGVuCisrICAgICAgICAgICAgICAgICAgICAgICAgdGRlbiA9IHNlbGYu X2Rlbm9taW5hdG9yICogc2RlbgorICAgICAgICAgICAgICAgICAgICAgICAgIGUgICAgPSB0bnVt LmdjZChkKQorICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBlLmlzX3VuaXQoKToKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdG51bSA9IHRudW0gLy8gZQorQEAgLTYyNCwxMCAr NjI0LDEwIEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToK KyAgICAgICAgICAgICBleGNlcHQgVHlwZUVycm9yOgorICAgICAgICAgICAgICAgICBwYXNzCisg CistICAgICAgICBybnVtID0gc2VsZi5fX251bWVyYXRvcgorLSAgICAgICAgcmRlbiA9IHNlbGYu X19kZW5vbWluYXRvcgorLSAgICAgICAgc251bSA9ICg8RnJhY3Rpb25GaWVsZEVsZW1lbnQ+IHJp Z2h0KS5fX251bWVyYXRvcgorLSAgICAgICAgc2RlbiA9ICg8RnJhY3Rpb25GaWVsZEVsZW1lbnQ+ IHJpZ2h0KS5fX2Rlbm9taW5hdG9yCisrICAgICAgICBybnVtID0gc2VsZi5fbnVtZXJhdG9yCisr ICAgICAgICByZGVuID0gc2VsZi5fZGVub21pbmF0b3IKKysgICAgICAgIHNudW0gPSAoPEZyYWN0 aW9uRmllbGRFbGVtZW50PiByaWdodCkuX251bWVyYXRvcgorKyAgICAgICAgc2RlbiA9ICg8RnJh Y3Rpb25GaWVsZEVsZW1lbnQ+IHJpZ2h0KS5fZGVub21pbmF0b3IKKyAKKyAgICAgICAgIHJldHVy biBzZWxmLl9fY2xhc3NfXyhzZWxmLl9wYXJlbnQsIHJudW0qc2RlbiArIHJkZW4qc251bSwgcmRl bipzZGVuLAorICAgICAgICAgICAgIGNvZXJjZT1GYWxzZSwgcmVkdWNlPUZhbHNlKQorQEAgLTY1 MiwxMCArNjUyLDEwIEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVt ZW50KToKKyAgICAgICAgICAgICBzYWdlOiBhICogYiAjIGluZGlyZWN0IGRvY3Rlc3QgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCAtIHNhZ2Uu cmluZ3MuZmluaXRlX3JpbmdzCisgICAgICAgICAgICAgMy8odCArIDEpCisgICAgICAgICAiIiIK Ky0gICAgICAgIHJudW0gPSBzZWxmLl9fbnVtZXJhdG9yCistICAgICAgICByZGVuID0gc2VsZi5f X2Rlbm9taW5hdG9yCistICAgICAgICBzbnVtID0gKDxGcmFjdGlvbkZpZWxkRWxlbWVudD4gcmln aHQpLl9fbnVtZXJhdG9yCistICAgICAgICBzZGVuID0gKDxGcmFjdGlvbkZpZWxkRWxlbWVudD4g cmlnaHQpLl9fZGVub21pbmF0b3IKKysgICAgICAgIHJudW0gPSBzZWxmLl9udW1lcmF0b3IKKysg ICAgICAgIHJkZW4gPSBzZWxmLl9kZW5vbWluYXRvcgorKyAgICAgICAgc251bSA9ICg8RnJhY3Rp b25GaWVsZEVsZW1lbnQ+IHJpZ2h0KS5fbnVtZXJhdG9yCisrICAgICAgICBzZGVuID0gKDxGcmFj dGlvbkZpZWxkRWxlbWVudD4gcmlnaHQpLl9kZW5vbWluYXRvcgorIAorICAgICAgICAgaWYgKHJu dW0uaXNfemVybygpIG9yIHNudW0uaXNfemVybygpKToKKyAgICAgICAgICAgICByZXR1cm4gc2Vs Zi5fcGFyZW50Lnplcm8oKQorQEAgLTY4OSwxMCArNjg5LDEwIEBAIGNkZWYgY2xhc3MgRnJhY3Rp b25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICBleGNlcHQgVHlwZUVy cm9yOgorICAgICAgICAgICAgICAgICBwYXNzCisgCistICAgICAgICBybnVtID0gc2VsZi5fX251 bWVyYXRvcgorLSAgICAgICAgcmRlbiA9IHNlbGYuX19kZW5vbWluYXRvcgorLSAgICAgICAgc251 bSA9ICg8RnJhY3Rpb25GaWVsZEVsZW1lbnQ+IHJpZ2h0KS5fX251bWVyYXRvcgorLSAgICAgICAg c2RlbiA9ICg8RnJhY3Rpb25GaWVsZEVsZW1lbnQ+IHJpZ2h0KS5fX2Rlbm9taW5hdG9yCisrICAg ICAgICBybnVtID0gc2VsZi5fbnVtZXJhdG9yCisrICAgICAgICByZGVuID0gc2VsZi5fZGVub21p bmF0b3IKKysgICAgICAgIHNudW0gPSAoPEZyYWN0aW9uRmllbGRFbGVtZW50PiByaWdodCkuX251 bWVyYXRvcgorKyAgICAgICAgc2RlbiA9ICg8RnJhY3Rpb25GaWVsZEVsZW1lbnQ+IHJpZ2h0KS5f ZGVub21pbmF0b3IKKyAKKyAgICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXyhzZWxmLl9wYXJl bnQsIHJudW0gKiBzbnVtLCByZGVuICogc2RlbiwKKyAgICAgICAgICAgICBjb2VyY2U9RmFsc2Us IHJlZHVjZT1GYWxzZSkKK0BAIC03MTcsOCArNzE3LDggQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZp ZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgICAgIHNhZ2U6IGEvYgorICAgICAg ICAgICAgICh4KnogLSB4ICsgeiAtIDEpLyh6IC0gMykKKyAgICAgICAgICIiIgorLSAgICAgICAg c251bSA9ICg8RnJhY3Rpb25GaWVsZEVsZW1lbnQ+IHJpZ2h0KS5fX251bWVyYXRvcgorLSAgICAg ICAgc2RlbiA9ICg8RnJhY3Rpb25GaWVsZEVsZW1lbnQ+IHJpZ2h0KS5fX2Rlbm9taW5hdG9yCisr ICAgICAgICBzbnVtID0gKDxGcmFjdGlvbkZpZWxkRWxlbWVudD4gcmlnaHQpLl9udW1lcmF0b3IK KysgICAgICAgIHNkZW4gPSAoPEZyYWN0aW9uRmllbGRFbGVtZW50PiByaWdodCkuX2Rlbm9taW5h dG9yCisgCisgICAgICAgICBpZiBzbnVtLmlzX3plcm8oKToKKyAgICAgICAgICAgICByYWlzZSBa ZXJvRGl2aXNpb25FcnJvcigiZnJhY3Rpb24gZmllbGQgZWxlbWVudCBkaXZpc2lvbiBieSB6ZXJv IikKK0BAIC03NDMsMTAgKzc0MywxMCBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50 KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAgICAgc2FnZTogaW50KEsoLjUpKQorICAgICAgICAg ICAgIDAKKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgc2VsZi5fX2Rlbm9taW5hdG9yICE9IDE6 CisrICAgICAgICBpZiBzZWxmLl9kZW5vbWluYXRvciAhPSAxOgorICAgICAgICAgICAgIHNlbGYu cmVkdWNlKCkKKy0gICAgICAgIGlmIHNlbGYuX19kZW5vbWluYXRvciA9PSAxOgorLSAgICAgICAg ICAgIHJldHVybiBpbnQoc2VsZi5fX251bWVyYXRvcikKKysgICAgICAgIGlmIHNlbGYuX2Rlbm9t aW5hdG9yID09IDE6CisrICAgICAgICAgICAgcmV0dXJuIGludChzZWxmLl9udW1lcmF0b3IpCisg ICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiZGVub21pbmF0b3Ig bXVzdCBlcXVhbCAxIikKKyAKK0BAIC03NTgsNyArNzU4LDcgQEAgY2RlZiBjbGFzcyBGcmFjdGlv bkZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgICAgIHNhZ2U6IGZsb2F0KHgv eCArIHkveSkKKyAgICAgICAgICAgICAyLjAKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJu IGZsb2F0KHNlbGYuX19udW1lcmF0b3IpIC8gZmxvYXQoc2VsZi5fX2Rlbm9taW5hdG9yKQorKyAg ICAgICAgcmV0dXJuIGZsb2F0KHNlbGYuX251bWVyYXRvcikgLyBmbG9hdChzZWxmLl9kZW5vbWlu YXRvcikKKyAKKyAgICAgZGVmIF9fY29tcGxleF9fKHNlbGYpOgorICAgICAgICAgIiIiCitAQCAt NzY4LDcgKzc2OCw3IEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVt ZW50KToKKyAgICAgICAgICAgICBzYWdlOiBjb21wbGV4KHgvKEkqeCkgKyAoSSp5KS95KQorICAg ICAgICAgICAgIDBqCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBjb21wbGV4KHNlbGYu X19udW1lcmF0b3IpIC8gY29tcGxleChzZWxmLl9fZGVub21pbmF0b3IpCisrICAgICAgICByZXR1 cm4gY29tcGxleChzZWxmLl9udW1lcmF0b3IpIC8gY29tcGxleChzZWxmLl9kZW5vbWluYXRvcikK KyAKKyAgICAgZGVmIF9yYXRpb25hbF8oc2VsZik6CisgICAgICAgICByIiIiCitAQCAtODIyLDEy ICs4MjIsMTIgQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQp OgorICAgICAgICAgICAgIHNhZ2U6IEEoQyh1KSkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsIC0gc2FnZS5yaW5n cy5udW1iZXJfZmllbGQKKyAgICAgICAgICAgICB1CisgICAgICAgICAiIiIKKy0gICAgICAgIGlm IHNlbGYuX19kZW5vbWluYXRvci5pc19vbmUoKToKKy0gICAgICAgICAgICByZXR1cm4gUihzZWxm Ll9fbnVtZXJhdG9yKQorKyAgICAgICAgaWYgc2VsZi5fZGVub21pbmF0b3IuaXNfb25lKCk6Cisr ICAgICAgICAgICAgcmV0dXJuIFIoc2VsZi5fbnVtZXJhdG9yKQorICAgICAgICAgZWxzZToKKyAg ICAgICAgICAgICBzZWxmLnJlZHVjZSgpCistICAgICAgICAgICAgbnVtID0gUihzZWxmLl9fbnVt ZXJhdG9yKQorLSAgICAgICAgICAgIGludl9kZW4gPSBSKHNlbGYuX19kZW5vbWluYXRvcikuaW52 ZXJzZV9vZl91bml0KCkKKysgICAgICAgICAgICBudW0gPSBSKHNlbGYuX251bWVyYXRvcikKKysg ICAgICAgICAgICBpbnZfZGVuID0gUihzZWxmLl9kZW5vbWluYXRvcikuaW52ZXJzZV9vZl91bml0 KCkKKyAgICAgICAgICAgICByZXR1cm4gbnVtICogaW52X2RlbgorIAorICAgICBfcmVhbF9kb3Vi bGVfID0gX2NvbnZlcnNpb24KK0BAIC04NDcsNyArODQ3LDcgQEAgY2RlZiBjbGFzcyBGcmFjdGlv bkZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgUmV0dXJucyBzZWxmIHJhaXNl ZCB0byB0aGUgYHJpZ2h0Xnt0aH1gIHBvd2VyLgorIAorICAgICAgICAgTm90ZSB0aGF0IHdlIG5l ZWQgdG8gY2hlY2sgd2hldGhlciBvciBub3QgcmlnaHQgaXMgbmVnYXRpdmUgc28gd2UKKy0gICAg ICAgIGRvbid0IHNldCBgYF9fbnVtZXJhdG9yYGAgb3IgYGBfX2Rlbm9taW5hdG9yYGAgdG8gYW4g ZWxlbWVudCBvZiB0aGUKKysgICAgICAgIGRvbid0IHNldCBgYF9udW1lcmF0b3JgYCBvciBgYF9k ZW5vbWluYXRvcmBgIHRvIGFuIGVsZW1lbnQgb2YgdGhlCisgICAgICAgICBmcmFjdGlvbiBmaWVs ZCBpbnN0ZWFkIG9mIHRoZSB1bmRlcmx5aW5nIHJpbmcuCisgCisgICAgICAgICBFWEFNUExFUzo6 CitAQCAtODc2LDggKzg3Niw4IEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmll bGRFbGVtZW50KToKKyAgICAgICAgICAgICBzYWdlOiAoKHgreSkvKHgteSkpXjAKKyAgICAgICAg ICAgICAxCisgICAgICAgICAiIiIKKy0gICAgICAgIHNudW0gPSAoPEZyYWN0aW9uRmllbGRFbGVt ZW50PiBzZWxmKS5fX251bWVyYXRvcgorLSAgICAgICAgc2RlbiA9ICg8RnJhY3Rpb25GaWVsZEVs ZW1lbnQ+IHNlbGYpLl9fZGVub21pbmF0b3IKKysgICAgICAgIHNudW0gPSAoPEZyYWN0aW9uRmll bGRFbGVtZW50PiBzZWxmKS5fbnVtZXJhdG9yCisrICAgICAgICBzZGVuID0gKDxGcmFjdGlvbkZp ZWxkRWxlbWVudD4gc2VsZikuX2Rlbm9taW5hdG9yCisgICAgICAgICBpZiByaWdodCA9PSAwOgor ICAgICAgICAgICAgIFIgPSBzZWxmLnBhcmVudCgpLnJpbmcoKQorICAgICAgICAgICAgIHJldHVy biBzZWxmLl9fY2xhc3NfXyhzZWxmLnBhcmVudCgpLAorQEAgLTkwNCw3ICs5MDQsNyBAQCBjZGVm IGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAgICAg KDQqdF4yICsgNCp0KS8odCArIDIpCisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxm Ll9fY2xhc3NfXyhzZWxmLl9wYXJlbnQsCistICAgICAgICAgICAgLXNlbGYuX19udW1lcmF0b3Is IHNlbGYuX19kZW5vbWluYXRvciwKKysgICAgICAgICAgICAtc2VsZi5fbnVtZXJhdG9yLCBzZWxm Ll9kZW5vbWluYXRvciwKKyAgICAgICAgICAgICBjb2VyY2U9RmFsc2UsIHJlZHVjZT1GYWxzZSkK KyAKKyAgICAgZGVmIF9fYWJzX18oc2VsZik6CitAQCAtOTE1LDcgKzkxNSw3IEBAIGNkZWYgY2xh c3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICBzYWdl OiBhYnMoRnJhY3Rpb25GaWVsZEVsZW1lbnQoUVEsIC0yLCAzLCBjb2VyY2U9RmFsc2UpKQorICAg ICAgICAgICAgIDIvMworICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gYWJzKHNlbGYuX19u dW1lcmF0b3IpIC8gYWJzKHNlbGYuX19kZW5vbWluYXRvcikKKysgICAgICAgIHJldHVybiBhYnMo c2VsZi5fbnVtZXJhdG9yKSAvIGFicyhzZWxmLl9kZW5vbWluYXRvcikKKyAKKyAgICAgZGVmIF9f aW52ZXJ0X18oc2VsZik6CisgICAgICAgICAiIiIKK0BAIC05MjksNyArOTI5LDcgQEAgY2RlZiBj bGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgaWYgc2Vs Zi5pc196ZXJvKCk6CisgICAgICAgICAgICAgcmFpc2UgWmVyb0RpdmlzaW9uRXJyb3IoIkNhbm5v dCBpbnZlcnQgMCIpCisgICAgICAgICByZXR1cm4gc2VsZi5fX2NsYXNzX18oc2VsZi5fcGFyZW50 LAorLSAgICAgICAgICAgIHNlbGYuX19kZW5vbWluYXRvciwgc2VsZi5fX251bWVyYXRvciwgY29l cmNlPUZhbHNlLCByZWR1Y2U9RmFsc2UpCisrICAgICAgICAgICAgc2VsZi5fZGVub21pbmF0b3Is IHNlbGYuX251bWVyYXRvciwgY29lcmNlPUZhbHNlLCByZWR1Y2U9RmFsc2UpCisgCisgICAgIGNw ZGVmIF9yaWNoY21wXyhzZWxmLCBvdGhlciwgaW50IG9wKToKKyAgICAgICAgICIiIgorQEAgLTk1 MSwxMCArOTUxLDEwIEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVt ZW50KToKKyAgICAgICAgICAgICBzYWdlOiAxID4geQorICAgICAgICAgICAgIEZhbHNlCisgICAg ICAgICAiIiIKKy0gICAgICAgIHJldHVybiByaWNoY21wKHNlbGYuX19udW1lcmF0b3IgKgorLSAg ICAgICAgICAgICAgICAgICAgICAgKDxGcmFjdGlvbkZpZWxkRWxlbWVudD5vdGhlcikuX19kZW5v bWluYXRvciwKKy0gICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX19kZW5vbWluYXRvciAqCist ICAgICAgICAgICAgICAgICAgICAgICAoPEZyYWN0aW9uRmllbGRFbGVtZW50Pm90aGVyKS5fX251 bWVyYXRvciwgb3ApCisrICAgICAgICByZXR1cm4gcmljaGNtcChzZWxmLl9udW1lcmF0b3IgKgor KyAgICAgICAgICAgICAgICAgICAgICAgKDxGcmFjdGlvbkZpZWxkRWxlbWVudD5vdGhlcikuX2Rl bm9taW5hdG9yLAorKyAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZGVub21pbmF0b3IgKgor KyAgICAgICAgICAgICAgICAgICAgICAgKDxGcmFjdGlvbkZpZWxkRWxlbWVudD5vdGhlcikuX251 bWVyYXRvciwgb3ApCisgCisgICAgIGRlZiB2YWx1YXRpb24oc2VsZiwgdj1Ob25lKToKKyAgICAg ICAgICIiIgorQEAgLTk3Miw3ICs5NzIsNyBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVt ZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAgICAgc2FnZTogZi52YWx1YXRpb24oeF4yICsg MSkKKyAgICAgICAgICAgICAxCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBzZWxmLl9f bnVtZXJhdG9yLnZhbHVhdGlvbih2KSAtIHNlbGYuX19kZW5vbWluYXRvci52YWx1YXRpb24odikK KysgICAgICAgIHJldHVybiBzZWxmLl9udW1lcmF0b3IudmFsdWF0aW9uKHYpIC0gc2VsZi5fZGVu b21pbmF0b3IudmFsdWF0aW9uKHYpCisgCisgICAgIGRlZiBfX2Jvb2xfXyhzZWxmKToKKyAgICAg ICAgICIiIgorQEAgLTk5MSw3ICs5OTEsNyBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVt ZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAgICAgc2FnZTogYm9vbCgxL3gpCisgICAgICAg ICAgICAgVHJ1ZQorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gbm90IHNlbGYuX19udW1l cmF0b3IuaXNfemVybygpCisrICAgICAgICByZXR1cm4gbm90IHNlbGYuX251bWVyYXRvci5pc196 ZXJvKCkKKyAKKyAgICAgZGVmIGlzX3plcm8oc2VsZik6CisgICAgICAgICAiIiIKK0BAIC0xMDEw LDcgKzEwMTAsNyBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVu dCk6CisgICAgICAgICAgICAgc2FnZTogdS5wYXJlbnQoKSBpcyBGCisgICAgICAgICAgICAgVHJ1 ZQorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5fX251bWVyYXRvci5pc196ZXJv KCkKKysgICAgICAgIHJldHVybiBzZWxmLl9udW1lcmF0b3IuaXNfemVybygpCisgCisgICAgIGRl ZiBpc19vbmUoc2VsZik6CisgICAgICAgICAiIiIKK0BAIC0xMDI1LDcgKzEwMjUsNyBAQCBjZGVm IGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAgICAg c2FnZTogKHgveSkuaXNfb25lKCkKKyAgICAgICAgICAgICBGYWxzZQorICAgICAgICAgIiIiCist ICAgICAgICByZXR1cm4gc2VsZi5fX251bWVyYXRvciA9PSBzZWxmLl9fZGVub21pbmF0b3IKKysg ICAgICAgIHJldHVybiBzZWxmLl9udW1lcmF0b3IgPT0gc2VsZi5fZGVub21pbmF0b3IKKyAKKyAg ICAgZGVmIF9zeW1ib2xpY18oc2VsZiwgcmluZyk6CisgICAgICAgICAiIiIKK0BAIC0xMDQ0LDcg KzEwNDQsNyBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6 CisgICAgICAgICAgICAgc2FnZTogc3ltYm9saWNfZXhwcmVzc2lvbihlbHQpICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwgLSBzYWdlLnN5bWJv bGljCisgICAgICAgICAgICAgMi8zKih4ICsgeSkvKHggLSB5KQorICAgICAgICAgIiIiCistICAg ICAgICByZXR1cm4gcmluZyhzZWxmLl9fbnVtZXJhdG9yKS9yaW5nKHNlbGYuX19kZW5vbWluYXRv cikKKysgICAgICAgIHJldHVybiByaW5nKHNlbGYuX251bWVyYXRvcikvcmluZyhzZWxmLl9kZW5v bWluYXRvcikKKyAKKyAgICAgZGVmIF9fcmVkdWNlX18oc2VsZik6CisgICAgICAgICAiIiIKK0BA IC0xMDU4LDcgKzEwNTgsNyBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50KEZpZWxk RWxlbWVudCk6CisgICAgICAgICAgICAgVHJ1ZQorICAgICAgICAgIiIiCisgICAgICAgICByZXR1 cm4gKG1ha2VfZWxlbWVudCwKKy0gICAgICAgICAgICAgICAgKHNlbGYuX3BhcmVudCwgc2VsZi5f X251bWVyYXRvciwgc2VsZi5fX2Rlbm9taW5hdG9yKSkKKysgICAgICAgICAgICAgICAgKHNlbGYu X3BhcmVudCwgc2VsZi5fbnVtZXJhdG9yLCBzZWxmLl9kZW5vbWluYXRvcikpCisgCisgICAgIGRl ZiBfZXZhbHVhdGVfcG9seW5vbWlhbChzZWxmLCBwb2wpOgorICAgICAgICAgIiIiCitAQCAtMTE3 MCw5ICsxMTcwLDkgQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudF8xcG9seV9maWVs ZChGcmFjdGlvbkZpZWxkRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNlZSA6bWV0 aDpgcmVkdWNlYC4KKyAgICAgICAgICIiIgorLSAgICAgICAgaW52bGMgPSB+c2VsZi5fX2Rlbm9t aW5hdG9yLmxlYWRpbmdfY29lZmZpY2llbnQoKQorLSAgICAgICAgc2VsZi5fX2Rlbm9taW5hdG9y ID0gc2VsZi5fX2Rlbm9taW5hdG9yLm1vbmljKCkKKy0gICAgICAgIHNlbGYuX19udW1lcmF0b3Ig Kj0gaW52bGMKKysgICAgICAgIGludmxjID0gfnNlbGYuX2Rlbm9taW5hdG9yLmxlYWRpbmdfY29l ZmZpY2llbnQoKQorKyAgICAgICAgc2VsZi5fZGVub21pbmF0b3IgPSBzZWxmLl9kZW5vbWluYXRv ci5tb25pYygpCisrICAgICAgICBzZWxmLl9udW1lcmF0b3IgKj0gaW52bGMKKyAKKyAgICAgZGVm IGlzX2ludGVncmFsKHNlbGYpOgorICAgICAgICAgIiIiCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv cmluZ3MvZnVuY3Rpb25fZmllbGQvZHJpbmZlbGRfbW9kdWxlcy9kcmluZmVsZF9tb2R1bGUucHkg Yi9zcmMvc2FnZS9yaW5ncy9mdW5jdGlvbl9maWVsZC9kcmluZmVsZF9tb2R1bGVzL2RyaW5mZWxk X21vZHVsZS5weQoraW5kZXggYTI3ZTc1ZjVmY2UuLjc0ZWYxMjVmYjZhIDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvcmluZ3MvZnVuY3Rpb25fZmllbGQvZHJpbmZlbGRfbW9kdWxlcy9kcmluZmVsZF9t b2R1bGUucHkKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2Z1bmN0aW9uX2ZpZWxkL2RyaW5mZWxkX21v ZHVsZXMvZHJpbmZlbGRfbW9kdWxlLnB5CitAQCAtODA0LDggKzgwNCw4IEBAIGRlZiBfbGF0ZXhf KHNlbGYpOgorICAgICAgICAgICAgIFxwaGkKKyAgICAgICAgICAgICBzYWdlOiBwaGkucmVzZXRf bmFtZSgpCisgICAgICAgICAiIiIKKy0gICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ19fY3VzdG9t X25hbWUnKToKKy0gICAgICAgICAgICByZXR1cm4gbGF0ZXhfdmFyaWFibGVfbmFtZShnZXRhdHRy KHNlbGYsICdfX2N1c3RvbV9uYW1lJykpCisrICAgICAgICBpZiBzZWxmLmdldF9jdXN0b21fbmFt ZSgpIGlzIG5vdCBOb25lOgorKyAgICAgICAgICAgIHJldHVybiBsYXRleF92YXJpYWJsZV9uYW1l KHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCkpCisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJl dHVybiBmJ1xccGhpOiB7bGF0ZXgoc2VsZi5fZnVuY3Rpb25fcmluZy5nZW4oKSl9IFxcbWFwc3Rv ICcgXAorICAgICAgICAgICAgICAgICAgICBmJ3tsYXRleChzZWxmLl9nZW4pfScKK2RpZmYgLS1n aXQgYS9zcmMvc2FnZS9yaW5ncy9sYXVyZW50X3Nlcmllc19yaW5nX2VsZW1lbnQucHhkIGIvc3Jj L3NhZ2UvcmluZ3MvbGF1cmVudF9zZXJpZXNfcmluZ19lbGVtZW50LnB4ZAoraW5kZXggZDE5MDY0 NWNlNTIuLjhkZjVhOTJjOWU3IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvbGF1cmVudF9z ZXJpZXNfcmluZ19lbGVtZW50LnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvbGF1cmVudF9zZXJp ZXNfcmluZ19lbGVtZW50LnB4ZAorQEAgLTQsNyArNCw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFNl cmllcyhBbGdlYnJhRWxlbWVudCk6CisgICAgIGNkZWYgTW9kdWxlRWxlbWVudCBfX3UKKyAgICAg Y2RlZiBsb25nIF9fbgorIAorLSAgICBjZGVmIF9fbm9ybWFsaXplKHNlbGYpCisrICAgIGNkZWYg X25vcm1hbGl6ZShzZWxmKQorICAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikKKyAgICAgY3Bk ZWYgX211bF8oc2VsZiwgb3RoZXIpCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvbGF1 cmVudF9zZXJpZXNfcmluZ19lbGVtZW50LnB5eCBiL3NyYy9zYWdlL3JpbmdzL2xhdXJlbnRfc2Vy aWVzX3JpbmdfZWxlbWVudC5weXgKK2luZGV4IDhlOTUwNDc4MDQ1Li45YmVmNzIzOTZiNyAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL2xhdXJlbnRfc2VyaWVzX3JpbmdfZWxlbWVudC5weXgK KysrKyBiL3NyYy9zYWdlL3JpbmdzL2xhdXJlbnRfc2VyaWVzX3JpbmdfZWxlbWVudC5weXgKK0BA IC0zMDIsNyArMzAyLDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50U2VyaWVzKEFsZ2VicmFFbGVtZW50 KToKKyAgICAgICAgIHggPSBpbV9nZW5zWzBdCisgICAgICAgICByZXR1cm4gY29kb21haW4oc2Vs Zi5fX3UuX2ltX2dlbnNfKGNvZG9tYWluLCBpbV9nZW5zLCBiYXNlX21hcD1iYXNlX21hcCkgKiB4 KipzZWxmLl9fbikKKyAKKy0gICAgY2RlZiBfX25vcm1hbGl6ZShzZWxmKToKKysgICAgY2RlZiBf bm9ybWFsaXplKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgQSBMYXVyZW50IHNlcmll cyBpcyBhIHBhaXIgKHUodCksIG4pLCB3aGVyZSBlaXRoZXIgdT0wICh0byBzb21lCisgICAgICAg ICBwcmVjaXNpb24pIG9yIHUgaXMgYSB1bml0LiBUaGlzIHBhaXIgY29ycmVzcG9uZHMgdG8KK0BA IC03MjUsNyArNzI1LDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50U2VyaWVzKEFsZ2VicmFFbGVtZW50 KToKKyAgICAgICAgICAgICAgICAgUiA9IHNlbGYuX3BhcmVudC5iYXNlX3JpbmcoKQorICAgICAg ICAgICAgICAgICBjb2VmZnMgPSBbdmFsdWVdICsgW1IoMCkgZm9yIF8gaW4gcmFuZ2UoMSwtaild ICsgc2VsZi5fX3UubGlzdCgpCisgICAgICAgICAgICAgICAgIHNlbGYuX191ID0gc2VsZi5fX3Uu X3BhcmVudChjb2VmZnMpCistICAgICAgICBzZWxmLl9fbm9ybWFsaXplKCkKKysgICAgICAgIHNl bGYuX25vcm1hbGl6ZSgpCisgCisgICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0X20pOgorICAg ICAgICAgIiIiCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvbW9ycGhpc20ucHhkIGIvc3Jj L3NhZ2UvcmluZ3MvbW9ycGhpc20ucHhkCitpbmRleCBlYTYwODlmMjliNC4uNGI4ZThkMDUyZGYg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9tb3JwaGlzbS5weGQKKysrKyBiL3NyYy9zYWdl L3JpbmdzL21vcnBoaXNtLnB4ZAorQEAgLTE0LDcgKzE0LDcgQEAgY2RlZiBjbGFzcyBSaW5nTWFw X2xpZnQoUmluZ01hcCk6CisgCisgY2RlZiBjbGFzcyBSaW5nSG9tb21vcnBoaXNtKFJpbmdNYXAp OgorICAgICBjZGVmIE1vcnBoaXNtIF9saWZ0CistICAgIGNkZWYgcHVibGljIGRpY3QgX19jYWNo ZWRfbWV0aG9kcworKyAgICBjZGVmIHB1YmxpYyBkaWN0IF9jYWNoZWRfbWV0aG9kcworIAorIGNk ZWYgY2xhc3MgUmluZ0hvbW9tb3JwaGlzbV9pbV9nZW5zKFJpbmdIb21vbW9ycGhpc20pOgorICAg ICBjZGVmIF9pbV9nZW5zCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2ZpZWxk L251bWJlcl9maWVsZF9lbGVtZW50LnB4ZCBiL3NyYy9zYWdlL3JpbmdzL251bWJlcl9maWVsZC9u dW1iZXJfZmllbGRfZWxlbWVudC5weGQKK2luZGV4IDliNjkxNzIyM2EwLi5jM2Q4YThiNGE0YiAx MDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL251bWJlcl9maWVsZC9udW1iZXJfZmllbGRfZWxl bWVudC5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL251bWJlcl9maWVsZC9udW1iZXJfZmllbGRf ZWxlbWVudC5weGQKK0BAIC0xMSwxMiArMTEsMTIgQEAgZnJvbSBzYWdlLmxpYnMubnRsLm50bF9a WiBjaW1wb3J0IG50bF9aWgorIAorIAorIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51 bWJlckZpZWxkRWxlbWVudF9iYXNlKToKKy0gICAgY2RlZiBaWlhfYyBfX251bWVyYXRvcgorLSAg ICBjZGVmIFpaX2MgX19kZW5vbWluYXRvcgorKyAgICBjZGVmIFpaWF9jIF9udW1lcmF0b3IKKysg ICAgY2RlZiBaWl9jIF9kZW5vbWluYXRvcgorICAgICAjIFBvaW50ZXJzIHRvIHRoZSBkZWZpbmlu ZyBwb2x5bm9taWFsICh3aXRoIG51bWVyYXRvcikgZm9yIHRoZSBmaWVsZC4KKyAgICAgIyBJIGtl ZXAgdGhlc2UgYXMgcG9pbnRlcnMgZm9yIGFyaXRobWV0aWMgc3BlZWQuCistICAgIGNkZWYgbnRs X1paWCBfX2ZsZF9udW1lcmF0b3IKKy0gICAgY2RlZiBudGxfWlogX19mbGRfZGVub21pbmF0b3IK KysgICAgY2RlZiBudGxfWlpYIF9mbGRfbnVtZXJhdG9yCisrICAgIGNkZWYgbnRsX1paIF9mbGRf ZGVub21pbmF0b3IKKyAgICAgY2RlZiBvYmplY3QgX19tdWx0aXBsaWNhdGl2ZV9vcmRlcgorICAg ICBjZGVmIG9iamVjdCBfX3BhcmkKKyAgICAgY2RlZiBvYmplY3QgX19tYXRyaXgKK2RpZmYgLS1n aXQgYS9zcmMvc2FnZS9yaW5ncy9udW1iZXJfZmllbGQvbnVtYmVyX2ZpZWxkX2VsZW1lbnQucHl4 IGIvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2ZpZWxkL251bWJlcl9maWVsZF9lbGVtZW50LnB5eAor aW5kZXggMjdlMzNhZDViZTAuLmQ0NGZjNTViNzBjIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvcmlu Z3MvbnVtYmVyX2ZpZWxkL251bWJlcl9maWVsZF9lbGVtZW50LnB5eAorKysrIGIvc3JjL3NhZ2Uv cmluZ3MvbnVtYmVyX2ZpZWxkL251bWJlcl9maWVsZF9lbGVtZW50LnB5eAorQEAgLTIxOCw4ICsy MTgsOCBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRf YmFzZSk6CisgICAgICAgICBjZGVmIHR5cGUgdCA9IHR5cGUoc2VsZikKKyAgICAgICAgIGNkZWYg TnVtYmVyRmllbGRFbGVtZW50IHggPSA8TnVtYmVyRmllbGRFbGVtZW50PnQuX19uZXdfXyh0KQor ICAgICAgICAgeC5fcGFyZW50ID0gc2VsZi5fcGFyZW50CistICAgICAgICB4Ll9fZmxkX251bWVy YXRvciA9IHNlbGYuX19mbGRfbnVtZXJhdG9yCistICAgICAgICB4Ll9fZmxkX2Rlbm9taW5hdG9y ID0gc2VsZi5fX2ZsZF9kZW5vbWluYXRvcgorKyAgICAgICAgeC5fZmxkX251bWVyYXRvciA9IHNl bGYuX2ZsZF9udW1lcmF0b3IKKysgICAgICAgIHguX2ZsZF9kZW5vbWluYXRvciA9IHNlbGYuX2Zs ZF9kZW5vbWluYXRvcgorICAgICAgICAgcmV0dXJuIHgKKyAKKyAgICAgY2RlZiBudW1iZXJfZmll bGQoc2VsZik6CitAQCAtMzE3LDIwICszMTcsMjAgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVs ZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAgICAgIFRydWUKKyAgICAg ICAgICIiIgorICAgICAgICAgRmllbGRFbGVtZW50Ll9faW5pdF9fKHNlbGYsIHBhcmVudCkKKy0g ICAgICAgIHNlbGYuX19mbGRfbnVtZXJhdG9yLCBzZWxmLl9fZmxkX2Rlbm9taW5hdG9yID0gcGFy ZW50LmFic29sdXRlX3BvbHlub21pYWxfbnRsKCkKKysgICAgICAgIHNlbGYuX2ZsZF9udW1lcmF0 b3IsIHNlbGYuX2ZsZF9kZW5vbWluYXRvciA9IHBhcmVudC5hYnNvbHV0ZV9wb2x5bm9taWFsX250 bCgpCisgCisgICAgICAgICBjZGVmIFpaX2MgY29lZmYKKyAgICAgICAgIGlmIGlzaW5zdGFuY2Uo ZiwgKGludCwgSW50ZWdlcl9zYWdlKSk6CisgICAgICAgICAgICAgIyBzZXQgaXQgdXAgYW5kIGV4 aXQgaW1tZWRpYXRlbHkKKyAgICAgICAgICAgICAjIGZhc3QgcGF0aHdheQorICAgICAgICAgICAg IG1wel90b19aWigmY29lZmYsICg8SW50ZWdlcj5aWihmKSkudmFsdWUpCistICAgICAgICAgICAg WlpYX1NldENvZWZmKCBzZWxmLl9fbnVtZXJhdG9yLCAwLCBjb2VmZiApCistICAgICAgICAgICAg WlpfY29udl9mcm9tX2ludCggc2VsZi5fX2Rlbm9taW5hdG9yLCAxICkKKysgICAgICAgICAgICBa WlhfU2V0Q29lZmYoIHNlbGYuX251bWVyYXRvciwgMCwgY29lZmYgKQorKyAgICAgICAgICAgIFpa X2NvbnZfZnJvbV9pbnQoIHNlbGYuX2Rlbm9taW5hdG9yLCAxICkKKyAgICAgICAgICAgICByZXR1 cm4KKyAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShmLCBOdW1iZXJGaWVsZEVsZW1lbnQpOgorICAg ICAgICAgICAgIGlmIHR5cGUoc2VsZikgaXMgdHlwZShmKToKKy0gICAgICAgICAgICAgICAgc2Vs Zi5fX251bWVyYXRvciA9ICg8TnVtYmVyRmllbGRFbGVtZW50PmYpLl9fbnVtZXJhdG9yCistICAg ICAgICAgICAgICAgIHNlbGYuX19kZW5vbWluYXRvciA9ICg8TnVtYmVyRmllbGRFbGVtZW50PmYp Ll9fZGVub21pbmF0b3IKKysgICAgICAgICAgICAgICAgc2VsZi5fbnVtZXJhdG9yID0gKDxOdW1i ZXJGaWVsZEVsZW1lbnQ+ZikuX251bWVyYXRvcgorKyAgICAgICAgICAgICAgICBzZWxmLl9kZW5v bWluYXRvciA9ICg8TnVtYmVyRmllbGRFbGVtZW50PmYpLl9kZW5vbWluYXRvcgorICAgICAgICAg ICAgICAgICByZXR1cm4KKyAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICBmID0g Zi5wb2x5bm9taWFsKCkKK0BAIC0zNDIsMTEgKzM0MiwxMSBAQCBjZGVmIGNsYXNzIE51bWJlckZp ZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgCisgICAgICAgICBjZGVmIGxv bmcgaQorICAgICAgICAgZGVuID0gZi5kZW5vbWluYXRvcigpCistICAgICAgICBtcHpfdG9fWloo JnNlbGYuX19kZW5vbWluYXRvciwgKDxJbnRlZ2VyPlpaKGRlbikpLnZhbHVlKQorKyAgICAgICAg bXB6X3RvX1paKCZzZWxmLl9kZW5vbWluYXRvciwgKDxJbnRlZ2VyPlpaKGRlbikpLnZhbHVlKQor ICAgICAgICAgbnVtID0gZiAqIGRlbgorICAgICAgICAgZm9yIGkgZnJvbSAwIDw9IGkgPD0gbnVt LmRlZ3JlZSgpOgorICAgICAgICAgICAgIG1wel90b19aWigmY29lZmYsICg8SW50ZWdlcj5aWihu dW1baV0pKS52YWx1ZSkKKy0gICAgICAgICAgICBaWlhfU2V0Q29lZmYoIHNlbGYuX19udW1lcmF0 b3IsIGksIGNvZWZmICkKKysgICAgICAgICAgICBaWlhfU2V0Q29lZmYoIHNlbGYuX251bWVyYXRv ciwgaSwgY29lZmYgKQorIAorICAgICBkZWYgX2xpZnRfY3ljbG90b21pY19lbGVtZW50KHNlbGYs IG5ld19wYXJlbnQsIGJpbnQgY2hlY2s9VHJ1ZSwgaW50IHJlbD0wKToKKyAgICAgICAgICIiIgor QEAgLTQxNywxNyArNDE3LDE3IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51bWJl ckZpZWxkRWxlbWVudF9iYXNlKToKKyAgICAgICAgIGNkZWYgdHlwZSB0ID0gdHlwZShzZWxmKQor ICAgICAgICAgY2RlZiBOdW1iZXJGaWVsZEVsZW1lbnQgeCA9IDxOdW1iZXJGaWVsZEVsZW1lbnQ+ dC5fX25ld19fKHQpCisgICAgICAgICB4Ll9wYXJlbnQgPSA8UGFyZW50V2l0aEJhc2U+bmV3X3Bh cmVudAorLSAgICAgICAgeC5fX2ZsZF9udW1lcmF0b3IsIHguX19mbGRfZGVub21pbmF0b3IgPSBu ZXdfcGFyZW50LnBvbHlub21pYWxfbnRsKCkKKy0gICAgICAgIHguX19kZW5vbWluYXRvciA9IHNl bGYuX19kZW5vbWluYXRvcgorKyAgICAgICAgeC5fZmxkX251bWVyYXRvciwgeC5fZmxkX2Rlbm9t aW5hdG9yID0gbmV3X3BhcmVudC5wb2x5bm9taWFsX250bCgpCisrICAgICAgICB4Ll9kZW5vbWlu YXRvciA9IHNlbGYuX2Rlbm9taW5hdG9yCisgICAgICAgICBjZGVmIFpaWF9jIHJlc3VsdAorICAg ICAgICAgY2RlZiBaWl9jIHRtcAorICAgICAgICAgY2RlZiBpbnQgaQorICAgICAgICAgY2RlZiBu dGxfWlpYIF9udW0KKyAgICAgICAgIGNkZWYgbnRsX1paIF9kZW4KKy0gICAgICAgIGZvciBpIGZy b20gMCA8PSBpIDw9IFpaWF9kZWcoc2VsZi5fX251bWVyYXRvcik6CistICAgICAgICAgICAgdG1w ID0gWlpYX2NvZWZmKHNlbGYuX19udW1lcmF0b3IsIGkpCisrICAgICAgICBmb3IgaSBmcm9tIDAg PD0gaSA8PSBaWlhfZGVnKHNlbGYuX251bWVyYXRvcik6CisrICAgICAgICAgICAgdG1wID0gWlpY X2NvZWZmKHNlbGYuX251bWVyYXRvciwgaSkKKyAgICAgICAgICAgICBaWlhfU2V0Q29lZmYocmVz dWx0LCBpKnJlbCwgdG1wKQorLSAgICAgICAgWlpYX3JlbSh4Ll9fbnVtZXJhdG9yLCByZXN1bHQs IHguX19mbGRfbnVtZXJhdG9yLngpCisrICAgICAgICBaWlhfcmVtKHguX251bWVyYXRvciwgcmVz dWx0LCB4Ll9mbGRfbnVtZXJhdG9yLngpCisgICAgICAgICByZXR1cm4geAorIAorICAgICBkZWYg X19yZWR1Y2VfXyhzZWxmKToKK0BAIC04NTgsNyArODU4LDcgQEAgY2RlZiBjbGFzcyBOdW1iZXJG aWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAgY2RlZiBpbnQg cmVzCisgCisgICAgICAgICAjIGZhc3QgZXF1YWxpdHkgY2hlY2sKKy0gICAgICAgIHJlcyA9IGxl ZnQuX19udW1lcmF0b3IgPT0gX3JpZ2h0Ll9fbnVtZXJhdG9yIGFuZCBsZWZ0Ll9fZGVub21pbmF0 b3IgPT0gX3JpZ2h0Ll9fZGVub21pbmF0b3IKKysgICAgICAgIHJlcyA9IGxlZnQuX251bWVyYXRv ciA9PSBfcmlnaHQuX251bWVyYXRvciBhbmQgbGVmdC5fZGVub21pbmF0b3IgPT0gX3JpZ2h0Ll9k ZW5vbWluYXRvcgorICAgICAgICAgaWYgcmVzOgorICAgICAgICAgICAgIGlmIG9wID09IFB5X0VR IG9yIG9wID09IFB5X0dFIG9yIG9wID09IFB5X0xFOgorICAgICAgICAgICAgICAgICByZXR1cm4g VHJ1ZQorQEAgLTg4MywxNSArODgzLDE1IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50 KE51bWJlckZpZWxkRWxlbWVudF9iYXNlKToKKyAgICAgICAgIGlmIFAuX2VtYmVkZGVkX3JlYWw6 CisgICAgICAgICAgICAgbXB6X2luaXQobGQpCisgICAgICAgICAgICAgbXB6X2luaXQocmQpCist ICAgICAgICAgICAgWlpfdG9fbXB6KGxkLCAmbGVmdC5fX2Rlbm9taW5hdG9yKQorLSAgICAgICAg ICAgIFpaX3RvX21weihyZCwgJl9yaWdodC5fX2Rlbm9taW5hdG9yKQorKyAgICAgICAgICAgIFpa X3RvX21weihsZCwgJmxlZnQuX2Rlbm9taW5hdG9yKQorKyAgICAgICAgICAgIFpaX3RvX21weihy ZCwgJl9yaWdodC5fZGVub21pbmF0b3IpCisgCisgICAgICAgICAgICAgdiA9IDxSZWFsSW50ZXJ2 YWxGaWVsZEVsZW1lbnQ+IFAuX2dldF9lbWJlZGRpbmdfYXBwcm94KDApCisgICAgICAgICAgICAg bXBmaV9pbml0MihsYSwgbXBmaV9nZXRfcHJlYyh2LnZhbHVlKSkKKyAgICAgICAgICAgICBtcGZp X2luaXQyKHJhLCBtcGZpX2dldF9wcmVjKHYudmFsdWUpKQorLSAgICAgICAgICAgIFpaWF9ldmFs dWF0aW9uX21wZmkobGEsIGxlZnQuX19udW1lcmF0b3IsIHYudmFsdWUpCisrICAgICAgICAgICAg WlpYX2V2YWx1YXRpb25fbXBmaShsYSwgbGVmdC5fbnVtZXJhdG9yLCB2LnZhbHVlKQorICAgICAg ICAgICAgIG1wZmlfZGl2X3oobGEsIGxhLCBsZCkKKy0gICAgICAgICAgICBaWlhfZXZhbHVhdGlv bl9tcGZpKHJhLCBfcmlnaHQuX19udW1lcmF0b3IsIHYudmFsdWUpCisrICAgICAgICAgICAgWlpY X2V2YWx1YXRpb25fbXBmaShyYSwgX3JpZ2h0Ll9udW1lcmF0b3IsIHYudmFsdWUpCisgICAgICAg ICAgICAgbXBmaV9kaXZfeihyYSwgcmEsIHJkKQorICAgICAgICAgICAgIHdoaWxlIG1wZnJfZ3Jl YXRlcmVxdWFsX3AoJmxhLnJpZ2h0LCAmcmEubGVmdCkgXAorICAgICAgICAgICAgICAgICAgIGFu ZCBtcGZyX2dyZWF0ZXJlcXVhbF9wKCZyYS5yaWdodCwgJmxhLmxlZnQpOgorQEAgLTg5OSw5ICs4 OTksOSBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRf YmFzZSk6CisgICAgICAgICAgICAgICAgIHYgPSA8UmVhbEludGVydmFsRmllbGRFbGVtZW50PiBQ Ll9nZXRfZW1iZWRkaW5nX2FwcHJveChpKQorICAgICAgICAgICAgICAgICBtcGZpX3NldF9wcmVj KGxhLCBtcGZpX2dldF9wcmVjKHYudmFsdWUpKQorICAgICAgICAgICAgICAgICBtcGZpX3NldF9w cmVjKHJhLCBtcGZpX2dldF9wcmVjKHYudmFsdWUpKQorLSAgICAgICAgICAgICAgICBaWlhfZXZh bHVhdGlvbl9tcGZpKGxhLCBsZWZ0Ll9fbnVtZXJhdG9yLCB2LnZhbHVlKQorKyAgICAgICAgICAg ICAgICBaWlhfZXZhbHVhdGlvbl9tcGZpKGxhLCBsZWZ0Ll9udW1lcmF0b3IsIHYudmFsdWUpCisg ICAgICAgICAgICAgICAgIG1wZmlfZGl2X3oobGEsIGxhLCBsZCkKKy0gICAgICAgICAgICAgICAg WlpYX2V2YWx1YXRpb25fbXBmaShyYSwgX3JpZ2h0Ll9fbnVtZXJhdG9yLCB2LnZhbHVlKQorKyAg ICAgICAgICAgICAgICBaWlhfZXZhbHVhdGlvbl9tcGZpKHJhLCBfcmlnaHQuX251bWVyYXRvciwg di52YWx1ZSkKKyAgICAgICAgICAgICAgICAgbXBmaV9kaXZfeihyYSwgcmEsIHJkKQorICAgICAg ICAgICAgIGlmIG9wID09IFB5X0xUIG9yIG9wID09IFB5X0xFOgorICAgICAgICAgICAgICAgICBy ZXMgPSBtcGZyX2xlc3NfcCgmbGEucmlnaHQsICZyYS5sZWZ0KQorQEAgLTk1MCw4ICs5NTAsOCBA QCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6 CisgICAgICAgICBjZGVmIFJhdGlvbmFsIHRtcF9yYXRpb25hbAorIAorICAgICAgICAgIyBJdCBz ZWVtcyBsaWtlIGEgc2ltcGxlciBhcHByb2FjaCB3b3VsZCBiZSB0byBzaW1wbHkgZ2VuZXJhdGUK Ky0gICAgICAgICMgcmFuZG9tIGludGVnZXJzIGZvciBlYWNoIGNvZWZmaWNpZW50IG9mIHNlbGYu X19udW1lcmF0b3IKKy0gICAgICAgICMgYW5kIGFuIGludGVnZXIgZm9yIHNlbGYuX19kZW5vbWlu YXRvci4gSG93ZXZlciwgdGhpcyB3b3VsZAorKyAgICAgICAgIyByYW5kb20gaW50ZWdlcnMgZm9y IGVhY2ggY29lZmZpY2llbnQgb2Ygc2VsZi5fbnVtZXJhdG9yCisrICAgICAgICAjIGFuZCBhbiBp bnRlZ2VyIGZvciBzZWxmLl9kZW5vbWluYXRvci4gSG93ZXZlciwgdGhpcyB3b3VsZAorICAgICAg ICAgIyBnZW5lcmF0ZSB0aGluZ3Mgd2l0aCBhIGZhaXJseSBmaXhlZCBzaGFwZTogaW4gcGFydGlj dWxhciwKKyAgICAgICAgICMgd2UnZCBiZSB2ZXJ5IHVubGlrZWx5IHRvIGdldCBlbGVtZW50cyBs aWtlIDEvMyphXjMgKyAxLzcsCisgICAgICAgICAjIG9yIGFueXRoaW5nIHdoZXJlIHRoZSBkZW5v bWluYXRvcnMgYXJlIGFjdHVhbGx5IHVucmVsYXRlZAorQEAgLTk2NSwxOSArOTY1LDE5IEBAIGNk ZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51bWJlckZpZWxkRWxlbWVudF9iYXNlKToKKyAK KyAgICAgICAgICAgICAjIHNldCB0aGUgZGVub21pbmF0b3IKKyAgICAgICAgICAgICBtcHpfc2V0 X3NpKGRlbm9tX3RlbXAudmFsdWUsIDEpCistICAgICAgICAgICAgbXB6X3RvX1paKCZzZWxmLl9f ZGVub21pbmF0b3IsICg8SW50ZWdlcj5kZW5vbV90ZW1wKS52YWx1ZSkKKy0gICAgICAgICAgICBm b3IgaSBmcm9tIDAgPD0gaSA8IFpaWF9kZWcoc2VsZi5fX2ZsZF9udW1lcmF0b3IueCk6CisrICAg ICAgICAgICAgbXB6X3RvX1paKCZzZWxmLl9kZW5vbWluYXRvciwgKDxJbnRlZ2VyPmRlbm9tX3Rl bXApLnZhbHVlKQorKyAgICAgICAgICAgIGZvciBpIGZyb20gMCA8PSBpIDwgWlpYX2RlZyhzZWxm Ll9mbGRfbnVtZXJhdG9yLngpOgorICAgICAgICAgICAgICAgICB0bXBfaW50ZWdlciA9IDxJbnRl Z2VyPihaWi5yYW5kb21fZWxlbWVudCh4PW51bV9ib3VuZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0cmlidXRpb249ZGlzdHJpYnV0aW9u KSkKKyAgICAgICAgICAgICAgICAgbXB6X3RvX1paKCZudGxfdGVtcCwgKDxJbnRlZ2VyPnRtcF9p bnRlZ2VyKS52YWx1ZSkKKy0gICAgICAgICAgICAgICAgWlpYX1NldENvZWZmKHNlbGYuX19udW1l cmF0b3IsIGksIG50bF90ZW1wKQorKyAgICAgICAgICAgICAgICBaWlhfU2V0Q29lZmYoc2VsZi5f bnVtZXJhdG9yLCBpLCBudGxfdGVtcCkKKyAKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg Y29lZmZfbGlzdCA9IFtdCisgICAgICAgICAgICAgbXB6X3NldF9zaShkZW5vbV90ZW1wLnZhbHVl LCAxKQorICAgICAgICAgICAgIHRtcF9pbnRlZ2VyID0gSW50ZWdlci5fX25ld19fKEludGVnZXIp CisgCistICAgICAgICAgICAgZm9yIGkgZnJvbSAwIDw9IGkgPCBaWlhfZGVnKHNlbGYuX19mbGRf bnVtZXJhdG9yLngpOgorKyAgICAgICAgICAgIGZvciBpIGZyb20gMCA8PSBpIDwgWlpYX2RlZyhz ZWxmLl9mbGRfbnVtZXJhdG9yLngpOgorICAgICAgICAgICAgICAgICB0bXBfcmF0aW9uYWwgPSA8 UmF0aW9uYWw+KFFRLnJhbmRvbV9lbGVtZW50KG51bV9ib3VuZD1udW1fYm91bmQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVu X2JvdW5kPWRlbl9ib3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkaXN0cmlidXRpb249ZGlzdHJpYnV0aW9uKSkKK0BAIC05 ODksMTAgKzk4OSwxMCBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVs ZEVsZW1lbnRfYmFzZSk6CisgICAgICAgICAgICAgIyBzY2FsZSB0aGUgbnVtZXJhdG9ycyBhbmQg c2V0IGV2ZXJ5dGhpbmcgYXBwcm9wcmlhdGVseQorIAorICAgICAgICAgICAgICMgZmlyc3QsIHRo ZSBkZW5vbWluYXRvciAoZWFzeSkKKy0gICAgICAgICAgICBtcHpfdG9fWlooJnNlbGYuX19kZW5v bWluYXRvciwgKDxJbnRlZ2VyPmRlbm9tX3RlbXApLnZhbHVlKQorKyAgICAgICAgICAgIG1wel90 b19aWigmc2VsZi5fZGVub21pbmF0b3IsICg8SW50ZWdlcj5kZW5vbV90ZW1wKS52YWx1ZSkKKyAK KyAgICAgICAgICAgICAjIG5vdyB0aGUgY29lZmZpY2llbnRzIHRoZW1zZWx2ZXMuCistICAgICAg ICAgICAgZm9yIGkgZnJvbSAwIDw9IGkgPCBaWlhfZGVnKHNlbGYuX19mbGRfbnVtZXJhdG9yLngp OgorKyAgICAgICAgICAgIGZvciBpIGZyb20gMCA8PSBpIDwgWlpYX2RlZyhzZWxmLl9mbGRfbnVt ZXJhdG9yLngpOgorICAgICAgICAgICAgICAgICAjIGNhbGN1bGF0ZSB0aGUgbmV3IG51bWVyYXRv ci4gaWYgb3VyIG9sZCBlbnRyeSBpcworICAgICAgICAgICAgICAgICAjIHAvcSwgYW5kIHRoZSBs Y20gaXMgaywgaXQncyBqdXN0IHBrL3EsIHdoaWNoIHdlCisgICAgICAgICAgICAgICAgICMgYWxz byBrbm93IGlzIGludGVncmFsIC0tIHNvIHdlIGNhbiB1c2UgbXB6X2RpdmV4YWN0CitAQCAtMTAw Niw3ICsxMDA2LDcgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRF bGVtZW50X2Jhc2UpOgorICAgICAgICAgICAgICAgICAjIG5vdyBzZXQgdGhlIGNvZWZmaWNpZW50 IG9mIHNlbGYKKyAgICAgICAgICAgICAgICAgbXB6X3RvX1paKCZudGxfdGVtcCwgKDxJbnRlZ2Vy PnRtcF9pbnRlZ2VyKS52YWx1ZSkKKyAKKy0gICAgICAgICAgICAgICAgWlpYX1NldENvZWZmKHNl bGYuX19udW1lcmF0b3IsIGksIG50bF90ZW1wKQorKyAgICAgICAgICAgICAgICBaWlhfU2V0Q29l ZmYoc2VsZi5fbnVtZXJhdG9yLCBpLCBudGxfdGVtcCkKKyAKKyAgICAgICAgIHJldHVybiAwICAj IE5vIGVycm9yCisgCitAQCAtMTA4OSwxMCArMTA4OSwxMCBAQCBjZGVmIGNsYXNzIE51bWJlckZp ZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAgICAgICAgICAgc2FnZTog TC56ZXJvKCkuc2lnbigpCisgICAgICAgICAgICAgMAorICAgICAgICAgIiIiCistICAgICAgICBp ZiBaWlhfZGVnKHNlbGYuX19udW1lcmF0b3IpID09IC0xOgorKyAgICAgICAgaWYgWlpYX2RlZyhz ZWxmLl9udW1lcmF0b3IpID09IC0xOgorICAgICAgICAgICAgIHJldHVybiAwCistICAgICAgICBp ZiBaWlhfZGVnKHNlbGYuX19udW1lcmF0b3IpID09IDA6CistICAgICAgICAgICAgcmV0dXJuIFpa X3NpZ24oWlpYX2NvZWZmKHNlbGYuX19udW1lcmF0b3IsIDApKQorKyAgICAgICAgaWYgWlpYX2Rl ZyhzZWxmLl9udW1lcmF0b3IpID09IDA6CisrICAgICAgICAgICAgcmV0dXJuIFpaX3NpZ24oWlpY X2NvZWZmKHNlbGYuX251bWVyYXRvciwgMCkpCisgCisgICAgICAgICBpZiBub3QgKDxudW1iZXJf ZmllbGRfYmFzZS5OdW1iZXJGaWVsZD4gc2VsZi5fcGFyZW50KS5fZW1iZWRkZWRfcmVhbDoKKyAg ICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoInNpZ24gbm90IHdlbGwgZGVmaW5lZCBzaW5jZSBu byByZWFsIGVtYmVkZGluZyBpcyBzcGVjaWZpZWQiKQorQEAgLTExNTMsMTIgKzExNTMsMTIgQEAg Y2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgor ICAgICAgICAgY2RlZiBSZWFsSW50ZXJ2YWxGaWVsZEVsZW1lbnQgdgorIAorIAorLSAgICAgICAg aWYgWlpYX2RlZyhzZWxmLl9fbnVtZXJhdG9yKSA8PSAwOgorKyAgICAgICAgaWYgWlpYX2RlZyhz ZWxmLl9udW1lcmF0b3IpIDw9IDA6CisgICAgICAgICAgICAgbXB6X2luaXQobnVtKQorICAgICAg ICAgICAgIG1wel9pbml0KGRlbikKKyAKKy0gICAgICAgICAgICBaWlhfZ2V0aXRlbV9hc19tcHoo bnVtLCAmc2VsZi5fX251bWVyYXRvciwgMCkKKy0gICAgICAgICAgICBaWl90b19tcHooZGVuLCAm c2VsZi5fX2Rlbm9taW5hdG9yKQorKyAgICAgICAgICAgIFpaWF9nZXRpdGVtX2FzX21weihudW0s ICZzZWxmLl9udW1lcmF0b3IsIDApCisrICAgICAgICAgICAgWlpfdG9fbXB6KGRlbiwgJnNlbGYu X2Rlbm9taW5hdG9yKQorIAorICAgICAgICAgICAgIGFucyA9IFBZX05FVyhJbnRlZ2VyKQorICAg ICAgICAgICAgIG1wel9mZGl2X3EoYW5zLnZhbHVlLCBudW0sIGRlbikKK0BAIC0xMTgzLDkgKzEx ODMsOSBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRf YmFzZSk6CisgICAgICAgICBtcHpfaW5pdChkZW4pCisgICAgICAgICBtcGZpX2luaXQyKGEsIG1w ZmlfZ2V0X3ByZWModi52YWx1ZSkpCisgCistICAgICAgICBaWl90b19tcHooZGVuLCAmc2VsZi5f X2Rlbm9taW5hdG9yKQorKyAgICAgICAgWlpfdG9fbXB6KGRlbiwgJnNlbGYuX2Rlbm9taW5hdG9y KQorIAorLSAgICAgICAgWlpYX2V2YWx1YXRpb25fbXBmaShhLCBzZWxmLl9fbnVtZXJhdG9yLCB2 LnZhbHVlKQorKyAgICAgICAgWlpYX2V2YWx1YXRpb25fbXBmaShhLCBzZWxmLl9udW1lcmF0b3Is IHYudmFsdWUpCisgICAgICAgICBtcGZpX2Rpdl96KGEsIGEsIGRlbikKKyAKKyAgICAgICAgIG1w ZnJfZmxvb3IoJmEubGVmdCwgJmEubGVmdCkKK0BAIC0xMTk3LDcgKzExOTcsNyBAQCBjZGVmIGNs YXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAgICAg ICAgICAgdiA9IDxSZWFsSW50ZXJ2YWxGaWVsZEVsZW1lbnQ+IFAuX2dldF9lbWJlZGRpbmdfYXBw cm94KGkpCisgCisgICAgICAgICAgICAgbXBmaV9zZXRfcHJlYyhhLCBtcGZpX2dldF9wcmVjKHYu dmFsdWUpKQorLSAgICAgICAgICAgIFpaWF9ldmFsdWF0aW9uX21wZmkoYSwgc2VsZi5fX251bWVy YXRvciwgdi52YWx1ZSkKKysgICAgICAgICAgICBaWlhfZXZhbHVhdGlvbl9tcGZpKGEsIHNlbGYu X251bWVyYXRvciwgdi52YWx1ZSkKKyAgICAgICAgICAgICBtcGZpX2Rpdl96KGEsIGEsIGRlbikK KyAgICAgICAgICAgICBtcGZyX2Zsb29yKCZhLmxlZnQgLCZhLmxlZnQpCisgICAgICAgICAgICAg bXBmcl9mbG9vcigmYS5yaWdodCwgJmEucmlnaHQpCitAQCAtMTI0OCw3ICsxMjQ4LDcgQEAgY2Rl ZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAg ICAgICAgICAgIC4uLgorICAgICAgICAgICAgIFR5cGVFcnJvcjogY2VpbCBub3QgdW5pcXVlbHkg ZGVmaW5lZCBzaW5jZSBubyByZWFsIGVtYmVkZGluZyBpcyBzcGVjaWZpZWQKKyAgICAgICAgICIi IgorLSAgICAgICAgaWYgWlpYX2RlZyhzZWxmLl9fbnVtZXJhdG9yKSA8PSAwOgorKyAgICAgICAg aWYgWlpYX2RlZyhzZWxmLl9udW1lcmF0b3IpIDw9IDA6CisgICAgICAgICAgICAgcmV0dXJuIHNl bGYuX3JhdGlvbmFsXygpLmNlaWwoKQorIAorICAgICAgICAgaWYgbm90ICg8bnVtYmVyX2ZpZWxk X2Jhc2UuTnVtYmVyRmllbGQ+IHNlbGYuX3BhcmVudCkuX2VtYmVkZGVkX3JlYWw6CitAQCAtMTMx MSw3ICsxMzExLDcgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRF bGVtZW50X2Jhc2UpOgorICAgICAgICAgICAgIC4uLgorICAgICAgICAgICAgIFR5cGVFcnJvcjog Zmxvb3Igbm90IHVuaXF1ZWx5IGRlZmluZWQgc2luY2Ugbm8gcmVhbCBlbWJlZGRpbmcgaXMgc3Bl Y2lmaWVkCisgICAgICAgICAiIiIKKy0gICAgICAgIGlmIFpaWF9kZWcoc2VsZi5fX251bWVyYXRv cikgPD0gMDoKKysgICAgICAgIGlmIFpaWF9kZWcoc2VsZi5fbnVtZXJhdG9yKSA8PSAwOgorICAg ICAgICAgICAgIHJldHVybiBzZWxmLl9yYXRpb25hbF8oKS5yb3VuZCgpCisgCisgICAgICAgICBy ZXR1cm4gKHNlbGYgKyBRUSgoMSwyKSkpLmZsb29yKCkKK0BAIC0yNDgzLDE3ICsyNDgzLDE3IEBA IGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51bWJlckZpZWxkRWxlbWVudF9iYXNlKToK KyAgICAgICAgIGNkZWYgWlpfYyBnY2QKKyAgICAgICAgIGNkZWYgWlpfYyB0MQorICAgICAgICAg Y2RlZiBaWlhfYyB0MgorLSAgICAgICAgaWYgWlpfSXNPbmUoc2VsZi5fX2Rlbm9taW5hdG9yKToK KysgICAgICAgIGlmIFpaX0lzT25lKHNlbGYuX2Rlbm9taW5hdG9yKToKKyAgICAgICAgICAgICBy ZXR1cm4KKy0gICAgICAgIFpaWF9jb250ZW50KHQxLCBzZWxmLl9fbnVtZXJhdG9yKQorLSAgICAg ICAgWlpfR0NEKGdjZCwgdDEsIHNlbGYuX19kZW5vbWluYXRvcikKKy0gICAgICAgIGlmIFpaX3Np Z24oZ2NkKSAhPSBaWl9zaWduKHNlbGYuX19kZW5vbWluYXRvcik6CisrICAgICAgICBaWlhfY29u dGVudCh0MSwgc2VsZi5fbnVtZXJhdG9yKQorKyAgICAgICAgWlpfR0NEKGdjZCwgdDEsIHNlbGYu X2Rlbm9taW5hdG9yKQorKyAgICAgICAgaWYgWlpfc2lnbihnY2QpICE9IFpaX3NpZ24oc2VsZi5f ZGVub21pbmF0b3IpOgorICAgICAgICAgICAgIFpaX25lZ2F0ZSh0MSwgZ2NkKQorICAgICAgICAg ICAgIGdjZCA9IHQxCistICAgICAgICBaWlhfZGl2X1paKHQyLCBzZWxmLl9fbnVtZXJhdG9yLCBn Y2QpCistICAgICAgICBaWl9kaXYodDEsIHNlbGYuX19kZW5vbWluYXRvciwgZ2NkKQorLSAgICAg ICAgc2VsZi5fX251bWVyYXRvciA9IHQyCistICAgICAgICBzZWxmLl9fZGVub21pbmF0b3IgPSB0 MQorKyAgICAgICAgWlpYX2Rpdl9aWih0Miwgc2VsZi5fbnVtZXJhdG9yLCBnY2QpCisrICAgICAg ICBaWl9kaXYodDEsIHNlbGYuX2Rlbm9taW5hdG9yLCBnY2QpCisrICAgICAgICBzZWxmLl9udW1l cmF0b3IgPSB0MgorKyAgICAgICAgc2VsZi5fZGVub21pbmF0b3IgPSB0MQorIAorICAgICBjcGRl ZiBfYWRkXyhzZWxmLCByaWdodCk6CisgICAgICAgICByIiIiCitAQCAtMjUwOSwxNSArMjUwOSwx NSBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFz ZSk6CisgICAgICAgICBjZGVmIE51bWJlckZpZWxkRWxlbWVudCBfcmlnaHQgPSByaWdodAorICAg ICAgICAgY2RlZiBaWl9jIGcsIHExLCBxMgorICAgICAgICAgeCA9IHNlbGYuX25ldygpCistICAg ICAgICBaWl9HQ0QoZywgc2VsZi5fX2Rlbm9taW5hdG9yLCBfcmlnaHQuX19kZW5vbWluYXRvcikK Ky0gICAgICAgIFpaX2RpdihxMSwgc2VsZi5fX2Rlbm9taW5hdG9yLCBnKQorLSAgICAgICAgWlpf ZGl2KHEyLCBfcmlnaHQuX19kZW5vbWluYXRvciwgZykKKy0gICAgICAgIFpaX211bCh4Ll9fZGVu b21pbmF0b3IsIHExLCBxMikKKy0gICAgICAgIFpaX211bCh4Ll9fZGVub21pbmF0b3IsIHguX19k ZW5vbWluYXRvciwgZykKKysgICAgICAgIFpaX0dDRChnLCBzZWxmLl9kZW5vbWluYXRvciwgX3Jp Z2h0Ll9kZW5vbWluYXRvcikKKysgICAgICAgIFpaX2RpdihxMSwgc2VsZi5fZGVub21pbmF0b3Is IGcpCisrICAgICAgICBaWl9kaXYocTIsIF9yaWdodC5fZGVub21pbmF0b3IsIGcpCisrICAgICAg ICBaWl9tdWwoeC5fZGVub21pbmF0b3IsIHExLCBxMikKKysgICAgICAgIFpaX211bCh4Ll9kZW5v bWluYXRvciwgeC5fZGVub21pbmF0b3IsIGcpCisgICAgICAgICBjZGVmIFpaWF9jIHQxLCB0Mgor LSAgICAgICAgWlpYX211bF9aWih0MSwgc2VsZi5fX251bWVyYXRvciwgcTIpCistICAgICAgICBa WlhfbXVsX1paKHQyLCBfcmlnaHQuX19udW1lcmF0b3IsIHExKQorLSAgICAgICAgWlpYX2FkZCh4 Ll9fbnVtZXJhdG9yLCB0MSwgdDIpCisrICAgICAgICBaWlhfbXVsX1paKHQxLCBzZWxmLl9udW1l cmF0b3IsIHEyKQorKyAgICAgICAgWlpYX211bF9aWih0MiwgX3JpZ2h0Ll9udW1lcmF0b3IsIHEx KQorKyAgICAgICAgWlpYX2FkZCh4Ll9udW1lcmF0b3IsIHQxLCB0MikKKyAgICAgICAgIHguX3Jl ZHVjZV9jXygpCisgICAgICAgICByZXR1cm4geAorIAorQEAgLTI1MzQsMTUgKzI1MzQsMTUgQEAg Y2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgor ICAgICAgICAgY2RlZiBOdW1iZXJGaWVsZEVsZW1lbnQgX3JpZ2h0ID0gcmlnaHQKKyAgICAgICAg IGNkZWYgWlpfYyBnLCBxMSwgcTIKKyAgICAgICAgIHggPSBzZWxmLl9uZXcoKQorLSAgICAgICAg WlpfR0NEKGcsIHNlbGYuX19kZW5vbWluYXRvciwgX3JpZ2h0Ll9fZGVub21pbmF0b3IpCistICAg ICAgICBaWl9kaXYocTEsIHNlbGYuX19kZW5vbWluYXRvciwgZykKKy0gICAgICAgIFpaX2Rpdihx MiwgX3JpZ2h0Ll9fZGVub21pbmF0b3IsIGcpCistICAgICAgICBaWl9tdWwoeC5fX2Rlbm9taW5h dG9yLCBxMSwgcTIpCistICAgICAgICBaWl9tdWwoeC5fX2Rlbm9taW5hdG9yLCB4Ll9fZGVub21p bmF0b3IsIGcpCisrICAgICAgICBaWl9HQ0QoZywgc2VsZi5fZGVub21pbmF0b3IsIF9yaWdodC5f ZGVub21pbmF0b3IpCisrICAgICAgICBaWl9kaXYocTEsIHNlbGYuX2Rlbm9taW5hdG9yLCBnKQor KyAgICAgICAgWlpfZGl2KHEyLCBfcmlnaHQuX2Rlbm9taW5hdG9yLCBnKQorKyAgICAgICAgWlpf bXVsKHguX2Rlbm9taW5hdG9yLCBxMSwgcTIpCisrICAgICAgICBaWl9tdWwoeC5fZGVub21pbmF0 b3IsIHguX2Rlbm9taW5hdG9yLCBnKQorICAgICAgICAgY2RlZiBaWlhfYyB0MSwgdDIKKy0gICAg ICAgIFpaWF9tdWxfWloodDEsIHNlbGYuX19udW1lcmF0b3IsIHEyKQorLSAgICAgICAgWlpYX211 bF9aWih0MiwgX3JpZ2h0Ll9fbnVtZXJhdG9yLCBxMSkKKy0gICAgICAgIFpaWF9zdWIoeC5fX251 bWVyYXRvciwgdDEsIHQyKQorKyAgICAgICAgWlpYX211bF9aWih0MSwgc2VsZi5fbnVtZXJhdG9y LCBxMikKKysgICAgICAgIFpaWF9tdWxfWloodDIsIF9yaWdodC5fbnVtZXJhdG9yLCBxMSkKKysg ICAgICAgIFpaWF9zdWIoeC5fbnVtZXJhdG9yLCB0MSwgdDIpCisgICAgICAgICB4Ll9yZWR1Y2Vf Y18oKQorICAgICAgICAgcmV0dXJuIHgKKyAKK0BAIC0yNTcxLDE4ICsyNTcxLDE4IEBAIGNkZWYg Y2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51bWJlckZpZWxkRWxlbWVudF9iYXNlKToKKyAgICAg ICAgIHNpZ19vbigpCisgICAgICAgICAjIE11bE1vZCBkb2Vzbid0IGhhbmRsZSBub24tbW9uaWMg cG9seW5vbWlhbHMuCisgICAgICAgICAjIFRoZXJlZm9yZSwgd2UgaGFuZGxlIHRoZSBub24tbW9u aWMgY2FzZSBlbnRpcmVseSBzZXBhcmF0ZWx5LgorLSAgICAgICAgWlpfbXVsKHguX19kZW5vbWlu YXRvciwgc2VsZi5fX2Rlbm9taW5hdG9yLCBfcmlnaHQuX19kZW5vbWluYXRvcikKKy0gICAgICAg IGlmIFpaX0lzT25lKFpaWF9MZWFkQ29lZmYoc2VsZi5fX2ZsZF9udW1lcmF0b3IueCkpOgorLSAg ICAgICAgICAgIFpaWF9NdWxNb2QoeC5fX251bWVyYXRvciwgc2VsZi5fX251bWVyYXRvciwgX3Jp Z2h0Ll9fbnVtZXJhdG9yLCBzZWxmLl9fZmxkX251bWVyYXRvci54KQorKyAgICAgICAgWlpfbXVs KHguX2Rlbm9taW5hdG9yLCBzZWxmLl9kZW5vbWluYXRvciwgX3JpZ2h0Ll9kZW5vbWluYXRvcikK KysgICAgICAgIGlmIFpaX0lzT25lKFpaWF9MZWFkQ29lZmYoc2VsZi5fZmxkX251bWVyYXRvci54 KSk6CisrICAgICAgICAgICAgWlpYX011bE1vZCh4Ll9udW1lcmF0b3IsIHNlbGYuX251bWVyYXRv ciwgX3JpZ2h0Ll9udW1lcmF0b3IsIHNlbGYuX2ZsZF9udW1lcmF0b3IueCkKKyAgICAgICAgIGVs c2U6CistICAgICAgICAgICAgWlpYX211bCh4Ll9fbnVtZXJhdG9yLCBzZWxmLl9fbnVtZXJhdG9y LCBfcmlnaHQuX19udW1lcmF0b3IpCistICAgICAgICAgICAgaWYgWlpYX2RlZyh4Ll9fbnVtZXJh dG9yKSA+PSBaWlhfZGVnKHNlbGYuX19mbGRfbnVtZXJhdG9yLngpOgorLSAgICAgICAgICAgICAg ICBaWlhfbXVsX1paKCB4Ll9fbnVtZXJhdG9yLCB4Ll9fbnVtZXJhdG9yLCBzZWxmLl9fZmxkX2Rl bm9taW5hdG9yLnggKQorLSAgICAgICAgICAgICAgICBaWlhfbXVsX1paKCB0ZW1wLCBzZWxmLl9f ZmxkX251bWVyYXRvci54LCB4Ll9fZGVub21pbmF0b3IgKQorLSAgICAgICAgICAgICAgICBaWl9w b3dlcih0ZW1wMSxaWlhfTGVhZENvZWZmKHRlbXApLFpaWF9kZWcoeC5fX251bWVyYXRvciktWlpY X2RlZyhzZWxmLl9fZmxkX251bWVyYXRvci54KSsxKQorLSAgICAgICAgICAgICAgICBaWlhfUHNl dWRvUmVtKHguX19udW1lcmF0b3IsIHguX19udW1lcmF0b3IsIHRlbXApCistICAgICAgICAgICAg ICAgIFpaX211bCh4Ll9fZGVub21pbmF0b3IsIHguX19kZW5vbWluYXRvciwgc2VsZi5fX2ZsZF9k ZW5vbWluYXRvci54KQorLSAgICAgICAgICAgICAgICBaWl9tdWwoeC5fX2Rlbm9taW5hdG9yLCB4 Ll9fZGVub21pbmF0b3IsIHRlbXAxKQorKyAgICAgICAgICAgIFpaWF9tdWwoeC5fbnVtZXJhdG9y LCBzZWxmLl9udW1lcmF0b3IsIF9yaWdodC5fbnVtZXJhdG9yKQorKyAgICAgICAgICAgIGlmIFpa WF9kZWcoeC5fbnVtZXJhdG9yKSA+PSBaWlhfZGVnKHNlbGYuX2ZsZF9udW1lcmF0b3IueCk6Cisr ICAgICAgICAgICAgICAgIFpaWF9tdWxfWlooIHguX251bWVyYXRvciwgeC5fbnVtZXJhdG9yLCBz ZWxmLl9mbGRfZGVub21pbmF0b3IueCApCisrICAgICAgICAgICAgICAgIFpaWF9tdWxfWlooIHRl bXAsIHNlbGYuX2ZsZF9udW1lcmF0b3IueCwgeC5fZGVub21pbmF0b3IgKQorKyAgICAgICAgICAg ICAgICBaWl9wb3dlcih0ZW1wMSxaWlhfTGVhZENvZWZmKHRlbXApLFpaWF9kZWcoeC5fbnVtZXJh dG9yKS1aWlhfZGVnKHNlbGYuX2ZsZF9udW1lcmF0b3IueCkrMSkKKysgICAgICAgICAgICAgICAg WlpYX1BzZXVkb1JlbSh4Ll9udW1lcmF0b3IsIHguX251bWVyYXRvciwgdGVtcCkKKysgICAgICAg ICAgICAgICAgWlpfbXVsKHguX2Rlbm9taW5hdG9yLCB4Ll9kZW5vbWluYXRvciwgc2VsZi5fZmxk X2Rlbm9taW5hdG9yLngpCisrICAgICAgICAgICAgICAgIFpaX211bCh4Ll9kZW5vbWluYXRvciwg eC5fZGVub21pbmF0b3IsIHRlbXAxKQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICB4Ll9y ZWR1Y2VfY18oKQorICAgICAgICAgcmV0dXJuIHgKK0BAIC0yNzA0LDcgKzI3MDQsNyBAQCBjZGVm IGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAg ICAgICAgICAgc2FnZTogYm9vbChiICsgMSkKKyAgICAgICAgICAgICBUcnVlCisgICAgICAgICAi IiIKKy0gICAgICAgIHJldHVybiBub3QgSXNaZXJvX1paWChzZWxmLl9fbnVtZXJhdG9yKQorKyAg ICAgICAgcmV0dXJuIG5vdCBJc1plcm9fWlpYKHNlbGYuX251bWVyYXRvcikKKyAKKyAgICAgY3Bk ZWYgX25lZ18oc2VsZik6CisgICAgICAgICByIiIiCitAQCAtMjcxNyw4ICsyNzE3LDggQEAgY2Rl ZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAg ICAgICAgIiIiCisgICAgICAgICBjZGVmIE51bWJlckZpZWxkRWxlbWVudCB4CisgICAgICAgICB4 ID0gc2VsZi5fbmV3KCkKKy0gICAgICAgIFpaWF9tdWxfbG9uZyh4Ll9fbnVtZXJhdG9yLCBzZWxm Ll9fbnVtZXJhdG9yLCAtMSkKKy0gICAgICAgIHguX19kZW5vbWluYXRvciA9IHNlbGYuX19kZW5v bWluYXRvcgorKyAgICAgICAgWlpYX211bF9sb25nKHguX251bWVyYXRvciwgc2VsZi5fbnVtZXJh dG9yLCAtMSkKKysgICAgICAgIHguX2Rlbm9taW5hdG9yID0gc2VsZi5fZGVub21pbmF0b3IKKyAg ICAgICAgIHJldHVybiB4CisgCisgICAgIGNwZGVmIF9jb3B5X2Zvcl9wYXJlbnQoc2VsZiwgUGFy ZW50IHBhcmVudCk6CitAQCAtMjczOCw4ICsyNzM4LDggQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVs ZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAgIiIiCisgICAgICAg ICBjZGVmIE51bWJlckZpZWxkRWxlbWVudCB4CisgICAgICAgICB4ID0gc2VsZi5fbmV3KCkKKy0g ICAgICAgIHguX19udW1lcmF0b3IgPSBzZWxmLl9fbnVtZXJhdG9yCistICAgICAgICB4Ll9fZGVu b21pbmF0b3IgPSBzZWxmLl9fZGVub21pbmF0b3IKKysgICAgICAgIHguX251bWVyYXRvciA9IHNl bGYuX251bWVyYXRvcgorKyAgICAgICAgeC5fZGVub21pbmF0b3IgPSBzZWxmLl9kZW5vbWluYXRv cgorICAgICAgICAgeC5fc2V0X3BhcmVudChwYXJlbnQpCisgICAgICAgICByZXR1cm4geAorIAor QEAgLTI4MjYsNyArMjgyNiw3IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51bWJl ckZpZWxkRWxlbWVudF9iYXNlKToKKyAgICAgICAgICAgICBzYWdlOiBMLjxhPiA9IEsuZXh0ZW5z aW9uKGYpCisgICAgICAgICAgICAgc2FnZTogYWxwaGEgPSAoYV44ICsgKHpldGEyMl45IC0gemV0 YTIyXjYgKyAyKnpldGEyMl40ICsgMzMpKmFeNykvKDEwKioyNTU1KSAjbG9uZyB0aW1lCisgICAg ICAgICAiIiIKKy0gICAgICAgIGlmIElzWmVyb19aWlgoc2VsZi5fX251bWVyYXRvcik6CisrICAg ICAgICBpZiBJc1plcm9fWlpYKHNlbGYuX251bWVyYXRvcik6CisgICAgICAgICAgICAgcmFpc2Ug WmVyb0RpdmlzaW9uRXJyb3IoIm51bWJlciBmaWVsZCBlbGVtZW50IGRpdmlzaW9uIGJ5IHplcm8i KQorICAgICAgICAgY2RlZiBOdW1iZXJGaWVsZEVsZW1lbnQgeAorICAgICAgICAgY2RlZiBaWlhf YyB0ZW1wCitAQCAtMjgzNSw4ICsyODM1LDggQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1l bnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAgICAgICMgYnV0IG1heSBmYWls IGlmIE5UTCBydW5zIG91dCBvZiBGRlQgcHJpbWVzLgorICAgICAgICAgICAgIHggPSBzZWxmLl9u ZXcoKQorICAgICAgICAgICAgIHNpZ19vbigpCistICAgICAgICAgICAgWlpYX1hHQ0QoeC5fX2Rl bm9taW5hdG9yLCB4Ll9fbnVtZXJhdG9yLCB0ZW1wLCBzZWxmLl9fbnVtZXJhdG9yLCBzZWxmLl9f ZmxkX251bWVyYXRvci54LCAxKQorLSAgICAgICAgICAgIFpaWF9tdWxfWlooeC5fX251bWVyYXRv ciwgeC5fX251bWVyYXRvciwgc2VsZi5fX2Rlbm9taW5hdG9yKQorKyAgICAgICAgICAgIFpaWF9Y R0NEKHguX2Rlbm9taW5hdG9yLCB4Ll9udW1lcmF0b3IsIHRlbXAsIHNlbGYuX251bWVyYXRvciwg c2VsZi5fZmxkX251bWVyYXRvci54LCAxKQorKyAgICAgICAgICAgIFpaWF9tdWxfWlooeC5fbnVt ZXJhdG9yLCB4Ll9udW1lcmF0b3IsIHNlbGYuX2Rlbm9taW5hdG9yKQorICAgICAgICAgICAgIHgu X3JlZHVjZV9jXygpCisgICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAgICBleGNlcHQgTlRM RXJyb3I6CitAQCAtMjg1OCw3ICsyODU4LDcgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1l bnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAgICAgIHNhZ2U6ICgyKkkqSSku X2ludGVnZXJfKCkKKyAgICAgICAgICAgICAtMgorICAgICAgICAgIiIiCistICAgICAgICBpZiBa WlhfZGVnKHNlbGYuX19udW1lcmF0b3IpID49IDE6CisrICAgICAgICBpZiBaWlhfZGVnKHNlbGYu X251bWVyYXRvcikgPj0gMToKKyAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIlVuYWJsZSB0 byBjb2VyY2UgJXMgdG8gYW4gaW50ZWdlciIgJSBzZWxmKQorICAgICAgICAgcmV0dXJuIFpaKHNl bGYuX3JhdGlvbmFsXygpKQorIAorQEAgLTI4NzcsMTIgKzI4NzcsMTIgQEAgY2RlZiBjbGFzcyBO dW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAgICAg IHNhZ2U6IChJKkkvMikuX3JhdGlvbmFsXygpCisgICAgICAgICAgICAgLTEvMgorICAgICAgICAg IiIiCistICAgICAgICBpZiBaWlhfZGVnKHNlbGYuX19udW1lcmF0b3IpID49IDE6CisrICAgICAg ICBpZiBaWlhfZGVnKHNlbGYuX251bWVyYXRvcikgPj0gMToKKyAgICAgICAgICAgICByYWlzZSBU eXBlRXJyb3IoIlVuYWJsZSB0byBjb2VyY2UgJXMgdG8gYSByYXRpb25hbCIlc2VsZikKKyAgICAg ICAgIGNkZWYgSW50ZWdlciBudW0gPSBJbnRlZ2VyLl9fbmV3X18oSW50ZWdlcikKKy0gICAgICAg IFpaWF9nZXRpdGVtX2FzX21weihudW0udmFsdWUsICZzZWxmLl9fbnVtZXJhdG9yLCAwKQorKyAg ICAgICAgWlpYX2dldGl0ZW1fYXNfbXB6KG51bS52YWx1ZSwgJnNlbGYuX251bWVyYXRvciwgMCkK KyAgICAgICAgIGNkZWYgSW50ZWdlciBkZW4gPSBJbnRlZ2VyLl9fbmV3X18oSW50ZWdlcikKKy0g ICAgICAgIFpaX3RvX21weihkZW4udmFsdWUsICZzZWxmLl9fZGVub21pbmF0b3IpCisrICAgICAg ICBaWl90b19tcHooZGVuLnZhbHVlLCAmc2VsZi5fZGVub21pbmF0b3IpCisgICAgICAgICByZXR1 cm4gbnVtIC8gZGVuCisgCisgICAgIGRlZiBfYWxnZWJyYWljXyhzZWxmLCBwYXJlbnQpOgorQEAg LTMyNjgsMTUgKzMyNjgsMTUgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVy RmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAgY2RlZiBtcHpfdCB6CisgCisgICAgICAgICBt cHpfaW5pdCh6KQorLSAgICAgICAgWlpYX2dldGl0ZW1fYXNfbXB6KHosICZzZWxmLl9fbnVtZXJh dG9yLCAwKQorKyAgICAgICAgWlpYX2dldGl0ZW1fYXNfbXB6KHosICZzZWxmLl9udW1lcmF0b3Is IDApCisgICAgICAgICBoID0gbXB6X3B5dGhvbmhhc2goeikKKyAKKy0gICAgICAgIGZvciBpIGZy b20gMSA8PSBpIDw9IFpaWF9kZWcoc2VsZi5fX251bWVyYXRvcik6CistICAgICAgICAgICAgWlpY X2dldGl0ZW1fYXNfbXB6KHosICZzZWxmLl9fbnVtZXJhdG9yLCBpKQorKyAgICAgICAgZm9yIGkg ZnJvbSAxIDw9IGkgPD0gWlpYX2RlZyhzZWxmLl9udW1lcmF0b3IpOgorKyAgICAgICAgICAgIFpa WF9nZXRpdGVtX2FzX21weih6LCAmc2VsZi5fbnVtZXJhdG9yLCBpKQorICAgICAgICAgICAgICMg bWFnaWMgbnVtYmVyIGJlbG93IGlzIGZsb29yKDJeNjMgLyAoMitzcXJ0KDIpKSkKKyAgICAgICAg ICAgICBoIF49IG1wel9weXRob25oYXNoKHopICsgKDxQeV9oYXNoX3Q+IDI3MDE0NjMxMjQxODgz ODQ3MDEpICsgKGggPDwgMTYpICsgKGggPj4gMikKKyAKKy0gICAgICAgIFpaX3RvX21weih6LCAm c2VsZi5fX2Rlbm9taW5hdG9yKQorKyAgICAgICAgWlpfdG9fbXB6KHosICZzZWxmLl9kZW5vbWlu YXRvcikKKyAgICAgICAgICMgbWFnaWMgbnVtYmVyIGJlbG93IGlzIGZsb29yKCgxK3NxcnQoNSkp ICogMl42MSkKKyAgICAgICAgIGggKz0gKG1wel9weXRob25oYXNoKHopIC0gMSkgKiAoPFB5X2hh c2hfdD4gNzQ2MTg2NDcyMzI1ODE4NzUyNSkKKyAKK0BAIC0zMzA1LDEyICszMzA1LDEyIEBAIGNk ZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51bWJlckZpZWxkRWxlbWVudF9iYXNlKToKKyAg ICAgICAgIGNkZWYgaW50IGkKKyAgICAgICAgIGNkZWYgbXB6X3QgZGVuCisgICAgICAgICBtcHpf aW5pdChkZW4pCistICAgICAgICBaWl90b19tcHooZGVuLCAmc2VsZi5fX2Rlbm9taW5hdG9yKQor LSAgICAgICAgY2RlZiBpbnQgc2l6ZSA9IFpaWF9kZWcoc2VsZi5fX251bWVyYXRvcikgKyAxCisr ICAgICAgICBaWl90b19tcHooZGVuLCAmc2VsZi5fZGVub21pbmF0b3IpCisrICAgICAgICBjZGVm IGludCBzaXplID0gWlpYX2RlZyhzZWxmLl9udW1lcmF0b3IpICsgMQorICAgICAgICAgY2RlZiBs aXN0IGNvZWZmcyA9IFtOb25lXSpzaXplCisgICAgICAgICBmb3IgaSBpbiByYW5nZShzaXplKToK KyAgICAgICAgICAgICBjb2VmZiA9IFJhdGlvbmFsLl9fbmV3X18oUmF0aW9uYWwpCistICAgICAg ICAgICAgWlpYX2dldGl0ZW1fYXNfbXB6KG1wcV9udW1yZWYoY29lZmYudmFsdWUpLCAmc2VsZi5f X251bWVyYXRvciwgaSkKKysgICAgICAgICAgICBaWlhfZ2V0aXRlbV9hc19tcHoobXBxX251bXJl Zihjb2VmZi52YWx1ZSksICZzZWxmLl9udW1lcmF0b3IsIGkpCisgICAgICAgICAgICAgbXB6X3Nl dChtcHFfZGVucmVmKGNvZWZmLnZhbHVlKSwgZGVuKQorICAgICAgICAgICAgIG1wcV9jYW5vbmlj YWxpemUoY29lZmYudmFsdWUpCisgICAgICAgICAgICAgY29lZmZzW2ldID0gY29lZmYKK0BAIC0z MzE4LDE0ICszMzE4LDE0IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51bWJlckZp ZWxkRWxlbWVudF9iYXNlKToKKyAgICAgICAgIHJldHVybiBjb2VmZnMKKyAKKyAgICAgY2RlZiB2 b2lkIF9udGxfY29lZmZfYXNfbXB6KHNlbGYsIG1wel90IHosIGxvbmcgaSk6CistICAgICAgICBp ZiBpID4gWlpYX2RlZyhzZWxmLl9fbnVtZXJhdG9yKToKKysgICAgICAgIGlmIGkgPiBaWlhfZGVn KHNlbGYuX251bWVyYXRvcik6CisgICAgICAgICAgICAgbXB6X3NldF91aSh6LCAwKQorICAgICAg ICAgZWxzZToKKy0gICAgICAgICAgICBaWlhfZ2V0aXRlbV9hc19tcHooeiwgJnNlbGYuX19udW1l cmF0b3IsIGkpCisrICAgICAgICAgICAgWlpYX2dldGl0ZW1fYXNfbXB6KHosICZzZWxmLl9udW1l cmF0b3IsIGkpCisgCisgICAgIGNkZWYgdm9pZCBfbnRsX2Rlbm9tX2FzX21weihzZWxmLCBtcHpf dCB6KToKKyAgICAgICAgIGNkZWYgSW50ZWdlciBkZW5vbSA9IEludGVnZXIuX19uZXdfXyhJbnRl Z2VyKQorLSAgICAgICAgWlpfdG9fbXB6KGRlbm9tLnZhbHVlLCAmc2VsZi5fX2Rlbm9taW5hdG9y KQorKyAgICAgICAgWlpfdG9fbXB6KGRlbm9tLnZhbHVlLCAmc2VsZi5fZGVub21pbmF0b3IpCisg ICAgICAgICBtcHpfc2V0KHosIGRlbm9tLnZhbHVlKQorIAorICAgICBkZWYgZGVub21pbmF0b3Io c2VsZik6CitAQCAtMzM0NCw3ICszMzQ0LDcgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1l bnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAgICAgIDE1CisgICAgICAgICAi IiIKKyAgICAgICAgIGNkZWYgSW50ZWdlciBhbnMgPSBJbnRlZ2VyLl9fbmV3X18oSW50ZWdlcikK Ky0gICAgICAgIFpaX3RvX21weihhbnMudmFsdWUsICZzZWxmLl9fZGVub21pbmF0b3IpCisrICAg ICAgICBaWl90b19tcHooYW5zLnZhbHVlLCAmc2VsZi5fZGVub21pbmF0b3IpCisgICAgICAgICBy ZXR1cm4gYW5zCisgCisgICAgIGRlZiBfc2V0X211bHRpcGxpY2F0aXZlX29yZGVyKHNlbGYsIG4p OgorQEAgLTM0NzQsOCArMzQ3NCw4IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51 bWJlckZpZWxkRWxlbWVudF9iYXNlKToKKyAgICAgICAgICAgICBzYWdlOiBhLmlzX29uZSgpCisg ICAgICAgICAgICAgRmFsc2UKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIFpaWF9Jc09u ZShzZWxmLl9fbnVtZXJhdG9yKSA9PSAxIGFuZCBcCistICAgICAgICAgICAgICAgWlpfSXNPbmUo c2VsZi5fX2Rlbm9taW5hdG9yKSA9PSAxCisrICAgICAgICByZXR1cm4gWlpYX0lzT25lKHNlbGYu X251bWVyYXRvcikgPT0gMSBhbmQgXAorKyAgICAgICAgICAgICAgIFpaX0lzT25lKHNlbGYuX2Rl bm9taW5hdG9yKSA9PSAxCisgCisgICAgIGNwZGVmIGJpbnQgaXNfcmF0aW9uYWwoc2VsZik6Cisg ICAgICAgICByIiIiCitAQCAtMzUwMSw3ICszNTAxLDcgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVs ZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAgICAgIHNhZ2U6IEso MS8yKS5pc19yYXRpb25hbCgpCisgICAgICAgICAgICAgVHJ1ZQorICAgICAgICAgIiIiCistICAg ICAgICByZXR1cm4gWlpYX2RlZyhzZWxmLl9fbnVtZXJhdG9yKSA8PSAwCisrICAgICAgICByZXR1 cm4gWlpYX2RlZyhzZWxmLl9udW1lcmF0b3IpIDw9IDAKKyAKKyAgICAgZGVmIGlzX2ludGVnZXIo c2VsZik6CisgICAgICAgICByIiIiCitAQCAtMzUyNyw3ICszNTI3LDcgQEAgY2RlZiBjbGFzcyBO dW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAgICAg IHNhZ2U6IEsoMS8yKS5pc19pbnRlZ2VyKCkKKyAgICAgICAgICAgICBGYWxzZQorICAgICAgICAg IiIiCistICAgICAgICByZXR1cm4gWlpYX2RlZyhzZWxmLl9fbnVtZXJhdG9yKSA8PSAwIGFuZCBa Wl9Jc09uZShzZWxmLl9fZGVub21pbmF0b3IpID09IDEKKysgICAgICAgIHJldHVybiBaWlhfZGVn KHNlbGYuX251bWVyYXRvcikgPD0gMCBhbmQgWlpfSXNPbmUoc2VsZi5fZGVub21pbmF0b3IpID09 IDEKKyAKKyAgICAgZGVmIHRyYWNlKHNlbGYsIEs9Tm9uZSk6CisgICAgICAgICByIiIiCitAQCAt NTMyMiw4ICs1MzIyLDggQEAgY2RlZiBjbGFzcyBPcmRlckVsZW1lbnRfYWJzb2x1dGUoTnVtYmVy RmllbGRFbGVtZW50X2Fic29sdXRlKToKKyAgICAgICAgIGNkZWYgT3JkZXJFbGVtZW50X2Fic29s dXRlIHggPSA8T3JkZXJFbGVtZW50X2Fic29sdXRlPnQuX19uZXdfXyh0KQorICAgICAgICAgeC5f cGFyZW50ID0gc2VsZi5fcGFyZW50CisgICAgICAgICB4Ll9udW1iZXJfZmllbGQgPSBzZWxmLl9w YXJlbnQubnVtYmVyX2ZpZWxkKCkKKy0gICAgICAgIHguX19mbGRfbnVtZXJhdG9yID0gc2VsZi5f X2ZsZF9udW1lcmF0b3IKKy0gICAgICAgIHguX19mbGRfZGVub21pbmF0b3IgPSBzZWxmLl9fZmxk X2Rlbm9taW5hdG9yCisrICAgICAgICB4Ll9mbGRfbnVtZXJhdG9yID0gc2VsZi5fZmxkX251bWVy YXRvcgorKyAgICAgICAgeC5fZmxkX2Rlbm9taW5hdG9yID0gc2VsZi5fZmxkX2Rlbm9taW5hdG9y CisgICAgICAgICByZXR1cm4geAorIAorICAgICBjZGVmIG51bWJlcl9maWVsZChzZWxmKToKK0BA IC01NDQzLDggKzU0NDMsOCBAQCBjZGVmIGNsYXNzIE9yZGVyRWxlbWVudF9yZWxhdGl2ZShOdW1i ZXJGaWVsZEVsZW1lbnRfcmVsYXRpdmUpOgorICAgICAgICAgY2RlZiBPcmRlckVsZW1lbnRfcmVs YXRpdmUgeCA9IDxPcmRlckVsZW1lbnRfcmVsYXRpdmU+dC5fX25ld19fKHQpCisgICAgICAgICB4 Ll9wYXJlbnQgPSBzZWxmLl9wYXJlbnQKKyAgICAgICAgIHguX251bWJlcl9maWVsZCA9IHNlbGYu X3BhcmVudC5udW1iZXJfZmllbGQoKQorLSAgICAgICAgeC5fX2ZsZF9udW1lcmF0b3IgPSBzZWxm Ll9fZmxkX251bWVyYXRvcgorLSAgICAgICAgeC5fX2ZsZF9kZW5vbWluYXRvciA9IHNlbGYuX19m bGRfZGVub21pbmF0b3IKKysgICAgICAgIHguX2ZsZF9udW1lcmF0b3IgPSBzZWxmLl9mbGRfbnVt ZXJhdG9yCisrICAgICAgICB4Ll9mbGRfZGVub21pbmF0b3IgPSBzZWxmLl9mbGRfZGVub21pbmF0 b3IKKyAgICAgICAgIHJldHVybiB4CisgCisgICAgIGRlZiBfX2ludmVydF9fKHNlbGYpOgorZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL251bWJlcl9maWVsZC9udW1iZXJfZmllbGRfZWxlbWVu dF9xdWFkcmF0aWMucHl4IGIvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2ZpZWxkL251bWJlcl9maWVs ZF9lbGVtZW50X3F1YWRyYXRpYy5weXgKK2luZGV4IDA5OTJlN2NkNTI3Li5jMzJmNmFhZGQxMCAx MDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL251bWJlcl9maWVsZC9udW1iZXJfZmllbGRfZWxl bWVudF9xdWFkcmF0aWMucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9udW1iZXJfZmllbGQvbnVt YmVyX2ZpZWxkX2VsZW1lbnRfcXVhZHJhdGljLnB5eAorQEAgLTYxMCw4ICs2MTAsOCBAQCBjZGVm IGNsYXNzIE51bWJlckZpZWxkRWxlbWVudF9xdWFkcmF0aWMoTnVtYmVyRmllbGRFbGVtZW50X2Fi c29sdXRlKToKKyAgICAgICAgIG1wel9jbGVhcih0bXBfbXB6KQorIAorICAgICAgICAgeC5fcGFy ZW50ID0gPFBhcmVudFdpdGhCYXNlPm5ld19wYXJlbnQKKy0gICAgICAgIHguX19mbGRfbnVtZXJh dG9yLCB4Ll9fZmxkX2Rlbm9taW5hdG9yID0gbmV3X3BhcmVudC5wb2x5bm9taWFsX250bCgpCist ICAgICAgICB4Ll9fZGVub21pbmF0b3IgPSBlbHRfZGVuCisrICAgICAgICB4Ll9mbGRfbnVtZXJh dG9yLCB4Ll9mbGRfZGVub21pbmF0b3IgPSBuZXdfcGFyZW50LnBvbHlub21pYWxfbnRsKCkKKysg ICAgICAgIHguX2Rlbm9taW5hdG9yID0gZWx0X2RlbgorICAgICAgICAgY2RlZiBaWlhfYyByZXN1 bHQKKyAgICAgICAgIGNkZWYgWlpfYyB0bXAKKyAgICAgICAgIGNkZWYgaW50IGkKK0BAIC02MjEs NyArNjIxLDcgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnRfcXVhZHJhdGljKE51bWJl ckZpZWxkRWxlbWVudF9hYnNvbHV0ZSk6CisgICAgICAgICBmb3IgaSBmcm9tIDAgPD0gaSA8PSBa WlhfZGVnKGVsdF9udW0pOgorICAgICAgICAgICAgIHRtcCA9IFpaWF9jb2VmZihlbHRfbnVtLCBp KQorICAgICAgICAgICAgIFpaWF9TZXRDb2VmZihyZXN1bHQsIGkqcmVsLCB0bXApCistICAgICAg ICBaWlhfcmVtKHguX19udW1lcmF0b3IsIHJlc3VsdCwgX251bS54KQorKyAgICAgICAgWlpYX3Jl bSh4Ll9udW1lcmF0b3IsIHJlc3VsdCwgX251bS54KQorICAgICAgICAgKDxOdW1iZXJGaWVsZEVs ZW1lbnRfYWJzb2x1dGU+eCkuX3JlZHVjZV9jXygpCisgICAgICAgICByZXR1cm4geAorIAorQEAg LTE2NDMsNyArMTY0Myw3IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50X3F1YWRyYXRp YyhOdW1iZXJGaWVsZEVsZW1lbnRfYWJzb2x1dGUpOgorICAgICAgICAgcmV0dXJuIHJlcworIAor ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworLSMgV2UgbXVzdCBvdmVycmlkZSBldmVyeXRoaW5n IHRoYXQgbWFrZXMgdXNlcyBvZiBzZWxmLl9fbnVtZXJhdG9yL19fZGVub21pbmF0b3IKKysjIFdl IG11c3Qgb3ZlcnJpZGUgZXZlcnl0aGluZyB0aGF0IG1ha2VzIHVzZXMgb2Ygc2VsZi5fbnVtZXJh dG9yL19kZW5vbWluYXRvcgorICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIAorICAgICBkZWYg X19oYXNoX18oc2VsZik6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0NBX3Rl bXBsYXRlLnB4aSBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9DQV90ZW1wbGF0ZS5weGkKK2luZGV4 IGEwYTY2YzE5NjIxLi5kODIxYjVjMTU3NiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3Bh ZGljcy9DQV90ZW1wbGF0ZS5weGkKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9DQV90ZW1w bGF0ZS5weGkKK0BAIC0xNDYzLDcgKzE0NjMsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29lcmNpb25f Q0FfZnJhY19maWVsZChSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgIElGIENFTEVNRU5UX0lT X1BZX09CSkVDVDoKKyAgICAgICAgICAgICAjIFRoZSBiYXNlIHJpbmcgaXMgd3JvbmcsIHNvIHdl IGZpeCBpdC4KKyAgICAgICAgICAgICBLID0gYW5zLnVuaXQuYmFzZV9yaW5nKCkKKy0gICAgICAg ICAgICBhbnMudW5pdC5fX2NvZWZmcyA9IFtLKGMpIGZvciBjIGluIGFucy51bml0Ll9fY29lZmZz XQorKyAgICAgICAgICAgIGFucy51bml0Ll9jb2VmZnMgPSBbSyhjKSBmb3IgYyBpbiBhbnMudW5p dC5fY29lZmZzXQorICAgICAgICAgYW5zLl9ub3JtYWxpemUoKQorICAgICAgICAgcmV0dXJuIGFu cworIAorQEAgLTE1MTYsNyArMTUxNiw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb2VyY2lvbl9DQV9m cmFjX2ZpZWxkKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgICAgIElGIENFTEVNRU5UX0lT X1BZX09CSkVDVDoKKyAgICAgICAgICAgICAgICAgIyBUaGUgYmFzZSByaW5nIGlzIHdyb25nLCBz byB3ZSBmaXggaXQuCisgICAgICAgICAgICAgICAgIEsgPSBhbnMudW5pdC5iYXNlX3JpbmcoKQor LSAgICAgICAgICAgICAgICBhbnMudW5pdC5fX2NvZWZmcyA9IFtLKGMpIGZvciBjIGluIGFucy51 bml0Ll9fY29lZmZzXQorKyAgICAgICAgICAgICAgICBhbnMudW5pdC5fY29lZmZzID0gW0soYykg Zm9yIGMgaW4gYW5zLnVuaXQuX2NvZWZmc10KKyAgICAgICAgICAgICBwYXNzCisgICAgICAgICBy ZXR1cm4gYW5zCisgCitAQCAtMTY4Niw3ICsxNjg2LDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvbnZl cnRfQ0FfZnJhY19maWVsZChNb3JwaGlzbSk6CisgICAgICAgICAgICAgSUYgQ0VMRU1FTlRfSVNf UFlfT0JKRUNUOgorICAgICAgICAgICAgICAgICAjIFRoZSBiYXNlIHJpbmcgaXMgd3JvbmcsIHNv IHdlIGZpeCBpdC4KKyAgICAgICAgICAgICAgICAgUiA9IGFucy52YWx1ZS5iYXNlX3JpbmcoKQor LSAgICAgICAgICAgICAgICBhbnMudmFsdWUuX19jb2VmZnMgPSBbUihjKSBmb3IgYyBpbiBhbnMu dmFsdWUuX19jb2VmZnNdCisrICAgICAgICAgICAgICAgIGFucy52YWx1ZS5fY29lZmZzID0gW1Io YykgZm9yIGMgaW4gYW5zLnZhbHVlLl9jb2VmZnNdCisgICAgICAgICByZXR1cm4gYW5zCisgCisg ICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIF94LCBhcmdzPSgpLCBrd2Rz PXt9KToKK0BAIC0xNzQxLDcgKzE3NDEsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29udmVydF9DQV9m cmFjX2ZpZWxkKE1vcnBoaXNtKToKKyAgICAgICAgICAgICBJRiBDRUxFTUVOVF9JU19QWV9PQkpF Q1Q6CisgICAgICAgICAgICAgICAgICMgVGhlIGJhc2UgcmluZyBpcyB3cm9uZywgc28gd2UgZml4 IGl0LgorICAgICAgICAgICAgICAgICBSID0gYW5zLnZhbHVlLmJhc2VfcmluZygpCistICAgICAg ICAgICAgICAgIGFucy52YWx1ZS5fX2NvZWZmcyA9IFtSKGMpIGZvciBjIGluIGFucy52YWx1ZS5f X2NvZWZmc10KKysgICAgICAgICAgICAgICAgYW5zLnZhbHVlLl9jb2VmZnMgPSBbUihjKSBmb3Ig YyBpbiBhbnMudmFsdWUuX2NvZWZmc10KKyAgICAgICAgIHJldHVybiBhbnMKKyAKKyAgICAgY2Rl ZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9w YWRpY3MvQ1JfdGVtcGxhdGUucHhpIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0NSX3RlbXBsYXRl LnB4aQoraW5kZXggY2I1N2JiMmNiNDguLjg2M2M2MTI1ODdjIDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvcmluZ3MvcGFkaWNzL0NSX3RlbXBsYXRlLnB4aQorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFk aWNzL0NSX3RlbXBsYXRlLnB4aQorQEAgLTIxODQsNyArMjE4NCw3IEBAIGNkZWYgY2xhc3MgcEFk aWNDb2VyY2lvbl9DUl9mcmFjX2ZpZWxkKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgSUYg Q0VMRU1FTlRfSVNfUFlfT0JKRUNUOgorICAgICAgICAgICAgICMgVGhlIGJhc2UgcmluZyBpcyB3 cm9uZywgc28gd2UgZml4IGl0LgorICAgICAgICAgICAgIEsgPSBhbnMudW5pdC5iYXNlX3Jpbmco KQorLSAgICAgICAgICAgIGFucy51bml0Ll9fY29lZmZzID0gW0soYykgZm9yIGMgaW4gYW5zLnVu aXQuX19jb2VmZnNdCisrICAgICAgICAgICAgYW5zLnVuaXQuX2NvZWZmcyA9IFtLKGMpIGZvciBj IGluIGFucy51bml0Ll9jb2VmZnNdCisgICAgICAgICByZXR1cm4gYW5zCisgCisgICAgIGNwZGVm IEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIF94LCBhcmdzPSgpLCBrd2RzPXt9KToKK0BA IC0yMjQxLDcgKzIyNDEsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29lcmNpb25fQ1JfZnJhY19maWVs ZChSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgICAgICBJRiBDRUxFTUVOVF9JU19QWV9PQkpF Q1Q6CisgICAgICAgICAgICAgICAgICMgVGhlIGJhc2UgcmluZyBpcyB3cm9uZywgc28gd2UgZml4 IGl0LgorICAgICAgICAgICAgICAgICBLID0gYW5zLnVuaXQuYmFzZV9yaW5nKCkKKy0gICAgICAg ICAgICAgICAgYW5zLnVuaXQuX19jb2VmZnMgPSBbSyhjKSBmb3IgYyBpbiBhbnMudW5pdC5fX2Nv ZWZmc10KKysgICAgICAgICAgICAgICAgYW5zLnVuaXQuX2NvZWZmcyA9IFtLKGMpIGZvciBjIGlu IGFucy51bml0Ll9jb2VmZnNdCisgICAgICAgICByZXR1cm4gYW5zCisgCisgICAgIGRlZiBzZWN0 aW9uKHNlbGYpOgorQEAgLTI0MDQsNyArMjQwNCw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb252ZXJ0 X0NSX2ZyYWNfZmllbGQoTW9ycGhpc20pOgorICAgICAgICAgSUYgQ0VMRU1FTlRfSVNfUFlfT0JK RUNUOgorICAgICAgICAgICAgICMgVGhlIGJhc2UgcmluZyBpcyB3cm9uZywgc28gd2UgZml4IGl0 LgorICAgICAgICAgICAgIEsgPSBhbnMudW5pdC5iYXNlX3JpbmcoKQorLSAgICAgICAgICAgIGFu cy51bml0Ll9fY29lZmZzID0gW0soYykgZm9yIGMgaW4gYW5zLnVuaXQuX19jb2VmZnNdCisrICAg ICAgICAgICAgYW5zLnVuaXQuX2NvZWZmcyA9IFtLKGMpIGZvciBjIGluIGFucy51bml0Ll9jb2Vm ZnNdCisgICAgICAgICByZXR1cm4gYW5zCisgCisgICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0 aF9hcmdzKHNlbGYsIF94LCBhcmdzPSgpLCBrd2RzPXt9KToKK0BAIC0yNDYzLDcgKzI0NjMsNyBA QCBjZGVmIGNsYXNzIHBBZGljQ29udmVydF9DUl9mcmFjX2ZpZWxkKE1vcnBoaXNtKToKKyAgICAg ICAgICAgICBJRiBDRUxFTUVOVF9JU19QWV9PQkpFQ1Q6CisgICAgICAgICAgICAgICAgICMgVGhl IGJhc2UgcmluZyBpcyB3cm9uZywgc28gd2UgZml4IGl0LgorICAgICAgICAgICAgICAgICBLID0g YW5zLnVuaXQuYmFzZV9yaW5nKCkKKy0gICAgICAgICAgICAgICAgYW5zLnVuaXQuX19jb2VmZnMg PSBbSyhjKSBmb3IgYyBpbiBhbnMudW5pdC5fX2NvZWZmc10KKysgICAgICAgICAgICAgICAgYW5z LnVuaXQuX2NvZWZmcyA9IFtLKGMpIGZvciBjIGluIGFucy51bml0Ll9jb2VmZnNdCisgICAgICAg ICByZXR1cm4gYW5zCisgCisgICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZik6CitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0ZNX3RlbXBsYXRlLnB4aSBiL3NyYy9zYWdl L3JpbmdzL3BhZGljcy9GTV90ZW1wbGF0ZS5weGkKK2luZGV4IGVhN2Q0MDU1NjYwLi5mNDcyMDAw NzRlYSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9GTV90ZW1wbGF0ZS5weGkK KysrKyBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9GTV90ZW1wbGF0ZS5weGkKK0BAIC0xMjI3LDcg KzEyMjcsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29lcmNpb25fRk1fZnJhY19maWVsZChSaW5nSG9t b21vcnBoaXNtKToKKyAgICAgICAgIElGIENFTEVNRU5UX0lTX1BZX09CSkVDVDoKKyAgICAgICAg ICAgICAjIFRoZSBiYXNlIHJpbmcgaXMgd3JvbmcsIHNvIHdlIGZpeCBpdC4KKyAgICAgICAgICAg ICBLID0gYW5zLnVuaXQuYmFzZV9yaW5nKCkKKy0gICAgICAgICAgICBhbnMudW5pdC5fX2NvZWZm cyA9IFtLKGMpIGZvciBjIGluIGFucy51bml0Ll9fY29lZmZzXQorKyAgICAgICAgICAgIGFucy51 bml0Ll9jb2VmZnMgPSBbSyhjKSBmb3IgYyBpbiBhbnMudW5pdC5fY29lZmZzXQorICAgICAgICAg cmV0dXJuIGFucworIAorICAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCBf eCwgYXJncz0oKSwga3dkcz17fSk6CitAQCAtMTI3Nyw3ICsxMjc3LDcgQEAgY2RlZiBjbGFzcyBw QWRpY0NvZXJjaW9uX0ZNX2ZyYWNfZmllbGQoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICBJ RiBDRUxFTUVOVF9JU19QWV9PQkpFQ1Q6CisgICAgICAgICAgICAgIyBUaGUgYmFzZSByaW5nIGlz IHdyb25nLCBzbyB3ZSBmaXggaXQuCisgICAgICAgICAgICAgSyA9IGFucy51bml0LmJhc2Vfcmlu ZygpCistICAgICAgICAgICAgYW5zLnVuaXQuX19jb2VmZnMgPSBbSyhjKSBmb3IgYyBpbiBhbnMu dW5pdC5fX2NvZWZmc10KKysgICAgICAgICAgICBhbnMudW5pdC5fY29lZmZzID0gW0soYykgZm9y IGMgaW4gYW5zLnVuaXQuX2NvZWZmc10KKyAgICAgICAgIHJldHVybiBhbnMKKyAKKyAgICAgZGVm IHNlY3Rpb24oc2VsZik6CitAQCAtMTQzNSw3ICsxNDM1LDcgQEAgY2RlZiBjbGFzcyBwQWRpY0Nv bnZlcnRfRk1fZnJhY19maWVsZChNb3JwaGlzbSk6CisgICAgICAgICBJRiBDRUxFTUVOVF9JU19Q WV9PQkpFQ1Q6CisgICAgICAgICAgICAgIyBUaGUgYmFzZSByaW5nIGlzIHdyb25nLCBzbyB3ZSBm aXggaXQuCisgICAgICAgICAgICAgUiA9IGFucy52YWx1ZS5iYXNlX3JpbmcoKQorLSAgICAgICAg ICAgIGFucy52YWx1ZS5fX2NvZWZmcyA9IFtSKGMpIGZvciBjIGluIGFucy52YWx1ZS5fX2NvZWZm c10KKysgICAgICAgICAgICBhbnMudmFsdWUuX2NvZWZmcyA9IFtSKGMpIGZvciBjIGluIGFucy52 YWx1ZS5fY29lZmZzXQorICAgICAgICAgcmV0dXJuIGFucworIAorICAgICBjcGRlZiBFbGVtZW50 IF9jYWxsX3dpdGhfYXJncyhzZWxmLCBfeCwgYXJncz0oKSwga3dkcz17fSk6CitAQCAtMTQ4Myw3 ICsxNDgzLDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvbnZlcnRfRk1fZnJhY19maWVsZChNb3JwaGlz bSk6CisgICAgICAgICBJRiBDRUxFTUVOVF9JU19QWV9PQkpFQ1Q6CisgICAgICAgICAgICAgIyBU aGUgYmFzZSByaW5nIGlzIHdyb25nLCBzbyB3ZSBmaXggaXQuCisgICAgICAgICAgICAgUiA9IGFu cy52YWx1ZS5iYXNlX3JpbmcoKQorLSAgICAgICAgICAgIGFucy52YWx1ZS5fX2NvZWZmcyA9IFtS KGMpIGZvciBjIGluIGFucy52YWx1ZS5fX2NvZWZmc10KKysgICAgICAgICAgICBhbnMudmFsdWUu X2NvZWZmcyA9IFtSKGMpIGZvciBjIGluIGFucy52YWx1ZS5fY29lZmZzXQorICAgICAgICAgcmV0 dXJuIGFucworIAorICAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpOgorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9GUF90ZW1wbGF0ZS5weGkgYi9zcmMvc2FnZS9yaW5n cy9wYWRpY3MvRlBfdGVtcGxhdGUucHhpCitpbmRleCA1N2VjNjE5YjI3OC4uYzcxOGMwYTVmOGQg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvRlBfdGVtcGxhdGUucHhpCisrKysg Yi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvRlBfdGVtcGxhdGUucHhpCitAQCAtMTg0OSw3ICsxODQ5 LDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvZXJjaW9uX0ZQX2ZyYWNfZmllbGQoUmluZ0hvbW9tb3Jw aGlzbSk6CisgICAgICAgICBJRiBDRUxFTUVOVF9JU19QWV9PQkpFQ1Q6CisgICAgICAgICAgICAg IyBUaGUgYmFzZSByaW5nIGlzIHdyb25nLCBzbyB3ZSBmaXggaXQuCisgICAgICAgICAgICAgSyA9 IGFucy51bml0LmJhc2VfcmluZygpCistICAgICAgICAgICAgYW5zLnVuaXQuX19jb2VmZnMgPSBb SyhjKSBmb3IgYyBpbiBhbnMudW5pdC5fX2NvZWZmc10KKysgICAgICAgICAgICBhbnMudW5pdC5f Y29lZmZzID0gW0soYykgZm9yIGMgaW4gYW5zLnVuaXQuX2NvZWZmc10KKyAgICAgICAgIHJldHVy biBhbnMKKyAKKyAgICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwgX3gsIGFy Z3M9KCksIGt3ZHM9e30pOgorQEAgLTE5MDMsNyArMTkwMyw3IEBAIGNkZWYgY2xhc3MgcEFkaWND b2VyY2lvbl9GUF9mcmFjX2ZpZWxkKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgICAgIElG IENFTEVNRU5UX0lTX1BZX09CSkVDVDoKKyAgICAgICAgICAgICAgICAgIyBUaGUgYmFzZSByaW5n IGlzIHdyb25nLCBzbyB3ZSBmaXggaXQuCisgICAgICAgICAgICAgICAgIEsgPSBhbnMudW5pdC5i YXNlX3JpbmcoKQorLSAgICAgICAgICAgICAgICBhbnMudW5pdC5fX2NvZWZmcyA9IFtLKGMpIGZv ciBjIGluIGFucy51bml0Ll9fY29lZmZzXQorKyAgICAgICAgICAgICAgICBhbnMudW5pdC5fY29l ZmZzID0gW0soYykgZm9yIGMgaW4gYW5zLnVuaXQuX2NvZWZmc10KKyAgICAgICAgIHJldHVybiBh bnMKKyAKKyAgICAgZGVmIHNlY3Rpb24oc2VsZik6CitAQCAtMjAyNSw3ICsyMDI1LDcgQEAgY2Rl ZiBjbGFzcyBwQWRpY0NvbnZlcnRfRlBfZnJhY19maWVsZChNb3JwaGlzbSk6CisgICAgICAgICBJ RiBDRUxFTUVOVF9JU19QWV9PQkpFQ1Q6CisgICAgICAgICAgICAgIyBUaGUgYmFzZSByaW5nIGlz IHdyb25nLCBzbyB3ZSBmaXggaXQuCisgICAgICAgICAgICAgSyA9IGFucy51bml0LmJhc2Vfcmlu ZygpCistICAgICAgICAgICAgYW5zLnVuaXQuX19jb2VmZnMgPSBbSyhjKSBmb3IgYyBpbiBhbnMu dW5pdC5fX2NvZWZmc10KKysgICAgICAgICAgICBhbnMudW5pdC5fY29lZmZzID0gW0soYykgZm9y IGMgaW4gYW5zLnVuaXQuX2NvZWZmc10KKyAgICAgICAgIHJldHVybiBhbnMKKyAKKyAgICAgY3Bk ZWYgRWxlbWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwgX3gsIGFyZ3M9KCksIGt3ZHM9e30pOgor QEAgLTIwODEsNyArMjA4MSw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb252ZXJ0X0ZQX2ZyYWNfZmll bGQoTW9ycGhpc20pOgorICAgICAgICAgICAgIElGIENFTEVNRU5UX0lTX1BZX09CSkVDVDoKKyAg ICAgICAgICAgICAgICAgIyBUaGUgYmFzZSByaW5nIGlzIHdyb25nLCBzbyB3ZSBmaXggaXQuCisg ICAgICAgICAgICAgICAgIEsgPSBhbnMudW5pdC5iYXNlX3JpbmcoKQorLSAgICAgICAgICAgICAg ICBhbnMudW5pdC5fX2NvZWZmcyA9IFtLKGMpIGZvciBjIGluIGFucy51bml0Ll9fY29lZmZzXQor KyAgICAgICAgICAgICAgICBhbnMudW5pdC5fY29lZmZzID0gW0soYykgZm9yIGMgaW4gYW5zLnVu aXQuX2NvZWZmc10KKyAgICAgICAgIHJldHVybiBhbnMKKyAKKyAgICAgY2RlZiBkaWN0IF9leHRy YV9zbG90cyhzZWxmKToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93X2Nv bXB1dGVyLnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wb3dfY29tcHV0ZXIucHhkCitpbmRl eCAyYTkzZTQyMjU0ZS4uODc2NjcyNTg4MmUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9w YWRpY3MvcG93X2NvbXB1dGVyLnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19j b21wdXRlci5weGQKK0BAIC02LDcgKzYsNyBAQCBjZGVmIGNsYXNzIFBvd0NvbXB1dGVyX2NsYXNz KFNhZ2VPYmplY3QpOgorICAgICBjZGVmIEludGVnZXIgcHJpbWUKKyAgICAgY2RlZiBJbnRlZ2Vy IHAyICMgZmxvb3IocC8yKQorICAgICBjZGVmIGJpbnQgaW5fZmllbGQKKy0gICAgY2RlZiBpbnQg X19hbGxvY2F0ZWQKKysgICAgY2RlZiBpbnQgX2FsbG9jYXRlZAorICAgICBjZGVmIHB1YmxpYyBv YmplY3QgX3ByZWNfdHlwZQorIAorICAgICBjZGVmIGxvbmcgcmFtX3ByZWNfY2FwICMgPSBwcmVj X2NhcCAqIGUKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1dGVy LnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wb3dfY29tcHV0ZXIucHl4CitpbmRleCBjMmZh ODAzMTA4Ni4uMWM1YmRmODY4OTcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3Mv cG93X2NvbXB1dGVyLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19jb21wdXRl ci5weXgKK0BAIC02NSw3ICs2NSw3IEBAIGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfY2xhc3MoU2Fn ZU9iamVjdCk6CisgICAgICAgICBzaWdfb24oKQorICAgICAgICAgbXB6X2luaXQoc2VsZi50ZW1w X20pCisgICAgICAgICBzaWdfb2ZmKCkKKy0gICAgICAgIHNlbGYuX19hbGxvY2F0ZWQgPSAxCisr ICAgICAgICBzZWxmLl9hbGxvY2F0ZWQgPSAxCisgCisgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBJ bnRlZ2VyIHByaW1lLCBsb25nIGNhY2hlX2xpbWl0LCBsb25nIHByZWNfY2FwLCBsb25nIHJhbV9w cmVjX2NhcCwgYmludCBpbl9maWVsZCwgcG9seT1Ob25lLCBzaGlmdF9zZWVkPU5vbmUpOgorICAg ICAgICAgIiIiCitAQCAtNDg1LDcgKzQ4NSw3IEBAIGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfYmFz ZShQb3dDb21wdXRlcl9jbGFzcyk6CisgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgIHNp Z19vZmYoKQorIAorLSAgICAgICAgc2VsZi5fX2FsbG9jYXRlZCA9IDIKKysgICAgICAgIHNlbGYu X2FsbG9jYXRlZCA9IDIKKyAKKyAgICAgZGVmIF9faW5pdF9fKHNlbGYsIEludGVnZXIgcHJpbWUs IGxvbmcgY2FjaGVfbGltaXQsIGxvbmcgcHJlY19jYXAsIGxvbmcgcmFtX3ByZWNfY2FwLCBiaW50 IGluX2ZpZWxkLCBwb2x5PU5vbmUsIHNoaWZ0X3NlZWQ9Tm9uZSk6CisgICAgICAgICAiIiIKK0BA IC01MjksNyArNTI5LDcgQEAgY2RlZiBjbGFzcyBQb3dDb21wdXRlcl9iYXNlKFBvd0NvbXB1dGVy X2NsYXNzKToKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBQeV9zc2l6ZV90IGkKKyAKKy0g ICAgICAgIGlmIHNlbGYuX19hbGxvY2F0ZWQgPj0gMjoKKysgICAgICAgIGlmIHNlbGYuX2FsbG9j YXRlZCA+PSAyOgorICAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKHNlbGYuY2FjaGVfbGltaXQg KyAxKToKKyAgICAgICAgICAgICAgICAgbXB6X2NsZWFyKHNlbGYuc21hbGxfcG93ZXJzW2ldKQor ICAgICAgICAgICAgIG1wel9jbGVhcihzZWxmLnRvcF9wb3dlcikKK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1dGVyX2ZsaW50LnB5eCBiL3NyYy9zYWdlL3Jpbmdz L3BhZGljcy9wb3dfY29tcHV0ZXJfZmxpbnQucHl4CitpbmRleCA5ZjkxNGRlZmNjNi4uZTUyMWVh NmUwNzggMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1dGVyX2Zs aW50LnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19jb21wdXRlcl9mbGludC5w eXgKK0BAIC01OSw3ICs1OSw3IEBAIGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfZmxpbnQoUG93Q29t cHV0ZXJfY2xhc3MpOgorICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICBzaWdfb2ZmKCkK KyAKKy0gICAgICAgIHNlbGYuX19hbGxvY2F0ZWQgPSA0CisrICAgICAgICBzZWxmLl9hbGxvY2F0 ZWQgPSA0CisgCisgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBJbnRlZ2VyIHByaW1lLCBsb25nIGNh Y2hlX2xpbWl0LCBsb25nIHByZWNfY2FwLCBsb25nIHJhbV9wcmVjX2NhcCwgYmludCBpbl9maWVs ZCwgcG9seT1Ob25lLCBzaGlmdF9zZWVkPU5vbmUpOgorICAgICAgICAgIiIiCitAQCAtODcsNyAr ODcsNyBAQCBjZGVmIGNsYXNzIFBvd0NvbXB1dGVyX2ZsaW50KFBvd0NvbXB1dGVyX2NsYXNzKToK KyAgICAgICAgICAgICBzYWdlOiBBID0gUG93Q29tcHV0ZXJfZmxpbnQoNSwgMjAsIDIwLCAyMCwg RmFsc2UpCisgICAgICAgICAgICAgc2FnZTogZGVsIEEKKyAgICAgICAgICIiIgorLSAgICAgICAg aWYgc2VsZi5fX2FsbG9jYXRlZCA+PSA0OgorKyAgICAgICAgaWYgc2VsZi5fYWxsb2NhdGVkID49 IDQ6CisgICAgICAgICAgICAgZm1wel9jbGVhcihzZWxmLmZwcmltZSkKKyAgICAgICAgICAgICBm bXB6X2NsZWFyKHNlbGYuaGFsZl9wcmltZSkKKyAgICAgICAgICAgICBmbXB6X2NsZWFyKHNlbGYu X2Zwb3dfdmFyaWFibGUpCitAQCAtMjA4LDcgKzIwOCw3IEBAIGNkZWYgY2xhc3MgUG93Q29tcHV0 ZXJfZmxpbnRfMXN0ZXAoUG93Q29tcHV0ZXJfZmxpbnQpOgorIAorICAgICAgICAgIiIiCisgICAg ICAgICBjZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludCBwb2x5ID0gX3BvbHkKKy0g ICAgICAgIGNkZWYgbG9uZyBsZW5ndGggPSBmbXB6X3BvbHlfbGVuZ3RoKHBvbHkuX19wb2x5KQor KyAgICAgICAgY2RlZiBsb25nIGxlbmd0aCA9IGZtcHpfcG9seV9sZW5ndGgocG9seS5fcG9seSkK KyAKKyAgICAgICAgIGNkZWYgUHlfc3NpemVfdCBpCisgCitAQCAtMjUxLDcgKzI1MSw3IEBAIGNk ZWYgY2xhc3MgUG93Q29tcHV0ZXJfZmxpbnRfMXN0ZXAoUG93Q29tcHV0ZXJfZmxpbnQpOgorICAg ICAgICAgZmluYWxseToKKyAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAKKy0gICAgICAgIHNlbGYu X19hbGxvY2F0ZWQgPSA4CisrICAgICAgICBzZWxmLl9hbGxvY2F0ZWQgPSA4CisgCisgICAgIGRl ZiBfX2luaXRfXyhzZWxmLCBJbnRlZ2VyIHByaW1lLCBsb25nIGNhY2hlX2xpbWl0LCBsb25nIHBy ZWNfY2FwLCBsb25nIHJhbV9wcmVjX2NhcCwgYmludCBpbl9maWVsZCwgX3BvbHksIHNoaWZ0X3Nl ZWQ9Tm9uZSk6CisgICAgICAgICAiIiIKK0BAIC0yNjgsMTAgKzI2OCwxMCBAQCBjZGVmIGNsYXNz IFBvd0NvbXB1dGVyX2ZsaW50XzFzdGVwKFBvd0NvbXB1dGVyX2ZsaW50KToKKyAgICAgICAgIFBv d0NvbXB1dGVyX2ZsaW50Ll9faW5pdF9fKHNlbGYsIHByaW1lLCBjYWNoZV9saW1pdCwgcHJlY19j YXAsIHJhbV9wcmVjX2NhcCwgaW5fZmllbGQsIF9wb2x5LCBzaGlmdF9zZWVkKQorIAorICAgICAg ICAgY2RlZiBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQgcG9seSA9IF9wb2x5CistICAg ICAgICBjZGVmIGxvbmcgbGVuZ3RoID0gZm1wel9wb2x5X2xlbmd0aChwb2x5Ll9fcG9seSkKKysg ICAgICAgIGNkZWYgbG9uZyBsZW5ndGggPSBmbXB6X3BvbHlfbGVuZ3RoKHBvbHkuX3BvbHkpCisg ICAgICAgICBzZWxmLmRlZyA9IGxlbmd0aCAtIDEKKyAKKy0gICAgICAgIGZtcHpfcG9seV9zZXQo c2VsZi5tb2R1bHVzLCBwb2x5Ll9fcG9seSkKKysgICAgICAgIGZtcHpfcG9seV9zZXQoc2VsZi5t b2R1bHVzLCBwb2x5Ll9wb2x5KQorIAorICAgICAgICAgY2RlZiBQeV9zc2l6ZV90IGkKKyAgICAg ICAgIGNkZWYgZm1weiogY29lZmZzID0gc2VsZi5tb2R1bHVzLmNvZWZmcworQEAgLTI5Niw3ICsy OTYsNyBAQCBjZGVmIGNsYXNzIFBvd0NvbXB1dGVyX2ZsaW50XzFzdGVwKFBvd0NvbXB1dGVyX2Zs aW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBQeV9zc2l6ZV90IGkKKyAKKy0gICAg ICAgIGlmIHNlbGYuX19hbGxvY2F0ZWQgPj0gODoKKysgICAgICAgIGlmIHNlbGYuX2FsbG9jYXRl ZCA+PSA4OgorICAgICAgICAgICAgIGZtcHpfY2xlYXIoc2VsZi5xKQorICAgICAgICAgICAgIGZt cHpfcG9seV9jbGVhcihzZWxmLm1vZHVsdXMpCisgICAgICAgICAgICAgZm1wel9wb2x5X2NsZWFy KHNlbGYucG93aGVscGVyX29uZXVuaXQpCitAQCAtNDI3LDkgKzQyNyw5IEBAIGNkZWYgY2xhc3Mg UG93Q29tcHV0ZXJfZmxpbnRfMXN0ZXAoUG93Q29tcHV0ZXJfZmxpbnQpOgorICAgICAgICAgeCA9 IFIuZ2VuKCkKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50IGFu cyA9ICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50Pz54KS5fbmV3KCkKKyAgICAgICAg IGlmIF9uIGlzIE5vbmU6CistICAgICAgICAgICAgZm1wel9wb2x5X3NldChhbnMuX19wb2x5LCBz ZWxmLm1vZHVsdXMpCisrICAgICAgICAgICAgZm1wel9wb2x5X3NldChhbnMuX3BvbHksIHNlbGYu bW9kdWx1cykKKyAgICAgICAgIGVsc2U6CistICAgICAgICAgICAgZm1wel9wb2x5X3NldChhbnMu X19wb2x5LCBzZWxmLmdldF9tb2R1bHVzKF9uKVswXSkKKysgICAgICAgICAgICBmbXB6X3BvbHlf c2V0KGFucy5fcG9seSwgc2VsZi5nZXRfbW9kdWx1cyhfbilbMF0pCisgICAgICAgICByZXR1cm4g YW5zCisgCisgICAgIGNkZWYgX25ld19mbXB6X3BvbHkoc2VsZiwgZm1wel9wb2x5X3QgdmFsdWUs IHZhcj0neCcpOgorQEAgLTQ0MCw3ICs0NDAsNyBAQCBjZGVmIGNsYXNzIFBvd0NvbXB1dGVyX2Zs aW50XzFzdGVwKFBvd0NvbXB1dGVyX2ZsaW50KToKKyAgICAgICAgIFIgPSBaWlt2YXJdCisgICAg ICAgICB4ID0gUi5nZW4oKQorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2Vf ZmxpbnQgYW5zID0gKDxQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQ/PngpLl9uZXcoKQor LSAgICAgICAgZm1wel9wb2x5X3NldChhbnMuX19wb2x5LCB2YWx1ZSkKKysgICAgICAgIGZtcHpf cG9seV9zZXQoYW5zLl9wb2x5LCB2YWx1ZSkKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKyBjZGVm IGNsYXNzIFBvd0NvbXB1dGVyX2ZsaW50X3VucmFtKFBvd0NvbXB1dGVyX2ZsaW50XzFzdGVwKToK K0BAIC01MDEsNyArNTAxLDcgQEAgY2RlZiBjbGFzcyBQb3dDb21wdXRlcl9mbGludF91bnJhbShQ b3dDb21wdXRlcl9mbGludF8xc3RlcCk6CisgICAgICAgICBtcHpfaW5pdChzZWxmLm1wel9tYXRt b2QpCisgICAgICAgICBzaWdfb2ZmKCkKKyAKKy0gICAgICAgIHNlbGYuX19hbGxvY2F0ZWQgPSAx NgorKyAgICAgICAgc2VsZi5fYWxsb2NhdGVkID0gMTYKKyAKKyAgICAgZGVmIF9fZGVhbGxvY19f KHNlbGYpOgorICAgICAgICAgIiIiCitAQCAtNTE1LDcgKzUxNSw3IEBAIGNkZWYgY2xhc3MgUG93 Q29tcHV0ZXJfZmxpbnRfdW5yYW0oUG93Q29tcHV0ZXJfZmxpbnRfMXN0ZXApOgorICAgICAgICAg ICAgIHNhZ2U6IGRlbCBBCisgCisgICAgICAgICAiIiIKKy0gICAgICAgIGlmIHNlbGYuX19hbGxv Y2F0ZWQgPj0gMTY6CisrICAgICAgICBpZiBzZWxmLl9hbGxvY2F0ZWQgPj0gMTY6CisgICAgICAg ICAgICAgZm1wel9jbGVhcihzZWxmLmZtcHpfY2NtcCkKKyAgICAgICAgICAgICBmbXB6X2NsZWFy KHNlbGYuZm1wel9jdmFsKQorICAgICAgICAgICAgIGZtcHpfY2xlYXIoc2VsZi5mbXB6X2NpbnYp CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19jb21wdXRlcl9yZWxhdGl2 ZS5weGQgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1dGVyX3JlbGF0aXZlLnB4ZAor aW5kZXggZmM3ZDViMjFmNDIuLmUwZTVhYTU2MDBlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvcmlu Z3MvcGFkaWNzL3Bvd19jb21wdXRlcl9yZWxhdGl2ZS5weGQKKysrKyBiL3NyYy9zYWdlL3Jpbmdz L3BhZGljcy9wb3dfY29tcHV0ZXJfcmVsYXRpdmUucHhkCitAQCAtMTgsNyArMTgsNyBAQCBjZGVm IGNsYXNzIFBvd0NvbXB1dGVyX3JlbGF0aXZlKFBvd0NvbXB1dGVyX2NsYXNzKToKKyAgICAgY2Rl ZiBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2Ugc2hpZnRfcmVtCisgICAgIGNkZWYgUG9seW5vbWlh bF9nZW5lcmljX2RlbnNlIGFsaWFzaW5nCisgICAgICMgYWxsb3cgY2FjaGVkIG1ldGhvZHMKKy0g ICAgY2RlZiBwdWJsaWMgZGljdCBfX2NhY2hlZF9tZXRob2RzCisrICAgIGNkZWYgcHVibGljIGRp Y3QgX2NhY2hlZF9tZXRob2RzCisgCisgICAgIGNkZWYgdW5zaWduZWQgbG9uZyBjYXBkaXYoc2Vs ZiwgdW5zaWduZWQgbG9uZyBuKQorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BhZGlj cy9wb3dfY29tcHV0ZXJfcmVsYXRpdmUucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19j b21wdXRlcl9yZWxhdGl2ZS5weXgKK2luZGV4IDM5MDUxYTY4MWRlLi4yMjUzMjgxYmQzNSAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wb3dfY29tcHV0ZXJfcmVsYXRpdmUucHl4 CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1dGVyX3JlbGF0aXZlLnB5eAor QEAgLTY5LDcgKzY5LDcgQEAgY2RlZiBjbGFzcyBQb3dDb21wdXRlcl9yZWxhdGl2ZShQb3dDb21w dXRlcl9jbGFzcyk6CisgICAgICAgICAgICAgc2FnZTogUEMgPSBQb3dDb21wdXRlcl9yZWxhdGl2 ZV9tYWtlcigzLCAyMCwgMjAsIDYwLCBGYWxzZSwgZiwgc2hpZnRfc2VlZCwgJ2ZpeGVkLW1vZCcp CisgCisgICAgICAgICAiIiIKKy0gICAgICAgIHNlbGYuX19hbGxvY2F0ZWQgPSA0CisrICAgICAg ICBzZWxmLl9hbGxvY2F0ZWQgPSA0CisgCisgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBJbnRlZ2Vy IHByaW1lLCBsb25nIGNhY2hlX2xpbWl0LCBsb25nIHByZWNfY2FwLCBsb25nIHJhbV9wcmVjX2Nh cCwgYmludCBpbl9maWVsZCwgcG9seSwgc2hpZnRfc2VlZCk6CisgICAgICAgICByIiIiCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9oaWxiZXJ0LnB5eCBiL3NyYy9zYWdl L3JpbmdzL3BvbHlub21pYWwvaGlsYmVydC5weXgKK2luZGV4IGExZjcwZTBjOTgzLi5kMmFiZjMy NWZkOCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvaGlsYmVydC5weXgK KysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvaGlsYmVydC5weXgKK0BAIC0xNzAsNyAr MTcwLDcgQEAgY2RlZiBiaW50IEhpbGJlcnRCYXNlQ2FzZShQb2x5bm9taWFsX2ludGVnZXJfZGVu c2VfZmxpbnQgZmhzLCBOb2RlIEQsIHR1cGxlIHcpOgorICAgICBjZGVmIGludCBlCisgICAgICMg Rmlyc3QsIHRoZSBlYXNpZXN0IGNhc2VzOgorICAgICBpZiBub3QgRC5JZDogIyBUaGUgemVybyBp ZGVhbAorLSAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9zaShmaHMuX19wb2x5LCAwLCAxKSAj ID0gUFIoMSkKKysgICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZfc2koZmhzLl9wb2x5LCAwLCAx KSAjID0gUFIoMSkKKyAgICAgICAgIHJldHVybiBUcnVlCisgICAgIGNkZWYgRVR1cGxlIG0gPSA8 RVR1cGxlPlB5TGlzdF9HRVRfSVRFTShELklkLCBsZW4oRC5JZCktMSkKKyAgICAgaWYgbS5fbm9u emVybyA9PSAwOiAjIFRoZSBvbmUgaWRlYWwKK0BAIC0xODMsMTggKzE4MywxOCBAQCBjZGVmIGJp bnQgSGlsYmVydEJhc2VDYXNlKFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludCBmaHMsIE5v ZGUgRCwgdHVwbGUgdyk6CisgICAgIGlmIG0uX25vbnplcm8gPT0gMSBhbmQgbS5fZGF0YVsxXSA9 PSAxOgorICAgICAgICAgZm1wel9wb2x5X2luaXQocG9seV90bXApCisgICAgICAgICBmbXB6X3Bv bHlfc2V0X2NvZWZmX3NpKHBvbHlfdG1wLCAwLCAxKQorLSAgICAgICAgZm1wel9wb2x5X3NldF9j b2VmZl9zaShmaHMuX19wb2x5LCAwLCAxKSAjID0gUFIoMSkKKysgICAgICAgIGZtcHpfcG9seV9z ZXRfY29lZmZfc2koZmhzLl9wb2x5LCAwLCAxKSAjID0gUFIoMSkKKyAgICAgICAgIGlmIHcgaXMg Tm9uZToKKyAgICAgICAgICAgICBmb3IgaSBpbiByYW5nZShsZW4oRC5JZCkpOgorICAgICAgICAg ICAgICAgICBleHAgPSAoPEVUdXBsZT5QeUxpc3RfR0VUX0lURU0oRC5JZCwgaSkpLnVud2VpZ2h0 ZWRfZGVncmVlKCkKKyAgICAgICAgICAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9zaShwb2x5 X3RtcCwgZXhwLCAtMSkKKy0gICAgICAgICAgICAgICAgZm1wel9wb2x5X211bChmaHMuX19wb2x5 LCBmaHMuX19wb2x5LCBwb2x5X3RtcCkKKysgICAgICAgICAgICAgICAgZm1wel9wb2x5X211bChm aHMuX3BvbHksIGZocy5fcG9seSwgcG9seV90bXApCisgICAgICAgICAgICAgICAgIGZtcHpfcG9s eV9zZXRfY29lZmZfc2kocG9seV90bXAsIGV4cCwgMCkKKyAgICAgICAgIGVsc2U6CisgICAgICAg ICAgICAgZm9yIGkgaW4gcmFuZ2UobGVuKEQuSWQpKToKKyAgICAgICAgICAgICAgICAgZXhwID0g KDxFVHVwbGU+UHlMaXN0X0dFVF9JVEVNKEQuSWQsIGkpKS53ZWlnaHRlZF9kZWdyZWUodykKKyAg ICAgICAgICAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9zaShwb2x5X3RtcCwgZXhwLCAtMSkK Ky0gICAgICAgICAgICAgICAgZm1wel9wb2x5X211bChmaHMuX19wb2x5LCBmaHMuX19wb2x5LCBw b2x5X3RtcCkKKysgICAgICAgICAgICAgICAgZm1wel9wb2x5X211bChmaHMuX3BvbHksIGZocy5f cG9seSwgcG9seV90bXApCisgICAgICAgICAgICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZfc2ko cG9seV90bXAsIGV4cCwgMCkKKyAgICAgICAgIGZtcHpfcG9seV9jbGVhcihwb2x5X3RtcCkKKyAg ICAgICAgIHJldHVybiBUcnVlICMgUFIucHJvZChbKDEtdCoqZGVncmVlKG0sdykpIGZvciBtIGlu IEQuSWRdKQorQEAgLTIxMCwxOCArMjEwLDE4IEBAIGNkZWYgYmludCBIaWxiZXJ0QmFzZUNhc2Uo UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50IGZocywgTm9kZSBELCB0dXBsZSB3KToKKyAg ICAgICAgICMgVGhlIGlkZWFsIGlzIGdlbmVyYXRlZCBieSBzb21lIHBvd2VycyBvZiBzaW5nbGUg dmFyaWFibGVzLCBpLmUuLCBpdCBzcGxpdHMuCisgICAgICAgICBmbXB6X3BvbHlfaW5pdChwb2x5 X3RtcCkKKyAgICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZfc2kocG9seV90bXAsIDAsIDEpCist ICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX3NpKGZocy5fX3BvbHksIDAsIDEpICMgPSBQUigx KQorKyAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9zaShmaHMuX3BvbHksIDAsIDEpICMgPSBQ UigxKQorICAgICAgICAgaWYgdyBpcyBOb25lOgorICAgICAgICAgICAgIGZvciBpIGluIHJhbmdl KGxlbihELklkKSk6CisgICAgICAgICAgICAgICAgIGV4cCA9ICg8RVR1cGxlPlB5TGlzdF9HRVRf SVRFTShELklkLCBpKSkudW53ZWlnaHRlZF9kZWdyZWUoKQorICAgICAgICAgICAgICAgICBmbXB6 X3BvbHlfc2V0X2NvZWZmX3NpKHBvbHlfdG1wLCBleHAsIC0xKQorLSAgICAgICAgICAgICAgICBm bXB6X3BvbHlfbXVsKGZocy5fX3BvbHksIGZocy5fX3BvbHksIHBvbHlfdG1wKQorKyAgICAgICAg ICAgICAgICBmbXB6X3BvbHlfbXVsKGZocy5fcG9seSwgZmhzLl9wb2x5LCBwb2x5X3RtcCkKKyAg ICAgICAgICAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9zaShwb2x5X3RtcCwgZXhwLCAwKQor ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBmb3IgaSBpbiByYW5nZShsZW4oRC5JZCkpOgor ICAgICAgICAgICAgICAgICBleHAgPSAoPEVUdXBsZT5QeUxpc3RfR0VUX0lURU0oRC5JZCwgaSkp LndlaWdodGVkX2RlZ3JlZSh3KQorICAgICAgICAgICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZm X3NpKHBvbHlfdG1wLCBleHAsIC0xKQorLSAgICAgICAgICAgICAgICBmbXB6X3BvbHlfbXVsKGZo cy5fX3BvbHksIGZocy5fX3BvbHksIHBvbHlfdG1wKQorKyAgICAgICAgICAgICAgICBmbXB6X3Bv bHlfbXVsKGZocy5fcG9seSwgZmhzLl9wb2x5LCBwb2x5X3RtcCkKKyAgICAgICAgICAgICAgICAg Zm1wel9wb2x5X3NldF9jb2VmZl9zaShwb2x5X3RtcCwgZXhwLCAwKQorICAgICAgICAgZm1wel9w b2x5X2NsZWFyKHBvbHlfdG1wKQorICAgICAgICAgcmV0dXJuIFRydWUgIyBQUi5wcm9kKFsoMS10 KipkZWdyZWUobSx3KSkgZm9yIG0gaW4gRC5JZF0pCitAQCAtMjc4LDggKzI3OCw4IEBAIGNkZWYg YmludCBIaWxiZXJ0QmFzZUNhc2UoUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50IGZocywg Tm9kZSBELCB0dXBsZSB3KToKKyAgICAgICAgICAgICAgICAgICAgIGZtcHpfcG9seV9tdWwoU2Vj b25kU3VtbWFuZCwgU2Vjb25kU3VtbWFuZCwgcG9seV90bXApCisgICAgICAgICAgICAgICAgICAg ICBmbXB6X3BvbHlfc2V0X2NvZWZmX3NpKHBvbHlfdG1wLCBleHAsIDApCisgICAgICAgICBmbXB6 X3BvbHlfY2xlYXIocG9seV90bXApCistICAgICAgICBmbXB6X3BvbHlfYWRkKGZocy5fX3BvbHks IGZocy5fX3BvbHksIEZpcnN0U3VtbWFuZCkKKy0gICAgICAgIGZtcHpfcG9seV9hZGQoZmhzLl9f cG9seSwgZmhzLl9fcG9seSwgU2Vjb25kU3VtbWFuZCkKKysgICAgICAgIGZtcHpfcG9seV9hZGQo ZmhzLl9wb2x5LCBmaHMuX3BvbHksIEZpcnN0U3VtbWFuZCkKKysgICAgICAgIGZtcHpfcG9seV9h ZGQoZmhzLl9wb2x5LCBmaHMuX3BvbHksIFNlY29uZFN1bW1hbmQpCisgICAgICAgICBmbXB6X3Bv bHlfY2xlYXIoRmlyc3RTdW1tYW5kKQorICAgICAgICAgZm1wel9wb2x5X2NsZWFyKFNlY29uZFN1 bW1hbmQpCisgICAgICAgICByZXR1cm4gVHJ1ZQorQEAgLTUzMiwxMSArNTMyLDExIEBAIGRlZiBm aXJzdF9oaWxiZXJ0X3NlcmllcyhJLCBncmFkaW5nPU5vbmUsIHJldHVybl9ncmFkaW5nPUZhbHNl KToKKyAgICAgICAgICAgICAgICAgaWYgQU4uQmFjay5SaWdodCBpcyBOb25lOgorICAgICAgICAg ICAgICAgICAgICAgQU4gPSBBTi5CYWNrCisgICAgICAgICAgICAgICAgICAgICAjfiBmaHMgKj0g QU4uTE11bHQKKy0gICAgICAgICAgICAgICAgICAgIGZtcHpfcG9seV9tdWwoZmhzLl9fcG9seSwg ZmhzLl9fcG9seSwgQU4uTE11bHQpCisrICAgICAgICAgICAgICAgICAgICBmbXB6X3BvbHlfbXVs KGZocy5fcG9seSwgZmhzLl9wb2x5LCBBTi5MTXVsdCkKKyAgICAgICAgICAgICAgICAgICAgIGdv dF9yZXN1bHQgPSBUcnVlCisgICAgICAgICAgICAgICAgIGVsc2U6CistICAgICAgICAgICAgICAg ICAgICBmbXB6X3BvbHlfc2V0KEFOLkJhY2suTGVmdEZIUywgZmhzLl9fcG9seSkKKy0gICAgICAg ICAgICAgICAgICAgIGZtcHpfcG9seV9zZXRfc2koZmhzLl9fcG9seSwgMCkKKysgICAgICAgICAg ICAgICAgICAgIGZtcHpfcG9seV9zZXQoQU4uQmFjay5MZWZ0RkhTLCBmaHMuX3BvbHkpCisrICAg ICAgICAgICAgICAgICAgICBmbXB6X3BvbHlfc2V0X3NpKGZocy5fcG9seSwgMCkKKyAgICAgICAg ICAgICAgICAgICAgIEFOID0gQU4uQmFjay5SaWdodAorICAgICAgICAgICAgICAgICAgICAgQU4u QmFjay5MZWZ0ID0gTm9uZQorICAgICAgICAgICAgICAgICAgICAgZ290X3Jlc3VsdCA9IEhpbGJl cnRCYXNlQ2FzZShmaHMsIEFOLCB3KQorQEAgLTU0NSw4ICs1NDUsOCBAQCBkZWYgZmlyc3RfaGls YmVydF9zZXJpZXMoSSwgZ3JhZGluZz1Ob25lLCByZXR1cm5fZ3JhZGluZz1GYWxzZSk6CisgICAg ICAgICAgICAgICAgIEFOLlJpZ2h0ID0gTm9uZQorICAgICAgICAgICAgICAgICAjfiBmaHMgPSBB Ti5MTXVsdCpBTi5MZWZ0RkhTICsgQU4uUk11bHQqZmhzCisgICAgICAgICAgICAgICAgIGZtcHpf cG9seV9tdWwoQU4uTE11bHQsIEFOLkxNdWx0LCBBTi5MZWZ0RkhTKQorLSAgICAgICAgICAgICAg ICBmbXB6X3BvbHlfbXVsKEFOLlJNdWx0LCBBTi5STXVsdCwgZmhzLl9fcG9seSkKKy0gICAgICAg ICAgICAgICAgZm1wel9wb2x5X2FkZChmaHMuX19wb2x5LCBBTi5MTXVsdCwgQU4uUk11bHQpCisr ICAgICAgICAgICAgICAgIGZtcHpfcG9seV9tdWwoQU4uUk11bHQsIEFOLlJNdWx0LCBmaHMuX3Bv bHkpCisrICAgICAgICAgICAgICAgIGZtcHpfcG9seV9hZGQoZmhzLl9wb2x5LCBBTi5MTXVsdCwg QU4uUk11bHQpCisgICAgICAgICAgICAgICAgIGdvdF9yZXN1bHQgPSBUcnVlCisgCisgZGVmIGhp bGJlcnRfcG9pbmNhcmVfc2VyaWVzKEksIGdyYWRpbmc9Tm9uZSk6CitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9sYXVyZW50X3BvbHlub21pYWwucHhkIGIvc3JjL3NhZ2Uv cmluZ3MvcG9seW5vbWlhbC9sYXVyZW50X3BvbHlub21pYWwucHhkCitpbmRleCAzNjQ4ZDZkMWVk MS4uOGU5MTA3YWViNDcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL2xh dXJlbnRfcG9seW5vbWlhbC5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvbGF1 cmVudF9wb2x5bm9taWFsLnB4ZAorQEAgLTEyLDYgKzEyLDYgQEAgY2RlZiBjbGFzcyBMYXVyZW50 UG9seW5vbWlhbChDb21tdXRhdGl2ZUFsZ2VicmFFbGVtZW50KToKKyBjZGVmIGNsYXNzIExhdXJl bnRQb2x5bm9taWFsX3VuaXZhcmlhdGUoTGF1cmVudFBvbHlub21pYWwpOgorICAgICBjZGVmIE1v ZHVsZUVsZW1lbnQgX191CisgICAgIGNkZWYgbG9uZyBfX24KKy0gICAgY3BkZWYgX19ub3JtYWxp emUoc2VsZikKKysgICAgY3BkZWYgX25vcm1hbGl6ZShzZWxmKQorICAgICBjcGRlZiBfdW5zYWZl X211dGF0ZShzZWxmLCBpLCB2YWx1ZSkKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9w b2x5bm9taWFsL2xhdXJlbnRfcG9seW5vbWlhbC5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9t aWFsL2xhdXJlbnRfcG9seW5vbWlhbC5weXgKK2luZGV4IDRiZTI0NmM2Njg4Li5jZDc5OTk2ZWVk NyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvbGF1cmVudF9wb2x5bm9t aWFsLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9sYXVyZW50X3BvbHlub21p YWwucHl4CitAQCAtMzY2LDcgKzM2Niw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxf dW5pdmFyaWF0ZShMYXVyZW50UG9seW5vbWlhbCk6CisgICAgICAgICAjIHNlbGYgaXMgdGhhdCB0 Xm4gKiB1OgorICAgICAgICAgc2VsZi5fX3UgPSBmCisgICAgICAgICBzZWxmLl9fbiA9IG4KKy0g ICAgICAgIHNlbGYuX19ub3JtYWxpemUoKQorKyAgICAgICAgc2VsZi5fbm9ybWFsaXplKCkKKyAK KyAgICAgZGVmIF9fcmVkdWNlX18oc2VsZik6CisgICAgICAgICAiIiIKK0BAIC01MzEsNyArNTMx LDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRlKExhdXJlbnRQb2x5 bm9taWFsKToKKyAgICAgICAgICAgICB1ID0gdS5tYXBfY29lZmZpY2llbnRzKGJhc2VfbWFwKQor ICAgICAgICAgcmV0dXJuIGNvZG9tYWluKHUoeCkgKiB4KipzZWxmLl9fbikKKyAKKy0gICAgY3Bk ZWYgX19ub3JtYWxpemUoc2VsZik6CisrICAgIGNwZGVmIF9ub3JtYWxpemUoc2VsZik6CisgICAg ICAgICByIiIiCisgICAgICAgICBBIExhdXJlbnQgc2VyaWVzIGlzIGEgcGFpciBgKHUodCksIG4p YCwgd2hlcmUgZWl0aGVyIGB1ID0gMGAKKyAgICAgICAgICh0byBzb21lIHByZWNpc2lvbikgb3Ig YHVgIGlzIGEgdW5pdC4gVGhpcyBwYWlyIGNvcnJlc3BvbmRzIHRvCitAQCAtNzYzLDcgKzc2Myw3 IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZShMYXVyZW50UG9seW5v bWlhbCk6CisgICAgICAgICAgICAgcmV0ID0gPExhdXJlbnRQb2x5bm9taWFsX3VuaXZhcmlhdGU+ IHNlbGYuX25ld19jKCkKKyAgICAgICAgICAgICByZXQuX191ID0gZgorICAgICAgICAgICAgIHJl dC5fX24gPSBzZWxmLl9fbgorLSAgICAgICAgICAgIHJldC5fX25vcm1hbGl6ZSgpCisrICAgICAg ICAgICAgcmV0Ll9ub3JtYWxpemUoKQorICAgICAgICAgICAgIHJldHVybiByZXQKKyAKKyAgICAg ICAgIHJldHVybiBzZWxmLl9fdVtpIC0gc2VsZi5fX25dCitAQCAtOTE5LDcgKzkxOSw3IEBAIGNk ZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZShMYXVyZW50UG9seW5vbWlhbCk6 CisgICAgICAgICAgICAgICAgIFIgPSBzZWxmLl9wYXJlbnQuYmFzZV9yaW5nKCkKKyAgICAgICAg ICAgICAgICAgY29lZmZzID0gW3ZhbHVlXSArIFtSLnplcm8oKSBmb3IgXyBpbiByYW5nZSgxLC1q KV0gKyBzZWxmLl9fdS5saXN0KCkKKyAgICAgICAgICAgICAgICAgc2VsZi5fX3UgPSBzZWxmLl9f dS5fcGFyZW50KGNvZWZmcykKKy0gICAgICAgIHNlbGYuX19ub3JtYWxpemUoKQorKyAgICAgICAg c2VsZi5fbm9ybWFsaXplKCkKKyAKKyAgICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHRfbSk6Cisg ICAgICAgICAiIiIKK0BAIC05NzIsNyArOTcyLDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5v bWlhbF91bml2YXJpYXRlKExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAgICAgIHJldCA9IDxMYXVy ZW50UG9seW5vbWlhbF91bml2YXJpYXRlPiBzZWxmLl9uZXdfYygpCisgICAgICAgICByZXQuX191 ID0gPE1vZHVsZUVsZW1lbnQ+IChmMSArIGYyKQorICAgICAgICAgcmV0Ll9fbiA9IG0KKy0gICAg ICAgIHJldC5fX25vcm1hbGl6ZSgpCisrICAgICAgICByZXQuX25vcm1hbGl6ZSgpCisgICAgICAg ICByZXR1cm4gcmV0CisgCisgICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0X20pOgorQEAgLTEw MTIsNyArMTAxMiw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZShM YXVyZW50UG9seW5vbWlhbCk6CisgICAgICAgICByZXQgPSA8TGF1cmVudFBvbHlub21pYWxfdW5p dmFyaWF0ZT4gc2VsZi5fbmV3X2MoKQorICAgICAgICAgcmV0Ll9fdSA9IDxNb2R1bGVFbGVtZW50 PiAoZjEgLSBmMikKKyAgICAgICAgIHJldC5fX24gPSBtCistICAgICAgICByZXQuX19ub3JtYWxp emUoKQorKyAgICAgICAgcmV0Ll9ub3JtYWxpemUoKQorICAgICAgICAgcmV0dXJuIHJldAorIAor ICAgICBkZWYgZGVncmVlKHNlbGYpOgorQEAgLTEwNjMsNyArMTA2Myw3IEBAIGNkZWYgY2xhc3Mg TGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZShMYXVyZW50UG9seW5vbWlhbCk6CisgICAgICAg ICByZXQgPSA8TGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZT4gc2VsZi5fbmV3X2MoKQorICAg ICAgICAgcmV0Ll9fdSA9IDxNb2R1bGVFbGVtZW50PiAoc2VsZi5fX3UgKiByaWdodC5fX3UpCisg ICAgICAgICByZXQuX19uID0gc2VsZi5fX24gKyByaWdodC5fX24KKy0gICAgICAgIHJldC5fX25v cm1hbGl6ZSgpCisrICAgICAgICByZXQuX25vcm1hbGl6ZSgpCisgICAgICAgICByZXR1cm4gcmV0 CisgCisgICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVtZW50IGMpOgorQEAgLTEwNzksNyArMTA3 OSw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZShMYXVyZW50UG9s eW5vbWlhbCk6CisgICAgICAgICByZXQgPSA8TGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZT4g c2VsZi5fbmV3X2MoKQorICAgICAgICAgcmV0Ll9fdSA9IDxNb2R1bGVFbGVtZW50PiBzZWxmLl9f dS5fcm11bF8oYykKKyAgICAgICAgIHJldC5fX24gPSBzZWxmLl9fbgorLSAgICAgICAgcmV0Ll9f bm9ybWFsaXplKCkKKysgICAgICAgIHJldC5fbm9ybWFsaXplKCkKKyAgICAgICAgIHJldHVybiBy ZXQKKyAKKyAgICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgYyk6CitAQCAtMTA5NSw3ICsx MDk1LDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRlKExhdXJlbnRQ b2x5bm9taWFsKToKKyAgICAgICAgIHJldCA9IDxMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRl PiBzZWxmLl9uZXdfYygpCisgICAgICAgICByZXQuX191ID0gPE1vZHVsZUVsZW1lbnQ+IHNlbGYu X191Ll9sbXVsXyhjKQorICAgICAgICAgcmV0Ll9fbiA9IHNlbGYuX19uCistICAgICAgICByZXQu X19ub3JtYWxpemUoKQorKyAgICAgICAgcmV0Ll9ub3JtYWxpemUoKQorICAgICAgICAgcmV0dXJu IHJldAorIAorICAgICBkZWYgaXNfbW9ub21pYWwoc2VsZik6CitAQCAtMTE3NSw3ICsxMTc1LDcg QEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRlKExhdXJlbnRQb2x5bm9t aWFsKToKKyAgICAgICAgIHJldCA9IDxMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRlPiBzZWxm Ll9uZXdfYygpCisgICAgICAgICByZXQuX191ID0gPE1vZHVsZUVsZW1lbnQ+IChzZWxmLl9fdSAv LyByaWdodC5fX3UpCisgICAgICAgICByZXQuX19uID0gc2VsZi5fX24gLSByaWdodC5fX24KKy0g ICAgICAgIHJldC5fX25vcm1hbGl6ZSgpCisrICAgICAgICByZXQuX25vcm1hbGl6ZSgpCisgICAg ICAgICByZXR1cm4gcmV0CisgCisgICAgIGRlZiBzaGlmdChzZWxmLCBrKToKK0BAIC0xMjg3LDcg KzEyODcsNyBAQCBjZGVmIGNsYXNzIExhdXJlbnRQb2x5bm9taWFsX3VuaXZhcmlhdGUoTGF1cmVu dFBvbHlub21pYWwpOgorICAgICAgICAgICAgIGlmIHNlbGYuX191LmlzX3VuaXQoKToKKyAgICAg ICAgICAgICAgICAgcmV0Ll9fdSA9IHNlbGYuX191LmludmVyc2Vfb2ZfdW5pdCgpCisgICAgICAg ICAgICAgICAgIHJldC5fX24gPSAtc2VsZi5fX24KKy0gICAgICAgICAgICAgICAgcmV0Ll9fbm9y bWFsaXplKCkKKysgICAgICAgICAgICAgICAgcmV0Ll9ub3JtYWxpemUoKQorICAgICAgICAgICAg ICAgICByZXR1cm4gcmV0CisgICAgICAgICAgICAgIyBFbmxhcmdlIHRoZSByaW5nIHNvIHdlIGNh biBkaXZpZGUgYnkgdGhlIGNvZWZmaWNpZW50CisgICAgICAgICAgICAgUiA9IHNlbGYuX3BhcmVu dC5iYXNlX3JpbmcoKS5mcmFjdGlvbl9maWVsZCgpCitAQCAtMTM2Miw3ICsxMzYyLDcgQEAgY2Rl ZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRlKExhdXJlbnRQb2x5bm9taWFsKToK KyAgICAgICAgIHJldCA9IDxMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRlPiBzZWxmLl9uZXdf YygpCisgICAgICAgICByZXQuX191ID0gc2VsZi5fX3UuZ2NkKGIuX191KQorICAgICAgICAgcmV0 Ll9fbiA9IG1pbihzZWxmLl9fbiwgYi5fX24pCistICAgICAgICByZXQuX19ub3JtYWxpemUoKQor KyAgICAgICAgcmV0Ll9ub3JtYWxpemUoKQorICAgICAgICAgcmV0dXJuIHJldAorIAorICAgICBA Y29lcmNlX2Jpbm9wCitAQCAtMTQwOCwxMSArMTQwOCwxMSBAQCBjZGVmIGNsYXNzIExhdXJlbnRQ b2x5bm9taWFsX3VuaXZhcmlhdGUoTGF1cmVudFBvbHlub21pYWwpOgorICAgICAgICAgcWwgPSA8 TGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZT4gc2VsZi5fbmV3X2MoKQorICAgICAgICAgcWwu X191ID0gPE1vZHVsZUVsZW1lbnQ+IHEKKyAgICAgICAgIHFsLl9fbiA9IHNlbGYuX19uIC0gcmln aHQuX19uCistICAgICAgICBxbC5fX25vcm1hbGl6ZSgpCisrICAgICAgICBxbC5fbm9ybWFsaXpl KCkKKyAgICAgICAgIHFyID0gPExhdXJlbnRQb2x5bm9taWFsX3VuaXZhcmlhdGU+IHNlbGYuX25l d19jKCkKKyAgICAgICAgIHFyLl9fdSA9IDxNb2R1bGVFbGVtZW50PiByCisgICAgICAgICBxci5f X24gPSBzZWxmLl9fbgorLSAgICAgICAgcXIuX19ub3JtYWxpemUoKQorKyAgICAgICAgcXIuX25v cm1hbGl6ZSgpCisgICAgICAgICByZXR1cm4gcWwsIHFyCisgCisgICAgIGNwZGVmIF9yaWNoY21w XyhzZWxmLCByaWdodF9yLCBpbnQgb3ApOgorQEAgLTE1MTksNyArMTUxOSw3IEBAIGNkZWYgY2xh c3MgTGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZShMYXVyZW50UG9seW5vbWlhbCk6CisgICAg ICAgICByZXQgPSA8TGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZT4gc2VsZi5fbmV3X2MoKQor ICAgICAgICAgcmV0Ll9fdSA9IDxNb2R1bGVFbGVtZW50PiBzZWxmLl9fdS50cnVuY2F0ZShuIC0g c2VsZi5fX24pCisgICAgICAgICByZXQuX19uID0gc2VsZi5fX24KKy0gICAgICAgIHJldC5fX25v cm1hbGl6ZSgpCisrICAgICAgICByZXQuX25vcm1hbGl6ZSgpCisgICAgICAgICByZXR1cm4gcmV0 CisgCisgICAgIGRlZiB2YXJpYWJsZV9uYW1lKHNlbGYpOgorQEAgLTE3NzcsNyArMTc3Nyw3IEBA IGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZShMYXVyZW50UG9seW5vbWlh bCk6CisgICAgICAgICAgICAgICAgIHJldCA9IDxMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRl PiBzZWxmLl9uZXdfYygpCisgICAgICAgICAgICAgICAgIHJldC5fX3UgPSA8TW9kdWxlRWxlbWVu dD4gc2VsZi5fcGFyZW50Ll9SKHUpCisgICAgICAgICAgICAgICAgIHJldC5fX24gPSBzZWxmLl9f bgorLSAgICAgICAgICAgICAgICByZXQuX19ub3JtYWxpemUoKQorKyAgICAgICAgICAgICAgICBy ZXQuX25vcm1hbGl6ZSgpCisgICAgICAgICAgICAgICAgIHJldHVybiByZXQKKyAgICAgICAgICAg ICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy b3IoJ2Nhbm5vdCBkaWZmZXJlbnRpYXRlIHdpdGggcmVzcGVjdCB0byB7fScuZm9ybWF0KHZhcikp CitAQCAtMTc5Miw3ICsxNzkyLDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF91bml2 YXJpYXRlKExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAgICAgIHJldCA9IDxMYXVyZW50UG9seW5v bWlhbF91bml2YXJpYXRlPiBzZWxmLl9uZXdfYygpCisgICAgICAgICByZXQuX191ID0gPE1vZHVs ZUVsZW1lbnQ+IHNlbGYuX3BhcmVudC5fUihhKQorICAgICAgICAgcmV0Ll9fbiA9IHNlbGYuX19u IC0gMQorLSAgICAgICAgcmV0Ll9fbm9ybWFsaXplKCkKKysgICAgICAgIHJldC5fbm9ybWFsaXpl KCkKKyAgICAgICAgIHJldHVybiByZXQKKyAKKyAgICAgZGVmIGludGVncmFsKHNlbGYpOgorQEAg LTE4NTcsNyArMTg1Nyw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0 ZShMYXVyZW50UG9seW5vbWlhbCk6CisgICAgICAgICByZXQgPSA8TGF1cmVudFBvbHlub21pYWxf dW5pdmFyaWF0ZT4gc2VsZi5fbmV3X2MoKQorICAgICAgICAgcmV0Ll9fdSA9IDxNb2R1bGVFbGVt ZW50PiB1CisgICAgICAgICByZXQuX19uID0gbiArIDEKKy0gICAgICAgIHJldC5fX25vcm1hbGl6 ZSgpCisrICAgICAgICByZXQuX25vcm1hbGl6ZSgpCisgICAgICAgICByZXR1cm4gcmV0CisgCisg ICAgIGRlZiBfX2NhbGxfXyhzZWxmLCAqeCwgKiprd2RzKToKK0BAIC0xOTE5LDE0ICsxOTE5LDE0 IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZShMYXVyZW50UG9seW5v bWlhbCk6CisgICAgICAgICB1ID0gPExhdXJlbnRQb2x5bm9taWFsX3VuaXZhcmlhdGU+IHNlbGYu X25ld19jKCkKKyAgICAgICAgIHUuX191ID0gcGYudW5pdCgpCisgICAgICAgICB1Ll9fbiA9IHNl bGYuX19uCistICAgICAgICB1Ll9fbm9ybWFsaXplKCkKKysgICAgICAgIHUuX25vcm1hbGl6ZSgp CisgCisgICAgICAgICBmID0gW10KKyAgICAgICAgIGZvciB0IGluIHBmOgorICAgICAgICAgICAg IGQgPSA8TGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZT4gc2VsZi5fbmV3X2MoKQorICAgICAg ICAgICAgIGQuX191ID0gdFswXQorICAgICAgICAgICAgIGQuX19uID0gMAorLSAgICAgICAgICAg IGQuX19ub3JtYWxpemUoKQorKyAgICAgICAgICAgIGQuX25vcm1hbGl6ZSgpCisgICAgICAgICAg ICAgaWYgZC5pc191bml0KCk6CisgICAgICAgICAgICAgICAgIHUgKj0gZCAqKiB0WzFdCisgICAg ICAgICAgICAgZWxzZToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL211 bHRpX3BvbHlub21pYWxfbGlic2luZ3VsYXIucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlh bC9tdWx0aV9wb2x5bm9taWFsX2xpYnNpbmd1bGFyLnB5eAoraW5kZXggZDc5NmI3ZjgxNjkuLjgz Yzc5YzM5ODQzIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9tdWx0aV9w b2x5bm9taWFsX2xpYnNpbmd1bGFyLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlh bC9tdWx0aV9wb2x5bm9taWFsX2xpYnNpbmd1bGFyLnB5eAorQEAgLTM3NSw3ICszNzUsNyBAQCBj ZGVmIGNsYXNzIE1Qb2x5bm9taWFsUmluZ19saWJzaW5ndWxhcihNUG9seW5vbWlhbFJpbmdfYmFz ZSk6CisgICAgICAgICAgICAgLi4uCisgICAgICAgICAgICAgTm90SW1wbGVtZW50ZWRFcnJvcjog cG9seW5vbWlhbHMgaW4gLTEgdmFyaWFibGVzIGFyZSBub3Qgc3VwcG9ydGVkIGluIFNpbmd1bGFy CisgICAgICAgICAiIiIKKy0gICAgICAgIHNlbGYuX19uZ2VucyA9IG4KKysgICAgICAgIHNlbGYu X25nZW5zID0gbgorICAgICAgICAgc2VsZi5fcmluZyA9IHNpbmd1bGFyX3JpbmdfbmV3KGJhc2Vf cmluZywgbiwgbmFtZXMsIG9yZGVyKQorICAgICAgICAgc2VsZi5femVyb19lbGVtZW50ID0gbmV3 X01QKHNlbGYsIE5VTEwpCisgICAgICAgICBjZGVmIE1Qb2x5bm9taWFsX2xpYnNpbmd1bGFyIG9u ZSA9IG5ld19NUChzZWxmLCBwX0lTZXQoMSwgc2VsZi5fcmluZykpCitAQCAtMTAxOSw3ICsxMDE5 LDcgQEAgY2RlZiBjbGFzcyBNUG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIoTVBvbHlub21pYWxS aW5nX2Jhc2UpOgorICAgICAgICAgICAgIE11bHRpdmFyaWF0ZSBQb2x5bm9taWFsIFJpbmcgaW4g eCwgeSBvdmVyIFJhdGlvbmFsIEZpZWxkCisgICAgICAgICAiIiIKKyAgICAgICAgIHZhcnN0ciA9 ICIsICIuam9pbihjaGFyX3RvX3N0cihyUmluZ1ZhcihpLHNlbGYuX3JpbmcpKQorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKHNlbGYuX19uZ2VucykpCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2Uoc2VsZi5fbmdlbnMpKQorICAgICAg ICAgcmV0dXJuICJNdWx0aXZhcmlhdGUgUG9seW5vbWlhbCBSaW5nIGluICVzIG92ZXIgJXMiICUg KHZhcnN0ciwgc2VsZi5iYXNlX3JpbmcoKSkKKyAKKyAgICAgZGVmIG5nZW5zKHNlbGYpOgorQEAg LTEwMzcsNyArMTAzNyw3IEBAIGNkZWYgY2xhc3MgTVBvbHlub21pYWxSaW5nX2xpYnNpbmd1bGFy KE1Qb2x5bm9taWFsUmluZ19iYXNlKToKKyAgICAgICAgICAgICBzYWdlOiBQLm5nZW5zKCkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IyBuZWVkcyBzYWdlLnJpbmdzLmZpbml0ZV9yaW5ncworICAgICAgICAgICAgIDEwMDAKKyAgICAg ICAgICIiIgorLSAgICAgICAgcmV0dXJuIGludChzZWxmLl9fbmdlbnMpCisrICAgICAgICByZXR1 cm4gaW50KHNlbGYuX25nZW5zKQorIAorICAgICBkZWYgZ2VuKHNlbGYsIGludCBuPTApOgorICAg ICAgICAgIiIiCitAQCAtMTA2NSw3ICsxMDY1LDcgQEAgY2RlZiBjbGFzcyBNUG9seW5vbWlhbFJp bmdfbGlic2luZ3VsYXIoTVBvbHlub21pYWxSaW5nX2Jhc2UpOgorICAgICAgICAgY2RlZiBwb2x5 ICpfcAorICAgICAgICAgY2RlZiByaW5nICpfcmluZyA9IHNlbGYuX3JpbmcKKyAKKy0gICAgICAg IGlmIG4gPCAwIG9yIG4gPj0gc2VsZi5fX25nZW5zOgorKyAgICAgICAgaWYgbiA8IDAgb3IgbiA+ PSBzZWxmLl9uZ2VuczoKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJHZW5lcmF0b3Ig bm90IGRlZmluZWQuIikKKyAKKyAgICAgICAgIHJDaGFuZ2VDdXJyUmluZyhfcmluZykKK0BAIC0x NDk0LDcgKzE0OTQsNyBAQCBjZGVmIGNsYXNzIE1Qb2x5bm9taWFsUmluZ19saWJzaW5ndWxhcihN UG9seW5vbWlhbFJpbmdfYmFzZSk6CisgICAgICAgICByZXR1cm4gdW5waWNrbGVfTVBvbHlub21p YWxSaW5nX2xpYnNpbmd1bGFyLCBcCisgICAgICAgICAgICAgKHNlbGYuYmFzZV9yaW5nKCksIHNl bGYudmFyaWFibGVfbmFtZXMoKSwgc2VsZi50ZXJtX29yZGVyKCkpCisgCistICAgIGRlZiBfX3Rl bXBvcmFyaWx5X2NoYW5nZV9uYW1lcyhzZWxmLCBuYW1lcywgbGF0ZXhfbmFtZXMpOgorKyAgICBk ZWYgX3RlbXBvcmFyaWx5X2NoYW5nZV9uYW1lcyhzZWxmLCBuYW1lcywgbGF0ZXhfbmFtZXMpOgor ICAgICAgICAgIiIiCisgICAgICAgICBUaGlzIGlzIHVzZWQgYnkgdGhlIHZhcmlhYmxlIG5hbWVz IGNvbnRleHQgbWFuYWdlci4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9t aWFsL211bHRpX3BvbHlub21pYWxfcmluZ19iYXNlLnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlu b21pYWwvbXVsdGlfcG9seW5vbWlhbF9yaW5nX2Jhc2UucHhkCitpbmRleCBmYzgxY2Y2ZDI5OC4u ZWI2ZjhiNzA5MTcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL211bHRp X3BvbHlub21pYWxfcmluZ19iYXNlLnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlh bC9tdWx0aV9wb2x5bm9taWFsX3JpbmdfYmFzZS5weGQKK0BAIC0yLDggKzIsOCBAQCBjaW1wb3J0 IHNhZ2UucmluZ3MucmluZworIGZyb20gc2FnZS5zdHJ1Y3R1cmUucGFyZW50IGNpbXBvcnQgUGFy ZW50CisgCisgY2RlZiBjbGFzcyBNUG9seW5vbWlhbFJpbmdfYmFzZShzYWdlLnJpbmdzLnJpbmcu Q29tbXV0YXRpdmVSaW5nKToKKy0gICAgY2RlZiBvYmplY3QgX19uZ2VucworLSAgICBjZGVmIG9i amVjdCBfX3Rlcm1fb3JkZXIKKysgICAgY2RlZiBvYmplY3QgX25nZW5zCisrICAgIGNkZWYgb2Jq ZWN0IF90ZXJtX29yZGVyCisgICAgIGNkZWYgcHVibGljIG9iamVjdCBfaGFzX3Npbmd1bGFyCisg ICAgIGNkZWYgcHVibGljIG9iamVjdCBfbWFnbWFfZ2VucworICAgICBjZGVmIHB1YmxpYyBkaWN0 IF9tYWdtYV9jYWNoZQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvbXVs dGlfcG9seW5vbWlhbF9yaW5nX2Jhc2UucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9t dWx0aV9wb2x5bm9taWFsX3JpbmdfYmFzZS5weXgKK2luZGV4IDFkM2ZiYzYwOTQ0Li5jOGY2NjUw OGNjMiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvbXVsdGlfcG9seW5v bWlhbF9yaW5nX2Jhc2UucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL211bHRp X3BvbHlub21pYWxfcmluZ19iYXNlLnB5eAorQEAgLTgwLDggKzgwLDggQEAgY2RlZiBjbGFzcyBN UG9seW5vbWlhbFJpbmdfYmFzZShzYWdlLnJpbmdzLnJpbmcuQ29tbXV0YXRpdmVSaW5nKToKKyAg ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdWx0aXZhcmlhdGUgUG9seW5vbWlhbCBSaW5n cyBtdXN0ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoYXZlIG1vcmUgdGhhbiAw IHZhcmlhYmxlcy4iKQorICAgICAgICAgb3JkZXIgPSBUZXJtT3JkZXIob3JkZXIsIG4pCistICAg ICAgICBzZWxmLl9fbmdlbnMgPSBuCistICAgICAgICBzZWxmLl9fdGVybV9vcmRlciA9IG9yZGVy CisrICAgICAgICBzZWxmLl9uZ2VucyA9IG4KKysgICAgICAgIHNlbGYuX3Rlcm1fb3JkZXIgPSBv cmRlcgorICAgICAgICAgc2VsZi5faGFzX3Npbmd1bGFyID0gRmFsc2UgICMgY2Fubm90IGNvbnZl cnQgdG8gU2luZ3VsYXIgYnkgZGVmYXVsdAorICAgICAgICAgc2VsZi5fbWFnbWFfY2FjaGUgPSB7 fQorICAgICAgICAgIyBSaW5nLl9faW5pdF9fIGFscmVhZHkgZG9lcyBhc3NpZ24gdGhlIG5hbWVz LgorQEAgLTYzOSwxMiArNjM5LDEyIEBAIGNkZWYgY2xhc3MgTVBvbHlub21pYWxSaW5nX2Jhc2Uo c2FnZS5yaW5ncy5yaW5nLkNvbW11dGF0aXZlUmluZyk6CisgICAgICAgICBsZnQgPSA8TVBvbHlu b21pYWxSaW5nX2Jhc2U+bGVmdAorICAgICAgICAgb3RoZXIgPSA8TVBvbHlub21pYWxSaW5nX2Jh c2U+cmlnaHQKKyAKKy0gICAgICAgIGx4ID0gKGxmdC5iYXNlX3JpbmcoKSwgbGZ0Ll9fbmdlbnMs CisrICAgICAgICBseCA9IChsZnQuYmFzZV9yaW5nKCksIGxmdC5fbmdlbnMsCisgICAgICAgICAg ICAgICBsZnQudmFyaWFibGVfbmFtZXMoKSwKKy0gICAgICAgICAgICAgIGxmdC5fX3Rlcm1fb3Jk ZXIpCistICAgICAgICByeCA9IChvdGhlci5iYXNlX3JpbmcoKSwgb3RoZXIuX19uZ2VucywKKysg ICAgICAgICAgICAgIGxmdC5fdGVybV9vcmRlcikKKysgICAgICAgIHJ4ID0gKG90aGVyLmJhc2Vf cmluZygpLCBvdGhlci5fbmdlbnMsCisgICAgICAgICAgICAgICBvdGhlci52YXJpYWJsZV9uYW1l cygpLAorLSAgICAgICAgICAgICAgb3RoZXIuX190ZXJtX29yZGVyKQorKyAgICAgICAgICAgICAg b3RoZXIuX3Rlcm1fb3JkZXIpCisgICAgICAgICByZXR1cm4gcmljaGNtcChseCwgcngsIG9wKQor IAorICAgICBkZWYgX3JlcHJfKHNlbGYpOgorQEAgLTg0OSw3ICs4NDksNyBAQCBjZGVmIGNsYXNz IE1Qb2x5bm9taWFsUmluZ19iYXNlKHNhZ2UucmluZ3MucmluZy5Db21tdXRhdGl2ZVJpbmcpOgor ICAgICAgICAgcmV0dXJuIEZhbHNlCisgCisgICAgIGRlZiB0ZXJtX29yZGVyKHNlbGYpOgorLSAg ICAgICAgcmV0dXJuIHNlbGYuX190ZXJtX29yZGVyCisrICAgICAgICByZXR1cm4gc2VsZi5fdGVy bV9vcmRlcgorIAorICAgICBkZWYgY2hhcmFjdGVyaXN0aWMoc2VsZik6CisgICAgICAgICAiIiIK K0BAIC04NjcsNyArODY3LDcgQEAgY2RlZiBjbGFzcyBNUG9seW5vbWlhbFJpbmdfYmFzZShzYWdl LnJpbmdzLnJpbmcuQ29tbXV0YXRpdmVSaW5nKToKKyAgICAgICAgIHJldHVybiBzZWxmLmJhc2Vf cmluZygpLmNoYXJhY3RlcmlzdGljKCkKKyAKKyAgICAgZGVmIGdlbihzZWxmLCBuPTApOgorLSAg ICAgICAgaWYgbiA8IDAgb3IgbiA+PSBzZWxmLl9fbmdlbnM6CisrICAgICAgICBpZiBuIDwgMCBv ciBuID49IHNlbGYuX25nZW5zOgorICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkdlbmVy YXRvciBub3QgZGVmaW5lZC4iKQorICAgICAgICAgcmV0dXJuIHNlbGYuX2dlbnNbaW50KG4pXQor IAorQEAgLTkyNyw3ICs5MjcsNyBAQCBjZGVmIGNsYXNzIE1Qb2x5bm9taWFsUmluZ19iYXNlKHNh Z2UucmluZ3MucmluZy5Db21tdXRhdGl2ZVJpbmcpOgorICAgICAgICAgcmV0dXJuIHNlbGYuYmFz ZV9yaW5nKCkua3J1bGxfZGltZW5zaW9uKCkgKyBzZWxmLm5nZW5zKCkKKyAKKyAgICAgZGVmIG5n ZW5zKHNlbGYpOgorLSAgICAgICAgcmV0dXJuIHNlbGYuX19uZ2VucworKyAgICAgICAgcmV0dXJu IHNlbGYuX25nZW5zCisgCisgICAgIGRlZiBfbW9ub21pYWxfb3JkZXJfZnVuY3Rpb24oc2VsZik6 CisgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCitkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvcmluZ3MvcG9seW5vbWlhbC9vcmVfcG9seW5vbWlhbF9lbGVtZW50LnB4ZCBiL3NyYy9zYWdl L3JpbmdzL3BvbHlub21pYWwvb3JlX3BvbHlub21pYWxfZWxlbWVudC5weGQKK2luZGV4IDNhM2Zl MGEwZDU0Li5hYTM2MTEyYWI5MCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21p YWwvb3JlX3BvbHlub21pYWxfZWxlbWVudC5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlu b21pYWwvb3JlX3BvbHlub21pYWxfZWxlbWVudC5weGQKK0BAIC0zMyw3ICszMyw3IEBAIGNkZWYg dm9pZCBsbXVsX2dlbihsaXN0IEEsIE1vcnBoaXNtIG0sIGQpCisgY2RlZiBjbGFzcyBPcmVQb2x5 bm9taWFsX2dlbmVyaWNfZGVuc2UoT3JlUG9seW5vbWlhbCk6CisgICAgIGNkZWYgbGlzdCBfY29l ZmZzCisgCistICAgIGNkZWYgdm9pZCBfX25vcm1hbGl6ZShzZWxmKQorKyAgICBjZGVmIHZvaWQg X25vcm1hbGl6ZShzZWxmKQorICAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikKKyAgICAgY2Rl ZiBsaXN0IF9tdWxfbGlzdChzZWxmLCBsaXN0IEEpCisgICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90 aGVyKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvb3JlX3BvbHlub21p YWxfZWxlbWVudC5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL29yZV9wb2x5bm9taWFs X2VsZW1lbnQucHl4CitpbmRleCBkNjdjNjNiNmJlOC4uYmUxNTRiYThiMWEgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL29yZV9wb2x5bm9taWFsX2VsZW1lbnQucHl4Cisr KysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL29yZV9wb2x5bm9taWFsX2VsZW1lbnQucHl4 CitAQCAtMjI2OSw3ICsyMjY5LDcgQEAgY2RlZiBjbGFzcyBPcmVQb2x5bm9taWFsX2dlbmVyaWNf ZGVuc2UoT3JlUG9seW5vbWlhbCk6CisgICAgICAgICBpZiBpc2luc3RhbmNlKHgsIGxpc3QpOgor ICAgICAgICAgICAgIGlmIGNoZWNrOgorICAgICAgICAgICAgICAgICBzZWxmLl9jb2VmZnMgPSBb Uih0KSBmb3IgdCBpbiB4XQorLSAgICAgICAgICAgICAgICBzZWxmLl9fbm9ybWFsaXplKCkKKysg ICAgICAgICAgICAgICAgc2VsZi5fbm9ybWFsaXplKCkKKyAgICAgICAgICAgICBlbHNlOgorICAg ICAgICAgICAgICAgICBzZWxmLl9jb2VmZnMgPSB4CisgICAgICAgICAgICAgcmV0dXJuCitAQCAt MjI4OCw3ICsyMjg4LDcgQEAgY2RlZiBjbGFzcyBPcmVQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2Uo T3JlUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgc2Vs Zi5fY29lZmZzID0gW1IoYSwgKiprd2RzKSBmb3IgYSBpbiB4Lmxpc3QoKV0KKyAgICAgICAgICAg ICAgICAgaWYgY2hlY2s6CistICAgICAgICAgICAgICAgICAgICBzZWxmLl9fbm9ybWFsaXplKCkK KysgICAgICAgICAgICAgICAgICAgIHNlbGYuX25vcm1hbGl6ZSgpCisgICAgICAgICAgICAgICAg IHJldHVybgorIAorICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHgsIGludCkgYW5kIHggPT0gMDoK K0BAIC0yMzAyLDcgKzIzMDIsNyBAQCBjZGVmIGNsYXNzIE9yZVBvbHlub21pYWxfZ2VuZXJpY19k ZW5zZShPcmVQb2x5bm9taWFsKToKKyAgICAgICAgICAgICB4ID0gW3hdCisgICAgICAgICBpZiBj aGVjazoKKyAgICAgICAgICAgICBzZWxmLl9jb2VmZnMgPSBbUih6LCAqKmt3ZHMpIGZvciB6IGlu IHhdCistICAgICAgICAgICAgc2VsZi5fX25vcm1hbGl6ZSgpCisrICAgICAgICAgICAgc2VsZi5f bm9ybWFsaXplKCkKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgc2VsZi5fY29lZmZzID0g eAorIAorQEAgLTIzNzcsMTAgKzIzNzcsMTAgQEAgY2RlZiBjbGFzcyBPcmVQb2x5bm9taWFsX2dl bmVyaWNfZGVuc2UoT3JlUG9seW5vbWlhbCk6CisgICAgICAgICBmLl9wYXJlbnQgPSBQCisgICAg ICAgICBmLl9jb2VmZnMgPSBjb2VmZnMKKyAgICAgICAgIGlmIGNoZWNrOgorLSAgICAgICAgICAg IGYuX19ub3JtYWxpemUoKQorKyAgICAgICAgICAgIGYuX25vcm1hbGl6ZSgpCisgICAgICAgICBy ZXR1cm4gZgorIAorLSAgICBjZGVmIHZvaWQgX19ub3JtYWxpemUoc2VsZik6CisrICAgIGNkZWYg dm9pZCBfbm9ybWFsaXplKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmVtb3ZlIGhp Z2hlciBvcmRlciBgMGAtY29lZmZpY2llbnRzIGZyb20gdGhlIHJlcHJlc2VudGF0aW9uIG9mIGBg c2VsZmBgLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcGJvcmkv cGJvcmkucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wYm9yaS9wYm9yaS5weXgKK2lu ZGV4IDA3Y2M2OTY0NzdhLi4zMTQxOTZmYWExNCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3Jpbmdz L3BvbHlub21pYWwvcGJvcmkvcGJvcmkucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9t aWFsL3Bib3JpL3Bib3JpLnB5eAorQEAgLTU0Nyw3ICs1NDcsNyBAQCBjZGVmIGNsYXNzIEJvb2xl YW5Qb2x5bm9taWFsUmluZyhCb29sZWFuUG9seW5vbWlhbFJpbmdfYmFzZSk6CisgICAgICAgICAi IiIKKyAgICAgICAgIHJldHVybiB0dXBsZShuZXdfQlBfZnJvbV9QQlZhcihzZWxmLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3BicmluZy52YXJpYWJsZShz ZWxmLnBiaW5kW2ldKSkKKy0gICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiByYW5nZShzZWxm Ll9fbmdlbnMpKQorKyAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKHNlbGYuX25n ZW5zKSkKKyAKKyAgICAgZGVmIGNoYW5nZV9yaW5nKHNlbGYsIGJhc2VfcmluZz1Ob25lLCBuYW1l cz1Ob25lLCBvcmRlcj1Ob25lKToKKyAgICAgICAgICIiIgorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L3JpbmdzL3BvbHlub21pYWwvcGx1cmFsLnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwv cGx1cmFsLnB4ZAoraW5kZXggNDFkYjJhMTQ0ZTcuLmQzYTQ2ZjZhYTBkIDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wbHVyYWwucHhkCisrKysgYi9zcmMvc2FnZS9yaW5n cy9wb2x5bm9taWFsL3BsdXJhbC5weGQKK0BAIC0xMywxMCArMTMsMTAgQEAgY2RlZiBleHRlcm4g ZnJvbSAqOgorICAgICBjdHlwZWRlZiBsb25nIFB5X2hhc2hfdAorIAorIGNkZWYgY2xhc3MgTkNQ b2x5bm9taWFsUmluZ19wbHVyYWwoUmluZyk6CistICAgIGNkZWYgb2JqZWN0IF9fbmdlbnMKKysg ICAgY2RlZiBvYmplY3QgX25nZW5zCisgICAgIGNkZWYgb2JqZWN0IF9jCisgICAgIGNkZWYgb2Jq ZWN0IF9kCistICAgIGNkZWYgb2JqZWN0IF9fdGVybV9vcmRlcgorKyAgICBjZGVmIG9iamVjdCBf dGVybV9vcmRlcgorICAgICBjZGVmIHB1YmxpYyBvYmplY3QgX2hhc19zaW5ndWxhcgorICAgICBj ZGVmIHB1YmxpYyBvYmplY3QgX21hZ21hX2dlbnMsIF9tYWdtYV9jYWNoZQorIAorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcGx1cmFsLnB5eCBiL3NyYy9zYWdlL3Jpbmdz L3BvbHlub21pYWwvcGx1cmFsLnB5eAoraW5kZXggYTY0N2Q2OGUwOGQuLmJjNDMyNjExYzg5IDEw MDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wbHVyYWwucHl4CisrKysgYi9z cmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BsdXJhbC5weXgKK0BAIC0zMzYsOCArMzM2LDggQEAg Y2RlZiBjbGFzcyBOQ1BvbHlub21pYWxSaW5nX3BsdXJhbChSaW5nKToKKyAgICAgICAgIHNlbGYu X3JpbmcgPSBzaW5ndWxhcl9yaW5nX3JlZmVyZW5jZShydy5fcmluZykKKyAgICAgICAgIHNlbGYu X3JpbmcuU2hvcnRPdXQgPSAwCisgCistICAgICAgICBzZWxmLl9fbmdlbnMgPSBuCistICAgICAg ICBzZWxmLl9fdGVybV9vcmRlciA9IG9yZGVyCisrICAgICAgICBzZWxmLl9uZ2VucyA9IG4KKysg ICAgICAgIHNlbGYuX3Rlcm1fb3JkZXIgPSBvcmRlcgorIAorICAgICAgICAgUmluZy5fX2luaXRf XyhzZWxmLCBiYXNlX3JpbmcsIG5hbWVzLCBjYXRlZ29yeT1jYXRlZ29yeSkKKyAgICAgICAgIHNl bGYuX3BvcHVsYXRlX2NvZXJjaW9uX2xpc3RzXygpCitAQCAtNjczLDcgKzY3Myw3IEBAIGNkZWYg Y2xhc3MgTkNQb2x5bm9taWFsUmluZ19wbHVyYWwoUmluZyk6CisgICAgICAgICAgICAgc2FnZTog UC50ZXJtX29yZGVyKCkKKyAgICAgICAgICAgICBEZWdyZWUgcmV2ZXJzZSBsZXhpY29ncmFwaGlj IHRlcm0gb3JkZXIKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIHNlbGYuX190ZXJtX29y ZGVyCisrICAgICAgICByZXR1cm4gc2VsZi5fdGVybV9vcmRlcgorIAorICAgICBkZWYgaXNfY29t bXV0YXRpdmUoc2VsZik6CisgICAgICAgICAiIiIKK0BAIC03MjcsNyArNzI3LDcgQEAgY2RlZiBj bGFzcyBOQ1BvbHlub21pYWxSaW5nX3BsdXJhbChSaW5nKToKKyAgICAgICAgIGZyb20gc2FnZS5y ZXBsLnJpY2hfb3V0cHV0LmJhY2tlbmRfYmFzZSBpbXBvcnQgQmFja2VuZEJhc2UKKyAgICAgICAg IGZyb20gc2FnZS5yZXBsLmRpc3BsYXkucHJldHR5X3ByaW50IGltcG9ydCBTYWdlUHJldHR5UHJp bnRlcgorICAgICAgICAgdmFyc3RyID0gIiwgIi5qb2luKGNoYXJfdG9fc3RyKHJSaW5nVmFyKGks IHNlbGYuX3JpbmcpKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIHJhbmdl KHNlbGYuX19uZ2VucykpCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gcmFu Z2Uoc2VsZi5fbmdlbnMpKQorICAgICAgICAgYmFja2VuZCA9IEJhY2tlbmRCYXNlKCkKKyAgICAg ICAgIHJlbGF0aW9ucyA9IGJhY2tlbmQuX2FwcGx5X3ByZXR0eV9wcmludGVyKFNhZ2VQcmV0dHlQ cmludGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5yZWxhdGlvbnMoKSkKK0BAIC04MzAsNyArODMwLDcgQEAgY2RlZiBjbGFzcyBOQ1Bv bHlub21pYWxSaW5nX3BsdXJhbChSaW5nKToKKyAgICAgICAgICAgICBzYWdlOiBQLm5nZW5zKCkK KyAgICAgICAgICAgICAzCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBpbnQoc2VsZi5f X25nZW5zKQorKyAgICAgICAgcmV0dXJuIGludChzZWxmLl9uZ2VucykKKyAKKyAgICAgZGVmIGdl bihzZWxmLCBpbnQgbj0wKToKKyAgICAgICAgICIiIgorQEAgLTg1Nyw3ICs4NTcsNyBAQCBjZGVm IGNsYXNzIE5DUG9seW5vbWlhbFJpbmdfcGx1cmFsKFJpbmcpOgorICAgICAgICAgY2RlZiBwb2x5 ICpfcAorICAgICAgICAgY2RlZiByaW5nICpfcmluZyA9IHNlbGYuX3JpbmcKKyAKKy0gICAgICAg IGlmIG4gPCAwIG9yIG4gPj0gc2VsZi5fX25nZW5zOgorKyAgICAgICAgaWYgbiA8IDAgb3IgbiA+ PSBzZWxmLl9uZ2VuczoKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJHZW5lcmF0b3Ig bm90IGRlZmluZWQuIikKKyAKKyAgICAgICAgIHJDaGFuZ2VDdXJyUmluZyhfcmluZykKK0BAIC0y MzUyLDcgKzIzNTIsNyBAQCBjZGVmIGNsYXNzIE5DUG9seW5vbWlhbF9wbHVyYWwoUmluZ0VsZW1l bnQpOgorICAgICAgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6CisgICAgICAgICAgICAgICAgIHgg PSAoeCwpCisgCistICAgICAgICBpZiBsZW4oeCkgIT0gKDxOQ1BvbHlub21pYWxSaW5nX3BsdXJh bD5zZWxmLl9wYXJlbnQpLl9fbmdlbnM6CisrICAgICAgICBpZiBsZW4oeCkgIT0gKDxOQ1BvbHlu b21pYWxSaW5nX3BsdXJhbD5zZWxmLl9wYXJlbnQpLl9uZ2VuczoKKyAgICAgICAgICAgICByYWlz ZSBUeXBlRXJyb3IoInggbXVzdCBoYXZlIGxlbmd0aCBzZWxmLm5nZW5zKCkiKQorIAorICAgICAg ICAgbSA9IHBfSVNldCgxLHIpCitAQCAtMjg5MCw4ICsyODkwLDggQEAgY3BkZWYgTVBvbHlub21p YWxSaW5nX2xpYnNpbmd1bGFyIG5ld19DUmluZyhSaW5nV3JhcCBydywgYmFzZV9yaW5nKToKKyAK KyAgICAgc2VsZi5fcmluZy5TaG9ydE91dCA9IDAKKyAKKy0gICAgc2VsZi5fX25nZW5zID0gcncu bmdlbnMoKQorLSAgICBzZWxmLl9fdGVybV9vcmRlciA9ICBUZXJtT3JkZXIocncub3JkZXJpbmdf c3RyaW5nKCksIGZvcmNlPVRydWUpCisrICAgIHNlbGYuX25nZW5zID0gcncubmdlbnMoKQorKyAg ICBzZWxmLl90ZXJtX29yZGVyID0gIFRlcm1PcmRlcihydy5vcmRlcmluZ19zdHJpbmcoKSwgZm9y Y2U9VHJ1ZSkKKyAKKyAgICAgUGFyZW50V2l0aEdlbnMuX19pbml0X18oc2VsZiwgYmFzZV9yaW5n LCB0dXBsZShydy52YXJfbmFtZXMoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5v cm1hbGl6ZT1GYWxzZSkKK0BAIC0yOTYyLDggKzI5NjIsOCBAQCBjcGRlZiBOQ1BvbHlub21pYWxS aW5nX3BsdXJhbCBuZXdfTlJpbmcoUmluZ1dyYXAgcncsIGJhc2VfcmluZyk6CisgCisgICAgIHNl bGYuX3JpbmcuU2hvcnRPdXQgPSAwCisgCistICAgIHNlbGYuX19uZ2VucyA9IHJ3Lm5nZW5zKCkK Ky0gICAgc2VsZi5fX3Rlcm1fb3JkZXIgPSAgVGVybU9yZGVyKHJ3Lm9yZGVyaW5nX3N0cmluZygp LCBmb3JjZT1UcnVlKQorKyAgICBzZWxmLl9uZ2VucyA9IHJ3Lm5nZW5zKCkKKysgICAgc2VsZi5f dGVybV9vcmRlciA9ICBUZXJtT3JkZXIocncub3JkZXJpbmdfc3RyaW5nKCksIGZvcmNlPVRydWUp CisgCisgICAgIFBhcmVudFdpdGhHZW5zLl9faW5pdF9fKHNlbGYsIGJhc2VfcmluZywgcncudmFy X25hbWVzKCkpCisgIyAgICBzZWxmLl9wb3B1bGF0ZV9jb2VyY2lvbl9saXN0c18oKSAgIyA/Pz8K K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfY29tcGxl eF9hcmIucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2NvbXBsZXhf YXJiLnB4ZAoraW5kZXggYWE0ZTJhMWMwZGMuLmU1NGQ4NWU5NjFiIDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2NvbXBsZXhfYXJiLnB4ZAorKysrIGIv c3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2NvbXBsZXhfYXJiLnB4ZAorQEAg LTIsNSArMiw1IEBAIGZyb20gc2FnZS5saWJzLmFyYi5hY2JfcG9seSBjaW1wb3J0ICoKKyBmcm9t IHNhZ2UucmluZ3MucG9seW5vbWlhbC5wb2x5bm9taWFsX2VsZW1lbnQgY2ltcG9ydCBQb2x5bm9t aWFsCisgCisgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2NvbXBsZXhfYXJiKFBvbHlub21pYWwpOgor LSAgICBjZGVmIGFjYl9wb2x5X3N0cnVjdFsxXSBfX3BvbHkgIyBodHRwczovL2dpdGh1Yi5jb20v Y3l0aG9uL2N5dGhvbi9pc3N1ZXMvMTk4NAorKyAgICBjZGVmIGFjYl9wb2x5X3N0cnVjdFsxXSBf cG9seSAjIGh0dHBzOi8vZ2l0aHViLmNvbS9jeXRob24vY3l0aG9uL2lzc3Vlcy8xOTg0CisgICAg IGNkZWYgUG9seW5vbWlhbF9jb21wbGV4X2FyYiBfbmV3KHNlbGYpCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2NvbXBsZXhfYXJiLnB5eCBiL3NyYy9z YWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9jb21wbGV4X2FyYi5weXgKK2luZGV4IGU1 MTI2OGI0YjU0Li41N2MxYTUyZWRlNCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlu b21pYWwvcG9seW5vbWlhbF9jb21wbGV4X2FyYi5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3Bv bHlub21pYWwvcG9seW5vbWlhbF9jb21wbGV4X2FyYi5weXgKK0BAIC03NSw3ICs3NSw3IEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgICAg ICBzYWdlOiBDb21wbGV4QmFsbEZpZWxkKDIpWyd5J10oKQorICAgICAgICAgICAgIDAKKyAgICAg ICAgICIiIgorLSAgICAgICAgYWNiX3BvbHlfaW5pdChzZWxmLl9fcG9seSkKKysgICAgICAgIGFj Yl9wb2x5X2luaXQoc2VsZi5fcG9seSkKKyAKKyAgICAgZGVmIF9fZGVhbGxvY19fKHNlbGYpOgor ICAgICAgICAgciIiIgorQEAgLTg0LDcgKzg0LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2Nv bXBsZXhfYXJiKFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHNhZ2U6IHBvbCA9IENCRlsneCdd KCkKKyAgICAgICAgICAgICBzYWdlOiBkZWwgcG9sCisgICAgICAgICAiIiIKKy0gICAgICAgIGFj Yl9wb2x5X2NsZWFyKHNlbGYuX19wb2x5KQorKyAgICAgICAgYWNiX3BvbHlfY2xlYXIoc2VsZi5f cG9seSkKKyAKKyAgICAgY2RlZiBQb2x5bm9taWFsX2NvbXBsZXhfYXJiIF9uZXcoc2VsZik6Cisg ICAgICAgICByIiIiCitAQCAtMTQwLDQ5ICsxNDAsNDkgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFs X2NvbXBsZXhfYXJiKFBvbHlub21pYWwpOgorICAgICAgICAgUG9seW5vbWlhbC5fX2luaXRfXyhz ZWxmLCBwYXJlbnQsIGlzX2dlbj1pc19nZW4pCisgCisgICAgICAgICBpZiBpc19nZW46CistICAg ICAgICAgICAgYWNiX3BvbHlfc2V0X2NvZWZmX3NpKHNlbGYuX19wb2x5LCAxLCAxKQorKyAgICAg ICAgICAgIGFjYl9wb2x5X3NldF9jb2VmZl9zaShzZWxmLl9wb2x5LCAxLCAxKQorICAgICAgICAg ZWxpZiB4IGlzIE5vbmU6CistICAgICAgICAgICAgYWNiX3BvbHlfemVybyhzZWxmLl9fcG9seSkK KysgICAgICAgICAgICBhY2JfcG9seV96ZXJvKHNlbGYuX3BvbHkpCisgICAgICAgICBlbGlmIGlz aW5zdGFuY2UoeCwgUG9seW5vbWlhbF9jb21wbGV4X2FyYik6CistICAgICAgICAgICAgYWNiX3Bv bHlfc2V0KHNlbGYuX19wb2x5LCAoPFBvbHlub21pYWxfY29tcGxleF9hcmI+IHgpLl9fcG9seSkK KysgICAgICAgICAgICBhY2JfcG9seV9zZXQoc2VsZi5fcG9seSwgKDxQb2x5bm9taWFsX2NvbXBs ZXhfYXJiPiB4KS5fcG9seSkKKyAgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh4LCBDb21wbGV4QmFs bCk6CistICAgICAgICAgICAgYWNiX3BvbHlfc2V0X2NvZWZmX2FjYihzZWxmLl9fcG9seSwgMCwg KDxDb21wbGV4QmFsbD4geCkudmFsdWUpCisrICAgICAgICAgICAgYWNiX3BvbHlfc2V0X2NvZWZm X2FjYihzZWxmLl9wb2x5LCAwLCAoPENvbXBsZXhCYWxsPiB4KS52YWx1ZSkKKyAgICAgICAgIGVs c2U6CisgICAgICAgICAgICAgQ29lZmYgPSBwYXJlbnQuYmFzZV9yaW5nKCkKKyAgICAgICAgICAg ICBpZiBpc2luc3RhbmNlKHgsIGxpc3QpOgorICAgICAgICAgICAgICAgICBsc3QgPSA8bGlzdD4g eAorICAgICAgICAgICAgICAgICBsZW5ndGggPSBsZW4obHN0KQorLSAgICAgICAgICAgICAgICBz aWdfb24oKTsgYWNiX3BvbHlfZml0X2xlbmd0aChzZWxmLl9fcG9seSwgbGVuZ3RoKTsgc2lnX29m ZigpCisrICAgICAgICAgICAgICAgIHNpZ19vbigpOyBhY2JfcG9seV9maXRfbGVuZ3RoKHNlbGYu X3BvbHksIGxlbmd0aCk7IHNpZ19vZmYoKQorICAgICAgICAgICAgICAgICBmb3IgaSBpbiByYW5n ZShsZW5ndGgpOgorICAgICAgICAgICAgICAgICAgICAgYmFsbCA9IENvZWZmKGxzdFtpXSkKKy0g ICAgICAgICAgICAgICAgICAgIGFjYl9wb2x5X3NldF9jb2VmZl9hY2Ioc2VsZi5fX3BvbHksIGks IGJhbGwudmFsdWUpCisrICAgICAgICAgICAgICAgICAgICBhY2JfcG9seV9zZXRfY29lZmZfYWNi KHNlbGYuX3BvbHksIGksIGJhbGwudmFsdWUpCisgICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNl KHgsIHR1cGxlKToKKyAgICAgICAgICAgICAgICAgdHBsID0gPHR1cGxlPiB4CisgICAgICAgICAg ICAgICAgIGxlbmd0aCA9IGxlbih0cGwpCistICAgICAgICAgICAgICAgIHNpZ19vbigpOyBhY2Jf cG9seV9maXRfbGVuZ3RoKHNlbGYuX19wb2x5LCBsZW5ndGgpOyBzaWdfb2ZmKCkKKysgICAgICAg ICAgICAgICAgc2lnX29uKCk7IGFjYl9wb2x5X2ZpdF9sZW5ndGgoc2VsZi5fcG9seSwgbGVuZ3Ro KTsgc2lnX29mZigpCisgICAgICAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKGxlbmd0aCk6Cisg ICAgICAgICAgICAgICAgICAgICBiYWxsID0gQ29lZmYodHBsW2ldKQorLSAgICAgICAgICAgICAg ICAgICAgYWNiX3BvbHlfc2V0X2NvZWZmX2FjYihzZWxmLl9fcG9seSwgaSwgYmFsbC52YWx1ZSkK KysgICAgICAgICAgICAgICAgICAgIGFjYl9wb2x5X3NldF9jb2VmZl9hY2Ioc2VsZi5fcG9seSwg aSwgYmFsbC52YWx1ZSkKKyAgICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoeCwgUG9seW5vbWlh bCk6CisgICAgICAgICAgICAgICAgIHBvbCA9IDxQb2x5bm9taWFsPiB4CisgICAgICAgICAgICAg ICAgIGxlbmd0aCA9IHBvbC5kZWdyZWUoKSArIDEKKy0gICAgICAgICAgICAgICAgc2lnX29uKCk7 IGFjYl9wb2x5X2ZpdF9sZW5ndGgoc2VsZi5fX3BvbHksIGxlbmd0aCk7IHNpZ19vZmYoKQorKyAg ICAgICAgICAgICAgICBzaWdfb24oKTsgYWNiX3BvbHlfZml0X2xlbmd0aChzZWxmLl9wb2x5LCBs ZW5ndGgpOyBzaWdfb2ZmKCkKKyAgICAgICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UobGVuZ3Ro KToKKyAgICAgICAgICAgICAgICAgICAgIGJhbGwgPSBDb2VmZihwb2wuZ2V0X3Vuc2FmZShpKSkK Ky0gICAgICAgICAgICAgICAgICAgIGFjYl9wb2x5X3NldF9jb2VmZl9hY2Ioc2VsZi5fX3BvbHks IGksIGJhbGwudmFsdWUpCisrICAgICAgICAgICAgICAgICAgICBhY2JfcG9seV9zZXRfY29lZmZf YWNiKHNlbGYuX3BvbHksIGksIGJhbGwudmFsdWUpCisgICAgICAgICAgICAgZWxpZiBpc2luc3Rh bmNlKHgsIGRpY3QpOgorICAgICAgICAgICAgICAgICBkY3QgPSA8ZGljdD4geAorICAgICAgICAg ICAgICAgICBpZiBsZW4oZGN0KSA9PSAwOgorLSAgICAgICAgICAgICAgICAgICAgYWNiX3BvbHlf emVybyhzZWxmLl9fcG9seSkKKysgICAgICAgICAgICAgICAgICAgIGFjYl9wb2x5X3plcm8oc2Vs Zi5fcG9seSkKKyAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgIGxl bmd0aCA9IG1heChpbnQoaSkgZm9yIGkgaW4gZGN0KSArIDEKKy0gICAgICAgICAgICAgICAgICAg IHNpZ19vbigpOyBhY2JfcG9seV9maXRfbGVuZ3RoKHNlbGYuX19wb2x5LCBsZW5ndGgpOyBzaWdf b2ZmKCkKKysgICAgICAgICAgICAgICAgICAgIHNpZ19vbigpOyBhY2JfcG9seV9maXRfbGVuZ3Ro KHNlbGYuX3BvbHksIGxlbmd0aCk7IHNpZ19vZmYoKQorICAgICAgICAgICAgICAgICAgICAgZm9y IGksIGMgaW4gZGN0Lml0ZXJpdGVtcygpOgorICAgICAgICAgICAgICAgICAgICAgICAgIGJhbGwg PSBDb2VmZihjKQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFjYl9wb2x5X3NldF9jb2VmZl9h Y2Ioc2VsZi5fX3BvbHksIGksIGJhbGwudmFsdWUpCisrICAgICAgICAgICAgICAgICAgICAgICAg YWNiX3BvbHlfc2V0X2NvZWZmX2FjYihzZWxmLl9wb2x5LCBpLCBiYWxsLnZhbHVlKQorICAgICAg ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIGJhbGwgPSBDb2VmZih4KQorLSAgICAgICAg ICAgICAgICBhY2JfcG9seV9zZXRfY29lZmZfYWNiKHNlbGYuX19wb2x5LCAwLCBiYWxsLnZhbHVl KQorKyAgICAgICAgICAgICAgICBhY2JfcG9seV9zZXRfY29lZmZfYWNiKHNlbGYuX3BvbHksIDAs IGJhbGwudmFsdWUpCisgCisgICAgIGRlZiBfX3JlZHVjZV9fKHNlbGYpOgorICAgICAgICAgciIi IgorQEAgLTIxOSwxMiArMjE5LDEyIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2Fy YihQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdlOiBQb2woWzEsIDAsIDAsIDBdKS5kZWdy ZWUoKQorICAgICAgICAgICAgIDAKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIHNtYWxs SW50ZWdlcihhY2JfcG9seV9kZWdyZWUoc2VsZi5fX3BvbHkpKQorKyAgICAgICAgcmV0dXJuIHNt YWxsSW50ZWdlcihhY2JfcG9seV9kZWdyZWUoc2VsZi5fcG9seSkpCisgCisgICAgIGNkZWYgZ2V0 X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IG4pOgorICAgICAgICAgY2RlZiBDb21wbGV4QmFsbCBy ZXMgPSBDb21wbGV4QmFsbC5fX25ld19fKENvbXBsZXhCYWxsKQorICAgICAgICAgcmVzLl9wYXJl bnQgPSBzZWxmLl9wYXJlbnQuX2Jhc2UKKy0gICAgICAgIGFjYl9wb2x5X2dldF9jb2VmZl9hY2Io cmVzLnZhbHVlLCBzZWxmLl9fcG9seSwgbikKKysgICAgICAgIGFjYl9wb2x5X2dldF9jb2VmZl9h Y2IocmVzLnZhbHVlLCBzZWxmLl9wb2x5LCBuKQorICAgICAgICAgcmV0dXJuIHJlcworIAorICAg ICBjcGRlZiBsaXN0IGxpc3Qoc2VsZiwgYmludCBjb3B5PVRydWUpOgorQEAgLTI0MSw3ICsyNDEs NyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAg ICAgICAgICAgc2FnZTogUG9sKFswLCAxLCBSQkYoMCwgcmFkPS4xKSwgMF0pLmxpc3QoKQorICAg ICAgICAgICAgIFswLCAxLjAwMDAwMDAwMDAwMDAwMCwgWysvLSAwLjEwMV1dCisgICAgICAgICAi IiIKKy0gICAgICAgIGNkZWYgdW5zaWduZWQgbG9uZyBsZW5ndGggPSBhY2JfcG9seV9sZW5ndGgo c2VsZi5fX3BvbHkpCisrICAgICAgICBjZGVmIHVuc2lnbmVkIGxvbmcgbGVuZ3RoID0gYWNiX3Bv bHlfbGVuZ3RoKHNlbGYuX3BvbHkpCisgICAgICAgICByZXR1cm4gW3NlbGYuZ2V0X3Vuc2FmZShu KSBmb3IgbiBpbiByYW5nZShsZW5ndGgpXQorIAorICAgICBkZWYgX19ib29sX18oc2VsZik6CitA QCAtMjU3LDcgKzI1Nyw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2x5 bm9taWFsKToKKyAgICAgICAgICAgICBzYWdlOiBib29sKHopCisgICAgICAgICAgICAgVHJ1ZQor ICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gYWNiX3BvbHlfbGVuZ3RoKHNlbGYuX19wb2x5 KQorKyAgICAgICAgcmV0dXJuIGFjYl9wb2x5X2xlbmd0aChzZWxmLl9wb2x5KQorIAorICAgICAj IFJpbmcgYW5kIEV1Y2xpZGVhbiBhcml0aG1ldGljCisgCitAQCAtMjc0LDkgKzI3NCw5IEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgIGNk ZWYgUG9seW5vbWlhbF9jb21wbGV4X2FyYiByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgc2ln X29uKCkKKyAgICAgICAgIGFjYl9wb2x5X2FkZCgKKy0gICAgICAgICAgICAgICAgcmVzLl9fcG9s eSwKKy0gICAgICAgICAgICAgICAgc2VsZi5fX3BvbHksCistICAgICAgICAgICAgICAgICg8UG9s eW5vbWlhbF9jb21wbGV4X2FyYj4gb3RoZXIpLl9fcG9seSwKKysgICAgICAgICAgICAgICAgcmVz Ll9wb2x5LAorKyAgICAgICAgICAgICAgICBzZWxmLl9wb2x5LAorKyAgICAgICAgICAgICAgICAo PFBvbHlub21pYWxfY29tcGxleF9hcmI+IG90aGVyKS5fcG9seSwKKyAgICAgICAgICAgICAgICAg cHJlYyhzZWxmKSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworQEAg LTI5Myw3ICsyOTMsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5v bWlhbCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9jb21wbGV4X2Fy YiByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGFjYl9wb2x5 X25lZyhyZXMuX19wb2x5LCBzZWxmLl9fcG9seSkKKysgICAgICAgIGFjYl9wb2x5X25lZyhyZXMu X3BvbHksIHNlbGYuX3BvbHkpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiBy ZXMKKyAKK0BAIC0zMTAsOSArMzEwLDkgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2NvbXBsZXhf YXJiKFBvbHlub21pYWwpOgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2NvbXBsZXhfYXJiIHJl cyA9IHNlbGYuX25ldygpCisgICAgICAgICBzaWdfb24oKQorICAgICAgICAgYWNiX3BvbHlfc3Vi KAorLSAgICAgICAgICAgICAgICByZXMuX19wb2x5LAorLSAgICAgICAgICAgICAgICBzZWxmLl9f cG9seSwKKy0gICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX2NvbXBsZXhfYXJiPiBvdGhlciku X19wb2x5LAorKyAgICAgICAgICAgICAgICByZXMuX3BvbHksCisrICAgICAgICAgICAgICAgIHNl bGYuX3BvbHksCisrICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9jb21wbGV4X2FyYj4gb3Ro ZXIpLl9wb2x5LAorICAgICAgICAgICAgICAgICBwcmVjKHNlbGYpKQorICAgICAgICAgc2lnX29m ZigpCisgICAgICAgICByZXR1cm4gcmVzCitAQCAtMzMxLDkgKzMzMSw5IEBAIGNkZWYgY2xhc3Mg UG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgIGNkZWYgUG9seW5v bWlhbF9jb21wbGV4X2FyYiByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgc2lnX29uKCkKKyAg ICAgICAgIGFjYl9wb2x5X211bCgKKy0gICAgICAgICAgICAgICAgcmVzLl9fcG9seSwKKy0gICAg ICAgICAgICAgICAgc2VsZi5fX3BvbHksCistICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9j b21wbGV4X2FyYj4gb3RoZXIpLl9fcG9seSwKKysgICAgICAgICAgICAgICAgcmVzLl9wb2x5LAor KyAgICAgICAgICAgICAgICBzZWxmLl9wb2x5LAorKyAgICAgICAgICAgICAgICAoPFBvbHlub21p YWxfY29tcGxleF9hcmI+IG90aGVyKS5fcG9seSwKKyAgICAgICAgICAgICAgICAgcHJlYyhzZWxm KSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworQEAgLTM1NCw3ICsz NTQsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9jb21wbGV4X2FyYiByZXMgPSBz ZWxmLl9uZXcoKQorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGFjYl9wb2x5X3NjYWxhcl9t dWwocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksICg8Q29tcGxleEJhbGw+IGEpLnZhbHVlLCBwcmVj KHNlbGYpKQorKyAgICAgICAgYWNiX3BvbHlfc2NhbGFyX211bChyZXMuX3BvbHksIHNlbGYuX3Bv bHksICg8Q29tcGxleEJhbGw+IGEpLnZhbHVlLCBwcmVjKHNlbGYpKQorICAgICAgICAgc2lnX29m ZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtNDA5LDggKzQwOSw4IEBAIGNkZWYgY2xh c3MgUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgIGNkZWYgUG9s eW5vbWlhbF9jb21wbGV4X2FyYiBxdW8gPSBzZWxmLl9uZXcoKQorICAgICAgICAgY2RlZiBQb2x5 bm9taWFsX2NvbXBsZXhfYXJiIHJlbSA9IHNlbGYuX25ldygpCisgICAgICAgICBzaWdfb24oKQor LSAgICAgICAgY2RlZiBiaW50IHN1Y2Nlc3MgPSBhY2JfcG9seV9kaXZyZW0ocXVvLl9fcG9seSwg cmVtLl9fcG9seSwgc2VsZi5fX3BvbHksCistICAgICAgICAgICAgICAgIGRpdi5fX3BvbHksIHBy ZWMoc2VsZikpCisrICAgICAgICBjZGVmIGJpbnQgc3VjY2VzcyA9IGFjYl9wb2x5X2RpdnJlbShx dW8uX3BvbHksIHJlbS5fcG9seSwgc2VsZi5fcG9seSwKKysgICAgICAgICAgICAgICAgZGl2Ll9w b2x5LCBwcmVjKHNlbGYpKQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICBpZiBzdWNjZXNz OgorICAgICAgICAgICAgIHJldHVybiBxdW8sIHJlbQorQEAgLTQ0NSwxNSArNDQ1LDE1IEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgIGlm IG4gPCAwOgorICAgICAgICAgICAgIG4gPSAwCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAg YWNiX3BvbHlfc2V0KHJlcy5fX3BvbHksIHNlbGYuX19wb2x5KQorLSAgICAgICAgYWNiX3BvbHlf dHJ1bmNhdGUocmVzLl9fcG9seSwgbikKKysgICAgICAgIGFjYl9wb2x5X3NldChyZXMuX3BvbHks IHNlbGYuX3BvbHkpCisrICAgICAgICBhY2JfcG9seV90cnVuY2F0ZShyZXMuX3BvbHksIG4pCisg ICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKKyAgICAgY2RlZiBfaW5w bGFjZV90cnVuY2F0ZShzZWxmLCBsb25nIG4pOgorICAgICAgICAgaWYgbiA8IDA6CisgICAgICAg ICAgICAgbiA9IDAKKy0gICAgICAgIGFjYl9wb2x5X3RydW5jYXRlKHNlbGYuX19wb2x5LCBuKQor KyAgICAgICAgYWNiX3BvbHlfdHJ1bmNhdGUoc2VsZi5fcG9seSwgbikKKyAgICAgICAgIHJldHVy biBzZWxmCisgCisgICAgIGRlZiBfX2xzaGlmdF9fKHZhbCwgbik6CitAQCAtNDg1LDcgKzQ4NSw3 IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAg ICAgIGNkZWYgUG9seW5vbWlhbF9jb21wbGV4X2FyYiBzZWxmID0gKDxQb2x5bm9taWFsX2NvbXBs ZXhfYXJiPiB2YWwpCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfY29tcGxleF9hcmIgcmVzID0g c2VsZi5fbmV3KCkKKyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBhY2JfcG9seV9zaGlmdF9s ZWZ0KHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBuKQorKyAgICAgICAgYWNiX3BvbHlfc2hpZnRf bGVmdChyZXMuX3BvbHksIHNlbGYuX3BvbHksIG4pCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAg ICAgIHJldHVybiByZXMKKyAKK0BAIC01MTgsNyArNTE4LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9t aWFsX2NvbXBsZXhfYXJiKFBvbHlub21pYWwpOgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2Nv bXBsZXhfYXJiIHNlbGYgPSAoPFBvbHlub21pYWxfY29tcGxleF9hcmI+IHZhbCkKKyAgICAgICAg IGNkZWYgUG9seW5vbWlhbF9jb21wbGV4X2FyYiByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAg c2lnX29uKCkKKy0gICAgICAgIGFjYl9wb2x5X3NoaWZ0X3JpZ2h0KHJlcy5fX3BvbHksIHNlbGYu X19wb2x5LCBuKQorKyAgICAgICAgYWNiX3BvbHlfc2hpZnRfcmlnaHQocmVzLl9wb2x5LCBzZWxm Ll9wb2x5LCBuKQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitA QCAtNTQ4LDcgKzU0OCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2x5 bm9taWFsKToKKyAgICAgICAgIGlmIG4gPCAwOgorICAgICAgICAgICAgIG4gPSAwCisgICAgICAg ICBzaWdfb24oKQorLSAgICAgICAgYWNiX3BvbHlfbXVsbG93KHJlcy5fX3BvbHksIHNlbGYuX19w b2x5LCBteV9vdGhlci5fX3BvbHksIG4sIHByZWMoc2VsZikpCisrICAgICAgICBhY2JfcG9seV9t dWxsb3cocmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBteV9vdGhlci5fcG9seSwgbiwgcHJlYyhzZWxm KSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTU3Niw3 ICs1NzYsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6 CisgICAgICAgICBpZiBuIDwgMDoKKyAgICAgICAgICAgICBuID0gMAorICAgICAgICAgc2lnX29u KCkKKy0gICAgICAgIGFjYl9wb2x5X2ludl9zZXJpZXMocmVzLl9fcG9seSwgc2VsZi5fX3BvbHks IG4sIHByZWMoc2VsZikpCisrICAgICAgICBhY2JfcG9seV9pbnZfc2VyaWVzKHJlcy5fcG9seSwg c2VsZi5fcG9seSwgbiwgcHJlYyhzZWxmKSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAg cmV0dXJuIHJlcworIAorQEAgLTYxMiw3ICs2MTIsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxf Y29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAgICBpZiBuIDwgMDoKKyAgICAgICAgICAg ICBuID0gMAorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGFjYl9wb2x5X3Bvd191aV90cnVu Y19iaW5leHAocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIGV4cG8sIG4sIHByZWMoc2VsZikpCisr ICAgICAgICBhY2JfcG9seV9wb3dfdWlfdHJ1bmNfYmluZXhwKHJlcy5fcG9seSwgc2VsZi5fcG9s eSwgZXhwbywgbiwgcHJlYyhzZWxmKSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0 dXJuIHJlcworIAorQEAgLTY0OCw3ICs2NDgsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfY29t cGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAgICBpZiBuIDwgMDoKKyAgICAgICAgICAgICBu ID0gMAorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGFjYl9wb2x5X2xvZ19zZXJpZXMocmVz Ll9fcG9seSwgc2VsZi5fX3BvbHksIG4sIHByZWMoc2VsZikpCisrICAgICAgICBhY2JfcG9seV9s b2dfc2VyaWVzKHJlcy5fcG9seSwgc2VsZi5fcG9seSwgbiwgcHJlYyhzZWxmKSkKKyAgICAgICAg IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTY3Miw3ICs2NzIsNyBAQCBj ZGVmIGNsYXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAgICBp ZiBuIDwgMDoKKyAgICAgICAgICAgICBuID0gMAorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAg IGFjYl9wb2x5X2V4cF9zZXJpZXMocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIG4sIHByZWMoc2Vs ZikpCisrICAgICAgICBhY2JfcG9seV9leHBfc2VyaWVzKHJlcy5fcG9seSwgc2VsZi5fcG9seSwg biwgcHJlYyhzZWxmKSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcwor IAorQEAgLTY5Nyw3ICs2OTcsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIo UG9seW5vbWlhbCk6CisgICAgICAgICBpZiBuIDwgMDoKKyAgICAgICAgICAgICBuID0gMAorICAg ICAgICAgc2lnX29uKCkKKy0gICAgICAgIGFjYl9wb2x5X3NxcnRfc2VyaWVzKHJlcy5fX3BvbHks IHNlbGYuX19wb2x5LCBuLCBwcmVjKHNlbGYpKQorKyAgICAgICAgYWNiX3BvbHlfc3FydF9zZXJp ZXMocmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBuLCBwcmVjKHNlbGYpKQorICAgICAgICAgc2lnX29m ZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtNzE2LDcgKzcxNiw3IEBAIGNkZWYgY2xh c3MgUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgIGlmIG4gPCAw OgorICAgICAgICAgICAgIG4gPSAwCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgYWNiX3Bv bHlfZ2FtbWFfc2VyaWVzKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBuLCBwcmVjKHNlbGYpKQor KyAgICAgICAgYWNiX3BvbHlfZ2FtbWFfc2VyaWVzKHJlcy5fcG9seSwgc2VsZi5fcG9seSwgbiwg cHJlYyhzZWxmKSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAor QEAgLTczNSw3ICs3MzUsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9s eW5vbWlhbCk6CisgICAgICAgICBpZiBuIDwgMDoKKyAgICAgICAgICAgICBuID0gMAorICAgICAg ICAgc2lnX29uKCkKKy0gICAgICAgIGFjYl9wb2x5X2xnYW1tYV9zZXJpZXMocmVzLl9fcG9seSwg c2VsZi5fX3BvbHksIG4sIHByZWMoc2VsZikpCisrICAgICAgICBhY2JfcG9seV9sZ2FtbWFfc2Vy aWVzKHJlcy5fcG9seSwgc2VsZi5fcG9seSwgbiwgcHJlYyhzZWxmKSkKKyAgICAgICAgIHNpZ19v ZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTc1NCw3ICs3NTQsNyBAQCBjZGVmIGNs YXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAgICBpZiBuIDwg MDoKKyAgICAgICAgICAgICBuID0gMAorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGFjYl9w b2x5X3JnYW1tYV9zZXJpZXMocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIG4sIHByZWMoc2VsZikp CisrICAgICAgICBhY2JfcG9seV9yZ2FtbWFfc2VyaWVzKHJlcy5fcG9seSwgc2VsZi5fcG9seSwg biwgcHJlYyhzZWxmKSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcwor IAorQEAgLTc4NCw3ICs3ODQsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIo UG9seW5vbWlhbCk6CisgICAgICAgICBpZiBuIDwgMDoKKyAgICAgICAgICAgICBuID0gMAorICAg ICAgICAgc2lnX29uKCkKKy0gICAgICAgIGFjYl9wb2x5X2xhbWJlcnR3X3NlcmllcyhyZXMuX19w b2x5LCBzZWxmLl9fcG9seSwgX2JyYW5jaCwgMCwgbiwgcHJlYyhzZWxmKSkKKysgICAgICAgIGFj Yl9wb2x5X2xhbWJlcnR3X3NlcmllcyhyZXMuX3BvbHksIHNlbGYuX3BvbHksIF9icmFuY2gsIDAs IG4sIHByZWMoc2VsZikpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIGZtcHpfY2xlYXIo X2JyYW5jaCkKKyAgICAgICAgIHJldHVybiByZXMKK0BAIC04MTQsNyArODE0LDcgQEAgY2RlZiBj bGFzcyBQb2x5bm9taWFsX2NvbXBsZXhfYXJiKFBvbHlub21pYWwpOgorICAgICAgICAgY2RlZiBD b21wbGV4QmFsbCBfYSA9IDxDb21wbGV4QmFsbD4gKHNlbGYuX3BhcmVudC5fYmFzZS5jb2VyY2Uo YSkpCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfY29tcGxleF9hcmIgcmVzID0gc2VsZi5fbmV3 KCkKKyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBhY2JfcG9seV96ZXRhX3NlcmllcyhyZXMu X19wb2x5LCBzZWxmLl9fcG9seSwgX2EudmFsdWUsIGRlZmxhdGUsIG4sIHByZWMoc2VsZikpCisr ICAgICAgICBhY2JfcG9seV96ZXRhX3NlcmllcyhyZXMuX3BvbHksIHNlbGYuX3BvbHksIF9hLnZh bHVlLCBkZWZsYXRlLCBuLCBwcmVjKHNlbGYpKQorICAgICAgICAgc2lnX29mZigpCisgICAgICAg ICByZXR1cm4gcmVzCisgCitAQCAtODQ2LDI0ICs4NDYsMjQgQEAgY2RlZiBjbGFzcyBQb2x5bm9t aWFsX2NvbXBsZXhfYXJiKFBvbHlub21pYWwpOgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2Nv bXBsZXhfYXJiIHJlcyA9IHNlbGYuX25ldygpCisgICAgICAgICBjZGVmIGFjYl9wb2x5X3Qgc2Vs Zl90cywgb3RoZXJfdHMKKyAgICAgICAgIGNkZWYgYWNiX3B0ciBjYworLSAgICAgICAgaWYgYWNi X3BvbHlfbGVuZ3RoKG90aGVyMS5fX3BvbHkpID4gMDoKKy0gICAgICAgICAgICBjYyA9IGFjYl9w b2x5X2dldF9jb2VmZl9wdHIob3RoZXIxLl9fcG9seSwgMCkKKysgICAgICAgIGlmIGFjYl9wb2x5 X2xlbmd0aChvdGhlcjEuX3BvbHkpID4gMDoKKysgICAgICAgICAgICBjYyA9IGFjYl9wb2x5X2dl dF9jb2VmZl9wdHIob3RoZXIxLl9wb2x5LCAwKQorICAgICAgICAgICAgIGlmIG5vdCBhY2JfaXNf emVybyhjYyk6CisgICAgICAgICAgICAgICAgIHNpZ19vbigpCisgICAgICAgICAgICAgICAgIHRy eToKKyAgICAgICAgICAgICAgICAgICAgIGFjYl9wb2x5X2luaXQoc2VsZl90cykKKyAgICAgICAg ICAgICAgICAgICAgIGFjYl9wb2x5X2luaXQob3RoZXJfdHMpCistICAgICAgICAgICAgICAgICAg ICBhY2JfcG9seV90YXlsb3Jfc2hpZnQoc2VsZl90cywgc2VsZi5fX3BvbHksIGNjLCBwcmVjKHNl bGYpKQorLSAgICAgICAgICAgICAgICAgICAgYWNiX3BvbHlfc2V0KG90aGVyX3RzLCBvdGhlcjEu X19wb2x5KQorKyAgICAgICAgICAgICAgICAgICAgYWNiX3BvbHlfdGF5bG9yX3NoaWZ0KHNlbGZf dHMsIHNlbGYuX3BvbHksIGNjLCBwcmVjKHNlbGYpKQorKyAgICAgICAgICAgICAgICAgICAgYWNi X3BvbHlfc2V0KG90aGVyX3RzLCBvdGhlcjEuX3BvbHkpCisgICAgICAgICAgICAgICAgICAgICBh Y2JfemVybyhhY2JfcG9seV9nZXRfY29lZmZfcHRyKG90aGVyX3RzLCAwKSkKKy0gICAgICAgICAg ICAgICAgICAgIGFjYl9wb2x5X2NvbXBvc2Vfc2VyaWVzKHJlcy5fX3BvbHksIHNlbGZfdHMsIG90 aGVyX3RzLCBuLCBwcmVjKHNlbGYpKQorKyAgICAgICAgICAgICAgICAgICAgYWNiX3BvbHlfY29t cG9zZV9zZXJpZXMocmVzLl9wb2x5LCBzZWxmX3RzLCBvdGhlcl90cywgbiwgcHJlYyhzZWxmKSkK KyAgICAgICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICAgICAgIGFjYl9wb2x5 X2NsZWFyKG90aGVyX3RzKQorICAgICAgICAgICAgICAgICAgICAgYWNiX3BvbHlfY2xlYXIoc2Vs Zl90cykKKyAgICAgICAgICAgICAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgICAgICAgICBy ZXR1cm4gcmVzCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgYWNiX3BvbHlfY29tcG9zZV9z ZXJpZXMocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIG90aGVyMS5fX3BvbHksIG4sIHByZWMoc2Vs ZikpCisrICAgICAgICBhY2JfcG9seV9jb21wb3NlX3NlcmllcyhyZXMuX3BvbHksIHNlbGYuX3Bv bHksIG90aGVyMS5fcG9seSwgbiwgcHJlYyhzZWxmKSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAg ICAgICAgcmV0dXJuIHJlcworIAorQEAgLTg5NSwxMiArODk1LDEyIEBAIGNkZWYgY2xhc3MgUG9s eW5vbWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgIGNkZWYgUG9seW5vbWlh bF9jb21wbGV4X2FyYiByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgaWYgbiA8IDA6CisgICAg ICAgICAgICAgbiA9IDAKKy0gICAgICAgIGlmIG5vdCBhY2JfaXNfemVybyhhY2JfcG9seV9nZXRf Y29lZmZfcHRyKHNlbGYuX19wb2x5LCAwKSk6CisrICAgICAgICBpZiBub3QgYWNiX2lzX3plcm8o YWNiX3BvbHlfZ2V0X2NvZWZmX3B0cihzZWxmLl9wb2x5LCAwKSk6CisgICAgICAgICAgICAgcmFp c2UgVmFsdWVFcnJvcigidGhlIGNvbnN0YW50IGNvZWZmaWNpZW50IG11c3QgYmUgemVybyIpCist ICAgICAgICBpZiBhY2JfY29udGFpbnNfemVybyhhY2JfcG9seV9nZXRfY29lZmZfcHRyKHNlbGYu X19wb2x5LCAxKSk6CisrICAgICAgICBpZiBhY2JfY29udGFpbnNfemVybyhhY2JfcG9seV9nZXRf Y29lZmZfcHRyKHNlbGYuX3BvbHksIDEpKToKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y KCJ0aGUgbGluZWFyIHRlcm0gbXVzdCBiZSBub256ZXJvIikKKyAgICAgICAgIHNpZ19vbigpCist ICAgICAgICBhY2JfcG9seV9yZXZlcnRfc2VyaWVzKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBu LCBwcmVjKHNlbGYpKQorKyAgICAgICAgYWNiX3BvbHlfcmV2ZXJ0X3NlcmllcyhyZXMuX3BvbHks IHNlbGYuX3BvbHksIG4sIHByZWMoc2VsZikpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAg IHJldHVybiByZXMKKyAKK0BAIC05MzgsMTUgKzkzOCwxNSBAQCBjZGVmIGNsYXNzIFBvbHlub21p YWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgICAgIGJhbGwgPSBDb21w bGV4QmFsbC5fX25ld19fKENvbXBsZXhCYWxsKQorICAgICAgICAgICAgICAgICBiYWxsLl9wYXJl bnQgPSBzZWxmLl9wYXJlbnQuX2Jhc2UKKyAgICAgICAgICAgICAgICAgc2lnX29uKCkKKy0gICAg ICAgICAgICAgICAgYWNiX3BvbHlfZXZhbHVhdGUoYmFsbC52YWx1ZSwgc2VsZi5fX3BvbHksCisr ICAgICAgICAgICAgICAgIGFjYl9wb2x5X2V2YWx1YXRlKGJhbGwudmFsdWUsIHNlbGYuX3BvbHks CisgICAgICAgICAgICAgICAgICAgICAgICAgKDxDb21wbGV4QmFsbD4gcG9pbnQpLnZhbHVlLCBw cmVjKHNlbGYpKQorICAgICAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgICAgICAgICAg cmV0dXJuIGJhbGwKKyAgICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UocG9pbnQsIFBvbHlub21p YWxfY29tcGxleF9hcmIpOgorICAgICAgICAgICAgICAgICBwb2x5ID0gKDxQb2x5bm9taWFsX2Nv bXBsZXhfYXJiPiBwb2ludCkuX25ldygpCisgICAgICAgICAgICAgICAgIHNpZ19vbigpCistICAg ICAgICAgICAgICAgIGFjYl9wb2x5X2NvbXBvc2UocG9seS5fX3BvbHksIHNlbGYuX19wb2x5LAor LSAgICAgICAgICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9jb21wbGV4X2FyYj4gcG9pbnQp Ll9fcG9seSwgcHJlYyhzZWxmKSkKKysgICAgICAgICAgICAgICAgYWNiX3BvbHlfY29tcG9zZShw b2x5Ll9wb2x5LCBzZWxmLl9wb2x5LAorKyAgICAgICAgICAgICAgICAgICAgICAgICg8UG9seW5v bWlhbF9jb21wbGV4X2FyYj4gcG9pbnQpLl9wb2x5LCBwcmVjKHNlbGYpKQorICAgICAgICAgICAg ICAgICBzaWdfb2ZmKCkKKyAgICAgICAgICAgICAgICAgcmV0dXJuIHBvbHkKKyAgICAgICAgICAg ICAjIFRPRE86IHBlcmhhcHMgYWRkIG1vcmUgc3BlY2lhbCBjYXNlcywgZS5nLiBmb3IgcmVhbCBi YWxsLAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9l bGVtZW50LnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9lbGVtZW50 LnB4ZAoraW5kZXggMDgzZjUwNmIyMjIuLjVkY2JmNDU5N2QwIDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2VsZW1lbnQucHhkCisrKysgYi9zcmMvc2Fn ZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfZWxlbWVudC5weGQKK0BAIC00NSwxMiArNDUs MTIgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsKENvbW11dGF0aXZlUG9seW5vbWlhbCk6CisgICAg IGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KQorICAgICBjcGRlZiBfZmxvb3JkaXZfKHNlbGYsIHJp Z2h0KQorIAorLSAgICBjZGVmIHB1YmxpYyBkaWN0IF9fY2FjaGVkX21ldGhvZHMKKysgICAgY2Rl ZiBwdWJsaWMgZGljdCBfY2FjaGVkX21ldGhvZHMKKyAKKyBjZGVmIGNsYXNzIFBvbHlub21pYWxf Z2VuZXJpY19kZW5zZShQb2x5bm9taWFsKToKKyAgICAgY2RlZiBQb2x5bm9taWFsX2dlbmVyaWNf ZGVuc2UgX25ld19jKHNlbGYsIGxpc3QgY29lZmZzLCBQYXJlbnQgUCkKKy0gICAgY2RlZiBsaXN0 IF9fY29lZmZzCistICAgIGNkZWYgaW50IF9fbm9ybWFsaXplKHNlbGYpIGV4Y2VwdCAtMQorKyAg ICBjZGVmIGxpc3QgX2NvZWZmcworKyAgICBjZGVmIGludCBfbm9ybWFsaXplKHNlbGYpIGV4Y2Vw dCAtMQorICAgICBjcGRlZiBsaXN0IGxpc3Qoc2VsZiwgYmludCBjb3B5PSopCisgCisgY2RlZiBj bGFzcyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2VfaW5leGFjdChQb2x5bm9taWFsX2dlbmVyaWNf ZGVuc2UpOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlh bF9lbGVtZW50LnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9lbGVt ZW50LnB5eAoraW5kZXggNGQ0YjlkZDEwZjUuLmQxYzgwMjgzNWFlIDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2VsZW1lbnQucHl4CisrKysgYi9zcmMv c2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfZWxlbWVudC5weXgKK0BAIC05ODAwLDcg Kzk4MDAsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWwoQ29tbXV0YXRpdmVQb2x5bm9taWFsKToK KyAgICAgICAgICAgICAwCisgICAgICAgICAiIiIKKyAgICAgICAgICMgX19nZXRpdGVtX18gYWxy ZWFkeSByZXR1cm5zIGEgcG9seW5vbWlhbCEhCistICAgICAgICAjIFdlIG11c3Qgbm90IGhhdmUg Y2hlY2s9RmFsc2UsIHNpbmNlIDAgbXVzdCBub3QgaGF2ZSBfX2NvZWZmcyA9IFswXS4KKysgICAg ICAgICMgV2UgbXVzdCBub3QgaGF2ZSBjaGVjaz1GYWxzZSwgc2luY2UgMCBtdXN0IG5vdCBoYXZl IF9jb2VmZnMgPSBbMF0uCisgICAgICAgICByZXR1cm4gPFBvbHlub21pYWw+c2VsZi5fcGFyZW50 KHNlbGZbOm5dKSMsIGNoZWNrPUZhbHNlKQorIAorICAgICBjZGVmIF9pbnBsYWNlX3RydW5jYXRl KHNlbGYsIGxvbmcgcHJlYyk6CitAQCAtMTE1NDEsMTYgKzExNTQxLDE2IEBAIGNkZWYgY2xhc3Mg UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgorICAgICBkZWYgX19pbml0X18o c2VsZiwgcGFyZW50LCB4PU5vbmUsIGludCBjaGVjaz0xLCBpc19nZW49RmFsc2UsIGludCBjb25z dHJ1Y3Q9MCwgKiprd2RzKToKKyAgICAgICAgIFBvbHlub21pYWwuX19pbml0X18oc2VsZiwgcGFy ZW50LCBpc19nZW49aXNfZ2VuKQorICAgICAgICAgaWYgeCBpcyBOb25lOgorLSAgICAgICAgICAg IHNlbGYuX19jb2VmZnMgPSBbXQorKyAgICAgICAgICAgIHNlbGYuX2NvZWZmcyA9IFtdCisgICAg ICAgICAgICAgcmV0dXJuCisgCisgICAgICAgICBSID0gcGFyZW50LmJhc2VfcmluZygpCisgICAg ICAgICBpZiBpc2luc3RhbmNlKHgsIChsaXN0LCB0dXBsZSkpOgorICAgICAgICAgICAgIGlmIGNo ZWNrOgorLSAgICAgICAgICAgICAgICBzZWxmLl9fY29lZmZzID0gW1IodCkgZm9yIHQgaW4geF0K Ky0gICAgICAgICAgICAgICAgc2VsZi5fX25vcm1hbGl6ZSgpCisrICAgICAgICAgICAgICAgIHNl bGYuX2NvZWZmcyA9IFtSKHQpIGZvciB0IGluIHhdCisrICAgICAgICAgICAgICAgIHNlbGYuX25v cm1hbGl6ZSgpCisgICAgICAgICAgICAgZWxzZToKKy0gICAgICAgICAgICAgICAgc2VsZi5fX2Nv ZWZmcyA9IHgKKysgICAgICAgICAgICAgICAgc2VsZi5fY29lZmZzID0geAorICAgICAgICAgICAg IHJldHVybgorIAorICAgICAgICAgaWYgc2FnZS5yaW5ncy5mcmFjdGlvbl9maWVsZF9lbGVtZW50 LmlzX0ZyYWN0aW9uRmllbGRFbGVtZW50KHgpOgorQEAgLTExNTY1LDE5ICsxMTU2NSwxOSBAQCBj ZGVmIGNsYXNzIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShQb2x5bm9taWFsKToKKyAgICAgICAg ICAgICBlbGlmIFIuaGFzX2NvZXJjZV9tYXBfZnJvbSgoPEVsZW1lbnQ+eCkuX3BhcmVudCk6IyBp cyBSIG9yICg8RWxlbWVudD54KS5fcGFyZW50ID09IFI6CisgICAgICAgICAgICAgICAgIHRyeToK KyAgICAgICAgICAgICAgICAgICAgIGlmIHguaXNfemVybygpOgorLSAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuX19jb2VmZnMgPSBbXQorKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu X2NvZWZmcyA9IFtdCisgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAg ICAgICAgIGV4Y2VwdCAoQXR0cmlidXRlRXJyb3IsIFR5cGVFcnJvcik6CisgICAgICAgICAgICAg ICAgICAgICBwYXNzCisgICAgICAgICAgICAgICAgIHggPSBbeF0KKyAgICAgICAgICAgICBlbHNl OgorLSAgICAgICAgICAgICAgICBzZWxmLl9fY29lZmZzID0gW1IoYSwgKiprd2RzKSBmb3IgYSBp biB4Lmxpc3QoY29weT1GYWxzZSldCisrICAgICAgICAgICAgICAgIHNlbGYuX2NvZWZmcyA9IFtS KGEsICoqa3dkcykgZm9yIGEgaW4geC5saXN0KGNvcHk9RmFsc2UpXQorICAgICAgICAgICAgICAg ICBpZiBjaGVjazoKKy0gICAgICAgICAgICAgICAgICAgIHNlbGYuX19ub3JtYWxpemUoKQorKyAg ICAgICAgICAgICAgICAgICAgc2VsZi5fbm9ybWFsaXplKCkKKyAgICAgICAgICAgICAgICAgcmV0 dXJuCisgCisgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoeCwgaW50KSBhbmQgeCA9PSAwOgorLSAg ICAgICAgICAgIHNlbGYuX19jb2VmZnMgPSBbXQorKyAgICAgICAgICAgIHNlbGYuX2NvZWZmcyA9 IFtdCisgICAgICAgICAgICAgcmV0dXJuCisgCisgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoeCwg ZGljdCk6CitAQCAtMTE1OTMsMTYgKzExNTkzLDE2IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9n ZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgorICMgICAgICAgICAgICBlbHNlOgorICMgICAgICAg ICAgICAgICAgeCA9IFtdICAgICMgemVybyBwb2x5bm9taWFsCisgICAgICAgICBpZiBjaGVjazoK Ky0gICAgICAgICAgICBzZWxmLl9fY29lZmZzID0gW1IoeiwgKiprd2RzKSBmb3IgeiBpbiB4XQor LSAgICAgICAgICAgIHNlbGYuX19ub3JtYWxpemUoKQorKyAgICAgICAgICAgIHNlbGYuX2NvZWZm cyA9IFtSKHosICoqa3dkcykgZm9yIHogaW4geF0KKysgICAgICAgICAgICBzZWxmLl9ub3JtYWxp emUoKQorICAgICAgICAgZWxzZToKKy0gICAgICAgICAgICBzZWxmLl9fY29lZmZzID0geAorKyAg ICAgICAgICAgIHNlbGYuX2NvZWZmcyA9IHgKKyAKKyAgICAgY2RlZiBQb2x5bm9taWFsX2dlbmVy aWNfZGVuc2UgX25ld19jKHNlbGYsIGxpc3QgY29lZmZzLCBQYXJlbnQgUCk6CisgICAgICAgICBj ZGVmIHR5cGUgdCA9IHR5cGUoc2VsZikKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9nZW5lcmlj X2RlbnNlIGYgPSA8UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlPnQuX19uZXdfXyh0KQorICAgICAg ICAgZi5fcGFyZW50ID0gUAorLSAgICAgICAgZi5fX2NvZWZmcyA9IGNvZWZmcworKyAgICAgICAg Zi5fY29lZmZzID0gY29lZmZzCisgICAgICAgICByZXR1cm4gZgorIAorICAgICBjcGRlZiBQb2x5 bm9taWFsIF9uZXdfY29uc3RhbnRfcG9seShzZWxmLCBhLCBQYXJlbnQgUCk6CitAQCAtMTE2NDQs MTAgKzExNjQ0LDEwIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlu b21pYWwpOgorICAgICAgICAgICAgIHNhZ2U6IHR5cGUoZikKKyAgICAgICAgICAgICA8Y2xhc3Mg J3NhZ2UucmluZ3MucG9seW5vbWlhbC5wb2x5bm9taWFsX2VsZW1lbnQuUG9seW5vbWlhbF9nZW5l cmljX2RlbnNlJz4KKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIG1ha2VfZ2VuZXJpY19w b2x5bm9taWFsLCAoc2VsZi5fcGFyZW50LCBzZWxmLl9fY29lZmZzKQorKyAgICAgICAgcmV0dXJu IG1ha2VfZ2VuZXJpY19wb2x5bm9taWFsLCAoc2VsZi5fcGFyZW50LCBzZWxmLl9jb2VmZnMpCisg CisgICAgIGRlZiBfX2Jvb2xfXyhzZWxmKToKKy0gICAgICAgIHJldHVybiBib29sKHNlbGYuX19j b2VmZnMpCisrICAgICAgICByZXR1cm4gYm9vbChzZWxmLl9jb2VmZnMpCisgCisgICAgIGNwZGVm IGJpbnQgaXNfdGVybShzZWxmKSBleGNlcHQgLTE6CisgICAgICAgICAiIiIKK0BAIC0xMTY2Nywx MCArMTE2NjcsMTAgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoUG9seW5v bWlhbCk6CisgICAgICAgICAgICAgc2FnZTogKDEgKyAzKnheNSkuaXNfdGVybSgpCisgICAgICAg ICAgICAgRmFsc2UKKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgbm90IHNlbGYuX19jb2VmZnM6 CisrICAgICAgICBpZiBub3Qgc2VsZi5fY29lZmZzOgorICAgICAgICAgICAgIHJldHVybiBGYWxz ZQorIAorLSAgICAgICAgZm9yIGMgaW4gc2VsZi5fX2NvZWZmc1s6LTFdOgorKyAgICAgICAgZm9y IGMgaW4gc2VsZi5fY29lZmZzWzotMV06CisgICAgICAgICAgICAgaWYgYzoKKyAgICAgICAgICAg ICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICByZXR1cm4gVHJ1ZQorQEAgLTExNjgyLDkgKzEx NjgyLDkgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoUG9seW5vbWlhbCk6 CisgICAgICAgICBSZXR1cm4gdGhlIHByb2R1Y3QgYGBzZWxmICogdGVybWBgLCB3aGVyZSBgYHRl cm1gYCBpcyBhIHBvbHlub21pYWwKKyAgICAgICAgIHdpdGggYSBzaW5nbGUgdGVybS4KKyAgICAg ICAgICIiIgorLSAgICAgICAgY2RlZiBQeV9zc2l6ZV90IGQgPSBsZW4oICg8UG9seW5vbWlhbF9n ZW5lcmljX2RlbnNlPiB0ZXJtKS5fX2NvZWZmcyApIC0gMQorKyAgICAgICAgY2RlZiBQeV9zc2l6 ZV90IGQgPSBsZW4oICg8UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlPiB0ZXJtKS5fY29lZmZzICkg LSAxCisgICAgICAgICBjZGVmIFB5X3NzaXplX3QgaQorLSAgICAgICAgY2RlZiBsaXN0IHggPSBz ZWxmLl9fY29lZmZzCisrICAgICAgICBjZGVmIGxpc3QgeCA9IHNlbGYuX2NvZWZmcworICAgICAg ICAgY2RlZiBQeV9zc2l6ZV90IGVsbCA9IGxlbih4KQorICAgICAgICAgYyA9IHRlcm0uZ2V0X3Vu c2FmZShkKQorICAgICAgICAgY2RlZiBsaXN0IHYgPSBbc2VsZi5iYXNlX3JpbmcoKS56ZXJvKCld ICogKGQgKyBlbGwpCitAQCAtMTE2OTcsMTAgKzExNjk3LDEwIEBAIGNkZWYgY2xhc3MgUG9seW5v bWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgorICAgICAgICAgY2RlZiBQb2x5bm9taWFs X2dlbmVyaWNfZGVuc2UgcmVzID0gc2VsZi5fbmV3X2Modiwgc2VsZi5fcGFyZW50KQorICAgICAg ICAgI2lmIG5vdCB2W2xlbih2KS0xXToKKyAgICAgICAgICMgIm5vcm1hbGl6ZSIgY2hlY2tzIHRo aXMgYW55d2F5Li4uCistICAgICAgICByZXMuX19ub3JtYWxpemUoKQorKyAgICAgICAgcmVzLl9u b3JtYWxpemUoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjZGVmIGludCBfX25vcm1h bGl6ZShzZWxmKSBleGNlcHQgLTE6CisrICAgIGNkZWYgaW50IF9ub3JtYWxpemUoc2VsZikgZXhj ZXB0IC0xOgorICAgICAgICAgIiIiCisgICAgICAgICBURVNUUzoKKyAKK0BAIC0xMTcxOCw3ICsx MTcxOCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwp OgorICAgICAgICAgICAgIC4uLgorICAgICAgICAgICAgIE5vdEltcGxlbWVudGVkRXJyb3I6IGNh bm5vdCBjaGVjayB3aGV0aGVyIG51bWJlciBpcyBub24temVybworICAgICAgICAgIiIiCistICAg ICAgICBjZGVmIGxpc3QgeCA9IHNlbGYuX19jb2VmZnMKKysgICAgICAgIGNkZWYgbGlzdCB4ID0g c2VsZi5fY29lZmZzCisgICAgICAgICBjZGVmIFB5X3NzaXplX3QgbiA9IGxlbih4KSAtIDEKKyAg ICAgICAgIHdoaWxlIG4gPj0gMCBhbmQgbm90IHhbbl06CisgICAgICAgICAgICAgZGVsIHhbbl0K K0BAIC0xMTc0Nyw3ICsxMTc0Nyw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2Rl bnNlKFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHNhZ2U6IGZbOjNdCisgICAgICAgICAgICAg NDAuMCp4XjIgKyAxMC4wKnggKyAxLjAKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIHNl bGYuX19jb2VmZnNbbl0KKysgICAgICAgIHJldHVybiBzZWxmLl9jb2VmZnNbbl0KKyAKKyAgICAg ZGVmIF91bnNhZmVfbXV0YXRlKHNlbGYsIG4sIHZhbHVlKToKKyAgICAgICAgICIiIgorQEAgLTEx NzcwLDE3ICsxMTc3MCwxNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShQ b2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgbiA9IGludChuKQorICAgICAgICAg dmFsdWUgPSBzZWxmLmJhc2VfcmluZygpKHZhbHVlKQorLSAgICAgICAgaWYgbiA+PSAwIGFuZCBu IDwgbGVuKHNlbGYuX19jb2VmZnMpOgorLSAgICAgICAgICAgIHNlbGYuX19jb2VmZnNbbl0gPSB2 YWx1ZQorLSAgICAgICAgICAgIGlmIG4gPT0gbGVuKHNlbGYuX19jb2VmZnMpIGFuZCB2YWx1ZSA9 PSAwOgorLSAgICAgICAgICAgICAgICBzZWxmLl9fbm9ybWFsaXplKCkKKysgICAgICAgIGlmIG4g Pj0gMCBhbmQgbiA8IGxlbihzZWxmLl9jb2VmZnMpOgorKyAgICAgICAgICAgIHNlbGYuX2NvZWZm c1tuXSA9IHZhbHVlCisrICAgICAgICAgICAgaWYgbiA9PSBsZW4oc2VsZi5fY29lZmZzKSBhbmQg dmFsdWUgPT0gMDoKKysgICAgICAgICAgICAgICAgc2VsZi5fbm9ybWFsaXplKCkKKyAgICAgICAg IGVsaWYgbiA8IDA6CisgICAgICAgICAgICAgcmFpc2UgSW5kZXhFcnJvcigicG9seW5vbWlhbCBj b2VmZmljaWVudCBpbmRleCBtdXN0IGJlIG5vbm5lZ2F0aXZlIikKKyAgICAgICAgIGVsaWYgdmFs dWUgIT0gMDoKKyAgICAgICAgICAgICB6ZXJvID0gc2VsZi5iYXNlX3JpbmcoKS56ZXJvKCkKKy0g ICAgICAgICAgICBmb3IgXyBpbiByYW5nZShsZW4oc2VsZi5fX2NvZWZmcyksIG4pOgorLSAgICAg ICAgICAgICAgICBzZWxmLl9fY29lZmZzLmFwcGVuZCh6ZXJvKQorLSAgICAgICAgICAgIHNlbGYu X19jb2VmZnMuYXBwZW5kKHZhbHVlKQorKyAgICAgICAgICAgIGZvciBfIGluIHJhbmdlKGxlbihz ZWxmLl9jb2VmZnMpLCBuKToKKysgICAgICAgICAgICAgICAgc2VsZi5fY29lZmZzLmFwcGVuZCh6 ZXJvKQorKyAgICAgICAgICAgIHNlbGYuX2NvZWZmcy5hcHBlbmQodmFsdWUpCisgCisgICAgIGRl ZiBfX2Zsb29yZGl2X18oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCitAQCAtMTE4MjIsOCAr MTE4MjIsOCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShQb2x5bm9taWFs KToKKyAgICAgICAgICAgICByZXR1cm4gKDxQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2U+c2VsZiku X2Zsb29yZGl2Xyg8UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlPnJpZ2h0KQorICAgICAgICAgUCA9 IHBhcmVudChzZWxmKQorICAgICAgICAgZCA9IFAuYmFzZV9yaW5nKCkocmlnaHQpCistICAgICAg ICBjZGVmIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZSByZXMgPSAoPFBvbHlub21pYWxfZ2VuZXJp Y19kZW5zZT5zZWxmKS5fbmV3X2MoW2MgLy8gZCBmb3IgYyBpbiAoPFBvbHlub21pYWxfZ2VuZXJp Y19kZW5zZT5zZWxmKS5fX2NvZWZmc10sIFApCistICAgICAgICByZXMuX19ub3JtYWxpemUoKQor KyAgICAgICAgY2RlZiBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UgcmVzID0gKDxQb2x5bm9taWFs X2dlbmVyaWNfZGVuc2U+c2VsZikuX25ld19jKFtjIC8vIGQgZm9yIGMgaW4gKDxQb2x5bm9taWFs X2dlbmVyaWNfZGVuc2U+c2VsZikuX2NvZWZmc10sIFApCisrICAgICAgICByZXMuX25vcm1hbGl6 ZSgpCisgICAgICAgICByZXR1cm4gcmVzCisgCisgICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0 KToKK0BAIC0xMTgzOSw4ICsxMTgzOSw4IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmlj X2RlbnNlKFBvbHlub21pYWwpOgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIFBvbHlub21p YWxfZ2VuZXJpY19kZW5zZSByZXMKKyAgICAgICAgIGNkZWYgUHlfc3NpemVfdCBjaGVjaz0wLCBp LCBtaW4KKy0gICAgICAgIHggPSAoPFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZT5zZWxmKS5fX2Nv ZWZmcworLSAgICAgICAgeSA9ICg8UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlPnJpZ2h0KS5fX2Nv ZWZmcworKyAgICAgICAgeCA9ICg8UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlPnNlbGYpLl9jb2Vm ZnMKKysgICAgICAgIHkgPSAoPFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZT5yaWdodCkuX2NvZWZm cworICAgICAgICAgaWYgbGVuKHgpID4gbGVuKHkpOgorICAgICAgICAgICAgIG1pbiA9IGxlbih5 KQorICAgICAgICAgICAgIGhpZ2ggPSB4W21pbjpdCitAQCAtMTE4NTIsNyArMTE4NTIsNyBAQCBj ZGVmIGNsYXNzIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShQb2x5bm9taWFsKToKKyAgICAgICAg IGNkZWYgbGlzdCBsb3cgPSBbeFtpXSArIHlbaV0gZm9yIGkgZnJvbSAwIDw9IGkgPCBtaW5dCisg ICAgICAgICBpZiBsZW4oeCkgPT0gbGVuKHkpOgorICAgICAgICAgICAgIHJlcyA9IHNlbGYuX25l d19jKGxvdywgc2VsZi5fcGFyZW50KQorLSAgICAgICAgICAgIHJlcy5fX25vcm1hbGl6ZSgpCisr ICAgICAgICAgICAgcmVzLl9ub3JtYWxpemUoKQorICAgICAgICAgICAgIHJldHVybiByZXMKKyAg ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKGxvdyArIGhpZ2gs IHNlbGYuX3BhcmVudCkKK0BAIC0xMTg2MCw4ICsxMTg2MCw4IEBAIGNkZWYgY2xhc3MgUG9seW5v bWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgorICAgICBjcGRlZiBfc3ViXyhzZWxmLCBy aWdodCk6CisgICAgICAgICBjZGVmIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZSByZXMKKyAgICAg ICAgIGNkZWYgUHlfc3NpemVfdCBjaGVjaz0wLCBpLCBtaW4KKy0gICAgICAgIHggPSAoPFBvbHlu b21pYWxfZ2VuZXJpY19kZW5zZT5zZWxmKS5fX2NvZWZmcworLSAgICAgICAgeSA9ICg8UG9seW5v bWlhbF9nZW5lcmljX2RlbnNlPnJpZ2h0KS5fX2NvZWZmcworKyAgICAgICAgeCA9ICg8UG9seW5v bWlhbF9nZW5lcmljX2RlbnNlPnNlbGYpLl9jb2VmZnMKKysgICAgICAgIHkgPSAoPFBvbHlub21p YWxfZ2VuZXJpY19kZW5zZT5yaWdodCkuX2NvZWZmcworICAgICAgICAgaWYgbGVuKHgpID4gbGVu KHkpOgorICAgICAgICAgICAgIG1pbiA9IGxlbih5KQorICAgICAgICAgICAgIGhpZ2ggPSB4W21p bjpdCitAQCAtMTE4NzMsMzMgKzExODczLDMzIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5l cmljX2RlbnNlKFBvbHlub21pYWwpOgorICAgICAgICAgbG93ID0gW3hbaV0gLSB5W2ldIGZvciBp IGZyb20gMCA8PSBpIDwgbWluXQorICAgICAgICAgaWYgbGVuKHgpID09IGxlbih5KToKKyAgICAg ICAgICAgICByZXMgPSBzZWxmLl9uZXdfYyhsb3csIHNlbGYuX3BhcmVudCkKKy0gICAgICAgICAg ICByZXMuX19ub3JtYWxpemUoKQorKyAgICAgICAgICAgIHJlcy5fbm9ybWFsaXplKCkKKyAgICAg ICAgICAgICByZXR1cm4gcmVzCisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBz ZWxmLl9uZXdfYyhsb3cgKyBoaWdoLCBzZWxmLl9wYXJlbnQpCisgCisgICAgIGNwZGVmIF9ybXVs XyhzZWxmLCBFbGVtZW50IGMpOgorLSAgICAgICAgaWYgbm90IHNlbGYuX19jb2VmZnM6CisrICAg ICAgICBpZiBub3Qgc2VsZi5fY29lZmZzOgorICAgICAgICAgICAgIHJldHVybiBzZWxmCistICAg ICAgICBpZiBjLl9wYXJlbnQgaXMgbm90ICg8RWxlbWVudD5zZWxmLl9fY29lZmZzWzBdKS5fcGFy ZW50OgorLSAgICAgICAgICAgIGMgPSAoPEVsZW1lbnQ+c2VsZi5fX2NvZWZmc1swXSkuX3BhcmVu dC5jb2VyY2UoYykKKy0gICAgICAgIHYgPSBbYyAqIGEgZm9yIGEgaW4gc2VsZi5fX2NvZWZmc10K KysgICAgICAgIGlmIGMuX3BhcmVudCBpcyBub3QgKDxFbGVtZW50PnNlbGYuX2NvZWZmc1swXSku X3BhcmVudDoKKysgICAgICAgICAgICBjID0gKDxFbGVtZW50PnNlbGYuX2NvZWZmc1swXSkuX3Bh cmVudC5jb2VyY2UoYykKKysgICAgICAgIHYgPSBbYyAqIGEgZm9yIGEgaW4gc2VsZi5fY29lZmZz XQorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UgcmVzID0gc2VsZi5fbmV3 X2Modiwgc2VsZi5fcGFyZW50KQorICAgICAgICAgI2lmIG5vdCB2W2xlbih2KS0xXToKKyAgICAg ICAgICMgIm5vcm1hbGl6ZSIgY2hlY2tzIHRoaXMgYW55d2F5Li4uCistICAgICAgICByZXMuX19u b3JtYWxpemUoKQorKyAgICAgICAgcmVzLl9ub3JtYWxpemUoKQorICAgICAgICAgcmV0dXJuIHJl cworIAorICAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCBjKToKKy0gICAgICAgIGlmIG5v dCBzZWxmLl9fY29lZmZzOgorKyAgICAgICAgaWYgbm90IHNlbGYuX2NvZWZmczoKKyAgICAgICAg ICAgICByZXR1cm4gc2VsZgorLSAgICAgICAgaWYgYy5fcGFyZW50IGlzIG5vdCAoPEVsZW1lbnQ+ c2VsZi5fX2NvZWZmc1swXSkuX3BhcmVudDoKKy0gICAgICAgICAgICBjID0gKDxFbGVtZW50PnNl bGYuX19jb2VmZnNbMF0pLl9wYXJlbnQuY29lcmNlKGMpCistICAgICAgICB2ID0gW2EgKiBjIGZv ciBhIGluIHNlbGYuX19jb2VmZnNdCisrICAgICAgICBpZiBjLl9wYXJlbnQgaXMgbm90ICg8RWxl bWVudD5zZWxmLl9jb2VmZnNbMF0pLl9wYXJlbnQ6CisrICAgICAgICAgICAgYyA9ICg8RWxlbWVu dD5zZWxmLl9jb2VmZnNbMF0pLl9wYXJlbnQuY29lcmNlKGMpCisrICAgICAgICB2ID0gW2EgKiBj IGZvciBhIGluIHNlbGYuX2NvZWZmc10KKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9nZW5lcmlj X2RlbnNlIHJlcyA9IHNlbGYuX25ld19jKHYsIHNlbGYuX3BhcmVudCkKKyAgICAgICAgICNpZiBu b3QgdltsZW4odiktMV06CisgICAgICAgICAjICJub3JtYWxpemUiIGNoZWNrcyB0aGlzIGFueXdh eS4uLgorLSAgICAgICAgcmVzLl9fbm9ybWFsaXplKCkKKysgICAgICAgIHJlcy5fbm9ybWFsaXpl KCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKKyAgICAgY3BkZWYgY29uc3RhbnRfY29lZmZpY2ll bnQoc2VsZik6CitAQCAtMTE5MTYsMTAgKzExOTE2LDEwIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlh bF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHNhZ2U6IGYuY29uc3Rh bnRfY29lZmZpY2llbnQoKQorICAgICAgICAgICAgIHQKKyAgICAgICAgICIiIgorLSAgICAgICAg aWYgbm90IHNlbGYuX19jb2VmZnM6CisrICAgICAgICBpZiBub3Qgc2VsZi5fY29lZmZzOgorICAg ICAgICAgICAgIHJldHVybiBzZWxmLmJhc2VfcmluZygpLnplcm8oKQorICAgICAgICAgZWxzZToK Ky0gICAgICAgICAgICByZXR1cm4gc2VsZi5fX2NvZWZmc1swXQorKyAgICAgICAgICAgIHJldHVy biBzZWxmLl9jb2VmZnNbMF0KKyAKKyAgICAgY3BkZWYgbGlzdCBsaXN0KHNlbGYsIGJpbnQgY29w eT1UcnVlKToKKyAgICAgICAgICIiIgorQEAgLTExOTM0LDkgKzExOTM0LDkgQEAgY2RlZiBjbGFz cyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgWzEs IDksIDEyLCA4XQorICAgICAgICAgIiIiCisgICAgICAgICBpZiBjb3B5OgorLSAgICAgICAgICAg IHJldHVybiBsaXN0KHNlbGYuX19jb2VmZnMpCisrICAgICAgICAgICAgcmV0dXJuIGxpc3Qoc2Vs Zi5fY29lZmZzKQorICAgICAgICAgZWxzZToKKy0gICAgICAgICAgICByZXR1cm4gc2VsZi5fX2Nv ZWZmcworKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9jb2VmZnMKKyAKKyAgICAgZGVmIGRlZ3Jl ZShzZWxmLCBnZW49Tm9uZSk6CisgICAgICAgICAiIiIKK0BAIC0xMTk1NSw3ICsxMTk1NSw3IEBA IGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgorICAgICAg ICAgICAgIDxjbGFzcyAnc2FnZS5yaW5ncy5pbnRlZ2VyLkludGVnZXInPgorIAorICAgICAgICAg IiIiCistICAgICAgICByZXR1cm4gc21hbGxJbnRlZ2VyKGxlbihzZWxmLl9fY29lZmZzKSAtIDEp CisrICAgICAgICByZXR1cm4gc21hbGxJbnRlZ2VyKGxlbihzZWxmLl9jb2VmZnMpIC0gMSkKKyAK KyAgICAgZGVmIHNoaWZ0KHNlbGYsIFB5X3NzaXplX3Qgbik6CisgICAgICAgICByIiIiCitAQCAt MTE5OTMsMTMgKzExOTkzLDEzIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNl KFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHJldHVybiBzZWxmCisgICAgICAgICBpZiBuID4g MDoKKyAgICAgICAgICAgICBvdXRwdXQgPSBbc2VsZi5iYXNlX3JpbmcoKS56ZXJvKCldICogbgor LSAgICAgICAgICAgIG91dHB1dC5leHRlbmQoc2VsZi5fX2NvZWZmcykKKysgICAgICAgICAgICBv dXRwdXQuZXh0ZW5kKHNlbGYuX2NvZWZmcykKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fbmV3 X2Mob3V0cHV0LCBzZWxmLl9wYXJlbnQpCisgICAgICAgICBpZiBuIDwgMDoKKy0gICAgICAgICAg ICBpZiBuID4gbGVuKHNlbGYuX19jb2VmZnMpIC0gMToKKysgICAgICAgICAgICBpZiBuID4gbGVu KHNlbGYuX2NvZWZmcykgLSAxOgorICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fcGFyZW50 KFtdKQorICAgICAgICAgICAgIGVsc2U6CistICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9u ZXdfYyhzZWxmLl9fY29lZmZzWy1pbnQobik6XSwgc2VsZi5fcGFyZW50KQorKyAgICAgICAgICAg ICAgICByZXR1cm4gc2VsZi5fbmV3X2Moc2VsZi5fY29lZmZzWy1pbnQobik6XSwgc2VsZi5fcGFy ZW50KQorIAorICAgICBAY29lcmNlX2Jpbm9wCisgICAgIGRlZiBxdW9fcmVtKHNlbGYsIG90aGVy KToKK0BAIC0xMjA3Myw4ICsxMjA3Myw4IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmlj X2RlbnNlKFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLCBzZWxmCisgCisg ICAgICAgICBSID0gc2VsZi5fcGFyZW50LmJhc2VfcmluZygpCistICAgICAgICBjZGVmIGxpc3Qg eCA9IGxpc3QoKDxQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2U+c2VsZikuX19jb2VmZnMpICMgbWFr ZSBhIGNvcHkKKy0gICAgICAgIGNkZWYgbGlzdCB5ID0gKDxQb2x5bm9taWFsX2dlbmVyaWNfZGVu c2U+b3RoZXIpLl9fY29lZmZzCisrICAgICAgICBjZGVmIGxpc3QgeCA9IGxpc3QoKDxQb2x5bm9t aWFsX2dlbmVyaWNfZGVuc2U+c2VsZikuX2NvZWZmcykgIyBtYWtlIGEgY29weQorKyAgICAgICAg Y2RlZiBsaXN0IHkgPSAoPFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZT5vdGhlcikuX2NvZWZmcwor ICAgICAgICAgY2RlZiBQeV9zc2l6ZV90IG0gPSBsZW4oeCkgICMgZGVnKHNlbGYpPW0tMQorICAg ICAgICAgY2RlZiBQeV9zc2l6ZV90IG4gPSBsZW4oeSkgICMgZGVnKG90aGVyKT1uLTEKKyAgICAg ICAgIGlmIG0gPCBuOgorQEAgLTEyMTM1LDE4ICsxMjEzNSwxOCBAQCBjZGVmIGNsYXNzIFBvbHlu b21pYWxfZ2VuZXJpY19kZW5zZShQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdlOiB0eXBl KGYpCisgICAgICAgICAgICAgPGNsYXNzICdzYWdlLnJpbmdzLnBvbHlub21pYWwucG9seW5vbWlh bF9lbGVtZW50LlBvbHlub21pYWxfZ2VuZXJpY19kZW5zZSc+CisgICAgICAgICAiIiIKKy0gICAg ICAgIGwgPSBsZW4oc2VsZi5fX2NvZWZmcykKKysgICAgICAgIGwgPSBsZW4oc2VsZi5fY29lZmZz KQorICAgICAgICAgaWYgbiA+IGw6CisgICAgICAgICAgICAgbiA9IGwKKy0gICAgICAgIHdoaWxl IG4gPiAwIGFuZCBub3Qgc2VsZi5fX2NvZWZmc1tuLTFdOgorKyAgICAgICAgd2hpbGUgbiA+IDAg YW5kIG5vdCBzZWxmLl9jb2VmZnNbbi0xXToKKyAgICAgICAgICAgICBuIC09IDEKKy0gICAgICAg IHJldHVybiBzZWxmLl9uZXdfYyhzZWxmLl9fY29lZmZzWzpuXSwgc2VsZi5fcGFyZW50KQorKyAg ICAgICAgcmV0dXJuIHNlbGYuX25ld19jKHNlbGYuX2NvZWZmc1s6bl0sIHNlbGYuX3BhcmVudCkK KyAKKyAgICAgY2RlZiBfaW5wbGFjZV90cnVuY2F0ZShzZWxmLCBsb25nIG4pOgorLSAgICAgICAg aWYgbiA8IGxlbihzZWxmLl9fY29lZmZzKToKKy0gICAgICAgICAgICB3aGlsZSBuID4gMCBhbmQg bm90IHNlbGYuX19jb2VmZnNbbi0xXToKKysgICAgICAgIGlmIG4gPCBsZW4oc2VsZi5fY29lZmZz KToKKysgICAgICAgICAgICB3aGlsZSBuID4gMCBhbmQgbm90IHNlbGYuX2NvZWZmc1tuLTFdOgor ICAgICAgICAgICAgICAgICBuIC09IDEKKy0gICAgICAgIHNlbGYuX19jb2VmZnMgPSBzZWxmLl9f Y29lZmZzWzpuXQorKyAgICAgICAgc2VsZi5fY29lZmZzID0gc2VsZi5fY29lZmZzWzpuXQorICAg ICAgICAgcmV0dXJuIHNlbGYKKyAKKyBkZWYgbWFrZV9nZW5lcmljX3BvbHlub21pYWwocGFyZW50 LCBjb2VmZnMpOgorQEAgLTEyMzA1LDcgKzEyMzA1LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFs X2dlbmVyaWNfZGVuc2VfaW5leGFjdChQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UpOgorIAorICAg ICAtIFhhdmllciBDYXJ1c28gKDIwMTMtMDMpCisgICAgICIiIgorLSAgICBjZGVmIGludCBfX25v cm1hbGl6ZShzZWxmKSBleGNlcHQgLTE6CisrICAgIGNkZWYgaW50IF9ub3JtYWxpemUoc2VsZikg ZXhjZXB0IC0xOgorICAgICAgICAgciIiIgorICAgICAgICAgVEVTVFM6OgorIAorQEAgLTEyMzE2 LDcgKzEyMzE2LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2VfaW5leGFj dChQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UpOgorICAgICAgICAgICAgIHNhZ2U6IFMoWzEsIFIo MCwgMjApXSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAjIG5lZWRzIHNhZ2UucmluZ3MucGFkaWNzCisgICAgICAgICAgICAgTyg1XjIwKSp4ICsg MSArIE8oNV4yMCkKKyAgICAgICAgICIiIgorLSAgICAgICAgY2RlZiBsaXN0IHggPSBzZWxmLl9f Y29lZmZzCisrICAgICAgICBjZGVmIGxpc3QgeCA9IHNlbGYuX2NvZWZmcworICAgICAgICAgY2Rl ZiBQeV9zc2l6ZV90IG4gPSBsZW4oeCkgLSAxCisgICAgICAgICBjZGVmIFJpbmdFbGVtZW50IGMK KyAgICAgICAgIHdoaWxlIG4gPj0gMDoKK0BAIC0xMjM3Niw3ICsxMjM3Niw3IEBAIGNkZWYgY2xh c3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlX2luZXhhY3QoUG9seW5vbWlhbF9nZW5lcmljX2Rl bnNlKToKKyAKKyAgICAgICAgIC0gWGF2aWVyIENhcnVzbyAoMjAxMy0wMykKKyAgICAgICAgICIi IgorLSAgICAgICAgY29lZmZzID0gc2VsZi5fX2NvZWZmcworKyAgICAgICAgY29lZmZzID0gc2Vs Zi5fY29lZmZzCisgICAgICAgICBkID0gbGVuKGNvZWZmcykgLSAxCisgICAgICAgICB3aGlsZSBk ID49IDA6CisgICAgICAgICAgICAgYyA9IGNvZWZmc1tkXQorQEAgLTEyNDIwLDcgKzEyNDIwLDcg QEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2VfaW5leGFjdChQb2x5bm9taWFs X2dlbmVyaWNfZGVuc2UpOgorIAorICAgICAgICAgLSBYYXZpZXIgQ2FydXNvICgyMDEzLTAzKQor ICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gbGVuKHNlbGYuX19jb2VmZnMpIC0gMQorKyAg ICAgICAgcmV0dXJuIGxlbihzZWxmLl9jb2VmZnMpIC0gMQorIAorIAorIGNkZWYgY2xhc3MgQ29u c3RhbnRQb2x5bm9taWFsU2VjdGlvbihNYXApOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3Jpbmdz L3BvbHlub21pYWwvcG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50LnB4ZCBiL3NyYy9zYWdl L3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50LnB4ZAoraW5k ZXggMDNjNWNlYmJmMDkuLmIxYjU5M2Q2YTI2IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3Mv cG9seW5vbWlhbC9wb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQucHhkCisrKysgYi9zcmMv c2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludC5weGQK K0BAIC01LDcgKzUsNyBAQCBmcm9tIHNhZ2UucmluZ3MuaW50ZWdlciBjaW1wb3J0IEludGVnZXIK KyBmcm9tIHNhZ2Uuc3RydWN0dXJlLnBhcmVudCBjaW1wb3J0IFBhcmVudAorIAorIGNkZWYgY2xh c3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorLSAgICBjZGVm IGZtcHpfcG9seV90IF9fcG9seQorKyAgICBjZGVmIGZtcHpfcG9seV90IF9wb2x5CisgCisgICAg IGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50IF9uZXcoc2VsZikKKyAgICAgY3Bk ZWYgX3Vuc2FmZV9tdXRhdGUoc2VsZiwgbG9uZyBuLCB2YWx1ZSkKK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludC5weXgg Yi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGlu dC5weXgKK2luZGV4IGUyMDFhYzg0M2FkLi4xOTRlYjkyNjNiMiAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50LnB5eAor KysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2ludGVnZXJfZGVuc2Vf ZmxpbnQucHl4CitAQCAtOTksMTQgKzk5LDE0IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRl Z2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgciIiIgorICAgICAgICAgVGhp cyBjYWxscyB0aGUgdW5kZXJseWluZyBGTElOVCBmbXB6X3BvbHkgY29uc3RydWN0b3IKKyAgICAg ICAgICIiIgorLSAgICAgICAgZm1wel9wb2x5X2luaXQoc2VsZi5fX3BvbHkpCisrICAgICAgICBm bXB6X3BvbHlfaW5pdChzZWxmLl9wb2x5KQorIAorIAorICAgICBkZWYgX19kZWFsbG9jX18oc2Vs Zik6CisgICAgICAgICByIiIiCisgICAgICAgICBjYWxscyB0aGUgdW5kZXJseWluZyBGTElOVCBm bXB6X3BvbHkgZGVzdHJ1Y3RvcgorICAgICAgICAgIiIiCistICAgICAgICBmbXB6X3BvbHlfY2xl YXIoc2VsZi5fX3BvbHkpCisrICAgICAgICBmbXB6X3BvbHlfY2xlYXIoc2VsZi5fcG9seSkKKyAK KyAgICAgY2RlZiBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQgX25ldyhzZWxmKToKKyAg ICAgICAgIHIiIiIKK0BAIC0xMzksNyArMTM5LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2lu dGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICB4Ll9pc19nZW4gPSAwCisg ICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShhLCBJbnRlZ2VyKToKKyAgICAgICAgICAgICBhID0g WlooYSkKKy0gICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZfbXB6KHguX19wb2x5LCAwLCAoPElu dGVnZXI+YSkudmFsdWUpCisrICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX21weih4Ll9wb2x5 LCAwLCAoPEludGVnZXI+YSkudmFsdWUpCisgICAgICAgICByZXR1cm4geAorIAorICAgICBkZWYg X19pbml0X18oc2VsZiwgcGFyZW50LCB4PU5vbmUsIGNoZWNrPVRydWUsIGlzX2dlbj1GYWxzZSwK K0BAIC0yMjQsOCArMjI0LDggQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2Vf ZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICBpZiBpc2luc3RhbmNlKHgsIFBvbHlub21pYWwp OgorICAgICAgICAgICAgIGlmIHgucGFyZW50KCkgaXMgc2VsZi5wYXJlbnQoKToKKyAgICAgICAg ICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgICAgICAgICAgZm1wel9wb2x5X3NldChzZWxmLl9f cG9seSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfaW50ZWdl cl9kZW5zZV9mbGludD54KS5fX3BvbHkpCisrICAgICAgICAgICAgICAgIGZtcHpfcG9seV9zZXQo c2VsZi5fcG9seSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxf aW50ZWdlcl9kZW5zZV9mbGludD54KS5fcG9seSkKKyAgICAgICAgICAgICAgICAgc2lnX29mZigp CisgICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgIGVsc2U6CitAQCAtMjQ2LDcg KzI0Niw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlu b21pYWwpOgorICAgICAgICAgICAgICAgICAgICAgZGVncmVlID0gaQorICAgICAgICAgICAgIHRy eToKKyAgICAgICAgICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgICAgICAgICAgZm1wel9wb2x5 X3JlYWxsb2Moc2VsZi5fX3BvbHksIGRlZ3JlZSArIDEpCisrICAgICAgICAgICAgICAgIGZtcHpf cG9seV9yZWFsbG9jKHNlbGYuX3BvbHksIGRlZ3JlZSArIDEpCisgICAgICAgICAgICAgICAgIHNp Z19vZmYoKQorICAgICAgICAgICAgIGV4Y2VwdCBSdW50aW1lRXJyb3I6CisgICAgICAgICAgICAg ICAgIHJhaXNlIE92ZXJmbG93RXJyb3IoIkNhbm5vdCBhbGxvY2F0ZSBtZW1vcnkhIikKK0BAIC0y NTUsMTMgKzI1NSwxMyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGlu dChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICAgICAgaSA9IGlpWzBdIGlmIHR5cGUoaWkpIGlz IHR1cGxlIGVsc2UgaWkKKyAgICAgICAgICAgICAgICAgaWYgaXNfc21hbGxfcHl0aG9uX2ludChh KToKKyAgICAgICAgICAgICAgICAgICAgIHNpZ19vbigpCistICAgICAgICAgICAgICAgICAgICBm bXB6X3BvbHlfc2V0X2NvZWZmX3NpKHNlbGYuX19wb2x5LCBpLCBhKQorKyAgICAgICAgICAgICAg ICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9zaShzZWxmLl9wb2x5LCBpLCBhKQorICAgICAgICAg ICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg ICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShhLCBJbnRlZ2VyKToKKyAgICAgICAgICAgICAg ICAgICAgICAgICBhID0gWlooYSkKKyAgICAgICAgICAgICAgICAgICAgIHNpZ19vbigpCistICAg ICAgICAgICAgICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX21weihzZWxmLl9fcG9seSwgaSwg KDxJbnRlZ2VyPmEpLnZhbHVlKQorKyAgICAgICAgICAgICAgICAgICAgZm1wel9wb2x5X3NldF9j b2VmZl9tcHooc2VsZi5fcG9seSwgaSwgKDxJbnRlZ2VyPmEpLnZhbHVlKQorICAgICAgICAgICAg ICAgICAgICAgc2lnX29mZigpCisgICAgICAgICAgICAgcmV0dXJuCisgCitAQCAtMjcwLDcgKzI3 MCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21p YWwpOgorICAgICAgICAgICAgIGNoZWNrID0gRmFsc2UKKyAKKyAgICAgICAgIGVsaWYgaXNpbnN0 YW5jZSh4LCBudGxfWlpYKTogICAgIyBjb2VyY2lvbiBmcm9tIG50bC5weXggb2JqZWN0CistICAg ICAgICAgICAgZm1wel9wb2x5X3NldF9aWlgoc2VsZi5fX3BvbHksICg8bnRsX1paWD54KS54KQor KyAgICAgICAgICAgIGZtcHpfcG9seV9zZXRfWlpYKHNlbGYuX3BvbHksICg8bnRsX1paWD54KS54 KQorICAgICAgICAgICAgIHJldHVybgorIAorICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHgsIEZy YWN0aW9uRmllbGRFbGVtZW50KSBhbmQgXAorQEAgLTI3OCw4ICsyNzgsOCBAQCBjZGVmIGNsYXNz IFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAg ICBpZiB4LmRlbm9taW5hdG9yKCkgPT0gMToKKyAgICAgICAgICAgICAgICAgIyBmcmFjdGlvbiBv ZiB0aGUgZm9ybSBmKHgpLzEKKyAgICAgICAgICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgICAg ICAgICAgZm1wel9wb2x5X3NldChzZWxmLl9fcG9seSwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludD54Lm51bWVyYXRvcigpKS5fX3BvbHkp CisrICAgICAgICAgICAgICAgIGZtcHpfcG9seV9zZXQoc2VsZi5fcG9seSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludD54Lm51bWVyYXRv cigpKS5fcG9seSkKKyAgICAgICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAgICAgICAgICAg IHJldHVybgorIAorQEAgLTI4NywxOSArMjg3LDE5IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9p bnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHggPSBbeF0gICAj IGNvbnN0YW50IHBvbHlub21pYWxzCisgCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgZm1w el9wb2x5X3JlYWxsb2Moc2VsZi5fX3BvbHksIGxlbih4KSkKKysgICAgICAgIGZtcHpfcG9seV9y ZWFsbG9jKHNlbGYuX3BvbHksIGxlbih4KSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAg Zm9yIGkgZnJvbSAwIDw9IGkgPCBsZW4oeCk6CisgICAgICAgICAgICAgYSA9IHhbaV0KKyAgICAg ICAgICAgICBpZiBpc19zbWFsbF9weXRob25faW50KGEpOgorICAgICAgICAgICAgICAgICBzaWdf b24oKQorLSAgICAgICAgICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX3NpKHNlbGYuX19wb2x5 LCBpLCBhKQorKyAgICAgICAgICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX3NpKHNlbGYuX3Bv bHksIGksIGEpCisgICAgICAgICAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgICAgIGVsc2U6 CisgICAgICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGEsIEludGVnZXIpOgorICAgICAg ICAgICAgICAgICAgICAgYSA9IFpaKGEpCisgICAgICAgICAgICAgICAgIHNpZ19vbigpCistICAg ICAgICAgICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZfbXB6KHNlbGYuX19wb2x5LCBpLCAoPElu dGVnZXI+YSkudmFsdWUpCisrICAgICAgICAgICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZfbXB6 KHNlbGYuX3BvbHksIGksICg8SW50ZWdlcj5hKS52YWx1ZSkKKyAgICAgICAgICAgICAgICAgc2ln X29mZigpCisgCisgICAgIGRlZiBfZXZhbF9tcGZyXyhzZWxmLCBSZWFsTnVtYmVyIGEpOgorQEAg LTMyNyw3ICszMjcsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGlu dChQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBSZWFsTnVtYmVyIHJl cyA9IGEuX25ldygpCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgZm1wel9wb2x5X2V2YWx1 YXRpb25fbXBmcihyZXMudmFsdWUsIHNlbGYuX19wb2x5LCBhLnZhbHVlKQorKyAgICAgICAgZm1w el9wb2x5X2V2YWx1YXRpb25fbXBmcihyZXMudmFsdWUsIHNlbGYuX3BvbHksIGEudmFsdWUpCisg ICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKK0BAIC0zNTcsNyArMzU3 LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlh bCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUmVhbEludGVydmFsRmllbGRFbGVtZW50 IHJlcyA9IGEuX25ldygpCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgZm1wel9wb2x5X2V2 YWx1YXRpb25fbXBmaShyZXMudmFsdWUsIHNlbGYuX19wb2x5LCBhLnZhbHVlKQorKyAgICAgICAg Zm1wel9wb2x5X2V2YWx1YXRpb25fbXBmaShyZXMudmFsdWUsIHNlbGYuX3BvbHksIGEudmFsdWUp CisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKK0BAIC00MTIsOCAr NDEyLDggQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5v bWlhbCk6CisgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh4LCBQb2x5bm9taWFsX2ludGVnZXJf ZGVuc2VfZmxpbnQpOgorICAgICAgICAgICAgICAgICBmID0gc2VsZi5fbmV3KCkKKyAgICAgICAg ICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgICAgICAgICAgZm1wel9wb2x5X2NvbXBvc2UoZi5f X3BvbHksIHNlbGYuX19wb2x5LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo PFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludD4geDApLl9fcG9seSkKKysgICAgICAgICAg ICAgICAgZm1wel9wb2x5X2NvbXBvc2UoZi5fcG9seSwgc2VsZi5fcG9seSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQ+ IHgwKS5fcG9seSkKKyAgICAgICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAgICAgICAgICAg IHJldHVybiBmCisgICAgICAgICAgICAgaWYgaXNfc21hbGxfcHl0aG9uX2ludCh4MCk6CitAQCAt NDIyLDcgKzQyMiw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50 KFBvbHlub21pYWwpOgorICAgICAgICAgICAgICAgICBmbXB6X2luaXQoYV9mbXB6KQorICAgICAg ICAgICAgICAgICBmbXB6X2luaXQoel9mbXB6KQorICAgICAgICAgICAgICAgICBmbXB6X3NldF9z aShhX2ZtcHosIFB5SW50X0FTX0xPTkcoeDApKQorLSAgICAgICAgICAgICAgICBmbXB6X3BvbHlf ZXZhbHVhdGVfZm1weih6X2ZtcHosIHNlbGYuX19wb2x5LCBhX2ZtcHopCisrICAgICAgICAgICAg ICAgIGZtcHpfcG9seV9ldmFsdWF0ZV9mbXB6KHpfZm1weiwgc2VsZi5fcG9seSwgYV9mbXB6KQor ICAgICAgICAgICAgICAgICBmbXB6X2dldF9tcHooei52YWx1ZSwgel9mbXB6KQorICAgICAgICAg ICAgICAgICBmbXB6X2NsZWFyKGFfZm1weikKKyAgICAgICAgICAgICAgICAgZm1wel9jbGVhcih6 X2ZtcHopCitAQCAtNDMzLDcgKzQzMyw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2Vy X2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoeDAs IEludGVnZXIpOgorICAgICAgICAgICAgICAgICBhID0gPEludGVnZXI+IHgwCisgCistICAgICAg ICAgICAgICAgIGlmIGZtcHpfcG9seV9sZW5ndGgoc2VsZi5fX3BvbHkpID09IDA6CisrICAgICAg ICAgICAgICAgIGlmIGZtcHpfcG9seV9sZW5ndGgoc2VsZi5fcG9seSkgPT0gMDoKKyAgICAgICAg ICAgICAgICAgICAgIHJldHVybiBaWi56ZXJvKCkKKyAgICAgICAgICAgICAgICAgaWYgbXB6X3Nn bihhLnZhbHVlKSA9PSAwOgorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGZbMF0KK0BA IC00NDQsNyArNDQ0LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxp bnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgICAgIGZtcHpfaW5pdChhX2ZtcHopCisgICAg ICAgICAgICAgICAgIGZtcHpfaW5pdCh6X2ZtcHopCisgICAgICAgICAgICAgICAgIGZtcHpfc2V0 X21weihhX2ZtcHosIGEudmFsdWUpCistICAgICAgICAgICAgICAgIGZtcHpfcG9seV9ldmFsdWF0 ZV9mbXB6KHpfZm1weiwgc2VsZi5fX3BvbHksIGFfZm1weikKKysgICAgICAgICAgICAgICAgZm1w el9wb2x5X2V2YWx1YXRlX2ZtcHooel9mbXB6LCBzZWxmLl9wb2x5LCBhX2ZtcHopCisgICAgICAg ICAgICAgICAgIGZtcHpfZ2V0X21weih6LnZhbHVlLCB6X2ZtcHopCisgICAgICAgICAgICAgICAg IGZtcHpfY2xlYXIoYV9mbXB6KQorICAgICAgICAgICAgICAgICBmbXB6X2NsZWFyKHpfZm1weikK K0BAIC00NjAsMTQgKzQ2MCwxNCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5z ZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICAgICAgYXJiX2EgPSA8UmVhbEJhbGw+ IHgwCisgICAgICAgICAgICAgICAgIGFyYl96ID0gYXJiX2EuX25ldygpCisgICAgICAgICAgICAg ICAgIHNpZ19vbigpCistICAgICAgICAgICAgICAgIGFyYl9mbXB6X3BvbHlfZXZhbHVhdGVfYXJi KGFyYl96LnZhbHVlLCBzZWxmLl9fcG9seSwgYXJiX2EudmFsdWUsIGFyYl9hLl9wYXJlbnQuX3By ZWMpCisrICAgICAgICAgICAgICAgIGFyYl9mbXB6X3BvbHlfZXZhbHVhdGVfYXJiKGFyYl96LnZh bHVlLCBzZWxmLl9wb2x5LCBhcmJfYS52YWx1ZSwgYXJiX2EuX3BhcmVudC5fcHJlYykKKyAgICAg ICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAgICAgICAgICAgIHJldHVybiBhcmJfegorICAg ICAgICAgICAgIGlmIGlzaW5zdGFuY2UoeDAsIENvbXBsZXhCYWxsKToKKyAgICAgICAgICAgICAg ICAgYWNiX2EgPSA8Q29tcGxleEJhbGw+IHgwCisgICAgICAgICAgICAgICAgIGFjYl96ID0gYWNi X2EuX25ldygpCisgICAgICAgICAgICAgICAgIHNpZ19vbigpCistICAgICAgICAgICAgICAgIGFy Yl9mbXB6X3BvbHlfZXZhbHVhdGVfYWNiKGFjYl96LnZhbHVlLCBzZWxmLl9fcG9seSwgYWNiX2Eu dmFsdWUsIGFjYl9hLl9wYXJlbnQuX3ByZWMpCisrICAgICAgICAgICAgICAgIGFyYl9mbXB6X3Bv bHlfZXZhbHVhdGVfYWNiKGFjYl96LnZhbHVlLCBzZWxmLl9wb2x5LCBhY2JfYS52YWx1ZSwgYWNi X2EuX3BhcmVudC5fcHJlYykKKyAgICAgICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAgICAg ICAgICAgIHJldHVybiBhY2JfegorIAorQEAgLTUxMCwxMCArNTEwLDEwIEBAIGNkZWYgY2xhc3Mg UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorIAorICAgICAgICAg Y2RlZiBmbXB6X3QgYworICAgICAgICAgZm1wel9pbml0KGMpCistICAgICAgICBmbXB6X3BvbHlf Z2V0X2NvZWZmX2ZtcHooYywgc2VsZi5fX3BvbHksIGZtcHpfcG9seV9kZWdyZWUoc2VsZi5fX3Bv bHkpKQorKyAgICAgICAgZm1wel9wb2x5X2dldF9jb2VmZl9mbXB6KGMsIHNlbGYuX3BvbHksIGZt cHpfcG9seV9kZWdyZWUoc2VsZi5fcG9seSkpCisgICAgICAgICBjZGVmIGludCBzaWduID0gZm1w el9zZ24oYykKKyAKKy0gICAgICAgIGZtcHpfcG9seV9jb250ZW50KGMsIHNlbGYuX19wb2x5KQor KyAgICAgICAgZm1wel9wb2x5X2NvbnRlbnQoYywgc2VsZi5fcG9seSkKKyAKKyAgICAgICAgIGNk ZWYgSW50ZWdlciB6ID0gSW50ZWdlci5fX25ld19fKEludGVnZXIpCisgICAgICAgICBmbXB6X2dl dF9tcHooei52YWx1ZSwgYykKK0BAIC01NjEsNyArNTYxLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9t aWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgNSp4XjUg KyA0KnheNCArIDMqeF4zICsgMip4XjIgKyB4ICsgMQorICAgICAgICAgIiIiCisgICAgICAgICBj ZGVmIEludGVnZXIgeiA9IEludGVnZXIuX19uZXdfXyhJbnRlZ2VyKQorLSAgICAgICAgZm1wel9w b2x5X2dldF9jb2VmZl9tcHooei52YWx1ZSwgc2VsZi5fX3BvbHksIG4pCisrICAgICAgICBmbXB6 X3BvbHlfZ2V0X2NvZWZmX21weih6LnZhbHVlLCBzZWxmLl9wb2x5LCBuKQorICAgICAgICAgcmV0 dXJuIHoKKyAKKyAgICAgZGVmIF9yZXByKHNlbGYsIG5hbWU9Tm9uZSwgYmludCBsYXRleD1GYWxz ZSk6CitAQCAtNTgzLDggKzU4Myw4IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2Rl bnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgY2RlZiBsb25nIGkKKyAgICAgICAgIGNk ZWYgSW50ZWdlciBjb2VmID0gSW50ZWdlci5fX25ld19fKEludGVnZXIpCisgICAgICAgICBjZGVm IGxpc3QgYWxsID0gW10KKy0gICAgICAgIGZvciBpIGZyb20gZm1wel9wb2x5X2RlZ3JlZShzZWxm Ll9fcG9seSkgPj0gaSA+PSAwOgorLSAgICAgICAgICAgIGZtcHpfcG9seV9nZXRfY29lZmZfbXB6 KGNvZWYudmFsdWUsIHNlbGYuX19wb2x5LCBpKQorKyAgICAgICAgZm9yIGkgZnJvbSBmbXB6X3Bv bHlfZGVncmVlKHNlbGYuX3BvbHkpID49IGkgPj0gMDoKKysgICAgICAgICAgICBmbXB6X3BvbHlf Z2V0X2NvZWZmX21weihjb2VmLnZhbHVlLCBzZWxmLl9wb2x5LCBpKQorICAgICAgICAgICAgIGlm IGNvZWY6CisgICAgICAgICAgICAgICAgIGlmIGNvZWYgPiAwOgorICAgICAgICAgICAgICAgICAg ICAgc2lnbl9zdHIgPSAnKycKK0BAIC02NDksOCArNjQ5LDggQEAgY2RlZiBjbGFzcyBQb2x5bm9t aWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50IHggPSBzZWxmLl9uZXcoKQor ICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGZtcHpfcG9seV9hZGQoeC5fX3BvbHksIHNlbGYu X19wb2x5LAorLSAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGlu dD5yaWdodCkuX19wb2x5KQorKyAgICAgICAgZm1wel9wb2x5X2FkZCh4Ll9wb2x5LCBzZWxmLl9w b2x5LAorKyAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludD5y aWdodCkuX3BvbHkpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiB4CisgCitA QCAtNjY5LDggKzY2OSw4IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2Zs aW50KFBvbHlub21pYWwpOgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIFBvbHlub21pYWxf aW50ZWdlcl9kZW5zZV9mbGludCB4ID0gc2VsZi5fbmV3KCkKKyAgICAgICAgIHNpZ19vbigpCist ICAgICAgICBmbXB6X3BvbHlfc3ViKHguX19wb2x5LCBzZWxmLl9fcG9seSwKKy0gICAgICAgICAg ICAgICAgKDxQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQ+cmlnaHQpLl9fcG9seSkKKysg ICAgICAgIGZtcHpfcG9seV9zdWIoeC5fcG9seSwgc2VsZi5fcG9seSwKKysgICAgICAgICAgICAg ICAgKDxQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQ+cmlnaHQpLl9wb2x5KQorICAgICAg ICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4geAorIAorQEAgLTY4OCw3ICs2ODgsNyBAQCBj ZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAg ICAgICAgICIiIgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQg eCA9IHNlbGYuX25ldygpCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgZm1wel9wb2x5X25l Zyh4Ll9fcG9seSwgc2VsZi5fX3BvbHkpCisrICAgICAgICBmbXB6X3BvbHlfbmVnKHguX3BvbHks IHNlbGYuX3BvbHkpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiB4CisgCitA QCAtNzU4LDcgKzc1OCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2Zs aW50KFBvbHlub21pYWwpOgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2Vf ZmxpbnQgcnIgPSBzZWxmLl9uZXcoKQorIAorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGZt cHpfcG9seV9kaXZyZW0ocXEuX19wb2x5LCByci5fX3BvbHksIHNlbGYuX19wb2x5LCByaWdodC5f X3BvbHkpCisrICAgICAgICBmbXB6X3BvbHlfZGl2cmVtKHFxLl9wb2x5LCByci5fcG9seSwgc2Vs Zi5fcG9seSwgcmlnaHQuX3BvbHkpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVy biBxcSwgcnIKKyAKK0BAIC03NzYsNyArNzc2LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2lu dGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgc2FnZTogeC5pc196 ZXJvKCkKKyAgICAgICAgICAgICBGYWxzZQorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4g KGZtcHpfcG9seV9kZWdyZWUoc2VsZi5fX3BvbHkpID09IC0xKQorKyAgICAgICAgcmV0dXJuIChm bXB6X3BvbHlfZGVncmVlKHNlbGYuX3BvbHkpID09IC0xKQorIAorICAgICBjcGRlZiBiaW50IGlz X29uZShzZWxmKSBleGNlcHQgLTE6CisgICAgICAgICAiIiIKK0BAIC03OTIsNyArNzkyLDcgQEAg Y2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6Cisg ICAgICAgICAgICAgc2FnZTogeC5pc19vbmUoKQorICAgICAgICAgICAgIEZhbHNlCisgICAgICAg ICAiIiIKKy0gICAgICAgIHJldHVybiBmbXB6X3BvbHlfaXNfb25lKHNlbGYuX19wb2x5KQorKyAg ICAgICAgcmV0dXJuIGZtcHpfcG9seV9pc19vbmUoc2VsZi5fcG9seSkKKyAKKyAgICAgZGVmIF9f Ym9vbF9fKHNlbGYpOgorICAgICAgICAgIiIiCitAQCAtODA4LDcgKzgwOCw3IEBAIGNkZWYgY2xh c3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAg ICAgIHNhZ2U6IGJvb2woeCkKKyAgICAgICAgICAgICBUcnVlCisgICAgICAgICAiIiIKKy0gICAg ICAgIHJldHVybiBub3QgKGZtcHpfcG9seV9kZWdyZWUoc2VsZi5fX3BvbHkpID09IC0xKQorKyAg ICAgICAgcmV0dXJuIG5vdCAoZm1wel9wb2x5X2RlZ3JlZShzZWxmLl9wb2x5KSA9PSAtMSkKKyAK KyAgICAgQGNvZXJjZV9iaW5vcAorICAgICBkZWYgZ2NkKHNlbGYsIHJpZ2h0KToKK0BAIC04MzEs OCArODMxLDggQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9s eW5vbWlhbCk6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYKKyAgICAgICAgIGNkZWYgUG9seW5v bWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50IHggPSBzZWxmLl9uZXcoKQorICAgICAgICAgc2lnX29u KCkKKy0gICAgICAgIGZtcHpfcG9seV9nY2QoeC5fX3BvbHksIHNlbGYuX19wb2x5LAorLSAgICAg ICAgICAgICAgICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludD5yaWdodCkuX19wb2x5 KQorKyAgICAgICAgZm1wel9wb2x5X2djZCh4Ll9wb2x5LCBzZWxmLl9wb2x5LAorKyAgICAgICAg ICAgICAgICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludD5yaWdodCkuX3BvbHkpCisg ICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiB4CisgCitAQCAtOTQxLDggKzk0MSw4 IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwp OgorICAgICAgICAgZm1wel9pbml0KHIpCisgCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAg Zm1wel9wb2x5X3hnY2Qociwgc3MuX19wb2x5LCB0dC5fX3BvbHksIHNlbGYuX19wb2x5LAorLSAg ICAgICAgICAgICAgICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludD5yaWdodCkuX19w b2x5KQorKyAgICAgICAgZm1wel9wb2x5X3hnY2Qociwgc3MuX3BvbHksIHR0Ll9wb2x5LCBzZWxm Ll9wb2x5LAorKyAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGlu dD5yaWdodCkuX3BvbHkpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIGNkZWYgSW50ZWdl ciByciA9IEludGVnZXIuX19uZXdfXyhJbnRlZ2VyKQorICAgICAgICAgZm1wel9nZXRfbXB6KHJy LnZhbHVlLCByKQorQEAgLTk3MCw4ICs5NzAsOCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50 ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgY2Rl ZiBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQgeCA9IHNlbGYuX25ldygpCisgICAgICAg ICBzaWdfb24oKQorLSAgICAgICAgZm1wel9wb2x5X211bCh4Ll9fcG9seSwgc2VsZi5fX3BvbHks CistICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50PnJpZ2h0 KS5fX3BvbHkpCisrICAgICAgICBmbXB6X3BvbHlfbXVsKHguX3BvbHksIHNlbGYuX3BvbHksCisr ICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50PnJpZ2h0KS5f cG9seSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHgKKyAKK0BAIC0xMDAw LDggKzEwMDAsOCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQ b2x5bm9taWFsKToKKyAKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2Zs aW50IHggPSBzZWxmLl9uZXcoKQorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGZtcHpfcG9s eV9tdWxsb3coeC5fX3BvbHksIHNlbGYuX19wb2x5LAorLSAgICAgICAgICAgICAgICAgICAgKDxQ b2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQ+cmlnaHQpLl9fcG9seSwKKysgICAgICAgIGZt cHpfcG9seV9tdWxsb3coeC5fcG9seSwgc2VsZi5fcG9seSwKKysgICAgICAgICAgICAgICAgICAg ICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50PnJpZ2h0KS5fcG9seSwKKyAgICAgICAg ICAgICAgICAgICAgIG4pCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiB4CitA QCAtMTAyMCw3ICsxMDIwLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2Vf ZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUG9seW5vbWlh bF9pbnRlZ2VyX2RlbnNlX2ZsaW50IHggPSBzZWxmLl9uZXcoKQorICAgICAgICAgc2lnX29uKCkK Ky0gICAgICAgIGZtcHpfcG9seV9zY2FsYXJfbXVsX21weih4Ll9fcG9seSwgc2VsZi5fX3BvbHks ICg8SW50ZWdlcj5yaWdodCkudmFsdWUpCisrICAgICAgICBmbXB6X3BvbHlfc2NhbGFyX211bF9t cHooeC5fcG9seSwgc2VsZi5fcG9seSwgKDxJbnRlZ2VyPnJpZ2h0KS52YWx1ZSkKKyAgICAgICAg IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHgKKyAKK0BAIC0xMDM4LDcgKzEwMzgsNyBAQCBj ZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAg ICAgICAgICIiIgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQg eCA9IHNlbGYuX25ldygpCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgZm1wel9wb2x5X3Nj YWxhcl9tdWxfbXB6KHguX19wb2x5LCBzZWxmLl9fcG9seSwgKDxJbnRlZ2VyPnJpZ2h0KS52YWx1 ZSkKKysgICAgICAgIGZtcHpfcG9seV9zY2FsYXJfbXVsX21weih4Ll9wb2x5LCBzZWxmLl9wb2x5 LCAoPEludGVnZXI+cmlnaHQpLnZhbHVlKQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICBy ZXR1cm4geAorIAorQEAgLTExMzIsNyArMTEzMiw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9p bnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgIG51bSA9IG4ubnVt ZXJhdG9yKCkKKyAgICAgICAgICAgICBkZW4gPSBuLmRlbm9taW5hdG9yKCkKKyAKKy0gICAgICAg ICAgICBpZiBmbXB6X3BvbHlfZGVncmVlKHNlbGYuX19wb2x5KSA9PSAwOgorKyAgICAgICAgICAg IGlmIGZtcHpfcG9seV9kZWdyZWUoc2VsZi5fcG9seSkgPT0gMDoKKyAgICAgICAgICAgICAgICAg cmV0dXJuIHNlbGYucGFyZW50KCkoc2VsZlswXS5udGhfcm9vdChkZW4pICoqIG51bSkKKyAKKyAg ICAgICAgICAgICByZXR1cm4gc2VsZi5udGhfcm9vdChkZW4pICoqIG51bQorQEAgLTExNDIsNyAr MTE0Miw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlu b21pYWwpOgorIAorICAgICAgICAgICAgIGlmIHNlbGYuaXNfemVybygpOgorICAgICAgICAgICAg ICAgICBpZiBubiA9PSAwOgorLSAgICAgICAgICAgICAgICAgICAgZm1wel9wb2x5X3NldF9jb2Vm Zl9zaShyZXMuX19wb2x5LCAwLCAxKQorKyAgICAgICAgICAgICAgICAgICAgZm1wel9wb2x5X3Nl dF9jb2VmZl9zaShyZXMuX3BvbHksIDAsIDEpCisgICAgICAgICAgICAgICAgICAgICByZXR1cm4g cmVzCisgICAgICAgICAgICAgICAgIGVsaWYgbm4gPCAwOgorICAgICAgICAgICAgICAgICAgICAg cmFpc2UgWmVyb0RpdmlzaW9uRXJyb3IoIm5lZ2F0aXZlIGV4cG9uZW50IGluIHBvd2VyIG9mIHpl cm8iKQorQEAgLTExNTAsMTcgKzExNTAsMTcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVn ZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4g cmVzCisgICAgICAgICAgICAgaWYgbm4gPCAwOgorICAgICAgICAgICAgICAgICBzaWdfb24oKQor LSAgICAgICAgICAgICAgICBmbXB6X3BvbHlfcG93KHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCAt bm4pCisrICAgICAgICAgICAgICAgIGZtcHpfcG9seV9wb3cocmVzLl9wb2x5LCBzZWxmLl9wb2x5 LCAtbm4pCisgICAgICAgICAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgICAgICAgICByZXR1 cm4gfnJlcworICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIGlmIHNlbGYgaXMg c2VsZi5fcGFyZW50LmdlbigpOgorICAgICAgICAgICAgICAgICAgICAgc2lnX29uKCkKKy0gICAg ICAgICAgICAgICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZfdWkocmVzLl9fcG9seSwgbm4sIDEp CisrICAgICAgICAgICAgICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX3VpKHJlcy5fcG9seSwg bm4sIDEpCisgICAgICAgICAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgICAgICAgICAg ZWxzZToKKyAgICAgICAgICAgICAgICAgICAgIHNpZ19vbigpCistICAgICAgICAgICAgICAgICAg ICBmbXB6X3BvbHlfcG93KHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBubikKKysgICAgICAgICAg ICAgICAgICAgIGZtcHpfcG9seV9wb3cocmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBubikKKyAgICAg ICAgICAgICAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgICAgICAgICByZXR1cm4gcmVzCisg CitAQCAtMTE4Nyw3ICsxMTg3LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVu c2VfZmxpbnQoUG9seW5vbWlhbCk6CisgCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfaW50ZWdl cl9kZW5zZV9mbGludCByZXMKKyAgICAgICAgIHJlcyA9IHNlbGYuX25ldygpCistICAgICAgICBm bXB6X3BvbHlfcG93X3RydW5jKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBuLCBwcmVjKQorKyAg ICAgICAgZm1wel9wb2x5X3Bvd190cnVuYyhyZXMuX3BvbHksIHNlbGYuX3BvbHksIG4sIHByZWMp CisgICAgICAgICByZXR1cm4gcmVzCisgCisgICAgIGRlZiBfX2Zsb29yZGl2X18oUG9seW5vbWlh bF9pbnRlZ2VyX2RlbnNlX2ZsaW50IHNlbGYsIHJpZ2h0KToKK0BAIC0xMjI2LDE0ICsxMjI2LDE0 IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwp OgorICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgcmVzID0gc2Vs Zi5fbmV3KCkKKyAgICAgICAgICAgICAgICAgICAgIHNpZ19vbigpCistICAgICAgICAgICAgICAg ICAgICBmbXB6X3BvbHlfc2NhbGFyX2ZkaXZfbXB6KHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LAor KyAgICAgICAgICAgICAgICAgICAgZm1wel9wb2x5X3NjYWxhcl9mZGl2X21weihyZXMuX3BvbHks IHNlbGYuX3BvbHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg8SW50ZWdlcj4gcmln aHQpLnZhbHVlKQorICAgICAgICAgICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAgICAgICAg ICAgIHJldHVybiByZXMKKyAgICAgICAgICAgICBlbGlmIHJpZ2h0IGluIFpaOgorICAgICAgICAg ICAgICAgICByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgICAgICAgICBzaWdfb24oKQorLSAg ICAgICAgICAgICAgICBmbXB6X3BvbHlfc2NhbGFyX2ZkaXZfbXB6KHJlcy5fX3BvbHksIHNlbGYu X19wb2x5LAorKyAgICAgICAgICAgICAgICBmbXB6X3BvbHlfc2NhbGFyX2ZkaXZfbXB6KHJlcy5f cG9seSwgc2VsZi5fcG9seSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoPEludGVnZXI+Wloo cmlnaHQpKS52YWx1ZSkKKyAgICAgICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAgICAgICAg ICAgIHJldHVybiByZXMKK0BAIC0xMjQ4LDcgKzEyNDgsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21p YWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgIGVsc2U6CisgICAg ICAgICAgICAgcmVzID0gc2VsZi5fbmV3KCkKKyAgICAgICAgICAgICBzaWdfb24oKQorLSAgICAg ICAgICAgIGZtcHpfcG9seV9kaXYocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIF9yaWdodC5fX3Bv bHkpCisrICAgICAgICAgICAgZm1wel9wb2x5X2RpdihyZXMuX3BvbHksIHNlbGYuX3BvbHksIF9y aWdodC5fcG9seSkKKyAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgICAgICByZXR1cm4g cmVzCisgCitAQCAtMTI5Myw5ICsxMjkzLDkgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVn ZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICBpZiBwcmVjIDw9IDA6CisgICAg ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigidGhlIHByZWNpc2lvbiBtdXN0IGJlIHBvc2l0aXZl LCBnb3Qge30iLmZvcm1hdChwcmVjKSkKKyAKKy0gICAgICAgIGlmIGZtcHpfcG9seV9kZWdyZWUo c2VsZi5fX3BvbHkpID09IC0xOgorKyAgICAgICAgaWYgZm1wel9wb2x5X2RlZ3JlZShzZWxmLl9w b2x5KSA9PSAtMToKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJjb25zdGFudCB0ZXJt IGlzIHplcm8iKQorLSAgICAgICAgY2RlZiBmbXB6X3QgYyA9IGZtcHpfcG9seV9nZXRfY29lZmZf cHRyKHNlbGYuX19wb2x5LCAwKQorKyAgICAgICAgY2RlZiBmbXB6X3QgYyA9IGZtcHpfcG9seV9n ZXRfY29lZmZfcHRyKHNlbGYuX3BvbHksIDApCisgICAgICAgICBpZiBmbXB6X2NtcF9zaShjLCAx KSBhbmQgZm1wel9jbXBfc2koYywgLTEpOgorICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io ImNvbnN0YW50IHRlcm0ge30gaXMgbm90IGEgdW5pdCIuZm9ybWF0KHNlbGZbMF0pKQorIAorQEAg LTEzMDMsNyArMTMwMyw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2Zs aW50KFBvbHlub21pYWwpOgorICAgICAgICAgaWYgcHJlYyA8PSAwOgorICAgICAgICAgICAgIHJl dHVybiByZXMKKyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBmbXB6X3BvbHlfaW52X3Nlcmll cyhyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgcHJlYykKKysgICAgICAgIGZtcHpfcG9seV9pbnZf c2VyaWVzKHJlcy5fcG9seSwgc2VsZi5fcG9seSwgcHJlYykKKyAgICAgICAgIHNpZ19vZmYoKQor ICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTEzMzEsMTYgKzEzMzEsMTYgQEAgY2RlZiBjbGFz cyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAg ICAgcmFpc2UgSW5kZXhFcnJvcigibiBtdXN0IGJlID49IDAiKQorICAgICAgICAgaWYgaXNpbnN0 YW5jZSh2YWx1ZSwgaW50KToKKyAgICAgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgICAgIGZt cHpfcG9seV9zZXRfY29lZmZfc2koc2VsZi5fX3BvbHksIG4sIHZhbHVlKQorKyAgICAgICAgICAg IGZtcHpfcG9seV9zZXRfY29lZmZfc2koc2VsZi5fcG9seSwgbiwgdmFsdWUpCisgICAgICAgICAg ICAgc2lnX29mZigpCisgICAgICAgICBlbGlmIGlzaW5zdGFuY2UodmFsdWUsIEludGVnZXIpOgor ICAgICAgICAgICAgIHNpZ19vbigpCistICAgICAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9t cHooc2VsZi5fX3BvbHksIG4sICg8SW50ZWdlcj52YWx1ZSkudmFsdWUpCisrICAgICAgICAgICAg Zm1wel9wb2x5X3NldF9jb2VmZl9tcHooc2VsZi5fcG9seSwgbiwgKDxJbnRlZ2VyPnZhbHVlKS52 YWx1ZSkKKyAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAg ICAgdmFsdWUgPSBJbnRlZ2VyKHZhbHVlKQorICAgICAgICAgICAgIHNpZ19vbigpCistICAgICAg ICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9tcHooc2VsZi5fX3BvbHksIG4sICg8SW50ZWdlcj52 YWx1ZSkudmFsdWUpCisrICAgICAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9tcHooc2VsZi5f cG9seSwgbiwgKDxJbnRlZ2VyPnZhbHVlKS52YWx1ZSkKKyAgICAgICAgICAgICBzaWdfb2ZmKCkK KyAKKyAgICAgZGVmIHJlYWxfcm9vdF9pbnRlcnZhbHMoc2VsZik6CitAQCAtMTM2NCw3ICsxMzY0 LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlh bCk6CisgCisgIyMgICAgIGRlZiBfX2NvcHlfXyhzZWxmKToKKyAjIyAgICAgICAgIGYgPSBQb2x5 bm9taWFsX2ludGVnZXJfZGVuc2Uoc2VsZi5wYXJlbnQoKSkKKy0jIyAgICAgICAgIGYuX19wb2x5 ID0gc2VsZi5fX3BvbHkuY29weSgpCisrIyMgICAgICAgICBmLl9wb2x5ID0gc2VsZi5fcG9seS5j b3B5KCkKKyAjIyAgICAgICAgIHJldHVybiBmCisgCisgCitAQCAtMTM5MSw3ICsxMzkxLDcgQEAg Y2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6Cisg ICAgICAgICAgICAgc2FnZTogdHlwZSh4LmRlZ3JlZSgpKQorICAgICAgICAgICAgIDxjbGFzcyAn c2FnZS5yaW5ncy5pbnRlZ2VyLkludGVnZXInPgorICAgICAgICAgIiIiCistICAgICAgICByZXR1 cm4gc21hbGxJbnRlZ2VyKGZtcHpfcG9seV9kZWdyZWUoc2VsZi5fX3BvbHkpKQorKyAgICAgICAg cmV0dXJuIHNtYWxsSW50ZWdlcihmbXB6X3BvbHlfZGVncmVlKHNlbGYuX3BvbHkpKQorIAorICAg ICBkZWYgcHNldWRvX2RpdnJlbShzZWxmLCBCKToKKyAgICAgICAgIHIiIiIKK0BAIC0xNDI2LDcg KzE0MjYsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5 bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2ludGVnZXJf ZGVuc2VfZmxpbnQgUSA9IHNlbGYuX25ldygpLCBSID0gc2VsZi5fbmV3KCksIF9CID0gQgorICAg ICAgICAgY2RlZiB1bG9uZyBkCistICAgICAgICBmbXB6X3BvbHlfcHNldWRvX2RpdnJlbShRLl9f cG9seSwgUi5fX3BvbHksICZkLCBzZWxmLl9fcG9seSwgX0IuX19wb2x5KQorKyAgICAgICAgZm1w el9wb2x5X3BzZXVkb19kaXZyZW0oUS5fcG9seSwgUi5fcG9seSwgJmQsIHNlbGYuX3BvbHksIF9C Ll9wb2x5KQorICAgICAgICAgcmV0dXJuIFEsIFIsIEludGVnZXIoZCkKKyAKKyAgICAgZGVmIGRp c2NyaW1pbmFudChzZWxmLCBwcm9vZj1UcnVlKToKK0BAIC0xNDYwLDcgKzE0NjAsNyBAQCBjZGVm IGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAg ICAgICIiIgorICAgICAgICAgY2RlZiBaWlhfYyBudGxfcG9seQorICAgICAgICAgY2RlZiBaWl9j KiB0ZW1wCistICAgICAgICBmbXB6X3BvbHlfZ2V0X1paWChudGxfcG9seSwgc2VsZi5fX3BvbHkp CisrICAgICAgICBmbXB6X3BvbHlfZ2V0X1paWChudGxfcG9seSwgc2VsZi5fcG9seSkKKyAKKyAg ICAgICAgIHRlbXAgPSBaWlhfZGlzY3JpbWluYW50KCZudGxfcG9seSwgcHJvb2YpCisgICAgICAg ICBjZGVmIEludGVnZXIgeCA9IEludGVnZXIuX19uZXdfXyhJbnRlZ2VyKQorQEAgLTE1MzEsMTIg KzE1MzEsMTIgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9s eW5vbWlhbCk6CisgCisgICAgICAgICAgICAgIyB0aGUgcHJpbWl0aXZlIHBhcnQgcmV0dXJuZWQg YnkgRkxJTlQgaGFzIHBvc2l0aXZlIGxlYWRpbmcKKyAgICAgICAgICAgICAjIGNvZWZmaWNpZW50 CistICAgICAgICAgICAgZm1wel9wb2x5X3ByaW1pdGl2ZV9wYXJ0KHBwYXJ0LCBzZWxmLl9fcG9s eSkKKysgICAgICAgICAgICBmbXB6X3BvbHlfcHJpbWl0aXZlX3BhcnQocHBhcnQsIHNlbGYuX3Bv bHkpCisgCisgICAgICAgICAgICAgZm1wel9wb2x5X2dldF9aWlgobnRsX3BvbHksIHBwYXJ0KQor ICAgICAgICAgICAgIGZtcHpfcG9seV9jbGVhcihwcGFydCkKKyAgICAgICAgIGVsc2U6CistICAg ICAgICAgICAgZm1wel9wb2x5X2dldF9aWlgobnRsX3BvbHksIHNlbGYuX19wb2x5KQorKyAgICAg ICAgICAgIGZtcHpfcG9seV9nZXRfWlpYKG50bF9wb2x5LCBzZWxmLl9wb2x5KQorIAorICAgICAg ICAgIyBpbnB1dCBpcyBwcmltaXRpdmUsIHdpdGggcG9zaXRpdmUgbGVhZGluZyBjb2VmZmljaWVu dAorICAgICAgICAgWlpYX3NxdWFyZWZyZWVfZGVjb21wb3NpdGlvbigmdiwgJmUsICZuLCAmbnRs X3BvbHkpCitAQCAtMTU0NCw3ICsxNTQ0LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVn ZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICBGID0gW10KKyAgICAgICAgIGZv ciBpIGZyb20gMCA8PSBpIDwgbjoKKyAgICAgICAgICAgICBmYWMgPSBzZWxmLl9uZXcoKQorLSAg ICAgICAgICAgIGZtcHpfcG9seV9zZXRfWlpYKGZhYy5fX3BvbHksIHZbaV1bMF0pCisrICAgICAg ICAgICAgZm1wel9wb2x5X3NldF9aWlgoZmFjLl9wb2x5LCB2W2ldWzBdKQorICAgICAgICAgICAg IEYuYXBwZW5kKCAoZmFjLGVbaV0pICkKKyAgICAgICAgICAgICBkZWwgdltpXQorICAgICAgICAg c2lnX2ZyZWUodikKK0BAIC0xNTgyLDkgKzE1ODIsOSBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxf aW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgIGNkZWYgWlpfYyBjb250 ZW50CisgICAgICAgICBjZGVmIHZlY19wYWlyX1paWF9sb25nX2MgZmFjdG9ycworICAgICAgICAg Y2RlZiBsb25nIGkKKy0gICAgICAgIGNkZWYgaW50IHNpZ19tZSA9IGZtcHpfcG9seV9kZWdyZWUo c2VsZi5fX3BvbHkpCisrICAgICAgICBjZGVmIGludCBzaWdfbWUgPSBmbXB6X3BvbHlfZGVncmVl KHNlbGYuX3BvbHkpCisgCistICAgICAgICBmbXB6X3BvbHlfZ2V0X1paWChudGxfcG9seSwgc2Vs Zi5fX3BvbHkpCisrICAgICAgICBmbXB6X3BvbHlfZ2V0X1paWChudGxfcG9seSwgc2VsZi5fcG9s eSkKKyAKKyAgICAgICAgIGlmIHNpZ19tZSA+IDEwOgorICAgICAgICAgICAgIHNpZ19vbigpCitA QCAtMTYwMywxMyArMTYwMywxMyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5z ZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBmYWNfcHkgPSBzZWxmLl9uZXcoKQor ICAgICAgICAgICAgIGZtcHpfaW5pdCh0Y29udGVudCkKKyAgICAgICAgICAgICBmbXB6X3NldF9a Wih0Y29udGVudCwgY29udGVudCkKKy0gICAgICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX2Zt cHooZmFjX3B5Ll9fcG9seSwgMCwgdGNvbnRlbnQpCisrICAgICAgICAgICAgZm1wel9wb2x5X3Nl dF9jb2VmZl9mbXB6KGZhY19weS5fcG9seSwgMCwgdGNvbnRlbnQpCisgICAgICAgICAgICAgcmVz dWx0cy5hcHBlbmQoIChmYWNfcHksMSkgKQorICAgICAgICAgICAgIGZtcHpfY2xlYXIodGNvbnRl bnQpCisgCisgICAgICAgICBmb3IgaSBmcm9tIDAgPD0gaSA8IGZhY3RvcnMubGVuZ3RoKCk6Cisg ICAgICAgICAgICAgZmFjX3B5ID0gc2VsZi5fbmV3KCkKKy0gICAgICAgICAgICBmbXB6X3BvbHlf c2V0X1paWChmYWNfcHkuX19wb2x5LCBmYWN0b3JzLlJhd0dldChpKS5hKQorKyAgICAgICAgICAg IGZtcHpfcG9seV9zZXRfWlpYKGZhY19weS5fcG9seSwgZmFjdG9ycy5SYXdHZXQoaSkuYSkKKyAg ICAgICAgICAgICByZXN1bHRzLmFwcGVuZCggKGZhY19weSxmYWN0b3JzLlJhd0dldChpKS5iKSAp CisgICAgICAgICByZXR1cm4gRmFjdG9yaXphdGlvbihyZXN1bHRzLCB1bml0ID0gdW5pdCkKKyAK K0BAIC0xNjM5LDcgKzE2MzksNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5z ZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICAoLTEpICogMiAqIDMgKiA1ICogeAor ICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIGludCBpCistICAgICAgICBjZGVmIGxvbmcgZGVn ID0gZm1wel9wb2x5X2RlZ3JlZShzZWxmLl9fcG9seSkKKysgICAgICAgIGNkZWYgbG9uZyBkZWcg PSBmbXB6X3BvbHlfZGVncmVlKHNlbGYuX3BvbHkpCisgICAgICAgICAjIGl0IGFwcGVhcnMgdGhh dCBwYXJpIGhhcyBhIHdpbmRvdyBmcm9tIGFib3V0IGRlZ3JlZXMgMzAgYW5kIDMwMAorICAgICAg ICAgIyBpbiB3aGljaCBpdCBiZWF0cyBOVEwuCisgICAgICAgICBjID0gc2VsZi5jb250ZW50KCkK K0BAIC0xNzgzLDggKzE3ODMsOCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5z ZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgIGNkZWYgSW50ZWdlciB4ID0gSW50ZWdlci5f X25ld19fKEludGVnZXIpCisgCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgZm1wel9wb2x5 X3Jlc3VsdGFudChyZXMsIHNlbGYuX19wb2x5LAorLSAgICAgICAgICAgICAgICAoPFBvbHlub21p YWxfaW50ZWdlcl9kZW5zZV9mbGludD5vdGhlcikuX19wb2x5KQorKyAgICAgICAgZm1wel9wb2x5 X3Jlc3VsdGFudChyZXMsIHNlbGYuX3BvbHksCisrICAgICAgICAgICAgICAgICg8UG9seW5vbWlh bF9pbnRlZ2VyX2RlbnNlX2ZsaW50Pm90aGVyKS5fcG9seSkKKyAgICAgICAgIHNpZ19vZmYoKQor ICAgICAgICAgZm1wel9nZXRfbXB6KHgudmFsdWUsIHJlcykKKyAgICAgICAgIGZtcHpfY2xlYXIo cmVzKQorQEAgLTE4MzAsMTAgKzE4MzAsMTAgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVn ZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgaWYgZCAhPSBkZWdyZWU6 CisgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImRlZ3JlZSBhcmd1bWVudCBtdXN0 IGJlIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIsIGdvdCAlcyIgJSBkZWdyZWUpCisgICAgICAgICAg ICAgIyBGTElOVCBleHBlY3RzIGxlbmd0aAorLSAgICAgICAgICAgIGZtcHpfcG9seV9yZXZlcnNl KHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBkKzEpCisrICAgICAgICAgICAgZm1wel9wb2x5X3Jl dmVyc2UocmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBkKzEpCisgICAgICAgICBlbHNlOgorLSAgICAg ICAgICAgIGZtcHpfcG9seV9yZXZlcnNlKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LAorLSAgICAg ICAgICAgICAgICAgICAgZm1wel9wb2x5X2xlbmd0aChzZWxmLl9fcG9seSkpCisrICAgICAgICAg ICAgZm1wel9wb2x5X3JldmVyc2UocmVzLl9wb2x5LCBzZWxmLl9wb2x5LAorKyAgICAgICAgICAg ICAgICAgICAgZm1wel9wb2x5X2xlbmd0aChzZWxmLl9wb2x5KSkKKyAgICAgICAgIHJldHVybiBy ZXMKKyAKKyAgICAgZGVmIHJldmVydF9zZXJpZXMoc2VsZiwgbik6CitAQCAtMTg2Nyw3ICsxODY3 LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlh bCk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigic2VsZiBtdXN0IGhhdmUgY29uc3Rh bnQgY29lZmZpY2llbnQgMCBhbmQgYSB1bml0IGZvciBjb2VmZmljaWVudCB7fV4xIi5mb3JtYXQo c2VsZi5wYXJlbnQoKS5nZW4oKSkpCisgCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgZm1w el9wb2x5X3JldmVydF9zZXJpZXMocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIG0pCisrICAgICAg ICBmbXB6X3BvbHlfcmV2ZXJ0X3NlcmllcyhyZXMuX3BvbHksIHNlbGYuX3BvbHksIG0pCisgICAg ICAgICBzaWdfb2ZmKCkKKyAKKyAgICAgICAgIHJldHVybiByZXMKK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwucHhkIGIv c3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsLnB4 ZAoraW5kZXggYTdjMzgwYjQ5YTIuLmZjZDkwN2UxYWJlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv cmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsLnB4ZAorKysrIGIv c3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsLnB4 ZAorQEAgLTIsNiArMiw2IEBAIGZyb20gc2FnZS5saWJzLm50bC50eXBlcyBjaW1wb3J0IFpaWF9j CisgZnJvbSBzYWdlLnJpbmdzLnBvbHlub21pYWwucG9seW5vbWlhbF9lbGVtZW50IGNpbXBvcnQg UG9seW5vbWlhbAorIAorIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQ b2x5bm9taWFsKToKKy0gICAgY2RlZiBaWlhfYyBfX3BvbHkKKysgICAgY2RlZiBaWlhfYyBfcG9s eQorIAorICAgICBjZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwgX25ldyhzZWxmKQor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9pbnRlZ2Vy X2RlbnNlX250bC5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfaW50 ZWdlcl9kZW5zZV9udGwucHl4CitpbmRleCBlN2I3MDhiYmM1MS4uODBhMTcyNmJiNGUgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfaW50ZWdlcl9kZW5z ZV9udGwucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfaW50 ZWdlcl9kZW5zZV9udGwucHl4CitAQCAtMTcyLDcgKzE3Miw3IEBAIGNkZWYgY2xhc3MgUG9seW5v bWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAgICAgIGlmIGlzaW5zdGFu Y2UoeCwgUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgaWYgeC5wYXJlbnQoKSBpcyBzZWxmLnBh cmVudCgpOgorICAgICAgICAgICAgICAgICAjIGNvcHkgd2l0aCBOVEwgYXNzaWdubWVudCBvcGVy YXRvcgorLSAgICAgICAgICAgICAgICBzZWxmLl9fcG9seSA9ICg8UG9seW5vbWlhbF9pbnRlZ2Vy X2RlbnNlX250bD54KS5fX3BvbHkKKysgICAgICAgICAgICAgICAgc2VsZi5fcG9seSA9ICg8UG9s eW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bD54KS5fcG9seQorICAgICAgICAgICAgICAgICByZXR1 cm4KKyAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAjIGNvZXJjZSBjb2VmZmlj aWVudHMgaW50byBTYWdlIGludGVnZXJzCitAQCAtMTkxLDE3ICsxOTEsMTcgQEAgY2RlZiBjbGFz cyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKFBvbHlub21pYWwpOgorICAgICAgICAgICAg ICAgICAgICAgZGVncmVlID0gaQorICAgICAgICAgICAgIGlmIGRlZ3JlZSA+PSBOVExfT1ZGQk5E OgorICAgICAgICAgICAgICAgICByYWlzZSBPdmVyZmxvd0Vycm9yKCJEZW5zZSBOVEwgaW50ZWdl ciBwb2x5bm9taWFscyBoYXZlIGEgbWF4aW11bSBkZWdyZWUgb2YgJXMiICUgKE5UTF9PVkZCTkQt MSkpCistICAgICAgICAgICAgWlpYX1NldENvZWZmX2xvbmcoc2VsZi5fX3BvbHksIGRlZ3JlZSwg MSkKKysgICAgICAgICAgICBaWlhfU2V0Q29lZmZfbG9uZyhzZWxmLl9wb2x5LCBkZWdyZWUsIDEp CisgICAgICAgICAgICAgIyBub3cgZmlsbCB0aGVtIGluCisgICAgICAgICAgICAgZm9yIGlpLCBh IGluIHg6CisgICAgICAgICAgICAgICAgIGkgPSBpaVswXSBpZiB0eXBlKGlpKSBpcyB0dXBsZSBl bHNlIGlpCisgICAgICAgICAgICAgICAgIGlmIHR5cGUoYSkgaXMgaW50OgorLSAgICAgICAgICAg ICAgICAgICAgWlpYX1NldENvZWZmX2xvbmcoc2VsZi5fX3BvbHksIGksIGEpCisrICAgICAgICAg ICAgICAgICAgICBaWlhfU2V0Q29lZmZfbG9uZyhzZWxmLl9wb2x5LCBpLCBhKQorICAgICAgICAg ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoYSwg SW50ZWdlcik6CisgICAgICAgICAgICAgICAgICAgICAgICAgYSA9IFpaKGEpCisgICAgICAgICAg ICAgICAgICAgICBtcHpfdG9fWlooJnksICg8SW50ZWdlcj5hKS52YWx1ZSkKKy0gICAgICAgICAg ICAgICAgICAgIFpaWF9TZXRDb2VmZihzZWxmLl9fcG9seSwgaSwgeSkKKysgICAgICAgICAgICAg ICAgICAgIFpaWF9TZXRDb2VmZihzZWxmLl9wb2x5LCBpLCB5KQorICAgICAgICAgICAgIHJldHVy bgorIAorICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHgsIHBhcmlfZ2VuKToKK0BAIC0yMTAsMTQg KzIxMCwxNCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwoUG9seW5v bWlhbCk6CisgCisgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoeCwgbnRsX1paWCk6ICAgICMgY29l cmNpb24gZnJvbSBudGwucHl4IG9iamVjdAorICAgICAgICAgICAgICMgY29weSB3aXRoIE5UTCBh c3NpZ25tZW50IG9wZXJhdG9yCistICAgICAgICAgICAgc2VsZi5fX3BvbHkgPSAoPG50bF9aWlg+ eCkueAorKyAgICAgICAgICAgIHNlbGYuX3BvbHkgPSAoPG50bF9aWlg+eCkueAorICAgICAgICAg ICAgIHJldHVybgorIAorICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHgsIEZyYWN0aW9uRmllbGRF bGVtZW50KSBhbmQgXAorICAgICAgICAgICAgICAgICAgaXNpbnN0YW5jZSh4Lm51bWVyYXRvcigp LCBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKToKKyAgICAgICAgICAgICBpZiB4LmRlbm9t aW5hdG9yKCkgPT0gMToKKyAgICAgICAgICAgICAgICAgIyBmcmFjdGlvbiBvZiB0aGUgZm9ybSBm KHgpLzEKKy0gICAgICAgICAgICAgICAgc2VsZi5fX3BvbHkgPSAoPFBvbHlub21pYWxfaW50ZWdl cl9kZW5zZV9udGw+eC5udW1lcmF0b3IoKSkuX19wb2x5CisrICAgICAgICAgICAgICAgIHNlbGYu X3BvbHkgPSAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGw+eC5udW1lcmF0b3IoKSkuX3Bv bHkKKyAgICAgICAgICAgICAgICAgcmV0dXJuCisgCisgICAgICAgICBlbGlmIG5vdCBpc2luc3Rh bmNlKHgsIChsaXN0LCB0dXBsZSkpOgorQEAgLTIyOSwxMiArMjI5LDEyIEBAIGNkZWYgY2xhc3Mg UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAgICAgIGZvciBp IGZyb20gMCA8PSBpIDwgbGVuKHgpOgorICAgICAgICAgICAgIGEgPSB4W2ldCisgICAgICAgICAg ICAgaWYgdHlwZShhKSBpcyBpbnQ6CistICAgICAgICAgICAgICAgIFpaWF9TZXRDb2VmZl9sb25n KHNlbGYuX19wb2x5LCBpLCBhKQorKyAgICAgICAgICAgICAgICBaWlhfU2V0Q29lZmZfbG9uZyhz ZWxmLl9wb2x5LCBpLCBhKQorICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIGlm IG5vdCBpc2luc3RhbmNlKGEsIEludGVnZXIpOgorICAgICAgICAgICAgICAgICAgICAgYSA9IFpa KGEpCisgICAgICAgICAgICAgICAgIG1wel90b19aWigmeSwgKDxJbnRlZ2VyPmEpLnZhbHVlKQor LSAgICAgICAgICAgICAgICBaWlhfU2V0Q29lZmYoc2VsZi5fX3BvbHksIGksIHkpCisrICAgICAg ICAgICAgICAgIFpaWF9TZXRDb2VmZihzZWxmLl9wb2x5LCBpLCB5KQorIAorIAorICAgICBkZWYg Y29udGVudChzZWxmKToKK0BAIC0yNTksNyArMjU5LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFs X2ludGVnZXJfZGVuc2VfbnRsKFBvbHlub21pYWwpOgorICAgICAgICAgIiIiCisgICAgICAgICBj ZGVmIFpaX2MgeQorICAgICAgICAgY2RlZiBJbnRlZ2VyIHogPSBJbnRlZ2VyLl9fbmV3X18oSW50 ZWdlcikKKy0gICAgICAgIFpaWF9jb250ZW50KHksIHNlbGYuX19wb2x5KQorKyAgICAgICAgWlpY X2NvbnRlbnQoeSwgc2VsZi5fcG9seSkKKyAgICAgICAgIFpaX3RvX21weih6LnZhbHVlLCAmeSkK KyAgICAgICAgIHJldHVybiB6CisgCitAQCAtMjg4LDcgKzI4OCw3IEBAIGNkZWYgY2xhc3MgUG9s eW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAg ICAgICAgY2RlZiBSZWFsTnVtYmVyIHJlcyA9IGEuX25ldygpCisgICAgICAgICBzaWdfb24oKQor LSAgICAgICAgWlpYX2V2YWx1YXRpb25fbXBmcihyZXMudmFsdWUsIHNlbGYuX19wb2x5LCBhLnZh bHVlKQorKyAgICAgICAgWlpYX2V2YWx1YXRpb25fbXBmcihyZXMudmFsdWUsIHNlbGYuX3BvbHks IGEudmFsdWUpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKK0BA IC0zMTgsNyArMzE4LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRs KFBvbHlub21pYWwpOgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIFJlYWxJbnRlcnZhbEZp ZWxkRWxlbWVudCByZXMgPSBhLl9uZXcoKQorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIFpa WF9ldmFsdWF0aW9uX21wZmkocmVzLnZhbHVlLCBzZWxmLl9fcG9seSwgYS52YWx1ZSkKKysgICAg ICAgIFpaWF9ldmFsdWF0aW9uX21wZmkocmVzLnZhbHVlLCBzZWxmLl9wb2x5LCBhLnZhbHVlKQor ICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtMzYzLDcgKzM2 Myw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFs KToKKyAgICAgICAgICAgICA1KnheNSArIDQqeF40ICsgMyp4XjMgKyAyKnheMiArIHggKyAxCisg ICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgSW50ZWdlciB6ID0gSW50ZWdlci5fX25ld19fKElu dGVnZXIpCistICAgICAgICBaWl90b19tcHooei52YWx1ZSwgJnNlbGYuX19wb2x5LnJlcC5lbHRz KClbbl0pCisrICAgICAgICBaWl90b19tcHooei52YWx1ZSwgJnNlbGYuX3BvbHkucmVwLmVsdHMo KVtuXSkKKyAgICAgICAgIHJldHVybiB6CisgCisgICAgIGRlZiBfcmVwcihzZWxmLCBuYW1lPU5v bmUsIGJpbnQgbGF0ZXg9RmFsc2UpOgorQEAgLTM4MCwxNSArMzgwLDE1IEBAIGNkZWYgY2xhc3Mg UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBu YW1lID0gc2VsZi5wYXJlbnQoKS52YXJpYWJsZV9uYW1lKCkKKyAgICAgICAgIGNkZWYgbG9uZyBp CisgICAgICAgICBjZGVmIGxpc3QgYWxsID0gW10KKy0gICAgICAgIGZvciBpIGZyb20gWlpYX2Rl ZyhzZWxmLl9fcG9seSkgPj0gaSA+PSAwOgorLSAgICAgICAgICAgIHNpZ24gPSBaWl9zaWduKFpa WF9jb2VmZihzZWxmLl9fcG9seSwgaSkpCisrICAgICAgICBmb3IgaSBmcm9tIFpaWF9kZWcoc2Vs Zi5fcG9seSkgPj0gaSA+PSAwOgorKyAgICAgICAgICAgIHNpZ24gPSBaWl9zaWduKFpaWF9jb2Vm ZihzZWxmLl9wb2x5LCBpKSkKKyAgICAgICAgICAgICBpZiBzaWduOgorICAgICAgICAgICAgICAg ICBpZiBzaWduID4gMDoKKyAgICAgICAgICAgICAgICAgICAgIHNpZ25fc3RyID0gJysnCistICAg ICAgICAgICAgICAgICAgICBjb2VmZl9zdHIgPSBjY3JlcHIoc2VsZi5fX3BvbHkucmVwLmVsdHMo KVtpXSkKKysgICAgICAgICAgICAgICAgICAgIGNvZWZmX3N0ciA9IGNjcmVwcihzZWxmLl9wb2x5 LnJlcC5lbHRzKClbaV0pCisgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg ICAgICBzaWduX3N0ciA9ICctJworLSAgICAgICAgICAgICAgICAgICAgY29lZmZfc3RyID0gY2Ny ZXByKHNlbGYuX19wb2x5LnJlcC5lbHRzKClbaV0pWzE6XQorKyAgICAgICAgICAgICAgICAgICAg Y29lZmZfc3RyID0gY2NyZXByKHNlbGYuX3BvbHkucmVwLmVsdHMoKVtpXSlbMTpdCisgICAgICAg ICAgICAgICAgIGlmIGkgPiAwOgorICAgICAgICAgICAgICAgICAgICAgaWYgY29lZmZfc3RyID09 ICcxJzoKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb2VmZl9zdHIgPSAnJworQEAgLTQ0MSw4 ICs0NDEsOCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwoUG9seW5v bWlhbCk6CisgICAgICAgICAgICAgLTMqeF4yICsgMip4ICsgNworICAgICAgICAgIiIiCisgICAg ICAgICBjZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwgeCA9IHNlbGYuX25ldygpCist ICAgICAgICBaWlhfYWRkKHguX19wb2x5LCBzZWxmLl9fcG9seSwKKy0gICAgICAgICAgICAgICAg KDxQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsPnJpZ2h0KS5fX3BvbHkpCisrICAgICAgICBa WlhfYWRkKHguX3BvbHksIHNlbGYuX3BvbHksCisrICAgICAgICAgICAgICAgICg8UG9seW5vbWlh bF9pbnRlZ2VyX2RlbnNlX250bD5yaWdodCkuX3BvbHkpCisgICAgICAgICByZXR1cm4geAorIAor IAorQEAgLTQ1OSw4ICs0NTksOCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5z ZV9udGwoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgMyp4XjIgKyAyKnggLSA1CisgICAgICAg ICAiIiIKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bCB4ID0gc2Vs Zi5fbmV3KCkKKy0gICAgICAgIFpaWF9zdWIoeC5fX3BvbHksIHNlbGYuX19wb2x5LAorLSAgICAg ICAgICAgICAgICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGw+cmlnaHQpLl9fcG9seSkK KysgICAgICAgIFpaWF9zdWIoeC5fcG9seSwgc2VsZi5fcG9seSwKKysgICAgICAgICAgICAgICAg KDxQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsPnJpZ2h0KS5fcG9seSkKKyAgICAgICAgIHJl dHVybiB4CisgCisgCitAQCAtNDc2LDcgKzQ3Niw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9p bnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICAtMip4ICsgMQorICAg ICAgICAgIiIiCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwgeCA9 IHNlbGYuX25ldygpCistICAgICAgICBaWlhfbmVnYXRlKHguX19wb2x5LCBzZWxmLl9fcG9seSkK KysgICAgICAgIFpaWF9uZWdhdGUoeC5fcG9seSwgc2VsZi5fcG9seSkKKyAgICAgICAgIHJldHVy biB4CisgCisgCitAQCAtNTMzLDEwICs1MzMsMTAgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2lu dGVnZXJfZGVuc2VfbnRsKFBvbHlub21pYWwpOgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVm IFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwgX3JpZ2h0ID0gPFBvbHlub21pYWxfaW50ZWdl cl9kZW5zZV9udGw+IHJpZ2h0CisgCistICAgICAgICBpZiBaWlhfSXNaZXJvKF9yaWdodC5fX3Bv bHkpOgorKyAgICAgICAgaWYgWlpYX0lzWmVybyhfcmlnaHQuX3BvbHkpOgorICAgICAgICAgICAg IHJhaXNlIEFyaXRobWV0aWNFcnJvcigiZGl2aXNpb24gYnkgemVybyBwb2x5bm9taWFsIikKKyAK Ky0gICAgICAgIGlmIFpaWF9Jc1plcm8oc2VsZi5fX3BvbHkpOgorKyAgICAgICAgaWYgWlpYX0lz WmVybyhzZWxmLl9wb2x5KToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZiwgc2VsZgorIAorICAg ICAgICAgY2RlZiBaWlhfYyAqcQorQEAgLTU0NSwxOSArNTQ1LDE5IEBAIGNkZWYgY2xhc3MgUG9s eW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAgICAgIGNkZWYgUG9s eW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bCByciA9IHNlbGYuX25ldygpCisgICAgICAgICBjZGVm IGludCBkaXZpc2libGUKKyAKKy0gICAgICAgIGlmIFpaX0lzT25lKFpaWF9MZWFkQ29lZmYoX3Jp Z2h0Ll9fcG9seSkpOgorKyAgICAgICAgaWYgWlpfSXNPbmUoWlpYX0xlYWRDb2VmZihfcmlnaHQu X3BvbHkpKToKKyAgICAgICAgICAgICAjIGRpdmlzb3IgaXMgbW9uaWMuIEp1c3QgZG8gdGhlIGRp dmlzaW9uIGFuZCByZW1haW5kZXIKKy0gICAgICAgICAgICBaWlhfcXVvX3JlbSgmc2VsZi5fX3Bv bHksICZfcmlnaHQuX19wb2x5LCAmciwgJnEpCistICAgICAgICAgICAgWlpYX3N3YXAocXEuX19w b2x5LCBxWzBdKQorLSAgICAgICAgICAgIFpaWF9zd2FwKHJyLl9fcG9seSwgclswXSkKKysgICAg ICAgICAgICBaWlhfcXVvX3JlbSgmc2VsZi5fcG9seSwgJl9yaWdodC5fcG9seSwgJnIsICZxKQor KyAgICAgICAgICAgIFpaWF9zd2FwKHFxLl9wb2x5LCBxWzBdKQorKyAgICAgICAgICAgIFpaWF9z d2FwKHJyLl9wb2x5LCByWzBdKQorICAgICAgICAgICAgIGRlbCBxCisgICAgICAgICAgICAgZGVs IHIKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgIyBOb24tbW9uaWMgZGl2aXNvci4gQ2hl Y2sgd2hldGhlciBpdCBkaXZpZGVzIGV4YWN0bHkuCistICAgICAgICAgICAgcSA9IFpaWF9kaXYo JnNlbGYuX19wb2x5LCAmX3JpZ2h0Ll9fcG9seSwgJmRpdmlzaWJsZSkKKysgICAgICAgICAgICBx ID0gWlpYX2Rpdigmc2VsZi5fcG9seSwgJl9yaWdodC5fcG9seSwgJmRpdmlzaWJsZSkKKyAgICAg ICAgICAgICBpZiBkaXZpc2libGU6CisgICAgICAgICAgICAgICAgICMgZXhhY3RseSBkaXZpc2li bGUKKy0gICAgICAgICAgICAgICAgWlpYX3N3YXAocVswXSwgcXEuX19wb2x5KQorKyAgICAgICAg ICAgICAgICBaWlhfc3dhcChxWzBdLCBxcS5fcG9seSkKKyAgICAgICAgICAgICAgICAgZGVsIHEK KyAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAjIGRpdmlzaW9uIGZhaWxlZDog Y2xlYW4gdXAgYW5kIHJhaXNlIGV4Y2VwdGlvbgorQEAgLTU4NCw4ICs1ODQsOCBAQCBjZGVmIGNs YXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwoUG9seW5vbWlhbCk6CisgICAgICAgICAi IiIKKyAgICAgICAgICMgdG9kbzogd2UncmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY29weSBoZXJl CisgICAgICAgICBjZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwgeCA9IHNlbGYuX25l dygpCistICAgICAgICBjZGVmIFpaWF9jKiB0ZW1wID0gWlpYX2djZCgmc2VsZi5fX3BvbHksICYo PFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGw+cmlnaHQpLl9fcG9seSkKKy0gICAgICAgIHgu X19wb2x5ID0gdGVtcFswXQorKyAgICAgICAgY2RlZiBaWlhfYyogdGVtcCA9IFpaWF9nY2QoJnNl bGYuX3BvbHksICYoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGw+cmlnaHQpLl9wb2x5KQor KyAgICAgICAgeC5fcG9seSA9IHRlbXBbMF0KKyAgICAgICAgIGRlbCB0ZW1wCisgICAgICAgICBy ZXR1cm4geAorIAorQEAgLTY1OCwxMyArNjU4LDEzIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9p bnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAgICAgIGNkZWYgWlpYX2MgKnQKKyAg ICAgICAgIGNkZWYgWlpfYyAqcgorIAorLSAgICAgICAgWlpYX3hnY2QoJnNlbGYuX19wb2x5LCAm KDxQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsPnJpZ2h0KS5fX3BvbHksICZyLCAmcywgJnQs IDEpICAgICMgcHJvb2YgPSAxCisrICAgICAgICBaWlhfeGdjZCgmc2VsZi5fcG9seSwgJig8UG9s eW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bD5yaWdodCkuX3BvbHksICZyLCAmcywgJnQsIDEpICAg ICMgcHJvb2YgPSAxCisgICAgICAgICBjZGVmIEludGVnZXIgcnIgPSBJbnRlZ2VyLl9fbmV3X18o SW50ZWdlcikKKyAgICAgICAgIFpaX3RvX21weihyci52YWx1ZSwgcikKKyAgICAgICAgIGNkZWYg UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bCBzcyA9IHNlbGYuX25ldygpCisgICAgICAgICBj ZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwgdHQgPSBzZWxmLl9uZXcoKQorLSAgICAg ICAgc3MuX19wb2x5ID0gc1swXQorLSAgICAgICAgdHQuX19wb2x5ID0gdFswXQorKyAgICAgICAg c3MuX3BvbHkgPSBzWzBdCisrICAgICAgICB0dC5fcG9seSA9IHRbMF0KKyAgICAgICAgIGRlbCBy CisgICAgICAgICBkZWwgcworICAgICAgICAgZGVsIHQKK0BAIC02OTEsOCArNjkxLDggQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKFBvbHlub21pYWwpOgorICAgICAg ICAgICAgIHheMyAtIDEwKnheMiArIDMyKnggLSAzMgorICAgICAgICAgIiIiCisgICAgICAgICBj ZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwgeCA9IHNlbGYuX25ldygpCistICAgICAg ICBaWlhfbXVsKHguX19wb2x5LCBzZWxmLl9fcG9seSwKKy0gICAgICAgICAgICAgICAgKDxQb2x5 bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsPnJpZ2h0KS5fX3BvbHkpCisrICAgICAgICBaWlhfbXVs KHguX3BvbHksIHNlbGYuX3BvbHksCisrICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9pbnRl Z2VyX2RlbnNlX250bD5yaWdodCkuX3BvbHkpCisgICAgICAgICByZXR1cm4geAorIAorICAgICBj cGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCByaWdodCk6CitAQCAtNzExLDcgKzcxMSw3IEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAg ICAgIGNkZWYgWlpfYyBfcmlnaHQKKyAKKyAgICAgICAgIG1wel90b19aWigmX3JpZ2h0LCAoPElu dGVnZXI+cmlnaHQpLnZhbHVlKQorLSAgICAgICAgWlpYX211bF9aWih4Ll9fcG9seSwgc2VsZi5f X3BvbHksIF9yaWdodCkKKysgICAgICAgIFpaWF9tdWxfWlooeC5fcG9seSwgc2VsZi5fcG9seSwg X3JpZ2h0KQorICAgICAgICAgcmV0dXJuIHgKKyAKKyAgICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVs ZW1lbnQgcmlnaHQpOgorQEAgLTczMCw3ICs3MzAsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxf aW50ZWdlcl9kZW5zZV9udGwoUG9seW5vbWlhbCk6CisgICAgICAgICBjZGVmIFpaX2MgX3JpZ2h0 CisgCisgICAgICAgICBtcHpfdG9fWlooJl9yaWdodCwgKDxJbnRlZ2VyPnJpZ2h0KS52YWx1ZSkK Ky0gICAgICAgIFpaWF9tdWxfWlooeC5fX3BvbHksIHNlbGYuX19wb2x5LCBfcmlnaHQpCisrICAg ICAgICBaWlhfbXVsX1paKHguX3BvbHksIHNlbGYuX3BvbHksIF9yaWdodCkKKyAgICAgICAgIHJl dHVybiB4CisgCisgCitAQCAtNzgzLDcgKzc4Myw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9p bnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAgICAgIHZhbHVlID0gSW50ZWdlcih2 YWx1ZSkKKyAgICAgICAgIGNkZWYgWlpfYyB5CisgICAgICAgICBtcHpfdG9fWlooJnksICg8SW50 ZWdlcj52YWx1ZSkudmFsdWUpCistICAgICAgICBaWlhfU2V0Q29lZmYoc2VsZi5fX3BvbHksIG4s IHkpCisrICAgICAgICBaWlhfU2V0Q29lZmYoc2VsZi5fcG9seSwgbiwgeSkKKyAKKyAKKyAgICAg ZGVmIHJlYWxfcm9vdF9pbnRlcnZhbHMoc2VsZik6CitAQCAtODA1LDcgKzgwNSw3IEBAIGNkZWYg Y2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAKKyAjIyAg ICAgZGVmIF9fY29weV9fKHNlbGYpOgorICMjICAgICAgICAgZiA9IFBvbHlub21pYWxfaW50ZWdl cl9kZW5zZShzZWxmLnBhcmVudCgpKQorLSMjICAgICAgICAgZi5fX3BvbHkgPSBzZWxmLl9fcG9s eS5jb3B5KCkKKysjIyAgICAgICAgIGYuX3BvbHkgPSBzZWxmLl9wb2x5LmNvcHkoKQorICMjICAg ICAgICAgcmV0dXJuIGYKKyAKKyAKK0BAIC04MjYsNyArODI2LDcgQEAgY2RlZiBjbGFzcyBQb2x5 bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHNhZ2U6 IFIoMCkuZGVncmVlKCkKKyAgICAgICAgICAgICAtMQorICAgICAgICAgIiIiCistICAgICAgICBy ZXR1cm4gWlpYX2RlZyhzZWxmLl9fcG9seSkKKysgICAgICAgIHJldHVybiBaWlhfZGVnKHNlbGYu X3BvbHkpCisgCisgICAgIGRlZiBkaXNjcmltaW5hbnQoc2VsZiwgcHJvb2Y9VHJ1ZSk6CisgICAg ICAgICByIiIiCitAQCAtODQ5LDcgKzg0OSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRl Z2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdlOiBmLmRpc2NyaW1p bmFudChwcm9vZj1GYWxzZSkKKyAgICAgICAgICAgICAtMzM5CisgICAgICAgICAiIiIKKy0gICAg ICAgIGNkZWYgWlpfYyogdGVtcCA9IFpaWF9kaXNjcmltaW5hbnQoJnNlbGYuX19wb2x5LCBwcm9v ZikKKysgICAgICAgIGNkZWYgWlpfYyogdGVtcCA9IFpaWF9kaXNjcmltaW5hbnQoJnNlbGYuX3Bv bHksIHByb29mKQorICAgICAgICAgY2RlZiBJbnRlZ2VyIHggPSBJbnRlZ2VyLl9fbmV3X18oSW50 ZWdlcikKKyAgICAgICAgIFpaX3RvX21weih4LnZhbHVlLCB0ZW1wKQorICAgICAgICAgZGVsIHRl bXAKK0BAIC05MDQsMTEgKzkwNCwxMSBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9k ZW5zZV9udGwoUG9seW5vbWlhbCk6CisgICAgICAgICBjZGVmIGxvbmcqIGUKKyAgICAgICAgIGNk ZWYgbG9uZyBpLCBuCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwg egorLSAgICAgICAgWlpYX3NxdWFyZWZyZWVfZGVjb21wb3NpdGlvbigmdiwgJmUsICZuLCAmcC5f X3BvbHkpCisrICAgICAgICBaWlhfc3F1YXJlZnJlZV9kZWNvbXBvc2l0aW9uKCZ2LCAmZSwgJm4s ICZwLl9wb2x5KQorICAgICAgICAgRiA9IFtdCisgICAgICAgICBmb3IgaSBmcm9tIDAgPD0gaSA8 IG46CisgICAgICAgICAgICAgeiA9IHNlbGYuX25ldygpCistICAgICAgICAgICAgei5fX3BvbHkg PSB2W2ldWzBdCisrICAgICAgICAgICAgei5fcG9seSA9IHZbaV1bMF0KKyAgICAgICAgICAgICBG LmFwcGVuZCgoeiwgZVtpXSkpCisgICAgICAgICAgICAgZGVsIHZbaV0KKyAgICAgICAgIHNpZ19m cmVlKHYpCitAQCAtOTUwLDI0ICs5NTAsMjQgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVn ZXJfZGVuc2VfbnRsKFBvbHlub21pYWwpOgorICAgICAgICAgY2RlZiBaWl9jIGNvbnRlbnQKKyAg ICAgICAgIGNkZWYgdmVjX3BhaXJfWlpYX2xvbmdfYyBmYWN0b3JzCisgICAgICAgICBjZGVmIGxv bmcgaQorLSAgICAgICAgY2RlZiBpbnQgc2lnX21lID0gWlpYX2RlZyhzZWxmLl9fcG9seSkKKysg ICAgICAgIGNkZWYgaW50IHNpZ19tZSA9IFpaWF9kZWcoc2VsZi5fcG9seSkKKyAgICAgICAgIGlm IHNpZ19tZSA+IDEwOgorICAgICAgICAgICAgIHNpZ19vbigpCistICAgICAgICBaWlhfZmFjdG9y KGNvbnRlbnQsIGZhY3RvcnMsIHNlbGYuX19wb2x5LCAwLCAwKQorKyAgICAgICAgWlpYX2ZhY3Rv cihjb250ZW50LCBmYWN0b3JzLCBzZWxmLl9wb2x5LCAwLCAwKQorICAgICAgICAgaWYgc2lnX21l ID4gMTA6CisgICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXN1bHRzID0gW10KKyAg ICAgICAgIHVuaXQgPSBOb25lCisgICAgICAgICBpZiBub3QgWlpfSXNPbmUoY29udGVudCk6Cisg ICAgICAgICAgICAgZmFjX3B5ID0gc2VsZi5fbmV3KCkKKy0gICAgICAgICAgICBaWlhfU2V0Q29l ZmYoZmFjX3B5Ll9fcG9seSwgMCwgY29udGVudCkKKy0gICAgICAgICAgICBpZiBaWlhfZGVnKGZh Y19weS5fX3BvbHkpID09IDAgYW5kIFpaX3RvX2ludChmYWNfcHkuX19wb2x5LnJlcC5lbHRzKCkp PT0tMToKKysgICAgICAgICAgICBaWlhfU2V0Q29lZmYoZmFjX3B5Ll9wb2x5LCAwLCBjb250ZW50 KQorKyAgICAgICAgICAgIGlmIFpaWF9kZWcoZmFjX3B5Ll9wb2x5KSA9PSAwIGFuZCBaWl90b19p bnQoZmFjX3B5Ll9wb2x5LnJlcC5lbHRzKCkpPT0tMToKKyAgICAgICAgICAgICAgICAgdW5pdCA9 IGZhY19weQorICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIHJlc3VsdHMuYXBw ZW5kKCAoZmFjX3B5LDEpICkKKyAgICAgICAgIGZvciBpIGZyb20gMCA8PSBpIDwgZmFjdG9ycy5s ZW5ndGgoKToKKyAgICAgICAgICAgICBmYWNfcHkgPSBzZWxmLl9uZXcoKQorLSAgICAgICAgICAg IGZhY19weS5fX3BvbHkgPSBmYWN0b3JzLlJhd0dldChpKS5hCisrICAgICAgICAgICAgZmFjX3B5 Ll9wb2x5ID0gZmFjdG9ycy5SYXdHZXQoaSkuYQorICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5k KCAoZmFjX3B5LGZhY3RvcnMuUmF3R2V0KGkpLmIpICkKKyAgICAgICAgIHJldHVybiBGYWN0b3Jp emF0aW9uKHJlc3VsdHMsIHVuaXQgPSB1bml0KQorIAorQEAgLTk5Niw3ICs5OTYsNyBAQCBjZGVm IGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwoUG9seW5vbWlhbCk6CisgICAgICAg ICAgICAgc2FnZTogZiA9IC0zMCp4OyBmLmZhY3RvcigpCisgICAgICAgICAgICAgKC0xKSAqIDIg KiAzICogNSAqIHgKKyAgICAgICAgICIiIgorLSAgICAgICAgY2RlZiBpbnQgZGVnID0gWlpYX2Rl ZyhzZWxmLl9fcG9seSkKKysgICAgICAgIGNkZWYgaW50IGRlZyA9IFpaWF9kZWcoc2VsZi5fcG9s eSkKKyAgICAgICAgICMgaXQgYXBwZWFycyB0aGF0IHBhcmkgaGFzIGEgd2luZG93IGZyb20gYWJv dXQgZGVncmVlcyAzMCBhbmQgMzAwCisgICAgICAgICAjIGluIHdoaWNoIGl0IGJlYXRzIE5UTC4K KyAgICAgICAgIGMgPSBzZWxmLmNvbnRlbnQoKQorQEAgLTExMzEsNyArMTEzMSw3IEBAIGNkZWYg Y2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAgICAg ICAgICBUcnVlCisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2Vy X2RlbnNlX250bCBfb3RoZXIgPSA8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bD4oc2VsZi5w YXJlbnQoKS5jb2VyY2Uob3RoZXIpKQorLSAgICAgICAgY2RlZiBaWl9jKiB0ZW1wID0gWlpYX3Jl c3VsdGFudCgmc2VsZi5fX3BvbHksICZfb3RoZXIuX19wb2x5LCBwcm9vZikKKysgICAgICAgIGNk ZWYgWlpfYyogdGVtcCA9IFpaWF9yZXN1bHRhbnQoJnNlbGYuX3BvbHksICZfb3RoZXIuX3BvbHks IHByb29mKQorICAgICAgICAgY2RlZiBJbnRlZ2VyIHggPSBJbnRlZ2VyLl9fbmV3X18oSW50ZWdl cikKKyAgICAgICAgIFpaX3RvX21weih4LnZhbHVlLCB0ZW1wKQorICAgICAgICAgZGVsIHRlbXAK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfbW9kbl9k ZW5zZV9udGwucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX21vZG5f ZGVuc2VfbnRsLnB4ZAoraW5kZXggMjY0ZjA1ZjNjMGQuLjY5MzRhY2ZlZThkIDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX21vZG5fZGVuc2VfbnRsLnB4 ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX21vZG5fZGVuc2Vf bnRsLnB4ZAorQEAgLTE2LDcgKzE2LDcgQEAgZnJvbSBzYWdlLmxpYnMubnRsLmx6el9wWCBjaW1w b3J0ICoKKyAKKyAKKyBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9kX24oUG9seW5vbWlh bCk6CistICAgIGNkZWYgb2JqZWN0IF9fcG9seQorKyAgICBjZGVmIG9iamVjdCBfcG9seQorICAg ICBjZGVmIG9iamVjdCBfX3Npbmd1bGFyCisgCisgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNl X21vZG5fbnRsX3p6KFBvbHlub21pYWxfZGVuc2VfbW9kX24pOgorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9tb2RuX2RlbnNlX250bC5weXggYi9zcmMv c2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfbW9kbl9kZW5zZV9udGwucHl4CitpbmRl eCA1NzQ2OGUzNTEwZi4uZDY5ZDVlMDkwMTggMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9w b2x5bm9taWFsL3BvbHlub21pYWxfbW9kbl9kZW5zZV9udGwucHl4CisrKysgYi9zcmMvc2FnZS9y aW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfbW9kbl9kZW5zZV9udGwucHl4CitAQCAtMTA1LDE5 ICsxMDUsMTkgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZF9uKFBvbHlub21pYWwp OgorIAorICAgICAgICAgaWYgY29uc3RydWN0OgorICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uo eCwgWlpfcFgpOgorLSAgICAgICAgICAgICAgICBzZWxmLl9fcG9seSA9IHgKKysgICAgICAgICAg ICAgICAgc2VsZi5fcG9seSA9IHgKKyAgICAgICAgICAgICAgICAgcmV0dXJuCistICAgICAgICAg ICAgc2VsZi5fX3BvbHkgPSBaWl9wWCh4LCBwYXJlbnQubW9kdWx1cygpKQorKyAgICAgICAgICAg IHNlbGYuX3BvbHkgPSBaWl9wWCh4LCBwYXJlbnQubW9kdWx1cygpKQorICAgICAgICAgICAgIHJl dHVybgorIAorLSAgICAgICAgc2VsZi5fX3BvbHkgPSBaWl9wWChbXSwgcGFyZW50Lm1vZHVsdXMo KSkKKysgICAgICAgIHNlbGYuX3BvbHkgPSBaWl9wWChbXSwgcGFyZW50Lm1vZHVsdXMoKSkKKyAK KyAgICAgICAgIGlmIHggaXMgTm9uZToKKyAgICAgICAgICAgICByZXR1cm4gICAgICAgICAjIGxl YXZlIGluaXRpYWxpemVkIHRvIDAgcG9seW5vbWlhbC4KKyAKKyAgICAgICAgIGlmIGlzaW5zdGFu Y2UoeCwgUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgaWYgeC5wYXJlbnQoKSA9PSBzZWxmLnBh cmVudCgpOgorLSAgICAgICAgICAgICAgICBzZWxmLl9fcG9seSA9ICg8UG9seW5vbWlhbF9kZW5z ZV9tb2RuX250bF96ej54KS5fX3BvbHkuX19jb3B5X18oKQorKyAgICAgICAgICAgICAgICBzZWxm Ll9wb2x5ID0gKDxQb2x5bm9taWFsX2RlbnNlX21vZG5fbnRsX3p6PngpLl9wb2x5Ll9fY29weV9f KCkKKyAgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICAgZWxzZToKKyAgICAgICAg ICAgICAgICAgUiA9IHBhcmVudC5iYXNlX3JpbmcoKQorQEAgLTEzMCw3ICsxMzAsNyBAQCBjZGVm IGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9kX24oUG9seW5vbWlhbCk6CisgCisgCisgICAgICAg ICBlbGlmIGlzaW5zdGFuY2UoeCwgWlpYKToKKy0gICAgICAgICAgICBzZWxmLl9fcG9seSA9IHgu Y29weSgpCisrICAgICAgICAgICAgc2VsZi5fcG9seSA9IHguY29weSgpCisgICAgICAgICAgICAg cmV0dXJuCisgCisgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoeCwgcGFyaV9nZW4pOgorQEAgLTE0 Miw3ICsxNDIsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9kX24oUG9seW5vbWlh bCk6CisgICAgICAgICAgICAgaWYgeC5kZW5vbWluYXRvcigpLmlzX3VuaXQoKToKKyAgICAgICAg ICAgICAgICAgbnVtZXIgPSB4Lm51bWVyYXRvcigpCisgICAgICAgICAgICAgICAgIGRlbm9tID0g eC5kZW5vbWluYXRvcigpLmludmVyc2Vfb2ZfdW5pdCgpCistICAgICAgICAgICAgICAgIHggPSBu dW1lci5fX3BvbHkgKiBkZW5vbS5fX3BvbHkKKysgICAgICAgICAgICAgICAgeCA9IG51bWVyLl9w b2x5ICogZGVub20uX3BvbHkKKyAgICAgICAgICAgICAgICAgY2hlY2sgPSBGYWxzZQorICAgICAg ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiRGVub21pbmF0 b3Igbm90IGEgdW5pdC4iKQorQEAgLTE1NCwxMyArMTU0LDEzIEBAIGNkZWYgY2xhc3MgUG9seW5v bWlhbF9kZW5zZV9tb2RfbihQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBSID0gcGFyZW50LmJh c2VfcmluZygpCisgICAgICAgICAgICAgeCA9IFtaWihSKGEpKSBmb3IgYSBpbiB4XQorIAorLSAg ICAgICAgc2VsZi5fX3BvbHkgPSBaWl9wWCh4LCBwYXJlbnQubW9kdWx1cygpKQorKyAgICAgICAg c2VsZi5fcG9seSA9IFpaX3BYKHgsIHBhcmVudC5tb2R1bHVzKCkpCisgCisgICAgIGRlZiBfX3Jl ZHVjZV9fKHNlbGYpOgorICAgICAgICAgcmV0dXJuIG1ha2VfZWxlbWVudCwgKHNlbGYucGFyZW50 KCksIChzZWxmLmxpc3QoKSwgRmFsc2UsIHNlbGYuaXNfZ2VuKCkpKQorIAorICAgICBkZWYgaW50 X2xpc3Qoc2VsZik6CistICAgICAgICByZXR1cm4gZXZhbChzdHIoc2VsZi5fX3BvbHkpLnJlcGxh Y2UoJyAnLCcsJykpCisrICAgICAgICByZXR1cm4gZXZhbChzdHIoc2VsZi5fcG9seSkucmVwbGFj ZSgnICcsJywnKSkKKyAKKyAgICAgZGVmIF9fcGFyaV9fKHNlbGYsIHZhcmlhYmxlPU5vbmUpOgor ICAgICAgICAgIiIiCitAQCAtMTg2LDcgKzE4Niw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9k ZW5zZV9tb2RfbihQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBZb3UgbXVzdCBjYWxsIGBgbnRs LnNldF9tb2R1bHVzKG50bC5aWihuKSlgYCBiZWZvcmUgZG9pbmcKKyAgICAgICAgICAgICBhcml0 aG1ldGljIHdpdGggdGhpcyBvYmplY3QhCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBz ZWxmLl9fcG9seQorKyAgICAgICAgcmV0dXJuIHNlbGYuX3BvbHkKKyAKKyAgICAgY2RlZiBnZXRf dW5zYWZlKHNlbGYsIFB5X3NzaXplX3Qgbik6CisgICAgICAgICAiIiIKK0BAIC0yMDMsMTMgKzIw MywxMyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9kX24oUG9seW5vbWlhbCk6Cisg ICAgICAgICAgICAgc2FnZTogZls6M10KKyAgICAgICAgICAgICAxMyp4XjIgKyAxMCp4ICsgNQor ICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5fcGFyZW50Ll9iYXNlKCg8bnRsX1pa X3BYPiBzZWxmLl9fcG9seSlbbl0uX2ludGVnZXJfKCkpCisrICAgICAgICByZXR1cm4gc2VsZi5f cGFyZW50Ll9iYXNlKCg8bnRsX1paX3BYPiBzZWxmLl9wb2x5KVtuXS5faW50ZWdlcl8oKSkKKyAK KyAgICAgZGVmIF91bnNhZmVfbXV0YXRlKHNlbGYsIG4sIHZhbHVlKToKKyAgICAgICAgIG4gPSBp bnQobikKKyAgICAgICAgIGlmIG4gPCAwOgorICAgICAgICAgICAgIHJhaXNlIEluZGV4RXJyb3Io Im4gbXVzdCBiZSA+PSAwIikKKy0gICAgICAgIHNlbGYuX19wb2x5W25dID0gaW50KHZhbHVlKQor KyAgICAgICAgc2VsZi5fcG9seVtuXSA9IGludCh2YWx1ZSkKKyAKKyAgICAgZGVmIF9wb3coc2Vs Ziwgbik6CisgICAgICAgICBuID0gaW50KG4pCitAQCAtMjE4LDEwICsyMTgsMTAgQEAgY2RlZiBj bGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZF9uKFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHJl dHVybiBzZWxmLnBhcmVudCgpKHNlbGZbMF0qKm4pCisgICAgICAgICBpZiBuIDwgMDoKKyAgICAg ICAgICAgICByZXR1cm4gKH5zZWxmKSoqKC1uKQorLSAgICAgICAgcmV0dXJuIHNlbGYucGFyZW50 KCkoc2VsZi5fX3BvbHkqKm4sIGNvbnN0cnVjdD1UcnVlKQorKyAgICAgICAgcmV0dXJuIHNlbGYu cGFyZW50KCkoc2VsZi5fcG9seSoqbiwgY29uc3RydWN0PVRydWUpCisgCisgICAgIGNwZGVmIF9h ZGRfKHNlbGYsIHJpZ2h0KToKKy0gICAgICAgIHJldHVybiBzZWxmLnBhcmVudCgpKHNlbGYuX19w b2x5ICsgKDxQb2x5bm9taWFsX2RlbnNlX21vZF9uPnJpZ2h0KS5fX3BvbHksIGNvbnN0cnVjdD1U cnVlKQorKyAgICAgICAgcmV0dXJuIHNlbGYucGFyZW50KCkoc2VsZi5fcG9seSArICg8UG9seW5v bWlhbF9kZW5zZV9tb2Rfbj5yaWdodCkuX3BvbHksIGNvbnN0cnVjdD1UcnVlKQorIAorICAgICBj cGRlZiBfbXVsXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKK0BAIC0yMzEsMTEgKzIzMSwx MSBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9kX24oUG9seW5vbWlhbCk6CisgICAg ICAgICAgICAgc2FnZTogKHggLSAyKSooeF4yIC0gOCp4ICsgMTYpCisgICAgICAgICAgICAgeF4z ICsgOTAqeF4yICsgMzIqeCArIDY4CisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBzZWxm LnBhcmVudCgpKHNlbGYuX19wb2x5ICogKDxQb2x5bm9taWFsX2RlbnNlX21vZF9uPnJpZ2h0KS5f X3BvbHksIGNvbnN0cnVjdD1UcnVlKQorKyAgICAgICAgcmV0dXJuIHNlbGYucGFyZW50KCkoc2Vs Zi5fcG9seSAqICg8UG9seW5vbWlhbF9kZW5zZV9tb2Rfbj5yaWdodCkuX3BvbHksIGNvbnN0cnVj dD1UcnVlKQorIAorICAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCBjKToKKyAgICAgICAg IHRyeToKKy0gICAgICAgICAgICByZXR1cm4gc2VsZi5wYXJlbnQoKShaWl9wWChbY10sIHNlbGYu cGFyZW50KCkubW9kdWx1cygpKSAqIHNlbGYuX19wb2x5LCBjb25zdHJ1Y3Q9VHJ1ZSkKKysgICAg ICAgICAgICByZXR1cm4gc2VsZi5wYXJlbnQoKShaWl9wWChbY10sIHNlbGYucGFyZW50KCkubW9k dWx1cygpKSAqIHNlbGYuX3BvbHksIGNvbnN0cnVjdD1UcnVlKQorICAgICAgICAgZXhjZXB0IFJ1 bnRpbWVFcnJvciBhcyBtc2c6ICMgc2hvdWxkIHRoaXMgcmVhbGx5IGJlIGEgVHlwZUVycm9yCisg ICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKG1zZykKKyAKK0BAIC0yNDUsNyArMjQ1LDcgQEAg Y2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZF9uKFBvbHlub21pYWwpOgorICAgICAgICAg UmV0dXJuIGEgdHVwbGUgYGAocXVvdGllbnQsIHJlbWFpbmRlcilgYCB3aGVyZSBgYHNlbGYgPSBx dW90aWVudCpvdGhlciArCisgICAgICAgICByZW1haW5kZXJgYC4KKyAgICAgICAgICIiIgorLSAg ICAgICAgdiA9IHNlbGYuX19wb2x5LnF1b19yZW0oKDxQb2x5bm9taWFsX2RlbnNlX21vZF9uPnJp Z2h0KS5fX3BvbHkpCisrICAgICAgICB2ID0gc2VsZi5fcG9seS5xdW9fcmVtKCg8UG9seW5vbWlh bF9kZW5zZV9tb2Rfbj5yaWdodCkuX3BvbHkpCisgICAgICAgICBQID0gc2VsZi5wYXJlbnQoKQor ICAgICAgICAgcmV0dXJuIChQKHZbMF0sIGNvbnN0cnVjdD1UcnVlKSwgUCh2WzFdLCBjb25zdHJ1 Y3Q9VHJ1ZSkgKQorIAorQEAgLTI4MSwxMSArMjgxLDExIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlh bF9kZW5zZV9tb2RfbihQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgaWYgbiA9 PSAwIG9yIHNlbGYuZGVncmVlKCkgPCAwOgorICAgICAgICAgICAgIHJldHVybiBzZWxmCistICAg ICAgICByZXR1cm4gc2VsZi5wYXJlbnQoKShzZWxmLl9fcG9seS5sZWZ0X3NoaWZ0KG4pLAorKyAg ICAgICAgcmV0dXJuIHNlbGYucGFyZW50KCkoc2VsZi5fcG9seS5sZWZ0X3NoaWZ0KG4pLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RydWN0PVRydWUpCisgCisgICAgIGNwZGVm IF9zdWJfKHNlbGYsIHJpZ2h0KToKKy0gICAgICAgIHJldHVybiBzZWxmLnBhcmVudCgpKHNlbGYu X19wb2x5IC0gKDxQb2x5bm9taWFsX2RlbnNlX21vZF9uPnJpZ2h0KS5fX3BvbHksIGNvbnN0cnVj dD1UcnVlKQorKyAgICAgICAgcmV0dXJuIHNlbGYucGFyZW50KCkoc2VsZi5fcG9seSAtICg8UG9s eW5vbWlhbF9kZW5zZV9tb2Rfbj5yaWdodCkuX3BvbHksIGNvbnN0cnVjdD1UcnVlKQorIAorICAg ICBkZWYgX19mbG9vcmRpdl9fKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgIHEsIF8gPSBzZWxmLnF1 b19yZW0ocmlnaHQpCitAQCAtMzE0LDcgKzMxNCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9k ZW5zZV9tb2RfbihQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdlOiBpc2luc3RhbmNlKHgu ZGVncmVlKCksIEludGVnZXIpCisgICAgICAgICAgICAgVHJ1ZQorICAgICAgICAgIiIiCistICAg ICAgICByZXR1cm4gc21hbGxJbnRlZ2VyKG1heChzZWxmLl9fcG9seS5kZWdyZWUoKSwgLTEpKQor KyAgICAgICAgcmV0dXJuIHNtYWxsSW50ZWdlcihtYXgoc2VsZi5fcG9seS5kZWdyZWUoKSwgLTEp KQorIAorICAgICBjcGRlZiBsaXN0IGxpc3Qoc2VsZiwgYmludCBjb3B5PVRydWUpOgorICAgICAg ICAgIiIiCitAQCAtMzU4LDcgKzM1OCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9kZW5zZV9t b2RfbihQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgaWYgc2VsZi5pc19nZW4o KToKKyAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIkNhbm5vdCBjaGFuZ2UgdGhlIHZhbHVl IG9mIHRoZSBnZW5lcmF0b3IuIikKKy0gICAgICAgIHNlbGYuX19wb2x5ID0gWlpfcFgodiwgc2Vs Zi5wYXJlbnQoKS5tb2R1bHVzKCkpCisrICAgICAgICBzZWxmLl9wb2x5ID0gWlpfcFgodiwgc2Vs Zi5wYXJlbnQoKS5tb2R1bHVzKCkpCisgCisgICAgICMgUG9seW5vbWlhbF9zaW5ndWxhcl9yZXBy IHN0dWZmLCBjb3BpZWQgZHVlIHRvIGxhY2sgb2YgbXVsdGlwbGUgaW5oZXJpdGFuY2UKKyAgICAg ZGVmIF9zaW5ndWxhcl8oc2VsZiwgc2luZ3VsYXI9c2luZ3VsYXJfZGVmYXVsdCwgZm9yY2U9RmFs c2UpOgorQEAgLTY1NCw4ICs2NTQsOCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9k bl9udGxfenooUG9seW5vbWlhbF9kZW5zZV9tb2Rfbik6CisgICAgICAgICAgICAgICAgIHJldHVy bgorIAorICAgICAgICAgUG9seW5vbWlhbF9kZW5zZV9tb2Rfbi5fX2luaXRfXyhzZWxmLCBwYXJl bnQsIHYsIGNoZWNrPWNoZWNrLCBpc19nZW49aXNfZ2VuLCBjb25zdHJ1Y3Q9Y29uc3RydWN0KQor LSAgICAgICAgdiA9IFthIGZvciBhIGluIHNlbGYuX19wb2x5Lmxpc3QoKV0KKy0gICAgICAgIHNl bGYuX19wb2x5ID0gTm9uZSAjIHRoaXMgd2lsbCBldmVudHVhbGx5IGdvIGF3YXkKKysgICAgICAg IHYgPSBbYSBmb3IgYSBpbiBzZWxmLl9wb2x5Lmxpc3QoKV0KKysgICAgICAgIHNlbGYuX3BvbHkg PSBOb25lICMgdGhpcyB3aWxsIGV2ZW50dWFsbHkgZ28gYXdheQorICAgICAgICAgY2RlZiBudGxf enpfcFggbnRsID0gbnRsX3p6X3BYKHYsIHBhcmVudC5tb2R1bHVzKCkpICMgbGV0IGl0IGhhbmRs ZSB0aGUgaGFyZCB3b3JrCisgICAgICAgICBzZWxmLnggPSBudGwueAorICAgICAgICAgc2VsZi5j ID0gbnRsLmMKK0BAIC02NjgsOCArNjY4LDggQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNl X21vZG5fbnRsX3p6KFBvbHlub21pYWxfZGVuc2VfbW9kX24pOgorICAgICAgICAgIyBUT0RPOiBH ZXQgcmlkIG9mIHRoaXMKKyAgICAgICAgIFBvbHlub21pYWxfZGVuc2VfbW9kX24ubnRsX3NldF9k aXJlY3RseShzZWxmLCB2KQorICAgICAgICAgIyB2ZXJiYXRpbSBmcm9tIF9faW5pdF9fCistICAg ICAgICB2ID0gW2ludChhKSBmb3IgYSBpbiBzZWxmLl9fcG9seS5saXN0KCldCistICAgICAgICBz ZWxmLl9fcG9seSA9IE5vbmUgIyB0aGlzIHdpbGwgZXZlbnR1YWxseSBnbyBhd2F5CisrICAgICAg ICB2ID0gW2ludChhKSBmb3IgYSBpbiBzZWxmLl9wb2x5Lmxpc3QoKV0KKysgICAgICAgIHNlbGYu X3BvbHkgPSBOb25lICMgdGhpcyB3aWxsIGV2ZW50dWFsbHkgZ28gYXdheQorICAgICAgICAgY2Rl ZiBudGxfenpfcFggbnRsID0gbnRsX3p6X3BYKHYsIHNlbGYuX3BhcmVudC5tb2R1bHVzKCkpICMg bGV0IGl0IGhhbmRsZSB0aGUgaGFyZCB3b3JrCisgICAgICAgICBzZWxmLnggPSBudGwueAorICAg ICAgICAgc2VsZi5jID0gbnRsLmMKK0BAIC0xMjQxLDggKzEyNDEsOCBAQCBjZGVmIGNsYXNzIFBv bHlub21pYWxfZGVuc2VfbW9kbl9udGxfWlooUG9seW5vbWlhbF9kZW5zZV9tb2Rfbik6CisgICAg ICAgICAgICAgICAgIHJldHVybgorIAorICAgICAgICAgUG9seW5vbWlhbF9kZW5zZV9tb2Rfbi5f X2luaXRfXyhzZWxmLCBwYXJlbnQsIHYsIGNoZWNrPWNoZWNrLCBpc19nZW49aXNfZ2VuLCBjb25z dHJ1Y3Q9Y29uc3RydWN0KQorLSAgICAgICAgY2RlZiBudGxfWlpfcFggbnRsID0gc2VsZi5fX3Bv bHkKKy0gICAgICAgIHNlbGYuX19wb2x5ID0gTm9uZSAjIHRoaXMgd2lsbCBldmVudHVhbGx5IGdv IGF3YXkKKysgICAgICAgIGNkZWYgbnRsX1paX3BYIG50bCA9IHNlbGYuX3BvbHkKKysgICAgICAg IHNlbGYuX3BvbHkgPSBOb25lICMgdGhpcyB3aWxsIGV2ZW50dWFsbHkgZ28gYXdheQorICAgICAg ICAgc2VsZi54ID0gbnRsLngKKyAgICAgICAgIHNlbGYuYyA9IG50bC5jCisgCitkaWZmIC0tZ2l0 IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50LnB4 ZCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9yYXRpb25hbF9mbGludC5w eGQKK2luZGV4IDA1NWQ3ODQyNjY4Li5mNDY0NGYxOWQwNCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9yYXRpb25hbF9mbGludC5weGQKKysrKyBiL3Ny Yy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9yYXRpb25hbF9mbGludC5weGQKK0BA IC0xMSw3ICsxMSw3IEBAIGZyb20gc2FnZS5saWJzLmZsaW50LnR5cGVzIGNpbXBvcnQgZm1wcV9w b2x5X3QKKyBmcm9tIHNhZ2UucmluZ3MucG9seW5vbWlhbC5wb2x5bm9taWFsX2VsZW1lbnQgY2lt cG9ydCBQb2x5bm9taWFsCisgCisgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50 KFBvbHlub21pYWwpOgorLSAgICBjZGVmIGZtcHFfcG9seV90IF9fcG9seQorKyAgICBjZGVmIGZt cHFfcG9seV90IF9wb2x5CisgCisgICAgIGNkZWYgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludCBf bmV3KHNlbGYpCisgICAgIGNwZGVmIF9tb2RfKHNlbGYsIHJpZ2h0KQorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9yYXRpb25hbF9mbGludC5weXggYi9z cmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQucHl4Citp bmRleCBkMGRkMTU1MjJlOS4uMjZkMDcwYWM3N2YgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5n cy9wb2x5bm9taWFsL3BvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQucHl4CisrKysgYi9zcmMvc2Fn ZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQucHl4CitAQCAtMTU1 LDE2ICsxNTUsMTYgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlu b21pYWwpOgorICAgICAgICAgcmVzLl9wYXJlbnQgPSBQCisgICAgICAgICByZXMuX2lzX2dlbiA9 IDxjaGFyPjAKKyAgICAgICAgIGlmIGlzaW5zdGFuY2UoeCwgaW50KToKKy0gICAgICAgICAgICBm bXBxX3BvbHlfc2V0X3NpKHJlcy5fX3BvbHksIDxpbnQ+IHgpCisrICAgICAgICAgICAgZm1wcV9w b2x5X3NldF9zaShyZXMuX3BvbHksIDxpbnQ+IHgpCisgCisgICAgICAgICBlbGlmIGlzaW5zdGFu Y2UoeCwgSW50ZWdlcik6CistICAgICAgICAgICAgZm1wcV9wb2x5X3NldF9tcHoocmVzLl9fcG9s eSwgKDxJbnRlZ2VyPiB4KS52YWx1ZSkKKysgICAgICAgICAgICBmbXBxX3BvbHlfc2V0X21weihy ZXMuX3BvbHksICg8SW50ZWdlcj4geCkudmFsdWUpCisgCisgICAgICAgICBlbGlmIGlzaW5zdGFu Y2UoeCwgUmF0aW9uYWwpOgorLSAgICAgICAgICAgIGZtcHFfcG9seV9zZXRfbXBxKHJlcy5fX3Bv bHksICg8UmF0aW9uYWw+IHgpLnZhbHVlKQorKyAgICAgICAgICAgIGZtcHFfcG9seV9zZXRfbXBx KHJlcy5fcG9seSwgKDxSYXRpb25hbD4geCkudmFsdWUpCisgCisgICAgICAgICBlbHNlOgorLSAg ICAgICAgICAgIGZtcHFfcG9seV9zZXRfc2kocmVzLl9fcG9seSwgaW50KHgpKQorKyAgICAgICAg ICAgIGZtcHFfcG9seV9zZXRfc2kocmVzLl9wb2x5LCBpbnQoeCkpCisgICAgICAgICByZXR1cm4g cmVzCisgCisgCitAQCAtMTc3LDcgKzE3Nyw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRp b25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdlOiBSLjx0PiA9IFFRW10K KyAgICAgICAgICAgICBzYWdlOiBmID0gMi8zICogdCAtIDcgICNpbmRpcmVjdCBkb2N0ZXN0Cisg ICAgICAgICAiIiIKKy0gICAgICAgIGZtcHFfcG9seV9pbml0KHNlbGYuX19wb2x5KQorKyAgICAg ICAgZm1wcV9wb2x5X2luaXQoc2VsZi5fcG9seSkKKyAKKyAgICAgZGVmIF9fZGVhbGxvY19fKHNl bGYpOgorICAgICAgICAgIiIiCitAQCAtMTg5LDcgKzE4OSw3IEBAIGNkZWYgY2xhc3MgUG9seW5v bWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdlOiBmID0g MS8zICogdAorICAgICAgICAgICAgIHNhZ2U6IGRlbCBmCisgICAgICAgICAiIiIKKy0gICAgICAg IGZtcHFfcG9seV9jbGVhcihzZWxmLl9fcG9seSkKKysgICAgICAgIGZtcHFfcG9seV9jbGVhcihz ZWxmLl9wb2x5KQorIAorICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50LCB4PU5vbmUsIGNo ZWNrPVRydWUsIGlzX2dlbj1GYWxzZSwgY29uc3RydWN0PUZhbHNlKToKKyAgICAgICAgICIiIgor QEAgLTIyNywxOSArMjI3LDE5IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGlu dChQb2x5bm9taWFsKToKKyAgICAgICAgIFBvbHlub21pYWwuX19pbml0X18oc2VsZiwgcGFyZW50 LCBpc19nZW49aXNfZ2VuKQorIAorICAgICAgICAgaWYgaXNfZ2VuOgorLSAgICAgICAgICAgIGZt cHFfcG9seV9zZXRfY29lZmZfc2koc2VsZi5fX3BvbHksIDEsIDEpCisrICAgICAgICAgICAgZm1w cV9wb2x5X3NldF9jb2VmZl9zaShzZWxmLl9wb2x5LCAxLCAxKQorIAorICAgICAgICAgZWxpZiBp c2luc3RhbmNlKHgsIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQpOgorLSAgICAgICAgICAgIGZt cHFfcG9seV9zZXQoc2VsZi5fX3BvbHksICg8UG9seW5vbWlhbF9yYXRpb25hbF9mbGludD4geCku X19wb2x5KQorKyAgICAgICAgICAgIGZtcHFfcG9seV9zZXQoc2VsZi5fcG9seSwgKDxQb2x5bm9t aWFsX3JhdGlvbmFsX2ZsaW50PiB4KS5fcG9seSkKKyAKKyAgICAgICAgIGVsaWYgaXNpbnN0YW5j ZSh4LCBpbnQpOgorLSAgICAgICAgICAgIGZtcHFfcG9seV9zZXRfc2koc2VsZi5fX3BvbHksIDxp bnQ+IHgpCisrICAgICAgICAgICAgZm1wcV9wb2x5X3NldF9zaShzZWxmLl9wb2x5LCA8aW50PiB4 KQorIAorICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHgsIEludGVnZXIpOgorLSAgICAgICAgICAg IGZtcHFfcG9seV9zZXRfbXB6KHNlbGYuX19wb2x5LCAoPEludGVnZXI+IHgpLnZhbHVlKQorKyAg ICAgICAgICAgIGZtcHFfcG9seV9zZXRfbXB6KHNlbGYuX3BvbHksICg8SW50ZWdlcj4geCkudmFs dWUpCisgCisgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoeCwgUmF0aW9uYWwpOgorLSAgICAgICAg ICAgIGZtcHFfcG9seV9zZXRfbXBxKHNlbGYuX19wb2x5LCAoPFJhdGlvbmFsPiB4KS52YWx1ZSkK KysgICAgICAgICAgICBmbXBxX3BvbHlfc2V0X21wcShzZWxmLl9wb2x5LCAoPFJhdGlvbmFsPiB4 KS52YWx1ZSkKKyAKKyAgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh4LCBsaXN0KSBvciBpc2luc3Rh bmNlKHgsIHR1cGxlKToKKyAKK0BAIC0yNTcsNyArMjU3LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9t aWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgIGZvciBkZWcgZnJv bSAwIDw9IGRlZyA8IG46CisgICAgICAgICAgICAgICAgIG1wcV9pbml0KEwyW2RlZ10pCisgICAg ICAgICAgICAgICAgIG1wcV9zZXQoTDJbZGVnXSwgKDxSYXRpb25hbD4gTDFbZGVnXSkudmFsdWUp CistICAgICAgICAgICAgZm1wcV9wb2x5X3NldF9hcnJheV9tcHEoc2VsZi5fX3BvbHksIEwyLCBu KQorKyAgICAgICAgICAgIGZtcHFfcG9seV9zZXRfYXJyYXlfbXBxKHNlbGYuX3BvbHksIEwyLCBu KQorICAgICAgICAgICAgIGZvciBkZWcgZnJvbSAwIDw9IGRlZyA8IG46CisgICAgICAgICAgICAg ICAgIG1wcV9jbGVhcihMMltkZWddKQorICAgICAgICAgICAgIHNpZ19mcmVlKEwyKQorQEAgLTI2 NiwxMyArMjY2LDEzIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5 bm9taWFsKToKKyAjICAgICAgICAgICBkZWcgPSAwCisgIyAgICAgICAgICAgZm9yIGUgaW4geDoK KyAjICAgICAgICAgICAgICAgYyA9IFJhdGlvbmFsKGUpCistIyAgICAgICAgICAgICAgIGZtcHFf cG9seV9zZXRfY29lZmZfbXBxKHNlbGYuX19wb2x5LCBkZWcsIGMudmFsdWUpCisrIyAgICAgICAg ICAgICAgIGZtcHFfcG9seV9zZXRfY29lZmZfbXBxKHNlbGYuX3BvbHksIGRlZywgYy52YWx1ZSkK KyAjICAgICAgICAgICAgICAgZGVnICs9IDEKKyAKKyAgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh4 LCBkaWN0KToKKyAgICAgICAgICAgICBmb3IgZGVnLCBlIGluIHguaXRlcml0ZW1zKCk6CisgICAg ICAgICAgICAgICAgIGMgPSBSYXRpb25hbChlKQorLSAgICAgICAgICAgICAgICBmbXBxX3BvbHlf c2V0X2NvZWZmX21wcShzZWxmLl9fcG9seSwgZGVnLCBjLnZhbHVlKQorKyAgICAgICAgICAgICAg ICBmbXBxX3BvbHlfc2V0X2NvZWZmX21wcShzZWxmLl9wb2x5LCBkZWcsIGMudmFsdWUpCisgCisg ICAgICAgICBlbGlmIGlzaW5zdGFuY2UoeCwgcGFyaV9nZW4pOgorICAgICAgICAgICAgIGsgPSBz ZWxmLl9wYXJlbnQuYmFzZV9yaW5nKCkKK0BAIC0yODEsNyArMjgxLDcgQEAgY2RlZiBjbGFzcyBQ b2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX2dlbj1GYWxzZSwgY29uc3RydWN0PWNvbnN0 cnVjdCkKKyAKKyAgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh4LCBQb2x5bm9taWFsX2ludGVnZXJf ZGVuc2VfZmxpbnQpOgorLSAgICAgICAgICAgIGZtcHFfcG9seV9zZXRfZm1wel9wb2x5KHNlbGYu X19wb2x5LCAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludD54KS5fX3BvbHkpCisrICAg ICAgICAgICAgZm1wcV9wb2x5X3NldF9mbXB6X3BvbHkoc2VsZi5fcG9seSwgKDxQb2x5bm9taWFs X2ludGVnZXJfZGVuc2VfZmxpbnQ+eCkuX3BvbHkpCisgCisgICAgICAgICBlbGlmIGlzaW5zdGFu Y2UoeCwgUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgayA9IHNlbGYuX3BhcmVudC5iYXNlX3Jp bmcoKQorQEAgLTMyOSw3ICszMjksNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxf ZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgVHJ1ZQorICAgICAgICAgIiIiCisgICAg ICAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQgcmVzID0gc2VsZi5fbmV3KCkKKy0g ICAgICAgIGZtcHFfcG9seV9zZXQocmVzLl9fcG9seSwgc2VsZi5fX3BvbHkpCisrICAgICAgICBm bXBxX3BvbHlfc2V0KHJlcy5fcG9seSwgc2VsZi5fcG9seSkKKyAgICAgICAgIHJldHVybiByZXMK KyAKKyAgICAgZGVmIF9zaW5ndWxhcl8oc2VsZiwgc2luZ3VsYXI9c2luZ3VsYXJfZGVmYXVsdCk6 CitAQCAtMzY0LDcgKzM2NCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGlu dChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdlOiBnLmxpc3QoKQorICAgICAgICAgICAg IFtdCisgICAgICAgICAiIiIKKy0gICAgICAgIGNkZWYgdW5zaWduZWQgbG9uZyBsZW5ndGggPSBm bXBxX3BvbHlfbGVuZ3RoKHNlbGYuX19wb2x5KQorKyAgICAgICAgY2RlZiB1bnNpZ25lZCBsb25n IGxlbmd0aCA9IGZtcHFfcG9seV9sZW5ndGgoc2VsZi5fcG9seSkKKyAgICAgICAgIHJldHVybiBb c2VsZi5nZXRfdW5zYWZlKG4pIGZvciBuIGluIHJhbmdlKGxlbmd0aCldCisgCisgICAgICMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworQEAgLTM5Miw3ICszOTIsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxf cmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgc2FnZTogdHlwZShmLmRl Z3JlZSgpKQorICAgICAgICAgICAgIDxjbGFzcyAnc2FnZS5yaW5ncy5pbnRlZ2VyLkludGVnZXIn PgorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc21hbGxJbnRlZ2VyKGZtcHFfcG9seV9k ZWdyZWUoc2VsZi5fX3BvbHkpKQorKyAgICAgICAgcmV0dXJuIHNtYWxsSW50ZWdlcihmbXBxX3Bv bHlfZGVncmVlKHNlbGYuX3BvbHkpKQorIAorICAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgUHlf c3NpemVfdCBuKToKKyAgICAgICAgICIiIgorQEAgLTQxMyw3ICs0MTMsNyBAQCBjZGVmIGNsYXNz IFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgMS8y KnReMiArIHQgKyAxCisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUmF0aW9uYWwgeiA9IFJh dGlvbmFsLl9fbmV3X18oUmF0aW9uYWwpCistICAgICAgICBmbXBxX3BvbHlfZ2V0X2NvZWZmX21w cSh6LnZhbHVlLCBzZWxmLl9fcG9seSwgbikKKysgICAgICAgIGZtcHFfcG9seV9nZXRfY29lZmZf bXBxKHoudmFsdWUsIHNlbGYuX3BvbHksIG4pCisgICAgICAgICByZXR1cm4gegorIAorICAgICBj cGRlZiBfdW5zYWZlX211dGF0ZShzZWxmLCB1bnNpZ25lZCBsb25nIG4sIHZhbHVlKToKK0BAIC00 MzQsMjQgKzQzNCwyNCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9s eW5vbWlhbCk6CisgICAgICAgICByZWx5IG9uIHRoaXMgY29udmVudGlvbi4gIFRoaXMgbWV0aG9k IHNob3VsZCBiZSB1c2VkIG9ubHkgd2l0aCB0aGUKKyAgICAgICAgIHV0bW9zdCBjYXJlLgorICAg ICAgICAgIiIiCistICAgICAgICBjZGVmIGJpbnQgZG9fc2lnID0gX2RvX3NpZyhzZWxmLl9fcG9s eSkKKysgICAgICAgIGNkZWYgYmludCBkb19zaWcgPSBfZG9fc2lnKHNlbGYuX3BvbHkpCisgCisg ICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBpbnQpOgorICAgICAgICAgICAgIGlmIGRvX3Np Zzogc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAgICAgICAgICBmbXBxX3BvbHlfc2V0 X2NvZWZmX3NpKHNlbGYuX19wb2x5LCBuLCB2YWx1ZSkKKysgICAgICAgICAgICBmbXBxX3BvbHlf c2V0X2NvZWZmX3NpKHNlbGYuX3BvbHksIG4sIHZhbHVlKQorICAgICAgICAgICAgIGlmIGRvX3Np Zzogc2lnX29mZigpCisgICAgICAgICBlbGlmIGlzaW5zdGFuY2UodmFsdWUsIEludGVnZXIpOgor ICAgICAgICAgICAgIGlmIGRvX3NpZzogc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAg ICAgICAgICBmbXBxX3BvbHlfc2V0X2NvZWZmX21weihzZWxmLl9fcG9seSwgbiwgKDxJbnRlZ2Vy PiB2YWx1ZSkudmFsdWUpCisrICAgICAgICAgICAgZm1wcV9wb2x5X3NldF9jb2VmZl9tcHooc2Vs Zi5fcG9seSwgbiwgKDxJbnRlZ2VyPiB2YWx1ZSkudmFsdWUpCisgICAgICAgICAgICAgaWYgZG9f c2lnOiBzaWdfb2ZmKCkKKyAgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh2YWx1ZSwgUmF0aW9uYWwp OgorICAgICAgICAgICAgIGlmIGRvX3NpZzogc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0g ICAgICAgICAgICBmbXBxX3BvbHlfc2V0X2NvZWZmX21wcShzZWxmLl9fcG9seSwgbiwgKDxSYXRp b25hbD4gdmFsdWUpLnZhbHVlKQorKyAgICAgICAgICAgIGZtcHFfcG9seV9zZXRfY29lZmZfbXBx KHNlbGYuX3BvbHksIG4sICg8UmF0aW9uYWw+IHZhbHVlKS52YWx1ZSkKKyAgICAgICAgICAgICBp ZiBkb19zaWc6IHNpZ19vZmYoKQorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICB2YWx1ZSA9 IFJhdGlvbmFsKHZhbHVlKQorICAgICAgICAgICAgIGlmIGRvX3NpZzogc2lnX3N0cigiRkxJTlQg ZXhjZXB0aW9uIikKKy0gICAgICAgICAgICBmbXBxX3BvbHlfc2V0X2NvZWZmX21wcShzZWxmLl9f cG9seSwgbiwgKDxSYXRpb25hbD4gdmFsdWUpLnZhbHVlKQorKyAgICAgICAgICAgIGZtcHFfcG9s eV9zZXRfY29lZmZfbXBxKHNlbGYuX3BvbHksIG4sICg8UmF0aW9uYWw+IHZhbHVlKS52YWx1ZSkK KyAgICAgICAgICAgICBpZiBkb19zaWc6IHNpZ19vZmYoKQorIAorICAgICBkZWYgX19jYWxsX18o c2VsZiwgKngsICoqa3dkcyk6CitAQCAtNTAxLDIwICs1MDEsMjAgQEAgY2RlZiBjbGFzcyBQb2x5 bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgIGlmIGlzaW5z dGFuY2UoYSwgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludCk6CisgICAgICAgICAgICAgICAgIGYg PSAoPFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQ+IGEpLl9uZXcoKQorICAgICAgICAgICAgICAg ICBzaWdfc3RyKCJGTElOVCBleGNlcHRpb24iKQorLSAgICAgICAgICAgICAgICBmbXBxX3BvbHlf Y29tcG9zZShmLl9fcG9seSwgc2VsZi5fX3BvbHksCistICAgICAgICAgICAgICAgICAgICAoPFBv bHlub21pYWxfcmF0aW9uYWxfZmxpbnQ+IGEpLl9fcG9seSkKKysgICAgICAgICAgICAgICAgZm1w cV9wb2x5X2NvbXBvc2UoZi5fcG9seSwgc2VsZi5fcG9seSwKKysgICAgICAgICAgICAgICAgICAg ICg8UG9seW5vbWlhbF9yYXRpb25hbF9mbGludD4gYSkuX3BvbHkpCisgICAgICAgICAgICAgICAg IHNpZ19vZmYoKQorICAgICAgICAgICAgICAgICByZXR1cm4gZgorICAgICAgICAgICAgIGVsaWYg aXNpbnN0YW5jZShhLCBSYXRpb25hbCk6CisgICAgICAgICAgICAgICAgIHIgPSBSYXRpb25hbC5f X25ld19fKFJhdGlvbmFsKQorICAgICAgICAgICAgICAgICBzaWdfc3RyKCJGTElOVCBleGNlcHRp b24iKQorLSAgICAgICAgICAgICAgICBmbXBxX3BvbHlfZXZhbHVhdGVfbXBxKHIudmFsdWUsIHNl bGYuX19wb2x5LCAoPFJhdGlvbmFsPiBhKS52YWx1ZSkKKysgICAgICAgICAgICAgICAgZm1wcV9w b2x5X2V2YWx1YXRlX21wcShyLnZhbHVlLCBzZWxmLl9wb2x5LCAoPFJhdGlvbmFsPiBhKS52YWx1 ZSkKKyAgICAgICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAgICAgICAgICAgIHJldHVybiBy CisgICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGEsIEludGVnZXIpOgorICAgICAgICAgICAg ICAgICByID0gUmF0aW9uYWwuX19uZXdfXyhSYXRpb25hbCkKKyAgICAgICAgICAgICAgICAgc2ln X3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAgICAgICAgICAgICAgZm1wcV9wb2x5X2V2YWx1 YXRlX21weihyLnZhbHVlLCBzZWxmLl9fcG9seSwgKDxJbnRlZ2VyPiBhKS52YWx1ZSkKKysgICAg ICAgICAgICAgICAgZm1wcV9wb2x5X2V2YWx1YXRlX21weihyLnZhbHVlLCBzZWxmLl9wb2x5LCAo PEludGVnZXI+IGEpLnZhbHVlKQorICAgICAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAg ICAgICAgICAgcmV0dXJuIHIKKyAgICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoYSwgaW50KToK K0BAIC01MjMsNyArNTIzLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50 KFBvbHlub21pYWwpOgorICAgICAgICAgICAgICAgICBmbXB6X2luaXQodG1wZnopCisgICAgICAg ICAgICAgICAgIGZtcHFfaW5pdCh0bXBmcSkKKyAgICAgICAgICAgICAgICAgZm1wel9zZXRfc2ko dG1wZnosIFB5SW50X0FTX0xPTkcoYSkpCistICAgICAgICAgICAgICAgIGZtcHFfcG9seV9ldmFs dWF0ZV9mbXB6KHRtcGZxLCBzZWxmLl9fcG9seSwgdG1wZnopCisrICAgICAgICAgICAgICAgIGZt cHFfcG9seV9ldmFsdWF0ZV9mbXB6KHRtcGZxLCBzZWxmLl9wb2x5LCB0bXBmeikKKyAgICAgICAg ICAgICAgICAgZm1wcV9nZXRfbXBxKHIudmFsdWUsIHRtcGZxKQorICAgICAgICAgICAgICAgICBm bXBxX2NsZWFyKHRtcGZxKQorICAgICAgICAgICAgICAgICBmbXB6X2NsZWFyKHRtcGZ6KQorQEAg LTUzMywxOCArNTMzLDE4IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQ b2x5bm9taWFsKToKKyAgICAgICAgICAgICAgICAgYXJiX2EgPSA8UmVhbEJhbGw+IGEKKyAgICAg ICAgICAgICAgICAgYXJiX3ogPSBhcmJfYS5fbmV3KCkKKyAgICAgICAgICAgICAgICAgc2lnX29u KCkKKy0gICAgICAgICAgICAgICAgX2FyYl9mbXB6X3BvbHlfZXZhbHVhdGVfYXJiKGFyYl96LnZh bHVlLCBmbXBxX3BvbHlfbnVtcmVmKHNlbGYuX19wb2x5KSwKKy0gICAgICAgICAgICAgICAgICAg ICAgICBmbXBxX3BvbHlfbGVuZ3RoKHNlbGYuX19wb2x5KSwgYXJiX2EudmFsdWUsIGFyYl9hLl9w YXJlbnQuX3ByZWMpCistICAgICAgICAgICAgICAgIGFyYl9kaXZfZm1weihhcmJfei52YWx1ZSwg YXJiX3oudmFsdWUsIGZtcHFfcG9seV9kZW5yZWYoc2VsZi5fX3BvbHkpLCBhcmJfYS5fcGFyZW50 Ll9wcmVjKQorKyAgICAgICAgICAgICAgICBfYXJiX2ZtcHpfcG9seV9ldmFsdWF0ZV9hcmIoYXJi X3oudmFsdWUsIGZtcHFfcG9seV9udW1yZWYoc2VsZi5fcG9seSksCisrICAgICAgICAgICAgICAg ICAgICAgICAgZm1wcV9wb2x5X2xlbmd0aChzZWxmLl9wb2x5KSwgYXJiX2EudmFsdWUsIGFyYl9h Ll9wYXJlbnQuX3ByZWMpCisrICAgICAgICAgICAgICAgIGFyYl9kaXZfZm1weihhcmJfei52YWx1 ZSwgYXJiX3oudmFsdWUsIGZtcHFfcG9seV9kZW5yZWYoc2VsZi5fcG9seSksIGFyYl9hLl9wYXJl bnQuX3ByZWMpCisgICAgICAgICAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgICAgICAgICBy ZXR1cm4gYXJiX3oKKyAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGEsIENvbXBsZXhCYWxsKToK KyAgICAgICAgICAgICAgICAgYWNiX2EgPSA8Q29tcGxleEJhbGw+IGEKKyAgICAgICAgICAgICAg ICAgYWNiX3ogPSBhY2JfYS5fbmV3KCkKKyAgICAgICAgICAgICAgICAgc2lnX29uKCkKKy0gICAg ICAgICAgICAgICAgX2FyYl9mbXB6X3BvbHlfZXZhbHVhdGVfYWNiKGFjYl96LnZhbHVlLCBmbXBx X3BvbHlfbnVtcmVmKHNlbGYuX19wb2x5KSwKKy0gICAgICAgICAgICAgICAgICAgICAgICBmbXBx X3BvbHlfbGVuZ3RoKHNlbGYuX19wb2x5KSwgYWNiX2EudmFsdWUsIGFjYl9hLl9wYXJlbnQuX3By ZWMpCistICAgICAgICAgICAgICAgIGFjYl9kaXZfZm1weihhY2Jfei52YWx1ZSwgYWNiX3oudmFs dWUsIGZtcHFfcG9seV9kZW5yZWYoc2VsZi5fX3BvbHkpLCBhY2JfYS5fcGFyZW50Ll9wcmVjKQor KyAgICAgICAgICAgICAgICBfYXJiX2ZtcHpfcG9seV9ldmFsdWF0ZV9hY2IoYWNiX3oudmFsdWUs IGZtcHFfcG9seV9udW1yZWYoc2VsZi5fcG9seSksCisrICAgICAgICAgICAgICAgICAgICAgICAg Zm1wcV9wb2x5X2xlbmd0aChzZWxmLl9wb2x5KSwgYWNiX2EudmFsdWUsIGFjYl9hLl9wYXJlbnQu X3ByZWMpCisrICAgICAgICAgICAgICAgIGFjYl9kaXZfZm1weihhY2Jfei52YWx1ZSwgYWNiX3ou dmFsdWUsIGZtcHFfcG9seV9kZW5yZWYoc2VsZi5fcG9seSksIGFjYl9hLl9wYXJlbnQuX3ByZWMp CisgICAgICAgICAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgICAgICAgICByZXR1cm4gYWNi X3oKKyAKK0BAIC01NzAsMTQgKzU3MCwxNCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9u YWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxf ZmxpbnQgcmVzCisgICAgICAgICBjZGVmIGJpbnQgZG9fc2lnCisgCistICAgICAgICBpZiAobiA+ PSBmbXBxX3BvbHlfbGVuZ3RoKHNlbGYuX19wb2x5KSk6CisrICAgICAgICBpZiAobiA+PSBmbXBx X3BvbHlfbGVuZ3RoKHNlbGYuX3BvbHkpKToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZgorICAg ICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgICAg IGlmIG4gPiAwOgorLSAgICAgICAgICAgICAgICBkb19zaWcgPSBfZG9fc2lnKHNlbGYuX19wb2x5 KQorKyAgICAgICAgICAgICAgICBkb19zaWcgPSBfZG9fc2lnKHNlbGYuX3BvbHkpCisgICAgICAg ICAgICAgICAgIGlmIGRvX3NpZzogc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAgICAg ICAgICAgICAgZm1wcV9wb2x5X2dldF9zbGljZShyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgMCwg bikKKysgICAgICAgICAgICAgICAgZm1wcV9wb2x5X2dldF9zbGljZShyZXMuX3BvbHksIHNlbGYu X3BvbHksIDAsIG4pCisgICAgICAgICAgICAgICAgIGlmIGRvX3NpZzogc2lnX29mZigpCisgICAg ICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTY2NCw3ICs2NjQsNyBAQCBjZGVmIGNsYXNzIFBv bHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICBjZGVmIGJpbnQg ZG9fc2lnCisgCisgICAgICAgICBpZiBkZWdyZWUgaXMgTm9uZToKKy0gICAgICAgICAgICBsZW4g PSBmbXBxX3BvbHlfbGVuZ3RoKHNlbGYuX19wb2x5KQorKyAgICAgICAgICAgIGxlbiA9IGZtcHFf cG9seV9sZW5ndGgoc2VsZi5fcG9seSkKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgdHJ5 OgorICAgICAgICAgICAgICAgICBsZW4gPSA8dW5zaWduZWQgbG9uZz4gKGRlZ3JlZSArIDEpCitA QCAtNjcyLDkgKzY3Miw5IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQ b2x5bm9taWFsKToKKyAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignZGVncmVlIG11 c3QgYmUgY29udmVydGlibGUgdG8gbG9uZycpCisgCisgICAgICAgICByZXMgPSBzZWxmLl9uZXco KQorLSAgICAgICAgZG9fc2lnID0gX2RvX3NpZyhzZWxmLl9fcG9seSkKKysgICAgICAgIGRvX3Np ZyA9IF9kb19zaWcoc2VsZi5fcG9seSkKKyAgICAgICAgIGlmIGRvX3NpZzogc2lnX3N0cigiRkxJ TlQgZXhjZXB0aW9uIikKKy0gICAgICAgIGZtcHFfcG9seV9yZXZlcnNlKHJlcy5fX3BvbHksIHNl bGYuX19wb2x5LCBsZW4pCisrICAgICAgICBmbXBxX3BvbHlfcmV2ZXJzZShyZXMuX3BvbHksIHNl bGYuX3BvbHksIGxlbikKKyAgICAgICAgIGlmIGRvX3NpZzogc2lnX29mZigpCisgICAgICAgICBy ZXR1cm4gcmVzCisgCitAQCAtNzA5LDcgKzcwOSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9y YXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y KCJzZWxmIG11c3QgaGF2ZSBjb25zdGFudCBjb2VmZmljaWVudCAwIGFuZCBhIHVuaXQgZm9yIGNv ZWZmaWNpZW50IHt9XjEiLmZvcm1hdChzZWxmLnBhcmVudCgpLmdlbigpKSkKKyAKKyAgICAgICAg IHNpZ19zdHIoIkZMSU5UIGV4Y2VwdGlvbiIpCistICAgICAgICBmbXBxX3BvbHlfcmV2ZXJ0X3Nl cmllcyhyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgbSkKKysgICAgICAgIGZtcHFfcG9seV9yZXZl cnRfc2VyaWVzKHJlcy5fcG9seSwgc2VsZi5fcG9seSwgbSkKKyAgICAgICAgIHNpZ19vZmYoKQor IAorICAgICAgICAgcmV0dXJuIHJlcworQEAgLTczMSw3ICs3MzEsNyBAQCBjZGVmIGNsYXNzIFBv bHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgc2FnZTog UigwKS5pc196ZXJvKCkKKyAgICAgICAgICAgICBUcnVlCisgICAgICAgICAiIiIKKy0gICAgICAg IHJldHVybiBmbXBxX3BvbHlfaXNfemVybyhzZWxmLl9fcG9seSkKKysgICAgICAgIHJldHVybiBm bXBxX3BvbHlfaXNfemVybyhzZWxmLl9wb2x5KQorIAorICAgICBjcGRlZiBiaW50IGlzX29uZShz ZWxmKSBleGNlcHQgLTE6CisgICAgICAgICByIiIiCitAQCAtNzUxLDcgKzc1MSw3IEBAIGNkZWYg Y2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAg ICBzYWdlOiBSKFsxLDFdKS5pc19vbmUoKQorICAgICAgICAgICAgIEZhbHNlCisgICAgICAgICAi IiIKKy0gICAgICAgIHJldHVybiBmbXBxX3BvbHlfaXNfb25lKHNlbGYuX19wb2x5KQorKyAgICAg ICAgcmV0dXJuIGZtcHFfcG9seV9pc19vbmUoc2VsZi5fcG9seSkKKyAKKyAgICAgZGVmIF9fYm9v bF9fKHNlbGYpOgorICAgICAgICAgIiIiCitAQCAtNzY2LDcgKzc2Niw3IEBAIGNkZWYgY2xhc3Mg UG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdl OiBib29sKFIoMCkpCisgICAgICAgICAgICAgRmFsc2UKKyAgICAgICAgICIiIgorLSAgICAgICAg cmV0dXJuIG5vdCBmbXBxX3BvbHlfaXNfemVybyhzZWxmLl9fcG9seSkKKysgICAgICAgIHJldHVy biBub3QgZm1wcV9wb2x5X2lzX3plcm8oc2VsZi5fcG9seSkKKyAKKyAgICAgIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisgICAgICMgU2hpZnRpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworQEAgLTc5NCwxNCArNzk0LDE0IEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAg IGNkZWYgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludCByZXMKKyAgICAgICAgIGNkZWYgYmludCBk b19zaWcKKyAKKy0gICAgICAgIGlmIGsgPT0gMCBvciBmbXBxX3BvbHlfaXNfemVybyhmLl9fcG9s eSk6CisrICAgICAgICBpZiBrID09IDAgb3IgZm1wcV9wb2x5X2lzX3plcm8oZi5fcG9seSk6Cisg ICAgICAgICAgICAgcmV0dXJuIHNlbGYKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmVz ID0gZi5fbmV3KCkKKy0gICAgICAgICAgICBkb19zaWcgPSBmbXBxX3BvbHlfbGVuZ3RoKGYuX19w b2x5KSA+IDUwMDAgb3IgbiA+IDUwMDAKKysgICAgICAgICAgICBkb19zaWcgPSBmbXBxX3BvbHlf bGVuZ3RoKGYuX3BvbHkpID4gNTAwMCBvciBuID4gNTAwMAorIAorICAgICAgICAgICAgIGlmIGRv X3NpZzogc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAgICAgICAgICBmbXBxX3BvbHlf c2hpZnRfbGVmdChyZXMuX19wb2x5LCBmLl9fcG9seSwgaykKKysgICAgICAgICAgICBmbXBxX3Bv bHlfc2hpZnRfbGVmdChyZXMuX3BvbHksIGYuX3BvbHksIGspCisgICAgICAgICAgICAgaWYgZG9f c2lnOiBzaWdfb2ZmKCkKKyAgICAgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtODIyLDE0ICs4 MjIsMTQgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwp OgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJlcworICAgICAgICAg Y2RlZiBiaW50IGRvX3NpZworIAorLSAgICAgICAgaWYgayA9PSAwIG9yIGZtcHFfcG9seV9pc196 ZXJvKGYuX19wb2x5KToKKysgICAgICAgIGlmIGsgPT0gMCBvciBmbXBxX3BvbHlfaXNfemVybyhm Ll9wb2x5KToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZgorICAgICAgICAgZWxzZToKKyAgICAg ICAgICAgICByZXMgPSBmLl9uZXcoKQorLSAgICAgICAgICAgIGRvX3NpZyA9IF9kb19zaWcoZi5f X3BvbHkpCisrICAgICAgICAgICAgZG9fc2lnID0gX2RvX3NpZyhmLl9wb2x5KQorIAorICAgICAg ICAgICAgIGlmIGRvX3NpZzogc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAgICAgICAg ICBmbXBxX3BvbHlfc2hpZnRfcmlnaHQocmVzLl9fcG9seSwgZi5fX3BvbHksIGspCisrICAgICAg ICAgICAgZm1wcV9wb2x5X3NoaWZ0X3JpZ2h0KHJlcy5fcG9seSwgZi5fcG9seSwgaykKKyAgICAg ICAgICAgICBpZiBkb19zaWc6IHNpZ19vZmYoKQorICAgICAgICAgICAgIHJldHVybiByZXMKKyAK K0BAIC04NTgsMTAgKzg1OCwxMCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxp bnQoUG9seW5vbWlhbCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9y YXRpb25hbF9mbGludCBvcDIgPSA8UG9seW5vbWlhbF9yYXRpb25hbF9mbGludD4gcmlnaHQKKyAg ICAgICAgIGNkZWYgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludCByZXMgPSBzZWxmLl9uZXcoKQor LSAgICAgICAgY2RlZiBiaW50IGRvX3NpZyA9IF9kb19zaWcoc2VsZi5fX3BvbHkpIG9yIF9kb19z aWcob3AyLl9fcG9seSkKKysgICAgICAgIGNkZWYgYmludCBkb19zaWcgPSBfZG9fc2lnKHNlbGYu X3BvbHkpIG9yIF9kb19zaWcob3AyLl9wb2x5KQorIAorICAgICAgICAgaWYgZG9fc2lnOiBzaWdf c3RyKCJGTElOVCBleGNlcHRpb24iKQorLSAgICAgICAgZm1wcV9wb2x5X2FkZChyZXMuX19wb2x5 LCBzZWxmLl9fcG9seSwgb3AyLl9fcG9seSkKKysgICAgICAgIGZtcHFfcG9seV9hZGQocmVzLl9w b2x5LCBzZWxmLl9wb2x5LCBvcDIuX3BvbHkpCisgICAgICAgICBpZiBkb19zaWc6IHNpZ19vZmYo KQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTg4NiwxMCArODg2LDEwIEBAIGNkZWYgY2xh c3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgor ICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IG9wMiA9IDxQb2x5bm9taWFs X3JhdGlvbmFsX2ZsaW50PiByaWdodAorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFs X2ZsaW50IHJlcyA9IHNlbGYuX25ldygpCistICAgICAgICBjZGVmIGJpbnQgZG9fc2lnID0gX2Rv X3NpZyhzZWxmLl9fcG9seSkgb3IgX2RvX3NpZyhvcDIuX19wb2x5KQorKyAgICAgICAgY2RlZiBi aW50IGRvX3NpZyA9IF9kb19zaWcoc2VsZi5fcG9seSkgb3IgX2RvX3NpZyhvcDIuX3BvbHkpCisg CisgICAgICAgICBpZiBkb19zaWc6IHNpZ19zdHIoIkZMSU5UIGV4Y2VwdGlvbiIpCistICAgICAg ICBmbXBxX3BvbHlfc3ViKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBvcDIuX19wb2x5KQorKyAg ICAgICAgZm1wcV9wb2x5X3N1YihyZXMuX3BvbHksIHNlbGYuX3BvbHksIG9wMi5fcG9seSkKKyAg ICAgICAgIGlmIGRvX3NpZzogc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAt OTEyLDEwICs5MTIsMTAgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBv bHlub21pYWwpOgorICAgICAgICAgICAgIFRydWUKKyAgICAgICAgICIiIgorICAgICAgICAgY2Rl ZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJlcyA9IHNlbGYuX25ldygpCistICAgICAgICBj ZGVmIGJpbnQgZG9fc2lnID0gX2RvX3NpZyhzZWxmLl9fcG9seSkKKysgICAgICAgIGNkZWYgYmlu dCBkb19zaWcgPSBfZG9fc2lnKHNlbGYuX3BvbHkpCisgCisgICAgICAgICBpZiBkb19zaWc6IHNp Z19zdHIoIkZMSU5UIGV4Y2VwdGlvbiIpCistICAgICAgICBmbXBxX3BvbHlfbmVnKHJlcy5fX3Bv bHksIHNlbGYuX19wb2x5KQorKyAgICAgICAgZm1wcV9wb2x5X25lZyhyZXMuX3BvbHksIHNlbGYu X3BvbHkpCisgICAgICAgICBpZiBkb19zaWc6IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJl cworIAorQEAgLTk0NSw4ICs5NDUsOCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxf ZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxfZmxp bnQgcnIgPSBzZWxmLl9uZXcoKQorIAorICAgICAgICAgc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9u IikKKy0gICAgICAgIGZtcHFfcG9seV9kaXZyZW0ocXEuX19wb2x5LCByci5fX3BvbHksIHNlbGYu X19wb2x5LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfcmF0aW9uYWxf ZmxpbnQ+IHJpZ2h0KS5fX3BvbHkpCisrICAgICAgICBmbXBxX3BvbHlfZGl2cmVtKHFxLl9wb2x5 LCByci5fcG9seSwgc2VsZi5fcG9seSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgKDxQb2x5 bm9taWFsX3JhdGlvbmFsX2ZsaW50PiByaWdodCkuX3BvbHkpCisgICAgICAgICBzaWdfb2ZmKCkK KyAgICAgICAgIHJldHVybiBxcSwgcnIKKyAKK0BAIC05NzQsOCArOTc0LDggQEAgY2RlZiBjbGFz cyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgY2RlZiBQ b2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJlcyA9IHNlbGYuX25ldygpCisgCisgICAgICAgICBz aWdfc3RyKCJGTElOVCBleGNlcHRpb24iKQorLSAgICAgICAgZm1wcV9wb2x5X2djZChyZXMuX19w b2x5LCBzZWxmLl9fcG9seSwKKy0gICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX3JhdGlvbmFs X2ZsaW50PiByaWdodCkuX19wb2x5KQorKyAgICAgICAgZm1wcV9wb2x5X2djZChyZXMuX3BvbHks IHNlbGYuX3BvbHksCisrICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9yYXRpb25hbF9mbGlu dD4gcmlnaHQpLl9wb2x5KQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVz CisgCitAQCAtMTAwMSw4ICsxMDAxLDggQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFs X2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2Zs aW50IHJlcyA9IHNlbGYuX25ldygpCisgCisgICAgICAgICBzaWdfc3RyKCJGTElOVCBleGNlcHRp b24iKQorLSAgICAgICAgZm1wcV9wb2x5X2xjbShyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwKKy0g ICAgICAgICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50PiByaWdodCku X19wb2x5KQorKyAgICAgICAgZm1wcV9wb2x5X2xjbShyZXMuX3BvbHksIHNlbGYuX3BvbHksCisr ICAgICAgICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9yYXRpb25hbF9mbGludD4gcmlnaHQp Ll9wb2x5KQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAt MTA0Myw3ICsxMDQzLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBv bHlub21pYWwpOgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IHQgPSBz ZWxmLl9uZXcoKQorIAorICAgICAgICAgc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAg ICAgIGZtcHFfcG9seV94Z2NkKGQuX19wb2x5LCBzLl9fcG9seSwgdC5fX3BvbHksIHNlbGYuX19w b2x5LCAoPFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQ+cmlnaHQpLl9fcG9seSkKKysgICAgICAg IGZtcHFfcG9seV94Z2NkKGQuX3BvbHksIHMuX3BvbHksIHQuX3BvbHksIHNlbGYuX3BvbHksICg8 UG9seW5vbWlhbF9yYXRpb25hbF9mbGludD5yaWdodCkuX3BvbHkpCisgICAgICAgICBzaWdfb2Zm KCkKKyAgICAgICAgIHJldHVybiBkLCBzLCB0CisgCitAQCAtMTA2OSwxMCArMTA2OSwxMCBAQCBj ZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludCBvcDIgPSA8UG9s eW5vbWlhbF9yYXRpb25hbF9mbGludD4gcmlnaHQKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9y YXRpb25hbF9mbGludCByZXMgPSBzZWxmLl9uZXcoKQorLSAgICAgICAgY2RlZiBiaW50IGRvX3Np ZyA9IF9kb19zaWcoc2VsZi5fX3BvbHkpIG9yIF9kb19zaWcob3AyLl9fcG9seSkKKysgICAgICAg IGNkZWYgYmludCBkb19zaWcgPSBfZG9fc2lnKHNlbGYuX3BvbHkpIG9yIF9kb19zaWcob3AyLl9w b2x5KQorIAorICAgICAgICAgaWYgZG9fc2lnOiBzaWdfc3RyKCJGTElOVCBleGNlcHRpb24iKQor LSAgICAgICAgZm1wcV9wb2x5X211bChyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgb3AyLl9fcG9s eSkKKysgICAgICAgIGZtcHFfcG9seV9tdWwocmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBvcDIuX3Bv bHkpCisgICAgICAgICBpZiBkb19zaWc6IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcwor IAorQEAgLTExMDMsMTMgKzExMDMsMTMgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFs X2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIFBvbHlub21p YWxfcmF0aW9uYWxfZmxpbnQgb3AyID0gPFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQ+IHJpZ2h0 CisgICAgICAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQgcmVzID0gc2VsZi5fbmV3 KCkKKy0gICAgICAgIGNkZWYgYmludCBkb19zaWcgPSBfZG9fc2lnKHNlbGYuX19wb2x5KSBvciBf ZG9fc2lnKG9wMi5fX3BvbHkpCisrICAgICAgICBjZGVmIGJpbnQgZG9fc2lnID0gX2RvX3NpZyhz ZWxmLl9wb2x5KSBvciBfZG9fc2lnKG9wMi5fcG9seSkKKyAKKyAgICAgICAgIGlmIG4gPD0gMDoK KyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJuIG11c3QgYmUgPiAwIikKKyAKKyAgICAg ICAgIGlmIGRvX3NpZzogc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAgICAgIGZtcHFf cG9seV9tdWxsb3cocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIG9wMi5fX3BvbHksIG4pCisrICAg ICAgICBmbXBxX3BvbHlfbXVsbG93KHJlcy5fcG9seSwgc2VsZi5fcG9seSwgb3AyLl9wb2x5LCBu KQorICAgICAgICAgaWYgZG9fc2lnOiBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAK K0BAIC0xMTI1LDEwICsxMTI1LDEwIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9m bGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICA5KnReMyAtIDYqdCArIDIKKyAgICAgICAg ICIiIgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJlcyA9IHNlbGYu X25ldygpCistICAgICAgICBjZGVmIGJpbnQgZG9fc2lnID0gX2RvX3NpZyhzZWxmLl9fcG9seSkK KysgICAgICAgIGNkZWYgYmludCBkb19zaWcgPSBfZG9fc2lnKHNlbGYuX3BvbHkpCisgCisgICAg ICAgICBpZiBkb19zaWc6IHNpZ19zdHIoIkZMSU5UIGV4Y2VwdGlvbiIpCistICAgICAgICBmbXBx X3BvbHlfc2NhbGFyX211bF9tcHEocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksCisrICAgICAgICBm bXBxX3BvbHlfc2NhbGFyX211bF9tcHEocmVzLl9wb2x5LCBzZWxmLl9wb2x5LAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICg8UmF0aW9uYWw+IGxlZnQpLnZhbHVlKQorICAgICAg ICAgaWYgZG9fc2lnOiBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKK0BAIC0xMTQ1LDEw ICsxMTQ1LDEwIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9t aWFsKToKKyAgICAgICAgICAgICA5KnReMyAtIDYqdCArIDIKKyAgICAgICAgICIiIgorICAgICAg ICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJlcyA9IHNlbGYuX25ldygpCistICAg ICAgICBjZGVmIGJpbnQgZG9fc2lnID0gX2RvX3NpZyhzZWxmLl9fcG9seSkKKysgICAgICAgIGNk ZWYgYmludCBkb19zaWcgPSBfZG9fc2lnKHNlbGYuX3BvbHkpCisgCisgICAgICAgICBpZiBkb19z aWc6IHNpZ19zdHIoIkZMSU5UIGV4Y2VwdGlvbiIpCistICAgICAgICBmbXBxX3BvbHlfc2NhbGFy X211bF9tcHEocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksCisrICAgICAgICBmbXBxX3BvbHlfc2Nh bGFyX211bF9tcHEocmVzLl9wb2x5LCBzZWxmLl9wb2x5LAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICg8UmF0aW9uYWw+IHJpZ2h0KS52YWx1ZSkKKyAgICAgICAgIGlmIGRvX3Np Zzogc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCitAQCAtMTI3MiwyNyArMTI3MiwyNyBA QCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAg ICAgICAgICAgbnVtID0gci5udW1lcmF0b3IoKQorICAgICAgICAgICAgIGRlbiA9IHIuZGVub21p bmF0b3IoKQorIAorLSAgICAgICAgICAgIGlmIGZtcHFfcG9seV9kZWdyZWUoc2VsZi5fX3BvbHkp ID09IDA6CisrICAgICAgICAgICAgaWYgZm1wcV9wb2x5X2RlZ3JlZShzZWxmLl9wb2x5KSA9PSAw OgorICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5wYXJlbnQoKShzZWxmWzBdLm50aF9yb290 KGRlbikgKiogbnVtKQorIAorICAgICAgICAgICAgIHJldHVybiBzZWxmLm50aF9yb290KGRlbikg KiogbnVtCisgCisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIGlmIG4gPCAwOgorLSAgICAg ICAgICAgICAgICBpZiBmbXBxX3BvbHlfaXNfemVybyhzZWxmLl9fcG9seSk6CisrICAgICAgICAg ICAgICAgIGlmIGZtcHFfcG9seV9pc196ZXJvKHNlbGYuX3BvbHkpOgorICAgICAgICAgICAgICAg ICAgICAgcmFpc2UgWmVyb0RpdmlzaW9uRXJyb3IoIm5lZ2F0aXZlIGV4cG9uZW50IGluIHBvd2Vy IG9mIHplcm8iKQorICAgICAgICAgICAgICAgICByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAg ICAgICAgICBzaWdfc3RyKCJGTElOVCBleGNlcHRpb24iKQorLSAgICAgICAgICAgICAgICBmbXBx X3BvbHlfcG93KHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCAtbikKKysgICAgICAgICAgICAgICAg Zm1wcV9wb2x5X3BvdyhyZXMuX3BvbHksIHNlbGYuX3BvbHksIC1uKQorICAgICAgICAgICAgICAg ICBzaWdfb2ZmKCkKKyAgICAgICAgICAgICAgICAgcmV0dXJuIH5yZXMKKyAgICAgICAgICAgICBl bHNlOgorICAgICAgICAgICAgICAgICByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgICAgICAg ICBzaWdfc3RyKCJGTElOVCBleGNlcHRpb24iKQorICAgICAgICAgICAgICAgICBpZiBzZWxmLl9p c19nZW46CistICAgICAgICAgICAgICAgICAgICBmbXBxX3BvbHlfc2V0X2NvZWZmX3NpKHJlcy5f X3BvbHksIG4sIDEpCisrICAgICAgICAgICAgICAgICAgICBmbXBxX3BvbHlfc2V0X2NvZWZmX3Np KHJlcy5fcG9seSwgbiwgMSkKKyAgICAgICAgICAgICAgICAgZWxzZToKKy0gICAgICAgICAgICAg ICAgICAgIGZtcHFfcG9seV9wb3cocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIG4pCisrICAgICAg ICAgICAgICAgICAgICBmbXBxX3BvbHlfcG93KHJlcy5fcG9seSwgc2VsZi5fcG9seSwgbikKKyAg ICAgICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAgICAgICAgICAgIHJldHVybiByZXMKKyAK K0BAIC0xMzI4LDEwICsxMzI4LDEwIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9m bGludChQb2x5bm9taWFsKToKKyAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHJpZ2h0LCBQb2x5 bm9taWFsX3JhdGlvbmFsX2ZsaW50KToKKyAgICAgICAgICAgICBpZiByaWdodCBpbiBRUToKKyAg ICAgICAgICAgICAgICAgcmVzID0gc2VsZi5fbmV3KCkKKy0gICAgICAgICAgICAgICAgZG9fc2ln ID0gX2RvX3NpZyhzZWxmLl9fcG9seSkKKysgICAgICAgICAgICAgICAgZG9fc2lnID0gX2RvX3Np ZyhzZWxmLl9wb2x5KQorIAorICAgICAgICAgICAgICAgICBpZiBkb19zaWc6IHNpZ19zdHIoIkZM SU5UIGV4Y2VwdGlvbiIpCistICAgICAgICAgICAgICAgIGZtcHFfcG9seV9zY2FsYXJfZGl2X21w cShyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwKKysgICAgICAgICAgICAgICAgZm1wcV9wb2x5X3Nj YWxhcl9kaXZfbXBxKHJlcy5fcG9seSwgc2VsZi5fcG9seSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg8UmF0aW9uYWw+IFFRKHJpZ2h0KSkudmFs dWUpCisgICAgICAgICAgICAgICAgIGlmIGRvX3NpZzogc2lnX29mZigpCisgICAgICAgICAgICAg ICAgIHJldHVybiByZXMKK0BAIC0xMzQwLDggKzEzNDAsOCBAQCBjZGVmIGNsYXNzIFBvbHlub21p YWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgCisgICAgICAgICByZXMgPSBzZWxmLl9u ZXcoKQorICAgICAgICAgc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAgICAgIGZtcHFf cG9seV9kaXYocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9yYXRpb25hbF9mbGludD5yaWdodCkuX19wb2x5 KQorKyAgICAgICAgZm1wcV9wb2x5X2RpdihyZXMuX3BvbHksIHNlbGYuX3BvbHksCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9yYXRpb25hbF9mbGlu dD5yaWdodCkuX3BvbHkpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMK KyAKK0BAIC0xMzgxLDE1ICsxMzgxLDE1IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25h bF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgaWYgcHJlYyA8PSAw OgorICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInRoZSBwcmVjaXNpb24gbXVzdCBiZSBw b3NpdGl2ZSwgZ290IHt9Ii5mb3JtYXQocHJlYykpCistICAgICAgICBpZiBmbXBxX3BvbHlfZGVn cmVlKHNlbGYuX19wb2x5KSA9PSAtMSBvciBcCistICAgICAgICAgICBmbXB6X2lzX3plcm8oZm1w cV9wb2x5X251bXJlZihzZWxmLl9fcG9seSkpOgorKyAgICAgICAgaWYgZm1wcV9wb2x5X2RlZ3Jl ZShzZWxmLl9wb2x5KSA9PSAtMSBvciBcCisrICAgICAgICAgICBmbXB6X2lzX3plcm8oZm1wcV9w b2x5X251bXJlZihzZWxmLl9wb2x5KSk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigi Y29uc3RhbnQgdGVybSBpcyB6ZXJvIikKKyAKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9yYXRp b25hbF9mbGludCByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgaWYgcHJlYyA8PSAwOgorICAg ICAgICAgICAgIHJldHVybiByZXMKKyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBmbXBxX3Bv bHlfaW52X3NlcmllcyhyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgcHJlYykKKysgICAgICAgIGZt cHFfcG9seV9pbnZfc2VyaWVzKHJlcy5fcG9seSwgc2VsZi5fcG9seSwgcHJlYykKKyAgICAgICAg IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTE0MjMsOCArMTQyMyw4IEBA IGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAKKyAg ICAgICAgIHJlcyA9IHNlbGYuX25ldygpCisgICAgICAgICBzaWdfc3RyKCJGTElOVCBleGNlcHRp b24iKQorLSAgICAgICAgZm1wcV9wb2x5X3JlbShyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX3JhdGlvbmFs X2ZsaW50PnJpZ2h0KS5fX3BvbHkpCisrICAgICAgICBmbXBxX3BvbHlfcmVtKHJlcy5fcG9seSwg c2VsZi5fcG9seSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDxQb2x5 bm9taWFsX3JhdGlvbmFsX2ZsaW50PnJpZ2h0KS5fcG9seSkKKyAgICAgICAgIHNpZ19vZmYoKQor ICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTE0NTMsNyArMTQ1Myw3IEBAIGNkZWYgY2xhc3Mg UG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgIFBvbHlub21p YWxfaW50ZWdlcl9kZW5zZV9mbGludC5fX2luaXRfXyhudW0sIHBhcmVudCwgeD1Ob25lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrPUZhbHNlLCBpc19nZW49RmFs c2UsIGNvbnN0cnVjdD1GYWxzZSkKKyAgICAgICAgIHNpZ19zdHIoIkZMSU5UIGV4Y2VwdGlvbiIp CistICAgICAgICBmbXBxX3BvbHlfZ2V0X251bWVyYXRvcihudW0uX19wb2x5LCBzZWxmLl9fcG9s eSkKKysgICAgICAgIGZtcHFfcG9seV9nZXRfbnVtZXJhdG9yKG51bS5fcG9seSwgc2VsZi5fcG9s eSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIG51bQorIAorQEAgLTE0Njks MTAgKzE0NjksMTAgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlu b21pYWwpOgorICAgICAgICAgICAgIDMKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBJbnRl Z2VyIGRlbiA9IEludGVnZXIuX19uZXdfXyhJbnRlZ2VyKQorLSAgICAgICAgaWYgZm1wcV9wb2x5 X2RlbnJlZihzZWxmLl9fcG9seSkgaXMgTlVMTDoKKysgICAgICAgIGlmIGZtcHFfcG9seV9kZW5y ZWYoc2VsZi5fcG9seSkgaXMgTlVMTDoKKyAgICAgICAgICAgICBtcHpfc2V0X3VpKGRlbi52YWx1 ZSwgMSkKKyAgICAgICAgIGVsc2U6CistICAgICAgICAgICAgZm1wel9nZXRfbXB6KGRlbi52YWx1 ZSwgPGZtcHogKj4gZm1wcV9wb2x5X2RlbnJlZihzZWxmLl9fcG9seSkpCisrICAgICAgICAgICAg Zm1wel9nZXRfbXB6KGRlbi52YWx1ZSwgPGZtcHogKj4gZm1wcV9wb2x5X2RlbnJlZihzZWxmLl9w b2x5KSkKKyAgICAgICAgIHJldHVybiBkZW4KKyAKKyAgICAgZGVmIF9kZXJpdmF0aXZlKHNlbGYs IHZhciA9IE5vbmUpOgorQEAgLTE1MTcsMTAgKzE1MTcsMTAgQEAgY2RlZiBjbGFzcyBQb2x5bm9t aWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHJhaXNlIFZhbHVl RXJyb3IoImNhbm5vdCBkaWZmZXJlbnRpYXRlIHdpdGggcmVzcGVjdCB0byB7fSIuZm9ybWF0KHZh cikpCisgCisgICAgICAgICBkZXIgPSBzZWxmLl9uZXcoKQorLSAgICAgICAgZG9fc2lnID0gX2Rv X3NpZyhzZWxmLl9fcG9seSkKKysgICAgICAgIGRvX3NpZyA9IF9kb19zaWcoc2VsZi5fcG9seSkK KyAKKyAgICAgICAgIGlmIGRvX3NpZzogc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAg ICAgIGZtcHFfcG9seV9kZXJpdmF0aXZlKGRlci5fX3BvbHksIHNlbGYuX19wb2x5KQorKyAgICAg ICAgZm1wcV9wb2x5X2Rlcml2YXRpdmUoZGVyLl9wb2x5LCBzZWxmLl9wb2x5KQorICAgICAgICAg aWYgZG9fc2lnOiBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiBkZXIKKyAKK0BAIC0xNTc0LDgg KzE1NzQsOCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlh bCk6CisgICAgICAgICBjZGVmIGZtcHFfdCB0CisgICAgICAgICBmbXBxX2luaXQodCkKKyAgICAg ICAgIHNpZ19zdHIoIkZMSU5UIGV4Y2VwdGlvbiIpCistICAgICAgICBmbXBxX3BvbHlfcmVzdWx0 YW50KHQsIHNlbGYuX19wb2x5LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPFBvbHlu b21pYWxfcmF0aW9uYWxfZmxpbnQ+cmlnaHQpLl9fcG9seSkKKysgICAgICAgIGZtcHFfcG9seV9y ZXN1bHRhbnQodCwgc2VsZi5fcG9seSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDxQ b2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50PnJpZ2h0KS5fcG9seSkKKyAgICAgICAgIGZtcHFfZ2V0 X21wcShyZXMudmFsdWUsIHQpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIGZtcHFfY2xl YXIodCkKK0BAIC0xNjIzLDcgKzE2MjMsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9u YWxfZmxpbnQoUG9seW5vbWlhbCk6CisgCisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUG9s eW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50IHByaW1pdGl2ZQorLSAgICAgICAgY2RlZiB1bnNp Z25lZCBsb25nIGxlbmd0aCA9IGZtcHFfcG9seV9sZW5ndGgoc2VsZi5fX3BvbHkpCisrICAgICAg ICBjZGVmIHVuc2lnbmVkIGxvbmcgbGVuZ3RoID0gZm1wcV9wb2x5X2xlbmd0aChzZWxmLl9wb2x5 KQorIAorICAgICAgICAgaWYgbGVuZ3RoIDwgMjoKKyAgICAgICAgICAgICByZXR1cm4gRmFsc2UK K0BAIC0xNjM2LDggKzE2MzYsOCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxp bnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4PU5vbmUsIGNo ZWNrPVRydWUsIGlzX2dlbj1GYWxzZSwgY29uc3RydWN0PUZhbHNlKQorIAorICAgICAgICAgICAg IHNpZ19zdHIoIkZMSU5UIGV4Y2VwdGlvbiIpCistICAgICAgICAgICAgZm1wcV9wb2x5X2dldF9u dW1lcmF0b3IocHJpbWl0aXZlLl9fcG9seSwgc2VsZi5fX3BvbHkpCistICAgICAgICAgICAgZm1w el9wb2x5X3ByaW1pdGl2ZV9wYXJ0KHByaW1pdGl2ZS5fX3BvbHksIHByaW1pdGl2ZS5fX3BvbHkp CisrICAgICAgICAgICAgZm1wcV9wb2x5X2dldF9udW1lcmF0b3IocHJpbWl0aXZlLl9wb2x5LCBz ZWxmLl9wb2x5KQorKyAgICAgICAgICAgIGZtcHpfcG9seV9wcmltaXRpdmVfcGFydChwcmltaXRp dmUuX3BvbHksIHByaW1pdGl2ZS5fcG9seSkKKyAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAg ICAgICAgICByZXR1cm4gcHJpbWl0aXZlLmlzX2lycmVkdWNpYmxlKCkKKyAKK0BAIC0xNjY5LDE0 ICsxNjY5LDE0IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9t aWFsKToKKyAgICAgICAgICAgICAuLi4KKyAgICAgICAgICAgICBWYWx1ZUVycm9yOiBjb25zdGFu dCB0ZXJtIHNob3VsZCBiZSAxIGluIG9yZGVyIHRvIHRha2UgbG9nYXJpdGhtCisgICAgICAgICAi IiIKKy0gICAgICAgIGlmIGZtcHFfcG9seV9kZWdyZWUoc2VsZi5fX3BvbHkpID09IC0xIG9yIFwK Ky0gICAgICAgICAgIGZtcHpfY21wKGZtcHFfcG9seV9udW1yZWYoc2VsZi5fX3BvbHkpLAorLSAg ICAgICAgICAgICAgICAgICAgZm1wcV9wb2x5X2RlbnJlZihzZWxmLl9fcG9seSkpOgorKyAgICAg ICAgaWYgZm1wcV9wb2x5X2RlZ3JlZShzZWxmLl9wb2x5KSA9PSAtMSBvciBcCisrICAgICAgICAg ICBmbXB6X2NtcChmbXBxX3BvbHlfbnVtcmVmKHNlbGYuX3BvbHkpLAorKyAgICAgICAgICAgICAg ICAgICAgZm1wcV9wb2x5X2RlbnJlZihzZWxmLl9wb2x5KSk6CisgICAgICAgICAgICAgcmFpc2Ug VmFsdWVFcnJvcigiY29uc3RhbnQgdGVybSBzaG91bGQgYmUgMSBpbiBvcmRlciB0byB0YWtlIGxv Z2FyaXRobSIpCisgCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQgcmVz ID0gc2VsZi5fbmV3KCkKKyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBmbXBxX3BvbHlfbG9n X3NlcmllcyhyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgcHJlYykKKysgICAgICAgIGZtcHFfcG9s eV9sb2dfc2VyaWVzKHJlcy5fcG9seSwgc2VsZi5fcG9seSwgcHJlYykKKyAgICAgICAgIHNpZ19v ZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTE3MDMsMTQgKzE3MDMsMTQgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAg ICAgIHNhZ2U6IF8ucGFyZW50KCkKKyAgICAgICAgICAgICBVbml2YXJpYXRlIFBvbHlub21pYWwg UmluZyBpbiB4IG92ZXIgUmF0aW9uYWwgRmllbGQKKyAgICAgICAgICIiIgorLSAgICAgICAgaWYg Zm1wcV9wb2x5X2RlZ3JlZShzZWxmLl9fcG9seSkgPT0gLTE6CisrICAgICAgICBpZiBmbXBxX3Bv bHlfZGVncmVlKHNlbGYuX3BvbHkpID09IC0xOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLl9w YXJlbnQub25lKCkKKy0gICAgICAgIGVsaWYgbm90IGZtcHpfaXNfemVybyhmbXBxX3BvbHlfbnVt cmVmKHNlbGYuX19wb2x5KSk6CisrICAgICAgICBlbGlmIG5vdCBmbXB6X2lzX3plcm8oZm1wcV9w b2x5X251bXJlZihzZWxmLl9wb2x5KSk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigi Y29uc3RhbnQgdGVybSBzaG91bGQgYmUgMCBpbiBvcmRlciB0byB0YWtlIGV4cG9uZW50aWFsIikK KyAKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludCByZXMgPSBzZWxmLl9u ZXcoKQorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGZtcHFfcG9seV9leHBfc2VyaWVzKHJl cy5fX3BvbHksIHNlbGYuX19wb2x5LCBwcmVjKQorKyAgICAgICAgZm1wcV9wb2x5X2V4cF9zZXJp ZXMocmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBwcmVjKQorICAgICAgICAgc2lnX29mZigpCisgICAg ICAgICByZXR1cm4gcmVzCisgCitAQCAtMTczNywxNCArMTczNywxNCBAQCBjZGVmIGNsYXNzIFBv bHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgc2FnZTog Xy5wYXJlbnQoKQorICAgICAgICAgICAgIFVuaXZhcmlhdGUgUG9seW5vbWlhbCBSaW5nIGluIHgg b3ZlciBSYXRpb25hbCBGaWVsZAorICAgICAgICAgIiIiCistICAgICAgICBpZiBmbXBxX3BvbHlf ZGVncmVlKHNlbGYuX19wb2x5KSA9PSAtMToKKysgICAgICAgIGlmIGZtcHFfcG9seV9kZWdyZWUo c2VsZi5fcG9seSkgPT0gLTE6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmVudC56ZXJv KCkKKy0gICAgICAgIGVsaWYgbm90IGZtcHpfaXNfemVybyhmbXBxX3BvbHlfbnVtcmVmKHNlbGYu X19wb2x5KSk6CisrICAgICAgICBlbGlmIG5vdCBmbXB6X2lzX3plcm8oZm1wcV9wb2x5X251bXJl ZihzZWxmLl9wb2x5KSk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY29uc3RhbnQg dGVybSBzaG91bGQgYmUgMCBpbiBvcmRlciB0byB0YWtlIGFyY3RhbmdlbnQiKQorIAorICAgICAg ICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJlcyA9IHNlbGYuX25ldygpCisgICAg ICAgICBzaWdfb24oKQorLSAgICAgICAgZm1wcV9wb2x5X2F0YW5fc2VyaWVzKHJlcy5fX3BvbHks IHNlbGYuX19wb2x5LCBwcmVjKQorKyAgICAgICAgZm1wcV9wb2x5X2F0YW5fc2VyaWVzKHJlcy5f cG9seSwgc2VsZi5fcG9seSwgcHJlYykKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0 dXJuIHJlcworIAorQEAgLTE3NjgsMTQgKzE3NjgsMTQgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFs X3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHNhZ2U6IF8ucGFyZW50 KCkKKyAgICAgICAgICAgICBVbml2YXJpYXRlIFBvbHlub21pYWwgUmluZyBpbiB4IG92ZXIgUmF0 aW9uYWwgRmllbGQKKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgZm1wcV9wb2x5X2RlZ3JlZShz ZWxmLl9fcG9seSkgPT0gLTE6CisrICAgICAgICBpZiBmbXBxX3BvbHlfZGVncmVlKHNlbGYuX3Bv bHkpID09IC0xOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQuemVybygpCistICAg ICAgICBlbGlmIG5vdCBmbXB6X2lzX3plcm8oZm1wcV9wb2x5X251bXJlZihzZWxmLl9fcG9seSkp OgorKyAgICAgICAgZWxpZiBub3QgZm1wel9pc196ZXJvKGZtcHFfcG9seV9udW1yZWYoc2VsZi5f cG9seSkpOgorICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImNvbnN0YW50IHRlcm0gc2hv dWxkIGJlIDAgaW4gb3JkZXIgdG8gdGFrZSBoeXBlcmJvbGljIGFyY3RhbmdlbnQiKQorIAorICAg ICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJlcyA9IHNlbGYuX25ldygpCisg ICAgICAgICBzaWdfb24oKQorLSAgICAgICAgZm1wcV9wb2x5X2F0YW5oX3NlcmllcyhyZXMuX19w b2x5LCBzZWxmLl9fcG9seSwgcHJlYykKKysgICAgICAgIGZtcHFfcG9seV9hdGFuaF9zZXJpZXMo cmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBwcmVjKQorICAgICAgICAgc2lnX29mZigpCisgICAgICAg ICByZXR1cm4gcmVzCisgCitAQCAtMTgwMiwxNCArMTgwMiwxNCBAQCBjZGVmIGNsYXNzIFBvbHlu b21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgc2FnZTogXy5w YXJlbnQoKQorICAgICAgICAgICAgIFVuaXZhcmlhdGUgUG9seW5vbWlhbCBSaW5nIGluIHggb3Zl ciBSYXRpb25hbCBGaWVsZAorICAgICAgICAgIiIiCistICAgICAgICBpZiBmbXBxX3BvbHlfZGVn cmVlKHNlbGYuX19wb2x5KSA9PSAtMToKKysgICAgICAgIGlmIGZtcHFfcG9seV9kZWdyZWUoc2Vs Zi5fcG9seSkgPT0gLTE6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmVudC56ZXJvKCkK Ky0gICAgICAgIGVsaWYgbm90IGZtcHpfaXNfemVybyhmbXBxX3BvbHlfbnVtcmVmKHNlbGYuX19w b2x5KSk6CisrICAgICAgICBlbGlmIG5vdCBmbXB6X2lzX3plcm8oZm1wcV9wb2x5X251bXJlZihz ZWxmLl9wb2x5KSk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY29uc3RhbnQgdGVy bSBzaG91bGQgYmUgMCBpbiBvcmRlciB0byB0YWtlIGFyY3NpbmUiKQorIAorICAgICAgICAgY2Rl ZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJlcyA9IHNlbGYuX25ldygpCisgICAgICAgICBz aWdfb24oKQorLSAgICAgICAgZm1wcV9wb2x5X2FzaW5fc2VyaWVzKHJlcy5fX3BvbHksIHNlbGYu X19wb2x5LCBwcmVjKQorKyAgICAgICAgZm1wcV9wb2x5X2FzaW5fc2VyaWVzKHJlcy5fcG9seSwg c2VsZi5fcG9seSwgcHJlYykKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJl cworIAorQEAgLTE4MzcsMTQgKzE4MzcsMTQgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlv bmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHNhZ2U6IF8ucGFyZW50KCkKKyAg ICAgICAgICAgICBVbml2YXJpYXRlIFBvbHlub21pYWwgUmluZyBpbiB4IG92ZXIgUmF0aW9uYWwg RmllbGQKKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgZm1wcV9wb2x5X2RlZ3JlZShzZWxmLl9f cG9seSkgPT0gLTE6CisrICAgICAgICBpZiBmbXBxX3BvbHlfZGVncmVlKHNlbGYuX3BvbHkpID09 IC0xOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQuemVybygpCistICAgICAgICBl bGlmIG5vdCBmbXB6X2lzX3plcm8oZm1wcV9wb2x5X251bXJlZihzZWxmLl9fcG9seSkpOgorKyAg ICAgICAgZWxpZiBub3QgZm1wel9pc196ZXJvKGZtcHFfcG9seV9udW1yZWYoc2VsZi5fcG9seSkp OgorICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImNvbnN0YW50IHRlcm0gc2hvdWxkIGJl IDAgaW4gb3JkZXIgdG8gdGFrZSBoeXBlcmJvbGljIGFyY3NpbmUiKQorIAorICAgICAgICAgY2Rl ZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJlcyA9IHNlbGYuX25ldygpCisgICAgICAgICBz aWdfb24oKQorLSAgICAgICAgZm1wcV9wb2x5X2FzaW5oX3NlcmllcyhyZXMuX19wb2x5LCBzZWxm Ll9fcG9seSwgcHJlYykKKysgICAgICAgIGZtcHFfcG9seV9hc2luaF9zZXJpZXMocmVzLl9wb2x5 LCBzZWxmLl9wb2x5LCBwcmVjKQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4g cmVzCisgCitAQCAtMTg3MSwxNCArMTg3MSwxNCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0 aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgc2FnZTogXy5wYXJlbnQoKQor ICAgICAgICAgICAgIFVuaXZhcmlhdGUgUG9seW5vbWlhbCBSaW5nIGluIHggb3ZlciBSYXRpb25h bCBGaWVsZAorICAgICAgICAgIiIiCistICAgICAgICBpZiBmbXBxX3BvbHlfZGVncmVlKHNlbGYu X19wb2x5KSA9PSAtMToKKysgICAgICAgIGlmIGZtcHFfcG9seV9kZWdyZWUoc2VsZi5fcG9seSkg PT0gLTE6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmVudC56ZXJvKCkKKy0gICAgICAg IGVsaWYgbm90IGZtcHpfaXNfemVybyhmbXBxX3BvbHlfbnVtcmVmKHNlbGYuX19wb2x5KSk6Cisr ICAgICAgICBlbGlmIG5vdCBmbXB6X2lzX3plcm8oZm1wcV9wb2x5X251bXJlZihzZWxmLl9wb2x5 KSk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY29uc3RhbnQgdGVybSBzaG91bGQg YmUgMCBpbiBvcmRlciB0byB0YWtlIHRhbmdlbnQiKQorIAorICAgICAgICAgY2RlZiBQb2x5bm9t aWFsX3JhdGlvbmFsX2ZsaW50IHJlcyA9IHNlbGYuX25ldygpCisgICAgICAgICBzaWdfb24oKQor LSAgICAgICAgZm1wcV9wb2x5X3Rhbl9zZXJpZXMocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIHBy ZWMpCisrICAgICAgICBmbXBxX3BvbHlfdGFuX3NlcmllcyhyZXMuX3BvbHksIHNlbGYuX3BvbHks IHByZWMpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKK0BAIC0x OTA1LDE0ICsxOTA1LDE0IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQ b2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdlOiBfLnBhcmVudCgpCisgICAgICAgICAgICAg VW5pdmFyaWF0ZSBQb2x5bm9taWFsIFJpbmcgaW4geCBvdmVyIFJhdGlvbmFsIEZpZWxkCisgICAg ICAgICAiIiIKKy0gICAgICAgIGlmIGZtcHFfcG9seV9kZWdyZWUoc2VsZi5fX3BvbHkpID09IC0x OgorKyAgICAgICAgaWYgZm1wcV9wb2x5X2RlZ3JlZShzZWxmLl9wb2x5KSA9PSAtMToKKyAgICAg ICAgICAgICByZXR1cm4gc2VsZi5fcGFyZW50Lnplcm8oKQorLSAgICAgICAgZWxpZiBub3QgZm1w el9pc196ZXJvKGZtcHFfcG9seV9udW1yZWYoc2VsZi5fX3BvbHkpKToKKysgICAgICAgIGVsaWYg bm90IGZtcHpfaXNfemVybyhmbXBxX3BvbHlfbnVtcmVmKHNlbGYuX3BvbHkpKToKKyAgICAgICAg ICAgICByYWlzZSBWYWx1ZUVycm9yKCJjb25zdGFudCB0ZXJtIHNob3VsZCBiZSAwIGluIG9yZGVy IHRvIHRha2Ugc2luZSIpCisgCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxfZmxp bnQgcmVzID0gc2VsZi5fbmV3KCkKKyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBmbXBxX3Bv bHlfc2luX3NlcmllcyhyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgcHJlYykKKysgICAgICAgIGZt cHFfcG9seV9zaW5fc2VyaWVzKHJlcy5fcG9seSwgc2VsZi5fcG9seSwgcHJlYykKKyAgICAgICAg IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTE5MzcsMTQgKzE5MzcsMTQg QEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAg ICAgICAgICAgIHNhZ2U6IF8ucGFyZW50KCkKKyAgICAgICAgICAgICBVbml2YXJpYXRlIFBvbHlu b21pYWwgUmluZyBpbiB4IG92ZXIgUmF0aW9uYWwgRmllbGQKKyAgICAgICAgICIiIgorLSAgICAg ICAgaWYgZm1wcV9wb2x5X2RlZ3JlZShzZWxmLl9fcG9seSkgPT0gLTE6CisrICAgICAgICBpZiBm bXBxX3BvbHlfZGVncmVlKHNlbGYuX3BvbHkpID09IC0xOgorICAgICAgICAgICAgIHJldHVybiBz ZWxmLl9wYXJlbnQuemVybygpCistICAgICAgICBlbGlmIG5vdCBmbXB6X2lzX3plcm8oZm1wcV9w b2x5X251bXJlZihzZWxmLl9fcG9seSkpOgorKyAgICAgICAgZWxpZiBub3QgZm1wel9pc196ZXJv KGZtcHFfcG9seV9udW1yZWYoc2VsZi5fcG9seSkpOgorICAgICAgICAgICAgIHJhaXNlIFZhbHVl RXJyb3IoImNvbnN0YW50IHRlcm0gc2hvdWxkIGJlIDAgaW4gb3JkZXIgdG8gdGFrZSBjb3NpbmUi KQorIAorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJlcyA9IHNlbGYu X25ldygpCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgZm1wcV9wb2x5X2Nvc19zZXJpZXMo cmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIHByZWMpCisrICAgICAgICBmbXBxX3BvbHlfY29zX3Nl cmllcyhyZXMuX3BvbHksIHNlbGYuX3BvbHksIHByZWMpCisgICAgICAgICBzaWdfb2ZmKCkKKyAg ICAgICAgIHJldHVybiByZXMKKyAKK0BAIC0xOTY5LDE0ICsxOTY5LDE0IEBAIGNkZWYgY2xhc3Mg UG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdl OiBfLnBhcmVudCgpCisgICAgICAgICAgICAgVW5pdmFyaWF0ZSBQb2x5bm9taWFsIFJpbmcgaW4g eCBvdmVyIFJhdGlvbmFsIEZpZWxkCisgICAgICAgICAiIiIKKy0gICAgICAgIGlmIGZtcHFfcG9s eV9kZWdyZWUoc2VsZi5fX3BvbHkpID09IC0xOgorKyAgICAgICAgaWYgZm1wcV9wb2x5X2RlZ3Jl ZShzZWxmLl9wb2x5KSA9PSAtMToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fcGFyZW50Lnpl cm8oKQorLSAgICAgICAgZWxpZiBub3QgZm1wel9pc196ZXJvKGZtcHFfcG9seV9udW1yZWYoc2Vs Zi5fX3BvbHkpKToKKysgICAgICAgIGVsaWYgbm90IGZtcHpfaXNfemVybyhmbXBxX3BvbHlfbnVt cmVmKHNlbGYuX3BvbHkpKToKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJjb25zdGFu dCB0ZXJtIHNob3VsZCBiZSAwIGluIG9yZGVyIHRvIHRha2UgaHlwZXJib2xpYyBzaW5lIikKKyAK KyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludCByZXMgPSBzZWxmLl9uZXco KQorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGZtcHFfcG9seV9zaW5oX3NlcmllcyhyZXMu X19wb2x5LCBzZWxmLl9fcG9seSwgcHJlYykKKysgICAgICAgIGZtcHFfcG9seV9zaW5oX3Nlcmll cyhyZXMuX3BvbHksIHNlbGYuX3BvbHksIHByZWMpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAg ICAgIHJldHVybiByZXMKKyAKK0BAIC0yMDA3LDE0ICsyMDA3LDE0IEBAIGNkZWYgY2xhc3MgUG9s eW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdlOiBf LnBhcmVudCgpCisgICAgICAgICAgICAgVW5pdmFyaWF0ZSBQb2x5bm9taWFsIFJpbmcgaW4geCBv dmVyIFJhdGlvbmFsIEZpZWxkCisgICAgICAgICAiIiIKKy0gICAgICAgIGlmIGZtcHFfcG9seV9k ZWdyZWUoc2VsZi5fX3BvbHkpID09IC0xOgorKyAgICAgICAgaWYgZm1wcV9wb2x5X2RlZ3JlZShz ZWxmLl9wb2x5KSA9PSAtMToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fcGFyZW50Lm9uZSgp CistICAgICAgICBlbGlmIG5vdCBmbXB6X2lzX3plcm8oZm1wcV9wb2x5X251bXJlZihzZWxmLl9f cG9seSkpOgorKyAgICAgICAgZWxpZiBub3QgZm1wel9pc196ZXJvKGZtcHFfcG9seV9udW1yZWYo c2VsZi5fcG9seSkpOgorICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImNvbnN0YW50IHRl cm0gc2hvdWxkIGJlIDAgaW4gb3JkZXIgdG8gdGFrZSBoeXBlcmJvbGljIGNvc2luZSIpCisgCisg ICAgICAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQgcmVzID0gc2VsZi5fbmV3KCkK KyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBmbXBxX3BvbHlfY29zaF9zZXJpZXMocmVzLl9f cG9seSwgc2VsZi5fX3BvbHksIHByZWMpCisrICAgICAgICBmbXBxX3BvbHlfY29zaF9zZXJpZXMo cmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBwcmVjKQorICAgICAgICAgc2lnX29mZigpCisgICAgICAg ICByZXR1cm4gcmVzCisgCitAQCAtMjA0MCwxNCArMjA0MCwxNCBAQCBjZGVmIGNsYXNzIFBvbHlu b21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgc2FnZTogXy5w YXJlbnQoKQorICAgICAgICAgICAgIFVuaXZhcmlhdGUgUG9seW5vbWlhbCBSaW5nIGluIHggb3Zl ciBSYXRpb25hbCBGaWVsZAorICAgICAgICAgIiIiCistICAgICAgICBpZiBmbXBxX3BvbHlfZGVn cmVlKHNlbGYuX19wb2x5KSA9PSAtMToKKysgICAgICAgIGlmIGZtcHFfcG9seV9kZWdyZWUoc2Vs Zi5fcG9seSkgPT0gLTE6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmVudC56ZXJvKCkK Ky0gICAgICAgIGVsaWYgbm90IGZtcHpfaXNfemVybyhmbXBxX3BvbHlfbnVtcmVmKHNlbGYuX19w b2x5KSk6CisrICAgICAgICBlbGlmIG5vdCBmbXB6X2lzX3plcm8oZm1wcV9wb2x5X251bXJlZihz ZWxmLl9wb2x5KSk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY29uc3RhbnQgdGVy bSBzaG91bGQgYmUgMCBpbiBvcmRlciB0byB0YWtlIGh5cGVyYm9saWMgdGFuZ2VudCIpCisgCisg ICAgICAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQgcmVzID0gc2VsZi5fbmV3KCkK KyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBmbXBxX3BvbHlfdGFuaF9zZXJpZXMocmVzLl9f cG9seSwgc2VsZi5fX3BvbHksIHByZWMpCisrICAgICAgICBmbXBxX3BvbHlfdGFuaF9zZXJpZXMo cmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBwcmVjKQorICAgICAgICAgc2lnX29mZigpCisgICAgICAg ICByZXR1cm4gcmVzCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9w b2x5bm9taWFsX3JlYWxfbXBmcl9kZW5zZS5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFs L3BvbHlub21pYWxfcmVhbF9tcGZyX2RlbnNlLnB5eAoraW5kZXggZmJlOTZkMTg2YzUuLjk1NWY4 MzQ2OGU0IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFs X3JlYWxfbXBmcl9kZW5zZS5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9s eW5vbWlhbF9yZWFsX21wZnJfZGVuc2UucHl4CitAQCAtMTE2LDcgKzExNiw3IEBAIGNkZWYgY2xh c3MgUG9seW5vbWlhbFJlYWxEZW5zZShQb2x5bm9taWFsKToKKyAgICAgICAgIFBvbHlub21pYWwu X19pbml0X18oc2VsZiwgcGFyZW50LCBpc19nZW49aXNfZ2VuKQorICAgICAgICAgc2VsZi5fYmFz ZV9yaW5nID0gcGFyZW50Ll9iYXNlCisgICAgICAgICBjZGVmIFB5X3NzaXplX3QgaSwgZGVncmVl CistICAgICAgICBjZGVmIGludCBwcmVjID0gc2VsZi5fYmFzZV9yaW5nLl9fcHJlYworKyAgICAg ICAgY2RlZiBpbnQgcHJlYyA9IHNlbGYuX2Jhc2VfcmluZy5fcHJlYworICAgICAgICAgY2RlZiBt cGZyX3JuZF90IHJuZCA9IHNlbGYuX2Jhc2VfcmluZy5ybmQKKyAgICAgICAgIGlmIHggaXMgTm9u ZToKKyAgICAgICAgICAgICBzZWxmLl9jb2VmZnMgPSA8bXBmcl90Kj5jaGVja19hbGxvY2FycmF5 KDEsIHNpemVvZihtcGZyX3QpKSAjIGRlZ3JlZSB6ZXJvCitAQCAtMjI3LDcgKzIyNyw3IEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbFJlYWxEZW5zZShQb2x5bm9taWFsKToKKyAKKyAgICAgY2RlZiBQ b2x5bm9taWFsUmVhbERlbnNlIF9uZXcoc2VsZiwgUHlfc3NpemVfdCBkZWdyZWUpOgorICAgICAg ICAgY2RlZiBQeV9zc2l6ZV90IGkKKy0gICAgICAgIGNkZWYgaW50IHByZWMgPSBzZWxmLl9iYXNl X3JpbmcuX19wcmVjCisrICAgICAgICBjZGVmIGludCBwcmVjID0gc2VsZi5fYmFzZV9yaW5nLl9w cmVjCisgICAgICAgICBjZGVmIFBvbHlub21pYWxSZWFsRGVuc2UgZiA9IDxQb2x5bm9taWFsUmVh bERlbnNlPlBvbHlub21pYWxSZWFsRGVuc2UuX19uZXdfXyhQb2x5bm9taWFsUmVhbERlbnNlKQor ICAgICAgICAgZi5fcGFyZW50ID0gc2VsZi5fcGFyZW50CisgICAgICAgICBmLl9iYXNlX3Jpbmcg PSBzZWxmLl9iYXNlX3JpbmcKK0BAIC01MDEsNyArNTAxLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9t aWFsUmVhbERlbnNlKFBvbHlub21pYWwpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBm ID0gbGVmdC5fbmV3KGxlZnQuX2RlZ3JlZSArIHJpZ2h0Ll9kZWdyZWUpCisgICAgICAgICBzaWdf b24oKQorLSAgICAgICAgbXBmcl9pbml0Mih0bXAsIGxlZnQuX2Jhc2VfcmluZy5fX3ByZWMpCisr ICAgICAgICBtcGZyX2luaXQyKHRtcCwgbGVmdC5fYmFzZV9yaW5nLl9wcmVjKQorICAgICAgICAg Zm9yIGkgZnJvbSAwIDw9IGkgPD0gZi5fZGVncmVlOgorICAgICAgICAgICAgICMgWWVzLCB3ZSBj b3VsZCBtYWtlIHRoaXMgbW9yZSBlZmZpY2llbnQgYnkgaW5pdGlhbGl6aW5nIHdpdGgKKyAgICAg ICAgICAgICAjIGEgbXVsdGlwbGUgb2YgbGVmdCByYXRoZXIgdGhhbiBhbGwgemVyb3MuLi4KK0BA IC02NjEsNyArNjYxLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsUmVhbERlbnNlKFBvbHlub21p YWwpOgorICAgICAgICAgcSA9IHNlbGYuX25ldyhzZWxmLl9kZWdyZWUgLSBvdGhlci5fZGVncmVl KQorICAgICAgICAgIyBUaGlzIGlzIHRoZSBzdGFuZGFyZCBkaXZpc2lvbiBhbGdvcml0aG0KKyAg ICAgICAgIHNpZ19vbigpCistICAgICAgICBtcGZyX2luaXQyKHRtcCwgc2VsZi5fYmFzZV9yaW5n Ll9fcHJlYykKKysgICAgICAgIG1wZnJfaW5pdDIodG1wLCBzZWxmLl9iYXNlX3JpbmcuX3ByZWMp CisgICAgICAgICBmb3IgaSBmcm9tIHNlbGYuX2RlZ3JlZSA+PSBpID49IG90aGVyLl9kZWdyZWU6 CisgICAgICAgICAgICAgbXBmcl9zZXQocS5fY29lZmZzW2ktb3RoZXIuX2RlZ3JlZV0sIHIuX2Nv ZWZmc1tpXSwgcm5kKQorICAgICAgICAgICAgIGZvciBqIGZyb20gMCA8PSBqIDwgb3RoZXIuX2Rl Z3JlZToKK0BAIC03MjUsNyArNzI1LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsUmVhbERlbnNl KFBvbHlub21pYWwpOgorICAgICAgICAgY2RlZiBSZWFsTnVtYmVyIHggPSA8UmVhbE51bWJlcj54 eAorICAgICAgICAgY2RlZiBSZWFsTnVtYmVyIHJlcworIAorLSAgICAgICAgaWYgKDxSZWFsRmll bGRfY2xhc3M+eC5fcGFyZW50KS5fX3ByZWMgPCBzZWxmLl9iYXNlX3JpbmcuX19wcmVjOgorKyAg ICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+eC5fcGFyZW50KS5fcHJlYyA8IHNlbGYuX2Jhc2Vf cmluZy5fcHJlYzoKKyAgICAgICAgICAgICByZXMgPSBSZWFsTnVtYmVyKHguX3BhcmVudCkKKyAg ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmVzID0gUmVhbE51bWJlcihzZWxmLl9iYXNlX3Jp bmcpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX3pt b2RfZmxpbnQucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX3ptb2Rf ZmxpbnQucHl4CitpbmRleCAyNTNhYjk0OWZjYy4uNGM0ODA2NzM4NjEgMTAwNjQ0CistLS0gYS9z cmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfem1vZF9mbGludC5weXgKKysrKyBi L3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF96bW9kX2ZsaW50LnB5eAorQEAg LTExMCw3ICsxMTAsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfem1vZF9mbGludChQb2x5bm9t aWFsX3RlbXBsYXRlKToKKyAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgIGVsaWYgaXNpbnN0 YW5jZSh4LCBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQpOgorICAgICAgICAgICAgIFBv bHlub21pYWxfdGVtcGxhdGUuX19pbml0X18oc2VsZiwgcGFyZW50LCAwLCBjaGVjaywgaXNfZ2Vu LCBjb25zdHJ1Y3QpCistICAgICAgICAgICAgc2VsZi5fc2V0X2ZtcHpfcG9seSgoPFBvbHlub21p YWxfaW50ZWdlcl9kZW5zZV9mbGludD54KS5fX3BvbHkpCisrICAgICAgICAgICAgc2VsZi5fc2V0 X2ZtcHpfcG9seSgoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludD54KS5fcG9seSkKKyAg ICAgICAgICAgICByZXR1cm4KKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgaWYgaXNpbnN0 YW5jZSh4LCBudGxfenpfcFgpOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3Bvd2VyX3Nl cmllc19tcG9seS5weGQgYi9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNfbXBvbHkucHhkCitp bmRleCBmODIyZWNjMTIyNy4uZDM1OGFkYTEzNTYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5n cy9wb3dlcl9zZXJpZXNfbXBvbHkucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJp ZXNfbXBvbHkucHhkCitAQCAtMyw2ICszLDYgQEAgZnJvbSAucG93ZXJfc2VyaWVzX3JpbmdfZWxl bWVudCBjaW1wb3J0IFBvd2VyU2VyaWVzCisgCisgY2RlZiBjbGFzcyBQb3dlclNlcmllc19tcG9s eShQb3dlclNlcmllcyk6CisgICAgIGNkZWYgTW9kdWxlRWxlbWVudCBfX2YKKy0gICAgY2RlZiBv YmplY3QgX19wb2x5CisrICAgIGNkZWYgb2JqZWN0IF9wb2x5CisgICAgIGNkZWYgb2JqZWN0IF9f bGlzdAorICAgICBjZGVmIGJpbnQgX3RydW5jYXRlZAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3Jp bmdzL3Bvd2VyX3Nlcmllc19tcG9seS5weXggYi9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNf bXBvbHkucHl4CitpbmRleCAwYzkwMWEzNTU3Yi4uYmU1OTI5NGU3NWIgMTAwNjQ0CistLS0gYS9z cmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNfbXBvbHkucHl4CisrKysgYi9zcmMvc2FnZS9yaW5n cy9wb3dlcl9zZXJpZXNfbXBvbHkucHl4CitAQCAtNjUsNyArNjUsNyBAQCBjZGVmIGNsYXNzIFBv d2VyU2VyaWVzX21wb2x5KFBvd2VyU2VyaWVzKToKKyAKKyAgICAgZGVmIF9fcmVkdWNlX18oc2Vs Zik6CisgICAgICAgICAjIGRvICpub3QqIGRlbGV0ZSBvbGQgdmVyc2lvbnMuCistICAgICAgICBy ZXR1cm4gbWFrZV9wb3dlcnNlcmllc19tcG9seV92MCwgKHNlbGYuX3BhcmVudCwgc2VsZi5fX2Ys IHNlbGYuX3ByZWMsIHNlbGYuX19pc19nZW4pCisrICAgICAgICByZXR1cm4gbWFrZV9wb3dlcnNl cmllc19tcG9seV92MCwgKHNlbGYuX3BhcmVudCwgc2VsZi5fX2YsIHNlbGYuX3ByZWMsIHNlbGYu X2lzX2dlbikKKyAKKyAgICAgZGVmIF9fY2FsbF9fKHNlbGYsICphcmdzLCAqKmt3ZHMpOgorICAg ICAgICAgaWYgbGVuKGt3ZHMpID09IDAgYW5kIGxlbihhcmdzKSA9PSAxOgorQEAgLTkyLDEwICs5 MiwxMCBAQCBjZGVmIGNsYXNzIFBvd2VyU2VyaWVzX21wb2x5KFBvd2VyU2VyaWVzKToKKyAgICAg ICAgIHJldHVybiBzZWxmLl9fbGlzdAorIAorICAgICBkZWYgcG9seW5vbWlhbChzZWxmKToKKy0g ICAgICAgIGlmIHNlbGYuX19wb2x5IGlzIE5vbmU6CisrICAgICAgICBpZiBzZWxmLl9wb2x5IGlz IE5vbmU6CisgICAgICAgICAgICAgUyA9IHNlbGYucGFyZW50KCkuX21wb2x5X3JpbmcoKQorLSAg ICAgICAgICAgIHNlbGYuX19wb2x5ID0gc2VsZi5fX2YucG9seW5vbWlhbChTLmdlbnMoKVstMV0p CistICAgICAgICByZXR1cm4gc2VsZi5fX3BvbHkKKysgICAgICAgICAgICBzZWxmLl9wb2x5ID0g c2VsZi5fX2YucG9seW5vbWlhbChTLmdlbnMoKVstMV0pCisrICAgICAgICByZXR1cm4gc2VsZi5f cG9seQorIAorICAgICBkZWYgX21wb2x5KHNlbGYpOgorICAgICAgICAgcmV0dXJuIHNlbGYuX19m CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG93ZXJfc2VyaWVzX3BvbHkucHl4IGIvc3Jj L3NhZ2UvcmluZ3MvcG93ZXJfc2VyaWVzX3BvbHkucHl4CitpbmRleCA3YzkzMTY4ZDRiMS4uNmNh Y2FiMWYwYzggMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNfcG9seS5w eXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3Bvd2VyX3Nlcmllc19wb2x5LnB5eAorQEAgLTk3LDcg Kzk3LDcgQEAgY2RlZiBjbGFzcyBQb3dlclNlcmllc19wb2x5KFBvd2VyU2VyaWVzKToKKyAgICAg ICAgICAgICBzYWdlOiBmID09IGxvYWRzKGR1bXBzKGYpKSAjIGluZGlyZWN0IGRvY3Rlc3QKKyAg ICAgICAgICAgICBUcnVlCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBzZWxmLl9fY2xh c3NfXywgKHNlbGYuX3BhcmVudCwgc2VsZi5fX2YsIHNlbGYuX3ByZWMsIHNlbGYuX19pc19nZW4p CisrICAgICAgICByZXR1cm4gc2VsZi5fX2NsYXNzX18sIChzZWxmLl9wYXJlbnQsIHNlbGYuX19m LCBzZWxmLl9wcmVjLCBzZWxmLl9pc19nZW4pCisgCisgICAgIGRlZiBwb2x5bm9taWFsKHNlbGYp OgorICAgICAgICAgIiIiCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG93ZXJfc2VyaWVz X3JpbmdfZWxlbWVudC5weGQgYi9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNfcmluZ19lbGVt ZW50LnB4ZAoraW5kZXggMDY3YzRmM2M2ZDQuLmU1YzAzMWVlMTQ3IDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvcmluZ3MvcG93ZXJfc2VyaWVzX3JpbmdfZWxlbWVudC5weGQKKysrKyBiL3NyYy9zYWdl L3JpbmdzL3Bvd2VyX3Nlcmllc19yaW5nX2VsZW1lbnQucHhkCitAQCAtMSw3ICsxLDcgQEAKKyBm cm9tIHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQgY2ltcG9ydCBBbGdlYnJhRWxlbWVudCwgUmluZ0Vs ZW1lbnQKKyAKKyBjZGVmIGNsYXNzIFBvd2VyU2VyaWVzKEFsZ2VicmFFbGVtZW50KToKKy0gICAg Y2RlZiBjaGFyIF9faXNfZ2VuCisrICAgIGNkZWYgY2hhciBfaXNfZ2VuCisgICAgIGNkZWYgX3By ZWMKKyAgICAgY2RlZiBjb21tb25fcHJlY19jKHNlbGYsIFBvd2VyU2VyaWVzIG90aGVyKQorICAg ICAjX3ByZWMoc2VsZiwgUmluZ0VsZW1lbnQgcmlnaHRfcikKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9yaW5ncy9wb3dlcl9zZXJpZXNfcmluZ19lbGVtZW50LnB5eCBiL3NyYy9zYWdlL3JpbmdzL3Bv d2VyX3Nlcmllc19yaW5nX2VsZW1lbnQucHl4CitpbmRleCA1NDMxNGQ1MzhlZC4uZTVlMmRmNzll MWIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNfcmluZ19lbGVtZW50 LnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG93ZXJfc2VyaWVzX3JpbmdfZWxlbWVudC5weXgK K0BAIC0xNTksNyArMTU5LDcgQEAgY2RlZiBjbGFzcyBQb3dlclNlcmllcyhBbGdlYnJhRWxlbWVu dCk6CisgICAgICAgICAgICAgIG92ZXIgRmluaXRlIEZpZWxkIG9mIHNpemUgMworICAgICAgICAg IiIiCisgICAgICAgICBBbGdlYnJhRWxlbWVudC5fX2luaXRfXyhzZWxmLCBwYXJlbnQpCistICAg ICAgICBzZWxmLl9faXNfZ2VuID0gaXNfZ2VuCisrICAgICAgICBzZWxmLl9pc19nZW4gPSBpc19n ZW4KKyAgICAgICAgIHNlbGYuX3ByZWMgPSBwcmVjCisgCisgICAgIGRlZiBfX2hhc2hfXyhzZWxm KToKK0BAIC0yMzQsNyArMjM0LDcgQEAgY2RlZiBjbGFzcyBQb3dlclNlcmllcyhBbGdlYnJhRWxl bWVudCk6CisgICAgICAgICAgICAgc2FnZTogMSp0ID09IHQKKyAgICAgICAgICAgICBUcnVlCisg ICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBib29sKHNlbGYuX19pc19nZW4pCisrICAgICAg ICByZXR1cm4gYm9vbChzZWxmLl9pc19nZW4pCisgCisgICAgIGRlZiBfaW1fZ2Vuc18oc2VsZiwg Y29kb21haW4sIGltX2dlbnMsIGJhc2VfbWFwPU5vbmUpOgorICAgICAgICAgIiIiCitkaWZmIC0t Z2l0IGEvc3JjL3NhZ2UvcmluZ3MvcmVhbF9tcGZpLnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3JlYWxf bXBmaS5weGQKK2luZGV4IDk1OWE2NTBhYWZjLi40MjAxNzg4ZDE5OCAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL3JpbmdzL3JlYWxfbXBmaS5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3JlYWxfbXBm aS5weGQKK0BAIC0xMSw3ICsxMSw3IEBAIGZyb20gLnJlYWxfbXBmciBjaW1wb3J0IFJlYWxGaWVs ZF9jbGFzcworIGNkZWYgY2xhc3MgUmVhbEludGVydmFsRmllbGRFbGVtZW50KFJpbmdFbGVtZW50 KSAgIyBmb3J3YXJkIGRlY2wKKyAKKyBjZGVmIGNsYXNzIFJlYWxJbnRlcnZhbEZpZWxkX2NsYXNz KHNhZ2UucmluZ3MuYWJjLlJlYWxJbnRlcnZhbEZpZWxkKToKKy0gICAgY2RlZiBtcGZyX3ByZWNf dCBfX3ByZWMKKysgICAgY2RlZiBtcGZyX3ByZWNfdCBfcHJlYworICAgICBjZGVmIGJpbnQgc2Np X25vdAorICAgICAjIENhY2hlIFJlYWxGaWVsZCBpbnN0YW5jZXMgZm9yIHRoZSBsb3dlciwgdXBw ZXIsIGFuZCBtaWRkbGUgYm91bmRzLgorICAgICAjIFRoZXNlIGhhdmUgdGhlIHNhbWUgcHJlY2lz aW9uIGFzIHRoZSBpbnRlcnZhbCBmaWVsZDsKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9y ZWFsX21wZmkucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcmVhbF9tcGZpLnB5eAoraW5kZXggMTE5M2Ex NGJhZmYuLjUwOWY2ZjYzZGEwIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcmVhbF9tcGZp LnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcmVhbF9tcGZpLnB5eAorQEAgLTUyNiw3ICs1MjYs NyBAQCBjZGVmIGNsYXNzIFJlYWxJbnRlcnZhbEZpZWxkX2NsYXNzKHNhZ2UucmluZ3MuYWJjLlJl YWxJbnRlcnZhbEZpZWxkKToKKyAgICAgICAgIGlmIHByZWMgPCBNUEZSX1BSRUNfTUlOIG9yIHBy ZWMgPiBNUEZSX1BSRUNfTUFYOgorICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInByZWMg KD0lcykgbXVzdCBiZSA+PSAlcyBhbmQgPD0gJXMuIiAlICgKKyAgICAgICAgICAgICAgICAgcHJl YywgTVBGUl9QUkVDX01JTiwgTVBGUl9QUkVDX01BWCkpCistICAgICAgICBzZWxmLl9fcHJlYyA9 IHByZWMKKysgICAgICAgIHNlbGYuX3ByZWMgPSBwcmVjCisgICAgICAgICBzZWxmLnNjaV9ub3Qg PSBzY2lfbm90CisgICAgICAgICBzZWxmLl9fbG93ZXJfZmllbGQgPSBSZWFsRmllbGQocHJlYywg c2NpX25vdCwgIlJOREQiKQorICAgICAgICAgc2VsZi5fX21pZGRsZV9maWVsZCA9IFJlYWxGaWVs ZChwcmVjLCBzY2lfbm90LCAiUk5ETiIpCitAQCAtNTk4LDcgKzU5OCw3IEBAIGNkZWYgY2xhc3Mg UmVhbEludGVydmFsRmllbGRfY2xhc3Moc2FnZS5yaW5ncy5hYmMuUmVhbEludGVydmFsRmllbGQp OgorICAgICAgICAgZWxpZiBybmQgPT0gIlJORFUiOgorICAgICAgICAgICAgIHJldHVybiBzZWxm LnVwcGVyX2ZpZWxkKCkKKyAgICAgICAgIGVsc2U6CistICAgICAgICAgICAgcmV0dXJuIFJlYWxG aWVsZChzZWxmLl9fcHJlYywgc2VsZi5zY2lfbm90LCBybmQpCisrICAgICAgICAgICAgcmV0dXJu IFJlYWxGaWVsZChzZWxmLl9wcmVjLCBzZWxmLnNjaV9ub3QsIHJuZCkKKyAKKyAgICAgZGVmIF9y ZXByXyhzZWxmKToKKyAgICAgICAgICIiIgorQEAgLTYxMSw3ICs2MTEsNyBAQCBjZGVmIGNsYXNz IFJlYWxJbnRlcnZhbEZpZWxkX2NsYXNzKHNhZ2UucmluZ3MuYWJjLlJlYWxJbnRlcnZhbEZpZWxk KToKKyAgICAgICAgICAgICBzYWdlOiBSZWFsSW50ZXJ2YWxGaWVsZCgyMDApICMgaW5kaXJlY3Qg ZG9jdGVzdAorICAgICAgICAgICAgIFJlYWwgSW50ZXJ2YWwgRmllbGQgd2l0aCAyMDAgYml0cyBv ZiBwcmVjaXNpb24KKyAgICAgICAgICIiIgorLSAgICAgICAgcyA9ICJSZWFsIEludGVydmFsIEZp ZWxkIHdpdGggJXMgYml0cyBvZiBwcmVjaXNpb24iJXNlbGYuX19wcmVjCisrICAgICAgICBzID0g IlJlYWwgSW50ZXJ2YWwgRmllbGQgd2l0aCAlcyBiaXRzIG9mIHByZWNpc2lvbiIlc2VsZi5fcHJl YworICAgICAgICAgcmV0dXJuIHMKKyAKKyAgICAgZGVmIF9sYXRleF8oc2VsZik6CitAQCAtODAy LDcgKzgwMiw3IEBAIGNkZWYgY2xhc3MgUmVhbEludGVydmFsRmllbGRfY2xhc3Moc2FnZS5yaW5n cy5hYmMuUmVhbEludGVydmFsRmllbGQpOgorICAgICAgICAgICAgIHNhZ2U6IFJJRi5oYXNfY29l cmNlX21hcF9mcm9tKGZsb2F0KQorICAgICAgICAgICAgIEZhbHNlCisgICAgICAgICAiIiIKKy0g ICAgICAgIHByZWMgPSBzZWxmLl9fcHJlYworKyAgICAgICAgcHJlYyA9IHNlbGYuX3ByZWMKKyAK KyAgICAgICAgICMgRGlyZWN0IGFuZCBlZmZpY2llbnQgY29udmVyc2lvbnMKKyAgICAgICAgIGlm IFMgaXMgWlogb3IgUyBpcyBRUToKK0BAIC04MTAsNyArODEwLDcgQEAgY2RlZiBjbGFzcyBSZWFs SW50ZXJ2YWxGaWVsZF9jbGFzcyhzYWdlLnJpbmdzLmFiYy5SZWFsSW50ZXJ2YWxGaWVsZCk6Cisg ICAgICAgICBpZiBTIGlzIGludCBvciBTIGlzIGxvbmc6CisgICAgICAgICAgICAgcmV0dXJuIFRy dWUKKyAgICAgICAgIGlmIGlzaW5zdGFuY2UoUywgUmVhbEludGVydmFsRmllbGRfY2xhc3MpOgor LSAgICAgICAgICAgIHJldHVybiAoPFJlYWxJbnRlcnZhbEZpZWxkX2NsYXNzPlMpLl9fcHJlYyA+ PSBwcmVjCisrICAgICAgICAgICAgcmV0dXJuICg8UmVhbEludGVydmFsRmllbGRfY2xhc3M+Uyku X3ByZWMgPj0gcHJlYworICAgICAgICAgaWYgaXNpbnN0YW5jZShTLCBzYWdlLnJpbmdzLmFiYy5O dW1iZXJGaWVsZF9xdWFkcmF0aWMpOgorICAgICAgICAgICAgIHJldHVybiBTLmRpc2NyaW1pbmFu dCgpID4gMAorIAorQEAgLTg0NCw3ICs4NDQsNyBAQCBjZGVmIGNsYXNzIFJlYWxJbnRlcnZhbEZp ZWxkX2NsYXNzKHNhZ2UucmluZ3MuYWJjLlJlYWxJbnRlcnZhbEZpZWxkKToKKyAgICAgICAgIGNk ZWYgUmVhbEludGVydmFsRmllbGRfY2xhc3MgcmlnaHQKKyAgICAgICAgIGxlZnQgPSBzZWxmCisg ICAgICAgICByaWdodCA9IG90aGVyICAjIHRvIGFjY2VzcyBDIHN0cnVjdHVyZQorLSAgICAgICAg cmV0dXJuIHJpY2hjbXAobGVmdC5fX3ByZWMsIHJpZ2h0Ll9fcHJlYywgb3ApCisrICAgICAgICBy ZXR1cm4gcmljaGNtcChsZWZ0Ll9wcmVjLCByaWdodC5fcHJlYywgb3ApCisgCisgICAgIGRlZiBf X3JlZHVjZV9fKHNlbGYpOgorICAgICAgICAgIiIiCitAQCAtODU2LDcgKzg1Niw3IEBAIGNkZWYg Y2xhc3MgUmVhbEludGVydmFsRmllbGRfY2xhc3Moc2FnZS5yaW5ncy5hYmMuUmVhbEludGVydmFs RmllbGQpOgorICAgICAgICAgICAgIHNhZ2U6IGxvYWRzKGR1bXBzKFIpKSA9PSBSCisgICAgICAg ICAgICAgVHJ1ZQorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gX19jcmVhdGVfX1JlYWxJ bnRlcnZhbEZpZWxkX3ZlcnNpb24wLCAoc2VsZi5fX3ByZWMsIHNlbGYuc2NpX25vdCkKKysgICAg ICAgIHJldHVybiBfX2NyZWF0ZV9fUmVhbEludGVydmFsRmllbGRfdmVyc2lvbjAsIChzZWxmLl9w cmVjLCBzZWxmLnNjaV9ub3QpCisgCisgICAgIGRlZiByYW5kb21fZWxlbWVudChzZWxmLCAqYXJn cywgKiprd2RzKToKKyAgICAgICAgICIiIgorQEAgLTk5Nyw3ICs5OTcsNyBAQCBjZGVmIGNsYXNz IFJlYWxJbnRlcnZhbEZpZWxkX2NsYXNzKHNhZ2UucmluZ3MuYWJjLlJlYWxJbnRlcnZhbEZpZWxk KToKKyAgICAgICAgICAgICBzYWdlOiBSZWFsSW50ZXJ2YWxGaWVsZCgyMDApLm5hbWUoKQorICAg ICAgICAgICAgICdJbnRlcnZhbFJlYWxJbnRlcnZhbEZpZWxkMjAwJworICAgICAgICAgIiIiCist ICAgICAgICByZXR1cm4gIkludGVydmFsUmVhbEludGVydmFsRmllbGQlcyIlKHNlbGYuX19wcmVj KQorKyAgICAgICAgcmV0dXJuICJJbnRlcnZhbFJlYWxJbnRlcnZhbEZpZWxkJXMiJShzZWxmLl9w cmVjKQorIAorICAgICBkZWYgX19oYXNoX18oc2VsZik6CisgICAgICAgICAiIiIKK0BAIC0xMDIz LDcgKzEwMjMsNyBAQCBjZGVmIGNsYXNzIFJlYWxJbnRlcnZhbEZpZWxkX2NsYXNzKHNhZ2Uucmlu Z3MuYWJjLlJlYWxJbnRlcnZhbEZpZWxkKToKKyAgICAgICAgICAgICBzYWdlOiBSZWFsSW50ZXJ2 YWxGaWVsZCgyMDApLnByZWNpc2lvbigpCisgICAgICAgICAgICAgMjAwCisgICAgICAgICAiIiIK Ky0gICAgICAgIHJldHVybiBzZWxmLl9fcHJlYworKyAgICAgICAgcmV0dXJuIHNlbGYuX3ByZWMK KyAKKyAgICAgcHJlYyA9IHByZWNpc2lvbgorIAorQEAgLTExODcsNyArMTE4Nyw3IEBAIGNkZWYg Y2xhc3MgUmVhbEludGVydmFsRmllbGRFbGVtZW50KFJpbmdFbGVtZW50KToKKyAgICAgICAgICAg ICBzYWdlOiBUZXN0U3VpdGUoeCkucnVuKHNraXA9WyJfdGVzdF9lcSIsICJfdGVzdF9waWNrbGlu ZyJdKQorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIFJlYWxJbnRlcnZhbEZpZWxkX2NsYXNz IHAgPSA8UmVhbEludGVydmFsRmllbGRfY2xhc3M/PnBhcmVudAorLSAgICAgICAgbXBmaV9pbml0 MihzZWxmLnZhbHVlLCBwLl9fcHJlYykKKysgICAgICAgIG1wZmlfaW5pdDIoc2VsZi52YWx1ZSwg cC5fcHJlYykKKyAgICAgICAgIHNlbGYuX3BhcmVudCA9IHAKKyAKKyAgICAgZGVmIF9faW5pdF9f KHNlbGYsIHBhcmVudCwgeCwgaW50IGJhc2U9MTApOgorQEAgLTE4NjQsNyArMTg2NCw3IEBAIGNk ZWYgY2xhc3MgUmVhbEludGVydmFsRmllbGRFbGVtZW50KFJpbmdFbGVtZW50KToKKyAKKyAgICAg ICAgIGNkZWYgbXBfZXhwX3Qgc2VsZl9leHAKKyAgICAgICAgIGNkZWYgbXB6X3Qgc2VsZl96egor LSAgICAgICAgY2RlZiBtcGZyX3ByZWNfdCBwcmVjID0gKDxSZWFsSW50ZXJ2YWxGaWVsZF9jbGFz cz5zZWxmLl9wYXJlbnQpLl9fcHJlYworKyAgICAgICAgY2RlZiBtcGZyX3ByZWNfdCBwcmVjID0g KDxSZWFsSW50ZXJ2YWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9wcmVjCisgICAgICAgICBj ZGVmIGNoYXIgKnp6X3N0cgorICAgICAgICAgY2RlZiBzaXplX3Qgenpfc3RyX21heGxlbgorIAor QEAgLTI5NzcsNyArMjk3Nyw3IEBAIGNkZWYgY2xhc3MgUmVhbEludGVydmFsRmllbGRFbGVtZW50 KFJpbmdFbGVtZW50KToKKyAgICAgICAgICAgICBzYWdlOiBSZWFsSW50ZXJ2YWxGaWVsZCgyMDAp KDIuMSkucHJlY2lzaW9uKCkKKyAgICAgICAgICAgICAyMDAKKyAgICAgICAgICIiIgorLSAgICAg ICAgcmV0dXJuICg8UmVhbEludGVydmFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fX3ByZWMK KysgICAgICAgIHJldHVybiAoPFJlYWxJbnRlcnZhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCku X3ByZWMKKyAKKyAgICAgcHJlYyA9IHByZWNpc2lvbgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L3JpbmdzL3JlYWxfbXBmci5weGQgYi9zcmMvc2FnZS9yaW5ncy9yZWFsX21wZnIucHhkCitpbmRl eCAzNTQ5ZWNjZmQwMy4uZGQxOGU4NzcxNWIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9y ZWFsX21wZnIucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9yZWFsX21wZnIucHhkCitAQCAtOSw3 ICs5LDcgQEAgZnJvbSBzYWdlLmxpYnMubXBmci50eXBlcyBjaW1wb3J0IG1wZnJfcHJlY190Cisg Y2RlZiBjbGFzcyBSZWFsTnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuUmluZ0VsZW1lbnQp ICAjIGZvcndhcmQgZGVjbAorIAorIGNkZWYgY2xhc3MgUmVhbEZpZWxkX2NsYXNzKHNhZ2Uucmlu Z3MuYWJjLlJlYWxGaWVsZCk6CistICAgIGNkZWYgbXBmcl9wcmVjX3QgX19wcmVjCisrICAgIGNk ZWYgbXBmcl9wcmVjX3QgX3ByZWMKKyAgICAgY2RlZiBiaW50IHNjaV9ub3QKKyAgICAgY2RlZiBt cGZyX3JuZF90IHJuZAorICAgICBjZGVmIG9iamVjdCBybmRfc3RyCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvcmluZ3MvcmVhbF9tcGZyLnB5eCBiL3NyYy9zYWdlL3JpbmdzL3JlYWxfbXBmci5weXgK K2luZGV4IGVhN2ZmMDdhMjE2Li43NDQwZmFkZDI2NSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3Jp bmdzL3JlYWxfbXBmci5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3JlYWxfbXBmci5weXgKK0BA IC01MjQsNyArNTI0LDcgQEAgY2RlZiBjbGFzcyBSZWFsRmllbGRfY2xhc3Moc2FnZS5yaW5ncy5h YmMuUmVhbEZpZWxkKToKKyAgICAgICAgIGlmIHByZWMgPCBNUEZSX1BSRUNfTUlOIG9yIHByZWMg PiBNUEZSX1BSRUNfTUFYOgorICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInByZWMgKD0l cykgbXVzdCBiZSA+PSAlcyBhbmQgPD0gJXMiICUgKAorICAgICAgICAgICAgICAgICBwcmVjLCBN UEZSX1BSRUNfTUlOLCBNUEZSX1BSRUNfTUFYKSkKKy0gICAgICAgIHNlbGYuX19wcmVjID0gcHJl YworKyAgICAgICAgc2VsZi5fcHJlYyA9IHByZWMKKyAgICAgICAgIHNlbGYuc2NpX25vdCA9IHNj aV9ub3QKKyAKKyAgICAgICAgIHNlbGYucm5kID0gPG1wZnJfcm5kX3Q+cm5kCitAQCAtNTYxLDcg KzU2MSw3IEBAIGNkZWYgY2xhc3MgUmVhbEZpZWxkX2NsYXNzKHNhZ2UucmluZ3MuYWJjLlJlYWxG aWVsZCk6CisgICAgICAgICAgICAgc2FnZTogUmVhbEZpZWxkKDE3LHJuZD0nUk5ERCcpICMgaW5k aXJlY3QgZG9jdGVzdAorICAgICAgICAgICAgIFJlYWwgRmllbGQgd2l0aCAxNyBiaXRzIG9mIHBy ZWNpc2lvbiBhbmQgcm91bmRpbmcgUk5ERAorICAgICAgICAgIiIiCistICAgICAgICBzID0gIlJl YWwgRmllbGQgd2l0aCAlcyBiaXRzIG9mIHByZWNpc2lvbiIlc2VsZi5fX3ByZWMKKysgICAgICAg IHMgPSAiUmVhbCBGaWVsZCB3aXRoICVzIGJpdHMgb2YgcHJlY2lzaW9uIiVzZWxmLl9wcmVjCisg ICAgICAgICBpZiBzZWxmLnJuZCAhPSBNUEZSX1JORE46CisgICAgICAgICAgICAgcyA9IHMgKyAi IGFuZCByb3VuZGluZyAlcyIlKHNlbGYucm5kX3N0cikKKyAgICAgICAgIHJldHVybiBzCitAQCAt NzMzLDEzICs3MzMsMTMgQEAgY2RlZiBjbGFzcyBSZWFsRmllbGRfY2xhc3Moc2FnZS5yaW5ncy5h YmMuUmVhbEZpZWxkKToKKyAgICAgICAgICAgICByZXR1cm4gWlp0b1JSKFpaLCBzZWxmKQorICAg ICAgICAgZWxpZiBTIGlzIFFROgorICAgICAgICAgICAgIHJldHVybiBRUXRvUlIoUVEsIHNlbGYp CistICAgICAgICBlbGlmIChTIGlzIFJERiBvciBTIGlzIGZsb2F0KSBhbmQgc2VsZi5fX3ByZWMg PD0gNTM6CisrICAgICAgICBlbGlmIChTIGlzIFJERiBvciBTIGlzIGZsb2F0KSBhbmQgc2VsZi5f cHJlYyA8PSA1MzoKKyAgICAgICAgICAgICByZXR1cm4gZG91YmxlX3RvUlIoUywgc2VsZikKKyAg ICAgICAgIGVsaWYgUyBpcyBsb25nOgorICAgICAgICAgICAgIHJldHVybiBpbnRfdG9SUihsb25n LCBzZWxmKQorICAgICAgICAgZWxpZiBTIGlzIGludDoKKyAgICAgICAgICAgICByZXR1cm4gaW50 X3RvUlIoaW50LCBzZWxmKQorLSAgICAgICAgZWxpZiBpc2luc3RhbmNlKFMsIFJlYWxGaWVsZF9j bGFzcykgYW5kIFMucHJlYygpID49IHNlbGYuX19wcmVjOgorKyAgICAgICAgZWxpZiBpc2luc3Rh bmNlKFMsIFJlYWxGaWVsZF9jbGFzcykgYW5kIFMucHJlYygpID49IHNlbGYuX3ByZWM6CisgICAg ICAgICAgICAgcmV0dXJuIFJSdG9SUihTLCBzZWxmKQorICAgICAgICAgZWxpZiBRUS5oYXNfY29l cmNlX21hcF9mcm9tKFMpOgorICAgICAgICAgICAgIHJldHVybiBRUXRvUlIoUVEsIHNlbGYpICog UVEuX2ludGVybmFsX2NvZXJjZV9tYXBfZnJvbShTKQorQEAgLTc4Niw3ICs3ODYsNyBAQCBjZGVm IGNsYXNzIFJlYWxGaWVsZF9jbGFzcyhzYWdlLnJpbmdzLmFiYy5SZWFsRmllbGQpOgorICAgICAg ICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAorIAorICAgICAgICAgX290aGVyID0gPFJlYWxG aWVsZF9jbGFzcz5vdGhlciAgIyB0byBhY2Nlc3MgQyBzdHJ1Y3R1cmUKKy0gICAgICAgIHJldHVy biAoc2VsZi5fX3ByZWMgPT0gX290aGVyLl9fcHJlYyBhbmQKKysgICAgICAgIHJldHVybiAoc2Vs Zi5fcHJlYyA9PSBfb3RoZXIuX3ByZWMgYW5kCisgICAgICAgICAgICAgICAgIHNlbGYucm5kID09 IF9vdGhlci5ybmQpID09IChvcCA9PSBQeV9FUSkKKyAKKyAgICAgZGVmIF9fcmVkdWNlX18oc2Vs Zik6CitAQCAtNzk5LDcgKzc5OSw3IEBAIGNkZWYgY2xhc3MgUmVhbEZpZWxkX2NsYXNzKHNhZ2Uu cmluZ3MuYWJjLlJlYWxGaWVsZCk6CisgICAgICAgICAgICAgc2FnZTogbG9hZHMoZHVtcHMoUikp ID09IFIKKyAgICAgICAgICAgICBUcnVlCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBf X2NyZWF0ZV9fUmVhbEZpZWxkX3ZlcnNpb24wLCAoc2VsZi5fX3ByZWMsIHNlbGYuc2NpX25vdCwg c2VsZi5ybmRfc3RyKQorKyAgICAgICAgcmV0dXJuIF9fY3JlYXRlX19SZWFsRmllbGRfdmVyc2lv bjAsIChzZWxmLl9wcmVjLCBzZWxmLnNjaV9ub3QsIHNlbGYucm5kX3N0cikKKyAKKyAgICAgZGVm IGNvbnN0cnVjdGlvbihzZWxmKToKKyAgICAgICAgIHIiIiIKK0BAIC05NjgsNyArOTY4LDcgQEAg Y2RlZiBjbGFzcyBSZWFsRmllbGRfY2xhc3Moc2FnZS5yaW5ncy5hYmMuUmVhbEZpZWxkKToKKyAg ICAgICAgICAgICBzYWdlOiBSZWFsRmllbGQoMTAwLHJuZD0nUk5EVScpLm5hbWUoKQorICAgICAg ICAgICAgICdSZWFsRmllbGQxMDBfMicKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuICJS ZWFsRmllbGQlc18lcyIlKHNlbGYuX19wcmVjLHNlbGYucm5kKQorKyAgICAgICAgcmV0dXJuICJS ZWFsRmllbGQlc18lcyIlKHNlbGYuX3ByZWMsc2VsZi5ybmQpCisgCisgICAgIGRlZiBfX2hhc2hf XyhzZWxmKToKKyAgICAgICAgICIiIgorQEAgLTk5NSw3ICs5OTUsNyBAQCBjZGVmIGNsYXNzIFJl YWxGaWVsZF9jbGFzcyhzYWdlLnJpbmdzLmFiYy5SZWFsRmllbGQpOgorICAgICAgICAgICAgIHNh Z2U6IFJlYWxGaWVsZCgyMCkucHJlY2lzaW9uKCkKKyAgICAgICAgICAgICAyMAorICAgICAgICAg IiIiCistICAgICAgICByZXR1cm4gSW50ZWdlcihzZWxmLl9fcHJlYykKKysgICAgICAgIHJldHVy biBJbnRlZ2VyKHNlbGYuX3ByZWMpCisgCisgICAgIHByZWM9cHJlY2lzaW9uICMgYW4gYWxpYXMK KyAKK0BAIC0xMDMxLDcgKzEwMzEsNyBAQCBjZGVmIGNsYXNzIFJlYWxGaWVsZF9jbGFzcyhzYWdl LnJpbmdzLmFiYy5SZWFsRmllbGQpOgorICAgICAgICAgICAgIHNhZ2U6IFIudG9fcHJlYygzMDAp CisgICAgICAgICAgICAgUmVhbCBGaWVsZCB3aXRoIDMwMCBiaXRzIG9mIHByZWNpc2lvbiBhbmQg cm91bmRpbmcgUk5EWgorICAgICAgICAgIiIiCistICAgICAgICBpZiBwcmVjID09IHNlbGYuX19w cmVjOgorKyAgICAgICAgaWYgcHJlYyA9PSBzZWxmLl9wcmVjOgorICAgICAgICAgICAgIHJldHVy biBzZWxmCisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBSZWFsRmllbGQocHJl Yywgc2VsZi5zY2lfbm90LCBzZWxmLnJuZCkKK0BAIC0xMDUyLDcgKzEwNTIsNyBAQCBjZGVmIGNs YXNzIFJlYWxGaWVsZF9jbGFzcyhzYWdlLnJpbmdzLmFiYy5SZWFsRmllbGQpOgorICAgICAgICAg ICAgIDAuODg2MjI2OTI1NDUyNzU4MDEzNjQ5MDgzNzQxNjcwNTcyNTkxMzk4Nzc0NzMKKyAgICAg ICAgICIiIgorICAgICAgICAgY2RlZiBSZWFsTnVtYmVyIHggPSBzZWxmLl9uZXcoKQorLSAgICAg ICAgaWYgc2VsZi5fX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vbigpCisrICAgICAg ICBpZiBzZWxmLl9wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb24oKQorICAgICAgICAg IyBUaGUgZG9jcyBmb3IgbXBmcl9mcmVlX2NhY2hlIHNheSAiRnJlZSB0aGUgY2FjaGUgdXNlZCBi eQorICAgICAgICAgIyB0aGUgZnVuY3Rpb25zIGNvbXB1dGluZyBjb25zdGFudHMgaWYgbmVlZGVk IChjdXJyZW50bHkKKyAgICAgICAgICMgbXBmcl9jb25zdF9sb2cyLCBtcGZyX2NvbnN0X3BpIGFu ZCBtcGZyX2NvbnN0X2V1bGVyKSIsIHNvCitAQCAtMTA2Miw3ICsxMDYyLDcgQEAgY2RlZiBjbGFz cyBSZWFsRmllbGRfY2xhc3Moc2FnZS5yaW5ncy5hYmMuUmVhbEZpZWxkKToKKyAgICAgICAgICMg ZnVuY3Rpb25zLCBidXQgdGhpcyBmcmVlIGlzIG5lZWRlZCBmb3IgdGhlbSB0b28hCisgICAgICAg ICBtcGZyX2ZyZWVfY2FjaGUoKQorICAgICAgICAgbXBmcl9jb25zdF9waSh4LnZhbHVlLCBzZWxm LnJuZCkKKy0gICAgICAgIGlmIHNlbGYuX19wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdf b2ZmKCkKKysgICAgICAgIGlmIHNlbGYuX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19v ZmYoKQorICAgICAgICAgcmV0dXJuIHgKKyAKKyAgICAgZGVmIGV1bGVyX2NvbnN0YW50KHNlbGYp OgorQEAgLTEwOTEsMTAgKzEwOTEsMTAgQEAgY2RlZiBjbGFzcyBSZWFsRmllbGRfY2xhc3Moc2Fn ZS5yaW5ncy5hYmMuUmVhbEZpZWxkKToKKyAgICAgICAgICAgICAwLjkxNTk2NTU5NDE3NzIxOTAx NTA1NDYwMzUxNDkzCisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUmVhbE51bWJlciB4ID0g c2VsZi5fbmV3KCkKKy0gICAgICAgIGlmIHNlbGYuX19wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xE OiBzaWdfb24oKQorKyAgICAgICAgaWYgc2VsZi5fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDog c2lnX29uKCkKKyAgICAgICAgIG1wZnJfZnJlZV9jYWNoZSgpCisgICAgICAgICBtcGZyX2NvbnN0 X2NhdGFsYW4oeC52YWx1ZSwgc2VsZi5ybmQpCistICAgICAgICBpZiBzZWxmLl9fcHJlYyA+IFNJ R19QUkVDX1RIUkVTSE9MRDogc2lnX29mZigpCisrICAgICAgICBpZiBzZWxmLl9wcmVjID4gU0lH X1BSRUNfVEhSRVNIT0xEOiBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiB4CisgCisgICAgIGRl ZiBsb2cyKHNlbGYpOgorQEAgLTExMTEsMTAgKzExMTEsMTAgQEAgY2RlZiBjbGFzcyBSZWFsRmll bGRfY2xhc3Moc2FnZS5yaW5ncy5hYmMuUmVhbEZpZWxkKToKKyAgICAgICAgICAgICAwLjY5MzE0 NzE4MDU1OTk0NTMwOTQxNzIzMjEyMTQ2CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUmVh bE51bWJlciB4ID0gc2VsZi5fbmV3KCkKKy0gICAgICAgIGlmIHNlbGYuX19wcmVjID4gU0lHX1BS RUNfVEhSRVNIT0xEOiBzaWdfb24oKQorKyAgICAgICAgaWYgc2VsZi5fcHJlYyA+IFNJR19QUkVD X1RIUkVTSE9MRDogc2lnX29uKCkKKyAgICAgICAgIG1wZnJfZnJlZV9jYWNoZSgpCisgICAgICAg ICBtcGZyX2NvbnN0X2xvZzIoeC52YWx1ZSwgc2VsZi5ybmQpCistICAgICAgICBpZiBzZWxmLl9f cHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29mZigpCisrICAgICAgICBpZiBzZWxmLl9w cmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiB4Cisg CisgICAgIGRlZiByYW5kb21fZWxlbWVudChzZWxmLCBtaW49LTEsIG1heD0xLCBkaXN0cmlidXRp b249Tm9uZSk6CitAQCAtMTE4MSw5ICsxMTgxLDkgQEAgY2RlZiBjbGFzcyBSZWFsRmllbGRfY2xh c3Moc2FnZS5yaW5ncy5hYmMuUmVhbEZpZWxkKToKKyAgICAgICAgIGlmIG4gPCAwOgorICAgICAg ICAgICAgIHJhaXNlIEFyaXRobWV0aWNFcnJvcigibiBtdXN0IGJlIG5vbm5lZ2F0aXZlIikKKyAg ICAgICAgIHggPSBzZWxmLl9uZXcoKQorLSAgICAgICAgaWYgc2VsZi5fX3ByZWMgPiBTSUdfUFJF Q19USFJFU0hPTEQgYW5kIG4gPCBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vbigpCisrICAgICAg ICBpZiBzZWxmLl9wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEIGFuZCBuIDwgU0lHX1BSRUNfVEhS RVNIT0xEOiBzaWdfb24oKQorICAgICAgICAgbXBmcl9mYWNfdWkoeC52YWx1ZSwgbiwgc2VsZi5y bmQpCistICAgICAgICBpZiBzZWxmLl9fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRCBhbmQgbiA8 IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29mZigpCisrICAgICAgICBpZiBzZWxmLl9wcmVjID4g U0lHX1BSRUNfVEhSRVNIT0xEIGFuZCBuIDwgU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb2ZmKCkK KyAgICAgICAgIHJldHVybiB4CisgCisgICAgIGRlZiByb3VuZGluZ19tb2RlKHNlbGYpOgorQEAg LTEzNDYsNyArMTM0Niw3IEBAIGNkZWYgY2xhc3MgUmVhbE51bWJlcihzYWdlLnN0cnVjdHVyZS5l bGVtZW50LlJpbmdFbGVtZW50KToKKyAgICAgICAgICAgICBOYU4KKyAgICAgICAgICIiIgorICAg ICAgICAgY2RlZiBSZWFsRmllbGRfY2xhc3MgcCA9IDxSZWFsRmllbGRfY2xhc3M/PnBhcmVudAor LSAgICAgICAgbXBmcl9pbml0MihzZWxmLnZhbHVlLCBwLl9fcHJlYykKKysgICAgICAgIG1wZnJf aW5pdDIoc2VsZi52YWx1ZSwgcC5fcHJlYykKKyAgICAgICAgIHNlbGYuX3BhcmVudCA9IHAKKyAK KyAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCwgeD0wLCBpbnQgYmFzZT0xMCk6CitAQCAt MTQ0Niw3ICsxNDQ2LDcgQEAgY2RlZiBjbGFzcyBSZWFsTnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVs ZW1lbnQuUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgIHNhZ2U6IG51bXB5LmFycmF5KFsxLjAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMF0pLmR0eXBlICAgICAgICAgICAjIG9w dGlvbmFsIC0gbnVtcHkKKyAgICAgICAgICAgICBkdHlwZSgnTycpCisgICAgICAgICAiIiIKKy0g ICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX19wcmVjIDw9IDUzOgor KyAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYyA8PSA1MzoK KyAgICAgICAgICAgICByZXR1cm4gbnVtcHlfZG91YmxlX2ludGVyZmFjZQorICAgICAgICAgZWxz ZToKKyAgICAgICAgICAgICByZXR1cm4gbnVtcHlfb2JqZWN0X2ludGVyZmFjZQorQEAgLTIwNzUs NyArMjA3NSw3IEBAIGNkZWYgY2xhc3MgUmVhbE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50 LlJpbmdFbGVtZW50KToKKyAgICAgICAgICAgICAjIFRoaXMgYXZvaWRzIHRoZSBjb25mdXNpb24g YSBsb3Qgb2YgcGVvcGxlIGhhdmUgd2l0aCB0aGUgbGFzdAorICAgICAgICAgICAgICMgMS0yIGJp bmFyeSBkaWdpdHMgYmVpbmcgd3JvbmcgZHVlIHRvIHJvdW5kaW5nIGNvbWluZyBmcm9tCisgICAg ICAgICAgICAgIyByZXByZXNlbnRpbmcgbnVtYmVycyBpbiBiaW5hcnkuCistICAgICAgICAgICAg ZGlnaXRzID0gPHNpemVfdD4oKCg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX19wcmVj IC0gMSkgKiBNX0xOMl9MTjEwKQorKyAgICAgICAgICAgIGRpZ2l0cyA9IDxzaXplX3Q+KCgoPFJl YWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9wcmVjIC0gMSkgKiBNX0xOMl9MTjEwKQorICAg ICAgICAgICAgIGlmIGRpZ2l0cyA8IDI6CisgICAgICAgICAgICAgICAgIGRpZ2l0cyA9IDIKKyAK K0BAIC0yMzAzLDcgKzIzMDMsNyBAQCBjZGVmIGNsYXNzIFJlYWxOdW1iZXIoc2FnZS5zdHJ1Y3R1 cmUuZWxlbWVudC5SaW5nRWxlbWVudCk6CisgICAgICAgICBpZiBzZ24gPT0gMDoKKyAgICAgICAg ICAgICByZXR1cm4gegorIAorLSAgICAgICAgY2RlZiBtcGZyX3ByZWNfdCBwcmVjID0gKDxSZWFs RmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fX3ByZWMKKysgICAgICAgIGNkZWYgbXBmcl9wcmVj X3QgcHJlYyA9ICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX3ByZWMKKyAKKyAgICAg ICAgIGlmIG1wZnJfaW5mX3Aoc2VsZi52YWx1ZSk6CisgICAgICAgICAgICAgbXB6X3NldF91aSh6 LnZhbHVlLCBFWFBfTUFYKzEtRVhQX01JTikKK0BAIC0yNzU3LDcgKzI3NTcsNyBAQCBjZGVmIGNs YXNzIFJlYWxOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5SaW5nRWxlbWVudCk6CisgICAg ICAgICAgICAgc2FnZTogUmVhbEZpZWxkKDEwMSkoLTEpLnByZWNpc2lvbigpCisgICAgICAgICAg ICAgMTAxCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBJbnRlZ2VyKCg8UmVhbEZpZWxk X2NsYXNzPnNlbGYuX3BhcmVudCkuX19wcmVjKQorKyAgICAgICAgcmV0dXJuIEludGVnZXIoKDxS ZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYykKKyAKKyAgICAgcHJlYyA9IHByZWNp c2lvbiAjIGFsaWFzCisgCitAQCAtMzM2NCw3ICszMzY0LDcgQEAgY2RlZiBjbGFzcyBSZWFsTnVt YmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuUmluZ0VsZW1lbnQpOgorICAgICAgICAgY2RlZiB1 bnNpZ25lZCBsb25nIHdvcmRzaXplID0gc2l6ZW9mKGxvbmcpKjgKKyAKKyAgICAgICAgIGNkZWYg bXBmcl9wcmVjX3QgcHJlYworLSAgICAgICAgcHJlYyA9ICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYu X3BhcmVudCkuX19wcmVjCisrICAgICAgICBwcmVjID0gKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5f cGFyZW50KS5fcHJlYworIAorICAgICAgICAgIyBXZSByb3VuZCB1cCB0aGUgcHJlY2lzaW9uIHRv IHRoZSBuZWFyZXN0IG11bHRpcGxlIG9mIHdvcmRzaXplLgorICAgICAgICAgY2RlZiBpbnQgcm91 bmRlZF9wcmVjCitAQCAtMzY5OSw3ICszNjk5LDcgQEAgY2RlZiBjbGFzcyBSZWFsTnVtYmVyKHNh Z2Uuc3RydWN0dXJlLmVsZW1lbnQuUmluZ0VsZW1lbnQpOgorICAgICAgICAgZnJvbSAucmVhbF9t cGZpIGltcG9ydCBSZWFsSW50ZXJ2YWxGaWVsZAorIAorICAgICAgICAgY2RlZiBtcGZyX3JuZF90 IHJuZCA9ICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkucm5kCistICAgICAgICBjZGVm IG1wZnJfcHJlY190IHByZWMgPSAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJl YworKyAgICAgICAgY2RlZiBtcGZyX3ByZWNfdCBwcmVjID0gKDxSZWFsRmllbGRfY2xhc3M+c2Vs Zi5fcGFyZW50KS5fcHJlYworIAorICAgICAgICAgY2RlZiBSZWFsTnVtYmVyIGxvdywgaGlnaAor ICAgICAgICAgY2RlZiBpbnQgb2RkCitAQCAtNDI0OSw5ICs0MjQ5LDkgQEAgY2RlZiBjbGFzcyBS ZWFsTnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuUmluZ0VsZW1lbnQpOgorICAgICAgICAg Y2RlZiBSZWFsTnVtYmVyIHgKKyAgICAgICAgIGlmIG1wZnJfY21wX3VpKHNlbGYudmFsdWUsIDAp ID49IDA6CisgICAgICAgICAgICAgeCA9IHNlbGYuX25ldygpCistICAgICAgICAgICAgaWYgKDxS ZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fX3ByZWMgPiAxMCpTSUdfUFJFQ19USFJFU0hP TEQ6IHNpZ19vbigpCisrICAgICAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFy ZW50KS5fcHJlYyA+IDEwKlNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29uKCkKKyAgICAgICAgICAg ICBtcGZyX3NxcnQoeC52YWx1ZSwgc2VsZi52YWx1ZSwgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5f cGFyZW50KS5ybmQpCistICAgICAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFy ZW50KS5fX3ByZWMgPiAxMCpTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vZmYoKQorKyAgICAgICAg ICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX3ByZWMgPiAxMCpTSUdfUFJF Q19USFJFU0hPTEQ6IHNpZ19vZmYoKQorICAgICAgICAgICAgIGlmIGFsbDoKKyAgICAgICAgICAg ICAgICAgaWYgeC5pc196ZXJvKCk6CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gW3hdCitA QCAtNDI5NSwxMiArNDI5NSwxMiBAQCBjZGVmIGNsYXNzIFJlYWxOdW1iZXIoc2FnZS5zdHJ1Y3R1 cmUuZWxlbWVudC5SaW5nRWxlbWVudCk6CisgICAgICAgICAgICAgLTEuNDIxMDg1NDcxNTIwMjBl LTE0CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUmVhbE51bWJlciB4ID0gc2VsZi5fbmV3 KCkKKy0gICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX19wcmVjID4g MTAqU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb24oKQorKyAgICAgICAgaWYgKDxSZWFsRmllbGRf Y2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYyA+IDEwKlNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29u KCkKKyAgICAgICAgIG1wZnJfY2JydCh4LnZhbHVlLCBzZWxmLnZhbHVlLCAoPFJlYWxGaWVsZF9j bGFzcz5zZWxmLl9wYXJlbnQpLnJuZCkKKy0gICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNl bGYuX3BhcmVudCkuX19wcmVjID4gMTAqU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb2ZmKCkKKysg ICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX3ByZWMgPiAxMCpTSUdf UFJFQ19USFJFU0hPTEQ6IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHgKKyAKKy0gICAgZGVm IF9fcG93KHNlbGYsIFJlYWxOdW1iZXIgZXhwb25lbnQpOgorKyAgICBkZWYgX3BvdyhzZWxmLCBS ZWFsTnVtYmVyIGV4cG9uZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29tcHV0ZSBgYHNl bGZgYCByYWlzZWQgdG8gdGhlIHBvd2VyIG9mIGV4cG9uZW50LCByb3VuZGVkIGluIHRoZQorICAg ICAgICAgZGlyZWN0aW9uIHNwZWNpZmllZCBieSB0aGUgcGFyZW50IG9mIGBgc2VsZmBgLgorQEAg LTQzMDksNyArNDMwOSw3IEBAIGNkZWYgY2xhc3MgUmVhbE51bWJlcihzYWdlLnN0cnVjdHVyZS5l bGVtZW50LlJpbmdFbGVtZW50KToKKyAKKyAgICAgICAgICAgICBzYWdlOiBSID0gUmVhbEZpZWxk KDMwKQorICAgICAgICAgICAgIHNhZ2U6IGEgPSBSKCcxLjIzNDU2JykKKy0gICAgICAgICAgICBz YWdlOiBhLl9fcG93KDIwLjApCisrICAgICAgICAgICAgc2FnZTogYS5fcG93KDIwLjApCisgICAg ICAgICAgICAgNjcuNjQ2Mjk3CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUmVhbE51bWJl ciB4CitAQCAtNDQzNSw5ICs0NDM1LDkgQEAgY2RlZiBjbGFzcyBSZWFsTnVtYmVyKHNhZ2Uuc3Ry dWN0dXJlLmVsZW1lbnQuUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgICAgICByZXR1cm4gc2Vs Zi5fY29tcGxleF9udW1iZXJfKCkubG9nKGJhc2UpCisgICAgICAgICBpZiBiYXNlIGlzIE5vbmUg b3IgYmFzZSA9PSAnZSc6CisgICAgICAgICAgICAgeCA9IHNlbGYuX25ldygpCistICAgICAgICAg ICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fX3ByZWMgPiBTSUdfUFJFQ19U SFJFU0hPTEQ6IHNpZ19vbigpCisrICAgICAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2Vs Zi5fcGFyZW50KS5fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29uKCkKKyAgICAgICAg ICAgICBtcGZyX2xvZyh4LnZhbHVlLCBzZWxmLnZhbHVlLCAoPFJlYWxGaWVsZF9jbGFzcz5zZWxm Ll9wYXJlbnQpLnJuZCkKKy0gICAgICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9w YXJlbnQpLl9fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29mZigpCisrICAgICAgICAg ICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYyA+IFNJR19QUkVDX1RI UkVTSE9MRDogc2lnX29mZigpCisgICAgICAgICAgICAgcmV0dXJuIHgKKyAgICAgICAgIGVsaWYg YmFzZSA9PSAxMDoKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5sb2cxMCgpCitAQCAtNDQ3Niw5 ICs0NDc2LDkgQEAgY2RlZiBjbGFzcyBSZWFsTnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQu UmluZ0VsZW1lbnQpOgorICAgICAgICAgaWYgc2VsZiA8IDA6CisgICAgICAgICAgICAgcmV0dXJu IHNlbGYuX2NvbXBsZXhfbnVtYmVyXygpLmxvZygyKQorICAgICAgICAgeCA9IHNlbGYuX25ldygp CistICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJlYyA+IFNJ R19QUkVDX1RIUkVTSE9MRDogc2lnX29uKCkKKysgICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNz PnNlbGYuX3BhcmVudCkuX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vbigpCisgICAg ICAgICBtcGZyX2xvZzIoeC52YWx1ZSwgc2VsZi52YWx1ZSwgKDxSZWFsRmllbGRfY2xhc3M+c2Vs Zi5fcGFyZW50KS5ybmQpCistICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJl bnQpLl9fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29mZigpCisrICAgICAgICBpZiAo PFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xE OiBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiB4CisgCisgICAgIGRlZiBsb2cxMChzZWxmKToK K0BAIC00NTEzLDkgKzQ1MTMsOSBAQCBjZGVmIGNsYXNzIFJlYWxOdW1iZXIoc2FnZS5zdHJ1Y3R1 cmUuZWxlbWVudC5SaW5nRWxlbWVudCk6CisgICAgICAgICBpZiBzZWxmIDwgMDoKKyAgICAgICAg ICAgICByZXR1cm4gc2VsZi5fY29tcGxleF9udW1iZXJfKCkubG9nKDEwKQorICAgICAgICAgeCA9 IHNlbGYuX25ldygpCistICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQp Ll9fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29uKCkKKysgICAgICAgIGlmICg8UmVh bEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNp Z19vbigpCisgICAgICAgICBtcGZyX2xvZzEwKHgudmFsdWUsIHNlbGYudmFsdWUsICg8UmVhbEZp ZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkucm5kKQorLSAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xh c3M+c2VsZi5fcGFyZW50KS5fX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vZmYoKQor KyAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYyA+IFNJR19Q UkVDX1RIUkVTSE9MRDogc2lnX29mZigpCisgICAgICAgICByZXR1cm4geAorIAorICAgICBkZWYg bG9nMXAoc2VsZik6CitAQCAtNDU2Miw5ICs0NTYyLDkgQEAgY2RlZiBjbGFzcyBSZWFsTnVtYmVy KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuUmluZ0VsZW1lbnQpOgorICAgICAgICAgaWYgc2VsZiA8 IC0xOgorICAgICAgICAgICAgIHJldHVybiAoc2VsZisxLjApLl9jb21wbGV4X251bWJlcl8oKS5s b2coKQorICAgICAgICAgeCA9IHNlbGYuX25ldygpCistICAgICAgICBpZiAoPFJlYWxGaWVsZF9j bGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29uKCkK KysgICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX3ByZWMgPiBTSUdf UFJFQ19USFJFU0hPTEQ6IHNpZ19vbigpCisgICAgICAgICBtcGZyX2xvZzFwKHgudmFsdWUsIHNl bGYudmFsdWUsICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkucm5kKQorLSAgICAgICAg aWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fX3ByZWMgPiBTSUdfUFJFQ19USFJF U0hPTEQ6IHNpZ19vZmYoKQorKyAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFy ZW50KS5fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29mZigpCisgICAgICAgICByZXR1 cm4geAorIAorICAgICBkZWYgZXhwKHNlbGYpOgorQEAgLTQ2MjAsOSArNDYyMCw5IEBAIGNkZWYg Y2xhc3MgUmVhbE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LlJpbmdFbGVtZW50KToKKyAg ICAgICAgICAgICAxLjg5MTE3MjQ4MjUzMDIxZS0xMAorICAgICAgICAgIiIiCisgICAgICAgICBj ZGVmIFJlYWxOdW1iZXIgeCA9IHNlbGYuX25ldygpCistICAgICAgICBpZiAoPFJlYWxGaWVsZF9j bGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29uKCkK KysgICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX3ByZWMgPiBTSUdf UFJFQ19USFJFU0hPTEQ6IHNpZ19vbigpCisgICAgICAgICBtcGZyX2V4cDIoeC52YWx1ZSwgc2Vs Zi52YWx1ZSwgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5ybmQpCistICAgICAgICBp ZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJlYyA+IFNJR19QUkVDX1RIUkVT SE9MRDogc2lnX29mZigpCisrICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJl bnQpLl9wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVy biB4CisgCisgICAgIGRlZiBleHAxMChzZWxmKToKK0BAIC00NjQ4LDkgKzQ2NDgsOSBAQCBjZGVm IGNsYXNzIFJlYWxOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5SaW5nRWxlbWVudCk6Cisg ICAgICAgICAgICAgNS4wMTE4NzIzMzYyNzI3NmUtMzMKKyAgICAgICAgICIiIgorICAgICAgICAg Y2RlZiBSZWFsTnVtYmVyIHggPSBzZWxmLl9uZXcoKQorLSAgICAgICAgaWYgKDxSZWFsRmllbGRf Y2xhc3M+c2VsZi5fcGFyZW50KS5fX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vbigp CisrICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9wcmVjID4gU0lH X1BSRUNfVEhSRVNIT0xEOiBzaWdfb24oKQorICAgICAgICAgbXBmcl9leHAxMCh4LnZhbHVlLCBz ZWxmLnZhbHVlLCAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLnJuZCkKKy0gICAgICAg IGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX19wcmVjID4gU0lHX1BSRUNfVEhS RVNIT0xEOiBzaWdfb2ZmKCkKKysgICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3Bh cmVudCkuX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vZmYoKQorICAgICAgICAgcmV0 dXJuIHgKKyAKKyAgICAgZGVmIGV4cG0xKHNlbGYpOgorQEAgLTQ2NzIsOSArNDY3Miw5IEBAIGNk ZWYgY2xhc3MgUmVhbE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LlJpbmdFbGVtZW50KToK KyAgICAgICAgICAgICAxLjAwMDAwMDAwMDAwMDAwZS0xNgorICAgICAgICAgIiIiCisgICAgICAg ICBjZGVmIFJlYWxOdW1iZXIgeCA9IHNlbGYuX25ldygpCistICAgICAgICBpZiAoPFJlYWxGaWVs ZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29u KCkKKysgICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX3ByZWMgPiBT SUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vbigpCisgICAgICAgICBtcGZyX2V4cG0xKHgudmFsdWUs IHNlbGYudmFsdWUsICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkucm5kKQorLSAgICAg ICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fX3ByZWMgPiBTSUdfUFJFQ19U SFJFU0hPTEQ6IHNpZ19vZmYoKQorKyAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5f cGFyZW50KS5fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29mZigpCisgICAgICAgICBy ZXR1cm4geAorIAorICAgICBkZWYgZWludChzZWxmKToKK0BAIC00Njk0LDkgKzQ2OTQsOSBAQCBj ZGVmIGNsYXNzIFJlYWxOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5SaW5nRWxlbWVudCk6 CisgICAgICAgICAgICAgLTAuMjE5MzgzOTM0Mzk1NTIwCisgICAgICAgICAiIiIKKyAgICAgICAg IGNkZWYgUmVhbE51bWJlciB4ID0gc2VsZi5fbmV3KCkKKy0gICAgICAgIGlmICg8UmVhbEZpZWxk X2NsYXNzPnNlbGYuX3BhcmVudCkuX19wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb24o KQorKyAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYyA+IFNJ R19QUkVDX1RIUkVTSE9MRDogc2lnX29uKCkKKyAgICAgICAgIG1wZnJfZWludCh4LnZhbHVlLCBz ZWxmLnZhbHVlLCAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLnJuZCkKKy0gICAgICAg IGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX19wcmVjID4gU0lHX1BSRUNfVEhS RVNIT0xEOiBzaWdfb24oKQorKyAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFy ZW50KS5fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29uKCkKKyAgICAgICAgIHJldHVy biB4CisgCisgICAgIGRlZiBjb3Moc2VsZik6CitAQCAtNTEyNSw5ICs1MTI1LDkgQEAgY2RlZiBj bGFzcyBSZWFsTnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuUmluZ0VsZW1lbnQpOgorICAg ICAgICAgICAgIF9vdGhlciA9IHNlbGYuX3BhcmVudChvdGhlcikKKyAKKyAgICAgICAgIHggPSBz ZWxmLl9uZXcoKQorLSAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5f X3ByZWMgPiAxMDAwMDogc2lnX29uKCkKKysgICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNl bGYuX3BhcmVudCkuX3ByZWMgPiAxMDAwMDogc2lnX29uKCkKKyAgICAgICAgIG1wZnJfYWdtKHgu dmFsdWUsIHNlbGYudmFsdWUsIF9vdGhlci52YWx1ZSwgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5f cGFyZW50KS5ybmQpCistICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQp Ll9fcHJlYyA+IDEwMDAwOiBzaWdfb2ZmKCkKKysgICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNz PnNlbGYuX3BhcmVudCkuX3ByZWMgPiAxMDAwMDogc2lnX29mZigpCisgICAgICAgICByZXR1cm4g eAorIAorICAgICBkZWYgZXJmKHNlbGYpOgorQEAgLTUyODAsOSArNTI4MCw5IEBAIGNkZWYgY2xh c3MgUmVhbE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LlJpbmdFbGVtZW50KToKKyAgICAg ICAgICAgICAwLjg4NjIyNjkyNTQ1Mjc1OAorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIFJl YWxOdW1iZXIgeCA9IHNlbGYuX25ldygpCistICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5z ZWxmLl9wYXJlbnQpLl9fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29uKCkKKysgICAg ICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX3ByZWMgPiBTSUdfUFJFQ19U SFJFU0hPTEQ6IHNpZ19vbigpCisgICAgICAgICBtcGZyX2dhbW1hKHgudmFsdWUsIHNlbGYudmFs dWUsICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkucm5kKQorLSAgICAgICAgaWYgKDxS ZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6 IHNpZ19vZmYoKQorKyAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5f cHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29mZigpCisgICAgICAgICByZXR1cm4geAor IAorICAgICBkZWYgbG9nX2dhbW1hKHNlbGYpOgorQEAgLTUzMDYsMTAgKzUzMDYsMTAgQEAgY2Rl ZiBjbGFzcyBSZWFsTnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuUmluZ0VsZW1lbnQpOgor ICAgICAgICAgY2RlZiBSZWFsTnVtYmVyIHggPSBzZWxmLl9uZXcoKQorICAgICAgICAgcGFyZW50 ID0gKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KQorICAgICAgICAgaWYgbm90IG1wZnJf c2duKHNlbGYudmFsdWUpIDwgMDoKKy0gICAgICAgICAgICBpZiBwYXJlbnQuX19wcmVjID4gU0lH X1BSRUNfVEhSRVNIT0xEOgorKyAgICAgICAgICAgIGlmIHBhcmVudC5fcHJlYyA+IFNJR19QUkVD X1RIUkVTSE9MRDoKKyAgICAgICAgICAgICAgICAgc2lnX29uKCkKKyAgICAgICAgICAgICBtcGZy X2xuZ2FtbWEoeC52YWx1ZSwgc2VsZi52YWx1ZSwgcGFyZW50LnJuZCkKKy0gICAgICAgICAgICBp ZiBwYXJlbnQuX19wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOgorKyAgICAgICAgICAgIGlmIHBh cmVudC5fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDoKKyAgICAgICAgICAgICAgICAgc2lnX29m ZigpCisgICAgICAgICAgICAgcmV0dXJuIHgKKyAgICAgICAgIGZyb20gc2FnZS5saWJzLm1wbWF0 aC51dGlscyBpbXBvcnQgY2FsbAorQEAgLTU1MzQsNyArNTUzNCw3IEBAIGNkZWYgY2xhc3MgUmVh bE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LlJpbmdFbGVtZW50KToKKyAKKyAgICAgICAg IGNkZWYgUmVhbEZpZWxkX2NsYXNzIGZsZCA9IDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50 CisgCistICAgICAgICBpZiBhbGdvcml0aG0gPT0gMCBhbmQgbiA8PSAxMDAwMCAvIGZsZC5fX3By ZWM6CisrICAgICAgICBpZiBhbGdvcml0aG0gPT0gMCBhbmQgbiA8PSAxMDAwMCAvIGZsZC5fcHJl YzoKKyAgICAgICAgICAgICAjIFRoaXMgaXMgYSByb3VnaCBlc3RpbWF0ZSBmb3Igd2hlbiBpdCBp cyBwcm9iYWJseQorICAgICAgICAgICAgICMgZmFzdGVyIHRvIGNhbGwgbXBmciBkaXJlY3RseS4g IChUaGlzIGlzIGEgcHJldHR5CisgICAgICAgICAgICAgIyBnb29kIGVzdGltYXRlIG9uIG9uZSBw YXJ0aWN1bGFyIG1hY2hpbmUsIGEKK0BAIC01NjM5LDcgKzU2MzksNyBAQCBjZGVmIGNsYXNzIFJl YWxOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5SaW5nRWxlbWVudCk6CisgCisgICAgICAg ICBmcm9tIC5yZWFsX21wZmkgaW1wb3J0IFJlYWxJbnRlcnZhbEZpZWxkCisgCistICAgICAgICBj ZGVmIG1wZnJfcHJlY190IHByZWMgPSBmbGQuX19wcmVjICsgMTAKKysgICAgICAgIGNkZWYgbXBm cl9wcmVjX3QgcHJlYyA9IGZsZC5fcHJlYyArIDEwCisgCisgICAgICAgICBjZGVmIFJlYWxOdW1i ZXIgbG93ZXIKKyAgICAgICAgIGNkZWYgUmVhbE51bWJlciB1cHBlcgorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL3JpbmdzL3JpbmcucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcmluZy5weGQKK2luZGV4IDkz ODRmMzlmMjU4Li4xMzIyNjk3Njg4ZiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3Jpbmcu cHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9yaW5nLnB4ZAorQEAgLTcsNyArNyw3IEBAIGNkZWYg Y2xhc3MgUmluZyhQYXJlbnRXaXRoR2Vucyk6CisgICAgIGNkZWYgcHVibGljIG9iamVjdCBfb25l X2VsZW1lbnQKKyAgICAgY2RlZiBwdWJsaWMgb2JqZWN0IF96ZXJvX2lkZWFsCisgICAgIGNkZWYg cHVibGljIG9iamVjdCBfdW5pdF9pZGVhbAorLSAgICBjZGVmIHB1YmxpYyBvYmplY3QgX19pZGVh bF9tb25vaWQKKysgICAgY2RlZiBwdWJsaWMgb2JqZWN0IF9pZGVhbF9tb25vaWQKKyAKKyAKKyBj ZGVmIGNsYXNzIENvbW11dGF0aXZlUmluZyhSaW5nKToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9y aW5ncy9yaW5nLnB5eCBiL3NyYy9zYWdlL3JpbmdzL3JpbmcucHl4CitpbmRleCA0Y2JhMmM5YmE3 Zi4uOGFjZjQzODMyNzAgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9yaW5nLnB5eAorKysr IGIvc3JjL3NhZ2UvcmluZ3MvcmluZy5weXgKK0BAIC0zMjUsMTIgKzMyNSwxMiBAQCBjZGVmIGNs YXNzIFJpbmcoUGFyZW50V2l0aEdlbnMpOgorICAgICAgICAgICAgICBieSB0aGUgaWRlYWwgKHgq eSArIHkqeiwgeCp4ICsgeCp5IC0geSp4IC0geSp5KQorIAorICAgICAgICAgIiIiCistICAgICAg ICBpZiBzZWxmLl9faWRlYWxfbW9ub2lkIGlzIG5vdCBOb25lOgorLSAgICAgICAgICAgIHJldHVy biBzZWxmLl9faWRlYWxfbW9ub2lkCisrICAgICAgICBpZiBzZWxmLl9pZGVhbF9tb25vaWQgaXMg bm90IE5vbmU6CisrICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2lkZWFsX21vbm9pZAorICAgICAg ICAgZWxzZToKKyAgICAgICAgICAgICBmcm9tIHNhZ2UucmluZ3Mubm9uY29tbXV0YXRpdmVfaWRl YWxzIGltcG9ydCBJZGVhbE1vbm9pZF9uYworICAgICAgICAgICAgIE0gPSBJZGVhbE1vbm9pZF9u YyhzZWxmKQorLSAgICAgICAgICAgIHNlbGYuX19pZGVhbF9tb25vaWQgPSBNCisrICAgICAgICAg ICAgc2VsZi5faWRlYWxfbW9ub2lkID0gTQorICAgICAgICAgICAgIHJldHVybiBNCisgCisgICAg IGRlZiBpZGVhbChzZWxmLCAqYXJncywgKiprd2RzKToKK0BAIC0xMTA2LDEyICsxMTA2LDEyIEBA IGNkZWYgY2xhc3MgUmluZyhQYXJlbnRXaXRoR2Vucyk6CisgICAgICAgICAgICAgc2FnZTogUi48 eD49UVFbXTsgUi5pZGVhbF9tb25vaWQoKQorICAgICAgICAgICAgIE1vbm9pZCBvZiBpZGVhbHMg b2YgVW5pdmFyaWF0ZSBQb2x5bm9taWFsIFJpbmcgaW4geCBvdmVyIFJhdGlvbmFsIEZpZWxkCisg ICAgICAgICAiIiIKKy0gICAgICAgIGlmIHNlbGYuX19pZGVhbF9tb25vaWQgaXMgbm90IE5vbmU6 CistICAgICAgICAgICAgcmV0dXJuIHNlbGYuX19pZGVhbF9tb25vaWQKKysgICAgICAgIGlmIHNl bGYuX2lkZWFsX21vbm9pZCBpcyBub3QgTm9uZToKKysgICAgICAgICAgICByZXR1cm4gc2VsZi5f aWRlYWxfbW9ub2lkCisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIGZyb20gc2FnZS5yaW5n cy5pZGVhbF9tb25vaWQgaW1wb3J0IElkZWFsTW9ub2lkCisgICAgICAgICAgICAgTSA9IElkZWFs TW9ub2lkKHNlbGYpCistICAgICAgICAgICAgc2VsZi5fX2lkZWFsX21vbm9pZCA9IE0KKysgICAg ICAgICAgICBzZWxmLl9pZGVhbF9tb25vaWQgPSBNCisgICAgICAgICAgICAgcmV0dXJuIE0KKyAK KyAgICAgQGNhY2hlZF9tZXRob2QKK0BAIC0xMzQ1LDEyICsxMzQ1LDEyIEBAIGNkZWYgY2xhc3Mg Q29tbXV0YXRpdmVSaW5nKFJpbmcpOgorICAgICAgICAgICAgIHNhZ2U6IFIuPHg+PVFRW107IFIu aWRlYWxfbW9ub2lkKCkKKyAgICAgICAgICAgICBNb25vaWQgb2YgaWRlYWxzIG9mIFVuaXZhcmlh dGUgUG9seW5vbWlhbCBSaW5nIGluIHggb3ZlciBSYXRpb25hbCBGaWVsZAorICAgICAgICAgIiIi CistICAgICAgICBpZiBzZWxmLl9faWRlYWxfbW9ub2lkIGlzIG5vdCBOb25lOgorLSAgICAgICAg ICAgIHJldHVybiBzZWxmLl9faWRlYWxfbW9ub2lkCisrICAgICAgICBpZiBzZWxmLl9pZGVhbF9t b25vaWQgaXMgbm90IE5vbmU6CisrICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2lkZWFsX21vbm9p ZAorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBmcm9tIHNhZ2UucmluZ3MuaWRlYWxfbW9u b2lkIGltcG9ydCBJZGVhbE1vbm9pZAorICAgICAgICAgICAgIE0gPSBJZGVhbE1vbm9pZChzZWxm KQorLSAgICAgICAgICAgIHNlbGYuX19pZGVhbF9tb25vaWQgPSBNCisrICAgICAgICAgICAgc2Vs Zi5faWRlYWxfbW9ub2lkID0gTQorICAgICAgICAgICAgIHJldHVybiBNCisgCisgICAgIGRlZiBl eHRlbnNpb24oc2VsZiwgcG9seSwgbmFtZT1Ob25lLCBuYW1lcz1Ob25lLCAqKmt3ZHMpOgorZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL3NjaGVtZXMvZWxsaXB0aWNfY3VydmVzL21vZF9zeW1fbnVtLnB5 eCBiL3NyYy9zYWdlL3NjaGVtZXMvZWxsaXB0aWNfY3VydmVzL21vZF9zeW1fbnVtLnB5eAoraW5k ZXggNjU3NDJmMjhkNzIuLjI5NmE2YjVkMDc1IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvc2NoZW1l cy9lbGxpcHRpY19jdXJ2ZXMvbW9kX3N5bV9udW0ucHl4CisrKysgYi9zcmMvc2FnZS9zY2hlbWVz L2VsbGlwdGljX2N1cnZlcy9tb2Rfc3ltX251bS5weXgKK0BAIC03MzAsNyArNzMwLDcgQEAgY2Rl ZiBjbGFzcyBNb2R1bGFyU3ltYm9sTnVtZXJpY2FsOgorICAgICAgICAgZG91YmxlIF9lcHNfcGx1 cywgX2Vwc19taW51cywgX2Vwc191bml0YXJ5X3BsdXMsIF9lcHNfdW5pdGFyeV9taW51cworICAg ICAgICAgcHVibGljIFJlYWxOdW1iZXIgX29tMSwgX29tMgorICAgICAgICAgb2JqZWN0IF9FLCBf ZXBzUXMsIF9NdCwgX0VwYXJpCistICAgICAgICBwdWJsaWMgZGljdCBfX2NhY2hlZF9tZXRob2Rz CisrICAgICAgICBwdWJsaWMgZGljdCBfY2FjaGVkX21ldGhvZHMKKyAgICAgICAgIFJhdGlvbmFs IF90d2lzdF9xCisgICAgICAgICBJbnRlZ2VyIF9ECisgICAgICAgICBpbnQgX2dsb2JhbF9zaWdu CitAQCAtNzg1LDcgKzc4NSw3IEBAIGNkZWYgY2xhc3MgTW9kdWxhclN5bWJvbE51bWVyaWNhbDoK KyAgICAgICAgIHNlbGYuX3NldF9lcHNRcygpCisgICAgICAgICBzZWxmLl9pbml0aWFsaXNlX2Fu X2NvZWZmaWNpZW50cygpCisgICAgICAgICBzZWxmLl9zZXRfZGVuX2JvdW5kcygpCistICAgICAg ICBzZWxmLl9fY2FjaGVkX21ldGhvZHMgPSB7fQorKyAgICAgICAgc2VsZi5fY2FjaGVkX21ldGhv ZHMgPSB7fQorIAorICAgICAgICAgIyBzZWxmLm5jX3N1bXMgPSBJbnRlZ2VyKDApCisgICAgICAg ICAjIHNlbGYubmNfZGlyZWN0ID0gSW50ZWdlcigwKQorQEAgLTEzNTcsNyArMTM1Nyw3IEBAIGNk ZWYgY2xhc3MgTW9kdWxhclN5bWJvbE51bWVyaWNhbDoKKyAgICAgICAgICAgICBzYWdlOiBNKDAp CisgICAgICAgICAgICAgMS81CisgICAgICAgICAiIiIKKy0gICAgICAgIGNhZGkgPSBzZWxmLl9f Y2FjaGVkX21ldGhvZHMKKysgICAgICAgIGNhZGkgPSBzZWxmLl9jYWNoZWRfbWV0aG9kcworICAg ICAgICAgZm9yIG1lIGluIGNhZGk6CisgICAgICAgICAgICAgY2FkaVttZV0uY2xlYXJfY2FjaGUo KQorIAorQEAgLTE4MzMsNyArMTgzMyw3IEBAIGNkZWYgY2xhc3MgTW9kdWxhclN5bWJvbE51bWVy aWNhbDoKKyAKKyAgICAgICAgICMgaWYgY2FsbGVkIHdpdGggYSBwcmV2aW91cyAobSx6LGVwcykg YnV0IGEgbGFyZ2VyIGVwcywKKyAgICAgICAgICMgcmV0dXJuIHRoZSBjYWNoZWQgdmFsdWUKKy0g ICAgICAgIGNhYyA9IHNlbGYuX19jYWNoZWRfbWV0aG9kc1snX2thcHBhJ10uY2FjaGUKKysgICAg ICAgIGNhYyA9IHNlbGYuX2NhY2hlZF9tZXRob2RzWydfa2FwcGEnXS5jYWNoZQorICAgICAgICAg Zm9yIGtlIGluIGNhYzoKKyAgICAgICAgICAgICBtbSwgenosIGVlcHMgPSBrZVswXQorICAgICAg ICAgICAgIGlmIG1tID09IG0gYW5kIHp6ID09IHo6CitAQCAtMjc0NiwxNiArMjc0NiwxNiBAQCBj ZGVmIGNsYXNzIE1vZHVsYXJTeW1ib2xOdW1lcmljYWw6CisgICAgICAgICAgICAgc2FnZTogbXMg PSBNb2R1bGFyU3ltYm9sTnVtZXJpY2FsKEUpCisgICAgICAgICAgICAgc2FnZTogbXMubWFuaW5f c3ltYm9sKDQsMTcpCisgICAgICAgICAgICAgMQorLSAgICAgICAgICAgIHNhZ2U6IG1zLl9fY2Fj aGVkX21ldGhvZHNbIl9tYW5pbl9zeW1ib2xfd2l0aF9jYWNoZSJdLmNhY2hlICMgcmFuZG9tCisr ICAgICAgICAgICAgc2FnZTogbXMuX2NhY2hlZF9tZXRob2RzWyJfbWFuaW5fc3ltYm9sX3dpdGhf Y2FjaGUiXS5jYWNoZSAjIHJhbmRvbQorICAgICAgICAgICAgIHsoKDEsIDUsIDEpLCAoKSk6IDEs CisgICAgICAgICAgICAgKCgxLCAxNSwgMSksICgpKTogLTEsCisgICAgICAgICAgICAgKCgxLCAy MiwgMSksICgpKTogLTEsCisgICAgICAgICAgICAgKCgxLCAzMiwgMSksICgpKTogMX0KKy0gICAg ICAgICAgICBzYWdlOiBtcy5fX2NhY2hlZF9tZXRob2RzWyJfbWFuaW5fc3ltYm9sX3dpdGhfY2Fj aGUiXS5jYWNoZVsoMSwxNSwxKSwoKV0KKysgICAgICAgICAgICBzYWdlOiBtcy5fY2FjaGVkX21l dGhvZHNbIl9tYW5pbl9zeW1ib2xfd2l0aF9jYWNoZSJdLmNhY2hlWygxLDE1LDEpLCgpXQorICAg ICAgICAgICAgIC0xCisgICAgICAgICAgICAgc2FnZTogbXMubWFuaW5fc3ltYm9sKDQrMTcsLTQp CisgICAgICAgICAgICAgMAorLSAgICAgICAgICAgIHNhZ2U6IG1zLl9fY2FjaGVkX21ldGhvZHNb Il9tYW5pbl9zeW1ib2xfd2l0aF9jYWNoZSJdLmNhY2hlICMgcmFuZG9tCisrICAgICAgICAgICAg c2FnZTogbXMuX2NhY2hlZF9tZXRob2RzWyJfbWFuaW5fc3ltYm9sX3dpdGhfY2FjaGUiXS5jYWNo ZSAjIHJhbmRvbQorICAgICAgICAgICAgIHsoKDEsIDQsIDEpLCAoKSk6IDAsCisgICAgICAgICAg ICAgKCgxLCA1LCAxKSwgKCkpOiAxLAorICAgICAgICAgICAgICgoMSwgOCwgMSksICgpKTogMSwK K0BAIC0yNzY4LDcgKzI3NjgsNyBAQCBjZGVmIGNsYXNzIE1vZHVsYXJTeW1ib2xOdW1lcmljYWw6 CisgICAgICAgICAgICAgKCgxLCAyOSwgMSksICgpKTogMSwKKyAgICAgICAgICAgICAoKDEsIDMy LCAxKSwgKCkpOiAxLAorICAgICAgICAgICAgICgoMSwgMzMsIDEpLCAoKSk6IDB9CistICAgICAg ICAgICAgc2FnZTogbXMuX19jYWNoZWRfbWV0aG9kc1siX21hbmluX3N5bWJvbF93aXRoX2NhY2hl Il0uY2FjaGVbICgxLDIzLDEpLCAoKSBdCisrICAgICAgICAgICAgc2FnZTogbXMuX2NhY2hlZF9t ZXRob2RzWyJfbWFuaW5fc3ltYm9sX3dpdGhfY2FjaGUiXS5jYWNoZVsgKDEsMjMsMSksICgpIF0K KyAgICAgICAgICAgICAtMQorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmOgorQEAgLTI5MDMs NyArMjkwMyw3IEBAIGNkZWYgY2xhc3MgTW9kdWxhclN5bWJvbE51bWVyaWNhbDoKKyAgICAgICAg ICMgICAgICAgICIoJXMgOiVzKSIlKHVuLCB2biksIGxldmVsPTMpCisgCisgICAgICAgICAjIGlz IGl0IGFscmVhZHkgaW4gdGhlIGNhY2hlID8KKy0gICAgICAgIGMgPSBzZWxmLl9fY2FjaGVkX21l dGhvZHMKKysgICAgICAgIGMgPSBzZWxmLl9jYWNoZWRfbWV0aG9kcworICAgICAgICAgaWYgIl9t YW5pbl9zeW1ib2xfd2l0aF9jYWNoZSIgaW4gYzoKKyAgICAgICAgICAgICBjID0gY1siX21hbmlu X3N5bWJvbF93aXRoX2NhY2hlIl0KKyAgICAgICAgICAgICBpZiBjLmlzX2luX2NhY2hlKHVuLHZu LHNpZ24pOgorQEAgLTI5MTksNyArMjkxOSw3IEBAIGNkZWYgY2xhc3MgTW9kdWxhclN5bWJvbE51 bWVyaWNhbDoKKyAgICAgICAgICMgd2UgZ2V0IGZvciBmcmVlIGFkZGl0aW9uYWwgdmFsdWVzIG9m IE1hbmluCisgICAgICAgICAjIHN5bWJvbHMgdGhhdCB3ZSBjYWNoZSwgdG9vLgorICAgICAgICAg IyBUaGlzIHNldHMgNiB2YWx1ZXMgaW4gYXZlcmFnZQorLSAgICAgICAgYyA9IHNlbGYuX19jYWNo ZWRfbWV0aG9kc1siX21hbmluX3N5bWJvbF93aXRoX2NhY2hlIl0KKysgICAgICAgIGMgPSBzZWxm Ll9jYWNoZWRfbWV0aG9kc1siX21hbmluX3N5bWJvbF93aXRoX2NhY2hlIl0KKyAKKyAgICAgICAg ICMgKC12OnUpID0gLSAodTp2KQorICAgICAgICAgb2kgPSBwcm9qX25vcm1hbGlzZShzZWxmLl9O X0UsIC12LCB1LCAmdW4sICZ2bikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9zZXRzL3NldF9mcm9t X2l0ZXJhdG9yLnB5IGIvc3JjL3NhZ2Uvc2V0cy9zZXRfZnJvbV9pdGVyYXRvci5weQoraW5kZXgg YzQ3YmI3NjkyMGIuLjExZjEyZTZkNWVhIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvc2V0cy9zZXRf ZnJvbV9pdGVyYXRvci5weQorKysrIGIvc3JjL3NhZ2Uvc2V0cy9zZXRfZnJvbV9pdGVyYXRvci5w eQorQEAgLTIxNCwxMiArMjE0LDEyIEBAIGRlZiBfX3JlZHVjZV9fKHNlbGYpOgorICAgICAgICAg ICAgIFRydWUKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIChFbnVtZXJhdGVkU2V0RnJv bUl0ZXJhdG9yLAorLSAgICAgICAgICAgICAgICAoc2VsZi5fZnVuYywgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIyBmdW5jCistICAgICAgICAgICAgICAgICBnZXRhdHRyKHNlbGYsICdfYXJn cycsIE5vbmUpLCAgICAgICAgICAjIGFyZ3MKKy0gICAgICAgICAgICAgICAgIGdldGF0dHIoc2Vs ZiwgJ19rd2RzJywgTm9uZSksICAgICAgICAgICMga3dkcworLSAgICAgICAgICAgICAgICAgZ2V0 YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScsIE5vbmUpLCAgIyBuYW1lCistICAgICAgICAgICAg ICAgICBzZWxmLmNhdGVnb3J5KCksICAgICAgICAgICAgICAgICAgICAgICAjIGNhdGVnb3J5Cist ICAgICAgICAgICAgICAgICBoYXNhdHRyKHNlbGYsICdfY2FjaGUnKSkgICAgICAgICAgICAgICAj IGNhY2hlCisrICAgICAgICAgICAgICAgIChzZWxmLl9mdW5jLCAgICAgICAgICAgICAgICAgICAg IyBmdW5jCisrICAgICAgICAgICAgICAgICBnZXRhdHRyKHNlbGYsICdfYXJncycsIE5vbmUpLCAg IyBhcmdzCisrICAgICAgICAgICAgICAgICBnZXRhdHRyKHNlbGYsICdfa3dkcycsIE5vbmUpLCAg IyBrd2RzCisrICAgICAgICAgICAgICAgICBzZWxmLmdldF9jdXN0b21fbmFtZSgpLCAgICAgICAg IyBuYW1lCisrICAgICAgICAgICAgICAgICBzZWxmLmNhdGVnb3J5KCksICAgICAgICAgICAgICAg IyBjYXRlZ29yeQorKyAgICAgICAgICAgICAgICAgaGFzYXR0cihzZWxmLCAnX2NhY2hlJykpICAg ICAgICMgY2FjaGUKKyAgICAgICAgICAgICAgICAgKQorIAorICAgICBkZWYgX3JlcHJfKHNlbGYp OgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3N0cnVjdHVyZS9jYXRlZ29yeV9vYmplY3QucHhkIGIv c3JjL3NhZ2Uvc3RydWN0dXJlL2NhdGVnb3J5X29iamVjdC5weGQKK2luZGV4IGZmMzA4OGFlOWI2 Li44M2QzZDQ5NjdkNCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3N0cnVjdHVyZS9jYXRlZ29yeV9v YmplY3QucHhkCisrKysgYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvY2F0ZWdvcnlfb2JqZWN0LnB4ZAor QEAgLTEzLDcgKzEzLDcgQEAgZnJvbSBzYWdlLnN0cnVjdHVyZS5zYWdlX29iamVjdCBjaW1wb3J0 IFNhZ2VPYmplY3QKKyBjcGRlZiBjaGVja19kZWZhdWx0X2NhdGVnb3J5KGRlZmF1bHRfY2F0ZWdv cnksIGNhdGVnb3J5KQorIAorIGNkZWYgY2xhc3MgQ2F0ZWdvcnlPYmplY3QoU2FnZU9iamVjdCk6 CistICAgIGNkZWYgcHVibGljIGRpY3QgX19jYWNoZWRfbWV0aG9kcworKyAgICBjZGVmIHB1Ymxp YyBkaWN0IF9jYWNoZWRfbWV0aG9kcworICAgICBjZGVmIF9jYXRlZ29yeQorICAgICBjZGVmIHB1 YmxpYyBfYmFzZQorICAgICBjZGVmIHB1YmxpYyBfbmFtZXMKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9zdHJ1Y3R1cmUvY2F0ZWdvcnlfb2JqZWN0LnB5eCBiL3NyYy9zYWdlL3N0cnVjdHVyZS9jYXRl Z29yeV9vYmplY3QucHl4CitpbmRleCAzODU5ZjI0MDk1YS4uYjZhN2VhZWNiNWIgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvY2F0ZWdvcnlfb2JqZWN0LnB5eAorKysrIGIvc3JjL3Nh Z2Uvc3RydWN0dXJlL2NhdGVnb3J5X29iamVjdC5weXgKK0BAIC0xMTMsNyArMTEzLDcgQEAgY2Rl ZiBjbGFzcyBDYXRlZ29yeU9iamVjdChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICBzZWxmLl9p bml0X2NhdGVnb3J5XyhjYXRlZ29yeSkKKyAKKyAgICAgZGVmIF9fY2luaXRfXyhzZWxmKToKKy0g ICAgICAgIHNlbGYuX19jYWNoZWRfbWV0aG9kcyA9IHt9CisrICAgICAgICBzZWxmLl9jYWNoZWRf bWV0aG9kcyA9IHt9CisgICAgICAgICBzZWxmLl9oYXNoX3ZhbHVlID0gLTEKKyAKKyAgICAgZGVm IF9pbml0X2NhdGVnb3J5XyhzZWxmLCBjYXRlZ29yeSk6CitAQCAtNDkxLDcgKzQ5MSw3IEBAIGNk ZWYgY2xhc3MgQ2F0ZWdvcnlPYmplY3QoU2FnZU9iamVjdCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIHJldHVybiBzZWxmLnZhcmlhYmxlX25hbWVzKClbMF0KKyAKKy0gICAgZGVmIF9fdGVtcG9y YXJpbHlfY2hhbmdlX25hbWVzKHNlbGYsIG5hbWVzLCBsYXRleF9uYW1lcyk6CisrICAgIGRlZiBf dGVtcG9yYXJpbHlfY2hhbmdlX25hbWVzKHNlbGYsIG5hbWVzLCBsYXRleF9uYW1lcyk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFRoaXMgaXMgdXNlZCBieSB0aGUgdmFyaWFibGUgbmFtZXMgY29u dGV4dCBtYW5hZ2VyLgorIAorQEAgLTg0NCw3ICs4NDQsNyBAQCBjZGVmIGNsYXNzIENhdGVnb3J5 T2JqZWN0KFNhZ2VPYmplY3QpOgorICAgICAgICAgIyBMb29rdXAgYSBtZXRob2Qgb3IgYXR0cmli dXRlIGZyb20gdGhlIGNhdGVnb3J5IGFic3RyYWN0IGNsYXNzZXMuCisgICAgICAgICAjIFNlZSBf X2dldGF0dHJfXyBhYm92ZSBmb3IgZG9jdW1lbnRhdGlvbi4KKyAgICAgICAgIHRyeToKKy0gICAg ICAgICAgICByZXR1cm4gc2VsZi5fX2NhY2hlZF9tZXRob2RzW25hbWVdCisrICAgICAgICAgICAg cmV0dXJuIHNlbGYuX2NhY2hlZF9tZXRob2RzW25hbWVdCisgICAgICAgICBleGNlcHQgS2V5RXJy b3I6CisgICAgICAgICAgICAgaWYgc2VsZi5fY2F0ZWdvcnkgaXMgTm9uZToKKyAgICAgICAgICAg ICAgICAgIyBVc3VhbGx5LCB0aGlzIHdpbGwganVzdCByYWlzZSBBdHRyaWJ1dGVFcnJvciBpbgor QEAgLTg1NCw3ICs4NTQsNyBAQCBjZGVmIGNsYXNzIENhdGVnb3J5T2JqZWN0KFNhZ2VPYmplY3Qp OgorICAgICAgICAgICAgICAgICBjbHMgPSBzZWxmLl9jYXRlZ29yeS5wYXJlbnRfY2xhc3MKKyAK KyAgICAgICAgICAgICBhdHRyID0gZ2V0YXR0cl9mcm9tX290aGVyX2NsYXNzKHNlbGYsIGNscywg bmFtZSkKKy0gICAgICAgICAgICBzZWxmLl9fY2FjaGVkX21ldGhvZHNbbmFtZV0gPSBhdHRyCisr ICAgICAgICAgICAgc2VsZi5fY2FjaGVkX21ldGhvZHNbbmFtZV0gPSBhdHRyCisgICAgICAgICAg ICAgcmV0dXJuIGF0dHIKKyAKKyAgICAgZGVmIF9fZGlyX18oc2VsZik6CitkaWZmIC0tZ2l0IGEv c3JjL3NhZ2Uvc3RydWN0dXJlL2VsZW1lbnQucHhkIGIvc3JjL3NhZ2Uvc3RydWN0dXJlL2VsZW1l bnQucHhkCitpbmRleCA3OWU4NmQ4YTVjMy4uMjBjNTU2Yjk4NWUgMTAwNjQ0CistLS0gYS9zcmMv c2FnZS9zdHJ1Y3R1cmUvZWxlbWVudC5weGQKKysrKyBiL3NyYy9zYWdlL3N0cnVjdHVyZS9lbGVt ZW50LnB4ZAorQEAgLTE3Niw3ICsxNzYsNyBAQCBjZGVmIGNsYXNzIEVsZW1lbnQoU2FnZU9iamVj dCk6CisgCisgCisgY2RlZiBjbGFzcyBFbGVtZW50V2l0aENhY2hlZE1ldGhvZChFbGVtZW50KToK Ky0gICAgY2RlZiBwdWJsaWMgZGljdCBfX2NhY2hlZF9tZXRob2RzCisrICAgIGNkZWYgcHVibGlj IGRpY3QgX2NhY2hlZF9tZXRob2RzCisgCisgY2RlZiBjbGFzcyBNb2R1bGVFbGVtZW50KEVsZW1l bnQpICAgICAgICMgZm9yd2FyZCBkZWNsYXJhdGlvbgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L3N0cnVjdHVyZS9lbGVtZW50LnB5eCBiL3NyYy9zYWdlL3N0cnVjdHVyZS9lbGVtZW50LnB5eAor aW5kZXggYWI2ZWUxNTdhOTQuLjM2ZGExYzBjYzEyIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvc3Ry dWN0dXJlL2VsZW1lbnQucHl4CisrKysgYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvZWxlbWVudC5weXgK K0BAIC0zNzksNiArMzc5LDcgQEAgY2RlZiBjbGFzcyBFbGVtZW50KFNhZ2VPYmplY3QpOgorICAg ICAuLiBhdXRvbWV0aG9kOjogX19tb2RfXworICAgICAiIiIKKyAgICAgQGN5dGhvbi5iaW5kaW5n KEZhbHNlKQorKyAgICBAY3l0aG9uLmFsd2F5c19hbGxvd19rZXl3b3JkcyhGYWxzZSkKKyAgICAg ZGVmIF9fZ2V0bWV0YWNsYXNzX18oXyk6CisgICAgICAgICBmcm9tIHNhZ2UubWlzYy5pbmhlcml0 X2NvbXBhcmlzb24gaW1wb3J0IEluaGVyaXRDb21wYXJpc29uTWV0YWNsYXNzCisgICAgICAgICBy ZXR1cm4gSW5oZXJpdENvbXBhcmlzb25NZXRhY2xhc3MKK0BAIC0yMzU2LDE4ICsyMzU3LDE4IEBA IGNkZWYgY2xhc3MgRWxlbWVudFdpdGhDYWNoZWRNZXRob2QoRWxlbWVudCk6CisgICAgICAgICAg ICAgVHJ1ZQorICAgICAgICAgIiIiCisgICAgICAgICB0cnk6CistICAgICAgICAgICAgcmV0dXJu IHNlbGYuX19jYWNoZWRfbWV0aG9kc1tuYW1lXQorKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9j YWNoZWRfbWV0aG9kc1tuYW1lXQorICAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAg ICAgIGF0dHIgPSBnZXRhdHRyX2Zyb21fb3RoZXJfY2xhc3Moc2VsZiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGFyZW50LmNhdGVnb3J5KCkuZWxlbWVu dF9jbGFzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSkK Ky0gICAgICAgICAgICBzZWxmLl9fY2FjaGVkX21ldGhvZHNbbmFtZV0gPSBhdHRyCisrICAgICAg ICAgICAgc2VsZi5fY2FjaGVkX21ldGhvZHNbbmFtZV0gPSBhdHRyCisgICAgICAgICAgICAgcmV0 dXJuIGF0dHIKKyAgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6CisgICAgICAgICAgICAgYXR0ciA9 IGdldGF0dHJfZnJvbV9vdGhlcl9jbGFzcyhzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLl9wYXJlbnQuY2F0ZWdvcnkoKS5lbGVtZW50X2NsYXNzLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lKQorLSAgICAgICAg ICAgIHNlbGYuX19jYWNoZWRfbWV0aG9kcyA9IHtuYW1lIDogYXR0cn0KKysgICAgICAgICAgICBz ZWxmLl9jYWNoZWRfbWV0aG9kcyA9IHtuYW1lIDogYXR0cn0KKyAgICAgICAgICAgICByZXR1cm4g YXR0cgorIAorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3N0cnVjdHVyZS9wYXJlbnRfZ2Vucy5w eXggYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvcGFyZW50X2dlbnMucHl4CitpbmRleCBhYjUzMTMxNDQ1 OC4uY2M2ZmZhYWNlMjEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvcGFyZW50X2dl bnMucHl4CisrKysgYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvcGFyZW50X2dlbnMucHl4CitAQCAtMzcx LDcgKzM3MSw3IEBAIGNkZWYgY2xhc3MgbG9jYWx2YXJzOgorICAgICAgICAgICAgIHNlbGYuX2xh dGV4X25hbWVzID0gbGF0ZXhfbmFtZXMKKyAKKyAgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKKy0g ICAgICAgIHNlbGYuX29yaWcgPSBzZWxmLl9vYmouX190ZW1wb3JhcmlseV9jaGFuZ2VfbmFtZXMo c2VsZi5fbmFtZXMsIHNlbGYuX2xhdGV4X25hbWVzKQorKyAgICAgICAgc2VsZi5fb3JpZyA9IHNl bGYuX29iai5fdGVtcG9yYXJpbHlfY2hhbmdlX25hbWVzKHNlbGYuX25hbWVzLCBzZWxmLl9sYXRl eF9uYW1lcykKKyAKKyAgICAgZGVmIF9fZXhpdF9fKHNlbGYsIHR5cGUsIHZhbHVlLCB0cmFjZWJh Y2spOgorLSAgICAgICAgc2VsZi5fb2JqLl9fdGVtcG9yYXJpbHlfY2hhbmdlX25hbWVzKHNlbGYu X29yaWdbMF0sIHNlbGYuX29yaWdbMV0pCisrICAgICAgICBzZWxmLl9vYmouX3RlbXBvcmFyaWx5 X2NoYW5nZV9uYW1lcyhzZWxmLl9vcmlnWzBdLCBzZWxmLl9vcmlnWzFdKQorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL3N0cnVjdHVyZS9zYWdlX29iamVjdC5weXggYi9zcmMvc2FnZS9zdHJ1Y3R1cmUv c2FnZV9vYmplY3QucHl4CitpbmRleCA4NDc0MTQyZWFhMS4uMTAwMDBhZWYzOTQgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvc2FnZV9vYmplY3QucHl4CisrKysgYi9zcmMvc2FnZS9z dHJ1Y3R1cmUvc2FnZV9vYmplY3QucHl4CitAQCAtNjksNiArNjksOCBAQCBjZGVmIGNsYXNzIFNh Z2VPYmplY3Q6CisgICAgICAgICByIiIiCisgICAgICAgICBDaGFuZ2Ugc2VsZiBzbyBpdCBwcmlu dHMgYXMgeCwgd2hlcmUgeCBpcyBhIHN0cmluZy4KKyAKKysgICAgICAgIElmIHggaXMgYGBOb25l YGAsIHRoZSBleGlzdGluZyBjdXN0b20gbmFtZSBpcyByZW1vdmVkLgorKworICAgICAgICAgLi4g Tk9URTo6CisgCisgICAgICAgICAgICBUaGlzIGlzICpvbmx5KiBzdXBwb3J0ZWQgZm9yIFB5dGhv biBjbGFzc2VzIHRoYXQgZGVyaXZlCitAQCAtOTEsNiArOTMsOSBAQCBjZGVmIGNsYXNzIFNhZ2VP YmplY3Q6CisgICAgICAgICAgICAgc2FnZTogaC5yZW5hbWUoJ3heMzAwICsgLi4uJykKKyAgICAg ICAgICAgICBzYWdlOiBoCisgICAgICAgICAgICAgeF4zMDAgKyAuLi4KKysgICAgICAgICAgICBz YWdlOiBnLnJlbmFtZShOb25lKQorKyAgICAgICAgICAgIHNhZ2U6IGcKKysgICAgICAgICAgICB4 XjMgKyB4IC0gNQorIAorICAgICAgICAgUmVhbCBudW1iZXJzIGFyZSBub3QgUHl0aG9uIGNsYXNz ZXMsIHNvIHJlbmFtZSBpcyBub3Qgc3VwcG9ydGVkOjoKKyAKK0BAIC0xMTAsMTUgKzExNSwxNiBA QCBjZGVmIGNsYXNzIFNhZ2VPYmplY3Q6CisgICAgICAgICAgICBhIGxvdCBvZiBtZW1vcnkuCisg CisgICAgICAgICAgICBUbyBzdXBwb3J0IHRoZW0gZm9yIGEgc3BlY2lmaWMgY2xhc3MsIGFkZCBh CistICAgICAgICAgICBgYGNkZWYgcHVibGljIF9fY3VzdG9tX25hbWVgYCBhdHRyaWJ1dGUuCisr ICAgICAgICAgICBgYGNkZWYgcHVibGljIF9TYWdlT2JqZWN0X19jdXN0b21fbmFtZWBgIGF0dHJp YnV0ZS4KKyAgICAgICAgICIiIgorICAgICAgICAgaWYgeCBpcyBOb25lOgorLSAgICAgICAgICAg ICNpZiBoYXNhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJyk6CistICAgICAgICAgICAgIyB0aGF0 J3MgdGVzdGVkIGluIHJlc2V0X25hbWUgYW55d2F5Li4uCisgICAgICAgICAgICAgc2VsZi5yZXNl dF9uYW1lKCkKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgdHJ5OgorLSAgICAgICAgICAg ICAgICBzZWxmLl9fY3VzdG9tX25hbWUgPSBzdHIoeCkKKysgICAgICAgICAgICAgICAgIyBUT0RP OiBhZnRlciBkcm9wcGluZyBzdXBwb3J0IGZvciBDeXRob24gPCAzLjAuMCwgYWxsCisrICAgICAg ICAgICAgICAgICMgdGhlIHNlbGYuX1NhZ2VPYmplY3RfX2N1c3RvbV9uYW1lIGluIHRoaXMgY2xh c3MgY2FuIGJlCisrICAgICAgICAgICAgICAgICMgY2hhbmdlZCB0byBzZWxmLl9fY3VzdG9tX25h bWUKKysgICAgICAgICAgICAgICAgc2VsZi5fU2FnZU9iamVjdF9fY3VzdG9tX25hbWUgPSBzdHIo eCkKKyAgICAgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAgICAg IHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoIm9iamVjdCBkb2VzIG5vdCBzdXBwb3J0IHJlbmFt aW5nOiAlcyIgJSBzZWxmKQorIAorQEAgLTEzOCw4ICsxNDQsMzAgQEAgY2RlZiBjbGFzcyBTYWdl T2JqZWN0OgorICAgICAgICAgICAgIHNhZ2U6IFAKKyAgICAgICAgICAgICBVbml2YXJpYXRlIFBv bHlub21pYWwgUmluZyBpbiB4IG92ZXIgUmF0aW9uYWwgRmllbGQKKyAgICAgICAgICIiIgorLSAg ICAgICAgaWYgaGFzYXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpOgorLSAgICAgICAgICAgIGRl bCBzZWxmLl9fY3VzdG9tX25hbWUKKysgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ19TYWdlT2Jq ZWN0X19jdXN0b21fbmFtZScpOgorKyAgICAgICAgICAgIGRlbCBzZWxmLl9TYWdlT2JqZWN0X19j dXN0b21fbmFtZQorKworKyAgICBkZWYgZ2V0X2N1c3RvbV9uYW1lKHNlbGYpOgorKyAgICAgICAg IiIiCisrICAgICAgICBSZXR1cm4gdGhlIGN1c3RvbSBuYW1lIG9mIHRoaXMgb2JqZWN0LCBvciBg YE5vbmVgYCBpZiBpdCBpcyBub3QKKysgICAgICAgIHJlbmFtZWQuCisrCisrICAgICAgICBFWEFN UExFUzo6CisrCisrICAgICAgICAgICAgc2FnZTogUC48eD4gPSBRUVtdCisrICAgICAgICAgICAg c2FnZTogUC5nZXRfY3VzdG9tX25hbWUoKSBpcyBOb25lCisrICAgICAgICAgICAgVHJ1ZQorKyAg ICAgICAgICAgIHNhZ2U6IFAucmVuYW1lKCdBIHBvbHlub21pYWwgcmluZycpCisrICAgICAgICAg ICAgc2FnZTogUC5nZXRfY3VzdG9tX25hbWUoKQorKyAgICAgICAgICAgICdBIHBvbHlub21pYWwg cmluZycKKysgICAgICAgICAgICBzYWdlOiBQLnJlc2V0X25hbWUoKQorKyAgICAgICAgICAgIHNh Z2U6IFAuZ2V0X2N1c3RvbV9uYW1lKCkgaXMgTm9uZQorKyAgICAgICAgICAgIFRydWUKKysgICAg ICAgICIiIgorKyAgICAgICAgdHJ5OgorKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9TYWdlT2Jq ZWN0X19jdXN0b21fbmFtZQorKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorKyAgICAg ICAgICAgIHJldHVybiBOb25lCisgCisgICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAg ICIiIgorQEAgLTE4MSw3ICsyMDksNyBAQCBjZGVmIGNsYXNzIFNhZ2VPYmplY3Q6CisgICAgICAg ICAgICAgPHNhZ2Uuc3RydWN0dXJlLnNhZ2Vfb2JqZWN0LlNhZ2VPYmplY3Qgb2JqZWN0IGF0IC4u Lj4KKyAgICAgICAgICIiIgorICAgICAgICAgdHJ5OgorLSAgICAgICAgICAgIG5hbWUgPSBzZWxm Ll9fY3VzdG9tX25hbWUKKysgICAgICAgICAgICBuYW1lID0gc2VsZi5fU2FnZU9iamVjdF9fY3Vz dG9tX25hbWUKKyAgICAgICAgICAgICBpZiBuYW1lIGlzIG5vdCBOb25lOgorICAgICAgICAgICAg ICAgICByZXR1cm4gbmFtZQorICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL3RvcG9sb2d5L3NpbXBsaWNpYWxfc2V0LnB5IGIvc3JjL3NhZ2UvdG9w b2xvZ3kvc2ltcGxpY2lhbF9zZXQucHkKK2luZGV4IDQyY2MzZjc3NzgwLi4zZWUxNGFlMmRhOCAx MDA2NDQKKy0tLSBhL3NyYy9zYWdlL3RvcG9sb2d5L3NpbXBsaWNpYWxfc2V0LnB5CisrKysgYi9z cmMvc2FnZS90b3BvbG9neS9zaW1wbGljaWFsX3NldC5weQorQEAgLTU3MCwxMyArNTcwLDEyIEBA IGRlZiBfX2x0X18oc2VsZiwgb3RoZXIpOgorICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAg ICAgICBpZiBzZWxmLmRlZ2VuZXJhY2llcygpIGFuZCBvdGhlci5kZWdlbmVyYWNpZXMoKSBhbmQg c2VsZi5kZWdlbmVyYWNpZXMoKSAhPSBvdGhlci5kZWdlbmVyYWNpZXMoKToKKyAgICAgICAgICAg ICByZXR1cm4gc2VsZi5kZWdlbmVyYWNpZXMoKSA8IG90aGVyLmRlZ2VuZXJhY2llcygpCistICAg ICAgICBpZiBoYXNhdHRyKHNlbGYubm9uZGVnZW5lcmF0ZSgpLCAnX19jdXN0b21fbmFtZScpOgor LSAgICAgICAgICAgIGlmIGhhc2F0dHIob3RoZXIubm9uZGVnZW5lcmF0ZSgpLCAnX19jdXN0b21f bmFtZScpOgorLSAgICAgICAgICAgICAgICByZXR1cm4gc3RyKHNlbGYpIDwgc3RyKG90aGVyKQor KyAgICAgICAgaWYgc2VsZi5ub25kZWdlbmVyYXRlKCkuZ2V0X2N1c3RvbV9uYW1lKCkgaXMgbm90 IE5vbmU6CisrICAgICAgICAgICAgaWYgb3RoZXIubm9uZGVnZW5lcmF0ZSgpLmdldF9jdXN0b21f bmFtZSgpIGlzIG5vdCBOb25lOgorKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5ub25kZWdl bmVyYXRlKCkuZ2V0X2N1c3RvbV9uYW1lKCkgPCBvdGhlci5ub25kZWdlbmVyYXRlKCkuZ2V0X2N1 c3RvbV9uYW1lKCkKKyAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorIAorLSAgICAgICAgaWYgKGhh c2F0dHIob3RoZXIsICdfX2N1c3RvbV9uYW1lJykKKy0gICAgICAgICAgICAgICAgb3IgaGFzYXR0 cihvdGhlci5ub25kZWdlbmVyYXRlKCksICdfX2N1c3RvbV9uYW1lJykpOgorKyAgICAgICAgaWYg b3RoZXIubm9uZGVnZW5lcmF0ZSgpLmdldF9jdXN0b21fbmFtZSgpIGlzIG5vdCBOb25lOgorICAg ICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgcmV0dXJuIGlkKHNlbGYpIDwgaWQob3Ro ZXIpCisgCitAQCAtNzkzLDggKzc5Miw4IEBAIGRlZiBfX2NvcHlfXyhzZWxmKToKKyAgICAgICAg ICMgZGltZW5zaW9uLCB0aGUgZGVnZW5lcmFjaWVzLCBhbmQgdGhlIG5hbWUgKHdpdGggYSBwcmlt ZQorICAgICAgICAgIyBhZGRlZCkuCisgICAgICAgICBzaWdtYSA9IEFic3RyYWN0U2ltcGxleChz ZWxmLl9kaW0sIGRlZ2VuZXJhY2llcz1zZWxmLmRlZ2VuZXJhY2llcygpKQorLSAgICAgICAgaWYg aGFzYXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpOgorLSAgICAgICAgICAgIHNpZ21hLnJlbmFt ZShzdHIoc2VsZikgKyAiJyIpCisrICAgICAgICBpZiBzZWxmLmdldF9jdXN0b21fbmFtZSgpIGlz IG5vdCBOb25lOgorKyAgICAgICAgICAgIHNpZ21hLnJlbmFtZShzZWxmLmdldF9jdXN0b21fbmFt ZSgpICsgIiciKQorICAgICAgICAgcmV0dXJuIHNpZ21hCisgCisgICAgIGRlZiBfX2RlZXBjb3B5 X18oc2VsZiwgbWVtbyk6CitAQCAtODM5LDggKzgzOCw4IEBAIGRlZiBfX2RlZXBjb3B5X18oc2Vs ZiwgbWVtbyk6CisgICAgICAgICAgICAgcmV0dXJuIG1lbW9bdW5kZXJseWluZ10uYXBwbHlfZGVn ZW5lcmFjaWVzKCpkZWdlbnMpCisgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAg ICAgc2lnbWEgPSBBYnN0cmFjdFNpbXBsZXgodW5kZXJseWluZy5fZGltKQorLSAgICAgICAgICAg IGlmIGhhc2F0dHIodW5kZXJseWluZywgJ19fY3VzdG9tX25hbWUnKToKKy0gICAgICAgICAgICAg ICAgc2lnbWEucmVuYW1lKHN0cihzZWxmKSArICInIikKKysgICAgICAgICAgICBpZiB1bmRlcmx5 aW5nLmdldF9jdXN0b21fbmFtZSgpIGlzIG5vdCBOb25lOgorKyAgICAgICAgICAgICAgICBzaWdt YS5yZW5hbWUodW5kZXJseWluZy5nZXRfY3VzdG9tX25hbWUoKSArICInIikKKyAgICAgICAgICAg ICBtZW1vW3VuZGVybHlpbmddID0gc2lnbWEKKyAgICAgICAgICAgICByZXR1cm4gc2lnbWEuYXBw bHlfZGVnZW5lcmFjaWVzKCpkZWdlbnMpCisgCitAQCAtODk2LDEyICs4OTUsMTIgQEAgZGVmIF9s YXRleF8oc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIGlmIHNlbGYuX2xhdGV4X25hbWUg aXMgbm90IE5vbmU6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2xhdGV4X25hbWUKKy0gICAg ICAgIGlmIGhhc2F0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKToKKy0gICAgICAgICAgICByZXR1 cm4gc3RyKHNlbGYpCisrICAgICAgICBpZiBzZWxmLmdldF9jdXN0b21fbmFtZSgpIGlzIG5vdCBO b25lOgorKyAgICAgICAgICAgIHJldHVybiBzZWxmLmdldF9jdXN0b21fbmFtZSgpCisgICAgICAg ICBpZiBzZWxmLm5vbmRlZ2VuZXJhdGUoKS5fbGF0ZXhfbmFtZSBpcyBub3QgTm9uZToKKyAgICAg ICAgICAgICBzaW1wbGV4ID0gc2VsZi5ub25kZWdlbmVyYXRlKCkuX2xhdGV4X25hbWUKKy0gICAg ICAgIGVsaWYgaGFzYXR0cihzZWxmLm5vbmRlZ2VuZXJhdGUoKSwgJ19fY3VzdG9tX25hbWUnKToK Ky0gICAgICAgICAgICBzaW1wbGV4ID0gc3RyKHNlbGYubm9uZGVnZW5lcmF0ZSgpKQorKyAgICAg ICAgZWxpZiBzZWxmLm5vbmRlZ2VuZXJhdGUoKS5nZXRfY3VzdG9tX25hbWUoKSBpcyBub3QgTm9u ZToKKysgICAgICAgICAgICBzaW1wbGV4ID0gc2VsZi5ub25kZWdlbmVyYXRlKCkuZ2V0X2N1c3Rv bV9uYW1lKCkKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgc2ltcGxleCA9ICJcXERlbHRh Xnt7e319fSIuZm9ybWF0KHNlbGYuX2RpbSkKKyAgICAgICAgIGlmIHNlbGYuZGVnZW5lcmFjaWVz KCk6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvdG9wb2xvZ3kvc2ltcGxpY2lhbF9zZXRfY29uc3Ry dWN0aW9ucy5weSBiL3NyYy9zYWdlL3RvcG9sb2d5L3NpbXBsaWNpYWxfc2V0X2NvbnN0cnVjdGlv bnMucHkKK2luZGV4IGFlOTg4MjFkZjhhLi4zYTIxNzI4NmFjNSAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL3RvcG9sb2d5L3NpbXBsaWNpYWxfc2V0X2NvbnN0cnVjdGlvbnMucHkKKysrKyBiL3NyYy9z YWdlL3RvcG9sb2d5L3NpbXBsaWNpYWxfc2V0X2NvbnN0cnVjdGlvbnMucHkKK0BAIC0xNzYsOCAr MTc2LDcgQEAgZGVmIF9faW5pdF9fKHNlbGYsIGRhdGEsIGFtYmllbnQ9Tm9uZSk6CisgICAgICAg ICBlbHNlOgorICAgICAgICAgICAgIFNpbXBsaWNpYWxTZXRfZmluaXRlLl9faW5pdF9fKHNlbGYs IGRhdGEpCisgICAgICAgICBpZiBzZWxmID09IGFtYmllbnQ6CistICAgICAgICAgICAgaWYgaGFz YXR0cihhbWJpZW50LCAnX19jdXN0b21fbmFtZScpOgorLSAgICAgICAgICAgICAgICBzZWxmLnJl bmFtZShzdHIoYW1iaWVudCkpCisrICAgICAgICAgICAgc2VsZi5yZW5hbWUoYW1iaWVudC5nZXRf Y3VzdG9tX25hbWUoKSkKKyAgICAgICAgICAgICBzZWxmLl9sYXRleF9uYW1lID0gbGF0ZXgoYW1i aWVudCkKKyAgICAgICAgICMgV2hlbiBjb25zdHJ1Y3RpbmcgdGhlIGluY2x1c2lvbiBtYXAsIHdl IGRvIG5vdCBuZWVkIHRvIGNoZWNrCisgICAgICAgICAjIHRoZSB2YWxpZGl0eSBvZiB0aGUgbW9y cGhpc20sIGFuZCBtb3JlIGltcG9ydGFudGx5LCB3ZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9zYWdl bWF0aC9wYXRjaGVzL2J1aWxkLWN5dGhvbjMucGF0Y2ggYi9zcmNwa2dzL3NhZ2VtYXRoL3BhdGNo ZXMvYnVpbGQtY3l0aG9uMy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAwLi41N2QxYWRlODlmYzc3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9zYWdlbWF0 aC9wYXRjaGVzL2J1aWxkLWN5dGhvbjMucGF0Y2gKQEAgLTAsMCArMSw0NCBAQAorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL2V4dC9zdGRzYWdlLnB4ZCBiL3NyYy9zYWdlL2V4dC9zdGRzYWdlLnB4ZAor aW5kZXggMTVhYmUxM2I3Y2QuLmUyYmY3NDM0ZjM1IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZXh0 L3N0ZHNhZ2UucHhkCisrKysgYi9zcmMvc2FnZS9leHQvc3Rkc2FnZS5weGQKK0BAIC0xMCw3ICsx MCw3IEBAIFN0YW5kYXJkIEMgaGVscGVyIGNvZGUgZm9yIEN5dGhvbiBtb2R1bGVzCisgIyAgICAg ICAgICAgICAgICAgIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8KKyAjKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKKyAKKy1mcm9tIGNweXRob24ub2JqZWN0IGNpbXBvcnQgUHlfVFlQRSwgUHlUeXBl T2JqZWN0CisrZnJvbSBjcHl0aG9uLm9iamVjdCBjaW1wb3J0IFB5X1RZUEUsIFB5VHlwZU9iamVj dCwgUHlPYmplY3QKKyAKKyAKKyBjZGVmIGlubGluZSBQWV9ORVcodHlwZSB0KToKK0BAIC0xOSw3 ICsxOSw3IEBAIGNkZWYgaW5saW5lIFBZX05FVyh0eXBlIHQpOgorICAgICA6Y2xhc3M6YEludGVn ZXJgIHdoZXJlIHdlIGNoYW5nZSBgYHRwX25ld2BgIGF0IHJ1bnRpbWUgKEN5dGhvbgorICAgICBv cHRpbWl6YXRpb25zIGFzc3VtZSB0aGF0IGBgdHBfbmV3YGAgZG9lc24ndCBjaGFuZ2UpLgorICAg ICAiIiIKKy0gICAgcmV0dXJuICg8UHlUeXBlT2JqZWN0Kj50KS50cF9uZXcodCwgPG9iamVjdD5O VUxMLCA8b2JqZWN0Pk5VTEwpCisrICAgIHJldHVybiAoPFB5VHlwZU9iamVjdCo+dCkudHBfbmV3 KHQsIDxQeU9iamVjdCo+TlVMTCwgPFB5T2JqZWN0Kj5OVUxMKQorIAorIAorIGNkZWYgaW5saW5l IHZvaWQgUFlfU0VUX1RQX05FVyh0eXBlIGRzdCwgdHlwZSBzcmMpOgorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlX3NldHVwL2N5dGhvbl9vcHRpb25zLnB5IGIvc3JjL3NhZ2Vfc2V0dXAvY3l0aG9uX29w dGlvbnMucHkKK2luZGV4IDA4NmFhMDcwY2E5Li45NzI1Y2UwZTFhZiAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlX3NldHVwL2N5dGhvbl9vcHRpb25zLnB5CisrKysgYi9zcmMvc2FnZV9zZXR1cC9jeXRo b25fb3B0aW9ucy5weQorQEAgLTEwLDEzICsxMCwxNyBAQCBkZWYgY29tcGlsZXJfZGlyZWN0aXZl cyhwcm9maWxlOiBib29sKToKKyAgICAgICAgIGF1dG9fcGlja2xlPUZhbHNlLAorICAgICAgICAg IyBEbyBub3QgY3JlYXRlIF9fdGVzdF9fIGRpY3Rpb25hcnkgYXV0b21hdGljYWxseSBmcm9tIGRv Y3N0cmluZ3MKKyAgICAgICAgIGF1dG90ZXN0ZGljdD1GYWxzZSwKKysgICAgICAgIGJpbmRpbmc9 RmFsc2UsCisrICAgICAgICBjX2FwaV9iaW5vcF9tZXRob2RzPVRydWUsCisgICAgICAgICAjIERv IG5vdCBjaGVjayBmb3IgZGl2aXNpb24gYnkgMCAodGhpcyBpcyBhYm91dCAzNSUgcXVpY2tlciB0 aGFuIHdpdGggY2hlY2spCisgICAgICAgICBjZGl2aXNpb249VHJ1ZSwKKysgICAgICAgIGNwb3c9 VHJ1ZSwKKyAgICAgICAgICMgRW1iZWQgYSB0ZXh0dWFsIGNvcHkgb2YgdGhlIGNhbGwgc2lnbmF0 dXJlIGluIHRoZSBkb2NzdHJpbmcgKHRvIHN1cHBvcnQgdG9vbHMgbGlrZSBJUHl0aG9uKQorICAg ICAgICAgZW1iZWRzaWduYXR1cmU9VHJ1ZSwKKyAgICAgICAgIGZhc3RfZ2V0YXR0cj1UcnVlLAor ICAgICAgICAgIyBVc2UgUHl0aG9uIDMgKGluY2x1ZGluZyBzb3VyY2UgY29kZSBzZW1hbnRpY3Mp IGZvciBtb2R1bGUgY29tcGlsYXRpb24KKyAgICAgICAgIGxhbmd1YWdlX2xldmVsPSIzIiwKKysg ICAgICAgIGxlZ2FjeV9pbXBsaWNpdF9ub2V4Y2VwdD1UcnVlLAorICAgICAgICAgIyBFbmFibGUg c3VwcG9ydCBmb3IgbGF0ZSBpbmNsdWRlcyAobWFrZSBkZWNsYXJhdGlvbnMgaW4gQ3l0aG9uIGNv ZGUgYXZhaWxhYmxlIHRvIEMgaW5jbHVkZSBmaWxlcykKKyAgICAgICAgIHByZWxpbWluYXJ5X2xh dGVfaW5jbHVkZXNfY3kyOD1UcnVlLAorICAgICAgICAgIyBBZGQgaG9va3MgZm9yIFB5dGhvbiBw cm9maWxlcnMgaW50byB0aGUgY29tcGlsZWQgQyBjb2RlCmRpZmYgLS1naXQgYS9zcmNwa2dzL3Nh Z2VtYXRoL3BhdGNoZXMvZml4LWRvY3Rlc3QtY3l0aG9uMy5wYXRjaCBiL3NyY3BrZ3Mvc2FnZW1h dGgvcGF0Y2hlcy9maXgtZG9jdGVzdC1jeXRob24zLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMDAuLjRjZmYxZmIxODI4ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvZml4LWRvY3Rlc3QtY3l0aG9uMy5wYXRjaApAQCAtMCww ICsxLDIwNyBAQAorZGlmZiAtLWdpdCBhL3NyYy9kb2MvZW4vdGhlbWF0aWNfdHV0b3JpYWxzL2Nv ZXJjaW9uX2FuZF9jYXRlZ29yaWVzLnJzdCBiL3NyYy9kb2MvZW4vdGhlbWF0aWNfdHV0b3JpYWxz L2NvZXJjaW9uX2FuZF9jYXRlZ29yaWVzLnJzdAoraW5kZXggZGUyMzQ5YTlhM2YuLmJiMjMzMzFj MTUxIDEwMDY0NAorLS0tIGEvc3JjL2RvYy9lbi90aGVtYXRpY190dXRvcmlhbHMvY29lcmNpb25f YW5kX2NhdGVnb3JpZXMucnN0CisrKysgYi9zcmMvZG9jL2VuL3RoZW1hdGljX3R1dG9yaWFscy9j b2VyY2lvbl9hbmRfY2F0ZWdvcmllcy5yc3QKK0BAIC0xMDUsNyArMTA1LDcgQEAgaXQgbWFrZXMg c2Vuc2UgdG8gYnVpbGQgb24gdG9wIG9mIHRoZSBiYXNlIGNsYXNzCisgVGhpcyBiYXNlIGNsYXNz IHByb3ZpZGVzIGEgbG90IG1vcmUgbWV0aG9kcyB0aGFuIGEgZ2VuZXJhbCBwYXJlbnQ6OgorIAor ICAgICBzYWdlOiBbcCBmb3IgcCBpbiBkaXIoRmllbGQpIGlmIHAgbm90IGluIGRpcihQYXJlbnQp XQorLSAgICBbJ19fZnJhY3Rpb25fZmllbGQnLAorKyAgICBbJ19Db21tdXRhdGl2ZVJpbmdfX2Zy YWN0aW9uX2ZpZWxkJywKKyAgICAgICdfX2l0ZXJfXycsCisgICAgICAnX19sZW5fXycsCisgICAg ICAnX19yeG9yX18nLAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2FyaXRoL3NyYW5nZS5weXggYi9z cmMvc2FnZS9hcml0aC9zcmFuZ2UucHl4CitpbmRleCAxNTZlNTQ4YTExYS4uMTMyY2Y5M2QwODUg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9hcml0aC9zcmFuZ2UucHl4CisrKysgYi9zcmMvc2FnZS9h cml0aC9zcmFuZ2UucHl4CitAQCAtODQsNyArODQsNyBAQCBkZWYgeHNyYW5nZShzdGFydCwgZW5k PU5vbmUsIHN0ZXA9MSwgdW5pdmVyc2U9Tm9uZSwgKiwgY29lcmNlPVRydWUsIGJpbnQgaW5jbHVk ZQorICAgICBFWEFNUExFUzo6CisgCisgICAgICAgICBzYWdlOiB4c3JhbmdlKDEwKQorLSAgICAg ICAgPGdlbmVyYXRvciBvYmplY3QgYXQgMHguLi4+CisrICAgICAgICA8Li4uZ2VuZXJhdG9yIG9i amVjdCBhdCAweC4uLj4KKyAgICAgICAgIHNhZ2U6IGZvciBpIGluIHhzcmFuZ2UoMSw1KToKKyAg ICAgICAgIC4uLi46ICAgICBwcmludChpKQorICAgICAgICAgMQorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL2NvbWJpbmF0L3Nsb2FuZV9mdW5jdGlvbnMucHkgYi9zcmMvc2FnZS9jb21iaW5hdC9zbG9h bmVfZnVuY3Rpb25zLnB5CitpbmRleCBjM2NmOTI5OTA5My4uZTVjOTliNzFmZTcgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9jb21iaW5hdC9zbG9hbmVfZnVuY3Rpb25zLnB5CisrKysgYi9zcmMvc2Fn ZS9jb21iaW5hdC9zbG9hbmVfZnVuY3Rpb25zLnB5CitAQCAtOTE2OSw3ICs5MTY5LDcgQEAgY2xh c3MgU2xvYW5lKFNhZ2VPYmplY3QpOgorICAgICAgICAgOjoKKyAKKyAgICAgICAgICAgICBzYWdl OiBzbG9hbmUuX19yZXByX18KKy0gICAgICAgICAgICA8bWV0aG9kLXdyYXBwZXIgJ19fcmVwcl9f JyBvZiBTbG9hbmUgb2JqZWN0IGF0IDB4Li4uPgorKyAgICAgICAgICAgIDxidWlsdC1pbiBtZXRo b2QgX19yZXByX18gb2YgU2xvYW5lIG9iamVjdCBhdCAweC4uLj4KKyAgICAgICAgICAgICBzYWdl OiBzbG9hbmUuX19uYW1lX18KKyAgICAgICAgICAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh bGwgbGFzdCk6CisgICAgICAgICAgICAgLi4uCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWlzYy9j YWNoZWZ1bmMucHl4IGIvc3JjL3NhZ2UvbWlzYy9jYWNoZWZ1bmMucHl4CitpbmRleCA4YWEzMGE4 NTI3Mi4uMmIxZDM4YzEyYjkgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9taXNjL2NhY2hlZnVuYy5w eXgKKysrKyBiL3NyYy9zYWdlL21pc2MvY2FjaGVmdW5jLnB5eAorQEAgLTUwLDcgKzUwLDcgQEAg YmUgdXNlZDo6CisgICAgIHNhZ2U6IGN5dGhvbignJydjcGRlZiB0ZXN0X2Z1bmN0KHgpOiByZXR1 cm4gLXgnJycpICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsIC0gc2FnZS5taXNj LmN5dGhvbgorICAgICBzYWdlOiB3cmFwcGVkX2Z1bmN0ID0gY2FjaGVkX2Z1bmN0aW9uKHRlc3Rf ZnVuY3QsIG5hbWU9J3dyYXBwZWRfZnVuY3QnKSAgICAgIyBvcHRpb25hbCAtIHNhZ2UubWlzYy5j eXRob24KKyAgICAgc2FnZTogd3JhcHBlZF9mdW5jdCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwgLSBzYWdlLm1pc2MuY3l0 aG9uCistICAgIENhY2hlZCB2ZXJzaW9uIG9mIDxidWlsdC1pbiBmdW5jdGlvbiB0ZXN0X2Z1bmN0 PgorKyAgICBDYWNoZWQgdmVyc2lvbiBvZiA8Y3lmdW5jdGlvbiB0ZXN0X2Z1bmN0IGF0IC4uLj4K KyAgICAgc2FnZTogd3JhcHBlZF9mdW5jdC5fX25hbWVfXyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwgLSBzYWdlLm1pc2MuY3l0aG9uCisg ICAgICd3cmFwcGVkX2Z1bmN0JworICAgICBzYWdlOiB3cmFwcGVkX2Z1bmN0KDUpICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCAt IHNhZ2UubWlzYy5jeXRob24KK0BAIC04Miw5ICs4Miw5IEBAIGFwcHJvYWNoIGlzIHN0aWxsIG5l ZWRlZCBmb3IgY3BkZWYgbWV0aG9kczo6CisgICAgIHNhZ2U6IGN5dGhvbihvcy5saW5lc2VwLmpv aW4oY3l0aG9uX2NvZGUpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlv bmFsIC0gc2FnZS5taXNjLmN5dGhvbgorICAgICBzYWdlOiBPID0gTXlDbGFzcygpICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25h bCAtIHNhZ2UubWlzYy5jeXRob24KKyAgICAgc2FnZTogTy5kaXJlY3RfbWV0aG9kICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwg LSBzYWdlLm1pc2MuY3l0aG9uCistICAgIENhY2hlZCB2ZXJzaW9uIG9mIDxtZXRob2QgJ2RpcmVj dF9tZXRob2QnIG9mICcuLi5NeUNsYXNzJyBvYmplY3RzPgorKyAgICBDYWNoZWQgdmVyc2lvbiBv ZiA8Y3lmdW5jdGlvbiBNeUNsYXNzLmRpcmVjdF9tZXRob2QgYXQgLi4uPgorICAgICBzYWdlOiBP LndyYXBwZWRfbWV0aG9kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIyBvcHRpb25hbCAtIHNhZ2UubWlzYy5jeXRob24KKy0gICAgQ2FjaGVkIHZl cnNpb24gb2YgPGJ1aWx0LWluIGZ1bmN0aW9uIHRlc3RfbWV0aD4KKysgICAgQ2FjaGVkIHZlcnNp b24gb2YgPGN5ZnVuY3Rpb24gdGVzdF9tZXRoIGF0IC4uLj4KKyAgICAgc2FnZTogTy53cmFwcGVk X21ldGhvZC5fX25hbWVfXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICMgb3B0aW9uYWwgLSBzYWdlLm1pc2MuY3l0aG9uCisgICAgICd3cmFwcGVkX21ldGhvZCcK KyAgICAgc2FnZTogTy53cmFwcGVkX21ldGhvZCg1KSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwgLSBzYWdlLm1pc2MuY3l0aG9uCitA QCAtMjcwLDYgKzI3MCw3IEBAIEludHJvc3BlY3Rpb24gd29ya3M6OgorICAgICAgICAgInNvbWUg ZG9jIGZvciBhIHdyYXBwZWQgY3l0aG9uIG1ldGhvZCIKKyAgICAgICAgIHJldHVybiAteAorICAg ICBzYWdlOiBwcmludChzYWdlX2dldHNvdXJjZShPLmRpcmVjdF9tZXRob2QpKSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCAtIHNhZ2UubWlzYy5jeXRob24KKysgICAg QGNhY2hlZF9tZXRob2QKKyAgICAgZGVmIGRpcmVjdF9tZXRob2Qoc2VsZiwgeCk6CisgICAgICAg ICAiU29tZSBkb2MgZm9yIGRpcmVjdCBtZXRob2QiCisgICAgICAgICByZXR1cm4gMip4CitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvbWlzYy9sYXp5X2ltcG9ydC5weXggYi9zcmMvc2FnZS9taXNjL2xh enlfaW1wb3J0LnB5eAoraW5kZXggYzMzYTFlNzRlZmQuLjdmYzczNDA3YWNlIDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvbWlzYy9sYXp5X2ltcG9ydC5weXgKKysrKyBiL3NyYy9zYWdlL21pc2MvbGF6 eV9pbXBvcnQucHl4CitAQCAtMTA5NSw3ICsxMDk1LDcgQEAgZGVmIGxhenlfaW1wb3J0KG1vZHVs ZSwgbmFtZXMsIGFzXz1Ob25lLCAqLAorICAgICAgICAgc2FnZTogZnJvbSBzYWdlLmZlYXR1cmVz IGltcG9ydCBQeXRob25Nb2R1bGUKKyAgICAgICAgIHNhZ2U6IGxhenlfaW1wb3J0KCdwcGwnLCAn ZXF1YXRpb24nLCBmZWF0dXJlPVB5dGhvbk1vZHVsZSgncHBsJywgc3BrZz0ncHBscHknLCB0eXBl PSdzdGFuZGFyZCcpKQorICAgICAgICAgc2FnZTogZXF1YXRpb24KKy0gICAgICAgIDxidWlsdC1p biBmdW5jdGlvbiBlcXVhdGlvbj4KKysgICAgICAgIDxjeWZ1bmN0aW9uIGVxdWF0aW9uIGF0IC4u Lj4KKyAgICAgICAgIHNhZ2U6IGxhenlfaW1wb3J0KCdQeU5vcm1hbGl6JywgJ05tekxpc3RDb25l UHJvcGVydGllcycsIGZlYXR1cmU9UHl0aG9uTW9kdWxlKCdQeU5vcm1hbGl6Jywgc3BrZz0ncHlu b3JtYWxpeicpKSAgIyBvcHRpb25hbCAtIHB5bm9ybWFsaXoKKyAgICAgICAgIHNhZ2U6IE5tekxp c3RDb25lUHJvcGVydGllcyAgIyBvcHRpb25hbCAtIHB5bm9ybWFsaXoKKyAgICAgICAgIDxidWls dC1pbiBmdW5jdGlvbiBObXpMaXN0Q29uZVByb3BlcnRpZXM+CitkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvbWlzYy9sYXp5X2xpc3QucHl4IGIvc3JjL3NhZ2UvbWlzYy9sYXp5X2xpc3QucHl4CitpbmRl eCBiYTYyYzQ0NmI2OS4uY2Q3NTA5MzM4NjAgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9taXNjL2xh enlfbGlzdC5weXgKKysrKyBiL3NyYy9zYWdlL21pc2MvbGF6eV9saXN0LnB5eAorQEAgLTY3OCw3 ICs2NzgsNyBAQCBjZGVmIGNsYXNzIGxhenlfbGlzdF9nZW5lcmljKCk6CisgICAgICAgICAgICAg c2FnZTogZnJvbSBpdGVydG9vbHMgaW1wb3J0IGNvdW50CisgICAgICAgICAgICAgc2FnZTogZnJv bSBzYWdlLm1pc2MubGF6eV9saXN0IGltcG9ydCBsYXp5X2xpc3QKKyAgICAgICAgICAgICBzYWdl OiBpdGVyKGxhenlfbGlzdChjb3VudCgpKSkKKy0gICAgICAgICAgICA8Z2VuZXJhdG9yIG9iamVj dCBhdCAweC4uLj4KKysgICAgICAgICAgICA8Li4uZ2VuZXJhdG9yIG9iamVjdCBhdCAweC4uLj4K KyAKKyAgICAgICAgIDo6CisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWlzYy9zYWdlaW5zcGVj dC5weSBiL3NyYy9zYWdlL21pc2Mvc2FnZWluc3BlY3QucHkKK2luZGV4IGNlNWU5OTg3MDI3Li5k ZjhlNmJmODlhYyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21pc2Mvc2FnZWluc3BlY3QucHkKKysr KyBiL3NyYy9zYWdlL21pc2Mvc2FnZWluc3BlY3QucHkKK0BAIC03Niw4ICs3Niw4IEBAIEN5dGhv biBmdW5jdGlvbnM6OgorICAgICBzYWdlOiBzYWdlX2dldGRvYyhzYWdlLnJpbmdzLnJhdGlvbmFs Lm1ha2VfcmF0aW9uYWwpLmxzdHJpcCgpCisgICAgICdNYWtlIGEgcmF0aW9uYWwgbnVtYmVyIC4u LicKKyAKKy0gICAgc2FnZTogc2FnZV9nZXRzb3VyY2Uoc2FnZS5yaW5ncy5yYXRpb25hbC5tYWtl X3JhdGlvbmFsKVs0Ol0KKy0gICAgJ21ha2VfcmF0aW9uYWwocyk6Li4uJworKyAgICBzYWdlOiBz YWdlX2dldHNvdXJjZShzYWdlLnJpbmdzLnJhdGlvbmFsLm1ha2VfcmF0aW9uYWwpCisrICAgICdA Y3l0aG9uLmJpbmRpbmcoVHJ1ZSlcbmRlZiBtYWtlX3JhdGlvbmFsKHMpOi4uLicKKyAKKyBQeXRo b24gZnVuY3Rpb25zOjoKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tb2R1bGVzL2ZyZWVfbW9k dWxlX2VsZW1lbnQucHl4IGIvc3JjL3NhZ2UvbW9kdWxlcy9mcmVlX21vZHVsZV9lbGVtZW50LnB5 eAoraW5kZXggZDVlODI1NmI2OGMuLmM5YWY5YmNiZGY3IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv bW9kdWxlcy9mcmVlX21vZHVsZV9lbGVtZW50LnB5eAorKysrIGIvc3JjL3NhZ2UvbW9kdWxlcy9m cmVlX21vZHVsZV9lbGVtZW50LnB5eAorQEAgLTE2MzQsNyArMTYzNCw3IEBAIGNkZWYgY2xhc3Mg RnJlZU1vZHVsZUVsZW1lbnQoVmVjdG9yKTogICAjIGFic3RyYWN0IGJhc2UgY2xhc3MKKyAKKyAg ICAgICAgICAgICBzYWdlOiB2ID0gdmVjdG9yKFsxLDIvMyxwaV0pCisgICAgICAgICAgICAgc2Fn ZTogdi5pdGVtcygpCistICAgICAgICAgICAgPGdlbmVyYXRvciBvYmplY3QgYXQgLi4uPgorKyAg ICAgICAgICAgIDwuLi5nZW5lcmF0b3Igb2JqZWN0IGF0IC4uLj4KKyAgICAgICAgICAgICBzYWdl OiBsaXN0KHYuaXRlbXMoKSkKKyAgICAgICAgICAgICBbKDAsIDEpLCAoMSwgMi8zKSwgKDIsIHBp KV0KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvZmluaXRlX2Zp ZWxkX2Jhc2UucHl4IGIvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2Zpbml0ZV9maWVsZF9i YXNlLnB5eAoraW5kZXggN2UyZWVkOTExNTMuLjNhNmRiODk5NWM2IDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2Zpbml0ZV9maWVsZF9iYXNlLnB5eAorKysrIGIvc3Jj L3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2Zpbml0ZV9maWVsZF9iYXNlLnB5eAorQEAgLTMyOCw3 ICszMjgsNyBAQCBjZGVmIGNsYXNzIEZpbml0ZUZpZWxkKEZpZWxkKToKKyAgICAgICAgICAgICBz YWdlOiBwID0gbmV4dF9wcmltZSgyXjY0KQorICAgICAgICAgICAgIHNhZ2U6IGsuPGE+ID0gRmlu aXRlRmllbGQocF4yLCBpbXBsPSJwYXJpIikKKyAgICAgICAgICAgICBzYWdlOiBpdCA9IGl0ZXIo ayk7IGl0CistICAgICAgICAgICAgPGdlbmVyYXRvciBvYmplY3QgYXQgLi4uPgorKyAgICAgICAg ICAgIDwuLi5nZW5lcmF0b3Igb2JqZWN0IGF0IC4uLj4KKyAgICAgICAgICAgICBzYWdlOiBbbmV4 dChpdCkgZm9yIGkgaW4gcmFuZ2UoMTApXQorICAgICAgICAgICAgIFswLCAxLCAyLCAzLCA0LCA1 LCA2LCA3LCA4LCA5XQorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwv c2tld19wb2x5bm9taWFsX2Zpbml0ZV9maWVsZC5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9t aWFsL3NrZXdfcG9seW5vbWlhbF9maW5pdGVfZmllbGQucHl4CitpbmRleCA0MTk1MTY4NzkzOS4u YzZiNjdjYmE1ZmIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3NrZXdf cG9seW5vbWlhbF9maW5pdGVfZmllbGQucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9t aWFsL3NrZXdfcG9seW5vbWlhbF9maW5pdGVfZmllbGQucHl4CitAQCAtNjI5LDcgKzYyOSw3IEBA IGNkZWYgY2xhc3MgU2tld1BvbHlub21pYWxfZmluaXRlX2ZpZWxkX2RlbnNlKFNrZXdQb2x5bm9t aWFsX2Zpbml0ZV9vcmRlcl9kZW5zZSk6CisgICAgICAgICAgICAgc2FnZTogUy48eD4gPSBrWyd4 JyxGcm9iXQorICAgICAgICAgICAgIHNhZ2U6IGEgPSB4XjQgKyAyKnQqeF4zICsgMyp0XjIqeF4y ICsgKHReMiArIHQgKyAxKSp4ICsgNCp0ICsgMworICAgICAgICAgICAgIHNhZ2U6IGl0ZXIgPSBh LnJpZ2h0X2lycmVkdWNpYmxlX2Rpdmlzb3JzKCk7IGl0ZXIKKy0gICAgICAgICAgICA8Z2VuZXJh dG9yIG9iamVjdCBhdCAweC4uLj4KKysgICAgICAgICAgICA8Li4uZ2VuZXJhdG9yIG9iamVjdCBh dCAweC4uLj4KKyAgICAgICAgICAgICBzYWdlOiBuZXh0KGl0ZXIpICAgIyByYW5kb20KKyAgICAg ICAgICAgICB4ICsgMip0XjIgKyA0KnQgKyA0CisgICAgICAgICAgICAgc2FnZTogbmV4dChpdGVy KSAgICMgcmFuZG9tCitAQCAtNjY0LDcgKzY2NCw3IEBAIGNkZWYgY2xhc3MgU2tld1BvbHlub21p YWxfZmluaXRlX2ZpZWxkX2RlbnNlKFNrZXdQb2x5bm9taWFsX2Zpbml0ZV9vcmRlcl9kZW5zZSk6 CisgICAgICAgICAgICAgc2FnZTogUy48eD4gPSBrWyd4JyxGcm9iXQorICAgICAgICAgICAgIHNh Z2U6IGEgPSB4XjQgKyAyKnQqeF4zICsgMyp0XjIqeF4yICsgKHReMiArIHQgKyAxKSp4ICsgNCp0 ICsgMworICAgICAgICAgICAgIHNhZ2U6IGl0ZXIgPSBhLmxlZnRfaXJyZWR1Y2libGVfZGl2aXNv cnMoKTsgaXRlcgorLSAgICAgICAgICAgIDxnZW5lcmF0b3Igb2JqZWN0IGF0IDB4Li4uPgorKyAg ICAgICAgICAgIDwuLi5nZW5lcmF0b3Igb2JqZWN0IGF0IDB4Li4uPgorICAgICAgICAgICAgIHNh Z2U6IG5leHQoaXRlcikgICMgcmFuZG9tCisgICAgICAgICAgICAgeCArIDMqdCArIDMKKyAgICAg ICAgICAgICBzYWdlOiBuZXh0KGl0ZXIpICAjIHJhbmRvbQorQEAgLTEwNTIsNyArMTA1Miw3IEBA IGNkZWYgY2xhc3MgU2tld1BvbHlub21pYWxfZmluaXRlX2ZpZWxkX2RlbnNlKFNrZXdQb2x5bm9t aWFsX2Zpbml0ZV9vcmRlcl9kZW5zZSk6CisgICAgICAgICAgICAgc2FnZTogUy48eD4gPSBrWyd4 JyxGcm9iXQorICAgICAgICAgICAgIHNhZ2U6IGEgPSB4XjMgKyAodF4yICsgMSkqeF4yICsgKDIq dCArIDMpKnggKyB0XjIgKyB0ICsgMgorICAgICAgICAgICAgIHNhZ2U6IGl0ZXIgPSBhLmZhY3Rv cml6YXRpb25zKCk7IGl0ZXIKKy0gICAgICAgICAgICA8Z2VuZXJhdG9yIG9iamVjdCBhdCAweC4u Lj4KKysgICAgICAgICAgICA8Li4uZ2VuZXJhdG9yIG9iamVjdCBhdCAweC4uLj4KKyAgICAgICAg ICAgICBzYWdlOiBuZXh0KGl0ZXIpICAgIyByYW5kb20KKyAgICAgICAgICAgICAoeCArIDMqdF4y ICsgNCp0KSAqICh4ICsgMip0XjIpICogKHggKyA0KnReMiArIDQqdCArIDIpCisgICAgICAgICAg ICAgc2FnZTogbmV4dChpdGVyKSAgICMgcmFuZG9tCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3Ry dWN0dXJlL2NvZXJjZV9kaWN0LnB5eCBiL3NyYy9zYWdlL3N0cnVjdHVyZS9jb2VyY2VfZGljdC5w eXgKK2luZGV4IGEyZTg0NDMwODRjLi5lZjg2YzZhZjM1YyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L3N0cnVjdHVyZS9jb2VyY2VfZGljdC5weXgKKysrKyBiL3NyYy9zYWdlL3N0cnVjdHVyZS9jb2Vy Y2VfZGljdC5weXgKK0BAIC03NzcsNyArNzc3LDcgQEAgY2RlZiBjbGFzcyBNb25vRGljdDoKKyAg ICAgICAgICAgICBzYWdlOiBMWzFdID0gTm9uZQorICAgICAgICAgICAgIHNhZ2U6IExbMl0gPSBU cnVlCisgICAgICAgICAgICAgc2FnZTogTC5pdGVtcygpCistICAgICAgICAgICAgPGdlbmVyYXRv ciBvYmplY3QgYXQgLi4uPgorKyAgICAgICAgICAgIDwuLi5nZW5lcmF0b3Igb2JqZWN0IGF0IC4u Lj4KKyAgICAgICAgICAgICBzYWdlOiBzb3J0ZWQoTC5pdGVtcygpKQorICAgICAgICAgICAgIFso MSwgTm9uZSksICgyLCBUcnVlKV0KKyAgICAgICAgICIiIgorQEAgLTE0NTIsNyArMTQ1Miw3IEBA IGNkZWYgY2xhc3MgVHJpcGxlRGljdDoKKyAgICAgICAgICAgICBzYWdlOiBMID0gVHJpcGxlRGlj dCgpCisgICAgICAgICAgICAgc2FnZTogTFsxLDIsM10gPSBOb25lCisgICAgICAgICAgICAgc2Fn ZTogTC5pdGVtcygpCistICAgICAgICAgICAgPGdlbmVyYXRvciBvYmplY3QgYXQgLi4uPgorKyAg ICAgICAgICAgIDwuLi5nZW5lcmF0b3Igb2JqZWN0IGF0IC4uLj4KKyAgICAgICAgICAgICBzYWdl OiBsaXN0KEwuaXRlbXMoKSkKKyAgICAgICAgICAgICBbKCgxLCAyLCAzKSwgTm9uZSldCisgICAg ICAgICAiIiIKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS90ZXN0cy9jbWRsaW5lLnB5IGIvc3JjL3Nh Z2UvdGVzdHMvY21kbGluZS5weQoraW5kZXggYWQwYzQ0YWEyNzQuLmYxNGNkMmRiNzY4IDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvdGVzdHMvY21kbGluZS5weQorKysrIGIvc3JjL3NhZ2UvdGVzdHMv Y21kbGluZS5weQorQEAgLTQ5MSw5ICs0OTEsOCBAQCBkZWYgdGVzdF9leGVjdXRhYmxlKGFyZ3Ms IGlucHV0PSIiLCB0aW1lb3V0PTEwMC4wLCBweWRlYnVnX2lnbm9yZV93YXJuaW5ncz1GYWxzZQor IAorICAgICAgICAgc2FnZTogKG91dCwgZXJyLCByZXQpID0gdGVzdF9leGVjdXRhYmxlKFsic2Fn ZSIsICItLWN5dGhvbiJdKQorICAgICAgICAgc2FnZTogcHJpbnQoZXJyKQorLSAgICAgICAgQ3l0 aG9uIChodHRwOi8vY3l0aG9uLm9yZykgaXMgYSBjb21waWxlciBmb3IgY29kZSB3cml0dGVuIGlu IHRoZQorLSAgICAgICAgQ3l0aG9uIGxhbmd1YWdlLiAgQ3l0aG9uIGlzIGJhc2VkIG9uIFB5cmV4 IGJ5IEdyZWcgRXdpbmcuCisgICAgICAgICAuLi4KKysgICAgICAgIGN5dGhvbjogZXJyb3I6IGN5 dGhvbjogTmVlZCBhdCBsZWFzdCBvbmUgc291cmNlIGZpbGUKKyAKKyAgICAgICAgIHNhZ2U6IGRl ZiBoYXNfdHR5KCk6CisgICAgICAgICAuLi4uOiAgICAgdHJ5OgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9zYWdlbWF0aC9wYXRjaGVzL2dldF9wYXRjaGVzIGIvc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVz L2dldF9wYXRjaGVzCmluZGV4IDk1YTY5NjM0MzI5NDguLjY0ZmZlMTRkMTVlYjUgMTAwNzU1Ci0t LSBhL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy9nZXRfcGF0Y2hlcworKysgYi9zcmNwa2dzL3Nh Z2VtYXRoL3BhdGNoZXMvZ2V0X3BhdGNoZXMKQEAgLTEyLDcgKzEyLDcgQEAgZXNhYwogIyBnZXRf cHIgPFBSIG51bWJlcj4gPGRlc2NyaXB0aW9uPiBbZXh0XQogZ2V0X3ByKCkgewogCXByPSQxCi0J ZGVzYz0kKGVjaG8gIiQyIiB8IHNlZCAtZSAncy8gL18vZycpCisJZGVzYz0kKGVjaG8gIiQyIiB8 IHRyICcgLycgJ18tJykKIAlleHQ9JHszLWRpZmZ9CiAJJERPIHdnZXQgIiRVUkxfQkFTRV9QUiRw ci4kZXh0IiAtTyAiJHByLSRkZXNjLnBhdGNoIgogfQpAQCAtMjYsNiArMjYsNyBAQCBnZXRfcHIg IDM2MDQ2ICAgImZpeCBtZW1vcnkgbGVhayIKIAogIyBtZXJnZWQgaW4gMTAuMi5iZXRhMQogZ2V0 X3ByICAzNTkzNCAgICJzaW5ndWxhciA0LjMuMnA3IgorZ2V0X3ByICAzNjEwOSAgICJwcmVwYXJl IGZvciBjeXRob24gMy4wIiAjIGluY2x1ZGVkIGluICMzNjExMAogCiAjIG1lcmdlZCBpbiAxMC4y LmJldGEyCiBnZXRfcHIgIDM2MDA2ICAgImdtcCA2LjMuMCIKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv c2FnZW1hdGgvdGVtcGxhdGUgYi9zcmNwa2dzL3NhZ2VtYXRoL3RlbXBsYXRlCmluZGV4IGE4MGQ4 YjcxODdlY2UuLmJhOGJkOTRkODM1ZDYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvc2FnZW1hdGgvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9zYWdlbWF0aC90ZW1wbGF0ZQpAQCAtMSwxMiArMSwxMiBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnc2FnZW1hdGgnCiBwa2duYW1lPXNhZ2VtYXRoCiB2ZXJzaW9u PTEwLjEKLXJldmlzaW9uPTQKK3JldmlzaW9uPTUKIGJ1aWxkX3dya3NyYz1wa2dzL3NhZ2VtYXRo LXN0YW5kYXJkCiBidWlsZF9zdHlsZT1weXRob24zLW1vZHVsZQogX2JpbmRpcj0vdXNyL2xpYi9z YWdlbWF0aC8kdmVyc2lvbi9iaW4KIG1ha2VfaW5zdGFsbF9hcmdzPSItLWluc3RhbGwtc2NyaXB0 cz0kX2JpbmRpciIKLWhvc3RtYWtlZGVwZW5kcz0ibTQgcGtnLWNvbmZpZyBweXRob24zLUN5dGhv bjAuMjkgcHl0aG9uMy1KaW5qYTIKK2hvc3RtYWtlZGVwZW5kcz0ibTQgcGtnLWNvbmZpZyBweXRo b24zLUN5dGhvbiBweXRob24zLUppbmphMgogIHB5dGhvbjMtcGtnY29uZmlnIHB5dGhvbjMtc2V0 dXB0b29scyIKIG1ha2VkZXBlbmRzPSJhcmItZGV2ZWwgYm9vc3QtZGV2ZWwgYnJpYWwtZGV2ZWwg Y2xpcXVlci1kZXZlbCBlY2wgZWNsaWItZGV2ZWwKICBlY20tZGV2ZWwgZmZsYXMtZmZwYWNrIGZs aW50bGliLWRldmVsIGdhcC1kZXZlbCBnZC1kZXZlbCBnaWFjLWRldmVsIGdscGstZGV2ZWwKQEAg LTE4LDcgKzE4LDcgQEAgbWFrZWRlcGVuZHM9ImFyYi1kZXZlbCBib29zdC1kZXZlbCBicmlhbC1k ZXZlbCBjbGlxdWVyLWRldmVsIGVjbCBlY2xpYi1kZXZlbAogZGVwZW5kcz0iZWNsaWItZGV2ZWwg ZmZsYXMtZmZwYWNrIGZsaW50bGliLWRldmVsIGdjYy1mb3J0cmFuIGdkLWRldmVsCiAgZ2ZhbiBn aWFjIGdzbC1kZXZlbCBnemlwIGxpYnBuZy1kZXZlbCBsaW5ib3gtZGV2ZWwgbTRyaS1kZXZlbCBt YXhpbWEtZWNsCiAgbXBmci1kZXZlbCBuYXV0eSBudGwtZGV2ZWwgcGFscCBwYXJpLWRldmVsIHBh cmktZWxsZGF0YS1zbWFsbCBwYXJpLWdhbGRhdGEKLSBwYXJpLWdhbHBvbC1zbWFsbCBwYXJpLXNl YWRhdGEtc21hbGwgcGtnLWNvbmZpZyBweXRob24zLUN5dGhvbjAuMjkgcHl0aG9uMy1jeXBhcmky CisgcGFyaS1nYWxwb2wtc21hbGwgcGFyaS1zZWFkYXRhLXNtYWxsIHBrZy1jb25maWcgcHl0aG9u My1DeXRob24gcHl0aG9uMy1jeXBhcmkyCiAgcHl0aG9uMy1jeXNpZ25hbHMgcHl0aG9uMy1kZXZl bCBweXRob24zLWZweWxsbCBweXRob24zLWlweXRob24gcHl0aG9uMy1scmNhbGMKICBweXRob24z LWlweXRob25faXB5a2VybmVsIHB5dGhvbjMtanVweXRlcl9pcHl3aWRnZXRzIHB5dGhvbjMtbWF0 cGxvdGxpYgogIHB5dGhvbjMtbWVtb3J5X2FsbG9jYXRvciBweXRob24zLW5ldHdvcmt4IHB5dGhv bjMtcGlwIHB5dGhvbjMtcGtnY29uZmlnCg== --===============3632186177541119468==--