From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 4999 invoked from network); 2 Sep 2023 22:37:28 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 2 Sep 2023 22:37:28 -0000 Content-Type: multipart/mixed; boundary="===============6342409605305210382==" 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: Sun, 03 Sep 2023 00:37:28 +0200 List-Id: Message-ID: <20230902223728.xnttX4hsETCW87YPuFnmnB2uGY-DqRA6ke28vjeAPnU@z> GitHub notification mails are now in MIME to allow UTF8. --===============6342409605305210382== 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 --===============6342409605305210382== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-sagemath-cython3-45887.patch" RnJvbSAxZDFlYjNiZmJiMjgzZGIzYjMyYzBlMTE3N2Y0NmU5ZGQ0ZDA4NmUzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/R29uemFsbz0yMFRvcm5hcj1DMz1BRGE/PSA8 dG9ybmFyaWFAY21hdC5lZHUudXk+CkRhdGU6IFdlZCwgMTkgSnVsIDIwMjMgMjE6MDQ6MzMgLTAz MDAKU3ViamVjdDogW1BBVENIIDEvMl0gcHl0aG9uMy1wcGxweTogcGF0Y2ggYW5kIHJlYnVpbGQg Zm9yIEN5dGhvbiAzCgotLS0KIC4uLjg1MzdmYTdlYTA2MWViYjhkNTEzMWIxZTIzNjczZWFmNzQx ZC5wYXRjaCB8IDIyICsrKysrKysrKysrKysrKysrKwogLi4uL3BhdGNoZXMvY3l0aG9uMy1sZWdh Y3kucGF0Y2ggICAgICAgICAgICAgIHwgMjMgKysrKysrKysrKysrKysrKysrKwogc3JjcGtncy9w eXRob24zLXBwbHB5L3RlbXBsYXRlICAgICAgICAgICAgICAgIHwgIDQgKystLQogMyBmaWxlcyBj aGFuZ2VkLCA0NyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvcHl0aG9uMy1wcGxweS9wYXRjaGVzL2FhYTI4NTM3ZmE3ZWEwNjFlYmI4ZDUx MzFiMWUyMzY3M2VhZjc0MWQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3B5dGhv bjMtcHBscHkvcGF0Y2hlcy9jeXRob24zLWxlZ2FjeS5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvcHl0aG9uMy1wcGxweS9wYXRjaGVzL2FhYTI4NTM3ZmE3ZWEwNjFlYmI4ZDUxMzFiMWUyMzY3 M2VhZjc0MWQucGF0Y2ggYi9zcmNwa2dzL3B5dGhvbjMtcHBscHkvcGF0Y2hlcy9hYWEyODUzN2Zh N2VhMDYxZWJiOGQ1MTMxYjFlMjM2NzNlYWY3NDFkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMDAuLjIxYmMyYTUyMTRkZjQKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL3B5dGhvbjMtcHBscHkvcGF0Y2hlcy9hYWEyODUzN2ZhN2VhMDYxZWJiOGQ1MTMxYjFl MjM2NzNlYWY3NDFkLnBhdGNoCkBAIC0wLDAgKzEsMjIgQEAKK0Zyb20gYWFhMjg1MzdmYTdlYTA2 MWViYjhkNTEzMWIxZTIzNjczZWFmNzQxZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206 IE1hdHRoaWFzIEtvZXBwZSA8bWtvZXBwZUBtYXRoLnVjZGF2aXMuZWR1PgorRGF0ZTogU3VuLCAz MSBKdWwgMjAyMiAxMjozOTozNCAtMDcwMAorU3ViamVjdDogW1BBVENIXSBwcGwvYml0X2FycmF5 cy5weGQ6IFVzZSByZWxhdGl2ZSBjaW1wb3J0CisKKy0tLQorIHBwbC9iaXRfYXJyYXlzLnB4ZCB8 IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKwor ZGlmZiAtLWdpdCBhL3BwbC9iaXRfYXJyYXlzLnB4ZCBiL3BwbC9iaXRfYXJyYXlzLnB4ZAoraW5k ZXggZWI1NzQzNC4uMTQ1YTk3OCAxMDA2NDQKKy0tLSBhL3BwbC9iaXRfYXJyYXlzLnB4ZAorKysr IGIvcHBsL2JpdF9hcnJheXMucHhkCitAQCAtMSw0ICsxLDQgQEAKKy1mcm9tIHBwbF9kZWNsIGNp bXBvcnQgKgorK2Zyb20gLnBwbF9kZWNsIGNpbXBvcnQgKgorIAorIGNkZWYgY2xhc3MgQml0X1Jv dyhvYmplY3QpOgorICAgICBjZGVmIFBQTF9CaXRfUm93ICp0aGlzcHRyCistLSAKK0dpdExhYgor CmRpZmYgLS1naXQgYS9zcmNwa2dzL3B5dGhvbjMtcHBscHkvcGF0Y2hlcy9jeXRob24zLWxlZ2Fj eS5wYXRjaCBiL3NyY3BrZ3MvcHl0aG9uMy1wcGxweS9wYXRjaGVzL2N5dGhvbjMtbGVnYWN5LnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmUwMGI5OWY4YzVm MmUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3B5dGhvbjMtcHBscHkvcGF0Y2hlcy9jeXRo b24zLWxlZ2FjeS5wYXRjaApAQCAtMCwwICsxLDIzIEBACitjb21taXQgZTZmM2U2NjE1NDEzOGNl M2UzMWU4MDNlNzRiOGM3MTc4N2M3MGFjYworQXV0aG9yOiBHb256YWxvIFRvcm5hcsOtYSA8dG9y bmFyaWFAY21hdC5lZHUudXk+CitEYXRlOiAgIFdlZCBKdWwgMTkgMjA6NDc6NTIgMjAyMyAtMDMw MAorCisgICAgY3l0aG9uMyBzdXBwb3J0IHVzaW5nIGxlZ2FjeSBkaXJlY3RpdmVzCisKK2RpZmYg LS1naXQgYS9zZXR1cC5weSBiL3NldHVwLnB5CitpbmRleCAxM2Q1NDNiLi41NWRjZDM0IDEwMDc1 NQorLS0tIGEvc2V0dXAucHkKKysrKyBiL3NldHVwLnB5CitAQCAtMzgsNyArMzgsMTEgQEAgY2xh c3MgYnVpbGRfZXh0KF9idWlsZF9leHQpOgorICAgICAgICAgc2VsZi5leHRlbnNpb25zWzpdID0g Y3l0aG9uaXplKAorICAgICAgICAgICAgIHNlbGYuZXh0ZW5zaW9ucywKKyAgICAgICAgICAgICBp bmNsdWRlX3BhdGg9c3lzLnBhdGgsCistICAgICAgICAgICAgY29tcGlsZXJfZGlyZWN0aXZlcz17 J2VtYmVkc2lnbmF0dXJlJzogVHJ1ZX0pCisrICAgICAgICAgICAgY29tcGlsZXJfZGlyZWN0aXZl cz17CisrICAgICAgICAgICAgICAgICdlbWJlZHNpZ25hdHVyZSc6IFRydWUsCisrICAgICAgICAg ICAgICAgICdsZWdhY3lfaW1wbGljaXRfbm9leGNlcHQnOiBUcnVlLAorKyAgICAgICAgICAgICAg ICAnY19hcGlfYmlub3BfbWV0aG9kcyc6IFRydWUsCisrICAgICAgICAgICAgICAgIH0pCisgCisg ICAgICAgICBfYnVpbGRfZXh0LnJ1bihzZWxmKQorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9weXRo b24zLXBwbHB5L3RlbXBsYXRlIGIvc3JjcGtncy9weXRob24zLXBwbHB5L3RlbXBsYXRlCmluZGV4 IDZjMWU4M2FhMDkxYzcuLjYwMjNjNjNmODc5ODIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcHl0aG9u My1wcGxweS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3B5dGhvbjMtcHBscHkvdGVtcGxhdGUKQEAg LTEsOSArMSw5IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdweXRob24zLXBwbHB5JwogcGtnbmFt ZT1weXRob24zLXBwbHB5CiB2ZXJzaW9uPTAuOC43Ci1yZXZpc2lvbj0zCityZXZpc2lvbj00CiBi dWlsZF9zdHlsZT1weXRob24zLW1vZHVsZQotaG9zdG1ha2VkZXBlbmRzPSJweXRob24zLXNldHVw dG9vbHMgcHl0aG9uMy1DeXRob24wLjI5IgoraG9zdG1ha2VkZXBlbmRzPSJweXRob24zLXNldHVw dG9vbHMgcHl0aG9uMy1DeXRob24iCiBtYWtlZGVwZW5kcz0icHl0aG9uMy1jeXNpZ25hbHMgcHl0 aG9uMy1nbXB5MiBweXRob24zLWRldmVsIGdtcC1kZXZlbAogIGdtcHh4LWRldmVsIHBwbC1kZXZl bCBtcGZyLWRldmVsIGxpYm1wYy1kZXZlbCBwYXJpLWRldmVsIgogZGVwZW5kcz0icHl0aG9uMyIK CkZyb20gNmFjMThlZjRkNjM2YjJlOTgwYjg4ZmNjODgzNjBmZDQwMGQwMWNlZSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0dvbnphbG89MjBUb3JuYXI9QzM9QURhPz0g PHRvcm5hcmlhQGNtYXQuZWR1LnV5PgpEYXRlOiBUdWUsIDI5IEF1ZyAyMDIzIDIyOjE0OjQ5IC0w MzAwClN1YmplY3Q6IFtQQVRDSCAyLzJdIHNhZ2VtYXRoOiB1c2UgY3l0aG9uIDMuMAoKLS0tCiBz cmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvMzYxMDktMDBwcmUucGF0Y2ggICAgfCAgIDUwICsKIC4u Li8zNjEwOS1wcmVwYXJlX2Zvcl9jeXRob25fMy4wLnBhdGNoICAgICAgICB8IDk5OTUgKysrKysr KysrKysrKysrKysKIHNyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy9idWlsZC1jeXRob24zLnBhdGNo ICB8ICAgNDQgKwogLi4uL3BhdGNoZXMvZml4LWRvY3Rlc3QtY3l0aG9uMy5wYXRjaCAgICAgICAg IHwgIDIwNyArCiBzcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvZ2V0X3BhdGNoZXMgICAgICAgICAg fCAgICA3ICstCiBzcmNwa2dzL3NhZ2VtYXRoL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAg fCAgICA2ICstCiA2IGZpbGVzIGNoYW5nZWQsIDEwMzA0IGluc2VydGlvbnMoKyksIDUgZGVsZXRp b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzLzM2MTA5 LTAwcHJlLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVz LzM2MTA5LXByZXBhcmVfZm9yX2N5dGhvbl8zLjAucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvYnVpbGQtY3l0aG9uMy5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy9maXgtZG9jdGVzdC1jeXRob24zLnBhdGNo CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzLzM2MTA5LTAwcHJlLnBhdGNo IGIvc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzLzM2MTA5LTAwcHJlLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjBhMzBkNjIyZjBmNjIKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvMzYxMDktMDBwcmUucGF0Y2gKQEAgLTAs MCArMSw1MCBAQAorUHJlLXBhdGNoIHNvIHRoYXQgUFIgIzM2MTA5IGFwcGxpZXMgY2xlYW5seSBv biB0b3Agb2YgMTAuMQorCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvY2F0ZWdvcmllcy9ob3BmX2Fs Z2VicmFzX3dpdGhfYmFzaXMucHkgYi9zcmMvc2FnZS9jYXRlZ29yaWVzL2hvcGZfYWxnZWJyYXNf d2l0aF9iYXNpcy5weQoraW5kZXggZWE0MDE4OTZjYTAuLjI5YjZmNDhhODZmIDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvY2F0ZWdvcmllcy9ob3BmX2FsZ2VicmFzX3dpdGhfYmFzaXMucHkKKysrKyBi L3NyYy9zYWdlL2NhdGVnb3JpZXMvaG9wZl9hbGdlYnJhc193aXRoX2Jhc2lzLnB5CitAQCAtMzMs MTEgKzMzLDExIEBAIGNsYXNzIEhvcGZBbGdlYnJhc1dpdGhCYXNpcyhDYXRlZ29yeVdpdGhBeGlv bV9vdmVyX2Jhc2VfcmluZyk6CisgICAgIFdlIG5vdyBzaG93IGhvdyB0byB1c2UgYSBzaW1wbGUg SG9wZiBhbGdlYnJhLCBuYW1lbHkgdGhlIGdyb3VwIGFsZ2VicmEgb2YgdGhlIGRpaGVkcmFsIGdy b3VwCisgICAgIChzZWUgYWxzbyBBbGdlYnJhc1dpdGhCYXNpcyk6OgorIAorLSAgICAgICAgc2Fn ZTogQSA9IEMuZXhhbXBsZSgpOyBBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsIC0gc2FnZS5ncm91cHMKKysgICAgICAgIHNh Z2U6IEEgPSBDLmV4YW1wbGUoKTsgQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIyBuZWVkcyBzYWdlLmdyb3VwcworICAgICAgICAgQW4gZXhh bXBsZSBvZiBIb3BmIGFsZ2VicmEgd2l0aCBiYXNpczogdGhlIGdyb3VwIGFsZ2VicmEgb2YgdGhl CisgICAgICAgICAgRGloZWRyYWwgZ3JvdXAgb2Ygb3JkZXIgNiBhcyBhIHBlcm11dGF0aW9uIGdy b3VwIG92ZXIgUmF0aW9uYWwgRmllbGQKKy0gICAgICAgIHNhZ2U6IEEuX19jdXN0b21fbmFtZSA9 ICJBIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IyBvcHRpb25hbCAtIHNhZ2UuZ3JvdXBzCistICAgICAgICBzYWdlOiBBLmNhdGVnb3J5KCkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICMgb3B0aW9uYWwgLSBzYWdlLmdyb3VwcworKyAgICAgICAgc2FnZTogQS5fX2N1c3RvbV9uYW1l ID0gIkEiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAjIG5lZWRzIHNhZ2UuZ3JvdXBzCisrICAgICAgICBzYWdlOiBBLmNhdGVnb3J5KCkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMg bmVlZHMgc2FnZS5ncm91cHMKKyAgICAgICAgIENhdGVnb3J5IG9mIGZpbml0ZSBkaW1lbnNpb25h bCBob3BmIGFsZ2VicmFzIHdpdGggYmFzaXMgb3ZlciBSYXRpb25hbCBGaWVsZAorIAorICAgICAg ICAgc2FnZTogQS5vbmVfYmFzaXMoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsIC0gc2FnZS5ncm91cHMKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9jYXRlZ29yaWVzL21vZHVsZXNfd2l0aF9iYXNpcy5weSBiL3NyYy9z YWdlL2NhdGVnb3JpZXMvbW9kdWxlc193aXRoX2Jhc2lzLnB5CitpbmRleCA4NWEwZDUwMjM5YS4u YzBlMjk4ODZiNWYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jYXRlZ29yaWVzL21vZHVsZXNfd2l0 aF9iYXNpcy5weQorKysrIGIvc3JjL3NhZ2UvY2F0ZWdvcmllcy9tb2R1bGVzX3dpdGhfYmFzaXMu cHkKK0BAIC02Niw5ICs2Niw5IEBAIGNsYXNzIE1vZHVsZXNXaXRoQmFzaXMoQ2F0ZWdvcnlXaXRo QXhpb21fb3Zlcl9iYXNlX3JpbmcpOgorIAorICAgICBMZXQgYFhgIGFuZCBgWWAgYmUgdHdvIG1v ZHVsZXMgd2l0aCBiYXNpcy4gV2UgY2FuIGJ1aWxkIGBIb20oWCxZKWA6OgorIAorLSAgICAgICAg c2FnZTogWCA9IENvbWJpbmF0b3JpYWxGcmVlTW9kdWxlKFFRLCBbMSwyXSk7IFguX19jdXN0b21f bmFtZSA9ICJYIiAgICAgICAgICAgICAjIG9wdGlvbmFsIC0gc2FnZS5tb2R1bGVzCistICAgICAg ICBzYWdlOiBZID0gQ29tYmluYXRvcmlhbEZyZWVNb2R1bGUoUVEsIFszLDRdKTsgWS5fX2N1c3Rv bV9uYW1lID0gIlkiICAgICAgICAgICAgICMgb3B0aW9uYWwgLSBzYWdlLm1vZHVsZXMKKy0gICAg ICAgIHNhZ2U6IEggPSBIb20oWCwgWSk7IEggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCAtIHNhZ2UubW9kdWxlcworKyAg ICAgICAgc2FnZTogWCA9IENvbWJpbmF0b3JpYWxGcmVlTW9kdWxlKFFRLCBbMSwyXSk7IFguX19j dXN0b21fbmFtZSA9ICJYIiAgICAgICAgICAgICAjIG5lZWRzIHNhZ2UubW9kdWxlcworKyAgICAg ICAgc2FnZTogWSA9IENvbWJpbmF0b3JpYWxGcmVlTW9kdWxlKFFRLCBbMyw0XSk7IFkuX19jdXN0 b21fbmFtZSA9ICJZIiAgICAgICAgICAgICAjIG5lZWRzIHNhZ2UubW9kdWxlcworKyAgICAgICAg c2FnZTogSCA9IEhvbShYLCBZKTsgSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjIG5lZWRzIHNhZ2UubW9kdWxlcworICAgICAgICAgU2V0 IG9mIE1vcnBoaXNtcyBmcm9tIFggdG8gWQorICAgICAgICAgIGluIENhdGVnb3J5IG9mIGZpbml0 ZSBkaW1lbnNpb25hbCB2ZWN0b3Igc3BhY2VzIHdpdGggYmFzaXMgb3ZlciBSYXRpb25hbCBGaWVs ZAorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21pc2MvY2FjaGVmdW5jLnB5eCBiL3NyYy9zYWdl L21pc2MvY2FjaGVmdW5jLnB5eAoraW5kZXggZGFjNGM2ODRmNDcuLjliMjkxNmU1NDdkIDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvbWlzYy9jYWNoZWZ1bmMucHl4CisrKysgYi9zcmMvc2FnZS9taXNj L2NhY2hlZnVuYy5weXgKK0BAIC0yOTcsNiArMjk3LDcgQEAgbWV0aG9kcyBvZiBleHRlbnNpb24g Y2xhc3NlcywgYXMgbG9uZyBhcyB0aGV5IGVpdGhlciBzdXBwb3J0IGF0dHJpYnV0ZSBhc3NpZ25t ZW4KKyBvciBoYXZlIGEgcHVibGljIGF0dHJpYnV0ZSBvZiB0eXBlIGBgPGRpY3Q+YGAgY2FsbGVk IGBgX19jYWNoZWRfbWV0aG9kc2BgLiBUaGUKKyBsYXR0ZXIgaXMgZWFzeTo6CisgCisrICAgIHNh Z2U6ICMgbmVlZHMgc2FnZS5taXNjLmN5dGhvbgorICAgICBzYWdlOiBjeXRob25fY29kZSA9IFsK KyAgICAgLi4uLjogImZyb20gc2FnZS5taXNjLmNhY2hlZnVuYyBpbXBvcnQgY2FjaGVkX21ldGhv ZCIsCisgICAgIC4uLi46ICJjZGVmIGNsYXNzIE15Q2xhc3M6IiwKZGlmZiAtLWdpdCBhL3NyY3Br Z3Mvc2FnZW1hdGgvcGF0Y2hlcy8zNjEwOS1wcmVwYXJlX2Zvcl9jeXRob25fMy4wLnBhdGNoIGIv c3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzLzM2MTA5LXByZXBhcmVfZm9yX2N5dGhvbl8zLjAucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uOTMzOTBmN2VlZjk5 MgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy8zNjEwOS1wcmVw YXJlX2Zvcl9jeXRob25fMy4wLnBhdGNoCkBAIC0wLDAgKzEsOTk5NSBAQAorZGlmZiAtLWdpdCBh L3NyYy9kb2MvZW4vdGhlbWF0aWNfdHV0b3JpYWxzL2NvZXJjaW9uX2FuZF9jYXRlZ29yaWVzLnJz dCBiL3NyYy9kb2MvZW4vdGhlbWF0aWNfdHV0b3JpYWxzL2NvZXJjaW9uX2FuZF9jYXRlZ29yaWVz LnJzdAoraW5kZXggNGVmZTY4YTI2MTcuLmRlMjM0OWE5YTNmIDEwMDY0NAorLS0tIGEvc3JjL2Rv Yy9lbi90aGVtYXRpY190dXRvcmlhbHMvY29lcmNpb25fYW5kX2NhdGVnb3JpZXMucnN0CisrKysg Yi9zcmMvZG9jL2VuL3RoZW1hdGljX3R1dG9yaWFscy9jb2VyY2lvbl9hbmRfY2F0ZWdvcmllcy5y c3QKK0BAIC0xMDYsNyArMTA2LDYgQEAgVGhpcyBiYXNlIGNsYXNzIHByb3ZpZGVzIGEgbG90IG1v cmUgbWV0aG9kcyB0aGFuIGEgZ2VuZXJhbCBwYXJlbnQ6OgorIAorICAgICBzYWdlOiBbcCBmb3Ig cCBpbiBkaXIoRmllbGQpIGlmIHAgbm90IGluIGRpcihQYXJlbnQpXQorICAgICBbJ19fZnJhY3Rp b25fZmllbGQnLAorLSAgICAgJ19faWRlYWxfbW9ub2lkJywKKyAgICAgICdfX2l0ZXJfXycsCisg ICAgICAnX19sZW5fXycsCisgICAgICAnX19yeG9yX18nLAorQEAgLTExOSw2ICsxMTgsNyBAQCBU aGlzIGJhc2UgY2xhc3MgcHJvdmlkZXMgYSBsb3QgbW9yZSBtZXRob2RzIHRoYW4gYSBnZW5lcmFs IHBhcmVudDo6CisgICAgICAnX2RlZmF1bHRfY2F0ZWdvcnknLAorICAgICAgJ19nZW5zJywKKyAg ICAgICdfaWRlYWxfY2xhc3NfJywKKysgICAgICdfaWRlYWxfbW9ub2lkJywKKyAgICAgICdfbGF0 ZXhfbmFtZXMnLAorICAgICAgJ19saXN0JywKKyAgICAgICdfb25lX2VsZW1lbnQnLAorZGlmZiAt LWdpdCBhL3NyYy9kb2MvZW4vdGhlbWF0aWNfdHV0b3JpYWxzL3R1dG9yaWFsLW9iamVjdHMtYW5k LWNsYXNzZXMucnN0IGIvc3JjL2RvYy9lbi90aGVtYXRpY190dXRvcmlhbHMvdHV0b3JpYWwtb2Jq ZWN0cy1hbmQtY2xhc3Nlcy5yc3QKK2luZGV4IDUxYWVjOTg5ODEwLi41NTNhOTQ2YzRkOCAxMDA2 NDQKKy0tLSBhL3NyYy9kb2MvZW4vdGhlbWF0aWNfdHV0b3JpYWxzL3R1dG9yaWFsLW9iamVjdHMt YW5kLWNsYXNzZXMucnN0CisrKysgYi9zcmMvZG9jL2VuL3RoZW1hdGljX3R1dG9yaWFscy90dXRv cmlhbC1vYmplY3RzLWFuZC1jbGFzc2VzLnJzdAorQEAgLTI5OCw3ICsyOTgsNyBAQCBodHRwOi8v ZG9jcy5weXRob24ub3JnL2xpYnJhcnkvIGZvciBhIGNvbXBsZXRlIGxpc3QuIDo6CisgICAgICAg ICBzYWdlOiBlbAorICAgICAgICAgYmxhCisgICAgICAgICBzYWdlOiBlbC5fX2RpY3RfXworLSAg ICAgICAgeydfX2N1c3RvbV9uYW1lJzogJ2JsYScsICd2YWx1ZSc6IDQyfQorKyAgICAgICAgeydf U2FnZU9iamVjdF9fY3VzdG9tX25hbWUnOiAnYmxhJywgJ3ZhbHVlJzogNDJ9CisgCisgICAgIExv dHMgb2YgU2FnZSBvYmplY3RzIGFyZSBub3QgUHl0aG9uIG9iamVjdHMgYnV0IGNvbXBpbGVkIEN5 dGhvbgorICAgICBvYmplY3RzLiBQeXRob24gc2VlcyB0aGVtIGFzIGJ1aWx0aW4gb2JqZWN0cyBh bmQgeW91IGRvIG5vdCBoYXZlCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvYWxnZWJyYXMvbGV0dGVy cGxhY2UvZnJlZV9hbGdlYnJhX2xldHRlcnBsYWNlLnB4ZCBiL3NyYy9zYWdlL2FsZ2VicmFzL2xl dHRlcnBsYWNlL2ZyZWVfYWxnZWJyYV9sZXR0ZXJwbGFjZS5weGQKK2luZGV4IGQxZDE2MmMzYjQw Li40N2E3Mjc1YWJhMCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2FsZ2VicmFzL2xldHRlcnBsYWNl L2ZyZWVfYWxnZWJyYV9sZXR0ZXJwbGFjZS5weGQKKysrKyBiL3NyYy9zYWdlL2FsZ2VicmFzL2xl dHRlcnBsYWNlL2ZyZWVfYWxnZWJyYV9sZXR0ZXJwbGFjZS5weGQKK0BAIC0yMCwxNiArMjAsMTUg QEAgY2RlZiBjbGFzcyBGcmVlQWxnZWJyYV9sZXR0ZXJwbGFjZV9saWJzaW5ndWxhcigpOgorICAg ICBjZGVmIHJpbmcqIF9scF9yaW5nCisgICAgIGNkZWYgTVBvbHlub21pYWxSaW5nX2xpYnNpbmd1 bGFyIF9jb21tdXRhdGl2ZV9yaW5nCisgICAgIGNkZWYgTVBvbHlub21pYWxSaW5nX2xpYnNpbmd1 bGFyIF9scF9yaW5nX2ludGVybmFsCistICAgIGNkZWYgb2JqZWN0IF9fbmdlbnMKKysgICAgY2Rl ZiBvYmplY3QgX25nZW5zCisgCisgY2RlZiBjbGFzcyBGcmVlQWxnZWJyYV9sZXR0ZXJwbGFjZShB bGdlYnJhKToKKyAgICAgY2RlZiBNUG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIgX2NvbW11dGF0 aXZlX3JpbmcKKyAgICAgY2RlZiBNUG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIgX2N1cnJlbnRf cmluZworICAgICBjZGVmIGludCBfZGVnYm91bmQKKy0gICAgY2RlZiBpbnQgX19uZ2VucworKyAg ICBjZGVmIGludCBfbmdlbnMKKyAgICAgY2RlZiBpbnQgX25iX3NsYWNrdmFycworICAgICBjZGVm IG9iamVjdCBfX21vbm9pZAorLSAgICBjZGVmIHB1YmxpYyBvYmplY3QgX19jdXN0b21fbmFtZQor ICAgICBjZGVmIHN0ciBleHBvbmVudHNfdG9fc3RyaW5nKHNlbGYsIEUpCisgICAgIGNkZWYgc3Ry IGV4cG9uZW50c190b19sYXRleChzZWxmLCBFKQorICAgICBjZGVmIHR1cGxlIF9kZWdyZWVzCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvYWxnZWJyYXMvbGV0dGVycGxhY2UvZnJlZV9hbGdlYnJhX2xl dHRlcnBsYWNlLnB5eCBiL3NyYy9zYWdlL2FsZ2VicmFzL2xldHRlcnBsYWNlL2ZyZWVfYWxnZWJy YV9sZXR0ZXJwbGFjZS5weXgKK2luZGV4IGU5YzcwYzlkZTI5Li41M2YwZGZkZWE2ZCAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL2FsZ2VicmFzL2xldHRlcnBsYWNlL2ZyZWVfYWxnZWJyYV9sZXR0ZXJw bGFjZS5weXgKKysrKyBiL3NyYy9zYWdlL2FsZ2VicmFzL2xldHRlcnBsYWNlL2ZyZWVfYWxnZWJy YV9sZXR0ZXJwbGFjZS5weXgKK0BAIC0yNTUsNyArMjU1LDcgQEAgY2RlZiBjbGFzcyBGcmVlQWxn ZWJyYV9sZXR0ZXJwbGFjZShBbGdlYnJhKToKKyAgICAgICAgICIiIgorICAgICAgICAgaWYgbm90 IGlzaW5zdGFuY2UoUiwgTVBvbHlub21pYWxSaW5nX2xpYnNpbmd1bGFyKToKKyAgICAgICAgICAg ICByYWlzZSBUeXBlRXJyb3IoImEgbGV0dGVycGxhY2UgYWxnZWJyYSBtdXN0IGJlIHByb3ZpZGVk IGJ5IGEgcG9seW5vbWlhbCByaW5nIG9mIHR5cGUgJXMiICUgTVBvbHlub21pYWxSaW5nX2xpYnNp bmd1bGFyKQorLSAgICAgICAgc2VsZi5fX25nZW5zID0gUi5uZ2VucygpCisrICAgICAgICBzZWxm Ll9uZ2VucyA9IFIubmdlbnMoKQorICAgICAgICAgaWYgZGVncmVlcyBpcyBOb25lOgorICAgICAg ICAgICAgIHZhcm5hbWVzID0gUi52YXJpYWJsZV9uYW1lcygpCisgICAgICAgICAgICAgc2VsZi5f bmJfc2xhY2t2YXJzID0gMAorQEAgLTI2OSwxMiArMjY5LDEyIEBAIGNkZWYgY2xhc3MgRnJlZUFs Z2VicmFfbGV0dGVycGxhY2UoQWxnZWJyYSk6CisgICAgICAgICBzZWxmLl9jdXJyZW50X3Jpbmcg PSBtYWtlX2xldHRlcnBsYWNlX3JpbmcoUiwgMSkKKyAgICAgICAgIHNlbGYuX2RlZ2JvdW5kID0g MQorICAgICAgICAgaWYgZGVncmVlcyBpcyBOb25lOgorLSAgICAgICAgICAgIHNlbGYuX2RlZ3Jl ZXMgPSB0dXBsZShbaW50KDEpXSAqIHNlbGYuX19uZ2VucykKKysgICAgICAgICAgICBzZWxmLl9k ZWdyZWVzID0gdHVwbGUoW2ludCgxKV0gKiBzZWxmLl9uZ2VucykKKyAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgaWYgKG5vdCBpc2luc3RhbmNlKGRlZ3JlZXMsICh0dXBsZSwgbGlzdCkpKSBc CistICAgICAgICAgICAgICAgICAgICBvciBsZW4oZGVncmVlcykgIT0gc2VsZi5fX25nZW5zIC0g c2VsZi5fbmJfc2xhY2t2YXJzIFwKKysgICAgICAgICAgICAgICAgICAgIG9yIGxlbihkZWdyZWVz KSAhPSBzZWxmLl9uZ2VucyAtIHNlbGYuX25iX3NsYWNrdmFycyBcCisgICAgICAgICAgICAgICAg ICAgICBvciBhbnkoaSA8PSAwIGZvciBpIGluIGRlZ3JlZXMpOgorLSAgICAgICAgICAgICAgICBy YWlzZSBUeXBlRXJyb3IoInRoZSBnZW5lcmF0b3IgZGVncmVlcyBtdXN0IGJlIGdpdmVuIGJ5IGEg bGlzdCBvciB0dXBsZSBvZiAlZCBwb3NpdGl2ZSBpbnRlZ2VycyIgJSAoc2VsZi5fX25nZW5zIC0g MSkpCisrICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigidGhlIGdlbmVyYXRvciBkZWdy ZWVzIG11c3QgYmUgZ2l2ZW4gYnkgYSBsaXN0IG9yIHR1cGxlIG9mICVkIHBvc2l0aXZlIGludGVn ZXJzIiAlIChzZWxmLl9uZ2VucyAtIDEpKQorICAgICAgICAgICAgIHNlbGYuX2RlZ3JlZXMgPSB0 dXBsZShbaW50KGkpIGZvciBpIGluIGRlZ3JlZXNdKQorICAgICAgICAgICAgIHNlbGYuc2V0X2Rl Z2JvdW5kKG1heChzZWxmLl9kZWdyZWVzKSkKKyAgICAgICAgIHNlbGYuX3BvcHVsYXRlX2NvZXJj aW9uX2xpc3RzXyhjb2VyY2VfbGlzdD1bYmFzZV9yaW5nXSkKK0BAIC0zMDUsNyArMzA1LDcgQEAg Y2RlZiBjbGFzcyBGcmVlQWxnZWJyYV9sZXR0ZXJwbGFjZShBbGdlYnJhKToKKyAgICAgICAgICAg ICBzYWdlOiBGLm5nZW5zKCkKKyAgICAgICAgICAgICAzCisgICAgICAgICAiIiIKKy0gICAgICAg IHJldHVybiBzZWxmLl9fbmdlbnMgLSBzZWxmLl9uYl9zbGFja3ZhcnMKKysgICAgICAgIHJldHVy biBzZWxmLl9uZ2VucyAtIHNlbGYuX25iX3NsYWNrdmFycworIAorICAgICBkZWYgZ2VuKHNlbGYs IGkpOgorICAgICAgICAgIiIiCitAQCAtMzI3LDE3ICszMjcsMTcgQEAgY2RlZiBjbGFzcyBGcmVl QWxnZWJyYV9sZXR0ZXJwbGFjZShBbGdlYnJhKToKKyAgICAgICAgICAgICBzYWdlOiBGLmdlbigy KQorICAgICAgICAgICAgIGMKKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgaSA+PSBzZWxmLl9f bmdlbnMgLSBzZWxmLl9uYl9zbGFja3ZhcnM6CistICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv cigidGhpcyBmcmVlIGFsZ2VicmEgb25seSBoYXMgJWQgZ2VuZXJhdG9ycyIgJSAoc2VsZi5fX25n ZW5zIC0gc2VsZi5fbmJfc2xhY2t2YXJzKSkKKysgICAgICAgIGlmIGkgPj0gc2VsZi5fbmdlbnMg LSBzZWxmLl9uYl9zbGFja3ZhcnM6CisrICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigidGhp cyBmcmVlIGFsZ2VicmEgb25seSBoYXMgJWQgZ2VuZXJhdG9ycyIgJSAoc2VsZi5fbmdlbnMgLSBz ZWxmLl9uYl9zbGFja3ZhcnMpKQorICAgICAgICAgaWYgc2VsZi5fZ2VucyBpcyBub3QgTm9uZToK KyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fZ2Vuc1tpXQorICAgICAgICAgZGVnID0gc2VsZi5f ZGVncmVlc1tpXQorICAgICAgICAgIyBzZWxmLnNldF9kZWdib3VuZChkZWcpCisgICAgICAgICBw ID0gc2VsZi5fY3VycmVudF9yaW5nLmdlbihpKQorICAgICAgICAgY2RlZiBpbnQgbgorLSAgICAg ICAgY2RlZiBpbnQgaiA9IHNlbGYuX19uZ2VucyAtIDEKKysgICAgICAgIGNkZWYgaW50IGogPSBz ZWxmLl9uZ2VucyAtIDEKKyAgICAgICAgIGZvciBuIGluIHJhbmdlKDEsIGRlZyk6CistICAgICAg ICAgICAgaiArPSBzZWxmLl9fbmdlbnMKKysgICAgICAgICAgICBqICs9IHNlbGYuX25nZW5zCisg ICAgICAgICAgICAgcCAqPSBzZWxmLl9jdXJyZW50X3JpbmcuZ2VuKGopCisgICAgICAgICByZXR1 cm4gRnJlZUFsZ2VicmFFbGVtZW50X2xldHRlcnBsYWNlKHNlbGYsIHApCisgCitAQCAtNDEzLDcg KzQxMyw3IEBAIGNkZWYgY2xhc3MgRnJlZUFsZ2VicmFfbGV0dGVycGxhY2UoQWxnZWJyYSk6Cisg ICAgICAgICAgICAgc2FnZTogRnJlZUFsZ2VicmEoUVEsIGltcGxlbWVudGF0aW9uPSdsZXR0ZXJw bGFjZScsIG5hbWVzPVsneCddKS5pc19jb21tdXRhdGl2ZSgpCisgICAgICAgICAgICAgVHJ1ZQor ICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5fX25nZW5zIC0gc2VsZi5fbmJfc2xh Y2t2YXJzIDw9IDEKKysgICAgICAgIHJldHVybiBzZWxmLl9uZ2VucyAtIHNlbGYuX25iX3NsYWNr dmFycyA8PSAxCisgCisgICAgIGRlZiBpc19maWVsZChzZWxmLCBwcm9vZj1UcnVlKToKKyAgICAg ICAgICIiIgorQEAgLTQzMCw3ICs0MzAsNyBAQCBjZGVmIGNsYXNzIEZyZWVBbGdlYnJhX2xldHRl cnBsYWNlKEFsZ2VicmEpOgorICAgICAgICAgICAgIHNhZ2U6IEYuaXNfZmllbGQoKQorICAgICAg ICAgICAgIEZhbHNlCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiAobm90IChzZWxmLl9f bmdlbnMgLSBzZWxmLl9uYl9zbGFja3ZhcnMpKSBhbmQgc2VsZi5fYmFzZS5pc19maWVsZChwcm9v Zj1wcm9vZikKKysgICAgICAgIHJldHVybiAobm90IChzZWxmLl9uZ2VucyAtIHNlbGYuX25iX3Ns YWNrdmFycykpIGFuZCBzZWxmLl9iYXNlLmlzX2ZpZWxkKHByb29mPXByb29mKQorIAorICAgICBk ZWYgX3JlcHJfKHNlbGYpOgorICAgICAgICAgIiIiCitAQCAtNDQ2LDcgKzQ0Niw3IEBAIGNkZWYg Y2xhc3MgRnJlZUFsZ2VicmFfbGV0dGVycGxhY2UoQWxnZWJyYSk6CisgICAgICAgICAgICAgc2Fn ZTogRgorICAgICAgICAgICAgIEZyZWUgQXNzb2NpYXRpdmUgVW5pdGFsIEFsZ2VicmEgb24gMyBn ZW5lcmF0b3JzICh4LCB5LCB6KSBvdmVyIFJhdGlvbmFsIEZpZWxkCisgICAgICAgICAiIiIKKy0g ICAgICAgIHJldHVybiAiRnJlZSBBc3NvY2lhdGl2ZSBVbml0YWwgQWxnZWJyYSBvbiAlZCBnZW5l cmF0b3JzICVzIG92ZXIgJXMiICUgKHNlbGYuX19uZ2VucyAtIHNlbGYuX25iX3NsYWNrdmFycywg c2VsZi5nZW5zKCksIHNlbGYuX2Jhc2UpCisrICAgICAgICByZXR1cm4gIkZyZWUgQXNzb2NpYXRp dmUgVW5pdGFsIEFsZ2VicmEgb24gJWQgZ2VuZXJhdG9ycyAlcyBvdmVyICVzIiAlIChzZWxmLl9u Z2VucyAtIHNlbGYuX25iX3NsYWNrdmFycywgc2VsZi5nZW5zKCksIHNlbGYuX2Jhc2UpCisgCisg ICAgIGRlZiBfbGF0ZXhfKHNlbGYpOgorICAgICAgICAgciIiIgorQEAgLTU4Niw3ICs1ODYsNyBA QCBjZGVmIGNsYXNzIEZyZWVBbGdlYnJhX2xldHRlcnBsYWNlKEFsZ2VicmEpOgorICAgICAgICAg ICAgICAgZ2VuZXJhdGVkIGZyZWUgYWJlbGlhbiBtb25vaWQuCisgICAgICAgICAgICAgICBJbiBw cmluY2lwbGUsIHRoaXMgaXMgY29ycmVjdCwgYnV0IGl0IGlzIG5vdCBpbXBsZW1lbnRlZCwgeWV0 Lj4KKyAgICAgICAgICIiIgorLSAgICAgICAgY2RlZiBpbnQgbmdlbnMgPSBzZWxmLl9fbmdlbnMK KysgICAgICAgIGNkZWYgaW50IG5nZW5zID0gc2VsZi5fbmdlbnMKKyAgICAgICAgIGNkZWYgaW50 IG5ibG9ja3MgPSBsZW4oRSkgLy8gbmdlbnMKKyAgICAgICAgIGNkZWYgaW50IGksIGosIGJhc2Us IGV4cCwgdmFyX2luZAorICAgICAgICAgY2RlZiBsaXN0IG91dCA9IFtdCitAQCAtNjE4LDcgKzYx OCw3IEBAIGNkZWYgY2xhc3MgRnJlZUFsZ2VicmFfbGV0dGVycGxhY2UoQWxnZWJyYSk6CisgICAg ICAgICAgICAgc2FnZTogbGF0ZXgoLShhKmIqKHorMSktYyleMikgICAgICMgaW5kaXJlY3QgZG9j dGVzdAorICAgICAgICAgICAgIFxsZWZ0KDIgeiArIDFccmlnaHQpIGEgYiBhIGIgKyBcbGVmdCh6 ICsgMVxyaWdodCkgYSBiIGMgKyBcbGVmdCh6ICsgMVxyaWdodCkgYyBhIGIgLSBjIGMKKyAgICAg ICAgICIiIgorLSAgICAgICAgY2RlZiBpbnQgbmdlbnMgPSBzZWxmLl9fbmdlbnMKKysgICAgICAg IGNkZWYgaW50IG5nZW5zID0gc2VsZi5fbmdlbnMKKyAgICAgICAgIGNkZWYgaW50IG5ibG9ja3Mg PSBsZW4oRSkgLy8gbmdlbnMKKyAgICAgICAgIGNkZWYgaW50IGksIGosIGJhc2UsIGV4cCwgdmFy X2luZAorICAgICAgICAgY2RlZiBsaXN0IG91dCA9IFtdCitAQCAtNjc4LDcgKzY3OCw3IEBAIGNk ZWYgY2xhc3MgRnJlZUFsZ2VicmFfbGV0dGVycGxhY2UoQWxnZWJyYSk6CisgICAgICAgICBjZGVm IGxpc3Qgb3V0ID0gW10KKyAgICAgICAgIEMgPSBzZWxmLmN1cnJlbnRfcmluZygpCisgICAgICAg ICBjZGVmIEZyZWVBbGdlYnJhRWxlbWVudF9sZXR0ZXJwbGFjZSB4CistICAgICAgICBuZ2VucyA9 IHNlbGYuX19uZ2VucworKyAgICAgICAgbmdlbnMgPSBzZWxmLl9uZ2VucworICAgICAgICAgY2Rl ZiBsaXN0IEcgPSBbQyh4Ll9wb2x5KSBmb3IgeCBpbiBnXQorICAgICAgICAgZnJvbSBzYWdlLmdy b3Vwcy5wZXJtX2dwcy5wZXJtZ3JvdXBfbmFtZWQgaW1wb3J0IEN5Y2xpY1Blcm11dGF0aW9uR3Jv dXAKKyAgICAgICAgIENHID0gQ3ljbGljUGVybXV0YXRpb25Hcm91cChDLm5nZW5zKCkpCitAQCAt ODExLDcgKzgxMSw3IEBAIGNkZWYgY2xhc3MgRnJlZUFsZ2VicmFfbGV0dGVycGxhY2UoQWxnZWJy YSk6CisgICAgICAgICAgICAgbCA9IGxlbihlKQorICAgICAgICAgICAgIGJyZWFrCisgICAgICAg ICBjZGVmIGRpY3Qgb3V0ID0ge30KKy0gICAgICAgIHNlbGYuc2V0X2RlZ2JvdW5kKGwgLy8gc2Vs Zi5fX25nZW5zKQorKyAgICAgICAgc2VsZi5zZXRfZGVnYm91bmQobCAvLyBzZWxmLl9uZ2VucykK KyAgICAgICAgIGNkZWYgUHlfc3NpemVfdCBuID0gc2VsZi5fY3VycmVudF9yaW5nLm5nZW5zKCkK KyAgICAgICAgIGZvciBlLCBjIGluIEQuaXRlcml0ZW1zKCk6CisgICAgICAgICAgICAgb3V0W3R1 cGxlKGUpICsgKDAsKSAqIChuIC0gbCldID0gYworQEAgLTg5Niw3ICs4OTYsNyBAQCBjZGVmIGNs YXNzIEZyZWVBbGdlYnJhX2xldHRlcnBsYWNlX2xpYnNpbmd1bGFyKCk6CisgICAgICAgICBzZWxm Ll9jb21tdXRhdGl2ZV9yaW5nID0gY29tbXV0YXRpdmVfcmluZworIAorICAgICBkZWYgX19pbml0 X18oc2VsZiwgY29tbXV0YXRpdmVfcmluZywgZGVnYm91bmQpOgorLSAgICAgICAgc2VsZi5fX25n ZW5zID0gY29tbXV0YXRpdmVfcmluZy5uZ2VucygpICogZGVnYm91bmQKKysgICAgICAgIHNlbGYu X25nZW5zID0gY29tbXV0YXRpdmVfcmluZy5uZ2VucygpICogZGVnYm91bmQKKyAKKyAgICAgZGVm IF9fZGVhbGxvY19fKHNlbGYpOgorICAgICAgICAgciIiIgorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L2FsZ2VicmFzL3F1YXRhbGcvcXVhdGVybmlvbl9hbGdlYnJhX2VsZW1lbnQucHl4IGIvc3JjL3Nh Z2UvYWxnZWJyYXMvcXVhdGFsZy9xdWF0ZXJuaW9uX2FsZ2VicmFfZWxlbWVudC5weXgKK2luZGV4 IGY2ZTg3NDQwZmU5Li44Y2I3ZTg0OGZkMCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2FsZ2VicmFz L3F1YXRhbGcvcXVhdGVybmlvbl9hbGdlYnJhX2VsZW1lbnQucHl4CisrKysgYi9zcmMvc2FnZS9h bGdlYnJhcy9xdWF0YWxnL3F1YXRlcm5pb25fYWxnZWJyYV9lbGVtZW50LnB5eAorQEAgLTE3MDAs MTUgKzE3MDAsMTUgQEAgY2RlZiBjbGFzcyBRdWF0ZXJuaW9uQWxnZWJyYUVsZW1lbnRfbnVtYmVy X2ZpZWxkKFF1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9hYnN0cmEKKyAgICAgICAgICAgICB4LCB5 LCB6LCB3ID0gdgorICAgICAgICAgY2RlZiBOdW1iZXJGaWVsZEVsZW1lbnQgYSA9IDxOdW1iZXJG aWVsZEVsZW1lbnQ+KHBhcmVudC5fYmFzZShwYXJlbnQuX2EpKQorICAgICAgICAgY2RlZiBOdW1i ZXJGaWVsZEVsZW1lbnQgYiA9IDxOdW1iZXJGaWVsZEVsZW1lbnQ+KHBhcmVudC5fYmFzZShwYXJl bnQuX2IpKQorLSAgICAgICAgZm1wel9wb2x5X3NldF9aWlgoc2VsZi54LCAoPE51bWJlckZpZWxk RWxlbWVudD54KS5fX251bWVyYXRvcikKKy0gICAgICAgIGZtcHpfcG9seV9zZXRfWlpYKHNlbGYu eSwgKDxOdW1iZXJGaWVsZEVsZW1lbnQ+eSkuX19udW1lcmF0b3IpCistICAgICAgICBmbXB6X3Bv bHlfc2V0X1paWChzZWxmLnosICg8TnVtYmVyRmllbGRFbGVtZW50PnopLl9fbnVtZXJhdG9yKQor LSAgICAgICAgZm1wel9wb2x5X3NldF9aWlgoc2VsZi53LCAoPE51bWJlckZpZWxkRWxlbWVudD53 KS5fX251bWVyYXRvcikKKysgICAgICAgIGZtcHpfcG9seV9zZXRfWlpYKHNlbGYueCwgKDxOdW1i ZXJGaWVsZEVsZW1lbnQ+eCkuX251bWVyYXRvcikKKysgICAgICAgIGZtcHpfcG9seV9zZXRfWlpY KHNlbGYueSwgKDxOdW1iZXJGaWVsZEVsZW1lbnQ+eSkuX251bWVyYXRvcikKKysgICAgICAgIGZt cHpfcG9seV9zZXRfWlpYKHNlbGYueiwgKDxOdW1iZXJGaWVsZEVsZW1lbnQ+eikuX251bWVyYXRv cikKKysgICAgICAgIGZtcHpfcG9seV9zZXRfWlpYKHNlbGYudywgKDxOdW1iZXJGaWVsZEVsZW1l bnQ+dykuX251bWVyYXRvcikKKyAKKy0gICAgICAgIFpaX3RvX21weihUMSwgJig8TnVtYmVyRmll bGRFbGVtZW50PngpLl9fZGVub21pbmF0b3IpCistICAgICAgICBaWl90b19tcHooVDIsICYoPE51 bWJlckZpZWxkRWxlbWVudD55KS5fX2Rlbm9taW5hdG9yKQorLSAgICAgICAgWlpfdG9fbXB6KHQz LCAmKDxOdW1iZXJGaWVsZEVsZW1lbnQ+eikuX19kZW5vbWluYXRvcikKKy0gICAgICAgIFpaX3Rv X21weih0NCwgJig8TnVtYmVyRmllbGRFbGVtZW50PncpLl9fZGVub21pbmF0b3IpCisrICAgICAg ICBaWl90b19tcHooVDEsICYoPE51bWJlckZpZWxkRWxlbWVudD54KS5fZGVub21pbmF0b3IpCisr ICAgICAgICBaWl90b19tcHooVDIsICYoPE51bWJlckZpZWxkRWxlbWVudD55KS5fZGVub21pbmF0 b3IpCisrICAgICAgICBaWl90b19tcHoodDMsICYoPE51bWJlckZpZWxkRWxlbWVudD56KS5fZGVu b21pbmF0b3IpCisrICAgICAgICBaWl90b19tcHoodDQsICYoPE51bWJlckZpZWxkRWxlbWVudD53 KS5fZGVub21pbmF0b3IpCisgCisgICAgICAgICBtcHpfbGNtKHNlbGYuZCwgVDEsIFQyKQorICAg ICAgICAgbXB6X2xjbShzZWxmLmQsIHNlbGYuZCwgdDMpCitAQCAtMTcyNCwxMCArMTcyNCwxMCBA QCBjZGVmIGNsYXNzIFF1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9udW1iZXJfZmllbGQoUXVhdGVy bmlvbkFsZ2VicmFFbGVtZW50X2Fic3RyYQorICAgICAgICAgZm1wel9wb2x5X3NjYWxhcl9tdWxf bXB6KHNlbGYueiwgc2VsZi56LCB0MykKKyAgICAgICAgIGZtcHpfcG9seV9zY2FsYXJfbXVsX21w eihzZWxmLncsIHNlbGYudywgdDQpCisgCistICAgICAgICBmbXB6X3BvbHlfc2V0X1paWChzZWxm LmEsIGEuX19udW1lcmF0b3IpICAgICAjIHdlIHdpbGwgYXNzdW1lIHRoYXQgdGhlIGRlbm9taW5h dG9yIG9mIGEgYW5kIGIgYXJlIDEKKy0gICAgICAgIGZtcHpfcG9seV9zZXRfWlpYKHNlbGYuYiwg Yi5fX251bWVyYXRvcikKKysgICAgICAgIGZtcHpfcG9seV9zZXRfWlpYKHNlbGYuYSwgYS5fbnVt ZXJhdG9yKSAgICAgIyB3ZSB3aWxsIGFzc3VtZSB0aGF0IHRoZSBkZW5vbWluYXRvciBvZiBhIGFu ZCBiIGFyZSAxCisrICAgICAgICBmbXB6X3BvbHlfc2V0X1paWChzZWxmLmIsIGIuX251bWVyYXRv cikKKyAKKy0gICAgICAgIGZtcHpfcG9seV9zZXRfWlpYKHNlbGYubW9kdWx1cywgKDxOdW1iZXJG aWVsZEVsZW1lbnQ+eCkuX19mbGRfbnVtZXJhdG9yLngpICAjIGFuZCBzYW1lIGZvciB0aGUgbW9k dWx1cworKyAgICAgICAgZm1wel9wb2x5X3NldF9aWlgoc2VsZi5tb2R1bHVzLCAoPE51bWJlckZp ZWxkRWxlbWVudD54KS5fZmxkX251bWVyYXRvci54KSAgIyBhbmQgc2FtZSBmb3IgdGhlIG1vZHVs dXMKKyAKKyAgICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGludCBpKToKKyAgICAgICAgICIiIgor QEAgLTE3NTYsMTcgKzE3NTYsMTcgQEAgY2RlZiBjbGFzcyBRdWF0ZXJuaW9uQWxnZWJyYUVsZW1l bnRfbnVtYmVyX2ZpZWxkKFF1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9hYnN0cmEKKyAgICAgICAg IGNkZWYgTnVtYmVyRmllbGRFbGVtZW50IGl0ZW0gPSBlbC5fbmV3KCkKKyAKKyAgICAgICAgIGlm IGkgPT0gMDoKKy0gICAgICAgICAgICBmbXB6X3BvbHlfZ2V0X1paWChpdGVtLl9fbnVtZXJhdG9y LCBzZWxmLngpCisrICAgICAgICAgICAgZm1wel9wb2x5X2dldF9aWlgoaXRlbS5fbnVtZXJhdG9y LCBzZWxmLngpCisgICAgICAgICBlbGlmIGkgPT0gMToKKy0gICAgICAgICAgICBmbXB6X3BvbHlf Z2V0X1paWChpdGVtLl9fbnVtZXJhdG9yLCBzZWxmLnkpCisrICAgICAgICAgICAgZm1wel9wb2x5 X2dldF9aWlgoaXRlbS5fbnVtZXJhdG9yLCBzZWxmLnkpCisgICAgICAgICBlbGlmIGkgPT0gMjoK Ky0gICAgICAgICAgICBmbXB6X3BvbHlfZ2V0X1paWChpdGVtLl9fbnVtZXJhdG9yLCBzZWxmLnop CisrICAgICAgICAgICAgZm1wel9wb2x5X2dldF9aWlgoaXRlbS5fbnVtZXJhdG9yLCBzZWxmLnop CisgICAgICAgICBlbGlmIGkgPT0gMzoKKy0gICAgICAgICAgICBmbXB6X3BvbHlfZ2V0X1paWChp dGVtLl9fbnVtZXJhdG9yLCBzZWxmLncpCisrICAgICAgICAgICAgZm1wel9wb2x5X2dldF9aWlgo aXRlbS5fbnVtZXJhdG9yLCBzZWxmLncpCisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJh aXNlIEluZGV4RXJyb3IoInF1YXRlcm5pb24gZWxlbWVudCBpbmRleCBvdXQgb2YgcmFuZ2UiKQor IAorLSAgICAgICAgbXB6X3RvX1paKCZpdGVtLl9fZGVub21pbmF0b3IsIHNlbGYuZCkKKysgICAg ICAgIG1wel90b19aWigmaXRlbS5fZGVub21pbmF0b3IsIHNlbGYuZCkKKyAKKyAgICAgICAgIHJl dHVybiBpdGVtCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvY2F0ZWdvcmllcy9ob3BmX2FsZ2Vi cmFzX3dpdGhfYmFzaXMucHkgYi9zcmMvc2FnZS9jYXRlZ29yaWVzL2hvcGZfYWxnZWJyYXNfd2l0 aF9iYXNpcy5weQoraW5kZXggMWJlOTY0Y2I2YzkuLjYxNWZjNGVhZTA2IDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvY2F0ZWdvcmllcy9ob3BmX2FsZ2VicmFzX3dpdGhfYmFzaXMucHkKKysrKyBiL3Ny Yy9zYWdlL2NhdGVnb3JpZXMvaG9wZl9hbGdlYnJhc193aXRoX2Jhc2lzLnB5CitAQCAtMzYsNyAr MzYsNyBAQCBjbGFzcyBIb3BmQWxnZWJyYXNXaXRoQmFzaXMoQ2F0ZWdvcnlXaXRoQXhpb21fb3Zl cl9iYXNlX3JpbmcpOgorICAgICAgICAgc2FnZTogQSA9IEMuZXhhbXBsZSgpOyBBICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG5lZWRzIHNh Z2UuZ3JvdXBzCisgICAgICAgICBBbiBleGFtcGxlIG9mIEhvcGYgYWxnZWJyYSB3aXRoIGJhc2lz OiB0aGUgZ3JvdXAgYWxnZWJyYSBvZiB0aGUKKyAgICAgICAgICBEaWhlZHJhbCBncm91cCBvZiBv cmRlciA2IGFzIGEgcGVybXV0YXRpb24gZ3JvdXAgb3ZlciBSYXRpb25hbCBGaWVsZAorLSAgICAg ICAgc2FnZTogQS5fX2N1c3RvbV9uYW1lID0gIkEiICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAjIG5lZWRzIHNhZ2UuZ3JvdXBzCisrICAgICAgICBz YWdlOiBBLnJlbmFtZSgiQSIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICMgbmVlZHMgc2FnZS5ncm91cHMKKyAgICAgICAgIHNhZ2U6 IEEuY2F0ZWdvcnkoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIyBuZWVkcyBzYWdlLmdyb3VwcworICAgICAgICAgQ2F0ZWdvcnkg b2YgZmluaXRlIGRpbWVuc2lvbmFsIGhvcGYgYWxnZWJyYXMgd2l0aCBiYXNpcyBvdmVyIFJhdGlv bmFsIEZpZWxkCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvY2F0ZWdvcmllcy9tb2R1bGVzX3dp dGhfYmFzaXMucHkgYi9zcmMvc2FnZS9jYXRlZ29yaWVzL21vZHVsZXNfd2l0aF9iYXNpcy5weQor aW5kZXggNjVmZDQ3Y2I4OTAuLmZjMTg1N2YwYzhlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY2F0 ZWdvcmllcy9tb2R1bGVzX3dpdGhfYmFzaXMucHkKKysrKyBiL3NyYy9zYWdlL2NhdGVnb3JpZXMv bW9kdWxlc193aXRoX2Jhc2lzLnB5CitAQCAtNjYsOCArNjYsOCBAQCBjbGFzcyBNb2R1bGVzV2l0 aEJhc2lzKENhdGVnb3J5V2l0aEF4aW9tX292ZXJfYmFzZV9yaW5nKToKKyAKKyAgICAgTGV0IGBY YCBhbmQgYFlgIGJlIHR3byBtb2R1bGVzIHdpdGggYmFzaXMuIFdlIGNhbiBidWlsZCBgSG9tKFgs WSlgOjoKKyAKKy0gICAgICAgIHNhZ2U6IFggPSBDb21iaW5hdG9yaWFsRnJlZU1vZHVsZShRUSwg WzEsMl0pOyBYLl9fY3VzdG9tX25hbWUgPSAiWCIgICAgICAgICAgICAgIyBuZWVkcyBzYWdlLm1v ZHVsZXMKKy0gICAgICAgIHNhZ2U6IFkgPSBDb21iaW5hdG9yaWFsRnJlZU1vZHVsZShRUSwgWzMs NF0pOyBZLl9fY3VzdG9tX25hbWUgPSAiWSIgICAgICAgICAgICAgIyBuZWVkcyBzYWdlLm1vZHVs ZXMKKysgICAgICAgIHNhZ2U6IFggPSBDb21iaW5hdG9yaWFsRnJlZU1vZHVsZShRUSwgWzEsMl0p OyBYLnJlbmFtZSgiWCIpICAgICAgICAgICAgICAgICAgICAgIyBuZWVkcyBzYWdlLm1vZHVsZXMK KysgICAgICAgIHNhZ2U6IFkgPSBDb21iaW5hdG9yaWFsRnJlZU1vZHVsZShRUSwgWzMsNF0pOyBZ LnJlbmFtZSgiWSIpICAgICAgICAgICAgICAgICAgICAgIyBuZWVkcyBzYWdlLm1vZHVsZXMKKyAg ICAgICAgIHNhZ2U6IEggPSBIb20oWCwgWSk7IEggICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBuZWVkcyBzYWdlLm1vZHVsZXMKKyAgICAg ICAgIFNldCBvZiBNb3JwaGlzbXMgZnJvbSBYIHRvIFkKKyAgICAgICAgICBpbiBDYXRlZ29yeSBv ZiBmaW5pdGUgZGltZW5zaW9uYWwgdmVjdG9yIHNwYWNlcyB3aXRoIGJhc2lzIG92ZXIgUmF0aW9u YWwgRmllbGQKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9jb21iaW5hdC9jbHVzdGVyX2NvbXBsZXgu cHkgYi9zcmMvc2FnZS9jb21iaW5hdC9jbHVzdGVyX2NvbXBsZXgucHkKK2luZGV4IGVkYzRmMjM1 YWViLi5lMjYzZDk4Mzg4NyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2NvbWJpbmF0L2NsdXN0ZXJf Y29tcGxleC5weQorKysrIGIvc3JjL3NhZ2UvY29tYmluYXQvY2x1c3Rlcl9jb21wbGV4LnB5CitA QCAtMjIyLDEwICsyMjIsNiBAQCBkZWYgX19pbml0X18oc2VsZiwgVywgaywgY294ZXRlcl9lbGVt ZW50LCBhbGdvcml0aG0pOgorICAgICAgICAgc2VsZi5fVyA9IFcKKyAgICAgICAgIHNlbGYuX3cw ID0gdworICAgICAgICAgc2VsZi5fayA9IGsKKy0gICAgICAgIGlmIGsgPT0gMToKKy0gICAgICAg ICAgICBzZWxmLl9fY3VzdG9tX25hbWUgPSAnQ2x1c3RlciBjb21wbGV4JworLSAgICAgICAgZWxz ZToKKy0gICAgICAgICAgICBzZWxmLl9fY3VzdG9tX25hbWUgPSAnTXVsdGktY2x1c3RlciBjb21w bGV4JworIAorICAgICAgICAgc2VsZi5zZXRfaW1tdXRhYmxlKCkKKyAKK0BAIC0yNzEsNyArMjY3 LDEwIEBAIGRlZiBfcmVwcl8oc2VsZik6CisgICAgICAgICAgICAgc2FnZTogQ2x1c3RlckNvbXBs ZXgoWydBJywgMl0pLl9yZXByXygpCisgICAgICAgICAgICAgIkNsdXN0ZXIgY29tcGxleCBvZiB0 eXBlIFsnQScsIDJdIHdpdGggNSB2ZXJ0aWNlcyBhbmQgNSBmYWNldHMiCisgICAgICAgICAiIiIK Ky0gICAgICAgIG5hbWUgPSBzZWxmLl9fY3VzdG9tX25hbWUKKysgICAgICAgIGlmIHNlbGYuX2sg PT0gMToKKysgICAgICAgICAgICBuYW1lID0gJ0NsdXN0ZXIgY29tcGxleCcKKysgICAgICAgIGVs c2U6CisrICAgICAgICAgICAgbmFtZSA9ICdNdWx0aS1jbHVzdGVyIGNvbXBsZXgnCisgICAgICAg ICBuYW1lICs9ICgnIG9mIHR5cGUgJXMgd2l0aCAlcyB2ZXJ0aWNlcyBhbmQgJXMgZmFjZXRzJwor ICAgICAgICAgICAgICAgICAgJSAoc2VsZi5jYXJ0YW5fdHlwZSgpLCBsZW4oc2VsZi52ZXJ0aWNl cygpKSwKKyAgICAgICAgICAgICAgICAgICAgIGxlbihzZWxmLl9mYWNldHMpKSkKK2RpZmYgLS1n aXQgYS9zcmMvc2FnZS9jb21iaW5hdC9pbnRlZ2VyX2xpc3RzL2Jhc2UucHhkIGIvc3JjL3NhZ2Uv Y29tYmluYXQvaW50ZWdlcl9saXN0cy9iYXNlLnB4ZAoraW5kZXggZWNiNTU1MGE5Y2YuLjNkMzcz YTY0ZmUwIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY29tYmluYXQvaW50ZWdlcl9saXN0cy9iYXNl LnB4ZAorKysrIGIvc3JjL3NhZ2UvY29tYmluYXQvaW50ZWdlcl9saXN0cy9iYXNlLnB4ZAorQEAg LTEyLDQgKzEyLDQgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTGlzdHNCYWNrZW5kKCk6CisgICAgIGNk ZWYgcmVhZG9ubHkgbWluX3BhcnQsIG1heF9wYXJ0CisgICAgIGNkZWYgcmVhZG9ubHkgbWluX3Ns b3BlLCBtYXhfc2xvcGUKKyAgICAgY2RlZiByZWFkb25seSBFbnZlbG9wZSBmbG9vciwgY2VpbGlu ZworLSAgICBjZGVmIHB1YmxpYyBkaWN0IF9fY2FjaGVkX21ldGhvZHMgICMgU3VwcG9ydCBjYWNo ZWRfbWV0aG9kCisrICAgIGNkZWYgcHVibGljIGRpY3QgX2NhY2hlZF9tZXRob2RzICAjIFN1cHBv cnQgY2FjaGVkX21ldGhvZAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2NvbWJpbmF0L3N1YndvcmRf Y29tcGxleC5weSBiL3NyYy9zYWdlL2NvbWJpbmF0L3N1YndvcmRfY29tcGxleC5weQoraW5kZXgg Yjc0ODliZGY3NTQuLmRlN2VlZmU5NDZlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY29tYmluYXQv c3Vid29yZF9jb21wbGV4LnB5CisrKysgYi9zcmMvc2FnZS9jb21iaW5hdC9zdWJ3b3JkX2NvbXBs ZXgucHkKK0BAIC0xMTMxLDcgKzExMzEsNiBAQCBkZWYgX19pbml0X18oc2VsZiwgUSwgdywgYWxn b3JpdGhtPSJpbmR1Y3RpdmUiKToKKyAgICAgICAgIFNpbXBsaWNpYWxDb21wbGV4Ll9faW5pdF9f KHNlbGYsIG1heGltYWxfZmFjZXM9RnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBtYXhpbWFsaXR5X2NoZWNrPUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY2F0ZWdvcnk9Y2F0KQorLSAgICAgICAgc2VsZi5fX2N1c3RvbV9uYW1lID0gJ1N1 YndvcmQgY29tcGxleCcKKyAgICAgICAgIHNlbGYuX1cgPSBXCisgICAgICAgICB0cnk6CisgICAg ICAgICAgICAgVCA9IFcuY294ZXRlcl9tYXRyaXgoKS5jb3hldGVyX3R5cGUoKQorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL2NweXRob24vY3l0aG9uX21ldGFjbGFzcy5oIGIvc3JjL3NhZ2UvY3B5dGhv bi9jeXRob25fbWV0YWNsYXNzLmgKK2luZGV4IGRhMDZhYjc1YTZiLi5lY2Y3Zjk3M2MzZSAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL2NweXRob24vY3l0aG9uX21ldGFjbGFzcy5oCisrKysgYi9zcmMv c2FnZS9jcHl0aG9uL2N5dGhvbl9tZXRhY2xhc3MuaAorQEAgLTUyLDYgKzUyLDE2IEBAIHN0YXRp YyBDWVRIT05fSU5MSU5FIGludCBTYWdlX1B5VHlwZV9SZWFkeShQeVR5cGVPYmplY3QqIHQpCisg ICAgIGlmIChyIDwgMCkKKyAgICAgICAgIHJldHVybiByOworIAorKyNpZiBQWV9WRVJTSU9OX0hF WCA+PSAweDAzMDUwMDAwCisrICAgIC8vIEN5dGhvbiAzIHNldHMgUHlfVFBGTEFHU19IRUFQVFlQ RSBiZWZvcmUgY2FsbGluZyBQeVR5cGVfUmVhZHksCisrICAgIC8vIGFuZCByZXNldHMganVzdCBh ZnRlciB0aGUgY2FsbC4gV2UgbmVlZCB0byByZXNldCBpdCBlYXJsaWVyLAorKyAgICAvLyBzaW5j ZSBvdGhlcndpc2UgdGhlIGNhbGwgdG8gbWV0YWNsYXNzLl9faW5pdF9fIGJlbG93IG1heSBoYXZl CisrICAgIC8vIGlsbGVnYWwgbWVtb3J5IGFjY2Vzc2VzLgorKyAgICAvLyBTZWUgYWxzbzoKKysg ICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2N5dGhvbi9jeXRob24vaXNzdWVzLzM2MDMKKysgICAg dC0+dHBfZmxhZ3MgJj0gflB5X1RQRkxBR1NfSEVBUFRZUEU7CisrI2VuZGlmCisrCisgICAgIC8q IFNldCBvciBnZXQgbWV0YWNsYXNzICh0aGUgdHlwZSBvZiB0KSAqLworICAgICBQeVR5cGVPYmpl Y3QqIG1ldGFjbGFzczsKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9jcHl0aG9uL2N5dGhvbl9t ZXRhY2xhc3MucHl4IGIvc3JjL3NhZ2UvY3B5dGhvbi9jeXRob25fbWV0YWNsYXNzLnB5eAoraW5k ZXggYThmZTg1MzY2MWQuLmE4ZmE5MmZjMWE4IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY3B5dGhv bi9jeXRob25fbWV0YWNsYXNzLnB5eAorKysrIGIvc3JjL3NhZ2UvY3B5dGhvbi9jeXRob25fbWV0 YWNsYXNzLnB5eAorQEAgLTE5LDEzICsxOSwxNiBAQCBmaWxlIGlmIHlvdSBhcmUgdXNpbmcgb25l KS4KKyAKKyBJbiB0aGUgZXh0ZW5zaW9uIHR5cGUgKGEuay5hLiBgYGNkZWYgY2xhc3NgYCkgZm9y IHdoaWNoIHlvdSB3YW50IHRvCisgZGVmaW5lIGEgbWV0YWNsYXNzLCBkZWZpbmUgYSBtZXRob2Qg YGBfX2dldG1ldGFjbGFzc19fYGAgd2l0aCBhIHNpbmdsZQorLXVudXNlZCBhcmd1bWVudC4gVGhp cyBtZXRob2Qgc2hvdWxkIHJldHVybiBhIHR5cGUgdG8gYmUgdXNlZCBhcworK3VudXNlZCBhcmd1 bWVudCwgYW5kIHR1cm4gb2ZmIHRoZSBDeXRob24gZGlyZWN0aXZlCisrYGBhbHdheXNfYWxsb3df a2V5d29yZHNgYC4gVGhpcyBtZXRob2Qgc2hvdWxkIHJldHVybiBhIHR5cGUgdG8gYmUgdXNlZCBh cworIG1ldGFjbGFzczoKKyAKKyAuLiBjb2RlLWJsb2NrOjogY3l0aG9uCisgCisrICAgIGNpbXBv cnQgY3l0aG9uCisgICAgIGNpbXBvcnQgc2FnZS5jcHl0aG9uLmN5dGhvbl9tZXRhY2xhc3MKKyAg ICAgY2RlZiBjbGFzcyBNeUN1c3RvbVR5cGUoKToKKysgICAgICAgIEBjeXRob24uYWx3YXlzX2Fs bG93X2tleXdvcmRzKEZhbHNlKQorICAgICAgICAgZGVmIF9fZ2V0bWV0YWNsYXNzX18oXyk6Cisg ICAgICAgICAgICAgZnJvbSBmb28gaW1wb3J0IE15TWV0YWNsYXNzCisgICAgICAgICAgICAgcmV0 dXJuIE15TWV0YWNsYXNzCitAQCAtNjMsOCArNjYsMTAgQEAgRVhBTVBMRVM6OgorIAorICAgICBz YWdlOiBjeXRob24oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAjIG5lZWRzIHNhZ2UubWlzYy5jeXRob24KKyAgICAg Li4uLjogJycnCisrICAgIC4uLi46IGNpbXBvcnQgY3l0aG9uCisgICAgIC4uLi46IGNpbXBvcnQg c2FnZS5jcHl0aG9uLmN5dGhvbl9tZXRhY2xhc3MKKyAgICAgLi4uLjogY2RlZiBjbGFzcyBNeUN1 c3RvbVR5cGUoKToKKysgICAgLi4uLjogICAgIEBjeXRob24uYWx3YXlzX2FsbG93X2tleXdvcmRz KEZhbHNlKQorICAgICAuLi4uOiAgICAgZGVmIF9fZ2V0bWV0YWNsYXNzX18oXyk6CisgICAgIC4u Li46ICAgICAgICAgY2xhc3MgTXlNZXRhY2xhc3ModHlwZSk6CisgICAgIC4uLi46ICAgICAgICAg ICAgIGRlZiBfX2luaXRfXygqYXJncyk6CitAQCAtMTAxLDggKzEwNiwxMCBAQCByZXR1cm5zIGEg bm9uLXR5cGU6OgorIAorICAgICBzYWdlOiBjeXRob24oICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG5lZWRzIHNh Z2UubWlzYy5jeXRob24KKyAgICAgLi4uLjogJycnCisrICAgIC4uLi46IGNpbXBvcnQgY3l0aG9u CisgICAgIC4uLi46IGNpbXBvcnQgc2FnZS5jcHl0aG9uLmN5dGhvbl9tZXRhY2xhc3MKKyAgICAg Li4uLjogY2RlZiBjbGFzcyBNeUN1c3RvbVR5cGUoKToKKysgICAgLi4uLjogICAgIEBjeXRob24u YWx3YXlzX2FsbG93X2tleXdvcmRzKEZhbHNlKQorICAgICAuLi4uOiAgICAgZGVmIF9fZ2V0bWV0 YWNsYXNzX18oXyk6CisgICAgIC4uLi46ICAgICAgICAgcmV0dXJuIDIKKyAgICAgLi4uLjogJycn KQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2NweXRob24vZ2V0YXR0ci5weXggYi9zcmMvc2FnZS9j cHl0aG9uL2dldGF0dHIucHl4CitpbmRleCAzZjYwM2I5ODA0MC4uMTZmNjQ5YzA4M2QgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9jcHl0aG9uL2dldGF0dHIucHl4CisrKysgYi9zcmMvc2FnZS9jcHl0 aG9uL2dldGF0dHIucHl4CitAQCAtMjcxLDcgKzI3MSw3IEBAIGNwZGVmIGdldGF0dHJfZnJvbV9v dGhlcl9jbGFzcyhzZWxmLCBjbHMsIG5hbWUpOgorIAorICAgICBDYXZlYXQ6IGxhenkgYXR0cmli dXRlcyB3b3JrIHdpdGggZXh0ZW5zaW9uIHR5cGVzIG9ubHkKKyAgICAgaWYgdGhleSBhbGxvdyBh dHRyaWJ1dGUgYXNzaWdubWVudCBvciBoYXZlIGEgcHVibGljIGF0dHJpYnV0ZQorLSAgICBgYF9f Y2FjaGVkX21ldGhvZHNgYCBvZiB0eXBlIGBgPGRpY3Q+YGAuIFRoaXMgY29uZGl0aW9uCisrICAg IGBgX2NhY2hlZF9tZXRob2RzYGAgb2YgdHlwZSBgYDxkaWN0PmBgLiBUaGlzIGNvbmRpdGlvbgor ICAgICBpcyBzYXRpc2ZpZWQsIGUuZy4sIGJ5IGFueSBjbGFzcyB0aGF0IGlzIGRlcml2ZWQgZnJv bQorICAgICA6Y2xhc3M6YFBhcmVudGA6OgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2dlb21l dHJ5L3BvbHloZWRyb24vY29tYmluYXRvcmlhbF9wb2x5aGVkcm9uL2Jhc2UucHhkIGIvc3JjL3Nh Z2UvZ2VvbWV0cnkvcG9seWhlZHJvbi9jb21iaW5hdG9yaWFsX3BvbHloZWRyb24vYmFzZS5weGQK K2luZGV4IGJkZDQ5MjI1ZmYyLi4wMzBjOWRlZmE0NSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dl b21ldHJ5L3BvbHloZWRyb24vY29tYmluYXRvcmlhbF9wb2x5aGVkcm9uL2Jhc2UucHhkCisrKysg Yi9zcmMvc2FnZS9nZW9tZXRyeS9wb2x5aGVkcm9uL2NvbWJpbmF0b3JpYWxfcG9seWhlZHJvbi9i YXNlLnB4ZAorQEAgLTgsNyArOCw3IEBAIGZyb20gLnBvbHloZWRyb25fZmFjZV9sYXR0aWNlICAg ICAgICAgICBjaW1wb3J0IFBvbHloZWRyb25GYWNlTGF0dGljZQorIAorIEBjeXRob24uZmluYWwK KyBjZGVmIGNsYXNzIENvbWJpbmF0b3JpYWxQb2x5aGVkcm9uKFNhZ2VPYmplY3QpOgorLSAgICBj ZGVmIHB1YmxpYyBkaWN0IF9fY2FjaGVkX21ldGhvZHMKKysgICAgY2RlZiBwdWJsaWMgZGljdCBf Y2FjaGVkX21ldGhvZHMKKyAKKyAgICAgIyBEbyBub3QgYXNzdW1lIGFueSBvZiB0aG9zZSBhdHRy aWJ1dGVzIHRvIGJlIGluaXRpYWxpemVkLCB1c2UgdGhlIGNvcnJlc3BvbmRpbmcgbWV0aG9kcyBp bnN0ZWFkLgorICAgICBjZGVmIHR1cGxlIF9WcmVwICAgICAgICAgICAgICAgICAgICAgICAjIHRo ZSBuYW1lcyBvZiBWUmVwLCBpZiB0aGV5IGV4aXN0CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ3Jv dXBzL3Blcm1fZ3BzL3Blcm1ncm91cF9lbGVtZW50LnB4ZCBiL3NyYy9zYWdlL2dyb3Vwcy9wZXJt X2dwcy9wZXJtZ3JvdXBfZWxlbWVudC5weGQKK2luZGV4IGEyYWM4ZjIwZWFhLi4wYTU4NDc0NWY5 NiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dyb3Vwcy9wZXJtX2dwcy9wZXJtZ3JvdXBfZWxlbWVu dC5weGQKKysrKyBiL3NyYy9zYWdlL2dyb3Vwcy9wZXJtX2dwcy9wZXJtZ3JvdXBfZWxlbWVudC5w eGQKK0BAIC0yMiw3ICsyMiw3IEBAIGNkZWYgY2xhc3MgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQo TXVsdGlwbGljYXRpdmVHcm91cEVsZW1lbnQpOgorICAgICBjcGRlZiBQZXJtdXRhdGlvbkdyb3Vw RWxlbWVudCBfZ2VuZXJhdGVfbmV3X0dBUChzZWxmLCBvbGQpCisgICAgIGNwZGVmIF9nYXBfbGlz dChzZWxmKQorICAgICBjcGRlZiBkb21haW4oc2VsZikKKy0gICAgY2RlZiBwdWJsaWMgX19jdXN0 b21fbmFtZQorKyAgICBjZGVmIHB1YmxpYyBfU2FnZU9iamVjdF9fY3VzdG9tX25hbWUKKyAgICAg Y3BkZWYgbGlzdCBfYWN0X29uX2xpc3Rfb25fcG9zaXRpb24oc2VsZiwgbGlzdCB4KQorICAgICBj cGRlZiBDbG9uYWJsZUludEFycmF5IF9hY3Rfb25fYXJyYXlfb25fcG9zaXRpb24oc2VsZiwgQ2xv bmFibGVJbnRBcnJheSB4KQorICAgICBjcGRlZiBFVHVwbGUgX2FjdF9vbl9ldHVwbGVfb25fcG9z aXRpb24oc2VsZiwgRVR1cGxlIHgpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvaW50ZXJmYWNlcy9p bnRlcmZhY2UucHkgYi9zcmMvc2FnZS9pbnRlcmZhY2VzL2ludGVyZmFjZS5weQoraW5kZXggZjgy MzdkM2FkOTQuLjMxODAxMTNjOWM3IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvaW50ZXJmYWNlcy9p bnRlcmZhY2UucHkKKysrKyBiL3NyYy9zYWdlL2ludGVyZmFjZXMvaW50ZXJmYWNlLnB5CitAQCAt MTE2OSwxMSArMTE2OSw4IEBAIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgICAgICBzID0g Y3IKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcyA9IHNlbGYuX3JlcHJfKCkKKy0gICAg ICAgIGlmIHNlbGYuX25hbWUgaW4gczoKKy0gICAgICAgICAgICB0cnk6CistICAgICAgICAgICAg ICAgIHMgPSBzLnJlcGxhY2Uoc2VsZi5fbmFtZSwgZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFt ZScpKQorLSAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKy0gICAgICAgICAgICAg ICAgcGFzcworKyAgICAgICAgaWYgc2VsZi5fbmFtZSBpbiBzIGFuZCBzZWxmLmdldF9jdXN0b21f bmFtZSgpIGlzIG5vdCBOb25lOgorKyAgICAgICAgICAgIHMgPSBzLnJlcGxhY2Uoc2VsZi5fbmFt ZSwgc2VsZi5nZXRfY3VzdG9tX25hbWUoKSkKKyAgICAgICAgIGlmIGNyOgorICAgICAgICAgICAg IHNlbGYuX2NhY2hlZF9yZXByID0gcworICAgICAgICAgcmV0dXJuIHMKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9pbnRlcmZhY2VzL3Npbmd1bGFyLnB5IGIvc3JjL3NhZ2UvaW50ZXJmYWNlcy9zaW5n dWxhci5weQoraW5kZXggNGI1Yzc2ZTJiZmEuLjcwNWZhNmY2NmUxIDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvaW50ZXJmYWNlcy9zaW5ndWxhci5weQorKysrIGIvc3JjL3NhZ2UvaW50ZXJmYWNlcy9z aW5ndWxhci5weQorQEAgLTE0MDAsOCArMTQwMCw4IEBAIGRlZiBfcmVwcl8oc2VsZik6CisgICAg ICAgICAiIiIKKyAgICAgICAgIHMgPSBzdXBlcihTaW5ndWxhckVsZW1lbnQsIHNlbGYpLl9yZXBy XygpCisgICAgICAgICBpZiBzZWxmLl9uYW1lIGluIHM6CistICAgICAgICAgICAgaWYgKG5vdCBo YXNhdHRyKHNlbGYsICJfX2N1c3RvbV9uYW1lIikpIGFuZCBzZWxmLnR5cGUoKSA9PSAnbWF0cml4 JzoKKy0gICAgICAgICAgICAgICAgcyA9IHNlbGYucGFyZW50KCkuZXZhbCgncG1hdCglcywyMCkn JShzZWxmLm5hbWUoKSkpCisrICAgICAgICAgICAgaWYgc2VsZi5nZXRfY3VzdG9tX25hbWUoKSBp cyBOb25lIGFuZCBzZWxmLnR5cGUoKSA9PSAnbWF0cml4JzoKKysgICAgICAgICAgICAgICAgcyA9 IHNlbGYucGFyZW50KCkuZXZhbCgncG1hdCglcywyMCknICUgKHNlbGYubmFtZSgpKSkKKyAgICAg ICAgIHJldHVybiBzCisgCisgICAgIGRlZiBfX2NvcHlfXyhzZWxmKToKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9saWJzL2FyYi9hcml0aC5weXggYi9zcmMvc2FnZS9saWJzL2FyYi9hcml0aC5weXgK K2luZGV4IGQ4ODVmOTdiMjM4Li4zYjMyZmU3ZThlZCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xp YnMvYXJiL2FyaXRoLnB5eAorKysrIGIvc3JjL3NhZ2UvbGlicy9hcmIvYXJpdGgucHl4CitAQCAt ODEsNSArODEsNSBAQCBkZWYgaGlsYmVydF9jbGFzc19wb2x5bm9taWFsKEQpOgorICAgICBjZGVm IGxvbmcgbiA9IEQKKyAgICAgY2RlZiBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQgcG9s eQorICAgICBwb2x5ID0gUG9seW5vbWlhbFJpbmcoWlosICJ4IiwgaW1wbGVtZW50YXRpb249IkZM SU5UIikoKQorLSAgICBhY2JfbW9kdWxhcl9oaWxiZXJ0X2NsYXNzX3BvbHkocG9seS5fX3BvbHks IG4pCisrICAgIGFjYl9tb2R1bGFyX2hpbGJlcnRfY2xhc3NfcG9seShwb2x5Ll9wb2x5LCBuKQor ICAgICByZXR1cm4gcG9seQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvY294ZXRlcjMvY294 ZXRlci5weGQgYi9zcmMvc2FnZS9saWJzL2NveGV0ZXIzL2NveGV0ZXIucHhkCitpbmRleCA5ZDVj YjJhM2Y1ZC4uZGJkMmI4YTYxYzYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL2NveGV0ZXIz L2NveGV0ZXIucHhkCisrKysgYi9zcmMvc2FnZS9saWJzL2NveGV0ZXIzL2NveGV0ZXIucHhkCitA QCAtMjksNiArMjksMyBAQCBjZGVmIGNsYXNzIENveEdyb3VwRWxlbWVudDoKKyAgICAgY2RlZiBD b3hHcm91cCBfcGFyZW50X2dyb3VwCisgICAgIGNkZWYgQ294R3JvdXBFbGVtZW50IF9uZXcoc2Vs ZikKKyAgICAgY3BkZWYgQ294R3JvdXAgcGFyZW50X2dyb3VwKHNlbGYpCistCistY2RlZiBjbGFz cyBDb3hHcmFwaDoKKy0gICAgY2RlZiBjX0NveEdyYXBoIHgKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9saWJzL2dhcC9lbGVtZW50LnB5eCBiL3NyYy9zYWdlL2xpYnMvZ2FwL2VsZW1lbnQucHl4Citp bmRleCAxZGM1M2M4MWY2Ny4uNDc4Y2FmOWY5ZDAgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJz L2dhcC9lbGVtZW50LnB5eAorKysrIGIvc3JjL3NhZ2UvbGlicy9nYXAvZWxlbWVudC5weXgKK0BA IC03MjAsNyArNzIwLDcgQEAgY2RlZiBjbGFzcyBHYXBFbGVtZW50KFJpbmdFbGVtZW50KToKKyAg ICAgICAgICAgICAuLi4KKyAgICAgICAgICAgICBBdHRyaWJ1dGVFcnJvcjogJ3NvbWVfbmFtZScg ZG9lcyBub3QgZGVmaW5lIGEgR0FQIGZ1bmN0aW9uCisgICAgICAgICAiIiIKKy0gICAgICAgIGlm IG5hbWUgaW4gKCdfX2RpY3RfXycsICdfZ2V0QXR0cmlidXRlTmFtZXMnLCAnX19jdXN0b21fbmFt ZScsICdrZXlzJyk6CisrICAgICAgICBpZiBuYW1lIGluICgnX19kaWN0X18nLCAnX2dldEF0dHJp YnV0ZU5hbWVzJywgJ19TYWdlT2JqZWN0X19jdXN0b21fbmFtZScsICdrZXlzJyk6CisgICAgICAg ICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IoJ1B5dGhvbiBzcGVjaWFsIG5hbWUsIG5vdCBhIEdB UCBmdW5jdGlvbi4nKQorICAgICAgICAgdHJ5OgorICAgICAgICAgICAgIHByb3h5ID0gbWFrZV9H YXBFbGVtZW50X01ldGhvZFByb3h5XAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvZ2FwL2dh cF9pbmNsdWRlcy5weGQgYi9zcmMvc2FnZS9saWJzL2dhcC9nYXBfaW5jbHVkZXMucHhkCitpbmRl eCA4NDBiOGEwMDQyZS4uMWVkNDM3OGE2YzcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL2dh cC9nYXBfaW5jbHVkZXMucHhkCisrKysgYi9zcmMvc2FnZS9saWJzL2dhcC9nYXBfaW5jbHVkZXMu cHhkCitAQCAtMTQ0LDMgKzE0NCwxOCBAQCBjZGVmIGV4dGVybiBmcm9tICJnYXAvc3RyaW5nb2Jq LmgiIG5vZ2lsOgorICAgICBiaW50IElTX1NUUklORyhPYmogb2JqKQorICAgICBiaW50IElzU3Ry aW5nQ29udihPYmogb2JqKQorICAgICBPYmogTkVXX1NUUklORyhJbnQpCisrCisrCisrY2RlZiBl eHRlcm4gZnJvbSAiPHN0cnVjdG1lbWJlci5oPiIgbm9naWw6CisrICAgICIiIgorKyAgICAvKiBI YWNrOiBDeXRob24gMy4wIGF1dG9tYXRpY2FsbHkgaW5jbHVkZXMgPHN0cnVjdG1lbWJlci5oPiwg d2hpY2gKKysgICAgICogZGVmaW5lcyBzZXZlcmFsIG1hY3JvcyB0aGF0IGNvbGxpZGVzIHdpdGgg ZW51bSBkZWZpbml0aW9ucyBpbgorKyAgICAgKiBnYXAvb2JqZWN0cy5oLiBXZSBuZWVkIHRvIGlu Y2x1ZGUgdGhlIGhlYWRlciBleHBsaWNpdGx5IGFuZAorKyAgICAgKiB1bmRlZmluZSB0aGVzZSBt YWNyb3MuCisrICAgICAqLworKyAgICAjdW5kZWYgVF9JTlQKKysgICAgI3VuZGVmIFRfU1RSSU5H CisrICAgICN1bmRlZiBUX0NIQVIKKysgICAgI3VuZGVmIFRfQk9PTAorKyAgICAiIiIKKysgICAg cGFzcworZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvbGNhbGMvbGNhbGNfTGZ1bmN0aW9uLnB4 ZCBiL3NyYy9zYWdlL2xpYnMvbGNhbGMvbGNhbGNfTGZ1bmN0aW9uLnB4ZAoraW5kZXggNWVkZjA4 NDRmM2UuLjFkNTk1MTgwYTZmIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9sY2FsYy9sY2Fs Y19MZnVuY3Rpb24ucHhkCisrKysgYi9zcmMvc2FnZS9saWJzL2xjYWxjL2xjYWxjX0xmdW5jdGlv bi5weGQKK0BAIC05OSwxOSArOTksMTkgQEAgY2RlZiBleHRlcm4gZnJvbSAibGNhbGNfc2FnZS5o IjoKKyAjIyMjIyMjIyMjIyMjIyMjCisgCisgIyBzdHJhbmdlIGJ1ZywgSSBjYW4ndCBjb21waWxl IHdpdGhvdXQgdGhpcyB0cmljayA/Pz8KKy0jIGl0J3Mgb25seSB1c2VkIGluIF9fdHlwZWROCisr IyBpdCdzIG9ubHkgdXNlZCBpbiBfdHlwZWROCisgY3R5cGVkZWYgZG91YmxlIERvdWJsZQorIAor IGNkZWYgY2xhc3MgTGZ1bmN0aW9uOgorICAgICBjZGVmIHZvaWQgKnRoaXNwdHIKKy0gICAgY2Rl ZiB2b2lkIF9faW5pdF9mdW4oc2VsZiwgY2hhciAqTkFNRSwgaW50IHdoYXRfdHlwZSwgZGlyaWNo bGV0X2NvZWZmLCBsb25nIGxvbmcgUGVyaW9kLCBkb3VibGUgcSwgIGNfQ29tcGxleCB3LCBpbnQg QSwgZG91YmxlICpnLCBjX0NvbXBsZXggKmwsIGludCBuX3BvbGVzLCBjX0NvbXBsZXggKnAsIGNf Q29tcGxleCAqcikKKy0gICAgY2RlZiBjX0NvbXBsZXggX192YWx1ZShzZWxmLGNfQ29tcGxleCBz LGludCBkZXJpdmF0aXZlKQorLSAgICBjZGVmIGNfQ29tcGxleCBfX2hhcmR5X3pfZnVuY3Rpb24o c2VsZixjX0NvbXBsZXggcykKKy0gICAgY2RlZiBpbnQgX19jb21wdXRlX3Jhbmsoc2VsZikKKysg ICAgY2RlZiB2b2lkIF9pbml0X2Z1bihzZWxmLCBjaGFyICpOQU1FLCBpbnQgd2hhdF90eXBlLCBk aXJpY2hsZXRfY29lZmYsIGxvbmcgbG9uZyBQZXJpb2QsIGRvdWJsZSBxLCAgY19Db21wbGV4IHcs IGludCBBLCBkb3VibGUgKmcsIGNfQ29tcGxleCAqbCwgaW50IG5fcG9sZXMsIGNfQ29tcGxleCAq cCwgY19Db21wbGV4ICpyKQorKyAgICBjZGVmIGNfQ29tcGxleCBfdmFsdWUoc2VsZixjX0NvbXBs ZXggcyxpbnQgZGVyaXZhdGl2ZSkKKysgICAgY2RlZiBjX0NvbXBsZXggX2hhcmR5X3pfZnVuY3Rp b24oc2VsZixjX0NvbXBsZXggcykKKysgICAgY2RlZiBpbnQgX2NvbXB1dGVfcmFuayhzZWxmKQor ICAgICAjc3RyYW5nZSBidWcsIHJlcGxhY2luZyBEb3VibGUgd2l0aCBkb3VibGUgZ2l2ZXMgbWUg YSBjb21waWxlIGVycm9yCistICAgIGNkZWYgRG91YmxlIF9fdHlwZWROKHNlbGYsIGRvdWJsZSBU KQorLSAgICBjZGVmIHZvaWQgX19maW5kX3plcm9zX3Yoc2VsZiwgZG91YmxlIFQxLCBkb3VibGUg VDIsIGRvdWJsZSBzdGVwc2l6ZSxkb3VibGV2ZWMgKnJlc3VsdCkKKy0gICAgY2RlZiBpbnQgX19m aW5kX3plcm9zKHNlbGYsIGxvbmcgY291bnQsIGxvbmcgc3RhcnQsIGRvdWJsZSBtYXhfcmVmaW5l LCBpbnQgcmFuaywgY29uc3QgY2hhciogbWVzc2FnZV9zdGFtcCwgZG91YmxldmVjKiByZXN1bHQp CisrICAgIGNkZWYgRG91YmxlIF90eXBlZE4oc2VsZiwgZG91YmxlIFQpCisrICAgIGNkZWYgdm9p ZCBfZmluZF96ZXJvc192KHNlbGYsIGRvdWJsZSBUMSwgZG91YmxlIFQyLCBkb3VibGUgc3RlcHNp emUsZG91YmxldmVjICpyZXN1bHQpCisrICAgIGNkZWYgaW50IF9maW5kX3plcm9zKHNlbGYsIGxv bmcgY291bnQsIGxvbmcgc3RhcnQsIGRvdWJsZSBtYXhfcmVmaW5lLCBpbnQgcmFuaywgY29uc3Qg Y2hhciogbWVzc2FnZV9zdGFtcCwgZG91YmxldmVjKiByZXN1bHQpCisgCisgICAgIGNkZWYgc3Ry IF9yZXByCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9sY2FsYy9sY2FsY19MZnVuY3Rp b24ucHl4IGIvc3JjL3NhZ2UvbGlicy9sY2FsYy9sY2FsY19MZnVuY3Rpb24ucHl4CitpbmRleCA2 ZTkwMDVjNTAyYi4uN2I4NzFlZDA0OWYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL2xjYWxj L2xjYWxjX0xmdW5jdGlvbi5weXgKKysrKyBiL3NyYy9zYWdlL2xpYnMvbGNhbGMvbGNhbGNfTGZ1 bmN0aW9uLnB5eAorQEAgLTk5LDcgKzk5LDcgQEAgY2RlZiBjbGFzcyBMZnVuY3Rpb246CisgICAg ICAgICAgICAgdG1wYz1DQ0MocmVzaWR1ZVtpXSkKKyAgICAgICAgICAgICByW2krMV0gPSBuZXdf Q29tcGxleChtcGZyX2dldF9kKHRtcGMuX19yZSwgTVBGUl9STkROKSwgbXBmcl9nZXRfZCh0bXBj Ll9faW0sIE1QRlJfUk5ETikpCisgCistICAgICAgICBzZWxmLl9faW5pdF9mdW4oTkFNRSwgd2hh dF90eXBlLCBkaXJpY2hsZXRfY29lZmZpY2llbnQsIFBlcmlvZCwgcSwgIHcsICBBLCBnLCBsLCBu X3BvbGVzLCBwLCByKQorKyAgICAgICAgc2VsZi5faW5pdF9mdW4oTkFNRSwgd2hhdF90eXBlLCBk aXJpY2hsZXRfY29lZmZpY2llbnQsIFBlcmlvZCwgcSwgIHcsICBBLCBnLCBsLCBuX3BvbGVzLCBw LCByKQorIAorICAgICAgICAgaWYgbmFtZToKKyAgICAgICAgICAgICBuYW1lICs9ICc6ICcKK0BA IC0xODAsNyArMTgwLDcgQEAgY2RlZiBjbGFzcyBMZnVuY3Rpb246CisgICAgICAgICAiIiIKKyAg ICAgICAgIGNkZWYgQ29tcGxleE51bWJlciBjb21wbGV4aWZpZWRfcyA9IENDQyhzKQorICAgICAg ICAgY2RlZiBjX0NvbXBsZXggeiA9IG5ld19Db21wbGV4KG1wZnJfZ2V0X2QoY29tcGxleGlmaWVk X3MuX19yZSwgTVBGUl9STkROKSwgbXBmcl9nZXRfZChjb21wbGV4aWZpZWRfcy5fX2ltLCBNUEZS X1JORE4pKQorLSAgICAgICAgY2RlZiBjX0NvbXBsZXggcmVzdWx0ID0gc2VsZi5fX3ZhbHVlKHos IGRlcml2YXRpdmUpCisrICAgICAgICBjZGVmIGNfQ29tcGxleCByZXN1bHQgPSBzZWxmLl92YWx1 ZSh6LCBkZXJpdmF0aXZlKQorICAgICAgICAgcmV0dXJuIENDQyhyZXN1bHQucmVhbCgpLHJlc3Vs dC5pbWFnKCkpCisgCisgICAgIGRlZiBoYXJkeV96X2Z1bmN0aW9uKHNlbGYsIHMpOgorQEAgLTIy Myw3ICsyMjMsNyBAQCBjZGVmIGNsYXNzIExmdW5jdGlvbjoKKyAgICAgICAgICNUaGlzIHRha2Vz IHMgLT4gLjUgKyBJKnMKKyAgICAgICAgIGNkZWYgQ29tcGxleE51bWJlciBjb21wbGV4aWZpZWRf cyA9IENDQygwLjUpKyBDQ0MoMCwxKSpDQ0MocykKKyAgICAgICAgIGNkZWYgY19Db21wbGV4IHog PSBuZXdfQ29tcGxleChtcGZyX2dldF9kKGNvbXBsZXhpZmllZF9zLl9fcmUsIE1QRlJfUk5ETiks IG1wZnJfZ2V0X2QoY29tcGxleGlmaWVkX3MuX19pbSwgTVBGUl9STkROKSkKKy0gICAgICAgIGNk ZWYgY19Db21wbGV4IHJlc3VsdCA9IHNlbGYuX19oYXJkeV96X2Z1bmN0aW9uKHopCisrICAgICAg ICBjZGVmIGNfQ29tcGxleCByZXN1bHQgPSBzZWxmLl9oYXJkeV96X2Z1bmN0aW9uKHopCisgICAg ICAgICByZXR1cm4gQ0NDKHJlc3VsdC5yZWFsKCkscmVzdWx0LmltYWcoKSkKKyAKKyAKK0BAIC0y NDksOSArMjQ5LDkgQEAgY2RlZiBjbGFzcyBMZnVuY3Rpb246CisgICAgICAgICAgICAgMworIAor ICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5fX2NvbXB1dGVfcmFuaygpCisrICAg ICAgICByZXR1cm4gc2VsZi5fY29tcHV0ZV9yYW5rKCkKKyAKKy0gICAgZGVmIF9fTihzZWxmLCBU KToKKysgICAgZGVmIF9OKHNlbGYsIFQpOgorICAgICAgICAgIiIiCisgICAgICAgICBDb21wdXRl IHRoZSBudW1iZXIgb2YgemVyb2VzIHVwdG8gaGVpZ2h0IGBUYCB1c2luZyB0aGUgZm9ybXVsYSBm b3IKKyAgICAgICAgIGBOKFQpYCB3aXRoIHRoZSBlcnJvciBvZiBgUyhUKWAuIFBsZWFzZSBkbyBu b3QgdXNlIHRoaXMuIEl0IGlzIG9ubHkKK0BAIC0yNjIsMTIgKzI2MiwxMiBAQCBjZGVmIGNsYXNz IExmdW5jdGlvbjoKKyAgICAgICAgICAgICBzYWdlOiBmcm9tIHNhZ2UubGlicy5sY2FsYy5sY2Fs Y19MZnVuY3Rpb24gaW1wb3J0ICoKKyAgICAgICAgICAgICBzYWdlOiBjaGkgPSBEaXJpY2hsZXRH cm91cCg1KVsyXSAjVGhpcyBpcyBhIHF1YWRyYXRpYyBjaGFyYWN0ZXIKKyAgICAgICAgICAgICBz YWdlOiBMPUxmdW5jdGlvbl9mcm9tX2NoYXJhY3RlcihjaGksIHR5cGU9ImNvbXBsZXgiKQorLSAg ICAgICAgICAgIHNhZ2U6IEwuX19OKDEwKSAjIGFicyB0b2wgMWUtOAorKyAgICAgICAgICAgIHNh Z2U6IEwuX04oMTApICMgYWJzIHRvbCAxZS04CisgICAgICAgICAgICAgNC4wCisgICAgICAgICAi IiIKKyAgICAgICAgIGNkZWYgUmVhbE51bWJlciByZWFsX1Q9UlJSKFQpCisgICAgICAgICBjZGVm IGRvdWJsZSBkb3VibGVfVCA9IG1wZnJfZ2V0X2QocmVhbF9ULnZhbHVlLCBNUEZSX1JORE4pCist ICAgICAgICBjZGVmIGRvdWJsZSByZXNfZCA9IHNlbGYuX190eXBlZE4oZG91YmxlX1QpCisrICAg ICAgICBjZGVmIGRvdWJsZSByZXNfZCA9IHNlbGYuX3R5cGVkTihkb3VibGVfVCkKKyAgICAgICAg IHJldHVybiBSUlIocmVzX2QpCisgCisgICAgIGRlZiBmaW5kX3plcm9zKHNlbGYsIFQxLCBUMiwg c3RlcHNpemUpOgorQEAgLTMyMyw3ICszMjMsNyBAQCBjZGVmIGNsYXNzIExmdW5jdGlvbjoKKyAg ICAgICAgIGNkZWYgUmVhbE51bWJlciByZWFsX1QyID0gUlJSKFQyKQorICAgICAgICAgY2RlZiBS ZWFsTnVtYmVyIHJlYWxfc3RlcHNpemUgPSBSUlIoc3RlcHNpemUpCisgICAgICAgICBzaWdfb24o KQorLSAgICAgICAgc2VsZi5fX2ZpbmRfemVyb3NfdiggbXBmcl9nZXRfZChyZWFsX1QxLnZhbHVl LCBNUEZSX1JORE4pLCBtcGZyX2dldF9kKHJlYWxfVDIudmFsdWUsIE1QRlJfUk5ETiksIG1wZnJf Z2V0X2QocmVhbF9zdGVwc2l6ZS52YWx1ZSwgTVBGUl9STkROKSwmcmVzdWx0KQorKyAgICAgICAg c2VsZi5fZmluZF96ZXJvc192KCBtcGZyX2dldF9kKHJlYWxfVDEudmFsdWUsIE1QRlJfUk5ETiks IG1wZnJfZ2V0X2QocmVhbF9UMi52YWx1ZSwgTVBGUl9STkROKSwgbXBmcl9nZXRfZChyZWFsX3N0 ZXBzaXplLnZhbHVlLCBNUEZSX1JORE4pLCZyZXN1bHQpCisgICAgICAgICBzaWdfb2ZmKCkKKyAg ICAgICAgIGk9cmVzdWx0LnNpemUoKQorICAgICAgICAgcmV0dXJudmFsdWUgPSBbXQorQEAgLTM5 OSw3ICszOTksNyBAQCBjZGVmIGNsYXNzIExmdW5jdGlvbjoKKyAgICAgICAgIGNkZWYgY29uc3Qg Y2hhciogbWVzc2FnZV9zdGFtcCA9ICIiCisgICAgICAgICBjZGVmIGRvdWJsZXZlYyByZXN1bHQK KyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBzZWxmLl9fZmluZF96ZXJvcyhjb3VudCwgc3Rh cnQsIG1heF9yZWZpbmUsIHJhbmssIG1lc3NhZ2Vfc3RhbXAsICZyZXN1bHQpCisrICAgICAgICBz ZWxmLl9maW5kX3plcm9zKGNvdW50LCBzdGFydCwgbWF4X3JlZmluZSwgcmFuaywgbWVzc2FnZV9z dGFtcCwgJnJlc3VsdCkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJudmFsdWUg PSBbXQorICAgICAgICAgZm9yIGkgaW4gcmFuZ2UocmVzdWx0LnNpemUoKSk6CitAQCAtNDA4LDI1 ICs0MDgsMjUgQEAgY2RlZiBjbGFzcyBMZnVuY3Rpb246CisgICAgICAgICByZXR1cm4gcmV0dXJu dmFsdWUKKyAKKyAgICAgIyBOZWVkcyB0byBiZSBvdmVycmlkZW4KKy0gICAgY2RlZiB2b2lkIF9f aW5pdF9mdW4oc2VsZiwgY2hhciAqTkFNRSwgaW50IHdoYXRfdHlwZSwgZGlyaWNobGV0X2NvZWZm LCBsb25nIGxvbmcgUGVyaW9kLCBkb3VibGUgcSwgIGNfQ29tcGxleCB3LCBpbnQgQSwgZG91Ymxl ICpnLCBjX0NvbXBsZXggKmwsIGludCBuX3BvbGVzLCBjX0NvbXBsZXggKnAsIGNfQ29tcGxleCAq cik6CisrICAgIGNkZWYgdm9pZCBfaW5pdF9mdW4oc2VsZiwgY2hhciAqTkFNRSwgaW50IHdoYXRf dHlwZSwgZGlyaWNobGV0X2NvZWZmLCBsb25nIGxvbmcgUGVyaW9kLCBkb3VibGUgcSwgIGNfQ29t cGxleCB3LCBpbnQgQSwgZG91YmxlICpnLCBjX0NvbXBsZXggKmwsIGludCBuX3BvbGVzLCBjX0Nv bXBsZXggKnAsIGNfQ29tcGxleCAqcik6CisgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVy cm9yCisgCistICAgIGNkZWYgY19Db21wbGV4IF9fdmFsdWUoc2VsZixjX0NvbXBsZXggcyxpbnQg ZGVyaXZhdGl2ZSk6CisrICAgIGNkZWYgY19Db21wbGV4IF92YWx1ZShzZWxmLGNfQ29tcGxleCBz LGludCBkZXJpdmF0aXZlKToKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKyAK Ky0gICAgY2RlZiBjX0NvbXBsZXggX19oYXJkeV96X2Z1bmN0aW9uKHNlbGYsY19Db21wbGV4IHMp OgorKyAgICBjZGVmIGNfQ29tcGxleCBfaGFyZHlfel9mdW5jdGlvbihzZWxmLGNfQ29tcGxleCBz KToKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKyAKKy0gICAgY2RlZiBpbnQg X19jb21wdXRlX3Jhbmsoc2VsZik6CisrICAgIGNkZWYgaW50IF9jb21wdXRlX3Jhbmsoc2VsZik6 CisgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgCistICAgIGNkZWYgZG91Ymxl IF9fdHlwZWROKHNlbGYsZG91YmxlIFQpOgorKyAgICBjZGVmIGRvdWJsZSBfdHlwZWROKHNlbGYs ZG91YmxlIFQpOgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorIAorLSAgICBj ZGVmIHZvaWQgX19maW5kX3plcm9zX3Yoc2VsZixkb3VibGUgVDEsIGRvdWJsZSBUMiwgZG91Ymxl IHN0ZXBzaXplLCBkb3VibGV2ZWMgKnJlc3VsdCk6CisrICAgIGNkZWYgdm9pZCBfZmluZF96ZXJv c192KHNlbGYsZG91YmxlIFQxLCBkb3VibGUgVDIsIGRvdWJsZSBzdGVwc2l6ZSwgZG91YmxldmVj ICpyZXN1bHQpOgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorIAorLSAgICBj ZGVmIGludCBfX2ZpbmRfemVyb3Moc2VsZiwgbG9uZyBjb3VudCwgbG9uZyBzdGFydCwgZG91Ymxl IG1heF9yZWZpbmUsIGludCByYW5rLCBjb25zdCBjaGFyKiBtZXNzYWdlX3N0YW1wLCBkb3VibGV2 ZWMgKnJlc3VsdCk6CisrICAgIGNkZWYgaW50IF9maW5kX3plcm9zKHNlbGYsIGxvbmcgY291bnQs IGxvbmcgc3RhcnQsIGRvdWJsZSBtYXhfcmVmaW5lLCBpbnQgcmFuaywgY29uc3QgY2hhciogbWVz c2FnZV9zdGFtcCwgZG91YmxldmVjICpyZXN1bHQpOgorICAgICAgICAgcmFpc2UgTm90SW1wbGVt ZW50ZWRFcnJvcgorIAorICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworQEAgLTQ5Nyw3ICs0OTcsNyBA QCBjZGVmIGNsYXNzIExmdW5jdGlvbl9JKExmdW5jdGlvbik6CisgICAgICAgICBzZWxmLl9yZXBy ICs9ICIgd2l0aCBpbnRlZ2VyIERpcmljaGxldCBjb2VmZmljaWVudHMiCisgCisgICAgICMgb3Zl cnJpZGUKKy0gICAgY2RlZiB2b2lkIF9faW5pdF9mdW4oc2VsZiwgY2hhciAqTkFNRSwgaW50IHdo YXRfdHlwZSwgZGlyaWNobGV0X2NvZWZmLCBsb25nIGxvbmcgUGVyaW9kLCBkb3VibGUgcSwgIGNf Q29tcGxleCB3LCBpbnQgQSwgZG91YmxlICpnLCBjX0NvbXBsZXggKmwsIGludCBuX3BvbGVzLCBj X0NvbXBsZXggKnAsIGNfQ29tcGxleCAqcik6CisrICAgIGNkZWYgdm9pZCBfaW5pdF9mdW4oc2Vs ZiwgY2hhciAqTkFNRSwgaW50IHdoYXRfdHlwZSwgZGlyaWNobGV0X2NvZWZmLCBsb25nIGxvbmcg UGVyaW9kLCBkb3VibGUgcSwgIGNfQ29tcGxleCB3LCBpbnQgQSwgZG91YmxlICpnLCBjX0NvbXBs ZXggKmwsIGludCBuX3BvbGVzLCBjX0NvbXBsZXggKnAsIGNfQ29tcGxleCAqcik6CisgICAgICAg ICBjZGVmIGludCBOID0gbGVuKGRpcmljaGxldF9jb2VmZikKKyAgICAgICAgIGNkZWYgSW50ZWdl ciB0bXBpCisgICAgICAgICBjZGVmIGludCAqIGNvZWZmcyA9IG5ld19pbnRzKE4rMSkgI2xjYWxj IGlnbm9yZXMgMHRoZSBjb2VmZmljaWVudAorQEAgLTUwNywyMiArNTA3LDIyIEBAIGNkZWYgY2xh c3MgTGZ1bmN0aW9uX0koTGZ1bmN0aW9uKToKKyAgICAgICAgIHNlbGYudGhpc3B0cj1uZXdfY19M ZnVuY3Rpb25fSShOQU1FLCB3aGF0X3R5cGUsICBOLCBjb2VmZnMsIFBlcmlvZCwgcSwgIHcsICBB LCBnLCBsLCBuX3BvbGVzLCBwLCByKQorICAgICAgICAgZGVsX2ludHMoY29lZmZzKQorIAorLSAg ICBjZGVmIGlubGluZSBjX0NvbXBsZXggX192YWx1ZShzZWxmLGNfQ29tcGxleCBzLGludCBkZXJp dmF0aXZlKToKKysgICAgY2RlZiBpbmxpbmUgY19Db21wbGV4IF92YWx1ZShzZWxmLGNfQ29tcGxl eCBzLGludCBkZXJpdmF0aXZlKToKKyAgICAgICAgIHJldHVybiAoPGNfTGZ1bmN0aW9uX0kgKj4o c2VsZi50aGlzcHRyKSkudmFsdWUocywgZGVyaXZhdGl2ZSwgInB1cmUiKQorIAorLSAgICBjZGVm IGlubGluZSBjX0NvbXBsZXggX19oYXJkeV96X2Z1bmN0aW9uKHNlbGYsY19Db21wbGV4IHMpOgor KyAgICBjZGVmIGlubGluZSBjX0NvbXBsZXggX2hhcmR5X3pfZnVuY3Rpb24oc2VsZixjX0NvbXBs ZXggcyk6CisgICAgICAgICByZXR1cm4gKDxjX0xmdW5jdGlvbl9JICo+KHNlbGYudGhpc3B0cikp LnZhbHVlKHMsIDAsICJyb3RhdGVkIHB1cmUiKQorIAorLSAgICBjZGVmIGludCBfX2NvbXB1dGVf cmFuayhzZWxmKToKKysgICAgY2RlZiBpbnQgX2NvbXB1dGVfcmFuayhzZWxmKToKKyAgICAgICAg IHJldHVybiAoPGNfTGZ1bmN0aW9uX0kgKj4oc2VsZi50aGlzcHRyKSkuY29tcHV0ZV9yYW5rKCkK KyAKKy0gICAgY2RlZiB2b2lkIF9fZmluZF96ZXJvc192KHNlbGYsIGRvdWJsZSBUMSwgZG91Ymxl IFQyLCBkb3VibGUgc3RlcHNpemUsIGRvdWJsZXZlYyAqcmVzdWx0KToKKysgICAgY2RlZiB2b2lk IF9maW5kX3plcm9zX3Yoc2VsZiwgZG91YmxlIFQxLCBkb3VibGUgVDIsIGRvdWJsZSBzdGVwc2l6 ZSwgZG91YmxldmVjICpyZXN1bHQpOgorICAgICAgICAgKDxjX0xmdW5jdGlvbl9JICo+c2VsZi50 aGlzcHRyKS5maW5kX3plcm9zX3YoVDEsVDIsc3RlcHNpemUscmVzdWx0WzBdKQorIAorLSAgICBj ZGVmIGRvdWJsZSBfX3R5cGVkTihzZWxmLCBkb3VibGUgVCk6CisrICAgIGNkZWYgZG91YmxlIF90 eXBlZE4oc2VsZiwgZG91YmxlIFQpOgorICAgICAgICAgcmV0dXJuICg8Y19MZnVuY3Rpb25fSSAq PnNlbGYudGhpc3B0cikuTihUKQorIAorLSAgICBjZGVmIGludCBfX2ZpbmRfemVyb3Moc2VsZiwg bG9uZyBjb3VudCwgbG9uZyBzdGFydCwgZG91YmxlIG1heF9yZWZpbmUsIGludCByYW5rLCBjb25z dCBjaGFyKiBtZXNzYWdlX3N0YW1wLCBkb3VibGV2ZWMgKnJlc3VsdCk6CisrICAgIGNkZWYgaW50 IF9maW5kX3plcm9zKHNlbGYsIGxvbmcgY291bnQsIGxvbmcgc3RhcnQsIGRvdWJsZSBtYXhfcmVm aW5lLCBpbnQgcmFuaywgY29uc3QgY2hhciogbWVzc2FnZV9zdGFtcCwgZG91YmxldmVjICpyZXN1 bHQpOgorICAgICAgICAgKDxjX0xmdW5jdGlvbl9JICo+c2VsZi50aGlzcHRyKS5maW5kX3plcm9z KGNvdW50LCBzdGFydCwgbWF4X3JlZmluZSwgcmFuaywgbWVzc2FnZV9zdGFtcCwgcmVzdWx0KQor IAorICAgICAjIGRlYnVnIHRvb2xzCitAQCAtNjMzLDcgKzYzMyw3IEBAIGNkZWYgY2xhc3MgTGZ1 bmN0aW9uX0QoTGZ1bmN0aW9uKToKKyAgICAgICAgIHNlbGYuX3JlcHIgKz0gIiB3aXRoIHJlYWwg RGlyaWNobGV0IGNvZWZmaWNpZW50cyIKKyAKKyAgICAgIyBvdmVycmlkZQorLSAgICBjZGVmIHZv aWQgX19pbml0X2Z1bihzZWxmLCBjaGFyICpOQU1FLCBpbnQgd2hhdF90eXBlLCBkaXJpY2hsZXRf Y29lZmYsIGxvbmcgbG9uZyBQZXJpb2QsIGRvdWJsZSBxLCAgY19Db21wbGV4IHcsIGludCBBLCBk b3VibGUgKmcsIGNfQ29tcGxleCAqbCwgaW50IG5fcG9sZXMsIGNfQ29tcGxleCAqcCwgY19Db21w bGV4ICpyKToKKysgICAgY2RlZiB2b2lkIF9pbml0X2Z1bihzZWxmLCBjaGFyICpOQU1FLCBpbnQg d2hhdF90eXBlLCBkaXJpY2hsZXRfY29lZmYsIGxvbmcgbG9uZyBQZXJpb2QsIGRvdWJsZSBxLCAg Y19Db21wbGV4IHcsIGludCBBLCBkb3VibGUgKmcsIGNfQ29tcGxleCAqbCwgaW50IG5fcG9sZXMs IGNfQ29tcGxleCAqcCwgY19Db21wbGV4ICpyKToKKyAgICAgICAgIGNkZWYgaW50IGkKKyAgICAg ICAgIGNkZWYgUmVhbE51bWJlciB0bXByCisgICAgICAgICBjZGVmIGludCBOID0gbGVuKGRpcmlj aGxldF9jb2VmZikKK0BAIC02NDQsMjMgKzY0NCwyMyBAQCBjZGVmIGNsYXNzIExmdW5jdGlvbl9E KExmdW5jdGlvbik6CisgICAgICAgICBzZWxmLnRoaXNwdHI9bmV3X2NfTGZ1bmN0aW9uX0QoTkFN RSwgd2hhdF90eXBlLCAgTiwgY29lZmZzLCBQZXJpb2QsIHEsICB3LCAgQSwgZywgbCwgbl9wb2xl cywgcCwgcikKKyAgICAgICAgIGRlbF9kb3VibGVzKGNvZWZmcykKKyAKKy0gICAgY2RlZiBpbmxp bmUgY19Db21wbGV4IF9fdmFsdWUoc2VsZixjX0NvbXBsZXggcyxpbnQgZGVyaXZhdGl2ZSk6Cisr ICAgIGNkZWYgaW5saW5lIGNfQ29tcGxleCBfdmFsdWUoc2VsZixjX0NvbXBsZXggcyxpbnQgZGVy aXZhdGl2ZSk6CisgICAgICAgICByZXR1cm4gKDxjX0xmdW5jdGlvbl9EICo+KHNlbGYudGhpc3B0 cikpLnZhbHVlKHMsIGRlcml2YXRpdmUsICJwdXJlIikKKyAKKyAKKy0gICAgY2RlZiBpbmxpbmUg Y19Db21wbGV4IF9faGFyZHlfel9mdW5jdGlvbihzZWxmLGNfQ29tcGxleCBzKToKKysgICAgY2Rl ZiBpbmxpbmUgY19Db21wbGV4IF9oYXJkeV96X2Z1bmN0aW9uKHNlbGYsY19Db21wbGV4IHMpOgor ICAgICAgICAgcmV0dXJuICg8Y19MZnVuY3Rpb25fRCAqPihzZWxmLnRoaXNwdHIpKS52YWx1ZShz LCAwLCAicm90YXRlZCBwdXJlIikKKyAKKy0gICAgY2RlZiBpbmxpbmUgaW50IF9fY29tcHV0ZV9y YW5rKHNlbGYpOgorKyAgICBjZGVmIGlubGluZSBpbnQgX2NvbXB1dGVfcmFuayhzZWxmKToKKyAg ICAgICAgIHJldHVybiAoPGNfTGZ1bmN0aW9uX0QgKj4oc2VsZi50aGlzcHRyKSkuY29tcHV0ZV9y YW5rKCkKKyAKKy0gICAgY2RlZiB2b2lkIF9fZmluZF96ZXJvc192KHNlbGYsIGRvdWJsZSBUMSwg ZG91YmxlIFQyLCBkb3VibGUgc3RlcHNpemUsIGRvdWJsZXZlYyAqcmVzdWx0KToKKysgICAgY2Rl ZiB2b2lkIF9maW5kX3plcm9zX3Yoc2VsZiwgZG91YmxlIFQxLCBkb3VibGUgVDIsIGRvdWJsZSBz dGVwc2l6ZSwgZG91YmxldmVjICpyZXN1bHQpOgorICAgICAgICAgKDxjX0xmdW5jdGlvbl9EICo+ c2VsZi50aGlzcHRyKS5maW5kX3plcm9zX3YoVDEsVDIsc3RlcHNpemUscmVzdWx0WzBdKQorIAor LSAgICBjZGVmIGRvdWJsZSBfX3R5cGVkTihzZWxmLCBkb3VibGUgVCk6CisrICAgIGNkZWYgZG91 YmxlIF90eXBlZE4oc2VsZiwgZG91YmxlIFQpOgorICAgICAgICAgcmV0dXJuICg8Y19MZnVuY3Rp b25fRCAqPnNlbGYudGhpc3B0cikuTihUKQorIAorLSAgICBjZGVmIGludCBfX2ZpbmRfemVyb3Mo c2VsZiwgbG9uZyBjb3VudCwgbG9uZyBzdGFydCxkb3VibGUgbWF4X3JlZmluZSwgaW50IHJhbmss IGNvbnN0IGNoYXIqIG1lc3NhZ2Vfc3RhbXAsIGRvdWJsZXZlYyAqcmVzdWx0KToKKysgICAgY2Rl ZiBpbnQgX2ZpbmRfemVyb3Moc2VsZiwgbG9uZyBjb3VudCwgbG9uZyBzdGFydCxkb3VibGUgbWF4 X3JlZmluZSwgaW50IHJhbmssIGNvbnN0IGNoYXIqIG1lc3NhZ2Vfc3RhbXAsIGRvdWJsZXZlYyAq cmVzdWx0KToKKyAgICAgICAgICg8Y19MZnVuY3Rpb25fRCAqPnNlbGYudGhpc3B0cikuZmluZF96 ZXJvcyhjb3VudCwgc3RhcnQsIG1heF9yZWZpbmUsIHJhbmssIG1lc3NhZ2Vfc3RhbXAsIHJlc3Vs dCkKKyAKKyAgICAgIyBkZWJ1ZyB0b29scworQEAgLTc3Myw3ICs3NzMsNyBAQCBjZGVmIGNsYXNz IExmdW5jdGlvbl9DOgorICAgICAgICAgc2VsZi5fcmVwciArPSAiIHdpdGggY29tcGxleCBEaXJp Y2hsZXQgY29lZmZpY2llbnRzIgorIAorICAgICAjIG92ZXJyaWRlCistICAgIGNkZWYgdm9pZCBf X2luaXRfZnVuKHNlbGYsIGNoYXIgKk5BTUUsIGludCB3aGF0X3R5cGUsIGRpcmljaGxldF9jb2Vm ZiwgbG9uZyBsb25nIFBlcmlvZCwgZG91YmxlIHEsICBjX0NvbXBsZXggdywgaW50IEEsIGRvdWJs ZSAqZywgY19Db21wbGV4ICpsLCBpbnQgbl9wb2xlcywgY19Db21wbGV4ICpwLCBjX0NvbXBsZXgg KnIpOgorKyAgICBjZGVmIHZvaWQgX2luaXRfZnVuKHNlbGYsIGNoYXIgKk5BTUUsIGludCB3aGF0 X3R5cGUsIGRpcmljaGxldF9jb2VmZiwgbG9uZyBsb25nIFBlcmlvZCwgZG91YmxlIHEsICBjX0Nv bXBsZXggdywgaW50IEEsIGRvdWJsZSAqZywgY19Db21wbGV4ICpsLCBpbnQgbl9wb2xlcywgY19D b21wbGV4ICpwLCBjX0NvbXBsZXggKnIpOgorICAgICAgICAgY2RlZiBpbnQgaQorICAgICAgICAg Y2RlZiBpbnQgTiA9IGxlbihkaXJpY2hsZXRfY29lZmYpCisgICAgICAgICBjZGVmIENvbXBsZXhO dW1iZXIgdG1wYworQEAgLTc4OCwyNCArNzg4LDI0IEBAIGNkZWYgY2xhc3MgTGZ1bmN0aW9uX0M6 CisgCisgICAgICAgICBkZWxfQ29tcGxleGVzKGNvZWZmcykKKyAKKy0gICAgY2RlZiBpbmxpbmUg Y19Db21wbGV4IF9fdmFsdWUoc2VsZixjX0NvbXBsZXggcyxpbnQgZGVyaXZhdGl2ZSk6CisrICAg IGNkZWYgaW5saW5lIGNfQ29tcGxleCBfdmFsdWUoc2VsZixjX0NvbXBsZXggcyxpbnQgZGVyaXZh dGl2ZSk6CisgICAgICAgICByZXR1cm4gKDxjX0xmdW5jdGlvbl9DICo+KHNlbGYudGhpc3B0cikp LnZhbHVlKHMsIGRlcml2YXRpdmUsICJwdXJlIikKKyAKKyAKKy0gICAgY2RlZiBpbmxpbmUgY19D b21wbGV4IF9faGFyZHlfel9mdW5jdGlvbihzZWxmLGNfQ29tcGxleCBzKToKKysgICAgY2RlZiBp bmxpbmUgY19Db21wbGV4IF9oYXJkeV96X2Z1bmN0aW9uKHNlbGYsY19Db21wbGV4IHMpOgorICAg ICAgICAgcmV0dXJuICg8Y19MZnVuY3Rpb25fQyAqPihzZWxmLnRoaXNwdHIpKS52YWx1ZShzLCAw LCJyb3RhdGVkIHB1cmUiKQorIAorLSAgICBjZGVmIGlubGluZSBpbnQgX19jb21wdXRlX3Jhbmso c2VsZik6CisrICAgIGNkZWYgaW5saW5lIGludCBfY29tcHV0ZV9yYW5rKHNlbGYpOgorICAgICAg ICAgcmV0dXJuICg8Y19MZnVuY3Rpb25fQyAqPihzZWxmLnRoaXNwdHIpKS5jb21wdXRlX3Jhbmso KQorIAorIAorLSAgICBjZGVmIHZvaWQgX19maW5kX3plcm9zX3Yoc2VsZiwgZG91YmxlIFQxLCBk b3VibGUgVDIsIGRvdWJsZSBzdGVwc2l6ZSwgZG91YmxldmVjICpyZXN1bHQpOgorKyAgICBjZGVm IHZvaWQgX2ZpbmRfemVyb3NfdihzZWxmLCBkb3VibGUgVDEsIGRvdWJsZSBUMiwgZG91YmxlIHN0 ZXBzaXplLCBkb3VibGV2ZWMgKnJlc3VsdCk6CisgICAgICAgICAoPGNfTGZ1bmN0aW9uX0MgKj5z ZWxmLnRoaXNwdHIpLmZpbmRfemVyb3NfdihUMSxUMixzdGVwc2l6ZSxyZXN1bHRbMF0pCisgCist ICAgIGNkZWYgZG91YmxlIF9fdHlwZWROKHNlbGYsIGRvdWJsZSBUKToKKysgICAgY2RlZiBkb3Vi bGUgX3R5cGVkTihzZWxmLCBkb3VibGUgVCk6CisgICAgICAgICByZXR1cm4gKDxjX0xmdW5jdGlv bl9DICo+c2VsZi50aGlzcHRyKS5OKFQpCisgCistICAgIGNkZWYgaW50IF9fZmluZF96ZXJvcyhz ZWxmLCBsb25nIGNvdW50LCBsb25nIHN0YXJ0LCBkb3VibGUgbWF4X3JlZmluZSwgaW50IHJhbmss IGNvbnN0IGNoYXIqIG1lc3NhZ2Vfc3RhbXAsIGRvdWJsZXZlYyAqcmVzdWx0KToKKysgICAgY2Rl ZiBpbnQgX2ZpbmRfemVyb3Moc2VsZiwgbG9uZyBjb3VudCwgbG9uZyBzdGFydCwgZG91YmxlIG1h eF9yZWZpbmUsIGludCByYW5rLCBjb25zdCBjaGFyKiBtZXNzYWdlX3N0YW1wLCBkb3VibGV2ZWMg KnJlc3VsdCk6CisgICAgICAgICAoPGNfTGZ1bmN0aW9uX0MgKj5zZWxmLnRoaXNwdHIpLmZpbmRf emVyb3MoY291bnQsIHN0YXJ0LCBtYXhfcmVmaW5lLCByYW5rLCBtZXNzYWdlX3N0YW1wLCByZXN1 bHQpCisgCisgICAgICMgZGVidWcgdG9vbHMKK0BAIC04NzMsMjQgKzg3MywyNCBAQCBjZGVmIGNs YXNzIExmdW5jdGlvbl9aZXRhKExmdW5jdGlvbik6CisgICAgICAgICBzZWxmLnRoaXNwdHIgPSBu ZXdfY19MZnVuY3Rpb25fWmV0YSgpCisgICAgICAgICBzZWxmLl9yZXByID0gIlRoZSBSaWVtYW5u IHpldGEgZnVuY3Rpb24iCisgCistICAgIGNkZWYgaW5saW5lIGNfQ29tcGxleCBfX3ZhbHVlKHNl bGYsY19Db21wbGV4IHMsaW50IGRlcml2YXRpdmUpOgorKyAgICBjZGVmIGlubGluZSBjX0NvbXBs ZXggX3ZhbHVlKHNlbGYsY19Db21wbGV4IHMsaW50IGRlcml2YXRpdmUpOgorICAgICAgICAgcmV0 dXJuICg8Y19MZnVuY3Rpb25fWmV0YSAqPihzZWxmLnRoaXNwdHIpKS52YWx1ZShzLCBkZXJpdmF0 aXZlLCAicHVyZSIpCisgCisgCistICAgIGNkZWYgaW5saW5lIGNfQ29tcGxleCBfX2hhcmR5X3pf ZnVuY3Rpb24oc2VsZixjX0NvbXBsZXggcyk6CisrICAgIGNkZWYgaW5saW5lIGNfQ29tcGxleCBf aGFyZHlfel9mdW5jdGlvbihzZWxmLGNfQ29tcGxleCBzKToKKyAgICAgICAgIHJldHVybiAoPGNf TGZ1bmN0aW9uX1pldGEgKj4oc2VsZi50aGlzcHRyKSkudmFsdWUocywgMCwgInJvdGF0ZWQgcHVy ZSIpCisgCistICAgIGNkZWYgaW5saW5lIGludCBfX2NvbXB1dGVfcmFuayhzZWxmKToKKysgICAg Y2RlZiBpbmxpbmUgaW50IF9jb21wdXRlX3Jhbmsoc2VsZik6CisgICAgICAgICByZXR1cm4gKDxj X0xmdW5jdGlvbl9aZXRhICo+KHNlbGYudGhpc3B0cikpLmNvbXB1dGVfcmFuaygpCisgCisgCist ICAgIGNkZWYgdm9pZCBfX2ZpbmRfemVyb3NfdihzZWxmLCBkb3VibGUgVDEsIGRvdWJsZSBUMiwg ZG91YmxlIHN0ZXBzaXplLCBkb3VibGV2ZWMgKnJlc3VsdCk6CisrICAgIGNkZWYgdm9pZCBfZmlu ZF96ZXJvc192KHNlbGYsIGRvdWJsZSBUMSwgZG91YmxlIFQyLCBkb3VibGUgc3RlcHNpemUsIGRv dWJsZXZlYyAqcmVzdWx0KToKKyAgICAgICAgICg8Y19MZnVuY3Rpb25fWmV0YSAqPnNlbGYudGhp c3B0cikuZmluZF96ZXJvc192KFQxLFQyLHN0ZXBzaXplLHJlc3VsdFswXSkKKyAKKy0gICAgY2Rl ZiBkb3VibGUgX190eXBlZE4oc2VsZiwgZG91YmxlIFQpOgorKyAgICBjZGVmIGRvdWJsZSBfdHlw ZWROKHNlbGYsIGRvdWJsZSBUKToKKyAgICAgICAgIHJldHVybiAoPGNfTGZ1bmN0aW9uX1pldGEg Kj5zZWxmLnRoaXNwdHIpLk4oVCkKKyAKKy0gICAgY2RlZiBpbnQgX19maW5kX3plcm9zKHNlbGYs IGxvbmcgY291bnQsIGxvbmcgc3RhcnQsIGRvdWJsZSBtYXhfcmVmaW5lLCBpbnQgcmFuaywgY29u c3QgY2hhciogbWVzc2FnZV9zdGFtcCwgZG91YmxldmVjICpyZXN1bHQpOgorKyAgICBjZGVmIGlu dCBfZmluZF96ZXJvcyhzZWxmLCBsb25nIGNvdW50LCBsb25nIHN0YXJ0LCBkb3VibGUgbWF4X3Jl ZmluZSwgaW50IHJhbmssIGNvbnN0IGNoYXIqIG1lc3NhZ2Vfc3RhbXAsIGRvdWJsZXZlYyAqcmVz dWx0KToKKyAgICAgICAgICg8Y19MZnVuY3Rpb25fWmV0YSAqPnNlbGYudGhpc3B0cikuZmluZF96 ZXJvcyhjb3VudCwgc3RhcnQsIG1heF9yZWZpbmUsIHJhbmssIG1lc3NhZ2Vfc3RhbXAsIHJlc3Vs dCkKKyAKKyAgICAgZGVmIF9fZGVhbGxvY19fKHNlbGYpOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L2xpYnMvbGlua2FnZXMvcGFkaWNzL1BvbHlub21pYWxfcmFtLnB4aSBiL3NyYy9zYWdlL2xpYnMv bGlua2FnZXMvcGFkaWNzL1BvbHlub21pYWxfcmFtLnB4aQoraW5kZXggMWFjNTFmMTIxMWYuLmUw NTg0ZWNiOGFkIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9saW5rYWdlcy9wYWRpY3MvUG9s eW5vbWlhbF9yYW0ucHhpCisrKysgYi9zcmMvc2FnZS9saWJzL2xpbmthZ2VzL3BhZGljcy9Qb2x5 bm9taWFsX3JhbS5weGkKK0BAIC01NSwxNiArNTUsMTYgQEAgY2RlZiBpbmxpbmUgYmludCBjcmVk dWNlKGNlbGVtZW50IG91dCwgY2VsZW1lbnQgYSwgbG9uZyBwcmVjLCBQb3dDb21wdXRlcl8gcHJp bWUKKyAgICAgIiIiCisgICAgIGNkZWYgY2VsZW1lbnQgYXJlZCA9IGEgJSBwcmltZV9wb3cubW9k dWx1cworICAgICBpZiBhcmVkIGlzIGEgYW5kIG91dCBpcyBub3QgYToKKy0gICAgICAgIG91dC5f X2NvZWZmcyA9IGFyZWQuX19jb2VmZnNbOl0KKysgICAgICAgIG91dC5fY29lZmZzID0gYXJlZC5f Y29lZmZzWzpdCisgICAgIGVsc2U6CistICAgICAgICBvdXQuX19jb2VmZnMgPSBhcmVkLl9fY29l ZmZzCisrICAgICAgICBvdXQuX2NvZWZmcyA9IGFyZWQuX2NvZWZmcworICAgICBjZGVmIGxvbmcg Y29lZmZfcHJlYyA9IHByZWMgLyBwcmltZV9wb3cuZSArIDEKKyAgICAgY2RlZiBsb25nIGJyZWFr X3B0ID0gcHJlYyAlIHByaW1lX3Bvdy5lCistICAgIGZvciBpIGluIHJhbmdlKGxlbihvdXQuX19j b2VmZnMpKToKKysgICAgZm9yIGkgaW4gcmFuZ2UobGVuKG91dC5fY29lZmZzKSk6CisgICAgICAg ICBpZiBpID09IGJyZWFrX3B0OgorICAgICAgICAgICAgIGNvZWZmX3ByZWMgLT0gMQorLSAgICAg ICAgb3V0Ll9fY29lZmZzW2ldID0gb3V0Ll9fY29lZmZzW2ldLmFkZF9iaWdvaChjb2VmZl9wcmVj KQorLSAgICBvdXQuX19ub3JtYWxpemUoKQorKyAgICAgICAgb3V0Ll9jb2VmZnNbaV0gPSBvdXQu X2NvZWZmc1tpXS5hZGRfYmlnb2goY29lZmZfcHJlYykKKysgICAgb3V0Ll9ub3JtYWxpemUoKQor ICAgICByZXR1cm4gb3V0ID09IDAKKyAKKyBjZGVmIGlubGluZSBiaW50IGNyZWR1Y2Vfc21hbGwo Y2VsZW1lbnQgb3V0LCBjZWxlbWVudCBhLCBsb25nIHByZWMsIFBvd0NvbXB1dGVyXyBwcmltZV9w b3cpIGV4Y2VwdCAtMToKK0BAIC0xMTYsNyArMTE2LDcgQEAgY2RlZiBpbmxpbmUgbG9uZyBjdmFs dWF0aW9uKGNlbGVtZW50IGEsIGxvbmcgcHJlYywgUG93Q29tcHV0ZXJfIHByaW1lX3BvdykgZXhj ZXAKKyAgICAgaGlnaGVyLgorIAorICAgICAiIiIKKy0gICAgQyA9IGEuX19jb2VmZnMKKysgICAg QyA9IGEuX2NvZWZmcworICAgICBpZiBub3QgQzoKKyAgICAgICAgIHJldHVybiBwcmVjCisgICAg IGNkZWYgbG9uZyByZXQgPSBtYXhvcmRwCitAQCAtMTYxLDcgKzE2MSw3IEBAIGNkZWYgaW5saW5l IGludCBjc2hpZnQoY2VsZW1lbnQgc2hpZnRlZCwgY2VsZW1lbnQgcmVtLCBjZWxlbWVudCBhLCBs b25nIG4sIGxvbmcKKyAgICAgICAgIHYgPSBjdmFsdWF0aW9uKGEsIHByZWMsIHByaW1lX3BvdykK KyAgICAgICAgIG5vdHJ1bmMgPSAodiA+PSAtbikKKyAgICAgaWYgbm90cnVuYzoKKy0gICAgICAg IHJlbS5fX2NvZWZmcyA9IFtdCisrICAgICAgICByZW0uX2NvZWZmcyA9IFtdCisgICAgICAgICBy ZXR1cm4gY3NoaWZ0X25vdHJ1bmMoc2hpZnRlZCwgYSwgbiwgcHJlYywgcHJpbWVfcG93LCByZWR1 Y2VfYWZ0ZXJ3YXJkKQorICAgICBpZiB2ID4gMDoKKyAgICAgICAgIGIgPSBwcmltZV9wb3cucG9s eV9yaW5nKDApCitAQCAtMTg1LDcgKzE4NSw3IEBAIGNkZWYgaW5saW5lIGludCBjc2hpZnQoY2Vs ZW1lbnQgc2hpZnRlZCwgY2VsZW1lbnQgcmVtLCBjZWxlbWVudCBhLCBsb25nIG4sIGxvbmcKKyAg ICAgaWYgcmVkdWNlX2FmdGVyd2FyZDoKKyAgICAgICAgIGNyZWR1Y2Uoc2hpZnRlZCwgYSwgcHJl YywgcHJpbWVfcG93KQorICAgICBlbHNlOgorLSAgICAgICAgc2hpZnRlZC5fX2NvZWZmcyA9IGEu X19jb2VmZnNbOl0KKysgICAgICAgIHNoaWZ0ZWQuX2NvZWZmcyA9IGEuX2NvZWZmc1s6XQorIAor IGNkZWYgaW5saW5lIGludCBjc2hpZnRfbm90cnVuYyhjZWxlbWVudCBvdXQsIGNlbGVtZW50IGEs IGxvbmcgbiwgbG9uZyBwcmVjLCBQb3dDb21wdXRlcl8gcHJpbWVfcG93LCBiaW50IHJlZHVjZV9h ZnRlcndhcmQpIGV4Y2VwdCAtMToKKyAgICAgciIiIgorQEAgLTIzNiw3ICsyMzYsNyBAQCBjZGVm IGlubGluZSBpbnQgY3NoaWZ0X25vdHJ1bmMoY2VsZW1lbnQgb3V0LCBjZWxlbWVudCBhLCBsb25n IG4sIGxvbmcgcHJlYywgUG93QworICAgICBpZiByZWR1Y2VfYWZ0ZXJ3YXJkOgorICAgICAgICAg Y3JlZHVjZShvdXQsIGEsIHByZWMsIHByaW1lX3BvdykKKyAgICAgZWxzZToKKy0gICAgICAgIG91 dC5fX2NvZWZmcyA9IGEuX19jb2VmZnNbOl0KKysgICAgICAgIG91dC5fY29lZmZzID0gYS5fY29l ZmZzWzpdCisgCisgY2RlZiBpbmxpbmUgaW50IGNpbnZlcnQoY2VsZW1lbnQgb3V0LCBjZWxlbWVu dCBhLCBsb25nIHByZWMsIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cpIGV4Y2VwdCAtMToKKyAgICAg ciIiIgorQEAgLTI1Myw3ICsyNTMsNyBAQCBjZGVmIGlubGluZSBpbnQgY2ludmVydChjZWxlbWVu dCBvdXQsIGNlbGVtZW50IGEsIGxvbmcgcHJlYywgUG93Q29tcHV0ZXJfIHByaW1lXworICAgICAt IGBgcHJpbWVfcG93YGAgLS0gdGhlIGBgUG93Q29tcHV0ZXJgYCBmb3IgdGhlIHJpbmcKKyAKKyAg ICAgIiIiCistICAgIG91dC5fX2NvZWZmcyA9IHByaW1lX3Bvdy5pbnZlcnQoYSwgcHJlYykuX19j b2VmZnMKKysgICAgb3V0Ll9jb2VmZnMgPSBwcmltZV9wb3cuaW52ZXJ0KGEsIHByZWMpLl9jb2Vm ZnMKKyAgICAgY3JlZHVjZShvdXQsIG91dCwgcHJlYywgcHJpbWVfcG93KQorIAorIGNkZWYgaW5s aW5lIGludCBjZGl2dW5pdChjZWxlbWVudCBvdXQsIGNlbGVtZW50IGEsIGNlbGVtZW50IGIsIGxv bmcgcHJlYywgUG93Q29tcHV0ZXJfIHByaW1lX3BvdykgZXhjZXB0IC0xOgorQEAgLTMzNSw3ICsz MzUsNyBAQCBjZGVmIGlubGluZSBjZXhwYW5zaW9uX25leHQoY2VsZW1lbnQgdmFsdWUsIGV4cGFu c2lvbl9tb2RlIG1vZGUsIGxvbmcgY3VycG93ZXIsCisgICAgICMgdGhlIGZvbGxvd2luZyBpcyBz cGVjaWZpYyB0byB0aGUgcmFtaWZpZWQgb3ZlciB1bnJhbWlmaWVkIGNhc2UuCisgICAgIG1vZHBf cmVwLCB0ZXJtID0gdmFsdWVbMF0uX21vZHBfcmVwKG1vZGUgPT0gc21hbGxlc3RfbW9kZSkKKyAg ICAgaWYgdGVybToKKy0gICAgICAgIHZhbHVlLl9fY29lZmZzWzBdIC09IG1vZHBfcmVwCisrICAg ICAgICB2YWx1ZS5fY29lZmZzWzBdIC09IG1vZHBfcmVwCisgICAgIGNzaGlmdF9ub3RydW5jKHZh bHVlLCB2YWx1ZSwgLTEsIGN1cnBvd2VyLCBwcmltZV9wb3csIEZhbHNlKQorICAgICByZXR1cm4g dGVybQorIAorQEAgLTM1NCwxMCArMzU0LDEwIEBAIGNkZWYgaW5saW5lIGNleHBhbnNpb25fZ2V0 aXRlbShjZWxlbWVudCB2YWx1ZSwgbG9uZyBtLCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KToKKyAg ICAgd2hpbGUgbSA+PSAwOgorICAgICAgICAgbW9kcF9yZXAsIHRlcm0gPSB2YWx1ZVswXS5fbW9k cF9yZXAoKQorICAgICAgICAgaWYgbToKKy0gICAgICAgICAgICBpZiBsZW4odmFsdWUuX19jb2Vm ZnMpOgorLSAgICAgICAgICAgICAgICB2YWx1ZS5fX2NvZWZmc1swXSAtPSBtb2RwX3JlcAorKyAg ICAgICAgICAgIGlmIGxlbih2YWx1ZS5fY29lZmZzKToKKysgICAgICAgICAgICAgICAgdmFsdWUu X2NvZWZmc1swXSAtPSBtb2RwX3JlcAorICAgICAgICAgICAgIGVsc2U6CistICAgICAgICAgICAg ICAgIHZhbHVlLl9fY29lZmZzLmFwcGVuZCgtbW9kcF9yZXApCisrICAgICAgICAgICAgICAgIHZh bHVlLl9jb2VmZnMuYXBwZW5kKC1tb2RwX3JlcCkKKyAgICAgICAgICAgICBjc2hpZnRfbm90cnVu Yyh2YWx1ZSwgdmFsdWUsIC0xLCAxLCBwcmltZV9wb3csIEZhbHNlKQorICAgICAgICAgbSAtPSAx CisgICAgIHJldHVybiB0ZXJtCitAQCAtMzc5LDkgKzM3OSw5IEBAIGNkZWYgaW50IGN0ZWljaG11 bGxlcihjZWxlbWVudCBvdXQsIGNlbGVtZW50IHZhbHVlLCBsb25nIHByZWMsIFBvd0NvbXB1dGVy XyBwcmltCisgCisgICAgICIiIgorICAgICBpZiB2YWx1ZVswXS52YWx1YXRpb24oKSA+IDA6Cist ICAgICAgICBvdXQuX19jb2VmZnMgPSBbXQorKyAgICAgICAgb3V0Ll9jb2VmZnMgPSBbXQorICAg ICBlbHNlOgorLSAgICAgICAgb3V0Ll9fY29lZmZzID0gW3ZhbHVlWzBdLnBhcmVudCgpLnRlaWNo bXVsbGVyKHZhbHVlWzBdKV0KKysgICAgICAgIG91dC5fY29lZmZzID0gW3ZhbHVlWzBdLnBhcmVu dCgpLnRlaWNobXVsbGVyKHZhbHVlWzBdKV0KKyAKKyBjZGVmIGxpc3QgY2NvZWZmaWNpZW50cyhj ZWxlbWVudCB4LCBsb25nIHZhbHNoaWZ0LCBsb25nIHByZWMsIFBvd0NvbXB1dGVyXyBwcmltZV9w b3cpOgorICAgICAiIiIKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL2xpbmthZ2VzL3BhZGlj cy9Qb2x5bm9taWFsX3NoYXJlZC5weGkgYi9zcmMvc2FnZS9saWJzL2xpbmthZ2VzL3BhZGljcy9Q b2x5bm9taWFsX3NoYXJlZC5weGkKK2luZGV4IDQ5NWRjNmIwODQ4Li4zNjdiYmMyZjMzZCAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvbGlua2FnZXMvcGFkaWNzL1BvbHlub21pYWxfc2hhcmVk LnB4aQorKysrIGIvc3JjL3NhZ2UvbGlicy9saW5rYWdlcy9wYWRpY3MvUG9seW5vbWlhbF9zaGFy ZWQucHhpCitAQCAtMTA2LDcgKzEwNiw3IEBAIGNkZWYgaW5saW5lIGludCBjY21wKGNlbGVtZW50 IGEsIGNlbGVtZW50IGIsIGxvbmcgcHJlYywgYmludCByZWR1Y2VfYSwgYmludCByZWR1CisgICAg IGlmIG5vdCAocmVkdWNlX2Egb3IgcmVkdWNlX2IpOgorICAgICAgICAgcmV0dXJuIDAgaWYgYSA9 PSBiIGVsc2UgMQorICAgICBjc3ViKHByaW1lX3Bvdy50bXBfY2NtcF9hLCBhLCBiLCBwcmVjLCBw cmltZV9wb3cpCistICAgIGNvZWZmcyA9IHByaW1lX3Bvdy50bXBfY2NtcF9hLl9fY29lZmZzCisr ICAgIGNvZWZmcyA9IHByaW1lX3Bvdy50bXBfY2NtcF9hLl9jb2VmZnMKKyAgICAgY2RlZiBsb25n IGksIGNvZWZmX3ByZWMsIGJyZWFrX3B0CisgICAgIGlmIHByaW1lX3Bvdy5lID09IDE6CisgICAg ICAgICBmb3IgaSBpbiByYW5nZShwcmltZV9wb3cudG1wX2NjbXBfYS5kZWdyZWUoKSsxKToKK0BA IC0xODYsOSArMTg2LDkgQEAgY2RlZiBpbmxpbmUgaW50IGNuZWcoY2VsZW1lbnQgb3V0LCBjZWxl bWVudCBhLCBsb25nIHByZWMsIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cKKyAgICAgIiIiCisgICAg IGNkZWYgY2VsZW1lbnQgbWEgPSAtYQorICAgICBpZiBtYSBpcyBhOgorLSAgICAgICAgb3V0Ll9f Y29lZmZzID0gbWEuX19jb2VmZnNbOl0KKysgICAgICAgIG91dC5fY29lZmZzID0gbWEuX2NvZWZm c1s6XQorICAgICBlbHNlOgorLSAgICAgICAgb3V0Ll9fY29lZmZzID0gbWEuX19jb2VmZnMKKysg ICAgICAgIG91dC5fY29lZmZzID0gbWEuX2NvZWZmcworIAorIGNkZWYgaW5saW5lIGludCBjYWRk KGNlbGVtZW50IG91dCwgY2VsZW1lbnQgYSwgY2VsZW1lbnQgYiwgbG9uZyBwcmVjLCBQb3dDb21w dXRlcl8gcHJpbWVfcG93KSBleGNlcHQgLTE6CisgICAgIHIiIiIKK0BAIC0yMTEsOSArMjExLDkg QEAgY2RlZiBpbmxpbmUgaW50IGNhZGQoY2VsZW1lbnQgb3V0LCBjZWxlbWVudCBhLCBjZWxlbWVu dCBiLCBsb25nIHByZWMsIFBvd0NvbXB1dGUKKyAgICAgIiIiCisgICAgIGNkZWYgY2VsZW1lbnQg c20gPSBhICsgYgorICAgICBpZiBzbSBpcyBhIG9yIHNtIGlzIGI6CistICAgICAgICBvdXQuX19j b2VmZnMgPSBzbS5fX2NvZWZmc1s6XQorKyAgICAgICAgb3V0Ll9jb2VmZnMgPSBzbS5fY29lZmZz WzpdCisgICAgIGVsc2U6CistICAgICAgICBvdXQuX19jb2VmZnMgPSBzbS5fX2NvZWZmcworKyAg ICAgICAgb3V0Ll9jb2VmZnMgPSBzbS5fY29lZmZzCisgCisgY2RlZiBpbmxpbmUgaW50IGNzdWIo Y2VsZW1lbnQgb3V0LCBjZWxlbWVudCBhLCBjZWxlbWVudCBiLCBsb25nIHByZWMsIFBvd0NvbXB1 dGVyXyBwcmltZV9wb3cpIGV4Y2VwdCAtMToKKyAgICAgciIiIgorQEAgLTIzNiw5ICsyMzYsOSBA QCBjZGVmIGlubGluZSBpbnQgY3N1YihjZWxlbWVudCBvdXQsIGNlbGVtZW50IGEsIGNlbGVtZW50 IGIsIGxvbmcgcHJlYywgUG93Q29tcHV0ZQorICAgICAiIiIKKyAgICAgY2RlZiBjZWxlbWVudCBk ZiA9IGEgLSBiCisgICAgIGlmIGRmIGlzIGEgb3IgZGYgaXMgYjoKKy0gICAgICAgIG91dC5fX2Nv ZWZmcyA9IGRmLl9fY29lZmZzWzpdCisrICAgICAgICBvdXQuX2NvZWZmcyA9IGRmLl9jb2VmZnNb Ol0KKyAgICAgZWxzZToKKy0gICAgICAgIG91dC5fX2NvZWZmcyA9IGRmLl9fY29lZmZzCisrICAg ICAgICBvdXQuX2NvZWZmcyA9IGRmLl9jb2VmZnMKKyAKKyBjZGVmIGlubGluZSBpbnQgY211bChj ZWxlbWVudCBvdXQsIGNlbGVtZW50IGEsIGNlbGVtZW50IGIsIGxvbmcgcHJlYywgUG93Q29tcHV0 ZXJfIHByaW1lX3BvdykgZXhjZXB0IC0xOgorICAgICByIiIiCitAQCAtMjYxLDkgKzI2MSw5IEBA IGNkZWYgaW5saW5lIGludCBjbXVsKGNlbGVtZW50IG91dCwgY2VsZW1lbnQgYSwgY2VsZW1lbnQg YiwgbG9uZyBwcmVjLCBQb3dDb21wdXRlCisgICAgICIiIgorICAgICBjZGVmIGNlbGVtZW50IHBk ID0gYSpiCisgICAgIGlmIHBkIGlzIGEgb3IgcGQgaXMgYjoKKy0gICAgICAgIG91dC5fX2NvZWZm cyA9IHBkLl9fY29lZmZzWzpdCisrICAgICAgICBvdXQuX2NvZWZmcyA9IHBkLl9jb2VmZnNbOl0K KyAgICAgZWxzZToKKy0gICAgICAgIG91dC5fX2NvZWZmcyA9IHBkLl9fY29lZmZzCisrICAgICAg ICBvdXQuX2NvZWZmcyA9IHBkLl9jb2VmZnMKKyAKKyBjZGVmIGlubGluZSBpbnQgY3NldG9uZShj ZWxlbWVudCBvdXQsIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cpIGV4Y2VwdCAtMToKKyAgICAgciIi IgorQEAgLTI3Niw3ICsyNzYsNyBAQCBjZGVmIGlubGluZSBpbnQgY3NldG9uZShjZWxlbWVudCBv dXQsIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cpIGV4Y2VwdCAtMToKKyAgICAgLSBgYHByaW1lX3Bv d2BgIC0tIHRoZSBgYFBvd0NvbXB1dGVyYGAgZm9yIHRoZSByaW5nCisgCisgICAgICIiIgorLSAg ICBvdXQuX19jb2VmZnMgPSBbcHJpbWVfcG93LmJhc2VfcmluZygxKV0KKysgICAgb3V0Ll9jb2Vm ZnMgPSBbcHJpbWVfcG93LmJhc2VfcmluZygxKV0KKyAKKyBjZGVmIGlubGluZSBpbnQgY3NldHpl cm8oY2VsZW1lbnQgb3V0LCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KSBleGNlcHQgLTE6CisgICAg IHIiIiIKK0BAIC0yODksNyArMjg5LDcgQEAgY2RlZiBpbmxpbmUgaW50IGNzZXR6ZXJvKGNlbGVt ZW50IG91dCwgUG93Q29tcHV0ZXJfIHByaW1lX3BvdykgZXhjZXB0IC0xOgorICAgICAtIGBgcHJp bWVfcG93YGAgLS0gdGhlIGBgUG93Q29tcHV0ZXJgYCBmb3IgdGhlIHJpbmcKKyAKKyAgICAgIiIi CistICAgIG91dC5fX2NvZWZmcyA9IFtdCisrICAgIG91dC5fY29lZmZzID0gW10KKyAKKyBjZGVm IGlubGluZSBiaW50IGNpc29uZShjZWxlbWVudCBhLCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KSBl eGNlcHQgLTE6CisgICAgIHIiIiIKK0BAIC0zMzAsNyArMzMwLDcgQEAgY2RlZiBpbmxpbmUgaW50 IGNjb3B5KGNlbGVtZW50IG91dCwgY2VsZW1lbnQgYSwgUG93Q29tcHV0ZXJfIHByaW1lX3Bvdykg ZXhjZXB0IC0KKyAgICAgLSBgYHByaW1lX3Bvd2BgIC0tIHRoZSBgYFBvd0NvbXB1dGVyYGAgZm9y IHRoZSByaW5nCisgCisgICAgICIiIgorLSAgICBvdXQuX19jb2VmZnMgPSBhLl9fY29lZmZzWzpd CisrICAgIG91dC5fY29lZmZzID0gYS5fY29lZmZzWzpdCisgCisgY2RlZiBpbmxpbmUgY3BpY2ts ZShjZWxlbWVudCBhLCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KToKKyAgICAgciIiIgorQEAgLTM0 Myw3ICszNDMsNyBAQCBjZGVmIGlubGluZSBjcGlja2xlKGNlbGVtZW50IGEsIFBvd0NvbXB1dGVy XyBwcmltZV9wb3cpOgorICAgICAtIGBgcHJpbWVfcG93YGAgdGhlIGBgUG93Q29tcHV0ZXJgYCBm b3IgdGhlIHJpbmcKKyAKKyAgICAgIiIiCistICAgIHJldHVybiBhLl9fY29lZmZzCisrICAgIHJl dHVybiBhLl9jb2VmZnMKKyAKKyBjZGVmIGlubGluZSBpbnQgY3VucGlja2xlKGNlbGVtZW50IG91 dCwgeCwgUG93Q29tcHV0ZXJfIHByaW1lX3BvdykgZXhjZXB0IC0xOgorICAgICByIiIiCitAQCAt MzU4LDcgKzM1OCw3IEBAIGNkZWYgaW5saW5lIGludCBjdW5waWNrbGUoY2VsZW1lbnQgb3V0LCB4 LCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KSBleGNlcHQgLTE6CisgICAgIC0gYGBwcmltZV9wb3dg YCAtLSB0aGUgYGBQb3dDb21wdXRlcmBgIGZvciB0aGUgcmluZworIAorICAgICAiIiIKKy0gICAg b3V0Ll9fY29lZmZzID0geAorKyAgICBvdXQuX2NvZWZmcyA9IHgKKyAKKyBjZGVmIGlubGluZSBs b25nIGNoYXNoKGNlbGVtZW50IGEsIGxvbmcgb3JkcCwgbG9uZyBwcmVjLCBQb3dDb21wdXRlcl8g cHJpbWVfcG93KSBleGNlcHQgLTE6CisgICAgIHIiIiIKK0BAIC00MTMsOSArNDEzLDkgQEAgY2Rl ZiBpbnQgY2NvbnYoY2VsZW1lbnQgb3V0LCB4LCBsb25nIHByZWMsIGxvbmcgdmFsc2hpZnQsIFBv d0NvbXB1dGVyXyBwcmltZV9wb3cKKyAgICAgZWxzZToKKyAgICAgICAgIHh4ID0gcHJpbWVfcG93 LnBvbHlfcmluZyh4KQorICAgICBpZiB4eCBpcyB4OgorLSAgICAgICAgb3V0Ll9fY29lZmZzID0g eHguX19jb2VmZnNbOl0KKysgICAgICAgIG91dC5fY29lZmZzID0geHguX2NvZWZmc1s6XQorICAg ICBlbHNlOgorLSAgICAgICAgb3V0Ll9fY29lZmZzID0geHguX19jb2VmZnMKKysgICAgICAgIG91 dC5fY29lZmZzID0geHguX2NvZWZmcworICAgICBpZiB2YWxzaGlmdCA+IDA6CisgICAgICAgICBj c2hpZnRfbm90cnVuYyhvdXQsIG91dCwgLXZhbHNoaWZ0LCBwcmVjLCBwcmltZV9wb3csIFRydWUp CisgICAgIGVsaWYgdmFsc2hpZnQgPT0gMDoKK0BAIC00NTgsMTIgKzQ1OCwxMiBAQCBjZGVmIGlu bGluZSBsb25nIGNjb252X21wel90KGNlbGVtZW50IG91dCwgbXB6X3QgeCwgbG9uZyBwcmVjLCBi aW50IGFic29sdXRlLCBQbworICAgICBtcHpfc2V0KG4udmFsdWUsIHgpCisgCisgICAgIGlmIG46 CistICAgICAgICBvdXQuX19jb2VmZnMgPSBbcHJpbWVfcG93LmJhc2VfcmluZyhuKV0KKysgICAg ICAgIG91dC5fY29lZmZzID0gW3ByaW1lX3Bvdy5iYXNlX3JpbmcobildCisgICAgICAgICBpZiBu b3QgYWJzb2x1dGU6CisgICAgICAgICAgICAgdmFsdWF0aW9uID0gY3JlbW92ZShvdXQsIG91dCwg cHJlYywgcHJpbWVfcG93KQorICAgICAgICAgY3JlZHVjZShvdXQsIG91dCwgcHJlYywgcHJpbWVf cG93KQorICAgICBlbHNlOgorLSAgICAgICAgb3V0Ll9fY29lZmZzID0gW10KKysgICAgICAgIG91 dC5fY29lZmZzID0gW10KKyAKKyAgICAgcmV0dXJuIHZhbHVhdGlvbgorIAorQEAgLTQ5MiwxMiAr NDkyLDEyIEBAIGNkZWYgaW5saW5lIGludCBjY29udl9tcHpfdF9vdXQobXB6X3Qgb3V0LCBjZWxl bWVudCB4LCBsb25nIHZhbHNoaWZ0LCBsb25nIHByZWMsCisgICAgIGVsc2U6CisgICAgICAgICBw cmltZV9wb3cucG93aGVscGVyX2Njb252X291dCA9IHgKKyAKKy0gICAgaWYgbGVuKHByaW1lX3Bv dy5wb3doZWxwZXJfY2NvbnZfb3V0Ll9fY29lZmZzKSA9PSAwOgorKyAgICBpZiBsZW4ocHJpbWVf cG93LnBvd2hlbHBlcl9jY29udl9vdXQuX2NvZWZmcykgPT0gMDoKKyAgICAgICAgIG1wel9zZXRf dWkob3V0LCAwKQorLSAgICBlbGlmIGxlbihwcmltZV9wb3cucG93aGVscGVyX2Njb252X291dC5f X2NvZWZmcykgPT0gMToKKysgICAgZWxpZiBsZW4ocHJpbWVfcG93LnBvd2hlbHBlcl9jY29udl9v dXQuX2NvZWZmcykgPT0gMToKKyAgICAgICAgICMgcmVjdXJzaXZlbHkgbGV0IHRoZSB1bmRlcmx5 aW5nIHBvbHlub21pYWwgY29udmVydCB0aGUgY29uc3RhbnQKKyAgICAgICAgICMgY29lZmZpY2ll bnQgdG8gYW4gaW50ZWdlciAoaWYgcG9zc2libGUpCistICAgICAgICBuID0gWloocHJpbWVfcG93 LnBvd2hlbHBlcl9jY29udl9vdXQuX19jb2VmZnNbMF0pCisrICAgICAgICBuID0gWloocHJpbWVf cG93LnBvd2hlbHBlcl9jY29udl9vdXQuX2NvZWZmc1swXSkKKyAgICAgICAgIG1wel9zZXQob3V0 LCBuLnZhbHVlKQorICAgICBlbHNlOgorICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY2Fubm90 IGNvbnZlcnQgdG8gaW50ZWdlciIpCitAQCAtNTMyLDcgKzUzMiw3IEBAIGNkZWYgaW5saW5lIGxv bmcgY2NvbnZfbXBxX3QoY2VsZW1lbnQgb3V0LCBtcHFfdCB4LCBsb25nIHByZWMsIGJpbnQgYWJz b2x1dGUsIFBvCisgICAgICIiIgorICAgICBjZGVmIFJhdGlvbmFsIHIgPSBQWV9ORVcoUmF0aW9u YWwpCisgICAgIG1wcV9zZXQoci52YWx1ZSwgeCkKKy0gICAgb3V0Ll9fY29lZmZzID0gW3ByaW1l X3Bvdy5iYXNlX3JpbmcocildCisrICAgIG91dC5fY29lZmZzID0gW3ByaW1lX3Bvdy5iYXNlX3Jp bmcocildCisgCisgICAgIGlmIG5vdCBhYnNvbHV0ZToKKyAgICAgICAgIHJldHVybiBjcmVtb3Zl KG91dCwgb3V0LCBwcmVjLCBwcmltZV9wb3cpCitAQCAtNTY1LDEyICs1NjUsMTIgQEAgY2RlZiBp bmxpbmUgaW50IGNjb252X21wcV90X291dChtcHFfdCBvdXQsIGNlbGVtZW50IHgsIGxvbmcgdmFs c2hpZnQsIGxvbmcgcHJlYywKKyAgICAgZWxzZToKKyAgICAgICAgIHByaW1lX3Bvdy5wb3doZWxw ZXJfY2NvbnZfb3V0ID0geAorIAorLSAgICBpZiBsZW4ocHJpbWVfcG93LnBvd2hlbHBlcl9jY29u dl9vdXQuX19jb2VmZnMpID09IDA6CisrICAgIGlmIGxlbihwcmltZV9wb3cucG93aGVscGVyX2Nj b252X291dC5fY29lZmZzKSA9PSAwOgorICAgICAgICAgbXBxX3NldF91aShvdXQsIDAsIDEpCist ICAgIGVsaWYgbGVuKHByaW1lX3Bvdy5wb3doZWxwZXJfY2NvbnZfb3V0Ll9fY29lZmZzKSA9PSAx OgorKyAgICBlbGlmIGxlbihwcmltZV9wb3cucG93aGVscGVyX2Njb252X291dC5fY29lZmZzKSA9 PSAxOgorICAgICAgICAgIyByZWN1cnNpdmVseSBsZXQgdGhlIHVuZGVybHlpbmcgcG9seW5vbWlh bCBjb252ZXJ0IHRoZSBjb25zdGFudAorICAgICAgICAgIyBjb2VmZmljaWVudCB0byBhIHJhdGlv bmFsIChpZiBwb3NzaWJsZSkKKy0gICAgICAgIGMgPSBRUShwcmltZV9wb3cucG93aGVscGVyX2Nj b252X291dC5fX2NvZWZmc1swXSkKKysgICAgICAgIGMgPSBRUShwcmltZV9wb3cucG93aGVscGVy X2Njb252X291dC5fY29lZmZzWzBdKQorICAgICAgICAgbXBxX3NldChvdXQsIGMudmFsdWUpCisg ICAgIGVsc2U6CisgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJjYW5ub3QgY29udmVydCB0byBy YXRpb25hbCIpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9udGwvbnRsX2x6el9wLnB5eCBi L3NyYy9zYWdlL2xpYnMvbnRsL250bF9senpfcC5weXgKK2luZGV4IDE2MWQwNzgyYmMyLi5hZjg2 YjliY2Y2OSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvbnRsL250bF9senpfcC5weXgKKysr KyBiL3NyYy9zYWdlL2xpYnMvbnRsL250bF9senpfcC5weXgKK0BAIC04OSwxOSArODksMTkgQEAg Y2RlZiBjbGFzcyBudGxfenpfcCgpOgorICAgICAgICAgI3NlbGYuYy5yZXN0b3JlX2MoKSAgICMj IFRoaXMgd2FzIGRvbmUgaW4gX19uZXdfXworIAorICAgICAgICAgaWYgaXNpbnN0YW5jZShhLCBJ bnRlZ2VyTW9kX2ludCk6CistICAgICAgICAgICAgaWYgKHNlbGYuYy5wID09ICg8SW50ZWdlck1v ZF9pbnQ+YSkuX19tb2R1bHVzLmludDMyKTogIyMgdGhpcyBpcyBzbG93CisrICAgICAgICAgICAg aWYgKHNlbGYuYy5wID09ICg8SW50ZWdlck1vZF9pbnQ+YSkuX21vZHVsdXMuaW50MzIpOiAjIyB0 aGlzIGlzIHNsb3cKKyAgICAgICAgICAgICAgICAgc2VsZi54ID0gKDxJbnRlZ2VyTW9kX2ludD5h KS5pdmFsdWUKKyAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICByYWlzZSBWYWx1 ZUVycm9yKCJNaXNtYXRjaGVkIG1vZHVsdXMgZm9yIGNvbnZlcnRpbmcgdG8genpfcC4iKQorIAor ICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGEsIEludGVnZXJNb2RfaW50NjQpOgorLSAgICAgICAg ICAgIGlmIChzZWxmLmMucCA9PSAoPEludGVnZXJNb2RfaW50NjQ+YSkuX19tb2R1bHVzLmludDY0 KTogIyMgdGhpcyBpcyBzbG93CisrICAgICAgICAgICAgaWYgKHNlbGYuYy5wID09ICg8SW50ZWdl ck1vZF9pbnQ2ND5hKS5fbW9kdWx1cy5pbnQ2NCk6ICMjIHRoaXMgaXMgc2xvdworICAgICAgICAg ICAgICAgICBzZWxmLnggPSAoPEludGVnZXJNb2RfaW50NjQ+YSkuaXZhbHVlCisgICAgICAgICAg ICAgZWxzZToKKyAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTWlzbWF0Y2hlZCBt b2R1bHVzIGZvciBjb252ZXJ0aW5nIHRvIHp6X3AuIikKKyAKKyAgICAgICAgIGVsaWYgaXNpbnN0 YW5jZShhLCBJbnRlZ2VyTW9kX2dtcCk6CistICAgICAgICAgICAgaWYgKHBfc2FnZSA9PSAoPElu dGVnZXJNb2RfZ21wPmEpLl9fbW9kdWx1cy5zYWdlSW50ZWdlcik6ICMjIHRoaXMgaXMgc2xvdwor KyAgICAgICAgICAgIGlmIChwX3NhZ2UgPT0gKDxJbnRlZ2VyTW9kX2dtcD5hKS5fbW9kdWx1cy5z YWdlSW50ZWdlcik6ICMjIHRoaXMgaXMgc2xvdworICAgICAgICAgICAgICAgICBzZWxmLnggPSBt cHpfZ2V0X3NpKCg8SW50ZWdlck1vZF9nbXA+YSkudmFsdWUpCisgICAgICAgICAgICAgZWxzZToK KyAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTWlzbWF0Y2hlZCBtb2R1bHVzIGZv ciBjb252ZXJ0aW5nIHRvIHp6X3AuIikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL250bC9u dGxfbHp6X3BYLnB5eCBiL3NyYy9zYWdlL2xpYnMvbnRsL250bF9senpfcFgucHl4CitpbmRleCAy NGI1MDNhOWE2Mi4uN2QxOWNjNTVlMzcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL250bC9u dGxfbHp6X3BYLnB5eAorKysrIGIvc3JjL3NhZ2UvbGlicy9udGwvbnRsX2x6el9wWC5weXgKK0BA IC0xMDgsMTcgKzEwOCwxNyBAQCBjZGVmIGNsYXNzIG50bF96el9wWCgpOgorICAgICAgICAgICAg IGEgPSBsc1tpXQorIAorICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoYSwgSW50ZWdlck1vZF9p bnQpOgorLSAgICAgICAgICAgICAgICBpZiAoc2VsZi5jLnAgPT0gKDxJbnRlZ2VyTW9kX2ludD5h KS5fX21vZHVsdXMuaW50MzIpOiAjIyB0aGlzIGlzIHNsb3cKKysgICAgICAgICAgICAgICAgaWYg KHNlbGYuYy5wID09ICg8SW50ZWdlck1vZF9pbnQ+YSkuX21vZHVsdXMuaW50MzIpOiAjIyB0aGlz IGlzIHNsb3cKKyAgICAgICAgICAgICAgICAgICAgIHp6X3BYX1NldENvZWZmX2xvbmcoc2VsZi54 LCBpLCAoPEludGVnZXJNb2RfaW50PmEpLml2YWx1ZSkKKyAgICAgICAgICAgICAgICAgZWxzZToK KyAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk1pc21hdGNoZWQgbW9kdWx1 cyBmb3IgY29udmVydGluZyB0byB6el9wWC4iKQorICAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5j ZShhLCBJbnRlZ2VyTW9kX2ludDY0KToKKy0gICAgICAgICAgICAgICAgaWYgKHNlbGYuYy5wID09 ICg8SW50ZWdlck1vZF9pbnQ2ND5hKS5fX21vZHVsdXMuaW50NjQpOiAjIyB0aGlzIGlzIHNsb3cK KysgICAgICAgICAgICAgICAgaWYgKHNlbGYuYy5wID09ICg8SW50ZWdlck1vZF9pbnQ2ND5hKS5f bW9kdWx1cy5pbnQ2NCk6ICMjIHRoaXMgaXMgc2xvdworICAgICAgICAgICAgICAgICAgICAgenpf cFhfU2V0Q29lZmZfbG9uZyhzZWxmLngsIGksICg8SW50ZWdlck1vZF9pbnQ2ND5hKS5pdmFsdWUp CisgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1 ZUVycm9yKCJNaXNtYXRjaGVkIG1vZHVsdXMgZm9yIGNvbnZlcnRpbmcgdG8genpfcFguIikKKyAg ICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoYSwgSW50ZWdlck1vZF9nbXApOgorLSAgICAgICAg ICAgICAgICBpZiAocF9zYWdlID09ICg8SW50ZWdlck1vZF9nbXA+YSkuX19tb2R1bHVzLnNhZ2VJ bnRlZ2VyKTogIyMgdGhpcyBpcyBzbG93CisrICAgICAgICAgICAgICAgIGlmIChwX3NhZ2UgPT0g KDxJbnRlZ2VyTW9kX2dtcD5hKS5fbW9kdWx1cy5zYWdlSW50ZWdlcik6ICMjIHRoaXMgaXMgc2xv dworICAgICAgICAgICAgICAgICAgICAgenpfcFhfU2V0Q29lZmZfbG9uZyhzZWxmLngsIGksIG1w el9nZXRfc2koKDxJbnRlZ2VyTW9kX2dtcD5hKS52YWx1ZSkpCisgICAgICAgICAgICAgICAgIGVs c2U6CisgICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNaXNtYXRjaGVkIG1v ZHVsdXMgZm9yIGNvbnZlcnRpbmcgdG8genpfcFguIikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9t YXRyaXgvbWF0cml4X2NvbXBsZXhfYmFsbF9kZW5zZS5weXggYi9zcmMvc2FnZS9tYXRyaXgvbWF0 cml4X2NvbXBsZXhfYmFsbF9kZW5zZS5weXgKK2luZGV4IDllMTQwNzljNmQ0Li40N2NhNDEwNzBm YSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfY29tcGxleF9iYWxsX2RlbnNl LnB5eAorKysrIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9jb21wbGV4X2JhbGxfZGVuc2UucHl4 CitAQCAtNjY0LDcgKzY2NCw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2NvbXBsZXhfYmFsbF9kZW5z ZShNYXRyaXhfZGVuc2UpOgorICAgICAgICAgUG9sID0gcG9seW5vbWlhbF9yaW5nX2NvbnN0cnVj dG9yLl9zaW5nbGVfdmFyaWF0ZShzZWxmLmJhc2VfcmluZygpLCB2YXIpCisgICAgICAgICBjZGVm IFBvbHlub21pYWxfY29tcGxleF9hcmIgcmVzID0gUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2wp CisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgYWNiX21hdF9jaGFycG9seShyZXMuX19wb2x5 LCBzZWxmLnZhbHVlLCBwcmVjKHNlbGYpKQorKyAgICAgICAgYWNiX21hdF9jaGFycG9seShyZXMu X3BvbHksIHNlbGYudmFsdWUsIHByZWMoc2VsZikpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAg ICAgIHJldHVybiByZXMKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2N5 Y2xvX2RlbnNlLnB5eCBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfY3ljbG9fZGVuc2UucHl4Citp bmRleCAxNWZmNjM5NDk1MS4uZjFlZDlhZjg0MDMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRy aXgvbWF0cml4X2N5Y2xvX2RlbnNlLnB5eAorKysrIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9j eWNsb19kZW5zZS5weXgKK0BAIC0zOTYsMTEgKzM5NiwxMSBAQCBjZGVmIGNsYXNzIE1hdHJpeF9j eWNsb19kZW5zZShNYXRyaXhfZGVuc2UpOgorICAgICAgICAgICAgICMgTm93IHNldCBrLXRoIGVu dHJ5IG9mIHgncyBudW1lcmF0b3IgdG8gdG1wCisgICAgICAgICAgICAgZm1wel9nZXRfbXB6KHRt cCwgZnRtcCkKKyAgICAgICAgICAgICBtcHpfdG9fWlooJmNvZWZmLCB0bXApCistICAgICAgICAg ICAgWlpYX1NldENvZWZmKHguX19udW1lcmF0b3IsIGssIGNvZWZmKQorKyAgICAgICAgICAgIFpa WF9TZXRDb2VmZih4Ll9udW1lcmF0b3IsIGssIGNvZWZmKQorIAorICAgICAgICAgIyBTZXQgdGhl IGRlbm9taW5hdG9yIG9mIHggdG8gZGVub20uCisgICAgICAgICBmbXB6X2dldF9tcHoodG1wLCBk ZW5vbSkKKy0gICAgICAgIG1wel90b19aWigmeC5fX2Rlbm9taW5hdG9yLCB0bXApCisrICAgICAg ICBtcHpfdG9fWlooJnguX2Rlbm9taW5hdG9yLCB0bXApCisgICAgICAgICBmbXB6X2NsZWFyKGRl bm9tKQorICAgICAgICAgbXB6X2NsZWFyKHRtcCkKKyAgICAgICAgIGZtcHpfY2xlYXIoZnRtcCkK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2ludGVnZXJfZGVuc2UucHl4IGIv c3JjL3NhZ2UvbWF0cml4L21hdHJpeF9pbnRlZ2VyX2RlbnNlLnB5eAoraW5kZXggOWM1MDkxMDQ5 NjcuLjgwODgzNTA1NzdjIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9pbnRl Z2VyX2RlbnNlLnB5eAorKysrIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9pbnRlZ2VyX2RlbnNl LnB5eAorQEAgLTEzNzEsMTIgKzEzNzEsMTIgQEAgY2RlZiBjbGFzcyBNYXRyaXhfaW50ZWdlcl9k ZW5zZShNYXRyaXhfZGVuc2UpOgorICAgICAgICAgaWYgYWxnb3JpdGhtID09ICdmbGludCc6Cisg ICAgICAgICAgICAgZyA9ICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50PiBQb2x5bm9t aWFsUmluZyhaWiwgbmFtZXM9dmFyKS5nZW4oKSkuX25ldygpCisgICAgICAgICAgICAgc2lnX29u KCkKKy0gICAgICAgICAgICBmbXB6X21hdF9jaGFycG9seShnLl9fcG9seSwgc2VsZi5fbWF0cml4 KQorKyAgICAgICAgICAgIGZtcHpfbWF0X2NoYXJwb2x5KGcuX3BvbHksIHNlbGYuX21hdHJpeCkK KyAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIGVsaWYgYWxnb3JpdGhtID09ICdsaW5i b3gnOgorICAgICAgICAgICAgIGcgPSAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludD4g UG9seW5vbWlhbFJpbmcoWlosIG5hbWVzPXZhcikuZ2VuKCkpLl9uZXcoKQorICAgICAgICAgICAg IHNpZ19vbigpCistICAgICAgICAgICAgbGluYm94X2ZtcHpfbWF0X2NoYXJwb2x5KGcuX19wb2x5 LCBzZWxmLl9tYXRyaXgpCisrICAgICAgICAgICAgbGluYm94X2ZtcHpfbWF0X2NoYXJwb2x5KGcu X3BvbHksIHNlbGYuX21hdHJpeCkKKyAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIGVs aWYgYWxnb3JpdGhtID09ICdnZW5lcmljJzoKKyAgICAgICAgICAgICBnID0gTWF0cml4X2RlbnNl LmNoYXJwb2x5KHNlbGYsIHZhcikKK0BAIC0xNDYwLDcgKzE0NjAsNyBAQCBjZGVmIGNsYXNzIE1h dHJpeF9pbnRlZ2VyX2RlbnNlKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICBpZiBhbGdvcml0aG0g PT0gJ2xpbmJveCc6CisgICAgICAgICAgICAgZyA9ICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNl X2ZsaW50PiBQb2x5bm9taWFsUmluZyhaWiwgbmFtZXM9dmFyKS5nZW4oKSkuX25ldygpCisgICAg ICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgICAgICBsaW5ib3hfZm1wel9tYXRfbWlucG9seShn Ll9fcG9seSwgc2VsZi5fbWF0cml4KQorKyAgICAgICAgICAgIGxpbmJveF9mbXB6X21hdF9taW5w b2x5KGcuX3BvbHksIHNlbGYuX21hdHJpeCkKKyAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAg ICAgIGVsaWYgYWxnb3JpdGhtID09ICdnZW5lcmljJzoKKyAgICAgICAgICAgICBnID0gTWF0cml4 X2RlbnNlLm1pbnBvbHkoc2VsZiwgdmFyKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJpeC9t YXRyaXhfaW50ZWdlcl9zcGFyc2UucHl4IGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9pbnRlZ2Vy X3NwYXJzZS5weXgKK2luZGV4IGE0MTY3N2M3YjZhLi44M2Q1ZWU0MmZiZSAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfaW50ZWdlcl9zcGFyc2UucHl4CisrKysgYi9zcmMvc2Fn ZS9tYXRyaXgvbWF0cml4X2ludGVnZXJfc3BhcnNlLnB5eAorQEAgLTg2OSwxMCArODY5LDEwIEBA IGNkZWYgY2xhc3MgTWF0cml4X2ludGVnZXJfc3BhcnNlKE1hdHJpeF9zcGFyc2UpOgorICAgICAg ICAgc2lnX29mZigpCisgCisgICAgICAgICBjZGVmIHNpemVfdCBpCistICAgICAgICBmbXB6X3Bv bHlfZml0X2xlbmd0aChnLl9fcG9seSwgcC5zaXplKCkpCisrICAgICAgICBmbXB6X3BvbHlfZml0 X2xlbmd0aChnLl9wb2x5LCBwLnNpemUoKSkKKyAgICAgICAgIGZvciBpIGluIHJhbmdlKHAuc2l6 ZSgpKToKKy0gICAgICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX21weihnLl9fcG9seSwgaSwg cFswXVtpXS5nZXRfbXB6X2NvbnN0KCkpCistICAgICAgICBfZm1wel9wb2x5X3NldF9sZW5ndGgo Zy5fX3BvbHksIHAuc2l6ZSgpKQorKyAgICAgICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZfbXB6 KGcuX3BvbHksIGksIHBbMF1baV0uZ2V0X21wel9jb25zdCgpKQorKyAgICAgICAgX2ZtcHpfcG9s eV9zZXRfbGVuZ3RoKGcuX3BvbHksIHAuc2l6ZSgpKQorIAorICAgICAgICAgZGVsIE0KKyAgICAg ICAgIGRlbCBwCitAQCAtOTY4LDEwICs5NjgsMTAgQEAgY2RlZiBjbGFzcyBNYXRyaXhfaW50ZWdl cl9zcGFyc2UoTWF0cml4X3NwYXJzZSk6CisgICAgICAgICBzaWdfb2ZmKCkKKyAKKyAgICAgICAg IGNkZWYgc2l6ZV90IGkKKy0gICAgICAgIGZtcHpfcG9seV9maXRfbGVuZ3RoKGcuX19wb2x5LCBw LnNpemUoKSkKKysgICAgICAgIGZtcHpfcG9seV9maXRfbGVuZ3RoKGcuX3BvbHksIHAuc2l6ZSgp KQorICAgICAgICAgZm9yIGkgaW4gcmFuZ2UocC5zaXplKCkpOgorLSAgICAgICAgICAgIGZtcHpf cG9seV9zZXRfY29lZmZfbXB6KGcuX19wb2x5LCBpLCBwWzBdW2ldLmdldF9tcHpfY29uc3QoKSkK Ky0gICAgICAgIF9mbXB6X3BvbHlfc2V0X2xlbmd0aChnLl9fcG9seSwgcC5zaXplKCkpCisrICAg ICAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9tcHooZy5fcG9seSwgaSwgcFswXVtpXS5nZXRf bXB6X2NvbnN0KCkpCisrICAgICAgICBfZm1wel9wb2x5X3NldF9sZW5ndGgoZy5fcG9seSwgcC5z aXplKCkpCisgCisgICAgICAgICBkZWwgTQorICAgICAgICAgZGVsIHAKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9tYXRyb2lkcy9iYXNpc19leGNoYW5nZV9tYXRyb2lkLnB4ZCBiL3NyYy9zYWdlL21h dHJvaWRzL2Jhc2lzX2V4Y2hhbmdlX21hdHJvaWQucHhkCitpbmRleCBhZWMzYmI1NGM0Mi4uMjhj YzdhZDg2OGMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyb2lkcy9iYXNpc19leGNoYW5nZV9t YXRyb2lkLnB4ZAorKysrIGIvc3JjL3NhZ2UvbWF0cm9pZHMvYmFzaXNfZXhjaGFuZ2VfbWF0cm9p ZC5weGQKK0BAIC0xNSwxMyArMTUsMTMgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9p ZChNYXRyb2lkKToKKyAgICAgY2RlZiBfd2Vha19pbnZhcmlhbnRfdmFyLCBfc3Ryb25nX2ludmFy aWFudF92YXIsIF9oZXVyaXN0aWNfaW52YXJpYW50X3ZhcgorICAgICBjZGVmIFNldFN5c3RlbSBf d2Vha19wYXJ0aXRpb25fdmFyLCBfc3Ryb25nX3BhcnRpdGlvbl92YXIsIF9oZXVyaXN0aWNfcGFy dGl0aW9uX3ZhcgorIAorLSAgICBjZGVmIF9fcmVsYWJlbChzZWxmLCBsKQorKyAgICBjZGVmIF9y ZWxhYmVsKHNlbGYsIGwpCisgCistICAgIGNkZWYgX19wYWNrKHNlbGYsIGJpdHNldF90LCBYKQor KyAgICBjZGVmIF9wYWNrKHNlbGYsIGJpdHNldF90LCBYKQorICAgICBjZGVmIF9fdW5wYWNrKHNl bGYsIGJpdHNldF90KQorLSAgICBjZGVmIGJpbnQgX19pc19leGNoYW5nZV9wYWlyKHNlbGYsIGxv bmcgeCwgbG9uZyB5KSBleGNlcHQgLTEKKy0gICAgY2RlZiBpbnQgX19leGNoYW5nZShzZWxmLCBs b25nIHgsIGxvbmcgeSkgZXhjZXB0IC0xCistICAgIGNkZWYgaW50IF9fbW92ZShzZWxmLCBiaXRz ZXRfdCBYLCBiaXRzZXRfdCBZKSBleGNlcHQgLTEKKysgICAgY2RlZiBiaW50IF9pc19leGNoYW5n ZV9wYWlyKHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBleGNlcHQgLTEKKysgICAgY2RlZiBpbnQgX2V4 Y2hhbmdlKHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBleGNlcHQgLTEKKysgICAgY2RlZiBpbnQgX21v dmUoc2VsZiwgYml0c2V0X3QgWCwgYml0c2V0X3QgWSkgZXhjZXB0IC0xCisgICAgIGNkZWYgX19m dW5kYW1lbnRhbF9jb2NpcmN1aXQoc2VsZiwgYml0c2V0X3QsIGxvbmcgeCkKKyAgICAgY2RlZiBf X2Z1bmRhbWVudGFsX2NpcmN1aXQoc2VsZiwgYml0c2V0X3QsIGxvbmcgeSkKKyAKK0BAIC0zMCw3 ICszMCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAg IGNkZWYgX19jbG9zdXJlKHNlbGYsIGJpdHNldF90LCBiaXRzZXRfdCkKKyAgICAgY2RlZiBfX21h eF9jb2luZGVwZW5kZW50KHNlbGYsIGJpdHNldF90LCBiaXRzZXRfdCkKKyAgICAgY2RlZiBfX2Nv Y2lyY3VpdChzZWxmLCBiaXRzZXRfdCwgYml0c2V0X3QpCistICAgIGNkZWYgX19jb2Nsb3N1cmUo c2VsZiwgYml0c2V0X3QsIGJpdHNldF90KQorKyAgICBjZGVmIF9jb2Nsb3N1cmVfaW50ZXJuYWwo c2VsZiwgYml0c2V0X3QsIGJpdHNldF90KQorIAorICAgICBjZGVmIF9fYXVnbWVudChzZWxmLCBi aXRzZXRfdCwgYml0c2V0X3QsIGJpdHNldF90KQorICAgICBjZGVmIGJpbnQgX19pc19pbmRlcGVu ZGVudChzZWxmLCBiaXRzZXRfdCBGKSBleGNlcHQgLTEKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9t YXRyb2lkcy9iYXNpc19leGNoYW5nZV9tYXRyb2lkLnB5eCBiL3NyYy9zYWdlL21hdHJvaWRzL2Jh c2lzX2V4Y2hhbmdlX21hdHJvaWQucHl4CitpbmRleCA5MGQxMDg0MmQ0Ni4uMDE1ZmE4YjhkZjMg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyb2lkcy9iYXNpc19leGNoYW5nZV9tYXRyb2lkLnB5 eAorKysrIGIvc3JjL3NhZ2UvbWF0cm9pZHMvYmFzaXNfZXhjaGFuZ2VfbWF0cm9pZC5weXgKK0BA IC01NywxMCArNTcsMTAgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lk KToKKyAKKyAgICAgVGhpcyBiYXNlIGV4Y2hhbmdlIGdyYXBoIGlzIG5vdCBzdG9yZWQgYXMgc3Vj aCwgYnV0IHNob3VsZCBiZSBwcm92aWRlZAorICAgICBpbXBsaWNpdGx5IGJ5IHRoZSBjaGlsZCBj bGFzcyBpbiB0aGUgZm9ybSBvZiB0d28gbWV0aG9kcworLSAgICBgYF9faXNfZXhjaGFuZ2VfcGFp cih4LCB5KWBgIGFuZCBgYF9fZXhjaGFuZ2UoeCwgeSlgYCwgYXMgd2VsbCBhcyBhbgorKyAgICBg YF9pc19leGNoYW5nZV9wYWlyKHgsIHkpYGAgYW5kIGBgX2V4Y2hhbmdlKHgsIHkpYGAsIGFzIHdl bGwgYXMgYW4KKyAgICAgaW5pdGlhbCBiYXNpcy4gQXQgYW55IG1vbWVudCwgQmFzaXNFeGNoYW5n ZU1hdHJvaWQga2VlcHMgYSBjdXJyZW50IGJhc2lzCistICAgIGBCYC4gVGhlIG1ldGhvZCBgYF9f aXNfZXhjaGFuZ2VfcGFpcih4LCB5KWBgIHNob3VsZCByZXR1cm4gYSBib29sZWFuCistICAgIGlu ZGljYXRpbmcgd2hldGhlciBgQiAtIHggKyB5YCBpcyBhIGJhc2lzLiBUaGUgbWV0aG9kIGBgX19l eGNoYW5nZSh4LCB5KWBgCisrICAgIGBCYC4gVGhlIG1ldGhvZCBgYF9pc19leGNoYW5nZV9wYWly KHgsIHkpYGAgc2hvdWxkIHJldHVybiBhIGJvb2xlYW4KKysgICAgaW5kaWNhdGluZyB3aGV0aGVy IGBCIC0geCArIHlgIGlzIGEgYmFzaXMuIFRoZSBtZXRob2QgYGBfZXhjaGFuZ2UoeCwgeSlgYAor ICAgICBpcyBjYWxsZWQgd2hlbiB0aGUgY3VycmVudCBiYXNpcyBgQmAgaXMgcmVwbGFjZWQgYnkg c2FpZCBgQi14ICsgeWAuIEl0IGlzCisgICAgIHVwIHRvIHRoZSBjaGlsZCBjbGFzcyB0byB1cGRh dGUgaXRzIGludGVybmFsIGRhdGEgc3RydWN0dXJlIHRvIG1ha2UKKyAgICAgaW5mb3JtYXRpb24g cmVsYXRpdmUgdG8gdGhlIG5ldyBiYXNpcyBtb3JlIGFjY2Vzc2libGUuIEZvciBpbnN0YW5jZSwg YQorQEAgLTgxLDE2ICs4MSwxNiBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1h dHJvaWQpOgorICAgICAtIDpjbGFzczpgQmFzaXNNYXRyb2lkIDxzYWdlLm1hdHJvaWRzLmJhc2lz X21hdHJvaWQuQmFzaXNNYXRyb2lkPmA6IGtlZXBzCisgICAgICAgYSBsaXN0IG9mIGFsbCBiYXNl cy4KKyAKKy0gICAgICAgIC0gYGBfX2lzX2V4Y2hhbmdlX3BhaXIoeCwgeSlgYCByZWR1Y2VzIHRv IGEgcXVlcnkgd2hldGhlciBgQiAtIHggKyB5YAorKyAgICAgICAgLSBgYF9pc19leGNoYW5nZV9w YWlyKHgsIHkpYGAgcmVkdWNlcyB0byBhIHF1ZXJ5IHdoZXRoZXIgYEIgLSB4ICsgeWAKKyAgICAg ICAgICAgaXMgYSBiYXNpcy4KKy0gICAgICAgIC0gYGBfX2V4Y2hhbmdlKHgsIHkpYGAgaGFzIG5v IHdvcmsgdG8gZG8uCisrICAgICAgICAtIGBgX2V4Y2hhbmdlKHgsIHkpYGAgaGFzIG5vIHdvcmsg dG8gZG8uCisgCisgICAgIC0gOmNsYXNzOmBMaW5lYXJNYXRyb2lkIDxzYWdlLm1hdHJvaWRzLmxp bmVhcl9tYXRyb2lkLkxpbmVhck1hdHJvaWQ+YDoKKyAgICAgICBrZWVwcyBhIG1hdHJpeCByZXBy ZXNlbnRhdGlvbiBgQWAgb2YgdGhlIG1hdHJvaWQgc28gdGhhdCBgQVtCXSA9IElgLgorIAorLSAg ICAgICAgLSBgYF9faXNfZXhjaGFuZ2VfcGFpcih4LCB5KWBgIHJlZHVjZXMgdG8gdGVzdGluZyB3 aGV0aGVyIGBBW3IsIHldYAorKyAgICAgICAgLSBgYF9pc19leGNoYW5nZV9wYWlyKHgsIHkpYGAg cmVkdWNlcyB0byB0ZXN0aW5nIHdoZXRoZXIgYEFbciwgeV1gCisgICAgICAgICAgIGlzIG5vbnpl cm8sIHdoZXJlIGBBW3IsIHhdPTFgLgorLSAgICAgICAgLSBgYF9fZXhjaGFuZ2UoeCwgeSlgYCBz aG91bGQgbW9kaWZ5IHRoZSBtYXRyaXggc28gdGhhdCBgQVtCIC0geCArIHldYAorKyAgICAgICAg LSBgYF9leGNoYW5nZSh4LCB5KWBgIHNob3VsZCBtb2RpZnkgdGhlIG1hdHJpeCBzbyB0aGF0IGBB W0IgLSB4ICsgeV1gCisgICAgICAgICAgIGJlY29tZXMgYElgLCB3aGljaCBtZWFucyBwaXZvdGlu ZyBvbiBgQVtyLCB5XWAuCisgCisgICAgIC0gYGBUcmFuc3ZlcnNhbE1hdHJvaWRgYCAobm90IHll dCBpbXBsZW1lbnRlZCk6IElmIGBBYCBpcyBhIHNldCBvZiBzdWJzZXRzCitAQCAtMTAwLDE3ICsx MDAsMTcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAg ICBlZGdlIGAoQV9pLGUpYCBpZiBgZWAgaXMgaW4gdGhlIHN1YnNldCBgQV9pYC4gQXQgYW55IHRp bWUgeW91IGtlZXAgYQorICAgICAgIG1heGltdW0gbWF0Y2hpbmcgYE1gIG9mIGBHYCBjb3Zlcmlu ZyB0aGUgY3VycmVudCBiYXNpcyBgQmAuCisgCistICAgICAgICAtIGBgX19pc19leGNoYW5nZV9w YWlyKHgsIHkpYGAgY2hlY2tzIGZvciB0aGUgZXhpc3RlbmNlIG9mIGFuCisrICAgICAgICAtIGBg X2lzX2V4Y2hhbmdlX3BhaXIoeCwgeSlgYCBjaGVja3MgZm9yIHRoZSBleGlzdGVuY2Ugb2YgYW4K KyAgICAgICAgICAgYE1gLWFsdGVybmF0aW5nIHBhdGggYFBgIGZyb20gYHlgIHRvIGB4YC4KKy0g ICAgICAgIC0gYGBfX2V4Y2hhbmdlKHgsIHkpYGAgcmVwbGFjZXMgYE1gIGJ5IHRoZSBzeW1tZXRy aWMgZGlmZmVyZW5jZSBvZgorKyAgICAgICAgLSBgYF9leGNoYW5nZSh4LCB5KWBgIHJlcGxhY2Vz IGBNYCBieSB0aGUgc3ltbWV0cmljIGRpZmZlcmVuY2Ugb2YKKyAgICAgICAgICAgYE1gIGFuZCBg RShQKWAuCisgCisgICAgIC0gYGBBbGdlYnJhaWNNYXRyb2lkYGAgKG5vdCB5ZXQgaW1wbGVtZW50 ZWQpOiBrZWVwcyBhIGxpc3Qgb2YgcG9seW5vbWlhbHMKKyAgICAgICBpbiB2YXJpYWJsZXMgYEUg LSBCICsgZWAgZm9yIGVhY2ggdmFyaWFibGUgYGVgIGluIGBCYC4KKyAKKy0gICAgICAgIC0gYGBf X2lzX2V4Y2hhbmdlX3BhaXIoeCwgeSlgYCBjaGVja3Mgd2hldGhlciB0aGUgcG9seW5vbWlhbCB0 aGF0CisrICAgICAgICAtIGBgX2lzX2V4Y2hhbmdlX3BhaXIoeCwgeSlgYCBjaGVja3Mgd2hldGhl ciB0aGUgcG9seW5vbWlhbCB0aGF0CisgICAgICAgICAgIHJlbGF0ZXMgYHlgIHRvIGBFLUJgIHVz ZXMgYHhgLgorLSAgICAgICAgLSBgYF9fZXhjaGFuZ2UoeCwgeSlgYCBtYWtlIG5ldyBsaXN0IG9m IHBvbHlub21pYWxzIGJ5IGNvbXB1dGluZworKyAgICAgICAgLSBgYF9leGNoYW5nZSh4LCB5KWBg IG1ha2UgbmV3IGxpc3Qgb2YgcG9seW5vbWlhbHMgYnkgY29tcHV0aW5nCisgICAgICAgICAgIHJl c3VsdGFudHMuCisgCisgICAgIEFsbCBidXQgdGhlIGZpcnN0IG9mIHRoZSBhYm92ZSBtYXRyb2lk cyBhcmUgYWxnZWJyYWljLCBhbmQgYWxsCitAQCAtMTM5LDcgKzEzOSw3IEBAIGNkZWYgY2xhc3Mg QmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICBUaGlzIGluaXRpYWxpemVy IHNldHMgdXAgYSBjb3JyZXNwb25kZW5jZSBiZXR3ZWVuIGVsZW1lbnRzIG9mCisgICAgICAgICBg YGdyb3VuZHNldGBgIGFuZCBgYHJhbmdlKGxlbihncm91bmRzZXQpKWBgLiBgYEJhc2lzRXhjaGFu Z2VNYXRyb2lkYGAKKyAgICAgICAgIHVzZXMgdGhpcyBjb3JyZXNwb25kZW5jZSBmb3IgZW5jb2Rp bmcgb2Ygc3Vic2V0cyBvZiB0aGUgZ3JvdW5kc2V0IGFzCistICAgICAgICBiaXRwYWNrZWQgc2V0 cyBvZiBpbnRlZ2VycyAtLS0gc2VlIGBgX19wYWNrKClgYCBhbmQgYGBfX3VucGFjaygpYGAuIElu CisrICAgICAgICBiaXRwYWNrZWQgc2V0cyBvZiBpbnRlZ2VycyAtLS0gc2VlIGBgX3BhY2soKWBg IGFuZCBgYF9fdW5wYWNrKClgYC4gSW4KKyAgICAgICAgIGdlbmVyYWwsIG1ldGhvZHMgb2YgYGBC YXNpc0V4Y2hhbmdlTWF0cm9pZGBgIGhhdmluZyBhIG5hbWUgc3RhcnRpbmcKKyAgICAgICAgIHdp dGggdHdvIHVuZGVyc2NvcmVzIGRlYWwgd2l0aCBzdWNoIGVuY29kZWQgc3Vic2V0cy4KKyAKK0BA IC0xODAsNyArMTgwLDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lk KToKKyAgICAgICAgICAgICBzZWxmLl9pZHhbc2VsZi5fRVtpXV0gPSBpCisgCisgICAgICAgICBp ZiBiYXNpcyBpcyBub3QgTm9uZToKKy0gICAgICAgICAgICBzZWxmLl9fcGFjayhzZWxmLl9jdXJy ZW50X2Jhc2lzLCBmcm96ZW5zZXQoYmFzaXMpKQorKyAgICAgICAgICAgIHNlbGYuX3BhY2soc2Vs Zi5fY3VycmVudF9iYXNpcywgZnJvemVuc2V0KGJhc2lzKSkKKyAKKyAgICAgZGVmIF9fZGVhbGxv Y19fKHNlbGYpOgorICAgICAgICAgYml0c2V0X2ZyZWUoc2VsZi5fY3VycmVudF9iYXNpcykKK0BA IC0xOTEsNyArMTkxLDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lk KToKKyAgICAgICAgIGJpdHNldF9mcmVlKHNlbGYuX291dHB1dCkKKyAgICAgICAgIGJpdHNldF9m cmVlKHNlbGYuX3RlbXApCisgCistICAgIGNkZWYgX19yZWxhYmVsKHNlbGYsIGwpOgorKyAgICBj ZGVmIF9yZWxhYmVsKHNlbGYsIGwpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZWxhYmVsIGVh Y2ggZWxlbWVudCBgZWAgYXMgYGxbZV1gLCB3aGVyZSBgbGAgaXMgYSBnaXZlbiBpbmplY3RpdmUg bWFwLgorIAorQEAgLTIzMSw3ICsyMzEsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRy b2lkKE1hdHJvaWQpOgorICAgICAgICAgICAgIHNlbGYuX2hldXJpc3RpY19wYXJ0aXRpb25fdmFy Ll9yZWxhYmVsKGwpCisgCisgICAgICMgdGhlIGVuZ2luZQorLSAgICBjZGVmIF9fcGFjayhzZWxm LCBiaXRzZXRfdCBJLCBGKToKKysgICAgY2RlZiBfcGFjayhzZWxmLCBiaXRzZXRfdCBJLCBGKToK KyAgICAgICAgICIiIgorICAgICAgICAgRW5jb2RlIGEgc3Vic2V0IEYgb2YgdGhlIGdyb3VuZHNl dCBpbnRvIGEgYml0cGFja2VkIHNldCBvZiBpbnRlZ2VycworICAgICAgICAgIiIiCitAQCAtMjUy LDIxICsyNTIsMjEgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToK KyAgICAgICAgIHJldHVybiBmcm96ZW5zZXQoRikKKyAKKyAgICAgIyB0aGlzIG1ldGhvZCBuZWVk cyB0byBiZSBvdmVycmlkZGVuIGJ5IGNoaWxkIGNsYXNzCistICAgIGNkZWYgYmludCBfX2lzX2V4 Y2hhbmdlX3BhaXIoc2VsZiwgbG9uZyB4LCBsb25nIHkpIGV4Y2VwdCAtMToKKysgICAgY2RlZiBi aW50IF9pc19leGNoYW5nZV9wYWlyKHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBleGNlcHQgLTE6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFRlc3QgaWYgY3VycmVudF9iYXNpcy14ICsgeSBpcyBhIGJh c2lzCisgICAgICAgICAiIiIKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKyAK KyAgICAgIyBpZiB0aGlzIG1ldGhvZCBpcyBvdmVycmlkZGVuIGJ5IGEgY2hpbGQgY2xhc3MsIHRo ZSBjaGlsZCBjbGFzcyBuZWVkcyB0byBjYWxsIHRoaXMgbWV0aG9kCistICAgIGNkZWYgaW50IF9f ZXhjaGFuZ2Uoc2VsZiwgbG9uZyB4LCBsb25nIHkpIGV4Y2VwdCAtMToKKysgICAgY2RlZiBpbnQg X2V4Y2hhbmdlKHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBleGNlcHQgLTE6CisgICAgICAgICAiIiIK KyAgICAgICAgIHB1dCBjdXJyZW50X2Jhc2lzIDwtLSBjdXJyZW50X2Jhc2lzLXggKyB5CisgICAg ICAgICAiIiIKKyAgICAgICAgIGJpdHNldF9kaXNjYXJkKHNlbGYuX2N1cnJlbnRfYmFzaXMsIHgp CisgICAgICAgICBiaXRzZXRfYWRkKHNlbGYuX2N1cnJlbnRfYmFzaXMsIHkpCisgCistICAgIGNk ZWYgaW50IF9fbW92ZShzZWxmLCBiaXRzZXRfdCBYLCBiaXRzZXRfdCBZKSBleGNlcHQgLTE6Cisr ICAgIGNkZWYgaW50IF9tb3ZlKHNlbGYsIGJpdHNldF90IFgsIGJpdHNldF90IFkpIGV4Y2VwdCAt MToKKyAgICAgICAgICIiIgorICAgICAgICAgQ2hhbmdlIGN1cnJlbnRfYmFzaXMgdG8gbWluaW1p emUgaW50ZXJzZWN0aW9uIHdpdGggYGBYYGAsIG1heGltaXplIGludGVyc2VjdGlvbiB3aXRoIGBg WWBgLgorICAgICAgICAgIiIiCitAQCAtMjc1LDggKzI3NSw4IEBAIGNkZWYgY2xhc3MgQmFzaXNF eGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICB3aGlsZSB4ID49IDA6CisgICAgICAg ICAgICAgeSA9IGJpdHNldF9maXJzdChZKQorICAgICAgICAgICAgIHdoaWxlIHkgPj0gMDoKKy0g ICAgICAgICAgICAgICAgaWYgc2VsZi5fX2lzX2V4Y2hhbmdlX3BhaXIoeCwgeSk6CistICAgICAg ICAgICAgICAgICAgICBzZWxmLl9fZXhjaGFuZ2UoeCwgeSkKKysgICAgICAgICAgICAgICAgaWYg c2VsZi5faXNfZXhjaGFuZ2VfcGFpcih4LCB5KToKKysgICAgICAgICAgICAgICAgICAgIHNlbGYu X2V4Y2hhbmdlKHgsIHkpCisgICAgICAgICAgICAgICAgICAgICBiaXRzZXRfZGlzY2FyZChZLCB5 KQorICAgICAgICAgICAgICAgICAgICAgYml0c2V0X2Rpc2NhcmQoWCwgeCkKKyAgICAgICAgICAg ICAgICAgICAgIGlmIGJpdHNldF9pc2VtcHR5KFkpOgorQEAgLTI5NSw3ICsyOTUsNyBAQCBjZGVm IGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgYml0c2V0X2Nv bXBsZW1lbnQoc2VsZi5fdGVtcCwgc2VsZi5fY3VycmVudF9iYXNpcykKKyAgICAgICAgIHkgPSBi aXRzZXRfZmlyc3Qoc2VsZi5fdGVtcCkKKyAgICAgICAgIHdoaWxlIHkgPj0gMDoKKy0gICAgICAg ICAgICBpZiBzZWxmLl9faXNfZXhjaGFuZ2VfcGFpcih4LCB5KToKKysgICAgICAgICAgICBpZiBz ZWxmLl9pc19leGNoYW5nZV9wYWlyKHgsIHkpOgorICAgICAgICAgICAgICAgICBiaXRzZXRfYWRk KEMsIHkpCisgICAgICAgICAgICAgeSA9IGJpdHNldF9uZXh0KHNlbGYuX3RlbXAsIHkgKyAxKQor ICAgICAgICAgYml0c2V0X2FkZChDLCB4KQorQEAgLTMwOCw3ICszMDgsNyBAQCBjZGVmIGNsYXNz IEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgYml0c2V0X2NsZWFyKEMp CisgICAgICAgICB4ID0gYml0c2V0X2ZpcnN0KHNlbGYuX2N1cnJlbnRfYmFzaXMpCisgICAgICAg ICB3aGlsZSB4ID49IDA6CistICAgICAgICAgICAgaWYgc2VsZi5fX2lzX2V4Y2hhbmdlX3BhaXIo eCwgeSk6CisrICAgICAgICAgICAgaWYgc2VsZi5faXNfZXhjaGFuZ2VfcGFpcih4LCB5KToKKyAg ICAgICAgICAgICAgICAgYml0c2V0X2FkZChDLCB4KQorICAgICAgICAgICAgIHggPSBiaXRzZXRf bmV4dChzZWxmLl9jdXJyZW50X2Jhc2lzLCB4ICsgMSkKKyAgICAgICAgIGJpdHNldF9hZGQoQywg eSkKK0BAIC0zMTksNyArMzE5LDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChN YXRyb2lkKToKKyAgICAgICAgICIiIgorICAgICAgICAgYml0c2V0X2RpZmZlcmVuY2Uoc2VsZi5f aW5zaWRlLCBzZWxmLl9jdXJyZW50X2Jhc2lzLCBGKQorICAgICAgICAgYml0c2V0X2RpZmZlcmVu Y2Uoc2VsZi5fb3V0c2lkZSwgRiwgc2VsZi5fY3VycmVudF9iYXNpcykKKy0gICAgICAgIHNlbGYu X19tb3ZlKHNlbGYuX2luc2lkZSwgc2VsZi5fb3V0c2lkZSkKKysgICAgICAgIHNlbGYuX21vdmUo c2VsZi5faW5zaWRlLCBzZWxmLl9vdXRzaWRlKQorICAgICAgICAgYml0c2V0X2ludGVyc2VjdGlv bihSLCBzZWxmLl9jdXJyZW50X2Jhc2lzLCBGKQorIAorICAgICBjZGVmIF9fY2lyY3VpdChzZWxm LCBiaXRzZXRfdCBSLCBiaXRzZXRfdCBGKToKK0BAIC0zMzUsOCArMzM1LDggQEAgY2RlZiBjbGFz cyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgIHdoaWxlIHkgPj0gMDoK KyAgICAgICAgICAgICB4ID0gYml0c2V0X2ZpcnN0KHNlbGYuX2luc2lkZSkKKyAgICAgICAgICAg ICB3aGlsZSB4ID49IDA6CistICAgICAgICAgICAgICAgIGlmIHNlbGYuX19pc19leGNoYW5nZV9w YWlyKHgsIHkpOgorLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fX2V4Y2hhbmdlKHgsIHkpCisr ICAgICAgICAgICAgICAgIGlmIHNlbGYuX2lzX2V4Y2hhbmdlX3BhaXIoeCwgeSk6CisrICAgICAg ICAgICAgICAgICAgICBzZWxmLl9leGNoYW5nZSh4LCB5KQorICAgICAgICAgICAgICAgICAgICAg Yml0c2V0X2Rpc2NhcmQoc2VsZi5fb3V0c2lkZSwgeSkKKyAgICAgICAgICAgICAgICAgICAgIGJp dHNldF9kaXNjYXJkKHNlbGYuX2luc2lkZSwgeCkKKyAgICAgICAgICAgICAgICAgICAgIGlmIGJp dHNldF9pc2VtcHR5KHNlbGYuX291dHNpZGUpOgorQEAgLTM1NSw3ICszNTUsNyBAQCBjZGVmIGNs YXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgIiIiCisgICAgICAg ICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9pbnNpZGUsIHNlbGYuX2N1cnJlbnRfYmFzaXMsIEYp CisgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9vdXRzaWRlLCBGLCBzZWxmLl9jdXJy ZW50X2Jhc2lzKQorLSAgICAgICAgc2VsZi5fX21vdmUoc2VsZi5faW5zaWRlLCBzZWxmLl9vdXRz aWRlKQorKyAgICAgICAgc2VsZi5fbW92ZShzZWxmLl9pbnNpZGUsIHNlbGYuX291dHNpZGUpCisg ICAgICAgICBiaXRzZXRfc2V0X2ZpcnN0X24oUiwgc2VsZi5fZ3JvdW5kc2V0X3NpemUpCisgICAg ICAgICBjZGVmIGxvbmcgeCA9IGJpdHNldF9maXJzdChzZWxmLl9pbnNpZGUpCisgICAgICAgICB3 aGlsZSB4ID49IDA6CitAQCAtMzcwLDcgKzM3MCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5n ZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICBiaXRzZXRfY29tcGxlbWVudChSLCBGKQorICAg ICAgICAgYml0c2V0X2RpZmZlcmVuY2Uoc2VsZi5faW5zaWRlLCBzZWxmLl9jdXJyZW50X2Jhc2lz LCBSKQorICAgICAgICAgYml0c2V0X2RpZmZlcmVuY2Uoc2VsZi5fb3V0c2lkZSwgUiwgc2VsZi5f Y3VycmVudF9iYXNpcykKKy0gICAgICAgIHNlbGYuX19tb3ZlKHNlbGYuX2luc2lkZSwgc2VsZi5f b3V0c2lkZSkKKysgICAgICAgIHNlbGYuX21vdmUoc2VsZi5faW5zaWRlLCBzZWxmLl9vdXRzaWRl KQorICAgICAgICAgYml0c2V0X2RpZmZlcmVuY2UoUiwgRiwgc2VsZi5fY3VycmVudF9iYXNpcykK KyAKKyAgICAgY2RlZiBfX2NvY2lyY3VpdChzZWxmLCBiaXRzZXRfdCBSLCBiaXRzZXRfdCBGKToK K0BAIC0zODcsOCArMzg3LDggQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRy b2lkKToKKyAgICAgICAgIHdoaWxlIHggPj0gMDoKKyAgICAgICAgICAgICB5ID0gYml0c2V0X2Zp cnN0KHNlbGYuX291dHNpZGUpCisgICAgICAgICAgICAgd2hpbGUgeSA+PSAwOgorLSAgICAgICAg ICAgICAgICBpZiBzZWxmLl9faXNfZXhjaGFuZ2VfcGFpcih4LCB5KToKKy0gICAgICAgICAgICAg ICAgICAgIHNlbGYuX19leGNoYW5nZSh4LCB5KQorKyAgICAgICAgICAgICAgICBpZiBzZWxmLl9p c19leGNoYW5nZV9wYWlyKHgsIHkpOgorKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fZXhjaGFu Z2UoeCwgeSkKKyAgICAgICAgICAgICAgICAgICAgIGJpdHNldF9kaXNjYXJkKHNlbGYuX291dHNp ZGUsIHkpCisgICAgICAgICAgICAgICAgICAgICBiaXRzZXRfZGlzY2FyZChzZWxmLl9pbnNpZGUs IHgpCisgICAgICAgICAgICAgICAgICAgICBpZiBiaXRzZXRfaXNlbXB0eShzZWxmLl9pbnNpZGUp OgorQEAgLTQwMSwxNCArNDAxLDE0IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQo TWF0cm9pZCk6CisgICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgIHggPSBiaXRz ZXRfbmV4dChzZWxmLl9pbnNpZGUsIHggKyAxKQorIAorLSAgICBjZGVmIF9fY29jbG9zdXJlKHNl bGYsIGJpdHNldF90IFIsIGJpdHNldF90IEYpOgorKyAgICBjZGVmIF9jb2Nsb3N1cmVfaW50ZXJu YWwoc2VsZiwgYml0c2V0X3QgUiwgYml0c2V0X3QgRik6CisgICAgICAgICAiIiIKKyAgICAgICAg IEJpdHBhY2tlZCB2ZXJzaW9uIG9mIGBgY2xvc3VyZWBgLgorICAgICAgICAgIiIiCisgICAgICAg ICBiaXRzZXRfY29tcGxlbWVudChSLCBGKQorICAgICAgICAgYml0c2V0X2RpZmZlcmVuY2Uoc2Vs Zi5faW5zaWRlLCBzZWxmLl9jdXJyZW50X2Jhc2lzLCBSKQorICAgICAgICAgYml0c2V0X2RpZmZl cmVuY2Uoc2VsZi5fb3V0c2lkZSwgUiwgc2VsZi5fY3VycmVudF9iYXNpcykKKy0gICAgICAgIHNl bGYuX19tb3ZlKHNlbGYuX2luc2lkZSwgc2VsZi5fb3V0c2lkZSkKKysgICAgICAgIHNlbGYuX21v dmUoc2VsZi5faW5zaWRlLCBzZWxmLl9vdXRzaWRlKQorICAgICAgICAgYml0c2V0X3NldF9maXJz dF9uKFIsIHNlbGYuX2dyb3VuZHNldF9zaXplKQorICAgICAgICAgY2RlZiBsb25nIHkgPSBiaXRz ZXRfZmlyc3Qoc2VsZi5fb3V0c2lkZSkKKyAgICAgICAgIHdoaWxlIHkgPj0gMDoKK0BAIC00MjIs MTAgKzQyMiwxMCBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgor ICAgICAgICAgIiIiCisgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9pbnNpZGUsIHNl bGYuX2N1cnJlbnRfYmFzaXMsIFgpCisgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9v dXRzaWRlLCBYLCBzZWxmLl9jdXJyZW50X2Jhc2lzKQorLSAgICAgICAgc2VsZi5fX21vdmUoc2Vs Zi5faW5zaWRlLCBzZWxmLl9vdXRzaWRlKQorKyAgICAgICAgc2VsZi5fbW92ZShzZWxmLl9pbnNp ZGUsIHNlbGYuX291dHNpZGUpCisgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9pbnNp ZGUsIHNlbGYuX2luc2lkZSwgWSkKKyAgICAgICAgIGJpdHNldF9kaWZmZXJlbmNlKHNlbGYuX291 dHNpZGUsIFksIHNlbGYuX2N1cnJlbnRfYmFzaXMpCistICAgICAgICBzZWxmLl9fbW92ZShzZWxm Ll9pbnNpZGUsIHNlbGYuX291dHNpZGUpCisrICAgICAgICBzZWxmLl9tb3ZlKHNlbGYuX2luc2lk ZSwgc2VsZi5fb3V0c2lkZSkKKyAgICAgICAgIGJpdHNldF9pbnRlcnNlY3Rpb24oUiwgc2VsZi5f Y3VycmVudF9iYXNpcywgWSkKKyAKKyAgICAgY2RlZiBiaW50IF9faXNfaW5kZXBlbmRlbnQoc2Vs ZiwgYml0c2V0X3QgRikgZXhjZXB0IC0xOgorQEAgLTQzNCw3ICs0MzQsNyBAQCBjZGVmIGNsYXNz IEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgIiIiCisgICAgICAgICBi aXRzZXRfZGlmZmVyZW5jZShzZWxmLl9pbnNpZGUsIHNlbGYuX2N1cnJlbnRfYmFzaXMsIEYpCisg ICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9vdXRzaWRlLCBGLCBzZWxmLl9jdXJyZW50 X2Jhc2lzKQorLSAgICAgICAgc2VsZi5fX21vdmUoc2VsZi5faW5zaWRlLCBzZWxmLl9vdXRzaWRl KQorKyAgICAgICAgc2VsZi5fbW92ZShzZWxmLl9pbnNpZGUsIHNlbGYuX291dHNpZGUpCisgICAg ICAgICByZXR1cm4gYml0c2V0X2lzZW1wdHkoc2VsZi5fb3V0c2lkZSkKKyAKKyAgICAgY2RlZiBf X21vdmVfY3VycmVudF9iYXNpcyhzZWxmLCBiaXRzZXRfdCBYLCBiaXRzZXRfdCBZKToKK0BAIC00 NDMsMjEgKzQ0MywyMSBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQp OgorICAgICAgICAgIiIiCisgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9pbnNpZGUs IHNlbGYuX2N1cnJlbnRfYmFzaXMsIFgpCisgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxm Ll9vdXRzaWRlLCBYLCBzZWxmLl9jdXJyZW50X2Jhc2lzKQorLSAgICAgICAgc2VsZi5fX21vdmUo c2VsZi5faW5zaWRlLCBzZWxmLl9vdXRzaWRlKQorKyAgICAgICAgc2VsZi5fbW92ZShzZWxmLl9p bnNpZGUsIHNlbGYuX291dHNpZGUpCisgICAgICAgICBiaXRzZXRfaW50ZXJzZWN0aW9uKHNlbGYu X2luc2lkZSwgc2VsZi5fY3VycmVudF9iYXNpcywgWSkKKyAgICAgICAgIGJpdHNldF9jb21wbGVt ZW50KHNlbGYuX291dHNpZGUsIHNlbGYuX2N1cnJlbnRfYmFzaXMpCisgICAgICAgICBiaXRzZXRf ZGlmZmVyZW5jZShzZWxmLl9vdXRzaWRlLCBzZWxmLl9vdXRzaWRlLCBZKQorLSAgICAgICAgc2Vs Zi5fX21vdmUoc2VsZi5faW5zaWRlLCBzZWxmLl9vdXRzaWRlKQorKyAgICAgICAgc2VsZi5fbW92 ZShzZWxmLl9pbnNpZGUsIHNlbGYuX291dHNpZGUpCisgCisgICAgICMgZnVuY3Rpb25zIGZvciBk ZXJpdmVkIGNsYXNzZXMgYW5kIGZvciBwYXJlbnQgY2xhc3MKKyAgICAgY2RlZiBiaW50IF9zZXRf Y3VycmVudF9iYXNpcyhzZWxmLCBGKToKKyAgICAgICAgICIiIgorICAgICAgICAgU2V0IF9jdXJy ZW50X2Jhc2lzIHRvIHN1YnNldCBvZiB0aGUgZ3JvdW5kc2V0IGBgRmBgLgorICAgICAgICAgIiIi CistICAgICAgICBzZWxmLl9fcGFjayhzZWxmLl9pbnB1dCwgRikKKysgICAgICAgIHNlbGYuX3Bh Y2soc2VsZi5faW5wdXQsIEYpCisgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9pbnNp ZGUsIHNlbGYuX2N1cnJlbnRfYmFzaXMsIHNlbGYuX2lucHV0KQorICAgICAgICAgYml0c2V0X2Rp ZmZlcmVuY2Uoc2VsZi5fb3V0c2lkZSwgc2VsZi5faW5wdXQsIHNlbGYuX2N1cnJlbnRfYmFzaXMp CistICAgICAgICBzZWxmLl9fbW92ZShzZWxmLl9pbnNpZGUsIHNlbGYuX291dHNpZGUpCisrICAg ICAgICBzZWxmLl9tb3ZlKHNlbGYuX2luc2lkZSwgc2VsZi5fb3V0c2lkZSkKKyAgICAgICAgIHJl dHVybiBiaXRzZXRfaXNlbXB0eShzZWxmLl9vdXRzaWRlKSBhbmQgYml0c2V0X2lzZW1wdHkoc2Vs Zi5faW5zaWRlKQorIAorICAgICAjIGdyb3VuZHNldCBhbmQgZnVsbF9yYW5rCitAQCAtNjMwLDgg KzYzMCw4IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAg ICAgICAgICAgWydiJywgJ2MnLCAnZScsICdmJ10KKyAKKyAgICAgICAgICIiIgorLSAgICAgICAg c2VsZi5fX3BhY2soc2VsZi5faW5wdXQsIFgpCistICAgICAgICBzZWxmLl9fcGFjayhzZWxmLl9p bnB1dDIsIFkpCisrICAgICAgICBzZWxmLl9wYWNrKHNlbGYuX2lucHV0LCBYKQorKyAgICAgICAg c2VsZi5fcGFjayhzZWxmLl9pbnB1dDIsIFkpCisgICAgICAgICBzZWxmLl9fbW92ZV9jdXJyZW50 X2Jhc2lzKHNlbGYuX2lucHV0LCBzZWxmLl9pbnB1dDIpCisgCisgICAgIGNwZGVmIF9tYXhfaW5k ZXBlbmRlbnQoc2VsZiwgRik6CitAQCAtNjYxLDcgKzY2MSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNF eGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAgICAgc2VlIDptZXRoOmA8c2FnZS5t YXRyb2lkcy5tYXRyb2lkLk1hdHJvaWQubWF4X2luZGVwZW5kZW50PmAuCisgCisgICAgICAgICAi IiIKKy0gICAgICAgIHNlbGYuX19wYWNrKHNlbGYuX2lucHV0LCBGKQorKyAgICAgICAgc2VsZi5f cGFjayhzZWxmLl9pbnB1dCwgRikKKyAgICAgICAgIHNlbGYuX19tYXhfaW5kZXBlbmRlbnQoc2Vs Zi5fb3V0cHV0LCBzZWxmLl9pbnB1dCkKKyAgICAgICAgIHJldHVybiBzZWxmLl9fdW5wYWNrKHNl bGYuX291dHB1dCkKKyAKK0BAIC02OTIsNyArNjkyLDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hh bmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAgICBzZWUgOm1ldGg6YDxzYWdlLm1hdHJv aWRzLm1hdHJvaWQuTWF0cm9pZC5yYW5rPmAuCisgCisgICAgICAgICAiIiIKKy0gICAgICAgIHNl bGYuX19wYWNrKHNlbGYuX2lucHV0LCBGKQorKyAgICAgICAgc2VsZi5fcGFjayhzZWxmLl9pbnB1 dCwgRikKKyAgICAgICAgIHNlbGYuX19tYXhfaW5kZXBlbmRlbnQoc2VsZi5fb3V0cHV0LCBzZWxm Ll9pbnB1dCkKKyAgICAgICAgIHJldHVybiBiaXRzZXRfbGVuKHNlbGYuX291dHB1dCkKKyAKK0BA IC03MjksNyArNzI5LDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lk KToKKyAgICAgICAgICAgICB0aGUgaW5wdXQgaXMgaW5kZWVkIGEgc3Vic2V0IG9mIHRoZSBncm91 bmQgc2V0LAorICAgICAgICAgICAgIHNlZSA6bWV0aDpgPHNhZ2UubWF0cm9pZHMubWF0cm9pZC5N YXRyb2lkLmNpcmN1aXQ+YC4KKyAgICAgICAgICIiIgorLSAgICAgICAgc2VsZi5fX3BhY2soc2Vs Zi5faW5wdXQsIEYpCisrICAgICAgICBzZWxmLl9wYWNrKHNlbGYuX2lucHV0LCBGKQorICAgICAg ICAgc2VsZi5fX2NpcmN1aXQoc2VsZi5fb3V0cHV0LCBzZWxmLl9pbnB1dCkKKyAgICAgICAgIHJl dHVybiBzZWxmLl9fdW5wYWNrKHNlbGYuX291dHB1dCkKKyAKK0BAIC03NTQsNyArNzU0LDcgQEAg Y2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAgICBz YWdlOiBzb3J0ZWQoTS5fZnVuZGFtZW50YWxfY2lyY3VpdCgnYWJjZCcsICdlJykpCisgICAgICAg ICAgICAgWydhJywgJ2InLCAnYycsICdlJ10KKyAgICAgICAgICIiIgorLSAgICAgICAgc2VsZi5f X3BhY2soc2VsZi5faW5wdXQsIEIpCisrICAgICAgICBzZWxmLl9wYWNrKHNlbGYuX2lucHV0LCBC KQorICAgICAgICAgYml0c2V0X2NsZWFyKHNlbGYuX2lucHV0MikKKyAgICAgICAgIHNlbGYuX19t b3ZlX2N1cnJlbnRfYmFzaXMoc2VsZi5faW5wdXQsIHNlbGYuX2lucHV0MikKKyAgICAgICAgIHNl bGYuX19mdW5kYW1lbnRhbF9jaXJjdWl0KHNlbGYuX291dHB1dCwgc2VsZi5faWR4W2VdKQorQEAg LTc4Nyw3ICs3ODcsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQp OgorICAgICAgICAgICAgIDptZXRoOmA8c2FnZS5tYXRyb2lkcy5tYXRyb2lkLk1hdHJvaWQuY2xv c3VyZT5gLgorIAorICAgICAgICAgIiIiCistICAgICAgICBzZWxmLl9fcGFjayhzZWxmLl9pbnB1 dCwgRikKKysgICAgICAgIHNlbGYuX3BhY2soc2VsZi5faW5wdXQsIEYpCisgICAgICAgICBzZWxm Ll9fY2xvc3VyZShzZWxmLl9vdXRwdXQsIHNlbGYuX2lucHV0KQorICAgICAgICAgcmV0dXJuIHNl bGYuX191bnBhY2soc2VsZi5fb3V0cHV0KQorIAorQEAgLTgxOCw3ICs4MTgsNyBAQCBjZGVmIGNs YXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgICAgIHNlZSA6bWV0 aDpgPHNhZ2UubWF0cm9pZHMubWF0cm9pZC5NYXRyb2lkLm1heF9jb2luZGVwZW5kZW50PmAuCisg CisgICAgICAgICAiIiIKKy0gICAgICAgIHNlbGYuX19wYWNrKHNlbGYuX2lucHV0LCBGKQorKyAg ICAgICAgc2VsZi5fcGFjayhzZWxmLl9pbnB1dCwgRikKKyAgICAgICAgIHNlbGYuX19tYXhfY29p bmRlcGVuZGVudChzZWxmLl9vdXRwdXQsIHNlbGYuX2lucHV0KQorICAgICAgICAgcmV0dXJuIHNl bGYuX191bnBhY2soc2VsZi5fb3V0cHV0KQorIAorQEAgLTg0OCw3ICs4NDgsNyBAQCBjZGVmIGNs YXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgICAgIGlucHV0IGlz IGluZGVlZCBhIHN1YnNldCBvZiB0aGUgZ3JvdW5kIHNldCwKKyAgICAgICAgICAgICBzZWUgOm1l dGg6YDxzYWdlLm1hdHJvaWRzLm1hdHJvaWQuTWF0cm9pZC5jb3Jhbms+YC4KKyAgICAgICAgICIi IgorLSAgICAgICAgc2VsZi5fX3BhY2soc2VsZi5faW5wdXQsIEYpCisrICAgICAgICBzZWxmLl9w YWNrKHNlbGYuX2lucHV0LCBGKQorICAgICAgICAgc2VsZi5fX21heF9jb2luZGVwZW5kZW50KHNl bGYuX291dHB1dCwgc2VsZi5faW5wdXQpCisgICAgICAgICByZXR1cm4gYml0c2V0X2xlbihzZWxm Ll9vdXRwdXQpCisgCitAQCAtODg1LDcgKzg4NSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5n ZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAgICAgaW5wdXQgaXMgaW5kZWVkIGEgc3Vic2V0 IG9mIHRoZSBncm91bmQgc2V0LAorICAgICAgICAgICAgIHNlZSA6bWV0aDpgPHNhZ2UubWF0cm9p ZHMubWF0cm9pZC5NYXRyb2lkLmNvY2lyY3VpdD5gLgorICAgICAgICAgIiIiCistICAgICAgICBz ZWxmLl9fcGFjayhzZWxmLl9pbnB1dCwgRikKKysgICAgICAgIHNlbGYuX3BhY2soc2VsZi5faW5w dXQsIEYpCisgICAgICAgICBzZWxmLl9fY29jaXJjdWl0KHNlbGYuX291dHB1dCwgc2VsZi5faW5w dXQpCisgICAgICAgICByZXR1cm4gc2VsZi5fX3VucGFjayhzZWxmLl9vdXRwdXQpCisgCitAQCAt OTEwLDcgKzkxMCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6 CisgICAgICAgICAgICAgc2FnZTogc29ydGVkKE0uX2Z1bmRhbWVudGFsX2NvY2lyY3VpdCgnZWZn aCcsICdlJykpCisgICAgICAgICAgICAgWydiJywgJ2MnLCAnZCcsICdlJ10KKyAgICAgICAgICIi IgorLSAgICAgICAgc2VsZi5fX3BhY2soc2VsZi5faW5wdXQsIEIpCisrICAgICAgICBzZWxmLl9w YWNrKHNlbGYuX2lucHV0LCBCKQorICAgICAgICAgYml0c2V0X2NsZWFyKHNlbGYuX2lucHV0MikK KyAgICAgICAgIHNlbGYuX19tb3ZlX2N1cnJlbnRfYmFzaXMoc2VsZi5faW5wdXQsIHNlbGYuX2lu cHV0MikKKyAgICAgICAgIHNlbGYuX19mdW5kYW1lbnRhbF9jb2NpcmN1aXQoc2VsZi5fb3V0cHV0 LCBzZWxmLl9pZHhbZV0pCitAQCAtOTQzLDggKzk0Myw4IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNo YW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAgICAgc2VlIDptZXRoOmA8c2FnZS5tYXRy b2lkcy5tYXRyb2lkLk1hdHJvaWQuY29jbG9zdXJlPmAuCisgCisgICAgICAgICAiIiIKKy0gICAg ICAgIHNlbGYuX19wYWNrKHNlbGYuX2lucHV0LCBGKQorLSAgICAgICAgc2VsZi5fX2NvY2xvc3Vy ZShzZWxmLl9vdXRwdXQsIHNlbGYuX2lucHV0KQorKyAgICAgICAgc2VsZi5fcGFjayhzZWxmLl9p bnB1dCwgRikKKysgICAgICAgIHNlbGYuX2NvY2xvc3VyZV9pbnRlcm5hbChzZWxmLl9vdXRwdXQs IHNlbGYuX2lucHV0KQorICAgICAgICAgcmV0dXJuIHNlbGYuX191bnBhY2soc2VsZi5fb3V0cHV0 KQorIAorICAgICBjcGRlZiBfYXVnbWVudChzZWxmLCBYLCBZKToKK0BAIC05NzMsOCArOTczLDgg QEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAg ICBbJ2UnLCAnZicsICdnJ10KKyAKKyAgICAgICAgICIiIgorLSAgICAgICAgc2VsZi5fX3BhY2so c2VsZi5faW5wdXQsIFgpCistICAgICAgICBzZWxmLl9fcGFjayhzZWxmLl9pbnB1dDIsIFkpCisr ICAgICAgICBzZWxmLl9wYWNrKHNlbGYuX2lucHV0LCBYKQorKyAgICAgICAgc2VsZi5fcGFjayhz ZWxmLl9pbnB1dDIsIFkpCisgICAgICAgICBzZWxmLl9fYXVnbWVudChzZWxmLl9vdXRwdXQsIHNl bGYuX2lucHV0LCBzZWxmLl9pbnB1dDIpCisgICAgICAgICByZXR1cm4gc2VsZi5fX3VucGFjayhz ZWxmLl9vdXRwdXQpCisgCitAQCAtMTAwNiw3ICsxMDA2LDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4 Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAgICB0aGUgaW5wdXQgaXMgaW5kZWVk IGEgc3Vic2V0IG9mIHRoZSBncm91bmQgc2V0LAorICAgICAgICAgICAgIHNlZSA6bWV0aDpgPHNh Z2UubWF0cm9pZHMubWF0cm9pZC5NYXRyb2lkLmlzX2luZGVwZW5kZW50PmAuCisgICAgICAgICAi IiIKKy0gICAgICAgIHNlbGYuX19wYWNrKHNlbGYuX2lucHV0LCBGKQorKyAgICAgICAgc2VsZi5f cGFjayhzZWxmLl9pbnB1dCwgRikKKyAgICAgICAgIHJldHVybiBzZWxmLl9faXNfaW5kZXBlbmRl bnQoc2VsZi5faW5wdXQpCisgCisgICAgICMgY29ubmVjdGl2aXR5CitAQCAtMTE0Miw4ICsxMTQy LDggQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAg IGNkZWYgYml0c2V0X3QgU1MsIFRUCisgICAgICAgICBiaXRzZXRfaW5pdChTUywgc2VsZi5fZ3Jv dW5kc2V0X3NpemUpCisgICAgICAgICBiaXRzZXRfaW5pdChUVCwgc2VsZi5fZ3JvdW5kc2V0X3Np emUpCistICAgICAgICBzZWxmLl9fcGFjayhTUyxTKQorLSAgICAgICAgc2VsZi5fX3BhY2soVFQs VCkKKysgICAgICAgIHNlbGYuX3BhY2soU1MsUykKKysgICAgICAgIHNlbGYuX3BhY2soVFQsVCkK KyAgICAgICAgICNGID0gc2V0KHNlbGYuZ3JvdW5kc2V0KCkpIC0gKFMgfCBUKQorICAgICAgICAg Y2RlZiBiaXRzZXRfdCBGLCBJCisgICAgICAgICBiaXRzZXRfaW5pdChGLCBzZWxmLl9ncm91bmRz ZXRfc2l6ZSkKK0BAIC0xNDIxLDcgKzE0MjEsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VN YXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgUmNvZmxhdHMgPSBTZXRTeXN0ZW0oc2VsZi5fRSkK KyAgICAgICAgIGkgPSAwCisgICAgICAgICBiaXRzZXRfY2xlYXIodG9kb1swXSkKKy0gICAgICAg IHNlbGYuX19jb2Nsb3N1cmUoY29mbGF0c1swXSwgdG9kb1swXSkKKysgICAgICAgIHNlbGYuX2Nv Y2xvc3VyZV9pbnRlcm5hbChjb2ZsYXRzWzBdLCB0b2RvWzBdKQorICAgICAgICAgYml0c2V0X2Nv bXBsZW1lbnQodG9kb1swXSwgY29mbGF0c1swXSkKKyAgICAgICAgIHNlbGYuX2NvZmxhdHNfcmVj KFJjb2ZsYXRzLCByLCBjb2ZsYXRzLCB0b2RvLCAwLCAwKQorICAgICAgICAgZm9yIGkgaW4gcmFu Z2UociArIDEpOgorQEAgLTE0NDMsNyArMTQ0Myw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5n ZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICB3aGlsZSBlID49IDA6CisgICAgICAgICAgICAg Yml0c2V0X2NvcHkoc2VsZi5faW5wdXQsIGNvZmxhdHNbaV0pCisgICAgICAgICAgICAgYml0c2V0 X2FkZChzZWxmLl9pbnB1dCwgZSkKKy0gICAgICAgICAgICBzZWxmLl9fY29jbG9zdXJlKGNvZmxh dHNbaSArIDFdLCBzZWxmLl9pbnB1dCkKKysgICAgICAgICAgICBzZWxmLl9jb2Nsb3N1cmVfaW50 ZXJuYWwoY29mbGF0c1tpICsgMV0sIHNlbGYuX2lucHV0KQorICAgICAgICAgICAgIGJpdHNldF9k aWZmZXJlbmNlKHRvZG9baV0sIHRvZG9baV0sIGNvZmxhdHNbaSArIDFdKQorICAgICAgICAgICAg IGJpdHNldF9kaWZmZXJlbmNlKHRvZG9baSArIDFdLCBjb2ZsYXRzW2kgKyAxXSwgY29mbGF0c1tp XSkKKyAgICAgICAgICAgICBpZiBiaXRzZXRfZmlyc3QodG9kb1tpICsgMV0pID09IGU6CitAQCAt MjM5Nyw3ICsyMzk3LDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lk KToKKyAgICAgICAgICAgICAgICAgIyBTZXQgY3VycmVudCBiYXNpcyB0byBZCisgICAgICAgICAg ICAgICAgIGJpdHNldF9kaWZmZXJlbmNlKHNlbGYuX2luc2lkZSwgc2VsZi5fY3VycmVudF9iYXNp cywgQkIuX3N1YnNldHNbcG9pbnRlclldKQorICAgICAgICAgICAgICAgICBiaXRzZXRfZGlmZmVy ZW5jZShzZWxmLl9vdXRzaWRlLCBCQi5fc3Vic2V0c1twb2ludGVyWV0sIHNlbGYuX2N1cnJlbnRf YmFzaXMpCistICAgICAgICAgICAgICAgIHNlbGYuX19tb3ZlKHNlbGYuX2luc2lkZSwgc2VsZi5f b3V0c2lkZSkKKysgICAgICAgICAgICAgICAgc2VsZi5fbW92ZShzZWxmLl9pbnNpZGUsIHNlbGYu X291dHNpZGUpCisgICAgICAgICAgICAgICAgIGlmIG5vdCBiaXRzZXRfZXEoc2VsZi5fY3VycmVu dF9iYXNpcywgQkIuX3N1YnNldHNbcG9pbnRlclldKToKKyAgICAgICAgICAgICAgICAgICAgICMg V2UgZmFpbGVkIHRvIHNldCB0aGUgY3VycmVudCBiYXNpcyB0byBZIHRocm91Z2ggYmFzaXMgZXhj aGFuZ2VzLgorICAgICAgICAgICAgICAgICAgICAgIyBUaGVyZWZvcmUsIHRoZSBleGNoYW5nZSBh eGlvbXMgYXJlIHZpb2xhdGVkIQorQEAgLTI0MDksNyArMjQwOSw3IEBAIGNkZWYgY2xhc3MgQmFz aXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAgICAgICAgICAgICBmb3VuZHBh aXIgPSBGYWxzZQorICAgICAgICAgICAgICAgICAgICAgeSA9IGJpdHNldF9maXJzdChzZWxmLl9p bnB1dDIpCisgICAgICAgICAgICAgICAgICAgICB3aGlsZSB5ID49IDA6ICAjIGZvciB5IGluIFkt WAorLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuX19pc19leGNoYW5nZV9wYWlyKHks IHgpOgorKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuX2lzX2V4Y2hhbmdlX3BhaXIo eSwgeCk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvdW5kcGFpciA9IFRydWUKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgeSA9IC0xCisgICAgICAgICAgICAgICAgICAgICAg ICAgZWxzZToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyb2lkcy9iYXNpc19tYXRyb2lkLnB5 eCBiL3NyYy9zYWdlL21hdHJvaWRzL2Jhc2lzX21hdHJvaWQucHl4CitpbmRleCAzYWM0MzExMjYy Ny4uYzFiNmU5YjA0YzggMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyb2lkcy9iYXNpc19tYXRy b2lkLnB5eAorKysrIGIvc3JjL3NhZ2UvbWF0cm9pZHMvYmFzaXNfbWF0cm9pZC5weXgKK0BAIC0y MTksNyArMjE5LDcgQEAgY2RlZiBjbGFzcyBCYXNpc01hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJv aWQpOgorICAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiYmFzaXMgaGFzIHdy b25nIGNhcmRpbmFsaXR5LiIpCisgICAgICAgICAgICAgICAgIGlmIG5vdCBiLmlzc3Vic2V0KHNl bGYuX2dyb3VuZHNldCk6CisgICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJi YXNpcyBpcyBub3QgYSBzdWJzZXQgb2YgdGhlIGdyb3VuZHNldCIpCistICAgICAgICAgICAgICAg IHNlbGYuX19wYWNrKHNlbGYuX2IsIGIpCisrICAgICAgICAgICAgICAgIHNlbGYuX3BhY2soc2Vs Zi5fYiwgYikKKyAgICAgICAgICAgICAgICAgaSA9IHNldF90b19pbmRleChzZWxmLl9iKQorICAg ICAgICAgICAgICAgICBpZiBub3QgYml0c2V0X2luKHNlbGYuX2JiLCBpKToKKyAgICAgICAgICAg ICAgICAgICAgIHNlbGYuX2Jjb3VudCArPSAxCitAQCAtMjM0LDcgKzIzNCw3IEBAIGNkZWYgY2xh c3MgQmFzaXNNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgICAgICAgICAg ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJub25iYXNpcyBoYXMgd3JvbmcgY2FyZGluYWxpdHki KQorICAgICAgICAgICAgICAgICAgICAgaWYgbm90IGIuaXNzdWJzZXQoc2VsZi5fZ3JvdW5kc2V0 KToKKyAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJub25iYXNpcyBp cyBub3QgYSBzdWJzZXQgb2YgdGhlIGdyb3VuZHNldCIpCistICAgICAgICAgICAgICAgICAgICBz ZWxmLl9fcGFjayhzZWxmLl9iLCBiKQorKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGFjayhz ZWxmLl9iLCBiKQorICAgICAgICAgICAgICAgICAgICAgaSA9IHNldF90b19pbmRleChzZWxmLl9i KQorICAgICAgICAgICAgICAgICAgICAgaWYgYml0c2V0X2luKHNlbGYuX2JiLCBpKToKKyAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLl9iY291bnQgLT0gMQorQEAgLTI2Myw3ICsyNjMsNyBA QCBjZGVmIGNsYXNzIEJhc2lzTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgCisgICAg ICMgc3VwcG9ydCBmb3IgcGFyZW50IEJhc2lzRXhjaGFuZ2VNYXRyb2lkCisgCistICAgIGNkZWYg YmludCBfX2lzX2V4Y2hhbmdlX3BhaXIoc2VsZiwgbG9uZyB4LCBsb25nIHkpIGV4Y2VwdCAtMTog ICAgICAjIHRlc3QgaWYgY3VycmVudF9iYXNpcy14ICsgeSBpcyBhIGJhc2lzCisrICAgIGNkZWYg YmludCBfaXNfZXhjaGFuZ2VfcGFpcihzZWxmLCBsb25nIHgsIGxvbmcgeSkgZXhjZXB0IC0xOiAg ICAgICMgdGVzdCBpZiBjdXJyZW50X2Jhc2lzLXggKyB5IGlzIGEgYmFzaXMKKyAgICAgICAgICIi IgorICAgICAgICAgVGVzdCBpZiBgQi1lICsgZmAgaXMgYSBiYXNpcyBvZiB0aGUgY3VycmVudCBt YXRyb2lkLgorIAorQEAgLTMyNiw3ICszMjYsNyBAQCBjZGVmIGNsYXNzIEJhc2lzTWF0cm9pZChC YXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgICAgICAgICAgc2FnZTogTS5faXNfYmFzaXMoc2V0 KFsnYScsICdiJywgJ2MnLCAnZCddKSkKKyAgICAgICAgICAgICBGYWxzZQorICAgICAgICAgIiIi CistICAgICAgICBzZWxmLl9fcGFjayhzZWxmLl9iLCBYKQorKyAgICAgICAgc2VsZi5fcGFjayhz ZWxmLl9iLCBYKQorICAgICAgICAgcmV0dXJuIGJpdHNldF9pbihzZWxmLl9iYiwgc2V0X3RvX2lu ZGV4KHNlbGYuX2IpKQorIAorICAgICAjIGR1YWwgYW5kIG1pbm9ycworQEAgLTU1Nyw3ICs1NTcs NyBAQCBjZGVmIGNsYXNzIEJhc2lzTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgCisg ICAgICAgICAiIiIKKyAgICAgICAgIE0gPSBCYXNpc01hdHJvaWQoTT1zZWxmKQorLSAgICAgICAg TS5fX3JlbGFiZWwobCkKKysgICAgICAgIE0uX3JlbGFiZWwobCkKKyAgICAgICAgIHJldHVybiBN CisgCisgICAgICMgZW51bWVyYXRpb24KK0BAIC0xMTc3LDcgKzExNzcsNyBAQCBjZGVmIGNsYXNz IEJhc2lzTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgCisgICAgICAgICAiIiIKKyAg ICAgICAgIE4gPSBCYXNpc01hdHJvaWQoTT1zZWxmKQorLSAgICAgICAgTi5yZW5hbWUoZ2V0YXR0 cihzZWxmLCAnX19jdXN0b21fbmFtZScpKQorKyAgICAgICAgTi5yZW5hbWUoc2VsZi5nZXRfY3Vz dG9tX25hbWUoKSkKKyAgICAgICAgIHJldHVybiBOCisgCisgICAgIGRlZiBfX2RlZXBjb3B5X18o c2VsZiwgbWVtbz1Ob25lKToKK0BAIC0xMjAxLDcgKzEyMDEsNyBAQCBjZGVmIGNsYXNzIEJhc2lz TWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgICAgICBpZiBtZW1vIGlzIE5vbmU6 CisgICAgICAgICAgICAgbWVtbyA9IHt9CisgICAgICAgICBOID0gQmFzaXNNYXRyb2lkKE09c2Vs ZikKKy0gICAgICAgIE4ucmVuYW1lKGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSkKKysg ICAgICAgIE4ucmVuYW1lKHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCkpCisgICAgICAgICByZXR1cm4g TgorIAorICAgICBkZWYgX19yZWR1Y2VfXyhzZWxmKToKK0BAIC0xMjMwLDcgKzEyMzAsNyBAQCBj ZGVmIGNsYXNzIEJhc2lzTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgICAgICAi IiIKKyAgICAgICAgIGltcG9ydCBzYWdlLm1hdHJvaWRzLnVucGlja2xpbmcKKyAgICAgICAgIEJC ID0gYml0c2V0X3BpY2tsZShzZWxmLl9iYikKKy0gICAgICAgIGRhdGEgPSAoc2VsZi5fRSwgc2Vs Zi5fbWF0cm9pZF9yYW5rLCBnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJyksIEJCKQorKyAg ICAgICAgZGF0YSA9IChzZWxmLl9FLCBzZWxmLl9tYXRyb2lkX3JhbmssIHNlbGYuZ2V0X2N1c3Rv bV9uYW1lKCksIEJCKQorICAgICAgICAgdmVyc2lvbiA9IDAKKyAgICAgICAgIHJldHVybiBzYWdl Lm1hdHJvaWRzLnVucGlja2xpbmcudW5waWNrbGVfYmFzaXNfbWF0cm9pZCwgKHZlcnNpb24sIGRh dGEpCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cm9pZHMvY2lyY3VpdF9jbG9zdXJlc19t YXRyb2lkLnB5eCBiL3NyYy9zYWdlL21hdHJvaWRzL2NpcmN1aXRfY2xvc3VyZXNfbWF0cm9pZC5w eXgKK2luZGV4IDQwMjgyMmIyZGM2Li40ZTc5YjA1NzVlMiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L21hdHJvaWRzL2NpcmN1aXRfY2xvc3VyZXNfbWF0cm9pZC5weXgKKysrKyBiL3NyYy9zYWdlL21h dHJvaWRzL2NpcmN1aXRfY2xvc3VyZXNfbWF0cm9pZC5weXgKK0BAIC01MTMsOCArNTEzLDcgQEAg Y2RlZiBjbGFzcyBDaXJjdWl0Q2xvc3VyZXNNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgTi5f Z3JvdW5kc2V0ID0gc2VsZi5fZ3JvdW5kc2V0CisgICAgICAgICBOLl9jaXJjdWl0X2Nsb3N1cmVz ID0gc2VsZi5fY2lyY3VpdF9jbG9zdXJlcworICAgICAgICAgTi5fbWF0cm9pZF9yYW5rID0gc2Vs Zi5fbWF0cm9pZF9yYW5rCistICAgICAgICBpZiBnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1l JykgaXMgbm90IE5vbmU6ICAjIGJlY2F1c2Ugb2YgbmFtZSB3cmFuZ2xpbmcsIHRoaXMgaXMgbm90 IGNhdWdodCBieSB0aGUgZGVmYXVsdCBjb3B5CistICAgICAgICAgICAgTi5yZW5hbWUoZ2V0YXR0 cihzZWxmLCAnX19jdXN0b21fbmFtZScpKQorKyAgICAgICAgTi5yZW5hbWUoc2VsZi5nZXRfY3Vz dG9tX25hbWUoKSkKKyAgICAgICAgIHJldHVybiBOCisgCisgICAgIGRlZiBfX2RlZXBjb3B5X18o c2VsZiwgbWVtbz1Ob25lKToKK0BAIC01MzksOCArNTM4LDcgQEAgY2RlZiBjbGFzcyBDaXJjdWl0 Q2xvc3VyZXNNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgZnJvbSBjb3B5IGltcG9ydCBkZWVw Y29weQorICAgICAgICAgIyBTaW5jZSBtYXRyb2lkcyBhcmUgaW1tdXRhYmxlLCBOIGNhbm5vdCBy ZWZlcmVuY2UgaXRzZWxmIGluIGNvcnJlY3QgY29kZSwgc28gbm8gbmVlZCB0byB3b3JyeSBhYm91 dCB0aGUgcmVjdXJzaW9uLgorICAgICAgICAgTiA9IENpcmN1aXRDbG9zdXJlc01hdHJvaWQoZ3Jv dW5kc2V0PWRlZXBjb3B5KHNlbGYuX2dyb3VuZHNldCwgbWVtbyksIGNpcmN1aXRfY2xvc3VyZXM9 ZGVlcGNvcHkoc2VsZi5fY2lyY3VpdF9jbG9zdXJlcywgbWVtbykpCistICAgICAgICBpZiBnZXRh dHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJykgaXMgbm90IE5vbmU6ICAjIGJlY2F1c2Ugb2YgbmFt ZSB3cmFuZ2xpbmcsIHRoaXMgaXMgbm90IGNhdWdodCBieSB0aGUgZGVmYXVsdCBkZWVwY29weQor LSAgICAgICAgICAgIE4ucmVuYW1lKGRlZXBjb3B5KGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25h bWUnKSwgbWVtbykpCisrICAgICAgICBOLnJlbmFtZShkZWVwY29weShzZWxmLmdldF9jdXN0b21f bmFtZSgpLCBtZW1vKSkKKyAgICAgICAgIHJldHVybiBOCisgCisgICAgIGRlZiBfX3JlZHVjZV9f KHNlbGYpOgorQEAgLTU3MCw3ICs1NjgsNyBAQCBjZGVmIGNsYXNzIENpcmN1aXRDbG9zdXJlc01h dHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAgICAgIDQ6IHt7J2EnLCAnYicsICdjJywgJ2QnLCAn ZScsICdmJywgJ2cnLCAnaCd9fX0KKyAgICAgICAgICIiIgorICAgICAgICAgaW1wb3J0IHNhZ2Uu bWF0cm9pZHMudW5waWNrbGluZworLSAgICAgICAgZGF0YSA9IChzZWxmLl9ncm91bmRzZXQsIHNl bGYuX2NpcmN1aXRfY2xvc3VyZXMsIGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSkKKysg ICAgICAgIGRhdGEgPSAoc2VsZi5fZ3JvdW5kc2V0LCBzZWxmLl9jaXJjdWl0X2Nsb3N1cmVzLCBz ZWxmLmdldF9jdXN0b21fbmFtZSgpKQorICAgICAgICAgdmVyc2lvbiA9IDAKKyAgICAgICAgIHJl dHVybiBzYWdlLm1hdHJvaWRzLnVucGlja2xpbmcudW5waWNrbGVfY2lyY3VpdF9jbG9zdXJlc19t YXRyb2lkLCAodmVyc2lvbiwgZGF0YSkKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyb2lk cy9kdWFsX21hdHJvaWQucHkgYi9zcmMvc2FnZS9tYXRyb2lkcy9kdWFsX21hdHJvaWQucHkKK2lu ZGV4IDgwNGU0M2YwMzViLi5kYTY2Mzk4MjdlNCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJv aWRzL2R1YWxfbWF0cm9pZC5weQorKysrIGIvc3JjL3NhZ2UvbWF0cm9pZHMvZHVhbF9tYXRyb2lk LnB5CitAQCAtNTE5LDkgKzUxOSw3IEBAIGRlZiBfX2NvcHlfXyhzZWxmKToKKyAKKyAgICAgICAg ICIiIgorICAgICAgICAgTiA9IER1YWxNYXRyb2lkKHNlbGYuX21hdHJvaWQpCistICAgICAgICBp ZiBnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJykgaXMgbm90IE5vbmU6CistICAgICAgICAg ICAgIyBiZWNhdXNlIG9mIG5hbWUgd3JhbmdsaW5nLCB0aGlzIGlzIG5vdCBjYXVnaHQgYnkgdGhl IGRlZmF1bHQgY29weQorLSAgICAgICAgICAgIE4ucmVuYW1lKGdldGF0dHIoc2VsZiwgJ19fY3Vz dG9tX25hbWUnKSkKKysgICAgICAgIE4ucmVuYW1lKHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCkpCisg ICAgICAgICByZXR1cm4gTgorIAorICAgICBkZWYgX19kZWVwY29weV9fKHNlbGYsIG1lbW89e30p OgorQEAgLTU0MywxMCArNTQxLDcgQEAgZGVmIF9fZGVlcGNvcHlfXyhzZWxmLCBtZW1vPXt9KToK KyAgICAgICAgICIiIgorICAgICAgICAgZnJvbSBjb3B5IGltcG9ydCBkZWVwY29weQorICAgICAg ICAgTiA9IER1YWxNYXRyb2lkKGRlZXBjb3B5KHNlbGYuX21hdHJvaWQsIG1lbW8pKQorLSAgICAg ICAgaWYgZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpIGlzIG5vdCBOb25lOgorLSAgICAg ICAgICAgICMgYmVjYXVzZSBvZiBuYW1lIHdyYW5nbGluZywgdGhpcyBpcyBub3QgY2F1Z2h0IGJ5 IHRoZQorLSAgICAgICAgICAgICMgZGVmYXVsdCBkZWVwY29weQorLSAgICAgICAgICAgIE4ucmVu YW1lKGRlZXBjb3B5KGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSwgbWVtbykpCisrICAg ICAgICBOLnJlbmFtZShkZWVwY29weShzZWxmLmdldF9jdXN0b21fbmFtZSgpLCBtZW1vKSkKKyAg ICAgICAgIHJldHVybiBOCisgCisgICAgIGRlZiBfX3JlZHVjZV9fKHNlbGYpOgorQEAgLTU3NSw2 ICs1NzAsNiBAQCBkZWYgX19yZWR1Y2VfXyhzZWxmKToKKyAgICAgICAgICAgICAgNDoge3snYScs ICdiJywgJ2MnLCAnZCcsICdlJywgJ2YnLCAnZycsICdoJ319fScKKyAgICAgICAgICIiIgorICAg ICAgICAgaW1wb3J0IHNhZ2UubWF0cm9pZHMudW5waWNrbGluZworLSAgICAgICAgZGF0YSA9IChz ZWxmLl9tYXRyb2lkLCBnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJykpCisrICAgICAgICBk YXRhID0gKHNlbGYuX21hdHJvaWQsIHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCkpCisgICAgICAgICB2 ZXJzaW9uID0gMAorICAgICAgICAgcmV0dXJuIHNhZ2UubWF0cm9pZHMudW5waWNrbGluZy51bnBp Y2tsZV9kdWFsX21hdHJvaWQsICh2ZXJzaW9uLCBkYXRhKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L21hdHJvaWRzL2dyYXBoaWNfbWF0cm9pZC5weSBiL3NyYy9zYWdlL21hdHJvaWRzL2dyYXBoaWNf bWF0cm9pZC5weQoraW5kZXggNTIxNmVmMTE1MTcuLmM3MjdkYzU0ZTUyIDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvbWF0cm9pZHMvZ3JhcGhpY19tYXRyb2lkLnB5CisrKysgYi9zcmMvc2FnZS9tYXRy b2lkcy9ncmFwaGljX21hdHJvaWQucHkKK0BAIC00ODEsOCArNDgxLDcgQEAgZGVmIF9fY29weV9f KHNlbGYpOgorICAgICAgICAgICAgIEZhbHNlCisgICAgICAgICAiIiIKKyAgICAgICAgIE4gPSBH cmFwaGljTWF0cm9pZChzZWxmLl9HKQorLSAgICAgICAgaWYgZ2V0YXR0cihzZWxmLCAnX19jdXN0 b21fbmFtZScpIGlzIG5vdCBOb25lOiAgIyBiZWNhdXNlIG9mIG5hbWUgd3JhbmdsaW5nLCB0aGlz IGlzIG5vdCBjYXVnaHQgYnkgdGhlIGRlZmF1bHQgY29weQorLSAgICAgICAgICAgIE4ucmVuYW1l KGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSkKKysgICAgICAgIE4ucmVuYW1lKHNlbGYu Z2V0X2N1c3RvbV9uYW1lKCkpCisgICAgICAgICByZXR1cm4gTgorIAorICAgICBkZWYgX19kZWVw Y29weV9fKHNlbGYsIG1lbW89e30pOgorQEAgLTUwMiw4ICs1MDEsNyBAQCBkZWYgX19kZWVwY29w eV9fKHNlbGYsIG1lbW89e30pOgorICAgICAgICAgIiIiCisgICAgICAgICAjIFRoZSBvbmx5IHJl YWwgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgYW5kIF9fY29weV9fKCkgaXMgdGhlIG1lbW8KKyAg ICAgICAgIE4gPSBHcmFwaGljTWF0cm9pZChkZWVwY29weShzZWxmLl9HLCBtZW1vKSkKKy0gICAg ICAgIGlmIGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSBpcyBub3QgTm9uZTogICMgYmVj YXVzZSBvZiBuYW1lIHdyYW5nbGluZywgdGhpcyBpcyBub3QgY2F1Z2h0IGJ5IHRoZSBkZWZhdWx0 IGRlZXBjb3B5CistICAgICAgICAgICAgTi5yZW5hbWUoZGVlcGNvcHkoZ2V0YXR0cihzZWxmLCAn X19jdXN0b21fbmFtZScpLCBtZW1vKSkKKysgICAgICAgIE4ucmVuYW1lKGRlZXBjb3B5KHNlbGYu Z2V0X2N1c3RvbV9uYW1lKCksIG1lbW8pKQorICAgICAgICAgcmV0dXJuIE4KKyAKKyAgICAgZGVm IF9fcmVkdWNlX18oc2VsZik6CitAQCAtNTE5LDcgKzUxNyw3IEBAIGRlZiBfX3JlZHVjZV9fKHNl bGYpOgorICAgICAgICAgICAgIEdyYXBoaWMgbWF0cm9pZCBvZiByYW5rIDkgb24gMTUgZWxlbWVu dHMKKyAgICAgICAgICIiIgorICAgICAgICAgZnJvbSAudW5waWNrbGluZyBpbXBvcnQgdW5waWNr bGVfZ3JhcGhpY19tYXRyb2lkCistICAgICAgICBkYXRhID0gKHNlbGYuX0csIGdldGF0dHIoc2Vs ZiwgJ19fY3VzdG9tX25hbWUnKSkKKysgICAgICAgIGRhdGEgPSAoc2VsZi5fRywgc2VsZi5nZXRf Y3VzdG9tX25hbWUoKSkKKyAgICAgICAgIHZlcnNpb24gPSAwCisgICAgICAgICByZXR1cm4gdW5w aWNrbGVfZ3JhcGhpY19tYXRyb2lkLCAodmVyc2lvbiwgZGF0YSkKKyAKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9tYXRyb2lkcy9saW5lYXJfbWF0cm9pZC5weGQgYi9zcmMvc2FnZS9tYXRyb2lkcy9s aW5lYXJfbWF0cm9pZC5weGQKK2luZGV4IDAxNGM4YWVmNTdkLi45YWViZDQ0NmI2OCAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL21hdHJvaWRzL2xpbmVhcl9tYXRyb2lkLnB4ZAorKysrIGIvc3JjL3Nh Z2UvbWF0cm9pZHMvbGluZWFyX21hdHJvaWQucHhkCitAQCAtMTUsNyArMTUsNyBAQCBjZGVmIGNs YXNzIExpbmVhck1hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICBjcGRlZiBjaGFy YWN0ZXJpc3RpYyhzZWxmKQorIAorICAgICBjZGVmIGxpc3QgX3NldHVwX2ludGVybmFsX3JlcHJl c2VudGF0aW9uKHNlbGYsIG1hdHJpeCwgcmVkdWNlZF9tYXRyaXgsIHJpbmcsIGtlZXBfaW5pdGlh bF9yZXByZXNlbnRhdGlvbikKKy0gICAgY2RlZiBfX2V4Y2hhbmdlX3ZhbHVlKHNlbGYsIGxvbmcg eCwgbG9uZyB5KQorKyAgICBjZGVmIF9leGNoYW5nZV92YWx1ZV9pbnRlcm5hbChzZWxmLCBsb25n IHgsIGxvbmcgeSkKKyAKKyAgICAgY3BkZWYgcmVwcmVzZW50YXRpb24oc2VsZiwgQj0qLCByZWR1 Y2VkPSosIGxhYmVscz0qLCBvcmRlcj0qLCBsaWZ0X21hcD0qKQorICAgICBjcGRlZiBfY3VycmVu dF9yb3dzX2NvbHMoc2VsZiwgQj0qKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJvaWRzL2xp bmVhcl9tYXRyb2lkLnB5eCBiL3NyYy9zYWdlL21hdHJvaWRzL2xpbmVhcl9tYXRyb2lkLnB5eAor aW5kZXggNjE0NTJlODBjNDguLjM2ZjU2M2FhNDMzIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0 cm9pZHMvbGluZWFyX21hdHJvaWQucHl4CisrKysgYi9zcmMvc2FnZS9tYXRyb2lkcy9saW5lYXJf bWF0cm9pZC5weXgKK0BAIC0zOTEsMTMgKzM5MSwxMyBAQCBjZGVmIGNsYXNzIExpbmVhck1hdHJv aWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4g Y2hhcmFjdGVyaXN0aWMoc2VsZi5fQSkKKyAKKy0gICAgY2RlZiBiaW50IF9faXNfZXhjaGFuZ2Vf cGFpcihzZWxmLCBsb25nIHgsIGxvbmcgeSkgZXhjZXB0IC0xOgorKyAgICBjZGVmIGJpbnQgX2lz X2V4Y2hhbmdlX3BhaXIoc2VsZiwgbG9uZyB4LCBsb25nIHkpIGV4Y2VwdCAtMToKKyAgICAgICAg IHIiIiIKKyAgICAgICAgIENoZWNrIGlmIGBgc2VsZi5iYXNpcygpIC0geCArIHlgYCBpcyBhZ2Fp biBhIGJhc2lzLiBJbnRlcm5hbCBtZXRob2QuCisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVy biBzZWxmLl9BLmlzX25vbnplcm8oc2VsZi5fcHJvd1t4XSwgc2VsZi5fcHJvd1t5XSkKKyAKKy0g ICAgY2RlZiBpbnQgX19leGNoYW5nZShzZWxmLCBsb25nIHgsIGxvbmcgeSkgZXhjZXB0IC0xOgor KyAgICBjZGVmIGludCBfZXhjaGFuZ2Uoc2VsZiwgbG9uZyB4LCBsb25nIHkpIGV4Y2VwdCAtMToK KyAgICAgICAgICIiIgorICAgICAgICAgUHV0IGVsZW1lbnQgaW5kZXhlZCBieSBgYHhgYCBpbnRv IGJhc2lzLCB0YWtpbmcgb3V0IGVsZW1lbnQgYGB5YGAuCisgICAgICAgICBBc3N1bXB0aW9ucyBh cmUgdGhhdCB0aGlzIGlzIGEgdmFsaWQgYmFzaXMgZXhjaGFuZ2UuCitAQCAtNDIwLDkgKzQyMCw5 IEBAIGNkZWYgY2xhc3MgTGluZWFyTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAg ICAgICBzZWxmLl9BLnNldF91bnNhZmUocHgsIHB5LCBwaXZpKQorICAgICAgICAgc2VsZi5fcHJv d1t5XSA9IHB4CisgICAgICAgICBzZWxmLl9wcm93W3hdID0gcHkKKy0gICAgICAgIEJhc2lzRXhj aGFuZ2VNYXRyb2lkLl9fZXhjaGFuZ2Uoc2VsZiwgeCwgeSkKKysgICAgICAgIEJhc2lzRXhjaGFu Z2VNYXRyb2lkLl9leGNoYW5nZShzZWxmLCB4LCB5KQorIAorLSAgICBjZGVmICBfX2V4Y2hhbmdl X3ZhbHVlKHNlbGYsIGxvbmcgeCwgbG9uZyB5KToKKysgICAgY2RlZiAgX2V4Y2hhbmdlX3ZhbHVl X2ludGVybmFsKHNlbGYsIGxvbmcgeCwgbG9uZyB5KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAg IFJldHVybiB0aGUgKHgsIHkpIGVudHJ5IG9mIHRoZSBjdXJyZW50IHJlcHJlc2VudGF0aW9uLgor ICAgICAgICAgIiIiCitAQCAtNjA1LDcgKzYwNSw3IEBAIGNkZWYgY2xhc3MgTGluZWFyTWF0cm9p ZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZXBy ZXNlbnRhdGlvbiA9IHNlbGYuX2Jhc2ljX3JlcHJlc2VudGF0aW9uKEIpCisgICAgICAgICAgICAg ICAgIEEgPSBzZWxmLl9yZXByZXNlbnRhdGlvbgorICAgICAgICAgICAgIGVsc2U6CistICAgICAg ICAgICAgICAgIEIgPSBzZWxmLl9fc3Vic2V0KEIpCisrICAgICAgICAgICAgICAgIEIgPSBzZWxm Ll9zdWJzZXRfaW50ZXJuYWwoQikKKyAgICAgICAgICAgICAgICAgQSA9IHNlbGYuX2Jhc2ljX3Jl cHJlc2VudGF0aW9uKEIpCisgICAgICAgICAgICAgQSA9IEEubWF0cml4X2Zyb21fcm93c19hbmRf Y29sdW1ucyhyYW5nZShBLm5yb3dzKCkpLCBvcmRlcl9pZHgpCisgICAgICAgICAgICAgaWYgbGlm dF9tYXAgaXMgTm9uZToKK0BAIC02MjIsNyArNjIyLDcgQEAgY2RlZiBjbGFzcyBMaW5lYXJNYXRy b2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgICAgICBpZiBCIGlzIE5vbmU6Cisg ICAgICAgICAgICAgICAgIEIgPSBmcm96ZW5zZXQoc2VsZi5iYXNpcygpKQorICAgICAgICAgICAg IGVsc2U6CistICAgICAgICAgICAgICAgIEIgPSBzZWxmLl9fc3Vic2V0KEIpCisrICAgICAgICAg ICAgICAgIEIgPSBzZWxmLl9zdWJzZXRfaW50ZXJuYWwoQikKKyAgICAgICAgICAgICBBID0gc2Vs Zi5fcmVkdWNlZF9yZXByZXNlbnRhdGlvbihCKQorICAgICAgICAgICAgIFIsIEMgPSBzZWxmLl9j dXJyZW50X3Jvd3NfY29scygpCisgICAgICAgICAgICAgUmkgPSBbXQorQEAgLTE0OTMsNyArMTQ5 Myw3IEBAIGNkZWYgY2xhc3MgTGluZWFyTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6Cisg ICAgICAgICAgICAgc2FnZTogTS5fZXhjaGFuZ2VfdmFsdWUoMSwgMykKKyAgICAgICAgICAgICA0 CisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBzZWxmLl9fZXhjaGFuZ2VfdmFsdWUoc2Vs Zi5faWR4W2VdLCBzZWxmLl9pZHhbZl0pCisrICAgICAgICByZXR1cm4gc2VsZi5fZXhjaGFuZ2Vf dmFsdWVfaW50ZXJuYWwoc2VsZi5faWR4W2VdLCBzZWxmLl9pZHhbZl0pCisgCisgICAgIGNwZGVm IGZ1bmRhbWVudGFsX2N5Y2xlKHNlbGYsIEIsIGUpOgorICAgICAgICAgIiIiCitAQCAtMjkwOSw3 ICsyOTA5LDcgQEAgY2RlZiBjbGFzcyBMaW5lYXJNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lk KToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcm93cywgY29scyA9IHNlbGYuX2N1cnJl bnRfcm93c19jb2xzKCkKKyAgICAgICAgICAgICBOID0gTGluZWFyTWF0cm9pZChncm91bmRzZXQ9 cm93cyArIGNvbHMsIHJlZHVjZWRfbWF0cml4PXNlbGYuX0EpCistICAgICAgICBOLnJlbmFtZShn ZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJykpCisrICAgICAgICBOLnJlbmFtZShzZWxmLmdl dF9jdXN0b21fbmFtZSgpKQorICAgICAgICAgcmV0dXJuIE4KKyAKKyAgICAgZGVmIF9fZGVlcGNv cHlfXyhzZWxmLCBtZW1vKToKK0BAIC0yOTMwLDcgKzI5MzAsNyBAQCBjZGVmIGNsYXNzIExpbmVh ck1hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgZWxzZToKKyAgICAgICAg ICAgICByb3dzLCBjb2xzID0gc2VsZi5fY3VycmVudF9yb3dzX2NvbHMoKQorICAgICAgICAgICAg IE4gPSBMaW5lYXJNYXRyb2lkKGdyb3VuZHNldD1kZWVwY29weShyb3dzICsgY29scywgbWVtbyks IHJlZHVjZWRfbWF0cml4PWRlZXBjb3B5KHNlbGYuX0EsIG1lbW8pKQorLSAgICAgICAgTi5yZW5h bWUoZGVlcGNvcHkoZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpLCBtZW1vKSkKKysgICAg ICAgIE4ucmVuYW1lKGRlZXBjb3B5KHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCksIG1lbW8pKQorICAg ICAgICAgcmV0dXJuIE4KKyAKKyAgICAgZGVmIF9fcmVkdWNlX18oc2VsZik6CitAQCAtMjk3OSw3 ICsyOTc5LDcgQEAgY2RlZiBjbGFzcyBMaW5lYXJNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lk KToKKyAgICAgICAgICAgICByb3dzLCBjb2xzID0gc2VsZi5fY3VycmVudF9yb3dzX2NvbHMoKQor ICAgICAgICAgICAgIGdzID0gcm93cyArIGNvbHMKKyAgICAgICAgICAgICByZWR1Y2VkID0gVHJ1 ZQorLSAgICAgICAgZGF0YSA9IChBLCBncywgcmVkdWNlZCwgZ2V0YXR0cihzZWxmLCAnX19jdXN0 b21fbmFtZScpKQorKyAgICAgICAgZGF0YSA9IChBLCBncywgcmVkdWNlZCwgc2VsZi5nZXRfY3Vz dG9tX25hbWUoKSkKKyAgICAgICAgIHJldHVybiBzYWdlLm1hdHJvaWRzLnVucGlja2xpbmcudW5w aWNrbGVfbGluZWFyX21hdHJvaWQsICh2ZXJzaW9uLCBkYXRhKQorIAorICMgQmluYXJ5IG1hdHJv aWQKK0BAIC0zMTUyLDIwICszMTUyLDIwIEBAIGNkZWYgY2xhc3MgQmluYXJ5TWF0cm9pZChMaW5l YXJNYXRyb2lkKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIDIKKyAKKy0gICAgY2Rl ZiBiaW50IF9faXNfZXhjaGFuZ2VfcGFpcihzZWxmLCBsb25nIHgsIGxvbmcgeSkgZXhjZXB0IC0x OgorKyAgICBjZGVmIGJpbnQgX2lzX2V4Y2hhbmdlX3BhaXIoc2VsZiwgbG9uZyB4LCBsb25nIHkp IGV4Y2VwdCAtMToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIENoZWNrIGlmIGBgc2VsZi5iYXNp cygpIC0geCArIHlgYCBpcyBhZ2FpbiBhIGJhc2lzLiBJbnRlcm5hbCBtZXRob2QuCisgICAgICAg ICAiIiIKKyAgICAgICAgIHJldHVybiAoPEJpbmFyeU1hdHJpeD5zZWxmLl9BKS5pc19ub256ZXJv KHNlbGYuX3Byb3dbeF0sIHkpCisgCistICAgIGNkZWYgaW50IF9fZXhjaGFuZ2Uoc2VsZiwgbG9u ZyB4LCBsb25nIHkpIGV4Y2VwdCAtMToKKysgICAgY2RlZiBpbnQgX2V4Y2hhbmdlKHNlbGYsIGxv bmcgeCwgbG9uZyB5KSBleGNlcHQgLTE6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXBsYWNl IGBgc2VsZi5iYXNpcygpIHdpdGggYGBzZWxmLmJhc2lzKCkgLSB4ICsgeWBgLiBJbnRlcm5hbCBt ZXRob2QsIGRvZXMgbm8gY2hlY2tzLgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIGxvbmcg cCA9IHNlbGYuX3Byb3dbeF0KKyAgICAgICAgIHNlbGYuX0EucGl2b3QocCwgeSkgICAjIE5vdCBh IFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorICAgICAgICAgc2VsZi5fcHJvd1t5XSA9IHAKKy0gICAg ICAgIEJhc2lzRXhjaGFuZ2VNYXRyb2lkLl9fZXhjaGFuZ2Uoc2VsZiwgeCwgeSkKKysgICAgICAg IEJhc2lzRXhjaGFuZ2VNYXRyb2lkLl9leGNoYW5nZShzZWxmLCB4LCB5KQorIAorICAgICBjZGVm ICBfX2Z1bmRhbWVudGFsX2NvY2lyY3VpdChzZWxmLCBiaXRzZXRfdCBDLCBsb25nIHgpOgorICAg ICAgICAgciIiIgorQEAgLTMxNzMsMTggKzMxNzMsMTggQEAgY2RlZiBjbGFzcyBCaW5hcnlNYXRy b2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgIiIiCisgICAgICAgICBiaXRzZXRfY29weShD LCAoPEJpbmFyeU1hdHJpeD5zZWxmLl9BKS5fTVtzZWxmLl9wcm93W3hdXSkKKyAKKy0gICAgY2Rl ZiBfX2NvY2xvc3VyZShzZWxmLCBiaXRzZXRfdCBSLCBiaXRzZXRfdCBGKToKKysgICAgY2RlZiBf Y29jbG9zdXJlX2ludGVybmFsKHNlbGYsIGJpdHNldF90IFIsIGJpdHNldF90IEYpOgorICAgICAg ICAgIiIiCisgICAgICAgICBCaXRwYWNrZWQgdmVyc2lvbiBvZiBgYGNvY2xvc3VyZWBgLgorIAor LSAgICAgICAgVGhpcyBmdW5jdGlvbiBvdmVycmlkZXMgdGhlIGludGVybmFsIGZ1bmN0aW9uIEJh c2lzRXhjaGFuZ2VNYXRyb2lkLl9fY29jbG9zdXJlKCkgb2YgdGhlIHBhcmVudCBjbGFzcy4KKysg ICAgICAgIFRoaXMgZnVuY3Rpb24gb3ZlcnJpZGVzIHRoZSBpbnRlcm5hbCBmdW5jdGlvbiBCYXNp c0V4Y2hhbmdlTWF0cm9pZC5fY29jbG9zdXJlX2ludGVybmFsKCkgb2YgdGhlIHBhcmVudCBjbGFz cy4KKyAgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBzaG91bGQgYmUgbW9yZSBlZmZpY2llbnQg Zm9yIEJpbmFyeU1hdHJvaWQsIGR1ZSB0byB0aGUgZmFjdCB0aGF0IGluIHRoaXMgY2xhc3MsCisg ICAgICAgICBfX2Z1bmRhbWVudGFsX2NvY2lyY3VpdCBpcyBtdWNoIGZhc3RlciB0aGFuIF9fZnVu ZGFtZW50YWxfY2lyY3VpdC4KKyAgICAgICAgICIiIgorICAgICAgICAgYml0c2V0X2NvbXBsZW1l bnQoUiwgRikKKyAgICAgICAgIGJpdHNldF9kaWZmZXJlbmNlKHNlbGYuX2luc2lkZSwgc2VsZi5f Y3VycmVudF9iYXNpcywgUikKKyAgICAgICAgIGJpdHNldF9kaWZmZXJlbmNlKHNlbGYuX291dHNp ZGUsIFIsIHNlbGYuX2N1cnJlbnRfYmFzaXMpCistICAgICAgICBzZWxmLl9fbW92ZShzZWxmLl9p bnNpZGUsIHNlbGYuX291dHNpZGUpCisrICAgICAgICBzZWxmLl9tb3ZlKHNlbGYuX2luc2lkZSwg c2VsZi5fb3V0c2lkZSkKKyAKKyAgICAgICAgIGJpdHNldF9jb3B5KFIsIEYpCisgICAgICAgICBi aXRzZXRfZGlmZmVyZW5jZShzZWxmLl9pbnNpZGUsIHNlbGYuX2N1cnJlbnRfYmFzaXMsIEYpCitA QCAtMzE5Niw3ICszMTk2LDcgQEAgY2RlZiBjbGFzcyBCaW5hcnlNYXRyb2lkKExpbmVhck1hdHJv aWQpOgorICAgICAgICAgICAgICAgICBiaXRzZXRfYWRkKFIsIHkpCisgICAgICAgICAgICAgeSA9 IGJpdHNldF9uZXh0KHNlbGYuX2luc2lkZSwgeSArIDEpCisgCistICAgIGNkZWYgIF9fZXhjaGFu Z2VfdmFsdWUoc2VsZiwgbG9uZyB4LCBsb25nIHkpOgorKyAgICBjZGVmICBfZXhjaGFuZ2VfdmFs dWVfaW50ZXJuYWwoc2VsZiwgbG9uZyB4LCBsb25nIHkpOgorICAgICAgICAgciIiIgorICAgICAg ICAgUmV0dXJuIHRoZSAoeCwgeSkgZW50cnkgb2YgdGhlIGN1cnJlbnQgcmVwcmVzZW50YXRpb24u CisgICAgICAgICAiIiIKK0BAIC0zOTY0LDcgKzM5NjQsNyBAQCBjZGVmIGNsYXNzIEJpbmFyeU1h dHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAgICAgZm9yIGUgaW4gc2VsZi5iYXNpcygp OgorICAgICAgICAgICAgICAgICBiYXNpc1tzZWxmLl9wcm93W3NlbGYuX2lkeFtlXV1dID0gZQor ICAgICAgICAgICAgIE4gPSBCaW5hcnlNYXRyb2lkKGdyb3VuZHNldD1zZWxmLl9FLCBtYXRyaXg9 c2VsZi5fQSwgYmFzaXM9YmFzaXMpCistICAgICAgICBOLnJlbmFtZShnZXRhdHRyKHNlbGYsICdf X2N1c3RvbV9uYW1lJykpCisrICAgICAgICBOLnJlbmFtZShzZWxmLmdldF9jdXN0b21fbmFtZSgp KQorICAgICAgICAgcmV0dXJuIE4KKyAKKyAgICAgZGVmIF9fZGVlcGNvcHlfXyhzZWxmLCBtZW1v KToKK0BAIC0zOTg5LDcgKzM5ODksNyBAQCBjZGVmIGNsYXNzIEJpbmFyeU1hdHJvaWQoTGluZWFy TWF0cm9pZCk6CisgICAgICAgICAgICAgZm9yIGUgaW4gc2VsZi5iYXNpcygpOgorICAgICAgICAg ICAgICAgICBiYXNpc1tzZWxmLl9wcm93W3NlbGYuX2lkeFtlXV1dID0gZQorICAgICAgICAgICAg IE4gPSBCaW5hcnlNYXRyb2lkKGdyb3VuZHNldD1kZWVwY29weShzZWxmLl9FLCBtZW1vKSwgbWF0 cml4PWRlZXBjb3B5KHNlbGYuX0EsIG1lbW8pLCBiYXNpcz1kZWVwY29weShiYXNpcywgbWVtbykp CistICAgICAgICBOLnJlbmFtZShkZWVwY29weShnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1l JyksIG1lbW8pKQorKyAgICAgICAgTi5yZW5hbWUoZGVlcGNvcHkoc2VsZi5nZXRfY3VzdG9tX25h bWUoKSwgbWVtbykpCisgICAgICAgICByZXR1cm4gTgorIAorICAgICBkZWYgX19yZWR1Y2VfXyhz ZWxmKToKK0BAIC00MDQ3LDcgKzQwNDcsNyBAQCBjZGVmIGNsYXNzIEJpbmFyeU1hdHJvaWQoTGlu ZWFyTWF0cm9pZCk6CisgICAgICAgICAgICAgQSA9IHNlbGYuX0EKKyAgICAgICAgICAgICAjIGN1 cnJlbnQgYmFzaXMgb3JkZXJlZCBzbyBtYXRyaXggY29scyBmb3JtIGlkZW50aXR5IG1hdHJpeDoK KyAgICAgICAgICAgICBiYXNpcyA9IHNlbGYuX2N1cnJlbnRfcm93c19jb2xzKClbMF0KKy0gICAg ICAgIGRhdGEgPSAoQSwgZ3MsIGJhc2lzLCBnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJykp CisrICAgICAgICBkYXRhID0gKEEsIGdzLCBiYXNpcywgc2VsZi5nZXRfY3VzdG9tX25hbWUoKSkK KyAgICAgICAgIHJldHVybiBzYWdlLm1hdHJvaWRzLnVucGlja2xpbmcudW5waWNrbGVfYmluYXJ5 X21hdHJvaWQsICh2ZXJzaW9uLCBkYXRhKQorIAorIGNkZWYgY2xhc3MgVGVybmFyeU1hdHJvaWQo TGluZWFyTWF0cm9pZCk6CitAQCAtNDIyMCwyMCArNDIyMCwyMCBAQCBjZGVmIGNsYXNzIFRlcm5h cnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4g MworIAorLSAgICBjZGVmIGJpbnQgX19pc19leGNoYW5nZV9wYWlyKHNlbGYsIGxvbmcgeCwgbG9u ZyB5KSBleGNlcHQgLTE6CisrICAgIGNkZWYgYmludCBfaXNfZXhjaGFuZ2VfcGFpcihzZWxmLCBs b25nIHgsIGxvbmcgeSkgZXhjZXB0IC0xOgorICAgICAgICAgciIiIgorICAgICAgICAgQ2hlY2sg aWYgYGBzZWxmLmJhc2lzKCkgLSB4ICsgeWBgIGlzIGFnYWluIGEgYmFzaXMuIEludGVybmFsIG1l dGhvZC4KKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuICg8VGVybmFyeU1hdHJpeD5zZWxm Ll9BKS5pc19ub256ZXJvKHNlbGYuX3Byb3dbeF0sIHkpCisgCistICAgIGNkZWYgaW50IF9fZXhj aGFuZ2Uoc2VsZiwgbG9uZyB4LCBsb25nIHkpIGV4Y2VwdCAtMToKKysgICAgY2RlZiBpbnQgX2V4 Y2hhbmdlKHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBleGNlcHQgLTE6CisgICAgICAgICByIiIiCisg ICAgICAgICBSZXBsYWNlIGBgc2VsZi5iYXNpcygpIHdpdGggYGBzZWxmLmJhc2lzKCkgLSB4ICsg eWBgLiBJbnRlcm5hbCBtZXRob2QsIGRvZXMgbm8gY2hlY2tzLgorICAgICAgICAgIiIiCisgICAg ICAgICBjZGVmIGxvbmcgcCA9IHNlbGYuX3Byb3dbeF0KKyAgICAgICAgIHNlbGYuX0EucGl2b3Qo cCwgeSkgICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorICAgICAgICAgc2VsZi5fcHJv d1t5XSA9IHAKKy0gICAgICAgIEJhc2lzRXhjaGFuZ2VNYXRyb2lkLl9fZXhjaGFuZ2Uoc2VsZiwg eCwgeSkKKysgICAgICAgIEJhc2lzRXhjaGFuZ2VNYXRyb2lkLl9leGNoYW5nZShzZWxmLCB4LCB5 KQorIAorICAgICBjZGVmICBfX2Z1bmRhbWVudGFsX2NvY2lyY3VpdChzZWxmLCBiaXRzZXRfdCBD LCBsb25nIHgpOgorICAgICAgICAgciIiIgorQEAgLTQyNDEsMTggKzQyNDEsMTggQEAgY2RlZiBj bGFzcyBUZXJuYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgICIiIgorICAgICAg ICAgYml0c2V0X2NvcHkoQywgKDxUZXJuYXJ5TWF0cml4PnNlbGYuX0EpLl9NMFtzZWxmLl9wcm93 W3hdXSkKKyAKKy0gICAgY2RlZiBfX2NvY2xvc3VyZShzZWxmLCBiaXRzZXRfdCBSLCBiaXRzZXRf dCBGKToKKysgICAgY2RlZiBfY29jbG9zdXJlX2ludGVybmFsKHNlbGYsIGJpdHNldF90IFIsIGJp dHNldF90IEYpOgorICAgICAgICAgIiIiCisgICAgICAgICBCaXRwYWNrZWQgdmVyc2lvbiBvZiBg YGNvY2xvc3VyZWBgLgorIAorLSAgICAgICAgVGhpcyBmdW5jdGlvbiBvdmVycmlkZXMgdGhlIGlu dGVybmFsIGZ1bmN0aW9uIEJhc2lzRXhjaGFuZ2VNYXRyb2lkLl9fY29jbG9zdXJlKCkgb2YgdGhl IHBhcmVudCBjbGFzcy4KKysgICAgICAgIFRoaXMgZnVuY3Rpb24gb3ZlcnJpZGVzIHRoZSBpbnRl cm5hbCBmdW5jdGlvbiBCYXNpc0V4Y2hhbmdlTWF0cm9pZC5fY29jbG9zdXJlX2ludGVybmFsKCkg b2YgdGhlIHBhcmVudCBjbGFzcy4KKyAgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBzaG91bGQg YmUgbW9yZSBlZmZpY2llbnQgZm9yIFRlcm5hcnlNYXRyb2lkLCBkdWUgdG8gdGhlIGZhY3QgdGhh dCBpbiB0aGlzIGNsYXNzLAorICAgICAgICAgX19mdW5kYW1lbnRhbF9jb2NpcmN1aXQgaXMgbXVj aCBmYXN0ZXIgdGhhbiBfX2Z1bmRhbWVudGFsX2NpcmN1aXQuCisgICAgICAgICAiIiIKKyAgICAg ICAgIGJpdHNldF9jb21wbGVtZW50KFIsIEYpCisgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShz ZWxmLl9pbnNpZGUsIHNlbGYuX2N1cnJlbnRfYmFzaXMsIFIpCisgICAgICAgICBiaXRzZXRfZGlm ZmVyZW5jZShzZWxmLl9vdXRzaWRlLCBSLCBzZWxmLl9jdXJyZW50X2Jhc2lzKQorLSAgICAgICAg c2VsZi5fX21vdmUoc2VsZi5faW5zaWRlLCBzZWxmLl9vdXRzaWRlKQorKyAgICAgICAgc2VsZi5f bW92ZShzZWxmLl9pbnNpZGUsIHNlbGYuX291dHNpZGUpCisgCisgICAgICAgICBiaXRzZXRfY29w eShSLCBGKQorICAgICAgICAgYml0c2V0X2RpZmZlcmVuY2Uoc2VsZi5faW5zaWRlLCBzZWxmLl9j dXJyZW50X2Jhc2lzLCBGKQorQEAgLTQyNjQsNyArNDI2NCw3IEBAIGNkZWYgY2xhc3MgVGVybmFy eU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAgICAgICAgIGJpdHNldF9hZGQoUiwg eSkKKyAgICAgICAgICAgICB5ID0gYml0c2V0X25leHQoc2VsZi5faW5zaWRlLCB5ICsgMSkKKyAK Ky0gICAgY2RlZiAgX19leGNoYW5nZV92YWx1ZShzZWxmLCBsb25nIHgsIGxvbmcgeSk6CisrICAg IGNkZWYgIF9leGNoYW5nZV92YWx1ZV9pbnRlcm5hbChzZWxmLCBsb25nIHgsIGxvbmcgeSk6Cisg ICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlICh4LCB5KSBlbnRyeSBvZiB0aGUgY3Vy cmVudCByZXByZXNlbnRhdGlvbi4KKyAgICAgICAgICIiIgorQEAgLTQ4NTgsNyArNDg1OCw3IEBA IGNkZWYgY2xhc3MgVGVybmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAgICAg Zm9yIGUgaW4gc2VsZi5iYXNpcygpOgorICAgICAgICAgICAgICAgICBiYXNpc1tzZWxmLl9wcm93 W3NlbGYuX2lkeFtlXV1dID0gZQorICAgICAgICAgICAgIE4gPSBUZXJuYXJ5TWF0cm9pZChncm91 bmRzZXQ9c2VsZi5fRSwgbWF0cml4PXNlbGYuX0EsIGJhc2lzPWJhc2lzKQorLSAgICAgICAgTi5y ZW5hbWUoZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpKQorKyAgICAgICAgTi5yZW5hbWUo c2VsZi5nZXRfY3VzdG9tX25hbWUoKSkKKyAgICAgICAgIHJldHVybiBOCisgCisgICAgIGRlZiBf X2RlZXBjb3B5X18oc2VsZiwgbWVtbyk6CitAQCAtNDg4Myw3ICs0ODgzLDcgQEAgY2RlZiBjbGFz cyBUZXJuYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgICAgICBmb3IgZSBpbiBz ZWxmLmJhc2lzKCk6CisgICAgICAgICAgICAgICAgIGJhc2lzW3NlbGYuX3Byb3dbc2VsZi5faWR4 W2VdXV0gPSBlCisgICAgICAgICAgICAgTiA9IFRlcm5hcnlNYXRyb2lkKGdyb3VuZHNldD1kZWVw Y29weShzZWxmLl9FLCBtZW1vKSwgbWF0cml4PWRlZXBjb3B5KHNlbGYuX0EsIG1lbW8pLCBiYXNp cz1kZWVwY29weShiYXNpcywgbWVtbykpCistICAgICAgICBOLnJlbmFtZShkZWVwY29weShnZXRh dHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJyksIG1lbW8pKQorKyAgICAgICAgTi5yZW5hbWUoZGVl cGNvcHkoc2VsZi5nZXRfY3VzdG9tX25hbWUoKSwgbWVtbykpCisgICAgICAgICByZXR1cm4gTgor IAorICAgICBkZWYgX19yZWR1Y2VfXyhzZWxmKToKK0BAIC00OTQ1LDcgKzQ5NDUsNyBAQCBjZGVm IGNsYXNzIFRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgICAgIEEgPSBz ZWxmLl9BCisgICAgICAgICAgICAgIyBjdXJyZW50IGJhc2lzIG9yZGVyZWQgc28gbWF0cml4IGNv bHMgZm9ybSBpZGVudGl0eSBtYXRyaXg6CisgICAgICAgICAgICAgYmFzaXMgPSBzZWxmLl9jdXJy ZW50X3Jvd3NfY29scygpWzBdCistICAgICAgICBkYXRhID0gKEEsIGdzLCBiYXNpcywgZ2V0YXR0 cihzZWxmLCAnX19jdXN0b21fbmFtZScpKQorKyAgICAgICAgZGF0YSA9IChBLCBncywgYmFzaXMs IHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCkpCisgICAgICAgICByZXR1cm4gc2FnZS5tYXRyb2lkcy51 bnBpY2tsaW5nLnVucGlja2xlX3Rlcm5hcnlfbWF0cm9pZCwgKHZlcnNpb24sIGRhdGEpCisgCisg IyBRdWF0ZXJuYXJ5IE1hdHJvaWRzCitAQCAtNTEyMiwyMCArNTEyMiwyMCBAQCBjZGVmIGNsYXNz IFF1YXRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgIiIiCisgICAgICAg ICByZXR1cm4gMgorIAorLSAgICBjZGVmIGJpbnQgX19pc19leGNoYW5nZV9wYWlyKHNlbGYsIGxv bmcgeCwgbG9uZyB5KSBleGNlcHQgLTE6CisrICAgIGNkZWYgYmludCBfaXNfZXhjaGFuZ2VfcGFp cihzZWxmLCBsb25nIHgsIGxvbmcgeSkgZXhjZXB0IC0xOgorICAgICAgICAgciIiIgorICAgICAg ICAgQ2hlY2sgaWYgYGBzZWxmLmJhc2lzKCkgLSB4ICsgeWBgIGlzIGFnYWluIGEgYmFzaXMuIElu dGVybmFsIG1ldGhvZC4KKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuICg8UXVhdGVybmFy eU1hdHJpeD5zZWxmLl9BKS5pc19ub256ZXJvKHNlbGYuX3Byb3dbeF0sIHkpCisgCistICAgIGNk ZWYgaW50IF9fZXhjaGFuZ2Uoc2VsZiwgbG9uZyB4LCBsb25nIHkpIGV4Y2VwdCAtMToKKysgICAg Y2RlZiBpbnQgX2V4Y2hhbmdlKHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBleGNlcHQgLTE6CisgICAg ICAgICByIiIiCisgICAgICAgICBSZXBsYWNlIGBgc2VsZi5iYXNpcygpIHdpdGggYGBzZWxmLmJh c2lzKCkgLSB4ICsgeWBgLiBJbnRlcm5hbCBtZXRob2QsIGRvZXMgbm8gY2hlY2tzLgorICAgICAg ICAgIiIiCisgICAgICAgICBjZGVmIGxvbmcgcCA9IHNlbGYuX3Byb3dbeF0KKyAgICAgICAgIHNl bGYuX0EucGl2b3QocCwgeSkgICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorICAgICAg ICAgc2VsZi5fcHJvd1t5XSA9IHAKKy0gICAgICAgIEJhc2lzRXhjaGFuZ2VNYXRyb2lkLl9fZXhj aGFuZ2Uoc2VsZiwgeCwgeSkKKysgICAgICAgIEJhc2lzRXhjaGFuZ2VNYXRyb2lkLl9leGNoYW5n ZShzZWxmLCB4LCB5KQorIAorICAgICBjZGVmICBfX2Z1bmRhbWVudGFsX2NvY2lyY3VpdChzZWxm LCBiaXRzZXRfdCBDLCBsb25nIHgpOgorICAgICAgICAgciIiIgorQEAgLTUxNDMsMTggKzUxNDMs MTggQEAgY2RlZiBjbGFzcyBRdWF0ZXJuYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAg ICAgICIiIgorICAgICAgICAgYml0c2V0X3VuaW9uKEMsICg8UXVhdGVybmFyeU1hdHJpeD5zZWxm Ll9BKS5fTTBbc2VsZi5fcHJvd1t4XV0sICg8UXVhdGVybmFyeU1hdHJpeD5zZWxmLl9BKS5fTTFb c2VsZi5fcHJvd1t4XV0pCisgCistICAgIGNkZWYgX19jb2Nsb3N1cmUoc2VsZiwgYml0c2V0X3Qg UiwgYml0c2V0X3QgRik6CisrICAgIGNkZWYgX2NvY2xvc3VyZV9pbnRlcm5hbChzZWxmLCBiaXRz ZXRfdCBSLCBiaXRzZXRfdCBGKToKKyAgICAgICAgICIiIgorICAgICAgICAgQml0cGFja2VkIHZl cnNpb24gb2YgYGBjb2Nsb3N1cmVgYC4KKyAKKy0gICAgICAgIFRoaXMgZnVuY3Rpb24gb3ZlcnJp ZGVzIHRoZSBpbnRlcm5hbCBmdW5jdGlvbiBCYXNpc0V4Y2hhbmdlTWF0cm9pZC5fX2NvY2xvc3Vy ZSgpIG9mIHRoZSBwYXJlbnQgY2xhc3MuCisrICAgICAgICBUaGlzIGZ1bmN0aW9uIG92ZXJyaWRl cyB0aGUgaW50ZXJuYWwgZnVuY3Rpb24gQmFzaXNFeGNoYW5nZU1hdHJvaWQuX2NvY2xvc3VyZV9p bnRlcm5hbCgpIG9mIHRoZSBwYXJlbnQgY2xhc3MuCisgICAgICAgICBUaGUgaW1wbGVtZW50YXRp b24gc2hvdWxkIGJlIG1vcmUgZWZmaWNpZW50IGZvciBRdWF0ZXJuYXJ5TWF0cm9pZCwgZHVlIHRv IHRoZSBmYWN0IHRoYXQgaW4gdGhpcyBjbGFzcywKKyAgICAgICAgIF9fZnVuZGFtZW50YWxfY29j aXJjdWl0IGlzIG11Y2ggZmFzdGVyIHRoYW4gX19mdW5kYW1lbnRhbF9jaXJjdWl0LgorICAgICAg ICAgIiIiCisgICAgICAgICBiaXRzZXRfY29tcGxlbWVudChSLCBGKQorICAgICAgICAgYml0c2V0 X2RpZmZlcmVuY2Uoc2VsZi5faW5zaWRlLCBzZWxmLl9jdXJyZW50X2Jhc2lzLCBSKQorICAgICAg ICAgYml0c2V0X2RpZmZlcmVuY2Uoc2VsZi5fb3V0c2lkZSwgUiwgc2VsZi5fY3VycmVudF9iYXNp cykKKy0gICAgICAgIHNlbGYuX19tb3ZlKHNlbGYuX2luc2lkZSwgc2VsZi5fb3V0c2lkZSkKKysg ICAgICAgIHNlbGYuX21vdmUoc2VsZi5faW5zaWRlLCBzZWxmLl9vdXRzaWRlKQorIAorICAgICAg ICAgYml0c2V0X2NvcHkoUiwgRikKKyAgICAgICAgIGJpdHNldF9kaWZmZXJlbmNlKHNlbGYuX2lu c2lkZSwgc2VsZi5fY3VycmVudF9iYXNpcywgRikKK0BAIC01MTY2LDcgKzUxNjYsNyBAQCBjZGVm IGNsYXNzIFF1YXRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgICAgICAg ICBiaXRzZXRfYWRkKFIsIHkpCisgICAgICAgICAgICAgeSA9IGJpdHNldF9uZXh0KHNlbGYuX2lu c2lkZSwgeSArIDEpCisgCistICAgIGNkZWYgIF9fZXhjaGFuZ2VfdmFsdWUoc2VsZiwgbG9uZyB4 LCBsb25nIHkpOgorKyAgICBjZGVmICBfZXhjaGFuZ2VfdmFsdWVfaW50ZXJuYWwoc2VsZiwgbG9u ZyB4LCBsb25nIHkpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSAoeCwgeSkg ZW50cnkgb2YgdGhlIGN1cnJlbnQgcmVwcmVzZW50YXRpb24uCisgICAgICAgICAiIiIKK0BAIC01 NTg5LDcgKzU1ODksNyBAQCBjZGVmIGNsYXNzIFF1YXRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJv aWQpOgorICAgICAgICAgICAgIGZvciBlIGluIHNlbGYuYmFzaXMoKToKKyAgICAgICAgICAgICAg ICAgYmFzaXNbc2VsZi5fcHJvd1tzZWxmLl9pZHhbZV1dXSA9IGUKKyAgICAgICAgICAgICBOID0g UXVhdGVybmFyeU1hdHJvaWQoZ3JvdW5kc2V0PXNlbGYuX0UsIG1hdHJpeD1zZWxmLl9BLCBiYXNp cz1iYXNpcykKKy0gICAgICAgIE4ucmVuYW1lKGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUn KSkKKysgICAgICAgIE4ucmVuYW1lKHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCkpCisgICAgICAgICBy ZXR1cm4gTgorIAorICAgICBkZWYgX19kZWVwY29weV9fKHNlbGYsIG1lbW8pOgorQEAgLTU2MTQs NyArNTYxNCw3IEBAIGNkZWYgY2xhc3MgUXVhdGVybmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6 CisgICAgICAgICAgICAgZm9yIGUgaW4gc2VsZi5iYXNpcygpOgorICAgICAgICAgICAgICAgICBi YXNpc1tzZWxmLl9wcm93W3NlbGYuX2lkeFtlXV1dID0gZQorICAgICAgICAgICAgIE4gPSBRdWF0 ZXJuYXJ5TWF0cm9pZChncm91bmRzZXQ9ZGVlcGNvcHkoc2VsZi5fRSwgbWVtbyksIG1hdHJpeD1k ZWVwY29weShzZWxmLl9BLCBtZW1vKSwgYmFzaXM9ZGVlcGNvcHkoYmFzaXMsIG1lbW8pKQorLSAg ICAgICAgTi5yZW5hbWUoZGVlcGNvcHkoZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpLCBt ZW1vKSkKKysgICAgICAgIE4ucmVuYW1lKGRlZXBjb3B5KHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCks IG1lbW8pKQorICAgICAgICAgcmV0dXJuIE4KKyAKKyAgICAgZGVmIF9fcmVkdWNlX18oc2VsZik6 CitAQCAtNTY3Miw3ICs1NjcyLDcgQEAgY2RlZiBjbGFzcyBRdWF0ZXJuYXJ5TWF0cm9pZChMaW5l YXJNYXRyb2lkKToKKyAgICAgICAgICAgICBBID0gc2VsZi5fQQorICAgICAgICAgICAgICMgY3Vy cmVudCBiYXNpcyBvcmRlcmVkIHNvIG1hdHJpeCBjb2xzIGZvcm0gaWRlbnRpdHkgbWF0cml4Ogor ICAgICAgICAgICAgIGJhc2lzID0gc2VsZi5fY3VycmVudF9yb3dzX2NvbHMoKVswXQorLSAgICAg ICAgZGF0YSA9IChBLCBncywgYmFzaXMsIGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSkK KysgICAgICAgIGRhdGEgPSAoQSwgZ3MsIGJhc2lzLCBzZWxmLmdldF9jdXN0b21fbmFtZSgpKQor ICAgICAgICAgcmV0dXJuIHNhZ2UubWF0cm9pZHMudW5waWNrbGluZy51bnBpY2tsZV9xdWF0ZXJu YXJ5X21hdHJvaWQsICh2ZXJzaW9uLCBkYXRhKQorIAorICMgUmVndWxhciBNYXRyb2lkcworQEAg LTU4MzgsMTMgKzU4MzgsMTMgQEAgY2RlZiBjbGFzcyBSZWd1bGFyTWF0cm9pZChMaW5lYXJNYXRy b2lkKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIDAKKyAKKy0gICAgY2RlZiBiaW50 IF9faXNfZXhjaGFuZ2VfcGFpcihzZWxmLCBsb25nIHgsIGxvbmcgeSkgZXhjZXB0IC0xOgorKyAg ICBjZGVmIGJpbnQgX2lzX2V4Y2hhbmdlX3BhaXIoc2VsZiwgbG9uZyB4LCBsb25nIHkpIGV4Y2Vw dCAtMToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIENoZWNrIGlmIGBgc2VsZi5iYXNpcygpIC0g eCArIHlgYCBpcyBhZ2FpbiBhIGJhc2lzLiBJbnRlcm5hbCBtZXRob2QuCisgICAgICAgICAiIiIK KyAgICAgICAgIHJldHVybiAoPFBsdXNNaW51c09uZU1hdHJpeD5zZWxmLl9BKS5pc19ub256ZXJv KHNlbGYuX3Byb3dbeF0sIHNlbGYuX3Byb3dbeV0pCisgCistICAgIGNkZWYgaW50IF9fZXhjaGFu Z2Uoc2VsZiwgbG9uZyB4LCBsb25nIHkpIGV4Y2VwdCAtMToKKysgICAgY2RlZiBpbnQgX2V4Y2hh bmdlKHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBleGNlcHQgLTE6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFB1dCBlbGVtZW50IGluZGV4ZWQgYnkgYGB4YGAgaW50byBiYXNpcywgdGFraW5nIG91dCBl bGVtZW50IGBgeWBgLiBBc3N1bXB0aW9ucyBhcmUgdGhhdCB0aGlzIGlzIGEgdmFsaWQgYmFzaXMg ZXhjaGFuZ2UuCisgCitAQCAtNTg2Nyw5ICs1ODY3LDkgQEAgY2RlZiBjbGFzcyBSZWd1bGFyTWF0 cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgICg8UGx1c01pbnVzT25lTWF0cml4PnNlbGYu X0EpLnNldChweCwgcHksIHBpdmkpICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKyAg ICAgICAgIHNlbGYuX3Byb3dbeV0gPSBweAorICAgICAgICAgc2VsZi5fcHJvd1t4XSA9IHB5Cist ICAgICAgICBCYXNpc0V4Y2hhbmdlTWF0cm9pZC5fX2V4Y2hhbmdlKHNlbGYsIHgsIHkpCisrICAg ICAgICBCYXNpc0V4Y2hhbmdlTWF0cm9pZC5fZXhjaGFuZ2Uoc2VsZiwgeCwgeSkKKyAKKy0gICAg Y2RlZiAgX19leGNoYW5nZV92YWx1ZShzZWxmLCBsb25nIHgsIGxvbmcgeSk6CisrICAgIGNkZWYg IF9leGNoYW5nZV92YWx1ZV9pbnRlcm5hbChzZWxmLCBsb25nIHgsIGxvbmcgeSk6CisgICAgICAg ICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlICh4LCB5KSBlbnRyeSBvZiB0aGUgY3VycmVudCBy ZXByZXNlbnRhdGlvbi4KKyAKK0BAIC02NTI0LDcgKzY1MjQsNyBAQCBjZGVmIGNsYXNzIFJlZ3Vs YXJNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBy b3dzLCBjb2xzID0gc2VsZi5fY3VycmVudF9yb3dzX2NvbHMoKQorICAgICAgICAgICAgIE4gPSBS ZWd1bGFyTWF0cm9pZChncm91bmRzZXQ9cm93cyArIGNvbHMsIHJlZHVjZWRfbWF0cml4PXNlbGYu X0EpCistICAgICAgICBOLnJlbmFtZShnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJykpCisr ICAgICAgICBOLnJlbmFtZShzZWxmLmdldF9jdXN0b21fbmFtZSgpKQorICAgICAgICAgcmV0dXJu IE4KKyAKKyAgICAgZGVmIF9fZGVlcGNvcHlfXyhzZWxmLCBtZW1vKToKK0BAIC02NTQ0LDcgKzY1 NDQsNyBAQCBjZGVmIGNsYXNzIFJlZ3VsYXJNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAg ICAgZWxzZToKKyAgICAgICAgICAgICByb3dzLCBjb2xzID0gc2VsZi5fY3VycmVudF9yb3dzX2Nv bHMoKQorICAgICAgICAgICAgIE4gPSBSZWd1bGFyTWF0cm9pZChncm91bmRzZXQ9ZGVlcGNvcHko cm93cyArIGNvbHMsIG1lbW8pLCByZWR1Y2VkX21hdHJpeD1kZWVwY29weShzZWxmLl9BLCBtZW1v KSkKKy0gICAgICAgIE4ucmVuYW1lKGRlZXBjb3B5KGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25h bWUnKSwgbWVtbykpCisrICAgICAgICBOLnJlbmFtZShkZWVwY29weShzZWxmLmdldF9jdXN0b21f bmFtZSgpLCBtZW1vKSkKKyAgICAgICAgIHJldHVybiBOCisgCisgICAgIGRlZiBfX3JlZHVjZV9f KHNlbGYpOgorQEAgLTY1OTMsNSArNjU5Myw1IEBAIGNkZWYgY2xhc3MgUmVndWxhck1hdHJvaWQo TGluZWFyTWF0cm9pZCk6CisgICAgICAgICAgICAgcm93cywgY29scyA9IHNlbGYuX2N1cnJlbnRf cm93c19jb2xzKCkKKyAgICAgICAgICAgICBncyA9IHJvd3MgKyBjb2xzCisgICAgICAgICAgICAg cmVkdWNlZCA9IFRydWUKKy0gICAgICAgIGRhdGEgPSAoQSwgZ3MsIHJlZHVjZWQsIGdldGF0dHIo c2VsZiwgJ19fY3VzdG9tX25hbWUnKSkKKysgICAgICAgIGRhdGEgPSAoQSwgZ3MsIHJlZHVjZWQs IHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCkpCisgICAgICAgICByZXR1cm4gc2FnZS5tYXRyb2lkcy51 bnBpY2tsaW5nLnVucGlja2xlX3JlZ3VsYXJfbWF0cm9pZCwgKHZlcnNpb24sIGRhdGEpCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cm9pZHMvbWF0cm9pZC5weGQgYi9zcmMvc2FnZS9tYXRyb2lk cy9tYXRyb2lkLnB4ZAoraW5kZXggZmU2YzA3ZTNiNzEuLmU5ZGRmZWM5NmFlIDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvbWF0cm9pZHMvbWF0cm9pZC5weGQKKysrKyBiL3NyYy9zYWdlL21hdHJvaWRz L21hdHJvaWQucHhkCitAQCAtMSw4ICsxLDcgQEAKKyBmcm9tIHNhZ2Uuc3RydWN0dXJlLnNhZ2Vf b2JqZWN0IGNpbXBvcnQgU2FnZU9iamVjdAorIAorIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2Jq ZWN0KToKKy0gICAgY2RlZiBwdWJsaWMgX19jdXN0b21fbmFtZQorLSAgICBjZGVmIHB1YmxpYyBf Y3VzdG9tX25hbWUKKysgICAgY2RlZiBwdWJsaWMgX1NhZ2VPYmplY3RfX2N1c3RvbV9uYW1lCisg ICAgIGNkZWYgcHVibGljIF9jYWNoZWRfaW5mbworICAgICBjZGVmIGludCBfc3RvcmVkX2Z1bGxf cmFuaworICAgICBjZGVmIGludCBfc3RvcmVkX3NpemUKK0BAIC0zNyw3ICszNiw3IEBAIGNkZWYg Y2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgY3BkZWYgX2xpbmVfbGVuZ3RoKHNlbGYs IEYpCisgICAgIGNwZGVmIF9leHRlbnNpb24oc2VsZiwgZWxlbWVudCwgaHlwZXJwbGFuZXMpCisg CistICAgIGNkZWYgaW5saW5lIF9fc3Vic2V0KHNlbGYsIFgpOgorKyAgICBjZGVmIGlubGluZSBf c3Vic2V0X2ludGVybmFsKHNlbGYsIFgpOgorICAgICAgICAgIiIiCisgICAgICAgICBDb252ZXJ0 IGBgWGBgIHRvIGEgYGBmcm96ZW5zZXRgYCBhbmQgY2hlY2sgdGhhdCBpdCBpcyBhIHN1YnNldAor ICAgICAgICAgb2YgdGhlIGdyb3VuZHNldC4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyb2lk cy9tYXRyb2lkLnB5eCBiL3NyYy9zYWdlL21hdHJvaWRzL21hdHJvaWQucHl4CitpbmRleCBkY2Vl ODdlYTQ5Yy4uOGFjNWVjM2Y2NzggMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyb2lkcy9tYXRy b2lkLnB5eAorKysrIGIvc3JjL3NhZ2UvbWF0cm9pZHMvbWF0cm9pZC5weXgKK0BAIC0xMzA3LDcg KzEzMDcsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAg VHlwZUVycm9yOiAnc2FnZS5yaW5ncy5pbnRlZ2VyLkludGVnZXInIG9iamVjdCBpcyBub3QgaXRl cmFibGUKKyAgICAgICAgICIiIgorICAgICAgICAgIyBDYWxsIGNvcnJlc3BvbmRpbmcgQ3l0aG9u IG1ldGhvZAorLSAgICAgICAgcmV0dXJuIHNlbGYuX19zdWJzZXQoWCkKKysgICAgICAgIHJldHVy biBzZWxmLl9zdWJzZXRfaW50ZXJuYWwoWCkKKyAKKyAgICAgZGVmIF9zdWJzZXRfYWxsKHNlbGYs IFgpOgorICAgICAgICAgIiIiCitAQCAtMTM3NCw3ICsxMzc0LDcgQEAgY2RlZiBjbGFzcyBNYXRy b2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICBpZiBYIGlzIE5vbmU6Cisg ICAgICAgICAgICAgcmV0dXJuIHNlbGYuZnVsbF9yYW5rKCkKKy0gICAgICAgIHJldHVybiBzZWxm Ll9yYW5rKHNlbGYuX19zdWJzZXQoWCkpCisrICAgICAgICByZXR1cm4gc2VsZi5fcmFuayhzZWxm Ll9zdWJzZXRfaW50ZXJuYWwoWCkpCisgCisgICAgIGNwZGVmIGZ1bGxfcmFuayhzZWxmKToKKyAg ICAgICAgIHIiIiIKK0BAIC0xNDUzLDcgKzE0NTMsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2Fn ZU9iamVjdCk6CisgICAgICAgICAgICAgLi4uCisgICAgICAgICAgICAgVmFsdWVFcnJvcjogWyd4 J10gaXMgbm90IGEgc3Vic2V0IG9mIHRoZSBncm91bmRzZXQKKyAgICAgICAgICIiIgorLSAgICAg ICAgcmV0dXJuIHNlbGYuX21heF9pbmRlcGVuZGVudChzZWxmLl9fc3Vic2V0KFgpKQorKyAgICAg ICAgcmV0dXJuIHNlbGYuX21heF9pbmRlcGVuZGVudChzZWxmLl9zdWJzZXRfaW50ZXJuYWwoWCkp CisgCisgICAgIGNwZGVmIGNpcmN1aXQoc2VsZiwgWD1Ob25lKToKKyAgICAgICAgICIiIgorQEAg LTE1NTgsNyArMTU1OCw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAg ICAgICAgICAuLi4KKyAgICAgICAgICAgICBWYWx1ZUVycm9yOiBbJ3gnXSBpcyBub3QgYSBzdWJz ZXQgb2YgdGhlIGdyb3VuZHNldAorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5f Y2xvc3VyZShzZWxmLl9fc3Vic2V0KFgpKQorKyAgICAgICAgcmV0dXJuIHNlbGYuX2Nsb3N1cmUo c2VsZi5fc3Vic2V0X2ludGVybmFsKFgpKQorIAorICAgICBjcGRlZiBrX2Nsb3N1cmUoc2VsZiwg WCwgayk6CisgICAgICAgICByIiIiCitAQCAtMTU5Nyw3ICsxNTk3LDcgQEAgY2RlZiBjbGFzcyBN YXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIHNhZ2U6IHNvcnRlZChNLmtfY2xvc3Vy ZSh7MCwxfSwgNCkpCisgICAgICAgICAgICAgWzAsIDEsIDRdCisgICAgICAgICAiIiIKKy0gICAg ICAgIFggPSBzZWxmLl9fc3Vic2V0KFgpCisrICAgICAgICBYID0gc2VsZi5fc3Vic2V0X2ludGVy bmFsKFgpCisgICAgICAgICBjZGVmIGludCBjdXIKKyAgICAgICAgIGNkZWYgZnJvemVuc2V0IFMs IGNsCisgICAgICAgICBjdXIgPSAwCitAQCAtMTY0NCw3ICsxNjQ0LDcgQEAgY2RlZiBjbGFzcyBN YXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIC4uLgorICAgICAgICAgICAgIFZhbHVl RXJyb3I6IFsneCddIGlzIG5vdCBhIHN1YnNldCBvZiB0aGUgZ3JvdW5kc2V0CisgICAgICAgICAi IiIKKy0gICAgICAgIFggPSBzZWxmLl9fc3Vic2V0KFgpCisrICAgICAgICBYID0gc2VsZi5fc3Vi c2V0X2ludGVybmFsKFgpCisgICAgICAgICBZID0gc2VsZi5fX3N1YnNldF9hbGwoWSkKKyAgICAg ICAgIHJldHVybiBzZWxmLl9hdWdtZW50KFgsIFkuZGlmZmVyZW5jZShYKSkKKyAKK0BAIC0xNzgx LDcgKzE3ODEsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAg ICAgLi4uCisgICAgICAgICAgICAgVmFsdWVFcnJvcjogWyd4J10gaXMgbm90IGEgc3Vic2V0IG9m IHRoZSBncm91bmRzZXQKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIHNlbGYuX21heF9j b2luZGVwZW5kZW50KHNlbGYuX19zdWJzZXQoWCkpCisrICAgICAgICByZXR1cm4gc2VsZi5fbWF4 X2NvaW5kZXBlbmRlbnQoc2VsZi5fc3Vic2V0X2ludGVybmFsKFgpKQorIAorICAgICBjcGRlZiBj b2Nsb3N1cmUoc2VsZiwgWCk6CisgICAgICAgICAiIiIKK0BAIC0xODEzLDcgKzE4MTMsNyBAQCBj ZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgLi4uCisgICAgICAg ICAgICAgVmFsdWVFcnJvcjogWyd4J10gaXMgbm90IGEgc3Vic2V0IG9mIHRoZSBncm91bmRzZXQK KyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIHNlbGYuX2NvY2xvc3VyZShzZWxmLl9fc3Vi c2V0KFgpKQorKyAgICAgICAgcmV0dXJuIHNlbGYuX2NvY2xvc3VyZShzZWxmLl9zdWJzZXRfaW50 ZXJuYWwoWCkpCisgCisgICAgIGNwZGVmIGNvY2lyY3VpdChzZWxmLCBYPU5vbmUpOgorICAgICAg ICAgIiIiCitAQCAtMTk0Nyw3ICsxOTQ3LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmpl Y3QpOgorICAgICAgICAgICAgIC4uLgorICAgICAgICAgICAgIFZhbHVlRXJyb3I6ICdhYmN4JyBp cyBub3QgYSBzdWJzZXQgb2YgdGhlIGdyb3VuZHNldAorICAgICAgICAgIiIiCistICAgICAgICBy ZXR1cm4gc2VsZi5faXNfaW5kZXBlbmRlbnQoc2VsZi5fX3N1YnNldChYKSkKKysgICAgICAgIHJl dHVybiBzZWxmLl9pc19pbmRlcGVuZGVudChzZWxmLl9zdWJzZXRfaW50ZXJuYWwoWCkpCisgCisg ICAgIGNwZGVmIGlzX2RlcGVuZGVudChzZWxmLCBYKToKKyAgICAgICAgIHIiIiIKK0BAIC0xOTcz LDcgKzE5NzMsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAg ICAgLi4uCisgICAgICAgICAgICAgVmFsdWVFcnJvcjogJ2FiY3gnIGlzIG5vdCBhIHN1YnNldCBv ZiB0aGUgZ3JvdW5kc2V0CisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBub3Qgc2VsZi5f aXNfaW5kZXBlbmRlbnQoc2VsZi5fX3N1YnNldChYKSkKKysgICAgICAgIHJldHVybiBub3Qgc2Vs Zi5faXNfaW5kZXBlbmRlbnQoc2VsZi5fc3Vic2V0X2ludGVybmFsKFgpKQorIAorICAgICBjcGRl ZiBpc19iYXNpcyhzZWxmLCBYKToKKyAgICAgICAgIHIiIiIKK0BAIC0xOTk5LDcgKzE5OTksNyBA QCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgLi4uCisgICAg ICAgICAgICAgVmFsdWVFcnJvcjogJ2FiY3gnIGlzIG5vdCBhIHN1YnNldCBvZiB0aGUgZ3JvdW5k c2V0CisgICAgICAgICAiIiIKKy0gICAgICAgIFggPSBzZWxmLl9fc3Vic2V0KFgpCisrICAgICAg ICBYID0gc2VsZi5fc3Vic2V0X2ludGVybmFsKFgpCisgICAgICAgICBpZiBsZW4oWCkgIT0gc2Vs Zi5mdWxsX3JhbmsoKToKKyAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgIHJldHVy biBzZWxmLl9pc19iYXNpcyhYKQorQEAgLTIwMzUsNyArMjAzNSw3IEBAIGNkZWYgY2xhc3MgTWF0 cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICAuLi4KKyAgICAgICAgICAgICBWYWx1ZUVy cm9yOiAnYWJjeCcgaXMgbm90IGEgc3Vic2V0IG9mIHRoZSBncm91bmRzZXQKKyAgICAgICAgICIi IgorLSAgICAgICAgcmV0dXJuIHNlbGYuX2lzX2Nsb3NlZChzZWxmLl9fc3Vic2V0KFgpKQorKyAg ICAgICAgcmV0dXJuIHNlbGYuX2lzX2Nsb3NlZChzZWxmLl9zdWJzZXRfaW50ZXJuYWwoWCkpCisg CisgICAgIGNwZGVmIGlzX3N1YnNldF9rX2Nsb3NlZChzZWxmLCBYLCBpbnQgayk6CisgICAgICAg ICByIiIiCitAQCAtMjExOCw3ICsyMTE4LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmpl Y3QpOgorICAgICAgICAgICAgIC4uLgorICAgICAgICAgICAgIFZhbHVlRXJyb3I6ICdhYmN4JyBp cyBub3QgYSBzdWJzZXQgb2YgdGhlIGdyb3VuZHNldAorICAgICAgICAgIiIiCistICAgICAgICBy ZXR1cm4gc2VsZi5faXNfY2lyY3VpdChzZWxmLl9fc3Vic2V0KFgpKQorKyAgICAgICAgcmV0dXJu IHNlbGYuX2lzX2NpcmN1aXQoc2VsZi5fc3Vic2V0X2ludGVybmFsKFgpKQorIAorICAgICBjcGRl ZiBjb2xvb3BzKHNlbGYpOgorICAgICAgICAgciIiIgorQEAgLTIxNzgsNyArMjE3OCw3IEBAIGNk ZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICAuLi4KKyAgICAgICAg ICAgICBWYWx1ZUVycm9yOiAnYWJjeCcgaXMgbm90IGEgc3Vic2V0IG9mIHRoZSBncm91bmRzZXQK KyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIHNlbGYuX2lzX2NvaW5kZXBlbmRlbnQoc2Vs Zi5fX3N1YnNldChYKSkKKysgICAgICAgIHJldHVybiBzZWxmLl9pc19jb2luZGVwZW5kZW50KHNl bGYuX3N1YnNldF9pbnRlcm5hbChYKSkKKyAKKyAgICAgY3BkZWYgaXNfY29kZXBlbmRlbnQoc2Vs ZiwgWCk6CisgICAgICAgICByIiIiCitAQCAtMjIxMSw3ICsyMjExLDcgQEAgY2RlZiBjbGFzcyBN YXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIC4uLgorICAgICAgICAgICAgIFZhbHVl RXJyb3I6ICdhYmN4JyBpcyBub3QgYSBzdWJzZXQgb2YgdGhlIGdyb3VuZHNldAorICAgICAgICAg IiIiCistICAgICAgICByZXR1cm4gbm90IHNlbGYuX2lzX2NvaW5kZXBlbmRlbnQoc2VsZi5fX3N1 YnNldChYKSkKKysgICAgICAgIHJldHVybiBub3Qgc2VsZi5faXNfY29pbmRlcGVuZGVudChzZWxm Ll9zdWJzZXRfaW50ZXJuYWwoWCkpCisgCisgICAgIGNwZGVmIGlzX2NvYmFzaXMoc2VsZiwgWCk6 CisgICAgICAgICByIiIiCitAQCAtMjI0NSw3ICsyMjQ1LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lk KFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIC4uLgorICAgICAgICAgICAgIFZhbHVlRXJyb3I6 ICdhYmN4JyBpcyBub3QgYSBzdWJzZXQgb2YgdGhlIGdyb3VuZHNldAorICAgICAgICAgIiIiCist ICAgICAgICBYID0gc2VsZi5fX3N1YnNldChYKQorKyAgICAgICAgWCA9IHNlbGYuX3N1YnNldF9p bnRlcm5hbChYKQorICAgICAgICAgaWYgbGVuKFgpICE9IHNlbGYuZnVsbF9jb3JhbmsoKToKKyAg ICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgIHJldHVybiBzZWxmLl9pc19jb2Jhc2lz KFgpCitAQCAtMjI4Miw3ICsyMjgyLDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3Qp OgorICAgICAgICAgICAgIC4uLgorICAgICAgICAgICAgIFZhbHVlRXJyb3I6ICdhYmN4JyBpcyBu b3QgYSBzdWJzZXQgb2YgdGhlIGdyb3VuZHNldAorICAgICAgICAgIiIiCistICAgICAgICByZXR1 cm4gc2VsZi5faXNfY29jaXJjdWl0KHNlbGYuX19zdWJzZXQoWCkpCisrICAgICAgICByZXR1cm4g c2VsZi5faXNfY29jaXJjdWl0KHNlbGYuX3N1YnNldF9pbnRlcm5hbChYKSkKKyAKKyAgICAgY3Bk ZWYgaXNfY29jbG9zZWQoc2VsZiwgWCk6CisgICAgICAgICByIiIiCitAQCAtMjMxNSw3ICsyMzE1 LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIC4uLgor ICAgICAgICAgICAgIFZhbHVlRXJyb3I6ICdhYmN4JyBpcyBub3QgYSBzdWJzZXQgb2YgdGhlIGdy b3VuZHNldAorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5faXNfY29jbG9zZWQo c2VsZi5fX3N1YnNldChYKSkKKysgICAgICAgIHJldHVybiBzZWxmLl9pc19jb2Nsb3NlZChzZWxm Ll9zdWJzZXRfaW50ZXJuYWwoWCkpCisgCisgICAgICMgdmVyaWZpY2F0aW9uCisgCitAQCAtNDg2 OCwxMCArNDg2OCwxMCBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAg ICAgICAgc2FnZTogTS5jb25uZWN0aXZpdHkoJ2FiJywgJ2NkJykKKyAgICAgICAgICAgICAyCisg ICAgICAgICAiIiIKKy0gICAgICAgIFMgPSBzZWxmLl9fc3Vic2V0KFMpCisrICAgICAgICBTID0g c2VsZi5fc3Vic2V0X2ludGVybmFsKFMpCisgICAgICAgICBpZiBUIGlzIE5vbmU6CisgICAgICAg ICAgICAgcmV0dXJuIHNlbGYuX3JhbmsoUykgKyBzZWxmLl9yYW5rKHNlbGYuZ3JvdW5kc2V0KCkt UykgLSBzZWxmLmZ1bGxfcmFuaygpCistICAgICAgICBUID0gc2VsZi5fX3N1YnNldChUKQorKyAg ICAgICAgVCA9IHNlbGYuX3N1YnNldF9pbnRlcm5hbChUKQorICAgICAgICAgaWYgUy5pbnRlcnNl Y3Rpb24oVCk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiUyBhbmQgVCBhcmUgbm90 IGRpc2pvaW50IikKKyAgICAgICAgIHJldHVybiBsZW4oc2VsZi5fbGluayhTLCBUKVswXSkgLSBz ZWxmLmZ1bGxfcmFuaygpICsgc2VsZi5fcmFuayhTKSArIHNlbGYuX3JhbmsoVCkKK0BAIC00OTU2 LDggKzQ5NTYsOCBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAg ICAgc2FnZTogTi5jb25uZWN0aXZpdHkoUykKKyAgICAgICAgICAgICAyCisgICAgICAgICAiIiIK Ky0gICAgICAgIFMgPSBzZWxmLl9fc3Vic2V0KFMpCistICAgICAgICBUID0gc2VsZi5fX3N1YnNl dChUKQorKyAgICAgICAgUyA9IHNlbGYuX3N1YnNldF9pbnRlcm5hbChTKQorKyAgICAgICAgVCA9 IHNlbGYuX3N1YnNldF9pbnRlcm5hbChUKQorICAgICAgICAgaWYgbm90IFMuaXNkaXNqb2ludChU KToKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJTIGFuZCBUIGFyZSBub3QgZGlzam9p bnQiKQorICAgICAgICAgcmV0dXJuIHNlbGYuX2xpbmsoUywgVCkKK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9tYXRyb2lkcy9taW5vcl9tYXRyb2lkLnB5IGIvc3JjL3NhZ2UvbWF0cm9pZHMvbWlub3Jf bWF0cm9pZC5weQoraW5kZXggYzBlNzU2OTE3ZjUuLjk4ODU2MzQ4YWMxIDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvbWF0cm9pZHMvbWlub3JfbWF0cm9pZC5weQorKysrIGIvc3JjL3NhZ2UvbWF0cm9p ZHMvbWlub3JfbWF0cm9pZC5weQorQEAgLTQ4Niw4ICs0ODYsNyBAQCBkZWYgX19jb3B5X18oc2Vs Zik6CisgICAgICAgICAgICAgVHJ1ZQorICAgICAgICAgIiIiCisgICAgICAgICBOID0gTWlub3JN YXRyb2lkKHNlbGYuX21hdHJvaWQsIHNlbGYuX2NvbnRyYWN0aW9ucywgc2VsZi5fZGVsZXRpb25z KQorLSAgICAgICAgaWYgZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpIGlzIG5vdCBOb25l OiAgIyBiZWNhdXNlIG9mIG5hbWUgd3JhbmdsaW5nLCB0aGlzIGlzIG5vdCBjYXVnaHQgYnkgdGhl IGRlZmF1bHQgY29weQorLSAgICAgICAgICAgIE4ucmVuYW1lKGdldGF0dHIoc2VsZiwgJ19fY3Vz dG9tX25hbWUnKSkKKysgICAgICAgIE4ucmVuYW1lKHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCkpCisg ICAgICAgICByZXR1cm4gTgorIAorICAgICBkZWYgX19kZWVwY29weV9fKHNlbGYsIG1lbW89e30p OgorQEAgLTUxMiw4ICs1MTEsNyBAQCBkZWYgX19kZWVwY29weV9fKHNlbGYsIG1lbW89e30pOgor ICAgICAgICAgZnJvbSBjb3B5IGltcG9ydCBkZWVwY29weQorICAgICAgICAgIyBTaW5jZSBtYXRy b2lkcyBhcmUgaW1tdXRhYmxlLCBOIGNhbm5vdCByZWZlcmVuY2UgaXRzZWxmIGluIGNvcnJlY3Qg Y29kZSwgc28gbm8gbmVlZCB0byB3b3JyeSBhYm91dCB0aGUgcmVjdXJzaW9uLgorICAgICAgICAg TiA9IE1pbm9yTWF0cm9pZChkZWVwY29weShzZWxmLl9tYXRyb2lkLCBtZW1vKSwgZGVlcGNvcHko c2VsZi5fY29udHJhY3Rpb25zLCBtZW1vKSwgZGVlcGNvcHkoc2VsZi5fZGVsZXRpb25zLCBtZW1v KSkKKy0gICAgICAgIGlmIGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSBpcyBub3QgTm9u ZTogICMgYmVjYXVzZSBvZiBuYW1lIHdyYW5nbGluZywgdGhpcyBpcyBub3QgY2F1Z2h0IGJ5IHRo ZSBkZWZhdWx0IGRlZXBjb3B5CistICAgICAgICAgICAgTi5yZW5hbWUoZGVlcGNvcHkoZ2V0YXR0 cihzZWxmLCAnX19jdXN0b21fbmFtZScpLCBtZW1vKSkKKysgICAgICAgIE4ucmVuYW1lKGRlZXBj b3B5KHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCksIG1lbW8pKQorICAgICAgICAgcmV0dXJuIE4KKyAK KyAgICAgZGVmIF9fcmVkdWNlX18oc2VsZik6CitAQCAtNTM0LDYgKzUzMiw2IEBAIGRlZiBfX3Jl ZHVjZV9fKHNlbGYpOgorICAgICAgICAgICAgICA0OiB7eydhJywgJ2InLCAnYycsICdkJywgJ2Un LCAnZicsICdnJywgJ2gnfX19CisgICAgICAgICAiIiIKKyAgICAgICAgIGltcG9ydCBzYWdlLm1h dHJvaWRzLnVucGlja2xpbmcKKy0gICAgICAgIGRhdGEgPSAoc2VsZi5fbWF0cm9pZCwgc2VsZi5f Y29udHJhY3Rpb25zLCBzZWxmLl9kZWxldGlvbnMsIGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25h bWUnKSkKKysgICAgICAgIGRhdGEgPSAoc2VsZi5fbWF0cm9pZCwgc2VsZi5fY29udHJhY3Rpb25z LCBzZWxmLl9kZWxldGlvbnMsIHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCkpCisgICAgICAgICB2ZXJz aW9uID0gMAorICAgICAgICAgcmV0dXJuIHNhZ2UubWF0cm9pZHMudW5waWNrbGluZy51bnBpY2ts ZV9taW5vcl9tYXRyb2lkLCAodmVyc2lvbiwgZGF0YSkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9t YXRyb2lkcy9yYW5rX21hdHJvaWQucHkgYi9zcmMvc2FnZS9tYXRyb2lkcy9yYW5rX21hdHJvaWQu cHkKK2luZGV4IDQ2MzNmZjBhNzkyLi42YzRlOTQ3MGFkYSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L21hdHJvaWRzL3JhbmtfbWF0cm9pZC5weQorKysrIGIvc3JjL3NhZ2UvbWF0cm9pZHMvcmFua19t YXRyb2lkLnB5CitAQCAtMjY3LDkgKzI2Nyw3IEBAIGRlZiBfX2NvcHlfXyhzZWxmKToKKyAgICAg ICAgIE4gPSBSYW5rTWF0cm9pZChncm91bmRzZXQ9W10sIHJhbmtfZnVuY3Rpb249Tm9uZSkKKyAg ICAgICAgIE4uX2dyb3VuZHNldCA9IHNlbGYuX2dyb3VuZHNldAorICAgICAgICAgTi5fcmFua19m dW5jdGlvbiA9IHNlbGYuX3JhbmtfZnVuY3Rpb24KKy0gICAgICAgIGlmIGdldGF0dHIoc2VsZiwg J19fY3VzdG9tX25hbWUnKSBpcyBub3QgTm9uZToKKy0gICAgICAgICAgICAjIGJlY2F1c2Ugb2Yg bmFtZSB3cmFuZ2xpbmcsIHRoaXMgaXMgbm90IGNhdWdodCBieSB0aGUgZGVmYXVsdCBjb3B5Cist ICAgICAgICAgICAgTi5yZW5hbWUoZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpKQorKyAg ICAgICAgTi5yZW5hbWUoc2VsZi5nZXRfY3VzdG9tX25hbWUoKSkKKyAgICAgICAgIHJldHVybiBO CisgCisgICAgIGRlZiBfX2RlZXBjb3B5X18oc2VsZiwgbWVtbz17fSk6CitAQCAtMjkzLDggKzI5 MSw3IEBAIGRlZiBfX2RlZXBjb3B5X18oc2VsZiwgbWVtbz17fSk6CisgICAgICAgICBmcm9tIGNv cHkgaW1wb3J0IGRlZXBjb3B5CisgICAgICAgICAjIFNpbmNlIG1hdHJvaWRzIGFyZSBpbW11dGFi bGUsIE4gY2Fubm90IHJlZmVyZW5jZSBpdHNlbGYgaW4gY29ycmVjdCBjb2RlLCBzbyBubyBuZWVk IHRvIHdvcnJ5IGFib3V0IHRoZSByZWN1cnNpb24uCisgICAgICAgICBOID0gUmFua01hdHJvaWQo Z3JvdW5kc2V0PWRlZXBjb3B5KHNlbGYuX2dyb3VuZHNldCksIHJhbmtfZnVuY3Rpb249ZGVlcGNv cHkoc2VsZi5fcmFua19mdW5jdGlvbikpCistICAgICAgICBpZiBnZXRhdHRyKHNlbGYsICdfX2N1 c3RvbV9uYW1lJykgaXMgbm90IE5vbmU6ICAjIGJlY2F1c2Ugb2YgbmFtZSB3cmFuZ2xpbmcsIHRo aXMgaXMgbm90IGNhdWdodCBieSB0aGUgZGVmYXVsdCBkZWVwY29weQorLSAgICAgICAgICAgIE4u cmVuYW1lKGRlZXBjb3B5KGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSwgbWVtbykpCisr ICAgICAgICBOLnJlbmFtZShkZWVwY29weShzZWxmLmdldF9jdXN0b21fbmFtZSgpLCBtZW1vKSkK KyAgICAgICAgIHJldHVybiBOCisgCisgICAgIGRlZiBfX3JlZHVjZV9fKHNlbGYpOgorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL21pc2MvY2FjaGVmdW5jLnB4ZCBiL3NyYy9zYWdlL21pc2MvY2FjaGVm dW5jLnB4ZAoraW5kZXggZDNjYzY3N2RlY2UuLjhlNWQ5ZGZhNDJhIDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvbWlzYy9jYWNoZWZ1bmMucHhkCisrKysgYi9zcmMvc2FnZS9taXNjL2NhY2hlZnVuYy5w eGQKK0BAIC01LDcgKzUsNyBAQCBjcGRlZiBjYWNoZV9rZXkobykKKyAKKyBjZGVmIGNsYXNzIENh Y2hlZEZ1bmN0aW9uKCk6CisgICAgIGNkZWYgcHVibGljIHN0ciBfX25hbWVfXworLSAgICBjZGVm IHB1YmxpYyBzdHIgX19tb2R1bGVfXworKyAgICBjZGVmIHB1YmxpYyBzdHIgX19jYWNoZWRfbW9k dWxlX18KKyAgICAgY2RlZiBBcmd1bWVudEZpeGVyIF9hcmd1bWVudF9maXhlcgorICAgICBjZGVm IHB1YmxpYyBmCisgICAgIGNkZWYgcHVibGljIGNhY2hlICAjIG5vdCBhbHdheXMgb2YgdHlwZSA8 ZGljdD4KK0BAIC0yMCw3ICsyMCw3IEBAIGNkZWYgY2xhc3MgQ2FjaGVkRnVuY3Rpb24oKToKKyBj ZGVmIGNsYXNzIENhY2hlZE1ldGhvZCgpOgorICAgICBjZGVmIHN0ciBfY2FjaGVfbmFtZQorICAg ICBjZGVmIHB1YmxpYyBzdHIgX19uYW1lX18KKy0gICAgY2RlZiBwdWJsaWMgc3RyIF9fbW9kdWxl X18KKysgICAgY2RlZiBwdWJsaWMgc3RyIF9fY2FjaGVkX21vZHVsZV9fCisgICAgIGNkZWYgQ2Fj aGVkRnVuY3Rpb24gX2NhY2hlZGZ1bmMKKyAgICAgY2RlZiBQeV9zc2l6ZV90IG5hcmdzCisgICAg IGNwZGVmIF9nZXRfaW5zdGFuY2VfY2FjaGUoc2VsZiwgaW5zdCkKK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9taXNjL2NhY2hlZnVuYy5weXggYi9zcmMvc2FnZS9taXNjL2NhY2hlZnVuYy5weXgKK2lu ZGV4IGEzMDdjMzNlMzJiLi44YWEzMGE4NTI3MiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21pc2Mv Y2FjaGVmdW5jLnB5eAorKysrIGIvc3JjL3NhZ2UvbWlzYy9jYWNoZWZ1bmMucHl4CitAQCAtNjAs NyArNjAsNyBAQCBiZSB1c2VkOjoKKyAKKyBXZSBjYW4gcHJvY2VlZCBzaW1pbGFybHkgZm9yIGNh Y2hlZCBtZXRob2RzIG9mIEN5dGhvbiBjbGFzc2VzLAorIHByb3ZpZGVkIHRoYXQgdGhleSBhbGxv dyBhdHRyaWJ1dGUgYXNzaWdubWVudCBvciBoYXZlIGEgcHVibGljCistYXR0cmlidXRlIGBgX19j YWNoZWRfbWV0aG9kc2BgIG9mIHR5cGUgYGA8ZGljdD5gYC4gU2luY2UKKythdHRyaWJ1dGUgYGBf Y2FjaGVkX21ldGhvZHNgYCBvZiB0eXBlIGBgPGRpY3Q+YGAuIFNpbmNlCisgOnRyYWM6YDExMTE1 YCwgdGhpcyBpcyB0aGUgY2FzZSBmb3IgYWxsIGNsYXNzZXMgaW5oZXJpdGluZyBmcm9tCisgOmNs YXNzOmB+c2FnZS5zdHJ1Y3R1cmUucGFyZW50LlBhcmVudGAuIFNlZSBiZWxvdyBmb3IgYSBtb3Jl IGV4cGxpY2l0CisgZXhhbXBsZS4gQnkgOnRyYWM6YDEyOTUxYCwgY2FjaGVkIG1ldGhvZHMgb2Yg ZXh0ZW5zaW9uIGNsYXNzZXMgY2FuCitAQCAtMzAxLDE0ICszMDEsMTQgQEAgb3VnaHQgdG8gYmUg Y2hvc2VuLiBBIHR5cGljYWwgZXhhbXBsZSBpcworIAorIEJ5IDp0cmFjOmAxMjk1MWAsIHRoZSBj YWNoZWRfbWV0aG9kIGRlY29yYXRvciBpcyBhbHNvIHN1cHBvcnRlZCBvbiBub24tYyhwKWRlZgor IG1ldGhvZHMgb2YgZXh0ZW5zaW9uIGNsYXNzZXMsIGFzIGxvbmcgYXMgdGhleSBlaXRoZXIgc3Vw cG9ydCBhdHRyaWJ1dGUgYXNzaWdubWVudAorLW9yIGhhdmUgYSBwdWJsaWMgYXR0cmlidXRlIG9m IHR5cGUgYGA8ZGljdD5gYCBjYWxsZWQgYGBfX2NhY2hlZF9tZXRob2RzYGAuIFRoZQorK29yIGhh dmUgYSBwdWJsaWMgYXR0cmlidXRlIG9mIHR5cGUgYGA8ZGljdD5gYCBjYWxsZWQgYGBfY2FjaGVk X21ldGhvZHNgYC4gVGhlCisgbGF0dGVyIGlzIGVhc3k6OgorIAorICAgICBzYWdlOiAjIG5lZWRz IHNhZ2UubWlzYy5jeXRob24KKyAgICAgc2FnZTogY3l0aG9uX2NvZGUgPSBbCisgICAgIC4uLi46 ICJmcm9tIHNhZ2UubWlzYy5jYWNoZWZ1bmMgaW1wb3J0IGNhY2hlZF9tZXRob2QiLAorICAgICAu Li4uOiAiY2RlZiBjbGFzcyBNeUNsYXNzOiIsCistICAgIC4uLi46ICIgICAgY2RlZiBwdWJsaWMg ZGljdCBfX2NhY2hlZF9tZXRob2RzIiwKKysgICAgLi4uLjogIiAgICBjZGVmIHB1YmxpYyBkaWN0 IF9jYWNoZWRfbWV0aG9kcyIsCisgICAgIC4uLi46ICIgICAgQGNhY2hlZF9tZXRob2QiLAorICAg ICAuLi4uOiAiICAgIGRlZiBmKHNlbGYsIGEsYik6IiwKKyAgICAgLi4uLjogIiAgICAgICAgcmV0 dXJuIGEqYiJdCitAQCAtNzc0LDEzICs3NzQsMTcgQEAgY2RlZiBjbGFzcyBDYWNoZWRGdW5jdGlv bigpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBzZWxmLl9fbmFtZV9fID0gZi5fX25h bWVfXworICAgICAgICAgdHJ5OgorLSAgICAgICAgICAgIHNlbGYuX19tb2R1bGVfXyA9IGYuX19t b2R1bGVfXworKyAgICAgICAgICAgIHNlbGYuX19jYWNoZWRfbW9kdWxlX18gPSBmLl9fbW9kdWxl X18KKyAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKy0gICAgICAgICAgICBzZWxmLl9f bW9kdWxlX18gPSBmLl9fb2JqY2xhc3NfXy5fX21vZHVsZV9fCisrICAgICAgICAgICAgc2VsZi5f X2NhY2hlZF9tb2R1bGVfXyA9IGYuX19vYmpjbGFzc19fLl9fbW9kdWxlX18KKyAgICAgICAgIGlm IGFyZ3VtZW50X2ZpeGVyIGlzIG5vdCBOb25lOiAjIGl0IGlzIE5vbmUgdW5sZXNzIHRoZSBhcmd1 bWVudCBmaXhlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgd2Fz IGtub3duIHByZXZpb3VzbHkuIFNlZSAjMTUwMzguCisgICAgICAgICAgICAgc2VsZi5fYXJndW1l bnRfZml4ZXIgPSBhcmd1bWVudF9maXhlcgorIAorKyAgICBAcHJvcGVydHkKKysgICAgZGVmIF9f bW9kdWxlX18oc2VsZik6CisrICAgICAgICByZXR1cm4gc2VsZi5fX2NhY2hlZF9tb2R1bGVfXwor KworICAgICBjZGVmIGdldF9rZXlfYXJnc19rd2RzKHNlbGYsIHR1cGxlIGFyZ3MsIGRpY3Qga3dk cyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUga2V5IGluIHRoZSBjYWNoZSB0 byBiZSB1c2VkIHdoZW4gYGBhcmdzYGAgYW5kCitAQCAtODQxLDcgKzg0NSw3IEBAIGNkZWYgY2xh c3MgQ2FjaGVkRnVuY3Rpb24oKToKKyAgICAgICAgICAgICBzYWdlOiBsb2FkcyhkdW1wcyhoaWxi ZXJ0X2NsYXNzX3BvbHlub21pYWwpKSBpcyBoaWxiZXJ0X2NsYXNzX3BvbHlub21pYWwgICNpbmRp cmVjdCBkb2N0ZXN0ICAgICAgICAgICAgICAgICAjIG5lZWRzIHNhZ2Uuc2NoZW1lcworICAgICAg ICAgICAgIFRydWUKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIF9jYWNoZWRfZnVuY3Rp b25fdW5waWNrbGUsIChzZWxmLl9fbW9kdWxlX18sIHNlbGYuX19uYW1lX18sIHNlbGYuY2FjaGUp CisrICAgICAgICByZXR1cm4gX2NhY2hlZF9mdW5jdGlvbl91bnBpY2tsZSwgKHNlbGYuX19jYWNo ZWRfbW9kdWxlX18sIHNlbGYuX19uYW1lX18sIHNlbGYuY2FjaGUpCisgCisgICAgICMjIyMjIyMj IworICAgICAjIyBJbnRyb3NwZWN0aW9uCitAQCAtMjAxOSw3ICsyMDIzLDcgQEAgY2RlZiBjbGFz cyBDYWNoZWRNZXRob2RDYWxsZXIoQ2FjaGVkRnVuY3Rpb24pOgorICAgICAgICAgVGhpcyBnZXR0 ZXIgYXR0ZW1wdHMgdG8gYXNzaWduIGEgYm91bmQgbWV0aG9kIGFzIGFuCisgICAgICAgICBhdHRy aWJ1dGUgdG8gdGhlIGdpdmVuIGluc3RhbmNlLiBJZiB0aGlzIGlzIG5vdAorICAgICAgICAgcG9z c2libGUgKGZvciBleGFtcGxlLCBmb3Igc29tZSBleHRlbnNpb24gY2xhc3NlcyksCistICAgICAg ICBpdCBpcyBhdHRlbXB0ZWQgdG8gZmluZCBhbiBhdHRyaWJ1dGUgYGBfX2NhY2hlZF9tZXRob2Rz YGAsCisrICAgICAgICBpdCBpcyBhdHRlbXB0ZWQgdG8gZmluZCBhbiBhdHRyaWJ1dGUgYGBfY2Fj aGVkX21ldGhvZHNgYCwKKyAgICAgICAgIGFuZCBzdG9yZS9yZXRyaWV2ZSB0aGUgYm91bmQgbWV0 aG9kIHRoZXJlLiBJbiB0aGF0CisgICAgICAgICB3YXksIGNhY2hlZCBtZXRob2RzIGNhbiBiZSBp bXBsZW1lbnRlZCBmb3IgZXh0ZW5zaW9uCisgICAgICAgICBjbGFzc2VzIGRlcml2aW5nIGZyb20g OmNsYXNzOmB+c2FnZS5zdHJ1Y3R1cmUucGFyZW50LlBhcmVudGAKK0BAIC0yMDg1LDcgKzIwODks NyBAQCBjZGVmIGNsYXNzIENhY2hlZE1ldGhvZENhbGxlcihDYWNoZWRGdW5jdGlvbik6CisgICAg ICAgICAiIiIKKyAgICAgICAgICMgVGhpcyBpcyBmb3IgUGFyZW50cyBvciBFbGVtZW50cyB0aGF0 IGRvIG5vdCBhbGxvdyBhdHRyaWJ1dGUgYXNzaWdubWVudAorICAgICAgICAgdHJ5OgorLSAgICAg ICAgICAgIHJldHVybiAoPGRpY3Q+aW5zdC5fX2NhY2hlZF9tZXRob2RzKVtzZWxmLl9jYWNoZWRt ZXRob2QuX2NhY2hlZGZ1bmMuX19uYW1lX19dCisrICAgICAgICAgICAgcmV0dXJuICg8ZGljdD5p bnN0Ll9jYWNoZWRfbWV0aG9kcylbc2VsZi5fY2FjaGVkbWV0aG9kLl9jYWNoZWRmdW5jLl9fbmFt ZV9fXQorICAgICAgICAgZXhjZXB0IChBdHRyaWJ1dGVFcnJvciwgVHlwZUVycm9yLCBLZXlFcnJv cik6CisgICAgICAgICAgICAgcGFzcworIAorQEAgLTIxMDAsMTAgKzIxMDQsMTAgQEAgY2RlZiBj bGFzcyBDYWNoZWRNZXRob2RDYWxsZXIoQ2FjaGVkRnVuY3Rpb24pOgorICAgICAgICAgZXhjZXB0 IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIHRyeToKKy0gICAg ICAgICAgICBpZiBpbnN0Ll9fY2FjaGVkX21ldGhvZHMgaXMgTm9uZToKKy0gICAgICAgICAgICAg ICAgaW5zdC5fX2NhY2hlZF9tZXRob2RzID0ge3NlbGYuX2NhY2hlZG1ldGhvZC5fY2FjaGVkZnVu Yy5fX25hbWVfXyA6IENhbGxlcn0KKysgICAgICAgICAgICBpZiBpbnN0Ll9jYWNoZWRfbWV0aG9k cyBpcyBOb25lOgorKyAgICAgICAgICAgICAgICBpbnN0Ll9jYWNoZWRfbWV0aG9kcyA9IHtzZWxm Ll9jYWNoZWRtZXRob2QuX2NhY2hlZGZ1bmMuX19uYW1lX18gOiBDYWxsZXJ9CisgICAgICAgICAg ICAgZWxzZToKKy0gICAgICAgICAgICAgICAgKDxkaWN0Pmluc3QuX19jYWNoZWRfbWV0aG9kcylb c2VsZi5fY2FjaGVkbWV0aG9kLl9jYWNoZWRmdW5jLl9fbmFtZV9fXSA9IENhbGxlcgorKyAgICAg ICAgICAgICAgICAoPGRpY3Q+aW5zdC5fY2FjaGVkX21ldGhvZHMpW3NlbGYuX2NhY2hlZG1ldGhv ZC5fY2FjaGVkZnVuYy5fX25hbWVfX10gPSBDYWxsZXIKKyAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1 dGVFcnJvcjoKKyAgICAgICAgICAgICBwYXNzCisgICAgICAgICByZXR1cm4gQ2FsbGVyCitAQCAt MjQyMSw3ICsyNDI1LDcgQEAgY2RlZiBjbGFzcyBDYWNoZWRNZXRob2RDYWxsZXJOb0FyZ3MoQ2Fj aGVkRnVuY3Rpb24pOgorICAgICAgICAgVGhpcyBnZXR0ZXIgYXR0ZW1wdHMgdG8gYXNzaWduIGEg Ym91bmQgbWV0aG9kIGFzIGFuCisgICAgICAgICBhdHRyaWJ1dGUgdG8gdGhlIGdpdmVuIGluc3Rh bmNlLiBJZiB0aGlzIGlzIG5vdAorICAgICAgICAgcG9zc2libGUgKGZvciBleGFtcGxlLCBmb3Ig c29tZSBleHRlbnNpb24gY2xhc3NlcyksCistICAgICAgICBpdCBpcyBhdHRlbXB0ZWQgdG8gZmlu ZCBhbiBhdHRyaWJ1dGUgYGBfX2NhY2hlZF9tZXRob2RzYGAsCisrICAgICAgICBpdCBpcyBhdHRl bXB0ZWQgdG8gZmluZCBhbiBhdHRyaWJ1dGUgYGBfY2FjaGVkX21ldGhvZHNgYCwKKyAgICAgICAg IGFuZCBzdG9yZS9yZXRyaWV2ZSB0aGUgYm91bmQgbWV0aG9kIHRoZXJlLiBJbiB0aGF0CisgICAg ICAgICB3YXksIGNhY2hlZCBtZXRob2RzIGNhbiBiZSBpbXBsZW1lbnRlZCBmb3IgZXh0ZW5zaW9u CisgICAgICAgICBjbGFzc2VzIGRlcml2aW5nIGZyb20gOmNsYXNzOmB+c2FnZS5zdHJ1Y3R1cmUu cGFyZW50LlBhcmVudGAKK0BAIC0yNDcyLDcgKzI0NzYsNyBAQCBjZGVmIGNsYXNzIENhY2hlZE1l dGhvZENhbGxlck5vQXJncyhDYWNoZWRGdW5jdGlvbik6CisgICAgICAgICAiIiIKKyAgICAgICAg ICMgVGhpcyBpcyBmb3IgUGFyZW50cyBvciBFbGVtZW50cyB0aGF0IGRvIG5vdCBhbGxvdyBhdHRy aWJ1dGUgYXNzaWdubWVudAorICAgICAgICAgdHJ5OgorLSAgICAgICAgICAgIHJldHVybiAoPGRp Y3Q+aW5zdC5fX2NhY2hlZF9tZXRob2RzKVtzZWxmLl9fbmFtZV9fXQorKyAgICAgICAgICAgIHJl dHVybiAoPGRpY3Q+aW5zdC5fY2FjaGVkX21ldGhvZHMpW3NlbGYuX19uYW1lX19dCisgICAgICAg ICBleGNlcHQgKEF0dHJpYnV0ZUVycm9yLCBUeXBlRXJyb3IsIEtleUVycm9yKToKKyAgICAgICAg ICAgICBwYXNzCisgICAgICAgICBDYWxsZXIgPSBDYWNoZWRNZXRob2RDYWxsZXJOb0FyZ3MoaW5z dCwgc2VsZi5mLCBuYW1lPXNlbGYuX19uYW1lX18sIGRvX3BpY2tsZT1zZWxmLmRvX3BpY2tsZSkK K0BAIC0yNDgyLDEwICsyNDg2LDEwIEBAIGNkZWYgY2xhc3MgQ2FjaGVkTWV0aG9kQ2FsbGVyTm9B cmdzKENhY2hlZEZ1bmN0aW9uKToKKyAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAg ICAgICAgICAgICBwYXNzCisgICAgICAgICB0cnk6CistICAgICAgICAgICAgaWYgaW5zdC5fX2Nh Y2hlZF9tZXRob2RzIGlzIE5vbmU6CistICAgICAgICAgICAgICAgIGluc3QuX19jYWNoZWRfbWV0 aG9kcyA9IHtzZWxmLl9fbmFtZV9fIDogQ2FsbGVyfQorKyAgICAgICAgICAgIGlmIGluc3QuX2Nh Y2hlZF9tZXRob2RzIGlzIE5vbmU6CisrICAgICAgICAgICAgICAgIGluc3QuX2NhY2hlZF9tZXRo b2RzID0ge3NlbGYuX19uYW1lX18gOiBDYWxsZXJ9CisgICAgICAgICAgICAgZWxzZToKKy0gICAg ICAgICAgICAgICAgKDxkaWN0Pmluc3QuX19jYWNoZWRfbWV0aG9kcylbc2VsZi5fX25hbWVfX10g PSBDYWxsZXIKKysgICAgICAgICAgICAgICAgKDxkaWN0Pmluc3QuX2NhY2hlZF9tZXRob2RzKVtz ZWxmLl9fbmFtZV9fXSA9IENhbGxlcgorICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgor ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIHJldHVybiBDYWxsZXIKK0BAIC0yNjk4LDcgKzI3 MDIsMTEgQEAgY2RlZiBjbGFzcyBDYWNoZWRNZXRob2QoKToKKyAgICAgICAgIHNlbGYuX2NhY2hl X25hbWUgPSAnX2NhY2hlX18nICsgKG5hbWUgb3IgZi5fX25hbWVfXykKKyAgICAgICAgIHNlbGYu X2NhY2hlZGZ1bmMgPSBDYWNoZWRGdW5jdGlvbihmLCBjbGFzc21ldGhvZD1UcnVlLCBuYW1lPW5h bWUsIGtleT1rZXksIGRvX3BpY2tsZT1kb19waWNrbGUpCisgICAgICAgICBzZWxmLl9fbmFtZV9f ID0gc2VsZi5fY2FjaGVkZnVuYy5fX25hbWVfXworLSAgICAgICAgc2VsZi5fX21vZHVsZV9fID0g c2VsZi5fY2FjaGVkZnVuYy5fX21vZHVsZV9fCisrICAgICAgICBzZWxmLl9fY2FjaGVkX21vZHVs ZV9fID0gc2VsZi5fY2FjaGVkZnVuYy5fX21vZHVsZV9fCisrCisrICAgIEBwcm9wZXJ0eQorKyAg ICBkZWYgX19tb2R1bGVfXyhzZWxmKToKKysgICAgICAgIHJldHVybiBzZWxmLl9fY2FjaGVkX21v ZHVsZV9fCisgCisgICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBpbnN0LCAqYXJncywgKiprd2RzKToK KyAgICAgICAgICIiIgorQEAgLTI4MjgsNyArMjgzNiw3IEBAIGNkZWYgY2xhc3MgQ2FjaGVkTWV0 aG9kKCk6CisgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAgbmFt ZSA9IHNlbGYuX19uYW1lX18KKyAgICAgICAgIHRyeToKKy0gICAgICAgICAgICByZXR1cm4gKDxk aWN0Pmluc3QuX19jYWNoZWRfbWV0aG9kcylbbmFtZV0KKysgICAgICAgICAgICByZXR1cm4gKDxk aWN0Pmluc3QuX2NhY2hlZF9tZXRob2RzKVtuYW1lXQorICAgICAgICAgZXhjZXB0IChBdHRyaWJ1 dGVFcnJvciwgVHlwZUVycm9yLCBLZXlFcnJvcik6CisgICAgICAgICAgICAgcGFzcworICAgICAg ICAgIyBBcHBhcmVudGx5IHdlIG5lZWQgdG8gY29uc3RydWN0IHRoZSBjYWxsZXIuCitAQCAtMjg0 MCw4ICsyODQ4LDYgQEAgY2RlZiBjbGFzcyBDYWNoZWRNZXRob2QoKToKKyAgICAgICAgICAgICAg ICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgaWYgTUVUSF9OT0FSR1MmUHlDRnVuY3Rpb25f R2V0RmxhZ3MoZi5fX2dldF9fKGluc3QsY2xzKSk6CisgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5uYXJncyA9IDEKKy0gICAgICAgICAgICAgICAgICAgIGVsc2U6CistICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5uYXJncyA9IDIKKyAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2Vw dGlvbjoKKyAgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgICBpZiBzZWxmLm5h cmdzID09IDA6CitAQCAtMjg2NCwxMCArMjg3MCwxMCBAQCBjZGVmIGNsYXNzIENhY2hlZE1ldGhv ZCgpOgorICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgIHBhc3MK KyAgICAgICAgIHRyeToKKy0gICAgICAgICAgICBpZiBpbnN0Ll9fY2FjaGVkX21ldGhvZHMgaXMg Tm9uZToKKy0gICAgICAgICAgICAgICAgaW5zdC5fX2NhY2hlZF9tZXRob2RzID0ge25hbWUgOiBD YWxsZXJ9CisrICAgICAgICAgICAgaWYgaW5zdC5fY2FjaGVkX21ldGhvZHMgaXMgTm9uZToKKysg ICAgICAgICAgICAgICAgaW5zdC5fY2FjaGVkX21ldGhvZHMgPSB7bmFtZSA6IENhbGxlcn0KKyAg ICAgICAgICAgICBlbHNlOgorLSAgICAgICAgICAgICAgICAoPGRpY3Q+aW5zdC5fX2NhY2hlZF9t ZXRob2RzKVtuYW1lXSA9IENhbGxlcgorKyAgICAgICAgICAgICAgICAoPGRpY3Q+aW5zdC5fY2Fj aGVkX21ldGhvZHMpW25hbWVdID0gQ2FsbGVyCisgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJy b3I6CisgICAgICAgICAgICAgcGFzcworICAgICAgICAgcmV0dXJuIENhbGxlcgorQEAgLTI5NjUs MTIgKzI5NzEsMTIgQEAgY2RlZiBjbGFzcyBDYWNoZWRTcGVjaWFsTWV0aG9kKENhY2hlZE1ldGhv ZCk6CisgICAgICAgICAgICAgICAgIEQgPSBpbnN0Ll9fZGljdF9fCisgICAgICAgICAgICAgZXhj ZXB0IChUeXBlRXJyb3IsIEF0dHJpYnV0ZUVycm9yKToKKyAgICAgICAgICAgICAgICAgdHJ5Ogor LSAgICAgICAgICAgICAgICAgICAgRCA9IGluc3QuX19jYWNoZWRfbWV0aG9kcworKyAgICAgICAg ICAgICAgICAgICAgRCA9IGluc3QuX2NhY2hlZF9tZXRob2RzCisgICAgICAgICAgICAgICAgIGV4 Y2VwdCAoVHlwZUVycm9yLCBBdHRyaWJ1dGVFcnJvcik6CistICAgICAgICAgICAgICAgICAgICBy YWlzZSBUeXBlRXJyb3IoIkZvciBhIGNhY2hlZCBzcGVjaWFsIG1ldGhvZCwgZWl0aGVyIGF0dHJp YnV0ZSBhc3NpZ25tZW50IG9yIGEgcHVibGljICdfX2NhY2hlZF9tZXRob2RzJyBhdHRyaWJ1dGUg b2YgdHlwZSA8ZGljdD4gaXMgbmVlZGVkIikKKysgICAgICAgICAgICAgICAgICAgIHJhaXNlIFR5 cGVFcnJvcigiRm9yIGEgY2FjaGVkIHNwZWNpYWwgbWV0aG9kLCBlaXRoZXIgYXR0cmlidXRlIGFz c2lnbm1lbnQgb3IgYSBwdWJsaWMgJ19jYWNoZWRfbWV0aG9kcycgYXR0cmlidXRlIG9mIHR5cGUg PGRpY3Q+IGlzIG5lZWRlZCIpCisgICAgICAgICAgICAgaWYgRCBpcyBOb25lOgorLSAgICAgICAg ICAgICAgICAjIFRoaXMgY2FuIG9ubHkgaGFwcGVuIGluIHRoZSBjYXNlIG9mIF9fY2FjaGVkX21l dGhvZHMKKy0gICAgICAgICAgICAgICAgRCA9IGluc3QuX19jYWNoZWRfbWV0aG9kcyA9IHt9Cisr ICAgICAgICAgICAgICAgICMgVGhpcyBjYW4gb25seSBoYXBwZW4gaW4gdGhlIGNhc2Ugb2YgX2Nh Y2hlZF9tZXRob2RzCisrICAgICAgICAgICAgICAgIEQgPSBpbnN0Ll9jYWNoZWRfbWV0aG9kcyA9 IHt9CisgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIERbbmFtZV0KK0BAIC0zMjk4LDEzICszMzA0LDEzIEBAIGNkZWYg Y2xhc3MgQ2FjaGVkSW5QYXJlbnRNZXRob2QoQ2FjaGVkTWV0aG9kKToKKyAgICAgICAgICAgICBy ZXR1cm4gUC5fX2RpY3RfXy5zZXRkZWZhdWx0KHNlbGYuX2NhY2hlX25hbWUsIGRlZmF1bHQpCisg ICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAgcGFzcworLSAgICAg ICAgaWYgbm90IGhhc2F0dHIoUCwnX19jYWNoZWRfbWV0aG9kcycpOgorKyAgICAgICAgaWYgbm90 IGhhc2F0dHIoUCwnX2NhY2hlZF9tZXRob2RzJyk6CisgICAgICAgICAgICAgcmFpc2UgVHlwZUVy cm9yKCJUaGUgcGFyZW50IG9mIHRoaXMgZWxlbWVudCBkb2VzIG5vdCBhbGxvdyBhdHRyaWJ1dGUg YXNzaWdubWVudFxuIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgYW5kIGRv ZXMgbm90IGRlc2NlbmQgZnJvbSB0aGUgUGFyZW50IGJhc2UgY2xhc3MuXG4iICsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIiAgICBDYW5ub3QgdXNlIENhY2hlZEluUGFyZW50TWV0aG9k LiIpCistICAgICAgICBpZiBQLl9fY2FjaGVkX21ldGhvZHMgaXMgTm9uZToKKy0gICAgICAgICAg ICBQLl9fY2FjaGVkX21ldGhvZHMgPSB7fQorLSAgICAgICAgcmV0dXJuICg8ZGljdD5QLl9fY2Fj aGVkX21ldGhvZHMpLnNldGRlZmF1bHQoc2VsZi5fY2FjaGVfbmFtZSwgZGVmYXVsdCkKKysgICAg ICAgIGlmIFAuX2NhY2hlZF9tZXRob2RzIGlzIE5vbmU6CisrICAgICAgICAgICAgUC5fY2FjaGVk X21ldGhvZHMgPSB7fQorKyAgICAgICAgcmV0dXJuICg8ZGljdD5QLl9jYWNoZWRfbWV0aG9kcyku c2V0ZGVmYXVsdChzZWxmLl9jYWNoZV9uYW1lLCBkZWZhdWx0KQorIAorICAgICBkZWYgX19nZXRf XyhzZWxmLCBpbnN0LCBjbHMpOgorICAgICAgICAgIiIiCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv bWlzYy9jeXRob24ucHkgYi9zcmMvc2FnZS9taXNjL2N5dGhvbi5weQoraW5kZXggZjQwODNmMzkw OWIuLjVmODNmNTg1YzNhIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWlzYy9jeXRob24ucHkKKysr KyBiL3NyYy9zYWdlL21pc2MvY3l0aG9uLnB5CitAQCAtNjQ2LDkgKzY0Niw5IEBAIGRlZiBjb21w aWxlX2FuZF9sb2FkKGNvZGUsICoqa3dkcyk6CisgICAgICAgICAuLi4uOiAgICAgY2RlZiBQb2x5 bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJlcyA9IGYuX25ldygpCisgICAgICAgICAuLi4uOiAgICAg Y2RlZiB1bnNpZ25lZCBsb25nIGsKKyAgICAgICAgIC4uLi46ICAgICBjZGVmIFJhdGlvbmFsIHog PSBSYXRpb25hbCgwKQorLSAgICAgICAgLi4uLjogICAgIGZvciBrIGluIHJhbmdlKGZtcHFfcG9s eV9sZW5ndGgoZi5fX3BvbHkpKToKKy0gICAgICAgIC4uLi46ICAgICAgICAgZm1wcV9wb2x5X2dl dF9jb2VmZl9tcHEoei52YWx1ZSwgZi5fX3BvbHksIGspCistICAgICAgICAuLi4uOiAgICAgICAg IGZtcHFfcG9seV9zZXRfY29lZmZfbXBxKHJlcy5fX3BvbHksIG4qaywgei52YWx1ZSkKKysgICAg ICAgIC4uLi46ICAgICBmb3IgayBpbiByYW5nZShmbXBxX3BvbHlfbGVuZ3RoKGYuX3BvbHkpKToK KysgICAgICAgIC4uLi46ICAgICAgICAgZm1wcV9wb2x5X2dldF9jb2VmZl9tcHEoei52YWx1ZSwg Zi5fcG9seSwgaykKKysgICAgICAgIC4uLi46ICAgICAgICAgZm1wcV9wb2x5X3NldF9jb2VmZl9t cHEocmVzLl9wb2x5LCBuKmssIHoudmFsdWUpCisgICAgICAgICAuLi4uOiAgICAgcmV0dXJuIHJl cworICAgICAgICAgLi4uLjogJycnCisgICAgICAgICBzYWdlOiBtb2R1bGUgPSBjb21waWxlX2Fu ZF9sb2FkKGNvZGUpICAjIGxvbmcgdGltZQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21pc2MvZnBp Y2tsZS5weXggYi9zcmMvc2FnZS9taXNjL2ZwaWNrbGUucHl4CitpbmRleCA5ZjgwYThmMzFhYS4u MzdjMjZlNDMxYmEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9taXNjL2ZwaWNrbGUucHl4CisrKysg Yi9zcmMvc2FnZS9taXNjL2ZwaWNrbGUucHl4CitAQCAtMTI0LDEwICsxMjQsMTIgQEAgZGVmIGNh bGxfcGlja2xlZF9mdW5jdGlvbihmcGFyZ3MpOgorIGRlZiBwaWNrbGVNZXRob2QobWV0aG9kKToK KyAgICAgJ3N1cHBvcnQgZnVuY3Rpb24gZm9yIGNvcHlyZWcgdG8gcGlja2xlIG1ldGhvZCByZWZz JworIAorLSAgICAjIE5vdGU6IE9uIFB5dGhvbiAzIHRoZXJlIGlzIG5vIC5pbV9jbGFzcyBidXQg d2UgY2FuIGdldCB0aGUgaW5zdGFuY2UncworLSAgICAjIGNsYXNzIHRocm91Z2ggLl9fc2VsZl9f Ll9fY2xhc3NfXworLSAgICBjbHMgPSBnZXRhdHRyKG1ldGhvZCwgJ2ltX2NsYXNzJywgbWV0aG9k Ll9fc2VsZl9fLl9fY2xhc3NfXykKKy0gICAgcmV0dXJuICh1bnBpY2tsZU1ldGhvZCwgKG1ldGhv ZC5fX2Z1bmNfXy5fX25hbWVfXywgbWV0aG9kLl9fc2VsZl9fLCBjbHMpKQorKyAgICBpZiBpc2lu c3RhbmNlKG1ldGhvZC5fX3NlbGZfXywgdHlwZSk6CisrICAgICAgICAjIFRoaXMgaXMgYSBjbGFz cyBtZXRob2QsIHNvIGdldCBpdCBmcm9tIHRoZSB0eXBlIGRpcmVjdGx5CisrICAgICAgICByZXR1 cm4gKGdldGF0dHIsIChtZXRob2QuX19zZWxmX18sIG1ldGhvZC5fX2Z1bmNfXy5fX25hbWVfXykp CisrICAgIGVsc2U6CisrICAgICAgICBjbHMgPSBtZXRob2QuX19zZWxmX18uX19jbGFzc19fCisr ICAgICAgICByZXR1cm4gKHVucGlja2xlTWV0aG9kLCAobWV0aG9kLl9fZnVuY19fLl9fbmFtZV9f LCBtZXRob2QuX19zZWxmX18sIGNscykpCisgCisgCisgZGVmIHVucGlja2xlTWV0aG9kKGltX25h bWUsCitAQCAtMTM5LDEwICsxNDEsNyBAQCBkZWYgdW5waWNrbGVNZXRob2QoaW1fbmFtZSwKKyAg ICAgICAgIGlmIF9fc2VsZl9fIGlzIE5vbmU6CisgICAgICAgICAgICAgcmV0dXJuIHVuYm91bmQK KyAKKy0gICAgICAgICMgTm90ZTogT24gUHl0aG9uIDIgInVuYm91bmQgbWV0aG9kcyIgYXJlIGp1 c3QgZnVuY3Rpb25zLCBzbyB0aGV5IGRvbid0CistICAgICAgICAjIGhhdmUgYSBfX2Z1bmNfXwor LSAgICAgICAgYm91bmQgPSB0eXBlcy5NZXRob2RUeXBlKGdldGF0dHIodW5ib3VuZCwgJ19fZnVu Y19fJywgdW5ib3VuZCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19zZWxm X18pCisrICAgICAgICBib3VuZCA9IHR5cGVzLk1ldGhvZFR5cGUodW5ib3VuZCwgX19zZWxmX18p CisgICAgICAgICByZXR1cm4gYm91bmQKKyAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAg ICAgICAgYXNzZXJ0IF9fc2VsZl9fIGlzIG5vdCBOb25lLCAiTm8gcmVjb3Vyc2U6IG5vIGluc3Rh bmNlIHRvIGd1ZXNzIGZyb20uIgorQEAgLTE1MCwxMSArMTQ5LDggQEAgZGVmIHVucGlja2xlTWV0 aG9kKGltX25hbWUsCisgICAgICAgICAjIGNoYW5nZWQgYXJvdW5kIHNpbmNlIHdlIHBpY2tsZWQg dGhpcyBtZXRob2QsIHdlIG1heSBzdGlsbCBiZQorICAgICAgICAgIyBhYmxlIHRvIGdldCBpdCBi eSBsb29raW5nIG9uIHRoZSBpbnN0YW5jZSdzIGN1cnJlbnQgY2xhc3MuCisgICAgICAgICB1bmJv dW5kID0gZ2V0YXR0cihfX3NlbGZfXy5fX2NsYXNzX18sIGltX25hbWUpCistICAgICAgICBpZiBf X3NlbGZfXyBpcyBOb25lOgorLSAgICAgICAgICAgIHJldHVybiB1bmJvdW5kCisgCistICAgICAg ICBib3VuZCA9IHR5cGVzLk1ldGhvZFR5cGUoZ2V0YXR0cih1bmJvdW5kLCAnX19mdW5jX18nLCB1 bmJvdW5kKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3NlbGZfXykKKysg ICAgICAgIGJvdW5kID0gdHlwZXMuTWV0aG9kVHlwZSh1bmJvdW5kLCBfX3NlbGZfXykKKyAgICAg ICAgIHJldHVybiBib3VuZAorIAorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21pc2MvaW5oZXJp dF9jb21wYXJpc29uLnB5eCBiL3NyYy9zYWdlL21pc2MvaW5oZXJpdF9jb21wYXJpc29uLnB5eAor aW5kZXggZjA0NmY1ZmI4Y2UuLmFhOTdmNjY0NDk2IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWlz Yy9pbmhlcml0X2NvbXBhcmlzb24ucHl4CisrKysgYi9zcmMvc2FnZS9taXNjL2luaGVyaXRfY29t cGFyaXNvbi5weXgKK0BAIC01NCw2ICs1NCw4IEBAIGNkZWYgY2xhc3MgSW5oZXJpdENvbXBhcmlz b25NZXRhY2xhc3ModHlwZSk6CisgICAgICAgICBzYWdlOiAjIG5lZWRzIHNhZ2UubWlzYy5jeXRo b24KKyAgICAgICAgIHNhZ2U6IGN5dGhvbigKKyAgICAgICAgIC4uLi46ICcnJworKyAgICAgICAg Li4uLjogY2ltcG9ydCBjeXRob24KKysgICAgICAgIC4uLi46CisgICAgICAgICAuLi4uOiBmcm9t IHNhZ2UubWlzYy5pbmhlcml0X2NvbXBhcmlzb24gY2ltcG9ydCBJbmhlcml0Q29tcGFyaXNvbk1l dGFjbGFzcworICAgICAgICAgLi4uLjoKKyAgICAgICAgIC4uLi46IGNkZWYgY2xhc3MgQmFzZSgp OgorQEAgLTY2LDYgKzY4LDcgQEAgY2RlZiBjbGFzcyBJbmhlcml0Q29tcGFyaXNvbk1ldGFjbGFz cyh0eXBlKToKKyAgICAgICAgIC4uLi46ICAgICAgICAgcmV0dXJuIDEKKyAgICAgICAgIC4uLi46 CisgICAgICAgICAuLi4uOiBjZGVmIGNsYXNzIERlcml2ZWRXaXRoUmljaGNtcChCYXNlKToKKysg ICAgICAgIC4uLi46ICAgICBAY3l0aG9uLmFsd2F5c19hbGxvd19rZXl3b3JkcyhGYWxzZSkKKyAg ICAgICAgIC4uLi46ICAgICBkZWYgX19nZXRtZXRhY2xhc3NfXyhfKToKKyAgICAgICAgIC4uLi46 ICAgICAgICAgZnJvbSBzYWdlLm1pc2MuaW5oZXJpdF9jb21wYXJpc29uIGltcG9ydCBJbmhlcml0 Q29tcGFyaXNvbk1ldGFjbGFzcworICAgICAgICAgLi4uLjogICAgICAgICByZXR1cm4gSW5oZXJp dENvbXBhcmlzb25NZXRhY2xhc3MKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9taXNjL2xhenlfYXR0 cmlidXRlLnB5eCBiL3NyYy9zYWdlL21pc2MvbGF6eV9hdHRyaWJ1dGUucHl4CitpbmRleCA4MmEw ZjkwYjc3NS4uYmRiZWMzYjNiYTEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9taXNjL2xhenlfYXR0 cmlidXRlLnB5eAorKysrIGIvc3JjL3NhZ2UvbWlzYy9sYXp5X2F0dHJpYnV0ZS5weXgKK0BAIC0x MTEsMTIgKzExMSwxMiBAQCBjZGVmIGNsYXNzIF9sYXp5X2F0dHJpYnV0ZSgpOgorICAgICAgICAg aWYgYSBpcyBOb25lOiAjIHdoZW4gZG9pbmcgY2xzLnggZm9yIGNscyBhIGNsYXNzIGFuZCB4IGEg bGF6eSBhdHRyaWJ1dGUKKyAgICAgICAgICAgICByZXR1cm4gc2VsZgorICAgICAgICAgdHJ5Ogor LSAgICAgICAgICAgICMgX19jYWNoZWRfbWV0aG9kcyBpcyBzdXBwb3NlZCB0byBiZSBhIHB1Ymxp YyBDeXRob24gYXR0cmlidXRlLgorKyAgICAgICAgICAgICMgX2NhY2hlZF9tZXRob2RzIGlzIHN1 cHBvc2VkIHRvIGJlIGEgcHVibGljIEN5dGhvbiBhdHRyaWJ1dGUuCisgICAgICAgICAgICAgIyBB cHBhcmVudGx5LCB0aGVzZSBhcmUgKm5vdCogc3ViamVjdCB0byBuYW1lIG1hbmdsaW5nLgorLSAg ICAgICAgICAgIENNID0gZ2V0YXR0cihhLCAnX19jYWNoZWRfbWV0aG9kcycpCisrICAgICAgICAg ICAgQ00gPSBnZXRhdHRyKGEsICdfY2FjaGVkX21ldGhvZHMnKQorICAgICAgICAgICAgIGlmIENN IGlzIE5vbmU6CisgICAgICAgICAgICAgICAgIENNID0ge30KKy0gICAgICAgICAgICAgICAgc2V0 YXR0cihhLCAnX19jYWNoZWRfbWV0aG9kcycsIENNKQorKyAgICAgICAgICAgICAgICBzZXRhdHRy KGEsICdfY2FjaGVkX21ldGhvZHMnLCBDTSkKKyAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJv ciBhcyBtc2c6CisgICAgICAgICAgICAgQ00gPSBOb25lCisgICAgICAgICBpZiBDTSBpcyBub3Qg Tm9uZToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9taXNjL2xhenlfbGlzdC5weXggYi9zcmMvc2Fn ZS9taXNjL2xhenlfbGlzdC5weXgKK2luZGV4IGMxZmEwMjUwYTk1Li5iYTYyYzQ0NmI2OSAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL21pc2MvbGF6eV9saXN0LnB5eAorKysrIGIvc3JjL3NhZ2UvbWlz Yy9sYXp5X2xpc3QucHl4CitAQCAtMTA1OSw3ICsxMDU5LDExIEBAIGNkZWYgY2xhc3MgbGF6eV9s aXN0X2Zyb21fZnVuY3Rpb24obGF6eV9saXN0X2dlbmVyaWMpOgorICAgICAgICAgICAgIHN0ZXAg ICAgICAgICAxCisgICAgICAgICAiIiIKKyAgICAgICAgIHdoaWxlIGxlbihzZWxmLmNhY2hlKSA8 PSBpOgorLSAgICAgICAgICAgIHNlbGYuY2FjaGUuYXBwZW5kKHNlbGYuY2FsbGFibGUobGVuKHNl bGYuY2FjaGUpKSkKKysgICAgICAgICAgICB0cnk6CisrICAgICAgICAgICAgICAgIHZhbHVlID0g c2VsZi5jYWxsYWJsZShsZW4oc2VsZi5jYWNoZSkpCisrICAgICAgICAgICAgZXhjZXB0IFN0b3BJ dGVyYXRpb246CisrICAgICAgICAgICAgICAgIHJldHVybiAxCisrICAgICAgICAgICAgc2VsZi5j YWNoZS5hcHBlbmQodmFsdWUpCisgCisgICAgIGRlZiBfX3JlZHVjZV9fKHNlbGYpOgorICAgICAg ICAgciIiIgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21pc2Mvc2FnZWluc3BlY3QucHkgYi9zcmMv c2FnZS9taXNjL3NhZ2VpbnNwZWN0LnB5CitpbmRleCAzZGQwY2MwYTQ1Yi4uY2U1ZTk5ODcwMjcg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9taXNjL3NhZ2VpbnNwZWN0LnB5CisrKysgYi9zcmMvc2Fn ZS9taXNjL3NhZ2VpbnNwZWN0LnB5CitAQCAtMjI0LDcgKzIyNCwxMSBAQCBkZWYgaXNjbGFzc2lu c3RhbmNlKG9iaik6CisgICAgIHJldHVybiAobm90IGluc3BlY3QuaXNjbGFzcyhvYmopIGFuZAor ICAgICAgICAgICAgIGhhc2F0dHIob2JqLCAnX19jbGFzc19fJykgYW5kCisgICAgICAgICAgICAg aGFzYXR0cihvYmouX19jbGFzc19fLCAnX19tb2R1bGVfXycpIGFuZAorLSAgICAgICAgICAgIG9i ai5fX2NsYXNzX18uX19tb2R1bGVfXyBub3QgaW4gYnVpbHRpbl9tb2RzKQorKyAgICAgICAgICAg IG9iai5fX2NsYXNzX18uX19tb2R1bGVfXyBub3QgaW4gYnVpbHRpbl9tb2RzIGFuZAorKyAgICAg ICAgICAgICMgU3RhcnRpbmcgd2l0aCBDeXRob24gMywgQ3l0aG9uJ3MgYnVpbHRpbiB0eXBlcyBo YXZlIF9fbW9kdWxlX18gc2V0CisrICAgICAgICAgICAgIyB0byB0aGUgc2hhcmVkIG1vZHVsZSBu YW1lcyBsaWtlIF9jeXRob25fM18wXzAuCisrICAgICAgICAgICAgbm90IChpc2luc3RhbmNlKG9i ai5fX2NsYXNzX18uX19tb2R1bGVfXywgc3RyKSBhbmQKKysgICAgICAgICAgICAgICAgIG9iai5f X2NsYXNzX18uX19tb2R1bGVfXy5zdGFydHN3aXRoKCdfY3l0aG9uXycpKSkKKyAKKyAKKyAjIFBh cnNlIHN0cmluZ3Mgb2YgZm9ybSAiRmlsZTogc2FnZS9yaW5ncy9yYXRpb25hbC5weXggKHN0YXJ0 aW5nIGF0IGxpbmUgMTA4MCkiCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWlzYy9zZXNzaW9uLnB5 eCBiL3NyYy9zYWdlL21pc2Mvc2Vzc2lvbi5weXgKK2luZGV4IGRlNjQ5ZjgwNDI1Li4zMTQ1NGRh Yzk5MyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21pc2Mvc2Vzc2lvbi5weXgKKysrKyBiL3NyYy9z YWdlL21pc2Mvc2Vzc2lvbi5weXgKK0BAIC04MCw2ICs4MCw4IEBAIGZyb20gc2FnZS5taXNjLnBl cnNpc3QgaW1wb3J0IGxvYWQsIHNhdmUsIGxvYWRzLCBkdW1wcworIAorIHN0YXRlX2F0X2luaXQg PSBOb25lCisgCisrQ3l0aG9uRnVuY3Rpb25UeXBlID0gdHlwZShsYW1iZGE6IE5vbmUpCisrCisg ZGVmIGluaXQoc3RhdGU9Tm9uZSk6CisgICAgICIiIgorICAgICBJbml0aWFsaXplIHNvbWUgZGlj dGlvbmFyaWVzIG5lZWRlZCBieSB0aGUgOmZ1bmM6YHNob3dfaWRlbnRpZmllcnNgLAorQEAgLTMx MSw3ICszMTMsNyBAQCBkZWYgc2F2ZV9zZXNzaW9uKG5hbWU9J3NhZ2Vfc2Vzc2lvbicsIHZlcmJv c2U9RmFsc2UpOgorICAgICBmb3IgayBpbiBzaG93X2lkZW50aWZpZXJzKGhpZGRlbiA9IFRydWUp OgorICAgICAgICAgdHJ5OgorICAgICAgICAgICAgIHggPSBzdGF0ZVtrXQorLSAgICAgICAgICAg IGlmIGlzaW5zdGFuY2UoeCwgKHR5cGVzLkZ1bmN0aW9uVHlwZSwgdHlwZXMuQnVpbHRpbkZ1bmN0 aW9uVHlwZSwgdHlwZXMuQnVpbHRpbk1ldGhvZFR5cGUsIHR5cGUpKToKKysgICAgICAgICAgICBp ZiBpc2luc3RhbmNlKHgsICh0eXBlcy5GdW5jdGlvblR5cGUsIHR5cGVzLkJ1aWx0aW5GdW5jdGlv blR5cGUsIHR5cGVzLkJ1aWx0aW5NZXRob2RUeXBlLCBDeXRob25GdW5jdGlvblR5cGUsIHR5cGUp KToKKyAgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCd7fSBpcyBhIGZ1bmN0aW9uLCBt ZXRob2QsIGNsYXNzIG9yIHR5cGUnLmZvcm1hdChrKSkKKyAKKyAgICAgICAgICAgICAjIFdlIGF0 dGVtcHQgdG8gcGlja2xlICphbmQqIHVucGlja2xlIGV2ZXJ5IHZhcmlhYmxlIHRvCitkaWZmIC0t Z2l0IGEvc3JjL3NhZ2UvbW9kdWxhci9tb2RzeW0vcDFsaXN0LnB4ZCBiL3NyYy9zYWdlL21vZHVs YXIvbW9kc3ltL3AxbGlzdC5weGQKK2luZGV4IGNjMjRhMzMxMzliLi5iNjZmMjhiOGFkNiAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL21vZHVsYXIvbW9kc3ltL3AxbGlzdC5weGQKKysrKyBiL3NyYy9z YWdlL21vZHVsYXIvbW9kc3ltL3AxbGlzdC5weGQKK0BAIC0yMSw3ICsyMSw3IEBAIGNkZWYgY2xh c3MgUDFMaXN0OgorICAgICAjIEhlcmUgd2UgdXNlIGEgcG9pbnRlciB0byBhIGZ1bmN0aW9uLCBz byB0aGUgaWYgbG9naWMKKyAgICAgIyBmb3Igbm9ybWFsaXppbmcgYW4gZWxlbWVudCBkb2VzIG5v dCBuZWVkIHRvIGJlIHVzZWQKKyAgICAgIyBldmVyeSB0aW1lIHRoZSB1c2VyIGNhbGxzIHRoZSBu b3JtYWxpemUgZnVuY3Rpb24uCistICAgIGNkZWYgaW50ICgqX19ub3JtYWxpemUpKGludCBOLCBp bnQgdSwgaW50IHYsCisrICAgIGNkZWYgaW50ICgqX25vcm1hbGl6ZSkoaW50IE4sIGludCB1LCBp bnQgdiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50KiB1dSwgaW50KiB2diwgaW50 KiBzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbXB1dGVfcykgZXhjZXB0 IC0xCisgICAgIGNwZGVmIGluZGV4KHNlbGYsIGludCB1LCBpbnQgdikKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9tb2R1bGFyL21vZHN5bS9wMWxpc3QucHl4IGIvc3JjL3NhZ2UvbW9kdWxhci9tb2Rz eW0vcDFsaXN0LnB5eAoraW5kZXggMTExZDQwOGNlZTQuLjMwYThmNzQ3MWRkIDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvbW9kdWxhci9tb2RzeW0vcDFsaXN0LnB5eAorKysrIGIvc3JjL3NhZ2UvbW9k dWxhci9tb2RzeW0vcDFsaXN0LnB5eAorQEAgLTcyMywxMCArNzIzLDEwIEBAIGNkZWYgY2xhc3Mg UDFMaXN0KCk6CisgICAgICAgICBzZWxmLl9fTiA9IE4KKyAgICAgICAgIGlmIE4gPD0gNDYzNDA6 CisgICAgICAgICAgICAgc2VsZi5fX2xpc3QgPSBwMWxpc3RfaW50KE4pCistICAgICAgICAgICAg c2VsZi5fX25vcm1hbGl6ZSA9IGNfcDFfbm9ybWFsaXplX2ludAorKyAgICAgICAgICAgIHNlbGYu X25vcm1hbGl6ZSA9IGNfcDFfbm9ybWFsaXplX2ludAorICAgICAgICAgZWxpZiBOIDw9IDIxNDc0 ODM2NDc6CisgICAgICAgICAgICAgc2VsZi5fX2xpc3QgPSBwMWxpc3RfbGxvbmcoTikKKy0gICAg ICAgICAgICBzZWxmLl9fbm9ybWFsaXplID0gY19wMV9ub3JtYWxpemVfbGxvbmcKKysgICAgICAg ICAgICBzZWxmLl9ub3JtYWxpemUgPSBjX3AxX25vcm1hbGl6ZV9sbG9uZworICAgICAgICAgZWxz ZToKKyAgICAgICAgICAgICByYWlzZSBPdmVyZmxvd0Vycm9yKCJwMWxpc3Qgbm90IGRlZmluZWQg Zm9yIHN1Y2ggbGFyZ2UgTi4iKQorICAgICAgICAgc2VsZi5fX2xpc3Quc29ydCgpCitAQCAtOTIx LDcgKzkyMSw3IEBAIGNkZWYgY2xhc3MgUDFMaXN0KCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IGNkZWYgaW50IHUsIHYsIHV1LCB2diwgc3MKKyAgICAgICAgIHUsdiA9IHNlbGYuX19saXN0W2ld CistICAgICAgICBzZWxmLl9fbm9ybWFsaXplKHNlbGYuX19OLCAtdSwgdiwgJnV1LCAmdnYsICZz cywgMCkKKysgICAgICAgIHNlbGYuX25vcm1hbGl6ZShzZWxmLl9fTiwgLXUsIHYsICZ1dSwgJnZ2 LCAmc3MsIDApCisgICAgICAgICBfLCBqID0gc2VhcmNoKHNlbGYuX19saXN0LCAodXUsdnYpKQor ICAgICAgICAgcmV0dXJuIGoKKyAKK0BAIC05NTQsNyArOTU0LDcgQEAgY2RlZiBjbGFzcyBQMUxp c3QoKToKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBpbnQgdSwgdiwgdXUsIHZ2LCBzcwor ICAgICAgICAgdSx2ID0gc2VsZi5fX2xpc3RbaV0KKy0gICAgICAgIHNlbGYuX19ub3JtYWxpemUo c2VsZi5fX04sIC12LCB1LCAmdXUsICZ2diwgJnNzLCAwKQorKyAgICAgICAgc2VsZi5fbm9ybWFs aXplKHNlbGYuX19OLCAtdiwgdSwgJnV1LCAmdnYsICZzcywgMCkKKyAgICAgICAgIF8sIGogPSBz ZWFyY2goc2VsZi5fX2xpc3QsICh1dSx2dikpCisgICAgICAgICByZXR1cm4gagorIAorQEAgLTk4 Nyw3ICs5ODcsNyBAQCBjZGVmIGNsYXNzIFAxTGlzdCgpOgorICAgICAgICAgIiIiCisgICAgICAg ICBjZGVmIGludCB1LCB2LCB1dSwgdnYsIHNzCisgICAgICAgICB1LHYgPSBzZWxmLl9fbGlzdFtp XQorLSAgICAgICAgc2VsZi5fX25vcm1hbGl6ZShzZWxmLl9fTiwgdiwgLXUtdiwgJnV1LCAmdnYs ICZzcywgMCkKKysgICAgICAgIHNlbGYuX25vcm1hbGl6ZShzZWxmLl9fTiwgdiwgLXUtdiwgJnV1 LCAmdnYsICZzcywgMCkKKyAgICAgICAgIF8sIGogPSBzZWFyY2goc2VsZi5fX2xpc3QsICh1dSx2 dikpCisgICAgICAgICByZXR1cm4gagorIAorQEAgLTExNTMsNyArMTE1Myw3IEBAIGNkZWYgY2xh c3MgUDFMaXN0KCk6CisgICAgICAgICAgICAgVHJ1ZQorICAgICAgICAgIiIiCisgICAgICAgICBj ZGVmIGludCB1dSwgdnYsIHNzCistICAgICAgICBzZWxmLl9fbm9ybWFsaXplKHNlbGYuX19OLCB1 LCB2LCAmdXUsICZ2diwgJnNzLCAwKQorKyAgICAgICAgc2VsZi5fbm9ybWFsaXplKHNlbGYuX19O LCB1LCB2LCAmdXUsICZ2diwgJnNzLCAwKQorICAgICAgICAgcmV0dXJuICh1dSx2dikKKyAKKyAg ICAgZGVmIG5vcm1hbGl6ZV93aXRoX3NjYWxhcihzZWxmLCBpbnQgdSwgaW50IHYpOgorQEAgLTEx ODYsNyArMTE4Niw3IEBAIGNkZWYgY2xhc3MgUDFMaXN0KCk6CisgICAgICAgICAgICAgVHJ1ZQor ICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIGludCB1dSwgdnYsIHNzCistICAgICAgICBzZWxm Ll9fbm9ybWFsaXplKHNlbGYuX19OLCB1LCB2LCAmdXUsICZ2diwgJnNzLCAxKQorKyAgICAgICAg c2VsZi5fbm9ybWFsaXplKHNlbGYuX19OLCB1LCB2LCAmdXUsICZ2diwgJnNzLCAxKQorICAgICAg ICAgcmV0dXJuICh1dSwgdnYsIHNzKQorIAorICAgICBkZWYgTihzZWxmKToKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9udW1lcmljYWwvZ2F1c3NfbGVnZW5kcmUucHl4IGIvc3JjL3NhZ2UvbnVtZXJp Y2FsL2dhdXNzX2xlZ2VuZHJlLnB5eAoraW5kZXggNTMyNTc5N2M3YWEuLjk2NzA4YzViMWFjIDEw MDY0NAorLS0tIGEvc3JjL3NhZ2UvbnVtZXJpY2FsL2dhdXNzX2xlZ2VuZHJlLnB5eAorKysrIGIv c3JjL3NhZ2UvbnVtZXJpY2FsL2dhdXNzX2xlZ2VuZHJlLnB5eAorQEAgLTExNyw4ICsxMTcsOCBA QCBkZWYgbm9kZXNfdW5jYWNoZWQoZGVncmVlLCBwcmVjKToKKyAgICAgICAgIHJhaXNlIFZhbHVl RXJyb3IoImRlZ3JlZT0lcyBub3Qgc3VwcG9ydGVkIChkZWdyZWUgbXVzdCBiZSAzIG9yIGV2ZW4p IiAlIGRlZ3JlZSkKKyAgICAgUiA9IFJlYWxGaWVsZChpbnQocHJlYyozLzIpKQorICAgICBSb3V0 ID0gUmVhbEZpZWxkKHByZWMpCistICAgIG1wZnJfaW5pdDIodSxSLl9fcHJlYykKKy0gICAgbXBm cl9pbml0Mih2LFIuX19wcmVjKQorKyAgICBtcGZyX2luaXQyKHUsUi5fcHJlYykKKysgICAgbXBm cl9pbml0Mih2LFIuX3ByZWMpCisgICAgIFpFUk8gPSBSLnplcm8oKQorICAgICBPTkUgPSBSLm9u ZSgpCisgICAgIEhBTEYgPSBPTkUvMgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL251bWVyaWNhbC9s aW5lYXJfZnVuY3Rpb25zLnB5eCBiL3NyYy9zYWdlL251bWVyaWNhbC9saW5lYXJfZnVuY3Rpb25z LnB5eAoraW5kZXggNTU0OWZmNDM2ZjUuLmYzZmM2ZmU0MTljIDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvbnVtZXJpY2FsL2xpbmVhcl9mdW5jdGlvbnMucHl4CisrKysgYi9zcmMvc2FnZS9udW1lcmlj YWwvbGluZWFyX2Z1bmN0aW9ucy5weXgKK0BAIC0xNTc5LDcgKzE1NzksMTAgQEAgY2RlZiBjbGFz cyBMaW5lYXJDb25zdHJhaW50KExpbmVhckZ1bmN0aW9uT3JDb25zdHJhaW50KToKKyAgICAgICAg IHdoaWxlIFRydWU6CisgICAgICAgICAgICAgeWllbGQgKGxocywgcmhzKQorICAgICAgICAgICAg IGxocyA9IHJocworLSAgICAgICAgICAgIHJocyA9IG5leHQodGVybV9pdGVyKQorKyAgICAgICAg ICAgIHRyeToKKysgICAgICAgICAgICAgICAgcmhzID0gbmV4dCh0ZXJtX2l0ZXIpCisrICAgICAg ICAgICAgZXhjZXB0IFN0b3BJdGVyYXRpb246CisrICAgICAgICAgICAgICAgIHJldHVybgorIAor ICAgICBkZWYgaW5lcXVhbGl0aWVzKHNlbGYpOgorICAgICAgICAgIiIiCitAQCAtMTYxMiw3ICsx NjE1LDEwIEBAIGNkZWYgY2xhc3MgTGluZWFyQ29uc3RyYWludChMaW5lYXJGdW5jdGlvbk9yQ29u c3RyYWludCk6CisgICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgIHlpZWxkIChsaHMs IHJocykKKyAgICAgICAgICAgICBsaHMgPSByaHMKKy0gICAgICAgICAgICByaHMgPSBuZXh0KHRl cm1faXRlcikKKysgICAgICAgICAgICB0cnk6CisrICAgICAgICAgICAgICAgIHJocyA9IG5leHQo dGVybV9pdGVyKQorKyAgICAgICAgICAgIGV4Y2VwdCBTdG9wSXRlcmF0aW9uOgorKyAgICAgICAg ICAgICAgICByZXR1cm4KKyAKKyAgICAgZGVmIF9yZXByXyhzZWxmKToKKyAgICAgICAgIHIiIiIK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9xdWl2ZXJzL3JlcHJlc2VudGF0aW9uLnB5IGIvc3JjL3Nh Z2UvcXVpdmVycy9yZXByZXNlbnRhdGlvbi5weQoraW5kZXggOWMxMWViOGFkMGUuLmRiODJjYmQ3 Yzg2IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcXVpdmVycy9yZXByZXNlbnRhdGlvbi5weQorKysr IGIvc3JjL3NhZ2UvcXVpdmVycy9yZXByZXNlbnRhdGlvbi5weQorQEAgLTEyOTcsMTAgKzEyOTcs NyBAQCBkZWYgY29weShzZWxmKToKKyAgICAgICAgICAgICBzYWdlOiB2LmdldF9lbGVtZW50KDEp CisgICAgICAgICAgICAgKDEsIDApCisgICAgICAgICAiIiIKKy0gICAgICAgIGlmIGhhc2F0dHIo c2VsZiwgJ19fY3VzdG9tX25hbWUnKToKKy0gICAgICAgICAgICBuYW1lID0gc2VsZi5fX2N1c3Rv bV9uYW1lCistICAgICAgICBlbHNlOgorLSAgICAgICAgICAgIG5hbWUgPSBOb25lCisrICAgICAg ICBuYW1lID0gc2VsZi5nZXRfY3VzdG9tX25hbWUoKQorICAgICAgICAgcmV0dXJuIHNlbGYucGFy ZW50KCkoc2VsZi5fZWxlbXMuY29weSgpLCBuYW1lKQorIAorICMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitkaWZmIC0t Z2l0IGEvc3JjL3NhZ2UvcmluZ3MvY29tcGxleF9hcmIucHl4IGIvc3JjL3NhZ2UvcmluZ3MvY29t cGxleF9hcmIucHl4CitpbmRleCBlZjQzMmMxZTk0NS4uOTVlNjE1ZjNlZTYgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X2FyYi5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2Nv bXBsZXhfYXJiLnB5eAorQEAgLTg3NCw3ICs4NzQsNyBAQCBjbGFzcyBDb21wbGV4QmFsbEZpZWxk KFVuaXF1ZVJlcHJlc2VudGF0aW9uLCBzYWdlLnJpbmdzLmFiYy5Db21wbGV4QmFsbEZpZWxkKToK KyAgICAgICAgIGNkZWYgUmVhbEJhbGwgcmIKKyAgICAgICAgIGNkZWYgQ29tcGxleEJhbGwgY2IK KyAgICAgICAgIGFjYl9wb2x5X2luaXQocm91bmRlZF9wb2x5KQorLSAgICAgICAgY2RlZiBsb25n IGRlZyA9IGFjYl9wb2x5X2RlZ3JlZShwb2x5Ll9fcG9seSkKKysgICAgICAgIGNkZWYgbG9uZyBk ZWcgPSBhY2JfcG9seV9kZWdyZWUocG9seS5fcG9seSkKKyAgICAgICAgIGlmIGRlZyA8IDA6Cisg ICAgICAgICAgICAgcmFpc2UgQXJpdGhtZXRpY0Vycm9yKCJ0YWtpbmcgdGhlIHJvb3RzIG9mIHRo ZSB6ZXJvIHBvbHlub21pYWwiKQorICAgICAgICAgY2RlZiBhY2JfcHRyIHJvb3RzID0gX2FjYl92 ZWNfaW5pdChkZWcpCitAQCAtODgzLDcgKzg4Myw3IEBAIGNsYXNzIENvbXBsZXhCYWxsRmllbGQo VW5pcXVlUmVwcmVzZW50YXRpb24sIHNhZ2UucmluZ3MuYWJjLkNvbXBsZXhCYWxsRmllbGQpOgor ICAgICAgICAgICAgIHdoaWxlICgoaXNvbGF0ZWQgPCBkZWcgb3IgYW55KGFjYl9yZWxfYWNjdXJh Y3lfYml0cygmcm9vdHNbaV0pIDwgdGd0cHJlYworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBmb3IgaSBpbiByYW5nZShkZWcpKSkKKyAgICAgICAgICAgICAgICAgYW5k IHByZWMgPCBtYXhwcmVjKToKKy0gICAgICAgICAgICAgICAgYWNiX3BvbHlfc2V0X3JvdW5kKHJv dW5kZWRfcG9seSwgcG9seS5fX3BvbHksIHByZWMpCisrICAgICAgICAgICAgICAgIGFjYl9wb2x5 X3NldF9yb3VuZChyb3VuZGVkX3BvbHksIHBvbHkuX3BvbHksIHByZWMpCisgICAgICAgICAgICAg ICAgIG1heGl0ZXIgPSBtaW4obWF4KGRlZywgMzIpLCBwcmVjKQorICAgICAgICAgICAgICAgICBp ZiAocHJlYyA9PSBpbml0aWFsX3ByZWMpOgorICAgICAgICAgICAgICAgICAgICAgaXNvbGF0ZWQg PSBhY2JfcG9seV9maW5kX3Jvb3RzKHJvb3RzLCByb3VuZGVkX3BvbHksIE5VTEwsIG1heGl0ZXIs IHByZWMpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvY29tcGxleF9tcGMucHhkIGIvc3Jj L3NhZ2UvcmluZ3MvY29tcGxleF9tcGMucHhkCitpbmRleCA3NjJjMzhhZmJkYy4uZjdkOGNiOTQ5 MmMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X21wYy5weGQKKysrKyBiL3Ny Yy9zYWdlL3JpbmdzL2NvbXBsZXhfbXBjLnB4ZAorQEAgLTExLDcgKzExLDcgQEAgY2RlZiBjbGFz cyBNUENvbXBsZXhOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5GaWVsZEVsZW1lbnQpOgor ICAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcikKKyAKKyBjZGVmIGNsYXNzIE1QQ29tcGxleEZp ZWxkX2NsYXNzKHNhZ2UucmluZ3MucmluZy5GaWVsZCk6CistICAgIGNkZWYgcmVhZG9ubHkgaW50 IF9fcHJlYworKyAgICBjZGVmIHJlYWRvbmx5IGludCBfcHJlYworICAgICBjZGVmIG1wY19ybmRf dCBfX3JuZAorICAgICBjZGVmIG9iamVjdCBfX3JuZF9zdHIKKyAgICAgY2RlZiBvYmplY3QgX19y ZWFsX2ZpZWxkCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvY29tcGxleF9tcGMucHl4IGIv c3JjL3NhZ2UvcmluZ3MvY29tcGxleF9tcGMucHl4CitpbmRleCBiMzY4MWZmNzI0Zi4uYzg0N2E5 MzAyYjUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X21wYy5weXgKKysrKyBi L3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhfbXBjLnB5eAorQEAgLTMwNyw3ICszMDcsNyBAQCBjZGVm IGNsYXNzIE1QQ29tcGxleEZpZWxkX2NsYXNzKHNhZ2UucmluZ3MucmluZy5GaWVsZCk6CisgICAg ICAgICBpZiBwcmVjIDwgbXBmcl9wcmVjX21pbigpIG9yIHByZWMgPiBtcGZyX3ByZWNfbWF4KCk6 CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigicHJlYyAoPSVzKSBtdXN0IGJlID49ICVz IGFuZCA8PSAlcy4iICUgKAorICAgICAgICAgICAgICAgICBwcmVjLCBtcGZyX3ByZWNfbWluKCks IG1wZnJfcHJlY19tYXgoKSkpCistICAgICAgICBzZWxmLl9fcHJlYyA9IHByZWMKKysgICAgICAg IHNlbGYuX3ByZWMgPSBwcmVjCisgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShybmQsIHN0cik6 CisgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJybmQgbXVzdCBiZSBhIHN0cmluZyIpCisg ICAgICAgICB0cnk6CitAQCAtMzMxLDcgKzMzMSw3IEBAIGNkZWYgY2xhc3MgTVBDb21wbGV4Rmll bGRfY2xhc3Moc2FnZS5yaW5ncy5yaW5nLkZpZWxkKToKKyAgICAgICAgIGNkZWYgTVBDb21wbGV4 TnVtYmVyIHoKKyAgICAgICAgIHogPSBNUENvbXBsZXhOdW1iZXIuX19uZXdfXyhNUENvbXBsZXhO dW1iZXIpCisgICAgICAgICB6Ll9wYXJlbnQgPSBzZWxmCistICAgICAgICBtcGNfaW5pdDIoei52 YWx1ZSwgc2VsZi5fX3ByZWMpCisrICAgICAgICBtcGNfaW5pdDIoei52YWx1ZSwgc2VsZi5fcHJl YykKKyAgICAgICAgIHouaW5pdCA9IDEKKyAgICAgICAgIHJldHVybiB6CisgCitAQCAtMzQ0LDcg KzM0NCw3IEBAIGNkZWYgY2xhc3MgTVBDb21wbGV4RmllbGRfY2xhc3Moc2FnZS5yaW5ncy5yaW5n LkZpZWxkKToKKyAgICAgICAgICAgICBzYWdlOiBNUENvbXBsZXhGaWVsZCgyMDAsICdSTkREVScp ICMgaW5kaXJlY3QgZG9jdGVzdAorICAgICAgICAgICAgIENvbXBsZXggRmllbGQgd2l0aCAyMDAg Yml0cyBvZiBwcmVjaXNpb24gYW5kIHJvdW5kaW5nIFJORERVCisgICAgICAgICAiIiIKKy0gICAg ICAgIHMgPSAiQ29tcGxleCBGaWVsZCB3aXRoICVzIGJpdHMgb2YgcHJlY2lzaW9uIiVzZWxmLl9f cHJlYworKyAgICAgICAgcyA9ICJDb21wbGV4IEZpZWxkIHdpdGggJXMgYml0cyBvZiBwcmVjaXNp b24iJXNlbGYuX3ByZWMKKyAgICAgICAgIGlmIHNlbGYuX19ybmQgIT0gTVBDX1JORE5OOgorICAg ICAgICAgICAgIHMgPSBzICsgIiBhbmQgcm91bmRpbmcgJXMiJShzZWxmLl9fcm5kX3N0cikKKyAg ICAgICAgIHJldHVybiBzCitAQCAtNDY1LDEzICs0NjUsMTMgQEAgY2RlZiBjbGFzcyBNUENvbXBs ZXhGaWVsZF9jbGFzcyhzYWdlLnJpbmdzLnJpbmcuRmllbGQpOgorICAgICAgICAgaWYgUlIuaGFz X2NvZXJjZV9tYXBfZnJvbShTKToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fY29lcmNlX21h cF92aWEoW1JSXSwgUykKKyAKKy0gICAgICAgIGlmIGlzaW5zdGFuY2UoUywgTVBDb21wbGV4Rmll bGRfY2xhc3MpIGFuZCBTLnByZWMoKSA+PSBzZWxmLl9fcHJlYzoKKysgICAgICAgIGlmIGlzaW5z dGFuY2UoUywgTVBDb21wbGV4RmllbGRfY2xhc3MpIGFuZCBTLnByZWMoKSA+PSBzZWxmLl9wcmVj OgorICAgICAgICAgICAgICNGSVhNRTogV2hhdCBtYXAgd2hlbiByb3VuZGluZyBtb2RlcyBkaWZm ZXIgYnV0IHByZWMgaXMgdGhlIHNhbWUgPworICAgICAgICAgICAgICMgICAgICAgSG93IHRvIHBy b3ZpZGUgY29tbXV0YXRpdml0eSBvZiBtb3JwaGlzbXMgPworICAgICAgICAgICAgICMgICAgICAg Q2hhbmdlIF9jbXBfIHdoZW4gZG9uZQorICAgICAgICAgICAgIHJldHVybiBNUEN0b01QQyhTLCBz ZWxmKQorIAorLSAgICAgICAgaWYgaXNpbnN0YW5jZShTLCBDb21wbGV4RmllbGRfY2xhc3MpIGFu ZCBTLnByZWMoKSA+PSBzZWxmLl9fcHJlYzoKKysgICAgICAgIGlmIGlzaW5zdGFuY2UoUywgQ29t cGxleEZpZWxkX2NsYXNzKSBhbmQgUy5wcmVjKCkgPj0gc2VsZi5fcHJlYzoKKyAgICAgICAgICAg ICByZXR1cm4gQ0N0b01QQyhTLCBzZWxmKQorIAorICAgICAgICAgbGF0ZV9pbXBvcnQoKQorQEAg LTQ5MCw3ICs0OTAsNyBAQCBjZGVmIGNsYXNzIE1QQ29tcGxleEZpZWxkX2NsYXNzKHNhZ2Uucmlu Z3MucmluZy5GaWVsZCk6CisgICAgICAgICAgICAgc2FnZTogbG9hZHMoZHVtcHMoQykpID09IEMK KyAgICAgICAgICAgICBUcnVlCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBfX2NyZWF0 ZV9fTVBDb21wbGV4RmllbGRfdmVyc2lvbjAsIChzZWxmLl9fcHJlYywgc2VsZi5fX3JuZF9zdHIp CisrICAgICAgICByZXR1cm4gX19jcmVhdGVfX01QQ29tcGxleEZpZWxkX3ZlcnNpb24wLCAoc2Vs Zi5fcHJlYywgc2VsZi5fX3JuZF9zdHIpCisgCisgICAgIGRlZiBfX3JpY2hjbXBfXyhsZWZ0LCBy aWdodCwgaW50IG9wKToKKyAgICAgICAgICIiIgorQEAgLTUxMyw3ICs1MTMsNyBAQCBjZGVmIGNs YXNzIE1QQ29tcGxleEZpZWxkX2NsYXNzKHNhZ2UucmluZ3MucmluZy5GaWVsZCk6CisgCisgICAg ICAgICBjZGVmIE1QQ29tcGxleEZpZWxkX2NsYXNzIHMgPSA8TVBDb21wbGV4RmllbGRfY2xhc3M+ bGVmdAorICAgICAgICAgY2RlZiBNUENvbXBsZXhGaWVsZF9jbGFzcyBvID0gPE1QQ29tcGxleEZp ZWxkX2NsYXNzPnJpZ2h0CistICAgICAgICByZXR1cm4gcmljaGNtcChzLl9fcHJlYywgby5fX3By ZWMsIG9wKQorKyAgICAgICAgcmV0dXJuIHJpY2hjbXAocy5fcHJlYywgby5fcHJlYywgb3ApCisg CisgICAgIGRlZiBnZW4oc2VsZiwgbj0wKToKKyAgICAgICAgICIiIgorQEAgLTYwNCw3ICs2MDQs NyBAQCBjZGVmIGNsYXNzIE1QQ29tcGxleEZpZWxkX2NsYXNzKHNhZ2UucmluZ3MucmluZy5GaWVs ZCk6CisgICAgICAgICAgICAgc2FnZTogQyA9IE1QQ29tcGxleEZpZWxkKDEwLCAnUk5ETlonKTsg Qy5uYW1lKCkKKyAgICAgICAgICAgICAnTVBDb21wbGV4RmllbGQxMF9STkROWicKKyAgICAgICAg ICIiIgorLSAgICAgICAgcmV0dXJuICJNUENvbXBsZXhGaWVsZCVzXyVzIiUoc2VsZi5fX3ByZWMs IHNlbGYuX19ybmRfc3RyKQorKyAgICAgICAgcmV0dXJuICJNUENvbXBsZXhGaWVsZCVzXyVzIiUo c2VsZi5fcHJlYywgc2VsZi5fX3JuZF9zdHIpCisgCisgICAgIGRlZiBfX2hhc2hfXyhzZWxmKToK KyAgICAgICAgICIiIgorQEAgLTYyOSw3ICs2MjksNyBAQCBjZGVmIGNsYXNzIE1QQ29tcGxleEZp ZWxkX2NsYXNzKHNhZ2UucmluZ3MucmluZy5GaWVsZCk6CisgICAgICAgICAgICAgc2FnZTogTVBD b21wbGV4RmllbGQoMjIpLnByZWMoKQorICAgICAgICAgICAgIDIyCisgICAgICAgICAiIiIKKy0g ICAgICAgIHJldHVybiBzZWxmLl9fcHJlYworKyAgICAgICAgcmV0dXJuIHNlbGYuX3ByZWMKKyAK KyAgICAgZGVmIHJvdW5kaW5nX21vZGUoc2VsZik6CisgICAgICAgICAiIiIKK0BAIC03MDcsNyAr NzA3LDcgQEAgY2RlZiBjbGFzcyBNUENvbXBsZXhOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVu dC5GaWVsZEVsZW1lbnQpOgorICAgICAgICAgY2RlZiBNUENvbXBsZXhOdW1iZXIgegorICAgICAg ICAgeiA9IE1QQ29tcGxleE51bWJlci5fX25ld19fKE1QQ29tcGxleE51bWJlcikKKyAgICAgICAg IHouX3BhcmVudCA9IHNlbGYuX3BhcmVudAorLSAgICAgICAgbXBjX2luaXQyKHoudmFsdWUsICg8 TVBDb21wbGV4RmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fX3ByZWMpCisrICAgICAgICBtcGNf aW5pdDIoei52YWx1ZSwgKDxNUENvbXBsZXhGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9wcmVj KQorICAgICAgICAgei5pbml0ID0gMQorICAgICAgICAgcmV0dXJuIHoKKyAKK0BAIC03NjAsNyAr NzYwLDcgQEAgY2RlZiBjbGFzcyBNUENvbXBsZXhOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVu dC5GaWVsZEVsZW1lbnQpOgorICAgICAgICAgaWYgcGFyZW50IGlzIE5vbmU6CisgICAgICAgICAg ICAgcmFpc2UgVHlwZUVycm9yCisgICAgICAgICBzZWxmLl9wYXJlbnQgPSBwYXJlbnQKKy0gICAg ICAgIG1wY19pbml0MihzZWxmLnZhbHVlLCBwYXJlbnQuX19wcmVjKQorKyAgICAgICAgbXBjX2lu aXQyKHNlbGYudmFsdWUsIHBhcmVudC5fcHJlYykKKyAgICAgICAgIHNlbGYuaW5pdCA9IDEKKyAg ICAgICAgIGlmIHggaXMgTm9uZTogcmV0dXJuCisgICAgICAgICBzZWxmLl9zZXQoeCwgeSwgYmFz ZSkKK0BAIC0xMDEwLDcgKzEwMTAsNyBAQCBjZGVmIGNsYXNzIE1QQ29tcGxleE51bWJlcihzYWdl LnN0cnVjdHVyZS5lbGVtZW50LkZpZWxkRWxlbWVudCk6CisgICAgICAgICAgICAgc2FnZTogaS5w cmVjKCkKKyAgICAgICAgICAgICAyMDAwCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiA8 TVBDb21wbGV4RmllbGRfY2xhc3M+KHNlbGYuX3BhcmVudCkuX19wcmVjCisrICAgICAgICByZXR1 cm4gPE1QQ29tcGxleEZpZWxkX2NsYXNzPihzZWxmLl9wYXJlbnQpLl9wcmVjCisgCisgICAgIGRl ZiByZWFsKHNlbGYpOgorICAgICAgICAgIiIiCitAQCAtMTU3MSwyNiArMTU3MSw2IEBAIGNkZWYg Y2xhc3MgTVBDb21wbGV4TnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuRmllbGRFbGVtZW50 KToKKyAgICAgICAgIG1wY19ub3JtKHgudmFsdWUsIHNlbGYudmFsdWUsICg8UmVhbEZpZWxkX2Ns YXNzPnguX3BhcmVudCkucm5kKQorICAgICAgICAgcmV0dXJuIHgKKyAKKy0gICAgZGVmIF9fcnRy dWVkaXZfXyhzZWxmLCBsZWZ0KToKKy0gICAgICAgIHIiIiIKKy0gICAgICAgIFJldHVybnMgdGhl IHF1b3RpZW50IG9mIGBgbGVmdGBgIHdpdGggYGBzZWxmYGAsIHRoYXQgaXM6IGBgbGVmdC9zZWxm YGAKKy0gICAgICAgIGFzIGEgY29tcGxleCBudW1iZXIuCistCistICAgICAgICBJTlBVVDoKKy0K Ky0gICAgICAgIC0gYGBsZWZ0YGAgLS0gYSBjb21wbGV4IG51bWJlcgorLQorLSAgICAgICAgRVhB TVBMRVM6OgorLQorLSAgICAgICAgICAgIHNhZ2U6IE1QQyA9IE1QQ29tcGxleEZpZWxkKCkKKy0g ICAgICAgICAgICBzYWdlOiBhID0gTVBDKDIsIDIpCistICAgICAgICAgICAgc2FnZTogYS5fX3J0 cnVlZGl2X18oTVBDKDEpKQorLSAgICAgICAgICAgIDAuMjUwMDAwMDAwMDAwMDAwIC0gMC4yNTAw MDAwMDAwMDAwMDAqSQorLSAgICAgICAgICAgIHNhZ2U6IE1QQygxKS9hCistICAgICAgICAgICAg MC4yNTAwMDAwMDAwMDAwMDAgLSAwLjI1MDAwMDAwMDAwMDAwMCpJCistICAgICAgICAiIiIKKy0g ICAgICAgIHJldHVybiBNUENvbXBsZXhOdW1iZXIoc2VsZi5fcGFyZW50LCBsZWZ0KS9zZWxmCist CisgICAgIGRlZiBfX3Bvd19fKHNlbGYsIHJpZ2h0LCBtb2R1bHVzKToKKyAgICAgICAgICIiIgor ICAgICAgICAgQ29tcHV0ZSBgYHNlbGZgYCByYWlzZWQgdG8gdGhlIHBvd2VyIG9mIGV4cG9uZW50 LCByb3VuZGVkIGluCitAQCAtMjM0Nyw3ICsyMzI3LDcgQEAgY2RlZiBjbGFzcyBNUENvbXBsZXhO dW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5GaWVsZEVsZW1lbnQpOgorIAorICAgICAgICAg Y2RlZiBtcGNfcm5kX3Qgcm5kID0gKDxNUENvbXBsZXhGaWVsZF9jbGFzcz4oc2VsZi5fcGFyZW50 KSkuX19ybmQKKyAKKy0gICAgICAgIGNkZWYgaW50IHByZWMgPSBzZWxmLl9wYXJlbnQuX19wcmVj CisrICAgICAgICBjZGVmIGludCBwcmVjID0gc2VsZi5fcGFyZW50Ll9wcmVjCisgCisgICAgICAg ICBpZiBvcHRpbWFsIG9yIGFsZ29yaXRobSA9PSAicHJpbmNpcGFsIjoKKyAgICAgICAgICAgICBp ZiBub3QgaXNpbnN0YW5jZShyaWdodCwgTVBDb21wbGV4TnVtYmVyKSBvciAoPE1QQ29tcGxleE51 bWJlcj5yaWdodCkuX3BhcmVudCBpcyBub3Qgc2VsZi5fcGFyZW50OgorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL3JpbmdzL2NvbXBsZXhfbXBmci5weXggYi9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X21w ZnIucHl4CitpbmRleCAzM2Q3M2Q4MWIxMi4uNjFmMmNhZGM4ZTQgMTAwNjQ0CistLS0gYS9zcmMv c2FnZS9yaW5ncy9jb21wbGV4X21wZnIucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9jb21wbGV4 X21wZnIucHl4CitAQCAtMTY1OCwyOCArMTY1OCw2IEBAIGNkZWYgY2xhc3MgQ29tcGxleE51bWJl cihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkZpZWxkRWxlbWVudCk6CisgICAgICAgICBtcGZyX2Ns ZWFyKHJpZ2h0X25tKQorICAgICAgICAgcmV0dXJuIHgKKyAKKy0gICAgZGVmIF9fcnRydWVkaXZf XyhzZWxmLCBsZWZ0KToKKy0gICAgICAgIHIiIiIKKy0gICAgICAgIFJldHVybiB0aGUgcXVvdGll bnQgb2YgbGVmdCB3aXRoIGBgc2VsZmBgLCB0aGF0IGlzOgorLQorLSAgICAgICAgYGBsZWZ0L3Nl bGZgYAorLQorLSAgICAgICAgYXMgYSBjb21wbGV4IG51bWJlci4KKy0KKy0gICAgICAgIElOUFVU OgorLQorLSAgICAgICAgLSBgYGxlZnRgYCAtLSBhIGNvbXBsZXggbnVtYmVyIHRvIGRpdmlkZSBi eSBgYHNlbGZgYAorLQorLSAgICAgICAgRVhBTVBMRVM6OgorLQorLSAgICAgICAgICAgIHNhZ2U6 IGEgPSBDb21wbGV4TnVtYmVyKDIsMCkKKy0gICAgICAgICAgICBzYWdlOiBhLl9fcnRydWVkaXZf XyhDQygxKSkKKy0gICAgICAgICAgICAwLjUwMDAwMDAwMDAwMDAwMAorLSAgICAgICAgICAgIHNh Z2U6IENDKDEpL2EKKy0gICAgICAgICAgICAwLjUwMDAwMDAwMDAwMDAwMAorLSAgICAgICAgIiIi CistICAgICAgICByZXR1cm4gQ29tcGxleE51bWJlcihzZWxmLl9wYXJlbnQsIGxlZnQpL3NlbGYK Ky0KKyAgICAgZGVmIF9fcG93X18oc2VsZiwgcmlnaHQsIG1vZHVsdXMpOgorICAgICAgICAgciIi IgorICAgICAgICAgUmFpc2UgYGBzZWxmYGAgdG8gdGhlIGBgcmlnaHRgYCBleHBvbmVudC4KK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvaW50ZWdlcl9tb2QucHhkIGIv c3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2ludGVnZXJfbW9kLnB4ZAoraW5kZXggMWUzY2I4 MWMxNDguLjM1MWZmYTI1ZTFiIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3Jp bmdzL2ludGVnZXJfbW9kLnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2lu dGVnZXJfbW9kLnB4ZAorQEAgLTIwLDcgKzIwLDcgQEAgY2RlZiBjbGFzcyBOYXRpdmVJbnRTdHJ1 Y3Q6CisgCisgCisgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2Fic3RyYWN0KEZpbml0ZVJpbmdFbGVt ZW50KToKKy0gICAgY2RlZiBOYXRpdmVJbnRTdHJ1Y3QgX19tb2R1bHVzCisrICAgIGNkZWYgTmF0 aXZlSW50U3RydWN0IF9tb2R1bHVzCisgICAgIGNkZWYgX25ld19jX2Zyb21fbG9uZyhzZWxmLCBs b25nIHZhbHVlKQorICAgICBjZGVmIEludGVnZXJNb2RfYWJzdHJhY3QgX25ld19jX2Zhc3Qoc2Vs ZiwgdW5zaWduZWQgbG9uZyB2YWx1ZSkKKyAgICAgY2RlZiB2b2lkIHNldF9mcm9tX21weihzZWxm LCBtcHpfdCB2YWx1ZSkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3Mv aW50ZWdlcl9tb2QucHl4IGIvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2ludGVnZXJfbW9k LnB5eAoraW5kZXggYjk0NjFiZDM2MmUuLmQ2NGJhNWFmODRmIDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvcmluZ3MvZmluaXRlX3JpbmdzL2ludGVnZXJfbW9kLnB5eAorKysrIGIvc3JjL3NhZ2Uvcmlu Z3MvZmluaXRlX3JpbmdzL2ludGVnZXJfbW9kLnB5eAorQEAgLTM2MSw3ICszNjEsNyBAQCBjZGVm IGNsYXNzIEludGVnZXJNb2RfYWJzdHJhY3QoRmluaXRlUmluZ0VsZW1lbnQpOgorICAgICAgICAg ICAgIFplcm9EaXZpc2lvbkVycm9yOiBpbnZlcnNlIG9mIE1vZCg0LCAzMCkgZG9lcyBub3QgZXhp c3QKKyAgICAgICAgICIiIgorICAgICAgICAgc2VsZi5fcGFyZW50ID0gcGFyZW50CistICAgICAg ICBzZWxmLl9fbW9kdWx1cyA9IHBhcmVudC5fcHl4X29yZGVyCisrICAgICAgICBzZWxmLl9tb2R1 bHVzID0gcGFyZW50Ll9weXhfb3JkZXIKKyAKKyAgICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6Cisg ICAgICAgICAgICAgcmV0dXJuCitAQCAtMzczLDcgKzM3Myw3IEBAIGNkZWYgY2xhc3MgSW50ZWdl ck1vZF9hYnN0cmFjdChGaW5pdGVSaW5nRWxlbWVudCk6CisgICAgICAgICBpZiBpc2luc3RhbmNl KHZhbHVlLCBJbnRlZ2VyKToKKyAgICAgICAgICAgICB6ID0gPEludGVnZXI+dmFsdWUKKyAgICAg ICAgIGVsaWYgaXNpbnN0YW5jZSh2YWx1ZSwgcmF0aW9uYWwuUmF0aW9uYWwpOgorLSAgICAgICAg ICAgIHogPSB2YWx1ZSAlIHNlbGYuX19tb2R1bHVzLnNhZ2VJbnRlZ2VyCisrICAgICAgICAgICAg eiA9IHZhbHVlICUgc2VsZi5fbW9kdWx1cy5zYWdlSW50ZWdlcgorICAgICAgICAgZWxpZiBpbnRl Z2VyX2NoZWNrX2xvbmdfcHkodmFsdWUsICZsb25ndmFsLCAmZXJyKSBhbmQgbm90IGVycjoKKyAg ICAgICAgICAgICBzZWxmLnNldF9mcm9tX2xvbmcobG9uZ3ZhbCkKKyAgICAgICAgICAgICByZXR1 cm4KK0BAIC0zODgsNyArMzg4LDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2Fic3RyYWN0KEZp bml0ZVJpbmdFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gcHlfc2NhbGFy X3RvX2VsZW1lbnQodmFsdWUpCisgICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUs IEVsZW1lbnQpIGFuZCB2YWx1ZS5wYXJlbnQoKS5pc19leGFjdCgpOgorICAgICAgICAgICAgICAg ICAgICAgdmFsdWUgPSBzYWdlLnJpbmdzLnJhdGlvbmFsX2ZpZWxkLlFRKHZhbHVlKQorLSAgICAg ICAgICAgICAgICAgICAgeiA9IHZhbHVlICUgc2VsZi5fX21vZHVsdXMuc2FnZUludGVnZXIKKysg ICAgICAgICAgICAgICAgICAgIHogPSB2YWx1ZSAlIHNlbGYuX21vZHVsdXMuc2FnZUludGVnZXIK KyAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgIHJhaXNlCisgICAg ICAgICBzZWxmLnNldF9mcm9tX21weih6LnZhbHVlKQorQEAgLTM5Nyw3ICszOTcsNyBAQCBjZGVm IGNsYXNzIEludGVnZXJNb2RfYWJzdHJhY3QoRmluaXRlUmluZ0VsZW1lbnQpOgorICAgICAgICAg Y2RlZiB0eXBlIHQgPSB0eXBlKHNlbGYpCisgICAgICAgICB4ID0gPEludGVnZXJNb2RfYWJzdHJh Y3Q+dC5fX25ld19fKHQpCisgICAgICAgICB4Ll9wYXJlbnQgPSBzZWxmLl9wYXJlbnQKKy0gICAg ICAgIHguX19tb2R1bHVzID0gc2VsZi5fX21vZHVsdXMKKysgICAgICAgIHguX21vZHVsdXMgPSBz ZWxmLl9tb2R1bHVzCisgICAgICAgICB4LnNldF9mcm9tX3Vsb25nX2Zhc3QodmFsdWUpCisgICAg ICAgICByZXR1cm4geAorIAorQEAgLTQwNSw3ICs0MDUsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJN b2RfYWJzdHJhY3QoRmluaXRlUmluZ0VsZW1lbnQpOgorICAgICAgICAgY2RlZiB0eXBlIHQgPSB0 eXBlKHNlbGYpCisgICAgICAgICBjZGVmIEludGVnZXJNb2RfYWJzdHJhY3QgeCA9IDxJbnRlZ2Vy TW9kX2Fic3RyYWN0PnQuX19uZXdfXyh0KQorICAgICAgICAgeC5fcGFyZW50ID0gc2VsZi5fcGFy ZW50CistICAgICAgICB4Ll9fbW9kdWx1cyA9IHNlbGYuX19tb2R1bHVzCisrICAgICAgICB4Ll9t b2R1bHVzID0gc2VsZi5fbW9kdWx1cworICAgICAgICAgeC5zZXRfZnJvbV9sb25nKHZhbHVlKQor ICAgICAgICAgcmV0dXJuIHgKKyAKK0BAIC01MjksMTcgKzUyOSwxNyBAQCBjZGVmIGNsYXNzIElu dGVnZXJNb2RfYWJzdHJhY3QoRmluaXRlUmluZ0VsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAg ICAgICBpZiBzZWxmLmlzX3plcm8oKToKKyAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorLSAgICAg ICAgbSA9IHNlbGYuX19tb2R1bHVzLnNhZ2VJbnRlZ2VyLmV4YWN0X2xvZygyKSArIDEKKysgICAg ICAgIG0gPSBzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyLmV4YWN0X2xvZygyKSArIDEKKyAgICAg ICAgIHJldHVybiAoc2VsZioqbSkuaXNfemVybygpCisgCisgICAgICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgICAgICMg SW50ZXJmYWNlcworICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICAgICBkZWYgX3BhcmlfaW5pdF8oc2VsZik6Cist ICAgICAgICByZXR1cm4gJ01vZCglcywlcyknJShzdHIoc2VsZiksIHNlbGYuX19tb2R1bHVzLnNh Z2VJbnRlZ2VyKQorKyAgICAgICAgcmV0dXJuICdNb2QoJXMsJXMpJyUoc3RyKHNlbGYpLCBzZWxm Ll9tb2R1bHVzLnNhZ2VJbnRlZ2VyKQorIAorICAgICBkZWYgX19wYXJpX18oc2VsZik6CistICAg ICAgICByZXR1cm4gc2VsZi5saWZ0KCkuX19wYXJpX18oKS5Nb2Qoc2VsZi5fX21vZHVsdXMuc2Fn ZUludGVnZXIpCisrICAgICAgICByZXR1cm4gc2VsZi5saWZ0KCkuX19wYXJpX18oKS5Nb2Qoc2Vs Zi5fbW9kdWx1cy5zYWdlSW50ZWdlcikKKyAKKyAgICAgZGVmIF9nYXBfaW5pdF8oc2VsZik6Cisg ICAgICAgICByIiIiCitAQCAtNTU4LDcgKzU1OCw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9h YnN0cmFjdChGaW5pdGVSaW5nRWxlbWVudCk6CisgICAgICAgICAgICAgc2FnZTogZ2FwKE1vZCg0 LCA0OCkpCisgICAgICAgICAgICAgWm1vZG5aT2JqKCA0LCA0OCApCisgICAgICAgICAiIiIKKy0g ICAgICAgIHJldHVybiAnJXMqT25lKFptb2RuWiglcykpJyAlIChzZWxmLCBzZWxmLl9fbW9kdWx1 cy5zYWdlSW50ZWdlcikKKysgICAgICAgIHJldHVybiAnJXMqT25lKFptb2RuWiglcykpJyAlIChz ZWxmLCBzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyKQorIAorICAgICBkZWYgX21hZ21hX2luaXRf KHNlbGYsIG1hZ21hKToKKyAgICAgICAgICIiIgorQEAgLTg2OSw3ICs4NjksNyBAQCBjZGVmIGNs YXNzIEludGVnZXJNb2RfYWJzdHJhY3QoRmluaXRlUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAg IHNhZ2U6IE1vZCgzLDE3KS5tb2R1bHVzKCkKKyAgICAgICAgICAgICAxNworICAgICAgICAgIiIi CistICAgICAgICByZXR1cm4gc2VsZi5fX21vZHVsdXMuc2FnZUludGVnZXIKKysgICAgICAgIHJl dHVybiBzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyCisgCisgICAgIGRlZiBjaGFycG9seShzZWxm LCB2YXI9J3gnKToKKyAgICAgICAgICIiIgorQEAgLTEyMjksNyArMTIyOSw3IEBAIGNkZWYgY2xh c3MgSW50ZWdlck1vZF9hYnN0cmFjdChGaW5pdGVSaW5nRWxlbWVudCk6CisgICAgICAgICAgICAg ICAgIG1vZHVsdXMgPSBSLmdlbigpKioyIC0gUihzZWxmKQorICAgICAgICAgICAgICAgICBpZiBz ZWxmLl9wYXJlbnQuaXNfZmllbGQoKToKKyAgICAgICAgICAgICAgICAgICAgIGZyb20gLmZpbml0 ZV9maWVsZF9jb25zdHJ1Y3RvciBpbXBvcnQgRmluaXRlRmllbGQKKy0gICAgICAgICAgICAgICAg ICAgIFEgPSBGaW5pdGVGaWVsZChzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlcioqMiwgeSwgbW9k dWx1cykKKysgICAgICAgICAgICAgICAgICAgIFEgPSBGaW5pdGVGaWVsZChzZWxmLl9tb2R1bHVz LnNhZ2VJbnRlZ2VyKioyLCB5LCBtb2R1bHVzKQorICAgICAgICAgICAgICAgICBlbHNlOgorICAg ICAgICAgICAgICAgICAgICAgUiA9IHNlbGYucGFyZW50KClbJ3gnXQorICAgICAgICAgICAgICAg ICAgICAgUSA9IFIucXVvdGllbnQobW9kdWx1cywgbmFtZXM9KHksKSkKK0BAIC0xMjUwLDcgKzEy NTAsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfYWJzdHJhY3QoRmluaXRlUmluZ0VsZW1lbnQp OgorICAgICAgICAgICAgIGlmIGFsbCBhbmQgZSA+IDEgYW5kIG5vdCBzZWxmLmlzX3VuaXQoKToK KyAgICAgICAgICAgICAgICAgaWYgc2VsZi5pc196ZXJvKCk6CisgICAgICAgICAgICAgICAgICAg ICAjIEFsbCBtdWx0aXBsZXMgb2YgcF5jaWVsKGUvMikgdmFuaXNoCistICAgICAgICAgICAgICAg ICAgICByZXR1cm4gW3NlbGYuX3BhcmVudCh4KSBmb3IgeCBpbiByYW5nZSgwLCBzZWxmLl9fbW9k dWx1cy5zYWdlSW50ZWdlciwgcCoqKChlKzEpLzIpKV0KKysgICAgICAgICAgICAgICAgICAgIHJl dHVybiBbc2VsZi5fcGFyZW50KHgpIGZvciB4IGluIHJhbmdlKDAsIHNlbGYuX21vZHVsdXMuc2Fn ZUludGVnZXIsIHAqKigoZSsxKS8yKSldCisgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAg ICAgICAgICAgICAgICB6ID0gc2VsZi5saWZ0KCkKKyAgICAgICAgICAgICAgICAgICAgIHZhbCA9 IHoudmFsdWF0aW9uKHApLzIgICMgc3F1YXJlID0+IHZhbHVhdGlvbiBpcyBldmVuCitAQCAtMTI3 Miw3ICsxMjcyLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2Fic3RyYWN0KEZpbml0ZVJpbmdF bGVtZW50KToKKyAgICAgICAgICAgICAgICAgICAgIHBfZXhwID0gcCoqZXhwCisgICAgICAgICAg ICAgICAgICAgICB3ID0gW3NlbGYuX3BhcmVudChhLmxpZnQoKSAqIHBfdmFsICsgYikKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGEgaW4gdS5zcXJ0KGFsbD1UcnVlKQorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmb3IgYiBpbiByYW5nZSgwLCBzZWxmLl9fbW9kdWx1cy5z YWdlSW50ZWdlciwgcF9leHApXQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgYiBp biByYW5nZSgwLCBzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyLCBwX2V4cCldCisgICAgICAgICAg ICAgICAgICAgICBpZiBwID09IDI6CisgICAgICAgICAgICAgICAgICAgICAgICAgdyA9IGxpc3Qo c2V0KHcpKQorICAgICAgICAgICAgICAgICAgICAgdy5zb3J0KCkKK0BAIC0xNjI0LDcgKzE2MjQs NyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfYWJzdHJhY3QoRmluaXRlUmluZ0VsZW1lbnQpOgor ICAgICAgICAgZGVzcGl0ZSB0aGUgcG9zc2libHkgcHJvYmFiaWxpc3RpYyBuYXR1cmUgb2YgdGhl IHVuZGVybHlpbmcKKyAgICAgICAgIGFsZ29yaXRobS4KKyAgICAgICAgICIiIgorLSAgICAgICAg aWYgc2VsZi5saWZ0KCkgPiBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlciA+PiAxOgorKyAgICAg ICAgaWYgc2VsZi5saWZ0KCkgPiBzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyID4+IDE6CisgICAg ICAgICAgICAgcmV0dXJuIC1zZWxmCisgICAgICAgICByZXR1cm4gc2VsZgorIAorQEAgLTE3MDUs MjcgKzE3MDUsMjcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2Fic3RyYWN0KEZpbml0ZVJpbmdF bGVtZW50KToKKyAgICAgICAgIGNkZWYgaW50X2Zhc3Q2NF90IG5ld19tb2R1bHVzCisgICAgICAg ICBpZiBub3QgaXNpbnN0YW5jZShzZWxmLCBJbnRlZ2VyTW9kX2dtcCkgYW5kIG5vdCBpc2luc3Rh bmNlKG90aGVyLCBJbnRlZ2VyTW9kX2dtcCk6CisgCistICAgICAgICAgICAgaWYgb3RoZXIuX19t b2R1bHVzLmludDY0ID09IDE6IHJldHVybiBzZWxmCistICAgICAgICAgICAgbmV3X21vZHVsdXMg PSBzZWxmLl9fbW9kdWx1cy5pbnQ2NCAqIG90aGVyLl9fbW9kdWx1cy5pbnQ2NAorKyAgICAgICAg ICAgIGlmIG90aGVyLl9tb2R1bHVzLmludDY0ID09IDE6IHJldHVybiBzZWxmCisrICAgICAgICAg ICAgbmV3X21vZHVsdXMgPSBzZWxmLl9tb2R1bHVzLmludDY0ICogb3RoZXIuX21vZHVsdXMuaW50 NjQKKyAgICAgICAgICAgICBpZiBuZXdfbW9kdWx1cyA8IElOVEVHRVJfTU9EX0lOVDMyX0xJTUlU OgorLSAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fX2NydChvdGhlcikKKysgICAgICAgICAg ICAgICAgcmV0dXJuIHNlbGYuX2NydChvdGhlcikKKyAKKyAgICAgICAgICAgICBlbGlmIG5ld19t b2R1bHVzIDwgSU5URUdFUl9NT0RfSU5UNjRfTElNSVQ6CisgICAgICAgICAgICAgICAgIGlmIG5v dCBpc2luc3RhbmNlKHNlbGYsIEludGVnZXJNb2RfaW50NjQpOgorICAgICAgICAgICAgICAgICAg ICAgc2VsZiA9IEludGVnZXJNb2RfaW50NjQoc2VsZi5fcGFyZW50LCBzZWxmLmxpZnQoKSkKKyAg ICAgICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob3RoZXIsIEludGVnZXJNb2RfaW50NjQp OgorICAgICAgICAgICAgICAgICAgICAgb3RoZXIgPSBJbnRlZ2VyTW9kX2ludDY0KG90aGVyLl9w YXJlbnQsIG90aGVyLmxpZnQoKSkKKy0gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX19jcnQo b3RoZXIpCisrICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9jcnQob3RoZXIpCisgCisgICAg ICAgICBpZiBub3QgaXNpbnN0YW5jZShzZWxmLCBJbnRlZ2VyTW9kX2dtcCk6CistICAgICAgICAg ICAgaWYgc2VsZi5fX21vZHVsdXMuaW50NjQgPT0gMTogcmV0dXJuIG90aGVyCisrICAgICAgICAg ICAgaWYgc2VsZi5fbW9kdWx1cy5pbnQ2NCA9PSAxOiByZXR1cm4gb3RoZXIKKyAgICAgICAgICAg ICBzZWxmID0gSW50ZWdlck1vZF9nbXAoc2VsZi5fcGFyZW50LCBzZWxmLmxpZnQoKSkKKyAKKyAg ICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG90aGVyLCBJbnRlZ2VyTW9kX2dtcCk6CistICAgICAg ICAgICAgaWYgb3RoZXIuX19tb2R1bHVzLmludDY0ID09IDE6IHJldHVybiBzZWxmCisrICAgICAg ICAgICAgaWYgb3RoZXIuX21vZHVsdXMuaW50NjQgPT0gMTogcmV0dXJuIHNlbGYKKyAgICAgICAg ICAgICBvdGhlciA9IEludGVnZXJNb2RfZ21wKG90aGVyLl9wYXJlbnQsIG90aGVyLmxpZnQoKSkK KyAKKy0gICAgICAgIHJldHVybiBzZWxmLl9fY3J0KG90aGVyKQorKyAgICAgICAgcmV0dXJuIHNl bGYuX2NydChvdGhlcikKKyAKKyAgICAgZGVmIGFkZGl0aXZlX29yZGVyKHNlbGYpOgorICAgICAg ICAgciIiIgorQEAgLTE3NDIsNyArMTc0Miw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9hYnN0 cmFjdChGaW5pdGVSaW5nRWxlbWVudCk6CisgICAgICAgICAgICAgc2FnZTogSW50ZWdlcnMoOTAz MDg0MDIzODQ5MDIpKDIpLmFkZGl0aXZlX29yZGVyKCkKKyAgICAgICAgICAgICA0NTE1NDIwMTE5 MjQ1MQorICAgICAgICAgIiIiCistICAgICAgICBuID0gc2VsZi5fX21vZHVsdXMuc2FnZUludGVn ZXIKKysgICAgICAgIG4gPSBzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyCisgICAgICAgICByZXR1 cm4gc2FnZS5yaW5ncy5pbnRlZ2VyLkludGVnZXIobiAvLyBzZWxmLmxpZnQoKS5nY2QobikpCisg CisgICAgIGRlZiBpc19wcmltaXRpdmVfcm9vdChzZWxmKToKK0BAIC0xODU2LDcgKzE4NTYsNyBA QCBjZGVmIGNsYXNzIEludGVnZXJNb2RfYWJzdHJhY3QoRmluaXRlUmluZ0VsZW1lbnQpOgorICAg ICAgICAgICAgIHJldHVybiBzYWdlLnJpbmdzLmludGVnZXIuSW50ZWdlcihzZWxmLl9fcGFyaV9f KCkuem5vcmRlcigpKQorICAgICAgICAgZXhjZXB0IFBhcmlFcnJvcjoKKyAgICAgICAgICAgICBy YWlzZSBBcml0aG1ldGljRXJyb3IoIm11bHRpcGxpY2F0aXZlIG9yZGVyIG9mICVzIG5vdCBkZWZp bmVkIHNpbmNlIGl0IGlzIG5vdCBhIHVuaXQgbW9kdWxvICVzIiUoCistICAgICAgICAgICAgICAg IHNlbGYsIHNlbGYuX19tb2R1bHVzLnNhZ2VJbnRlZ2VyKSkKKysgICAgICAgICAgICAgICAgc2Vs Ziwgc2VsZi5fbW9kdWx1cy5zYWdlSW50ZWdlcikpCisgCisgICAgIGRlZiB2YWx1YXRpb24oc2Vs ZiwgcCk6CisgICAgICAgICAiIiIKK0BAIC0xOTA1LDcgKzE5MDUsNyBAQCBjZGVmIGNsYXNzIElu dGVnZXJNb2RfYWJzdHJhY3QoRmluaXRlUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgIDIKKyAK KyAgICAgICAgICIiIgorLSAgICAgICAgcD1zZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlci5nY2Qo cCkKKysgICAgICAgIHA9c2VsZi5fbW9kdWx1cy5zYWdlSW50ZWdlci5nY2QocCkKKyAgICAgICAg IGlmIHA9PTE6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiVmFsdWF0aW9uIHdpdGgg cmVzcGVjdCB0byBhIHVuaXQgaXMgbm90IGRlZmluZWQuIikKKyAgICAgICAgIHIgPSAwCitAQCAt MTkxMyw3ICsxOTEzLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2Fic3RyYWN0KEZpbml0ZVJp bmdFbGVtZW50KToKKyAgICAgICAgIHdoaWxlIG5vdCAoc2VsZiAlIHBvd2VyKTogIyBzZWxmICUg cG93ZXIgPT0gMAorICAgICAgICAgICAgIHIgKz0gMQorICAgICAgICAgICAgIHBvd2VyICo9IHAK Ky0gICAgICAgICAgICBpZiBub3QgcG93ZXIuZGl2aWRlcyhzZWxmLl9fbW9kdWx1cy5zYWdlSW50 ZWdlcik6CisrICAgICAgICAgICAgaWYgbm90IHBvd2VyLmRpdmlkZXMoc2VsZi5fbW9kdWx1cy5z YWdlSW50ZWdlcik6CisgICAgICAgICAgICAgICAgIGZyb20gc2FnZS5yaW5ncy5pbmZpbml0eSBp bXBvcnQgaW5maW5pdHkKKyAgICAgICAgICAgICAgICAgcmV0dXJuIGluZmluaXR5CisgICAgICAg ICByZXR1cm4gcgorQEAgLTE5ODAsNyArMTk4MCw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9n bXAoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgIGNkZWYgSW50ZWdlck1vZF9nbXAgX25ld19j KHNlbGYpOgorICAgICAgICAgY2RlZiBJbnRlZ2VyTW9kX2dtcCB4CisgICAgICAgICB4ID0gSW50 ZWdlck1vZF9nbXAuX19uZXdfXyhJbnRlZ2VyTW9kX2dtcCkKKy0gICAgICAgIHguX19tb2R1bHVz ID0gc2VsZi5fX21vZHVsdXMKKysgICAgICAgIHguX21vZHVsdXMgPSBzZWxmLl9tb2R1bHVzCisg ICAgICAgICB4Ll9wYXJlbnQgPSBzZWxmLl9wYXJlbnQKKyAgICAgICAgIHJldHVybiB4CisgCitA QCAtMTk4OSw3ICsxOTg5LDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2dtcChJbnRlZ2VyTW9k X2Fic3RyYWN0KToKKyAKKyAgICAgY2RlZiB2b2lkIHNldF9mcm9tX21weihzZWxmLCBtcHpfdCB2 YWx1ZSk6CisgICAgICAgICBjZGVmIHNhZ2UucmluZ3MuaW50ZWdlci5JbnRlZ2VyIG1vZHVsdXMK Ky0gICAgICAgIG1vZHVsdXMgPSBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlcgorKyAgICAgICAg bW9kdWx1cyA9IHNlbGYuX21vZHVsdXMuc2FnZUludGVnZXIKKyAgICAgICAgIG1wel9tb2Qoc2Vs Zi52YWx1ZSwgdmFsdWUsIG1vZHVsdXMudmFsdWUpCisgCisgICAgIGNkZWYgdm9pZCBzZXRfZnJv bV9sb25nKHNlbGYsIGxvbmcgdmFsdWUpOgorQEAgLTIwMDEsNyArMjAwMSw3IEBAIGNkZWYgY2xh c3MgSW50ZWdlck1vZF9nbXAoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICAgICAgMQor ICAgICAgICAgIiIiCisgICAgICAgICBtcHpfc2V0X3NpKHNlbGYudmFsdWUsIHZhbHVlKQorLSAg ICAgICAgbXB6X21vZChzZWxmLnZhbHVlLCBzZWxmLnZhbHVlLCBzZWxmLl9fbW9kdWx1cy5zYWdl SW50ZWdlci52YWx1ZSkKKysgICAgICAgIG1wel9tb2Qoc2VsZi52YWx1ZSwgc2VsZi52YWx1ZSwg c2VsZi5fbW9kdWx1cy5zYWdlSW50ZWdlci52YWx1ZSkKKyAKKyAgICAgY2RlZiB2b2lkIHNldF9m cm9tX3Vsb25nX2Zhc3Qoc2VsZiwgdW5zaWduZWQgbG9uZyB2YWx1ZSk6CisgICAgICAgICBtcHpf c2V0X3VpKHNlbGYudmFsdWUsIHZhbHVlKQorQEAgLTIwNzEsNyArMjA3MSw3IEBAIGNkZWYgY2xh c3MgSW50ZWdlck1vZF9nbXAoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICAgICAgeCA9 IHNlbGYuX25ld19jKCkKKyAgICAgICAgICAgICBpZiBrID4gMDoKKyAgICAgICAgICAgICAgICAg bXB6X211bF8yZXhwKHgudmFsdWUsIHNlbGYudmFsdWUsIGspCistICAgICAgICAgICAgICAgIG1w el9mZGl2X3IoeC52YWx1ZSwgeC52YWx1ZSwgc2VsZi5fX21vZHVsdXMuc2FnZUludGVnZXIudmFs dWUpCisrICAgICAgICAgICAgICAgIG1wel9mZGl2X3IoeC52YWx1ZSwgeC52YWx1ZSwgc2VsZi5f bW9kdWx1cy5zYWdlSW50ZWdlci52YWx1ZSkKKyAgICAgICAgICAgICBlbHNlOgorICAgICAgICAg ICAgICAgICBtcHpfZmRpdl9xXzJleHAoeC52YWx1ZSwgc2VsZi52YWx1ZSwgLWspCisgICAgICAg ICAgICAgcmV0dXJuIHgKK0BAIC0yMTMyLDEyICsyMTMyLDEyIEBAIGNkZWYgY2xhc3MgSW50ZWdl ck1vZF9nbXAoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJl dHVybiBzZWxmLmxpZnQoKS5nY2Qoc2VsZi5tb2R1bHVzKCkpID09IDEKKyAKKy0gICAgZGVmIF9f Y3J0KEludGVnZXJNb2RfZ21wIHNlbGYsIEludGVnZXJNb2RfZ21wIG90aGVyKToKKysgICAgZGVm IF9jcnQoSW50ZWdlck1vZF9nbXAgc2VsZiwgSW50ZWdlck1vZF9nbXAgb3RoZXIpOgorICAgICAg ICAgY2RlZiBJbnRlZ2VyTW9kX2dtcCBsaWZ0LCB4CisgICAgICAgICBjZGVmIHNhZ2UucmluZ3Mu aW50ZWdlci5JbnRlZ2VyIG1vZHVsdXMsIG90aGVyX21vZHVsdXMKKyAKKy0gICAgICAgIG1vZHVs dXMgPSBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlcgorLSAgICAgICAgb3RoZXJfbW9kdWx1cyA9 IG90aGVyLl9fbW9kdWx1cy5zYWdlSW50ZWdlcgorKyAgICAgICAgbW9kdWx1cyA9IHNlbGYuX21v ZHVsdXMuc2FnZUludGVnZXIKKysgICAgICAgIG90aGVyX21vZHVsdXMgPSBvdGhlci5fbW9kdWx1 cy5zYWdlSW50ZWdlcgorICAgICAgICAgZnJvbSAuaW50ZWdlcl9tb2RfcmluZyBpbXBvcnQgSW50 ZWdlck1vZFJpbmcKKyAgICAgICAgIGxpZnQgPSBJbnRlZ2VyTW9kX2dtcChJbnRlZ2VyTW9kUmlu Zyhtb2R1bHVzKm90aGVyX21vZHVsdXMpKQorICAgICAgICAgdHJ5OgorQEAgLTIxODgsOCArMjE4 OCw4IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9nbXAoSW50ZWdlck1vZF9hYnN0cmFjdCk6Cisg ICAgICAgICBjZGVmIEludGVnZXJNb2RfZ21wIHgKKyAgICAgICAgIHggPSBzZWxmLl9uZXdfYygp CisgICAgICAgICBtcHpfYWRkKHgudmFsdWUsIHNlbGYudmFsdWUsICg8SW50ZWdlck1vZF9nbXA+ cmlnaHQpLnZhbHVlKQorLSAgICAgICAgaWYgbXB6X2NtcCh4LnZhbHVlLCBzZWxmLl9fbW9kdWx1 cy5zYWdlSW50ZWdlci52YWx1ZSkgID49IDA6CistICAgICAgICAgICAgbXB6X3N1Yih4LnZhbHVl LCB4LnZhbHVlLCBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlci52YWx1ZSkKKysgICAgICAgIGlm IG1wel9jbXAoeC52YWx1ZSwgc2VsZi5fbW9kdWx1cy5zYWdlSW50ZWdlci52YWx1ZSkgID49IDA6 CisrICAgICAgICAgICAgbXB6X3N1Yih4LnZhbHVlLCB4LnZhbHVlLCBzZWxmLl9tb2R1bHVzLnNh Z2VJbnRlZ2VyLnZhbHVlKQorICAgICAgICAgcmV0dXJuIHgKKyAKKyAgICAgY3BkZWYgX3N1Yl8o c2VsZiwgcmlnaHQpOgorQEAgLTIyMDQsNyArMjIwNCw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1v ZF9nbXAoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICB4ID0gc2VsZi5fbmV3X2MoKQor ICAgICAgICAgbXB6X3N1Yih4LnZhbHVlLCBzZWxmLnZhbHVlLCAoPEludGVnZXJNb2RfZ21wPnJp Z2h0KS52YWx1ZSkKKyAgICAgICAgIGlmIG1wel9zZ24oeC52YWx1ZSkgPT0gLTE6CistICAgICAg ICAgICAgbXB6X2FkZCh4LnZhbHVlLCB4LnZhbHVlLCBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdl ci52YWx1ZSkKKysgICAgICAgICAgICBtcHpfYWRkKHgudmFsdWUsIHgudmFsdWUsIHNlbGYuX21v ZHVsdXMuc2FnZUludGVnZXIudmFsdWUpCisgICAgICAgICByZXR1cm4geAorIAorICAgICBjcGRl ZiBfbmVnXyhzZWxmKToKK0BAIC0yMjIwLDcgKzIyMjAsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJN b2RfZ21wKEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICAgICAgICAgIHJldHVybiBzZWxmCisg ICAgICAgICBjZGVmIEludGVnZXJNb2RfZ21wIHgKKyAgICAgICAgIHggPSBzZWxmLl9uZXdfYygp CistICAgICAgICBtcHpfc3ViKHgudmFsdWUsIHNlbGYuX19tb2R1bHVzLnNhZ2VJbnRlZ2VyLnZh bHVlLCBzZWxmLnZhbHVlKQorKyAgICAgICAgbXB6X3N1Yih4LnZhbHVlLCBzZWxmLl9tb2R1bHVz LnNhZ2VJbnRlZ2VyLnZhbHVlLCBzZWxmLnZhbHVlKQorICAgICAgICAgcmV0dXJuIHgKKyAKKyAg ICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHQpOgorQEAgLTIyMzQsNyArMjIzNCw3IEBAIGNkZWYg Y2xhc3MgSW50ZWdlck1vZF9nbXAoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICBjZGVm IEludGVnZXJNb2RfZ21wIHgKKyAgICAgICAgIHggPSBzZWxmLl9uZXdfYygpCisgICAgICAgICBt cHpfbXVsKHgudmFsdWUsIHNlbGYudmFsdWUsICAoPEludGVnZXJNb2RfZ21wPnJpZ2h0KS52YWx1 ZSkKKy0gICAgICAgIG1wel9mZGl2X3IoeC52YWx1ZSwgeC52YWx1ZSwgc2VsZi5fX21vZHVsdXMu c2FnZUludGVnZXIudmFsdWUpCisrICAgICAgICBtcHpfZmRpdl9yKHgudmFsdWUsIHgudmFsdWUs IHNlbGYuX21vZHVsdXMuc2FnZUludGVnZXIudmFsdWUpCisgICAgICAgICByZXR1cm4geAorIAor ICAgICBjcGRlZiBfZGl2XyhzZWxmLCByaWdodCk6CitAQCAtMjMxMCw3ICsyMzEwLDcgQEAgY2Rl ZiBjbGFzcyBJbnRlZ2VyTW9kX2dtcChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgIGNk ZWYgSW50ZWdlck1vZF9nbXAgeCA9IHNlbGYuX25ld19jKCkKKyAgICAgICAgIHNpZ19vbigpCisg ICAgICAgICB0cnk6CistICAgICAgICAgICAgbXB6X3Bvd19oZWxwZXIoeC52YWx1ZSwgc2VsZi52 YWx1ZSwgZXhwLCBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlci52YWx1ZSkKKysgICAgICAgICAg ICBtcHpfcG93X2hlbHBlcih4LnZhbHVlLCBzZWxmLnZhbHVlLCBleHAsIHNlbGYuX21vZHVsdXMu c2FnZUludGVnZXIudmFsdWUpCisgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgIHNpZ19v ZmYoKQorICAgICAgICAgcmV0dXJuIHgKK0BAIC0yMzMxLDEyICsyMzMxLDEyIEBAIGNkZWYgY2xh c3MgSW50ZWdlck1vZF9nbXAoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICAgICAgWmVy b0RpdmlzaW9uRXJyb3I6IGludmVyc2Ugb2YgTW9kKDIsIDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwKSBkb2VzIG5vdCBleGlzdAorICAgICAgICAgIiIiCisgICAg ICAgICBpZiBzZWxmLmlzX3plcm8oKToKKy0gICAgICAgICAgICByYWlzZSBaZXJvRGl2aXNpb25F cnJvcihmImludmVyc2Ugb2YgTW9kKDAsIHtzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlcn0pIGRv ZXMgbm90IGV4aXN0IikKKysgICAgICAgICAgICByYWlzZSBaZXJvRGl2aXNpb25FcnJvcihmImlu dmVyc2Ugb2YgTW9kKDAsIHtzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyfSkgZG9lcyBub3QgZXhp c3QiKQorIAorICAgICAgICAgY2RlZiBJbnRlZ2VyTW9kX2dtcCB4CisgICAgICAgICB4ID0gc2Vs Zi5fbmV3X2MoKQorLSAgICAgICAgaWYgbm90IG1wel9pbnZlcnQoeC52YWx1ZSwgc2VsZi52YWx1 ZSwgc2VsZi5fX21vZHVsdXMuc2FnZUludGVnZXIudmFsdWUpOgorLSAgICAgICAgICAgIHJhaXNl IFplcm9EaXZpc2lvbkVycm9yKGYiaW52ZXJzZSBvZiBNb2Qoe3NlbGZ9LCB7c2VsZi5fX21vZHVs dXMuc2FnZUludGVnZXJ9KSBkb2VzIG5vdCBleGlzdCIpCisrICAgICAgICBpZiBub3QgbXB6X2lu dmVydCh4LnZhbHVlLCBzZWxmLnZhbHVlLCBzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyLnZhbHVl KToKKysgICAgICAgICAgICByYWlzZSBaZXJvRGl2aXNpb25FcnJvcihmImludmVyc2Ugb2YgTW9k KHtzZWxmfSwge3NlbGYuX21vZHVsdXMuc2FnZUludGVnZXJ9KSBkb2VzIG5vdCBleGlzdCIpCisg ICAgICAgICByZXR1cm4geAorIAorICAgICBkZWYgbGlmdChJbnRlZ2VyTW9kX2dtcCBzZWxmKToK K0BAIC0yMzkxLDEwICsyMzkxLDEwIEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9nbXAoSW50ZWdl ck1vZF9hYnN0cmFjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgSW50ZWdlck1vZF9n bXAgYW5zID0gc2VsZi5fbmV3X2MoKQorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIG1wel9n Y2QoYW5zLnZhbHVlLCBzZWxmLnZhbHVlLCBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlci52YWx1 ZSkKKysgICAgICAgIG1wel9nY2QoYW5zLnZhbHVlLCBzZWxmLnZhbHVlLCBzZWxmLl9tb2R1bHVz LnNhZ2VJbnRlZ2VyLnZhbHVlKQorICAgICAgICAgbXB6X2djZChhbnMudmFsdWUsIGFucy52YWx1 ZSwgb3RoZXIudmFsdWUpCisgICAgICAgICBzaWdfb2ZmKCkKKy0gICAgICAgIGlmIG1wel9jbXAo YW5zLnZhbHVlLCBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlci52YWx1ZSkgPT0gMDoKKysgICAg ICAgIGlmIG1wel9jbXAoYW5zLnZhbHVlLCBzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyLnZhbHVl KSA9PSAwOgorICAgICAgICAgICAgICMgc2VsZiA9IG90aGVyID0gMAorICAgICAgICAgICAgIG1w el9zZXRfdWkoYW5zLnZhbHVlLCAwKQorICAgICAgICAgcmV0dXJuIGFucworQEAgLTI0MjIsMzAg KzI0MjIsMzAgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2ludChJbnRlZ2VyTW9kX2Fic3RyYWN0 KToKKyAgICAgIiIiCisgCisgICAgIGNkZWYgSW50ZWdlck1vZF9pbnQgX25ld19jKHNlbGYsIGlu dF9mYXN0MzJfdCB2YWx1ZSk6CistICAgICAgICBpZiBzZWxmLl9fbW9kdWx1cy50YWJsZSBpcyBu b3QgTm9uZToKKy0gICAgICAgICAgICByZXR1cm4gc2VsZi5fX21vZHVsdXMudGFibGVbdmFsdWVd CisrICAgICAgICBpZiBzZWxmLl9tb2R1bHVzLnRhYmxlIGlzIG5vdCBOb25lOgorKyAgICAgICAg ICAgIHJldHVybiBzZWxmLl9tb2R1bHVzLnRhYmxlW3ZhbHVlXQorICAgICAgICAgY2RlZiBJbnRl Z2VyTW9kX2ludCB4ID0gSW50ZWdlck1vZF9pbnQuX19uZXdfXyhJbnRlZ2VyTW9kX2ludCkKKyAg ICAgICAgIHguX3BhcmVudCA9IHNlbGYuX3BhcmVudAorLSAgICAgICAgeC5fX21vZHVsdXMgPSBz ZWxmLl9fbW9kdWx1cworKyAgICAgICAgeC5fbW9kdWx1cyA9IHNlbGYuX21vZHVsdXMKKyAgICAg ICAgIHguaXZhbHVlID0gdmFsdWUKKyAgICAgICAgIHJldHVybiB4CisgCisgICAgIGNkZWYgdm9p ZCBzZXRfZnJvbV9tcHooc2VsZiwgbXB6X3QgdmFsdWUpOgorLSAgICAgICAgc2VsZi5pdmFsdWUg PSBtcHpfZmRpdl91aSh2YWx1ZSwgc2VsZi5fX21vZHVsdXMuaW50MzIpCisrICAgICAgICBzZWxm Lml2YWx1ZSA9IG1wel9mZGl2X3VpKHZhbHVlLCBzZWxmLl9tb2R1bHVzLmludDMyKQorIAorICAg ICBjZGVmIHZvaWQgc2V0X2Zyb21fbG9uZyhzZWxmLCBsb25nIHZhbHVlKToKKy0gICAgICAgIHNl bGYuaXZhbHVlID0gdmFsdWUgJSBzZWxmLl9fbW9kdWx1cy5pbnQzMgorKyAgICAgICAgc2VsZi5p dmFsdWUgPSB2YWx1ZSAlIHNlbGYuX21vZHVsdXMuaW50MzIKKyAgICAgICAgIGlmIHNlbGYuaXZh bHVlIDwgMDoKKy0gICAgICAgICAgICBzZWxmLml2YWx1ZSArPSBzZWxmLl9fbW9kdWx1cy5pbnQz MgorKyAgICAgICAgICAgIHNlbGYuaXZhbHVlICs9IHNlbGYuX21vZHVsdXMuaW50MzIKKyAKKyAg ICAgY2RlZiB2b2lkIHNldF9mcm9tX3Vsb25nX2Zhc3Qoc2VsZiwgdW5zaWduZWQgbG9uZyB2YWx1 ZSk6CisgICAgICAgICBzZWxmLml2YWx1ZSA9IHZhbHVlCisgCisgICAgIGNkZWYgdm9pZCBzZXRf ZnJvbV9pbnQoSW50ZWdlck1vZF9pbnQgc2VsZiwgaW50X2Zhc3QzMl90IGl2YWx1ZSk6CisgICAg ICAgICBpZiBpdmFsdWUgPCAwOgorLSAgICAgICAgICAgIHNlbGYuaXZhbHVlID0gc2VsZi5fX21v ZHVsdXMuaW50MzIgKyAoaXZhbHVlICUgc2VsZi5fX21vZHVsdXMuaW50MzIpCistICAgICAgICBl bGlmIGl2YWx1ZSA+PSBzZWxmLl9fbW9kdWx1cy5pbnQzMjoKKy0gICAgICAgICAgICBzZWxmLml2 YWx1ZSA9IGl2YWx1ZSAlIHNlbGYuX19tb2R1bHVzLmludDMyCisrICAgICAgICAgICAgc2VsZi5p dmFsdWUgPSBzZWxmLl9tb2R1bHVzLmludDMyICsgKGl2YWx1ZSAlIHNlbGYuX21vZHVsdXMuaW50 MzIpCisrICAgICAgICBlbGlmIGl2YWx1ZSA+PSBzZWxmLl9tb2R1bHVzLmludDMyOgorKyAgICAg ICAgICAgIHNlbGYuaXZhbHVlID0gaXZhbHVlICUgc2VsZi5fbW9kdWx1cy5pbnQzMgorICAgICAg ICAgZWxzZToKKyAgICAgICAgICAgICBzZWxmLml2YWx1ZSA9IGl2YWx1ZQorIAorQEAgLTI0OTAs NyArMjQ5MCw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQoSW50ZWdlck1vZF9hYnN0cmFj dCk6CisgICAgICAgICAgICAgc2FnZTogWm1vZCgxKS5vbmUoKS5pc19vbmUoKQorICAgICAgICAg ICAgIFRydWUKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIHNlbGYuaXZhbHVlID09IDEg b3Igc2VsZi5fX21vZHVsdXMuaW50MzIgPT0gMQorKyAgICAgICAgcmV0dXJuIHNlbGYuaXZhbHVl ID09IDEgb3Igc2VsZi5fbW9kdWx1cy5pbnQzMiA9PSAxCisgCisgICAgIGRlZiBfX2Jvb2xfXyhJ bnRlZ2VyTW9kX2ludCBzZWxmKToKKyAgICAgICAgICIiIgorQEAgLTI1MTksOSArMjUxOSw5IEBA IGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAg ICAgICAgc2FnZTogYS5pc191bml0KCkKKyAgICAgICAgICAgICBGYWxzZQorICAgICAgICAgIiIi CistICAgICAgICByZXR1cm4gZ2NkX2ludChzZWxmLml2YWx1ZSwgc2VsZi5fX21vZHVsdXMuaW50 MzIpID09IDEKKysgICAgICAgIHJldHVybiBnY2RfaW50KHNlbGYuaXZhbHVlLCBzZWxmLl9tb2R1 bHVzLmludDMyKSA9PSAxCisgCistICAgIGRlZiBfX2NydChJbnRlZ2VyTW9kX2ludCBzZWxmLCBJ bnRlZ2VyTW9kX2ludCBvdGhlcik6CisrICAgIGRlZiBfY3J0KEludGVnZXJNb2RfaW50IHNlbGYs IEludGVnZXJNb2RfaW50IG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgVXNlIHRoZSBD aGluZXNlIFJlbWFpbmRlciBUaGVvcmVtIHRvIGZpbmQgYW4gZWxlbWVudCBvZiB0aGUKKyAgICAg ICAgIGludGVnZXJzIG1vZHVsbyB0aGUgcHJvZHVjdCBvZiB0aGUgbW9kdWxpIHRoYXQgcmVkdWNl cyB0byBzZWxmIGFuZAorQEAgLTI1NDMsMTEgKzI1NDMsMTEgQEAgY2RlZiBjbGFzcyBJbnRlZ2Vy TW9kX2ludChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgIGNkZWYgaW50X2Zhc3QzMl90 IHgKKyAKKyAgICAgICAgIGZyb20gLmludGVnZXJfbW9kX3JpbmcgaW1wb3J0IEludGVnZXJNb2RS aW5nCistICAgICAgICBsaWZ0ID0gSW50ZWdlck1vZF9pbnQoSW50ZWdlck1vZFJpbmcoc2VsZi5f X21vZHVsdXMuaW50MzIgKiBvdGhlci5fX21vZHVsdXMuaW50MzIpKQorKyAgICAgICAgbGlmdCA9 IEludGVnZXJNb2RfaW50KEludGVnZXJNb2RSaW5nKHNlbGYuX21vZHVsdXMuaW50MzIgKiBvdGhl ci5fbW9kdWx1cy5pbnQzMikpCisgCisgICAgICAgICB0cnk6CistICAgICAgICAgICAgeCA9IChv dGhlci5pdmFsdWUgLSBzZWxmLml2YWx1ZSAlIG90aGVyLl9fbW9kdWx1cy5pbnQzMikgKiBtb2Rf aW52ZXJzZV9pbnQoc2VsZi5fX21vZHVsdXMuaW50MzIsIG90aGVyLl9fbW9kdWx1cy5pbnQzMikK Ky0gICAgICAgICAgICBsaWZ0LnNldF9mcm9tX2ludCggeCAqIHNlbGYuX19tb2R1bHVzLmludDMy ICsgc2VsZi5pdmFsdWUgKQorKyAgICAgICAgICAgIHggPSAob3RoZXIuaXZhbHVlIC0gc2VsZi5p dmFsdWUgJSBvdGhlci5fbW9kdWx1cy5pbnQzMikgKiBtb2RfaW52ZXJzZV9pbnQoc2VsZi5fbW9k dWx1cy5pbnQzMiwgb3RoZXIuX21vZHVsdXMuaW50MzIpCisrICAgICAgICAgICAgbGlmdC5zZXRf ZnJvbV9pbnQoIHggKiBzZWxmLl9tb2R1bHVzLmludDMyICsgc2VsZi5pdmFsdWUgKQorICAgICAg ICAgICAgIHJldHVybiBsaWZ0CisgICAgICAgICBleGNlcHQgWmVyb0RpdmlzaW9uRXJyb3I6Cisg ICAgICAgICAgICAgcmFpc2UgWmVyb0RpdmlzaW9uRXJyb3IoIm1vZHVsaSBtdXN0IGJlIGNvcHJp bWUiKQorQEAgLTI1ODYsOCArMjU4Niw4IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQoSW50 ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgaW50X2Zhc3Qz Ml90IHgKKyAgICAgICAgIHggPSBzZWxmLml2YWx1ZSArICg8SW50ZWdlck1vZF9pbnQ+cmlnaHQp Lml2YWx1ZQorLSAgICAgICAgaWYgeCA+PSBzZWxmLl9fbW9kdWx1cy5pbnQzMjoKKy0gICAgICAg ICAgICB4ID0geCAtIHNlbGYuX19tb2R1bHVzLmludDMyCisrICAgICAgICBpZiB4ID49IHNlbGYu X21vZHVsdXMuaW50MzI6CisrICAgICAgICAgICAgeCA9IHggLSBzZWxmLl9tb2R1bHVzLmludDMy CisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MoeCkKKyAKKyAgICAgY3BkZWYgX3N1Yl8oc2Vs ZiwgcmlnaHQpOgorQEAgLTI2MDEsNyArMjYwMSw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9p bnQoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICBjZGVmIGludF9mYXN0MzJfdCB4Cisg ICAgICAgICB4ID0gc2VsZi5pdmFsdWUgLSAoPEludGVnZXJNb2RfaW50PnJpZ2h0KS5pdmFsdWUK KyAgICAgICAgIGlmIHggPCAwOgorLSAgICAgICAgICAgIHggPSB4ICsgc2VsZi5fX21vZHVsdXMu aW50MzIKKysgICAgICAgICAgICB4ID0geCArIHNlbGYuX21vZHVsdXMuaW50MzIKKyAgICAgICAg IHJldHVybiBzZWxmLl9uZXdfYyh4KQorIAorICAgICBjcGRlZiBfbmVnXyhzZWxmKToKK0BAIC0y NjE1LDcgKzI2MTUsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfaW50KEludGVnZXJNb2RfYWJz dHJhY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICBpZiBzZWxmLml2YWx1ZSA9PSAwOgorICAg ICAgICAgICAgIHJldHVybiBzZWxmCistICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2Moc2VsZi5f X21vZHVsdXMuaW50MzIgLSBzZWxmLml2YWx1ZSkKKysgICAgICAgIHJldHVybiBzZWxmLl9uZXdf YyhzZWxmLl9tb2R1bHVzLmludDMyIC0gc2VsZi5pdmFsdWUpCisgCisgICAgIGNwZGVmIF9tdWxf KHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorQEAgLTI2MjUsNyArMjYyNSw3IEBAIGNkZWYg Y2xhc3MgSW50ZWdlck1vZF9pbnQoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICAgICAg c2FnZTogUig3KSAqIFIoOCkKKyAgICAgICAgICAgICA2CisgICAgICAgICAiIiIKKy0gICAgICAg IHJldHVybiBzZWxmLl9uZXdfYygoc2VsZi5pdmFsdWUgKiAoPEludGVnZXJNb2RfaW50PnJpZ2h0 KS5pdmFsdWUpICUgc2VsZi5fX21vZHVsdXMuaW50MzIpCisrICAgICAgICByZXR1cm4gc2VsZi5f bmV3X2MoKHNlbGYuaXZhbHVlICogKDxJbnRlZ2VyTW9kX2ludD5yaWdodCkuaXZhbHVlKSAlIHNl bGYuX21vZHVsdXMuaW50MzIpCisgCisgICAgIGNwZGVmIF9kaXZfKHNlbGYsIHJpZ2h0KToKKyAg ICAgICAgICIiIgorQEAgLTI2MzUsMTYgKzI2MzUsMTYgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9k X2ludChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgICAgICBzYWdlOiBSKDIpLzMKKyAg ICAgICAgICAgICA0CisgICAgICAgICAiIiIKKy0gICAgICAgIGlmIHNlbGYuX19tb2R1bHVzLmlu dmVyc2VzIGlzIG5vdCBOb25lOgorLSAgICAgICAgICAgIHJpZ2h0X2ludmVyc2UgPSBzZWxmLl9f bW9kdWx1cy5pbnZlcnNlc1soPEludGVnZXJNb2RfaW50PnJpZ2h0KS5pdmFsdWVdCisrICAgICAg ICBpZiBzZWxmLl9tb2R1bHVzLmludmVyc2VzIGlzIG5vdCBOb25lOgorKyAgICAgICAgICAgIHJp Z2h0X2ludmVyc2UgPSBzZWxmLl9tb2R1bHVzLmludmVyc2VzWyg8SW50ZWdlck1vZF9pbnQ+cmln aHQpLml2YWx1ZV0KKyAgICAgICAgICAgICBpZiByaWdodF9pbnZlcnNlIGlzIE5vbmU6CistICAg ICAgICAgICAgICAgIHJhaXNlIFplcm9EaXZpc2lvbkVycm9yKGYiaW52ZXJzZSBvZiBNb2Qoe3Jp Z2h0fSwge3NlbGYuX19tb2R1bHVzLnNhZ2VJbnRlZ2VyfSkgZG9lcyBub3QgZXhpc3QiKQorKyAg ICAgICAgICAgICAgICByYWlzZSBaZXJvRGl2aXNpb25FcnJvcihmImludmVyc2Ugb2YgTW9kKHty aWdodH0sIHtzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyfSkgZG9lcyBub3QgZXhpc3QiKQorICAg ICAgICAgICAgIGVsc2U6CistICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYygoc2Vs Zi5pdmFsdWUgKiAoPEludGVnZXJNb2RfaW50PnJpZ2h0X2ludmVyc2UpLml2YWx1ZSkgJSBzZWxm Ll9fbW9kdWx1cy5pbnQzMikKKysgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKChz ZWxmLml2YWx1ZSAqICg8SW50ZWdlck1vZF9pbnQ+cmlnaHRfaW52ZXJzZSkuaXZhbHVlKSAlIHNl bGYuX21vZHVsdXMuaW50MzIpCisgCisgICAgICAgICBjZGVmIGludF9mYXN0MzJfdCB4CistICAg ICAgICB4ID0gc2VsZi5pdmFsdWUgKiBtb2RfaW52ZXJzZV9pbnQoKDxJbnRlZ2VyTW9kX2ludD5y aWdodCkuaXZhbHVlLCBzZWxmLl9fbW9kdWx1cy5pbnQzMikKKy0gICAgICAgIHJldHVybiBzZWxm Ll9uZXdfYyh4JSBzZWxmLl9fbW9kdWx1cy5pbnQzMikKKysgICAgICAgIHggPSBzZWxmLml2YWx1 ZSAqIG1vZF9pbnZlcnNlX2ludCgoPEludGVnZXJNb2RfaW50PnJpZ2h0KS5pdmFsdWUsIHNlbGYu X21vZHVsdXMuaW50MzIpCisrICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MoeCUgc2VsZi5fbW9k dWx1cy5pbnQzMikKKyAKKyAgICAgZGVmIF9faW50X18oSW50ZWdlck1vZF9pbnQgc2VsZik6Cisg ICAgICAgICAiIiIKK0BAIC0yNzM5LDcgKzI3MzksNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2Rf aW50KEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICAgICAgaWYgayA9PSAwOgorICAgICAgICAg ICAgIHJldHVybiBzZWxmCisgICAgICAgICBlbGlmIGsgPiAwOgorLSAgICAgICAgICAgIHJldHVy biBzZWxmLl9uZXdfYygoc2VsZi5pdmFsdWUgPDwgaykgJSBzZWxmLl9fbW9kdWx1cy5pbnQzMikK KysgICAgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MoKHNlbGYuaXZhbHVlIDw8IGspICUgc2Vs Zi5fbW9kdWx1cy5pbnQzMikKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIHNl bGYuX25ld19jKHNlbGYuaXZhbHVlID4+ICgtaykpCisgCitAQCAtMjgwMiw3ICsyODAyLDcgQEAg Y2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2ludChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAg ICAgICBzaWdfb24oKQorICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgbXB6X2lu aXQocmVzX21weikKKy0gICAgICAgICAgICAgICAgbXB6X3Bvd19oZWxwZXIocmVzX21weiwgKDxJ bnRlZ2VyPmJhc2UpLnZhbHVlLCBleHAsIHNlbGYuX19tb2R1bHVzLnNhZ2VJbnRlZ2VyLnZhbHVl KQorKyAgICAgICAgICAgICAgICBtcHpfcG93X2hlbHBlcihyZXNfbXB6LCAoPEludGVnZXI+YmFz ZSkudmFsdWUsIGV4cCwgc2VsZi5fbW9kdWx1cy5zYWdlSW50ZWdlci52YWx1ZSkKKyAgICAgICAg ICAgICAgICAgcmVzID0gbXB6X2dldF91aShyZXNfbXB6KQorICAgICAgICAgICAgICAgICBtcHpf Y2xlYXIocmVzX21weikKKyAgICAgICAgICAgICBmaW5hbGx5OgorQEAgLTI4MTEsMTIgKzI4MTEs MTIgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2ludChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAK KyAgICAgICAgIGlmIGxvbmdfZXhwID09IDAgYW5kIHNlbGYuaXZhbHVlID09IDA6CisgICAgICAg ICAgICAgIyBSZXR1cm4gMCBpZiB0aGUgbW9kdWx1cyBpcyAxLCBvdGhlcndpc2UgcmV0dXJuIDEu CistICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKHNlbGYuX19tb2R1bHVzLmludDMyICE9 IDEpCisrICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKHNlbGYuX21vZHVsdXMuaW50MzIg IT0gMSkKKyAgICAgICAgIGNkZWYgYmludCBpbnZlcnQgPSBGYWxzZQorICAgICAgICAgaWYgbG9u Z19leHAgPCAwOgorICAgICAgICAgICAgIGludmVydCA9IFRydWUKKyAgICAgICAgICAgICBsb25n X2V4cCA9IC1sb25nX2V4cAorLSAgICAgICAgcmVzID0gbW9kX3Bvd19pbnQoc2VsZi5pdmFsdWUs IGxvbmdfZXhwLCBzZWxmLl9fbW9kdWx1cy5pbnQzMikKKysgICAgICAgIHJlcyA9IG1vZF9wb3df aW50KHNlbGYuaXZhbHVlLCBsb25nX2V4cCwgc2VsZi5fbW9kdWx1cy5pbnQzMikKKyAgICAgICAg IGlmIGludmVydDoKKyAgICAgICAgICAgICByZXR1cm4gfnNlbGYuX25ld19jKHJlcykKKyAgICAg ICAgIGVsc2U6CitAQCAtMjgzMywxNCArMjgzMywxNCBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2Rf aW50KEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICAgICAgICAgIHNhZ2U6IE1vZCgwLDEpXi0x CisgICAgICAgICAgICAgMAorICAgICAgICAgIiIiCistICAgICAgICBpZiBzZWxmLl9fbW9kdWx1 cy5pbnZlcnNlcyBpcyBub3QgTm9uZToKKy0gICAgICAgICAgICB4ID0gc2VsZi5fX21vZHVsdXMu aW52ZXJzZXNbc2VsZi5pdmFsdWVdCisrICAgICAgICBpZiBzZWxmLl9tb2R1bHVzLmludmVyc2Vz IGlzIG5vdCBOb25lOgorKyAgICAgICAgICAgIHggPSBzZWxmLl9tb2R1bHVzLmludmVyc2VzW3Nl bGYuaXZhbHVlXQorICAgICAgICAgICAgIGlmIHggaXMgTm9uZToKKy0gICAgICAgICAgICAgICAg cmFpc2UgWmVyb0RpdmlzaW9uRXJyb3IoZiJpbnZlcnNlIG9mIE1vZCh7c2VsZn0sIHtzZWxmLl9f bW9kdWx1cy5zYWdlSW50ZWdlcn0pIGRvZXMgbm90IGV4aXN0IikKKysgICAgICAgICAgICAgICAg cmFpc2UgWmVyb0RpdmlzaW9uRXJyb3IoZiJpbnZlcnNlIG9mIE1vZCh7c2VsZn0sIHtzZWxmLl9t b2R1bHVzLnNhZ2VJbnRlZ2VyfSkgZG9lcyBub3QgZXhpc3QiKQorICAgICAgICAgICAgIGVsc2U6 CisgICAgICAgICAgICAgICAgIHJldHVybiB4CisgICAgICAgICBlbHNlOgorLSAgICAgICAgICAg IHJldHVybiBzZWxmLl9uZXdfYyhtb2RfaW52ZXJzZV9pbnQoc2VsZi5pdmFsdWUsIHNlbGYuX19t b2R1bHVzLmludDMyKSkKKysgICAgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MobW9kX2ludmVy c2VfaW50KHNlbGYuaXZhbHVlLCBzZWxmLl9tb2R1bHVzLmludDMyKSkKKyAKKyAgICAgZGVmIGxp ZnQoSW50ZWdlck1vZF9pbnQgc2VsZik6CisgICAgICAgICAiIiIKK0BAIC0zMDA2LDE1ICszMDA2 LDE1IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQoSW50ZWdlck1vZF9hYnN0cmFjdCk6Cisg ICAgICAgICAgICAgc2FnZTogR0YoMTAzKSgtMSkuc3FydChleHRlbmQ9RmFsc2UsIGFsbD1UcnVl KQorICAgICAgICAgICAgIFtdCisgICAgICAgICAiIiIKKy0gICAgICAgIGNkZWYgaW50X2Zhc3Qz Ml90IGksIG4gPSBzZWxmLl9fbW9kdWx1cy5pbnQzMgorKyAgICAgICAgY2RlZiBpbnRfZmFzdDMy X3QgaSwgbiA9IHNlbGYuX21vZHVsdXMuaW50MzIKKyAgICAgICAgIGlmIG4gPiAxMDA6CisgICAg ICAgICAgICAgbW9kdWxpID0gc2VsZi5fcGFyZW50LmZhY3RvcmVkX29yZGVyKCkKKyAgICAgICAg ICMgVW5sZXNzIHRoZSBtb2R1bHVzIGlzIHRpbnksIHRlc3QgdG8gc2VlIGlmIHdlJ3JlIGluIHRo ZSByZWFsbHkKKyAgICAgICAgICMgZWFzeSBjYXNlIG9mIG4gcHJpbWUsIG4gPSAzIG1vZCA0Lgor ICAgICAgICAgaWYgbiA+IDEwMCBhbmQgbiAlIDQgPT0gMyBhbmQgbGVuKG1vZHVsaSkgPT0gMSBh bmQgbW9kdWxpWzBdWzFdID09IDE6CistICAgICAgICAgICAgaWYgamFjb2JpX2ludChzZWxmLml2 YWx1ZSwgc2VsZi5fX21vZHVsdXMuaW50MzIpID09IDE6CisrICAgICAgICAgICAgaWYgamFjb2Jp X2ludChzZWxmLml2YWx1ZSwgc2VsZi5fbW9kdWx1cy5pbnQzMikgPT0gMToKKyAgICAgICAgICAg ICAgICAgIyBpdCdzIGEgbm9uLXplcm8gc3F1YXJlLCBzcXJ0KGEpID0gYV4ocCsxKS80CistICAg ICAgICAgICAgICAgIGkgPSBtb2RfcG93X2ludChzZWxmLml2YWx1ZSwgKHNlbGYuX19tb2R1bHVz LmludDMyKzEpLzQsIG4pCisrICAgICAgICAgICAgICAgIGkgPSBtb2RfcG93X2ludChzZWxmLml2 YWx1ZSwgKHNlbGYuX21vZHVsdXMuaW50MzIrMSkvNCwgbikKKyAgICAgICAgICAgICAgICAgaWYg aSA+IG4gLyAyOgorICAgICAgICAgICAgICAgICAgICAgaSA9IG4gLSBpCisgICAgICAgICAgICAg ICAgIGlmIGFsbDoKK0BAIC0zMDQ5LDcgKzMwNDksNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2Rf aW50KEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICAgICAgVGhpcyBmdW5jdGlvbiByZXR1cm5z IGB4YCBvciBgLXhgLCB3aGljaGV2ZXIgaGFzIGEKKyAgICAgICAgIHBvc2l0aXZlIHJlcHJlc2Vu dGF0aXZlIGluIGAtbi8yIDwgeCBcbGVxIG4vMmAuCisgICAgICAgICAiIiIKKy0gICAgICAgIGlm IHNlbGYuaXZhbHVlID4gc2VsZi5fX21vZHVsdXMuaW50MzIgLyAyOgorKyAgICAgICAgaWYgc2Vs Zi5pdmFsdWUgPiBzZWxmLl9tb2R1bHVzLmludDMyIC8gMjoKKyAgICAgICAgICAgICByZXR1cm4g LXNlbGYKKyAgICAgICAgIHJldHVybiBzZWxmCisgCitAQCAtMzA4Miw5ICszMDgyLDkgQEAgY2Rl ZiBjbGFzcyBJbnRlZ2VyTW9kX2ludChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgICAg ICBzYWdlOiBtb2QoMCwxKS5nY2QobW9kKDAsMSkpCisgICAgICAgICAgICAgMAorICAgICAgICAg IiIiCistICAgICAgICBjZGVmIGludF9mYXN0MzJfdCBnID0gZ2NkX2ludChzZWxmLml2YWx1ZSwg c2VsZi5fX21vZHVsdXMuaW50MzIpCisrICAgICAgICBjZGVmIGludF9mYXN0MzJfdCBnID0gZ2Nk X2ludChzZWxmLml2YWx1ZSwgc2VsZi5fbW9kdWx1cy5pbnQzMikKKyAgICAgICAgIGcgPSBnY2Rf aW50KGcsIG90aGVyLml2YWx1ZSkKKy0gICAgICAgIGlmIGcgPT0gc2VsZi5fX21vZHVsdXMuaW50 MzI6ICMgc2VsZiA9IG90aGVyID0gMAorKyAgICAgICAgaWYgZyA9PSBzZWxmLl9tb2R1bHVzLmlu dDMyOiAjIHNlbGYgPSBvdGhlciA9IDAKKyAgICAgICAgICAgICBnID0gMAorICAgICAgICAgcmV0 dXJuIHNlbGYuX25ld19jKGcpCisgCitAQCAtMzI1NiwyNyArMzI1NiwyNyBAQCBjZGVmIGNsYXNz IEludGVnZXJNb2RfaW50NjQoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgIGNkZWYgSW50ZWdl ck1vZF9pbnQ2NCBfbmV3X2Moc2VsZiwgaW50X2Zhc3Q2NF90IHZhbHVlKToKKyAgICAgICAgIGNk ZWYgSW50ZWdlck1vZF9pbnQ2NCB4CisgICAgICAgICB4ID0gSW50ZWdlck1vZF9pbnQ2NC5fX25l d19fKEludGVnZXJNb2RfaW50NjQpCistICAgICAgICB4Ll9fbW9kdWx1cyA9IHNlbGYuX19tb2R1 bHVzCisrICAgICAgICB4Ll9tb2R1bHVzID0gc2VsZi5fbW9kdWx1cworICAgICAgICAgeC5fcGFy ZW50ID0gc2VsZi5fcGFyZW50CisgICAgICAgICB4Lml2YWx1ZSA9IHZhbHVlCisgICAgICAgICBy ZXR1cm4geAorIAorICAgICBjZGVmIHZvaWQgc2V0X2Zyb21fbXB6KHNlbGYsIG1wel90IHZhbHVl KToKKy0gICAgICAgIHNlbGYuaXZhbHVlID0gbXB6X2ZkaXZfdWkodmFsdWUsIHNlbGYuX19tb2R1 bHVzLmludDY0KQorKyAgICAgICAgc2VsZi5pdmFsdWUgPSBtcHpfZmRpdl91aSh2YWx1ZSwgc2Vs Zi5fbW9kdWx1cy5pbnQ2NCkKKyAKKyAgICAgY2RlZiB2b2lkIHNldF9mcm9tX2xvbmcoc2VsZiwg bG9uZyB2YWx1ZSk6CistICAgICAgICBzZWxmLml2YWx1ZSA9IHZhbHVlICUgc2VsZi5fX21vZHVs dXMuaW50NjQKKysgICAgICAgIHNlbGYuaXZhbHVlID0gdmFsdWUgJSBzZWxmLl9tb2R1bHVzLmlu dDY0CisgICAgICAgICBpZiBzZWxmLml2YWx1ZSA8IDA6CistICAgICAgICAgICAgc2VsZi5pdmFs dWUgKz0gc2VsZi5fX21vZHVsdXMuaW50NjQKKysgICAgICAgICAgICBzZWxmLml2YWx1ZSArPSBz ZWxmLl9tb2R1bHVzLmludDY0CisgCisgICAgIGNkZWYgdm9pZCBzZXRfZnJvbV91bG9uZ19mYXN0 KHNlbGYsIHVuc2lnbmVkIGxvbmcgdmFsdWUpOgorICAgICAgICAgc2VsZi5pdmFsdWUgPSB2YWx1 ZQorIAorICAgICBjZGVmIHZvaWQgc2V0X2Zyb21faW50KEludGVnZXJNb2RfaW50NjQgc2VsZiwg aW50X2Zhc3Q2NF90IGl2YWx1ZSk6CisgICAgICAgICBpZiBpdmFsdWUgPCAwOgorLSAgICAgICAg ICAgIHNlbGYuaXZhbHVlID0gc2VsZi5fX21vZHVsdXMuaW50NjQgKyAoaXZhbHVlICUgc2VsZi5f X21vZHVsdXMuaW50NjQpICMgSXMgaXZhbHVlICUgc2VsZi5fX21vZHVsdXMuaW50NjQgYWN0dWFs bHkgbmVnYXRpdmU/CistICAgICAgICBlbGlmIGl2YWx1ZSA+PSBzZWxmLl9fbW9kdWx1cy5pbnQ2 NDoKKy0gICAgICAgICAgICBzZWxmLml2YWx1ZSA9IGl2YWx1ZSAlIHNlbGYuX19tb2R1bHVzLmlu dDY0CisrICAgICAgICAgICAgc2VsZi5pdmFsdWUgPSBzZWxmLl9tb2R1bHVzLmludDY0ICsgKGl2 YWx1ZSAlIHNlbGYuX21vZHVsdXMuaW50NjQpICMgSXMgaXZhbHVlICUgc2VsZi5fbW9kdWx1cy5p bnQ2NCBhY3R1YWxseSBuZWdhdGl2ZT8KKysgICAgICAgIGVsaWYgaXZhbHVlID49IHNlbGYuX21v ZHVsdXMuaW50NjQ6CisrICAgICAgICAgICAgc2VsZi5pdmFsdWUgPSBpdmFsdWUgJSBzZWxmLl9t b2R1bHVzLmludDY0CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHNlbGYuaXZhbHVlID0g aXZhbHVlCisgCitAQCAtMzM0NCw5ICszMzQ0LDkgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2lu dDY0KEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICAgICAgICAgIHNhZ2U6IG1vZCgyNSwgNV4x MCkuaXNfdW5pdCgpCisgICAgICAgICAgICAgRmFsc2UKKyAgICAgICAgICIiIgorLSAgICAgICAg cmV0dXJuIGdjZF9pbnQ2NChzZWxmLml2YWx1ZSwgc2VsZi5fX21vZHVsdXMuaW50NjQpID09IDEK KysgICAgICAgIHJldHVybiBnY2RfaW50NjQoc2VsZi5pdmFsdWUsIHNlbGYuX21vZHVsdXMuaW50 NjQpID09IDEKKyAKKy0gICAgZGVmIF9fY3J0KEludGVnZXJNb2RfaW50NjQgc2VsZiwgSW50ZWdl ck1vZF9pbnQ2NCBvdGhlcik6CisrICAgIGRlZiBfY3J0KEludGVnZXJNb2RfaW50NjQgc2VsZiwg SW50ZWdlck1vZF9pbnQ2NCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFVzZSB0aGUg Q2hpbmVzZSBSZW1haW5kZXIgVGhlb3JlbSB0byBmaW5kIGFuIGVsZW1lbnQgb2YgdGhlCisgICAg ICAgICBpbnRlZ2VycyBtb2R1bG8gdGhlIHByb2R1Y3Qgb2YgdGhlIG1vZHVsaSB0aGF0IHJlZHVj ZXMgdG8gc2VsZiBhbmQKK0BAIC0zMzc5LDExICszMzc5LDExIEBAIGNkZWYgY2xhc3MgSW50ZWdl ck1vZF9pbnQ2NChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgIGNkZWYgaW50X2Zhc3Q2 NF90IHgKKyAKKyAgICAgICAgIGZyb20gLmludGVnZXJfbW9kX3JpbmcgaW1wb3J0IEludGVnZXJN b2RSaW5nCistICAgICAgICBsaWZ0ID0gSW50ZWdlck1vZF9pbnQ2NChJbnRlZ2VyTW9kUmluZyhz ZWxmLl9fbW9kdWx1cy5pbnQ2NCAqIG90aGVyLl9fbW9kdWx1cy5pbnQ2NCkpCisrICAgICAgICBs aWZ0ID0gSW50ZWdlck1vZF9pbnQ2NChJbnRlZ2VyTW9kUmluZyhzZWxmLl9tb2R1bHVzLmludDY0 ICogb3RoZXIuX21vZHVsdXMuaW50NjQpKQorIAorICAgICAgICAgdHJ5OgorLSAgICAgICAgICAg IHggPSAob3RoZXIuaXZhbHVlIC0gc2VsZi5pdmFsdWUgJSBvdGhlci5fX21vZHVsdXMuaW50NjQp ICogbW9kX2ludmVyc2VfaW50NjQoc2VsZi5fX21vZHVsdXMuaW50NjQsIG90aGVyLl9fbW9kdWx1 cy5pbnQ2NCkKKy0gICAgICAgICAgICBsaWZ0LnNldF9mcm9tX2ludCggeCAqIHNlbGYuX19tb2R1 bHVzLmludDY0ICsgc2VsZi5pdmFsdWUgKQorKyAgICAgICAgICAgIHggPSAob3RoZXIuaXZhbHVl IC0gc2VsZi5pdmFsdWUgJSBvdGhlci5fbW9kdWx1cy5pbnQ2NCkgKiBtb2RfaW52ZXJzZV9pbnQ2 NChzZWxmLl9tb2R1bHVzLmludDY0LCBvdGhlci5fbW9kdWx1cy5pbnQ2NCkKKysgICAgICAgICAg ICBsaWZ0LnNldF9mcm9tX2ludCggeCAqIHNlbGYuX21vZHVsdXMuaW50NjQgKyBzZWxmLml2YWx1 ZSApCisgICAgICAgICAgICAgcmV0dXJuIGxpZnQKKyAgICAgICAgIGV4Y2VwdCBaZXJvRGl2aXNp b25FcnJvcjoKKyAgICAgICAgICAgICByYWlzZSBaZXJvRGl2aXNpb25FcnJvcigibW9kdWxpIG11 c3QgYmUgY29wcmltZSIpCitAQCAtMzQyMiw4ICszNDIyLDggQEAgY2RlZiBjbGFzcyBJbnRlZ2Vy TW9kX2ludDY0KEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICBj ZGVmIGludF9mYXN0NjRfdCB4CisgICAgICAgICB4ID0gc2VsZi5pdmFsdWUgKyAoPEludGVnZXJN b2RfaW50NjQ+cmlnaHQpLml2YWx1ZQorLSAgICAgICAgaWYgeCA+PSBzZWxmLl9fbW9kdWx1cy5p bnQ2NDoKKy0gICAgICAgICAgICB4ID0geCAtIHNlbGYuX19tb2R1bHVzLmludDY0CisrICAgICAg ICBpZiB4ID49IHNlbGYuX21vZHVsdXMuaW50NjQ6CisrICAgICAgICAgICAgeCA9IHggLSBzZWxm Ll9tb2R1bHVzLmludDY0CisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MoeCkKKyAKKyAgICAg Y3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpOgorQEAgLTM0MzcsNyArMzQzNyw3IEBAIGNkZWYgY2xh c3MgSW50ZWdlck1vZF9pbnQ2NChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgIGNkZWYg aW50X2Zhc3Q2NF90IHgKKyAgICAgICAgIHggPSBzZWxmLml2YWx1ZSAtICg8SW50ZWdlck1vZF9p bnQ2ND5yaWdodCkuaXZhbHVlCisgICAgICAgICBpZiB4IDwgMDoKKy0gICAgICAgICAgICB4ID0g eCArIHNlbGYuX19tb2R1bHVzLmludDY0CisrICAgICAgICAgICAgeCA9IHggKyBzZWxmLl9tb2R1 bHVzLmludDY0CisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MoeCkKKyAKKyAgICAgY3BkZWYg X25lZ18oc2VsZik6CitAQCAtMzQ1MSw3ICszNDUxLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9k X2ludDY0KEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICBpZiBz ZWxmLml2YWx1ZSA9PSAwOgorICAgICAgICAgICAgIHJldHVybiBzZWxmCistICAgICAgICByZXR1 cm4gc2VsZi5fbmV3X2Moc2VsZi5fX21vZHVsdXMuaW50NjQgLSBzZWxmLml2YWx1ZSkKKysgICAg ICAgIHJldHVybiBzZWxmLl9uZXdfYyhzZWxmLl9tb2R1bHVzLmludDY0IC0gc2VsZi5pdmFsdWUp CisgCisgICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorQEAgLTM0 NjEsNyArMzQ2MSw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQ2NChJbnRlZ2VyTW9kX2Fi c3RyYWN0KToKKyAgICAgICAgICAgICBzYWdlOiBSKDcwMCkgKiBSKDgwMCkKKyAgICAgICAgICAg ICA2MDAwMAorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MoKHNlbGYu aXZhbHVlICogKDxJbnRlZ2VyTW9kX2ludDY0PnJpZ2h0KS5pdmFsdWUpICUgc2VsZi5fX21vZHVs dXMuaW50NjQpCisrICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MoKHNlbGYuaXZhbHVlICogKDxJ bnRlZ2VyTW9kX2ludDY0PnJpZ2h0KS5pdmFsdWUpICUgc2VsZi5fbW9kdWx1cy5pbnQ2NCkKKyAK KyAKKyAgICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHQpOgorQEAgLTM0NzMsNyArMzQ3Myw3IEBA IGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQ2NChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAg ICAgICAgICAzMzMzNAorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2Mo KHNlbGYuaXZhbHVlICogbW9kX2ludmVyc2VfaW50NjQoKDxJbnRlZ2VyTW9kX2ludDY0PnJpZ2h0 KS5pdmFsdWUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9fbW9k dWx1cy5pbnQ2NCkgKSAlIHNlbGYuX19tb2R1bHVzLmludDY0KQorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5fbW9kdWx1cy5pbnQ2NCkgKSAlIHNlbGYuX21vZHVsdXMu aW50NjQpCisgCisgICAgIGRlZiBfX2ludF9fKEludGVnZXJNb2RfaW50NjQgc2VsZik6CisgICAg ICAgICByZXR1cm4gc2VsZi5pdmFsdWUKK0BAIC0zNTU5LDcgKzM1NTksNyBAQCBjZGVmIGNsYXNz IEludGVnZXJNb2RfaW50NjQoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICBpZiBrID09 IDA6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYKKyAgICAgICAgIGVsaWYgayA+IDA6CistICAg ICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKChzZWxmLml2YWx1ZSA8PCBrKSAlIHNlbGYuX19t b2R1bHVzLmludDY0KQorKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYygoc2VsZi5pdmFs dWUgPDwgaykgJSBzZWxmLl9tb2R1bHVzLmludDY0KQorICAgICAgICAgZWxzZToKKyAgICAgICAg ICAgICByZXR1cm4gc2VsZi5fbmV3X2Moc2VsZi5pdmFsdWUgPj4gKC1rKSkKKyAKK0BAIC0zNjMz LDcgKzM2MzMsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfaW50NjQoSW50ZWdlck1vZF9hYnN0 cmFjdCk6CisgICAgICAgICAgICAgc2lnX29uKCkKKyAgICAgICAgICAgICB0cnk6CisgICAgICAg ICAgICAgICAgIG1wel9pbml0KHJlc19tcHopCistICAgICAgICAgICAgICAgIG1wel9wb3dfaGVs cGVyKHJlc19tcHosICg8SW50ZWdlcj5iYXNlKS52YWx1ZSwgZXhwLCBzZWxmLl9fbW9kdWx1cy5z YWdlSW50ZWdlci52YWx1ZSkKKysgICAgICAgICAgICAgICAgbXB6X3Bvd19oZWxwZXIocmVzX21w eiwgKDxJbnRlZ2VyPmJhc2UpLnZhbHVlLCBleHAsIHNlbGYuX21vZHVsdXMuc2FnZUludGVnZXIu dmFsdWUpCisgICAgICAgICAgICAgICAgIHJlcyA9IG1wel9nZXRfdWkocmVzX21weikKKyAgICAg ICAgICAgICAgICAgbXB6X2NsZWFyKHJlc19tcHopCisgICAgICAgICAgICAgZmluYWxseToKK0BA IC0zNjQyLDE0ICszNjQyLDE0IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQ2NChJbnRlZ2Vy TW9kX2Fic3RyYWN0KToKKyAKKyAgICAgICAgIGlmIGxvbmdfZXhwID09IDAgYW5kIHNlbGYuaXZh bHVlID09IDA6CisgICAgICAgICAgICAgIyBSZXR1cm4gMCBpZiB0aGUgbW9kdWx1cyBpcyAxLCBv dGhlcndpc2UgcmV0dXJuIDEuCistICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKHNlbGYu X19tb2R1bHVzLmludDY0ICE9IDEpCisrICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKHNl bGYuX21vZHVsdXMuaW50NjQgIT0gMSkKKyAgICAgICAgIGNkZWYgYmludCBpbnZlcnQgPSBGYWxz ZQorICAgICAgICAgaWYgbG9uZ19leHAgPCAwOgorICAgICAgICAgICAgIGludmVydCA9IFRydWUK KyAgICAgICAgICAgICBsb25nX2V4cCA9IC1sb25nX2V4cAorLSAgICAgICAgcmVzID0gbW9kX3Bv d19pbnQ2NChzZWxmLml2YWx1ZSwgbG9uZ19leHAsIHNlbGYuX19tb2R1bHVzLmludDY0KQorKyAg ICAgICAgcmVzID0gbW9kX3Bvd19pbnQ2NChzZWxmLml2YWx1ZSwgbG9uZ19leHAsIHNlbGYuX21v ZHVsdXMuaW50NjQpCisgICAgICAgICBpZiBpbnZlcnQ6CistICAgICAgICAgICAgcmV0dXJuIHNl bGYuX25ld19jKG1vZF9pbnZlcnNlX2ludDY0KHJlcywgc2VsZi5fX21vZHVsdXMuaW50NjQpKQor KyAgICAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyhtb2RfaW52ZXJzZV9pbnQ2NChyZXMsIHNl bGYuX21vZHVsdXMuaW50NjQpKQorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4g c2VsZi5fbmV3X2MocmVzKQorIAorQEAgLTM2NjYsNyArMzY2Niw3IEBAIGNkZWYgY2xhc3MgSW50 ZWdlck1vZF9pbnQ2NChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgICAgICBzYWdlOiBh CisgICAgICAgICAgICAgNworICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5fbmV3 X2MobW9kX2ludmVyc2VfaW50NjQoc2VsZi5pdmFsdWUsIHNlbGYuX19tb2R1bHVzLmludDY0KSkK KysgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyhtb2RfaW52ZXJzZV9pbnQ2NChzZWxmLml2YWx1 ZSwgc2VsZi5fbW9kdWx1cy5pbnQ2NCkpCisgCisgICAgIGRlZiBsaWZ0KEludGVnZXJNb2RfaW50 NjQgc2VsZik6CisgICAgICAgICAiIiIKK0BAIC0zNzE1LDcgKzM3MTUsNyBAQCBjZGVmIGNsYXNz IEludGVnZXJNb2RfaW50NjQoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICBUaGlzIGZ1 bmN0aW9uIHJldHVybnMgYHhgIG9yIGAteGAsIHdoaWNoZXZlciBoYXMgYQorICAgICAgICAgcG9z aXRpdmUgcmVwcmVzZW50YXRpdmUgaW4gYC1uLzIgPCB4IFxsZXEgbi8yYC4KKyAgICAgICAgICIi IgorLSAgICAgICAgaWYgc2VsZi5pdmFsdWUgPiBzZWxmLl9fbW9kdWx1cy5pbnQ2NCAvIDI6Cisr ICAgICAgICBpZiBzZWxmLml2YWx1ZSA+IHNlbGYuX21vZHVsdXMuaW50NjQgLyAyOgorICAgICAg ICAgICAgIHJldHVybiAtc2VsZgorICAgICAgICAgcmV0dXJuIHNlbGYKKyAKK0BAIC0zNzM4LDkg KzM3MzgsOSBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfaW50NjQoSW50ZWdlck1vZF9hYnN0cmFj dCk6CisgICAgICAgICAgICAgc2FnZTogbW9kKDAsMTdeNSkuZ2NkKG1vZCgwLDE3XjUpKQorICAg ICAgICAgICAgIDAKKyAgICAgICAgICIiIgorLSAgICAgICAgY2RlZiBpbnRfZmFzdDY0X3QgZyA9 IGdjZF9pbnQ2NChzZWxmLml2YWx1ZSwgc2VsZi5fX21vZHVsdXMuaW50NjQpCisrICAgICAgICBj ZGVmIGludF9mYXN0NjRfdCBnID0gZ2NkX2ludDY0KHNlbGYuaXZhbHVlLCBzZWxmLl9tb2R1bHVz LmludDY0KQorICAgICAgICAgZyA9IGdjZF9pbnQ2NChnLCBvdGhlci5pdmFsdWUpCistICAgICAg ICBpZiBnID09IHNlbGYuX19tb2R1bHVzLmludDY0OiAjIHNlbGYgPSBvdGhlciA9IDAKKysgICAg ICAgIGlmIGcgPT0gc2VsZi5fbW9kdWx1cy5pbnQ2NDogIyBzZWxmID0gb3RoZXIgPSAwCisgICAg ICAgICAgICAgZyA9IDAKKyAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyhnKQorIAorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL3JpbmdzL2ZyYWN0aW9uX2ZpZWxkX0ZwVC5weXggYi9zcmMvc2FnZS9y aW5ncy9mcmFjdGlvbl9maWVsZF9GcFQucHl4CitpbmRleCAwYTI1MTkxYTExYy4uYzliYjVkNWEz ODQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9mcmFjdGlvbl9maWVsZF9GcFQucHl4Cisr KysgYi9zcmMvc2FnZS9yaW5ncy9mcmFjdGlvbl9maWVsZF9GcFQucHl4CitAQCAtMTY1MCw3ICsx NjUwLDcgQEAgY2RlZiBjbGFzcyBGcFRfRnBfc2VjdGlvbihTZWN0aW9uKToKKyAgICAgICAgICAg ICAgICAgcmFpc2UgVmFsdWVFcnJvcigibm90IGNvbnN0YW50IikKKyAgICAgICAgIGFucyA9IElu dGVnZXJNb2RfaW50Ll9fbmV3X18oSW50ZWdlck1vZF9pbnQpCisgICAgICAgICBhbnMuX3BhcmVu dCA9IHNlbGYuY29kb21haW4oKQorLSAgICAgICAgYW5zLl9fbW9kdWx1cyA9IGFucy5fcGFyZW50 Ll9weXhfb3JkZXIKKysgICAgICAgIGFucy5fbW9kdWx1cyA9IGFucy5fcGFyZW50Ll9weXhfb3Jk ZXIKKyAgICAgICAgIGlmIG5tb2RfcG9seV9nZXRfY29lZmZfdWkoeC5fZGVub20sIDApICE9IDE6 CisgICAgICAgICAgICAgbm9ybWFsaXplKHguX251bWVyLCB4Ll9kZW5vbSwgc2VsZi5wKQorICAg ICAgICAgYW5zLml2YWx1ZSA9IG5tb2RfcG9seV9nZXRfY29lZmZfdWkoeC5fbnVtZXIsIDApCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvZnJhY3Rpb25fZmllbGRfZWxlbWVudC5weXggYi9z cmMvc2FnZS9yaW5ncy9mcmFjdGlvbl9maWVsZF9lbGVtZW50LnB5eAoraW5kZXggMTFhMmI2NDZk MzUuLjc1ZTQ3YWYxMjk5IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvZnJhY3Rpb25fZmll bGRfZWxlbWVudC5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2ZyYWN0aW9uX2ZpZWxkX2VsZW1l bnQucHl4CitAQCAtNzgsOCArNzgsOCBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50 KEZpZWxkRWxlbWVudCk6CisgICAgICAgICBzYWdlOiBGLm9uZSgpLnF1b19yZW0oRi5vbmUoKSkK KyAgICAgICAgICgxLCAwKQorICAgICAiIiIKKy0gICAgY2RlZiBvYmplY3QgX19udW1lcmF0b3IK Ky0gICAgY2RlZiBvYmplY3QgX19kZW5vbWluYXRvcgorKyAgICBjZGVmIG9iamVjdCBfbnVtZXJh dG9yCisrICAgIGNkZWYgb2JqZWN0IF9kZW5vbWluYXRvcgorICAgICBjZGVmIGJpbnQgX2lzX3Jl ZHVjZWQKKyAKKyAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCwgbnVtZXJhdG9yLCBkZW5v bWluYXRvcj0xLAorQEAgLTEwOCwxNyArMTA4LDE3IEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVs ZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgRmllbGRFbGVt ZW50Ll9faW5pdF9fKHNlbGYsIHBhcmVudCkKKyAgICAgICAgIGlmIGNvZXJjZToKKy0gICAgICAg ICAgICBzZWxmLl9fbnVtZXJhdG9yICAgPSBwYXJlbnQucmluZygpKG51bWVyYXRvcikKKy0gICAg ICAgICAgICBzZWxmLl9fZGVub21pbmF0b3IgPSBwYXJlbnQucmluZygpKGRlbm9taW5hdG9yKQor KyAgICAgICAgICAgIHNlbGYuX251bWVyYXRvciAgID0gcGFyZW50LnJpbmcoKShudW1lcmF0b3Ip CisrICAgICAgICAgICAgc2VsZi5fZGVub21pbmF0b3IgPSBwYXJlbnQucmluZygpKGRlbm9taW5h dG9yKQorICAgICAgICAgZWxzZToKKy0gICAgICAgICAgICBzZWxmLl9fbnVtZXJhdG9yICAgPSBu dW1lcmF0b3IKKy0gICAgICAgICAgICBzZWxmLl9fZGVub21pbmF0b3IgPSBkZW5vbWluYXRvcgor KyAgICAgICAgICAgIHNlbGYuX251bWVyYXRvciAgID0gbnVtZXJhdG9yCisrICAgICAgICAgICAg c2VsZi5fZGVub21pbmF0b3IgPSBkZW5vbWluYXRvcgorICAgICAgICAgaWYgcmVkdWNlIGFuZCBw YXJlbnQuaXNfZXhhY3QoKToKKyAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgIHNl bGYucmVkdWNlKCkKKyAgICAgICAgICAgICBleGNlcHQgQXJpdGhtZXRpY0Vycm9yOgorICAgICAg ICAgICAgICAgICBwYXNzCistICAgICAgICBpZiBzZWxmLl9fZGVub21pbmF0b3IuaXNfemVybygp OgorKyAgICAgICAgaWYgc2VsZi5fZGVub21pbmF0b3IuaXNfemVybygpOgorICAgICAgICAgICAg IHJhaXNlIFplcm9EaXZpc2lvbkVycm9yKCJmcmFjdGlvbiBmaWVsZCBlbGVtZW50IGRpdmlzaW9u IGJ5IHplcm8iKQorIAorICAgICBkZWYgX2ltX2dlbnNfKHNlbGYsIGNvZG9tYWluLCBpbV9nZW5z LCBiYXNlX21hcD1Ob25lKToKK0BAIC0xNTQsOCArMTU0LDggQEAgY2RlZiBjbGFzcyBGcmFjdGlv bkZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgICAgIHNhZ2U6IHBoaShpL2Ep ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAjIG9wdGlvbmFsIC0gc2FnZS5yaW5ncy5udW1iZXJfZmllbGQKKyAgICAgICAgICAgICAo KC1pKSkvYgorICAgICAgICAgIiIiCistICAgICAgICBubnVtID0gY29kb21haW4uY29lcmNlKHNl bGYuX19udW1lcmF0b3IuX2ltX2dlbnNfKGNvZG9tYWluLCBpbV9nZW5zLCBiYXNlX21hcD1iYXNl X21hcCkpCistICAgICAgICBuZGVuID0gY29kb21haW4uY29lcmNlKHNlbGYuX19kZW5vbWluYXRv ci5faW1fZ2Vuc18oY29kb21haW4sIGltX2dlbnMsIGJhc2VfbWFwPWJhc2VfbWFwKSkKKysgICAg ICAgIG5udW0gPSBjb2RvbWFpbi5jb2VyY2Uoc2VsZi5fbnVtZXJhdG9yLl9pbV9nZW5zXyhjb2Rv bWFpbiwgaW1fZ2VucywgYmFzZV9tYXA9YmFzZV9tYXApKQorKyAgICAgICAgbmRlbiA9IGNvZG9t YWluLmNvZXJjZShzZWxmLl9kZW5vbWluYXRvci5faW1fZ2Vuc18oY29kb21haW4sIGltX2dlbnMs IGJhc2VfbWFwPWJhc2VfbWFwKSkKKyAgICAgICAgIHJldHVybiBjb2RvbWFpbi5jb2VyY2Uobm51 bS9uZGVuKQorIAorICAgICBjcGRlZiByZWR1Y2Uoc2VsZik6CitAQCAtMTkxLDEwICsxOTEsMTAg QEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAg ICAgaWYgc2VsZi5faXNfcmVkdWNlZDoKKyAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgIHRy eToKKy0gICAgICAgICAgICBnID0gc2VsZi5fX251bWVyYXRvci5nY2Qoc2VsZi5fX2Rlbm9taW5h dG9yKQorKyAgICAgICAgICAgIGcgPSBzZWxmLl9udW1lcmF0b3IuZ2NkKHNlbGYuX2Rlbm9taW5h dG9yKQorICAgICAgICAgICAgIGlmIG5vdCBnLmlzX3VuaXQoKToKKy0gICAgICAgICAgICAgICAg c2VsZi5fX251bWVyYXRvciAvLz0gZworLSAgICAgICAgICAgICAgICBzZWxmLl9fZGVub21pbmF0 b3IgLy89IGcKKysgICAgICAgICAgICAgICAgc2VsZi5fbnVtZXJhdG9yIC8vPSBnCisrICAgICAg ICAgICAgICAgIHNlbGYuX2Rlbm9taW5hdG9yIC8vPSBnCisgICAgICAgICAgICAgc2VsZi5faXNf cmVkdWNlZCA9IFRydWUKKyAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAg ICAgICByYWlzZSBBcml0aG1ldGljRXJyb3IoInVuYWJsZSB0byByZWR1Y2UgYmVjYXVzZSBsYWNr IG9mIGdjZCBvciBxdW9fcmVtIGFsZ29yaXRobSIpCitAQCAtMjAyLDE0ICsyMDIsMTQgQEAgY2Rl ZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgICAg IHJhaXNlIEFyaXRobWV0aWNFcnJvcigidW5hYmxlIHRvIHJlZHVjZSBiZWNhdXNlIGdjZCBhbGdv cml0aG0gZG9lc24ndCB3b3JrIG9uIGlucHV0IikKKyAgICAgICAgIGV4Y2VwdCBOb3RJbXBsZW1l bnRlZEVycm9yOgorICAgICAgICAgICAgIHJhaXNlIEFyaXRobWV0aWNFcnJvcigidW5hYmxlIHRv IHJlZHVjZSBiZWNhdXNlIGdjZCBhbGdvcml0aG0gbm90IGltcGxlbWVudGVkIG9uIGlucHV0IikK Ky0gICAgICAgIGlmIG5vdCBzZWxmLl9fZGVub21pbmF0b3IuaXNfb25lKCkgYW5kIHNlbGYuX19k ZW5vbWluYXRvci5pc191bml0KCk6CisrICAgICAgICBpZiBub3Qgc2VsZi5fZGVub21pbmF0b3Iu aXNfb25lKCkgYW5kIHNlbGYuX2Rlbm9taW5hdG9yLmlzX3VuaXQoKToKKyAgICAgICAgICAgICB0 cnk6CistICAgICAgICAgICAgICAgIGludiA9IHNlbGYuX19kZW5vbWluYXRvci5pbnZlcnNlX29m X3VuaXQoKQorKyAgICAgICAgICAgICAgICBpbnYgPSBzZWxmLl9kZW5vbWluYXRvci5pbnZlcnNl X29mX3VuaXQoKQorICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICAg ICAgIHBhc3MKKyAgICAgICAgICAgICBlbHNlOgorLSAgICAgICAgICAgICAgICBzZWxmLl9fbnVt ZXJhdG9yICo9IGludgorLSAgICAgICAgICAgICAgICBzZWxmLl9fZGVub21pbmF0b3IgPSBzZWxm Ll9fZGVub21pbmF0b3IucGFyZW50KCkub25lKCkKKysgICAgICAgICAgICAgICAgc2VsZi5fbnVt ZXJhdG9yICo9IGludgorKyAgICAgICAgICAgICAgICBzZWxmLl9kZW5vbWluYXRvciA9IHNlbGYu X2Rlbm9taW5hdG9yLnBhcmVudCgpLm9uZSgpCisgCisgICAgIGRlZiBfX2NvcHlfXyhzZWxmKToK KyAgICAgICAgICIiIgorQEAgLTIyMyw4ICsyMjMsOCBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmll bGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAgICAgc2FnZTogY29weShmKQorICAg ICAgICAgICAgICh4ICsgeSkveQorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5f X2NsYXNzX18oc2VsZi5fcGFyZW50LCBzZWxmLl9fbnVtZXJhdG9yLAorLSAgICAgICAgICAgICAg ICBzZWxmLl9fZGVub21pbmF0b3IsIGNvZXJjZT1GYWxzZSwgcmVkdWNlPUZhbHNlKQorKyAgICAg ICAgcmV0dXJuIHNlbGYuX19jbGFzc19fKHNlbGYuX3BhcmVudCwgc2VsZi5fbnVtZXJhdG9yLAor KyAgICAgICAgICAgICAgICBzZWxmLl9kZW5vbWluYXRvciwgY29lcmNlPUZhbHNlLCByZWR1Y2U9 RmFsc2UpCisgCisgICAgIGRlZiBudW1lcmF0b3Ioc2VsZik6CisgICAgICAgICAiIiIKK0BAIC0y MzgsNyArMjM4LDcgQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVsZW1l bnQpOgorICAgICAgICAgICAgIHNhZ2U6IGYubnVtZXJhdG9yKCkKKyAgICAgICAgICAgICB4ICsg eQorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5fX251bWVyYXRvcgorKyAgICAg ICAgcmV0dXJuIHNlbGYuX251bWVyYXRvcgorIAorICAgICBkZWYgZGVub21pbmF0b3Ioc2VsZik6 CisgICAgICAgICAiIiIKK0BAIC0yNTIsNyArMjUyLDcgQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZp ZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgICAgIHNhZ2U6IGYuZGVub21pbmF0 b3IoKQorICAgICAgICAgICAgIHkKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIHNlbGYu X19kZW5vbWluYXRvcgorKyAgICAgICAgcmV0dXJuIHNlbGYuX2Rlbm9taW5hdG9yCisgCisgCisg ICAgIGRlZiBpc19zcXVhcmUoc2VsZixyb290PUZhbHNlKToKK0BAIC0zOTksMTAgKzM5OSwxMCBA QCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAg ICAgICAgc2FnZTogKCh4KzEpLyh4XjIrMSkpLnN1YnMoe3g6IDF9KSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwgLSBzYWdlLnJpbmdzLm51bWJlcl9m aWVsZAorICAgICAgICAgICAgIDEKKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgc2VsZi5fX2Rl bm9taW5hdG9yLmlzX29uZSgpOgorKyAgICAgICAgaWYgc2VsZi5fZGVub21pbmF0b3IuaXNfb25l KCk6CisgICAgICAgICAgICAgIyBIYW5kbGUgdGhpcyBjYXNlIGV2ZW4gb3ZlciByaW5ncyB0aGF0 IGRvbid0IHN1cHBvcnQgcmVkdWN0aW9uLCB0bworICAgICAgICAgICAgICMgYXZvaWQgYnJlYWtp bmcgZXhpc3RpbmcgY29kZSB0aGF0IGNhcmVsZXNzbHkgbWl4ZXMgcCBhbmQgcC8xCistICAgICAg ICAgICAgcmV0dXJuIGhhc2goc2VsZi5fX251bWVyYXRvcikKKysgICAgICAgICAgICByZXR1cm4g aGFzaChzZWxmLl9udW1lcmF0b3IpCisgICAgICAgICBpZiBzZWxmLl9wYXJlbnQuaXNfZXhhY3Qo KToKKyAgICAgICAgICAgICAjIE1heSBmYWlsOyBsZXQgdGhlIGV4Y2VwdGlvbiBwcm9wYWdhdGUg dGhlbi4KKyAgICAgICAgICAgICAjIChJbiBjb250cmFzdCwgb3ZlciBpbmV4YWN0IHJpbmdzLCB3 ZSBoYXNoIHVucmVkdWNlZCBmcmFjdGlvbnMKK0BAIC00MTMsOCArNDEzLDggQEAgY2RlZiBjbGFz cyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgICAgICMgaXNz dWVzIGV2ZW4gaWYgd2UgZGlkbid0Li4uKQorICAgICAgICAgICAgIHNlbGYucmVkdWNlKCkKKyAg ICAgICAgICMgU2FtZSBhbGdvcml0aG0gYXMgZm9yIGVsZW1lbnRzIG9mIFFRCistICAgICAgICBu ID0gaGFzaChzZWxmLl9fbnVtZXJhdG9yKQorLSAgICAgICAgZCA9IGhhc2goc2VsZi5fX2Rlbm9t aW5hdG9yKQorKyAgICAgICAgbiA9IGhhc2goc2VsZi5fbnVtZXJhdG9yKQorKyAgICAgICAgZCA9 IGhhc2goc2VsZi5fZGVub21pbmF0b3IpCisgICAgICAgICBpZiBkID09IDE6CisgICAgICAgICAg ICAgcmV0dXJuIG4KKyAgICAgICAgIGVsc2U6CitAQCAtNDQzLDcgKzQ0Myw3IEBAIGNkZWYgY2xh c3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICBzYWdl OiBoKHgwPTEpCisgICAgICAgICAgICAgKC0yKngxKngyICsgeDEgKyAxKS8oeDEgKyB4MikKKyAg ICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIHNlbGYuX19udW1lcmF0b3IoKngsICoqa3dkcykg LyBzZWxmLl9fZGVub21pbmF0b3IoKngsICoqa3dkcykKKysgICAgICAgIHJldHVybiBzZWxmLl9u dW1lcmF0b3IoKngsICoqa3dkcykgLyBzZWxmLl9kZW5vbWluYXRvcigqeCwgKiprd2RzKQorIAor ICAgICBkZWYgX2lzX2F0b21pYyhzZWxmKToKKyAgICAgICAgICIiIgorQEAgLTQ1Niw3ICs0NTYs NyBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAg ICAgICAgICAgc2FnZTogZi5faXNfYXRvbWljKCkKKyAgICAgICAgICAgICBGYWxzZQorICAgICAg ICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5fX251bWVyYXRvci5faXNfYXRvbWljKCkgYW5k IHNlbGYuX19kZW5vbWluYXRvci5faXNfYXRvbWljKCkKKysgICAgICAgIHJldHVybiBzZWxmLl9u dW1lcmF0b3IuX2lzX2F0b21pYygpIGFuZCBzZWxmLl9kZW5vbWluYXRvci5faXNfYXRvbWljKCkK KyAKKyAgICAgZGVmIF9yZXByXyhzZWxmKToKKyAgICAgICAgICIiIgorQEAgLTQ3NiwxMyArNDc2 LDEzIEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAg ICAgICAgICIiIgorICAgICAgICAgaWYgc2VsZi5pc196ZXJvKCk6CisgICAgICAgICAgICAgcmV0 dXJuICIwIgorLSAgICAgICAgcyA9ICIlcyIgJSBzZWxmLl9fbnVtZXJhdG9yCistICAgICAgICBp ZiBzZWxmLl9fZGVub21pbmF0b3IgIT0gMToKKy0gICAgICAgICAgICBkZW5vbV9zdHJpbmcgPSBz dHIoIHNlbGYuX19kZW5vbWluYXRvciApCistICAgICAgICAgICAgaWYgc2VsZi5fX2Rlbm9taW5h dG9yLl9pc19hdG9taWMoKSBhbmQgbm90ICgnKicgaW4gZGVub21fc3RyaW5nIG9yICcvJyBpbiBk ZW5vbV9zdHJpbmcpOgorLSAgICAgICAgICAgICAgICBzID0gIiVzLyVzIiUoc2VsZi5fX251bWVy YXRvci5fY29lZmZfcmVwcihub19zcGFjZT1GYWxzZSksZGVub21fc3RyaW5nKQorKyAgICAgICAg cyA9ICIlcyIgJSBzZWxmLl9udW1lcmF0b3IKKysgICAgICAgIGlmIHNlbGYuX2Rlbm9taW5hdG9y ICE9IDE6CisrICAgICAgICAgICAgZGVub21fc3RyaW5nID0gc3RyKCBzZWxmLl9kZW5vbWluYXRv ciApCisrICAgICAgICAgICAgaWYgc2VsZi5fZGVub21pbmF0b3IuX2lzX2F0b21pYygpIGFuZCBu b3QgKCcqJyBpbiBkZW5vbV9zdHJpbmcgb3IgJy8nIGluIGRlbm9tX3N0cmluZyk6CisrICAgICAg ICAgICAgICAgIHMgPSAiJXMvJXMiJShzZWxmLl9udW1lcmF0b3IuX2NvZWZmX3JlcHIobm9fc3Bh Y2U9RmFsc2UpLGRlbm9tX3N0cmluZykKKyAgICAgICAgICAgICBlbHNlOgorLSAgICAgICAgICAg ICAgICBzID0gIiVzLyglcykiJShzZWxmLl9fbnVtZXJhdG9yLl9jb2VmZl9yZXByKG5vX3NwYWNl PUZhbHNlKSxkZW5vbV9zdHJpbmcpCisrICAgICAgICAgICAgICAgIHMgPSAiJXMvKCVzKSIlKHNl bGYuX251bWVyYXRvci5fY29lZmZfcmVwcihub19zcGFjZT1GYWxzZSksZGVub21fc3RyaW5nKQor ICAgICAgICAgcmV0dXJuIHMKKyAKKyAgICAgZGVmIF9sYXRleF8oc2VsZik6CitAQCAtNTE4LDEw ICs1MTgsMTAgQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQp OgorICAgICAgICAgIiIiCisgICAgICAgICBpZiBzZWxmLmlzX3plcm8oKToKKyAgICAgICAgICAg ICByZXR1cm4gIjAiCistICAgICAgICBpZiBzZWxmLl9fZGVub21pbmF0b3IgPT0gMToKKy0gICAg ICAgICAgICByZXR1cm4gbGF0ZXgubGF0ZXgoc2VsZi5fX251bWVyYXRvcikKKy0gICAgICAgIHJl dHVybiAiXFxmcmFjeyVzfXslc30iJShsYXRleC5sYXRleChzZWxmLl9fbnVtZXJhdG9yKSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXRleC5sYXRleChzZWxmLl9fZGVub21p bmF0b3IpKQorKyAgICAgICAgaWYgc2VsZi5fZGVub21pbmF0b3IgPT0gMToKKysgICAgICAgICAg ICByZXR1cm4gbGF0ZXgubGF0ZXgoc2VsZi5fbnVtZXJhdG9yKQorKyAgICAgICAgcmV0dXJuICJc XGZyYWN7JXN9eyVzfSIlKGxhdGV4LmxhdGV4KHNlbGYuX251bWVyYXRvciksCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGF0ZXgubGF0ZXgoc2VsZi5fZGVub21pbmF0b3IpKQor IAorICAgICBkZWYgX21hZ21hX2luaXRfKHNlbGYsIG1hZ21hKToKKyAgICAgICAgICIiIgorQEAg LTU3NywxMCArNTc3LDEwIEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRF bGVtZW50KToKKyAgICAgICAgICAgICBzYWdlOiB0IC0gMS90ICMgaW5kaXJlY3QgZG9jdGVzdCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCAtIHNh Z2UucmluZ3MuZmluaXRlX3JpbmdzCisgICAgICAgICAgICAgKHReMiArIDYpL3QKKyAgICAgICAg ICIiIgorLSAgICAgICAgcm51bSA9IHNlbGYuX19udW1lcmF0b3IKKy0gICAgICAgIHJkZW4gPSBz ZWxmLl9fZGVub21pbmF0b3IKKy0gICAgICAgIHNudW0gPSAoPEZyYWN0aW9uRmllbGRFbGVtZW50 PiByaWdodCkuX19udW1lcmF0b3IKKy0gICAgICAgIHNkZW4gPSAoPEZyYWN0aW9uRmllbGRFbGVt ZW50PiByaWdodCkuX19kZW5vbWluYXRvcgorKyAgICAgICAgcm51bSA9IHNlbGYuX251bWVyYXRv cgorKyAgICAgICAgcmRlbiA9IHNlbGYuX2Rlbm9taW5hdG9yCisrICAgICAgICBzbnVtID0gKDxG cmFjdGlvbkZpZWxkRWxlbWVudD4gcmlnaHQpLl9udW1lcmF0b3IKKysgICAgICAgIHNkZW4gPSAo PEZyYWN0aW9uRmllbGRFbGVtZW50PiByaWdodCkuX2Rlbm9taW5hdG9yCisgCisgICAgICAgICBp ZiAocm51bS5pc196ZXJvKCkpOgorICAgICAgICAgICAgIHJldHVybiA8RnJhY3Rpb25GaWVsZEVs ZW1lbnQ+IHJpZ2h0CitAQCAtNjAyLDcgKzYwMiw3IEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVs ZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5fcGFyZW50LnJpbmcoKS5vbmUoKSwgY29lcmNlPUZhbHNlLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZWR1Y2U9RmFsc2UpCisgICAgICAgICAgICAgICAgICAgICBlbHNlOgorLSAg ICAgICAgICAgICAgICAgICAgICAgIHRkZW4gPSBzZWxmLl9fZGVub21pbmF0b3IgKiBzZGVuCisr ICAgICAgICAgICAgICAgICAgICAgICAgdGRlbiA9IHNlbGYuX2Rlbm9taW5hdG9yICogc2Rlbgor ICAgICAgICAgICAgICAgICAgICAgICAgIGUgICAgPSB0bnVtLmdjZChkKQorICAgICAgICAgICAg ICAgICAgICAgICAgIGlmIG5vdCBlLmlzX3VuaXQoKToKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdG51bSA9IHRudW0gLy8gZQorQEAgLTYyNCwxMCArNjI0LDEwIEBAIGNkZWYgY2xhc3Mg RnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICBleGNlcHQg VHlwZUVycm9yOgorICAgICAgICAgICAgICAgICBwYXNzCisgCistICAgICAgICBybnVtID0gc2Vs Zi5fX251bWVyYXRvcgorLSAgICAgICAgcmRlbiA9IHNlbGYuX19kZW5vbWluYXRvcgorLSAgICAg ICAgc251bSA9ICg8RnJhY3Rpb25GaWVsZEVsZW1lbnQ+IHJpZ2h0KS5fX251bWVyYXRvcgorLSAg ICAgICAgc2RlbiA9ICg8RnJhY3Rpb25GaWVsZEVsZW1lbnQ+IHJpZ2h0KS5fX2Rlbm9taW5hdG9y CisrICAgICAgICBybnVtID0gc2VsZi5fbnVtZXJhdG9yCisrICAgICAgICByZGVuID0gc2VsZi5f ZGVub21pbmF0b3IKKysgICAgICAgIHNudW0gPSAoPEZyYWN0aW9uRmllbGRFbGVtZW50PiByaWdo dCkuX251bWVyYXRvcgorKyAgICAgICAgc2RlbiA9ICg8RnJhY3Rpb25GaWVsZEVsZW1lbnQ+IHJp Z2h0KS5fZGVub21pbmF0b3IKKyAKKyAgICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXyhzZWxm Ll9wYXJlbnQsIHJudW0qc2RlbiArIHJkZW4qc251bSwgcmRlbipzZGVuLAorICAgICAgICAgICAg IGNvZXJjZT1GYWxzZSwgcmVkdWNlPUZhbHNlKQorQEAgLTY1MiwxMCArNjUyLDEwIEBAIGNkZWYg Y2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICBz YWdlOiBhICogYiAjIGluZGlyZWN0IGRvY3Rlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCAtIHNhZ2UucmluZ3MuZmluaXRlX3JpbmdzCisg ICAgICAgICAgICAgMy8odCArIDEpCisgICAgICAgICAiIiIKKy0gICAgICAgIHJudW0gPSBzZWxm Ll9fbnVtZXJhdG9yCistICAgICAgICByZGVuID0gc2VsZi5fX2Rlbm9taW5hdG9yCistICAgICAg ICBzbnVtID0gKDxGcmFjdGlvbkZpZWxkRWxlbWVudD4gcmlnaHQpLl9fbnVtZXJhdG9yCistICAg ICAgICBzZGVuID0gKDxGcmFjdGlvbkZpZWxkRWxlbWVudD4gcmlnaHQpLl9fZGVub21pbmF0b3IK KysgICAgICAgIHJudW0gPSBzZWxmLl9udW1lcmF0b3IKKysgICAgICAgIHJkZW4gPSBzZWxmLl9k ZW5vbWluYXRvcgorKyAgICAgICAgc251bSA9ICg8RnJhY3Rpb25GaWVsZEVsZW1lbnQ+IHJpZ2h0 KS5fbnVtZXJhdG9yCisrICAgICAgICBzZGVuID0gKDxGcmFjdGlvbkZpZWxkRWxlbWVudD4gcmln aHQpLl9kZW5vbWluYXRvcgorIAorICAgICAgICAgaWYgKHJudW0uaXNfemVybygpIG9yIHNudW0u aXNfemVybygpKToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fcGFyZW50Lnplcm8oKQorQEAg LTY4OSwxMCArNjg5LDEwIEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRF bGVtZW50KToKKyAgICAgICAgICAgICBleGNlcHQgVHlwZUVycm9yOgorICAgICAgICAgICAgICAg ICBwYXNzCisgCistICAgICAgICBybnVtID0gc2VsZi5fX251bWVyYXRvcgorLSAgICAgICAgcmRl biA9IHNlbGYuX19kZW5vbWluYXRvcgorLSAgICAgICAgc251bSA9ICg8RnJhY3Rpb25GaWVsZEVs ZW1lbnQ+IHJpZ2h0KS5fX251bWVyYXRvcgorLSAgICAgICAgc2RlbiA9ICg8RnJhY3Rpb25GaWVs ZEVsZW1lbnQ+IHJpZ2h0KS5fX2Rlbm9taW5hdG9yCisrICAgICAgICBybnVtID0gc2VsZi5fbnVt ZXJhdG9yCisrICAgICAgICByZGVuID0gc2VsZi5fZGVub21pbmF0b3IKKysgICAgICAgIHNudW0g PSAoPEZyYWN0aW9uRmllbGRFbGVtZW50PiByaWdodCkuX251bWVyYXRvcgorKyAgICAgICAgc2Rl biA9ICg8RnJhY3Rpb25GaWVsZEVsZW1lbnQ+IHJpZ2h0KS5fZGVub21pbmF0b3IKKyAKKyAgICAg ICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXyhzZWxmLl9wYXJlbnQsIHJudW0gKiBzbnVtLCByZGVu ICogc2RlbiwKKyAgICAgICAgICAgICBjb2VyY2U9RmFsc2UsIHJlZHVjZT1GYWxzZSkKK0BAIC03 MTcsOCArNzE3LDggQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVsZW1l bnQpOgorICAgICAgICAgICAgIHNhZ2U6IGEvYgorICAgICAgICAgICAgICh4KnogLSB4ICsgeiAt IDEpLyh6IC0gMykKKyAgICAgICAgICIiIgorLSAgICAgICAgc251bSA9ICg8RnJhY3Rpb25GaWVs ZEVsZW1lbnQ+IHJpZ2h0KS5fX251bWVyYXRvcgorLSAgICAgICAgc2RlbiA9ICg8RnJhY3Rpb25G aWVsZEVsZW1lbnQ+IHJpZ2h0KS5fX2Rlbm9taW5hdG9yCisrICAgICAgICBzbnVtID0gKDxGcmFj dGlvbkZpZWxkRWxlbWVudD4gcmlnaHQpLl9udW1lcmF0b3IKKysgICAgICAgIHNkZW4gPSAoPEZy YWN0aW9uRmllbGRFbGVtZW50PiByaWdodCkuX2Rlbm9taW5hdG9yCisgCisgICAgICAgICBpZiBz bnVtLmlzX3plcm8oKToKKyAgICAgICAgICAgICByYWlzZSBaZXJvRGl2aXNpb25FcnJvcigiZnJh Y3Rpb24gZmllbGQgZWxlbWVudCBkaXZpc2lvbiBieSB6ZXJvIikKK0BAIC03NDMsMTAgKzc0Mywx MCBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAg ICAgICAgICAgc2FnZTogaW50KEsoLjUpKQorICAgICAgICAgICAgIDAKKyAgICAgICAgICIiIgor LSAgICAgICAgaWYgc2VsZi5fX2Rlbm9taW5hdG9yICE9IDE6CisrICAgICAgICBpZiBzZWxmLl9k ZW5vbWluYXRvciAhPSAxOgorICAgICAgICAgICAgIHNlbGYucmVkdWNlKCkKKy0gICAgICAgIGlm IHNlbGYuX19kZW5vbWluYXRvciA9PSAxOgorLSAgICAgICAgICAgIHJldHVybiBpbnQoc2VsZi5f X251bWVyYXRvcikKKysgICAgICAgIGlmIHNlbGYuX2Rlbm9taW5hdG9yID09IDE6CisrICAgICAg ICAgICAgcmV0dXJuIGludChzZWxmLl9udW1lcmF0b3IpCisgICAgICAgICBlbHNlOgorICAgICAg ICAgICAgIHJhaXNlIFR5cGVFcnJvcigiZGVub21pbmF0b3IgbXVzdCBlcXVhbCAxIikKKyAKK0BA IC03NTgsNyArNzU4LDcgQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVs ZW1lbnQpOgorICAgICAgICAgICAgIHNhZ2U6IGZsb2F0KHgveCArIHkveSkKKyAgICAgICAgICAg ICAyLjAKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIGZsb2F0KHNlbGYuX19udW1lcmF0 b3IpIC8gZmxvYXQoc2VsZi5fX2Rlbm9taW5hdG9yKQorKyAgICAgICAgcmV0dXJuIGZsb2F0KHNl bGYuX251bWVyYXRvcikgLyBmbG9hdChzZWxmLl9kZW5vbWluYXRvcikKKyAKKyAgICAgZGVmIF9f Y29tcGxleF9fKHNlbGYpOgorICAgICAgICAgIiIiCitAQCAtNzY4LDcgKzc2OCw3IEBAIGNkZWYg Y2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICBz YWdlOiBjb21wbGV4KHgvKEkqeCkgKyAoSSp5KS95KQorICAgICAgICAgICAgIDBqCisgICAgICAg ICAiIiIKKy0gICAgICAgIHJldHVybiBjb21wbGV4KHNlbGYuX19udW1lcmF0b3IpIC8gY29tcGxl eChzZWxmLl9fZGVub21pbmF0b3IpCisrICAgICAgICByZXR1cm4gY29tcGxleChzZWxmLl9udW1l cmF0b3IpIC8gY29tcGxleChzZWxmLl9kZW5vbWluYXRvcikKKyAKKyAgICAgZGVmIF9yYXRpb25h bF8oc2VsZik6CisgICAgICAgICByIiIiCitAQCAtODIyLDEyICs4MjIsMTIgQEAgY2RlZiBjbGFz cyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgICAgIHNhZ2U6 IEEoQyh1KSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAjIG9wdGlvbmFsIC0gc2FnZS5yaW5ncy5udW1iZXJfZmllbGQKKyAgICAg ICAgICAgICB1CisgICAgICAgICAiIiIKKy0gICAgICAgIGlmIHNlbGYuX19kZW5vbWluYXRvci5p c19vbmUoKToKKy0gICAgICAgICAgICByZXR1cm4gUihzZWxmLl9fbnVtZXJhdG9yKQorKyAgICAg ICAgaWYgc2VsZi5fZGVub21pbmF0b3IuaXNfb25lKCk6CisrICAgICAgICAgICAgcmV0dXJuIFIo c2VsZi5fbnVtZXJhdG9yKQorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBzZWxmLnJlZHVj ZSgpCistICAgICAgICAgICAgbnVtID0gUihzZWxmLl9fbnVtZXJhdG9yKQorLSAgICAgICAgICAg IGludl9kZW4gPSBSKHNlbGYuX19kZW5vbWluYXRvcikuaW52ZXJzZV9vZl91bml0KCkKKysgICAg ICAgICAgICBudW0gPSBSKHNlbGYuX251bWVyYXRvcikKKysgICAgICAgICAgICBpbnZfZGVuID0g UihzZWxmLl9kZW5vbWluYXRvcikuaW52ZXJzZV9vZl91bml0KCkKKyAgICAgICAgICAgICByZXR1 cm4gbnVtICogaW52X2RlbgorIAorICAgICBfcmVhbF9kb3VibGVfID0gX2NvbnZlcnNpb24KK0BA IC04NDcsNyArODQ3LDcgQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVs ZW1lbnQpOgorICAgICAgICAgUmV0dXJucyBzZWxmIHJhaXNlZCB0byB0aGUgYHJpZ2h0Xnt0aH1g IHBvd2VyLgorIAorICAgICAgICAgTm90ZSB0aGF0IHdlIG5lZWQgdG8gY2hlY2sgd2hldGhlciBv ciBub3QgcmlnaHQgaXMgbmVnYXRpdmUgc28gd2UKKy0gICAgICAgIGRvbid0IHNldCBgYF9fbnVt ZXJhdG9yYGAgb3IgYGBfX2Rlbm9taW5hdG9yYGAgdG8gYW4gZWxlbWVudCBvZiB0aGUKKysgICAg ICAgIGRvbid0IHNldCBgYF9udW1lcmF0b3JgYCBvciBgYF9kZW5vbWluYXRvcmBgIHRvIGFuIGVs ZW1lbnQgb2YgdGhlCisgICAgICAgICBmcmFjdGlvbiBmaWVsZCBpbnN0ZWFkIG9mIHRoZSB1bmRl cmx5aW5nIHJpbmcuCisgCisgICAgICAgICBFWEFNUExFUzo6CitAQCAtODc2LDggKzg3Niw4IEBA IGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAg ICAgICBzYWdlOiAoKHgreSkvKHgteSkpXjAKKyAgICAgICAgICAgICAxCisgICAgICAgICAiIiIK Ky0gICAgICAgIHNudW0gPSAoPEZyYWN0aW9uRmllbGRFbGVtZW50PiBzZWxmKS5fX251bWVyYXRv cgorLSAgICAgICAgc2RlbiA9ICg8RnJhY3Rpb25GaWVsZEVsZW1lbnQ+IHNlbGYpLl9fZGVub21p bmF0b3IKKysgICAgICAgIHNudW0gPSAoPEZyYWN0aW9uRmllbGRFbGVtZW50PiBzZWxmKS5fbnVt ZXJhdG9yCisrICAgICAgICBzZGVuID0gKDxGcmFjdGlvbkZpZWxkRWxlbWVudD4gc2VsZikuX2Rl bm9taW5hdG9yCisgICAgICAgICBpZiByaWdodCA9PSAwOgorICAgICAgICAgICAgIFIgPSBzZWxm LnBhcmVudCgpLnJpbmcoKQorICAgICAgICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXyhzZWxm LnBhcmVudCgpLAorQEAgLTkwNCw3ICs5MDQsNyBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRF bGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAgICAgKDQqdF4yICsgNCp0KS8odCArIDIp CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXyhzZWxmLl9wYXJl bnQsCistICAgICAgICAgICAgLXNlbGYuX19udW1lcmF0b3IsIHNlbGYuX19kZW5vbWluYXRvciwK KysgICAgICAgICAgICAtc2VsZi5fbnVtZXJhdG9yLCBzZWxmLl9kZW5vbWluYXRvciwKKyAgICAg ICAgICAgICBjb2VyY2U9RmFsc2UsIHJlZHVjZT1GYWxzZSkKKyAKKyAgICAgZGVmIF9fYWJzX18o c2VsZik6CitAQCAtOTE1LDcgKzkxNSw3IEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1l bnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICBzYWdlOiBhYnMoRnJhY3Rpb25GaWVsZEVs ZW1lbnQoUVEsIC0yLCAzLCBjb2VyY2U9RmFsc2UpKQorICAgICAgICAgICAgIDIvMworICAgICAg ICAgIiIiCistICAgICAgICByZXR1cm4gYWJzKHNlbGYuX19udW1lcmF0b3IpIC8gYWJzKHNlbGYu X19kZW5vbWluYXRvcikKKysgICAgICAgIHJldHVybiBhYnMoc2VsZi5fbnVtZXJhdG9yKSAvIGFi cyhzZWxmLl9kZW5vbWluYXRvcikKKyAKKyAgICAgZGVmIF9faW52ZXJ0X18oc2VsZik6CisgICAg ICAgICAiIiIKK0BAIC05MjksNyArOTI5LDcgQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxl bWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgaWYgc2VsZi5pc196ZXJvKCk6CisgICAgICAg ICAgICAgcmFpc2UgWmVyb0RpdmlzaW9uRXJyb3IoIkNhbm5vdCBpbnZlcnQgMCIpCisgICAgICAg ICByZXR1cm4gc2VsZi5fX2NsYXNzX18oc2VsZi5fcGFyZW50LAorLSAgICAgICAgICAgIHNlbGYu X19kZW5vbWluYXRvciwgc2VsZi5fX251bWVyYXRvciwgY29lcmNlPUZhbHNlLCByZWR1Y2U9RmFs c2UpCisrICAgICAgICAgICAgc2VsZi5fZGVub21pbmF0b3IsIHNlbGYuX251bWVyYXRvciwgY29l cmNlPUZhbHNlLCByZWR1Y2U9RmFsc2UpCisgCisgICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBv dGhlciwgaW50IG9wKToKKyAgICAgICAgICIiIgorQEAgLTk1MSwxMCArOTUxLDEwIEBAIGNkZWYg Y2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICBz YWdlOiAxID4geQorICAgICAgICAgICAgIEZhbHNlCisgICAgICAgICAiIiIKKy0gICAgICAgIHJl dHVybiByaWNoY21wKHNlbGYuX19udW1lcmF0b3IgKgorLSAgICAgICAgICAgICAgICAgICAgICAg KDxGcmFjdGlvbkZpZWxkRWxlbWVudD5vdGhlcikuX19kZW5vbWluYXRvciwKKy0gICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuX19kZW5vbWluYXRvciAqCistICAgICAgICAgICAgICAgICAgICAg ICAoPEZyYWN0aW9uRmllbGRFbGVtZW50Pm90aGVyKS5fX251bWVyYXRvciwgb3ApCisrICAgICAg ICByZXR1cm4gcmljaGNtcChzZWxmLl9udW1lcmF0b3IgKgorKyAgICAgICAgICAgICAgICAgICAg ICAgKDxGcmFjdGlvbkZpZWxkRWxlbWVudD5vdGhlcikuX2Rlbm9taW5hdG9yLAorKyAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5fZGVub21pbmF0b3IgKgorKyAgICAgICAgICAgICAgICAgICAg ICAgKDxGcmFjdGlvbkZpZWxkRWxlbWVudD5vdGhlcikuX251bWVyYXRvciwgb3ApCisgCisgICAg IGRlZiB2YWx1YXRpb24oc2VsZiwgdj1Ob25lKToKKyAgICAgICAgICIiIgorQEAgLTk3Miw3ICs5 NzIsNyBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6Cisg ICAgICAgICAgICAgc2FnZTogZi52YWx1YXRpb24oeF4yICsgMSkKKyAgICAgICAgICAgICAxCisg ICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBzZWxmLl9fbnVtZXJhdG9yLnZhbHVhdGlvbih2 KSAtIHNlbGYuX19kZW5vbWluYXRvci52YWx1YXRpb24odikKKysgICAgICAgIHJldHVybiBzZWxm Ll9udW1lcmF0b3IudmFsdWF0aW9uKHYpIC0gc2VsZi5fZGVub21pbmF0b3IudmFsdWF0aW9uKHYp CisgCisgICAgIGRlZiBfX2Jvb2xfXyhzZWxmKToKKyAgICAgICAgICIiIgorQEAgLTk5MSw3ICs5 OTEsNyBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6Cisg ICAgICAgICAgICAgc2FnZTogYm9vbCgxL3gpCisgICAgICAgICAgICAgVHJ1ZQorICAgICAgICAg IiIiCistICAgICAgICByZXR1cm4gbm90IHNlbGYuX19udW1lcmF0b3IuaXNfemVybygpCisrICAg ICAgICByZXR1cm4gbm90IHNlbGYuX251bWVyYXRvci5pc196ZXJvKCkKKyAKKyAgICAgZGVmIGlz X3plcm8oc2VsZik6CisgICAgICAgICAiIiIKK0BAIC0xMDEwLDcgKzEwMTAsNyBAQCBjZGVmIGNs YXNzIEZyYWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAgICAgc2Fn ZTogdS5wYXJlbnQoKSBpcyBGCisgICAgICAgICAgICAgVHJ1ZQorICAgICAgICAgIiIiCistICAg ICAgICByZXR1cm4gc2VsZi5fX251bWVyYXRvci5pc196ZXJvKCkKKysgICAgICAgIHJldHVybiBz ZWxmLl9udW1lcmF0b3IuaXNfemVybygpCisgCisgICAgIGRlZiBpc19vbmUoc2VsZik6CisgICAg ICAgICAiIiIKK0BAIC0xMDI1LDcgKzEwMjUsNyBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRF bGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAgICAgc2FnZTogKHgveSkuaXNfb25lKCkK KyAgICAgICAgICAgICBGYWxzZQorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5f X251bWVyYXRvciA9PSBzZWxmLl9fZGVub21pbmF0b3IKKysgICAgICAgIHJldHVybiBzZWxmLl9u dW1lcmF0b3IgPT0gc2VsZi5fZGVub21pbmF0b3IKKyAKKyAgICAgZGVmIF9zeW1ib2xpY18oc2Vs ZiwgcmluZyk6CisgICAgICAgICAiIiIKK0BAIC0xMDQ0LDcgKzEwNDQsNyBAQCBjZGVmIGNsYXNz IEZyYWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAgICAgc2FnZTog c3ltYm9saWNfZXhwcmVzc2lvbihlbHQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICMgb3B0aW9uYWwgLSBzYWdlLnN5bWJvbGljCisgICAgICAgICAgICAgMi8z Kih4ICsgeSkvKHggLSB5KQorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gcmluZyhzZWxm Ll9fbnVtZXJhdG9yKS9yaW5nKHNlbGYuX19kZW5vbWluYXRvcikKKysgICAgICAgIHJldHVybiBy aW5nKHNlbGYuX251bWVyYXRvcikvcmluZyhzZWxmLl9kZW5vbWluYXRvcikKKyAKKyAgICAgZGVm IF9fcmVkdWNlX18oc2VsZik6CisgICAgICAgICAiIiIKK0BAIC0xMDU4LDcgKzEwNTgsNyBAQCBj ZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAg ICAgVHJ1ZQorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gKG1ha2VfZWxlbWVudCwKKy0g ICAgICAgICAgICAgICAgKHNlbGYuX3BhcmVudCwgc2VsZi5fX251bWVyYXRvciwgc2VsZi5fX2Rl bm9taW5hdG9yKSkKKysgICAgICAgICAgICAgICAgKHNlbGYuX3BhcmVudCwgc2VsZi5fbnVtZXJh dG9yLCBzZWxmLl9kZW5vbWluYXRvcikpCisgCisgICAgIGRlZiBfZXZhbHVhdGVfcG9seW5vbWlh bChzZWxmLCBwb2wpOgorICAgICAgICAgIiIiCitAQCAtMTE3MCw5ICsxMTcwLDkgQEAgY2RlZiBj bGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudF8xcG9seV9maWVsZChGcmFjdGlvbkZpZWxkRWxlbWVu dCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNlZSA6bWV0aDpgcmVkdWNlYC4KKyAgICAgICAg ICIiIgorLSAgICAgICAgaW52bGMgPSB+c2VsZi5fX2Rlbm9taW5hdG9yLmxlYWRpbmdfY29lZmZp Y2llbnQoKQorLSAgICAgICAgc2VsZi5fX2Rlbm9taW5hdG9yID0gc2VsZi5fX2Rlbm9taW5hdG9y Lm1vbmljKCkKKy0gICAgICAgIHNlbGYuX19udW1lcmF0b3IgKj0gaW52bGMKKysgICAgICAgIGlu dmxjID0gfnNlbGYuX2Rlbm9taW5hdG9yLmxlYWRpbmdfY29lZmZpY2llbnQoKQorKyAgICAgICAg c2VsZi5fZGVub21pbmF0b3IgPSBzZWxmLl9kZW5vbWluYXRvci5tb25pYygpCisrICAgICAgICBz ZWxmLl9udW1lcmF0b3IgKj0gaW52bGMKKyAKKyAgICAgZGVmIGlzX2ludGVncmFsKHNlbGYpOgor ICAgICAgICAgIiIiCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvZnVuY3Rpb25fZmllbGQv ZHJpbmZlbGRfbW9kdWxlcy9kcmluZmVsZF9tb2R1bGUucHkgYi9zcmMvc2FnZS9yaW5ncy9mdW5j dGlvbl9maWVsZC9kcmluZmVsZF9tb2R1bGVzL2RyaW5mZWxkX21vZHVsZS5weQoraW5kZXggYTI3 ZTc1ZjVmY2UuLjc0ZWYxMjVmYjZhIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvZnVuY3Rp b25fZmllbGQvZHJpbmZlbGRfbW9kdWxlcy9kcmluZmVsZF9tb2R1bGUucHkKKysrKyBiL3NyYy9z YWdlL3JpbmdzL2Z1bmN0aW9uX2ZpZWxkL2RyaW5mZWxkX21vZHVsZXMvZHJpbmZlbGRfbW9kdWxl LnB5CitAQCAtODA0LDggKzgwNCw4IEBAIGRlZiBfbGF0ZXhfKHNlbGYpOgorICAgICAgICAgICAg IFxwaGkKKyAgICAgICAgICAgICBzYWdlOiBwaGkucmVzZXRfbmFtZSgpCisgICAgICAgICAiIiIK Ky0gICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKToKKy0gICAgICAgICAg ICByZXR1cm4gbGF0ZXhfdmFyaWFibGVfbmFtZShnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1l JykpCisrICAgICAgICBpZiBzZWxmLmdldF9jdXN0b21fbmFtZSgpIGlzIG5vdCBOb25lOgorKyAg ICAgICAgICAgIHJldHVybiBsYXRleF92YXJpYWJsZV9uYW1lKHNlbGYuZ2V0X2N1c3RvbV9uYW1l KCkpCisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBmJ1xccGhpOiB7bGF0ZXgo c2VsZi5fZnVuY3Rpb25fcmluZy5nZW4oKSl9IFxcbWFwc3RvICcgXAorICAgICAgICAgICAgICAg ICAgICBmJ3tsYXRleChzZWxmLl9nZW4pfScKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9s YXVyZW50X3Nlcmllc19yaW5nX2VsZW1lbnQucHhkIGIvc3JjL3NhZ2UvcmluZ3MvbGF1cmVudF9z ZXJpZXNfcmluZ19lbGVtZW50LnB4ZAoraW5kZXggZDE5MDY0NWNlNTIuLjhkZjVhOTJjOWU3IDEw MDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvbGF1cmVudF9zZXJpZXNfcmluZ19lbGVtZW50LnB4 ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvbGF1cmVudF9zZXJpZXNfcmluZ19lbGVtZW50LnB4ZAor QEAgLTQsNyArNCw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFNlcmllcyhBbGdlYnJhRWxlbWVudCk6 CisgICAgIGNkZWYgTW9kdWxlRWxlbWVudCBfX3UKKyAgICAgY2RlZiBsb25nIF9fbgorIAorLSAg ICBjZGVmIF9fbm9ybWFsaXplKHNlbGYpCisrICAgIGNkZWYgX25vcm1hbGl6ZShzZWxmKQorICAg ICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikKKyAgICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIp CisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvbGF1cmVudF9zZXJpZXNfcmluZ19lbGVt ZW50LnB5eCBiL3NyYy9zYWdlL3JpbmdzL2xhdXJlbnRfc2VyaWVzX3JpbmdfZWxlbWVudC5weXgK K2luZGV4IDhlOTUwNDc4MDQ1Li45YmVmNzIzOTZiNyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3Jp bmdzL2xhdXJlbnRfc2VyaWVzX3JpbmdfZWxlbWVudC5weXgKKysrKyBiL3NyYy9zYWdlL3Jpbmdz L2xhdXJlbnRfc2VyaWVzX3JpbmdfZWxlbWVudC5weXgKK0BAIC0zMDIsNyArMzAyLDcgQEAgY2Rl ZiBjbGFzcyBMYXVyZW50U2VyaWVzKEFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgIHggPSBpbV9n ZW5zWzBdCisgICAgICAgICByZXR1cm4gY29kb21haW4oc2VsZi5fX3UuX2ltX2dlbnNfKGNvZG9t YWluLCBpbV9nZW5zLCBiYXNlX21hcD1iYXNlX21hcCkgKiB4KipzZWxmLl9fbikKKyAKKy0gICAg Y2RlZiBfX25vcm1hbGl6ZShzZWxmKToKKysgICAgY2RlZiBfbm9ybWFsaXplKHNlbGYpOgorICAg ICAgICAgciIiIgorICAgICAgICAgQSBMYXVyZW50IHNlcmllcyBpcyBhIHBhaXIgKHUodCksIG4p LCB3aGVyZSBlaXRoZXIgdT0wICh0byBzb21lCisgICAgICAgICBwcmVjaXNpb24pIG9yIHUgaXMg YSB1bml0LiBUaGlzIHBhaXIgY29ycmVzcG9uZHMgdG8KK0BAIC03MjUsNyArNzI1LDcgQEAgY2Rl ZiBjbGFzcyBMYXVyZW50U2VyaWVzKEFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgICAgICAgICAg UiA9IHNlbGYuX3BhcmVudC5iYXNlX3JpbmcoKQorICAgICAgICAgICAgICAgICBjb2VmZnMgPSBb dmFsdWVdICsgW1IoMCkgZm9yIF8gaW4gcmFuZ2UoMSwtaildICsgc2VsZi5fX3UubGlzdCgpCisg ICAgICAgICAgICAgICAgIHNlbGYuX191ID0gc2VsZi5fX3UuX3BhcmVudChjb2VmZnMpCistICAg ICAgICBzZWxmLl9fbm9ybWFsaXplKCkKKysgICAgICAgIHNlbGYuX25vcm1hbGl6ZSgpCisgCisg ICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0X20pOgorICAgICAgICAgIiIiCitkaWZmIC0tZ2l0 IGEvc3JjL3NhZ2UvcmluZ3MvbW9ycGhpc20ucHhkIGIvc3JjL3NhZ2UvcmluZ3MvbW9ycGhpc20u cHhkCitpbmRleCBlYTYwODlmMjliNC4uNGI4ZThkMDUyZGYgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9yaW5ncy9tb3JwaGlzbS5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL21vcnBoaXNtLnB4ZAor QEAgLTE0LDcgKzE0LDcgQEAgY2RlZiBjbGFzcyBSaW5nTWFwX2xpZnQoUmluZ01hcCk6CisgCisg Y2RlZiBjbGFzcyBSaW5nSG9tb21vcnBoaXNtKFJpbmdNYXApOgorICAgICBjZGVmIE1vcnBoaXNt IF9saWZ0CistICAgIGNkZWYgcHVibGljIGRpY3QgX19jYWNoZWRfbWV0aG9kcworKyAgICBjZGVm IHB1YmxpYyBkaWN0IF9jYWNoZWRfbWV0aG9kcworIAorIGNkZWYgY2xhc3MgUmluZ0hvbW9tb3Jw aGlzbV9pbV9nZW5zKFJpbmdIb21vbW9ycGhpc20pOgorICAgICBjZGVmIF9pbV9nZW5zCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2ZpZWxkL251bWJlcl9maWVsZF9lbGVtZW50 LnB4ZCBiL3NyYy9zYWdlL3JpbmdzL251bWJlcl9maWVsZC9udW1iZXJfZmllbGRfZWxlbWVudC5w eGQKK2luZGV4IDliNjkxNzIyM2EwLi5jM2Q4YThiNGE0YiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L3JpbmdzL251bWJlcl9maWVsZC9udW1iZXJfZmllbGRfZWxlbWVudC5weGQKKysrKyBiL3NyYy9z YWdlL3JpbmdzL251bWJlcl9maWVsZC9udW1iZXJfZmllbGRfZWxlbWVudC5weGQKK0BAIC0xMSwx MiArMTEsMTIgQEAgZnJvbSBzYWdlLmxpYnMubnRsLm50bF9aWiBjaW1wb3J0IG50bF9aWgorIAor IAorIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51bWJlckZpZWxkRWxlbWVudF9iYXNl KToKKy0gICAgY2RlZiBaWlhfYyBfX251bWVyYXRvcgorLSAgICBjZGVmIFpaX2MgX19kZW5vbWlu YXRvcgorKyAgICBjZGVmIFpaWF9jIF9udW1lcmF0b3IKKysgICAgY2RlZiBaWl9jIF9kZW5vbWlu YXRvcgorICAgICAjIFBvaW50ZXJzIHRvIHRoZSBkZWZpbmluZyBwb2x5bm9taWFsICh3aXRoIG51 bWVyYXRvcikgZm9yIHRoZSBmaWVsZC4KKyAgICAgIyBJIGtlZXAgdGhlc2UgYXMgcG9pbnRlcnMg Zm9yIGFyaXRobWV0aWMgc3BlZWQuCistICAgIGNkZWYgbnRsX1paWCBfX2ZsZF9udW1lcmF0b3IK Ky0gICAgY2RlZiBudGxfWlogX19mbGRfZGVub21pbmF0b3IKKysgICAgY2RlZiBudGxfWlpYIF9m bGRfbnVtZXJhdG9yCisrICAgIGNkZWYgbnRsX1paIF9mbGRfZGVub21pbmF0b3IKKyAgICAgY2Rl ZiBvYmplY3QgX19tdWx0aXBsaWNhdGl2ZV9vcmRlcgorICAgICBjZGVmIG9iamVjdCBfX3BhcmkK KyAgICAgY2RlZiBvYmplY3QgX19tYXRyaXgKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9u dW1iZXJfZmllbGQvbnVtYmVyX2ZpZWxkX2VsZW1lbnQucHl4IGIvc3JjL3NhZ2UvcmluZ3MvbnVt YmVyX2ZpZWxkL251bWJlcl9maWVsZF9lbGVtZW50LnB5eAoraW5kZXggMjdlMzNhZDViZTAuLmQ0 NGZjNTViNzBjIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2ZpZWxkL251bWJl cl9maWVsZF9lbGVtZW50LnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2ZpZWxkL251 bWJlcl9maWVsZF9lbGVtZW50LnB5eAorQEAgLTIxOCw4ICsyMTgsOCBAQCBjZGVmIGNsYXNzIE51 bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAgICAgICBjZGVm IHR5cGUgdCA9IHR5cGUoc2VsZikKKyAgICAgICAgIGNkZWYgTnVtYmVyRmllbGRFbGVtZW50IHgg PSA8TnVtYmVyRmllbGRFbGVtZW50PnQuX19uZXdfXyh0KQorICAgICAgICAgeC5fcGFyZW50ID0g c2VsZi5fcGFyZW50CistICAgICAgICB4Ll9fZmxkX251bWVyYXRvciA9IHNlbGYuX19mbGRfbnVt ZXJhdG9yCistICAgICAgICB4Ll9fZmxkX2Rlbm9taW5hdG9yID0gc2VsZi5fX2ZsZF9kZW5vbWlu YXRvcgorKyAgICAgICAgeC5fZmxkX251bWVyYXRvciA9IHNlbGYuX2ZsZF9udW1lcmF0b3IKKysg ICAgICAgIHguX2ZsZF9kZW5vbWluYXRvciA9IHNlbGYuX2ZsZF9kZW5vbWluYXRvcgorICAgICAg ICAgcmV0dXJuIHgKKyAKKyAgICAgY2RlZiBudW1iZXJfZmllbGQoc2VsZik6CitAQCAtMzE3LDIw ICszMTcsMjAgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVt ZW50X2Jhc2UpOgorICAgICAgICAgICAgIFRydWUKKyAgICAgICAgICIiIgorICAgICAgICAgRmll bGRFbGVtZW50Ll9faW5pdF9fKHNlbGYsIHBhcmVudCkKKy0gICAgICAgIHNlbGYuX19mbGRfbnVt ZXJhdG9yLCBzZWxmLl9fZmxkX2Rlbm9taW5hdG9yID0gcGFyZW50LmFic29sdXRlX3BvbHlub21p YWxfbnRsKCkKKysgICAgICAgIHNlbGYuX2ZsZF9udW1lcmF0b3IsIHNlbGYuX2ZsZF9kZW5vbWlu YXRvciA9IHBhcmVudC5hYnNvbHV0ZV9wb2x5bm9taWFsX250bCgpCisgCisgICAgICAgICBjZGVm IFpaX2MgY29lZmYKKyAgICAgICAgIGlmIGlzaW5zdGFuY2UoZiwgKGludCwgSW50ZWdlcl9zYWdl KSk6CisgICAgICAgICAgICAgIyBzZXQgaXQgdXAgYW5kIGV4aXQgaW1tZWRpYXRlbHkKKyAgICAg ICAgICAgICAjIGZhc3QgcGF0aHdheQorICAgICAgICAgICAgIG1wel90b19aWigmY29lZmYsICg8 SW50ZWdlcj5aWihmKSkudmFsdWUpCistICAgICAgICAgICAgWlpYX1NldENvZWZmKCBzZWxmLl9f bnVtZXJhdG9yLCAwLCBjb2VmZiApCistICAgICAgICAgICAgWlpfY29udl9mcm9tX2ludCggc2Vs Zi5fX2Rlbm9taW5hdG9yLCAxICkKKysgICAgICAgICAgICBaWlhfU2V0Q29lZmYoIHNlbGYuX251 bWVyYXRvciwgMCwgY29lZmYgKQorKyAgICAgICAgICAgIFpaX2NvbnZfZnJvbV9pbnQoIHNlbGYu X2Rlbm9taW5hdG9yLCAxICkKKyAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgIGVsaWYgaXNp bnN0YW5jZShmLCBOdW1iZXJGaWVsZEVsZW1lbnQpOgorICAgICAgICAgICAgIGlmIHR5cGUoc2Vs ZikgaXMgdHlwZShmKToKKy0gICAgICAgICAgICAgICAgc2VsZi5fX251bWVyYXRvciA9ICg8TnVt YmVyRmllbGRFbGVtZW50PmYpLl9fbnVtZXJhdG9yCistICAgICAgICAgICAgICAgIHNlbGYuX19k ZW5vbWluYXRvciA9ICg8TnVtYmVyRmllbGRFbGVtZW50PmYpLl9fZGVub21pbmF0b3IKKysgICAg ICAgICAgICAgICAgc2VsZi5fbnVtZXJhdG9yID0gKDxOdW1iZXJGaWVsZEVsZW1lbnQ+ZikuX251 bWVyYXRvcgorKyAgICAgICAgICAgICAgICBzZWxmLl9kZW5vbWluYXRvciA9ICg8TnVtYmVyRmll bGRFbGVtZW50PmYpLl9kZW5vbWluYXRvcgorICAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAg ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICBmID0gZi5wb2x5bm9taWFsKCkKK0BAIC0z NDIsMTEgKzM0MiwxMSBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVs ZEVsZW1lbnRfYmFzZSk6CisgCisgICAgICAgICBjZGVmIGxvbmcgaQorICAgICAgICAgZGVuID0g Zi5kZW5vbWluYXRvcigpCistICAgICAgICBtcHpfdG9fWlooJnNlbGYuX19kZW5vbWluYXRvciwg KDxJbnRlZ2VyPlpaKGRlbikpLnZhbHVlKQorKyAgICAgICAgbXB6X3RvX1paKCZzZWxmLl9kZW5v bWluYXRvciwgKDxJbnRlZ2VyPlpaKGRlbikpLnZhbHVlKQorICAgICAgICAgbnVtID0gZiAqIGRl bgorICAgICAgICAgZm9yIGkgZnJvbSAwIDw9IGkgPD0gbnVtLmRlZ3JlZSgpOgorICAgICAgICAg ICAgIG1wel90b19aWigmY29lZmYsICg8SW50ZWdlcj5aWihudW1baV0pKS52YWx1ZSkKKy0gICAg ICAgICAgICBaWlhfU2V0Q29lZmYoIHNlbGYuX19udW1lcmF0b3IsIGksIGNvZWZmICkKKysgICAg ICAgICAgICBaWlhfU2V0Q29lZmYoIHNlbGYuX251bWVyYXRvciwgaSwgY29lZmYgKQorIAorICAg ICBkZWYgX2xpZnRfY3ljbG90b21pY19lbGVtZW50KHNlbGYsIG5ld19wYXJlbnQsIGJpbnQgY2hl Y2s9VHJ1ZSwgaW50IHJlbD0wKToKKyAgICAgICAgICIiIgorQEAgLTQxNywxNyArNDE3LDE3IEBA IGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51bWJlckZpZWxkRWxlbWVudF9iYXNlKToK KyAgICAgICAgIGNkZWYgdHlwZSB0ID0gdHlwZShzZWxmKQorICAgICAgICAgY2RlZiBOdW1iZXJG aWVsZEVsZW1lbnQgeCA9IDxOdW1iZXJGaWVsZEVsZW1lbnQ+dC5fX25ld19fKHQpCisgICAgICAg ICB4Ll9wYXJlbnQgPSA8UGFyZW50V2l0aEJhc2U+bmV3X3BhcmVudAorLSAgICAgICAgeC5fX2Zs ZF9udW1lcmF0b3IsIHguX19mbGRfZGVub21pbmF0b3IgPSBuZXdfcGFyZW50LnBvbHlub21pYWxf bnRsKCkKKy0gICAgICAgIHguX19kZW5vbWluYXRvciA9IHNlbGYuX19kZW5vbWluYXRvcgorKyAg ICAgICAgeC5fZmxkX251bWVyYXRvciwgeC5fZmxkX2Rlbm9taW5hdG9yID0gbmV3X3BhcmVudC5w b2x5bm9taWFsX250bCgpCisrICAgICAgICB4Ll9kZW5vbWluYXRvciA9IHNlbGYuX2Rlbm9taW5h dG9yCisgICAgICAgICBjZGVmIFpaWF9jIHJlc3VsdAorICAgICAgICAgY2RlZiBaWl9jIHRtcAor ICAgICAgICAgY2RlZiBpbnQgaQorICAgICAgICAgY2RlZiBudGxfWlpYIF9udW0KKyAgICAgICAg IGNkZWYgbnRsX1paIF9kZW4KKy0gICAgICAgIGZvciBpIGZyb20gMCA8PSBpIDw9IFpaWF9kZWco c2VsZi5fX251bWVyYXRvcik6CistICAgICAgICAgICAgdG1wID0gWlpYX2NvZWZmKHNlbGYuX19u dW1lcmF0b3IsIGkpCisrICAgICAgICBmb3IgaSBmcm9tIDAgPD0gaSA8PSBaWlhfZGVnKHNlbGYu X251bWVyYXRvcik6CisrICAgICAgICAgICAgdG1wID0gWlpYX2NvZWZmKHNlbGYuX251bWVyYXRv ciwgaSkKKyAgICAgICAgICAgICBaWlhfU2V0Q29lZmYocmVzdWx0LCBpKnJlbCwgdG1wKQorLSAg ICAgICAgWlpYX3JlbSh4Ll9fbnVtZXJhdG9yLCByZXN1bHQsIHguX19mbGRfbnVtZXJhdG9yLngp CisrICAgICAgICBaWlhfcmVtKHguX251bWVyYXRvciwgcmVzdWx0LCB4Ll9mbGRfbnVtZXJhdG9y LngpCisgICAgICAgICByZXR1cm4geAorIAorICAgICBkZWYgX19yZWR1Y2VfXyhzZWxmKToKK0BA IC04NTgsNyArODU4LDcgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmll bGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAgY2RlZiBpbnQgcmVzCisgCisgICAgICAgICAjIGZh c3QgZXF1YWxpdHkgY2hlY2sKKy0gICAgICAgIHJlcyA9IGxlZnQuX19udW1lcmF0b3IgPT0gX3Jp Z2h0Ll9fbnVtZXJhdG9yIGFuZCBsZWZ0Ll9fZGVub21pbmF0b3IgPT0gX3JpZ2h0Ll9fZGVub21p bmF0b3IKKysgICAgICAgIHJlcyA9IGxlZnQuX251bWVyYXRvciA9PSBfcmlnaHQuX251bWVyYXRv ciBhbmQgbGVmdC5fZGVub21pbmF0b3IgPT0gX3JpZ2h0Ll9kZW5vbWluYXRvcgorICAgICAgICAg aWYgcmVzOgorICAgICAgICAgICAgIGlmIG9wID09IFB5X0VRIG9yIG9wID09IFB5X0dFIG9yIG9w ID09IFB5X0xFOgorICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorQEAgLTg4MywxNSArODgz LDE1IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51bWJlckZpZWxkRWxlbWVudF9i YXNlKToKKyAgICAgICAgIGlmIFAuX2VtYmVkZGVkX3JlYWw6CisgICAgICAgICAgICAgbXB6X2lu aXQobGQpCisgICAgICAgICAgICAgbXB6X2luaXQocmQpCistICAgICAgICAgICAgWlpfdG9fbXB6 KGxkLCAmbGVmdC5fX2Rlbm9taW5hdG9yKQorLSAgICAgICAgICAgIFpaX3RvX21weihyZCwgJl9y aWdodC5fX2Rlbm9taW5hdG9yKQorKyAgICAgICAgICAgIFpaX3RvX21weihsZCwgJmxlZnQuX2Rl bm9taW5hdG9yKQorKyAgICAgICAgICAgIFpaX3RvX21weihyZCwgJl9yaWdodC5fZGVub21pbmF0 b3IpCisgCisgICAgICAgICAgICAgdiA9IDxSZWFsSW50ZXJ2YWxGaWVsZEVsZW1lbnQ+IFAuX2dl dF9lbWJlZGRpbmdfYXBwcm94KDApCisgICAgICAgICAgICAgbXBmaV9pbml0MihsYSwgbXBmaV9n ZXRfcHJlYyh2LnZhbHVlKSkKKyAgICAgICAgICAgICBtcGZpX2luaXQyKHJhLCBtcGZpX2dldF9w cmVjKHYudmFsdWUpKQorLSAgICAgICAgICAgIFpaWF9ldmFsdWF0aW9uX21wZmkobGEsIGxlZnQu X19udW1lcmF0b3IsIHYudmFsdWUpCisrICAgICAgICAgICAgWlpYX2V2YWx1YXRpb25fbXBmaShs YSwgbGVmdC5fbnVtZXJhdG9yLCB2LnZhbHVlKQorICAgICAgICAgICAgIG1wZmlfZGl2X3oobGEs IGxhLCBsZCkKKy0gICAgICAgICAgICBaWlhfZXZhbHVhdGlvbl9tcGZpKHJhLCBfcmlnaHQuX19u dW1lcmF0b3IsIHYudmFsdWUpCisrICAgICAgICAgICAgWlpYX2V2YWx1YXRpb25fbXBmaShyYSwg X3JpZ2h0Ll9udW1lcmF0b3IsIHYudmFsdWUpCisgICAgICAgICAgICAgbXBmaV9kaXZfeihyYSwg cmEsIHJkKQorICAgICAgICAgICAgIHdoaWxlIG1wZnJfZ3JlYXRlcmVxdWFsX3AoJmxhLnJpZ2h0 LCAmcmEubGVmdCkgXAorICAgICAgICAgICAgICAgICAgIGFuZCBtcGZyX2dyZWF0ZXJlcXVhbF9w KCZyYS5yaWdodCwgJmxhLmxlZnQpOgorQEAgLTg5OSw5ICs4OTksOSBAQCBjZGVmIGNsYXNzIE51 bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAgICAgICAgICAg ICAgIHYgPSA8UmVhbEludGVydmFsRmllbGRFbGVtZW50PiBQLl9nZXRfZW1iZWRkaW5nX2FwcHJv eChpKQorICAgICAgICAgICAgICAgICBtcGZpX3NldF9wcmVjKGxhLCBtcGZpX2dldF9wcmVjKHYu dmFsdWUpKQorICAgICAgICAgICAgICAgICBtcGZpX3NldF9wcmVjKHJhLCBtcGZpX2dldF9wcmVj KHYudmFsdWUpKQorLSAgICAgICAgICAgICAgICBaWlhfZXZhbHVhdGlvbl9tcGZpKGxhLCBsZWZ0 Ll9fbnVtZXJhdG9yLCB2LnZhbHVlKQorKyAgICAgICAgICAgICAgICBaWlhfZXZhbHVhdGlvbl9t cGZpKGxhLCBsZWZ0Ll9udW1lcmF0b3IsIHYudmFsdWUpCisgICAgICAgICAgICAgICAgIG1wZmlf ZGl2X3oobGEsIGxhLCBsZCkKKy0gICAgICAgICAgICAgICAgWlpYX2V2YWx1YXRpb25fbXBmaShy YSwgX3JpZ2h0Ll9fbnVtZXJhdG9yLCB2LnZhbHVlKQorKyAgICAgICAgICAgICAgICBaWlhfZXZh bHVhdGlvbl9tcGZpKHJhLCBfcmlnaHQuX251bWVyYXRvciwgdi52YWx1ZSkKKyAgICAgICAgICAg ICAgICAgbXBmaV9kaXZfeihyYSwgcmEsIHJkKQorICAgICAgICAgICAgIGlmIG9wID09IFB5X0xU IG9yIG9wID09IFB5X0xFOgorICAgICAgICAgICAgICAgICByZXMgPSBtcGZyX2xlc3NfcCgmbGEu cmlnaHQsICZyYS5sZWZ0KQorQEAgLTk1MCw4ICs5NTAsOCBAQCBjZGVmIGNsYXNzIE51bWJlckZp ZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAgICAgICBjZGVmIFJhdGlv bmFsIHRtcF9yYXRpb25hbAorIAorICAgICAgICAgIyBJdCBzZWVtcyBsaWtlIGEgc2ltcGxlciBh cHByb2FjaCB3b3VsZCBiZSB0byBzaW1wbHkgZ2VuZXJhdGUKKy0gICAgICAgICMgcmFuZG9tIGlu dGVnZXJzIGZvciBlYWNoIGNvZWZmaWNpZW50IG9mIHNlbGYuX19udW1lcmF0b3IKKy0gICAgICAg ICMgYW5kIGFuIGludGVnZXIgZm9yIHNlbGYuX19kZW5vbWluYXRvci4gSG93ZXZlciwgdGhpcyB3 b3VsZAorKyAgICAgICAgIyByYW5kb20gaW50ZWdlcnMgZm9yIGVhY2ggY29lZmZpY2llbnQgb2Yg c2VsZi5fbnVtZXJhdG9yCisrICAgICAgICAjIGFuZCBhbiBpbnRlZ2VyIGZvciBzZWxmLl9kZW5v bWluYXRvci4gSG93ZXZlciwgdGhpcyB3b3VsZAorICAgICAgICAgIyBnZW5lcmF0ZSB0aGluZ3Mg d2l0aCBhIGZhaXJseSBmaXhlZCBzaGFwZTogaW4gcGFydGljdWxhciwKKyAgICAgICAgICMgd2Un ZCBiZSB2ZXJ5IHVubGlrZWx5IHRvIGdldCBlbGVtZW50cyBsaWtlIDEvMyphXjMgKyAxLzcsCisg ICAgICAgICAjIG9yIGFueXRoaW5nIHdoZXJlIHRoZSBkZW5vbWluYXRvcnMgYXJlIGFjdHVhbGx5 IHVucmVsYXRlZAorQEAgLTk2NSwxOSArOTY1LDE5IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRF bGVtZW50KE51bWJlckZpZWxkRWxlbWVudF9iYXNlKToKKyAKKyAgICAgICAgICAgICAjIHNldCB0 aGUgZGVub21pbmF0b3IKKyAgICAgICAgICAgICBtcHpfc2V0X3NpKGRlbm9tX3RlbXAudmFsdWUs IDEpCistICAgICAgICAgICAgbXB6X3RvX1paKCZzZWxmLl9fZGVub21pbmF0b3IsICg8SW50ZWdl cj5kZW5vbV90ZW1wKS52YWx1ZSkKKy0gICAgICAgICAgICBmb3IgaSBmcm9tIDAgPD0gaSA8IFpa WF9kZWcoc2VsZi5fX2ZsZF9udW1lcmF0b3IueCk6CisrICAgICAgICAgICAgbXB6X3RvX1paKCZz ZWxmLl9kZW5vbWluYXRvciwgKDxJbnRlZ2VyPmRlbm9tX3RlbXApLnZhbHVlKQorKyAgICAgICAg ICAgIGZvciBpIGZyb20gMCA8PSBpIDwgWlpYX2RlZyhzZWxmLl9mbGRfbnVtZXJhdG9yLngpOgor ICAgICAgICAgICAgICAgICB0bXBfaW50ZWdlciA9IDxJbnRlZ2VyPihaWi5yYW5kb21fZWxlbWVu dCh4PW51bV9ib3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkaXN0cmlidXRpb249ZGlzdHJpYnV0aW9uKSkKKyAgICAgICAgICAgICAgICAg bXB6X3RvX1paKCZudGxfdGVtcCwgKDxJbnRlZ2VyPnRtcF9pbnRlZ2VyKS52YWx1ZSkKKy0gICAg ICAgICAgICAgICAgWlpYX1NldENvZWZmKHNlbGYuX19udW1lcmF0b3IsIGksIG50bF90ZW1wKQor KyAgICAgICAgICAgICAgICBaWlhfU2V0Q29lZmYoc2VsZi5fbnVtZXJhdG9yLCBpLCBudGxfdGVt cCkKKyAKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgY29lZmZfbGlzdCA9IFtdCisgICAg ICAgICAgICAgbXB6X3NldF9zaShkZW5vbV90ZW1wLnZhbHVlLCAxKQorICAgICAgICAgICAgIHRt cF9pbnRlZ2VyID0gSW50ZWdlci5fX25ld19fKEludGVnZXIpCisgCistICAgICAgICAgICAgZm9y IGkgZnJvbSAwIDw9IGkgPCBaWlhfZGVnKHNlbGYuX19mbGRfbnVtZXJhdG9yLngpOgorKyAgICAg ICAgICAgIGZvciBpIGZyb20gMCA8PSBpIDwgWlpYX2RlZyhzZWxmLl9mbGRfbnVtZXJhdG9yLngp OgorICAgICAgICAgICAgICAgICB0bXBfcmF0aW9uYWwgPSA8UmF0aW9uYWw+KFFRLnJhbmRvbV9l bGVtZW50KG51bV9ib3VuZD1udW1fYm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVuX2JvdW5kPWRlbl9ib3VuZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkaXN0cmlidXRpb249ZGlzdHJpYnV0aW9uKSkKK0BAIC05ODksMTAgKzk4OSwxMCBAQCBjZGVm IGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAg ICAgICAgICAgIyBzY2FsZSB0aGUgbnVtZXJhdG9ycyBhbmQgc2V0IGV2ZXJ5dGhpbmcgYXBwcm9w cmlhdGVseQorIAorICAgICAgICAgICAgICMgZmlyc3QsIHRoZSBkZW5vbWluYXRvciAoZWFzeSkK Ky0gICAgICAgICAgICBtcHpfdG9fWlooJnNlbGYuX19kZW5vbWluYXRvciwgKDxJbnRlZ2VyPmRl bm9tX3RlbXApLnZhbHVlKQorKyAgICAgICAgICAgIG1wel90b19aWigmc2VsZi5fZGVub21pbmF0 b3IsICg8SW50ZWdlcj5kZW5vbV90ZW1wKS52YWx1ZSkKKyAKKyAgICAgICAgICAgICAjIG5vdyB0 aGUgY29lZmZpY2llbnRzIHRoZW1zZWx2ZXMuCistICAgICAgICAgICAgZm9yIGkgZnJvbSAwIDw9 IGkgPCBaWlhfZGVnKHNlbGYuX19mbGRfbnVtZXJhdG9yLngpOgorKyAgICAgICAgICAgIGZvciBp IGZyb20gMCA8PSBpIDwgWlpYX2RlZyhzZWxmLl9mbGRfbnVtZXJhdG9yLngpOgorICAgICAgICAg ICAgICAgICAjIGNhbGN1bGF0ZSB0aGUgbmV3IG51bWVyYXRvci4gaWYgb3VyIG9sZCBlbnRyeSBp cworICAgICAgICAgICAgICAgICAjIHAvcSwgYW5kIHRoZSBsY20gaXMgaywgaXQncyBqdXN0IHBr L3EsIHdoaWNoIHdlCisgICAgICAgICAgICAgICAgICMgYWxzbyBrbm93IGlzIGludGVncmFsIC0t IHNvIHdlIGNhbiB1c2UgbXB6X2RpdmV4YWN0CitAQCAtMTAwNiw3ICsxMDA2LDcgQEAgY2RlZiBj bGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAg ICAgICAgICAgICAjIG5vdyBzZXQgdGhlIGNvZWZmaWNpZW50IG9mIHNlbGYKKyAgICAgICAgICAg ICAgICAgbXB6X3RvX1paKCZudGxfdGVtcCwgKDxJbnRlZ2VyPnRtcF9pbnRlZ2VyKS52YWx1ZSkK KyAKKy0gICAgICAgICAgICAgICAgWlpYX1NldENvZWZmKHNlbGYuX19udW1lcmF0b3IsIGksIG50 bF90ZW1wKQorKyAgICAgICAgICAgICAgICBaWlhfU2V0Q29lZmYoc2VsZi5fbnVtZXJhdG9yLCBp LCBudGxfdGVtcCkKKyAKKyAgICAgICAgIHJldHVybiAwICAjIE5vIGVycm9yCisgCitAQCAtMTA4 OSwxMCArMTA4OSwxMCBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVs ZEVsZW1lbnRfYmFzZSk6CisgICAgICAgICAgICAgc2FnZTogTC56ZXJvKCkuc2lnbigpCisgICAg ICAgICAgICAgMAorICAgICAgICAgIiIiCistICAgICAgICBpZiBaWlhfZGVnKHNlbGYuX19udW1l cmF0b3IpID09IC0xOgorKyAgICAgICAgaWYgWlpYX2RlZyhzZWxmLl9udW1lcmF0b3IpID09IC0x OgorICAgICAgICAgICAgIHJldHVybiAwCistICAgICAgICBpZiBaWlhfZGVnKHNlbGYuX19udW1l cmF0b3IpID09IDA6CistICAgICAgICAgICAgcmV0dXJuIFpaX3NpZ24oWlpYX2NvZWZmKHNlbGYu X19udW1lcmF0b3IsIDApKQorKyAgICAgICAgaWYgWlpYX2RlZyhzZWxmLl9udW1lcmF0b3IpID09 IDA6CisrICAgICAgICAgICAgcmV0dXJuIFpaX3NpZ24oWlpYX2NvZWZmKHNlbGYuX251bWVyYXRv ciwgMCkpCisgCisgICAgICAgICBpZiBub3QgKDxudW1iZXJfZmllbGRfYmFzZS5OdW1iZXJGaWVs ZD4gc2VsZi5fcGFyZW50KS5fZW1iZWRkZWRfcmVhbDoKKyAgICAgICAgICAgICByYWlzZSBUeXBl RXJyb3IoInNpZ24gbm90IHdlbGwgZGVmaW5lZCBzaW5jZSBubyByZWFsIGVtYmVkZGluZyBpcyBz cGVjaWZpZWQiKQorQEAgLTExNTMsMTIgKzExNTMsMTIgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVs ZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAgY2RlZiBSZWFsSW50 ZXJ2YWxGaWVsZEVsZW1lbnQgdgorIAorIAorLSAgICAgICAgaWYgWlpYX2RlZyhzZWxmLl9fbnVt ZXJhdG9yKSA8PSAwOgorKyAgICAgICAgaWYgWlpYX2RlZyhzZWxmLl9udW1lcmF0b3IpIDw9IDA6 CisgICAgICAgICAgICAgbXB6X2luaXQobnVtKQorICAgICAgICAgICAgIG1wel9pbml0KGRlbikK KyAKKy0gICAgICAgICAgICBaWlhfZ2V0aXRlbV9hc19tcHoobnVtLCAmc2VsZi5fX251bWVyYXRv ciwgMCkKKy0gICAgICAgICAgICBaWl90b19tcHooZGVuLCAmc2VsZi5fX2Rlbm9taW5hdG9yKQor KyAgICAgICAgICAgIFpaWF9nZXRpdGVtX2FzX21weihudW0sICZzZWxmLl9udW1lcmF0b3IsIDAp CisrICAgICAgICAgICAgWlpfdG9fbXB6KGRlbiwgJnNlbGYuX2Rlbm9taW5hdG9yKQorIAorICAg ICAgICAgICAgIGFucyA9IFBZX05FVyhJbnRlZ2VyKQorICAgICAgICAgICAgIG1wel9mZGl2X3Eo YW5zLnZhbHVlLCBudW0sIGRlbikKK0BAIC0xMTgzLDkgKzExODMsOSBAQCBjZGVmIGNsYXNzIE51 bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAgICAgICBtcHpf aW5pdChkZW4pCisgICAgICAgICBtcGZpX2luaXQyKGEsIG1wZmlfZ2V0X3ByZWModi52YWx1ZSkp CisgCistICAgICAgICBaWl90b19tcHooZGVuLCAmc2VsZi5fX2Rlbm9taW5hdG9yKQorKyAgICAg ICAgWlpfdG9fbXB6KGRlbiwgJnNlbGYuX2Rlbm9taW5hdG9yKQorIAorLSAgICAgICAgWlpYX2V2 YWx1YXRpb25fbXBmaShhLCBzZWxmLl9fbnVtZXJhdG9yLCB2LnZhbHVlKQorKyAgICAgICAgWlpY X2V2YWx1YXRpb25fbXBmaShhLCBzZWxmLl9udW1lcmF0b3IsIHYudmFsdWUpCisgICAgICAgICBt cGZpX2Rpdl96KGEsIGEsIGRlbikKKyAKKyAgICAgICAgIG1wZnJfZmxvb3IoJmEubGVmdCwgJmEu bGVmdCkKK0BAIC0xMTk3LDcgKzExOTcsNyBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVu dChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAgICAgICAgICAgdiA9IDxSZWFsSW50ZXJ2 YWxGaWVsZEVsZW1lbnQ+IFAuX2dldF9lbWJlZGRpbmdfYXBwcm94KGkpCisgCisgICAgICAgICAg ICAgbXBmaV9zZXRfcHJlYyhhLCBtcGZpX2dldF9wcmVjKHYudmFsdWUpKQorLSAgICAgICAgICAg IFpaWF9ldmFsdWF0aW9uX21wZmkoYSwgc2VsZi5fX251bWVyYXRvciwgdi52YWx1ZSkKKysgICAg ICAgICAgICBaWlhfZXZhbHVhdGlvbl9tcGZpKGEsIHNlbGYuX251bWVyYXRvciwgdi52YWx1ZSkK KyAgICAgICAgICAgICBtcGZpX2Rpdl96KGEsIGEsIGRlbikKKyAgICAgICAgICAgICBtcGZyX2Zs b29yKCZhLmxlZnQgLCZhLmxlZnQpCisgICAgICAgICAgICAgbXBmcl9mbG9vcigmYS5yaWdodCwg JmEucmlnaHQpCitAQCAtMTI0OCw3ICsxMjQ4LDcgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVs ZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAgICAgIC4uLgorICAgICAg ICAgICAgIFR5cGVFcnJvcjogY2VpbCBub3QgdW5pcXVlbHkgZGVmaW5lZCBzaW5jZSBubyByZWFs IGVtYmVkZGluZyBpcyBzcGVjaWZpZWQKKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgWlpYX2Rl ZyhzZWxmLl9fbnVtZXJhdG9yKSA8PSAwOgorKyAgICAgICAgaWYgWlpYX2RlZyhzZWxmLl9udW1l cmF0b3IpIDw9IDA6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3JhdGlvbmFsXygpLmNlaWwo KQorIAorICAgICAgICAgaWYgbm90ICg8bnVtYmVyX2ZpZWxkX2Jhc2UuTnVtYmVyRmllbGQ+IHNl bGYuX3BhcmVudCkuX2VtYmVkZGVkX3JlYWw6CitAQCAtMTMxMSw3ICsxMzExLDcgQEAgY2RlZiBj bGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAg ICAgICAgIC4uLgorICAgICAgICAgICAgIFR5cGVFcnJvcjogZmxvb3Igbm90IHVuaXF1ZWx5IGRl ZmluZWQgc2luY2Ugbm8gcmVhbCBlbWJlZGRpbmcgaXMgc3BlY2lmaWVkCisgICAgICAgICAiIiIK Ky0gICAgICAgIGlmIFpaWF9kZWcoc2VsZi5fX251bWVyYXRvcikgPD0gMDoKKysgICAgICAgIGlm IFpaWF9kZWcoc2VsZi5fbnVtZXJhdG9yKSA8PSAwOgorICAgICAgICAgICAgIHJldHVybiBzZWxm Ll9yYXRpb25hbF8oKS5yb3VuZCgpCisgCisgICAgICAgICByZXR1cm4gKHNlbGYgKyBRUSgoMSwy KSkpLmZsb29yKCkKK0BAIC0yNDgzLDE3ICsyNDgzLDE3IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmll bGRFbGVtZW50KE51bWJlckZpZWxkRWxlbWVudF9iYXNlKToKKyAgICAgICAgIGNkZWYgWlpfYyBn Y2QKKyAgICAgICAgIGNkZWYgWlpfYyB0MQorICAgICAgICAgY2RlZiBaWlhfYyB0MgorLSAgICAg ICAgaWYgWlpfSXNPbmUoc2VsZi5fX2Rlbm9taW5hdG9yKToKKysgICAgICAgIGlmIFpaX0lzT25l KHNlbGYuX2Rlbm9taW5hdG9yKToKKyAgICAgICAgICAgICByZXR1cm4KKy0gICAgICAgIFpaWF9j b250ZW50KHQxLCBzZWxmLl9fbnVtZXJhdG9yKQorLSAgICAgICAgWlpfR0NEKGdjZCwgdDEsIHNl bGYuX19kZW5vbWluYXRvcikKKy0gICAgICAgIGlmIFpaX3NpZ24oZ2NkKSAhPSBaWl9zaWduKHNl bGYuX19kZW5vbWluYXRvcik6CisrICAgICAgICBaWlhfY29udGVudCh0MSwgc2VsZi5fbnVtZXJh dG9yKQorKyAgICAgICAgWlpfR0NEKGdjZCwgdDEsIHNlbGYuX2Rlbm9taW5hdG9yKQorKyAgICAg ICAgaWYgWlpfc2lnbihnY2QpICE9IFpaX3NpZ24oc2VsZi5fZGVub21pbmF0b3IpOgorICAgICAg ICAgICAgIFpaX25lZ2F0ZSh0MSwgZ2NkKQorICAgICAgICAgICAgIGdjZCA9IHQxCistICAgICAg ICBaWlhfZGl2X1paKHQyLCBzZWxmLl9fbnVtZXJhdG9yLCBnY2QpCistICAgICAgICBaWl9kaXYo dDEsIHNlbGYuX19kZW5vbWluYXRvciwgZ2NkKQorLSAgICAgICAgc2VsZi5fX251bWVyYXRvciA9 IHQyCistICAgICAgICBzZWxmLl9fZGVub21pbmF0b3IgPSB0MQorKyAgICAgICAgWlpYX2Rpdl9a Wih0Miwgc2VsZi5fbnVtZXJhdG9yLCBnY2QpCisrICAgICAgICBaWl9kaXYodDEsIHNlbGYuX2Rl bm9taW5hdG9yLCBnY2QpCisrICAgICAgICBzZWxmLl9udW1lcmF0b3IgPSB0MgorKyAgICAgICAg c2VsZi5fZGVub21pbmF0b3IgPSB0MQorIAorICAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCk6 CisgICAgICAgICByIiIiCitAQCAtMjUwOSwxNSArMjUwOSwxNSBAQCBjZGVmIGNsYXNzIE51bWJl ckZpZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAgICAgICBjZGVmIE51 bWJlckZpZWxkRWxlbWVudCBfcmlnaHQgPSByaWdodAorICAgICAgICAgY2RlZiBaWl9jIGcsIHEx LCBxMgorICAgICAgICAgeCA9IHNlbGYuX25ldygpCistICAgICAgICBaWl9HQ0QoZywgc2VsZi5f X2Rlbm9taW5hdG9yLCBfcmlnaHQuX19kZW5vbWluYXRvcikKKy0gICAgICAgIFpaX2RpdihxMSwg c2VsZi5fX2Rlbm9taW5hdG9yLCBnKQorLSAgICAgICAgWlpfZGl2KHEyLCBfcmlnaHQuX19kZW5v bWluYXRvciwgZykKKy0gICAgICAgIFpaX211bCh4Ll9fZGVub21pbmF0b3IsIHExLCBxMikKKy0g ICAgICAgIFpaX211bCh4Ll9fZGVub21pbmF0b3IsIHguX19kZW5vbWluYXRvciwgZykKKysgICAg ICAgIFpaX0dDRChnLCBzZWxmLl9kZW5vbWluYXRvciwgX3JpZ2h0Ll9kZW5vbWluYXRvcikKKysg ICAgICAgIFpaX2RpdihxMSwgc2VsZi5fZGVub21pbmF0b3IsIGcpCisrICAgICAgICBaWl9kaXYo cTIsIF9yaWdodC5fZGVub21pbmF0b3IsIGcpCisrICAgICAgICBaWl9tdWwoeC5fZGVub21pbmF0 b3IsIHExLCBxMikKKysgICAgICAgIFpaX211bCh4Ll9kZW5vbWluYXRvciwgeC5fZGVub21pbmF0 b3IsIGcpCisgICAgICAgICBjZGVmIFpaWF9jIHQxLCB0MgorLSAgICAgICAgWlpYX211bF9aWih0 MSwgc2VsZi5fX251bWVyYXRvciwgcTIpCistICAgICAgICBaWlhfbXVsX1paKHQyLCBfcmlnaHQu X19udW1lcmF0b3IsIHExKQorLSAgICAgICAgWlpYX2FkZCh4Ll9fbnVtZXJhdG9yLCB0MSwgdDIp CisrICAgICAgICBaWlhfbXVsX1paKHQxLCBzZWxmLl9udW1lcmF0b3IsIHEyKQorKyAgICAgICAg WlpYX211bF9aWih0MiwgX3JpZ2h0Ll9udW1lcmF0b3IsIHExKQorKyAgICAgICAgWlpYX2FkZCh4 Ll9udW1lcmF0b3IsIHQxLCB0MikKKyAgICAgICAgIHguX3JlZHVjZV9jXygpCisgICAgICAgICBy ZXR1cm4geAorIAorQEAgLTI1MzQsMTUgKzI1MzQsMTUgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVs ZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAgY2RlZiBOdW1iZXJG aWVsZEVsZW1lbnQgX3JpZ2h0ID0gcmlnaHQKKyAgICAgICAgIGNkZWYgWlpfYyBnLCBxMSwgcTIK KyAgICAgICAgIHggPSBzZWxmLl9uZXcoKQorLSAgICAgICAgWlpfR0NEKGcsIHNlbGYuX19kZW5v bWluYXRvciwgX3JpZ2h0Ll9fZGVub21pbmF0b3IpCistICAgICAgICBaWl9kaXYocTEsIHNlbGYu X19kZW5vbWluYXRvciwgZykKKy0gICAgICAgIFpaX2RpdihxMiwgX3JpZ2h0Ll9fZGVub21pbmF0 b3IsIGcpCistICAgICAgICBaWl9tdWwoeC5fX2Rlbm9taW5hdG9yLCBxMSwgcTIpCistICAgICAg ICBaWl9tdWwoeC5fX2Rlbm9taW5hdG9yLCB4Ll9fZGVub21pbmF0b3IsIGcpCisrICAgICAgICBa Wl9HQ0QoZywgc2VsZi5fZGVub21pbmF0b3IsIF9yaWdodC5fZGVub21pbmF0b3IpCisrICAgICAg ICBaWl9kaXYocTEsIHNlbGYuX2Rlbm9taW5hdG9yLCBnKQorKyAgICAgICAgWlpfZGl2KHEyLCBf cmlnaHQuX2Rlbm9taW5hdG9yLCBnKQorKyAgICAgICAgWlpfbXVsKHguX2Rlbm9taW5hdG9yLCBx MSwgcTIpCisrICAgICAgICBaWl9tdWwoeC5fZGVub21pbmF0b3IsIHguX2Rlbm9taW5hdG9yLCBn KQorICAgICAgICAgY2RlZiBaWlhfYyB0MSwgdDIKKy0gICAgICAgIFpaWF9tdWxfWloodDEsIHNl bGYuX19udW1lcmF0b3IsIHEyKQorLSAgICAgICAgWlpYX211bF9aWih0MiwgX3JpZ2h0Ll9fbnVt ZXJhdG9yLCBxMSkKKy0gICAgICAgIFpaWF9zdWIoeC5fX251bWVyYXRvciwgdDEsIHQyKQorKyAg ICAgICAgWlpYX211bF9aWih0MSwgc2VsZi5fbnVtZXJhdG9yLCBxMikKKysgICAgICAgIFpaWF9t dWxfWloodDIsIF9yaWdodC5fbnVtZXJhdG9yLCBxMSkKKysgICAgICAgIFpaWF9zdWIoeC5fbnVt ZXJhdG9yLCB0MSwgdDIpCisgICAgICAgICB4Ll9yZWR1Y2VfY18oKQorICAgICAgICAgcmV0dXJu IHgKKyAKK0BAIC0yNTcxLDE4ICsyNTcxLDE4IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVt ZW50KE51bWJlckZpZWxkRWxlbWVudF9iYXNlKToKKyAgICAgICAgIHNpZ19vbigpCisgICAgICAg ICAjIE11bE1vZCBkb2Vzbid0IGhhbmRsZSBub24tbW9uaWMgcG9seW5vbWlhbHMuCisgICAgICAg ICAjIFRoZXJlZm9yZSwgd2UgaGFuZGxlIHRoZSBub24tbW9uaWMgY2FzZSBlbnRpcmVseSBzZXBh cmF0ZWx5LgorLSAgICAgICAgWlpfbXVsKHguX19kZW5vbWluYXRvciwgc2VsZi5fX2Rlbm9taW5h dG9yLCBfcmlnaHQuX19kZW5vbWluYXRvcikKKy0gICAgICAgIGlmIFpaX0lzT25lKFpaWF9MZWFk Q29lZmYoc2VsZi5fX2ZsZF9udW1lcmF0b3IueCkpOgorLSAgICAgICAgICAgIFpaWF9NdWxNb2Qo eC5fX251bWVyYXRvciwgc2VsZi5fX251bWVyYXRvciwgX3JpZ2h0Ll9fbnVtZXJhdG9yLCBzZWxm Ll9fZmxkX251bWVyYXRvci54KQorKyAgICAgICAgWlpfbXVsKHguX2Rlbm9taW5hdG9yLCBzZWxm Ll9kZW5vbWluYXRvciwgX3JpZ2h0Ll9kZW5vbWluYXRvcikKKysgICAgICAgIGlmIFpaX0lzT25l KFpaWF9MZWFkQ29lZmYoc2VsZi5fZmxkX251bWVyYXRvci54KSk6CisrICAgICAgICAgICAgWlpY X011bE1vZCh4Ll9udW1lcmF0b3IsIHNlbGYuX251bWVyYXRvciwgX3JpZ2h0Ll9udW1lcmF0b3Is IHNlbGYuX2ZsZF9udW1lcmF0b3IueCkKKyAgICAgICAgIGVsc2U6CistICAgICAgICAgICAgWlpY X211bCh4Ll9fbnVtZXJhdG9yLCBzZWxmLl9fbnVtZXJhdG9yLCBfcmlnaHQuX19udW1lcmF0b3Ip CistICAgICAgICAgICAgaWYgWlpYX2RlZyh4Ll9fbnVtZXJhdG9yKSA+PSBaWlhfZGVnKHNlbGYu X19mbGRfbnVtZXJhdG9yLngpOgorLSAgICAgICAgICAgICAgICBaWlhfbXVsX1paKCB4Ll9fbnVt ZXJhdG9yLCB4Ll9fbnVtZXJhdG9yLCBzZWxmLl9fZmxkX2Rlbm9taW5hdG9yLnggKQorLSAgICAg ICAgICAgICAgICBaWlhfbXVsX1paKCB0ZW1wLCBzZWxmLl9fZmxkX251bWVyYXRvci54LCB4Ll9f ZGVub21pbmF0b3IgKQorLSAgICAgICAgICAgICAgICBaWl9wb3dlcih0ZW1wMSxaWlhfTGVhZENv ZWZmKHRlbXApLFpaWF9kZWcoeC5fX251bWVyYXRvciktWlpYX2RlZyhzZWxmLl9fZmxkX251bWVy YXRvci54KSsxKQorLSAgICAgICAgICAgICAgICBaWlhfUHNldWRvUmVtKHguX19udW1lcmF0b3Is IHguX19udW1lcmF0b3IsIHRlbXApCistICAgICAgICAgICAgICAgIFpaX211bCh4Ll9fZGVub21p bmF0b3IsIHguX19kZW5vbWluYXRvciwgc2VsZi5fX2ZsZF9kZW5vbWluYXRvci54KQorLSAgICAg ICAgICAgICAgICBaWl9tdWwoeC5fX2Rlbm9taW5hdG9yLCB4Ll9fZGVub21pbmF0b3IsIHRlbXAx KQorKyAgICAgICAgICAgIFpaWF9tdWwoeC5fbnVtZXJhdG9yLCBzZWxmLl9udW1lcmF0b3IsIF9y aWdodC5fbnVtZXJhdG9yKQorKyAgICAgICAgICAgIGlmIFpaWF9kZWcoeC5fbnVtZXJhdG9yKSA+ PSBaWlhfZGVnKHNlbGYuX2ZsZF9udW1lcmF0b3IueCk6CisrICAgICAgICAgICAgICAgIFpaWF9t dWxfWlooIHguX251bWVyYXRvciwgeC5fbnVtZXJhdG9yLCBzZWxmLl9mbGRfZGVub21pbmF0b3Iu eCApCisrICAgICAgICAgICAgICAgIFpaWF9tdWxfWlooIHRlbXAsIHNlbGYuX2ZsZF9udW1lcmF0 b3IueCwgeC5fZGVub21pbmF0b3IgKQorKyAgICAgICAgICAgICAgICBaWl9wb3dlcih0ZW1wMSxa WlhfTGVhZENvZWZmKHRlbXApLFpaWF9kZWcoeC5fbnVtZXJhdG9yKS1aWlhfZGVnKHNlbGYuX2Zs ZF9udW1lcmF0b3IueCkrMSkKKysgICAgICAgICAgICAgICAgWlpYX1BzZXVkb1JlbSh4Ll9udW1l cmF0b3IsIHguX251bWVyYXRvciwgdGVtcCkKKysgICAgICAgICAgICAgICAgWlpfbXVsKHguX2Rl bm9taW5hdG9yLCB4Ll9kZW5vbWluYXRvciwgc2VsZi5fZmxkX2Rlbm9taW5hdG9yLngpCisrICAg ICAgICAgICAgICAgIFpaX211bCh4Ll9kZW5vbWluYXRvciwgeC5fZGVub21pbmF0b3IsIHRlbXAx KQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICB4Ll9yZWR1Y2VfY18oKQorICAgICAgICAg cmV0dXJuIHgKK0BAIC0yNzA0LDcgKzI3MDQsNyBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxl bWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAgICAgICAgICAgc2FnZTogYm9vbChi ICsgMSkKKyAgICAgICAgICAgICBUcnVlCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBu b3QgSXNaZXJvX1paWChzZWxmLl9fbnVtZXJhdG9yKQorKyAgICAgICAgcmV0dXJuIG5vdCBJc1pl cm9fWlpYKHNlbGYuX251bWVyYXRvcikKKyAKKyAgICAgY3BkZWYgX25lZ18oc2VsZik6CisgICAg ICAgICByIiIiCitAQCAtMjcxNyw4ICsyNzE3LDggQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVs ZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAgIiIiCisgICAgICAgICBj ZGVmIE51bWJlckZpZWxkRWxlbWVudCB4CisgICAgICAgICB4ID0gc2VsZi5fbmV3KCkKKy0gICAg ICAgIFpaWF9tdWxfbG9uZyh4Ll9fbnVtZXJhdG9yLCBzZWxmLl9fbnVtZXJhdG9yLCAtMSkKKy0g ICAgICAgIHguX19kZW5vbWluYXRvciA9IHNlbGYuX19kZW5vbWluYXRvcgorKyAgICAgICAgWlpY X211bF9sb25nKHguX251bWVyYXRvciwgc2VsZi5fbnVtZXJhdG9yLCAtMSkKKysgICAgICAgIHgu X2Rlbm9taW5hdG9yID0gc2VsZi5fZGVub21pbmF0b3IKKyAgICAgICAgIHJldHVybiB4CisgCisg ICAgIGNwZGVmIF9jb3B5X2Zvcl9wYXJlbnQoc2VsZiwgUGFyZW50IHBhcmVudCk6CitAQCAtMjcz OCw4ICsyNzM4LDggQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRF bGVtZW50X2Jhc2UpOgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIE51bWJlckZpZWxkRWxl bWVudCB4CisgICAgICAgICB4ID0gc2VsZi5fbmV3KCkKKy0gICAgICAgIHguX19udW1lcmF0b3Ig PSBzZWxmLl9fbnVtZXJhdG9yCistICAgICAgICB4Ll9fZGVub21pbmF0b3IgPSBzZWxmLl9fZGVu b21pbmF0b3IKKysgICAgICAgIHguX251bWVyYXRvciA9IHNlbGYuX251bWVyYXRvcgorKyAgICAg ICAgeC5fZGVub21pbmF0b3IgPSBzZWxmLl9kZW5vbWluYXRvcgorICAgICAgICAgeC5fc2V0X3Bh cmVudChwYXJlbnQpCisgICAgICAgICByZXR1cm4geAorIAorQEAgLTI4MjYsNyArMjgyNiw3IEBA IGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51bWJlckZpZWxkRWxlbWVudF9iYXNlKToK KyAgICAgICAgICAgICBzYWdlOiBMLjxhPiA9IEsuZXh0ZW5zaW9uKGYpCisgICAgICAgICAgICAg c2FnZTogYWxwaGEgPSAoYV44ICsgKHpldGEyMl45IC0gemV0YTIyXjYgKyAyKnpldGEyMl40ICsg MzMpKmFeNykvKDEwKioyNTU1KSAjbG9uZyB0aW1lCisgICAgICAgICAiIiIKKy0gICAgICAgIGlm IElzWmVyb19aWlgoc2VsZi5fX251bWVyYXRvcik6CisrICAgICAgICBpZiBJc1plcm9fWlpYKHNl bGYuX251bWVyYXRvcik6CisgICAgICAgICAgICAgcmFpc2UgWmVyb0RpdmlzaW9uRXJyb3IoIm51 bWJlciBmaWVsZCBlbGVtZW50IGRpdmlzaW9uIGJ5IHplcm8iKQorICAgICAgICAgY2RlZiBOdW1i ZXJGaWVsZEVsZW1lbnQgeAorICAgICAgICAgY2RlZiBaWlhfYyB0ZW1wCitAQCAtMjgzNSw4ICsy ODM1LDggQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50 X2Jhc2UpOgorICAgICAgICAgICAgICMgYnV0IG1heSBmYWlsIGlmIE5UTCBydW5zIG91dCBvZiBG RlQgcHJpbWVzLgorICAgICAgICAgICAgIHggPSBzZWxmLl9uZXcoKQorICAgICAgICAgICAgIHNp Z19vbigpCistICAgICAgICAgICAgWlpYX1hHQ0QoeC5fX2Rlbm9taW5hdG9yLCB4Ll9fbnVtZXJh dG9yLCB0ZW1wLCBzZWxmLl9fbnVtZXJhdG9yLCBzZWxmLl9fZmxkX251bWVyYXRvci54LCAxKQor LSAgICAgICAgICAgIFpaWF9tdWxfWlooeC5fX251bWVyYXRvciwgeC5fX251bWVyYXRvciwgc2Vs Zi5fX2Rlbm9taW5hdG9yKQorKyAgICAgICAgICAgIFpaWF9YR0NEKHguX2Rlbm9taW5hdG9yLCB4 Ll9udW1lcmF0b3IsIHRlbXAsIHNlbGYuX251bWVyYXRvciwgc2VsZi5fZmxkX251bWVyYXRvci54 LCAxKQorKyAgICAgICAgICAgIFpaWF9tdWxfWlooeC5fbnVtZXJhdG9yLCB4Ll9udW1lcmF0b3Is IHNlbGYuX2Rlbm9taW5hdG9yKQorICAgICAgICAgICAgIHguX3JlZHVjZV9jXygpCisgICAgICAg ICAgICAgc2lnX29mZigpCisgICAgICAgICBleGNlcHQgTlRMRXJyb3I6CitAQCAtMjg1OCw3ICsy ODU4LDcgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50 X2Jhc2UpOgorICAgICAgICAgICAgIHNhZ2U6ICgyKkkqSSkuX2ludGVnZXJfKCkKKyAgICAgICAg ICAgICAtMgorICAgICAgICAgIiIiCistICAgICAgICBpZiBaWlhfZGVnKHNlbGYuX19udW1lcmF0 b3IpID49IDE6CisrICAgICAgICBpZiBaWlhfZGVnKHNlbGYuX251bWVyYXRvcikgPj0gMToKKyAg ICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIlVuYWJsZSB0byBjb2VyY2UgJXMgdG8gYW4gaW50 ZWdlciIgJSBzZWxmKQorICAgICAgICAgcmV0dXJuIFpaKHNlbGYuX3JhdGlvbmFsXygpKQorIAor QEAgLTI4NzcsMTIgKzI4NzcsMTIgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVt YmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAgICAgIHNhZ2U6IChJKkkvMikuX3JhdGlv bmFsXygpCisgICAgICAgICAgICAgLTEvMgorICAgICAgICAgIiIiCistICAgICAgICBpZiBaWlhf ZGVnKHNlbGYuX19udW1lcmF0b3IpID49IDE6CisrICAgICAgICBpZiBaWlhfZGVnKHNlbGYuX251 bWVyYXRvcikgPj0gMToKKyAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIlVuYWJsZSB0byBj b2VyY2UgJXMgdG8gYSByYXRpb25hbCIlc2VsZikKKyAgICAgICAgIGNkZWYgSW50ZWdlciBudW0g PSBJbnRlZ2VyLl9fbmV3X18oSW50ZWdlcikKKy0gICAgICAgIFpaWF9nZXRpdGVtX2FzX21weihu dW0udmFsdWUsICZzZWxmLl9fbnVtZXJhdG9yLCAwKQorKyAgICAgICAgWlpYX2dldGl0ZW1fYXNf bXB6KG51bS52YWx1ZSwgJnNlbGYuX251bWVyYXRvciwgMCkKKyAgICAgICAgIGNkZWYgSW50ZWdl ciBkZW4gPSBJbnRlZ2VyLl9fbmV3X18oSW50ZWdlcikKKy0gICAgICAgIFpaX3RvX21weihkZW4u dmFsdWUsICZzZWxmLl9fZGVub21pbmF0b3IpCisrICAgICAgICBaWl90b19tcHooZGVuLnZhbHVl LCAmc2VsZi5fZGVub21pbmF0b3IpCisgICAgICAgICByZXR1cm4gbnVtIC8gZGVuCisgCisgICAg IGRlZiBfYWxnZWJyYWljXyhzZWxmLCBwYXJlbnQpOgorQEAgLTMyNjgsMTUgKzMyNjgsMTUgQEAg Y2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgor ICAgICAgICAgY2RlZiBtcHpfdCB6CisgCisgICAgICAgICBtcHpfaW5pdCh6KQorLSAgICAgICAg WlpYX2dldGl0ZW1fYXNfbXB6KHosICZzZWxmLl9fbnVtZXJhdG9yLCAwKQorKyAgICAgICAgWlpY X2dldGl0ZW1fYXNfbXB6KHosICZzZWxmLl9udW1lcmF0b3IsIDApCisgICAgICAgICBoID0gbXB6 X3B5dGhvbmhhc2goeikKKyAKKy0gICAgICAgIGZvciBpIGZyb20gMSA8PSBpIDw9IFpaWF9kZWco c2VsZi5fX251bWVyYXRvcik6CistICAgICAgICAgICAgWlpYX2dldGl0ZW1fYXNfbXB6KHosICZz ZWxmLl9fbnVtZXJhdG9yLCBpKQorKyAgICAgICAgZm9yIGkgZnJvbSAxIDw9IGkgPD0gWlpYX2Rl ZyhzZWxmLl9udW1lcmF0b3IpOgorKyAgICAgICAgICAgIFpaWF9nZXRpdGVtX2FzX21weih6LCAm c2VsZi5fbnVtZXJhdG9yLCBpKQorICAgICAgICAgICAgICMgbWFnaWMgbnVtYmVyIGJlbG93IGlz IGZsb29yKDJeNjMgLyAoMitzcXJ0KDIpKSkKKyAgICAgICAgICAgICBoIF49IG1wel9weXRob25o YXNoKHopICsgKDxQeV9oYXNoX3Q+IDI3MDE0NjMxMjQxODgzODQ3MDEpICsgKGggPDwgMTYpICsg KGggPj4gMikKKyAKKy0gICAgICAgIFpaX3RvX21weih6LCAmc2VsZi5fX2Rlbm9taW5hdG9yKQor KyAgICAgICAgWlpfdG9fbXB6KHosICZzZWxmLl9kZW5vbWluYXRvcikKKyAgICAgICAgICMgbWFn aWMgbnVtYmVyIGJlbG93IGlzIGZsb29yKCgxK3NxcnQoNSkpICogMl42MSkKKyAgICAgICAgIGgg Kz0gKG1wel9weXRob25oYXNoKHopIC0gMSkgKiAoPFB5X2hhc2hfdD4gNzQ2MTg2NDcyMzI1ODE4 NzUyNSkKKyAKK0BAIC0zMzA1LDEyICszMzA1LDEyIEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRF bGVtZW50KE51bWJlckZpZWxkRWxlbWVudF9iYXNlKToKKyAgICAgICAgIGNkZWYgaW50IGkKKyAg ICAgICAgIGNkZWYgbXB6X3QgZGVuCisgICAgICAgICBtcHpfaW5pdChkZW4pCistICAgICAgICBa Wl90b19tcHooZGVuLCAmc2VsZi5fX2Rlbm9taW5hdG9yKQorLSAgICAgICAgY2RlZiBpbnQgc2l6 ZSA9IFpaWF9kZWcoc2VsZi5fX251bWVyYXRvcikgKyAxCisrICAgICAgICBaWl90b19tcHooZGVu LCAmc2VsZi5fZGVub21pbmF0b3IpCisrICAgICAgICBjZGVmIGludCBzaXplID0gWlpYX2RlZyhz ZWxmLl9udW1lcmF0b3IpICsgMQorICAgICAgICAgY2RlZiBsaXN0IGNvZWZmcyA9IFtOb25lXSpz aXplCisgICAgICAgICBmb3IgaSBpbiByYW5nZShzaXplKToKKyAgICAgICAgICAgICBjb2VmZiA9 IFJhdGlvbmFsLl9fbmV3X18oUmF0aW9uYWwpCistICAgICAgICAgICAgWlpYX2dldGl0ZW1fYXNf bXB6KG1wcV9udW1yZWYoY29lZmYudmFsdWUpLCAmc2VsZi5fX251bWVyYXRvciwgaSkKKysgICAg ICAgICAgICBaWlhfZ2V0aXRlbV9hc19tcHoobXBxX251bXJlZihjb2VmZi52YWx1ZSksICZzZWxm Ll9udW1lcmF0b3IsIGkpCisgICAgICAgICAgICAgbXB6X3NldChtcHFfZGVucmVmKGNvZWZmLnZh bHVlKSwgZGVuKQorICAgICAgICAgICAgIG1wcV9jYW5vbmljYWxpemUoY29lZmYudmFsdWUpCisg ICAgICAgICAgICAgY29lZmZzW2ldID0gY29lZmYKK0BAIC0zMzE4LDE0ICszMzE4LDE0IEBAIGNk ZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51bWJlckZpZWxkRWxlbWVudF9iYXNlKToKKyAg ICAgICAgIHJldHVybiBjb2VmZnMKKyAKKyAgICAgY2RlZiB2b2lkIF9udGxfY29lZmZfYXNfbXB6 KHNlbGYsIG1wel90IHosIGxvbmcgaSk6CistICAgICAgICBpZiBpID4gWlpYX2RlZyhzZWxmLl9f bnVtZXJhdG9yKToKKysgICAgICAgIGlmIGkgPiBaWlhfZGVnKHNlbGYuX251bWVyYXRvcik6Cisg ICAgICAgICAgICAgbXB6X3NldF91aSh6LCAwKQorICAgICAgICAgZWxzZToKKy0gICAgICAgICAg ICBaWlhfZ2V0aXRlbV9hc19tcHooeiwgJnNlbGYuX19udW1lcmF0b3IsIGkpCisrICAgICAgICAg ICAgWlpYX2dldGl0ZW1fYXNfbXB6KHosICZzZWxmLl9udW1lcmF0b3IsIGkpCisgCisgICAgIGNk ZWYgdm9pZCBfbnRsX2Rlbm9tX2FzX21weihzZWxmLCBtcHpfdCB6KToKKyAgICAgICAgIGNkZWYg SW50ZWdlciBkZW5vbSA9IEludGVnZXIuX19uZXdfXyhJbnRlZ2VyKQorLSAgICAgICAgWlpfdG9f bXB6KGRlbm9tLnZhbHVlLCAmc2VsZi5fX2Rlbm9taW5hdG9yKQorKyAgICAgICAgWlpfdG9fbXB6 KGRlbm9tLnZhbHVlLCAmc2VsZi5fZGVub21pbmF0b3IpCisgICAgICAgICBtcHpfc2V0KHosIGRl bm9tLnZhbHVlKQorIAorICAgICBkZWYgZGVub21pbmF0b3Ioc2VsZik6CitAQCAtMzM0NCw3ICsz MzQ0LDcgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50 X2Jhc2UpOgorICAgICAgICAgICAgIDE1CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgSW50 ZWdlciBhbnMgPSBJbnRlZ2VyLl9fbmV3X18oSW50ZWdlcikKKy0gICAgICAgIFpaX3RvX21weihh bnMudmFsdWUsICZzZWxmLl9fZGVub21pbmF0b3IpCisrICAgICAgICBaWl90b19tcHooYW5zLnZh bHVlLCAmc2VsZi5fZGVub21pbmF0b3IpCisgICAgICAgICByZXR1cm4gYW5zCisgCisgICAgIGRl ZiBfc2V0X211bHRpcGxpY2F0aXZlX29yZGVyKHNlbGYsIG4pOgorQEAgLTM0NzQsOCArMzQ3NCw4 IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51bWJlckZpZWxkRWxlbWVudF9iYXNl KToKKyAgICAgICAgICAgICBzYWdlOiBhLmlzX29uZSgpCisgICAgICAgICAgICAgRmFsc2UKKyAg ICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIFpaWF9Jc09uZShzZWxmLl9fbnVtZXJhdG9yKSA9 PSAxIGFuZCBcCistICAgICAgICAgICAgICAgWlpfSXNPbmUoc2VsZi5fX2Rlbm9taW5hdG9yKSA9 PSAxCisrICAgICAgICByZXR1cm4gWlpYX0lzT25lKHNlbGYuX251bWVyYXRvcikgPT0gMSBhbmQg XAorKyAgICAgICAgICAgICAgIFpaX0lzT25lKHNlbGYuX2Rlbm9taW5hdG9yKSA9PSAxCisgCisg ICAgIGNwZGVmIGJpbnQgaXNfcmF0aW9uYWwoc2VsZik6CisgICAgICAgICByIiIiCitAQCAtMzUw MSw3ICszNTAxLDcgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRF bGVtZW50X2Jhc2UpOgorICAgICAgICAgICAgIHNhZ2U6IEsoMS8yKS5pc19yYXRpb25hbCgpCisg ICAgICAgICAgICAgVHJ1ZQorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gWlpYX2RlZyhz ZWxmLl9fbnVtZXJhdG9yKSA8PSAwCisrICAgICAgICByZXR1cm4gWlpYX2RlZyhzZWxmLl9udW1l cmF0b3IpIDw9IDAKKyAKKyAgICAgZGVmIGlzX2ludGVnZXIoc2VsZik6CisgICAgICAgICByIiIi CitAQCAtMzUyNyw3ICszNTI3LDcgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVt YmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAgICAgIHNhZ2U6IEsoMS8yKS5pc19pbnRl Z2VyKCkKKyAgICAgICAgICAgICBGYWxzZQorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4g WlpYX2RlZyhzZWxmLl9fbnVtZXJhdG9yKSA8PSAwIGFuZCBaWl9Jc09uZShzZWxmLl9fZGVub21p bmF0b3IpID09IDEKKysgICAgICAgIHJldHVybiBaWlhfZGVnKHNlbGYuX251bWVyYXRvcikgPD0g MCBhbmQgWlpfSXNPbmUoc2VsZi5fZGVub21pbmF0b3IpID09IDEKKyAKKyAgICAgZGVmIHRyYWNl KHNlbGYsIEs9Tm9uZSk6CisgICAgICAgICByIiIiCitAQCAtNTMyMiw4ICs1MzIyLDggQEAgY2Rl ZiBjbGFzcyBPcmRlckVsZW1lbnRfYWJzb2x1dGUoTnVtYmVyRmllbGRFbGVtZW50X2Fic29sdXRl KToKKyAgICAgICAgIGNkZWYgT3JkZXJFbGVtZW50X2Fic29sdXRlIHggPSA8T3JkZXJFbGVtZW50 X2Fic29sdXRlPnQuX19uZXdfXyh0KQorICAgICAgICAgeC5fcGFyZW50ID0gc2VsZi5fcGFyZW50 CisgICAgICAgICB4Ll9udW1iZXJfZmllbGQgPSBzZWxmLl9wYXJlbnQubnVtYmVyX2ZpZWxkKCkK Ky0gICAgICAgIHguX19mbGRfbnVtZXJhdG9yID0gc2VsZi5fX2ZsZF9udW1lcmF0b3IKKy0gICAg ICAgIHguX19mbGRfZGVub21pbmF0b3IgPSBzZWxmLl9fZmxkX2Rlbm9taW5hdG9yCisrICAgICAg ICB4Ll9mbGRfbnVtZXJhdG9yID0gc2VsZi5fZmxkX251bWVyYXRvcgorKyAgICAgICAgeC5fZmxk X2Rlbm9taW5hdG9yID0gc2VsZi5fZmxkX2Rlbm9taW5hdG9yCisgICAgICAgICByZXR1cm4geAor IAorICAgICBjZGVmIG51bWJlcl9maWVsZChzZWxmKToKK0BAIC01NDQzLDggKzU0NDMsOCBAQCBj ZGVmIGNsYXNzIE9yZGVyRWxlbWVudF9yZWxhdGl2ZShOdW1iZXJGaWVsZEVsZW1lbnRfcmVsYXRp dmUpOgorICAgICAgICAgY2RlZiBPcmRlckVsZW1lbnRfcmVsYXRpdmUgeCA9IDxPcmRlckVsZW1l bnRfcmVsYXRpdmU+dC5fX25ld19fKHQpCisgICAgICAgICB4Ll9wYXJlbnQgPSBzZWxmLl9wYXJl bnQKKyAgICAgICAgIHguX251bWJlcl9maWVsZCA9IHNlbGYuX3BhcmVudC5udW1iZXJfZmllbGQo KQorLSAgICAgICAgeC5fX2ZsZF9udW1lcmF0b3IgPSBzZWxmLl9fZmxkX251bWVyYXRvcgorLSAg ICAgICAgeC5fX2ZsZF9kZW5vbWluYXRvciA9IHNlbGYuX19mbGRfZGVub21pbmF0b3IKKysgICAg ICAgIHguX2ZsZF9udW1lcmF0b3IgPSBzZWxmLl9mbGRfbnVtZXJhdG9yCisrICAgICAgICB4Ll9m bGRfZGVub21pbmF0b3IgPSBzZWxmLl9mbGRfZGVub21pbmF0b3IKKyAgICAgICAgIHJldHVybiB4 CisgCisgICAgIGRlZiBfX2ludmVydF9fKHNlbGYpOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3Jp bmdzL251bWJlcl9maWVsZC9udW1iZXJfZmllbGRfZWxlbWVudF9xdWFkcmF0aWMucHl4IGIvc3Jj L3NhZ2UvcmluZ3MvbnVtYmVyX2ZpZWxkL251bWJlcl9maWVsZF9lbGVtZW50X3F1YWRyYXRpYy5w eXgKK2luZGV4IDA5OTJlN2NkNTI3Li5jMzJmNmFhZGQxMCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L3JpbmdzL251bWJlcl9maWVsZC9udW1iZXJfZmllbGRfZWxlbWVudF9xdWFkcmF0aWMucHl4Cisr KysgYi9zcmMvc2FnZS9yaW5ncy9udW1iZXJfZmllbGQvbnVtYmVyX2ZpZWxkX2VsZW1lbnRfcXVh ZHJhdGljLnB5eAorQEAgLTYxMCw4ICs2MTAsOCBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxl bWVudF9xdWFkcmF0aWMoTnVtYmVyRmllbGRFbGVtZW50X2Fic29sdXRlKToKKyAgICAgICAgIG1w el9jbGVhcih0bXBfbXB6KQorIAorICAgICAgICAgeC5fcGFyZW50ID0gPFBhcmVudFdpdGhCYXNl Pm5ld19wYXJlbnQKKy0gICAgICAgIHguX19mbGRfbnVtZXJhdG9yLCB4Ll9fZmxkX2Rlbm9taW5h dG9yID0gbmV3X3BhcmVudC5wb2x5bm9taWFsX250bCgpCistICAgICAgICB4Ll9fZGVub21pbmF0 b3IgPSBlbHRfZGVuCisrICAgICAgICB4Ll9mbGRfbnVtZXJhdG9yLCB4Ll9mbGRfZGVub21pbmF0 b3IgPSBuZXdfcGFyZW50LnBvbHlub21pYWxfbnRsKCkKKysgICAgICAgIHguX2Rlbm9taW5hdG9y ID0gZWx0X2RlbgorICAgICAgICAgY2RlZiBaWlhfYyByZXN1bHQKKyAgICAgICAgIGNkZWYgWlpf YyB0bXAKKyAgICAgICAgIGNkZWYgaW50IGkKK0BAIC02MjEsNyArNjIxLDcgQEAgY2RlZiBjbGFz cyBOdW1iZXJGaWVsZEVsZW1lbnRfcXVhZHJhdGljKE51bWJlckZpZWxkRWxlbWVudF9hYnNvbHV0 ZSk6CisgICAgICAgICBmb3IgaSBmcm9tIDAgPD0gaSA8PSBaWlhfZGVnKGVsdF9udW0pOgorICAg ICAgICAgICAgIHRtcCA9IFpaWF9jb2VmZihlbHRfbnVtLCBpKQorICAgICAgICAgICAgIFpaWF9T ZXRDb2VmZihyZXN1bHQsIGkqcmVsLCB0bXApCistICAgICAgICBaWlhfcmVtKHguX19udW1lcmF0 b3IsIHJlc3VsdCwgX251bS54KQorKyAgICAgICAgWlpYX3JlbSh4Ll9udW1lcmF0b3IsIHJlc3Vs dCwgX251bS54KQorICAgICAgICAgKDxOdW1iZXJGaWVsZEVsZW1lbnRfYWJzb2x1dGU+eCkuX3Jl ZHVjZV9jXygpCisgICAgICAgICByZXR1cm4geAorIAorQEAgLTE2NDMsNyArMTY0Myw3IEBAIGNk ZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50X3F1YWRyYXRpYyhOdW1iZXJGaWVsZEVsZW1lbnRf YWJzb2x1dGUpOgorICAgICAgICAgcmV0dXJuIHJlcworIAorICMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIworLSMgV2UgbXVzdCBvdmVycmlkZSBldmVyeXRoaW5nIHRoYXQgbWFrZXMgdXNlcyBvZiBz ZWxmLl9fbnVtZXJhdG9yL19fZGVub21pbmF0b3IKKysjIFdlIG11c3Qgb3ZlcnJpZGUgZXZlcnl0 aGluZyB0aGF0IG1ha2VzIHVzZXMgb2Ygc2VsZi5fbnVtZXJhdG9yL19kZW5vbWluYXRvcgorICMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIAorICAgICBkZWYgX19oYXNoX18oc2VsZik6CitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0NBX3RlbXBsYXRlLnB4aSBiL3NyYy9zYWdl L3JpbmdzL3BhZGljcy9DQV90ZW1wbGF0ZS5weGkKK2luZGV4IGEwYTY2YzE5NjIxLi5kODIxYjVj MTU3NiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9DQV90ZW1wbGF0ZS5weGkK KysrKyBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9DQV90ZW1wbGF0ZS5weGkKK0BAIC0xNDYzLDcg KzE0NjMsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29lcmNpb25fQ0FfZnJhY19maWVsZChSaW5nSG9t b21vcnBoaXNtKToKKyAgICAgICAgIElGIENFTEVNRU5UX0lTX1BZX09CSkVDVDoKKyAgICAgICAg ICAgICAjIFRoZSBiYXNlIHJpbmcgaXMgd3JvbmcsIHNvIHdlIGZpeCBpdC4KKyAgICAgICAgICAg ICBLID0gYW5zLnVuaXQuYmFzZV9yaW5nKCkKKy0gICAgICAgICAgICBhbnMudW5pdC5fX2NvZWZm cyA9IFtLKGMpIGZvciBjIGluIGFucy51bml0Ll9fY29lZmZzXQorKyAgICAgICAgICAgIGFucy51 bml0Ll9jb2VmZnMgPSBbSyhjKSBmb3IgYyBpbiBhbnMudW5pdC5fY29lZmZzXQorICAgICAgICAg YW5zLl9ub3JtYWxpemUoKQorICAgICAgICAgcmV0dXJuIGFucworIAorQEAgLTE1MTYsNyArMTUx Niw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb2VyY2lvbl9DQV9mcmFjX2ZpZWxkKFJpbmdIb21vbW9y cGhpc20pOgorICAgICAgICAgICAgIElGIENFTEVNRU5UX0lTX1BZX09CSkVDVDoKKyAgICAgICAg ICAgICAgICAgIyBUaGUgYmFzZSByaW5nIGlzIHdyb25nLCBzbyB3ZSBmaXggaXQuCisgICAgICAg ICAgICAgICAgIEsgPSBhbnMudW5pdC5iYXNlX3JpbmcoKQorLSAgICAgICAgICAgICAgICBhbnMu dW5pdC5fX2NvZWZmcyA9IFtLKGMpIGZvciBjIGluIGFucy51bml0Ll9fY29lZmZzXQorKyAgICAg ICAgICAgICAgICBhbnMudW5pdC5fY29lZmZzID0gW0soYykgZm9yIGMgaW4gYW5zLnVuaXQuX2Nv ZWZmc10KKyAgICAgICAgICAgICBwYXNzCisgICAgICAgICByZXR1cm4gYW5zCisgCitAQCAtMTY4 Niw3ICsxNjg2LDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvbnZlcnRfQ0FfZnJhY19maWVsZChNb3Jw aGlzbSk6CisgICAgICAgICAgICAgSUYgQ0VMRU1FTlRfSVNfUFlfT0JKRUNUOgorICAgICAgICAg ICAgICAgICAjIFRoZSBiYXNlIHJpbmcgaXMgd3JvbmcsIHNvIHdlIGZpeCBpdC4KKyAgICAgICAg ICAgICAgICAgUiA9IGFucy52YWx1ZS5iYXNlX3JpbmcoKQorLSAgICAgICAgICAgICAgICBhbnMu dmFsdWUuX19jb2VmZnMgPSBbUihjKSBmb3IgYyBpbiBhbnMudmFsdWUuX19jb2VmZnNdCisrICAg ICAgICAgICAgICAgIGFucy52YWx1ZS5fY29lZmZzID0gW1IoYykgZm9yIGMgaW4gYW5zLnZhbHVl Ll9jb2VmZnNdCisgICAgICAgICByZXR1cm4gYW5zCisgCisgICAgIGNwZGVmIEVsZW1lbnQgX2Nh bGxfd2l0aF9hcmdzKHNlbGYsIF94LCBhcmdzPSgpLCBrd2RzPXt9KToKK0BAIC0xNzQxLDcgKzE3 NDEsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29udmVydF9DQV9mcmFjX2ZpZWxkKE1vcnBoaXNtKToK KyAgICAgICAgICAgICBJRiBDRUxFTUVOVF9JU19QWV9PQkpFQ1Q6CisgICAgICAgICAgICAgICAg ICMgVGhlIGJhc2UgcmluZyBpcyB3cm9uZywgc28gd2UgZml4IGl0LgorICAgICAgICAgICAgICAg ICBSID0gYW5zLnZhbHVlLmJhc2VfcmluZygpCistICAgICAgICAgICAgICAgIGFucy52YWx1ZS5f X2NvZWZmcyA9IFtSKGMpIGZvciBjIGluIGFucy52YWx1ZS5fX2NvZWZmc10KKysgICAgICAgICAg ICAgICAgYW5zLnZhbHVlLl9jb2VmZnMgPSBbUihjKSBmb3IgYyBpbiBhbnMudmFsdWUuX2NvZWZm c10KKyAgICAgICAgIHJldHVybiBhbnMKKyAKKyAgICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhz ZWxmKToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvQ1JfdGVtcGxhdGUucHhp IGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0NSX3RlbXBsYXRlLnB4aQoraW5kZXggY2I1N2JiMmNi NDguLjg2M2M2MTI1ODdjIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0NSX3Rl bXBsYXRlLnB4aQorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0NSX3RlbXBsYXRlLnB4aQor QEAgLTIxODQsNyArMjE4NCw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb2VyY2lvbl9DUl9mcmFjX2Zp ZWxkKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgSUYgQ0VMRU1FTlRfSVNfUFlfT0JKRUNU OgorICAgICAgICAgICAgICMgVGhlIGJhc2UgcmluZyBpcyB3cm9uZywgc28gd2UgZml4IGl0Lgor ICAgICAgICAgICAgIEsgPSBhbnMudW5pdC5iYXNlX3JpbmcoKQorLSAgICAgICAgICAgIGFucy51 bml0Ll9fY29lZmZzID0gW0soYykgZm9yIGMgaW4gYW5zLnVuaXQuX19jb2VmZnNdCisrICAgICAg ICAgICAgYW5zLnVuaXQuX2NvZWZmcyA9IFtLKGMpIGZvciBjIGluIGFucy51bml0Ll9jb2VmZnNd CisgICAgICAgICByZXR1cm4gYW5zCisgCisgICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9h cmdzKHNlbGYsIF94LCBhcmdzPSgpLCBrd2RzPXt9KToKK0BAIC0yMjQxLDcgKzIyNDEsNyBAQCBj ZGVmIGNsYXNzIHBBZGljQ29lcmNpb25fQ1JfZnJhY19maWVsZChSaW5nSG9tb21vcnBoaXNtKToK KyAgICAgICAgICAgICBJRiBDRUxFTUVOVF9JU19QWV9PQkpFQ1Q6CisgICAgICAgICAgICAgICAg ICMgVGhlIGJhc2UgcmluZyBpcyB3cm9uZywgc28gd2UgZml4IGl0LgorICAgICAgICAgICAgICAg ICBLID0gYW5zLnVuaXQuYmFzZV9yaW5nKCkKKy0gICAgICAgICAgICAgICAgYW5zLnVuaXQuX19j b2VmZnMgPSBbSyhjKSBmb3IgYyBpbiBhbnMudW5pdC5fX2NvZWZmc10KKysgICAgICAgICAgICAg ICAgYW5zLnVuaXQuX2NvZWZmcyA9IFtLKGMpIGZvciBjIGluIGFucy51bml0Ll9jb2VmZnNdCisg ICAgICAgICByZXR1cm4gYW5zCisgCisgICAgIGRlZiBzZWN0aW9uKHNlbGYpOgorQEAgLTI0MDQs NyArMjQwNCw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb252ZXJ0X0NSX2ZyYWNfZmllbGQoTW9ycGhp c20pOgorICAgICAgICAgSUYgQ0VMRU1FTlRfSVNfUFlfT0JKRUNUOgorICAgICAgICAgICAgICMg VGhlIGJhc2UgcmluZyBpcyB3cm9uZywgc28gd2UgZml4IGl0LgorICAgICAgICAgICAgIEsgPSBh bnMudW5pdC5iYXNlX3JpbmcoKQorLSAgICAgICAgICAgIGFucy51bml0Ll9fY29lZmZzID0gW0so YykgZm9yIGMgaW4gYW5zLnVuaXQuX19jb2VmZnNdCisrICAgICAgICAgICAgYW5zLnVuaXQuX2Nv ZWZmcyA9IFtLKGMpIGZvciBjIGluIGFucy51bml0Ll9jb2VmZnNdCisgICAgICAgICByZXR1cm4g YW5zCisgCisgICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIF94LCBhcmdz PSgpLCBrd2RzPXt9KToKK0BAIC0yNDYzLDcgKzI0NjMsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29u dmVydF9DUl9mcmFjX2ZpZWxkKE1vcnBoaXNtKToKKyAgICAgICAgICAgICBJRiBDRUxFTUVOVF9J U19QWV9PQkpFQ1Q6CisgICAgICAgICAgICAgICAgICMgVGhlIGJhc2UgcmluZyBpcyB3cm9uZywg c28gd2UgZml4IGl0LgorICAgICAgICAgICAgICAgICBLID0gYW5zLnVuaXQuYmFzZV9yaW5nKCkK Ky0gICAgICAgICAgICAgICAgYW5zLnVuaXQuX19jb2VmZnMgPSBbSyhjKSBmb3IgYyBpbiBhbnMu dW5pdC5fX2NvZWZmc10KKysgICAgICAgICAgICAgICAgYW5zLnVuaXQuX2NvZWZmcyA9IFtLKGMp IGZvciBjIGluIGFucy51bml0Ll9jb2VmZnNdCisgICAgICAgICByZXR1cm4gYW5zCisgCisgICAg IGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZik6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvcmlu Z3MvcGFkaWNzL0ZNX3RlbXBsYXRlLnB4aSBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9GTV90ZW1w bGF0ZS5weGkKK2luZGV4IGVhN2Q0MDU1NjYwLi5mNDcyMDAwNzRlYSAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL3JpbmdzL3BhZGljcy9GTV90ZW1wbGF0ZS5weGkKKysrKyBiL3NyYy9zYWdlL3Jpbmdz L3BhZGljcy9GTV90ZW1wbGF0ZS5weGkKK0BAIC0xMjI3LDcgKzEyMjcsNyBAQCBjZGVmIGNsYXNz IHBBZGljQ29lcmNpb25fRk1fZnJhY19maWVsZChSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAg IElGIENFTEVNRU5UX0lTX1BZX09CSkVDVDoKKyAgICAgICAgICAgICAjIFRoZSBiYXNlIHJpbmcg aXMgd3JvbmcsIHNvIHdlIGZpeCBpdC4KKyAgICAgICAgICAgICBLID0gYW5zLnVuaXQuYmFzZV9y aW5nKCkKKy0gICAgICAgICAgICBhbnMudW5pdC5fX2NvZWZmcyA9IFtLKGMpIGZvciBjIGluIGFu cy51bml0Ll9fY29lZmZzXQorKyAgICAgICAgICAgIGFucy51bml0Ll9jb2VmZnMgPSBbSyhjKSBm b3IgYyBpbiBhbnMudW5pdC5fY29lZmZzXQorICAgICAgICAgcmV0dXJuIGFucworIAorICAgICBj cGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCBfeCwgYXJncz0oKSwga3dkcz17fSk6 CitAQCAtMTI3Nyw3ICsxMjc3LDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvZXJjaW9uX0ZNX2ZyYWNf ZmllbGQoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICBJRiBDRUxFTUVOVF9JU19QWV9PQkpF Q1Q6CisgICAgICAgICAgICAgIyBUaGUgYmFzZSByaW5nIGlzIHdyb25nLCBzbyB3ZSBmaXggaXQu CisgICAgICAgICAgICAgSyA9IGFucy51bml0LmJhc2VfcmluZygpCistICAgICAgICAgICAgYW5z LnVuaXQuX19jb2VmZnMgPSBbSyhjKSBmb3IgYyBpbiBhbnMudW5pdC5fX2NvZWZmc10KKysgICAg ICAgICAgICBhbnMudW5pdC5fY29lZmZzID0gW0soYykgZm9yIGMgaW4gYW5zLnVuaXQuX2NvZWZm c10KKyAgICAgICAgIHJldHVybiBhbnMKKyAKKyAgICAgZGVmIHNlY3Rpb24oc2VsZik6CitAQCAt MTQzNSw3ICsxNDM1LDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvbnZlcnRfRk1fZnJhY19maWVsZChN b3JwaGlzbSk6CisgICAgICAgICBJRiBDRUxFTUVOVF9JU19QWV9PQkpFQ1Q6CisgICAgICAgICAg ICAgIyBUaGUgYmFzZSByaW5nIGlzIHdyb25nLCBzbyB3ZSBmaXggaXQuCisgICAgICAgICAgICAg UiA9IGFucy52YWx1ZS5iYXNlX3JpbmcoKQorLSAgICAgICAgICAgIGFucy52YWx1ZS5fX2NvZWZm cyA9IFtSKGMpIGZvciBjIGluIGFucy52YWx1ZS5fX2NvZWZmc10KKysgICAgICAgICAgICBhbnMu dmFsdWUuX2NvZWZmcyA9IFtSKGMpIGZvciBjIGluIGFucy52YWx1ZS5fY29lZmZzXQorICAgICAg ICAgcmV0dXJuIGFucworIAorICAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxm LCBfeCwgYXJncz0oKSwga3dkcz17fSk6CitAQCAtMTQ4Myw3ICsxNDgzLDcgQEAgY2RlZiBjbGFz cyBwQWRpY0NvbnZlcnRfRk1fZnJhY19maWVsZChNb3JwaGlzbSk6CisgICAgICAgICBJRiBDRUxF TUVOVF9JU19QWV9PQkpFQ1Q6CisgICAgICAgICAgICAgIyBUaGUgYmFzZSByaW5nIGlzIHdyb25n LCBzbyB3ZSBmaXggaXQuCisgICAgICAgICAgICAgUiA9IGFucy52YWx1ZS5iYXNlX3JpbmcoKQor LSAgICAgICAgICAgIGFucy52YWx1ZS5fX2NvZWZmcyA9IFtSKGMpIGZvciBjIGluIGFucy52YWx1 ZS5fX2NvZWZmc10KKysgICAgICAgICAgICBhbnMudmFsdWUuX2NvZWZmcyA9IFtSKGMpIGZvciBj IGluIGFucy52YWx1ZS5fY29lZmZzXQorICAgICAgICAgcmV0dXJuIGFucworIAorICAgICBjZGVm IGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3Bh ZGljcy9GUF90ZW1wbGF0ZS5weGkgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvRlBfdGVtcGxhdGUu cHhpCitpbmRleCA1N2VjNjE5YjI3OC4uYzcxOGMwYTVmOGQgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9yaW5ncy9wYWRpY3MvRlBfdGVtcGxhdGUucHhpCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wYWRp Y3MvRlBfdGVtcGxhdGUucHhpCitAQCAtMTg0OSw3ICsxODQ5LDcgQEAgY2RlZiBjbGFzcyBwQWRp Y0NvZXJjaW9uX0ZQX2ZyYWNfZmllbGQoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICBJRiBD RUxFTUVOVF9JU19QWV9PQkpFQ1Q6CisgICAgICAgICAgICAgIyBUaGUgYmFzZSByaW5nIGlzIHdy b25nLCBzbyB3ZSBmaXggaXQuCisgICAgICAgICAgICAgSyA9IGFucy51bml0LmJhc2VfcmluZygp CistICAgICAgICAgICAgYW5zLnVuaXQuX19jb2VmZnMgPSBbSyhjKSBmb3IgYyBpbiBhbnMudW5p dC5fX2NvZWZmc10KKysgICAgICAgICAgICBhbnMudW5pdC5fY29lZmZzID0gW0soYykgZm9yIGMg aW4gYW5zLnVuaXQuX2NvZWZmc10KKyAgICAgICAgIHJldHVybiBhbnMKKyAKKyAgICAgY3BkZWYg RWxlbWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwgX3gsIGFyZ3M9KCksIGt3ZHM9e30pOgorQEAg LTE5MDMsNyArMTkwMyw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb2VyY2lvbl9GUF9mcmFjX2ZpZWxk KFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgICAgIElGIENFTEVNRU5UX0lTX1BZX09CSkVD VDoKKyAgICAgICAgICAgICAgICAgIyBUaGUgYmFzZSByaW5nIGlzIHdyb25nLCBzbyB3ZSBmaXgg aXQuCisgICAgICAgICAgICAgICAgIEsgPSBhbnMudW5pdC5iYXNlX3JpbmcoKQorLSAgICAgICAg ICAgICAgICBhbnMudW5pdC5fX2NvZWZmcyA9IFtLKGMpIGZvciBjIGluIGFucy51bml0Ll9fY29l ZmZzXQorKyAgICAgICAgICAgICAgICBhbnMudW5pdC5fY29lZmZzID0gW0soYykgZm9yIGMgaW4g YW5zLnVuaXQuX2NvZWZmc10KKyAgICAgICAgIHJldHVybiBhbnMKKyAKKyAgICAgZGVmIHNlY3Rp b24oc2VsZik6CitAQCAtMjAyNSw3ICsyMDI1LDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvbnZlcnRf RlBfZnJhY19maWVsZChNb3JwaGlzbSk6CisgICAgICAgICBJRiBDRUxFTUVOVF9JU19QWV9PQkpF Q1Q6CisgICAgICAgICAgICAgIyBUaGUgYmFzZSByaW5nIGlzIHdyb25nLCBzbyB3ZSBmaXggaXQu CisgICAgICAgICAgICAgSyA9IGFucy51bml0LmJhc2VfcmluZygpCistICAgICAgICAgICAgYW5z LnVuaXQuX19jb2VmZnMgPSBbSyhjKSBmb3IgYyBpbiBhbnMudW5pdC5fX2NvZWZmc10KKysgICAg ICAgICAgICBhbnMudW5pdC5fY29lZmZzID0gW0soYykgZm9yIGMgaW4gYW5zLnVuaXQuX2NvZWZm c10KKyAgICAgICAgIHJldHVybiBhbnMKKyAKKyAgICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRo X2FyZ3Moc2VsZiwgX3gsIGFyZ3M9KCksIGt3ZHM9e30pOgorQEAgLTIwODEsNyArMjA4MSw3IEBA IGNkZWYgY2xhc3MgcEFkaWNDb252ZXJ0X0ZQX2ZyYWNfZmllbGQoTW9ycGhpc20pOgorICAgICAg ICAgICAgIElGIENFTEVNRU5UX0lTX1BZX09CSkVDVDoKKyAgICAgICAgICAgICAgICAgIyBUaGUg YmFzZSByaW5nIGlzIHdyb25nLCBzbyB3ZSBmaXggaXQuCisgICAgICAgICAgICAgICAgIEsgPSBh bnMudW5pdC5iYXNlX3JpbmcoKQorLSAgICAgICAgICAgICAgICBhbnMudW5pdC5fX2NvZWZmcyA9 IFtLKGMpIGZvciBjIGluIGFucy51bml0Ll9fY29lZmZzXQorKyAgICAgICAgICAgICAgICBhbnMu dW5pdC5fY29lZmZzID0gW0soYykgZm9yIGMgaW4gYW5zLnVuaXQuX2NvZWZmc10KKyAgICAgICAg IHJldHVybiBhbnMKKyAKKyAgICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKToKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1dGVyLnB4ZCBiL3NyYy9zYWdl L3JpbmdzL3BhZGljcy9wb3dfY29tcHV0ZXIucHhkCitpbmRleCAyYTkzZTQyMjU0ZS4uODc2Njcy NTg4MmUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1dGVyLnB4 ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19jb21wdXRlci5weGQKK0BAIC02LDcg KzYsNyBAQCBjZGVmIGNsYXNzIFBvd0NvbXB1dGVyX2NsYXNzKFNhZ2VPYmplY3QpOgorICAgICBj ZGVmIEludGVnZXIgcHJpbWUKKyAgICAgY2RlZiBJbnRlZ2VyIHAyICMgZmxvb3IocC8yKQorICAg ICBjZGVmIGJpbnQgaW5fZmllbGQKKy0gICAgY2RlZiBpbnQgX19hbGxvY2F0ZWQKKysgICAgY2Rl ZiBpbnQgX2FsbG9jYXRlZAorICAgICBjZGVmIHB1YmxpYyBvYmplY3QgX3ByZWNfdHlwZQorIAor ICAgICBjZGVmIGxvbmcgcmFtX3ByZWNfY2FwICMgPSBwcmVjX2NhcCAqIGUKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1dGVyLnB5eCBiL3NyYy9zYWdlL3Jpbmdz L3BhZGljcy9wb3dfY29tcHV0ZXIucHl4CitpbmRleCBjMmZhODAzMTA4Ni4uMWM1YmRmODY4OTcg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1dGVyLnB5eAorKysr IGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19jb21wdXRlci5weXgKK0BAIC02NSw3ICs2NSw3 IEBAIGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfY2xhc3MoU2FnZU9iamVjdCk6CisgICAgICAgICBz aWdfb24oKQorICAgICAgICAgbXB6X2luaXQoc2VsZi50ZW1wX20pCisgICAgICAgICBzaWdfb2Zm KCkKKy0gICAgICAgIHNlbGYuX19hbGxvY2F0ZWQgPSAxCisrICAgICAgICBzZWxmLl9hbGxvY2F0 ZWQgPSAxCisgCisgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBJbnRlZ2VyIHByaW1lLCBsb25nIGNh Y2hlX2xpbWl0LCBsb25nIHByZWNfY2FwLCBsb25nIHJhbV9wcmVjX2NhcCwgYmludCBpbl9maWVs ZCwgcG9seT1Ob25lLCBzaGlmdF9zZWVkPU5vbmUpOgorICAgICAgICAgIiIiCitAQCAtNDg1LDcg KzQ4NSw3IEBAIGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfYmFzZShQb3dDb21wdXRlcl9jbGFzcyk6 CisgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgIHNpZ19vZmYoKQorIAorLSAgICAgICAg c2VsZi5fX2FsbG9jYXRlZCA9IDIKKysgICAgICAgIHNlbGYuX2FsbG9jYXRlZCA9IDIKKyAKKyAg ICAgZGVmIF9faW5pdF9fKHNlbGYsIEludGVnZXIgcHJpbWUsIGxvbmcgY2FjaGVfbGltaXQsIGxv bmcgcHJlY19jYXAsIGxvbmcgcmFtX3ByZWNfY2FwLCBiaW50IGluX2ZpZWxkLCBwb2x5PU5vbmUs IHNoaWZ0X3NlZWQ9Tm9uZSk6CisgICAgICAgICAiIiIKK0BAIC01MjksNyArNTI5LDcgQEAgY2Rl ZiBjbGFzcyBQb3dDb21wdXRlcl9iYXNlKFBvd0NvbXB1dGVyX2NsYXNzKToKKyAgICAgICAgICIi IgorICAgICAgICAgY2RlZiBQeV9zc2l6ZV90IGkKKyAKKy0gICAgICAgIGlmIHNlbGYuX19hbGxv Y2F0ZWQgPj0gMjoKKysgICAgICAgIGlmIHNlbGYuX2FsbG9jYXRlZCA+PSAyOgorICAgICAgICAg ICAgIGZvciBpIGluIHJhbmdlKHNlbGYuY2FjaGVfbGltaXQgKyAxKToKKyAgICAgICAgICAgICAg ICAgbXB6X2NsZWFyKHNlbGYuc21hbGxfcG93ZXJzW2ldKQorICAgICAgICAgICAgIG1wel9jbGVh cihzZWxmLnRvcF9wb3dlcikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93 X2NvbXB1dGVyX2ZsaW50LnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wb3dfY29tcHV0ZXJf ZmxpbnQucHl4CitpbmRleCA5ZjkxNGRlZmNjNi4uZTUyMWVhNmUwNzggMTAwNjQ0CistLS0gYS9z cmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1dGVyX2ZsaW50LnB5eAorKysrIGIvc3JjL3Nh Z2UvcmluZ3MvcGFkaWNzL3Bvd19jb21wdXRlcl9mbGludC5weXgKK0BAIC01OSw3ICs1OSw3IEBA IGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfZmxpbnQoUG93Q29tcHV0ZXJfY2xhc3MpOgorICAgICAg ICAgZmluYWxseToKKyAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAKKy0gICAgICAgIHNlbGYuX19h bGxvY2F0ZWQgPSA0CisrICAgICAgICBzZWxmLl9hbGxvY2F0ZWQgPSA0CisgCisgICAgIGRlZiBf X2luaXRfXyhzZWxmLCBJbnRlZ2VyIHByaW1lLCBsb25nIGNhY2hlX2xpbWl0LCBsb25nIHByZWNf Y2FwLCBsb25nIHJhbV9wcmVjX2NhcCwgYmludCBpbl9maWVsZCwgcG9seT1Ob25lLCBzaGlmdF9z ZWVkPU5vbmUpOgorICAgICAgICAgIiIiCitAQCAtODcsNyArODcsNyBAQCBjZGVmIGNsYXNzIFBv d0NvbXB1dGVyX2ZsaW50KFBvd0NvbXB1dGVyX2NsYXNzKToKKyAgICAgICAgICAgICBzYWdlOiBB ID0gUG93Q29tcHV0ZXJfZmxpbnQoNSwgMjAsIDIwLCAyMCwgRmFsc2UpCisgICAgICAgICAgICAg c2FnZTogZGVsIEEKKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgc2VsZi5fX2FsbG9jYXRlZCA+ PSA0OgorKyAgICAgICAgaWYgc2VsZi5fYWxsb2NhdGVkID49IDQ6CisgICAgICAgICAgICAgZm1w el9jbGVhcihzZWxmLmZwcmltZSkKKyAgICAgICAgICAgICBmbXB6X2NsZWFyKHNlbGYuaGFsZl9w cmltZSkKKyAgICAgICAgICAgICBmbXB6X2NsZWFyKHNlbGYuX2Zwb3dfdmFyaWFibGUpCitAQCAt MjA4LDcgKzIwOCw3IEBAIGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfZmxpbnRfMXN0ZXAoUG93Q29t cHV0ZXJfZmxpbnQpOgorIAorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIFBvbHlub21pYWxf aW50ZWdlcl9kZW5zZV9mbGludCBwb2x5ID0gX3BvbHkKKy0gICAgICAgIGNkZWYgbG9uZyBsZW5n dGggPSBmbXB6X3BvbHlfbGVuZ3RoKHBvbHkuX19wb2x5KQorKyAgICAgICAgY2RlZiBsb25nIGxl bmd0aCA9IGZtcHpfcG9seV9sZW5ndGgocG9seS5fcG9seSkKKyAKKyAgICAgICAgIGNkZWYgUHlf c3NpemVfdCBpCisgCitAQCAtMjUxLDcgKzI1MSw3IEBAIGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJf ZmxpbnRfMXN0ZXAoUG93Q29tcHV0ZXJfZmxpbnQpOgorICAgICAgICAgZmluYWxseToKKyAgICAg ICAgICAgICBzaWdfb2ZmKCkKKyAKKy0gICAgICAgIHNlbGYuX19hbGxvY2F0ZWQgPSA4CisrICAg ICAgICBzZWxmLl9hbGxvY2F0ZWQgPSA4CisgCisgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBJbnRl Z2VyIHByaW1lLCBsb25nIGNhY2hlX2xpbWl0LCBsb25nIHByZWNfY2FwLCBsb25nIHJhbV9wcmVj X2NhcCwgYmludCBpbl9maWVsZCwgX3BvbHksIHNoaWZ0X3NlZWQ9Tm9uZSk6CisgICAgICAgICAi IiIKK0BAIC0yNjgsMTAgKzI2OCwxMCBAQCBjZGVmIGNsYXNzIFBvd0NvbXB1dGVyX2ZsaW50XzFz dGVwKFBvd0NvbXB1dGVyX2ZsaW50KToKKyAgICAgICAgIFBvd0NvbXB1dGVyX2ZsaW50Ll9faW5p dF9fKHNlbGYsIHByaW1lLCBjYWNoZV9saW1pdCwgcHJlY19jYXAsIHJhbV9wcmVjX2NhcCwgaW5f ZmllbGQsIF9wb2x5LCBzaGlmdF9zZWVkKQorIAorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2lu dGVnZXJfZGVuc2VfZmxpbnQgcG9seSA9IF9wb2x5CistICAgICAgICBjZGVmIGxvbmcgbGVuZ3Ro ID0gZm1wel9wb2x5X2xlbmd0aChwb2x5Ll9fcG9seSkKKysgICAgICAgIGNkZWYgbG9uZyBsZW5n dGggPSBmbXB6X3BvbHlfbGVuZ3RoKHBvbHkuX3BvbHkpCisgICAgICAgICBzZWxmLmRlZyA9IGxl bmd0aCAtIDEKKyAKKy0gICAgICAgIGZtcHpfcG9seV9zZXQoc2VsZi5tb2R1bHVzLCBwb2x5Ll9f cG9seSkKKysgICAgICAgIGZtcHpfcG9seV9zZXQoc2VsZi5tb2R1bHVzLCBwb2x5Ll9wb2x5KQor IAorICAgICAgICAgY2RlZiBQeV9zc2l6ZV90IGkKKyAgICAgICAgIGNkZWYgZm1weiogY29lZmZz ID0gc2VsZi5tb2R1bHVzLmNvZWZmcworQEAgLTI5Niw3ICsyOTYsNyBAQCBjZGVmIGNsYXNzIFBv d0NvbXB1dGVyX2ZsaW50XzFzdGVwKFBvd0NvbXB1dGVyX2ZsaW50KToKKyAgICAgICAgICIiIgor ICAgICAgICAgY2RlZiBQeV9zc2l6ZV90IGkKKyAKKy0gICAgICAgIGlmIHNlbGYuX19hbGxvY2F0 ZWQgPj0gODoKKysgICAgICAgIGlmIHNlbGYuX2FsbG9jYXRlZCA+PSA4OgorICAgICAgICAgICAg IGZtcHpfY2xlYXIoc2VsZi5xKQorICAgICAgICAgICAgIGZtcHpfcG9seV9jbGVhcihzZWxmLm1v ZHVsdXMpCisgICAgICAgICAgICAgZm1wel9wb2x5X2NsZWFyKHNlbGYucG93aGVscGVyX29uZXVu aXQpCitAQCAtNDI3LDkgKzQyNyw5IEBAIGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfZmxpbnRfMXN0 ZXAoUG93Q29tcHV0ZXJfZmxpbnQpOgorICAgICAgICAgeCA9IFIuZ2VuKCkKKyAgICAgICAgIGNk ZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50IGFucyA9ICg8UG9seW5vbWlhbF9pbnRl Z2VyX2RlbnNlX2ZsaW50Pz54KS5fbmV3KCkKKyAgICAgICAgIGlmIF9uIGlzIE5vbmU6CistICAg ICAgICAgICAgZm1wel9wb2x5X3NldChhbnMuX19wb2x5LCBzZWxmLm1vZHVsdXMpCisrICAgICAg ICAgICAgZm1wel9wb2x5X3NldChhbnMuX3BvbHksIHNlbGYubW9kdWx1cykKKyAgICAgICAgIGVs c2U6CistICAgICAgICAgICAgZm1wel9wb2x5X3NldChhbnMuX19wb2x5LCBzZWxmLmdldF9tb2R1 bHVzKF9uKVswXSkKKysgICAgICAgICAgICBmbXB6X3BvbHlfc2V0KGFucy5fcG9seSwgc2VsZi5n ZXRfbW9kdWx1cyhfbilbMF0pCisgICAgICAgICByZXR1cm4gYW5zCisgCisgICAgIGNkZWYgX25l d19mbXB6X3BvbHkoc2VsZiwgZm1wel9wb2x5X3QgdmFsdWUsIHZhcj0neCcpOgorQEAgLTQ0MCw3 ICs0NDAsNyBAQCBjZGVmIGNsYXNzIFBvd0NvbXB1dGVyX2ZsaW50XzFzdGVwKFBvd0NvbXB1dGVy X2ZsaW50KToKKyAgICAgICAgIFIgPSBaWlt2YXJdCisgICAgICAgICB4ID0gUi5nZW4oKQorICAg ICAgICAgY2RlZiBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQgYW5zID0gKDxQb2x5bm9t aWFsX2ludGVnZXJfZGVuc2VfZmxpbnQ/PngpLl9uZXcoKQorLSAgICAgICAgZm1wel9wb2x5X3Nl dChhbnMuX19wb2x5LCB2YWx1ZSkKKysgICAgICAgIGZtcHpfcG9seV9zZXQoYW5zLl9wb2x5LCB2 YWx1ZSkKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKyBjZGVmIGNsYXNzIFBvd0NvbXB1dGVyX2Zs aW50X3VucmFtKFBvd0NvbXB1dGVyX2ZsaW50XzFzdGVwKToKK0BAIC01MDEsNyArNTAxLDcgQEAg Y2RlZiBjbGFzcyBQb3dDb21wdXRlcl9mbGludF91bnJhbShQb3dDb21wdXRlcl9mbGludF8xc3Rl cCk6CisgICAgICAgICBtcHpfaW5pdChzZWxmLm1wel9tYXRtb2QpCisgICAgICAgICBzaWdfb2Zm KCkKKyAKKy0gICAgICAgIHNlbGYuX19hbGxvY2F0ZWQgPSAxNgorKyAgICAgICAgc2VsZi5fYWxs b2NhdGVkID0gMTYKKyAKKyAgICAgZGVmIF9fZGVhbGxvY19fKHNlbGYpOgorICAgICAgICAgIiIi CitAQCAtNTE1LDcgKzUxNSw3IEBAIGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfZmxpbnRfdW5yYW0o UG93Q29tcHV0ZXJfZmxpbnRfMXN0ZXApOgorICAgICAgICAgICAgIHNhZ2U6IGRlbCBBCisgCisg ICAgICAgICAiIiIKKy0gICAgICAgIGlmIHNlbGYuX19hbGxvY2F0ZWQgPj0gMTY6CisrICAgICAg ICBpZiBzZWxmLl9hbGxvY2F0ZWQgPj0gMTY6CisgICAgICAgICAgICAgZm1wel9jbGVhcihzZWxm LmZtcHpfY2NtcCkKKyAgICAgICAgICAgICBmbXB6X2NsZWFyKHNlbGYuZm1wel9jdmFsKQorICAg ICAgICAgICAgIGZtcHpfY2xlYXIoc2VsZi5mbXB6X2NpbnYpCitkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvcmluZ3MvcGFkaWNzL3Bvd19jb21wdXRlcl9yZWxhdGl2ZS5weGQgYi9zcmMvc2FnZS9yaW5n cy9wYWRpY3MvcG93X2NvbXB1dGVyX3JlbGF0aXZlLnB4ZAoraW5kZXggZmM3ZDViMjFmNDIuLmUw ZTVhYTU2MDBlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19jb21wdXRl cl9yZWxhdGl2ZS5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wb3dfY29tcHV0ZXJf cmVsYXRpdmUucHhkCitAQCAtMTgsNyArMTgsNyBAQCBjZGVmIGNsYXNzIFBvd0NvbXB1dGVyX3Jl bGF0aXZlKFBvd0NvbXB1dGVyX2NsYXNzKToKKyAgICAgY2RlZiBQb2x5bm9taWFsX2dlbmVyaWNf ZGVuc2Ugc2hpZnRfcmVtCisgICAgIGNkZWYgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlIGFsaWFz aW5nCisgICAgICMgYWxsb3cgY2FjaGVkIG1ldGhvZHMKKy0gICAgY2RlZiBwdWJsaWMgZGljdCBf X2NhY2hlZF9tZXRob2RzCisrICAgIGNkZWYgcHVibGljIGRpY3QgX2NhY2hlZF9tZXRob2RzCisg CisgICAgIGNkZWYgdW5zaWduZWQgbG9uZyBjYXBkaXYoc2VsZiwgdW5zaWduZWQgbG9uZyBuKQor IAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wb3dfY29tcHV0ZXJfcmVsYXRp dmUucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19jb21wdXRlcl9yZWxhdGl2ZS5weXgK K2luZGV4IDM5MDUxYTY4MWRlLi4yMjUzMjgxYmQzNSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3Jp bmdzL3BhZGljcy9wb3dfY29tcHV0ZXJfcmVsYXRpdmUucHl4CisrKysgYi9zcmMvc2FnZS9yaW5n cy9wYWRpY3MvcG93X2NvbXB1dGVyX3JlbGF0aXZlLnB5eAorQEAgLTY5LDcgKzY5LDcgQEAgY2Rl ZiBjbGFzcyBQb3dDb21wdXRlcl9yZWxhdGl2ZShQb3dDb21wdXRlcl9jbGFzcyk6CisgICAgICAg ICAgICAgc2FnZTogUEMgPSBQb3dDb21wdXRlcl9yZWxhdGl2ZV9tYWtlcigzLCAyMCwgMjAsIDYw LCBGYWxzZSwgZiwgc2hpZnRfc2VlZCwgJ2ZpeGVkLW1vZCcpCisgCisgICAgICAgICAiIiIKKy0g ICAgICAgIHNlbGYuX19hbGxvY2F0ZWQgPSA0CisrICAgICAgICBzZWxmLl9hbGxvY2F0ZWQgPSA0 CisgCisgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBJbnRlZ2VyIHByaW1lLCBsb25nIGNhY2hlX2xp bWl0LCBsb25nIHByZWNfY2FwLCBsb25nIHJhbV9wcmVjX2NhcCwgYmludCBpbl9maWVsZCwgcG9s eSwgc2hpZnRfc2VlZCk6CisgICAgICAgICByIiIiCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvcmlu Z3MvcG9seW5vbWlhbC9oaWxiZXJ0LnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvaGls YmVydC5weXgKK2luZGV4IGExZjcwZTBjOTgzLi5kMmFiZjMyNWZkOCAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL3JpbmdzL3BvbHlub21pYWwvaGlsYmVydC5weXgKKysrKyBiL3NyYy9zYWdlL3Jpbmdz L3BvbHlub21pYWwvaGlsYmVydC5weXgKK0BAIC0xNzAsNyArMTcwLDcgQEAgY2RlZiBiaW50IEhp bGJlcnRCYXNlQ2FzZShQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQgZmhzLCBOb2RlIEQs IHR1cGxlIHcpOgorICAgICBjZGVmIGludCBlCisgICAgICMgRmlyc3QsIHRoZSBlYXNpZXN0IGNh c2VzOgorICAgICBpZiBub3QgRC5JZDogIyBUaGUgemVybyBpZGVhbAorLSAgICAgICAgZm1wel9w b2x5X3NldF9jb2VmZl9zaShmaHMuX19wb2x5LCAwLCAxKSAjID0gUFIoMSkKKysgICAgICAgIGZt cHpfcG9seV9zZXRfY29lZmZfc2koZmhzLl9wb2x5LCAwLCAxKSAjID0gUFIoMSkKKyAgICAgICAg IHJldHVybiBUcnVlCisgICAgIGNkZWYgRVR1cGxlIG0gPSA8RVR1cGxlPlB5TGlzdF9HRVRfSVRF TShELklkLCBsZW4oRC5JZCktMSkKKyAgICAgaWYgbS5fbm9uemVybyA9PSAwOiAjIFRoZSBvbmUg aWRlYWwKK0BAIC0xODMsMTggKzE4MywxOCBAQCBjZGVmIGJpbnQgSGlsYmVydEJhc2VDYXNlKFBv bHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludCBmaHMsIE5vZGUgRCwgdHVwbGUgdyk6CisgICAg IGlmIG0uX25vbnplcm8gPT0gMSBhbmQgbS5fZGF0YVsxXSA9PSAxOgorICAgICAgICAgZm1wel9w b2x5X2luaXQocG9seV90bXApCisgICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX3NpKHBvbHlf dG1wLCAwLCAxKQorLSAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9zaShmaHMuX19wb2x5LCAw LCAxKSAjID0gUFIoMSkKKysgICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZfc2koZmhzLl9wb2x5 LCAwLCAxKSAjID0gUFIoMSkKKyAgICAgICAgIGlmIHcgaXMgTm9uZToKKyAgICAgICAgICAgICBm b3IgaSBpbiByYW5nZShsZW4oRC5JZCkpOgorICAgICAgICAgICAgICAgICBleHAgPSAoPEVUdXBs ZT5QeUxpc3RfR0VUX0lURU0oRC5JZCwgaSkpLnVud2VpZ2h0ZWRfZGVncmVlKCkKKyAgICAgICAg ICAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9zaShwb2x5X3RtcCwgZXhwLCAtMSkKKy0gICAg ICAgICAgICAgICAgZm1wel9wb2x5X211bChmaHMuX19wb2x5LCBmaHMuX19wb2x5LCBwb2x5X3Rt cCkKKysgICAgICAgICAgICAgICAgZm1wel9wb2x5X211bChmaHMuX3BvbHksIGZocy5fcG9seSwg cG9seV90bXApCisgICAgICAgICAgICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZfc2kocG9seV90 bXAsIGV4cCwgMCkKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2Uo bGVuKEQuSWQpKToKKyAgICAgICAgICAgICAgICAgZXhwID0gKDxFVHVwbGU+UHlMaXN0X0dFVF9J VEVNKEQuSWQsIGkpKS53ZWlnaHRlZF9kZWdyZWUodykKKyAgICAgICAgICAgICAgICAgZm1wel9w b2x5X3NldF9jb2VmZl9zaShwb2x5X3RtcCwgZXhwLCAtMSkKKy0gICAgICAgICAgICAgICAgZm1w el9wb2x5X211bChmaHMuX19wb2x5LCBmaHMuX19wb2x5LCBwb2x5X3RtcCkKKysgICAgICAgICAg ICAgICAgZm1wel9wb2x5X211bChmaHMuX3BvbHksIGZocy5fcG9seSwgcG9seV90bXApCisgICAg ICAgICAgICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZfc2kocG9seV90bXAsIGV4cCwgMCkKKyAg ICAgICAgIGZtcHpfcG9seV9jbGVhcihwb2x5X3RtcCkKKyAgICAgICAgIHJldHVybiBUcnVlICMg UFIucHJvZChbKDEtdCoqZGVncmVlKG0sdykpIGZvciBtIGluIEQuSWRdKQorQEAgLTIxMCwxOCAr MjEwLDE4IEBAIGNkZWYgYmludCBIaWxiZXJ0QmFzZUNhc2UoUG9seW5vbWlhbF9pbnRlZ2VyX2Rl bnNlX2ZsaW50IGZocywgTm9kZSBELCB0dXBsZSB3KToKKyAgICAgICAgICMgVGhlIGlkZWFsIGlz IGdlbmVyYXRlZCBieSBzb21lIHBvd2VycyBvZiBzaW5nbGUgdmFyaWFibGVzLCBpLmUuLCBpdCBz cGxpdHMuCisgICAgICAgICBmbXB6X3BvbHlfaW5pdChwb2x5X3RtcCkKKyAgICAgICAgIGZtcHpf cG9seV9zZXRfY29lZmZfc2kocG9seV90bXAsIDAsIDEpCistICAgICAgICBmbXB6X3BvbHlfc2V0 X2NvZWZmX3NpKGZocy5fX3BvbHksIDAsIDEpICMgPSBQUigxKQorKyAgICAgICAgZm1wel9wb2x5 X3NldF9jb2VmZl9zaShmaHMuX3BvbHksIDAsIDEpICMgPSBQUigxKQorICAgICAgICAgaWYgdyBp cyBOb25lOgorICAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKGxlbihELklkKSk6CisgICAgICAg ICAgICAgICAgIGV4cCA9ICg8RVR1cGxlPlB5TGlzdF9HRVRfSVRFTShELklkLCBpKSkudW53ZWln aHRlZF9kZWdyZWUoKQorICAgICAgICAgICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX3NpKHBv bHlfdG1wLCBleHAsIC0xKQorLSAgICAgICAgICAgICAgICBmbXB6X3BvbHlfbXVsKGZocy5fX3Bv bHksIGZocy5fX3BvbHksIHBvbHlfdG1wKQorKyAgICAgICAgICAgICAgICBmbXB6X3BvbHlfbXVs KGZocy5fcG9seSwgZmhzLl9wb2x5LCBwb2x5X3RtcCkKKyAgICAgICAgICAgICAgICAgZm1wel9w b2x5X3NldF9jb2VmZl9zaShwb2x5X3RtcCwgZXhwLCAwKQorICAgICAgICAgZWxzZToKKyAgICAg ICAgICAgICBmb3IgaSBpbiByYW5nZShsZW4oRC5JZCkpOgorICAgICAgICAgICAgICAgICBleHAg PSAoPEVUdXBsZT5QeUxpc3RfR0VUX0lURU0oRC5JZCwgaSkpLndlaWdodGVkX2RlZ3JlZSh3KQor ICAgICAgICAgICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX3NpKHBvbHlfdG1wLCBleHAsIC0x KQorLSAgICAgICAgICAgICAgICBmbXB6X3BvbHlfbXVsKGZocy5fX3BvbHksIGZocy5fX3BvbHks IHBvbHlfdG1wKQorKyAgICAgICAgICAgICAgICBmbXB6X3BvbHlfbXVsKGZocy5fcG9seSwgZmhz Ll9wb2x5LCBwb2x5X3RtcCkKKyAgICAgICAgICAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9z aShwb2x5X3RtcCwgZXhwLCAwKQorICAgICAgICAgZm1wel9wb2x5X2NsZWFyKHBvbHlfdG1wKQor ICAgICAgICAgcmV0dXJuIFRydWUgIyBQUi5wcm9kKFsoMS10KipkZWdyZWUobSx3KSkgZm9yIG0g aW4gRC5JZF0pCitAQCAtMjc4LDggKzI3OCw4IEBAIGNkZWYgYmludCBIaWxiZXJ0QmFzZUNhc2Uo UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50IGZocywgTm9kZSBELCB0dXBsZSB3KToKKyAg ICAgICAgICAgICAgICAgICAgIGZtcHpfcG9seV9tdWwoU2Vjb25kU3VtbWFuZCwgU2Vjb25kU3Vt bWFuZCwgcG9seV90bXApCisgICAgICAgICAgICAgICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZm X3NpKHBvbHlfdG1wLCBleHAsIDApCisgICAgICAgICBmbXB6X3BvbHlfY2xlYXIocG9seV90bXAp CistICAgICAgICBmbXB6X3BvbHlfYWRkKGZocy5fX3BvbHksIGZocy5fX3BvbHksIEZpcnN0U3Vt bWFuZCkKKy0gICAgICAgIGZtcHpfcG9seV9hZGQoZmhzLl9fcG9seSwgZmhzLl9fcG9seSwgU2Vj b25kU3VtbWFuZCkKKysgICAgICAgIGZtcHpfcG9seV9hZGQoZmhzLl9wb2x5LCBmaHMuX3BvbHks IEZpcnN0U3VtbWFuZCkKKysgICAgICAgIGZtcHpfcG9seV9hZGQoZmhzLl9wb2x5LCBmaHMuX3Bv bHksIFNlY29uZFN1bW1hbmQpCisgICAgICAgICBmbXB6X3BvbHlfY2xlYXIoRmlyc3RTdW1tYW5k KQorICAgICAgICAgZm1wel9wb2x5X2NsZWFyKFNlY29uZFN1bW1hbmQpCisgICAgICAgICByZXR1 cm4gVHJ1ZQorQEAgLTUzMiwxMSArNTMyLDExIEBAIGRlZiBmaXJzdF9oaWxiZXJ0X3NlcmllcyhJ LCBncmFkaW5nPU5vbmUsIHJldHVybl9ncmFkaW5nPUZhbHNlKToKKyAgICAgICAgICAgICAgICAg aWYgQU4uQmFjay5SaWdodCBpcyBOb25lOgorICAgICAgICAgICAgICAgICAgICAgQU4gPSBBTi5C YWNrCisgICAgICAgICAgICAgICAgICAgICAjfiBmaHMgKj0gQU4uTE11bHQKKy0gICAgICAgICAg ICAgICAgICAgIGZtcHpfcG9seV9tdWwoZmhzLl9fcG9seSwgZmhzLl9fcG9seSwgQU4uTE11bHQp CisrICAgICAgICAgICAgICAgICAgICBmbXB6X3BvbHlfbXVsKGZocy5fcG9seSwgZmhzLl9wb2x5 LCBBTi5MTXVsdCkKKyAgICAgICAgICAgICAgICAgICAgIGdvdF9yZXN1bHQgPSBUcnVlCisgICAg ICAgICAgICAgICAgIGVsc2U6CistICAgICAgICAgICAgICAgICAgICBmbXB6X3BvbHlfc2V0KEFO LkJhY2suTGVmdEZIUywgZmhzLl9fcG9seSkKKy0gICAgICAgICAgICAgICAgICAgIGZtcHpfcG9s eV9zZXRfc2koZmhzLl9fcG9seSwgMCkKKysgICAgICAgICAgICAgICAgICAgIGZtcHpfcG9seV9z ZXQoQU4uQmFjay5MZWZ0RkhTLCBmaHMuX3BvbHkpCisrICAgICAgICAgICAgICAgICAgICBmbXB6 X3BvbHlfc2V0X3NpKGZocy5fcG9seSwgMCkKKyAgICAgICAgICAgICAgICAgICAgIEFOID0gQU4u QmFjay5SaWdodAorICAgICAgICAgICAgICAgICAgICAgQU4uQmFjay5MZWZ0ID0gTm9uZQorICAg ICAgICAgICAgICAgICAgICAgZ290X3Jlc3VsdCA9IEhpbGJlcnRCYXNlQ2FzZShmaHMsIEFOLCB3 KQorQEAgLTU0NSw4ICs1NDUsOCBAQCBkZWYgZmlyc3RfaGlsYmVydF9zZXJpZXMoSSwgZ3JhZGlu Zz1Ob25lLCByZXR1cm5fZ3JhZGluZz1GYWxzZSk6CisgICAgICAgICAgICAgICAgIEFOLlJpZ2h0 ID0gTm9uZQorICAgICAgICAgICAgICAgICAjfiBmaHMgPSBBTi5MTXVsdCpBTi5MZWZ0RkhTICsg QU4uUk11bHQqZmhzCisgICAgICAgICAgICAgICAgIGZtcHpfcG9seV9tdWwoQU4uTE11bHQsIEFO LkxNdWx0LCBBTi5MZWZ0RkhTKQorLSAgICAgICAgICAgICAgICBmbXB6X3BvbHlfbXVsKEFOLlJN dWx0LCBBTi5STXVsdCwgZmhzLl9fcG9seSkKKy0gICAgICAgICAgICAgICAgZm1wel9wb2x5X2Fk ZChmaHMuX19wb2x5LCBBTi5MTXVsdCwgQU4uUk11bHQpCisrICAgICAgICAgICAgICAgIGZtcHpf cG9seV9tdWwoQU4uUk11bHQsIEFOLlJNdWx0LCBmaHMuX3BvbHkpCisrICAgICAgICAgICAgICAg IGZtcHpfcG9seV9hZGQoZmhzLl9wb2x5LCBBTi5MTXVsdCwgQU4uUk11bHQpCisgICAgICAgICAg ICAgICAgIGdvdF9yZXN1bHQgPSBUcnVlCisgCisgZGVmIGhpbGJlcnRfcG9pbmNhcmVfc2VyaWVz KEksIGdyYWRpbmc9Tm9uZSk6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlh bC9sYXVyZW50X3BvbHlub21pYWwucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9sYXVy ZW50X3BvbHlub21pYWwucHhkCitpbmRleCAzNjQ4ZDZkMWVkMS4uOGU5MTA3YWViNDcgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL2xhdXJlbnRfcG9seW5vbWlhbC5weGQK KysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvbGF1cmVudF9wb2x5bm9taWFsLnB4ZAor QEAgLTEyLDYgKzEyLDYgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbChDb21tdXRhdGl2 ZUFsZ2VicmFFbGVtZW50KToKKyBjZGVmIGNsYXNzIExhdXJlbnRQb2x5bm9taWFsX3VuaXZhcmlh dGUoTGF1cmVudFBvbHlub21pYWwpOgorICAgICBjZGVmIE1vZHVsZUVsZW1lbnQgX191CisgICAg IGNkZWYgbG9uZyBfX24KKy0gICAgY3BkZWYgX19ub3JtYWxpemUoc2VsZikKKysgICAgY3BkZWYg X25vcm1hbGl6ZShzZWxmKQorICAgICBjcGRlZiBfdW5zYWZlX211dGF0ZShzZWxmLCBpLCB2YWx1 ZSkKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL2xhdXJlbnRfcG9s eW5vbWlhbC5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL2xhdXJlbnRfcG9seW5vbWlh bC5weXgKK2luZGV4IDRiZTI0NmM2Njg4Li5jZDc5OTk2ZWVkNyAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL3JpbmdzL3BvbHlub21pYWwvbGF1cmVudF9wb2x5bm9taWFsLnB5eAorKysrIGIvc3JjL3Nh Z2UvcmluZ3MvcG9seW5vbWlhbC9sYXVyZW50X3BvbHlub21pYWwucHl4CitAQCAtMzY2LDcgKzM2 Niw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZShMYXVyZW50UG9s eW5vbWlhbCk6CisgICAgICAgICAjIHNlbGYgaXMgdGhhdCB0Xm4gKiB1OgorICAgICAgICAgc2Vs Zi5fX3UgPSBmCisgICAgICAgICBzZWxmLl9fbiA9IG4KKy0gICAgICAgIHNlbGYuX19ub3JtYWxp emUoKQorKyAgICAgICAgc2VsZi5fbm9ybWFsaXplKCkKKyAKKyAgICAgZGVmIF9fcmVkdWNlX18o c2VsZik6CisgICAgICAgICAiIiIKK0BAIC01MzEsNyArNTMxLDcgQEAgY2RlZiBjbGFzcyBMYXVy ZW50UG9seW5vbWlhbF91bml2YXJpYXRlKExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAgICAgICAg ICB1ID0gdS5tYXBfY29lZmZpY2llbnRzKGJhc2VfbWFwKQorICAgICAgICAgcmV0dXJuIGNvZG9t YWluKHUoeCkgKiB4KipzZWxmLl9fbikKKyAKKy0gICAgY3BkZWYgX19ub3JtYWxpemUoc2VsZik6 CisrICAgIGNwZGVmIF9ub3JtYWxpemUoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBB IExhdXJlbnQgc2VyaWVzIGlzIGEgcGFpciBgKHUodCksIG4pYCwgd2hlcmUgZWl0aGVyIGB1ID0g MGAKKyAgICAgICAgICh0byBzb21lIHByZWNpc2lvbikgb3IgYHVgIGlzIGEgdW5pdC4gVGhpcyBw YWlyIGNvcnJlc3BvbmRzIHRvCitAQCAtNzYzLDcgKzc2Myw3IEBAIGNkZWYgY2xhc3MgTGF1cmVu dFBvbHlub21pYWxfdW5pdmFyaWF0ZShMYXVyZW50UG9seW5vbWlhbCk6CisgICAgICAgICAgICAg cmV0ID0gPExhdXJlbnRQb2x5bm9taWFsX3VuaXZhcmlhdGU+IHNlbGYuX25ld19jKCkKKyAgICAg ICAgICAgICByZXQuX191ID0gZgorICAgICAgICAgICAgIHJldC5fX24gPSBzZWxmLl9fbgorLSAg ICAgICAgICAgIHJldC5fX25vcm1hbGl6ZSgpCisrICAgICAgICAgICAgcmV0Ll9ub3JtYWxpemUo KQorICAgICAgICAgICAgIHJldHVybiByZXQKKyAKKyAgICAgICAgIHJldHVybiBzZWxmLl9fdVtp IC0gc2VsZi5fX25dCitAQCAtOTE5LDcgKzkxOSw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlu b21pYWxfdW5pdmFyaWF0ZShMYXVyZW50UG9seW5vbWlhbCk6CisgICAgICAgICAgICAgICAgIFIg PSBzZWxmLl9wYXJlbnQuYmFzZV9yaW5nKCkKKyAgICAgICAgICAgICAgICAgY29lZmZzID0gW3Zh bHVlXSArIFtSLnplcm8oKSBmb3IgXyBpbiByYW5nZSgxLC1qKV0gKyBzZWxmLl9fdS5saXN0KCkK KyAgICAgICAgICAgICAgICAgc2VsZi5fX3UgPSBzZWxmLl9fdS5fcGFyZW50KGNvZWZmcykKKy0g ICAgICAgIHNlbGYuX19ub3JtYWxpemUoKQorKyAgICAgICAgc2VsZi5fbm9ybWFsaXplKCkKKyAK KyAgICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHRfbSk6CisgICAgICAgICAiIiIKK0BAIC05NzIs NyArOTcyLDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRlKExhdXJl bnRQb2x5bm9taWFsKToKKyAgICAgICAgIHJldCA9IDxMYXVyZW50UG9seW5vbWlhbF91bml2YXJp YXRlPiBzZWxmLl9uZXdfYygpCisgICAgICAgICByZXQuX191ID0gPE1vZHVsZUVsZW1lbnQ+IChm MSArIGYyKQorICAgICAgICAgcmV0Ll9fbiA9IG0KKy0gICAgICAgIHJldC5fX25vcm1hbGl6ZSgp CisrICAgICAgICByZXQuX25vcm1hbGl6ZSgpCisgICAgICAgICByZXR1cm4gcmV0CisgCisgICAg IGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0X20pOgorQEAgLTEwMTIsNyArMTAxMiw3IEBAIGNkZWYg Y2xhc3MgTGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZShMYXVyZW50UG9seW5vbWlhbCk6Cisg ICAgICAgICByZXQgPSA8TGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZT4gc2VsZi5fbmV3X2Mo KQorICAgICAgICAgcmV0Ll9fdSA9IDxNb2R1bGVFbGVtZW50PiAoZjEgLSBmMikKKyAgICAgICAg IHJldC5fX24gPSBtCistICAgICAgICByZXQuX19ub3JtYWxpemUoKQorKyAgICAgICAgcmV0Ll9u b3JtYWxpemUoKQorICAgICAgICAgcmV0dXJuIHJldAorIAorICAgICBkZWYgZGVncmVlKHNlbGYp OgorQEAgLTEwNjMsNyArMTA2Myw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfdW5p dmFyaWF0ZShMYXVyZW50UG9seW5vbWlhbCk6CisgICAgICAgICByZXQgPSA8TGF1cmVudFBvbHlu b21pYWxfdW5pdmFyaWF0ZT4gc2VsZi5fbmV3X2MoKQorICAgICAgICAgcmV0Ll9fdSA9IDxNb2R1 bGVFbGVtZW50PiAoc2VsZi5fX3UgKiByaWdodC5fX3UpCisgICAgICAgICByZXQuX19uID0gc2Vs Zi5fX24gKyByaWdodC5fX24KKy0gICAgICAgIHJldC5fX25vcm1hbGl6ZSgpCisrICAgICAgICBy ZXQuX25vcm1hbGl6ZSgpCisgICAgICAgICByZXR1cm4gcmV0CisgCisgICAgIGNwZGVmIF9ybXVs XyhzZWxmLCBFbGVtZW50IGMpOgorQEAgLTEwNzksNyArMTA3OSw3IEBAIGNkZWYgY2xhc3MgTGF1 cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZShMYXVyZW50UG9seW5vbWlhbCk6CisgICAgICAgICBy ZXQgPSA8TGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZT4gc2VsZi5fbmV3X2MoKQorICAgICAg ICAgcmV0Ll9fdSA9IDxNb2R1bGVFbGVtZW50PiBzZWxmLl9fdS5fcm11bF8oYykKKyAgICAgICAg IHJldC5fX24gPSBzZWxmLl9fbgorLSAgICAgICAgcmV0Ll9fbm9ybWFsaXplKCkKKysgICAgICAg IHJldC5fbm9ybWFsaXplKCkKKyAgICAgICAgIHJldHVybiByZXQKKyAKKyAgICAgY3BkZWYgX2xt dWxfKHNlbGYsIEVsZW1lbnQgYyk6CitAQCAtMTA5NSw3ICsxMDk1LDcgQEAgY2RlZiBjbGFzcyBM YXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRlKExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAgICAg IHJldCA9IDxMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRlPiBzZWxmLl9uZXdfYygpCisgICAg ICAgICByZXQuX191ID0gPE1vZHVsZUVsZW1lbnQ+IHNlbGYuX191Ll9sbXVsXyhjKQorICAgICAg ICAgcmV0Ll9fbiA9IHNlbGYuX19uCistICAgICAgICByZXQuX19ub3JtYWxpemUoKQorKyAgICAg ICAgcmV0Ll9ub3JtYWxpemUoKQorICAgICAgICAgcmV0dXJuIHJldAorIAorICAgICBkZWYgaXNf bW9ub21pYWwoc2VsZik6CitAQCAtMTE3NSw3ICsxMTc1LDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50 UG9seW5vbWlhbF91bml2YXJpYXRlKExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAgICAgIHJldCA9 IDxMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRlPiBzZWxmLl9uZXdfYygpCisgICAgICAgICBy ZXQuX191ID0gPE1vZHVsZUVsZW1lbnQ+IChzZWxmLl9fdSAvLyByaWdodC5fX3UpCisgICAgICAg ICByZXQuX19uID0gc2VsZi5fX24gLSByaWdodC5fX24KKy0gICAgICAgIHJldC5fX25vcm1hbGl6 ZSgpCisrICAgICAgICByZXQuX25vcm1hbGl6ZSgpCisgICAgICAgICByZXR1cm4gcmV0CisgCisg ICAgIGRlZiBzaGlmdChzZWxmLCBrKToKK0BAIC0xMjg3LDcgKzEyODcsNyBAQCBjZGVmIGNsYXNz IExhdXJlbnRQb2x5bm9taWFsX3VuaXZhcmlhdGUoTGF1cmVudFBvbHlub21pYWwpOgorICAgICAg ICAgICAgIGlmIHNlbGYuX191LmlzX3VuaXQoKToKKyAgICAgICAgICAgICAgICAgcmV0Ll9fdSA9 IHNlbGYuX191LmludmVyc2Vfb2ZfdW5pdCgpCisgICAgICAgICAgICAgICAgIHJldC5fX24gPSAt c2VsZi5fX24KKy0gICAgICAgICAgICAgICAgcmV0Ll9fbm9ybWFsaXplKCkKKysgICAgICAgICAg ICAgICAgcmV0Ll9ub3JtYWxpemUoKQorICAgICAgICAgICAgICAgICByZXR1cm4gcmV0CisgICAg ICAgICAgICAgIyBFbmxhcmdlIHRoZSByaW5nIHNvIHdlIGNhbiBkaXZpZGUgYnkgdGhlIGNvZWZm aWNpZW50CisgICAgICAgICAgICAgUiA9IHNlbGYuX3BhcmVudC5iYXNlX3JpbmcoKS5mcmFjdGlv bl9maWVsZCgpCitAQCAtMTM2Miw3ICsxMzYyLDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5v bWlhbF91bml2YXJpYXRlKExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAgICAgIHJldCA9IDxMYXVy ZW50UG9seW5vbWlhbF91bml2YXJpYXRlPiBzZWxmLl9uZXdfYygpCisgICAgICAgICByZXQuX191 ID0gc2VsZi5fX3UuZ2NkKGIuX191KQorICAgICAgICAgcmV0Ll9fbiA9IG1pbihzZWxmLl9fbiwg Yi5fX24pCistICAgICAgICByZXQuX19ub3JtYWxpemUoKQorKyAgICAgICAgcmV0Ll9ub3JtYWxp emUoKQorICAgICAgICAgcmV0dXJuIHJldAorIAorICAgICBAY29lcmNlX2Jpbm9wCitAQCAtMTQw OCwxMSArMTQwOCwxMSBAQCBjZGVmIGNsYXNzIExhdXJlbnRQb2x5bm9taWFsX3VuaXZhcmlhdGUo TGF1cmVudFBvbHlub21pYWwpOgorICAgICAgICAgcWwgPSA8TGF1cmVudFBvbHlub21pYWxfdW5p dmFyaWF0ZT4gc2VsZi5fbmV3X2MoKQorICAgICAgICAgcWwuX191ID0gPE1vZHVsZUVsZW1lbnQ+ IHEKKyAgICAgICAgIHFsLl9fbiA9IHNlbGYuX19uIC0gcmlnaHQuX19uCistICAgICAgICBxbC5f X25vcm1hbGl6ZSgpCisrICAgICAgICBxbC5fbm9ybWFsaXplKCkKKyAgICAgICAgIHFyID0gPExh dXJlbnRQb2x5bm9taWFsX3VuaXZhcmlhdGU+IHNlbGYuX25ld19jKCkKKyAgICAgICAgIHFyLl9f dSA9IDxNb2R1bGVFbGVtZW50PiByCisgICAgICAgICBxci5fX24gPSBzZWxmLl9fbgorLSAgICAg ICAgcXIuX19ub3JtYWxpemUoKQorKyAgICAgICAgcXIuX25vcm1hbGl6ZSgpCisgICAgICAgICBy ZXR1cm4gcWwsIHFyCisgCisgICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCByaWdodF9yLCBpbnQg b3ApOgorQEAgLTE1MTksNyArMTUxOSw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxf dW5pdmFyaWF0ZShMYXVyZW50UG9seW5vbWlhbCk6CisgICAgICAgICByZXQgPSA8TGF1cmVudFBv bHlub21pYWxfdW5pdmFyaWF0ZT4gc2VsZi5fbmV3X2MoKQorICAgICAgICAgcmV0Ll9fdSA9IDxN b2R1bGVFbGVtZW50PiBzZWxmLl9fdS50cnVuY2F0ZShuIC0gc2VsZi5fX24pCisgICAgICAgICBy ZXQuX19uID0gc2VsZi5fX24KKy0gICAgICAgIHJldC5fX25vcm1hbGl6ZSgpCisrICAgICAgICBy ZXQuX25vcm1hbGl6ZSgpCisgICAgICAgICByZXR1cm4gcmV0CisgCisgICAgIGRlZiB2YXJpYWJs ZV9uYW1lKHNlbGYpOgorQEAgLTE3NzcsNyArMTc3Nyw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBv bHlub21pYWxfdW5pdmFyaWF0ZShMYXVyZW50UG9seW5vbWlhbCk6CisgICAgICAgICAgICAgICAg IHJldCA9IDxMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRlPiBzZWxmLl9uZXdfYygpCisgICAg ICAgICAgICAgICAgIHJldC5fX3UgPSA8TW9kdWxlRWxlbWVudD4gc2VsZi5fcGFyZW50Ll9SKHUp CisgICAgICAgICAgICAgICAgIHJldC5fX24gPSBzZWxmLl9fbgorLSAgICAgICAgICAgICAgICBy ZXQuX19ub3JtYWxpemUoKQorKyAgICAgICAgICAgICAgICByZXQuX25vcm1hbGl6ZSgpCisgICAg ICAgICAgICAgICAgIHJldHVybiByZXQKKyAgICAgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJy b3I6CisgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ2Nhbm5vdCBkaWZmZXJlbnRp YXRlIHdpdGggcmVzcGVjdCB0byB7fScuZm9ybWF0KHZhcikpCitAQCAtMTc5Miw3ICsxNzkyLDcg QEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRlKExhdXJlbnRQb2x5bm9t aWFsKToKKyAgICAgICAgIHJldCA9IDxMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRlPiBzZWxm Ll9uZXdfYygpCisgICAgICAgICByZXQuX191ID0gPE1vZHVsZUVsZW1lbnQ+IHNlbGYuX3BhcmVu dC5fUihhKQorICAgICAgICAgcmV0Ll9fbiA9IHNlbGYuX19uIC0gMQorLSAgICAgICAgcmV0Ll9f bm9ybWFsaXplKCkKKysgICAgICAgIHJldC5fbm9ybWFsaXplKCkKKyAgICAgICAgIHJldHVybiBy ZXQKKyAKKyAgICAgZGVmIGludGVncmFsKHNlbGYpOgorQEAgLTE4NTcsNyArMTg1Nyw3IEBAIGNk ZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZShMYXVyZW50UG9seW5vbWlhbCk6 CisgICAgICAgICByZXQgPSA8TGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZT4gc2VsZi5fbmV3 X2MoKQorICAgICAgICAgcmV0Ll9fdSA9IDxNb2R1bGVFbGVtZW50PiB1CisgICAgICAgICByZXQu X19uID0gbiArIDEKKy0gICAgICAgIHJldC5fX25vcm1hbGl6ZSgpCisrICAgICAgICByZXQuX25v cm1hbGl6ZSgpCisgICAgICAgICByZXR1cm4gcmV0CisgCisgICAgIGRlZiBfX2NhbGxfXyhzZWxm LCAqeCwgKiprd2RzKToKK0BAIC0xOTE5LDE0ICsxOTE5LDE0IEBAIGNkZWYgY2xhc3MgTGF1cmVu dFBvbHlub21pYWxfdW5pdmFyaWF0ZShMYXVyZW50UG9seW5vbWlhbCk6CisgICAgICAgICB1ID0g PExhdXJlbnRQb2x5bm9taWFsX3VuaXZhcmlhdGU+IHNlbGYuX25ld19jKCkKKyAgICAgICAgIHUu X191ID0gcGYudW5pdCgpCisgICAgICAgICB1Ll9fbiA9IHNlbGYuX19uCistICAgICAgICB1Ll9f bm9ybWFsaXplKCkKKysgICAgICAgIHUuX25vcm1hbGl6ZSgpCisgCisgICAgICAgICBmID0gW10K KyAgICAgICAgIGZvciB0IGluIHBmOgorICAgICAgICAgICAgIGQgPSA8TGF1cmVudFBvbHlub21p YWxfdW5pdmFyaWF0ZT4gc2VsZi5fbmV3X2MoKQorICAgICAgICAgICAgIGQuX191ID0gdFswXQor ICAgICAgICAgICAgIGQuX19uID0gMAorLSAgICAgICAgICAgIGQuX19ub3JtYWxpemUoKQorKyAg ICAgICAgICAgIGQuX25vcm1hbGl6ZSgpCisgICAgICAgICAgICAgaWYgZC5pc191bml0KCk6Cisg ICAgICAgICAgICAgICAgIHUgKj0gZCAqKiB0WzFdCisgICAgICAgICAgICAgZWxzZToKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL211bHRpX3BvbHlub21pYWxfbGlic2lu Z3VsYXIucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9tdWx0aV9wb2x5bm9taWFsX2xp YnNpbmd1bGFyLnB5eAoraW5kZXggZDc5NmI3ZjgxNjkuLjgzYzc5YzM5ODQzIDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9tdWx0aV9wb2x5bm9taWFsX2xpYnNpbmd1bGFy LnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9tdWx0aV9wb2x5bm9taWFsX2xp YnNpbmd1bGFyLnB5eAorQEAgLTM3NSw3ICszNzUsNyBAQCBjZGVmIGNsYXNzIE1Qb2x5bm9taWFs UmluZ19saWJzaW5ndWxhcihNUG9seW5vbWlhbFJpbmdfYmFzZSk6CisgICAgICAgICAgICAgLi4u CisgICAgICAgICAgICAgTm90SW1wbGVtZW50ZWRFcnJvcjogcG9seW5vbWlhbHMgaW4gLTEgdmFy aWFibGVzIGFyZSBub3Qgc3VwcG9ydGVkIGluIFNpbmd1bGFyCisgICAgICAgICAiIiIKKy0gICAg ICAgIHNlbGYuX19uZ2VucyA9IG4KKysgICAgICAgIHNlbGYuX25nZW5zID0gbgorICAgICAgICAg c2VsZi5fcmluZyA9IHNpbmd1bGFyX3JpbmdfbmV3KGJhc2VfcmluZywgbiwgbmFtZXMsIG9yZGVy KQorICAgICAgICAgc2VsZi5femVyb19lbGVtZW50ID0gbmV3X01QKHNlbGYsIE5VTEwpCisgICAg ICAgICBjZGVmIE1Qb2x5bm9taWFsX2xpYnNpbmd1bGFyIG9uZSA9IG5ld19NUChzZWxmLCBwX0lT ZXQoMSwgc2VsZi5fcmluZykpCitAQCAtMTAxOSw3ICsxMDE5LDcgQEAgY2RlZiBjbGFzcyBNUG9s eW5vbWlhbFJpbmdfbGlic2luZ3VsYXIoTVBvbHlub21pYWxSaW5nX2Jhc2UpOgorICAgICAgICAg ICAgIE11bHRpdmFyaWF0ZSBQb2x5bm9taWFsIFJpbmcgaW4geCwgeSBvdmVyIFJhdGlvbmFsIEZp ZWxkCisgICAgICAgICAiIiIKKyAgICAgICAgIHZhcnN0ciA9ICIsICIuam9pbihjaGFyX3RvX3N0 cihyUmluZ1ZhcihpLHNlbGYuX3JpbmcpKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZv ciBpIGluIHJhbmdlKHNlbGYuX19uZ2VucykpCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg Zm9yIGkgaW4gcmFuZ2Uoc2VsZi5fbmdlbnMpKQorICAgICAgICAgcmV0dXJuICJNdWx0aXZhcmlh dGUgUG9seW5vbWlhbCBSaW5nIGluICVzIG92ZXIgJXMiICUgKHZhcnN0ciwgc2VsZi5iYXNlX3Jp bmcoKSkKKyAKKyAgICAgZGVmIG5nZW5zKHNlbGYpOgorQEAgLTEwMzcsNyArMTAzNyw3IEBAIGNk ZWYgY2xhc3MgTVBvbHlub21pYWxSaW5nX2xpYnNpbmd1bGFyKE1Qb2x5bm9taWFsUmluZ19iYXNl KToKKyAgICAgICAgICAgICBzYWdlOiBQLm5nZW5zKCkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBuZWVkcyBzYWdlLnJpbmdzLmZp bml0ZV9yaW5ncworICAgICAgICAgICAgIDEwMDAKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0 dXJuIGludChzZWxmLl9fbmdlbnMpCisrICAgICAgICByZXR1cm4gaW50KHNlbGYuX25nZW5zKQor IAorICAgICBkZWYgZ2VuKHNlbGYsIGludCBuPTApOgorICAgICAgICAgIiIiCitAQCAtMTA2NSw3 ICsxMDY1LDcgQEAgY2RlZiBjbGFzcyBNUG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIoTVBvbHlu b21pYWxSaW5nX2Jhc2UpOgorICAgICAgICAgY2RlZiBwb2x5ICpfcAorICAgICAgICAgY2RlZiBy aW5nICpfcmluZyA9IHNlbGYuX3JpbmcKKyAKKy0gICAgICAgIGlmIG4gPCAwIG9yIG4gPj0gc2Vs Zi5fX25nZW5zOgorKyAgICAgICAgaWYgbiA8IDAgb3IgbiA+PSBzZWxmLl9uZ2VuczoKKyAgICAg ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJHZW5lcmF0b3Igbm90IGRlZmluZWQuIikKKyAKKyAg ICAgICAgIHJDaGFuZ2VDdXJyUmluZyhfcmluZykKK0BAIC0xNDk0LDcgKzE0OTQsNyBAQCBjZGVm IGNsYXNzIE1Qb2x5bm9taWFsUmluZ19saWJzaW5ndWxhcihNUG9seW5vbWlhbFJpbmdfYmFzZSk6 CisgICAgICAgICByZXR1cm4gdW5waWNrbGVfTVBvbHlub21pYWxSaW5nX2xpYnNpbmd1bGFyLCBc CisgICAgICAgICAgICAgKHNlbGYuYmFzZV9yaW5nKCksIHNlbGYudmFyaWFibGVfbmFtZXMoKSwg c2VsZi50ZXJtX29yZGVyKCkpCisgCistICAgIGRlZiBfX3RlbXBvcmFyaWx5X2NoYW5nZV9uYW1l cyhzZWxmLCBuYW1lcywgbGF0ZXhfbmFtZXMpOgorKyAgICBkZWYgX3RlbXBvcmFyaWx5X2NoYW5n ZV9uYW1lcyhzZWxmLCBuYW1lcywgbGF0ZXhfbmFtZXMpOgorICAgICAgICAgIiIiCisgICAgICAg ICBUaGlzIGlzIHVzZWQgYnkgdGhlIHZhcmlhYmxlIG5hbWVzIGNvbnRleHQgbWFuYWdlci4KKyAK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL211bHRpX3BvbHlub21pYWxf cmluZ19iYXNlLnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlh bF9yaW5nX2Jhc2UucHhkCitpbmRleCBmYzgxY2Y2ZDI5OC4uZWI2ZjhiNzA5MTcgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL211bHRpX3BvbHlub21pYWxfcmluZ19iYXNl LnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9tdWx0aV9wb2x5bm9taWFsX3Jp bmdfYmFzZS5weGQKK0BAIC0yLDggKzIsOCBAQCBjaW1wb3J0IHNhZ2UucmluZ3MucmluZworIGZy b20gc2FnZS5zdHJ1Y3R1cmUucGFyZW50IGNpbXBvcnQgUGFyZW50CisgCisgY2RlZiBjbGFzcyBN UG9seW5vbWlhbFJpbmdfYmFzZShzYWdlLnJpbmdzLnJpbmcuQ29tbXV0YXRpdmVSaW5nKToKKy0g ICAgY2RlZiBvYmplY3QgX19uZ2VucworLSAgICBjZGVmIG9iamVjdCBfX3Rlcm1fb3JkZXIKKysg ICAgY2RlZiBvYmplY3QgX25nZW5zCisrICAgIGNkZWYgb2JqZWN0IF90ZXJtX29yZGVyCisgICAg IGNkZWYgcHVibGljIG9iamVjdCBfaGFzX3Npbmd1bGFyCisgICAgIGNkZWYgcHVibGljIG9iamVj dCBfbWFnbWFfZ2VucworICAgICBjZGVmIHB1YmxpYyBkaWN0IF9tYWdtYV9jYWNoZQorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlhbF9yaW5nX2Jh c2UucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9tdWx0aV9wb2x5bm9taWFsX3Jpbmdf YmFzZS5weXgKK2luZGV4IDFkM2ZiYzYwOTQ0Li5jOGY2NjUwOGNjMiAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL3JpbmdzL3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlhbF9yaW5nX2Jhc2UucHl4Cisr KysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL211bHRpX3BvbHlub21pYWxfcmluZ19iYXNl LnB5eAorQEAgLTgwLDggKzgwLDggQEAgY2RlZiBjbGFzcyBNUG9seW5vbWlhbFJpbmdfYmFzZShz YWdlLnJpbmdzLnJpbmcuQ29tbXV0YXRpdmVSaW5nKToKKyAgICAgICAgICAgICByYWlzZSBWYWx1 ZUVycm9yKCJNdWx0aXZhcmlhdGUgUG9seW5vbWlhbCBSaW5ncyBtdXN0ICIKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJoYXZlIG1vcmUgdGhhbiAwIHZhcmlhYmxlcy4iKQorICAgICAg ICAgb3JkZXIgPSBUZXJtT3JkZXIob3JkZXIsIG4pCistICAgICAgICBzZWxmLl9fbmdlbnMgPSBu CistICAgICAgICBzZWxmLl9fdGVybV9vcmRlciA9IG9yZGVyCisrICAgICAgICBzZWxmLl9uZ2Vu cyA9IG4KKysgICAgICAgIHNlbGYuX3Rlcm1fb3JkZXIgPSBvcmRlcgorICAgICAgICAgc2VsZi5f aGFzX3Npbmd1bGFyID0gRmFsc2UgICMgY2Fubm90IGNvbnZlcnQgdG8gU2luZ3VsYXIgYnkgZGVm YXVsdAorICAgICAgICAgc2VsZi5fbWFnbWFfY2FjaGUgPSB7fQorICAgICAgICAgIyBSaW5nLl9f aW5pdF9fIGFscmVhZHkgZG9lcyBhc3NpZ24gdGhlIG5hbWVzLgorQEAgLTYzOSwxMiArNjM5LDEy IEBAIGNkZWYgY2xhc3MgTVBvbHlub21pYWxSaW5nX2Jhc2Uoc2FnZS5yaW5ncy5yaW5nLkNvbW11 dGF0aXZlUmluZyk6CisgICAgICAgICBsZnQgPSA8TVBvbHlub21pYWxSaW5nX2Jhc2U+bGVmdAor ICAgICAgICAgb3RoZXIgPSA8TVBvbHlub21pYWxSaW5nX2Jhc2U+cmlnaHQKKyAKKy0gICAgICAg IGx4ID0gKGxmdC5iYXNlX3JpbmcoKSwgbGZ0Ll9fbmdlbnMsCisrICAgICAgICBseCA9IChsZnQu YmFzZV9yaW5nKCksIGxmdC5fbmdlbnMsCisgICAgICAgICAgICAgICBsZnQudmFyaWFibGVfbmFt ZXMoKSwKKy0gICAgICAgICAgICAgIGxmdC5fX3Rlcm1fb3JkZXIpCistICAgICAgICByeCA9IChv dGhlci5iYXNlX3JpbmcoKSwgb3RoZXIuX19uZ2VucywKKysgICAgICAgICAgICAgIGxmdC5fdGVy bV9vcmRlcikKKysgICAgICAgIHJ4ID0gKG90aGVyLmJhc2VfcmluZygpLCBvdGhlci5fbmdlbnMs CisgICAgICAgICAgICAgICBvdGhlci52YXJpYWJsZV9uYW1lcygpLAorLSAgICAgICAgICAgICAg b3RoZXIuX190ZXJtX29yZGVyKQorKyAgICAgICAgICAgICAgb3RoZXIuX3Rlcm1fb3JkZXIpCisg ICAgICAgICByZXR1cm4gcmljaGNtcChseCwgcngsIG9wKQorIAorICAgICBkZWYgX3JlcHJfKHNl bGYpOgorQEAgLTg0OSw3ICs4NDksNyBAQCBjZGVmIGNsYXNzIE1Qb2x5bm9taWFsUmluZ19iYXNl KHNhZ2UucmluZ3MucmluZy5Db21tdXRhdGl2ZVJpbmcpOgorICAgICAgICAgcmV0dXJuIEZhbHNl CisgCisgICAgIGRlZiB0ZXJtX29yZGVyKHNlbGYpOgorLSAgICAgICAgcmV0dXJuIHNlbGYuX190 ZXJtX29yZGVyCisrICAgICAgICByZXR1cm4gc2VsZi5fdGVybV9vcmRlcgorIAorICAgICBkZWYg Y2hhcmFjdGVyaXN0aWMoc2VsZik6CisgICAgICAgICAiIiIKK0BAIC04NjcsNyArODY3LDcgQEAg Y2RlZiBjbGFzcyBNUG9seW5vbWlhbFJpbmdfYmFzZShzYWdlLnJpbmdzLnJpbmcuQ29tbXV0YXRp dmVSaW5nKToKKyAgICAgICAgIHJldHVybiBzZWxmLmJhc2VfcmluZygpLmNoYXJhY3RlcmlzdGlj KCkKKyAKKyAgICAgZGVmIGdlbihzZWxmLCBuPTApOgorLSAgICAgICAgaWYgbiA8IDAgb3IgbiA+ PSBzZWxmLl9fbmdlbnM6CisrICAgICAgICBpZiBuIDwgMCBvciBuID49IHNlbGYuX25nZW5zOgor ICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkdlbmVyYXRvciBub3QgZGVmaW5lZC4iKQor ICAgICAgICAgcmV0dXJuIHNlbGYuX2dlbnNbaW50KG4pXQorIAorQEAgLTkyNyw3ICs5MjcsNyBA QCBjZGVmIGNsYXNzIE1Qb2x5bm9taWFsUmluZ19iYXNlKHNhZ2UucmluZ3MucmluZy5Db21tdXRh dGl2ZVJpbmcpOgorICAgICAgICAgcmV0dXJuIHNlbGYuYmFzZV9yaW5nKCkua3J1bGxfZGltZW5z aW9uKCkgKyBzZWxmLm5nZW5zKCkKKyAKKyAgICAgZGVmIG5nZW5zKHNlbGYpOgorLSAgICAgICAg cmV0dXJuIHNlbGYuX19uZ2VucworKyAgICAgICAgcmV0dXJuIHNlbGYuX25nZW5zCisgCisgICAg IGRlZiBfbW9ub21pYWxfb3JkZXJfZnVuY3Rpb24oc2VsZik6CisgICAgICAgICByYWlzZSBOb3RJ bXBsZW1lbnRlZEVycm9yCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9v cmVfcG9seW5vbWlhbF9lbGVtZW50LnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvb3Jl X3BvbHlub21pYWxfZWxlbWVudC5weGQKK2luZGV4IDNhM2ZlMGEwZDU0Li5hYTM2MTEyYWI5MCAx MDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvb3JlX3BvbHlub21pYWxfZWxl bWVudC5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvb3JlX3BvbHlub21pYWxf ZWxlbWVudC5weGQKK0BAIC0zMyw3ICszMyw3IEBAIGNkZWYgdm9pZCBsbXVsX2dlbihsaXN0IEEs IE1vcnBoaXNtIG0sIGQpCisgY2RlZiBjbGFzcyBPcmVQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2Uo T3JlUG9seW5vbWlhbCk6CisgICAgIGNkZWYgbGlzdCBfY29lZmZzCisgCistICAgIGNkZWYgdm9p ZCBfX25vcm1hbGl6ZShzZWxmKQorKyAgICBjZGVmIHZvaWQgX25vcm1hbGl6ZShzZWxmKQorICAg ICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikKKyAgICAgY2RlZiBsaXN0IF9tdWxfbGlzdChzZWxm LCBsaXN0IEEpCisgICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKQorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL3JpbmdzL3BvbHlub21pYWwvb3JlX3BvbHlub21pYWxfZWxlbWVudC5weXggYi9zcmMv c2FnZS9yaW5ncy9wb2x5bm9taWFsL29yZV9wb2x5bm9taWFsX2VsZW1lbnQucHl4CitpbmRleCBk NjdjNjNiNmJlOC4uYmUxNTRiYThiMWEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5 bm9taWFsL29yZV9wb2x5bm9taWFsX2VsZW1lbnQucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9w b2x5bm9taWFsL29yZV9wb2x5bm9taWFsX2VsZW1lbnQucHl4CitAQCAtMjI2OSw3ICsyMjY5LDcg QEAgY2RlZiBjbGFzcyBPcmVQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoT3JlUG9seW5vbWlhbCk6 CisgICAgICAgICBpZiBpc2luc3RhbmNlKHgsIGxpc3QpOgorICAgICAgICAgICAgIGlmIGNoZWNr OgorICAgICAgICAgICAgICAgICBzZWxmLl9jb2VmZnMgPSBbUih0KSBmb3IgdCBpbiB4XQorLSAg ICAgICAgICAgICAgICBzZWxmLl9fbm9ybWFsaXplKCkKKysgICAgICAgICAgICAgICAgc2VsZi5f bm9ybWFsaXplKCkKKyAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICBzZWxmLl9j b2VmZnMgPSB4CisgICAgICAgICAgICAgcmV0dXJuCitAQCAtMjI4OCw3ICsyMjg4LDcgQEAgY2Rl ZiBjbGFzcyBPcmVQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoT3JlUG9seW5vbWlhbCk6CisgICAg ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgc2VsZi5fY29lZmZzID0gW1IoYSwgKipr d2RzKSBmb3IgYSBpbiB4Lmxpc3QoKV0KKyAgICAgICAgICAgICAgICAgaWYgY2hlY2s6CistICAg ICAgICAgICAgICAgICAgICBzZWxmLl9fbm9ybWFsaXplKCkKKysgICAgICAgICAgICAgICAgICAg IHNlbGYuX25vcm1hbGl6ZSgpCisgICAgICAgICAgICAgICAgIHJldHVybgorIAorICAgICAgICAg ZWxpZiBpc2luc3RhbmNlKHgsIGludCkgYW5kIHggPT0gMDoKK0BAIC0yMzAyLDcgKzIzMDIsNyBA QCBjZGVmIGNsYXNzIE9yZVBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShPcmVQb2x5bm9taWFsKToK KyAgICAgICAgICAgICB4ID0gW3hdCisgICAgICAgICBpZiBjaGVjazoKKyAgICAgICAgICAgICBz ZWxmLl9jb2VmZnMgPSBbUih6LCAqKmt3ZHMpIGZvciB6IGluIHhdCistICAgICAgICAgICAgc2Vs Zi5fX25vcm1hbGl6ZSgpCisrICAgICAgICAgICAgc2VsZi5fbm9ybWFsaXplKCkKKyAgICAgICAg IGVsc2U6CisgICAgICAgICAgICAgc2VsZi5fY29lZmZzID0geAorIAorQEAgLTIzNzcsMTAgKzIz NzcsMTAgQEAgY2RlZiBjbGFzcyBPcmVQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoT3JlUG9seW5v bWlhbCk6CisgICAgICAgICBmLl9wYXJlbnQgPSBQCisgICAgICAgICBmLl9jb2VmZnMgPSBjb2Vm ZnMKKyAgICAgICAgIGlmIGNoZWNrOgorLSAgICAgICAgICAgIGYuX19ub3JtYWxpemUoKQorKyAg ICAgICAgICAgIGYuX25vcm1hbGl6ZSgpCisgICAgICAgICByZXR1cm4gZgorIAorLSAgICBjZGVm IHZvaWQgX19ub3JtYWxpemUoc2VsZik6CisrICAgIGNkZWYgdm9pZCBfbm9ybWFsaXplKHNlbGYp OgorICAgICAgICAgciIiIgorICAgICAgICAgUmVtb3ZlIGhpZ2hlciBvcmRlciBgMGAtY29lZmZp Y2llbnRzIGZyb20gdGhlIHJlcHJlc2VudGF0aW9uIG9mIGBgc2VsZmBgLgorIAorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcGJvcmkvcGJvcmkucHl4IGIvc3JjL3NhZ2Uv cmluZ3MvcG9seW5vbWlhbC9wYm9yaS9wYm9yaS5weXgKK2luZGV4IDA3Y2M2OTY0NzdhLi4zMTQx OTZmYWExNCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcGJvcmkvcGJv cmkucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3Bib3JpL3Bib3JpLnB5eAor QEAgLTU0Nyw3ICs1NDcsNyBAQCBjZGVmIGNsYXNzIEJvb2xlYW5Qb2x5bm9taWFsUmluZyhCb29s ZWFuUG9seW5vbWlhbFJpbmdfYmFzZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiB0 dXBsZShuZXdfQlBfZnJvbV9QQlZhcihzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuX3BicmluZy52YXJpYWJsZShzZWxmLnBiaW5kW2ldKSkKKy0gICAg ICAgICAgICAgICAgICAgICBmb3IgaSBpbiByYW5nZShzZWxmLl9fbmdlbnMpKQorKyAgICAgICAg ICAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKHNlbGYuX25nZW5zKSkKKyAKKyAgICAgZGVmIGNo YW5nZV9yaW5nKHNlbGYsIGJhc2VfcmluZz1Ob25lLCBuYW1lcz1Ob25lLCBvcmRlcj1Ob25lKToK KyAgICAgICAgICIiIgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcGx1 cmFsLnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcGx1cmFsLnB4ZAoraW5kZXggNDFk YjJhMTQ0ZTcuLmQzYTQ2ZjZhYTBkIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5v bWlhbC9wbHVyYWwucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BsdXJhbC5w eGQKK0BAIC0xMywxMCArMTMsMTAgQEAgY2RlZiBleHRlcm4gZnJvbSAqOgorICAgICBjdHlwZWRl ZiBsb25nIFB5X2hhc2hfdAorIAorIGNkZWYgY2xhc3MgTkNQb2x5bm9taWFsUmluZ19wbHVyYWwo UmluZyk6CistICAgIGNkZWYgb2JqZWN0IF9fbmdlbnMKKysgICAgY2RlZiBvYmplY3QgX25nZW5z CisgICAgIGNkZWYgb2JqZWN0IF9jCisgICAgIGNkZWYgb2JqZWN0IF9kCistICAgIGNkZWYgb2Jq ZWN0IF9fdGVybV9vcmRlcgorKyAgICBjZGVmIG9iamVjdCBfdGVybV9vcmRlcgorICAgICBjZGVm IHB1YmxpYyBvYmplY3QgX2hhc19zaW5ndWxhcgorICAgICBjZGVmIHB1YmxpYyBvYmplY3QgX21h Z21hX2dlbnMsIF9tYWdtYV9jYWNoZQorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3Bv bHlub21pYWwvcGx1cmFsLnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcGx1cmFsLnB5 eAoraW5kZXggYTY0N2Q2OGUwOGQuLmJjNDMyNjExYzg5IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv cmluZ3MvcG9seW5vbWlhbC9wbHVyYWwucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9t aWFsL3BsdXJhbC5weXgKK0BAIC0zMzYsOCArMzM2LDggQEAgY2RlZiBjbGFzcyBOQ1BvbHlub21p YWxSaW5nX3BsdXJhbChSaW5nKToKKyAgICAgICAgIHNlbGYuX3JpbmcgPSBzaW5ndWxhcl9yaW5n X3JlZmVyZW5jZShydy5fcmluZykKKyAgICAgICAgIHNlbGYuX3JpbmcuU2hvcnRPdXQgPSAwCisg CistICAgICAgICBzZWxmLl9fbmdlbnMgPSBuCistICAgICAgICBzZWxmLl9fdGVybV9vcmRlciA9 IG9yZGVyCisrICAgICAgICBzZWxmLl9uZ2VucyA9IG4KKysgICAgICAgIHNlbGYuX3Rlcm1fb3Jk ZXIgPSBvcmRlcgorIAorICAgICAgICAgUmluZy5fX2luaXRfXyhzZWxmLCBiYXNlX3JpbmcsIG5h bWVzLCBjYXRlZ29yeT1jYXRlZ29yeSkKKyAgICAgICAgIHNlbGYuX3BvcHVsYXRlX2NvZXJjaW9u X2xpc3RzXygpCitAQCAtNjczLDcgKzY3Myw3IEBAIGNkZWYgY2xhc3MgTkNQb2x5bm9taWFsUmlu Z19wbHVyYWwoUmluZyk6CisgICAgICAgICAgICAgc2FnZTogUC50ZXJtX29yZGVyKCkKKyAgICAg ICAgICAgICBEZWdyZWUgcmV2ZXJzZSBsZXhpY29ncmFwaGljIHRlcm0gb3JkZXIKKyAgICAgICAg ICIiIgorLSAgICAgICAgcmV0dXJuIHNlbGYuX190ZXJtX29yZGVyCisrICAgICAgICByZXR1cm4g c2VsZi5fdGVybV9vcmRlcgorIAorICAgICBkZWYgaXNfY29tbXV0YXRpdmUoc2VsZik6CisgICAg ICAgICAiIiIKK0BAIC03MjcsNyArNzI3LDcgQEAgY2RlZiBjbGFzcyBOQ1BvbHlub21pYWxSaW5n X3BsdXJhbChSaW5nKToKKyAgICAgICAgIGZyb20gc2FnZS5yZXBsLnJpY2hfb3V0cHV0LmJhY2tl bmRfYmFzZSBpbXBvcnQgQmFja2VuZEJhc2UKKyAgICAgICAgIGZyb20gc2FnZS5yZXBsLmRpc3Bs YXkucHJldHR5X3ByaW50IGltcG9ydCBTYWdlUHJldHR5UHJpbnRlcgorICAgICAgICAgdmFyc3Ry ID0gIiwgIi5qb2luKGNoYXJfdG9fc3RyKHJSaW5nVmFyKGksIHNlbGYuX3JpbmcpKQorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKHNlbGYuX19uZ2VucykpCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2Uoc2VsZi5fbmdlbnMpKQorICAg ICAgICAgYmFja2VuZCA9IEJhY2tlbmRCYXNlKCkKKyAgICAgICAgIHJlbGF0aW9ucyA9IGJhY2tl bmQuX2FwcGx5X3ByZXR0eV9wcmludGVyKFNhZ2VQcmV0dHlQcmludGVyLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWxhdGlvbnMoKSkK K0BAIC04MzAsNyArODMwLDcgQEAgY2RlZiBjbGFzcyBOQ1BvbHlub21pYWxSaW5nX3BsdXJhbChS aW5nKToKKyAgICAgICAgICAgICBzYWdlOiBQLm5nZW5zKCkKKyAgICAgICAgICAgICAzCisgICAg ICAgICAiIiIKKy0gICAgICAgIHJldHVybiBpbnQoc2VsZi5fX25nZW5zKQorKyAgICAgICAgcmV0 dXJuIGludChzZWxmLl9uZ2VucykKKyAKKyAgICAgZGVmIGdlbihzZWxmLCBpbnQgbj0wKToKKyAg ICAgICAgICIiIgorQEAgLTg1Nyw3ICs4NTcsNyBAQCBjZGVmIGNsYXNzIE5DUG9seW5vbWlhbFJp bmdfcGx1cmFsKFJpbmcpOgorICAgICAgICAgY2RlZiBwb2x5ICpfcAorICAgICAgICAgY2RlZiBy aW5nICpfcmluZyA9IHNlbGYuX3JpbmcKKyAKKy0gICAgICAgIGlmIG4gPCAwIG9yIG4gPj0gc2Vs Zi5fX25nZW5zOgorKyAgICAgICAgaWYgbiA8IDAgb3IgbiA+PSBzZWxmLl9uZ2VuczoKKyAgICAg ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJHZW5lcmF0b3Igbm90IGRlZmluZWQuIikKKyAKKyAg ICAgICAgIHJDaGFuZ2VDdXJyUmluZyhfcmluZykKK0BAIC0yMzUyLDcgKzIzNTIsNyBAQCBjZGVm IGNsYXNzIE5DUG9seW5vbWlhbF9wbHVyYWwoUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgIGV4 Y2VwdCBUeXBlRXJyb3I6CisgICAgICAgICAgICAgICAgIHggPSAoeCwpCisgCistICAgICAgICBp ZiBsZW4oeCkgIT0gKDxOQ1BvbHlub21pYWxSaW5nX3BsdXJhbD5zZWxmLl9wYXJlbnQpLl9fbmdl bnM6CisrICAgICAgICBpZiBsZW4oeCkgIT0gKDxOQ1BvbHlub21pYWxSaW5nX3BsdXJhbD5zZWxm Ll9wYXJlbnQpLl9uZ2VuczoKKyAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoInggbXVzdCBo YXZlIGxlbmd0aCBzZWxmLm5nZW5zKCkiKQorIAorICAgICAgICAgbSA9IHBfSVNldCgxLHIpCitA QCAtMjg5MCw4ICsyODkwLDggQEAgY3BkZWYgTVBvbHlub21pYWxSaW5nX2xpYnNpbmd1bGFyIG5l d19DUmluZyhSaW5nV3JhcCBydywgYmFzZV9yaW5nKToKKyAKKyAgICAgc2VsZi5fcmluZy5TaG9y dE91dCA9IDAKKyAKKy0gICAgc2VsZi5fX25nZW5zID0gcncubmdlbnMoKQorLSAgICBzZWxmLl9f dGVybV9vcmRlciA9ICBUZXJtT3JkZXIocncub3JkZXJpbmdfc3RyaW5nKCksIGZvcmNlPVRydWUp CisrICAgIHNlbGYuX25nZW5zID0gcncubmdlbnMoKQorKyAgICBzZWxmLl90ZXJtX29yZGVyID0g IFRlcm1PcmRlcihydy5vcmRlcmluZ19zdHJpbmcoKSwgZm9yY2U9VHJ1ZSkKKyAKKyAgICAgUGFy ZW50V2l0aEdlbnMuX19pbml0X18oc2VsZiwgYmFzZV9yaW5nLCB0dXBsZShydy52YXJfbmFtZXMo KSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZT1GYWxzZSkKK0BAIC0y OTYyLDggKzI5NjIsOCBAQCBjcGRlZiBOQ1BvbHlub21pYWxSaW5nX3BsdXJhbCBuZXdfTlJpbmco UmluZ1dyYXAgcncsIGJhc2VfcmluZyk6CisgCisgICAgIHNlbGYuX3JpbmcuU2hvcnRPdXQgPSAw CisgCistICAgIHNlbGYuX19uZ2VucyA9IHJ3Lm5nZW5zKCkKKy0gICAgc2VsZi5fX3Rlcm1fb3Jk ZXIgPSAgVGVybU9yZGVyKHJ3Lm9yZGVyaW5nX3N0cmluZygpLCBmb3JjZT1UcnVlKQorKyAgICBz ZWxmLl9uZ2VucyA9IHJ3Lm5nZW5zKCkKKysgICAgc2VsZi5fdGVybV9vcmRlciA9ICBUZXJtT3Jk ZXIocncub3JkZXJpbmdfc3RyaW5nKCksIGZvcmNlPVRydWUpCisgCisgICAgIFBhcmVudFdpdGhH ZW5zLl9faW5pdF9fKHNlbGYsIGJhc2VfcmluZywgcncudmFyX25hbWVzKCkpCisgIyAgICBzZWxm Ll9wb3B1bGF0ZV9jb2VyY2lvbl9saXN0c18oKSAgIyA/Pz8KK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfY29tcGxleF9hcmIucHhkIGIvc3JjL3NhZ2Uv cmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2NvbXBsZXhfYXJiLnB4ZAoraW5kZXggYWE0ZTJh MWMwZGMuLmU1NGQ4NWU5NjFiIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlh bC9wb2x5bm9taWFsX2NvbXBsZXhfYXJiLnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5v bWlhbC9wb2x5bm9taWFsX2NvbXBsZXhfYXJiLnB4ZAorQEAgLTIsNSArMiw1IEBAIGZyb20gc2Fn ZS5saWJzLmFyYi5hY2JfcG9seSBjaW1wb3J0ICoKKyBmcm9tIHNhZ2UucmluZ3MucG9seW5vbWlh bC5wb2x5bm9taWFsX2VsZW1lbnQgY2ltcG9ydCBQb2x5bm9taWFsCisgCisgY2RlZiBjbGFzcyBQ b2x5bm9taWFsX2NvbXBsZXhfYXJiKFBvbHlub21pYWwpOgorLSAgICBjZGVmIGFjYl9wb2x5X3N0 cnVjdFsxXSBfX3BvbHkgIyBodHRwczovL2dpdGh1Yi5jb20vY3l0aG9uL2N5dGhvbi9pc3N1ZXMv MTk4NAorKyAgICBjZGVmIGFjYl9wb2x5X3N0cnVjdFsxXSBfcG9seSAjIGh0dHBzOi8vZ2l0aHVi LmNvbS9jeXRob24vY3l0aG9uL2lzc3Vlcy8xOTg0CisgICAgIGNkZWYgUG9seW5vbWlhbF9jb21w bGV4X2FyYiBfbmV3KHNlbGYpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlh bC9wb2x5bm9taWFsX2NvbXBsZXhfYXJiLnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwv cG9seW5vbWlhbF9jb21wbGV4X2FyYi5weXgKK2luZGV4IGU1MTI2OGI0YjU0Li41N2MxYTUyZWRl NCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9jb21w bGV4X2FyYi5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9j b21wbGV4X2FyYi5weXgKK0BAIC03NSw3ICs3NSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9j b21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdlOiBDb21wbGV4QmFsbEZp ZWxkKDIpWyd5J10oKQorICAgICAgICAgICAgIDAKKyAgICAgICAgICIiIgorLSAgICAgICAgYWNi X3BvbHlfaW5pdChzZWxmLl9fcG9seSkKKysgICAgICAgIGFjYl9wb2x5X2luaXQoc2VsZi5fcG9s eSkKKyAKKyAgICAgZGVmIF9fZGVhbGxvY19fKHNlbGYpOgorICAgICAgICAgciIiIgorQEAgLTg0 LDcgKzg0LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2NvbXBsZXhfYXJiKFBvbHlub21pYWwp OgorICAgICAgICAgICAgIHNhZ2U6IHBvbCA9IENCRlsneCddKCkKKyAgICAgICAgICAgICBzYWdl OiBkZWwgcG9sCisgICAgICAgICAiIiIKKy0gICAgICAgIGFjYl9wb2x5X2NsZWFyKHNlbGYuX19w b2x5KQorKyAgICAgICAgYWNiX3BvbHlfY2xlYXIoc2VsZi5fcG9seSkKKyAKKyAgICAgY2RlZiBQ b2x5bm9taWFsX2NvbXBsZXhfYXJiIF9uZXcoc2VsZik6CisgICAgICAgICByIiIiCitAQCAtMTQw LDQ5ICsxNDAsNDkgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2NvbXBsZXhfYXJiKFBvbHlub21p YWwpOgorICAgICAgICAgUG9seW5vbWlhbC5fX2luaXRfXyhzZWxmLCBwYXJlbnQsIGlzX2dlbj1p c19nZW4pCisgCisgICAgICAgICBpZiBpc19nZW46CistICAgICAgICAgICAgYWNiX3BvbHlfc2V0 X2NvZWZmX3NpKHNlbGYuX19wb2x5LCAxLCAxKQorKyAgICAgICAgICAgIGFjYl9wb2x5X3NldF9j b2VmZl9zaShzZWxmLl9wb2x5LCAxLCAxKQorICAgICAgICAgZWxpZiB4IGlzIE5vbmU6CistICAg ICAgICAgICAgYWNiX3BvbHlfemVybyhzZWxmLl9fcG9seSkKKysgICAgICAgICAgICBhY2JfcG9s eV96ZXJvKHNlbGYuX3BvbHkpCisgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoeCwgUG9seW5vbWlh bF9jb21wbGV4X2FyYik6CistICAgICAgICAgICAgYWNiX3BvbHlfc2V0KHNlbGYuX19wb2x5LCAo PFBvbHlub21pYWxfY29tcGxleF9hcmI+IHgpLl9fcG9seSkKKysgICAgICAgICAgICBhY2JfcG9s eV9zZXQoc2VsZi5fcG9seSwgKDxQb2x5bm9taWFsX2NvbXBsZXhfYXJiPiB4KS5fcG9seSkKKyAg ICAgICAgIGVsaWYgaXNpbnN0YW5jZSh4LCBDb21wbGV4QmFsbCk6CistICAgICAgICAgICAgYWNi X3BvbHlfc2V0X2NvZWZmX2FjYihzZWxmLl9fcG9seSwgMCwgKDxDb21wbGV4QmFsbD4geCkudmFs dWUpCisrICAgICAgICAgICAgYWNiX3BvbHlfc2V0X2NvZWZmX2FjYihzZWxmLl9wb2x5LCAwLCAo PENvbXBsZXhCYWxsPiB4KS52YWx1ZSkKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgQ29l ZmYgPSBwYXJlbnQuYmFzZV9yaW5nKCkKKyAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHgsIGxp c3QpOgorICAgICAgICAgICAgICAgICBsc3QgPSA8bGlzdD4geAorICAgICAgICAgICAgICAgICBs ZW5ndGggPSBsZW4obHN0KQorLSAgICAgICAgICAgICAgICBzaWdfb24oKTsgYWNiX3BvbHlfZml0 X2xlbmd0aChzZWxmLl9fcG9seSwgbGVuZ3RoKTsgc2lnX29mZigpCisrICAgICAgICAgICAgICAg IHNpZ19vbigpOyBhY2JfcG9seV9maXRfbGVuZ3RoKHNlbGYuX3BvbHksIGxlbmd0aCk7IHNpZ19v ZmYoKQorICAgICAgICAgICAgICAgICBmb3IgaSBpbiByYW5nZShsZW5ndGgpOgorICAgICAgICAg ICAgICAgICAgICAgYmFsbCA9IENvZWZmKGxzdFtpXSkKKy0gICAgICAgICAgICAgICAgICAgIGFj Yl9wb2x5X3NldF9jb2VmZl9hY2Ioc2VsZi5fX3BvbHksIGksIGJhbGwudmFsdWUpCisrICAgICAg ICAgICAgICAgICAgICBhY2JfcG9seV9zZXRfY29lZmZfYWNiKHNlbGYuX3BvbHksIGksIGJhbGwu dmFsdWUpCisgICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHgsIHR1cGxlKToKKyAgICAgICAg ICAgICAgICAgdHBsID0gPHR1cGxlPiB4CisgICAgICAgICAgICAgICAgIGxlbmd0aCA9IGxlbih0 cGwpCistICAgICAgICAgICAgICAgIHNpZ19vbigpOyBhY2JfcG9seV9maXRfbGVuZ3RoKHNlbGYu X19wb2x5LCBsZW5ndGgpOyBzaWdfb2ZmKCkKKysgICAgICAgICAgICAgICAgc2lnX29uKCk7IGFj Yl9wb2x5X2ZpdF9sZW5ndGgoc2VsZi5fcG9seSwgbGVuZ3RoKTsgc2lnX29mZigpCisgICAgICAg ICAgICAgICAgIGZvciBpIGluIHJhbmdlKGxlbmd0aCk6CisgICAgICAgICAgICAgICAgICAgICBi YWxsID0gQ29lZmYodHBsW2ldKQorLSAgICAgICAgICAgICAgICAgICAgYWNiX3BvbHlfc2V0X2Nv ZWZmX2FjYihzZWxmLl9fcG9seSwgaSwgYmFsbC52YWx1ZSkKKysgICAgICAgICAgICAgICAgICAg IGFjYl9wb2x5X3NldF9jb2VmZl9hY2Ioc2VsZi5fcG9seSwgaSwgYmFsbC52YWx1ZSkKKyAgICAg ICAgICAgICBlbGlmIGlzaW5zdGFuY2UoeCwgUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgICAg IHBvbCA9IDxQb2x5bm9taWFsPiB4CisgICAgICAgICAgICAgICAgIGxlbmd0aCA9IHBvbC5kZWdy ZWUoKSArIDEKKy0gICAgICAgICAgICAgICAgc2lnX29uKCk7IGFjYl9wb2x5X2ZpdF9sZW5ndGgo c2VsZi5fX3BvbHksIGxlbmd0aCk7IHNpZ19vZmYoKQorKyAgICAgICAgICAgICAgICBzaWdfb24o KTsgYWNiX3BvbHlfZml0X2xlbmd0aChzZWxmLl9wb2x5LCBsZW5ndGgpOyBzaWdfb2ZmKCkKKyAg ICAgICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UobGVuZ3RoKToKKyAgICAgICAgICAgICAgICAg ICAgIGJhbGwgPSBDb2VmZihwb2wuZ2V0X3Vuc2FmZShpKSkKKy0gICAgICAgICAgICAgICAgICAg IGFjYl9wb2x5X3NldF9jb2VmZl9hY2Ioc2VsZi5fX3BvbHksIGksIGJhbGwudmFsdWUpCisrICAg ICAgICAgICAgICAgICAgICBhY2JfcG9seV9zZXRfY29lZmZfYWNiKHNlbGYuX3BvbHksIGksIGJh bGwudmFsdWUpCisgICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHgsIGRpY3QpOgorICAgICAg ICAgICAgICAgICBkY3QgPSA8ZGljdD4geAorICAgICAgICAgICAgICAgICBpZiBsZW4oZGN0KSA9 PSAwOgorLSAgICAgICAgICAgICAgICAgICAgYWNiX3BvbHlfemVybyhzZWxmLl9fcG9seSkKKysg ICAgICAgICAgICAgICAgICAgIGFjYl9wb2x5X3plcm8oc2VsZi5fcG9seSkKKyAgICAgICAgICAg ICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IG1heChpbnQoaSkgZm9y IGkgaW4gZGN0KSArIDEKKy0gICAgICAgICAgICAgICAgICAgIHNpZ19vbigpOyBhY2JfcG9seV9m aXRfbGVuZ3RoKHNlbGYuX19wb2x5LCBsZW5ndGgpOyBzaWdfb2ZmKCkKKysgICAgICAgICAgICAg ICAgICAgIHNpZ19vbigpOyBhY2JfcG9seV9maXRfbGVuZ3RoKHNlbGYuX3BvbHksIGxlbmd0aCk7 IHNpZ19vZmYoKQorICAgICAgICAgICAgICAgICAgICAgZm9yIGksIGMgaW4gZGN0Lml0ZXJpdGVt cygpOgorICAgICAgICAgICAgICAgICAgICAgICAgIGJhbGwgPSBDb2VmZihjKQorLSAgICAgICAg ICAgICAgICAgICAgICAgIGFjYl9wb2x5X3NldF9jb2VmZl9hY2Ioc2VsZi5fX3BvbHksIGksIGJh bGwudmFsdWUpCisrICAgICAgICAgICAgICAgICAgICAgICAgYWNiX3BvbHlfc2V0X2NvZWZmX2Fj YihzZWxmLl9wb2x5LCBpLCBiYWxsLnZhbHVlKQorICAgICAgICAgICAgIGVsc2U6CisgICAgICAg ICAgICAgICAgIGJhbGwgPSBDb2VmZih4KQorLSAgICAgICAgICAgICAgICBhY2JfcG9seV9zZXRf Y29lZmZfYWNiKHNlbGYuX19wb2x5LCAwLCBiYWxsLnZhbHVlKQorKyAgICAgICAgICAgICAgICBh Y2JfcG9seV9zZXRfY29lZmZfYWNiKHNlbGYuX3BvbHksIDAsIGJhbGwudmFsdWUpCisgCisgICAg IGRlZiBfX3JlZHVjZV9fKHNlbGYpOgorICAgICAgICAgciIiIgorQEAgLTIxOSwxMiArMjE5LDEy IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAg ICAgICAgICBzYWdlOiBQb2woWzEsIDAsIDAsIDBdKS5kZWdyZWUoKQorICAgICAgICAgICAgIDAK KyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIHNtYWxsSW50ZWdlcihhY2JfcG9seV9kZWdy ZWUoc2VsZi5fX3BvbHkpKQorKyAgICAgICAgcmV0dXJuIHNtYWxsSW50ZWdlcihhY2JfcG9seV9k ZWdyZWUoc2VsZi5fcG9seSkpCisgCisgICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6 ZV90IG4pOgorICAgICAgICAgY2RlZiBDb21wbGV4QmFsbCByZXMgPSBDb21wbGV4QmFsbC5fX25l d19fKENvbXBsZXhCYWxsKQorICAgICAgICAgcmVzLl9wYXJlbnQgPSBzZWxmLl9wYXJlbnQuX2Jh c2UKKy0gICAgICAgIGFjYl9wb2x5X2dldF9jb2VmZl9hY2IocmVzLnZhbHVlLCBzZWxmLl9fcG9s eSwgbikKKysgICAgICAgIGFjYl9wb2x5X2dldF9jb2VmZl9hY2IocmVzLnZhbHVlLCBzZWxmLl9w b2x5LCBuKQorICAgICAgICAgcmV0dXJuIHJlcworIAorICAgICBjcGRlZiBsaXN0IGxpc3Qoc2Vs ZiwgYmludCBjb3B5PVRydWUpOgorQEAgLTI0MSw3ICsyNDEsNyBAQCBjZGVmIGNsYXNzIFBvbHlu b21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgc2FnZTogUG9sKFsw LCAxLCBSQkYoMCwgcmFkPS4xKSwgMF0pLmxpc3QoKQorICAgICAgICAgICAgIFswLCAxLjAwMDAw MDAwMDAwMDAwMCwgWysvLSAwLjEwMV1dCisgICAgICAgICAiIiIKKy0gICAgICAgIGNkZWYgdW5z aWduZWQgbG9uZyBsZW5ndGggPSBhY2JfcG9seV9sZW5ndGgoc2VsZi5fX3BvbHkpCisrICAgICAg ICBjZGVmIHVuc2lnbmVkIGxvbmcgbGVuZ3RoID0gYWNiX3BvbHlfbGVuZ3RoKHNlbGYuX3BvbHkp CisgICAgICAgICByZXR1cm4gW3NlbGYuZ2V0X3Vuc2FmZShuKSBmb3IgbiBpbiByYW5nZShsZW5n dGgpXQorIAorICAgICBkZWYgX19ib29sX18oc2VsZik6CitAQCAtMjU3LDcgKzI1Nyw3IEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgICAg ICBzYWdlOiBib29sKHopCisgICAgICAgICAgICAgVHJ1ZQorICAgICAgICAgIiIiCistICAgICAg ICByZXR1cm4gYWNiX3BvbHlfbGVuZ3RoKHNlbGYuX19wb2x5KQorKyAgICAgICAgcmV0dXJuIGFj Yl9wb2x5X2xlbmd0aChzZWxmLl9wb2x5KQorIAorICAgICAjIFJpbmcgYW5kIEV1Y2xpZGVhbiBh cml0aG1ldGljCisgCitAQCAtMjc0LDkgKzI3NCw5IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9j b21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9jb21wbGV4 X2FyYiByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgc2lnX29uKCkKKyAgICAgICAgIGFjYl9w b2x5X2FkZCgKKy0gICAgICAgICAgICAgICAgcmVzLl9fcG9seSwKKy0gICAgICAgICAgICAgICAg c2VsZi5fX3BvbHksCistICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9jb21wbGV4X2FyYj4g b3RoZXIpLl9fcG9seSwKKysgICAgICAgICAgICAgICAgcmVzLl9wb2x5LAorKyAgICAgICAgICAg ICAgICBzZWxmLl9wb2x5LAorKyAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfY29tcGxleF9h cmI+IG90aGVyKS5fcG9seSwKKyAgICAgICAgICAgICAgICAgcHJlYyhzZWxmKSkKKyAgICAgICAg IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworQEAgLTI5Myw3ICsyOTMsNyBAQCBjZGVm IGNsYXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9jb21wbGV4X2FyYiByZXMgPSBzZWxmLl9uZXcoKQor ICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGFjYl9wb2x5X25lZyhyZXMuX19wb2x5LCBzZWxm Ll9fcG9seSkKKysgICAgICAgIGFjYl9wb2x5X25lZyhyZXMuX3BvbHksIHNlbGYuX3BvbHkpCisg ICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKK0BAIC0zMTAsOSArMzEw LDkgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2NvbXBsZXhfYXJiKFBvbHlub21pYWwpOgorICAg ICAgICAgY2RlZiBQb2x5bm9taWFsX2NvbXBsZXhfYXJiIHJlcyA9IHNlbGYuX25ldygpCisgICAg ICAgICBzaWdfb24oKQorICAgICAgICAgYWNiX3BvbHlfc3ViKAorLSAgICAgICAgICAgICAgICBy ZXMuX19wb2x5LAorLSAgICAgICAgICAgICAgICBzZWxmLl9fcG9seSwKKy0gICAgICAgICAgICAg ICAgKDxQb2x5bm9taWFsX2NvbXBsZXhfYXJiPiBvdGhlcikuX19wb2x5LAorKyAgICAgICAgICAg ICAgICByZXMuX3BvbHksCisrICAgICAgICAgICAgICAgIHNlbGYuX3BvbHksCisrICAgICAgICAg ICAgICAgICg8UG9seW5vbWlhbF9jb21wbGV4X2FyYj4gb3RoZXIpLl9wb2x5LAorICAgICAgICAg ICAgICAgICBwcmVjKHNlbGYpKQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4g cmVzCitAQCAtMzMxLDkgKzMzMSw5IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2Fy YihQb2x5bm9taWFsKToKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9jb21wbGV4X2FyYiByZXMg PSBzZWxmLl9uZXcoKQorICAgICAgICAgc2lnX29uKCkKKyAgICAgICAgIGFjYl9wb2x5X211bCgK Ky0gICAgICAgICAgICAgICAgcmVzLl9fcG9seSwKKy0gICAgICAgICAgICAgICAgc2VsZi5fX3Bv bHksCistICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9jb21wbGV4X2FyYj4gb3RoZXIpLl9f cG9seSwKKysgICAgICAgICAgICAgICAgcmVzLl9wb2x5LAorKyAgICAgICAgICAgICAgICBzZWxm Ll9wb2x5LAorKyAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfY29tcGxleF9hcmI+IG90aGVy KS5fcG9seSwKKyAgICAgICAgICAgICAgICAgcHJlYyhzZWxmKSkKKyAgICAgICAgIHNpZ19vZmYo KQorICAgICAgICAgcmV0dXJuIHJlcworQEAgLTM1NCw3ICszNTQsNyBAQCBjZGVmIGNsYXNzIFBv bHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IGNkZWYgUG9seW5vbWlhbF9jb21wbGV4X2FyYiByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAg c2lnX29uKCkKKy0gICAgICAgIGFjYl9wb2x5X3NjYWxhcl9tdWwocmVzLl9fcG9seSwgc2VsZi5f X3BvbHksICg8Q29tcGxleEJhbGw+IGEpLnZhbHVlLCBwcmVjKHNlbGYpKQorKyAgICAgICAgYWNi X3BvbHlfc2NhbGFyX211bChyZXMuX3BvbHksIHNlbGYuX3BvbHksICg8Q29tcGxleEJhbGw+IGEp LnZhbHVlLCBwcmVjKHNlbGYpKQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4g cmVzCisgCitAQCAtNDA5LDggKzQwOSw4IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4 X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9jb21wbGV4X2FyYiBx dW8gPSBzZWxmLl9uZXcoKQorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2NvbXBsZXhfYXJiIHJl bSA9IHNlbGYuX25ldygpCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgY2RlZiBiaW50IHN1 Y2Nlc3MgPSBhY2JfcG9seV9kaXZyZW0ocXVvLl9fcG9seSwgcmVtLl9fcG9seSwgc2VsZi5fX3Bv bHksCistICAgICAgICAgICAgICAgIGRpdi5fX3BvbHksIHByZWMoc2VsZikpCisrICAgICAgICBj ZGVmIGJpbnQgc3VjY2VzcyA9IGFjYl9wb2x5X2RpdnJlbShxdW8uX3BvbHksIHJlbS5fcG9seSwg c2VsZi5fcG9seSwKKysgICAgICAgICAgICAgICAgZGl2Ll9wb2x5LCBwcmVjKHNlbGYpKQorICAg ICAgICAgc2lnX29mZigpCisgICAgICAgICBpZiBzdWNjZXNzOgorICAgICAgICAgICAgIHJldHVy biBxdW8sIHJlbQorQEAgLTQ0NSwxNSArNDQ1LDE1IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9j b21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgIGlmIG4gPCAwOgorICAgICAgICAgICAg IG4gPSAwCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgYWNiX3BvbHlfc2V0KHJlcy5fX3Bv bHksIHNlbGYuX19wb2x5KQorLSAgICAgICAgYWNiX3BvbHlfdHJ1bmNhdGUocmVzLl9fcG9seSwg bikKKysgICAgICAgIGFjYl9wb2x5X3NldChyZXMuX3BvbHksIHNlbGYuX3BvbHkpCisrICAgICAg ICBhY2JfcG9seV90cnVuY2F0ZShyZXMuX3BvbHksIG4pCisgICAgICAgICBzaWdfb2ZmKCkKKyAg ICAgICAgIHJldHVybiByZXMKKyAKKyAgICAgY2RlZiBfaW5wbGFjZV90cnVuY2F0ZShzZWxmLCBs b25nIG4pOgorICAgICAgICAgaWYgbiA8IDA6CisgICAgICAgICAgICAgbiA9IDAKKy0gICAgICAg IGFjYl9wb2x5X3RydW5jYXRlKHNlbGYuX19wb2x5LCBuKQorKyAgICAgICAgYWNiX3BvbHlfdHJ1 bmNhdGUoc2VsZi5fcG9seSwgbikKKyAgICAgICAgIHJldHVybiBzZWxmCisgCisgICAgIGRlZiBf X2xzaGlmdF9fKHZhbCwgbik6CitAQCAtNDg1LDcgKzQ4NSw3IEBAIGNkZWYgY2xhc3MgUG9seW5v bWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9j b21wbGV4X2FyYiBzZWxmID0gKDxQb2x5bm9taWFsX2NvbXBsZXhfYXJiPiB2YWwpCisgICAgICAg ICBjZGVmIFBvbHlub21pYWxfY29tcGxleF9hcmIgcmVzID0gc2VsZi5fbmV3KCkKKyAgICAgICAg IHNpZ19vbigpCistICAgICAgICBhY2JfcG9seV9zaGlmdF9sZWZ0KHJlcy5fX3BvbHksIHNlbGYu X19wb2x5LCBuKQorKyAgICAgICAgYWNiX3BvbHlfc2hpZnRfbGVmdChyZXMuX3BvbHksIHNlbGYu X3BvbHksIG4pCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKK0BA IC01MTgsNyArNTE4LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2NvbXBsZXhfYXJiKFBvbHlu b21pYWwpOgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2NvbXBsZXhfYXJiIHNlbGYgPSAoPFBv bHlub21pYWxfY29tcGxleF9hcmI+IHZhbCkKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9jb21w bGV4X2FyYiByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGFj Yl9wb2x5X3NoaWZ0X3JpZ2h0KHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBuKQorKyAgICAgICAg YWNiX3BvbHlfc2hpZnRfcmlnaHQocmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBuKQorICAgICAgICAg c2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtNTQ4LDcgKzU0OCw3IEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgIGlm IG4gPCAwOgorICAgICAgICAgICAgIG4gPSAwCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAg YWNiX3BvbHlfbXVsbG93KHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBteV9vdGhlci5fX3BvbHks IG4sIHByZWMoc2VsZikpCisrICAgICAgICBhY2JfcG9seV9tdWxsb3cocmVzLl9wb2x5LCBzZWxm Ll9wb2x5LCBteV9vdGhlci5fcG9seSwgbiwgcHJlYyhzZWxmKSkKKyAgICAgICAgIHNpZ19vZmYo KQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTU3Niw3ICs1NzYsNyBAQCBjZGVmIGNsYXNz IFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAgICBpZiBuIDwgMDoK KyAgICAgICAgICAgICBuID0gMAorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGFjYl9wb2x5 X2ludl9zZXJpZXMocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIG4sIHByZWMoc2VsZikpCisrICAg ICAgICBhY2JfcG9seV9pbnZfc2VyaWVzKHJlcy5fcG9seSwgc2VsZi5fcG9seSwgbiwgcHJlYyhz ZWxmKSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTYx Miw3ICs2MTIsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlh bCk6CisgICAgICAgICBpZiBuIDwgMDoKKyAgICAgICAgICAgICBuID0gMAorICAgICAgICAgc2ln X29uKCkKKy0gICAgICAgIGFjYl9wb2x5X3Bvd191aV90cnVuY19iaW5leHAocmVzLl9fcG9seSwg c2VsZi5fX3BvbHksIGV4cG8sIG4sIHByZWMoc2VsZikpCisrICAgICAgICBhY2JfcG9seV9wb3df dWlfdHJ1bmNfYmluZXhwKHJlcy5fcG9seSwgc2VsZi5fcG9seSwgZXhwbywgbiwgcHJlYyhzZWxm KSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTY0OCw3 ICs2NDgsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6 CisgICAgICAgICBpZiBuIDwgMDoKKyAgICAgICAgICAgICBuID0gMAorICAgICAgICAgc2lnX29u KCkKKy0gICAgICAgIGFjYl9wb2x5X2xvZ19zZXJpZXMocmVzLl9fcG9seSwgc2VsZi5fX3BvbHks IG4sIHByZWMoc2VsZikpCisrICAgICAgICBhY2JfcG9seV9sb2dfc2VyaWVzKHJlcy5fcG9seSwg c2VsZi5fcG9seSwgbiwgcHJlYyhzZWxmKSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAg cmV0dXJuIHJlcworIAorQEAgLTY3Miw3ICs2NzIsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxf Y29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAgICBpZiBuIDwgMDoKKyAgICAgICAgICAg ICBuID0gMAorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGFjYl9wb2x5X2V4cF9zZXJpZXMo cmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIG4sIHByZWMoc2VsZikpCisrICAgICAgICBhY2JfcG9s eV9leHBfc2VyaWVzKHJlcy5fcG9seSwgc2VsZi5fcG9seSwgbiwgcHJlYyhzZWxmKSkKKyAgICAg ICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTY5Nyw3ICs2OTcsNyBA QCBjZGVmIGNsYXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAg ICBpZiBuIDwgMDoKKyAgICAgICAgICAgICBuID0gMAorICAgICAgICAgc2lnX29uKCkKKy0gICAg ICAgIGFjYl9wb2x5X3NxcnRfc2VyaWVzKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBuLCBwcmVj KHNlbGYpKQorKyAgICAgICAgYWNiX3BvbHlfc3FydF9zZXJpZXMocmVzLl9wb2x5LCBzZWxmLl9w b2x5LCBuLCBwcmVjKHNlbGYpKQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4g cmVzCisgCitAQCAtNzE2LDcgKzcxNiw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4 X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgIGlmIG4gPCAwOgorICAgICAgICAgICAgIG4gPSAw CisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgYWNiX3BvbHlfZ2FtbWFfc2VyaWVzKHJlcy5f X3BvbHksIHNlbGYuX19wb2x5LCBuLCBwcmVjKHNlbGYpKQorKyAgICAgICAgYWNiX3BvbHlfZ2Ft bWFfc2VyaWVzKHJlcy5fcG9seSwgc2VsZi5fcG9seSwgbiwgcHJlYyhzZWxmKSkKKyAgICAgICAg IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTczNSw3ICs3MzUsNyBAQCBj ZGVmIGNsYXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAgICBp ZiBuIDwgMDoKKyAgICAgICAgICAgICBuID0gMAorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAg IGFjYl9wb2x5X2xnYW1tYV9zZXJpZXMocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIG4sIHByZWMo c2VsZikpCisrICAgICAgICBhY2JfcG9seV9sZ2FtbWFfc2VyaWVzKHJlcy5fcG9seSwgc2VsZi5f cG9seSwgbiwgcHJlYyhzZWxmKSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJu IHJlcworIAorQEAgLTc1NCw3ICs3NTQsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfY29tcGxl eF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAgICBpZiBuIDwgMDoKKyAgICAgICAgICAgICBuID0g MAorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGFjYl9wb2x5X3JnYW1tYV9zZXJpZXMocmVz Ll9fcG9seSwgc2VsZi5fX3BvbHksIG4sIHByZWMoc2VsZikpCisrICAgICAgICBhY2JfcG9seV9y Z2FtbWFfc2VyaWVzKHJlcy5fcG9seSwgc2VsZi5fcG9seSwgbiwgcHJlYyhzZWxmKSkKKyAgICAg ICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTc4NCw3ICs3ODQsNyBA QCBjZGVmIGNsYXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAg ICBpZiBuIDwgMDoKKyAgICAgICAgICAgICBuID0gMAorICAgICAgICAgc2lnX29uKCkKKy0gICAg ICAgIGFjYl9wb2x5X2xhbWJlcnR3X3NlcmllcyhyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgX2Jy YW5jaCwgMCwgbiwgcHJlYyhzZWxmKSkKKysgICAgICAgIGFjYl9wb2x5X2xhbWJlcnR3X3Nlcmll cyhyZXMuX3BvbHksIHNlbGYuX3BvbHksIF9icmFuY2gsIDAsIG4sIHByZWMoc2VsZikpCisgICAg ICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIGZtcHpfY2xlYXIoX2JyYW5jaCkKKyAgICAgICAgIHJl dHVybiByZXMKK0BAIC04MTQsNyArODE0LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2NvbXBs ZXhfYXJiKFBvbHlub21pYWwpOgorICAgICAgICAgY2RlZiBDb21wbGV4QmFsbCBfYSA9IDxDb21w bGV4QmFsbD4gKHNlbGYuX3BhcmVudC5fYmFzZS5jb2VyY2UoYSkpCisgICAgICAgICBjZGVmIFBv bHlub21pYWxfY29tcGxleF9hcmIgcmVzID0gc2VsZi5fbmV3KCkKKyAgICAgICAgIHNpZ19vbigp CistICAgICAgICBhY2JfcG9seV96ZXRhX3NlcmllcyhyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwg X2EudmFsdWUsIGRlZmxhdGUsIG4sIHByZWMoc2VsZikpCisrICAgICAgICBhY2JfcG9seV96ZXRh X3NlcmllcyhyZXMuX3BvbHksIHNlbGYuX3BvbHksIF9hLnZhbHVlLCBkZWZsYXRlLCBuLCBwcmVj KHNlbGYpKQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAt ODQ2LDI0ICs4NDYsMjQgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2NvbXBsZXhfYXJiKFBvbHlu b21pYWwpOgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2NvbXBsZXhfYXJiIHJlcyA9IHNlbGYu X25ldygpCisgICAgICAgICBjZGVmIGFjYl9wb2x5X3Qgc2VsZl90cywgb3RoZXJfdHMKKyAgICAg ICAgIGNkZWYgYWNiX3B0ciBjYworLSAgICAgICAgaWYgYWNiX3BvbHlfbGVuZ3RoKG90aGVyMS5f X3BvbHkpID4gMDoKKy0gICAgICAgICAgICBjYyA9IGFjYl9wb2x5X2dldF9jb2VmZl9wdHIob3Ro ZXIxLl9fcG9seSwgMCkKKysgICAgICAgIGlmIGFjYl9wb2x5X2xlbmd0aChvdGhlcjEuX3BvbHkp ID4gMDoKKysgICAgICAgICAgICBjYyA9IGFjYl9wb2x5X2dldF9jb2VmZl9wdHIob3RoZXIxLl9w b2x5LCAwKQorICAgICAgICAgICAgIGlmIG5vdCBhY2JfaXNfemVybyhjYyk6CisgICAgICAgICAg ICAgICAgIHNpZ19vbigpCisgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAg ICAgIGFjYl9wb2x5X2luaXQoc2VsZl90cykKKyAgICAgICAgICAgICAgICAgICAgIGFjYl9wb2x5 X2luaXQob3RoZXJfdHMpCistICAgICAgICAgICAgICAgICAgICBhY2JfcG9seV90YXlsb3Jfc2hp ZnQoc2VsZl90cywgc2VsZi5fX3BvbHksIGNjLCBwcmVjKHNlbGYpKQorLSAgICAgICAgICAgICAg ICAgICAgYWNiX3BvbHlfc2V0KG90aGVyX3RzLCBvdGhlcjEuX19wb2x5KQorKyAgICAgICAgICAg ICAgICAgICAgYWNiX3BvbHlfdGF5bG9yX3NoaWZ0KHNlbGZfdHMsIHNlbGYuX3BvbHksIGNjLCBw cmVjKHNlbGYpKQorKyAgICAgICAgICAgICAgICAgICAgYWNiX3BvbHlfc2V0KG90aGVyX3RzLCBv dGhlcjEuX3BvbHkpCisgICAgICAgICAgICAgICAgICAgICBhY2JfemVybyhhY2JfcG9seV9nZXRf Y29lZmZfcHRyKG90aGVyX3RzLCAwKSkKKy0gICAgICAgICAgICAgICAgICAgIGFjYl9wb2x5X2Nv bXBvc2Vfc2VyaWVzKHJlcy5fX3BvbHksIHNlbGZfdHMsIG90aGVyX3RzLCBuLCBwcmVjKHNlbGYp KQorKyAgICAgICAgICAgICAgICAgICAgYWNiX3BvbHlfY29tcG9zZV9zZXJpZXMocmVzLl9wb2x5 LCBzZWxmX3RzLCBvdGhlcl90cywgbiwgcHJlYyhzZWxmKSkKKyAgICAgICAgICAgICAgICAgZmlu YWxseToKKyAgICAgICAgICAgICAgICAgICAgIGFjYl9wb2x5X2NsZWFyKG90aGVyX3RzKQorICAg ICAgICAgICAgICAgICAgICAgYWNiX3BvbHlfY2xlYXIoc2VsZl90cykKKyAgICAgICAgICAgICAg ICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgICAgICAgICByZXR1cm4gcmVzCisgICAgICAgICBz aWdfb24oKQorLSAgICAgICAgYWNiX3BvbHlfY29tcG9zZV9zZXJpZXMocmVzLl9fcG9seSwgc2Vs Zi5fX3BvbHksIG90aGVyMS5fX3BvbHksIG4sIHByZWMoc2VsZikpCisrICAgICAgICBhY2JfcG9s eV9jb21wb3NlX3NlcmllcyhyZXMuX3BvbHksIHNlbGYuX3BvbHksIG90aGVyMS5fcG9seSwgbiwg cHJlYyhzZWxmKSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAor QEAgLTg5NSwxMiArODk1LDEyIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2FyYihQ b2x5bm9taWFsKToKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9jb21wbGV4X2FyYiByZXMgPSBz ZWxmLl9uZXcoKQorICAgICAgICAgaWYgbiA8IDA6CisgICAgICAgICAgICAgbiA9IDAKKy0gICAg ICAgIGlmIG5vdCBhY2JfaXNfemVybyhhY2JfcG9seV9nZXRfY29lZmZfcHRyKHNlbGYuX19wb2x5 LCAwKSk6CisrICAgICAgICBpZiBub3QgYWNiX2lzX3plcm8oYWNiX3BvbHlfZ2V0X2NvZWZmX3B0 cihzZWxmLl9wb2x5LCAwKSk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigidGhlIGNv bnN0YW50IGNvZWZmaWNpZW50IG11c3QgYmUgemVybyIpCistICAgICAgICBpZiBhY2JfY29udGFp bnNfemVybyhhY2JfcG9seV9nZXRfY29lZmZfcHRyKHNlbGYuX19wb2x5LCAxKSk6CisrICAgICAg ICBpZiBhY2JfY29udGFpbnNfemVybyhhY2JfcG9seV9nZXRfY29lZmZfcHRyKHNlbGYuX3BvbHks IDEpKToKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ0aGUgbGluZWFyIHRlcm0gbXVz dCBiZSBub256ZXJvIikKKyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBhY2JfcG9seV9yZXZl cnRfc2VyaWVzKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBuLCBwcmVjKHNlbGYpKQorKyAgICAg ICAgYWNiX3BvbHlfcmV2ZXJ0X3NlcmllcyhyZXMuX3BvbHksIHNlbGYuX3BvbHksIG4sIHByZWMo c2VsZikpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKK0BAIC05 MzgsMTUgKzkzOCwxNSBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5v bWlhbCk6CisgICAgICAgICAgICAgICAgIGJhbGwgPSBDb21wbGV4QmFsbC5fX25ld19fKENvbXBs ZXhCYWxsKQorICAgICAgICAgICAgICAgICBiYWxsLl9wYXJlbnQgPSBzZWxmLl9wYXJlbnQuX2Jh c2UKKyAgICAgICAgICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgICAgICAgICAgYWNiX3BvbHlf ZXZhbHVhdGUoYmFsbC52YWx1ZSwgc2VsZi5fX3BvbHksCisrICAgICAgICAgICAgICAgIGFjYl9w b2x5X2V2YWx1YXRlKGJhbGwudmFsdWUsIHNlbGYuX3BvbHksCisgICAgICAgICAgICAgICAgICAg ICAgICAgKDxDb21wbGV4QmFsbD4gcG9pbnQpLnZhbHVlLCBwcmVjKHNlbGYpKQorICAgICAgICAg ICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgICAgICAgICAgcmV0dXJuIGJhbGwKKyAgICAgICAg ICAgICBlbGlmIGlzaW5zdGFuY2UocG9pbnQsIFBvbHlub21pYWxfY29tcGxleF9hcmIpOgorICAg ICAgICAgICAgICAgICBwb2x5ID0gKDxQb2x5bm9taWFsX2NvbXBsZXhfYXJiPiBwb2ludCkuX25l dygpCisgICAgICAgICAgICAgICAgIHNpZ19vbigpCistICAgICAgICAgICAgICAgIGFjYl9wb2x5 X2NvbXBvc2UocG9seS5fX3BvbHksIHNlbGYuX19wb2x5LAorLSAgICAgICAgICAgICAgICAgICAg ICAgICg8UG9seW5vbWlhbF9jb21wbGV4X2FyYj4gcG9pbnQpLl9fcG9seSwgcHJlYyhzZWxmKSkK KysgICAgICAgICAgICAgICAgYWNiX3BvbHlfY29tcG9zZShwb2x5Ll9wb2x5LCBzZWxmLl9wb2x5 LAorKyAgICAgICAgICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9jb21wbGV4X2FyYj4gcG9p bnQpLl9wb2x5LCBwcmVjKHNlbGYpKQorICAgICAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAg ICAgICAgICAgICAgcmV0dXJuIHBvbHkKKyAgICAgICAgICAgICAjIFRPRE86IHBlcmhhcHMgYWRk IG1vcmUgc3BlY2lhbCBjYXNlcywgZS5nLiBmb3IgcmVhbCBiYWxsLAorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9lbGVtZW50LnB4ZCBiL3NyYy9zYWdl L3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9lbGVtZW50LnB4ZAoraW5kZXggMDgzZjUwNmIy MjIuLjVkY2JmNDU5N2QwIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9w b2x5bm9taWFsX2VsZW1lbnQucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3Bv bHlub21pYWxfZWxlbWVudC5weGQKK0BAIC00NSwxMiArNDUsMTIgQEAgY2RlZiBjbGFzcyBQb2x5 bm9taWFsKENvbW11dGF0aXZlUG9seW5vbWlhbCk6CisgICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJp Z2h0KQorICAgICBjcGRlZiBfZmxvb3JkaXZfKHNlbGYsIHJpZ2h0KQorIAorLSAgICBjZGVmIHB1 YmxpYyBkaWN0IF9fY2FjaGVkX21ldGhvZHMKKysgICAgY2RlZiBwdWJsaWMgZGljdCBfY2FjaGVk X21ldGhvZHMKKyAKKyBjZGVmIGNsYXNzIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShQb2x5bm9t aWFsKToKKyAgICAgY2RlZiBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UgX25ld19jKHNlbGYsIGxp c3QgY29lZmZzLCBQYXJlbnQgUCkKKy0gICAgY2RlZiBsaXN0IF9fY29lZmZzCistICAgIGNkZWYg aW50IF9fbm9ybWFsaXplKHNlbGYpIGV4Y2VwdCAtMQorKyAgICBjZGVmIGxpc3QgX2NvZWZmcwor KyAgICBjZGVmIGludCBfbm9ybWFsaXplKHNlbGYpIGV4Y2VwdCAtMQorICAgICBjcGRlZiBsaXN0 IGxpc3Qoc2VsZiwgYmludCBjb3B5PSopCisgCisgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2dlbmVy aWNfZGVuc2VfaW5leGFjdChQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UpOgorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9lbGVtZW50LnB5eCBiL3NyYy9z YWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9lbGVtZW50LnB5eAoraW5kZXggNGQ0Yjlk ZDEwZjUuLmQxYzgwMjgzNWFlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlh bC9wb2x5bm9taWFsX2VsZW1lbnQucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFs L3BvbHlub21pYWxfZWxlbWVudC5weXgKK0BAIC05ODAwLDcgKzk4MDAsNyBAQCBjZGVmIGNsYXNz IFBvbHlub21pYWwoQ29tbXV0YXRpdmVQb2x5bm9taWFsKToKKyAgICAgICAgICAgICAwCisgICAg ICAgICAiIiIKKyAgICAgICAgICMgX19nZXRpdGVtX18gYWxyZWFkeSByZXR1cm5zIGEgcG9seW5v bWlhbCEhCistICAgICAgICAjIFdlIG11c3Qgbm90IGhhdmUgY2hlY2s9RmFsc2UsIHNpbmNlIDAg bXVzdCBub3QgaGF2ZSBfX2NvZWZmcyA9IFswXS4KKysgICAgICAgICMgV2UgbXVzdCBub3QgaGF2 ZSBjaGVjaz1GYWxzZSwgc2luY2UgMCBtdXN0IG5vdCBoYXZlIF9jb2VmZnMgPSBbMF0uCisgICAg ICAgICByZXR1cm4gPFBvbHlub21pYWw+c2VsZi5fcGFyZW50KHNlbGZbOm5dKSMsIGNoZWNrPUZh bHNlKQorIAorICAgICBjZGVmIF9pbnBsYWNlX3RydW5jYXRlKHNlbGYsIGxvbmcgcHJlYyk6CitA QCAtMTE1NDEsMTYgKzExNTQxLDE2IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2Rl bnNlKFBvbHlub21pYWwpOgorICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50LCB4PU5vbmUs IGludCBjaGVjaz0xLCBpc19nZW49RmFsc2UsIGludCBjb25zdHJ1Y3Q9MCwgKiprd2RzKToKKyAg ICAgICAgIFBvbHlub21pYWwuX19pbml0X18oc2VsZiwgcGFyZW50LCBpc19nZW49aXNfZ2VuKQor ICAgICAgICAgaWYgeCBpcyBOb25lOgorLSAgICAgICAgICAgIHNlbGYuX19jb2VmZnMgPSBbXQor KyAgICAgICAgICAgIHNlbGYuX2NvZWZmcyA9IFtdCisgICAgICAgICAgICAgcmV0dXJuCisgCisg ICAgICAgICBSID0gcGFyZW50LmJhc2VfcmluZygpCisgICAgICAgICBpZiBpc2luc3RhbmNlKHgs IChsaXN0LCB0dXBsZSkpOgorICAgICAgICAgICAgIGlmIGNoZWNrOgorLSAgICAgICAgICAgICAg ICBzZWxmLl9fY29lZmZzID0gW1IodCkgZm9yIHQgaW4geF0KKy0gICAgICAgICAgICAgICAgc2Vs Zi5fX25vcm1hbGl6ZSgpCisrICAgICAgICAgICAgICAgIHNlbGYuX2NvZWZmcyA9IFtSKHQpIGZv ciB0IGluIHhdCisrICAgICAgICAgICAgICAgIHNlbGYuX25vcm1hbGl6ZSgpCisgICAgICAgICAg ICAgZWxzZToKKy0gICAgICAgICAgICAgICAgc2VsZi5fX2NvZWZmcyA9IHgKKysgICAgICAgICAg ICAgICAgc2VsZi5fY29lZmZzID0geAorICAgICAgICAgICAgIHJldHVybgorIAorICAgICAgICAg aWYgc2FnZS5yaW5ncy5mcmFjdGlvbl9maWVsZF9lbGVtZW50LmlzX0ZyYWN0aW9uRmllbGRFbGVt ZW50KHgpOgorQEAgLTExNTY1LDE5ICsxMTU2NSwxOSBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxf Z2VuZXJpY19kZW5zZShQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBlbGlmIFIuaGFzX2NvZXJj ZV9tYXBfZnJvbSgoPEVsZW1lbnQ+eCkuX3BhcmVudCk6IyBpcyBSIG9yICg8RWxlbWVudD54KS5f cGFyZW50ID09IFI6CisgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAg IGlmIHguaXNfemVybygpOgorLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX19jb2VmZnMg PSBbXQorKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2NvZWZmcyA9IFtdCisgICAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICAgICAgIGV4Y2VwdCAoQXR0cmli dXRlRXJyb3IsIFR5cGVFcnJvcik6CisgICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAg ICAgICAgICAgIHggPSBbeF0KKyAgICAgICAgICAgICBlbHNlOgorLSAgICAgICAgICAgICAgICBz ZWxmLl9fY29lZmZzID0gW1IoYSwgKiprd2RzKSBmb3IgYSBpbiB4Lmxpc3QoY29weT1GYWxzZSld CisrICAgICAgICAgICAgICAgIHNlbGYuX2NvZWZmcyA9IFtSKGEsICoqa3dkcykgZm9yIGEgaW4g eC5saXN0KGNvcHk9RmFsc2UpXQorICAgICAgICAgICAgICAgICBpZiBjaGVjazoKKy0gICAgICAg ICAgICAgICAgICAgIHNlbGYuX19ub3JtYWxpemUoKQorKyAgICAgICAgICAgICAgICAgICAgc2Vs Zi5fbm9ybWFsaXplKCkKKyAgICAgICAgICAgICAgICAgcmV0dXJuCisgCisgICAgICAgICBlbGlm IGlzaW5zdGFuY2UoeCwgaW50KSBhbmQgeCA9PSAwOgorLSAgICAgICAgICAgIHNlbGYuX19jb2Vm ZnMgPSBbXQorKyAgICAgICAgICAgIHNlbGYuX2NvZWZmcyA9IFtdCisgICAgICAgICAgICAgcmV0 dXJuCisgCisgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoeCwgZGljdCk6CitAQCAtMTE1OTMsMTYg KzExNTkzLDE2IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21p YWwpOgorICMgICAgICAgICAgICBlbHNlOgorICMgICAgICAgICAgICAgICAgeCA9IFtdICAgICMg emVybyBwb2x5bm9taWFsCisgICAgICAgICBpZiBjaGVjazoKKy0gICAgICAgICAgICBzZWxmLl9f Y29lZmZzID0gW1IoeiwgKiprd2RzKSBmb3IgeiBpbiB4XQorLSAgICAgICAgICAgIHNlbGYuX19u b3JtYWxpemUoKQorKyAgICAgICAgICAgIHNlbGYuX2NvZWZmcyA9IFtSKHosICoqa3dkcykgZm9y IHogaW4geF0KKysgICAgICAgICAgICBzZWxmLl9ub3JtYWxpemUoKQorICAgICAgICAgZWxzZToK Ky0gICAgICAgICAgICBzZWxmLl9fY29lZmZzID0geAorKyAgICAgICAgICAgIHNlbGYuX2NvZWZm cyA9IHgKKyAKKyAgICAgY2RlZiBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UgX25ld19jKHNlbGYs IGxpc3QgY29lZmZzLCBQYXJlbnQgUCk6CisgICAgICAgICBjZGVmIHR5cGUgdCA9IHR5cGUoc2Vs ZikKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlIGYgPSA8UG9seW5vbWlh bF9nZW5lcmljX2RlbnNlPnQuX19uZXdfXyh0KQorICAgICAgICAgZi5fcGFyZW50ID0gUAorLSAg ICAgICAgZi5fX2NvZWZmcyA9IGNvZWZmcworKyAgICAgICAgZi5fY29lZmZzID0gY29lZmZzCisg ICAgICAgICByZXR1cm4gZgorIAorICAgICBjcGRlZiBQb2x5bm9taWFsIF9uZXdfY29uc3RhbnRf cG9seShzZWxmLCBhLCBQYXJlbnQgUCk6CitAQCAtMTE2NDQsMTAgKzExNjQ0LDEwIEBAIGNkZWYg Y2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgorICAgICAgICAgICAg IHNhZ2U6IHR5cGUoZikKKyAgICAgICAgICAgICA8Y2xhc3MgJ3NhZ2UucmluZ3MucG9seW5vbWlh bC5wb2x5bm9taWFsX2VsZW1lbnQuUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlJz4KKyAgICAgICAg ICIiIgorLSAgICAgICAgcmV0dXJuIG1ha2VfZ2VuZXJpY19wb2x5bm9taWFsLCAoc2VsZi5fcGFy ZW50LCBzZWxmLl9fY29lZmZzKQorKyAgICAgICAgcmV0dXJuIG1ha2VfZ2VuZXJpY19wb2x5bm9t aWFsLCAoc2VsZi5fcGFyZW50LCBzZWxmLl9jb2VmZnMpCisgCisgICAgIGRlZiBfX2Jvb2xfXyhz ZWxmKToKKy0gICAgICAgIHJldHVybiBib29sKHNlbGYuX19jb2VmZnMpCisrICAgICAgICByZXR1 cm4gYm9vbChzZWxmLl9jb2VmZnMpCisgCisgICAgIGNwZGVmIGJpbnQgaXNfdGVybShzZWxmKSBl eGNlcHQgLTE6CisgICAgICAgICAiIiIKK0BAIC0xMTY2NywxMCArMTE2NjcsMTAgQEAgY2RlZiBj bGFzcyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAg c2FnZTogKDEgKyAzKnheNSkuaXNfdGVybSgpCisgICAgICAgICAgICAgRmFsc2UKKyAgICAgICAg ICIiIgorLSAgICAgICAgaWYgbm90IHNlbGYuX19jb2VmZnM6CisrICAgICAgICBpZiBub3Qgc2Vs Zi5fY29lZmZzOgorICAgICAgICAgICAgIHJldHVybiBGYWxzZQorIAorLSAgICAgICAgZm9yIGMg aW4gc2VsZi5fX2NvZWZmc1s6LTFdOgorKyAgICAgICAgZm9yIGMgaW4gc2VsZi5fY29lZmZzWzot MV06CisgICAgICAgICAgICAgaWYgYzoKKyAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisg ICAgICAgICByZXR1cm4gVHJ1ZQorQEAgLTExNjgyLDkgKzExNjgyLDkgQEAgY2RlZiBjbGFzcyBQ b2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoUG9seW5vbWlhbCk6CisgICAgICAgICBSZXR1cm4gdGhl IHByb2R1Y3QgYGBzZWxmICogdGVybWBgLCB3aGVyZSBgYHRlcm1gYCBpcyBhIHBvbHlub21pYWwK KyAgICAgICAgIHdpdGggYSBzaW5nbGUgdGVybS4KKyAgICAgICAgICIiIgorLSAgICAgICAgY2Rl ZiBQeV9zc2l6ZV90IGQgPSBsZW4oICg8UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlPiB0ZXJtKS5f X2NvZWZmcyApIC0gMQorKyAgICAgICAgY2RlZiBQeV9zc2l6ZV90IGQgPSBsZW4oICg8UG9seW5v bWlhbF9nZW5lcmljX2RlbnNlPiB0ZXJtKS5fY29lZmZzICkgLSAxCisgICAgICAgICBjZGVmIFB5 X3NzaXplX3QgaQorLSAgICAgICAgY2RlZiBsaXN0IHggPSBzZWxmLl9fY29lZmZzCisrICAgICAg ICBjZGVmIGxpc3QgeCA9IHNlbGYuX2NvZWZmcworICAgICAgICAgY2RlZiBQeV9zc2l6ZV90IGVs bCA9IGxlbih4KQorICAgICAgICAgYyA9IHRlcm0uZ2V0X3Vuc2FmZShkKQorICAgICAgICAgY2Rl ZiBsaXN0IHYgPSBbc2VsZi5iYXNlX3JpbmcoKS56ZXJvKCldICogKGQgKyBlbGwpCitAQCAtMTE2 OTcsMTAgKzExNjk3LDEwIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBv bHlub21pYWwpOgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UgcmVzID0g c2VsZi5fbmV3X2Modiwgc2VsZi5fcGFyZW50KQorICAgICAgICAgI2lmIG5vdCB2W2xlbih2KS0x XToKKyAgICAgICAgICMgIm5vcm1hbGl6ZSIgY2hlY2tzIHRoaXMgYW55d2F5Li4uCistICAgICAg ICByZXMuX19ub3JtYWxpemUoKQorKyAgICAgICAgcmVzLl9ub3JtYWxpemUoKQorICAgICAgICAg cmV0dXJuIHJlcworIAorLSAgICBjZGVmIGludCBfX25vcm1hbGl6ZShzZWxmKSBleGNlcHQgLTE6 CisrICAgIGNkZWYgaW50IF9ub3JtYWxpemUoc2VsZikgZXhjZXB0IC0xOgorICAgICAgICAgIiIi CisgICAgICAgICBURVNUUzoKKyAKK0BAIC0xMTcxOCw3ICsxMTcxOCw3IEBAIGNkZWYgY2xhc3Mg UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgorICAgICAgICAgICAgIC4uLgor ICAgICAgICAgICAgIE5vdEltcGxlbWVudGVkRXJyb3I6IGNhbm5vdCBjaGVjayB3aGV0aGVyIG51 bWJlciBpcyBub24temVybworICAgICAgICAgIiIiCistICAgICAgICBjZGVmIGxpc3QgeCA9IHNl bGYuX19jb2VmZnMKKysgICAgICAgIGNkZWYgbGlzdCB4ID0gc2VsZi5fY29lZmZzCisgICAgICAg ICBjZGVmIFB5X3NzaXplX3QgbiA9IGxlbih4KSAtIDEKKyAgICAgICAgIHdoaWxlIG4gPj0gMCBh bmQgbm90IHhbbl06CisgICAgICAgICAgICAgZGVsIHhbbl0KK0BAIC0xMTc0Nyw3ICsxMTc0Nyw3 IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgorICAg ICAgICAgICAgIHNhZ2U6IGZbOjNdCisgICAgICAgICAgICAgNDAuMCp4XjIgKyAxMC4wKnggKyAx LjAKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIHNlbGYuX19jb2VmZnNbbl0KKysgICAg ICAgIHJldHVybiBzZWxmLl9jb2VmZnNbbl0KKyAKKyAgICAgZGVmIF91bnNhZmVfbXV0YXRlKHNl bGYsIG4sIHZhbHVlKToKKyAgICAgICAgICIiIgorQEAgLTExNzcwLDE3ICsxMTc3MCwxNyBAQCBj ZGVmIGNsYXNzIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShQb2x5bm9taWFsKToKKyAgICAgICAg ICIiIgorICAgICAgICAgbiA9IGludChuKQorICAgICAgICAgdmFsdWUgPSBzZWxmLmJhc2Vfcmlu ZygpKHZhbHVlKQorLSAgICAgICAgaWYgbiA+PSAwIGFuZCBuIDwgbGVuKHNlbGYuX19jb2VmZnMp OgorLSAgICAgICAgICAgIHNlbGYuX19jb2VmZnNbbl0gPSB2YWx1ZQorLSAgICAgICAgICAgIGlm IG4gPT0gbGVuKHNlbGYuX19jb2VmZnMpIGFuZCB2YWx1ZSA9PSAwOgorLSAgICAgICAgICAgICAg ICBzZWxmLl9fbm9ybWFsaXplKCkKKysgICAgICAgIGlmIG4gPj0gMCBhbmQgbiA8IGxlbihzZWxm Ll9jb2VmZnMpOgorKyAgICAgICAgICAgIHNlbGYuX2NvZWZmc1tuXSA9IHZhbHVlCisrICAgICAg ICAgICAgaWYgbiA9PSBsZW4oc2VsZi5fY29lZmZzKSBhbmQgdmFsdWUgPT0gMDoKKysgICAgICAg ICAgICAgICAgc2VsZi5fbm9ybWFsaXplKCkKKyAgICAgICAgIGVsaWYgbiA8IDA6CisgICAgICAg ICAgICAgcmFpc2UgSW5kZXhFcnJvcigicG9seW5vbWlhbCBjb2VmZmljaWVudCBpbmRleCBtdXN0 IGJlIG5vbm5lZ2F0aXZlIikKKyAgICAgICAgIGVsaWYgdmFsdWUgIT0gMDoKKyAgICAgICAgICAg ICB6ZXJvID0gc2VsZi5iYXNlX3JpbmcoKS56ZXJvKCkKKy0gICAgICAgICAgICBmb3IgXyBpbiBy YW5nZShsZW4oc2VsZi5fX2NvZWZmcyksIG4pOgorLSAgICAgICAgICAgICAgICBzZWxmLl9fY29l ZmZzLmFwcGVuZCh6ZXJvKQorLSAgICAgICAgICAgIHNlbGYuX19jb2VmZnMuYXBwZW5kKHZhbHVl KQorKyAgICAgICAgICAgIGZvciBfIGluIHJhbmdlKGxlbihzZWxmLl9jb2VmZnMpLCBuKToKKysg ICAgICAgICAgICAgICAgc2VsZi5fY29lZmZzLmFwcGVuZCh6ZXJvKQorKyAgICAgICAgICAgIHNl bGYuX2NvZWZmcy5hcHBlbmQodmFsdWUpCisgCisgICAgIGRlZiBfX2Zsb29yZGl2X18oc2VsZiwg cmlnaHQpOgorICAgICAgICAgIiIiCitAQCAtMTE4MjIsOCArMTE4MjIsOCBAQCBjZGVmIGNsYXNz IFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShQb2x5bm9taWFsKToKKyAgICAgICAgICAgICByZXR1 cm4gKDxQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2U+c2VsZikuX2Zsb29yZGl2Xyg8UG9seW5vbWlh bF9nZW5lcmljX2RlbnNlPnJpZ2h0KQorICAgICAgICAgUCA9IHBhcmVudChzZWxmKQorICAgICAg ICAgZCA9IFAuYmFzZV9yaW5nKCkocmlnaHQpCistICAgICAgICBjZGVmIFBvbHlub21pYWxfZ2Vu ZXJpY19kZW5zZSByZXMgPSAoPFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZT5zZWxmKS5fbmV3X2Mo W2MgLy8gZCBmb3IgYyBpbiAoPFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZT5zZWxmKS5fX2NvZWZm c10sIFApCistICAgICAgICByZXMuX19ub3JtYWxpemUoKQorKyAgICAgICAgY2RlZiBQb2x5bm9t aWFsX2dlbmVyaWNfZGVuc2UgcmVzID0gKDxQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2U+c2VsZiku X25ld19jKFtjIC8vIGQgZm9yIGMgaW4gKDxQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2U+c2VsZiku X2NvZWZmc10sIFApCisrICAgICAgICByZXMuX25vcm1hbGl6ZSgpCisgICAgICAgICByZXR1cm4g cmVzCisgCisgICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KToKK0BAIC0xMTgzOSw4ICsxMTgz OSw4IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgor ICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZSByZXMK KyAgICAgICAgIGNkZWYgUHlfc3NpemVfdCBjaGVjaz0wLCBpLCBtaW4KKy0gICAgICAgIHggPSAo PFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZT5zZWxmKS5fX2NvZWZmcworLSAgICAgICAgeSA9ICg8 UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlPnJpZ2h0KS5fX2NvZWZmcworKyAgICAgICAgeCA9ICg8 UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlPnNlbGYpLl9jb2VmZnMKKysgICAgICAgIHkgPSAoPFBv bHlub21pYWxfZ2VuZXJpY19kZW5zZT5yaWdodCkuX2NvZWZmcworICAgICAgICAgaWYgbGVuKHgp ID4gbGVuKHkpOgorICAgICAgICAgICAgIG1pbiA9IGxlbih5KQorICAgICAgICAgICAgIGhpZ2gg PSB4W21pbjpdCitAQCAtMTE4NTIsNyArMTE4NTIsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxf Z2VuZXJpY19kZW5zZShQb2x5bm9taWFsKToKKyAgICAgICAgIGNkZWYgbGlzdCBsb3cgPSBbeFtp XSArIHlbaV0gZm9yIGkgZnJvbSAwIDw9IGkgPCBtaW5dCisgICAgICAgICBpZiBsZW4oeCkgPT0g bGVuKHkpOgorICAgICAgICAgICAgIHJlcyA9IHNlbGYuX25ld19jKGxvdywgc2VsZi5fcGFyZW50 KQorLSAgICAgICAgICAgIHJlcy5fX25vcm1hbGl6ZSgpCisrICAgICAgICAgICAgcmVzLl9ub3Jt YWxpemUoKQorICAgICAgICAgICAgIHJldHVybiByZXMKKyAgICAgICAgIGVsc2U6CisgICAgICAg ICAgICAgcmV0dXJuIHNlbGYuX25ld19jKGxvdyArIGhpZ2gsIHNlbGYuX3BhcmVudCkKK0BAIC0x MTg2MCw4ICsxMTg2MCw4IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBv bHlub21pYWwpOgorICAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCk6CisgICAgICAgICBjZGVm IFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZSByZXMKKyAgICAgICAgIGNkZWYgUHlfc3NpemVfdCBj aGVjaz0wLCBpLCBtaW4KKy0gICAgICAgIHggPSAoPFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZT5z ZWxmKS5fX2NvZWZmcworLSAgICAgICAgeSA9ICg8UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlPnJp Z2h0KS5fX2NvZWZmcworKyAgICAgICAgeCA9ICg8UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlPnNl bGYpLl9jb2VmZnMKKysgICAgICAgIHkgPSAoPFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZT5yaWdo dCkuX2NvZWZmcworICAgICAgICAgaWYgbGVuKHgpID4gbGVuKHkpOgorICAgICAgICAgICAgIG1p biA9IGxlbih5KQorICAgICAgICAgICAgIGhpZ2ggPSB4W21pbjpdCitAQCAtMTE4NzMsMzMgKzEx ODczLDMzIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwp OgorICAgICAgICAgbG93ID0gW3hbaV0gLSB5W2ldIGZvciBpIGZyb20gMCA8PSBpIDwgbWluXQor ICAgICAgICAgaWYgbGVuKHgpID09IGxlbih5KToKKyAgICAgICAgICAgICByZXMgPSBzZWxmLl9u ZXdfYyhsb3csIHNlbGYuX3BhcmVudCkKKy0gICAgICAgICAgICByZXMuX19ub3JtYWxpemUoKQor KyAgICAgICAgICAgIHJlcy5fbm9ybWFsaXplKCkKKyAgICAgICAgICAgICByZXR1cm4gcmVzCisg ICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyhsb3cgKyBoaWdo LCBzZWxmLl9wYXJlbnQpCisgCisgICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVtZW50IGMpOgor LSAgICAgICAgaWYgbm90IHNlbGYuX19jb2VmZnM6CisrICAgICAgICBpZiBub3Qgc2VsZi5fY29l ZmZzOgorICAgICAgICAgICAgIHJldHVybiBzZWxmCistICAgICAgICBpZiBjLl9wYXJlbnQgaXMg bm90ICg8RWxlbWVudD5zZWxmLl9fY29lZmZzWzBdKS5fcGFyZW50OgorLSAgICAgICAgICAgIGMg PSAoPEVsZW1lbnQ+c2VsZi5fX2NvZWZmc1swXSkuX3BhcmVudC5jb2VyY2UoYykKKy0gICAgICAg IHYgPSBbYyAqIGEgZm9yIGEgaW4gc2VsZi5fX2NvZWZmc10KKysgICAgICAgIGlmIGMuX3BhcmVu dCBpcyBub3QgKDxFbGVtZW50PnNlbGYuX2NvZWZmc1swXSkuX3BhcmVudDoKKysgICAgICAgICAg ICBjID0gKDxFbGVtZW50PnNlbGYuX2NvZWZmc1swXSkuX3BhcmVudC5jb2VyY2UoYykKKysgICAg ICAgIHYgPSBbYyAqIGEgZm9yIGEgaW4gc2VsZi5fY29lZmZzXQorICAgICAgICAgY2RlZiBQb2x5 bm9taWFsX2dlbmVyaWNfZGVuc2UgcmVzID0gc2VsZi5fbmV3X2Modiwgc2VsZi5fcGFyZW50KQor ICAgICAgICAgI2lmIG5vdCB2W2xlbih2KS0xXToKKyAgICAgICAgICMgIm5vcm1hbGl6ZSIgY2hl Y2tzIHRoaXMgYW55d2F5Li4uCistICAgICAgICByZXMuX19ub3JtYWxpemUoKQorKyAgICAgICAg cmVzLl9ub3JtYWxpemUoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorICAgICBjcGRlZiBfbG11 bF8oc2VsZiwgRWxlbWVudCBjKToKKy0gICAgICAgIGlmIG5vdCBzZWxmLl9fY29lZmZzOgorKyAg ICAgICAgaWYgbm90IHNlbGYuX2NvZWZmczoKKyAgICAgICAgICAgICByZXR1cm4gc2VsZgorLSAg ICAgICAgaWYgYy5fcGFyZW50IGlzIG5vdCAoPEVsZW1lbnQ+c2VsZi5fX2NvZWZmc1swXSkuX3Bh cmVudDoKKy0gICAgICAgICAgICBjID0gKDxFbGVtZW50PnNlbGYuX19jb2VmZnNbMF0pLl9wYXJl bnQuY29lcmNlKGMpCistICAgICAgICB2ID0gW2EgKiBjIGZvciBhIGluIHNlbGYuX19jb2VmZnNd CisrICAgICAgICBpZiBjLl9wYXJlbnQgaXMgbm90ICg8RWxlbWVudD5zZWxmLl9jb2VmZnNbMF0p Ll9wYXJlbnQ6CisrICAgICAgICAgICAgYyA9ICg8RWxlbWVudD5zZWxmLl9jb2VmZnNbMF0pLl9w YXJlbnQuY29lcmNlKGMpCisrICAgICAgICB2ID0gW2EgKiBjIGZvciBhIGluIHNlbGYuX2NvZWZm c10KKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlIHJlcyA9IHNlbGYuX25l d19jKHYsIHNlbGYuX3BhcmVudCkKKyAgICAgICAgICNpZiBub3QgdltsZW4odiktMV06CisgICAg ICAgICAjICJub3JtYWxpemUiIGNoZWNrcyB0aGlzIGFueXdheS4uLgorLSAgICAgICAgcmVzLl9f bm9ybWFsaXplKCkKKysgICAgICAgIHJlcy5fbm9ybWFsaXplKCkKKyAgICAgICAgIHJldHVybiBy ZXMKKyAKKyAgICAgY3BkZWYgY29uc3RhbnRfY29lZmZpY2llbnQoc2VsZik6CitAQCAtMTE5MTYs MTAgKzExOTE2LDEwIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlu b21pYWwpOgorICAgICAgICAgICAgIHNhZ2U6IGYuY29uc3RhbnRfY29lZmZpY2llbnQoKQorICAg ICAgICAgICAgIHQKKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgbm90IHNlbGYuX19jb2VmZnM6 CisrICAgICAgICBpZiBub3Qgc2VsZi5fY29lZmZzOgorICAgICAgICAgICAgIHJldHVybiBzZWxm LmJhc2VfcmluZygpLnplcm8oKQorICAgICAgICAgZWxzZToKKy0gICAgICAgICAgICByZXR1cm4g c2VsZi5fX2NvZWZmc1swXQorKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9jb2VmZnNbMF0KKyAK KyAgICAgY3BkZWYgbGlzdCBsaXN0KHNlbGYsIGJpbnQgY29weT1UcnVlKToKKyAgICAgICAgICIi IgorQEAgLTExOTM0LDkgKzExOTM0LDkgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2dlbmVyaWNf ZGVuc2UoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgWzEsIDksIDEyLCA4XQorICAgICAgICAg IiIiCisgICAgICAgICBpZiBjb3B5OgorLSAgICAgICAgICAgIHJldHVybiBsaXN0KHNlbGYuX19j b2VmZnMpCisrICAgICAgICAgICAgcmV0dXJuIGxpc3Qoc2VsZi5fY29lZmZzKQorICAgICAgICAg ZWxzZToKKy0gICAgICAgICAgICByZXR1cm4gc2VsZi5fX2NvZWZmcworKyAgICAgICAgICAgIHJl dHVybiBzZWxmLl9jb2VmZnMKKyAKKyAgICAgZGVmIGRlZ3JlZShzZWxmLCBnZW49Tm9uZSk6Cisg ICAgICAgICAiIiIKK0BAIC0xMTk1NSw3ICsxMTk1NSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlh bF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgorICAgICAgICAgICAgIDxjbGFzcyAnc2FnZS5y aW5ncy5pbnRlZ2VyLkludGVnZXInPgorIAorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4g c21hbGxJbnRlZ2VyKGxlbihzZWxmLl9fY29lZmZzKSAtIDEpCisrICAgICAgICByZXR1cm4gc21h bGxJbnRlZ2VyKGxlbihzZWxmLl9jb2VmZnMpIC0gMSkKKyAKKyAgICAgZGVmIHNoaWZ0KHNlbGYs IFB5X3NzaXplX3Qgbik6CisgICAgICAgICByIiIiCitAQCAtMTE5OTMsMTMgKzExOTkzLDEzIEBA IGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgorICAgICAg ICAgICAgIHJldHVybiBzZWxmCisgICAgICAgICBpZiBuID4gMDoKKyAgICAgICAgICAgICBvdXRw dXQgPSBbc2VsZi5iYXNlX3JpbmcoKS56ZXJvKCldICogbgorLSAgICAgICAgICAgIG91dHB1dC5l eHRlbmQoc2VsZi5fX2NvZWZmcykKKysgICAgICAgICAgICBvdXRwdXQuZXh0ZW5kKHNlbGYuX2Nv ZWZmcykKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2Mob3V0cHV0LCBzZWxmLl9wYXJl bnQpCisgICAgICAgICBpZiBuIDwgMDoKKy0gICAgICAgICAgICBpZiBuID4gbGVuKHNlbGYuX19j b2VmZnMpIC0gMToKKysgICAgICAgICAgICBpZiBuID4gbGVuKHNlbGYuX2NvZWZmcykgLSAxOgor ICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fcGFyZW50KFtdKQorICAgICAgICAgICAgIGVs c2U6CistICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyhzZWxmLl9fY29lZmZzWy1p bnQobik6XSwgc2VsZi5fcGFyZW50KQorKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fbmV3 X2Moc2VsZi5fY29lZmZzWy1pbnQobik6XSwgc2VsZi5fcGFyZW50KQorIAorICAgICBAY29lcmNl X2Jpbm9wCisgICAgIGRlZiBxdW9fcmVtKHNlbGYsIG90aGVyKToKK0BAIC0xMjA3Myw4ICsxMjA3 Myw4IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgor ICAgICAgICAgICAgIHJldHVybiBzZWxmLCBzZWxmCisgCisgICAgICAgICBSID0gc2VsZi5fcGFy ZW50LmJhc2VfcmluZygpCistICAgICAgICBjZGVmIGxpc3QgeCA9IGxpc3QoKDxQb2x5bm9taWFs X2dlbmVyaWNfZGVuc2U+c2VsZikuX19jb2VmZnMpICMgbWFrZSBhIGNvcHkKKy0gICAgICAgIGNk ZWYgbGlzdCB5ID0gKDxQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2U+b3RoZXIpLl9fY29lZmZzCisr ICAgICAgICBjZGVmIGxpc3QgeCA9IGxpc3QoKDxQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2U+c2Vs ZikuX2NvZWZmcykgIyBtYWtlIGEgY29weQorKyAgICAgICAgY2RlZiBsaXN0IHkgPSAoPFBvbHlu b21pYWxfZ2VuZXJpY19kZW5zZT5vdGhlcikuX2NvZWZmcworICAgICAgICAgY2RlZiBQeV9zc2l6 ZV90IG0gPSBsZW4oeCkgICMgZGVnKHNlbGYpPW0tMQorICAgICAgICAgY2RlZiBQeV9zc2l6ZV90 IG4gPSBsZW4oeSkgICMgZGVnKG90aGVyKT1uLTEKKyAgICAgICAgIGlmIG0gPCBuOgorQEAgLTEy MTM1LDE4ICsxMjEzNSwxOCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShQ b2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdlOiB0eXBlKGYpCisgICAgICAgICAgICAgPGNs YXNzICdzYWdlLnJpbmdzLnBvbHlub21pYWwucG9seW5vbWlhbF9lbGVtZW50LlBvbHlub21pYWxf Z2VuZXJpY19kZW5zZSc+CisgICAgICAgICAiIiIKKy0gICAgICAgIGwgPSBsZW4oc2VsZi5fX2Nv ZWZmcykKKysgICAgICAgIGwgPSBsZW4oc2VsZi5fY29lZmZzKQorICAgICAgICAgaWYgbiA+IGw6 CisgICAgICAgICAgICAgbiA9IGwKKy0gICAgICAgIHdoaWxlIG4gPiAwIGFuZCBub3Qgc2VsZi5f X2NvZWZmc1tuLTFdOgorKyAgICAgICAgd2hpbGUgbiA+IDAgYW5kIG5vdCBzZWxmLl9jb2VmZnNb bi0xXToKKyAgICAgICAgICAgICBuIC09IDEKKy0gICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyhz ZWxmLl9fY29lZmZzWzpuXSwgc2VsZi5fcGFyZW50KQorKyAgICAgICAgcmV0dXJuIHNlbGYuX25l d19jKHNlbGYuX2NvZWZmc1s6bl0sIHNlbGYuX3BhcmVudCkKKyAKKyAgICAgY2RlZiBfaW5wbGFj ZV90cnVuY2F0ZShzZWxmLCBsb25nIG4pOgorLSAgICAgICAgaWYgbiA8IGxlbihzZWxmLl9fY29l ZmZzKToKKy0gICAgICAgICAgICB3aGlsZSBuID4gMCBhbmQgbm90IHNlbGYuX19jb2VmZnNbbi0x XToKKysgICAgICAgIGlmIG4gPCBsZW4oc2VsZi5fY29lZmZzKToKKysgICAgICAgICAgICB3aGls ZSBuID4gMCBhbmQgbm90IHNlbGYuX2NvZWZmc1tuLTFdOgorICAgICAgICAgICAgICAgICBuIC09 IDEKKy0gICAgICAgIHNlbGYuX19jb2VmZnMgPSBzZWxmLl9fY29lZmZzWzpuXQorKyAgICAgICAg c2VsZi5fY29lZmZzID0gc2VsZi5fY29lZmZzWzpuXQorICAgICAgICAgcmV0dXJuIHNlbGYKKyAK KyBkZWYgbWFrZV9nZW5lcmljX3BvbHlub21pYWwocGFyZW50LCBjb2VmZnMpOgorQEAgLTEyMzA1 LDcgKzEyMzA1LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2VfaW5leGFj dChQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UpOgorIAorICAgICAtIFhhdmllciBDYXJ1c28gKDIw MTMtMDMpCisgICAgICIiIgorLSAgICBjZGVmIGludCBfX25vcm1hbGl6ZShzZWxmKSBleGNlcHQg LTE6CisrICAgIGNkZWYgaW50IF9ub3JtYWxpemUoc2VsZikgZXhjZXB0IC0xOgorICAgICAgICAg ciIiIgorICAgICAgICAgVEVTVFM6OgorIAorQEAgLTEyMzE2LDcgKzEyMzE2LDcgQEAgY2RlZiBj bGFzcyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2VfaW5leGFjdChQb2x5bm9taWFsX2dlbmVyaWNf ZGVuc2UpOgorICAgICAgICAgICAgIHNhZ2U6IFMoWzEsIFIoMCwgMjApXSkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG5lZWRzIHNhZ2Uucmlu Z3MucGFkaWNzCisgICAgICAgICAgICAgTyg1XjIwKSp4ICsgMSArIE8oNV4yMCkKKyAgICAgICAg ICIiIgorLSAgICAgICAgY2RlZiBsaXN0IHggPSBzZWxmLl9fY29lZmZzCisrICAgICAgICBjZGVm IGxpc3QgeCA9IHNlbGYuX2NvZWZmcworICAgICAgICAgY2RlZiBQeV9zc2l6ZV90IG4gPSBsZW4o eCkgLSAxCisgICAgICAgICBjZGVmIFJpbmdFbGVtZW50IGMKKyAgICAgICAgIHdoaWxlIG4gPj0g MDoKK0BAIC0xMjM3Niw3ICsxMjM3Niw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmlj X2RlbnNlX2luZXhhY3QoUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKToKKyAKKyAgICAgICAgIC0g WGF2aWVyIENhcnVzbyAoMjAxMy0wMykKKyAgICAgICAgICIiIgorLSAgICAgICAgY29lZmZzID0g c2VsZi5fX2NvZWZmcworKyAgICAgICAgY29lZmZzID0gc2VsZi5fY29lZmZzCisgICAgICAgICBk ID0gbGVuKGNvZWZmcykgLSAxCisgICAgICAgICB3aGlsZSBkID49IDA6CisgICAgICAgICAgICAg YyA9IGNvZWZmc1tkXQorQEAgLTEyNDIwLDcgKzEyNDIwLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9t aWFsX2dlbmVyaWNfZGVuc2VfaW5leGFjdChQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UpOgorIAor ICAgICAgICAgLSBYYXZpZXIgQ2FydXNvICgyMDEzLTAzKQorICAgICAgICAgIiIiCistICAgICAg ICByZXR1cm4gbGVuKHNlbGYuX19jb2VmZnMpIC0gMQorKyAgICAgICAgcmV0dXJuIGxlbihzZWxm Ll9jb2VmZnMpIC0gMQorIAorIAorIGNkZWYgY2xhc3MgQ29uc3RhbnRQb2x5bm9taWFsU2VjdGlv bihNYXApOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlh bF9pbnRlZ2VyX2RlbnNlX2ZsaW50LnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9s eW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50LnB4ZAoraW5kZXggMDNjNWNlYmJmMDkuLmIxYjU5 M2Q2YTI2IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFs X2ludGVnZXJfZGVuc2VfZmxpbnQucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFs L3BvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludC5weGQKK0BAIC01LDcgKzUsNyBAQCBmcm9t IHNhZ2UucmluZ3MuaW50ZWdlciBjaW1wb3J0IEludGVnZXIKKyBmcm9tIHNhZ2Uuc3RydWN0dXJl LnBhcmVudCBjaW1wb3J0IFBhcmVudAorIAorIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2Vy X2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorLSAgICBjZGVmIGZtcHpfcG9seV90IF9fcG9seQor KyAgICBjZGVmIGZtcHpfcG9seV90IF9wb2x5CisgCisgICAgIGNkZWYgUG9seW5vbWlhbF9pbnRl Z2VyX2RlbnNlX2ZsaW50IF9uZXcoc2VsZikKKyAgICAgY3BkZWYgX3Vuc2FmZV9tdXRhdGUoc2Vs ZiwgbG9uZyBuLCB2YWx1ZSkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFs L3BvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludC5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5 bm9taWFsL3BvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludC5weXgKK2luZGV4IGUyMDFhYzg0 M2FkLi4xOTRlYjkyNjNiMiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwv cG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50LnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3Mv cG9seW5vbWlhbC9wb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQucHl4CitAQCAtOTksMTQg Kzk5LDE0IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlu b21pYWwpOgorICAgICAgICAgciIiIgorICAgICAgICAgVGhpcyBjYWxscyB0aGUgdW5kZXJseWlu ZyBGTElOVCBmbXB6X3BvbHkgY29uc3RydWN0b3IKKyAgICAgICAgICIiIgorLSAgICAgICAgZm1w el9wb2x5X2luaXQoc2VsZi5fX3BvbHkpCisrICAgICAgICBmbXB6X3BvbHlfaW5pdChzZWxmLl9w b2x5KQorIAorIAorICAgICBkZWYgX19kZWFsbG9jX18oc2VsZik6CisgICAgICAgICByIiIiCisg ICAgICAgICBjYWxscyB0aGUgdW5kZXJseWluZyBGTElOVCBmbXB6X3BvbHkgZGVzdHJ1Y3Rvcgor ICAgICAgICAgIiIiCistICAgICAgICBmbXB6X3BvbHlfY2xlYXIoc2VsZi5fX3BvbHkpCisrICAg ICAgICBmbXB6X3BvbHlfY2xlYXIoc2VsZi5fcG9seSkKKyAKKyAgICAgY2RlZiBQb2x5bm9taWFs X2ludGVnZXJfZGVuc2VfZmxpbnQgX25ldyhzZWxmKToKKyAgICAgICAgIHIiIiIKK0BAIC0xMzks NyArMTM5LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9s eW5vbWlhbCk6CisgICAgICAgICB4Ll9pc19nZW4gPSAwCisgICAgICAgICBpZiBub3QgaXNpbnN0 YW5jZShhLCBJbnRlZ2VyKToKKyAgICAgICAgICAgICBhID0gWlooYSkKKy0gICAgICAgIGZtcHpf cG9seV9zZXRfY29lZmZfbXB6KHguX19wb2x5LCAwLCAoPEludGVnZXI+YSkudmFsdWUpCisrICAg ICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX21weih4Ll9wb2x5LCAwLCAoPEludGVnZXI+YSkudmFs dWUpCisgICAgICAgICByZXR1cm4geAorIAorICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50 LCB4PU5vbmUsIGNoZWNrPVRydWUsIGlzX2dlbj1GYWxzZSwKK0BAIC0yMjQsOCArMjI0LDggQEAg Y2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6Cisg ICAgICAgICBpZiBpc2luc3RhbmNlKHgsIFBvbHlub21pYWwpOgorICAgICAgICAgICAgIGlmIHgu cGFyZW50KCkgaXMgc2VsZi5wYXJlbnQoKToKKyAgICAgICAgICAgICAgICAgc2lnX29uKCkKKy0g ICAgICAgICAgICAgICAgZm1wel9wb2x5X3NldChzZWxmLl9fcG9seSwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludD54KS5fX3Bv bHkpCisrICAgICAgICAgICAgICAgIGZtcHpfcG9seV9zZXQoc2VsZi5fcG9seSwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludD54 KS5fcG9seSkKKyAgICAgICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAgICAgICAgICAgIHJl dHVybgorICAgICAgICAgICAgIGVsc2U6CitAQCAtMjQ2LDcgKzI0Niw3IEBAIGNkZWYgY2xhc3Mg UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAg ICAgICAgICAgZGVncmVlID0gaQorICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAg c2lnX29uKCkKKy0gICAgICAgICAgICAgICAgZm1wel9wb2x5X3JlYWxsb2Moc2VsZi5fX3BvbHks IGRlZ3JlZSArIDEpCisrICAgICAgICAgICAgICAgIGZtcHpfcG9seV9yZWFsbG9jKHNlbGYuX3Bv bHksIGRlZ3JlZSArIDEpCisgICAgICAgICAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgICAg IGV4Y2VwdCBSdW50aW1lRXJyb3I6CisgICAgICAgICAgICAgICAgIHJhaXNlIE92ZXJmbG93RXJy b3IoIkNhbm5vdCBhbGxvY2F0ZSBtZW1vcnkhIikKK0BAIC0yNTUsMTMgKzI1NSwxMyBAQCBjZGVm IGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAg ICAgICAgICAgICAgaSA9IGlpWzBdIGlmIHR5cGUoaWkpIGlzIHR1cGxlIGVsc2UgaWkKKyAgICAg ICAgICAgICAgICAgaWYgaXNfc21hbGxfcHl0aG9uX2ludChhKToKKyAgICAgICAgICAgICAgICAg ICAgIHNpZ19vbigpCistICAgICAgICAgICAgICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX3Np KHNlbGYuX19wb2x5LCBpLCBhKQorKyAgICAgICAgICAgICAgICAgICAgZm1wel9wb2x5X3NldF9j b2VmZl9zaShzZWxmLl9wb2x5LCBpLCBhKQorICAgICAgICAgICAgICAgICAgICAgc2lnX29mZigp CisgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICBpZiBub3QgaXNp bnN0YW5jZShhLCBJbnRlZ2VyKToKKyAgICAgICAgICAgICAgICAgICAgICAgICBhID0gWlooYSkK KyAgICAgICAgICAgICAgICAgICAgIHNpZ19vbigpCistICAgICAgICAgICAgICAgICAgICBmbXB6 X3BvbHlfc2V0X2NvZWZmX21weihzZWxmLl9fcG9seSwgaSwgKDxJbnRlZ2VyPmEpLnZhbHVlKQor KyAgICAgICAgICAgICAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9tcHooc2VsZi5fcG9seSwg aSwgKDxJbnRlZ2VyPmEpLnZhbHVlKQorICAgICAgICAgICAgICAgICAgICAgc2lnX29mZigpCisg ICAgICAgICAgICAgcmV0dXJuCisgCitAQCAtMjcwLDcgKzI3MCw3IEBAIGNkZWYgY2xhc3MgUG9s eW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgIGNo ZWNrID0gRmFsc2UKKyAKKyAgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh4LCBudGxfWlpYKTogICAg IyBjb2VyY2lvbiBmcm9tIG50bC5weXggb2JqZWN0CistICAgICAgICAgICAgZm1wel9wb2x5X3Nl dF9aWlgoc2VsZi5fX3BvbHksICg8bnRsX1paWD54KS54KQorKyAgICAgICAgICAgIGZtcHpfcG9s eV9zZXRfWlpYKHNlbGYuX3BvbHksICg8bnRsX1paWD54KS54KQorICAgICAgICAgICAgIHJldHVy bgorIAorICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHgsIEZyYWN0aW9uRmllbGRFbGVtZW50KSBh bmQgXAorQEAgLTI3OCw4ICsyNzgsOCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9k ZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBpZiB4LmRlbm9taW5hdG9yKCkg PT0gMToKKyAgICAgICAgICAgICAgICAgIyBmcmFjdGlvbiBvZiB0aGUgZm9ybSBmKHgpLzEKKyAg ICAgICAgICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgICAgICAgICAgZm1wel9wb2x5X3NldChz ZWxmLl9fcG9seSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfaW50ZWdl cl9kZW5zZV9mbGludD54Lm51bWVyYXRvcigpKS5fX3BvbHkpCisrICAgICAgICAgICAgICAgIGZt cHpfcG9seV9zZXQoc2VsZi5fcG9seSwKKysgICAgICAgICAgICAgICAgICAgICAgICAoPFBvbHlu b21pYWxfaW50ZWdlcl9kZW5zZV9mbGludD54Lm51bWVyYXRvcigpKS5fcG9seSkKKyAgICAgICAg ICAgICAgICAgc2lnX29mZigpCisgICAgICAgICAgICAgICAgIHJldHVybgorIAorQEAgLTI4Nywx OSArMjg3LDE5IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBv bHlub21pYWwpOgorICAgICAgICAgICAgIHggPSBbeF0gICAjIGNvbnN0YW50IHBvbHlub21pYWxz CisgCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgZm1wel9wb2x5X3JlYWxsb2Moc2VsZi5f X3BvbHksIGxlbih4KSkKKysgICAgICAgIGZtcHpfcG9seV9yZWFsbG9jKHNlbGYuX3BvbHksIGxl bih4KSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgZm9yIGkgZnJvbSAwIDw9IGkgPCBs ZW4oeCk6CisgICAgICAgICAgICAgYSA9IHhbaV0KKyAgICAgICAgICAgICBpZiBpc19zbWFsbF9w eXRob25faW50KGEpOgorICAgICAgICAgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgICAgICAg ICBmbXB6X3BvbHlfc2V0X2NvZWZmX3NpKHNlbGYuX19wb2x5LCBpLCBhKQorKyAgICAgICAgICAg ICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX3NpKHNlbGYuX3BvbHksIGksIGEpCisgICAgICAgICAg ICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIGlm IG5vdCBpc2luc3RhbmNlKGEsIEludGVnZXIpOgorICAgICAgICAgICAgICAgICAgICAgYSA9IFpa KGEpCisgICAgICAgICAgICAgICAgIHNpZ19vbigpCistICAgICAgICAgICAgICAgIGZtcHpfcG9s eV9zZXRfY29lZmZfbXB6KHNlbGYuX19wb2x5LCBpLCAoPEludGVnZXI+YSkudmFsdWUpCisrICAg ICAgICAgICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZfbXB6KHNlbGYuX3BvbHksIGksICg8SW50 ZWdlcj5hKS52YWx1ZSkKKyAgICAgICAgICAgICAgICAgc2lnX29mZigpCisgCisgICAgIGRlZiBf ZXZhbF9tcGZyXyhzZWxmLCBSZWFsTnVtYmVyIGEpOgorQEAgLTMyNyw3ICszMjcsNyBAQCBjZGVm IGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAg ICAgICIiIgorICAgICAgICAgY2RlZiBSZWFsTnVtYmVyIHJlcyA9IGEuX25ldygpCisgICAgICAg ICBzaWdfb24oKQorLSAgICAgICAgZm1wel9wb2x5X2V2YWx1YXRpb25fbXBmcihyZXMudmFsdWUs IHNlbGYuX19wb2x5LCBhLnZhbHVlKQorKyAgICAgICAgZm1wel9wb2x5X2V2YWx1YXRpb25fbXBm cihyZXMudmFsdWUsIHNlbGYuX3BvbHksIGEudmFsdWUpCisgICAgICAgICBzaWdfb2ZmKCkKKyAg ICAgICAgIHJldHVybiByZXMKKyAKK0BAIC0zNTcsNyArMzU3LDcgQEAgY2RlZiBjbGFzcyBQb2x5 bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIGNkZWYgUmVhbEludGVydmFsRmllbGRFbGVtZW50IHJlcyA9IGEuX25ldygpCisgICAg ICAgICBzaWdfb24oKQorLSAgICAgICAgZm1wel9wb2x5X2V2YWx1YXRpb25fbXBmaShyZXMudmFs dWUsIHNlbGYuX19wb2x5LCBhLnZhbHVlKQorKyAgICAgICAgZm1wel9wb2x5X2V2YWx1YXRpb25f bXBmaShyZXMudmFsdWUsIHNlbGYuX3BvbHksIGEudmFsdWUpCisgICAgICAgICBzaWdfb2ZmKCkK KyAgICAgICAgIHJldHVybiByZXMKKyAKK0BAIC00MTIsOCArNDEyLDggQEAgY2RlZiBjbGFzcyBQ b2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAg aWYgaXNpbnN0YW5jZSh4LCBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQpOgorICAgICAg ICAgICAgICAgICBmID0gc2VsZi5fbmV3KCkKKyAgICAgICAgICAgICAgICAgc2lnX29uKCkKKy0g ICAgICAgICAgICAgICAgZm1wel9wb2x5X2NvbXBvc2UoZi5fX3BvbHksIHNlbGYuX19wb2x5LAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfaW50ZWdlcl9k ZW5zZV9mbGludD4geDApLl9fcG9seSkKKysgICAgICAgICAgICAgICAgZm1wel9wb2x5X2NvbXBv c2UoZi5fcG9seSwgc2VsZi5fcG9seSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKDxQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQ+IHgwKS5fcG9seSkKKyAgICAgICAg ICAgICAgICAgc2lnX29mZigpCisgICAgICAgICAgICAgICAgIHJldHVybiBmCisgICAgICAgICAg ICAgaWYgaXNfc21hbGxfcHl0aG9uX2ludCh4MCk6CitAQCAtNDIyLDcgKzQyMiw3IEBAIGNkZWYg Y2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAg ICAgICAgICAgICBmbXB6X2luaXQoYV9mbXB6KQorICAgICAgICAgICAgICAgICBmbXB6X2luaXQo el9mbXB6KQorICAgICAgICAgICAgICAgICBmbXB6X3NldF9zaShhX2ZtcHosIFB5SW50X0FTX0xP TkcoeDApKQorLSAgICAgICAgICAgICAgICBmbXB6X3BvbHlfZXZhbHVhdGVfZm1weih6X2ZtcHos IHNlbGYuX19wb2x5LCBhX2ZtcHopCisrICAgICAgICAgICAgICAgIGZtcHpfcG9seV9ldmFsdWF0 ZV9mbXB6KHpfZm1weiwgc2VsZi5fcG9seSwgYV9mbXB6KQorICAgICAgICAgICAgICAgICBmbXB6 X2dldF9tcHooei52YWx1ZSwgel9mbXB6KQorICAgICAgICAgICAgICAgICBmbXB6X2NsZWFyKGFf Zm1weikKKyAgICAgICAgICAgICAgICAgZm1wel9jbGVhcih6X2ZtcHopCitAQCAtNDMzLDcgKzQz Myw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21p YWwpOgorICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoeDAsIEludGVnZXIpOgorICAgICAgICAg ICAgICAgICBhID0gPEludGVnZXI+IHgwCisgCistICAgICAgICAgICAgICAgIGlmIGZtcHpfcG9s eV9sZW5ndGgoc2VsZi5fX3BvbHkpID09IDA6CisrICAgICAgICAgICAgICAgIGlmIGZtcHpfcG9s eV9sZW5ndGgoc2VsZi5fcG9seSkgPT0gMDoKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBa Wi56ZXJvKCkKKyAgICAgICAgICAgICAgICAgaWYgbXB6X3NnbihhLnZhbHVlKSA9PSAwOgorICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGZbMF0KK0BAIC00NDQsNyArNDQ0LDcgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAg ICAgICAgICAgICAgIGZtcHpfaW5pdChhX2ZtcHopCisgICAgICAgICAgICAgICAgIGZtcHpfaW5p dCh6X2ZtcHopCisgICAgICAgICAgICAgICAgIGZtcHpfc2V0X21weihhX2ZtcHosIGEudmFsdWUp CistICAgICAgICAgICAgICAgIGZtcHpfcG9seV9ldmFsdWF0ZV9mbXB6KHpfZm1weiwgc2VsZi5f X3BvbHksIGFfZm1weikKKysgICAgICAgICAgICAgICAgZm1wel9wb2x5X2V2YWx1YXRlX2ZtcHoo el9mbXB6LCBzZWxmLl9wb2x5LCBhX2ZtcHopCisgICAgICAgICAgICAgICAgIGZtcHpfZ2V0X21w eih6LnZhbHVlLCB6X2ZtcHopCisgICAgICAgICAgICAgICAgIGZtcHpfY2xlYXIoYV9mbXB6KQor ICAgICAgICAgICAgICAgICBmbXB6X2NsZWFyKHpfZm1weikKK0BAIC00NjAsMTQgKzQ2MCwxNCBA QCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToK KyAgICAgICAgICAgICAgICAgYXJiX2EgPSA8UmVhbEJhbGw+IHgwCisgICAgICAgICAgICAgICAg IGFyYl96ID0gYXJiX2EuX25ldygpCisgICAgICAgICAgICAgICAgIHNpZ19vbigpCistICAgICAg ICAgICAgICAgIGFyYl9mbXB6X3BvbHlfZXZhbHVhdGVfYXJiKGFyYl96LnZhbHVlLCBzZWxmLl9f cG9seSwgYXJiX2EudmFsdWUsIGFyYl9hLl9wYXJlbnQuX3ByZWMpCisrICAgICAgICAgICAgICAg IGFyYl9mbXB6X3BvbHlfZXZhbHVhdGVfYXJiKGFyYl96LnZhbHVlLCBzZWxmLl9wb2x5LCBhcmJf YS52YWx1ZSwgYXJiX2EuX3BhcmVudC5fcHJlYykKKyAgICAgICAgICAgICAgICAgc2lnX29mZigp CisgICAgICAgICAgICAgICAgIHJldHVybiBhcmJfegorICAgICAgICAgICAgIGlmIGlzaW5zdGFu Y2UoeDAsIENvbXBsZXhCYWxsKToKKyAgICAgICAgICAgICAgICAgYWNiX2EgPSA8Q29tcGxleEJh bGw+IHgwCisgICAgICAgICAgICAgICAgIGFjYl96ID0gYWNiX2EuX25ldygpCisgICAgICAgICAg ICAgICAgIHNpZ19vbigpCistICAgICAgICAgICAgICAgIGFyYl9mbXB6X3BvbHlfZXZhbHVhdGVf YWNiKGFjYl96LnZhbHVlLCBzZWxmLl9fcG9seSwgYWNiX2EudmFsdWUsIGFjYl9hLl9wYXJlbnQu X3ByZWMpCisrICAgICAgICAgICAgICAgIGFyYl9mbXB6X3BvbHlfZXZhbHVhdGVfYWNiKGFjYl96 LnZhbHVlLCBzZWxmLl9wb2x5LCBhY2JfYS52YWx1ZSwgYWNiX2EuX3BhcmVudC5fcHJlYykKKyAg ICAgICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAgICAgICAgICAgIHJldHVybiBhY2Jfegor IAorQEAgLTUxMCwxMCArNTEwLDEwIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2Rl bnNlX2ZsaW50KFBvbHlub21pYWwpOgorIAorICAgICAgICAgY2RlZiBmbXB6X3QgYworICAgICAg ICAgZm1wel9pbml0KGMpCistICAgICAgICBmbXB6X3BvbHlfZ2V0X2NvZWZmX2ZtcHooYywgc2Vs Zi5fX3BvbHksIGZtcHpfcG9seV9kZWdyZWUoc2VsZi5fX3BvbHkpKQorKyAgICAgICAgZm1wel9w b2x5X2dldF9jb2VmZl9mbXB6KGMsIHNlbGYuX3BvbHksIGZtcHpfcG9seV9kZWdyZWUoc2VsZi5f cG9seSkpCisgICAgICAgICBjZGVmIGludCBzaWduID0gZm1wel9zZ24oYykKKyAKKy0gICAgICAg IGZtcHpfcG9seV9jb250ZW50KGMsIHNlbGYuX19wb2x5KQorKyAgICAgICAgZm1wel9wb2x5X2Nv bnRlbnQoYywgc2VsZi5fcG9seSkKKyAKKyAgICAgICAgIGNkZWYgSW50ZWdlciB6ID0gSW50ZWdl ci5fX25ld19fKEludGVnZXIpCisgICAgICAgICBmbXB6X2dldF9tcHooei52YWx1ZSwgYykKK0BA IC01NjEsNyArNTYxLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxp bnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgNSp4XjUgKyA0KnheNCArIDMqeF4zICsgMip4 XjIgKyB4ICsgMQorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIEludGVnZXIgeiA9IEludGVn ZXIuX19uZXdfXyhJbnRlZ2VyKQorLSAgICAgICAgZm1wel9wb2x5X2dldF9jb2VmZl9tcHooei52 YWx1ZSwgc2VsZi5fX3BvbHksIG4pCisrICAgICAgICBmbXB6X3BvbHlfZ2V0X2NvZWZmX21weih6 LnZhbHVlLCBzZWxmLl9wb2x5LCBuKQorICAgICAgICAgcmV0dXJuIHoKKyAKKyAgICAgZGVmIF9y ZXByKHNlbGYsIG5hbWU9Tm9uZSwgYmludCBsYXRleD1GYWxzZSk6CitAQCAtNTgzLDggKzU4Myw4 IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwp OgorICAgICAgICAgY2RlZiBsb25nIGkKKyAgICAgICAgIGNkZWYgSW50ZWdlciBjb2VmID0gSW50 ZWdlci5fX25ld19fKEludGVnZXIpCisgICAgICAgICBjZGVmIGxpc3QgYWxsID0gW10KKy0gICAg ICAgIGZvciBpIGZyb20gZm1wel9wb2x5X2RlZ3JlZShzZWxmLl9fcG9seSkgPj0gaSA+PSAwOgor LSAgICAgICAgICAgIGZtcHpfcG9seV9nZXRfY29lZmZfbXB6KGNvZWYudmFsdWUsIHNlbGYuX19w b2x5LCBpKQorKyAgICAgICAgZm9yIGkgZnJvbSBmbXB6X3BvbHlfZGVncmVlKHNlbGYuX3BvbHkp ID49IGkgPj0gMDoKKysgICAgICAgICAgICBmbXB6X3BvbHlfZ2V0X2NvZWZmX21weihjb2VmLnZh bHVlLCBzZWxmLl9wb2x5LCBpKQorICAgICAgICAgICAgIGlmIGNvZWY6CisgICAgICAgICAgICAg ICAgIGlmIGNvZWYgPiAwOgorICAgICAgICAgICAgICAgICAgICAgc2lnbl9zdHIgPSAnKycKK0BA IC02NDksOCArNjQ5LDggQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxp bnQoUG9seW5vbWlhbCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9p bnRlZ2VyX2RlbnNlX2ZsaW50IHggPSBzZWxmLl9uZXcoKQorICAgICAgICAgc2lnX29uKCkKKy0g ICAgICAgIGZtcHpfcG9seV9hZGQoeC5fX3BvbHksIHNlbGYuX19wb2x5LAorLSAgICAgICAgICAg ICAgICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludD5yaWdodCkuX19wb2x5KQorKyAg ICAgICAgZm1wel9wb2x5X2FkZCh4Ll9wb2x5LCBzZWxmLl9wb2x5LAorKyAgICAgICAgICAgICAg ICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludD5yaWdodCkuX3BvbHkpCisgICAgICAg ICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiB4CisgCitAQCAtNjY5LDggKzY2OSw4IEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAg ICAgICAgIiIiCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludCB4 ID0gc2VsZi5fbmV3KCkKKyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBmbXB6X3BvbHlfc3Vi KHguX19wb2x5LCBzZWxmLl9fcG9seSwKKy0gICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX2lu dGVnZXJfZGVuc2VfZmxpbnQ+cmlnaHQpLl9fcG9seSkKKysgICAgICAgIGZtcHpfcG9seV9zdWIo eC5fcG9seSwgc2VsZi5fcG9seSwKKysgICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX2ludGVn ZXJfZGVuc2VfZmxpbnQ+cmlnaHQpLl9wb2x5KQorICAgICAgICAgc2lnX29mZigpCisgICAgICAg ICByZXR1cm4geAorIAorQEAgLTY4OCw3ICs2ODgsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxf aW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAg Y2RlZiBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQgeCA9IHNlbGYuX25ldygpCisgICAg ICAgICBzaWdfb24oKQorLSAgICAgICAgZm1wel9wb2x5X25lZyh4Ll9fcG9seSwgc2VsZi5fX3Bv bHkpCisrICAgICAgICBmbXB6X3BvbHlfbmVnKHguX3BvbHksIHNlbGYuX3BvbHkpCisgICAgICAg ICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiB4CisgCitAQCAtNzU4LDcgKzc1OCw3IEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAg ICAgICAgY2RlZiBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQgcnIgPSBzZWxmLl9uZXco KQorIAorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGZtcHpfcG9seV9kaXZyZW0ocXEuX19w b2x5LCByci5fX3BvbHksIHNlbGYuX19wb2x5LCByaWdodC5fX3BvbHkpCisrICAgICAgICBmbXB6 X3BvbHlfZGl2cmVtKHFxLl9wb2x5LCByci5fcG9seSwgc2VsZi5fcG9seSwgcmlnaHQuX3BvbHkp CisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiBxcSwgcnIKKyAKK0BAIC03NzYs NyArNzc2LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9s eW5vbWlhbCk6CisgICAgICAgICAgICAgc2FnZTogeC5pc196ZXJvKCkKKyAgICAgICAgICAgICBG YWxzZQorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gKGZtcHpfcG9seV9kZWdyZWUoc2Vs Zi5fX3BvbHkpID09IC0xKQorKyAgICAgICAgcmV0dXJuIChmbXB6X3BvbHlfZGVncmVlKHNlbGYu X3BvbHkpID09IC0xKQorIAorICAgICBjcGRlZiBiaW50IGlzX29uZShzZWxmKSBleGNlcHQgLTE6 CisgICAgICAgICAiIiIKK0BAIC03OTIsNyArNzkyLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFs X2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgc2FnZTogeC5p c19vbmUoKQorICAgICAgICAgICAgIEZhbHNlCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVy biBmbXB6X3BvbHlfaXNfb25lKHNlbGYuX19wb2x5KQorKyAgICAgICAgcmV0dXJuIGZtcHpfcG9s eV9pc19vbmUoc2VsZi5fcG9seSkKKyAKKyAgICAgZGVmIF9fYm9vbF9fKHNlbGYpOgorICAgICAg ICAgIiIiCitAQCAtODA4LDcgKzgwOCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2Vy X2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHNhZ2U6IGJvb2woeCkKKyAg ICAgICAgICAgICBUcnVlCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBub3QgKGZtcHpf cG9seV9kZWdyZWUoc2VsZi5fX3BvbHkpID09IC0xKQorKyAgICAgICAgcmV0dXJuIG5vdCAoZm1w el9wb2x5X2RlZ3JlZShzZWxmLl9wb2x5KSA9PSAtMSkKKyAKKyAgICAgQGNvZXJjZV9iaW5vcAor ICAgICBkZWYgZ2NkKHNlbGYsIHJpZ2h0KToKK0BAIC04MzEsOCArODMxLDggQEAgY2RlZiBjbGFz cyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAg ICAgcmV0dXJuIHNlbGYKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2Zs aW50IHggPSBzZWxmLl9uZXcoKQorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGZtcHpfcG9s eV9nY2QoeC5fX3BvbHksIHNlbGYuX19wb2x5LAorLSAgICAgICAgICAgICAgICAoPFBvbHlub21p YWxfaW50ZWdlcl9kZW5zZV9mbGludD5yaWdodCkuX19wb2x5KQorKyAgICAgICAgZm1wel9wb2x5 X2djZCh4Ll9wb2x5LCBzZWxmLl9wb2x5LAorKyAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxf aW50ZWdlcl9kZW5zZV9mbGludD5yaWdodCkuX3BvbHkpCisgICAgICAgICBzaWdfb2ZmKCkKKyAg ICAgICAgIHJldHVybiB4CisgCitAQCAtOTQxLDggKzk0MSw4IEBAIGNkZWYgY2xhc3MgUG9seW5v bWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgZm1wel9pbml0 KHIpCisgCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgZm1wel9wb2x5X3hnY2Qociwgc3Mu X19wb2x5LCB0dC5fX3BvbHksIHNlbGYuX19wb2x5LAorLSAgICAgICAgICAgICAgICAoPFBvbHlu b21pYWxfaW50ZWdlcl9kZW5zZV9mbGludD5yaWdodCkuX19wb2x5KQorKyAgICAgICAgZm1wel9w b2x5X3hnY2Qociwgc3MuX3BvbHksIHR0Ll9wb2x5LCBzZWxmLl9wb2x5LAorKyAgICAgICAgICAg ICAgICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludD5yaWdodCkuX3BvbHkpCisgICAg ICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIGNkZWYgSW50ZWdlciByciA9IEludGVnZXIuX19uZXdf XyhJbnRlZ2VyKQorICAgICAgICAgZm1wel9nZXRfbXB6KHJyLnZhbHVlLCByKQorQEAgLTk3MCw4 ICs5NzAsOCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5 bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2ludGVnZXJf ZGVuc2VfZmxpbnQgeCA9IHNlbGYuX25ldygpCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAg Zm1wel9wb2x5X211bCh4Ll9fcG9seSwgc2VsZi5fX3BvbHksCistICAgICAgICAgICAgICAgICg8 UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50PnJpZ2h0KS5fX3BvbHkpCisrICAgICAgICBm bXB6X3BvbHlfbXVsKHguX3BvbHksIHNlbGYuX3BvbHksCisrICAgICAgICAgICAgICAgICg8UG9s eW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50PnJpZ2h0KS5fcG9seSkKKyAgICAgICAgIHNpZ19v ZmYoKQorICAgICAgICAgcmV0dXJuIHgKKyAKK0BAIC0xMDAwLDggKzEwMDAsOCBAQCBjZGVmIGNs YXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAKKyAgICAg ICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50IHggPSBzZWxmLl9uZXcoKQor ICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGZtcHpfcG9seV9tdWxsb3coeC5fX3BvbHksIHNl bGYuX19wb2x5LAorLSAgICAgICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX2ludGVnZXJfZGVu c2VfZmxpbnQ+cmlnaHQpLl9fcG9seSwKKysgICAgICAgIGZtcHpfcG9seV9tdWxsb3coeC5fcG9s eSwgc2VsZi5fcG9seSwKKysgICAgICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9pbnRlZ2Vy X2RlbnNlX2ZsaW50PnJpZ2h0KS5fcG9seSwKKyAgICAgICAgICAgICAgICAgICAgIG4pCisgICAg ICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiB4CitAQCAtMTAyMCw3ICsxMDIwLDcgQEAg Y2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50 IHggPSBzZWxmLl9uZXcoKQorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGZtcHpfcG9seV9z Y2FsYXJfbXVsX21weih4Ll9fcG9seSwgc2VsZi5fX3BvbHksICg8SW50ZWdlcj5yaWdodCkudmFs dWUpCisrICAgICAgICBmbXB6X3BvbHlfc2NhbGFyX211bF9tcHooeC5fcG9seSwgc2VsZi5fcG9s eSwgKDxJbnRlZ2VyPnJpZ2h0KS52YWx1ZSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAg cmV0dXJuIHgKKyAKK0BAIC0xMDM4LDcgKzEwMzgsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxf aW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAg Y2RlZiBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQgeCA9IHNlbGYuX25ldygpCisgICAg ICAgICBzaWdfb24oKQorLSAgICAgICAgZm1wel9wb2x5X3NjYWxhcl9tdWxfbXB6KHguX19wb2x5 LCBzZWxmLl9fcG9seSwgKDxJbnRlZ2VyPnJpZ2h0KS52YWx1ZSkKKysgICAgICAgIGZtcHpfcG9s eV9zY2FsYXJfbXVsX21weih4Ll9wb2x5LCBzZWxmLl9wb2x5LCAoPEludGVnZXI+cmlnaHQpLnZh bHVlKQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4geAorIAorQEAgLTExMzIs NyArMTEzMiw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBv bHlub21pYWwpOgorICAgICAgICAgICAgIG51bSA9IG4ubnVtZXJhdG9yKCkKKyAgICAgICAgICAg ICBkZW4gPSBuLmRlbm9taW5hdG9yKCkKKyAKKy0gICAgICAgICAgICBpZiBmbXB6X3BvbHlfZGVn cmVlKHNlbGYuX19wb2x5KSA9PSAwOgorKyAgICAgICAgICAgIGlmIGZtcHpfcG9seV9kZWdyZWUo c2VsZi5fcG9seSkgPT0gMDoKKyAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYucGFyZW50KCko c2VsZlswXS5udGhfcm9vdChkZW4pICoqIG51bSkKKyAKKyAgICAgICAgICAgICByZXR1cm4gc2Vs Zi5udGhfcm9vdChkZW4pICoqIG51bQorQEAgLTExNDIsNyArMTE0Miw3IEBAIGNkZWYgY2xhc3Mg UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorIAorICAgICAgICAg ICAgIGlmIHNlbGYuaXNfemVybygpOgorICAgICAgICAgICAgICAgICBpZiBubiA9PSAwOgorLSAg ICAgICAgICAgICAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9zaShyZXMuX19wb2x5LCAwLCAx KQorKyAgICAgICAgICAgICAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9zaShyZXMuX3BvbHks IDAsIDEpCisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzCisgICAgICAgICAgICAgICAg IGVsaWYgbm4gPCAwOgorICAgICAgICAgICAgICAgICAgICAgcmFpc2UgWmVyb0RpdmlzaW9uRXJy b3IoIm5lZ2F0aXZlIGV4cG9uZW50IGluIHBvd2VyIG9mIHplcm8iKQorQEAgLTExNTAsMTcgKzEx NTAsMTcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5v bWlhbCk6CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzCisgICAgICAgICAgICAgaWYg bm4gPCAwOgorICAgICAgICAgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgICAgICAgICBmbXB6 X3BvbHlfcG93KHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCAtbm4pCisrICAgICAgICAgICAgICAg IGZtcHpfcG9seV9wb3cocmVzLl9wb2x5LCBzZWxmLl9wb2x5LCAtbm4pCisgICAgICAgICAgICAg ICAgIHNpZ19vZmYoKQorICAgICAgICAgICAgICAgICByZXR1cm4gfnJlcworICAgICAgICAgICAg IGVsc2U6CisgICAgICAgICAgICAgICAgIGlmIHNlbGYgaXMgc2VsZi5fcGFyZW50LmdlbigpOgor ICAgICAgICAgICAgICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgICAgICAgICAgICAgIGZtcHpf cG9seV9zZXRfY29lZmZfdWkocmVzLl9fcG9seSwgbm4sIDEpCisrICAgICAgICAgICAgICAgICAg ICBmbXB6X3BvbHlfc2V0X2NvZWZmX3VpKHJlcy5fcG9seSwgbm4sIDEpCisgICAgICAgICAgICAg ICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg ICAgICAgIHNpZ19vbigpCistICAgICAgICAgICAgICAgICAgICBmbXB6X3BvbHlfcG93KHJlcy5f X3BvbHksIHNlbGYuX19wb2x5LCBubikKKysgICAgICAgICAgICAgICAgICAgIGZtcHpfcG9seV9w b3cocmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBubikKKyAgICAgICAgICAgICAgICAgICAgIHNpZ19v ZmYoKQorICAgICAgICAgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtMTE4Nyw3ICsxMTg3LDcg QEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6 CisgCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludCByZXMKKyAg ICAgICAgIHJlcyA9IHNlbGYuX25ldygpCistICAgICAgICBmbXB6X3BvbHlfcG93X3RydW5jKHJl cy5fX3BvbHksIHNlbGYuX19wb2x5LCBuLCBwcmVjKQorKyAgICAgICAgZm1wel9wb2x5X3Bvd190 cnVuYyhyZXMuX3BvbHksIHNlbGYuX3BvbHksIG4sIHByZWMpCisgICAgICAgICByZXR1cm4gcmVz CisgCisgICAgIGRlZiBfX2Zsb29yZGl2X18oUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50 IHNlbGYsIHJpZ2h0KToKK0BAIC0xMjI2LDE0ICsxMjI2LDE0IEBAIGNkZWYgY2xhc3MgUG9seW5v bWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgICAgICBl bHNlOgorICAgICAgICAgICAgICAgICAgICAgcmVzID0gc2VsZi5fbmV3KCkKKyAgICAgICAgICAg ICAgICAgICAgIHNpZ19vbigpCistICAgICAgICAgICAgICAgICAgICBmbXB6X3BvbHlfc2NhbGFy X2ZkaXZfbXB6KHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LAorKyAgICAgICAgICAgICAgICAgICAg Zm1wel9wb2x5X3NjYWxhcl9mZGl2X21weihyZXMuX3BvbHksIHNlbGYuX3BvbHksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICg8SW50ZWdlcj4gcmlnaHQpLnZhbHVlKQorICAgICAgICAg ICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAgICAgICAgICAgIHJldHVybiByZXMKKyAgICAg ICAgICAgICBlbGlmIHJpZ2h0IGluIFpaOgorICAgICAgICAgICAgICAgICByZXMgPSBzZWxmLl9u ZXcoKQorICAgICAgICAgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgICAgICAgICBmbXB6X3Bv bHlfc2NhbGFyX2ZkaXZfbXB6KHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LAorKyAgICAgICAgICAg ICAgICBmbXB6X3BvbHlfc2NhbGFyX2ZkaXZfbXB6KHJlcy5fcG9seSwgc2VsZi5fcG9seSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAoPEludGVnZXI+WloocmlnaHQpKS52YWx1ZSkKKyAgICAg ICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAgICAgICAgICAgIHJldHVybiByZXMKK0BAIC0x MjQ4LDcgKzEyNDgsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGlu dChQb2x5bm9taWFsKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmVzID0gc2VsZi5f bmV3KCkKKyAgICAgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgICAgIGZtcHpfcG9seV9kaXYo cmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIF9yaWdodC5fX3BvbHkpCisrICAgICAgICAgICAgZm1w el9wb2x5X2RpdihyZXMuX3BvbHksIHNlbGYuX3BvbHksIF9yaWdodC5fcG9seSkKKyAgICAgICAg ICAgICBzaWdfb2ZmKCkKKyAgICAgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtMTI5Myw5ICsx MjkzLDkgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5v bWlhbCk6CisgICAgICAgICBpZiBwcmVjIDw9IDA6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVF cnJvcigidGhlIHByZWNpc2lvbiBtdXN0IGJlIHBvc2l0aXZlLCBnb3Qge30iLmZvcm1hdChwcmVj KSkKKyAKKy0gICAgICAgIGlmIGZtcHpfcG9seV9kZWdyZWUoc2VsZi5fX3BvbHkpID09IC0xOgor KyAgICAgICAgaWYgZm1wel9wb2x5X2RlZ3JlZShzZWxmLl9wb2x5KSA9PSAtMToKKyAgICAgICAg ICAgICByYWlzZSBWYWx1ZUVycm9yKCJjb25zdGFudCB0ZXJtIGlzIHplcm8iKQorLSAgICAgICAg Y2RlZiBmbXB6X3QgYyA9IGZtcHpfcG9seV9nZXRfY29lZmZfcHRyKHNlbGYuX19wb2x5LCAwKQor KyAgICAgICAgY2RlZiBmbXB6X3QgYyA9IGZtcHpfcG9seV9nZXRfY29lZmZfcHRyKHNlbGYuX3Bv bHksIDApCisgICAgICAgICBpZiBmbXB6X2NtcF9zaShjLCAxKSBhbmQgZm1wel9jbXBfc2koYywg LTEpOgorICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImNvbnN0YW50IHRlcm0ge30gaXMg bm90IGEgdW5pdCIuZm9ybWF0KHNlbGZbMF0pKQorIAorQEAgLTEzMDMsNyArMTMwMyw3IEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAg ICAgICAgaWYgcHJlYyA8PSAwOgorICAgICAgICAgICAgIHJldHVybiByZXMKKyAgICAgICAgIHNp Z19vbigpCistICAgICAgICBmbXB6X3BvbHlfaW52X3NlcmllcyhyZXMuX19wb2x5LCBzZWxmLl9f cG9seSwgcHJlYykKKysgICAgICAgIGZtcHpfcG9seV9pbnZfc2VyaWVzKHJlcy5fcG9seSwgc2Vs Zi5fcG9seSwgcHJlYykKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcwor IAorQEAgLTEzMzEsMTYgKzEzMzEsMTYgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJf ZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgcmFpc2UgSW5kZXhFcnJvcigi biBtdXN0IGJlID49IDAiKQorICAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgaW50KToKKyAg ICAgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZfc2ko c2VsZi5fX3BvbHksIG4sIHZhbHVlKQorKyAgICAgICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZf c2koc2VsZi5fcG9seSwgbiwgdmFsdWUpCisgICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAg ICBlbGlmIGlzaW5zdGFuY2UodmFsdWUsIEludGVnZXIpOgorICAgICAgICAgICAgIHNpZ19vbigp CistICAgICAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9tcHooc2VsZi5fX3BvbHksIG4sICg8 SW50ZWdlcj52YWx1ZSkudmFsdWUpCisrICAgICAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9t cHooc2VsZi5fcG9seSwgbiwgKDxJbnRlZ2VyPnZhbHVlKS52YWx1ZSkKKyAgICAgICAgICAgICBz aWdfb2ZmKCkKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgdmFsdWUgPSBJbnRlZ2VyKHZh bHVlKQorICAgICAgICAgICAgIHNpZ19vbigpCistICAgICAgICAgICAgZm1wel9wb2x5X3NldF9j b2VmZl9tcHooc2VsZi5fX3BvbHksIG4sICg8SW50ZWdlcj52YWx1ZSkudmFsdWUpCisrICAgICAg ICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9tcHooc2VsZi5fcG9seSwgbiwgKDxJbnRlZ2VyPnZh bHVlKS52YWx1ZSkKKyAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAKKyAgICAgZGVmIHJlYWxfcm9v dF9pbnRlcnZhbHMoc2VsZik6CitAQCAtMTM2NCw3ICsxMzY0LDcgQEAgY2RlZiBjbGFzcyBQb2x5 bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgCisgIyMgICAgIGRlZiBf X2NvcHlfXyhzZWxmKToKKyAjIyAgICAgICAgIGYgPSBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2Uo c2VsZi5wYXJlbnQoKSkKKy0jIyAgICAgICAgIGYuX19wb2x5ID0gc2VsZi5fX3BvbHkuY29weSgp CisrIyMgICAgICAgICBmLl9wb2x5ID0gc2VsZi5fcG9seS5jb3B5KCkKKyAjIyAgICAgICAgIHJl dHVybiBmCisgCisgCitAQCAtMTM5MSw3ICsxMzkxLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFs X2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgc2FnZTogdHlw ZSh4LmRlZ3JlZSgpKQorICAgICAgICAgICAgIDxjbGFzcyAnc2FnZS5yaW5ncy5pbnRlZ2VyLklu dGVnZXInPgorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc21hbGxJbnRlZ2VyKGZtcHpf cG9seV9kZWdyZWUoc2VsZi5fX3BvbHkpKQorKyAgICAgICAgcmV0dXJuIHNtYWxsSW50ZWdlcihm bXB6X3BvbHlfZGVncmVlKHNlbGYuX3BvbHkpKQorIAorICAgICBkZWYgcHNldWRvX2RpdnJlbShz ZWxmLCBCKToKKyAgICAgICAgIHIiIiIKK0BAIC0xNDI2LDcgKzE0MjYsNyBAQCBjZGVmIGNsYXNz IFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICIi IgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQgUSA9IHNlbGYu X25ldygpLCBSID0gc2VsZi5fbmV3KCksIF9CID0gQgorICAgICAgICAgY2RlZiB1bG9uZyBkCist ICAgICAgICBmbXB6X3BvbHlfcHNldWRvX2RpdnJlbShRLl9fcG9seSwgUi5fX3BvbHksICZkLCBz ZWxmLl9fcG9seSwgX0IuX19wb2x5KQorKyAgICAgICAgZm1wel9wb2x5X3BzZXVkb19kaXZyZW0o US5fcG9seSwgUi5fcG9seSwgJmQsIHNlbGYuX3BvbHksIF9CLl9wb2x5KQorICAgICAgICAgcmV0 dXJuIFEsIFIsIEludGVnZXIoZCkKKyAKKyAgICAgZGVmIGRpc2NyaW1pbmFudChzZWxmLCBwcm9v Zj1UcnVlKToKK0BAIC0xNDYwLDcgKzE0NjAsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50 ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgY2Rl ZiBaWlhfYyBudGxfcG9seQorICAgICAgICAgY2RlZiBaWl9jKiB0ZW1wCistICAgICAgICBmbXB6 X3BvbHlfZ2V0X1paWChudGxfcG9seSwgc2VsZi5fX3BvbHkpCisrICAgICAgICBmbXB6X3BvbHlf Z2V0X1paWChudGxfcG9seSwgc2VsZi5fcG9seSkKKyAKKyAgICAgICAgIHRlbXAgPSBaWlhfZGlz Y3JpbWluYW50KCZudGxfcG9seSwgcHJvb2YpCisgICAgICAgICBjZGVmIEludGVnZXIgeCA9IElu dGVnZXIuX19uZXdfXyhJbnRlZ2VyKQorQEAgLTE1MzEsMTIgKzE1MzEsMTIgQEAgY2RlZiBjbGFz cyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgCisgICAgICAg ICAgICAgIyB0aGUgcHJpbWl0aXZlIHBhcnQgcmV0dXJuZWQgYnkgRkxJTlQgaGFzIHBvc2l0aXZl IGxlYWRpbmcKKyAgICAgICAgICAgICAjIGNvZWZmaWNpZW50CistICAgICAgICAgICAgZm1wel9w b2x5X3ByaW1pdGl2ZV9wYXJ0KHBwYXJ0LCBzZWxmLl9fcG9seSkKKysgICAgICAgICAgICBmbXB6 X3BvbHlfcHJpbWl0aXZlX3BhcnQocHBhcnQsIHNlbGYuX3BvbHkpCisgCisgICAgICAgICAgICAg Zm1wel9wb2x5X2dldF9aWlgobnRsX3BvbHksIHBwYXJ0KQorICAgICAgICAgICAgIGZtcHpfcG9s eV9jbGVhcihwcGFydCkKKyAgICAgICAgIGVsc2U6CistICAgICAgICAgICAgZm1wel9wb2x5X2dl dF9aWlgobnRsX3BvbHksIHNlbGYuX19wb2x5KQorKyAgICAgICAgICAgIGZtcHpfcG9seV9nZXRf WlpYKG50bF9wb2x5LCBzZWxmLl9wb2x5KQorIAorICAgICAgICAgIyBpbnB1dCBpcyBwcmltaXRp dmUsIHdpdGggcG9zaXRpdmUgbGVhZGluZyBjb2VmZmljaWVudAorICAgICAgICAgWlpYX3NxdWFy ZWZyZWVfZGVjb21wb3NpdGlvbigmdiwgJmUsICZuLCAmbnRsX3BvbHkpCitAQCAtMTU0NCw3ICsx NTQ0LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5v bWlhbCk6CisgICAgICAgICBGID0gW10KKyAgICAgICAgIGZvciBpIGZyb20gMCA8PSBpIDwgbjoK KyAgICAgICAgICAgICBmYWMgPSBzZWxmLl9uZXcoKQorLSAgICAgICAgICAgIGZtcHpfcG9seV9z ZXRfWlpYKGZhYy5fX3BvbHksIHZbaV1bMF0pCisrICAgICAgICAgICAgZm1wel9wb2x5X3NldF9a WlgoZmFjLl9wb2x5LCB2W2ldWzBdKQorICAgICAgICAgICAgIEYuYXBwZW5kKCAoZmFjLGVbaV0p ICkKKyAgICAgICAgICAgICBkZWwgdltpXQorICAgICAgICAgc2lnX2ZyZWUodikKK0BAIC0xNTgy LDkgKzE1ODIsOSBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQ b2x5bm9taWFsKToKKyAgICAgICAgIGNkZWYgWlpfYyBjb250ZW50CisgICAgICAgICBjZGVmIHZl Y19wYWlyX1paWF9sb25nX2MgZmFjdG9ycworICAgICAgICAgY2RlZiBsb25nIGkKKy0gICAgICAg IGNkZWYgaW50IHNpZ19tZSA9IGZtcHpfcG9seV9kZWdyZWUoc2VsZi5fX3BvbHkpCisrICAgICAg ICBjZGVmIGludCBzaWdfbWUgPSBmbXB6X3BvbHlfZGVncmVlKHNlbGYuX3BvbHkpCisgCistICAg ICAgICBmbXB6X3BvbHlfZ2V0X1paWChudGxfcG9seSwgc2VsZi5fX3BvbHkpCisrICAgICAgICBm bXB6X3BvbHlfZ2V0X1paWChudGxfcG9seSwgc2VsZi5fcG9seSkKKyAKKyAgICAgICAgIGlmIHNp Z19tZSA+IDEwOgorICAgICAgICAgICAgIHNpZ19vbigpCitAQCAtMTYwMywxMyArMTYwMywxMyBA QCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToK KyAgICAgICAgICAgICBmYWNfcHkgPSBzZWxmLl9uZXcoKQorICAgICAgICAgICAgIGZtcHpfaW5p dCh0Y29udGVudCkKKyAgICAgICAgICAgICBmbXB6X3NldF9aWih0Y29udGVudCwgY29udGVudCkK Ky0gICAgICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX2ZtcHooZmFjX3B5Ll9fcG9seSwgMCwg dGNvbnRlbnQpCisrICAgICAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9mbXB6KGZhY19weS5f cG9seSwgMCwgdGNvbnRlbnQpCisgICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQoIChmYWNfcHks MSkgKQorICAgICAgICAgICAgIGZtcHpfY2xlYXIodGNvbnRlbnQpCisgCisgICAgICAgICBmb3Ig aSBmcm9tIDAgPD0gaSA8IGZhY3RvcnMubGVuZ3RoKCk6CisgICAgICAgICAgICAgZmFjX3B5ID0g c2VsZi5fbmV3KCkKKy0gICAgICAgICAgICBmbXB6X3BvbHlfc2V0X1paWChmYWNfcHkuX19wb2x5 LCBmYWN0b3JzLlJhd0dldChpKS5hKQorKyAgICAgICAgICAgIGZtcHpfcG9seV9zZXRfWlpYKGZh Y19weS5fcG9seSwgZmFjdG9ycy5SYXdHZXQoaSkuYSkKKyAgICAgICAgICAgICByZXN1bHRzLmFw cGVuZCggKGZhY19weSxmYWN0b3JzLlJhd0dldChpKS5iKSApCisgICAgICAgICByZXR1cm4gRmFj dG9yaXphdGlvbihyZXN1bHRzLCB1bml0ID0gdW5pdCkKKyAKK0BAIC0xNjM5LDcgKzE2MzksNyBA QCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToK KyAgICAgICAgICAgICAoLTEpICogMiAqIDMgKiA1ICogeAorICAgICAgICAgIiIiCisgICAgICAg ICBjZGVmIGludCBpCistICAgICAgICBjZGVmIGxvbmcgZGVnID0gZm1wel9wb2x5X2RlZ3JlZShz ZWxmLl9fcG9seSkKKysgICAgICAgIGNkZWYgbG9uZyBkZWcgPSBmbXB6X3BvbHlfZGVncmVlKHNl bGYuX3BvbHkpCisgICAgICAgICAjIGl0IGFwcGVhcnMgdGhhdCBwYXJpIGhhcyBhIHdpbmRvdyBm cm9tIGFib3V0IGRlZ3JlZXMgMzAgYW5kIDMwMAorICAgICAgICAgIyBpbiB3aGljaCBpdCBiZWF0 cyBOVEwuCisgICAgICAgICBjID0gc2VsZi5jb250ZW50KCkKK0BAIC0xNzgzLDggKzE3ODMsOCBA QCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToK KyAgICAgICAgIGNkZWYgSW50ZWdlciB4ID0gSW50ZWdlci5fX25ld19fKEludGVnZXIpCisgCisg ICAgICAgICBzaWdfb24oKQorLSAgICAgICAgZm1wel9wb2x5X3Jlc3VsdGFudChyZXMsIHNlbGYu X19wb2x5LAorLSAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGlu dD5vdGhlcikuX19wb2x5KQorKyAgICAgICAgZm1wel9wb2x5X3Jlc3VsdGFudChyZXMsIHNlbGYu X3BvbHksCisrICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50 Pm90aGVyKS5fcG9seSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgZm1wel9nZXRfbXB6 KHgudmFsdWUsIHJlcykKKyAgICAgICAgIGZtcHpfY2xlYXIocmVzKQorQEAgLTE4MzAsMTAgKzE4 MzAsMTAgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5v bWlhbCk6CisgICAgICAgICAgICAgaWYgZCAhPSBkZWdyZWU6CisgICAgICAgICAgICAgICAgIHJh aXNlIFZhbHVlRXJyb3IoImRlZ3JlZSBhcmd1bWVudCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGlu dGVnZXIsIGdvdCAlcyIgJSBkZWdyZWUpCisgICAgICAgICAgICAgIyBGTElOVCBleHBlY3RzIGxl bmd0aAorLSAgICAgICAgICAgIGZtcHpfcG9seV9yZXZlcnNlKHJlcy5fX3BvbHksIHNlbGYuX19w b2x5LCBkKzEpCisrICAgICAgICAgICAgZm1wel9wb2x5X3JldmVyc2UocmVzLl9wb2x5LCBzZWxm Ll9wb2x5LCBkKzEpCisgICAgICAgICBlbHNlOgorLSAgICAgICAgICAgIGZtcHpfcG9seV9yZXZl cnNlKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LAorLSAgICAgICAgICAgICAgICAgICAgZm1wel9w b2x5X2xlbmd0aChzZWxmLl9fcG9seSkpCisrICAgICAgICAgICAgZm1wel9wb2x5X3JldmVyc2Uo cmVzLl9wb2x5LCBzZWxmLl9wb2x5LAorKyAgICAgICAgICAgICAgICAgICAgZm1wel9wb2x5X2xl bmd0aChzZWxmLl9wb2x5KSkKKyAgICAgICAgIHJldHVybiByZXMKKyAKKyAgICAgZGVmIHJldmVy dF9zZXJpZXMoc2VsZiwgbik6CitAQCAtMTg2Nyw3ICsxODY3LDcgQEAgY2RlZiBjbGFzcyBQb2x5 bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgcmFp c2UgVmFsdWVFcnJvcigic2VsZiBtdXN0IGhhdmUgY29uc3RhbnQgY29lZmZpY2llbnQgMCBhbmQg YSB1bml0IGZvciBjb2VmZmljaWVudCB7fV4xIi5mb3JtYXQoc2VsZi5wYXJlbnQoKS5nZW4oKSkp CisgCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgZm1wel9wb2x5X3JldmVydF9zZXJpZXMo cmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIG0pCisrICAgICAgICBmbXB6X3BvbHlfcmV2ZXJ0X3Nl cmllcyhyZXMuX3BvbHksIHNlbGYuX3BvbHksIG0pCisgICAgICAgICBzaWdfb2ZmKCkKKyAKKyAg ICAgICAgIHJldHVybiByZXMKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFs L3BvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5v bWlhbC9wb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsLnB4ZAoraW5kZXggYTdjMzgwYjQ5YTIu LmZjZDkwN2UxYWJlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5 bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsLnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5v bWlhbC9wb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsLnB4ZAorQEAgLTIsNiArMiw2IEBAIGZy b20gc2FnZS5saWJzLm50bC50eXBlcyBjaW1wb3J0IFpaWF9jCisgZnJvbSBzYWdlLnJpbmdzLnBv bHlub21pYWwucG9seW5vbWlhbF9lbGVtZW50IGNpbXBvcnQgUG9seW5vbWlhbAorIAorIGNkZWYg Y2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKy0gICAgY2Rl ZiBaWlhfYyBfX3BvbHkKKysgICAgY2RlZiBaWlhfYyBfcG9seQorIAorICAgICBjZGVmIFBvbHlu b21pYWxfaW50ZWdlcl9kZW5zZV9udGwgX25ldyhzZWxmKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bC5weXggYi9zcmMv c2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwucHl4Citp bmRleCBlN2I3MDhiYmM1MS4uODBhMTcyNmJiNGUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5n cy9wb2x5bm9taWFsL3BvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwucHl4CisrKysgYi9zcmMv c2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwucHl4CitA QCAtMTcyLDcgKzE3Miw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250 bChQb2x5bm9taWFsKToKKyAgICAgICAgIGlmIGlzaW5zdGFuY2UoeCwgUG9seW5vbWlhbCk6Cisg ICAgICAgICAgICAgaWYgeC5wYXJlbnQoKSBpcyBzZWxmLnBhcmVudCgpOgorICAgICAgICAgICAg ICAgICAjIGNvcHkgd2l0aCBOVEwgYXNzaWdubWVudCBvcGVyYXRvcgorLSAgICAgICAgICAgICAg ICBzZWxmLl9fcG9seSA9ICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bD54KS5fX3BvbHkK KysgICAgICAgICAgICAgICAgc2VsZi5fcG9seSA9ICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNl X250bD54KS5fcG9seQorICAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgICBlbHNl OgorICAgICAgICAgICAgICAgICAjIGNvZXJjZSBjb2VmZmljaWVudHMgaW50byBTYWdlIGludGVn ZXJzCitAQCAtMTkxLDE3ICsxOTEsMTcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJf ZGVuc2VfbnRsKFBvbHlub21pYWwpOgorICAgICAgICAgICAgICAgICAgICAgZGVncmVlID0gaQor ICAgICAgICAgICAgIGlmIGRlZ3JlZSA+PSBOVExfT1ZGQk5EOgorICAgICAgICAgICAgICAgICBy YWlzZSBPdmVyZmxvd0Vycm9yKCJEZW5zZSBOVEwgaW50ZWdlciBwb2x5bm9taWFscyBoYXZlIGEg bWF4aW11bSBkZWdyZWUgb2YgJXMiICUgKE5UTF9PVkZCTkQtMSkpCistICAgICAgICAgICAgWlpY X1NldENvZWZmX2xvbmcoc2VsZi5fX3BvbHksIGRlZ3JlZSwgMSkKKysgICAgICAgICAgICBaWlhf U2V0Q29lZmZfbG9uZyhzZWxmLl9wb2x5LCBkZWdyZWUsIDEpCisgICAgICAgICAgICAgIyBub3cg ZmlsbCB0aGVtIGluCisgICAgICAgICAgICAgZm9yIGlpLCBhIGluIHg6CisgICAgICAgICAgICAg ICAgIGkgPSBpaVswXSBpZiB0eXBlKGlpKSBpcyB0dXBsZSBlbHNlIGlpCisgICAgICAgICAgICAg ICAgIGlmIHR5cGUoYSkgaXMgaW50OgorLSAgICAgICAgICAgICAgICAgICAgWlpYX1NldENvZWZm X2xvbmcoc2VsZi5fX3BvbHksIGksIGEpCisrICAgICAgICAgICAgICAgICAgICBaWlhfU2V0Q29l ZmZfbG9uZyhzZWxmLl9wb2x5LCBpLCBhKQorICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAg ICAgICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoYSwgSW50ZWdlcik6CisgICAgICAgICAg ICAgICAgICAgICAgICAgYSA9IFpaKGEpCisgICAgICAgICAgICAgICAgICAgICBtcHpfdG9fWloo JnksICg8SW50ZWdlcj5hKS52YWx1ZSkKKy0gICAgICAgICAgICAgICAgICAgIFpaWF9TZXRDb2Vm ZihzZWxmLl9fcG9seSwgaSwgeSkKKysgICAgICAgICAgICAgICAgICAgIFpaWF9TZXRDb2VmZihz ZWxmLl9wb2x5LCBpLCB5KQorICAgICAgICAgICAgIHJldHVybgorIAorICAgICAgICAgZWxpZiBp c2luc3RhbmNlKHgsIHBhcmlfZ2VuKToKK0BAIC0yMTAsMTQgKzIxMCwxNCBAQCBjZGVmIGNsYXNz IFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwoUG9seW5vbWlhbCk6CisgCisgICAgICAgICBl bGlmIGlzaW5zdGFuY2UoeCwgbnRsX1paWCk6ICAgICMgY29lcmNpb24gZnJvbSBudGwucHl4IG9i amVjdAorICAgICAgICAgICAgICMgY29weSB3aXRoIE5UTCBhc3NpZ25tZW50IG9wZXJhdG9yCist ICAgICAgICAgICAgc2VsZi5fX3BvbHkgPSAoPG50bF9aWlg+eCkueAorKyAgICAgICAgICAgIHNl bGYuX3BvbHkgPSAoPG50bF9aWlg+eCkueAorICAgICAgICAgICAgIHJldHVybgorIAorICAgICAg ICAgZWxpZiBpc2luc3RhbmNlKHgsIEZyYWN0aW9uRmllbGRFbGVtZW50KSBhbmQgXAorICAgICAg ICAgICAgICAgICAgaXNpbnN0YW5jZSh4Lm51bWVyYXRvcigpLCBQb2x5bm9taWFsX2ludGVnZXJf ZGVuc2VfbnRsKToKKyAgICAgICAgICAgICBpZiB4LmRlbm9taW5hdG9yKCkgPT0gMToKKyAgICAg ICAgICAgICAgICAgIyBmcmFjdGlvbiBvZiB0aGUgZm9ybSBmKHgpLzEKKy0gICAgICAgICAgICAg ICAgc2VsZi5fX3BvbHkgPSAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGw+eC5udW1lcmF0 b3IoKSkuX19wb2x5CisrICAgICAgICAgICAgICAgIHNlbGYuX3BvbHkgPSAoPFBvbHlub21pYWxf aW50ZWdlcl9kZW5zZV9udGw+eC5udW1lcmF0b3IoKSkuX3BvbHkKKyAgICAgICAgICAgICAgICAg cmV0dXJuCisgCisgICAgICAgICBlbGlmIG5vdCBpc2luc3RhbmNlKHgsIChsaXN0LCB0dXBsZSkp OgorQEAgLTIyOSwxMiArMjI5LDEyIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2Rl bnNlX250bChQb2x5bm9taWFsKToKKyAgICAgICAgIGZvciBpIGZyb20gMCA8PSBpIDwgbGVuKHgp OgorICAgICAgICAgICAgIGEgPSB4W2ldCisgICAgICAgICAgICAgaWYgdHlwZShhKSBpcyBpbnQ6 CistICAgICAgICAgICAgICAgIFpaWF9TZXRDb2VmZl9sb25nKHNlbGYuX19wb2x5LCBpLCBhKQor KyAgICAgICAgICAgICAgICBaWlhfU2V0Q29lZmZfbG9uZyhzZWxmLl9wb2x5LCBpLCBhKQorICAg ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGEsIElu dGVnZXIpOgorICAgICAgICAgICAgICAgICAgICAgYSA9IFpaKGEpCisgICAgICAgICAgICAgICAg IG1wel90b19aWigmeSwgKDxJbnRlZ2VyPmEpLnZhbHVlKQorLSAgICAgICAgICAgICAgICBaWlhf U2V0Q29lZmYoc2VsZi5fX3BvbHksIGksIHkpCisrICAgICAgICAgICAgICAgIFpaWF9TZXRDb2Vm ZihzZWxmLl9wb2x5LCBpLCB5KQorIAorIAorICAgICBkZWYgY29udGVudChzZWxmKToKK0BAIC0y NTksNyArMjU5LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKFBv bHlub21pYWwpOgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIFpaX2MgeQorICAgICAgICAg Y2RlZiBJbnRlZ2VyIHogPSBJbnRlZ2VyLl9fbmV3X18oSW50ZWdlcikKKy0gICAgICAgIFpaWF9j b250ZW50KHksIHNlbGYuX19wb2x5KQorKyAgICAgICAgWlpYX2NvbnRlbnQoeSwgc2VsZi5fcG9s eSkKKyAgICAgICAgIFpaX3RvX21weih6LnZhbHVlLCAmeSkKKyAgICAgICAgIHJldHVybiB6Cisg CitAQCAtMjg4LDcgKzI4OCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNl X250bChQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBSZWFsTnVtYmVy IHJlcyA9IGEuX25ldygpCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgWlpYX2V2YWx1YXRp b25fbXBmcihyZXMudmFsdWUsIHNlbGYuX19wb2x5LCBhLnZhbHVlKQorKyAgICAgICAgWlpYX2V2 YWx1YXRpb25fbXBmcihyZXMudmFsdWUsIHNlbGYuX3BvbHksIGEudmFsdWUpCisgICAgICAgICBz aWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKK0BAIC0zMTgsNyArMzE4LDcgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKFBvbHlub21pYWwpOgorICAgICAg ICAgIiIiCisgICAgICAgICBjZGVmIFJlYWxJbnRlcnZhbEZpZWxkRWxlbWVudCByZXMgPSBhLl9u ZXcoKQorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIFpaWF9ldmFsdWF0aW9uX21wZmkocmVz LnZhbHVlLCBzZWxmLl9fcG9seSwgYS52YWx1ZSkKKysgICAgICAgIFpaWF9ldmFsdWF0aW9uX21w ZmkocmVzLnZhbHVlLCBzZWxmLl9wb2x5LCBhLnZhbHVlKQorICAgICAgICAgc2lnX29mZigpCisg ICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtMzYzLDcgKzM2Myw3IEBAIGNkZWYgY2xhc3MgUG9s eW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICA1Knhe NSArIDQqeF40ICsgMyp4XjMgKyAyKnheMiArIHggKyAxCisgICAgICAgICAiIiIKKyAgICAgICAg IGNkZWYgSW50ZWdlciB6ID0gSW50ZWdlci5fX25ld19fKEludGVnZXIpCistICAgICAgICBaWl90 b19tcHooei52YWx1ZSwgJnNlbGYuX19wb2x5LnJlcC5lbHRzKClbbl0pCisrICAgICAgICBaWl90 b19tcHooei52YWx1ZSwgJnNlbGYuX3BvbHkucmVwLmVsdHMoKVtuXSkKKyAgICAgICAgIHJldHVy biB6CisgCisgICAgIGRlZiBfcmVwcihzZWxmLCBuYW1lPU5vbmUsIGJpbnQgbGF0ZXg9RmFsc2Up OgorQEAgLTM4MCwxNSArMzgwLDE1IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2Rl bnNlX250bChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBuYW1lID0gc2VsZi5wYXJlbnQoKS52 YXJpYWJsZV9uYW1lKCkKKyAgICAgICAgIGNkZWYgbG9uZyBpCisgICAgICAgICBjZGVmIGxpc3Qg YWxsID0gW10KKy0gICAgICAgIGZvciBpIGZyb20gWlpYX2RlZyhzZWxmLl9fcG9seSkgPj0gaSA+ PSAwOgorLSAgICAgICAgICAgIHNpZ24gPSBaWl9zaWduKFpaWF9jb2VmZihzZWxmLl9fcG9seSwg aSkpCisrICAgICAgICBmb3IgaSBmcm9tIFpaWF9kZWcoc2VsZi5fcG9seSkgPj0gaSA+PSAwOgor KyAgICAgICAgICAgIHNpZ24gPSBaWl9zaWduKFpaWF9jb2VmZihzZWxmLl9wb2x5LCBpKSkKKyAg ICAgICAgICAgICBpZiBzaWduOgorICAgICAgICAgICAgICAgICBpZiBzaWduID4gMDoKKyAgICAg ICAgICAgICAgICAgICAgIHNpZ25fc3RyID0gJysnCistICAgICAgICAgICAgICAgICAgICBjb2Vm Zl9zdHIgPSBjY3JlcHIoc2VsZi5fX3BvbHkucmVwLmVsdHMoKVtpXSkKKysgICAgICAgICAgICAg ICAgICAgIGNvZWZmX3N0ciA9IGNjcmVwcihzZWxmLl9wb2x5LnJlcC5lbHRzKClbaV0pCisgICAg ICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICBzaWduX3N0ciA9ICctJwor LSAgICAgICAgICAgICAgICAgICAgY29lZmZfc3RyID0gY2NyZXByKHNlbGYuX19wb2x5LnJlcC5l bHRzKClbaV0pWzE6XQorKyAgICAgICAgICAgICAgICAgICAgY29lZmZfc3RyID0gY2NyZXByKHNl bGYuX3BvbHkucmVwLmVsdHMoKVtpXSlbMTpdCisgICAgICAgICAgICAgICAgIGlmIGkgPiAwOgor ICAgICAgICAgICAgICAgICAgICAgaWYgY29lZmZfc3RyID09ICcxJzoKKyAgICAgICAgICAgICAg ICAgICAgICAgICBjb2VmZl9zdHIgPSAnJworQEAgLTQ0MSw4ICs0NDEsOCBAQCBjZGVmIGNsYXNz IFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAg LTMqeF4yICsgMip4ICsgNworICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIFBvbHlub21pYWxf aW50ZWdlcl9kZW5zZV9udGwgeCA9IHNlbGYuX25ldygpCistICAgICAgICBaWlhfYWRkKHguX19w b2x5LCBzZWxmLl9fcG9seSwKKy0gICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX2ludGVnZXJf ZGVuc2VfbnRsPnJpZ2h0KS5fX3BvbHkpCisrICAgICAgICBaWlhfYWRkKHguX3BvbHksIHNlbGYu X3BvbHksCisrICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bD5y aWdodCkuX3BvbHkpCisgICAgICAgICByZXR1cm4geAorIAorIAorQEAgLTQ1OSw4ICs0NTksOCBA QCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwoUG9seW5vbWlhbCk6Cisg ICAgICAgICAgICAgMyp4XjIgKyAyKnggLSA1CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYg UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bCB4ID0gc2VsZi5fbmV3KCkKKy0gICAgICAgIFpa WF9zdWIoeC5fX3BvbHksIHNlbGYuX19wb2x5LAorLSAgICAgICAgICAgICAgICAoPFBvbHlub21p YWxfaW50ZWdlcl9kZW5zZV9udGw+cmlnaHQpLl9fcG9seSkKKysgICAgICAgIFpaWF9zdWIoeC5f cG9seSwgc2VsZi5fcG9seSwKKysgICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX2ludGVnZXJf ZGVuc2VfbnRsPnJpZ2h0KS5fcG9seSkKKyAgICAgICAgIHJldHVybiB4CisgCisgCitAQCAtNDc2 LDcgKzQ3Niw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5 bm9taWFsKToKKyAgICAgICAgICAgICAtMip4ICsgMQorICAgICAgICAgIiIiCisgICAgICAgICBj ZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwgeCA9IHNlbGYuX25ldygpCistICAgICAg ICBaWlhfbmVnYXRlKHguX19wb2x5LCBzZWxmLl9fcG9seSkKKysgICAgICAgIFpaWF9uZWdhdGUo eC5fcG9seSwgc2VsZi5fcG9seSkKKyAgICAgICAgIHJldHVybiB4CisgCisgCitAQCAtNTMzLDEw ICs1MzMsMTAgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKFBvbHlu b21pYWwpOgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfaW50ZWdlcl9k ZW5zZV9udGwgX3JpZ2h0ID0gPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGw+IHJpZ2h0Cisg CistICAgICAgICBpZiBaWlhfSXNaZXJvKF9yaWdodC5fX3BvbHkpOgorKyAgICAgICAgaWYgWlpY X0lzWmVybyhfcmlnaHQuX3BvbHkpOgorICAgICAgICAgICAgIHJhaXNlIEFyaXRobWV0aWNFcnJv cigiZGl2aXNpb24gYnkgemVybyBwb2x5bm9taWFsIikKKyAKKy0gICAgICAgIGlmIFpaWF9Jc1pl cm8oc2VsZi5fX3BvbHkpOgorKyAgICAgICAgaWYgWlpYX0lzWmVybyhzZWxmLl9wb2x5KToKKyAg ICAgICAgICAgICByZXR1cm4gc2VsZiwgc2VsZgorIAorICAgICAgICAgY2RlZiBaWlhfYyAqcQor QEAgLTU0NSwxOSArNTQ1LDE5IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNl X250bChQb2x5bm9taWFsKToKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNl X250bCByciA9IHNlbGYuX25ldygpCisgICAgICAgICBjZGVmIGludCBkaXZpc2libGUKKyAKKy0g ICAgICAgIGlmIFpaX0lzT25lKFpaWF9MZWFkQ29lZmYoX3JpZ2h0Ll9fcG9seSkpOgorKyAgICAg ICAgaWYgWlpfSXNPbmUoWlpYX0xlYWRDb2VmZihfcmlnaHQuX3BvbHkpKToKKyAgICAgICAgICAg ICAjIGRpdmlzb3IgaXMgbW9uaWMuIEp1c3QgZG8gdGhlIGRpdmlzaW9uIGFuZCByZW1haW5kZXIK Ky0gICAgICAgICAgICBaWlhfcXVvX3JlbSgmc2VsZi5fX3BvbHksICZfcmlnaHQuX19wb2x5LCAm ciwgJnEpCistICAgICAgICAgICAgWlpYX3N3YXAocXEuX19wb2x5LCBxWzBdKQorLSAgICAgICAg ICAgIFpaWF9zd2FwKHJyLl9fcG9seSwgclswXSkKKysgICAgICAgICAgICBaWlhfcXVvX3JlbSgm c2VsZi5fcG9seSwgJl9yaWdodC5fcG9seSwgJnIsICZxKQorKyAgICAgICAgICAgIFpaWF9zd2Fw KHFxLl9wb2x5LCBxWzBdKQorKyAgICAgICAgICAgIFpaWF9zd2FwKHJyLl9wb2x5LCByWzBdKQor ICAgICAgICAgICAgIGRlbCBxCisgICAgICAgICAgICAgZGVsIHIKKyAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgIyBOb24tbW9uaWMgZGl2aXNvci4gQ2hlY2sgd2hldGhlciBpdCBkaXZpZGVz IGV4YWN0bHkuCistICAgICAgICAgICAgcSA9IFpaWF9kaXYoJnNlbGYuX19wb2x5LCAmX3JpZ2h0 Ll9fcG9seSwgJmRpdmlzaWJsZSkKKysgICAgICAgICAgICBxID0gWlpYX2Rpdigmc2VsZi5fcG9s eSwgJl9yaWdodC5fcG9seSwgJmRpdmlzaWJsZSkKKyAgICAgICAgICAgICBpZiBkaXZpc2libGU6 CisgICAgICAgICAgICAgICAgICMgZXhhY3RseSBkaXZpc2libGUKKy0gICAgICAgICAgICAgICAg WlpYX3N3YXAocVswXSwgcXEuX19wb2x5KQorKyAgICAgICAgICAgICAgICBaWlhfc3dhcChxWzBd LCBxcS5fcG9seSkKKyAgICAgICAgICAgICAgICAgZGVsIHEKKyAgICAgICAgICAgICBlbHNlOgor ICAgICAgICAgICAgICAgICAjIGRpdmlzaW9uIGZhaWxlZDogY2xlYW4gdXAgYW5kIHJhaXNlIGV4 Y2VwdGlvbgorQEAgLTU4NCw4ICs1ODQsOCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdl cl9kZW5zZV9udGwoUG9seW5vbWlhbCk6CisgICAgICAgICAiIiIKKyAgICAgICAgICMgdG9kbzog d2UncmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY29weSBoZXJlCisgICAgICAgICBjZGVmIFBvbHlu b21pYWxfaW50ZWdlcl9kZW5zZV9udGwgeCA9IHNlbGYuX25ldygpCistICAgICAgICBjZGVmIFpa WF9jKiB0ZW1wID0gWlpYX2djZCgmc2VsZi5fX3BvbHksICYoPFBvbHlub21pYWxfaW50ZWdlcl9k ZW5zZV9udGw+cmlnaHQpLl9fcG9seSkKKy0gICAgICAgIHguX19wb2x5ID0gdGVtcFswXQorKyAg ICAgICAgY2RlZiBaWlhfYyogdGVtcCA9IFpaWF9nY2QoJnNlbGYuX3BvbHksICYoPFBvbHlub21p YWxfaW50ZWdlcl9kZW5zZV9udGw+cmlnaHQpLl9wb2x5KQorKyAgICAgICAgeC5fcG9seSA9IHRl bXBbMF0KKyAgICAgICAgIGRlbCB0ZW1wCisgICAgICAgICByZXR1cm4geAorIAorQEAgLTY1OCwx MyArNjU4LDEzIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5 bm9taWFsKToKKyAgICAgICAgIGNkZWYgWlpYX2MgKnQKKyAgICAgICAgIGNkZWYgWlpfYyAqcgor IAorLSAgICAgICAgWlpYX3hnY2QoJnNlbGYuX19wb2x5LCAmKDxQb2x5bm9taWFsX2ludGVnZXJf ZGVuc2VfbnRsPnJpZ2h0KS5fX3BvbHksICZyLCAmcywgJnQsIDEpICAgICMgcHJvb2YgPSAxCisr ICAgICAgICBaWlhfeGdjZCgmc2VsZi5fcG9seSwgJig8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNl X250bD5yaWdodCkuX3BvbHksICZyLCAmcywgJnQsIDEpICAgICMgcHJvb2YgPSAxCisgICAgICAg ICBjZGVmIEludGVnZXIgcnIgPSBJbnRlZ2VyLl9fbmV3X18oSW50ZWdlcikKKyAgICAgICAgIFpa X3RvX21weihyci52YWx1ZSwgcikKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2Rl bnNlX250bCBzcyA9IHNlbGYuX25ldygpCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfaW50ZWdl cl9kZW5zZV9udGwgdHQgPSBzZWxmLl9uZXcoKQorLSAgICAgICAgc3MuX19wb2x5ID0gc1swXQor LSAgICAgICAgdHQuX19wb2x5ID0gdFswXQorKyAgICAgICAgc3MuX3BvbHkgPSBzWzBdCisrICAg ICAgICB0dC5fcG9seSA9IHRbMF0KKyAgICAgICAgIGRlbCByCisgICAgICAgICBkZWwgcworICAg ICAgICAgZGVsIHQKK0BAIC02OTEsOCArNjkxLDggQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2lu dGVnZXJfZGVuc2VfbnRsKFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHheMyAtIDEwKnheMiAr IDMyKnggLSAzMgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfaW50ZWdl cl9kZW5zZV9udGwgeCA9IHNlbGYuX25ldygpCistICAgICAgICBaWlhfbXVsKHguX19wb2x5LCBz ZWxmLl9fcG9seSwKKy0gICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX2ludGVnZXJfZGVuc2Vf bnRsPnJpZ2h0KS5fX3BvbHkpCisrICAgICAgICBaWlhfbXVsKHguX3BvbHksIHNlbGYuX3BvbHks CisrICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bD5yaWdodCku X3BvbHkpCisgICAgICAgICByZXR1cm4geAorIAorICAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxl bWVudCByaWdodCk6CitAQCAtNzExLDcgKzcxMSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9p bnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAgICAgIGNkZWYgWlpfYyBfcmlnaHQK KyAKKyAgICAgICAgIG1wel90b19aWigmX3JpZ2h0LCAoPEludGVnZXI+cmlnaHQpLnZhbHVlKQor LSAgICAgICAgWlpYX211bF9aWih4Ll9fcG9seSwgc2VsZi5fX3BvbHksIF9yaWdodCkKKysgICAg ICAgIFpaWF9tdWxfWlooeC5fcG9seSwgc2VsZi5fcG9seSwgX3JpZ2h0KQorICAgICAgICAgcmV0 dXJuIHgKKyAKKyAgICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQgcmlnaHQpOgorQEAgLTcz MCw3ICs3MzAsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwoUG9s eW5vbWlhbCk6CisgICAgICAgICBjZGVmIFpaX2MgX3JpZ2h0CisgCisgICAgICAgICBtcHpfdG9f WlooJl9yaWdodCwgKDxJbnRlZ2VyPnJpZ2h0KS52YWx1ZSkKKy0gICAgICAgIFpaWF9tdWxfWloo eC5fX3BvbHksIHNlbGYuX19wb2x5LCBfcmlnaHQpCisrICAgICAgICBaWlhfbXVsX1paKHguX3Bv bHksIHNlbGYuX3BvbHksIF9yaWdodCkKKyAgICAgICAgIHJldHVybiB4CisgCisgCitAQCAtNzgz LDcgKzc4Myw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5 bm9taWFsKToKKyAgICAgICAgIHZhbHVlID0gSW50ZWdlcih2YWx1ZSkKKyAgICAgICAgIGNkZWYg WlpfYyB5CisgICAgICAgICBtcHpfdG9fWlooJnksICg8SW50ZWdlcj52YWx1ZSkudmFsdWUpCist ICAgICAgICBaWlhfU2V0Q29lZmYoc2VsZi5fX3BvbHksIG4sIHkpCisrICAgICAgICBaWlhfU2V0 Q29lZmYoc2VsZi5fcG9seSwgbiwgeSkKKyAKKyAKKyAgICAgZGVmIHJlYWxfcm9vdF9pbnRlcnZh bHMoc2VsZik6CitAQCAtODA1LDcgKzgwNSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRl Z2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAKKyAjIyAgICAgZGVmIF9fY29weV9fKHNlbGYp OgorICMjICAgICAgICAgZiA9IFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZShzZWxmLnBhcmVudCgp KQorLSMjICAgICAgICAgZi5fX3BvbHkgPSBzZWxmLl9fcG9seS5jb3B5KCkKKysjIyAgICAgICAg IGYuX3BvbHkgPSBzZWxmLl9wb2x5LmNvcHkoKQorICMjICAgICAgICAgcmV0dXJuIGYKKyAKKyAK K0BAIC04MjYsNyArODI2LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2Vf bnRsKFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHNhZ2U6IFIoMCkuZGVncmVlKCkKKyAgICAg ICAgICAgICAtMQorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gWlpYX2RlZyhzZWxmLl9f cG9seSkKKysgICAgICAgIHJldHVybiBaWlhfZGVnKHNlbGYuX3BvbHkpCisgCisgICAgIGRlZiBk aXNjcmltaW5hbnQoc2VsZiwgcHJvb2Y9VHJ1ZSk6CisgICAgICAgICByIiIiCitAQCAtODQ5LDcg Kzg0OSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9t aWFsKToKKyAgICAgICAgICAgICBzYWdlOiBmLmRpc2NyaW1pbmFudChwcm9vZj1GYWxzZSkKKyAg ICAgICAgICAgICAtMzM5CisgICAgICAgICAiIiIKKy0gICAgICAgIGNkZWYgWlpfYyogdGVtcCA9 IFpaWF9kaXNjcmltaW5hbnQoJnNlbGYuX19wb2x5LCBwcm9vZikKKysgICAgICAgIGNkZWYgWlpf YyogdGVtcCA9IFpaWF9kaXNjcmltaW5hbnQoJnNlbGYuX3BvbHksIHByb29mKQorICAgICAgICAg Y2RlZiBJbnRlZ2VyIHggPSBJbnRlZ2VyLl9fbmV3X18oSW50ZWdlcikKKyAgICAgICAgIFpaX3Rv X21weih4LnZhbHVlLCB0ZW1wKQorICAgICAgICAgZGVsIHRlbXAKK0BAIC05MDQsMTEgKzkwNCwx MSBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwoUG9seW5vbWlhbCk6 CisgICAgICAgICBjZGVmIGxvbmcqIGUKKyAgICAgICAgIGNkZWYgbG9uZyBpLCBuCisgICAgICAg ICBjZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwgegorLSAgICAgICAgWlpYX3NxdWFy ZWZyZWVfZGVjb21wb3NpdGlvbigmdiwgJmUsICZuLCAmcC5fX3BvbHkpCisrICAgICAgICBaWlhf c3F1YXJlZnJlZV9kZWNvbXBvc2l0aW9uKCZ2LCAmZSwgJm4sICZwLl9wb2x5KQorICAgICAgICAg RiA9IFtdCisgICAgICAgICBmb3IgaSBmcm9tIDAgPD0gaSA8IG46CisgICAgICAgICAgICAgeiA9 IHNlbGYuX25ldygpCistICAgICAgICAgICAgei5fX3BvbHkgPSB2W2ldWzBdCisrICAgICAgICAg ICAgei5fcG9seSA9IHZbaV1bMF0KKyAgICAgICAgICAgICBGLmFwcGVuZCgoeiwgZVtpXSkpCisg ICAgICAgICAgICAgZGVsIHZbaV0KKyAgICAgICAgIHNpZ19mcmVlKHYpCitAQCAtOTUwLDI0ICs5 NTAsMjQgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKFBvbHlub21p YWwpOgorICAgICAgICAgY2RlZiBaWl9jIGNvbnRlbnQKKyAgICAgICAgIGNkZWYgdmVjX3BhaXJf WlpYX2xvbmdfYyBmYWN0b3JzCisgICAgICAgICBjZGVmIGxvbmcgaQorLSAgICAgICAgY2RlZiBp bnQgc2lnX21lID0gWlpYX2RlZyhzZWxmLl9fcG9seSkKKysgICAgICAgIGNkZWYgaW50IHNpZ19t ZSA9IFpaWF9kZWcoc2VsZi5fcG9seSkKKyAgICAgICAgIGlmIHNpZ19tZSA+IDEwOgorICAgICAg ICAgICAgIHNpZ19vbigpCistICAgICAgICBaWlhfZmFjdG9yKGNvbnRlbnQsIGZhY3RvcnMsIHNl bGYuX19wb2x5LCAwLCAwKQorKyAgICAgICAgWlpYX2ZhY3Rvcihjb250ZW50LCBmYWN0b3JzLCBz ZWxmLl9wb2x5LCAwLCAwKQorICAgICAgICAgaWYgc2lnX21lID4gMTA6CisgICAgICAgICAgICAg c2lnX29mZigpCisgICAgICAgICByZXN1bHRzID0gW10KKyAgICAgICAgIHVuaXQgPSBOb25lCisg ICAgICAgICBpZiBub3QgWlpfSXNPbmUoY29udGVudCk6CisgICAgICAgICAgICAgZmFjX3B5ID0g c2VsZi5fbmV3KCkKKy0gICAgICAgICAgICBaWlhfU2V0Q29lZmYoZmFjX3B5Ll9fcG9seSwgMCwg Y29udGVudCkKKy0gICAgICAgICAgICBpZiBaWlhfZGVnKGZhY19weS5fX3BvbHkpID09IDAgYW5k IFpaX3RvX2ludChmYWNfcHkuX19wb2x5LnJlcC5lbHRzKCkpPT0tMToKKysgICAgICAgICAgICBa WlhfU2V0Q29lZmYoZmFjX3B5Ll9wb2x5LCAwLCBjb250ZW50KQorKyAgICAgICAgICAgIGlmIFpa WF9kZWcoZmFjX3B5Ll9wb2x5KSA9PSAwIGFuZCBaWl90b19pbnQoZmFjX3B5Ll9wb2x5LnJlcC5l bHRzKCkpPT0tMToKKyAgICAgICAgICAgICAgICAgdW5pdCA9IGZhY19weQorICAgICAgICAgICAg IGVsc2U6CisgICAgICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKCAoZmFjX3B5LDEpICkKKyAg ICAgICAgIGZvciBpIGZyb20gMCA8PSBpIDwgZmFjdG9ycy5sZW5ndGgoKToKKyAgICAgICAgICAg ICBmYWNfcHkgPSBzZWxmLl9uZXcoKQorLSAgICAgICAgICAgIGZhY19weS5fX3BvbHkgPSBmYWN0 b3JzLlJhd0dldChpKS5hCisrICAgICAgICAgICAgZmFjX3B5Ll9wb2x5ID0gZmFjdG9ycy5SYXdH ZXQoaSkuYQorICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKCAoZmFjX3B5LGZhY3RvcnMuUmF3 R2V0KGkpLmIpICkKKyAgICAgICAgIHJldHVybiBGYWN0b3JpemF0aW9uKHJlc3VsdHMsIHVuaXQg PSB1bml0KQorIAorQEAgLTk5Niw3ICs5OTYsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50 ZWdlcl9kZW5zZV9udGwoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgc2FnZTogZiA9IC0zMCp4 OyBmLmZhY3RvcigpCisgICAgICAgICAgICAgKC0xKSAqIDIgKiAzICogNSAqIHgKKyAgICAgICAg ICIiIgorLSAgICAgICAgY2RlZiBpbnQgZGVnID0gWlpYX2RlZyhzZWxmLl9fcG9seSkKKysgICAg ICAgIGNkZWYgaW50IGRlZyA9IFpaWF9kZWcoc2VsZi5fcG9seSkKKyAgICAgICAgICMgaXQgYXBw ZWFycyB0aGF0IHBhcmkgaGFzIGEgd2luZG93IGZyb20gYWJvdXQgZGVncmVlcyAzMCBhbmQgMzAw CisgICAgICAgICAjIGluIHdoaWNoIGl0IGJlYXRzIE5UTC4KKyAgICAgICAgIGMgPSBzZWxmLmNv bnRlbnQoKQorQEAgLTExMzEsNyArMTEzMSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRl Z2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBUcnVlCisgICAgICAgICAi IiIKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bCBfb3RoZXIgPSA8 UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bD4oc2VsZi5wYXJlbnQoKS5jb2VyY2Uob3RoZXIp KQorLSAgICAgICAgY2RlZiBaWl9jKiB0ZW1wID0gWlpYX3Jlc3VsdGFudCgmc2VsZi5fX3BvbHks ICZfb3RoZXIuX19wb2x5LCBwcm9vZikKKysgICAgICAgIGNkZWYgWlpfYyogdGVtcCA9IFpaWF9y ZXN1bHRhbnQoJnNlbGYuX3BvbHksICZfb3RoZXIuX3BvbHksIHByb29mKQorICAgICAgICAgY2Rl ZiBJbnRlZ2VyIHggPSBJbnRlZ2VyLl9fbmV3X18oSW50ZWdlcikKKyAgICAgICAgIFpaX3RvX21w eih4LnZhbHVlLCB0ZW1wKQorICAgICAgICAgZGVsIHRlbXAKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfbW9kbl9kZW5zZV9udGwucHhkIGIvc3JjL3Nh Z2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX21vZG5fZGVuc2VfbnRsLnB4ZAoraW5kZXgg MjY0ZjA1ZjNjMGQuLjY5MzRhY2ZlZThkIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9s eW5vbWlhbC9wb2x5bm9taWFsX21vZG5fZGVuc2VfbnRsLnB4ZAorKysrIGIvc3JjL3NhZ2Uvcmlu Z3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX21vZG5fZGVuc2VfbnRsLnB4ZAorQEAgLTE2LDcgKzE2 LDcgQEAgZnJvbSBzYWdlLmxpYnMubnRsLmx6el9wWCBjaW1wb3J0ICoKKyAKKyAKKyBjZGVmIGNs YXNzIFBvbHlub21pYWxfZGVuc2VfbW9kX24oUG9seW5vbWlhbCk6CistICAgIGNkZWYgb2JqZWN0 IF9fcG9seQorKyAgICBjZGVmIG9iamVjdCBfcG9seQorICAgICBjZGVmIG9iamVjdCBfX3Npbmd1 bGFyCisgCisgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZG5fbnRsX3p6KFBvbHlub21p YWxfZGVuc2VfbW9kX24pOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwv cG9seW5vbWlhbF9tb2RuX2RlbnNlX250bC5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFs L3BvbHlub21pYWxfbW9kbl9kZW5zZV9udGwucHl4CitpbmRleCA1NzQ2OGUzNTEwZi4uZDY5ZDVl MDkwMTggMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxf bW9kbl9kZW5zZV9udGwucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlu b21pYWxfbW9kbl9kZW5zZV9udGwucHl4CitAQCAtMTA1LDE5ICsxMDUsMTkgQEAgY2RlZiBjbGFz cyBQb2x5bm9taWFsX2RlbnNlX21vZF9uKFBvbHlub21pYWwpOgorIAorICAgICAgICAgaWYgY29u c3RydWN0OgorICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoeCwgWlpfcFgpOgorLSAgICAgICAg ICAgICAgICBzZWxmLl9fcG9seSA9IHgKKysgICAgICAgICAgICAgICAgc2VsZi5fcG9seSA9IHgK KyAgICAgICAgICAgICAgICAgcmV0dXJuCistICAgICAgICAgICAgc2VsZi5fX3BvbHkgPSBaWl9w WCh4LCBwYXJlbnQubW9kdWx1cygpKQorKyAgICAgICAgICAgIHNlbGYuX3BvbHkgPSBaWl9wWCh4 LCBwYXJlbnQubW9kdWx1cygpKQorICAgICAgICAgICAgIHJldHVybgorIAorLSAgICAgICAgc2Vs Zi5fX3BvbHkgPSBaWl9wWChbXSwgcGFyZW50Lm1vZHVsdXMoKSkKKysgICAgICAgIHNlbGYuX3Bv bHkgPSBaWl9wWChbXSwgcGFyZW50Lm1vZHVsdXMoKSkKKyAKKyAgICAgICAgIGlmIHggaXMgTm9u ZToKKyAgICAgICAgICAgICByZXR1cm4gICAgICAgICAjIGxlYXZlIGluaXRpYWxpemVkIHRvIDAg cG9seW5vbWlhbC4KKyAKKyAgICAgICAgIGlmIGlzaW5zdGFuY2UoeCwgUG9seW5vbWlhbCk6Cisg ICAgICAgICAgICAgaWYgeC5wYXJlbnQoKSA9PSBzZWxmLnBhcmVudCgpOgorLSAgICAgICAgICAg ICAgICBzZWxmLl9fcG9seSA9ICg8UG9seW5vbWlhbF9kZW5zZV9tb2RuX250bF96ej54KS5fX3Bv bHkuX19jb3B5X18oKQorKyAgICAgICAgICAgICAgICBzZWxmLl9wb2x5ID0gKDxQb2x5bm9taWFs X2RlbnNlX21vZG5fbnRsX3p6PngpLl9wb2x5Ll9fY29weV9fKCkKKyAgICAgICAgICAgICAgICAg cmV0dXJuCisgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgUiA9IHBhcmVudC5i YXNlX3JpbmcoKQorQEAgLTEzMCw3ICsxMzAsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVu c2VfbW9kX24oUG9seW5vbWlhbCk6CisgCisgCisgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoeCwg WlpYKToKKy0gICAgICAgICAgICBzZWxmLl9fcG9seSA9IHguY29weSgpCisrICAgICAgICAgICAg c2VsZi5fcG9seSA9IHguY29weSgpCisgICAgICAgICAgICAgcmV0dXJuCisgCisgICAgICAgICBl bGlmIGlzaW5zdGFuY2UoeCwgcGFyaV9nZW4pOgorQEAgLTE0Miw3ICsxNDIsNyBAQCBjZGVmIGNs YXNzIFBvbHlub21pYWxfZGVuc2VfbW9kX24oUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgaWYg eC5kZW5vbWluYXRvcigpLmlzX3VuaXQoKToKKyAgICAgICAgICAgICAgICAgbnVtZXIgPSB4Lm51 bWVyYXRvcigpCisgICAgICAgICAgICAgICAgIGRlbm9tID0geC5kZW5vbWluYXRvcigpLmludmVy c2Vfb2ZfdW5pdCgpCistICAgICAgICAgICAgICAgIHggPSBudW1lci5fX3BvbHkgKiBkZW5vbS5f X3BvbHkKKysgICAgICAgICAgICAgICAgeCA9IG51bWVyLl9wb2x5ICogZGVub20uX3BvbHkKKyAg ICAgICAgICAgICAgICAgY2hlY2sgPSBGYWxzZQorICAgICAgICAgICAgIGVsc2U6CisgICAgICAg ICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiRGVub21pbmF0b3Igbm90IGEgdW5pdC4iKQorQEAg LTE1NCwxMyArMTU0LDEzIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9kZW5zZV9tb2RfbihQb2x5 bm9taWFsKToKKyAgICAgICAgICAgICBSID0gcGFyZW50LmJhc2VfcmluZygpCisgICAgICAgICAg ICAgeCA9IFtaWihSKGEpKSBmb3IgYSBpbiB4XQorIAorLSAgICAgICAgc2VsZi5fX3BvbHkgPSBa Wl9wWCh4LCBwYXJlbnQubW9kdWx1cygpKQorKyAgICAgICAgc2VsZi5fcG9seSA9IFpaX3BYKHgs IHBhcmVudC5tb2R1bHVzKCkpCisgCisgICAgIGRlZiBfX3JlZHVjZV9fKHNlbGYpOgorICAgICAg ICAgcmV0dXJuIG1ha2VfZWxlbWVudCwgKHNlbGYucGFyZW50KCksIChzZWxmLmxpc3QoKSwgRmFs c2UsIHNlbGYuaXNfZ2VuKCkpKQorIAorICAgICBkZWYgaW50X2xpc3Qoc2VsZik6CistICAgICAg ICByZXR1cm4gZXZhbChzdHIoc2VsZi5fX3BvbHkpLnJlcGxhY2UoJyAnLCcsJykpCisrICAgICAg ICByZXR1cm4gZXZhbChzdHIoc2VsZi5fcG9seSkucmVwbGFjZSgnICcsJywnKSkKKyAKKyAgICAg ZGVmIF9fcGFyaV9fKHNlbGYsIHZhcmlhYmxlPU5vbmUpOgorICAgICAgICAgIiIiCitAQCAtMTg2 LDcgKzE4Niw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9kZW5zZV9tb2RfbihQb2x5bm9taWFs KToKKyAgICAgICAgICAgICBZb3UgbXVzdCBjYWxsIGBgbnRsLnNldF9tb2R1bHVzKG50bC5aWihu KSlgYCBiZWZvcmUgZG9pbmcKKyAgICAgICAgICAgICBhcml0aG1ldGljIHdpdGggdGhpcyBvYmpl Y3QhCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBzZWxmLl9fcG9seQorKyAgICAgICAg cmV0dXJuIHNlbGYuX3BvbHkKKyAKKyAgICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXpl X3Qgbik6CisgICAgICAgICAiIiIKK0BAIC0yMDMsMTMgKzIwMywxMyBAQCBjZGVmIGNsYXNzIFBv bHlub21pYWxfZGVuc2VfbW9kX24oUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgc2FnZTogZls6 M10KKyAgICAgICAgICAgICAxMyp4XjIgKyAxMCp4ICsgNQorICAgICAgICAgIiIiCistICAgICAg ICByZXR1cm4gc2VsZi5fcGFyZW50Ll9iYXNlKCg8bnRsX1paX3BYPiBzZWxmLl9fcG9seSlbbl0u X2ludGVnZXJfKCkpCisrICAgICAgICByZXR1cm4gc2VsZi5fcGFyZW50Ll9iYXNlKCg8bnRsX1pa X3BYPiBzZWxmLl9wb2x5KVtuXS5faW50ZWdlcl8oKSkKKyAKKyAgICAgZGVmIF91bnNhZmVfbXV0 YXRlKHNlbGYsIG4sIHZhbHVlKToKKyAgICAgICAgIG4gPSBpbnQobikKKyAgICAgICAgIGlmIG4g PCAwOgorICAgICAgICAgICAgIHJhaXNlIEluZGV4RXJyb3IoIm4gbXVzdCBiZSA+PSAwIikKKy0g ICAgICAgIHNlbGYuX19wb2x5W25dID0gaW50KHZhbHVlKQorKyAgICAgICAgc2VsZi5fcG9seVtu XSA9IGludCh2YWx1ZSkKKyAKKyAgICAgZGVmIF9wb3coc2VsZiwgbik6CisgICAgICAgICBuID0g aW50KG4pCitAQCAtMjE4LDEwICsyMTgsMTAgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNl X21vZF9uKFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLnBhcmVudCgpKHNl bGZbMF0qKm4pCisgICAgICAgICBpZiBuIDwgMDoKKyAgICAgICAgICAgICByZXR1cm4gKH5zZWxm KSoqKC1uKQorLSAgICAgICAgcmV0dXJuIHNlbGYucGFyZW50KCkoc2VsZi5fX3BvbHkqKm4sIGNv bnN0cnVjdD1UcnVlKQorKyAgICAgICAgcmV0dXJuIHNlbGYucGFyZW50KCkoc2VsZi5fcG9seSoq biwgY29uc3RydWN0PVRydWUpCisgCisgICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KToKKy0g ICAgICAgIHJldHVybiBzZWxmLnBhcmVudCgpKHNlbGYuX19wb2x5ICsgKDxQb2x5bm9taWFsX2Rl bnNlX21vZF9uPnJpZ2h0KS5fX3BvbHksIGNvbnN0cnVjdD1UcnVlKQorKyAgICAgICAgcmV0dXJu IHNlbGYucGFyZW50KCkoc2VsZi5fcG9seSArICg8UG9seW5vbWlhbF9kZW5zZV9tb2Rfbj5yaWdo dCkuX3BvbHksIGNvbnN0cnVjdD1UcnVlKQorIAorICAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdo dCk6CisgICAgICAgICAiIiIKK0BAIC0yMzEsMTEgKzIzMSwxMSBAQCBjZGVmIGNsYXNzIFBvbHlu b21pYWxfZGVuc2VfbW9kX24oUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgc2FnZTogKHggLSAy KSooeF4yIC0gOCp4ICsgMTYpCisgICAgICAgICAgICAgeF4zICsgOTAqeF4yICsgMzIqeCArIDY4 CisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBzZWxmLnBhcmVudCgpKHNlbGYuX19wb2x5 ICogKDxQb2x5bm9taWFsX2RlbnNlX21vZF9uPnJpZ2h0KS5fX3BvbHksIGNvbnN0cnVjdD1UcnVl KQorKyAgICAgICAgcmV0dXJuIHNlbGYucGFyZW50KCkoc2VsZi5fcG9seSAqICg8UG9seW5vbWlh bF9kZW5zZV9tb2Rfbj5yaWdodCkuX3BvbHksIGNvbnN0cnVjdD1UcnVlKQorIAorICAgICBjcGRl ZiBfbG11bF8oc2VsZiwgRWxlbWVudCBjKToKKyAgICAgICAgIHRyeToKKy0gICAgICAgICAgICBy ZXR1cm4gc2VsZi5wYXJlbnQoKShaWl9wWChbY10sIHNlbGYucGFyZW50KCkubW9kdWx1cygpKSAq IHNlbGYuX19wb2x5LCBjb25zdHJ1Y3Q9VHJ1ZSkKKysgICAgICAgICAgICByZXR1cm4gc2VsZi5w YXJlbnQoKShaWl9wWChbY10sIHNlbGYucGFyZW50KCkubW9kdWx1cygpKSAqIHNlbGYuX3BvbHks IGNvbnN0cnVjdD1UcnVlKQorICAgICAgICAgZXhjZXB0IFJ1bnRpbWVFcnJvciBhcyBtc2c6ICMg c2hvdWxkIHRoaXMgcmVhbGx5IGJlIGEgVHlwZUVycm9yCisgICAgICAgICAgICAgcmFpc2UgVHlw ZUVycm9yKG1zZykKKyAKK0BAIC0yNDUsNyArMjQ1LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFs X2RlbnNlX21vZF9uKFBvbHlub21pYWwpOgorICAgICAgICAgUmV0dXJuIGEgdHVwbGUgYGAocXVv dGllbnQsIHJlbWFpbmRlcilgYCB3aGVyZSBgYHNlbGYgPSBxdW90aWVudCpvdGhlciArCisgICAg ICAgICByZW1haW5kZXJgYC4KKyAgICAgICAgICIiIgorLSAgICAgICAgdiA9IHNlbGYuX19wb2x5 LnF1b19yZW0oKDxQb2x5bm9taWFsX2RlbnNlX21vZF9uPnJpZ2h0KS5fX3BvbHkpCisrICAgICAg ICB2ID0gc2VsZi5fcG9seS5xdW9fcmVtKCg8UG9seW5vbWlhbF9kZW5zZV9tb2Rfbj5yaWdodCku X3BvbHkpCisgICAgICAgICBQID0gc2VsZi5wYXJlbnQoKQorICAgICAgICAgcmV0dXJuIChQKHZb MF0sIGNvbnN0cnVjdD1UcnVlKSwgUCh2WzFdLCBjb25zdHJ1Y3Q9VHJ1ZSkgKQorIAorQEAgLTI4 MSwxMSArMjgxLDExIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9kZW5zZV9tb2RfbihQb2x5bm9t aWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgaWYgbiA9PSAwIG9yIHNlbGYuZGVncmVlKCkg PCAwOgorICAgICAgICAgICAgIHJldHVybiBzZWxmCistICAgICAgICByZXR1cm4gc2VsZi5wYXJl bnQoKShzZWxmLl9fcG9seS5sZWZ0X3NoaWZ0KG4pLAorKyAgICAgICAgcmV0dXJuIHNlbGYucGFy ZW50KCkoc2VsZi5fcG9seS5sZWZ0X3NoaWZ0KG4pLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3RydWN0PVRydWUpCisgCisgICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KToK Ky0gICAgICAgIHJldHVybiBzZWxmLnBhcmVudCgpKHNlbGYuX19wb2x5IC0gKDxQb2x5bm9taWFs X2RlbnNlX21vZF9uPnJpZ2h0KS5fX3BvbHksIGNvbnN0cnVjdD1UcnVlKQorKyAgICAgICAgcmV0 dXJuIHNlbGYucGFyZW50KCkoc2VsZi5fcG9seSAtICg8UG9seW5vbWlhbF9kZW5zZV9tb2Rfbj5y aWdodCkuX3BvbHksIGNvbnN0cnVjdD1UcnVlKQorIAorICAgICBkZWYgX19mbG9vcmRpdl9fKHNl bGYsIHJpZ2h0KToKKyAgICAgICAgIHEsIF8gPSBzZWxmLnF1b19yZW0ocmlnaHQpCitAQCAtMzE0 LDcgKzMxNCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9kZW5zZV9tb2RfbihQb2x5bm9taWFs KToKKyAgICAgICAgICAgICBzYWdlOiBpc2luc3RhbmNlKHguZGVncmVlKCksIEludGVnZXIpCisg ICAgICAgICAgICAgVHJ1ZQorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc21hbGxJbnRl Z2VyKG1heChzZWxmLl9fcG9seS5kZWdyZWUoKSwgLTEpKQorKyAgICAgICAgcmV0dXJuIHNtYWxs SW50ZWdlcihtYXgoc2VsZi5fcG9seS5kZWdyZWUoKSwgLTEpKQorIAorICAgICBjcGRlZiBsaXN0 IGxpc3Qoc2VsZiwgYmludCBjb3B5PVRydWUpOgorICAgICAgICAgIiIiCitAQCAtMzU4LDcgKzM1 OCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9kZW5zZV9tb2RfbihQb2x5bm9taWFsKToKKyAg ICAgICAgICIiIgorICAgICAgICAgaWYgc2VsZi5pc19nZW4oKToKKyAgICAgICAgICAgICByYWlz ZSBUeXBlRXJyb3IoIkNhbm5vdCBjaGFuZ2UgdGhlIHZhbHVlIG9mIHRoZSBnZW5lcmF0b3IuIikK Ky0gICAgICAgIHNlbGYuX19wb2x5ID0gWlpfcFgodiwgc2VsZi5wYXJlbnQoKS5tb2R1bHVzKCkp CisrICAgICAgICBzZWxmLl9wb2x5ID0gWlpfcFgodiwgc2VsZi5wYXJlbnQoKS5tb2R1bHVzKCkp CisgCisgICAgICMgUG9seW5vbWlhbF9zaW5ndWxhcl9yZXByIHN0dWZmLCBjb3BpZWQgZHVlIHRv IGxhY2sgb2YgbXVsdGlwbGUgaW5oZXJpdGFuY2UKKyAgICAgZGVmIF9zaW5ndWxhcl8oc2VsZiwg c2luZ3VsYXI9c2luZ3VsYXJfZGVmYXVsdCwgZm9yY2U9RmFsc2UpOgorQEAgLTY1NCw4ICs2NTQs OCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9kbl9udGxfenooUG9seW5vbWlhbF9k ZW5zZV9tb2Rfbik6CisgICAgICAgICAgICAgICAgIHJldHVybgorIAorICAgICAgICAgUG9seW5v bWlhbF9kZW5zZV9tb2Rfbi5fX2luaXRfXyhzZWxmLCBwYXJlbnQsIHYsIGNoZWNrPWNoZWNrLCBp c19nZW49aXNfZ2VuLCBjb25zdHJ1Y3Q9Y29uc3RydWN0KQorLSAgICAgICAgdiA9IFthIGZvciBh IGluIHNlbGYuX19wb2x5Lmxpc3QoKV0KKy0gICAgICAgIHNlbGYuX19wb2x5ID0gTm9uZSAjIHRo aXMgd2lsbCBldmVudHVhbGx5IGdvIGF3YXkKKysgICAgICAgIHYgPSBbYSBmb3IgYSBpbiBzZWxm Ll9wb2x5Lmxpc3QoKV0KKysgICAgICAgIHNlbGYuX3BvbHkgPSBOb25lICMgdGhpcyB3aWxsIGV2 ZW50dWFsbHkgZ28gYXdheQorICAgICAgICAgY2RlZiBudGxfenpfcFggbnRsID0gbnRsX3p6X3BY KHYsIHBhcmVudC5tb2R1bHVzKCkpICMgbGV0IGl0IGhhbmRsZSB0aGUgaGFyZCB3b3JrCisgICAg ICAgICBzZWxmLnggPSBudGwueAorICAgICAgICAgc2VsZi5jID0gbnRsLmMKK0BAIC02NjgsOCAr NjY4LDggQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZG5fbnRsX3p6KFBvbHlub21p YWxfZGVuc2VfbW9kX24pOgorICAgICAgICAgIyBUT0RPOiBHZXQgcmlkIG9mIHRoaXMKKyAgICAg ICAgIFBvbHlub21pYWxfZGVuc2VfbW9kX24ubnRsX3NldF9kaXJlY3RseShzZWxmLCB2KQorICAg ICAgICAgIyB2ZXJiYXRpbSBmcm9tIF9faW5pdF9fCistICAgICAgICB2ID0gW2ludChhKSBmb3Ig YSBpbiBzZWxmLl9fcG9seS5saXN0KCldCistICAgICAgICBzZWxmLl9fcG9seSA9IE5vbmUgIyB0 aGlzIHdpbGwgZXZlbnR1YWxseSBnbyBhd2F5CisrICAgICAgICB2ID0gW2ludChhKSBmb3IgYSBp biBzZWxmLl9wb2x5Lmxpc3QoKV0KKysgICAgICAgIHNlbGYuX3BvbHkgPSBOb25lICMgdGhpcyB3 aWxsIGV2ZW50dWFsbHkgZ28gYXdheQorICAgICAgICAgY2RlZiBudGxfenpfcFggbnRsID0gbnRs X3p6X3BYKHYsIHNlbGYuX3BhcmVudC5tb2R1bHVzKCkpICMgbGV0IGl0IGhhbmRsZSB0aGUgaGFy ZCB3b3JrCisgICAgICAgICBzZWxmLnggPSBudGwueAorICAgICAgICAgc2VsZi5jID0gbnRsLmMK K0BAIC0xMjQxLDggKzEyNDEsOCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9kbl9u dGxfWlooUG9seW5vbWlhbF9kZW5zZV9tb2Rfbik6CisgICAgICAgICAgICAgICAgIHJldHVybgor IAorICAgICAgICAgUG9seW5vbWlhbF9kZW5zZV9tb2Rfbi5fX2luaXRfXyhzZWxmLCBwYXJlbnQs IHYsIGNoZWNrPWNoZWNrLCBpc19nZW49aXNfZ2VuLCBjb25zdHJ1Y3Q9Y29uc3RydWN0KQorLSAg ICAgICAgY2RlZiBudGxfWlpfcFggbnRsID0gc2VsZi5fX3BvbHkKKy0gICAgICAgIHNlbGYuX19w b2x5ID0gTm9uZSAjIHRoaXMgd2lsbCBldmVudHVhbGx5IGdvIGF3YXkKKysgICAgICAgIGNkZWYg bnRsX1paX3BYIG50bCA9IHNlbGYuX3BvbHkKKysgICAgICAgIHNlbGYuX3BvbHkgPSBOb25lICMg dGhpcyB3aWxsIGV2ZW50dWFsbHkgZ28gYXdheQorICAgICAgICAgc2VsZi54ID0gbnRsLngKKyAg ICAgICAgIHNlbGYuYyA9IG50bC5jCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9s eW5vbWlhbC9wb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50LnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3Bv bHlub21pYWwvcG9seW5vbWlhbF9yYXRpb25hbF9mbGludC5weGQKK2luZGV4IDA1NWQ3ODQyNjY4 Li5mNDY0NGYxOWQwNCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9s eW5vbWlhbF9yYXRpb25hbF9mbGludC5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21p YWwvcG9seW5vbWlhbF9yYXRpb25hbF9mbGludC5weGQKK0BAIC0xMSw3ICsxMSw3IEBAIGZyb20g c2FnZS5saWJzLmZsaW50LnR5cGVzIGNpbXBvcnQgZm1wcV9wb2x5X3QKKyBmcm9tIHNhZ2Uucmlu Z3MucG9seW5vbWlhbC5wb2x5bm9taWFsX2VsZW1lbnQgY2ltcG9ydCBQb2x5bm9taWFsCisgCisg Y2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorLSAgICBj ZGVmIGZtcHFfcG9seV90IF9fcG9seQorKyAgICBjZGVmIGZtcHFfcG9seV90IF9wb2x5CisgCisg ICAgIGNkZWYgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludCBfbmV3KHNlbGYpCisgICAgIGNwZGVm IF9tb2RfKHNlbGYsIHJpZ2h0KQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21p YWwvcG9seW5vbWlhbF9yYXRpb25hbF9mbGludC5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9t aWFsL3BvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQucHl4CitpbmRleCBkMGRkMTU1MjJlOS4uMjZk MDcwYWM3N2YgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21p YWxfcmF0aW9uYWxfZmxpbnQucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3Bv bHlub21pYWxfcmF0aW9uYWxfZmxpbnQucHl4CitAQCAtMTU1LDE2ICsxNTUsMTYgQEAgY2RlZiBj bGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgcmVz Ll9wYXJlbnQgPSBQCisgICAgICAgICByZXMuX2lzX2dlbiA9IDxjaGFyPjAKKyAgICAgICAgIGlm IGlzaW5zdGFuY2UoeCwgaW50KToKKy0gICAgICAgICAgICBmbXBxX3BvbHlfc2V0X3NpKHJlcy5f X3BvbHksIDxpbnQ+IHgpCisrICAgICAgICAgICAgZm1wcV9wb2x5X3NldF9zaShyZXMuX3BvbHks IDxpbnQ+IHgpCisgCisgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoeCwgSW50ZWdlcik6CistICAg ICAgICAgICAgZm1wcV9wb2x5X3NldF9tcHoocmVzLl9fcG9seSwgKDxJbnRlZ2VyPiB4KS52YWx1 ZSkKKysgICAgICAgICAgICBmbXBxX3BvbHlfc2V0X21weihyZXMuX3BvbHksICg8SW50ZWdlcj4g eCkudmFsdWUpCisgCisgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoeCwgUmF0aW9uYWwpOgorLSAg ICAgICAgICAgIGZtcHFfcG9seV9zZXRfbXBxKHJlcy5fX3BvbHksICg8UmF0aW9uYWw+IHgpLnZh bHVlKQorKyAgICAgICAgICAgIGZtcHFfcG9seV9zZXRfbXBxKHJlcy5fcG9seSwgKDxSYXRpb25h bD4geCkudmFsdWUpCisgCisgICAgICAgICBlbHNlOgorLSAgICAgICAgICAgIGZtcHFfcG9seV9z ZXRfc2kocmVzLl9fcG9seSwgaW50KHgpKQorKyAgICAgICAgICAgIGZtcHFfcG9seV9zZXRfc2ko cmVzLl9wb2x5LCBpbnQoeCkpCisgICAgICAgICByZXR1cm4gcmVzCisgCisgCitAQCAtMTc3LDcg KzE3Nyw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFs KToKKyAgICAgICAgICAgICBzYWdlOiBSLjx0PiA9IFFRW10KKyAgICAgICAgICAgICBzYWdlOiBm ID0gMi8zICogdCAtIDcgICNpbmRpcmVjdCBkb2N0ZXN0CisgICAgICAgICAiIiIKKy0gICAgICAg IGZtcHFfcG9seV9pbml0KHNlbGYuX19wb2x5KQorKyAgICAgICAgZm1wcV9wb2x5X2luaXQoc2Vs Zi5fcG9seSkKKyAKKyAgICAgZGVmIF9fZGVhbGxvY19fKHNlbGYpOgorICAgICAgICAgIiIiCitA QCAtMTg5LDcgKzE4OSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQ b2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdlOiBmID0gMS8zICogdAorICAgICAgICAgICAg IHNhZ2U6IGRlbCBmCisgICAgICAgICAiIiIKKy0gICAgICAgIGZtcHFfcG9seV9jbGVhcihzZWxm Ll9fcG9seSkKKysgICAgICAgIGZtcHFfcG9seV9jbGVhcihzZWxmLl9wb2x5KQorIAorICAgICBk ZWYgX19pbml0X18oc2VsZiwgcGFyZW50LCB4PU5vbmUsIGNoZWNrPVRydWUsIGlzX2dlbj1GYWxz ZSwgY29uc3RydWN0PUZhbHNlKToKKyAgICAgICAgICIiIgorQEAgLTIyNywxOSArMjI3LDE5IEBA IGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAg ICAgIFBvbHlub21pYWwuX19pbml0X18oc2VsZiwgcGFyZW50LCBpc19nZW49aXNfZ2VuKQorIAor ICAgICAgICAgaWYgaXNfZ2VuOgorLSAgICAgICAgICAgIGZtcHFfcG9seV9zZXRfY29lZmZfc2ko c2VsZi5fX3BvbHksIDEsIDEpCisrICAgICAgICAgICAgZm1wcV9wb2x5X3NldF9jb2VmZl9zaShz ZWxmLl9wb2x5LCAxLCAxKQorIAorICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHgsIFBvbHlub21p YWxfcmF0aW9uYWxfZmxpbnQpOgorLSAgICAgICAgICAgIGZtcHFfcG9seV9zZXQoc2VsZi5fX3Bv bHksICg8UG9seW5vbWlhbF9yYXRpb25hbF9mbGludD4geCkuX19wb2x5KQorKyAgICAgICAgICAg IGZtcHFfcG9seV9zZXQoc2VsZi5fcG9seSwgKDxQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50PiB4 KS5fcG9seSkKKyAKKyAgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh4LCBpbnQpOgorLSAgICAgICAg ICAgIGZtcHFfcG9seV9zZXRfc2koc2VsZi5fX3BvbHksIDxpbnQ+IHgpCisrICAgICAgICAgICAg Zm1wcV9wb2x5X3NldF9zaShzZWxmLl9wb2x5LCA8aW50PiB4KQorIAorICAgICAgICAgZWxpZiBp c2luc3RhbmNlKHgsIEludGVnZXIpOgorLSAgICAgICAgICAgIGZtcHFfcG9seV9zZXRfbXB6KHNl bGYuX19wb2x5LCAoPEludGVnZXI+IHgpLnZhbHVlKQorKyAgICAgICAgICAgIGZtcHFfcG9seV9z ZXRfbXB6KHNlbGYuX3BvbHksICg8SW50ZWdlcj4geCkudmFsdWUpCisgCisgICAgICAgICBlbGlm IGlzaW5zdGFuY2UoeCwgUmF0aW9uYWwpOgorLSAgICAgICAgICAgIGZtcHFfcG9seV9zZXRfbXBx KHNlbGYuX19wb2x5LCAoPFJhdGlvbmFsPiB4KS52YWx1ZSkKKysgICAgICAgICAgICBmbXBxX3Bv bHlfc2V0X21wcShzZWxmLl9wb2x5LCAoPFJhdGlvbmFsPiB4KS52YWx1ZSkKKyAKKyAgICAgICAg IGVsaWYgaXNpbnN0YW5jZSh4LCBsaXN0KSBvciBpc2luc3RhbmNlKHgsIHR1cGxlKToKKyAKK0BA IC0yNTcsNyArMjU3LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBv bHlub21pYWwpOgorICAgICAgICAgICAgIGZvciBkZWcgZnJvbSAwIDw9IGRlZyA8IG46CisgICAg ICAgICAgICAgICAgIG1wcV9pbml0KEwyW2RlZ10pCisgICAgICAgICAgICAgICAgIG1wcV9zZXQo TDJbZGVnXSwgKDxSYXRpb25hbD4gTDFbZGVnXSkudmFsdWUpCistICAgICAgICAgICAgZm1wcV9w b2x5X3NldF9hcnJheV9tcHEoc2VsZi5fX3BvbHksIEwyLCBuKQorKyAgICAgICAgICAgIGZtcHFf cG9seV9zZXRfYXJyYXlfbXBxKHNlbGYuX3BvbHksIEwyLCBuKQorICAgICAgICAgICAgIGZvciBk ZWcgZnJvbSAwIDw9IGRlZyA8IG46CisgICAgICAgICAgICAgICAgIG1wcV9jbGVhcihMMltkZWdd KQorICAgICAgICAgICAgIHNpZ19mcmVlKEwyKQorQEAgLTI2NiwxMyArMjY2LDEzIEBAIGNkZWYg Y2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAjICAgICAgICAg ICBkZWcgPSAwCisgIyAgICAgICAgICAgZm9yIGUgaW4geDoKKyAjICAgICAgICAgICAgICAgYyA9 IFJhdGlvbmFsKGUpCistIyAgICAgICAgICAgICAgIGZtcHFfcG9seV9zZXRfY29lZmZfbXBxKHNl bGYuX19wb2x5LCBkZWcsIGMudmFsdWUpCisrIyAgICAgICAgICAgICAgIGZtcHFfcG9seV9zZXRf Y29lZmZfbXBxKHNlbGYuX3BvbHksIGRlZywgYy52YWx1ZSkKKyAjICAgICAgICAgICAgICAgZGVn ICs9IDEKKyAKKyAgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh4LCBkaWN0KToKKyAgICAgICAgICAg ICBmb3IgZGVnLCBlIGluIHguaXRlcml0ZW1zKCk6CisgICAgICAgICAgICAgICAgIGMgPSBSYXRp b25hbChlKQorLSAgICAgICAgICAgICAgICBmbXBxX3BvbHlfc2V0X2NvZWZmX21wcShzZWxmLl9f cG9seSwgZGVnLCBjLnZhbHVlKQorKyAgICAgICAgICAgICAgICBmbXBxX3BvbHlfc2V0X2NvZWZm X21wcShzZWxmLl9wb2x5LCBkZWcsIGMudmFsdWUpCisgCisgICAgICAgICBlbGlmIGlzaW5zdGFu Y2UoeCwgcGFyaV9nZW4pOgorICAgICAgICAgICAgIGsgPSBzZWxmLl9wYXJlbnQuYmFzZV9yaW5n KCkKK0BAIC0yODEsNyArMjgxLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2Zs aW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlzX2dlbj1GYWxzZSwgY29uc3RydWN0PWNvbnN0cnVjdCkKKyAKKyAgICAgICAgIGVs aWYgaXNpbnN0YW5jZSh4LCBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQpOgorLSAgICAg ICAgICAgIGZtcHFfcG9seV9zZXRfZm1wel9wb2x5KHNlbGYuX19wb2x5LCAoPFBvbHlub21pYWxf aW50ZWdlcl9kZW5zZV9mbGludD54KS5fX3BvbHkpCisrICAgICAgICAgICAgZm1wcV9wb2x5X3Nl dF9mbXB6X3BvbHkoc2VsZi5fcG9seSwgKDxQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQ+ eCkuX3BvbHkpCisgCisgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoeCwgUG9seW5vbWlhbCk6Cisg ICAgICAgICAgICAgayA9IHNlbGYuX3BhcmVudC5iYXNlX3JpbmcoKQorQEAgLTMyOSw3ICszMjks NyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6Cisg ICAgICAgICAgICAgVHJ1ZQorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIFBvbHlub21pYWxf cmF0aW9uYWxfZmxpbnQgcmVzID0gc2VsZi5fbmV3KCkKKy0gICAgICAgIGZtcHFfcG9seV9zZXQo cmVzLl9fcG9seSwgc2VsZi5fX3BvbHkpCisrICAgICAgICBmbXBxX3BvbHlfc2V0KHJlcy5fcG9s eSwgc2VsZi5fcG9seSkKKyAgICAgICAgIHJldHVybiByZXMKKyAKKyAgICAgZGVmIF9zaW5ndWxh cl8oc2VsZiwgc2luZ3VsYXI9c2luZ3VsYXJfZGVmYXVsdCk6CitAQCAtMzY0LDcgKzM2NCw3IEBA IGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAg ICAgICAgICBzYWdlOiBnLmxpc3QoKQorICAgICAgICAgICAgIFtdCisgICAgICAgICAiIiIKKy0g ICAgICAgIGNkZWYgdW5zaWduZWQgbG9uZyBsZW5ndGggPSBmbXBxX3BvbHlfbGVuZ3RoKHNlbGYu X19wb2x5KQorKyAgICAgICAgY2RlZiB1bnNpZ25lZCBsb25nIGxlbmd0aCA9IGZtcHFfcG9seV9s ZW5ndGgoc2VsZi5fcG9seSkKKyAgICAgICAgIHJldHVybiBbc2VsZi5nZXRfdW5zYWZlKG4pIGZv ciBuIGluIHJhbmdlKGxlbmd0aCldCisgCisgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworQEAgLTM5 Miw3ICszOTIsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5v bWlhbCk6CisgICAgICAgICAgICAgc2FnZTogdHlwZShmLmRlZ3JlZSgpKQorICAgICAgICAgICAg IDxjbGFzcyAnc2FnZS5yaW5ncy5pbnRlZ2VyLkludGVnZXInPgorICAgICAgICAgIiIiCistICAg ICAgICByZXR1cm4gc21hbGxJbnRlZ2VyKGZtcHFfcG9seV9kZWdyZWUoc2VsZi5fX3BvbHkpKQor KyAgICAgICAgcmV0dXJuIHNtYWxsSW50ZWdlcihmbXBxX3BvbHlfZGVncmVlKHNlbGYuX3BvbHkp KQorIAorICAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBuKToKKyAgICAgICAg ICIiIgorQEAgLTQxMyw3ICs0MTMsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxf ZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgMS8yKnReMiArIHQgKyAxCisgICAgICAg ICAiIiIKKyAgICAgICAgIGNkZWYgUmF0aW9uYWwgeiA9IFJhdGlvbmFsLl9fbmV3X18oUmF0aW9u YWwpCistICAgICAgICBmbXBxX3BvbHlfZ2V0X2NvZWZmX21wcSh6LnZhbHVlLCBzZWxmLl9fcG9s eSwgbikKKysgICAgICAgIGZtcHFfcG9seV9nZXRfY29lZmZfbXBxKHoudmFsdWUsIHNlbGYuX3Bv bHksIG4pCisgICAgICAgICByZXR1cm4gegorIAorICAgICBjcGRlZiBfdW5zYWZlX211dGF0ZShz ZWxmLCB1bnNpZ25lZCBsb25nIG4sIHZhbHVlKToKK0BAIC00MzQsMjQgKzQzNCwyNCBAQCBjZGVm IGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICBy ZWx5IG9uIHRoaXMgY29udmVudGlvbi4gIFRoaXMgbWV0aG9kIHNob3VsZCBiZSB1c2VkIG9ubHkg d2l0aCB0aGUKKyAgICAgICAgIHV0bW9zdCBjYXJlLgorICAgICAgICAgIiIiCistICAgICAgICBj ZGVmIGJpbnQgZG9fc2lnID0gX2RvX3NpZyhzZWxmLl9fcG9seSkKKysgICAgICAgIGNkZWYgYmlu dCBkb19zaWcgPSBfZG9fc2lnKHNlbGYuX3BvbHkpCisgCisgICAgICAgICBpZiBpc2luc3RhbmNl KHZhbHVlLCBpbnQpOgorICAgICAgICAgICAgIGlmIGRvX3NpZzogc2lnX3N0cigiRkxJTlQgZXhj ZXB0aW9uIikKKy0gICAgICAgICAgICBmbXBxX3BvbHlfc2V0X2NvZWZmX3NpKHNlbGYuX19wb2x5 LCBuLCB2YWx1ZSkKKysgICAgICAgICAgICBmbXBxX3BvbHlfc2V0X2NvZWZmX3NpKHNlbGYuX3Bv bHksIG4sIHZhbHVlKQorICAgICAgICAgICAgIGlmIGRvX3NpZzogc2lnX29mZigpCisgICAgICAg ICBlbGlmIGlzaW5zdGFuY2UodmFsdWUsIEludGVnZXIpOgorICAgICAgICAgICAgIGlmIGRvX3Np Zzogc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAgICAgICAgICBmbXBxX3BvbHlfc2V0 X2NvZWZmX21weihzZWxmLl9fcG9seSwgbiwgKDxJbnRlZ2VyPiB2YWx1ZSkudmFsdWUpCisrICAg ICAgICAgICAgZm1wcV9wb2x5X3NldF9jb2VmZl9tcHooc2VsZi5fcG9seSwgbiwgKDxJbnRlZ2Vy PiB2YWx1ZSkudmFsdWUpCisgICAgICAgICAgICAgaWYgZG9fc2lnOiBzaWdfb2ZmKCkKKyAgICAg ICAgIGVsaWYgaXNpbnN0YW5jZSh2YWx1ZSwgUmF0aW9uYWwpOgorICAgICAgICAgICAgIGlmIGRv X3NpZzogc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAgICAgICAgICBmbXBxX3BvbHlf c2V0X2NvZWZmX21wcShzZWxmLl9fcG9seSwgbiwgKDxSYXRpb25hbD4gdmFsdWUpLnZhbHVlKQor KyAgICAgICAgICAgIGZtcHFfcG9seV9zZXRfY29lZmZfbXBxKHNlbGYuX3BvbHksIG4sICg8UmF0 aW9uYWw+IHZhbHVlKS52YWx1ZSkKKyAgICAgICAgICAgICBpZiBkb19zaWc6IHNpZ19vZmYoKQor ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICB2YWx1ZSA9IFJhdGlvbmFsKHZhbHVlKQorICAg ICAgICAgICAgIGlmIGRvX3NpZzogc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAgICAg ICAgICBmbXBxX3BvbHlfc2V0X2NvZWZmX21wcShzZWxmLl9fcG9seSwgbiwgKDxSYXRpb25hbD4g dmFsdWUpLnZhbHVlKQorKyAgICAgICAgICAgIGZtcHFfcG9seV9zZXRfY29lZmZfbXBxKHNlbGYu X3BvbHksIG4sICg8UmF0aW9uYWw+IHZhbHVlKS52YWx1ZSkKKyAgICAgICAgICAgICBpZiBkb19z aWc6IHNpZ19vZmYoKQorIAorICAgICBkZWYgX19jYWxsX18oc2VsZiwgKngsICoqa3dkcyk6CitA QCAtNTAxLDIwICs1MDEsMjAgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50 KFBvbHlub21pYWwpOgorICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoYSwgUG9seW5vbWlhbF9y YXRpb25hbF9mbGludCk6CisgICAgICAgICAgICAgICAgIGYgPSAoPFBvbHlub21pYWxfcmF0aW9u YWxfZmxpbnQ+IGEpLl9uZXcoKQorICAgICAgICAgICAgICAgICBzaWdfc3RyKCJGTElOVCBleGNl cHRpb24iKQorLSAgICAgICAgICAgICAgICBmbXBxX3BvbHlfY29tcG9zZShmLl9fcG9seSwgc2Vs Zi5fX3BvbHksCistICAgICAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfcmF0aW9uYWxfZmxp bnQ+IGEpLl9fcG9seSkKKysgICAgICAgICAgICAgICAgZm1wcV9wb2x5X2NvbXBvc2UoZi5fcG9s eSwgc2VsZi5fcG9seSwKKysgICAgICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9yYXRpb25h bF9mbGludD4gYSkuX3BvbHkpCisgICAgICAgICAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAg ICAgICAgICByZXR1cm4gZgorICAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShhLCBSYXRpb25h bCk6CisgICAgICAgICAgICAgICAgIHIgPSBSYXRpb25hbC5fX25ld19fKFJhdGlvbmFsKQorICAg ICAgICAgICAgICAgICBzaWdfc3RyKCJGTElOVCBleGNlcHRpb24iKQorLSAgICAgICAgICAgICAg ICBmbXBxX3BvbHlfZXZhbHVhdGVfbXBxKHIudmFsdWUsIHNlbGYuX19wb2x5LCAoPFJhdGlvbmFs PiBhKS52YWx1ZSkKKysgICAgICAgICAgICAgICAgZm1wcV9wb2x5X2V2YWx1YXRlX21wcShyLnZh bHVlLCBzZWxmLl9wb2x5LCAoPFJhdGlvbmFsPiBhKS52YWx1ZSkKKyAgICAgICAgICAgICAgICAg c2lnX29mZigpCisgICAgICAgICAgICAgICAgIHJldHVybiByCisgICAgICAgICAgICAgZWxpZiBp c2luc3RhbmNlKGEsIEludGVnZXIpOgorICAgICAgICAgICAgICAgICByID0gUmF0aW9uYWwuX19u ZXdfXyhSYXRpb25hbCkKKyAgICAgICAgICAgICAgICAgc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9u IikKKy0gICAgICAgICAgICAgICAgZm1wcV9wb2x5X2V2YWx1YXRlX21weihyLnZhbHVlLCBzZWxm Ll9fcG9seSwgKDxJbnRlZ2VyPiBhKS52YWx1ZSkKKysgICAgICAgICAgICAgICAgZm1wcV9wb2x5 X2V2YWx1YXRlX21weihyLnZhbHVlLCBzZWxmLl9wb2x5LCAoPEludGVnZXI+IGEpLnZhbHVlKQor ICAgICAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgICAgICAgICAgcmV0dXJuIHIKKyAg ICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoYSwgaW50KToKK0BAIC01MjMsNyArNTIzLDcgQEAg Y2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAg ICAgICAgICAgICBmbXB6X2luaXQodG1wZnopCisgICAgICAgICAgICAgICAgIGZtcHFfaW5pdCh0 bXBmcSkKKyAgICAgICAgICAgICAgICAgZm1wel9zZXRfc2kodG1wZnosIFB5SW50X0FTX0xPTkco YSkpCistICAgICAgICAgICAgICAgIGZtcHFfcG9seV9ldmFsdWF0ZV9mbXB6KHRtcGZxLCBzZWxm Ll9fcG9seSwgdG1wZnopCisrICAgICAgICAgICAgICAgIGZtcHFfcG9seV9ldmFsdWF0ZV9mbXB6 KHRtcGZxLCBzZWxmLl9wb2x5LCB0bXBmeikKKyAgICAgICAgICAgICAgICAgZm1wcV9nZXRfbXBx KHIudmFsdWUsIHRtcGZxKQorICAgICAgICAgICAgICAgICBmbXBxX2NsZWFyKHRtcGZxKQorICAg ICAgICAgICAgICAgICBmbXB6X2NsZWFyKHRtcGZ6KQorQEAgLTUzMywxOCArNTMzLDE4IEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAg ICAgICAgICAgYXJiX2EgPSA8UmVhbEJhbGw+IGEKKyAgICAgICAgICAgICAgICAgYXJiX3ogPSBh cmJfYS5fbmV3KCkKKyAgICAgICAgICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgICAgICAgICAg X2FyYl9mbXB6X3BvbHlfZXZhbHVhdGVfYXJiKGFyYl96LnZhbHVlLCBmbXBxX3BvbHlfbnVtcmVm KHNlbGYuX19wb2x5KSwKKy0gICAgICAgICAgICAgICAgICAgICAgICBmbXBxX3BvbHlfbGVuZ3Ro KHNlbGYuX19wb2x5KSwgYXJiX2EudmFsdWUsIGFyYl9hLl9wYXJlbnQuX3ByZWMpCistICAgICAg ICAgICAgICAgIGFyYl9kaXZfZm1weihhcmJfei52YWx1ZSwgYXJiX3oudmFsdWUsIGZtcHFfcG9s eV9kZW5yZWYoc2VsZi5fX3BvbHkpLCBhcmJfYS5fcGFyZW50Ll9wcmVjKQorKyAgICAgICAgICAg ICAgICBfYXJiX2ZtcHpfcG9seV9ldmFsdWF0ZV9hcmIoYXJiX3oudmFsdWUsIGZtcHFfcG9seV9u dW1yZWYoc2VsZi5fcG9seSksCisrICAgICAgICAgICAgICAgICAgICAgICAgZm1wcV9wb2x5X2xl bmd0aChzZWxmLl9wb2x5KSwgYXJiX2EudmFsdWUsIGFyYl9hLl9wYXJlbnQuX3ByZWMpCisrICAg ICAgICAgICAgICAgIGFyYl9kaXZfZm1weihhcmJfei52YWx1ZSwgYXJiX3oudmFsdWUsIGZtcHFf cG9seV9kZW5yZWYoc2VsZi5fcG9seSksIGFyYl9hLl9wYXJlbnQuX3ByZWMpCisgICAgICAgICAg ICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgICAgICAgICByZXR1cm4gYXJiX3oKKyAgICAgICAg ICAgICBpZiBpc2luc3RhbmNlKGEsIENvbXBsZXhCYWxsKToKKyAgICAgICAgICAgICAgICAgYWNi X2EgPSA8Q29tcGxleEJhbGw+IGEKKyAgICAgICAgICAgICAgICAgYWNiX3ogPSBhY2JfYS5fbmV3 KCkKKyAgICAgICAgICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgICAgICAgICAgX2FyYl9mbXB6 X3BvbHlfZXZhbHVhdGVfYWNiKGFjYl96LnZhbHVlLCBmbXBxX3BvbHlfbnVtcmVmKHNlbGYuX19w b2x5KSwKKy0gICAgICAgICAgICAgICAgICAgICAgICBmbXBxX3BvbHlfbGVuZ3RoKHNlbGYuX19w b2x5KSwgYWNiX2EudmFsdWUsIGFjYl9hLl9wYXJlbnQuX3ByZWMpCistICAgICAgICAgICAgICAg IGFjYl9kaXZfZm1weihhY2Jfei52YWx1ZSwgYWNiX3oudmFsdWUsIGZtcHFfcG9seV9kZW5yZWYo c2VsZi5fX3BvbHkpLCBhY2JfYS5fcGFyZW50Ll9wcmVjKQorKyAgICAgICAgICAgICAgICBfYXJi X2ZtcHpfcG9seV9ldmFsdWF0ZV9hY2IoYWNiX3oudmFsdWUsIGZtcHFfcG9seV9udW1yZWYoc2Vs Zi5fcG9seSksCisrICAgICAgICAgICAgICAgICAgICAgICAgZm1wcV9wb2x5X2xlbmd0aChzZWxm Ll9wb2x5KSwgYWNiX2EudmFsdWUsIGFjYl9hLl9wYXJlbnQuX3ByZWMpCisrICAgICAgICAgICAg ICAgIGFjYl9kaXZfZm1weihhY2Jfei52YWx1ZSwgYWNiX3oudmFsdWUsIGZtcHFfcG9seV9kZW5y ZWYoc2VsZi5fcG9seSksIGFjYl9hLl9wYXJlbnQuX3ByZWMpCisgICAgICAgICAgICAgICAgIHNp Z19vZmYoKQorICAgICAgICAgICAgICAgICByZXR1cm4gYWNiX3oKKyAKK0BAIC01NzAsMTQgKzU3 MCwxNCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6 CisgICAgICAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQgcmVzCisgICAgICAgICBj ZGVmIGJpbnQgZG9fc2lnCisgCistICAgICAgICBpZiAobiA+PSBmbXBxX3BvbHlfbGVuZ3RoKHNl bGYuX19wb2x5KSk6CisrICAgICAgICBpZiAobiA+PSBmbXBxX3BvbHlfbGVuZ3RoKHNlbGYuX3Bv bHkpKToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZgorICAgICAgICAgZWxzZToKKyAgICAgICAg ICAgICByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgICAgIGlmIG4gPiAwOgorLSAgICAgICAg ICAgICAgICBkb19zaWcgPSBfZG9fc2lnKHNlbGYuX19wb2x5KQorKyAgICAgICAgICAgICAgICBk b19zaWcgPSBfZG9fc2lnKHNlbGYuX3BvbHkpCisgICAgICAgICAgICAgICAgIGlmIGRvX3NpZzog c2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAgICAgICAgICAgICAgZm1wcV9wb2x5X2dl dF9zbGljZShyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgMCwgbikKKysgICAgICAgICAgICAgICAg Zm1wcV9wb2x5X2dldF9zbGljZShyZXMuX3BvbHksIHNlbGYuX3BvbHksIDAsIG4pCisgICAgICAg ICAgICAgICAgIGlmIGRvX3NpZzogc2lnX29mZigpCisgICAgICAgICAgICAgcmV0dXJuIHJlcwor IAorQEAgLTY2NCw3ICs2NjQsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxp bnQoUG9seW5vbWlhbCk6CisgICAgICAgICBjZGVmIGJpbnQgZG9fc2lnCisgCisgICAgICAgICBp ZiBkZWdyZWUgaXMgTm9uZToKKy0gICAgICAgICAgICBsZW4gPSBmbXBxX3BvbHlfbGVuZ3RoKHNl bGYuX19wb2x5KQorKyAgICAgICAgICAgIGxlbiA9IGZtcHFfcG9seV9sZW5ndGgoc2VsZi5fcG9s eSkKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICBs ZW4gPSA8dW5zaWduZWQgbG9uZz4gKGRlZ3JlZSArIDEpCitAQCAtNjcyLDkgKzY3Miw5IEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAg ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignZGVncmVlIG11c3QgYmUgY29udmVydGlibGUgdG8g bG9uZycpCisgCisgICAgICAgICByZXMgPSBzZWxmLl9uZXcoKQorLSAgICAgICAgZG9fc2lnID0g X2RvX3NpZyhzZWxmLl9fcG9seSkKKysgICAgICAgIGRvX3NpZyA9IF9kb19zaWcoc2VsZi5fcG9s eSkKKyAgICAgICAgIGlmIGRvX3NpZzogc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAg ICAgIGZtcHFfcG9seV9yZXZlcnNlKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBsZW4pCisrICAg ICAgICBmbXBxX3BvbHlfcmV2ZXJzZShyZXMuX3BvbHksIHNlbGYuX3BvbHksIGxlbikKKyAgICAg ICAgIGlmIGRvX3NpZzogc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtNzA5 LDcgKzcwOSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9t aWFsKToKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJzZWxmIG11c3QgaGF2ZSBjb25z dGFudCBjb2VmZmljaWVudCAwIGFuZCBhIHVuaXQgZm9yIGNvZWZmaWNpZW50IHt9XjEiLmZvcm1h dChzZWxmLnBhcmVudCgpLmdlbigpKSkKKyAKKyAgICAgICAgIHNpZ19zdHIoIkZMSU5UIGV4Y2Vw dGlvbiIpCistICAgICAgICBmbXBxX3BvbHlfcmV2ZXJ0X3NlcmllcyhyZXMuX19wb2x5LCBzZWxm Ll9fcG9seSwgbSkKKysgICAgICAgIGZtcHFfcG9seV9yZXZlcnRfc2VyaWVzKHJlcy5fcG9seSwg c2VsZi5fcG9seSwgbSkKKyAgICAgICAgIHNpZ19vZmYoKQorIAorICAgICAgICAgcmV0dXJuIHJl cworQEAgLTczMSw3ICs3MzEsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxp bnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgc2FnZTogUigwKS5pc196ZXJvKCkKKyAgICAg ICAgICAgICBUcnVlCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBmbXBxX3BvbHlfaXNf emVybyhzZWxmLl9fcG9seSkKKysgICAgICAgIHJldHVybiBmbXBxX3BvbHlfaXNfemVybyhzZWxm Ll9wb2x5KQorIAorICAgICBjcGRlZiBiaW50IGlzX29uZShzZWxmKSBleGNlcHQgLTE6CisgICAg ICAgICByIiIiCitAQCAtNzUxLDcgKzc1MSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRp b25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdlOiBSKFsxLDFdKS5pc19v bmUoKQorICAgICAgICAgICAgIEZhbHNlCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBm bXBxX3BvbHlfaXNfb25lKHNlbGYuX19wb2x5KQorKyAgICAgICAgcmV0dXJuIGZtcHFfcG9seV9p c19vbmUoc2VsZi5fcG9seSkKKyAKKyAgICAgZGVmIF9fYm9vbF9fKHNlbGYpOgorICAgICAgICAg IiIiCitAQCAtNzY2LDcgKzc2Niw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9m bGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdlOiBib29sKFIoMCkpCisgICAgICAg ICAgICAgRmFsc2UKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIG5vdCBmbXBxX3BvbHlf aXNfemVybyhzZWxmLl9fcG9seSkKKysgICAgICAgIHJldHVybiBub3QgZm1wcV9wb2x5X2lzX3pl cm8oc2VsZi5fcG9seSkKKyAKKyAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgICAgICMgU2hpZnRp bmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIworQEAgLTc5NCwxNCArNzk0LDE0IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9y YXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9yYXRp b25hbF9mbGludCByZXMKKyAgICAgICAgIGNkZWYgYmludCBkb19zaWcKKyAKKy0gICAgICAgIGlm IGsgPT0gMCBvciBmbXBxX3BvbHlfaXNfemVybyhmLl9fcG9seSk6CisrICAgICAgICBpZiBrID09 IDAgb3IgZm1wcV9wb2x5X2lzX3plcm8oZi5fcG9seSk6CisgICAgICAgICAgICAgcmV0dXJuIHNl bGYKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmVzID0gZi5fbmV3KCkKKy0gICAgICAg ICAgICBkb19zaWcgPSBmbXBxX3BvbHlfbGVuZ3RoKGYuX19wb2x5KSA+IDUwMDAgb3IgbiA+IDUw MDAKKysgICAgICAgICAgICBkb19zaWcgPSBmbXBxX3BvbHlfbGVuZ3RoKGYuX3BvbHkpID4gNTAw MCBvciBuID4gNTAwMAorIAorICAgICAgICAgICAgIGlmIGRvX3NpZzogc2lnX3N0cigiRkxJTlQg ZXhjZXB0aW9uIikKKy0gICAgICAgICAgICBmbXBxX3BvbHlfc2hpZnRfbGVmdChyZXMuX19wb2x5 LCBmLl9fcG9seSwgaykKKysgICAgICAgICAgICBmbXBxX3BvbHlfc2hpZnRfbGVmdChyZXMuX3Bv bHksIGYuX3BvbHksIGspCisgICAgICAgICAgICAgaWYgZG9fc2lnOiBzaWdfb2ZmKCkKKyAgICAg ICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtODIyLDE0ICs4MjIsMTQgQEAgY2RlZiBjbGFzcyBQ b2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgY2RlZiBQb2x5 bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJlcworICAgICAgICAgY2RlZiBiaW50IGRvX3NpZworIAor LSAgICAgICAgaWYgayA9PSAwIG9yIGZtcHFfcG9seV9pc196ZXJvKGYuX19wb2x5KToKKysgICAg ICAgIGlmIGsgPT0gMCBvciBmbXBxX3BvbHlfaXNfemVybyhmLl9wb2x5KToKKyAgICAgICAgICAg ICByZXR1cm4gc2VsZgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXMgPSBmLl9uZXco KQorLSAgICAgICAgICAgIGRvX3NpZyA9IF9kb19zaWcoZi5fX3BvbHkpCisrICAgICAgICAgICAg ZG9fc2lnID0gX2RvX3NpZyhmLl9wb2x5KQorIAorICAgICAgICAgICAgIGlmIGRvX3NpZzogc2ln X3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAgICAgICAgICBmbXBxX3BvbHlfc2hpZnRfcmln aHQocmVzLl9fcG9seSwgZi5fX3BvbHksIGspCisrICAgICAgICAgICAgZm1wcV9wb2x5X3NoaWZ0 X3JpZ2h0KHJlcy5fcG9seSwgZi5fcG9seSwgaykKKyAgICAgICAgICAgICBpZiBkb19zaWc6IHNp Z19vZmYoKQorICAgICAgICAgICAgIHJldHVybiByZXMKKyAKK0BAIC04NTgsMTAgKzg1OCwxMCBA QCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludCBvcDIgPSA8 UG9seW5vbWlhbF9yYXRpb25hbF9mbGludD4gcmlnaHQKKyAgICAgICAgIGNkZWYgUG9seW5vbWlh bF9yYXRpb25hbF9mbGludCByZXMgPSBzZWxmLl9uZXcoKQorLSAgICAgICAgY2RlZiBiaW50IGRv X3NpZyA9IF9kb19zaWcoc2VsZi5fX3BvbHkpIG9yIF9kb19zaWcob3AyLl9fcG9seSkKKysgICAg ICAgIGNkZWYgYmludCBkb19zaWcgPSBfZG9fc2lnKHNlbGYuX3BvbHkpIG9yIF9kb19zaWcob3Ay Ll9wb2x5KQorIAorICAgICAgICAgaWYgZG9fc2lnOiBzaWdfc3RyKCJGTElOVCBleGNlcHRpb24i KQorLSAgICAgICAgZm1wcV9wb2x5X2FkZChyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgb3AyLl9f cG9seSkKKysgICAgICAgIGZtcHFfcG9seV9hZGQocmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBvcDIu X3BvbHkpCisgICAgICAgICBpZiBkb19zaWc6IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJl cworIAorQEAgLTg4NiwxMCArODg2LDEwIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25h bF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBQb2x5bm9t aWFsX3JhdGlvbmFsX2ZsaW50IG9wMiA9IDxQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50PiByaWdo dAorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJlcyA9IHNlbGYuX25l dygpCistICAgICAgICBjZGVmIGJpbnQgZG9fc2lnID0gX2RvX3NpZyhzZWxmLl9fcG9seSkgb3Ig X2RvX3NpZyhvcDIuX19wb2x5KQorKyAgICAgICAgY2RlZiBiaW50IGRvX3NpZyA9IF9kb19zaWco c2VsZi5fcG9seSkgb3IgX2RvX3NpZyhvcDIuX3BvbHkpCisgCisgICAgICAgICBpZiBkb19zaWc6 IHNpZ19zdHIoIkZMSU5UIGV4Y2VwdGlvbiIpCistICAgICAgICBmbXBxX3BvbHlfc3ViKHJlcy5f X3BvbHksIHNlbGYuX19wb2x5LCBvcDIuX19wb2x5KQorKyAgICAgICAgZm1wcV9wb2x5X3N1Yihy ZXMuX3BvbHksIHNlbGYuX3BvbHksIG9wMi5fcG9seSkKKyAgICAgICAgIGlmIGRvX3NpZzogc2ln X29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtOTEyLDEwICs5MTIsMTAgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAg ICAgIFRydWUKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFs X2ZsaW50IHJlcyA9IHNlbGYuX25ldygpCistICAgICAgICBjZGVmIGJpbnQgZG9fc2lnID0gX2Rv X3NpZyhzZWxmLl9fcG9seSkKKysgICAgICAgIGNkZWYgYmludCBkb19zaWcgPSBfZG9fc2lnKHNl bGYuX3BvbHkpCisgCisgICAgICAgICBpZiBkb19zaWc6IHNpZ19zdHIoIkZMSU5UIGV4Y2VwdGlv biIpCistICAgICAgICBmbXBxX3BvbHlfbmVnKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5KQorKyAg ICAgICAgZm1wcV9wb2x5X25lZyhyZXMuX3BvbHksIHNlbGYuX3BvbHkpCisgICAgICAgICBpZiBk b19zaWc6IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTk0NSw4ICs5NDUs OCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6Cisg ICAgICAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQgcnIgPSBzZWxmLl9uZXcoKQor IAorICAgICAgICAgc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAgICAgIGZtcHFfcG9s eV9kaXZyZW0ocXEuX19wb2x5LCByci5fX3BvbHksIHNlbGYuX19wb2x5LAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAoPFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQ+IHJpZ2h0KS5fX3BvbHkp CisrICAgICAgICBmbXBxX3BvbHlfZGl2cmVtKHFxLl9wb2x5LCByci5fcG9seSwgc2VsZi5fcG9s eSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50 PiByaWdodCkuX3BvbHkpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiBxcSwg cnIKKyAKK0BAIC05NzQsOCArOTc0LDggQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFs X2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2Zs aW50IHJlcyA9IHNlbGYuX25ldygpCisgCisgICAgICAgICBzaWdfc3RyKCJGTElOVCBleGNlcHRp b24iKQorLSAgICAgICAgZm1wcV9wb2x5X2djZChyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwKKy0g ICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50PiByaWdodCkuX19wb2x5 KQorKyAgICAgICAgZm1wcV9wb2x5X2djZChyZXMuX3BvbHksIHNlbGYuX3BvbHksCisrICAgICAg ICAgICAgICAgICg8UG9seW5vbWlhbF9yYXRpb25hbF9mbGludD4gcmlnaHQpLl9wb2x5KQorICAg ICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtMTAwMSw4ICsxMDAx LDggQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgor ICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJlcyA9IHNlbGYuX25ldygp CisgCisgICAgICAgICBzaWdfc3RyKCJGTElOVCBleGNlcHRpb24iKQorLSAgICAgICAgZm1wcV9w b2x5X2xjbShyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwKKy0gICAgICAgICAgICAgICAgICAgICAg KDxQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50PiByaWdodCkuX19wb2x5KQorKyAgICAgICAgZm1w cV9wb2x5X2xjbShyZXMuX3BvbHksIHNlbGYuX3BvbHksCisrICAgICAgICAgICAgICAgICAgICAg ICg8UG9seW5vbWlhbF9yYXRpb25hbF9mbGludD4gcmlnaHQpLl9wb2x5KQorICAgICAgICAgc2ln X29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtMTA0Myw3ICsxMDQzLDcgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAg Y2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IHQgPSBzZWxmLl9uZXcoKQorIAorICAgICAg ICAgc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAgICAgIGZtcHFfcG9seV94Z2NkKGQu X19wb2x5LCBzLl9fcG9seSwgdC5fX3BvbHksIHNlbGYuX19wb2x5LCAoPFBvbHlub21pYWxfcmF0 aW9uYWxfZmxpbnQ+cmlnaHQpLl9fcG9seSkKKysgICAgICAgIGZtcHFfcG9seV94Z2NkKGQuX3Bv bHksIHMuX3BvbHksIHQuX3BvbHksIHNlbGYuX3BvbHksICg8UG9seW5vbWlhbF9yYXRpb25hbF9m bGludD5yaWdodCkuX3BvbHkpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiBk LCBzLCB0CisgCitAQCAtMTA2OSwxMCArMTA2OSwxMCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxf cmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYg UG9seW5vbWlhbF9yYXRpb25hbF9mbGludCBvcDIgPSA8UG9seW5vbWlhbF9yYXRpb25hbF9mbGlu dD4gcmlnaHQKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludCByZXMgPSBz ZWxmLl9uZXcoKQorLSAgICAgICAgY2RlZiBiaW50IGRvX3NpZyA9IF9kb19zaWcoc2VsZi5fX3Bv bHkpIG9yIF9kb19zaWcob3AyLl9fcG9seSkKKysgICAgICAgIGNkZWYgYmludCBkb19zaWcgPSBf ZG9fc2lnKHNlbGYuX3BvbHkpIG9yIF9kb19zaWcob3AyLl9wb2x5KQorIAorICAgICAgICAgaWYg ZG9fc2lnOiBzaWdfc3RyKCJGTElOVCBleGNlcHRpb24iKQorLSAgICAgICAgZm1wcV9wb2x5X211 bChyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgb3AyLl9fcG9seSkKKysgICAgICAgIGZtcHFfcG9s eV9tdWwocmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBvcDIuX3BvbHkpCisgICAgICAgICBpZiBkb19z aWc6IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTExMDMsMTMgKzExMDMs MTMgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgor ICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQgb3Ay ID0gPFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQ+IHJpZ2h0CisgICAgICAgICBjZGVmIFBvbHlu b21pYWxfcmF0aW9uYWxfZmxpbnQgcmVzID0gc2VsZi5fbmV3KCkKKy0gICAgICAgIGNkZWYgYmlu dCBkb19zaWcgPSBfZG9fc2lnKHNlbGYuX19wb2x5KSBvciBfZG9fc2lnKG9wMi5fX3BvbHkpCisr ICAgICAgICBjZGVmIGJpbnQgZG9fc2lnID0gX2RvX3NpZyhzZWxmLl9wb2x5KSBvciBfZG9fc2ln KG9wMi5fcG9seSkKKyAKKyAgICAgICAgIGlmIG4gPD0gMDoKKyAgICAgICAgICAgICByYWlzZSBW YWx1ZUVycm9yKCJuIG11c3QgYmUgPiAwIikKKyAKKyAgICAgICAgIGlmIGRvX3NpZzogc2lnX3N0 cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAgICAgIGZtcHFfcG9seV9tdWxsb3cocmVzLl9fcG9s eSwgc2VsZi5fX3BvbHksIG9wMi5fX3BvbHksIG4pCisrICAgICAgICBmbXBxX3BvbHlfbXVsbG93 KHJlcy5fcG9seSwgc2VsZi5fcG9seSwgb3AyLl9wb2x5LCBuKQorICAgICAgICAgaWYgZG9fc2ln OiBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKK0BAIC0xMTI1LDEwICsxMTI1LDEw IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAg ICAgICAgICAgICA5KnReMyAtIDYqdCArIDIKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBQ b2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJlcyA9IHNlbGYuX25ldygpCistICAgICAgICBjZGVm IGJpbnQgZG9fc2lnID0gX2RvX3NpZyhzZWxmLl9fcG9seSkKKysgICAgICAgIGNkZWYgYmludCBk b19zaWcgPSBfZG9fc2lnKHNlbGYuX3BvbHkpCisgCisgICAgICAgICBpZiBkb19zaWc6IHNpZ19z dHIoIkZMSU5UIGV4Y2VwdGlvbiIpCistICAgICAgICBmbXBxX3BvbHlfc2NhbGFyX211bF9tcHEo cmVzLl9fcG9seSwgc2VsZi5fX3BvbHksCisrICAgICAgICBmbXBxX3BvbHlfc2NhbGFyX211bF9t cHEocmVzLl9wb2x5LCBzZWxmLl9wb2x5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICg8UmF0aW9uYWw+IGxlZnQpLnZhbHVlKQorICAgICAgICAgaWYgZG9fc2lnOiBzaWdfb2Zm KCkKKyAgICAgICAgIHJldHVybiByZXMKK0BAIC0xMTQ1LDEwICsxMTQ1LDEwIEBAIGNkZWYgY2xh c3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICA5 KnReMyAtIDYqdCArIDIKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3Jh dGlvbmFsX2ZsaW50IHJlcyA9IHNlbGYuX25ldygpCistICAgICAgICBjZGVmIGJpbnQgZG9fc2ln ID0gX2RvX3NpZyhzZWxmLl9fcG9seSkKKysgICAgICAgIGNkZWYgYmludCBkb19zaWcgPSBfZG9f c2lnKHNlbGYuX3BvbHkpCisgCisgICAgICAgICBpZiBkb19zaWc6IHNpZ19zdHIoIkZMSU5UIGV4 Y2VwdGlvbiIpCistICAgICAgICBmbXBxX3BvbHlfc2NhbGFyX211bF9tcHEocmVzLl9fcG9seSwg c2VsZi5fX3BvbHksCisrICAgICAgICBmbXBxX3BvbHlfc2NhbGFyX211bF9tcHEocmVzLl9wb2x5 LCBzZWxmLl9wb2x5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg8UmF0aW9u YWw+IHJpZ2h0KS52YWx1ZSkKKyAgICAgICAgIGlmIGRvX3NpZzogc2lnX29mZigpCisgICAgICAg ICByZXR1cm4gcmVzCitAQCAtMTI3MiwyNyArMTI3MiwyNyBAQCBjZGVmIGNsYXNzIFBvbHlub21p YWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgbnVtID0gci5udW1l cmF0b3IoKQorICAgICAgICAgICAgIGRlbiA9IHIuZGVub21pbmF0b3IoKQorIAorLSAgICAgICAg ICAgIGlmIGZtcHFfcG9seV9kZWdyZWUoc2VsZi5fX3BvbHkpID09IDA6CisrICAgICAgICAgICAg aWYgZm1wcV9wb2x5X2RlZ3JlZShzZWxmLl9wb2x5KSA9PSAwOgorICAgICAgICAgICAgICAgICBy ZXR1cm4gc2VsZi5wYXJlbnQoKShzZWxmWzBdLm50aF9yb290KGRlbikgKiogbnVtKQorIAorICAg ICAgICAgICAgIHJldHVybiBzZWxmLm50aF9yb290KGRlbikgKiogbnVtCisgCisgICAgICAgICBl bHNlOgorICAgICAgICAgICAgIGlmIG4gPCAwOgorLSAgICAgICAgICAgICAgICBpZiBmbXBxX3Bv bHlfaXNfemVybyhzZWxmLl9fcG9seSk6CisrICAgICAgICAgICAgICAgIGlmIGZtcHFfcG9seV9p c196ZXJvKHNlbGYuX3BvbHkpOgorICAgICAgICAgICAgICAgICAgICAgcmFpc2UgWmVyb0Rpdmlz aW9uRXJyb3IoIm5lZ2F0aXZlIGV4cG9uZW50IGluIHBvd2VyIG9mIHplcm8iKQorICAgICAgICAg ICAgICAgICByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgICAgICAgICBzaWdfc3RyKCJGTElO VCBleGNlcHRpb24iKQorLSAgICAgICAgICAgICAgICBmbXBxX3BvbHlfcG93KHJlcy5fX3BvbHks IHNlbGYuX19wb2x5LCAtbikKKysgICAgICAgICAgICAgICAgZm1wcV9wb2x5X3BvdyhyZXMuX3Bv bHksIHNlbGYuX3BvbHksIC1uKQorICAgICAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAg ICAgICAgICAgcmV0dXJuIH5yZXMKKyAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg ICByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgICAgICAgICBzaWdfc3RyKCJGTElOVCBleGNl cHRpb24iKQorICAgICAgICAgICAgICAgICBpZiBzZWxmLl9pc19nZW46CistICAgICAgICAgICAg ICAgICAgICBmbXBxX3BvbHlfc2V0X2NvZWZmX3NpKHJlcy5fX3BvbHksIG4sIDEpCisrICAgICAg ICAgICAgICAgICAgICBmbXBxX3BvbHlfc2V0X2NvZWZmX3NpKHJlcy5fcG9seSwgbiwgMSkKKyAg ICAgICAgICAgICAgICAgZWxzZToKKy0gICAgICAgICAgICAgICAgICAgIGZtcHFfcG9seV9wb3co cmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIG4pCisrICAgICAgICAgICAgICAgICAgICBmbXBxX3Bv bHlfcG93KHJlcy5fcG9seSwgc2VsZi5fcG9seSwgbikKKyAgICAgICAgICAgICAgICAgc2lnX29m ZigpCisgICAgICAgICAgICAgICAgIHJldHVybiByZXMKKyAKK0BAIC0xMzI4LDEwICsxMzI4LDEw IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAg ICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHJpZ2h0LCBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50 KToKKyAgICAgICAgICAgICBpZiByaWdodCBpbiBRUToKKyAgICAgICAgICAgICAgICAgcmVzID0g c2VsZi5fbmV3KCkKKy0gICAgICAgICAgICAgICAgZG9fc2lnID0gX2RvX3NpZyhzZWxmLl9fcG9s eSkKKysgICAgICAgICAgICAgICAgZG9fc2lnID0gX2RvX3NpZyhzZWxmLl9wb2x5KQorIAorICAg ICAgICAgICAgICAgICBpZiBkb19zaWc6IHNpZ19zdHIoIkZMSU5UIGV4Y2VwdGlvbiIpCistICAg ICAgICAgICAgICAgIGZtcHFfcG9seV9zY2FsYXJfZGl2X21wcShyZXMuX19wb2x5LCBzZWxmLl9f cG9seSwKKysgICAgICAgICAgICAgICAgZm1wcV9wb2x5X3NjYWxhcl9kaXZfbXBxKHJlcy5fcG9s eSwgc2VsZi5fcG9seSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICg8UmF0aW9uYWw+IFFRKHJpZ2h0KSkudmFsdWUpCisgICAgICAgICAgICAgICAg IGlmIGRvX3NpZzogc2lnX29mZigpCisgICAgICAgICAgICAgICAgIHJldHVybiByZXMKK0BAIC0x MzQwLDggKzEzNDAsOCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9s eW5vbWlhbCk6CisgCisgICAgICAgICByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgc2lnX3N0 cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAgICAgIGZtcHFfcG9seV9kaXYocmVzLl9fcG9seSwg c2VsZi5fX3BvbHksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg8UG9s eW5vbWlhbF9yYXRpb25hbF9mbGludD5yaWdodCkuX19wb2x5KQorKyAgICAgICAgZm1wcV9wb2x5 X2RpdihyZXMuX3BvbHksIHNlbGYuX3BvbHksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICg8UG9seW5vbWlhbF9yYXRpb25hbF9mbGludD5yaWdodCkuX3BvbHkpCisgICAg ICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKK0BAIC0xMzgxLDE1ICsxMzgx LDE1IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToK KyAgICAgICAgICIiIgorICAgICAgICAgaWYgcHJlYyA8PSAwOgorICAgICAgICAgICAgIHJhaXNl IFZhbHVlRXJyb3IoInRoZSBwcmVjaXNpb24gbXVzdCBiZSBwb3NpdGl2ZSwgZ290IHt9Ii5mb3Jt YXQocHJlYykpCistICAgICAgICBpZiBmbXBxX3BvbHlfZGVncmVlKHNlbGYuX19wb2x5KSA9PSAt MSBvciBcCistICAgICAgICAgICBmbXB6X2lzX3plcm8oZm1wcV9wb2x5X251bXJlZihzZWxmLl9f cG9seSkpOgorKyAgICAgICAgaWYgZm1wcV9wb2x5X2RlZ3JlZShzZWxmLl9wb2x5KSA9PSAtMSBv ciBcCisrICAgICAgICAgICBmbXB6X2lzX3plcm8oZm1wcV9wb2x5X251bXJlZihzZWxmLl9wb2x5 KSk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY29uc3RhbnQgdGVybSBpcyB6ZXJv IikKKyAKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludCByZXMgPSBzZWxm Ll9uZXcoKQorICAgICAgICAgaWYgcHJlYyA8PSAwOgorICAgICAgICAgICAgIHJldHVybiByZXMK KyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBmbXBxX3BvbHlfaW52X3NlcmllcyhyZXMuX19w b2x5LCBzZWxmLl9fcG9seSwgcHJlYykKKysgICAgICAgIGZtcHFfcG9seV9pbnZfc2VyaWVzKHJl cy5fcG9seSwgc2VsZi5fcG9seSwgcHJlYykKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAg cmV0dXJuIHJlcworIAorQEAgLTE0MjMsOCArMTQyMyw4IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlh bF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAKKyAgICAgICAgIHJlcyA9IHNlbGYuX25l dygpCisgICAgICAgICBzaWdfc3RyKCJGTElOVCBleGNlcHRpb24iKQorLSAgICAgICAgZm1wcV9w b2x5X3JlbShyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50PnJpZ2h0KS5fX3BvbHkp CisrICAgICAgICBmbXBxX3BvbHlfcmVtKHJlcy5fcG9seSwgc2VsZi5fcG9seSwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50 PnJpZ2h0KS5fcG9seSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcwor IAorQEAgLTE0NTMsNyArMTQ1Myw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9m bGludChQb2x5bm9taWFsKToKKyAgICAgICAgIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGlu dC5fX2luaXRfXyhudW0sIHBhcmVudCwgeD1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNoZWNrPUZhbHNlLCBpc19nZW49RmFsc2UsIGNvbnN0cnVjdD1GYWxzZSkK KyAgICAgICAgIHNpZ19zdHIoIkZMSU5UIGV4Y2VwdGlvbiIpCistICAgICAgICBmbXBxX3BvbHlf Z2V0X251bWVyYXRvcihudW0uX19wb2x5LCBzZWxmLl9fcG9seSkKKysgICAgICAgIGZtcHFfcG9s eV9nZXRfbnVtZXJhdG9yKG51bS5fcG9seSwgc2VsZi5fcG9seSkKKyAgICAgICAgIHNpZ19vZmYo KQorICAgICAgICAgcmV0dXJuIG51bQorIAorQEAgLTE0NjksMTAgKzE0NjksMTAgQEAgY2RlZiBj bGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAg IDMKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBJbnRlZ2VyIGRlbiA9IEludGVnZXIuX19u ZXdfXyhJbnRlZ2VyKQorLSAgICAgICAgaWYgZm1wcV9wb2x5X2RlbnJlZihzZWxmLl9fcG9seSkg aXMgTlVMTDoKKysgICAgICAgIGlmIGZtcHFfcG9seV9kZW5yZWYoc2VsZi5fcG9seSkgaXMgTlVM TDoKKyAgICAgICAgICAgICBtcHpfc2V0X3VpKGRlbi52YWx1ZSwgMSkKKyAgICAgICAgIGVsc2U6 CistICAgICAgICAgICAgZm1wel9nZXRfbXB6KGRlbi52YWx1ZSwgPGZtcHogKj4gZm1wcV9wb2x5 X2RlbnJlZihzZWxmLl9fcG9seSkpCisrICAgICAgICAgICAgZm1wel9nZXRfbXB6KGRlbi52YWx1 ZSwgPGZtcHogKj4gZm1wcV9wb2x5X2RlbnJlZihzZWxmLl9wb2x5KSkKKyAgICAgICAgIHJldHVy biBkZW4KKyAKKyAgICAgZGVmIF9kZXJpdmF0aXZlKHNlbGYsIHZhciA9IE5vbmUpOgorQEAgLTE1 MTcsMTAgKzE1MTcsMTAgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBv bHlub21pYWwpOgorICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImNhbm5vdCBkaWZmZXJl bnRpYXRlIHdpdGggcmVzcGVjdCB0byB7fSIuZm9ybWF0KHZhcikpCisgCisgICAgICAgICBkZXIg PSBzZWxmLl9uZXcoKQorLSAgICAgICAgZG9fc2lnID0gX2RvX3NpZyhzZWxmLl9fcG9seSkKKysg ICAgICAgIGRvX3NpZyA9IF9kb19zaWcoc2VsZi5fcG9seSkKKyAKKyAgICAgICAgIGlmIGRvX3Np Zzogc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAgICAgIGZtcHFfcG9seV9kZXJpdmF0 aXZlKGRlci5fX3BvbHksIHNlbGYuX19wb2x5KQorKyAgICAgICAgZm1wcV9wb2x5X2Rlcml2YXRp dmUoZGVyLl9wb2x5LCBzZWxmLl9wb2x5KQorICAgICAgICAgaWYgZG9fc2lnOiBzaWdfb2ZmKCkK KyAgICAgICAgIHJldHVybiBkZXIKKyAKK0BAIC0xNTc0LDggKzE1NzQsOCBAQCBjZGVmIGNsYXNz IFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICBjZGVmIGZt cHFfdCB0CisgICAgICAgICBmbXBxX2luaXQodCkKKyAgICAgICAgIHNpZ19zdHIoIkZMSU5UIGV4 Y2VwdGlvbiIpCistICAgICAgICBmbXBxX3BvbHlfcmVzdWx0YW50KHQsIHNlbGYuX19wb2x5LAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQ+ cmlnaHQpLl9fcG9seSkKKysgICAgICAgIGZtcHFfcG9seV9yZXN1bHRhbnQodCwgc2VsZi5fcG9s eSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX3JhdGlvbmFsX2Zs aW50PnJpZ2h0KS5fcG9seSkKKyAgICAgICAgIGZtcHFfZ2V0X21wcShyZXMudmFsdWUsIHQpCisg ICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIGZtcHFfY2xlYXIodCkKK0BAIC0xNjIzLDcgKzE2 MjMsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6 CisgCisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNl X2ZsaW50IHByaW1pdGl2ZQorLSAgICAgICAgY2RlZiB1bnNpZ25lZCBsb25nIGxlbmd0aCA9IGZt cHFfcG9seV9sZW5ndGgoc2VsZi5fX3BvbHkpCisrICAgICAgICBjZGVmIHVuc2lnbmVkIGxvbmcg bGVuZ3RoID0gZm1wcV9wb2x5X2xlbmd0aChzZWxmLl9wb2x5KQorIAorICAgICAgICAgaWYgbGVu Z3RoIDwgMjoKKyAgICAgICAgICAgICByZXR1cm4gRmFsc2UKK0BAIC0xNjM2LDggKzE2MzYsOCBA QCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB4PU5vbmUsIGNoZWNrPVRydWUsIGlzX2dlbj1GYWxz ZSwgY29uc3RydWN0PUZhbHNlKQorIAorICAgICAgICAgICAgIHNpZ19zdHIoIkZMSU5UIGV4Y2Vw dGlvbiIpCistICAgICAgICAgICAgZm1wcV9wb2x5X2dldF9udW1lcmF0b3IocHJpbWl0aXZlLl9f cG9seSwgc2VsZi5fX3BvbHkpCistICAgICAgICAgICAgZm1wel9wb2x5X3ByaW1pdGl2ZV9wYXJ0 KHByaW1pdGl2ZS5fX3BvbHksIHByaW1pdGl2ZS5fX3BvbHkpCisrICAgICAgICAgICAgZm1wcV9w b2x5X2dldF9udW1lcmF0b3IocHJpbWl0aXZlLl9wb2x5LCBzZWxmLl9wb2x5KQorKyAgICAgICAg ICAgIGZtcHpfcG9seV9wcmltaXRpdmVfcGFydChwcmltaXRpdmUuX3BvbHksIHByaW1pdGl2ZS5f cG9seSkKKyAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgICAgICByZXR1cm4gcHJpbWl0 aXZlLmlzX2lycmVkdWNpYmxlKCkKKyAKK0BAIC0xNjY5LDE0ICsxNjY5LDE0IEBAIGNkZWYgY2xh c3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICAu Li4KKyAgICAgICAgICAgICBWYWx1ZUVycm9yOiBjb25zdGFudCB0ZXJtIHNob3VsZCBiZSAxIGlu IG9yZGVyIHRvIHRha2UgbG9nYXJpdGhtCisgICAgICAgICAiIiIKKy0gICAgICAgIGlmIGZtcHFf cG9seV9kZWdyZWUoc2VsZi5fX3BvbHkpID09IC0xIG9yIFwKKy0gICAgICAgICAgIGZtcHpfY21w KGZtcHFfcG9seV9udW1yZWYoc2VsZi5fX3BvbHkpLAorLSAgICAgICAgICAgICAgICAgICAgZm1w cV9wb2x5X2RlbnJlZihzZWxmLl9fcG9seSkpOgorKyAgICAgICAgaWYgZm1wcV9wb2x5X2RlZ3Jl ZShzZWxmLl9wb2x5KSA9PSAtMSBvciBcCisrICAgICAgICAgICBmbXB6X2NtcChmbXBxX3BvbHlf bnVtcmVmKHNlbGYuX3BvbHkpLAorKyAgICAgICAgICAgICAgICAgICAgZm1wcV9wb2x5X2RlbnJl ZihzZWxmLl9wb2x5KSk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY29uc3RhbnQg dGVybSBzaG91bGQgYmUgMSBpbiBvcmRlciB0byB0YWtlIGxvZ2FyaXRobSIpCisgCisgICAgICAg ICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQgcmVzID0gc2VsZi5fbmV3KCkKKyAgICAg ICAgIHNpZ19vbigpCistICAgICAgICBmbXBxX3BvbHlfbG9nX3NlcmllcyhyZXMuX19wb2x5LCBz ZWxmLl9fcG9seSwgcHJlYykKKysgICAgICAgIGZtcHFfcG9seV9sb2dfc2VyaWVzKHJlcy5fcG9s eSwgc2VsZi5fcG9seSwgcHJlYykKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJu IHJlcworIAorQEAgLTE3MDMsMTQgKzE3MDMsMTQgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3Jh dGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHNhZ2U6IF8ucGFyZW50KCkK KyAgICAgICAgICAgICBVbml2YXJpYXRlIFBvbHlub21pYWwgUmluZyBpbiB4IG92ZXIgUmF0aW9u YWwgRmllbGQKKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgZm1wcV9wb2x5X2RlZ3JlZShzZWxm Ll9fcG9seSkgPT0gLTE6CisrICAgICAgICBpZiBmbXBxX3BvbHlfZGVncmVlKHNlbGYuX3BvbHkp ID09IC0xOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQub25lKCkKKy0gICAgICAg IGVsaWYgbm90IGZtcHpfaXNfemVybyhmbXBxX3BvbHlfbnVtcmVmKHNlbGYuX19wb2x5KSk6Cisr ICAgICAgICBlbGlmIG5vdCBmbXB6X2lzX3plcm8oZm1wcV9wb2x5X251bXJlZihzZWxmLl9wb2x5 KSk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY29uc3RhbnQgdGVybSBzaG91bGQg YmUgMCBpbiBvcmRlciB0byB0YWtlIGV4cG9uZW50aWFsIikKKyAKKyAgICAgICAgIGNkZWYgUG9s eW5vbWlhbF9yYXRpb25hbF9mbGludCByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgc2lnX29u KCkKKy0gICAgICAgIGZtcHFfcG9seV9leHBfc2VyaWVzKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5 LCBwcmVjKQorKyAgICAgICAgZm1wcV9wb2x5X2V4cF9zZXJpZXMocmVzLl9wb2x5LCBzZWxmLl9w b2x5LCBwcmVjKQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitA QCAtMTczNywxNCArMTczNywxNCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxp bnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgc2FnZTogXy5wYXJlbnQoKQorICAgICAgICAg ICAgIFVuaXZhcmlhdGUgUG9seW5vbWlhbCBSaW5nIGluIHggb3ZlciBSYXRpb25hbCBGaWVsZAor ICAgICAgICAgIiIiCistICAgICAgICBpZiBmbXBxX3BvbHlfZGVncmVlKHNlbGYuX19wb2x5KSA9 PSAtMToKKysgICAgICAgIGlmIGZtcHFfcG9seV9kZWdyZWUoc2VsZi5fcG9seSkgPT0gLTE6Cisg ICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmVudC56ZXJvKCkKKy0gICAgICAgIGVsaWYgbm90 IGZtcHpfaXNfemVybyhmbXBxX3BvbHlfbnVtcmVmKHNlbGYuX19wb2x5KSk6CisrICAgICAgICBl bGlmIG5vdCBmbXB6X2lzX3plcm8oZm1wcV9wb2x5X251bXJlZihzZWxmLl9wb2x5KSk6CisgICAg ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY29uc3RhbnQgdGVybSBzaG91bGQgYmUgMCBpbiBv cmRlciB0byB0YWtlIGFyY3RhbmdlbnQiKQorIAorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3Jh dGlvbmFsX2ZsaW50IHJlcyA9IHNlbGYuX25ldygpCisgICAgICAgICBzaWdfb24oKQorLSAgICAg ICAgZm1wcV9wb2x5X2F0YW5fc2VyaWVzKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBwcmVjKQor KyAgICAgICAgZm1wcV9wb2x5X2F0YW5fc2VyaWVzKHJlcy5fcG9seSwgc2VsZi5fcG9seSwgcHJl YykKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTE3Njgs MTQgKzE3NjgsMTQgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlu b21pYWwpOgorICAgICAgICAgICAgIHNhZ2U6IF8ucGFyZW50KCkKKyAgICAgICAgICAgICBVbml2 YXJpYXRlIFBvbHlub21pYWwgUmluZyBpbiB4IG92ZXIgUmF0aW9uYWwgRmllbGQKKyAgICAgICAg ICIiIgorLSAgICAgICAgaWYgZm1wcV9wb2x5X2RlZ3JlZShzZWxmLl9fcG9seSkgPT0gLTE6Cisr ICAgICAgICBpZiBmbXBxX3BvbHlfZGVncmVlKHNlbGYuX3BvbHkpID09IC0xOgorICAgICAgICAg ICAgIHJldHVybiBzZWxmLl9wYXJlbnQuemVybygpCistICAgICAgICBlbGlmIG5vdCBmbXB6X2lz X3plcm8oZm1wcV9wb2x5X251bXJlZihzZWxmLl9fcG9seSkpOgorKyAgICAgICAgZWxpZiBub3Qg Zm1wel9pc196ZXJvKGZtcHFfcG9seV9udW1yZWYoc2VsZi5fcG9seSkpOgorICAgICAgICAgICAg IHJhaXNlIFZhbHVlRXJyb3IoImNvbnN0YW50IHRlcm0gc2hvdWxkIGJlIDAgaW4gb3JkZXIgdG8g dGFrZSBoeXBlcmJvbGljIGFyY3RhbmdlbnQiKQorIAorICAgICAgICAgY2RlZiBQb2x5bm9taWFs X3JhdGlvbmFsX2ZsaW50IHJlcyA9IHNlbGYuX25ldygpCisgICAgICAgICBzaWdfb24oKQorLSAg ICAgICAgZm1wcV9wb2x5X2F0YW5oX3NlcmllcyhyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgcHJl YykKKysgICAgICAgIGZtcHFfcG9seV9hdGFuaF9zZXJpZXMocmVzLl9wb2x5LCBzZWxmLl9wb2x5 LCBwcmVjKQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAt MTgwMiwxNCArMTgwMiwxNCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQo UG9seW5vbWlhbCk6CisgICAgICAgICAgICAgc2FnZTogXy5wYXJlbnQoKQorICAgICAgICAgICAg IFVuaXZhcmlhdGUgUG9seW5vbWlhbCBSaW5nIGluIHggb3ZlciBSYXRpb25hbCBGaWVsZAorICAg ICAgICAgIiIiCistICAgICAgICBpZiBmbXBxX3BvbHlfZGVncmVlKHNlbGYuX19wb2x5KSA9PSAt MToKKysgICAgICAgIGlmIGZtcHFfcG9seV9kZWdyZWUoc2VsZi5fcG9seSkgPT0gLTE6CisgICAg ICAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmVudC56ZXJvKCkKKy0gICAgICAgIGVsaWYgbm90IGZt cHpfaXNfemVybyhmbXBxX3BvbHlfbnVtcmVmKHNlbGYuX19wb2x5KSk6CisrICAgICAgICBlbGlm IG5vdCBmbXB6X2lzX3plcm8oZm1wcV9wb2x5X251bXJlZihzZWxmLl9wb2x5KSk6CisgICAgICAg ICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY29uc3RhbnQgdGVybSBzaG91bGQgYmUgMCBpbiBvcmRl ciB0byB0YWtlIGFyY3NpbmUiKQorIAorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFs X2ZsaW50IHJlcyA9IHNlbGYuX25ldygpCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgZm1w cV9wb2x5X2FzaW5fc2VyaWVzKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBwcmVjKQorKyAgICAg ICAgZm1wcV9wb2x5X2FzaW5fc2VyaWVzKHJlcy5fcG9seSwgc2VsZi5fcG9seSwgcHJlYykKKyAg ICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTE4MzcsMTQgKzE4 MzcsMTQgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwp OgorICAgICAgICAgICAgIHNhZ2U6IF8ucGFyZW50KCkKKyAgICAgICAgICAgICBVbml2YXJpYXRl IFBvbHlub21pYWwgUmluZyBpbiB4IG92ZXIgUmF0aW9uYWwgRmllbGQKKyAgICAgICAgICIiIgor LSAgICAgICAgaWYgZm1wcV9wb2x5X2RlZ3JlZShzZWxmLl9fcG9seSkgPT0gLTE6CisrICAgICAg ICBpZiBmbXBxX3BvbHlfZGVncmVlKHNlbGYuX3BvbHkpID09IC0xOgorICAgICAgICAgICAgIHJl dHVybiBzZWxmLl9wYXJlbnQuemVybygpCistICAgICAgICBlbGlmIG5vdCBmbXB6X2lzX3plcm8o Zm1wcV9wb2x5X251bXJlZihzZWxmLl9fcG9seSkpOgorKyAgICAgICAgZWxpZiBub3QgZm1wel9p c196ZXJvKGZtcHFfcG9seV9udW1yZWYoc2VsZi5fcG9seSkpOgorICAgICAgICAgICAgIHJhaXNl IFZhbHVlRXJyb3IoImNvbnN0YW50IHRlcm0gc2hvdWxkIGJlIDAgaW4gb3JkZXIgdG8gdGFrZSBo eXBlcmJvbGljIGFyY3NpbmUiKQorIAorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFs X2ZsaW50IHJlcyA9IHNlbGYuX25ldygpCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgZm1w cV9wb2x5X2FzaW5oX3NlcmllcyhyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgcHJlYykKKysgICAg ICAgIGZtcHFfcG9seV9hc2luaF9zZXJpZXMocmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBwcmVjKQor ICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtMTg3MSwxNCAr MTg3MSwxNCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlh bCk6CisgICAgICAgICAgICAgc2FnZTogXy5wYXJlbnQoKQorICAgICAgICAgICAgIFVuaXZhcmlh dGUgUG9seW5vbWlhbCBSaW5nIGluIHggb3ZlciBSYXRpb25hbCBGaWVsZAorICAgICAgICAgIiIi CistICAgICAgICBpZiBmbXBxX3BvbHlfZGVncmVlKHNlbGYuX19wb2x5KSA9PSAtMToKKysgICAg ICAgIGlmIGZtcHFfcG9seV9kZWdyZWUoc2VsZi5fcG9seSkgPT0gLTE6CisgICAgICAgICAgICAg cmV0dXJuIHNlbGYuX3BhcmVudC56ZXJvKCkKKy0gICAgICAgIGVsaWYgbm90IGZtcHpfaXNfemVy byhmbXBxX3BvbHlfbnVtcmVmKHNlbGYuX19wb2x5KSk6CisrICAgICAgICBlbGlmIG5vdCBmbXB6 X2lzX3plcm8oZm1wcV9wb2x5X251bXJlZihzZWxmLl9wb2x5KSk6CisgICAgICAgICAgICAgcmFp c2UgVmFsdWVFcnJvcigiY29uc3RhbnQgdGVybSBzaG91bGQgYmUgMCBpbiBvcmRlciB0byB0YWtl IHRhbmdlbnQiKQorIAorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJl cyA9IHNlbGYuX25ldygpCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgZm1wcV9wb2x5X3Rh bl9zZXJpZXMocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIHByZWMpCisrICAgICAgICBmbXBxX3Bv bHlfdGFuX3NlcmllcyhyZXMuX3BvbHksIHNlbGYuX3BvbHksIHByZWMpCisgICAgICAgICBzaWdf b2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKK0BAIC0xOTA1LDE0ICsxOTA1LDE0IEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAg ICAgICBzYWdlOiBfLnBhcmVudCgpCisgICAgICAgICAgICAgVW5pdmFyaWF0ZSBQb2x5bm9taWFs IFJpbmcgaW4geCBvdmVyIFJhdGlvbmFsIEZpZWxkCisgICAgICAgICAiIiIKKy0gICAgICAgIGlm IGZtcHFfcG9seV9kZWdyZWUoc2VsZi5fX3BvbHkpID09IC0xOgorKyAgICAgICAgaWYgZm1wcV9w b2x5X2RlZ3JlZShzZWxmLl9wb2x5KSA9PSAtMToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5f cGFyZW50Lnplcm8oKQorLSAgICAgICAgZWxpZiBub3QgZm1wel9pc196ZXJvKGZtcHFfcG9seV9u dW1yZWYoc2VsZi5fX3BvbHkpKToKKysgICAgICAgIGVsaWYgbm90IGZtcHpfaXNfemVybyhmbXBx X3BvbHlfbnVtcmVmKHNlbGYuX3BvbHkpKToKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y KCJjb25zdGFudCB0ZXJtIHNob3VsZCBiZSAwIGluIG9yZGVyIHRvIHRha2Ugc2luZSIpCisgCisg ICAgICAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQgcmVzID0gc2VsZi5fbmV3KCkK KyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBmbXBxX3BvbHlfc2luX3NlcmllcyhyZXMuX19w b2x5LCBzZWxmLl9fcG9seSwgcHJlYykKKysgICAgICAgIGZtcHFfcG9seV9zaW5fc2VyaWVzKHJl cy5fcG9seSwgc2VsZi5fcG9seSwgcHJlYykKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAg cmV0dXJuIHJlcworIAorQEAgLTE5MzcsMTQgKzE5MzcsMTQgQEAgY2RlZiBjbGFzcyBQb2x5bm9t aWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHNhZ2U6IF8ucGFy ZW50KCkKKyAgICAgICAgICAgICBVbml2YXJpYXRlIFBvbHlub21pYWwgUmluZyBpbiB4IG92ZXIg UmF0aW9uYWwgRmllbGQKKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgZm1wcV9wb2x5X2RlZ3Jl ZShzZWxmLl9fcG9seSkgPT0gLTE6CisrICAgICAgICBpZiBmbXBxX3BvbHlfZGVncmVlKHNlbGYu X3BvbHkpID09IC0xOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQuemVybygpCist ICAgICAgICBlbGlmIG5vdCBmbXB6X2lzX3plcm8oZm1wcV9wb2x5X251bXJlZihzZWxmLl9fcG9s eSkpOgorKyAgICAgICAgZWxpZiBub3QgZm1wel9pc196ZXJvKGZtcHFfcG9seV9udW1yZWYoc2Vs Zi5fcG9seSkpOgorICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImNvbnN0YW50IHRlcm0g c2hvdWxkIGJlIDAgaW4gb3JkZXIgdG8gdGFrZSBjb3NpbmUiKQorIAorICAgICAgICAgY2RlZiBQ b2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJlcyA9IHNlbGYuX25ldygpCisgICAgICAgICBzaWdf b24oKQorLSAgICAgICAgZm1wcV9wb2x5X2Nvc19zZXJpZXMocmVzLl9fcG9seSwgc2VsZi5fX3Bv bHksIHByZWMpCisrICAgICAgICBmbXBxX3BvbHlfY29zX3NlcmllcyhyZXMuX3BvbHksIHNlbGYu X3BvbHksIHByZWMpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAK K0BAIC0xOTY5LDE0ICsxOTY5LDE0IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9m bGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdlOiBfLnBhcmVudCgpCisgICAgICAg ICAgICAgVW5pdmFyaWF0ZSBQb2x5bm9taWFsIFJpbmcgaW4geCBvdmVyIFJhdGlvbmFsIEZpZWxk CisgICAgICAgICAiIiIKKy0gICAgICAgIGlmIGZtcHFfcG9seV9kZWdyZWUoc2VsZi5fX3BvbHkp ID09IC0xOgorKyAgICAgICAgaWYgZm1wcV9wb2x5X2RlZ3JlZShzZWxmLl9wb2x5KSA9PSAtMToK KyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fcGFyZW50Lnplcm8oKQorLSAgICAgICAgZWxpZiBu b3QgZm1wel9pc196ZXJvKGZtcHFfcG9seV9udW1yZWYoc2VsZi5fX3BvbHkpKToKKysgICAgICAg IGVsaWYgbm90IGZtcHpfaXNfemVybyhmbXBxX3BvbHlfbnVtcmVmKHNlbGYuX3BvbHkpKToKKyAg ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJjb25zdGFudCB0ZXJtIHNob3VsZCBiZSAwIGlu IG9yZGVyIHRvIHRha2UgaHlwZXJib2xpYyBzaW5lIikKKyAKKyAgICAgICAgIGNkZWYgUG9seW5v bWlhbF9yYXRpb25hbF9mbGludCByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgc2lnX29uKCkK Ky0gICAgICAgIGZtcHFfcG9seV9zaW5oX3NlcmllcyhyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwg cHJlYykKKysgICAgICAgIGZtcHFfcG9seV9zaW5oX3NlcmllcyhyZXMuX3BvbHksIHNlbGYuX3Bv bHksIHByZWMpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKK0BA IC0yMDA3LDE0ICsyMDA3LDE0IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGlu dChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdlOiBfLnBhcmVudCgpCisgICAgICAgICAg ICAgVW5pdmFyaWF0ZSBQb2x5bm9taWFsIFJpbmcgaW4geCBvdmVyIFJhdGlvbmFsIEZpZWxkCisg ICAgICAgICAiIiIKKy0gICAgICAgIGlmIGZtcHFfcG9seV9kZWdyZWUoc2VsZi5fX3BvbHkpID09 IC0xOgorKyAgICAgICAgaWYgZm1wcV9wb2x5X2RlZ3JlZShzZWxmLl9wb2x5KSA9PSAtMToKKyAg ICAgICAgICAgICByZXR1cm4gc2VsZi5fcGFyZW50Lm9uZSgpCistICAgICAgICBlbGlmIG5vdCBm bXB6X2lzX3plcm8oZm1wcV9wb2x5X251bXJlZihzZWxmLl9fcG9seSkpOgorKyAgICAgICAgZWxp ZiBub3QgZm1wel9pc196ZXJvKGZtcHFfcG9seV9udW1yZWYoc2VsZi5fcG9seSkpOgorICAgICAg ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImNvbnN0YW50IHRlcm0gc2hvdWxkIGJlIDAgaW4gb3Jk ZXIgdG8gdGFrZSBoeXBlcmJvbGljIGNvc2luZSIpCisgCisgICAgICAgICBjZGVmIFBvbHlub21p YWxfcmF0aW9uYWxfZmxpbnQgcmVzID0gc2VsZi5fbmV3KCkKKyAgICAgICAgIHNpZ19vbigpCist ICAgICAgICBmbXBxX3BvbHlfY29zaF9zZXJpZXMocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIHBy ZWMpCisrICAgICAgICBmbXBxX3BvbHlfY29zaF9zZXJpZXMocmVzLl9wb2x5LCBzZWxmLl9wb2x5 LCBwcmVjKQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAt MjA0MCwxNCArMjA0MCwxNCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQo UG9seW5vbWlhbCk6CisgICAgICAgICAgICAgc2FnZTogXy5wYXJlbnQoKQorICAgICAgICAgICAg IFVuaXZhcmlhdGUgUG9seW5vbWlhbCBSaW5nIGluIHggb3ZlciBSYXRpb25hbCBGaWVsZAorICAg ICAgICAgIiIiCistICAgICAgICBpZiBmbXBxX3BvbHlfZGVncmVlKHNlbGYuX19wb2x5KSA9PSAt MToKKysgICAgICAgIGlmIGZtcHFfcG9seV9kZWdyZWUoc2VsZi5fcG9seSkgPT0gLTE6CisgICAg ICAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmVudC56ZXJvKCkKKy0gICAgICAgIGVsaWYgbm90IGZt cHpfaXNfemVybyhmbXBxX3BvbHlfbnVtcmVmKHNlbGYuX19wb2x5KSk6CisrICAgICAgICBlbGlm IG5vdCBmbXB6X2lzX3plcm8oZm1wcV9wb2x5X251bXJlZihzZWxmLl9wb2x5KSk6CisgICAgICAg ICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY29uc3RhbnQgdGVybSBzaG91bGQgYmUgMCBpbiBvcmRl ciB0byB0YWtlIGh5cGVyYm9saWMgdGFuZ2VudCIpCisgCisgICAgICAgICBjZGVmIFBvbHlub21p YWxfcmF0aW9uYWxfZmxpbnQgcmVzID0gc2VsZi5fbmV3KCkKKyAgICAgICAgIHNpZ19vbigpCist ICAgICAgICBmbXBxX3BvbHlfdGFuaF9zZXJpZXMocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIHBy ZWMpCisrICAgICAgICBmbXBxX3BvbHlfdGFuaF9zZXJpZXMocmVzLl9wb2x5LCBzZWxmLl9wb2x5 LCBwcmVjKQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX3JlYWxfbXBmcl9k ZW5zZS5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfcmVhbF9tcGZy X2RlbnNlLnB5eAoraW5kZXggZmJlOTZkMTg2YzUuLjk1NWY4MzQ2OGU0IDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX3JlYWxfbXBmcl9kZW5zZS5weXgK KysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9yZWFsX21wZnJfZGVu c2UucHl4CitAQCAtMTE2LDcgKzExNiw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbFJlYWxEZW5z ZShQb2x5bm9taWFsKToKKyAgICAgICAgIFBvbHlub21pYWwuX19pbml0X18oc2VsZiwgcGFyZW50 LCBpc19nZW49aXNfZ2VuKQorICAgICAgICAgc2VsZi5fYmFzZV9yaW5nID0gcGFyZW50Ll9iYXNl CisgICAgICAgICBjZGVmIFB5X3NzaXplX3QgaSwgZGVncmVlCistICAgICAgICBjZGVmIGludCBw cmVjID0gc2VsZi5fYmFzZV9yaW5nLl9fcHJlYworKyAgICAgICAgY2RlZiBpbnQgcHJlYyA9IHNl bGYuX2Jhc2VfcmluZy5fcHJlYworICAgICAgICAgY2RlZiBtcGZyX3JuZF90IHJuZCA9IHNlbGYu X2Jhc2VfcmluZy5ybmQKKyAgICAgICAgIGlmIHggaXMgTm9uZToKKyAgICAgICAgICAgICBzZWxm Ll9jb2VmZnMgPSA8bXBmcl90Kj5jaGVja19hbGxvY2FycmF5KDEsIHNpemVvZihtcGZyX3QpKSAj IGRlZ3JlZSB6ZXJvCitAQCAtMjI3LDcgKzIyNyw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbFJl YWxEZW5zZShQb2x5bm9taWFsKToKKyAKKyAgICAgY2RlZiBQb2x5bm9taWFsUmVhbERlbnNlIF9u ZXcoc2VsZiwgUHlfc3NpemVfdCBkZWdyZWUpOgorICAgICAgICAgY2RlZiBQeV9zc2l6ZV90IGkK Ky0gICAgICAgIGNkZWYgaW50IHByZWMgPSBzZWxmLl9iYXNlX3JpbmcuX19wcmVjCisrICAgICAg ICBjZGVmIGludCBwcmVjID0gc2VsZi5fYmFzZV9yaW5nLl9wcmVjCisgICAgICAgICBjZGVmIFBv bHlub21pYWxSZWFsRGVuc2UgZiA9IDxQb2x5bm9taWFsUmVhbERlbnNlPlBvbHlub21pYWxSZWFs RGVuc2UuX19uZXdfXyhQb2x5bm9taWFsUmVhbERlbnNlKQorICAgICAgICAgZi5fcGFyZW50ID0g c2VsZi5fcGFyZW50CisgICAgICAgICBmLl9iYXNlX3JpbmcgPSBzZWxmLl9iYXNlX3JpbmcKK0BA IC01MDEsNyArNTAxLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsUmVhbERlbnNlKFBvbHlub21p YWwpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBmID0gbGVmdC5fbmV3KGxlZnQuX2Rl Z3JlZSArIHJpZ2h0Ll9kZWdyZWUpCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgbXBmcl9p bml0Mih0bXAsIGxlZnQuX2Jhc2VfcmluZy5fX3ByZWMpCisrICAgICAgICBtcGZyX2luaXQyKHRt cCwgbGVmdC5fYmFzZV9yaW5nLl9wcmVjKQorICAgICAgICAgZm9yIGkgZnJvbSAwIDw9IGkgPD0g Zi5fZGVncmVlOgorICAgICAgICAgICAgICMgWWVzLCB3ZSBjb3VsZCBtYWtlIHRoaXMgbW9yZSBl ZmZpY2llbnQgYnkgaW5pdGlhbGl6aW5nIHdpdGgKKyAgICAgICAgICAgICAjIGEgbXVsdGlwbGUg b2YgbGVmdCByYXRoZXIgdGhhbiBhbGwgemVyb3MuLi4KK0BAIC02NjEsNyArNjYxLDcgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsUmVhbERlbnNlKFBvbHlub21pYWwpOgorICAgICAgICAgcSA9IHNl bGYuX25ldyhzZWxmLl9kZWdyZWUgLSBvdGhlci5fZGVncmVlKQorICAgICAgICAgIyBUaGlzIGlz IHRoZSBzdGFuZGFyZCBkaXZpc2lvbiBhbGdvcml0aG0KKyAgICAgICAgIHNpZ19vbigpCistICAg ICAgICBtcGZyX2luaXQyKHRtcCwgc2VsZi5fYmFzZV9yaW5nLl9fcHJlYykKKysgICAgICAgIG1w ZnJfaW5pdDIodG1wLCBzZWxmLl9iYXNlX3JpbmcuX3ByZWMpCisgICAgICAgICBmb3IgaSBmcm9t IHNlbGYuX2RlZ3JlZSA+PSBpID49IG90aGVyLl9kZWdyZWU6CisgICAgICAgICAgICAgbXBmcl9z ZXQocS5fY29lZmZzW2ktb3RoZXIuX2RlZ3JlZV0sIHIuX2NvZWZmc1tpXSwgcm5kKQorICAgICAg ICAgICAgIGZvciBqIGZyb20gMCA8PSBqIDwgb3RoZXIuX2RlZ3JlZToKK0BAIC03MjUsNyArNzI1 LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsUmVhbERlbnNlKFBvbHlub21pYWwpOgorICAgICAg ICAgY2RlZiBSZWFsTnVtYmVyIHggPSA8UmVhbE51bWJlcj54eAorICAgICAgICAgY2RlZiBSZWFs TnVtYmVyIHJlcworIAorLSAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+eC5fcGFyZW50KS5f X3ByZWMgPCBzZWxmLl9iYXNlX3JpbmcuX19wcmVjOgorKyAgICAgICAgaWYgKDxSZWFsRmllbGRf Y2xhc3M+eC5fcGFyZW50KS5fcHJlYyA8IHNlbGYuX2Jhc2VfcmluZy5fcHJlYzoKKyAgICAgICAg ICAgICByZXMgPSBSZWFsTnVtYmVyKHguX3BhcmVudCkKKyAgICAgICAgIGVsc2U6CisgICAgICAg ICAgICAgcmVzID0gUmVhbE51bWJlcihzZWxmLl9iYXNlX3JpbmcpCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX3ptb2RfZmxpbnQucHl4IGIvc3JjL3Nh Z2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX3ptb2RfZmxpbnQucHl4CitpbmRleCAyNTNh Yjk0OWZjYy4uNGM0ODA2NzM4NjEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9t aWFsL3BvbHlub21pYWxfem1vZF9mbGludC5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlu b21pYWwvcG9seW5vbWlhbF96bW9kX2ZsaW50LnB5eAorQEAgLTExMCw3ICsxMTAsNyBAQCBjZGVm IGNsYXNzIFBvbHlub21pYWxfem1vZF9mbGludChQb2x5bm9taWFsX3RlbXBsYXRlKToKKyAgICAg ICAgICAgICByZXR1cm4KKyAgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh4LCBQb2x5bm9taWFsX2lu dGVnZXJfZGVuc2VfZmxpbnQpOgorICAgICAgICAgICAgIFBvbHlub21pYWxfdGVtcGxhdGUuX19p bml0X18oc2VsZiwgcGFyZW50LCAwLCBjaGVjaywgaXNfZ2VuLCBjb25zdHJ1Y3QpCistICAgICAg ICAgICAgc2VsZi5fc2V0X2ZtcHpfcG9seSgoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGlu dD54KS5fX3BvbHkpCisrICAgICAgICAgICAgc2VsZi5fc2V0X2ZtcHpfcG9seSgoPFBvbHlub21p YWxfaW50ZWdlcl9kZW5zZV9mbGludD54KS5fcG9seSkKKyAgICAgICAgICAgICByZXR1cm4KKyAg ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh4LCBudGxfenpfcFgpOgor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3Bvd2VyX3Nlcmllc19tcG9seS5weGQgYi9zcmMv c2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNfbXBvbHkucHhkCitpbmRleCBmODIyZWNjMTIyNy4uZDM1 OGFkYTEzNTYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNfbXBvbHku cHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNfbXBvbHkucHhkCitAQCAtMyw2 ICszLDYgQEAgZnJvbSAucG93ZXJfc2VyaWVzX3JpbmdfZWxlbWVudCBjaW1wb3J0IFBvd2VyU2Vy aWVzCisgCisgY2RlZiBjbGFzcyBQb3dlclNlcmllc19tcG9seShQb3dlclNlcmllcyk6CisgICAg IGNkZWYgTW9kdWxlRWxlbWVudCBfX2YKKy0gICAgY2RlZiBvYmplY3QgX19wb2x5CisrICAgIGNk ZWYgb2JqZWN0IF9wb2x5CisgICAgIGNkZWYgb2JqZWN0IF9fbGlzdAorICAgICBjZGVmIGJpbnQg X3RydW5jYXRlZAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3Bvd2VyX3Nlcmllc19tcG9s eS5weXggYi9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNfbXBvbHkucHl4CitpbmRleCAwYzkw MWEzNTU3Yi4uYmU1OTI5NGU3NWIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb3dlcl9z ZXJpZXNfbXBvbHkucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNfbXBvbHku cHl4CitAQCAtNjUsNyArNjUsNyBAQCBjZGVmIGNsYXNzIFBvd2VyU2VyaWVzX21wb2x5KFBvd2Vy U2VyaWVzKToKKyAKKyAgICAgZGVmIF9fcmVkdWNlX18oc2VsZik6CisgICAgICAgICAjIGRvICpu b3QqIGRlbGV0ZSBvbGQgdmVyc2lvbnMuCistICAgICAgICByZXR1cm4gbWFrZV9wb3dlcnNlcmll c19tcG9seV92MCwgKHNlbGYuX3BhcmVudCwgc2VsZi5fX2YsIHNlbGYuX3ByZWMsIHNlbGYuX19p c19nZW4pCisrICAgICAgICByZXR1cm4gbWFrZV9wb3dlcnNlcmllc19tcG9seV92MCwgKHNlbGYu X3BhcmVudCwgc2VsZi5fX2YsIHNlbGYuX3ByZWMsIHNlbGYuX2lzX2dlbikKKyAKKyAgICAgZGVm IF9fY2FsbF9fKHNlbGYsICphcmdzLCAqKmt3ZHMpOgorICAgICAgICAgaWYgbGVuKGt3ZHMpID09 IDAgYW5kIGxlbihhcmdzKSA9PSAxOgorQEAgLTkyLDEwICs5MiwxMCBAQCBjZGVmIGNsYXNzIFBv d2VyU2VyaWVzX21wb2x5KFBvd2VyU2VyaWVzKToKKyAgICAgICAgIHJldHVybiBzZWxmLl9fbGlz dAorIAorICAgICBkZWYgcG9seW5vbWlhbChzZWxmKToKKy0gICAgICAgIGlmIHNlbGYuX19wb2x5 IGlzIE5vbmU6CisrICAgICAgICBpZiBzZWxmLl9wb2x5IGlzIE5vbmU6CisgICAgICAgICAgICAg UyA9IHNlbGYucGFyZW50KCkuX21wb2x5X3JpbmcoKQorLSAgICAgICAgICAgIHNlbGYuX19wb2x5 ID0gc2VsZi5fX2YucG9seW5vbWlhbChTLmdlbnMoKVstMV0pCistICAgICAgICByZXR1cm4gc2Vs Zi5fX3BvbHkKKysgICAgICAgICAgICBzZWxmLl9wb2x5ID0gc2VsZi5fX2YucG9seW5vbWlhbChT LmdlbnMoKVstMV0pCisrICAgICAgICByZXR1cm4gc2VsZi5fcG9seQorIAorICAgICBkZWYgX21w b2x5KHNlbGYpOgorICAgICAgICAgcmV0dXJuIHNlbGYuX19mCitkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvcmluZ3MvcG93ZXJfc2VyaWVzX3BvbHkucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcG93ZXJfc2Vy aWVzX3BvbHkucHl4CitpbmRleCA3YzkzMTY4ZDRiMS4uNmNhY2FiMWYwYzggMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNfcG9seS5weXgKKysrKyBiL3NyYy9zYWdlL3Jp bmdzL3Bvd2VyX3Nlcmllc19wb2x5LnB5eAorQEAgLTk3LDcgKzk3LDcgQEAgY2RlZiBjbGFzcyBQ b3dlclNlcmllc19wb2x5KFBvd2VyU2VyaWVzKToKKyAgICAgICAgICAgICBzYWdlOiBmID09IGxv YWRzKGR1bXBzKGYpKSAjIGluZGlyZWN0IGRvY3Rlc3QKKyAgICAgICAgICAgICBUcnVlCisgICAg ICAgICAiIiIKKy0gICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXywgKHNlbGYuX3BhcmVudCwg c2VsZi5fX2YsIHNlbGYuX3ByZWMsIHNlbGYuX19pc19nZW4pCisrICAgICAgICByZXR1cm4gc2Vs Zi5fX2NsYXNzX18sIChzZWxmLl9wYXJlbnQsIHNlbGYuX19mLCBzZWxmLl9wcmVjLCBzZWxmLl9p c19nZW4pCisgCisgICAgIGRlZiBwb2x5bm9taWFsKHNlbGYpOgorICAgICAgICAgIiIiCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG93ZXJfc2VyaWVzX3JpbmdfZWxlbWVudC5weGQgYi9z cmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNfcmluZ19lbGVtZW50LnB4ZAoraW5kZXggMDY3YzRm M2M2ZDQuLmU1YzAzMWVlMTQ3IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG93ZXJfc2Vy aWVzX3JpbmdfZWxlbWVudC5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3Bvd2VyX3Nlcmllc19y aW5nX2VsZW1lbnQucHhkCitAQCAtMSw3ICsxLDcgQEAKKyBmcm9tIHNhZ2Uuc3RydWN0dXJlLmVs ZW1lbnQgY2ltcG9ydCBBbGdlYnJhRWxlbWVudCwgUmluZ0VsZW1lbnQKKyAKKyBjZGVmIGNsYXNz IFBvd2VyU2VyaWVzKEFsZ2VicmFFbGVtZW50KToKKy0gICAgY2RlZiBjaGFyIF9faXNfZ2VuCisr ICAgIGNkZWYgY2hhciBfaXNfZ2VuCisgICAgIGNkZWYgX3ByZWMKKyAgICAgY2RlZiBjb21tb25f cHJlY19jKHNlbGYsIFBvd2VyU2VyaWVzIG90aGVyKQorICAgICAjX3ByZWMoc2VsZiwgUmluZ0Vs ZW1lbnQgcmlnaHRfcikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNf cmluZ19lbGVtZW50LnB5eCBiL3NyYy9zYWdlL3JpbmdzL3Bvd2VyX3Nlcmllc19yaW5nX2VsZW1l bnQucHl4CitpbmRleCA1NDMxNGQ1MzhlZC4uZTVlMmRmNzllMWIgMTAwNjQ0CistLS0gYS9zcmMv c2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNfcmluZ19lbGVtZW50LnB5eAorKysrIGIvc3JjL3NhZ2Uv cmluZ3MvcG93ZXJfc2VyaWVzX3JpbmdfZWxlbWVudC5weXgKK0BAIC0xNTksNyArMTU5LDcgQEAg Y2RlZiBjbGFzcyBQb3dlclNlcmllcyhBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICAgICAgIG92 ZXIgRmluaXRlIEZpZWxkIG9mIHNpemUgMworICAgICAgICAgIiIiCisgICAgICAgICBBbGdlYnJh RWxlbWVudC5fX2luaXRfXyhzZWxmLCBwYXJlbnQpCistICAgICAgICBzZWxmLl9faXNfZ2VuID0g aXNfZ2VuCisrICAgICAgICBzZWxmLl9pc19nZW4gPSBpc19nZW4KKyAgICAgICAgIHNlbGYuX3By ZWMgPSBwcmVjCisgCisgICAgIGRlZiBfX2hhc2hfXyhzZWxmKToKK0BAIC0yMzQsNyArMjM0LDcg QEAgY2RlZiBjbGFzcyBQb3dlclNlcmllcyhBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICAgICAg c2FnZTogMSp0ID09IHQKKyAgICAgICAgICAgICBUcnVlCisgICAgICAgICAiIiIKKy0gICAgICAg IHJldHVybiBib29sKHNlbGYuX19pc19nZW4pCisrICAgICAgICByZXR1cm4gYm9vbChzZWxmLl9p c19nZW4pCisgCisgICAgIGRlZiBfaW1fZ2Vuc18oc2VsZiwgY29kb21haW4sIGltX2dlbnMsIGJh c2VfbWFwPU5vbmUpOgorICAgICAgICAgIiIiCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3Mv cmVhbF9tcGZpLnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3JlYWxfbXBmaS5weGQKK2luZGV4IDk1OWE2 NTBhYWZjLi40MjAxNzg4ZDE5OCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3JlYWxfbXBm aS5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3JlYWxfbXBmaS5weGQKK0BAIC0xMSw3ICsxMSw3 IEBAIGZyb20gLnJlYWxfbXBmciBjaW1wb3J0IFJlYWxGaWVsZF9jbGFzcworIGNkZWYgY2xhc3Mg UmVhbEludGVydmFsRmllbGRFbGVtZW50KFJpbmdFbGVtZW50KSAgIyBmb3J3YXJkIGRlY2wKKyAK KyBjZGVmIGNsYXNzIFJlYWxJbnRlcnZhbEZpZWxkX2NsYXNzKHNhZ2UucmluZ3MuYWJjLlJlYWxJ bnRlcnZhbEZpZWxkKToKKy0gICAgY2RlZiBtcGZyX3ByZWNfdCBfX3ByZWMKKysgICAgY2RlZiBt cGZyX3ByZWNfdCBfcHJlYworICAgICBjZGVmIGJpbnQgc2NpX25vdAorICAgICAjIENhY2hlIFJl YWxGaWVsZCBpbnN0YW5jZXMgZm9yIHRoZSBsb3dlciwgdXBwZXIsIGFuZCBtaWRkbGUgYm91bmRz LgorICAgICAjIFRoZXNlIGhhdmUgdGhlIHNhbWUgcHJlY2lzaW9uIGFzIHRoZSBpbnRlcnZhbCBm aWVsZDsKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9yZWFsX21wZmkucHl4IGIvc3JjL3Nh Z2UvcmluZ3MvcmVhbF9tcGZpLnB5eAoraW5kZXggMTE5M2ExNGJhZmYuLjUwOWY2ZjYzZGEwIDEw MDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcmVhbF9tcGZpLnB5eAorKysrIGIvc3JjL3NhZ2Uv cmluZ3MvcmVhbF9tcGZpLnB5eAorQEAgLTUyNiw3ICs1MjYsNyBAQCBjZGVmIGNsYXNzIFJlYWxJ bnRlcnZhbEZpZWxkX2NsYXNzKHNhZ2UucmluZ3MuYWJjLlJlYWxJbnRlcnZhbEZpZWxkKToKKyAg ICAgICAgIGlmIHByZWMgPCBNUEZSX1BSRUNfTUlOIG9yIHByZWMgPiBNUEZSX1BSRUNfTUFYOgor ICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInByZWMgKD0lcykgbXVzdCBiZSA+PSAlcyBh bmQgPD0gJXMuIiAlICgKKyAgICAgICAgICAgICAgICAgcHJlYywgTVBGUl9QUkVDX01JTiwgTVBG Ul9QUkVDX01BWCkpCistICAgICAgICBzZWxmLl9fcHJlYyA9IHByZWMKKysgICAgICAgIHNlbGYu X3ByZWMgPSBwcmVjCisgICAgICAgICBzZWxmLnNjaV9ub3QgPSBzY2lfbm90CisgICAgICAgICBz ZWxmLl9fbG93ZXJfZmllbGQgPSBSZWFsRmllbGQocHJlYywgc2NpX25vdCwgIlJOREQiKQorICAg ICAgICAgc2VsZi5fX21pZGRsZV9maWVsZCA9IFJlYWxGaWVsZChwcmVjLCBzY2lfbm90LCAiUk5E TiIpCitAQCAtNTk4LDcgKzU5OCw3IEBAIGNkZWYgY2xhc3MgUmVhbEludGVydmFsRmllbGRfY2xh c3Moc2FnZS5yaW5ncy5hYmMuUmVhbEludGVydmFsRmllbGQpOgorICAgICAgICAgZWxpZiBybmQg PT0gIlJORFUiOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLnVwcGVyX2ZpZWxkKCkKKyAgICAg ICAgIGVsc2U6CistICAgICAgICAgICAgcmV0dXJuIFJlYWxGaWVsZChzZWxmLl9fcHJlYywgc2Vs Zi5zY2lfbm90LCBybmQpCisrICAgICAgICAgICAgcmV0dXJuIFJlYWxGaWVsZChzZWxmLl9wcmVj LCBzZWxmLnNjaV9ub3QsIHJuZCkKKyAKKyAgICAgZGVmIF9yZXByXyhzZWxmKToKKyAgICAgICAg ICIiIgorQEAgLTYxMSw3ICs2MTEsNyBAQCBjZGVmIGNsYXNzIFJlYWxJbnRlcnZhbEZpZWxkX2Ns YXNzKHNhZ2UucmluZ3MuYWJjLlJlYWxJbnRlcnZhbEZpZWxkKToKKyAgICAgICAgICAgICBzYWdl OiBSZWFsSW50ZXJ2YWxGaWVsZCgyMDApICMgaW5kaXJlY3QgZG9jdGVzdAorICAgICAgICAgICAg IFJlYWwgSW50ZXJ2YWwgRmllbGQgd2l0aCAyMDAgYml0cyBvZiBwcmVjaXNpb24KKyAgICAgICAg ICIiIgorLSAgICAgICAgcyA9ICJSZWFsIEludGVydmFsIEZpZWxkIHdpdGggJXMgYml0cyBvZiBw cmVjaXNpb24iJXNlbGYuX19wcmVjCisrICAgICAgICBzID0gIlJlYWwgSW50ZXJ2YWwgRmllbGQg d2l0aCAlcyBiaXRzIG9mIHByZWNpc2lvbiIlc2VsZi5fcHJlYworICAgICAgICAgcmV0dXJuIHMK KyAKKyAgICAgZGVmIF9sYXRleF8oc2VsZik6CitAQCAtODAyLDcgKzgwMiw3IEBAIGNkZWYgY2xh c3MgUmVhbEludGVydmFsRmllbGRfY2xhc3Moc2FnZS5yaW5ncy5hYmMuUmVhbEludGVydmFsRmll bGQpOgorICAgICAgICAgICAgIHNhZ2U6IFJJRi5oYXNfY29lcmNlX21hcF9mcm9tKGZsb2F0KQor ICAgICAgICAgICAgIEZhbHNlCisgICAgICAgICAiIiIKKy0gICAgICAgIHByZWMgPSBzZWxmLl9f cHJlYworKyAgICAgICAgcHJlYyA9IHNlbGYuX3ByZWMKKyAKKyAgICAgICAgICMgRGlyZWN0IGFu ZCBlZmZpY2llbnQgY29udmVyc2lvbnMKKyAgICAgICAgIGlmIFMgaXMgWlogb3IgUyBpcyBRUToK K0BAIC04MTAsNyArODEwLDcgQEAgY2RlZiBjbGFzcyBSZWFsSW50ZXJ2YWxGaWVsZF9jbGFzcyhz YWdlLnJpbmdzLmFiYy5SZWFsSW50ZXJ2YWxGaWVsZCk6CisgICAgICAgICBpZiBTIGlzIGludCBv ciBTIGlzIGxvbmc6CisgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgIGlmIGlzaW5z dGFuY2UoUywgUmVhbEludGVydmFsRmllbGRfY2xhc3MpOgorLSAgICAgICAgICAgIHJldHVybiAo PFJlYWxJbnRlcnZhbEZpZWxkX2NsYXNzPlMpLl9fcHJlYyA+PSBwcmVjCisrICAgICAgICAgICAg cmV0dXJuICg8UmVhbEludGVydmFsRmllbGRfY2xhc3M+UykuX3ByZWMgPj0gcHJlYworICAgICAg ICAgaWYgaXNpbnN0YW5jZShTLCBzYWdlLnJpbmdzLmFiYy5OdW1iZXJGaWVsZF9xdWFkcmF0aWMp OgorICAgICAgICAgICAgIHJldHVybiBTLmRpc2NyaW1pbmFudCgpID4gMAorIAorQEAgLTg0NCw3 ICs4NDQsNyBAQCBjZGVmIGNsYXNzIFJlYWxJbnRlcnZhbEZpZWxkX2NsYXNzKHNhZ2UucmluZ3Mu YWJjLlJlYWxJbnRlcnZhbEZpZWxkKToKKyAgICAgICAgIGNkZWYgUmVhbEludGVydmFsRmllbGRf Y2xhc3MgcmlnaHQKKyAgICAgICAgIGxlZnQgPSBzZWxmCisgICAgICAgICByaWdodCA9IG90aGVy ICAjIHRvIGFjY2VzcyBDIHN0cnVjdHVyZQorLSAgICAgICAgcmV0dXJuIHJpY2hjbXAobGVmdC5f X3ByZWMsIHJpZ2h0Ll9fcHJlYywgb3ApCisrICAgICAgICByZXR1cm4gcmljaGNtcChsZWZ0Ll9w cmVjLCByaWdodC5fcHJlYywgb3ApCisgCisgICAgIGRlZiBfX3JlZHVjZV9fKHNlbGYpOgorICAg ICAgICAgIiIiCitAQCAtODU2LDcgKzg1Niw3IEBAIGNkZWYgY2xhc3MgUmVhbEludGVydmFsRmll bGRfY2xhc3Moc2FnZS5yaW5ncy5hYmMuUmVhbEludGVydmFsRmllbGQpOgorICAgICAgICAgICAg IHNhZ2U6IGxvYWRzKGR1bXBzKFIpKSA9PSBSCisgICAgICAgICAgICAgVHJ1ZQorICAgICAgICAg IiIiCistICAgICAgICByZXR1cm4gX19jcmVhdGVfX1JlYWxJbnRlcnZhbEZpZWxkX3ZlcnNpb24w LCAoc2VsZi5fX3ByZWMsIHNlbGYuc2NpX25vdCkKKysgICAgICAgIHJldHVybiBfX2NyZWF0ZV9f UmVhbEludGVydmFsRmllbGRfdmVyc2lvbjAsIChzZWxmLl9wcmVjLCBzZWxmLnNjaV9ub3QpCisg CisgICAgIGRlZiByYW5kb21fZWxlbWVudChzZWxmLCAqYXJncywgKiprd2RzKToKKyAgICAgICAg ICIiIgorQEAgLTk5Nyw3ICs5OTcsNyBAQCBjZGVmIGNsYXNzIFJlYWxJbnRlcnZhbEZpZWxkX2Ns YXNzKHNhZ2UucmluZ3MuYWJjLlJlYWxJbnRlcnZhbEZpZWxkKToKKyAgICAgICAgICAgICBzYWdl OiBSZWFsSW50ZXJ2YWxGaWVsZCgyMDApLm5hbWUoKQorICAgICAgICAgICAgICdJbnRlcnZhbFJl YWxJbnRlcnZhbEZpZWxkMjAwJworICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gIkludGVy dmFsUmVhbEludGVydmFsRmllbGQlcyIlKHNlbGYuX19wcmVjKQorKyAgICAgICAgcmV0dXJuICJJ bnRlcnZhbFJlYWxJbnRlcnZhbEZpZWxkJXMiJShzZWxmLl9wcmVjKQorIAorICAgICBkZWYgX19o YXNoX18oc2VsZik6CisgICAgICAgICAiIiIKK0BAIC0xMDIzLDcgKzEwMjMsNyBAQCBjZGVmIGNs YXNzIFJlYWxJbnRlcnZhbEZpZWxkX2NsYXNzKHNhZ2UucmluZ3MuYWJjLlJlYWxJbnRlcnZhbEZp ZWxkKToKKyAgICAgICAgICAgICBzYWdlOiBSZWFsSW50ZXJ2YWxGaWVsZCgyMDApLnByZWNpc2lv bigpCisgICAgICAgICAgICAgMjAwCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBzZWxm Ll9fcHJlYworKyAgICAgICAgcmV0dXJuIHNlbGYuX3ByZWMKKyAKKyAgICAgcHJlYyA9IHByZWNp c2lvbgorIAorQEAgLTExODcsNyArMTE4Nyw3IEBAIGNkZWYgY2xhc3MgUmVhbEludGVydmFsRmll bGRFbGVtZW50KFJpbmdFbGVtZW50KToKKyAgICAgICAgICAgICBzYWdlOiBUZXN0U3VpdGUoeCku cnVuKHNraXA9WyJfdGVzdF9lcSIsICJfdGVzdF9waWNrbGluZyJdKQorICAgICAgICAgIiIiCisg ICAgICAgICBjZGVmIFJlYWxJbnRlcnZhbEZpZWxkX2NsYXNzIHAgPSA8UmVhbEludGVydmFsRmll bGRfY2xhc3M/PnBhcmVudAorLSAgICAgICAgbXBmaV9pbml0MihzZWxmLnZhbHVlLCBwLl9fcHJl YykKKysgICAgICAgIG1wZmlfaW5pdDIoc2VsZi52YWx1ZSwgcC5fcHJlYykKKyAgICAgICAgIHNl bGYuX3BhcmVudCA9IHAKKyAKKyAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCwgeCwgaW50 IGJhc2U9MTApOgorQEAgLTE4NjQsNyArMTg2NCw3IEBAIGNkZWYgY2xhc3MgUmVhbEludGVydmFs RmllbGRFbGVtZW50KFJpbmdFbGVtZW50KToKKyAKKyAgICAgICAgIGNkZWYgbXBfZXhwX3Qgc2Vs Zl9leHAKKyAgICAgICAgIGNkZWYgbXB6X3Qgc2VsZl96egorLSAgICAgICAgY2RlZiBtcGZyX3By ZWNfdCBwcmVjID0gKDxSZWFsSW50ZXJ2YWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJl YworKyAgICAgICAgY2RlZiBtcGZyX3ByZWNfdCBwcmVjID0gKDxSZWFsSW50ZXJ2YWxGaWVsZF9j bGFzcz5zZWxmLl9wYXJlbnQpLl9wcmVjCisgICAgICAgICBjZGVmIGNoYXIgKnp6X3N0cgorICAg ICAgICAgY2RlZiBzaXplX3Qgenpfc3RyX21heGxlbgorIAorQEAgLTI5NzcsNyArMjk3Nyw3IEBA IGNkZWYgY2xhc3MgUmVhbEludGVydmFsRmllbGRFbGVtZW50KFJpbmdFbGVtZW50KToKKyAgICAg ICAgICAgICBzYWdlOiBSZWFsSW50ZXJ2YWxGaWVsZCgyMDApKDIuMSkucHJlY2lzaW9uKCkKKyAg ICAgICAgICAgICAyMDAKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuICg8UmVhbEludGVy dmFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fX3ByZWMKKysgICAgICAgIHJldHVybiAoPFJl YWxJbnRlcnZhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX3ByZWMKKyAKKyAgICAgcHJlYyA9 IHByZWNpc2lvbgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3JlYWxfbXBmci5weGQg Yi9zcmMvc2FnZS9yaW5ncy9yZWFsX21wZnIucHhkCitpbmRleCAzNTQ5ZWNjZmQwMy4uZGQxOGU4 NzcxNWIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9yZWFsX21wZnIucHhkCisrKysgYi9z cmMvc2FnZS9yaW5ncy9yZWFsX21wZnIucHhkCitAQCAtOSw3ICs5LDcgQEAgZnJvbSBzYWdlLmxp YnMubXBmci50eXBlcyBjaW1wb3J0IG1wZnJfcHJlY190CisgY2RlZiBjbGFzcyBSZWFsTnVtYmVy KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuUmluZ0VsZW1lbnQpICAjIGZvcndhcmQgZGVjbAorIAor IGNkZWYgY2xhc3MgUmVhbEZpZWxkX2NsYXNzKHNhZ2UucmluZ3MuYWJjLlJlYWxGaWVsZCk6Cist ICAgIGNkZWYgbXBmcl9wcmVjX3QgX19wcmVjCisrICAgIGNkZWYgbXBmcl9wcmVjX3QgX3ByZWMK KyAgICAgY2RlZiBiaW50IHNjaV9ub3QKKyAgICAgY2RlZiBtcGZyX3JuZF90IHJuZAorICAgICBj ZGVmIG9iamVjdCBybmRfc3RyCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcmVhbF9tcGZy LnB5eCBiL3NyYy9zYWdlL3JpbmdzL3JlYWxfbXBmci5weXgKK2luZGV4IGVhN2ZmMDdhMjE2Li43 NDQwZmFkZDI2NSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3JlYWxfbXBmci5weXgKKysr KyBiL3NyYy9zYWdlL3JpbmdzL3JlYWxfbXBmci5weXgKK0BAIC01MjQsNyArNTI0LDcgQEAgY2Rl ZiBjbGFzcyBSZWFsRmllbGRfY2xhc3Moc2FnZS5yaW5ncy5hYmMuUmVhbEZpZWxkKToKKyAgICAg ICAgIGlmIHByZWMgPCBNUEZSX1BSRUNfTUlOIG9yIHByZWMgPiBNUEZSX1BSRUNfTUFYOgorICAg ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInByZWMgKD0lcykgbXVzdCBiZSA+PSAlcyBhbmQg PD0gJXMiICUgKAorICAgICAgICAgICAgICAgICBwcmVjLCBNUEZSX1BSRUNfTUlOLCBNUEZSX1BS RUNfTUFYKSkKKy0gICAgICAgIHNlbGYuX19wcmVjID0gcHJlYworKyAgICAgICAgc2VsZi5fcHJl YyA9IHByZWMKKyAgICAgICAgIHNlbGYuc2NpX25vdCA9IHNjaV9ub3QKKyAKKyAgICAgICAgIHNl bGYucm5kID0gPG1wZnJfcm5kX3Q+cm5kCitAQCAtNTYxLDcgKzU2MSw3IEBAIGNkZWYgY2xhc3Mg UmVhbEZpZWxkX2NsYXNzKHNhZ2UucmluZ3MuYWJjLlJlYWxGaWVsZCk6CisgICAgICAgICAgICAg c2FnZTogUmVhbEZpZWxkKDE3LHJuZD0nUk5ERCcpICMgaW5kaXJlY3QgZG9jdGVzdAorICAgICAg ICAgICAgIFJlYWwgRmllbGQgd2l0aCAxNyBiaXRzIG9mIHByZWNpc2lvbiBhbmQgcm91bmRpbmcg Uk5ERAorICAgICAgICAgIiIiCistICAgICAgICBzID0gIlJlYWwgRmllbGQgd2l0aCAlcyBiaXRz IG9mIHByZWNpc2lvbiIlc2VsZi5fX3ByZWMKKysgICAgICAgIHMgPSAiUmVhbCBGaWVsZCB3aXRo ICVzIGJpdHMgb2YgcHJlY2lzaW9uIiVzZWxmLl9wcmVjCisgICAgICAgICBpZiBzZWxmLnJuZCAh PSBNUEZSX1JORE46CisgICAgICAgICAgICAgcyA9IHMgKyAiIGFuZCByb3VuZGluZyAlcyIlKHNl bGYucm5kX3N0cikKKyAgICAgICAgIHJldHVybiBzCitAQCAtNzMzLDEzICs3MzMsMTMgQEAgY2Rl ZiBjbGFzcyBSZWFsRmllbGRfY2xhc3Moc2FnZS5yaW5ncy5hYmMuUmVhbEZpZWxkKToKKyAgICAg ICAgICAgICByZXR1cm4gWlp0b1JSKFpaLCBzZWxmKQorICAgICAgICAgZWxpZiBTIGlzIFFROgor ICAgICAgICAgICAgIHJldHVybiBRUXRvUlIoUVEsIHNlbGYpCistICAgICAgICBlbGlmIChTIGlz IFJERiBvciBTIGlzIGZsb2F0KSBhbmQgc2VsZi5fX3ByZWMgPD0gNTM6CisrICAgICAgICBlbGlm IChTIGlzIFJERiBvciBTIGlzIGZsb2F0KSBhbmQgc2VsZi5fcHJlYyA8PSA1MzoKKyAgICAgICAg ICAgICByZXR1cm4gZG91YmxlX3RvUlIoUywgc2VsZikKKyAgICAgICAgIGVsaWYgUyBpcyBsb25n OgorICAgICAgICAgICAgIHJldHVybiBpbnRfdG9SUihsb25nLCBzZWxmKQorICAgICAgICAgZWxp ZiBTIGlzIGludDoKKyAgICAgICAgICAgICByZXR1cm4gaW50X3RvUlIoaW50LCBzZWxmKQorLSAg ICAgICAgZWxpZiBpc2luc3RhbmNlKFMsIFJlYWxGaWVsZF9jbGFzcykgYW5kIFMucHJlYygpID49 IHNlbGYuX19wcmVjOgorKyAgICAgICAgZWxpZiBpc2luc3RhbmNlKFMsIFJlYWxGaWVsZF9jbGFz cykgYW5kIFMucHJlYygpID49IHNlbGYuX3ByZWM6CisgICAgICAgICAgICAgcmV0dXJuIFJSdG9S UihTLCBzZWxmKQorICAgICAgICAgZWxpZiBRUS5oYXNfY29lcmNlX21hcF9mcm9tKFMpOgorICAg ICAgICAgICAgIHJldHVybiBRUXRvUlIoUVEsIHNlbGYpICogUVEuX2ludGVybmFsX2NvZXJjZV9t YXBfZnJvbShTKQorQEAgLTc4Niw3ICs3ODYsNyBAQCBjZGVmIGNsYXNzIFJlYWxGaWVsZF9jbGFz cyhzYWdlLnJpbmdzLmFiYy5SZWFsRmllbGQpOgorICAgICAgICAgICAgIHJldHVybiBOb3RJbXBs ZW1lbnRlZAorIAorICAgICAgICAgX290aGVyID0gPFJlYWxGaWVsZF9jbGFzcz5vdGhlciAgIyB0 byBhY2Nlc3MgQyBzdHJ1Y3R1cmUKKy0gICAgICAgIHJldHVybiAoc2VsZi5fX3ByZWMgPT0gX290 aGVyLl9fcHJlYyBhbmQKKysgICAgICAgIHJldHVybiAoc2VsZi5fcHJlYyA9PSBfb3RoZXIuX3By ZWMgYW5kCisgICAgICAgICAgICAgICAgIHNlbGYucm5kID09IF9vdGhlci5ybmQpID09IChvcCA9 PSBQeV9FUSkKKyAKKyAgICAgZGVmIF9fcmVkdWNlX18oc2VsZik6CitAQCAtNzk5LDcgKzc5OSw3 IEBAIGNkZWYgY2xhc3MgUmVhbEZpZWxkX2NsYXNzKHNhZ2UucmluZ3MuYWJjLlJlYWxGaWVsZCk6 CisgICAgICAgICAgICAgc2FnZTogbG9hZHMoZHVtcHMoUikpID09IFIKKyAgICAgICAgICAgICBU cnVlCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBfX2NyZWF0ZV9fUmVhbEZpZWxkX3Zl cnNpb24wLCAoc2VsZi5fX3ByZWMsIHNlbGYuc2NpX25vdCwgc2VsZi5ybmRfc3RyKQorKyAgICAg ICAgcmV0dXJuIF9fY3JlYXRlX19SZWFsRmllbGRfdmVyc2lvbjAsIChzZWxmLl9wcmVjLCBzZWxm LnNjaV9ub3QsIHNlbGYucm5kX3N0cikKKyAKKyAgICAgZGVmIGNvbnN0cnVjdGlvbihzZWxmKToK KyAgICAgICAgIHIiIiIKK0BAIC05NjgsNyArOTY4LDcgQEAgY2RlZiBjbGFzcyBSZWFsRmllbGRf Y2xhc3Moc2FnZS5yaW5ncy5hYmMuUmVhbEZpZWxkKToKKyAgICAgICAgICAgICBzYWdlOiBSZWFs RmllbGQoMTAwLHJuZD0nUk5EVScpLm5hbWUoKQorICAgICAgICAgICAgICdSZWFsRmllbGQxMDBf MicKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuICJSZWFsRmllbGQlc18lcyIlKHNlbGYu X19wcmVjLHNlbGYucm5kKQorKyAgICAgICAgcmV0dXJuICJSZWFsRmllbGQlc18lcyIlKHNlbGYu X3ByZWMsc2VsZi5ybmQpCisgCisgICAgIGRlZiBfX2hhc2hfXyhzZWxmKToKKyAgICAgICAgICIi IgorQEAgLTk5NSw3ICs5OTUsNyBAQCBjZGVmIGNsYXNzIFJlYWxGaWVsZF9jbGFzcyhzYWdlLnJp bmdzLmFiYy5SZWFsRmllbGQpOgorICAgICAgICAgICAgIHNhZ2U6IFJlYWxGaWVsZCgyMCkucHJl Y2lzaW9uKCkKKyAgICAgICAgICAgICAyMAorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4g SW50ZWdlcihzZWxmLl9fcHJlYykKKysgICAgICAgIHJldHVybiBJbnRlZ2VyKHNlbGYuX3ByZWMp CisgCisgICAgIHByZWM9cHJlY2lzaW9uICMgYW4gYWxpYXMKKyAKK0BAIC0xMDMxLDcgKzEwMzEs NyBAQCBjZGVmIGNsYXNzIFJlYWxGaWVsZF9jbGFzcyhzYWdlLnJpbmdzLmFiYy5SZWFsRmllbGQp OgorICAgICAgICAgICAgIHNhZ2U6IFIudG9fcHJlYygzMDApCisgICAgICAgICAgICAgUmVhbCBG aWVsZCB3aXRoIDMwMCBiaXRzIG9mIHByZWNpc2lvbiBhbmQgcm91bmRpbmcgUk5EWgorICAgICAg ICAgIiIiCistICAgICAgICBpZiBwcmVjID09IHNlbGYuX19wcmVjOgorKyAgICAgICAgaWYgcHJl YyA9PSBzZWxmLl9wcmVjOgorICAgICAgICAgICAgIHJldHVybiBzZWxmCisgICAgICAgICBlbHNl OgorICAgICAgICAgICAgIHJldHVybiBSZWFsRmllbGQocHJlYywgc2VsZi5zY2lfbm90LCBzZWxm LnJuZCkKK0BAIC0xMDUyLDcgKzEwNTIsNyBAQCBjZGVmIGNsYXNzIFJlYWxGaWVsZF9jbGFzcyhz YWdlLnJpbmdzLmFiYy5SZWFsRmllbGQpOgorICAgICAgICAgICAgIDAuODg2MjI2OTI1NDUyNzU4 MDEzNjQ5MDgzNzQxNjcwNTcyNTkxMzk4Nzc0NzMKKyAgICAgICAgICIiIgorICAgICAgICAgY2Rl ZiBSZWFsTnVtYmVyIHggPSBzZWxmLl9uZXcoKQorLSAgICAgICAgaWYgc2VsZi5fX3ByZWMgPiBT SUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vbigpCisrICAgICAgICBpZiBzZWxmLl9wcmVjID4gU0lH X1BSRUNfVEhSRVNIT0xEOiBzaWdfb24oKQorICAgICAgICAgIyBUaGUgZG9jcyBmb3IgbXBmcl9m cmVlX2NhY2hlIHNheSAiRnJlZSB0aGUgY2FjaGUgdXNlZCBieQorICAgICAgICAgIyB0aGUgZnVu Y3Rpb25zIGNvbXB1dGluZyBjb25zdGFudHMgaWYgbmVlZGVkIChjdXJyZW50bHkKKyAgICAgICAg ICMgbXBmcl9jb25zdF9sb2cyLCBtcGZyX2NvbnN0X3BpIGFuZCBtcGZyX2NvbnN0X2V1bGVyKSIs IHNvCitAQCAtMTA2Miw3ICsxMDYyLDcgQEAgY2RlZiBjbGFzcyBSZWFsRmllbGRfY2xhc3Moc2Fn ZS5yaW5ncy5hYmMuUmVhbEZpZWxkKToKKyAgICAgICAgICMgZnVuY3Rpb25zLCBidXQgdGhpcyBm cmVlIGlzIG5lZWRlZCBmb3IgdGhlbSB0b28hCisgICAgICAgICBtcGZyX2ZyZWVfY2FjaGUoKQor ICAgICAgICAgbXBmcl9jb25zdF9waSh4LnZhbHVlLCBzZWxmLnJuZCkKKy0gICAgICAgIGlmIHNl bGYuX19wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb2ZmKCkKKysgICAgICAgIGlmIHNl bGYuX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJu IHgKKyAKKyAgICAgZGVmIGV1bGVyX2NvbnN0YW50KHNlbGYpOgorQEAgLTEwOTEsMTAgKzEwOTEs MTAgQEAgY2RlZiBjbGFzcyBSZWFsRmllbGRfY2xhc3Moc2FnZS5yaW5ncy5hYmMuUmVhbEZpZWxk KToKKyAgICAgICAgICAgICAwLjkxNTk2NTU5NDE3NzIxOTAxNTA1NDYwMzUxNDkzCisgICAgICAg ICAiIiIKKyAgICAgICAgIGNkZWYgUmVhbE51bWJlciB4ID0gc2VsZi5fbmV3KCkKKy0gICAgICAg IGlmIHNlbGYuX19wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb24oKQorKyAgICAgICAg aWYgc2VsZi5fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29uKCkKKyAgICAgICAgIG1w ZnJfZnJlZV9jYWNoZSgpCisgICAgICAgICBtcGZyX2NvbnN0X2NhdGFsYW4oeC52YWx1ZSwgc2Vs Zi5ybmQpCistICAgICAgICBpZiBzZWxmLl9fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2ln X29mZigpCisrICAgICAgICBpZiBzZWxmLl9wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdf b2ZmKCkKKyAgICAgICAgIHJldHVybiB4CisgCisgICAgIGRlZiBsb2cyKHNlbGYpOgorQEAgLTEx MTEsMTAgKzExMTEsMTAgQEAgY2RlZiBjbGFzcyBSZWFsRmllbGRfY2xhc3Moc2FnZS5yaW5ncy5h YmMuUmVhbEZpZWxkKToKKyAgICAgICAgICAgICAwLjY5MzE0NzE4MDU1OTk0NTMwOTQxNzIzMjEy MTQ2CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUmVhbE51bWJlciB4ID0gc2VsZi5fbmV3 KCkKKy0gICAgICAgIGlmIHNlbGYuX19wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb24o KQorKyAgICAgICAgaWYgc2VsZi5fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29uKCkK KyAgICAgICAgIG1wZnJfZnJlZV9jYWNoZSgpCisgICAgICAgICBtcGZyX2NvbnN0X2xvZzIoeC52 YWx1ZSwgc2VsZi5ybmQpCistICAgICAgICBpZiBzZWxmLl9fcHJlYyA+IFNJR19QUkVDX1RIUkVT SE9MRDogc2lnX29mZigpCisrICAgICAgICBpZiBzZWxmLl9wcmVjID4gU0lHX1BSRUNfVEhSRVNI T0xEOiBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiB4CisgCisgICAgIGRlZiByYW5kb21fZWxl bWVudChzZWxmLCBtaW49LTEsIG1heD0xLCBkaXN0cmlidXRpb249Tm9uZSk6CitAQCAtMTE4MSw5 ICsxMTgxLDkgQEAgY2RlZiBjbGFzcyBSZWFsRmllbGRfY2xhc3Moc2FnZS5yaW5ncy5hYmMuUmVh bEZpZWxkKToKKyAgICAgICAgIGlmIG4gPCAwOgorICAgICAgICAgICAgIHJhaXNlIEFyaXRobWV0 aWNFcnJvcigibiBtdXN0IGJlIG5vbm5lZ2F0aXZlIikKKyAgICAgICAgIHggPSBzZWxmLl9uZXco KQorLSAgICAgICAgaWYgc2VsZi5fX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQgYW5kIG4gPCBT SUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vbigpCisrICAgICAgICBpZiBzZWxmLl9wcmVjID4gU0lH X1BSRUNfVEhSRVNIT0xEIGFuZCBuIDwgU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb24oKQorICAg ICAgICAgbXBmcl9mYWNfdWkoeC52YWx1ZSwgbiwgc2VsZi5ybmQpCistICAgICAgICBpZiBzZWxm Ll9fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRCBhbmQgbiA8IFNJR19QUkVDX1RIUkVTSE9MRDog c2lnX29mZigpCisrICAgICAgICBpZiBzZWxmLl9wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEIGFu ZCBuIDwgU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiB4Cisg CisgICAgIGRlZiByb3VuZGluZ19tb2RlKHNlbGYpOgorQEAgLTEzNDYsNyArMTM0Niw3IEBAIGNk ZWYgY2xhc3MgUmVhbE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LlJpbmdFbGVtZW50KToK KyAgICAgICAgICAgICBOYU4KKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBSZWFsRmllbGRf Y2xhc3MgcCA9IDxSZWFsRmllbGRfY2xhc3M/PnBhcmVudAorLSAgICAgICAgbXBmcl9pbml0Mihz ZWxmLnZhbHVlLCBwLl9fcHJlYykKKysgICAgICAgIG1wZnJfaW5pdDIoc2VsZi52YWx1ZSwgcC5f cHJlYykKKyAgICAgICAgIHNlbGYuX3BhcmVudCA9IHAKKyAKKyAgICAgZGVmIF9faW5pdF9fKHNl bGYsIHBhcmVudCwgeD0wLCBpbnQgYmFzZT0xMCk6CitAQCAtMTQ0Niw3ICsxNDQ2LDcgQEAgY2Rl ZiBjbGFzcyBSZWFsTnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuUmluZ0VsZW1lbnQpOgor ICAgICAgICAgICAgIHNhZ2U6IG51bXB5LmFycmF5KFsxLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMF0pLmR0eXBlICAgICAgICAgICAjIG9wdGlvbmFsIC0gbnVtcHkKKyAgICAg ICAgICAgICBkdHlwZSgnTycpCisgICAgICAgICAiIiIKKy0gICAgICAgIGlmICg8UmVhbEZpZWxk X2NsYXNzPnNlbGYuX3BhcmVudCkuX19wcmVjIDw9IDUzOgorKyAgICAgICAgaWYgKDxSZWFsRmll bGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYyA8PSA1MzoKKyAgICAgICAgICAgICByZXR1cm4g bnVtcHlfZG91YmxlX2ludGVyZmFjZQorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1 cm4gbnVtcHlfb2JqZWN0X2ludGVyZmFjZQorQEAgLTIwNzUsNyArMjA3NSw3IEBAIGNkZWYgY2xh c3MgUmVhbE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LlJpbmdFbGVtZW50KToKKyAgICAg ICAgICAgICAjIFRoaXMgYXZvaWRzIHRoZSBjb25mdXNpb24gYSBsb3Qgb2YgcGVvcGxlIGhhdmUg d2l0aCB0aGUgbGFzdAorICAgICAgICAgICAgICMgMS0yIGJpbmFyeSBkaWdpdHMgYmVpbmcgd3Jv bmcgZHVlIHRvIHJvdW5kaW5nIGNvbWluZyBmcm9tCisgICAgICAgICAgICAgIyByZXByZXNlbnRp bmcgbnVtYmVycyBpbiBiaW5hcnkuCistICAgICAgICAgICAgZGlnaXRzID0gPHNpemVfdD4oKCg8 UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX19wcmVjIC0gMSkgKiBNX0xOMl9MTjEwKQor KyAgICAgICAgICAgIGRpZ2l0cyA9IDxzaXplX3Q+KCgoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9w YXJlbnQpLl9wcmVjIC0gMSkgKiBNX0xOMl9MTjEwKQorICAgICAgICAgICAgIGlmIGRpZ2l0cyA8 IDI6CisgICAgICAgICAgICAgICAgIGRpZ2l0cyA9IDIKKyAKK0BAIC0yMzAzLDcgKzIzMDMsNyBA QCBjZGVmIGNsYXNzIFJlYWxOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5SaW5nRWxlbWVu dCk6CisgICAgICAgICBpZiBzZ24gPT0gMDoKKyAgICAgICAgICAgICByZXR1cm4gegorIAorLSAg ICAgICAgY2RlZiBtcGZyX3ByZWNfdCBwcmVjID0gKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFy ZW50KS5fX3ByZWMKKysgICAgICAgIGNkZWYgbXBmcl9wcmVjX3QgcHJlYyA9ICg8UmVhbEZpZWxk X2NsYXNzPnNlbGYuX3BhcmVudCkuX3ByZWMKKyAKKyAgICAgICAgIGlmIG1wZnJfaW5mX3Aoc2Vs Zi52YWx1ZSk6CisgICAgICAgICAgICAgbXB6X3NldF91aSh6LnZhbHVlLCBFWFBfTUFYKzEtRVhQ X01JTikKK0BAIC0yNzU3LDcgKzI3NTcsNyBAQCBjZGVmIGNsYXNzIFJlYWxOdW1iZXIoc2FnZS5z dHJ1Y3R1cmUuZWxlbWVudC5SaW5nRWxlbWVudCk6CisgICAgICAgICAgICAgc2FnZTogUmVhbEZp ZWxkKDEwMSkoLTEpLnByZWNpc2lvbigpCisgICAgICAgICAgICAgMTAxCisgICAgICAgICAiIiIK Ky0gICAgICAgIHJldHVybiBJbnRlZ2VyKCg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCku X19wcmVjKQorKyAgICAgICAgcmV0dXJuIEludGVnZXIoKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5f cGFyZW50KS5fcHJlYykKKyAKKyAgICAgcHJlYyA9IHByZWNpc2lvbiAjIGFsaWFzCisgCitAQCAt MzM2NCw3ICszMzY0LDcgQEAgY2RlZiBjbGFzcyBSZWFsTnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVs ZW1lbnQuUmluZ0VsZW1lbnQpOgorICAgICAgICAgY2RlZiB1bnNpZ25lZCBsb25nIHdvcmRzaXpl ID0gc2l6ZW9mKGxvbmcpKjgKKyAKKyAgICAgICAgIGNkZWYgbXBmcl9wcmVjX3QgcHJlYworLSAg ICAgICAgcHJlYyA9ICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX19wcmVjCisrICAg ICAgICBwcmVjID0gKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYworIAorICAg ICAgICAgIyBXZSByb3VuZCB1cCB0aGUgcHJlY2lzaW9uIHRvIHRoZSBuZWFyZXN0IG11bHRpcGxl IG9mIHdvcmRzaXplLgorICAgICAgICAgY2RlZiBpbnQgcm91bmRlZF9wcmVjCitAQCAtMzY5OSw3 ICszNjk5LDcgQEAgY2RlZiBjbGFzcyBSZWFsTnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQu UmluZ0VsZW1lbnQpOgorICAgICAgICAgZnJvbSAucmVhbF9tcGZpIGltcG9ydCBSZWFsSW50ZXJ2 YWxGaWVsZAorIAorICAgICAgICAgY2RlZiBtcGZyX3JuZF90IHJuZCA9ICg8UmVhbEZpZWxkX2Ns YXNzPnNlbGYuX3BhcmVudCkucm5kCistICAgICAgICBjZGVmIG1wZnJfcHJlY190IHByZWMgPSAo PFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJlYworKyAgICAgICAgY2RlZiBtcGZy X3ByZWNfdCBwcmVjID0gKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYworIAor ICAgICAgICAgY2RlZiBSZWFsTnVtYmVyIGxvdywgaGlnaAorICAgICAgICAgY2RlZiBpbnQgb2Rk CitAQCAtNDI0OSw5ICs0MjQ5LDkgQEAgY2RlZiBjbGFzcyBSZWFsTnVtYmVyKHNhZ2Uuc3RydWN0 dXJlLmVsZW1lbnQuUmluZ0VsZW1lbnQpOgorICAgICAgICAgY2RlZiBSZWFsTnVtYmVyIHgKKyAg ICAgICAgIGlmIG1wZnJfY21wX3VpKHNlbGYudmFsdWUsIDApID49IDA6CisgICAgICAgICAgICAg eCA9IHNlbGYuX25ldygpCistICAgICAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5f cGFyZW50KS5fX3ByZWMgPiAxMCpTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vbigpCisrICAgICAg ICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYyA+IDEwKlNJR19Q UkVDX1RIUkVTSE9MRDogc2lnX29uKCkKKyAgICAgICAgICAgICBtcGZyX3NxcnQoeC52YWx1ZSwg c2VsZi52YWx1ZSwgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5ybmQpCistICAgICAg ICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fX3ByZWMgPiAxMCpTSUdf UFJFQ19USFJFU0hPTEQ6IHNpZ19vZmYoKQorKyAgICAgICAgICAgIGlmICg8UmVhbEZpZWxkX2Ns YXNzPnNlbGYuX3BhcmVudCkuX3ByZWMgPiAxMCpTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vZmYo KQorICAgICAgICAgICAgIGlmIGFsbDoKKyAgICAgICAgICAgICAgICAgaWYgeC5pc196ZXJvKCk6 CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gW3hdCitAQCAtNDI5NSwxMiArNDI5NSwxMiBA QCBjZGVmIGNsYXNzIFJlYWxOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5SaW5nRWxlbWVu dCk6CisgICAgICAgICAgICAgLTEuNDIxMDg1NDcxNTIwMjBlLTE0CisgICAgICAgICAiIiIKKyAg ICAgICAgIGNkZWYgUmVhbE51bWJlciB4ID0gc2VsZi5fbmV3KCkKKy0gICAgICAgIGlmICg8UmVh bEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX19wcmVjID4gMTAqU0lHX1BSRUNfVEhSRVNIT0xE OiBzaWdfb24oKQorKyAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5f cHJlYyA+IDEwKlNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29uKCkKKyAgICAgICAgIG1wZnJfY2Jy dCh4LnZhbHVlLCBzZWxmLnZhbHVlLCAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLnJu ZCkKKy0gICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX19wcmVjID4g MTAqU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb2ZmKCkKKysgICAgICAgIGlmICg8UmVhbEZpZWxk X2NsYXNzPnNlbGYuX3BhcmVudCkuX3ByZWMgPiAxMCpTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19v ZmYoKQorICAgICAgICAgcmV0dXJuIHgKKyAKKy0gICAgZGVmIF9fcG93KHNlbGYsIFJlYWxOdW1i ZXIgZXhwb25lbnQpOgorKyAgICBkZWYgX3BvdyhzZWxmLCBSZWFsTnVtYmVyIGV4cG9uZW50KToK KyAgICAgICAgICIiIgorICAgICAgICAgQ29tcHV0ZSBgYHNlbGZgYCByYWlzZWQgdG8gdGhlIHBv d2VyIG9mIGV4cG9uZW50LCByb3VuZGVkIGluIHRoZQorICAgICAgICAgZGlyZWN0aW9uIHNwZWNp ZmllZCBieSB0aGUgcGFyZW50IG9mIGBgc2VsZmBgLgorQEAgLTQzMDksNyArNDMwOSw3IEBAIGNk ZWYgY2xhc3MgUmVhbE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LlJpbmdFbGVtZW50KToK KyAKKyAgICAgICAgICAgICBzYWdlOiBSID0gUmVhbEZpZWxkKDMwKQorICAgICAgICAgICAgIHNh Z2U6IGEgPSBSKCcxLjIzNDU2JykKKy0gICAgICAgICAgICBzYWdlOiBhLl9fcG93KDIwLjApCisr ICAgICAgICAgICAgc2FnZTogYS5fcG93KDIwLjApCisgICAgICAgICAgICAgNjcuNjQ2Mjk3Cisg ICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUmVhbE51bWJlciB4CitAQCAtNDQzNSw5ICs0NDM1 LDkgQEAgY2RlZiBjbGFzcyBSZWFsTnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuUmluZ0Vs ZW1lbnQpOgorICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fY29tcGxleF9udW1iZXJfKCku bG9nKGJhc2UpCisgICAgICAgICBpZiBiYXNlIGlzIE5vbmUgb3IgYmFzZSA9PSAnZSc6CisgICAg ICAgICAgICAgeCA9IHNlbGYuX25ldygpCistICAgICAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xh c3M+c2VsZi5fcGFyZW50KS5fX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vbigpCisr ICAgICAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYyA+IFNJ R19QUkVDX1RIUkVTSE9MRDogc2lnX29uKCkKKyAgICAgICAgICAgICBtcGZyX2xvZyh4LnZhbHVl LCBzZWxmLnZhbHVlLCAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLnJuZCkKKy0gICAg ICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJlYyA+IFNJR19Q UkVDX1RIUkVTSE9MRDogc2lnX29mZigpCisrICAgICAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xh c3M+c2VsZi5fcGFyZW50KS5fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29mZigpCisg ICAgICAgICAgICAgcmV0dXJuIHgKKyAgICAgICAgIGVsaWYgYmFzZSA9PSAxMDoKKyAgICAgICAg ICAgICByZXR1cm4gc2VsZi5sb2cxMCgpCitAQCAtNDQ3Niw5ICs0NDc2LDkgQEAgY2RlZiBjbGFz cyBSZWFsTnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuUmluZ0VsZW1lbnQpOgorICAgICAg ICAgaWYgc2VsZiA8IDA6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2NvbXBsZXhfbnVtYmVy XygpLmxvZygyKQorICAgICAgICAgeCA9IHNlbGYuX25ldygpCistICAgICAgICBpZiAoPFJlYWxG aWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2ln X29uKCkKKysgICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX3ByZWMg PiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vbigpCisgICAgICAgICBtcGZyX2xvZzIoeC52YWx1 ZSwgc2VsZi52YWx1ZSwgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5ybmQpCistICAg ICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJlYyA+IFNJR19QUkVD X1RIUkVTSE9MRDogc2lnX29mZigpCisrICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxm Ll9wYXJlbnQpLl9wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb2ZmKCkKKyAgICAgICAg IHJldHVybiB4CisgCisgICAgIGRlZiBsb2cxMChzZWxmKToKK0BAIC00NTEzLDkgKzQ1MTMsOSBA QCBjZGVmIGNsYXNzIFJlYWxOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5SaW5nRWxlbWVu dCk6CisgICAgICAgICBpZiBzZWxmIDwgMDoKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fY29t cGxleF9udW1iZXJfKCkubG9nKDEwKQorICAgICAgICAgeCA9IHNlbGYuX25ldygpCistICAgICAg ICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJlYyA+IFNJR19QUkVDX1RI UkVTSE9MRDogc2lnX29uKCkKKysgICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3Bh cmVudCkuX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vbigpCisgICAgICAgICBtcGZy X2xvZzEwKHgudmFsdWUsIHNlbGYudmFsdWUsICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVu dCkucm5kKQorLSAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fX3By ZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vZmYoKQorKyAgICAgICAgaWYgKDxSZWFsRmll bGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29m ZigpCisgICAgICAgICByZXR1cm4geAorIAorICAgICBkZWYgbG9nMXAoc2VsZik6CitAQCAtNDU2 Miw5ICs0NTYyLDkgQEAgY2RlZiBjbGFzcyBSZWFsTnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1l bnQuUmluZ0VsZW1lbnQpOgorICAgICAgICAgaWYgc2VsZiA8IC0xOgorICAgICAgICAgICAgIHJl dHVybiAoc2VsZisxLjApLl9jb21wbGV4X251bWJlcl8oKS5sb2coKQorICAgICAgICAgeCA9IHNl bGYuX25ldygpCistICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9f cHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29uKCkKKysgICAgICAgIGlmICg8UmVhbEZp ZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19v bigpCisgICAgICAgICBtcGZyX2xvZzFwKHgudmFsdWUsIHNlbGYudmFsdWUsICg8UmVhbEZpZWxk X2NsYXNzPnNlbGYuX3BhcmVudCkucm5kKQorLSAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+ c2VsZi5fcGFyZW50KS5fX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vZmYoKQorKyAg ICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYyA+IFNJR19QUkVD X1RIUkVTSE9MRDogc2lnX29mZigpCisgICAgICAgICByZXR1cm4geAorIAorICAgICBkZWYgZXhw KHNlbGYpOgorQEAgLTQ2MjAsOSArNDYyMCw5IEBAIGNkZWYgY2xhc3MgUmVhbE51bWJlcihzYWdl LnN0cnVjdHVyZS5lbGVtZW50LlJpbmdFbGVtZW50KToKKyAgICAgICAgICAgICAxLjg5MTE3MjQ4 MjUzMDIxZS0xMAorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIFJlYWxOdW1iZXIgeCA9IHNl bGYuX25ldygpCistICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9f cHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29uKCkKKysgICAgICAgIGlmICg8UmVhbEZp ZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19v bigpCisgICAgICAgICBtcGZyX2V4cDIoeC52YWx1ZSwgc2VsZi52YWx1ZSwgKDxSZWFsRmllbGRf Y2xhc3M+c2VsZi5fcGFyZW50KS5ybmQpCistICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5z ZWxmLl9wYXJlbnQpLl9fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29mZigpCisrICAg ICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9wcmVjID4gU0lHX1BSRUNf VEhSRVNIT0xEOiBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiB4CisgCisgICAgIGRlZiBleHAx MChzZWxmKToKK0BAIC00NjQ4LDkgKzQ2NDgsOSBAQCBjZGVmIGNsYXNzIFJlYWxOdW1iZXIoc2Fn ZS5zdHJ1Y3R1cmUuZWxlbWVudC5SaW5nRWxlbWVudCk6CisgICAgICAgICAgICAgNS4wMTE4NzIz MzYyNzI3NmUtMzMKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBSZWFsTnVtYmVyIHggPSBz ZWxmLl9uZXcoKQorLSAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5f X3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vbigpCisrICAgICAgICBpZiAoPFJlYWxG aWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdf b24oKQorICAgICAgICAgbXBmcl9leHAxMCh4LnZhbHVlLCBzZWxmLnZhbHVlLCAoPFJlYWxGaWVs ZF9jbGFzcz5zZWxmLl9wYXJlbnQpLnJuZCkKKy0gICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNz PnNlbGYuX3BhcmVudCkuX19wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb2ZmKCkKKysg ICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX3ByZWMgPiBTSUdfUFJF Q19USFJFU0hPTEQ6IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHgKKyAKKyAgICAgZGVmIGV4 cG0xKHNlbGYpOgorQEAgLTQ2NzIsOSArNDY3Miw5IEBAIGNkZWYgY2xhc3MgUmVhbE51bWJlcihz YWdlLnN0cnVjdHVyZS5lbGVtZW50LlJpbmdFbGVtZW50KToKKyAgICAgICAgICAgICAxLjAwMDAw MDAwMDAwMDAwZS0xNgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIFJlYWxOdW1iZXIgeCA9 IHNlbGYuX25ldygpCistICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQp Ll9fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29uKCkKKysgICAgICAgIGlmICg8UmVh bEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNp Z19vbigpCisgICAgICAgICBtcGZyX2V4cG0xKHgudmFsdWUsIHNlbGYudmFsdWUsICg8UmVhbEZp ZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkucm5kKQorLSAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xh c3M+c2VsZi5fcGFyZW50KS5fX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vZmYoKQor KyAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYyA+IFNJR19Q UkVDX1RIUkVTSE9MRDogc2lnX29mZigpCisgICAgICAgICByZXR1cm4geAorIAorICAgICBkZWYg ZWludChzZWxmKToKK0BAIC00Njk0LDkgKzQ2OTQsOSBAQCBjZGVmIGNsYXNzIFJlYWxOdW1iZXIo c2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5SaW5nRWxlbWVudCk6CisgICAgICAgICAgICAgLTAuMjE5 MzgzOTM0Mzk1NTIwCisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUmVhbE51bWJlciB4ID0g c2VsZi5fbmV3KCkKKy0gICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCku X19wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb24oKQorKyAgICAgICAgaWYgKDxSZWFs RmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2ln X29uKCkKKyAgICAgICAgIG1wZnJfZWludCh4LnZhbHVlLCBzZWxmLnZhbHVlLCAoPFJlYWxGaWVs ZF9jbGFzcz5zZWxmLl9wYXJlbnQpLnJuZCkKKy0gICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNz PnNlbGYuX3BhcmVudCkuX19wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb24oKQorKyAg ICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYyA+IFNJR19QUkVD X1RIUkVTSE9MRDogc2lnX29uKCkKKyAgICAgICAgIHJldHVybiB4CisgCisgICAgIGRlZiBjb3Mo c2VsZik6CitAQCAtNTEyNSw5ICs1MTI1LDkgQEAgY2RlZiBjbGFzcyBSZWFsTnVtYmVyKHNhZ2Uu c3RydWN0dXJlLmVsZW1lbnQuUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgIF9vdGhlciA9IHNl bGYuX3BhcmVudChvdGhlcikKKyAKKyAgICAgICAgIHggPSBzZWxmLl9uZXcoKQorLSAgICAgICAg aWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fX3ByZWMgPiAxMDAwMDogc2lnX29u KCkKKysgICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX3ByZWMgPiAx MDAwMDogc2lnX29uKCkKKyAgICAgICAgIG1wZnJfYWdtKHgudmFsdWUsIHNlbGYudmFsdWUsIF9v dGhlci52YWx1ZSwgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5ybmQpCistICAgICAg ICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJlYyA+IDEwMDAwOiBzaWdf b2ZmKCkKKysgICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX3ByZWMg PiAxMDAwMDogc2lnX29mZigpCisgICAgICAgICByZXR1cm4geAorIAorICAgICBkZWYgZXJmKHNl bGYpOgorQEAgLTUyODAsOSArNTI4MCw5IEBAIGNkZWYgY2xhc3MgUmVhbE51bWJlcihzYWdlLnN0 cnVjdHVyZS5lbGVtZW50LlJpbmdFbGVtZW50KToKKyAgICAgICAgICAgICAwLjg4NjIyNjkyNTQ1 Mjc1OAorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIFJlYWxOdW1iZXIgeCA9IHNlbGYuX25l dygpCistICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJlYyA+ IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29uKCkKKysgICAgICAgIGlmICg8UmVhbEZpZWxkX2Ns YXNzPnNlbGYuX3BhcmVudCkuX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vbigpCisg ICAgICAgICBtcGZyX2dhbW1hKHgudmFsdWUsIHNlbGYudmFsdWUsICg8UmVhbEZpZWxkX2NsYXNz PnNlbGYuX3BhcmVudCkucm5kKQorLSAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5f cGFyZW50KS5fX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vZmYoKQorKyAgICAgICAg aWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYyA+IFNJR19QUkVDX1RIUkVT SE9MRDogc2lnX29mZigpCisgICAgICAgICByZXR1cm4geAorIAorICAgICBkZWYgbG9nX2dhbW1h KHNlbGYpOgorQEAgLTUzMDYsMTAgKzUzMDYsMTAgQEAgY2RlZiBjbGFzcyBSZWFsTnVtYmVyKHNh Z2Uuc3RydWN0dXJlLmVsZW1lbnQuUmluZ0VsZW1lbnQpOgorICAgICAgICAgY2RlZiBSZWFsTnVt YmVyIHggPSBzZWxmLl9uZXcoKQorICAgICAgICAgcGFyZW50ID0gKDxSZWFsRmllbGRfY2xhc3M+ c2VsZi5fcGFyZW50KQorICAgICAgICAgaWYgbm90IG1wZnJfc2duKHNlbGYudmFsdWUpIDwgMDoK Ky0gICAgICAgICAgICBpZiBwYXJlbnQuX19wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOgorKyAg ICAgICAgICAgIGlmIHBhcmVudC5fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDoKKyAgICAgICAg ICAgICAgICAgc2lnX29uKCkKKyAgICAgICAgICAgICBtcGZyX2xuZ2FtbWEoeC52YWx1ZSwgc2Vs Zi52YWx1ZSwgcGFyZW50LnJuZCkKKy0gICAgICAgICAgICBpZiBwYXJlbnQuX19wcmVjID4gU0lH X1BSRUNfVEhSRVNIT0xEOgorKyAgICAgICAgICAgIGlmIHBhcmVudC5fcHJlYyA+IFNJR19QUkVD X1RIUkVTSE9MRDoKKyAgICAgICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAgICAgICAgcmV0 dXJuIHgKKyAgICAgICAgIGZyb20gc2FnZS5saWJzLm1wbWF0aC51dGlscyBpbXBvcnQgY2FsbAor QEAgLTU1MzQsNyArNTUzNCw3IEBAIGNkZWYgY2xhc3MgUmVhbE51bWJlcihzYWdlLnN0cnVjdHVy ZS5lbGVtZW50LlJpbmdFbGVtZW50KToKKyAKKyAgICAgICAgIGNkZWYgUmVhbEZpZWxkX2NsYXNz IGZsZCA9IDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50CisgCistICAgICAgICBpZiBhbGdv cml0aG0gPT0gMCBhbmQgbiA8PSAxMDAwMCAvIGZsZC5fX3ByZWM6CisrICAgICAgICBpZiBhbGdv cml0aG0gPT0gMCBhbmQgbiA8PSAxMDAwMCAvIGZsZC5fcHJlYzoKKyAgICAgICAgICAgICAjIFRo aXMgaXMgYSByb3VnaCBlc3RpbWF0ZSBmb3Igd2hlbiBpdCBpcyBwcm9iYWJseQorICAgICAgICAg ICAgICMgZmFzdGVyIHRvIGNhbGwgbXBmciBkaXJlY3RseS4gIChUaGlzIGlzIGEgcHJldHR5Cisg ICAgICAgICAgICAgIyBnb29kIGVzdGltYXRlIG9uIG9uZSBwYXJ0aWN1bGFyIG1hY2hpbmUsIGEK K0BAIC01NjM5LDcgKzU2MzksNyBAQCBjZGVmIGNsYXNzIFJlYWxOdW1iZXIoc2FnZS5zdHJ1Y3R1 cmUuZWxlbWVudC5SaW5nRWxlbWVudCk6CisgCisgICAgICAgICBmcm9tIC5yZWFsX21wZmkgaW1w b3J0IFJlYWxJbnRlcnZhbEZpZWxkCisgCistICAgICAgICBjZGVmIG1wZnJfcHJlY190IHByZWMg PSBmbGQuX19wcmVjICsgMTAKKysgICAgICAgIGNkZWYgbXBmcl9wcmVjX3QgcHJlYyA9IGZsZC5f cHJlYyArIDEwCisgCisgICAgICAgICBjZGVmIFJlYWxOdW1iZXIgbG93ZXIKKyAgICAgICAgIGNk ZWYgUmVhbE51bWJlciB1cHBlcgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3JpbmcucHhk IGIvc3JjL3NhZ2UvcmluZ3MvcmluZy5weGQKK2luZGV4IDkzODRmMzlmMjU4Li4xMzIyNjk3Njg4 ZiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3JpbmcucHhkCisrKysgYi9zcmMvc2FnZS9y aW5ncy9yaW5nLnB4ZAorQEAgLTcsNyArNyw3IEBAIGNkZWYgY2xhc3MgUmluZyhQYXJlbnRXaXRo R2Vucyk6CisgICAgIGNkZWYgcHVibGljIG9iamVjdCBfb25lX2VsZW1lbnQKKyAgICAgY2RlZiBw dWJsaWMgb2JqZWN0IF96ZXJvX2lkZWFsCisgICAgIGNkZWYgcHVibGljIG9iamVjdCBfdW5pdF9p ZGVhbAorLSAgICBjZGVmIHB1YmxpYyBvYmplY3QgX19pZGVhbF9tb25vaWQKKysgICAgY2RlZiBw dWJsaWMgb2JqZWN0IF9pZGVhbF9tb25vaWQKKyAKKyAKKyBjZGVmIGNsYXNzIENvbW11dGF0aXZl UmluZyhSaW5nKToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9yaW5nLnB5eCBiL3NyYy9z YWdlL3JpbmdzL3JpbmcucHl4CitpbmRleCA0Y2JhMmM5YmE3Zi4uOGFjZjQzODMyNzAgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9yaW5ncy9yaW5nLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3Mvcmlu Zy5weXgKK0BAIC0zMjUsMTIgKzMyNSwxMiBAQCBjZGVmIGNsYXNzIFJpbmcoUGFyZW50V2l0aEdl bnMpOgorICAgICAgICAgICAgICBieSB0aGUgaWRlYWwgKHgqeSArIHkqeiwgeCp4ICsgeCp5IC0g eSp4IC0geSp5KQorIAorICAgICAgICAgIiIiCistICAgICAgICBpZiBzZWxmLl9faWRlYWxfbW9u b2lkIGlzIG5vdCBOb25lOgorLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9faWRlYWxfbW9ub2lk CisrICAgICAgICBpZiBzZWxmLl9pZGVhbF9tb25vaWQgaXMgbm90IE5vbmU6CisrICAgICAgICAg ICAgcmV0dXJuIHNlbGYuX2lkZWFsX21vbm9pZAorICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICBmcm9tIHNhZ2UucmluZ3Mubm9uY29tbXV0YXRpdmVfaWRlYWxzIGltcG9ydCBJZGVhbE1vbm9p ZF9uYworICAgICAgICAgICAgIE0gPSBJZGVhbE1vbm9pZF9uYyhzZWxmKQorLSAgICAgICAgICAg IHNlbGYuX19pZGVhbF9tb25vaWQgPSBNCisrICAgICAgICAgICAgc2VsZi5faWRlYWxfbW9ub2lk ID0gTQorICAgICAgICAgICAgIHJldHVybiBNCisgCisgICAgIGRlZiBpZGVhbChzZWxmLCAqYXJn cywgKiprd2RzKToKK0BAIC0xMTA2LDEyICsxMTA2LDEyIEBAIGNkZWYgY2xhc3MgUmluZyhQYXJl bnRXaXRoR2Vucyk6CisgICAgICAgICAgICAgc2FnZTogUi48eD49UVFbXTsgUi5pZGVhbF9tb25v aWQoKQorICAgICAgICAgICAgIE1vbm9pZCBvZiBpZGVhbHMgb2YgVW5pdmFyaWF0ZSBQb2x5bm9t aWFsIFJpbmcgaW4geCBvdmVyIFJhdGlvbmFsIEZpZWxkCisgICAgICAgICAiIiIKKy0gICAgICAg IGlmIHNlbGYuX19pZGVhbF9tb25vaWQgaXMgbm90IE5vbmU6CistICAgICAgICAgICAgcmV0dXJu IHNlbGYuX19pZGVhbF9tb25vaWQKKysgICAgICAgIGlmIHNlbGYuX2lkZWFsX21vbm9pZCBpcyBu b3QgTm9uZToKKysgICAgICAgICAgICByZXR1cm4gc2VsZi5faWRlYWxfbW9ub2lkCisgICAgICAg ICBlbHNlOgorICAgICAgICAgICAgIGZyb20gc2FnZS5yaW5ncy5pZGVhbF9tb25vaWQgaW1wb3J0 IElkZWFsTW9ub2lkCisgICAgICAgICAgICAgTSA9IElkZWFsTW9ub2lkKHNlbGYpCistICAgICAg ICAgICAgc2VsZi5fX2lkZWFsX21vbm9pZCA9IE0KKysgICAgICAgICAgICBzZWxmLl9pZGVhbF9t b25vaWQgPSBNCisgICAgICAgICAgICAgcmV0dXJuIE0KKyAKKyAgICAgQGNhY2hlZF9tZXRob2QK K0BAIC0xMzQ1LDEyICsxMzQ1LDEyIEBAIGNkZWYgY2xhc3MgQ29tbXV0YXRpdmVSaW5nKFJpbmcp OgorICAgICAgICAgICAgIHNhZ2U6IFIuPHg+PVFRW107IFIuaWRlYWxfbW9ub2lkKCkKKyAgICAg ICAgICAgICBNb25vaWQgb2YgaWRlYWxzIG9mIFVuaXZhcmlhdGUgUG9seW5vbWlhbCBSaW5nIGlu IHggb3ZlciBSYXRpb25hbCBGaWVsZAorICAgICAgICAgIiIiCistICAgICAgICBpZiBzZWxmLl9f aWRlYWxfbW9ub2lkIGlzIG5vdCBOb25lOgorLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9faWRl YWxfbW9ub2lkCisrICAgICAgICBpZiBzZWxmLl9pZGVhbF9tb25vaWQgaXMgbm90IE5vbmU6Cisr ICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2lkZWFsX21vbm9pZAorICAgICAgICAgZWxzZToKKyAg ICAgICAgICAgICBmcm9tIHNhZ2UucmluZ3MuaWRlYWxfbW9ub2lkIGltcG9ydCBJZGVhbE1vbm9p ZAorICAgICAgICAgICAgIE0gPSBJZGVhbE1vbm9pZChzZWxmKQorLSAgICAgICAgICAgIHNlbGYu X19pZGVhbF9tb25vaWQgPSBNCisrICAgICAgICAgICAgc2VsZi5faWRlYWxfbW9ub2lkID0gTQor ICAgICAgICAgICAgIHJldHVybiBNCisgCisgICAgIGRlZiBleHRlbnNpb24oc2VsZiwgcG9seSwg bmFtZT1Ob25lLCBuYW1lcz1Ob25lLCAqKmt3ZHMpOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3Nj aGVtZXMvZWxsaXB0aWNfY3VydmVzL21vZF9zeW1fbnVtLnB5eCBiL3NyYy9zYWdlL3NjaGVtZXMv ZWxsaXB0aWNfY3VydmVzL21vZF9zeW1fbnVtLnB5eAoraW5kZXggNjU3NDJmMjhkNzIuLjI5NmE2 YjVkMDc1IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvc2NoZW1lcy9lbGxpcHRpY19jdXJ2ZXMvbW9k X3N5bV9udW0ucHl4CisrKysgYi9zcmMvc2FnZS9zY2hlbWVzL2VsbGlwdGljX2N1cnZlcy9tb2Rf c3ltX251bS5weXgKK0BAIC03MzAsNyArNzMwLDcgQEAgY2RlZiBjbGFzcyBNb2R1bGFyU3ltYm9s TnVtZXJpY2FsOgorICAgICAgICAgZG91YmxlIF9lcHNfcGx1cywgX2Vwc19taW51cywgX2Vwc191 bml0YXJ5X3BsdXMsIF9lcHNfdW5pdGFyeV9taW51cworICAgICAgICAgcHVibGljIFJlYWxOdW1i ZXIgX29tMSwgX29tMgorICAgICAgICAgb2JqZWN0IF9FLCBfZXBzUXMsIF9NdCwgX0VwYXJpCist ICAgICAgICBwdWJsaWMgZGljdCBfX2NhY2hlZF9tZXRob2RzCisrICAgICAgICBwdWJsaWMgZGlj dCBfY2FjaGVkX21ldGhvZHMKKyAgICAgICAgIFJhdGlvbmFsIF90d2lzdF9xCisgICAgICAgICBJ bnRlZ2VyIF9ECisgICAgICAgICBpbnQgX2dsb2JhbF9zaWduCitAQCAtNzg1LDcgKzc4NSw3IEBA IGNkZWYgY2xhc3MgTW9kdWxhclN5bWJvbE51bWVyaWNhbDoKKyAgICAgICAgIHNlbGYuX3NldF9l cHNRcygpCisgICAgICAgICBzZWxmLl9pbml0aWFsaXNlX2FuX2NvZWZmaWNpZW50cygpCisgICAg ICAgICBzZWxmLl9zZXRfZGVuX2JvdW5kcygpCistICAgICAgICBzZWxmLl9fY2FjaGVkX21ldGhv ZHMgPSB7fQorKyAgICAgICAgc2VsZi5fY2FjaGVkX21ldGhvZHMgPSB7fQorIAorICAgICAgICAg IyBzZWxmLm5jX3N1bXMgPSBJbnRlZ2VyKDApCisgICAgICAgICAjIHNlbGYubmNfZGlyZWN0ID0g SW50ZWdlcigwKQorQEAgLTEzNTcsNyArMTM1Nyw3IEBAIGNkZWYgY2xhc3MgTW9kdWxhclN5bWJv bE51bWVyaWNhbDoKKyAgICAgICAgICAgICBzYWdlOiBNKDApCisgICAgICAgICAgICAgMS81Cisg ICAgICAgICAiIiIKKy0gICAgICAgIGNhZGkgPSBzZWxmLl9fY2FjaGVkX21ldGhvZHMKKysgICAg ICAgIGNhZGkgPSBzZWxmLl9jYWNoZWRfbWV0aG9kcworICAgICAgICAgZm9yIG1lIGluIGNhZGk6 CisgICAgICAgICAgICAgY2FkaVttZV0uY2xlYXJfY2FjaGUoKQorIAorQEAgLTE4MzMsNyArMTgz Myw3IEBAIGNkZWYgY2xhc3MgTW9kdWxhclN5bWJvbE51bWVyaWNhbDoKKyAKKyAgICAgICAgICMg aWYgY2FsbGVkIHdpdGggYSBwcmV2aW91cyAobSx6LGVwcykgYnV0IGEgbGFyZ2VyIGVwcywKKyAg ICAgICAgICMgcmV0dXJuIHRoZSBjYWNoZWQgdmFsdWUKKy0gICAgICAgIGNhYyA9IHNlbGYuX19j YWNoZWRfbWV0aG9kc1snX2thcHBhJ10uY2FjaGUKKysgICAgICAgIGNhYyA9IHNlbGYuX2NhY2hl ZF9tZXRob2RzWydfa2FwcGEnXS5jYWNoZQorICAgICAgICAgZm9yIGtlIGluIGNhYzoKKyAgICAg ICAgICAgICBtbSwgenosIGVlcHMgPSBrZVswXQorICAgICAgICAgICAgIGlmIG1tID09IG0gYW5k IHp6ID09IHo6CitAQCAtMjc0NiwxNiArMjc0NiwxNiBAQCBjZGVmIGNsYXNzIE1vZHVsYXJTeW1i b2xOdW1lcmljYWw6CisgICAgICAgICAgICAgc2FnZTogbXMgPSBNb2R1bGFyU3ltYm9sTnVtZXJp Y2FsKEUpCisgICAgICAgICAgICAgc2FnZTogbXMubWFuaW5fc3ltYm9sKDQsMTcpCisgICAgICAg ICAgICAgMQorLSAgICAgICAgICAgIHNhZ2U6IG1zLl9fY2FjaGVkX21ldGhvZHNbIl9tYW5pbl9z eW1ib2xfd2l0aF9jYWNoZSJdLmNhY2hlICMgcmFuZG9tCisrICAgICAgICAgICAgc2FnZTogbXMu X2NhY2hlZF9tZXRob2RzWyJfbWFuaW5fc3ltYm9sX3dpdGhfY2FjaGUiXS5jYWNoZSAjIHJhbmRv bQorICAgICAgICAgICAgIHsoKDEsIDUsIDEpLCAoKSk6IDEsCisgICAgICAgICAgICAgKCgxLCAx NSwgMSksICgpKTogLTEsCisgICAgICAgICAgICAgKCgxLCAyMiwgMSksICgpKTogLTEsCisgICAg ICAgICAgICAgKCgxLCAzMiwgMSksICgpKTogMX0KKy0gICAgICAgICAgICBzYWdlOiBtcy5fX2Nh Y2hlZF9tZXRob2RzWyJfbWFuaW5fc3ltYm9sX3dpdGhfY2FjaGUiXS5jYWNoZVsoMSwxNSwxKSwo KV0KKysgICAgICAgICAgICBzYWdlOiBtcy5fY2FjaGVkX21ldGhvZHNbIl9tYW5pbl9zeW1ib2xf d2l0aF9jYWNoZSJdLmNhY2hlWygxLDE1LDEpLCgpXQorICAgICAgICAgICAgIC0xCisgICAgICAg ICAgICAgc2FnZTogbXMubWFuaW5fc3ltYm9sKDQrMTcsLTQpCisgICAgICAgICAgICAgMAorLSAg ICAgICAgICAgIHNhZ2U6IG1zLl9fY2FjaGVkX21ldGhvZHNbIl9tYW5pbl9zeW1ib2xfd2l0aF9j YWNoZSJdLmNhY2hlICMgcmFuZG9tCisrICAgICAgICAgICAgc2FnZTogbXMuX2NhY2hlZF9tZXRo b2RzWyJfbWFuaW5fc3ltYm9sX3dpdGhfY2FjaGUiXS5jYWNoZSAjIHJhbmRvbQorICAgICAgICAg ICAgIHsoKDEsIDQsIDEpLCAoKSk6IDAsCisgICAgICAgICAgICAgKCgxLCA1LCAxKSwgKCkpOiAx LAorICAgICAgICAgICAgICgoMSwgOCwgMSksICgpKTogMSwKK0BAIC0yNzY4LDcgKzI3NjgsNyBA QCBjZGVmIGNsYXNzIE1vZHVsYXJTeW1ib2xOdW1lcmljYWw6CisgICAgICAgICAgICAgKCgxLCAy OSwgMSksICgpKTogMSwKKyAgICAgICAgICAgICAoKDEsIDMyLCAxKSwgKCkpOiAxLAorICAgICAg ICAgICAgICgoMSwgMzMsIDEpLCAoKSk6IDB9CistICAgICAgICAgICAgc2FnZTogbXMuX19jYWNo ZWRfbWV0aG9kc1siX21hbmluX3N5bWJvbF93aXRoX2NhY2hlIl0uY2FjaGVbICgxLDIzLDEpLCAo KSBdCisrICAgICAgICAgICAgc2FnZTogbXMuX2NhY2hlZF9tZXRob2RzWyJfbWFuaW5fc3ltYm9s X3dpdGhfY2FjaGUiXS5jYWNoZVsgKDEsMjMsMSksICgpIF0KKyAgICAgICAgICAgICAtMQorICAg ICAgICAgIiIiCisgICAgICAgICBjZGVmOgorQEAgLTI5MDMsNyArMjkwMyw3IEBAIGNkZWYgY2xh c3MgTW9kdWxhclN5bWJvbE51bWVyaWNhbDoKKyAgICAgICAgICMgICAgICAgICIoJXMgOiVzKSIl KHVuLCB2biksIGxldmVsPTMpCisgCisgICAgICAgICAjIGlzIGl0IGFscmVhZHkgaW4gdGhlIGNh Y2hlID8KKy0gICAgICAgIGMgPSBzZWxmLl9fY2FjaGVkX21ldGhvZHMKKysgICAgICAgIGMgPSBz ZWxmLl9jYWNoZWRfbWV0aG9kcworICAgICAgICAgaWYgIl9tYW5pbl9zeW1ib2xfd2l0aF9jYWNo ZSIgaW4gYzoKKyAgICAgICAgICAgICBjID0gY1siX21hbmluX3N5bWJvbF93aXRoX2NhY2hlIl0K KyAgICAgICAgICAgICBpZiBjLmlzX2luX2NhY2hlKHVuLHZuLHNpZ24pOgorQEAgLTI5MTksNyAr MjkxOSw3IEBAIGNkZWYgY2xhc3MgTW9kdWxhclN5bWJvbE51bWVyaWNhbDoKKyAgICAgICAgICMg d2UgZ2V0IGZvciBmcmVlIGFkZGl0aW9uYWwgdmFsdWVzIG9mIE1hbmluCisgICAgICAgICAjIHN5 bWJvbHMgdGhhdCB3ZSBjYWNoZSwgdG9vLgorICAgICAgICAgIyBUaGlzIHNldHMgNiB2YWx1ZXMg aW4gYXZlcmFnZQorLSAgICAgICAgYyA9IHNlbGYuX19jYWNoZWRfbWV0aG9kc1siX21hbmluX3N5 bWJvbF93aXRoX2NhY2hlIl0KKysgICAgICAgIGMgPSBzZWxmLl9jYWNoZWRfbWV0aG9kc1siX21h bmluX3N5bWJvbF93aXRoX2NhY2hlIl0KKyAKKyAgICAgICAgICMgKC12OnUpID0gLSAodTp2KQor ICAgICAgICAgb2kgPSBwcm9qX25vcm1hbGlzZShzZWxmLl9OX0UsIC12LCB1LCAmdW4sICZ2bikK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9zZXRzL3NldF9mcm9tX2l0ZXJhdG9yLnB5IGIvc3JjL3Nh Z2Uvc2V0cy9zZXRfZnJvbV9pdGVyYXRvci5weQoraW5kZXggYzQ3YmI3NjkyMGIuLjExZjEyZTZk NWVhIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvc2V0cy9zZXRfZnJvbV9pdGVyYXRvci5weQorKysr IGIvc3JjL3NhZ2Uvc2V0cy9zZXRfZnJvbV9pdGVyYXRvci5weQorQEAgLTIxNCwxMiArMjE0LDEy IEBAIGRlZiBfX3JlZHVjZV9fKHNlbGYpOgorICAgICAgICAgICAgIFRydWUKKyAgICAgICAgICIi IgorICAgICAgICAgcmV0dXJuIChFbnVtZXJhdGVkU2V0RnJvbUl0ZXJhdG9yLAorLSAgICAgICAg ICAgICAgICAoc2VsZi5fZnVuYywgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBmdW5jCist ICAgICAgICAgICAgICAgICBnZXRhdHRyKHNlbGYsICdfYXJncycsIE5vbmUpLCAgICAgICAgICAj IGFyZ3MKKy0gICAgICAgICAgICAgICAgIGdldGF0dHIoc2VsZiwgJ19rd2RzJywgTm9uZSksICAg ICAgICAgICMga3dkcworLSAgICAgICAgICAgICAgICAgZ2V0YXR0cihzZWxmLCAnX19jdXN0b21f bmFtZScsIE5vbmUpLCAgIyBuYW1lCistICAgICAgICAgICAgICAgICBzZWxmLmNhdGVnb3J5KCks ICAgICAgICAgICAgICAgICAgICAgICAjIGNhdGVnb3J5CistICAgICAgICAgICAgICAgICBoYXNh dHRyKHNlbGYsICdfY2FjaGUnKSkgICAgICAgICAgICAgICAjIGNhY2hlCisrICAgICAgICAgICAg ICAgIChzZWxmLl9mdW5jLCAgICAgICAgICAgICAgICAgICAgIyBmdW5jCisrICAgICAgICAgICAg ICAgICBnZXRhdHRyKHNlbGYsICdfYXJncycsIE5vbmUpLCAgIyBhcmdzCisrICAgICAgICAgICAg ICAgICBnZXRhdHRyKHNlbGYsICdfa3dkcycsIE5vbmUpLCAgIyBrd2RzCisrICAgICAgICAgICAg ICAgICBzZWxmLmdldF9jdXN0b21fbmFtZSgpLCAgICAgICAgIyBuYW1lCisrICAgICAgICAgICAg ICAgICBzZWxmLmNhdGVnb3J5KCksICAgICAgICAgICAgICAgIyBjYXRlZ29yeQorKyAgICAgICAg ICAgICAgICAgaGFzYXR0cihzZWxmLCAnX2NhY2hlJykpICAgICAgICMgY2FjaGUKKyAgICAgICAg ICAgICAgICAgKQorIAorICAgICBkZWYgX3JlcHJfKHNlbGYpOgorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL3N0cnVjdHVyZS9jYXRlZ29yeV9vYmplY3QucHhkIGIvc3JjL3NhZ2Uvc3RydWN0dXJlL2Nh dGVnb3J5X29iamVjdC5weGQKK2luZGV4IGZmMzA4OGFlOWI2Li44M2QzZDQ5NjdkNCAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL3N0cnVjdHVyZS9jYXRlZ29yeV9vYmplY3QucHhkCisrKysgYi9zcmMv c2FnZS9zdHJ1Y3R1cmUvY2F0ZWdvcnlfb2JqZWN0LnB4ZAorQEAgLTEzLDcgKzEzLDcgQEAgZnJv bSBzYWdlLnN0cnVjdHVyZS5zYWdlX29iamVjdCBjaW1wb3J0IFNhZ2VPYmplY3QKKyBjcGRlZiBj aGVja19kZWZhdWx0X2NhdGVnb3J5KGRlZmF1bHRfY2F0ZWdvcnksIGNhdGVnb3J5KQorIAorIGNk ZWYgY2xhc3MgQ2F0ZWdvcnlPYmplY3QoU2FnZU9iamVjdCk6CistICAgIGNkZWYgcHVibGljIGRp Y3QgX19jYWNoZWRfbWV0aG9kcworKyAgICBjZGVmIHB1YmxpYyBkaWN0IF9jYWNoZWRfbWV0aG9k cworICAgICBjZGVmIF9jYXRlZ29yeQorICAgICBjZGVmIHB1YmxpYyBfYmFzZQorICAgICBjZGVm IHB1YmxpYyBfbmFtZXMKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvY2F0ZWdvcnlf b2JqZWN0LnB5eCBiL3NyYy9zYWdlL3N0cnVjdHVyZS9jYXRlZ29yeV9vYmplY3QucHl4CitpbmRl eCAzODU5ZjI0MDk1YS4uYjZhN2VhZWNiNWIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zdHJ1Y3R1 cmUvY2F0ZWdvcnlfb2JqZWN0LnB5eAorKysrIGIvc3JjL3NhZ2Uvc3RydWN0dXJlL2NhdGVnb3J5 X29iamVjdC5weXgKK0BAIC0xMTMsNyArMTEzLDcgQEAgY2RlZiBjbGFzcyBDYXRlZ29yeU9iamVj dChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICBzZWxmLl9pbml0X2NhdGVnb3J5XyhjYXRlZ29y eSkKKyAKKyAgICAgZGVmIF9fY2luaXRfXyhzZWxmKToKKy0gICAgICAgIHNlbGYuX19jYWNoZWRf bWV0aG9kcyA9IHt9CisrICAgICAgICBzZWxmLl9jYWNoZWRfbWV0aG9kcyA9IHt9CisgICAgICAg ICBzZWxmLl9oYXNoX3ZhbHVlID0gLTEKKyAKKyAgICAgZGVmIF9pbml0X2NhdGVnb3J5XyhzZWxm LCBjYXRlZ29yeSk6CitAQCAtNDkxLDcgKzQ5MSw3IEBAIGNkZWYgY2xhc3MgQ2F0ZWdvcnlPYmpl Y3QoU2FnZU9iamVjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLnZhcmlh YmxlX25hbWVzKClbMF0KKyAKKy0gICAgZGVmIF9fdGVtcG9yYXJpbHlfY2hhbmdlX25hbWVzKHNl bGYsIG5hbWVzLCBsYXRleF9uYW1lcyk6CisrICAgIGRlZiBfdGVtcG9yYXJpbHlfY2hhbmdlX25h bWVzKHNlbGYsIG5hbWVzLCBsYXRleF9uYW1lcyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRo aXMgaXMgdXNlZCBieSB0aGUgdmFyaWFibGUgbmFtZXMgY29udGV4dCBtYW5hZ2VyLgorIAorQEAg LTg0NCw3ICs4NDQsNyBAQCBjZGVmIGNsYXNzIENhdGVnb3J5T2JqZWN0KFNhZ2VPYmplY3QpOgor ICAgICAgICAgIyBMb29rdXAgYSBtZXRob2Qgb3IgYXR0cmlidXRlIGZyb20gdGhlIGNhdGVnb3J5 IGFic3RyYWN0IGNsYXNzZXMuCisgICAgICAgICAjIFNlZSBfX2dldGF0dHJfXyBhYm92ZSBmb3Ig ZG9jdW1lbnRhdGlvbi4KKyAgICAgICAgIHRyeToKKy0gICAgICAgICAgICByZXR1cm4gc2VsZi5f X2NhY2hlZF9tZXRob2RzW25hbWVdCisrICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2NhY2hlZF9t ZXRob2RzW25hbWVdCisgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICAgaWYg c2VsZi5fY2F0ZWdvcnkgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgIyBVc3VhbGx5LCB0aGlz IHdpbGwganVzdCByYWlzZSBBdHRyaWJ1dGVFcnJvciBpbgorQEAgLTg1NCw3ICs4NTQsNyBAQCBj ZGVmIGNsYXNzIENhdGVnb3J5T2JqZWN0KFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgICAgICBj bHMgPSBzZWxmLl9jYXRlZ29yeS5wYXJlbnRfY2xhc3MKKyAKKyAgICAgICAgICAgICBhdHRyID0g Z2V0YXR0cl9mcm9tX290aGVyX2NsYXNzKHNlbGYsIGNscywgbmFtZSkKKy0gICAgICAgICAgICBz ZWxmLl9fY2FjaGVkX21ldGhvZHNbbmFtZV0gPSBhdHRyCisrICAgICAgICAgICAgc2VsZi5fY2Fj aGVkX21ldGhvZHNbbmFtZV0gPSBhdHRyCisgICAgICAgICAgICAgcmV0dXJuIGF0dHIKKyAKKyAg ICAgZGVmIF9fZGlyX18oc2VsZik6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3RydWN0dXJlL2Vs ZW1lbnQucHhkIGIvc3JjL3NhZ2Uvc3RydWN0dXJlL2VsZW1lbnQucHhkCitpbmRleCA3OWU4NmQ4 YTVjMy4uMjBjNTU2Yjk4NWUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvZWxlbWVu dC5weGQKKysrKyBiL3NyYy9zYWdlL3N0cnVjdHVyZS9lbGVtZW50LnB4ZAorQEAgLTE3Niw3ICsx NzYsNyBAQCBjZGVmIGNsYXNzIEVsZW1lbnQoU2FnZU9iamVjdCk6CisgCisgCisgY2RlZiBjbGFz cyBFbGVtZW50V2l0aENhY2hlZE1ldGhvZChFbGVtZW50KToKKy0gICAgY2RlZiBwdWJsaWMgZGlj dCBfX2NhY2hlZF9tZXRob2RzCisrICAgIGNkZWYgcHVibGljIGRpY3QgX2NhY2hlZF9tZXRob2Rz CisgCisgY2RlZiBjbGFzcyBNb2R1bGVFbGVtZW50KEVsZW1lbnQpICAgICAgICMgZm9yd2FyZCBk ZWNsYXJhdGlvbgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3N0cnVjdHVyZS9lbGVtZW50LnB5 eCBiL3NyYy9zYWdlL3N0cnVjdHVyZS9lbGVtZW50LnB5eAoraW5kZXggYWI2ZWUxNTdhOTQuLjM2 ZGExYzBjYzEyIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvc3RydWN0dXJlL2VsZW1lbnQucHl4Cisr KysgYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvZWxlbWVudC5weXgKK0BAIC0zNzksNiArMzc5LDcgQEAg Y2RlZiBjbGFzcyBFbGVtZW50KFNhZ2VPYmplY3QpOgorICAgICAuLiBhdXRvbWV0aG9kOjogX19t b2RfXworICAgICAiIiIKKyAgICAgQGN5dGhvbi5iaW5kaW5nKEZhbHNlKQorKyAgICBAY3l0aG9u LmFsd2F5c19hbGxvd19rZXl3b3JkcyhGYWxzZSkKKyAgICAgZGVmIF9fZ2V0bWV0YWNsYXNzX18o Xyk6CisgICAgICAgICBmcm9tIHNhZ2UubWlzYy5pbmhlcml0X2NvbXBhcmlzb24gaW1wb3J0IElu aGVyaXRDb21wYXJpc29uTWV0YWNsYXNzCisgICAgICAgICByZXR1cm4gSW5oZXJpdENvbXBhcmlz b25NZXRhY2xhc3MKK0BAIC0yMzU2LDE4ICsyMzU3LDE4IEBAIGNkZWYgY2xhc3MgRWxlbWVudFdp dGhDYWNoZWRNZXRob2QoRWxlbWVudCk6CisgICAgICAgICAgICAgVHJ1ZQorICAgICAgICAgIiIi CisgICAgICAgICB0cnk6CistICAgICAgICAgICAgcmV0dXJuIHNlbGYuX19jYWNoZWRfbWV0aG9k c1tuYW1lXQorKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9jYWNoZWRfbWV0aG9kc1tuYW1lXQor ICAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgIGF0dHIgPSBnZXRhdHRyX2Zy b21fb3RoZXJfY2xhc3Moc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5fcGFyZW50LmNhdGVnb3J5KCkuZWxlbWVudF9jbGFzcywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSkKKy0gICAgICAgICAgICBzZWxmLl9f Y2FjaGVkX21ldGhvZHNbbmFtZV0gPSBhdHRyCisrICAgICAgICAgICAgc2VsZi5fY2FjaGVkX21l dGhvZHNbbmFtZV0gPSBhdHRyCisgICAgICAgICAgICAgcmV0dXJuIGF0dHIKKyAgICAgICAgIGV4 Y2VwdCBUeXBlRXJyb3I6CisgICAgICAgICAgICAgYXR0ciA9IGdldGF0dHJfZnJvbV9vdGhlcl9j bGFzcyhzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm Ll9wYXJlbnQuY2F0ZWdvcnkoKS5lbGVtZW50X2NsYXNzLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBuYW1lKQorLSAgICAgICAgICAgIHNlbGYuX19jYWNoZWRfbWV0 aG9kcyA9IHtuYW1lIDogYXR0cn0KKysgICAgICAgICAgICBzZWxmLl9jYWNoZWRfbWV0aG9kcyA9 IHtuYW1lIDogYXR0cn0KKyAgICAgICAgICAgICByZXR1cm4gYXR0cgorIAorIAorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL3N0cnVjdHVyZS9wYXJlbnRfZ2Vucy5weXggYi9zcmMvc2FnZS9zdHJ1Y3R1 cmUvcGFyZW50X2dlbnMucHl4CitpbmRleCBhYjUzMTMxNDQ1OC4uY2M2ZmZhYWNlMjEgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvcGFyZW50X2dlbnMucHl4CisrKysgYi9zcmMvc2Fn ZS9zdHJ1Y3R1cmUvcGFyZW50X2dlbnMucHl4CitAQCAtMzcxLDcgKzM3MSw3IEBAIGNkZWYgY2xh c3MgbG9jYWx2YXJzOgorICAgICAgICAgICAgIHNlbGYuX2xhdGV4X25hbWVzID0gbGF0ZXhfbmFt ZXMKKyAKKyAgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKKy0gICAgICAgIHNlbGYuX29yaWcgPSBz ZWxmLl9vYmouX190ZW1wb3JhcmlseV9jaGFuZ2VfbmFtZXMoc2VsZi5fbmFtZXMsIHNlbGYuX2xh dGV4X25hbWVzKQorKyAgICAgICAgc2VsZi5fb3JpZyA9IHNlbGYuX29iai5fdGVtcG9yYXJpbHlf Y2hhbmdlX25hbWVzKHNlbGYuX25hbWVzLCBzZWxmLl9sYXRleF9uYW1lcykKKyAKKyAgICAgZGVm IF9fZXhpdF9fKHNlbGYsIHR5cGUsIHZhbHVlLCB0cmFjZWJhY2spOgorLSAgICAgICAgc2VsZi5f b2JqLl9fdGVtcG9yYXJpbHlfY2hhbmdlX25hbWVzKHNlbGYuX29yaWdbMF0sIHNlbGYuX29yaWdb MV0pCisrICAgICAgICBzZWxmLl9vYmouX3RlbXBvcmFyaWx5X2NoYW5nZV9uYW1lcyhzZWxmLl9v cmlnWzBdLCBzZWxmLl9vcmlnWzFdKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3N0cnVjdHVyZS9z YWdlX29iamVjdC5weXggYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvc2FnZV9vYmplY3QucHl4CitpbmRl eCA4NDc0MTQyZWFhMS4uMTAwMDBhZWYzOTQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zdHJ1Y3R1 cmUvc2FnZV9vYmplY3QucHl4CisrKysgYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvc2FnZV9vYmplY3Qu cHl4CitAQCAtNjksNiArNjksOCBAQCBjZGVmIGNsYXNzIFNhZ2VPYmplY3Q6CisgICAgICAgICBy IiIiCisgICAgICAgICBDaGFuZ2Ugc2VsZiBzbyBpdCBwcmludHMgYXMgeCwgd2hlcmUgeCBpcyBh IHN0cmluZy4KKyAKKysgICAgICAgIElmIHggaXMgYGBOb25lYGAsIHRoZSBleGlzdGluZyBjdXN0 b20gbmFtZSBpcyByZW1vdmVkLgorKworICAgICAgICAgLi4gTk9URTo6CisgCisgICAgICAgICAg ICBUaGlzIGlzICpvbmx5KiBzdXBwb3J0ZWQgZm9yIFB5dGhvbiBjbGFzc2VzIHRoYXQgZGVyaXZl CitAQCAtOTEsNiArOTMsOSBAQCBjZGVmIGNsYXNzIFNhZ2VPYmplY3Q6CisgICAgICAgICAgICAg c2FnZTogaC5yZW5hbWUoJ3heMzAwICsgLi4uJykKKyAgICAgICAgICAgICBzYWdlOiBoCisgICAg ICAgICAgICAgeF4zMDAgKyAuLi4KKysgICAgICAgICAgICBzYWdlOiBnLnJlbmFtZShOb25lKQor KyAgICAgICAgICAgIHNhZ2U6IGcKKysgICAgICAgICAgICB4XjMgKyB4IC0gNQorIAorICAgICAg ICAgUmVhbCBudW1iZXJzIGFyZSBub3QgUHl0aG9uIGNsYXNzZXMsIHNvIHJlbmFtZSBpcyBub3Qg c3VwcG9ydGVkOjoKKyAKK0BAIC0xMTAsMTUgKzExNSwxNiBAQCBjZGVmIGNsYXNzIFNhZ2VPYmpl Y3Q6CisgICAgICAgICAgICBhIGxvdCBvZiBtZW1vcnkuCisgCisgICAgICAgICAgICBUbyBzdXBw b3J0IHRoZW0gZm9yIGEgc3BlY2lmaWMgY2xhc3MsIGFkZCBhCistICAgICAgICAgICBgYGNkZWYg cHVibGljIF9fY3VzdG9tX25hbWVgYCBhdHRyaWJ1dGUuCisrICAgICAgICAgICBgYGNkZWYgcHVi bGljIF9TYWdlT2JqZWN0X19jdXN0b21fbmFtZWBgIGF0dHJpYnV0ZS4KKyAgICAgICAgICIiIgor ICAgICAgICAgaWYgeCBpcyBOb25lOgorLSAgICAgICAgICAgICNpZiBoYXNhdHRyKHNlbGYsICdf X2N1c3RvbV9uYW1lJyk6CistICAgICAgICAgICAgIyB0aGF0J3MgdGVzdGVkIGluIHJlc2V0X25h bWUgYW55d2F5Li4uCisgICAgICAgICAgICAgc2VsZi5yZXNldF9uYW1lKCkKKyAgICAgICAgIGVs c2U6CisgICAgICAgICAgICAgdHJ5OgorLSAgICAgICAgICAgICAgICBzZWxmLl9fY3VzdG9tX25h bWUgPSBzdHIoeCkKKysgICAgICAgICAgICAgICAgIyBUT0RPOiBhZnRlciBkcm9wcGluZyBzdXBw b3J0IGZvciBDeXRob24gPCAzLjAuMCwgYWxsCisrICAgICAgICAgICAgICAgICMgdGhlIHNlbGYu X1NhZ2VPYmplY3RfX2N1c3RvbV9uYW1lIGluIHRoaXMgY2xhc3MgY2FuIGJlCisrICAgICAgICAg ICAgICAgICMgY2hhbmdlZCB0byBzZWxmLl9fY3VzdG9tX25hbWUKKysgICAgICAgICAgICAgICAg c2VsZi5fU2FnZU9iamVjdF9fY3VzdG9tX25hbWUgPSBzdHIoeCkKKyAgICAgICAgICAgICBleGNl cHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVk RXJyb3IoIm9iamVjdCBkb2VzIG5vdCBzdXBwb3J0IHJlbmFtaW5nOiAlcyIgJSBzZWxmKQorIAor QEAgLTEzOCw4ICsxNDQsMzAgQEAgY2RlZiBjbGFzcyBTYWdlT2JqZWN0OgorICAgICAgICAgICAg IHNhZ2U6IFAKKyAgICAgICAgICAgICBVbml2YXJpYXRlIFBvbHlub21pYWwgUmluZyBpbiB4IG92 ZXIgUmF0aW9uYWwgRmllbGQKKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgaGFzYXR0cihzZWxm LCAnX19jdXN0b21fbmFtZScpOgorLSAgICAgICAgICAgIGRlbCBzZWxmLl9fY3VzdG9tX25hbWUK KysgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ19TYWdlT2JqZWN0X19jdXN0b21fbmFtZScpOgor KyAgICAgICAgICAgIGRlbCBzZWxmLl9TYWdlT2JqZWN0X19jdXN0b21fbmFtZQorKworKyAgICBk ZWYgZ2V0X2N1c3RvbV9uYW1lKHNlbGYpOgorKyAgICAgICAgIiIiCisrICAgICAgICBSZXR1cm4g dGhlIGN1c3RvbSBuYW1lIG9mIHRoaXMgb2JqZWN0LCBvciBgYE5vbmVgYCBpZiBpdCBpcyBub3QK KysgICAgICAgIHJlbmFtZWQuCisrCisrICAgICAgICBFWEFNUExFUzo6CisrCisrICAgICAgICAg ICAgc2FnZTogUC48eD4gPSBRUVtdCisrICAgICAgICAgICAgc2FnZTogUC5nZXRfY3VzdG9tX25h bWUoKSBpcyBOb25lCisrICAgICAgICAgICAgVHJ1ZQorKyAgICAgICAgICAgIHNhZ2U6IFAucmVu YW1lKCdBIHBvbHlub21pYWwgcmluZycpCisrICAgICAgICAgICAgc2FnZTogUC5nZXRfY3VzdG9t X25hbWUoKQorKyAgICAgICAgICAgICdBIHBvbHlub21pYWwgcmluZycKKysgICAgICAgICAgICBz YWdlOiBQLnJlc2V0X25hbWUoKQorKyAgICAgICAgICAgIHNhZ2U6IFAuZ2V0X2N1c3RvbV9uYW1l KCkgaXMgTm9uZQorKyAgICAgICAgICAgIFRydWUKKysgICAgICAgICIiIgorKyAgICAgICAgdHJ5 OgorKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9TYWdlT2JqZWN0X19jdXN0b21fbmFtZQorKyAg ICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorKyAgICAgICAgICAgIHJldHVybiBOb25lCisg CisgICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgICIiIgorQEAgLTE4MSw3ICsyMDks NyBAQCBjZGVmIGNsYXNzIFNhZ2VPYmplY3Q6CisgICAgICAgICAgICAgPHNhZ2Uuc3RydWN0dXJl LnNhZ2Vfb2JqZWN0LlNhZ2VPYmplY3Qgb2JqZWN0IGF0IC4uLj4KKyAgICAgICAgICIiIgorICAg ICAgICAgdHJ5OgorLSAgICAgICAgICAgIG5hbWUgPSBzZWxmLl9fY3VzdG9tX25hbWUKKysgICAg ICAgICAgICBuYW1lID0gc2VsZi5fU2FnZU9iamVjdF9fY3VzdG9tX25hbWUKKyAgICAgICAgICAg ICBpZiBuYW1lIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICByZXR1cm4gbmFtZQorICAg ICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3RvcG9s b2d5L3NpbXBsaWNpYWxfc2V0LnB5IGIvc3JjL3NhZ2UvdG9wb2xvZ3kvc2ltcGxpY2lhbF9zZXQu cHkKK2luZGV4IDQyY2MzZjc3NzgwLi4zZWUxNGFlMmRhOCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L3RvcG9sb2d5L3NpbXBsaWNpYWxfc2V0LnB5CisrKysgYi9zcmMvc2FnZS90b3BvbG9neS9zaW1w bGljaWFsX3NldC5weQorQEAgLTU3MCwxMyArNTcwLDEyIEBAIGRlZiBfX2x0X18oc2VsZiwgb3Ro ZXIpOgorICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgICBpZiBzZWxmLmRlZ2VuZXJh Y2llcygpIGFuZCBvdGhlci5kZWdlbmVyYWNpZXMoKSBhbmQgc2VsZi5kZWdlbmVyYWNpZXMoKSAh PSBvdGhlci5kZWdlbmVyYWNpZXMoKToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5kZWdlbmVy YWNpZXMoKSA8IG90aGVyLmRlZ2VuZXJhY2llcygpCistICAgICAgICBpZiBoYXNhdHRyKHNlbGYu bm9uZGVnZW5lcmF0ZSgpLCAnX19jdXN0b21fbmFtZScpOgorLSAgICAgICAgICAgIGlmIGhhc2F0 dHIob3RoZXIubm9uZGVnZW5lcmF0ZSgpLCAnX19jdXN0b21fbmFtZScpOgorLSAgICAgICAgICAg ICAgICByZXR1cm4gc3RyKHNlbGYpIDwgc3RyKG90aGVyKQorKyAgICAgICAgaWYgc2VsZi5ub25k ZWdlbmVyYXRlKCkuZ2V0X2N1c3RvbV9uYW1lKCkgaXMgbm90IE5vbmU6CisrICAgICAgICAgICAg aWYgb3RoZXIubm9uZGVnZW5lcmF0ZSgpLmdldF9jdXN0b21fbmFtZSgpIGlzIG5vdCBOb25lOgor KyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5ub25kZWdlbmVyYXRlKCkuZ2V0X2N1c3RvbV9u YW1lKCkgPCBvdGhlci5ub25kZWdlbmVyYXRlKCkuZ2V0X2N1c3RvbV9uYW1lKCkKKyAgICAgICAg ICAgICByZXR1cm4gVHJ1ZQorIAorLSAgICAgICAgaWYgKGhhc2F0dHIob3RoZXIsICdfX2N1c3Rv bV9uYW1lJykKKy0gICAgICAgICAgICAgICAgb3IgaGFzYXR0cihvdGhlci5ub25kZWdlbmVyYXRl KCksICdfX2N1c3RvbV9uYW1lJykpOgorKyAgICAgICAgaWYgb3RoZXIubm9uZGVnZW5lcmF0ZSgp LmdldF9jdXN0b21fbmFtZSgpIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgIHJldHVybiBGYWxz ZQorICAgICAgICAgcmV0dXJuIGlkKHNlbGYpIDwgaWQob3RoZXIpCisgCitAQCAtNzkzLDggKzc5 Miw4IEBAIGRlZiBfX2NvcHlfXyhzZWxmKToKKyAgICAgICAgICMgZGltZW5zaW9uLCB0aGUgZGVn ZW5lcmFjaWVzLCBhbmQgdGhlIG5hbWUgKHdpdGggYSBwcmltZQorICAgICAgICAgIyBhZGRlZCku CisgICAgICAgICBzaWdtYSA9IEFic3RyYWN0U2ltcGxleChzZWxmLl9kaW0sIGRlZ2VuZXJhY2ll cz1zZWxmLmRlZ2VuZXJhY2llcygpKQorLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnX19jdXN0 b21fbmFtZScpOgorLSAgICAgICAgICAgIHNpZ21hLnJlbmFtZShzdHIoc2VsZikgKyAiJyIpCisr ICAgICAgICBpZiBzZWxmLmdldF9jdXN0b21fbmFtZSgpIGlzIG5vdCBOb25lOgorKyAgICAgICAg ICAgIHNpZ21hLnJlbmFtZShzZWxmLmdldF9jdXN0b21fbmFtZSgpICsgIiciKQorICAgICAgICAg cmV0dXJuIHNpZ21hCisgCisgICAgIGRlZiBfX2RlZXBjb3B5X18oc2VsZiwgbWVtbyk6CitAQCAt ODM5LDggKzgzOCw4IEBAIGRlZiBfX2RlZXBjb3B5X18oc2VsZiwgbWVtbyk6CisgICAgICAgICAg ICAgcmV0dXJuIG1lbW9bdW5kZXJseWluZ10uYXBwbHlfZGVnZW5lcmFjaWVzKCpkZWdlbnMpCisg ICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICAgc2lnbWEgPSBBYnN0cmFjdFNp bXBsZXgodW5kZXJseWluZy5fZGltKQorLSAgICAgICAgICAgIGlmIGhhc2F0dHIodW5kZXJseWlu ZywgJ19fY3VzdG9tX25hbWUnKToKKy0gICAgICAgICAgICAgICAgc2lnbWEucmVuYW1lKHN0cihz ZWxmKSArICInIikKKysgICAgICAgICAgICBpZiB1bmRlcmx5aW5nLmdldF9jdXN0b21fbmFtZSgp IGlzIG5vdCBOb25lOgorKyAgICAgICAgICAgICAgICBzaWdtYS5yZW5hbWUodW5kZXJseWluZy5n ZXRfY3VzdG9tX25hbWUoKSArICInIikKKyAgICAgICAgICAgICBtZW1vW3VuZGVybHlpbmddID0g c2lnbWEKKyAgICAgICAgICAgICByZXR1cm4gc2lnbWEuYXBwbHlfZGVnZW5lcmFjaWVzKCpkZWdl bnMpCisgCitAQCAtODk2LDEyICs4OTUsMTIgQEAgZGVmIF9sYXRleF8oc2VsZik6CisgICAgICAg ICAiIiIKKyAgICAgICAgIGlmIHNlbGYuX2xhdGV4X25hbWUgaXMgbm90IE5vbmU6CisgICAgICAg ICAgICAgcmV0dXJuIHNlbGYuX2xhdGV4X25hbWUKKy0gICAgICAgIGlmIGhhc2F0dHIoc2VsZiwg J19fY3VzdG9tX25hbWUnKToKKy0gICAgICAgICAgICByZXR1cm4gc3RyKHNlbGYpCisrICAgICAg ICBpZiBzZWxmLmdldF9jdXN0b21fbmFtZSgpIGlzIG5vdCBOb25lOgorKyAgICAgICAgICAgIHJl dHVybiBzZWxmLmdldF9jdXN0b21fbmFtZSgpCisgICAgICAgICBpZiBzZWxmLm5vbmRlZ2VuZXJh dGUoKS5fbGF0ZXhfbmFtZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICBzaW1wbGV4ID0gc2Vs Zi5ub25kZWdlbmVyYXRlKCkuX2xhdGV4X25hbWUKKy0gICAgICAgIGVsaWYgaGFzYXR0cihzZWxm Lm5vbmRlZ2VuZXJhdGUoKSwgJ19fY3VzdG9tX25hbWUnKToKKy0gICAgICAgICAgICBzaW1wbGV4 ID0gc3RyKHNlbGYubm9uZGVnZW5lcmF0ZSgpKQorKyAgICAgICAgZWxpZiBzZWxmLm5vbmRlZ2Vu ZXJhdGUoKS5nZXRfY3VzdG9tX25hbWUoKSBpcyBub3QgTm9uZToKKysgICAgICAgICAgICBzaW1w bGV4ID0gc2VsZi5ub25kZWdlbmVyYXRlKCkuZ2V0X2N1c3RvbV9uYW1lKCkKKyAgICAgICAgIGVs c2U6CisgICAgICAgICAgICAgc2ltcGxleCA9ICJcXERlbHRhXnt7e319fSIuZm9ybWF0KHNlbGYu X2RpbSkKKyAgICAgICAgIGlmIHNlbGYuZGVnZW5lcmFjaWVzKCk6CitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvdG9wb2xvZ3kvc2ltcGxpY2lhbF9zZXRfY29uc3RydWN0aW9ucy5weSBiL3NyYy9zYWdl L3RvcG9sb2d5L3NpbXBsaWNpYWxfc2V0X2NvbnN0cnVjdGlvbnMucHkKK2luZGV4IGFlOTg4MjFk ZjhhLi4zYTIxNzI4NmFjNSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3RvcG9sb2d5L3NpbXBsaWNp YWxfc2V0X2NvbnN0cnVjdGlvbnMucHkKKysrKyBiL3NyYy9zYWdlL3RvcG9sb2d5L3NpbXBsaWNp YWxfc2V0X2NvbnN0cnVjdGlvbnMucHkKK0BAIC0xNzYsOCArMTc2LDcgQEAgZGVmIF9faW5pdF9f KHNlbGYsIGRhdGEsIGFtYmllbnQ9Tm9uZSk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAg IFNpbXBsaWNpYWxTZXRfZmluaXRlLl9faW5pdF9fKHNlbGYsIGRhdGEpCisgICAgICAgICBpZiBz ZWxmID09IGFtYmllbnQ6CistICAgICAgICAgICAgaWYgaGFzYXR0cihhbWJpZW50LCAnX19jdXN0 b21fbmFtZScpOgorLSAgICAgICAgICAgICAgICBzZWxmLnJlbmFtZShzdHIoYW1iaWVudCkpCisr ICAgICAgICAgICAgc2VsZi5yZW5hbWUoYW1iaWVudC5nZXRfY3VzdG9tX25hbWUoKSkKKyAgICAg ICAgICAgICBzZWxmLl9sYXRleF9uYW1lID0gbGF0ZXgoYW1iaWVudCkKKyAgICAgICAgICMgV2hl biBjb25zdHJ1Y3RpbmcgdGhlIGluY2x1c2lvbiBtYXAsIHdlIGRvIG5vdCBuZWVkIHRvIGNoZWNr CisgICAgICAgICAjIHRoZSB2YWxpZGl0eSBvZiB0aGUgbW9ycGhpc20sIGFuZCBtb3JlIGltcG9y dGFudGx5LCB3ZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzL2J1aWxkLWN5 dGhvbjMucGF0Y2ggYi9zcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvYnVpbGQtY3l0aG9uMy5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi41N2QxYWRlODlmYzc3 Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzL2J1aWxkLWN5dGhv bjMucGF0Y2gKQEAgLTAsMCArMSw0NCBAQAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2V4dC9zdGRz YWdlLnB4ZCBiL3NyYy9zYWdlL2V4dC9zdGRzYWdlLnB4ZAoraW5kZXggMTVhYmUxM2I3Y2QuLmUy YmY3NDM0ZjM1IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZXh0L3N0ZHNhZ2UucHhkCisrKysgYi9z cmMvc2FnZS9leHQvc3Rkc2FnZS5weGQKK0BAIC0xMCw3ICsxMCw3IEBAIFN0YW5kYXJkIEMgaGVs cGVyIGNvZGUgZm9yIEN5dGhvbiBtb2R1bGVzCisgIyAgICAgICAgICAgICAgICAgIGh0dHA6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8KKyAjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAKKy1mcm9tIGNw eXRob24ub2JqZWN0IGNpbXBvcnQgUHlfVFlQRSwgUHlUeXBlT2JqZWN0CisrZnJvbSBjcHl0aG9u Lm9iamVjdCBjaW1wb3J0IFB5X1RZUEUsIFB5VHlwZU9iamVjdCwgUHlPYmplY3QKKyAKKyAKKyBj ZGVmIGlubGluZSBQWV9ORVcodHlwZSB0KToKK0BAIC0xOSw3ICsxOSw3IEBAIGNkZWYgaW5saW5l IFBZX05FVyh0eXBlIHQpOgorICAgICA6Y2xhc3M6YEludGVnZXJgIHdoZXJlIHdlIGNoYW5nZSBg YHRwX25ld2BgIGF0IHJ1bnRpbWUgKEN5dGhvbgorICAgICBvcHRpbWl6YXRpb25zIGFzc3VtZSB0 aGF0IGBgdHBfbmV3YGAgZG9lc24ndCBjaGFuZ2UpLgorICAgICAiIiIKKy0gICAgcmV0dXJuICg8 UHlUeXBlT2JqZWN0Kj50KS50cF9uZXcodCwgPG9iamVjdD5OVUxMLCA8b2JqZWN0Pk5VTEwpCisr ICAgIHJldHVybiAoPFB5VHlwZU9iamVjdCo+dCkudHBfbmV3KHQsIDxQeU9iamVjdCo+TlVMTCwg PFB5T2JqZWN0Kj5OVUxMKQorIAorIAorIGNkZWYgaW5saW5lIHZvaWQgUFlfU0VUX1RQX05FVyh0 eXBlIGRzdCwgdHlwZSBzcmMpOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlX3NldHVwL2N5dGhvbl9v cHRpb25zLnB5IGIvc3JjL3NhZ2Vfc2V0dXAvY3l0aG9uX29wdGlvbnMucHkKK2luZGV4IDA4NmFh MDcwY2E5Li45NzI1Y2UwZTFhZiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlX3NldHVwL2N5dGhvbl9v cHRpb25zLnB5CisrKysgYi9zcmMvc2FnZV9zZXR1cC9jeXRob25fb3B0aW9ucy5weQorQEAgLTEw LDEzICsxMCwxNyBAQCBkZWYgY29tcGlsZXJfZGlyZWN0aXZlcyhwcm9maWxlOiBib29sKToKKyAg ICAgICAgIGF1dG9fcGlja2xlPUZhbHNlLAorICAgICAgICAgIyBEbyBub3QgY3JlYXRlIF9fdGVz dF9fIGRpY3Rpb25hcnkgYXV0b21hdGljYWxseSBmcm9tIGRvY3N0cmluZ3MKKyAgICAgICAgIGF1 dG90ZXN0ZGljdD1GYWxzZSwKKysgICAgICAgIGJpbmRpbmc9RmFsc2UsCisrICAgICAgICBjX2Fw aV9iaW5vcF9tZXRob2RzPVRydWUsCisgICAgICAgICAjIERvIG5vdCBjaGVjayBmb3IgZGl2aXNp b24gYnkgMCAodGhpcyBpcyBhYm91dCAzNSUgcXVpY2tlciB0aGFuIHdpdGggY2hlY2spCisgICAg ICAgICBjZGl2aXNpb249VHJ1ZSwKKysgICAgICAgIGNwb3c9VHJ1ZSwKKyAgICAgICAgICMgRW1i ZWQgYSB0ZXh0dWFsIGNvcHkgb2YgdGhlIGNhbGwgc2lnbmF0dXJlIGluIHRoZSBkb2NzdHJpbmcg KHRvIHN1cHBvcnQgdG9vbHMgbGlrZSBJUHl0aG9uKQorICAgICAgICAgZW1iZWRzaWduYXR1cmU9 VHJ1ZSwKKyAgICAgICAgIGZhc3RfZ2V0YXR0cj1UcnVlLAorICAgICAgICAgIyBVc2UgUHl0aG9u IDMgKGluY2x1ZGluZyBzb3VyY2UgY29kZSBzZW1hbnRpY3MpIGZvciBtb2R1bGUgY29tcGlsYXRp b24KKyAgICAgICAgIGxhbmd1YWdlX2xldmVsPSIzIiwKKysgICAgICAgIGxlZ2FjeV9pbXBsaWNp dF9ub2V4Y2VwdD1UcnVlLAorICAgICAgICAgIyBFbmFibGUgc3VwcG9ydCBmb3IgbGF0ZSBpbmNs dWRlcyAobWFrZSBkZWNsYXJhdGlvbnMgaW4gQ3l0aG9uIGNvZGUgYXZhaWxhYmxlIHRvIEMgaW5j bHVkZSBmaWxlcykKKyAgICAgICAgIHByZWxpbWluYXJ5X2xhdGVfaW5jbHVkZXNfY3kyOD1UcnVl LAorICAgICAgICAgIyBBZGQgaG9va3MgZm9yIFB5dGhvbiBwcm9maWxlcnMgaW50byB0aGUgY29t cGlsZWQgQyBjb2RlCmRpZmYgLS1naXQgYS9zcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvZml4LWRv Y3Rlc3QtY3l0aG9uMy5wYXRjaCBiL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy9maXgtZG9jdGVz dC1jeXRob24zLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAu LjRjZmYxZmIxODI4ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3NhZ2VtYXRoL3BhdGNo ZXMvZml4LWRvY3Rlc3QtY3l0aG9uMy5wYXRjaApAQCAtMCwwICsxLDIwNyBAQAorZGlmZiAtLWdp dCBhL3NyYy9kb2MvZW4vdGhlbWF0aWNfdHV0b3JpYWxzL2NvZXJjaW9uX2FuZF9jYXRlZ29yaWVz LnJzdCBiL3NyYy9kb2MvZW4vdGhlbWF0aWNfdHV0b3JpYWxzL2NvZXJjaW9uX2FuZF9jYXRlZ29y aWVzLnJzdAoraW5kZXggZGUyMzQ5YTlhM2YuLmJiMjMzMzFjMTUxIDEwMDY0NAorLS0tIGEvc3Jj L2RvYy9lbi90aGVtYXRpY190dXRvcmlhbHMvY29lcmNpb25fYW5kX2NhdGVnb3JpZXMucnN0Cisr KysgYi9zcmMvZG9jL2VuL3RoZW1hdGljX3R1dG9yaWFscy9jb2VyY2lvbl9hbmRfY2F0ZWdvcmll cy5yc3QKK0BAIC0xMDUsNyArMTA1LDcgQEAgaXQgbWFrZXMgc2Vuc2UgdG8gYnVpbGQgb24gdG9w IG9mIHRoZSBiYXNlIGNsYXNzCisgVGhpcyBiYXNlIGNsYXNzIHByb3ZpZGVzIGEgbG90IG1vcmUg bWV0aG9kcyB0aGFuIGEgZ2VuZXJhbCBwYXJlbnQ6OgorIAorICAgICBzYWdlOiBbcCBmb3IgcCBp biBkaXIoRmllbGQpIGlmIHAgbm90IGluIGRpcihQYXJlbnQpXQorLSAgICBbJ19fZnJhY3Rpb25f ZmllbGQnLAorKyAgICBbJ19Db21tdXRhdGl2ZVJpbmdfX2ZyYWN0aW9uX2ZpZWxkJywKKyAgICAg ICdfX2l0ZXJfXycsCisgICAgICAnX19sZW5fXycsCisgICAgICAnX19yeG9yX18nLAorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL2FyaXRoL3NyYW5nZS5weXggYi9zcmMvc2FnZS9hcml0aC9zcmFuZ2Uu cHl4CitpbmRleCAxNTZlNTQ4YTExYS4uMTMyY2Y5M2QwODUgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9hcml0aC9zcmFuZ2UucHl4CisrKysgYi9zcmMvc2FnZS9hcml0aC9zcmFuZ2UucHl4CitAQCAt ODQsNyArODQsNyBAQCBkZWYgeHNyYW5nZShzdGFydCwgZW5kPU5vbmUsIHN0ZXA9MSwgdW5pdmVy c2U9Tm9uZSwgKiwgY29lcmNlPVRydWUsIGJpbnQgaW5jbHVkZQorICAgICBFWEFNUExFUzo6Cisg CisgICAgICAgICBzYWdlOiB4c3JhbmdlKDEwKQorLSAgICAgICAgPGdlbmVyYXRvciBvYmplY3Qg YXQgMHguLi4+CisrICAgICAgICA8Li4uZ2VuZXJhdG9yIG9iamVjdCBhdCAweC4uLj4KKyAgICAg ICAgIHNhZ2U6IGZvciBpIGluIHhzcmFuZ2UoMSw1KToKKyAgICAgICAgIC4uLi46ICAgICBwcmlu dChpKQorICAgICAgICAgMQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2NvbWJpbmF0L3Nsb2FuZV9m dW5jdGlvbnMucHkgYi9zcmMvc2FnZS9jb21iaW5hdC9zbG9hbmVfZnVuY3Rpb25zLnB5CitpbmRl eCBjM2NmOTI5OTA5My4uZTVjOTliNzFmZTcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jb21iaW5h dC9zbG9hbmVfZnVuY3Rpb25zLnB5CisrKysgYi9zcmMvc2FnZS9jb21iaW5hdC9zbG9hbmVfZnVu Y3Rpb25zLnB5CitAQCAtOTE2OSw3ICs5MTY5LDcgQEAgY2xhc3MgU2xvYW5lKFNhZ2VPYmplY3Qp OgorICAgICAgICAgOjoKKyAKKyAgICAgICAgICAgICBzYWdlOiBzbG9hbmUuX19yZXByX18KKy0g ICAgICAgICAgICA8bWV0aG9kLXdyYXBwZXIgJ19fcmVwcl9fJyBvZiBTbG9hbmUgb2JqZWN0IGF0 IDB4Li4uPgorKyAgICAgICAgICAgIDxidWlsdC1pbiBtZXRob2QgX19yZXByX18gb2YgU2xvYW5l IG9iamVjdCBhdCAweC4uLj4KKyAgICAgICAgICAgICBzYWdlOiBzbG9hbmUuX19uYW1lX18KKyAg ICAgICAgICAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAgICAg ICAgLi4uCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWlzYy9jYWNoZWZ1bmMucHl4IGIvc3JjL3Nh Z2UvbWlzYy9jYWNoZWZ1bmMucHl4CitpbmRleCA4YWEzMGE4NTI3Mi4uMmIxZDM4YzEyYjkgMTAw NjQ0CistLS0gYS9zcmMvc2FnZS9taXNjL2NhY2hlZnVuYy5weXgKKysrKyBiL3NyYy9zYWdlL21p c2MvY2FjaGVmdW5jLnB5eAorQEAgLTUwLDcgKzUwLDcgQEAgYmUgdXNlZDo6CisgICAgIHNhZ2U6 IGN5dGhvbignJydjcGRlZiB0ZXN0X2Z1bmN0KHgpOiByZXR1cm4gLXgnJycpICAgICAgICAgICAg ICAgICAgICAgICAgICAjIG9wdGlvbmFsIC0gc2FnZS5taXNjLmN5dGhvbgorICAgICBzYWdlOiB3 cmFwcGVkX2Z1bmN0ID0gY2FjaGVkX2Z1bmN0aW9uKHRlc3RfZnVuY3QsIG5hbWU9J3dyYXBwZWRf ZnVuY3QnKSAgICAgIyBvcHRpb25hbCAtIHNhZ2UubWlzYy5jeXRob24KKyAgICAgc2FnZTogd3Jh cHBlZF9mdW5jdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICMgb3B0aW9uYWwgLSBzYWdlLm1pc2MuY3l0aG9uCistICAgIENhY2hlZCB2ZXJz aW9uIG9mIDxidWlsdC1pbiBmdW5jdGlvbiB0ZXN0X2Z1bmN0PgorKyAgICBDYWNoZWQgdmVyc2lv biBvZiA8Y3lmdW5jdGlvbiB0ZXN0X2Z1bmN0IGF0IC4uLj4KKyAgICAgc2FnZTogd3JhcHBlZF9m dW5jdC5fX25hbWVfXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICMgb3B0aW9uYWwgLSBzYWdlLm1pc2MuY3l0aG9uCisgICAgICd3cmFwcGVkX2Z1bmN0Jwor ICAgICBzYWdlOiB3cmFwcGVkX2Z1bmN0KDUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCAtIHNhZ2UubWlzYy5jeXRob24KK0BA IC04Miw5ICs4Miw5IEBAIGFwcHJvYWNoIGlzIHN0aWxsIG5lZWRlZCBmb3IgY3BkZWYgbWV0aG9k czo6CisgICAgIHNhZ2U6IGN5dGhvbihvcy5saW5lc2VwLmpvaW4oY3l0aG9uX2NvZGUpKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsIC0gc2FnZS5taXNjLmN5dGhv bgorICAgICBzYWdlOiBPID0gTXlDbGFzcygpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCAtIHNhZ2UubWlzYy5jeXRob24K KyAgICAgc2FnZTogTy5kaXJlY3RfbWV0aG9kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwgLSBzYWdlLm1pc2MuY3l0aG9uCist ICAgIENhY2hlZCB2ZXJzaW9uIG9mIDxtZXRob2QgJ2RpcmVjdF9tZXRob2QnIG9mICcuLi5NeUNs YXNzJyBvYmplY3RzPgorKyAgICBDYWNoZWQgdmVyc2lvbiBvZiA8Y3lmdW5jdGlvbiBNeUNsYXNz LmRpcmVjdF9tZXRob2QgYXQgLi4uPgorICAgICBzYWdlOiBPLndyYXBwZWRfbWV0aG9kICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25h bCAtIHNhZ2UubWlzYy5jeXRob24KKy0gICAgQ2FjaGVkIHZlcnNpb24gb2YgPGJ1aWx0LWluIGZ1 bmN0aW9uIHRlc3RfbWV0aD4KKysgICAgQ2FjaGVkIHZlcnNpb24gb2YgPGN5ZnVuY3Rpb24gdGVz dF9tZXRoIGF0IC4uLj4KKyAgICAgc2FnZTogTy53cmFwcGVkX21ldGhvZC5fX25hbWVfXyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwgLSBzYWdl Lm1pc2MuY3l0aG9uCisgICAgICd3cmFwcGVkX21ldGhvZCcKKyAgICAgc2FnZTogTy53cmFwcGVk X21ldGhvZCg1KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICMgb3B0aW9uYWwgLSBzYWdlLm1pc2MuY3l0aG9uCitAQCAtMjcwLDYgKzI3MCw3IEBAIElu dHJvc3BlY3Rpb24gd29ya3M6OgorICAgICAgICAgInNvbWUgZG9jIGZvciBhIHdyYXBwZWQgY3l0 aG9uIG1ldGhvZCIKKyAgICAgICAgIHJldHVybiAteAorICAgICBzYWdlOiBwcmludChzYWdlX2dl dHNvdXJjZShPLmRpcmVjdF9tZXRob2QpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IyBvcHRpb25hbCAtIHNhZ2UubWlzYy5jeXRob24KKysgICAgQGNhY2hlZF9tZXRob2QKKyAgICAg ZGVmIGRpcmVjdF9tZXRob2Qoc2VsZiwgeCk6CisgICAgICAgICAiU29tZSBkb2MgZm9yIGRpcmVj dCBtZXRob2QiCisgICAgICAgICByZXR1cm4gMip4CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWlz Yy9sYXp5X2ltcG9ydC5weXggYi9zcmMvc2FnZS9taXNjL2xhenlfaW1wb3J0LnB5eAoraW5kZXgg YzMzYTFlNzRlZmQuLjdmYzczNDA3YWNlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWlzYy9sYXp5 X2ltcG9ydC5weXgKKysrKyBiL3NyYy9zYWdlL21pc2MvbGF6eV9pbXBvcnQucHl4CitAQCAtMTA5 NSw3ICsxMDk1LDcgQEAgZGVmIGxhenlfaW1wb3J0KG1vZHVsZSwgbmFtZXMsIGFzXz1Ob25lLCAq LAorICAgICAgICAgc2FnZTogZnJvbSBzYWdlLmZlYXR1cmVzIGltcG9ydCBQeXRob25Nb2R1bGUK KyAgICAgICAgIHNhZ2U6IGxhenlfaW1wb3J0KCdwcGwnLCAnZXF1YXRpb24nLCBmZWF0dXJlPVB5 dGhvbk1vZHVsZSgncHBsJywgc3BrZz0ncHBscHknLCB0eXBlPSdzdGFuZGFyZCcpKQorICAgICAg ICAgc2FnZTogZXF1YXRpb24KKy0gICAgICAgIDxidWlsdC1pbiBmdW5jdGlvbiBlcXVhdGlvbj4K KysgICAgICAgIDxjeWZ1bmN0aW9uIGVxdWF0aW9uIGF0IC4uLj4KKyAgICAgICAgIHNhZ2U6IGxh enlfaW1wb3J0KCdQeU5vcm1hbGl6JywgJ05tekxpc3RDb25lUHJvcGVydGllcycsIGZlYXR1cmU9 UHl0aG9uTW9kdWxlKCdQeU5vcm1hbGl6Jywgc3BrZz0ncHlub3JtYWxpeicpKSAgIyBvcHRpb25h bCAtIHB5bm9ybWFsaXoKKyAgICAgICAgIHNhZ2U6IE5tekxpc3RDb25lUHJvcGVydGllcyAgIyBv cHRpb25hbCAtIHB5bm9ybWFsaXoKKyAgICAgICAgIDxidWlsdC1pbiBmdW5jdGlvbiBObXpMaXN0 Q29uZVByb3BlcnRpZXM+CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWlzYy9sYXp5X2xpc3QucHl4 IGIvc3JjL3NhZ2UvbWlzYy9sYXp5X2xpc3QucHl4CitpbmRleCBiYTYyYzQ0NmI2OS4uY2Q3NTA5 MzM4NjAgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9taXNjL2xhenlfbGlzdC5weXgKKysrKyBiL3Ny Yy9zYWdlL21pc2MvbGF6eV9saXN0LnB5eAorQEAgLTY3OCw3ICs2NzgsNyBAQCBjZGVmIGNsYXNz IGxhenlfbGlzdF9nZW5lcmljKCk6CisgICAgICAgICAgICAgc2FnZTogZnJvbSBpdGVydG9vbHMg aW1wb3J0IGNvdW50CisgICAgICAgICAgICAgc2FnZTogZnJvbSBzYWdlLm1pc2MubGF6eV9saXN0 IGltcG9ydCBsYXp5X2xpc3QKKyAgICAgICAgICAgICBzYWdlOiBpdGVyKGxhenlfbGlzdChjb3Vu dCgpKSkKKy0gICAgICAgICAgICA8Z2VuZXJhdG9yIG9iamVjdCBhdCAweC4uLj4KKysgICAgICAg ICAgICA8Li4uZ2VuZXJhdG9yIG9iamVjdCBhdCAweC4uLj4KKyAKKyAgICAgICAgIDo6CisgCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWlzYy9zYWdlaW5zcGVjdC5weSBiL3NyYy9zYWdlL21pc2Mv c2FnZWluc3BlY3QucHkKK2luZGV4IGNlNWU5OTg3MDI3Li5kZjhlNmJmODlhYyAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL21pc2Mvc2FnZWluc3BlY3QucHkKKysrKyBiL3NyYy9zYWdlL21pc2Mvc2Fn ZWluc3BlY3QucHkKK0BAIC03Niw4ICs3Niw4IEBAIEN5dGhvbiBmdW5jdGlvbnM6OgorICAgICBz YWdlOiBzYWdlX2dldGRvYyhzYWdlLnJpbmdzLnJhdGlvbmFsLm1ha2VfcmF0aW9uYWwpLmxzdHJp cCgpCisgICAgICdNYWtlIGEgcmF0aW9uYWwgbnVtYmVyIC4uLicKKyAKKy0gICAgc2FnZTogc2Fn ZV9nZXRzb3VyY2Uoc2FnZS5yaW5ncy5yYXRpb25hbC5tYWtlX3JhdGlvbmFsKVs0Ol0KKy0gICAg J21ha2VfcmF0aW9uYWwocyk6Li4uJworKyAgICBzYWdlOiBzYWdlX2dldHNvdXJjZShzYWdlLnJp bmdzLnJhdGlvbmFsLm1ha2VfcmF0aW9uYWwpCisrICAgICdAY3l0aG9uLmJpbmRpbmcoVHJ1ZSlc bmRlZiBtYWtlX3JhdGlvbmFsKHMpOi4uLicKKyAKKyBQeXRob24gZnVuY3Rpb25zOjoKKyAKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9tb2R1bGVzL2ZyZWVfbW9kdWxlX2VsZW1lbnQucHl4IGIvc3Jj L3NhZ2UvbW9kdWxlcy9mcmVlX21vZHVsZV9lbGVtZW50LnB5eAoraW5kZXggZDVlODI1NmI2OGMu LmM5YWY5YmNiZGY3IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbW9kdWxlcy9mcmVlX21vZHVsZV9l bGVtZW50LnB5eAorKysrIGIvc3JjL3NhZ2UvbW9kdWxlcy9mcmVlX21vZHVsZV9lbGVtZW50LnB5 eAorQEAgLTE2MzQsNyArMTYzNCw3IEBAIGNkZWYgY2xhc3MgRnJlZU1vZHVsZUVsZW1lbnQoVmVj dG9yKTogICAjIGFic3RyYWN0IGJhc2UgY2xhc3MKKyAKKyAgICAgICAgICAgICBzYWdlOiB2ID0g dmVjdG9yKFsxLDIvMyxwaV0pCisgICAgICAgICAgICAgc2FnZTogdi5pdGVtcygpCistICAgICAg ICAgICAgPGdlbmVyYXRvciBvYmplY3QgYXQgLi4uPgorKyAgICAgICAgICAgIDwuLi5nZW5lcmF0 b3Igb2JqZWN0IGF0IC4uLj4KKyAgICAgICAgICAgICBzYWdlOiBsaXN0KHYuaXRlbXMoKSkKKyAg ICAgICAgICAgICBbKDAsIDEpLCAoMSwgMi8zKSwgKDIsIHBpKV0KKyAKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvZmluaXRlX2ZpZWxkX2Jhc2UucHl4IGIvc3JjL3Nh Z2UvcmluZ3MvZmluaXRlX3JpbmdzL2Zpbml0ZV9maWVsZF9iYXNlLnB5eAoraW5kZXggN2UyZWVk OTExNTMuLjNhNmRiODk5NWM2IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3Jp bmdzL2Zpbml0ZV9maWVsZF9iYXNlLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3Jp bmdzL2Zpbml0ZV9maWVsZF9iYXNlLnB5eAorQEAgLTMyOCw3ICszMjgsNyBAQCBjZGVmIGNsYXNz IEZpbml0ZUZpZWxkKEZpZWxkKToKKyAgICAgICAgICAgICBzYWdlOiBwID0gbmV4dF9wcmltZSgy XjY0KQorICAgICAgICAgICAgIHNhZ2U6IGsuPGE+ID0gRmluaXRlRmllbGQocF4yLCBpbXBsPSJw YXJpIikKKyAgICAgICAgICAgICBzYWdlOiBpdCA9IGl0ZXIoayk7IGl0CistICAgICAgICAgICAg PGdlbmVyYXRvciBvYmplY3QgYXQgLi4uPgorKyAgICAgICAgICAgIDwuLi5nZW5lcmF0b3Igb2Jq ZWN0IGF0IC4uLj4KKyAgICAgICAgICAgICBzYWdlOiBbbmV4dChpdCkgZm9yIGkgaW4gcmFuZ2Uo MTApXQorICAgICAgICAgICAgIFswLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5XQorIAorZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvc2tld19wb2x5bm9taWFsX2Zpbml0 ZV9maWVsZC5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3NrZXdfcG9seW5vbWlhbF9m aW5pdGVfZmllbGQucHl4CitpbmRleCA0MTk1MTY4NzkzOS4uYzZiNjdjYmE1ZmIgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3NrZXdfcG9seW5vbWlhbF9maW5pdGVfZmll bGQucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3NrZXdfcG9seW5vbWlhbF9m aW5pdGVfZmllbGQucHl4CitAQCAtNjI5LDcgKzYyOSw3IEBAIGNkZWYgY2xhc3MgU2tld1BvbHlu b21pYWxfZmluaXRlX2ZpZWxkX2RlbnNlKFNrZXdQb2x5bm9taWFsX2Zpbml0ZV9vcmRlcl9kZW5z ZSk6CisgICAgICAgICAgICAgc2FnZTogUy48eD4gPSBrWyd4JyxGcm9iXQorICAgICAgICAgICAg IHNhZ2U6IGEgPSB4XjQgKyAyKnQqeF4zICsgMyp0XjIqeF4yICsgKHReMiArIHQgKyAxKSp4ICsg NCp0ICsgMworICAgICAgICAgICAgIHNhZ2U6IGl0ZXIgPSBhLnJpZ2h0X2lycmVkdWNpYmxlX2Rp dmlzb3JzKCk7IGl0ZXIKKy0gICAgICAgICAgICA8Z2VuZXJhdG9yIG9iamVjdCBhdCAweC4uLj4K KysgICAgICAgICAgICA8Li4uZ2VuZXJhdG9yIG9iamVjdCBhdCAweC4uLj4KKyAgICAgICAgICAg ICBzYWdlOiBuZXh0KGl0ZXIpICAgIyByYW5kb20KKyAgICAgICAgICAgICB4ICsgMip0XjIgKyA0 KnQgKyA0CisgICAgICAgICAgICAgc2FnZTogbmV4dChpdGVyKSAgICMgcmFuZG9tCitAQCAtNjY0 LDcgKzY2NCw3IEBAIGNkZWYgY2xhc3MgU2tld1BvbHlub21pYWxfZmluaXRlX2ZpZWxkX2RlbnNl KFNrZXdQb2x5bm9taWFsX2Zpbml0ZV9vcmRlcl9kZW5zZSk6CisgICAgICAgICAgICAgc2FnZTog Uy48eD4gPSBrWyd4JyxGcm9iXQorICAgICAgICAgICAgIHNhZ2U6IGEgPSB4XjQgKyAyKnQqeF4z ICsgMyp0XjIqeF4yICsgKHReMiArIHQgKyAxKSp4ICsgNCp0ICsgMworICAgICAgICAgICAgIHNh Z2U6IGl0ZXIgPSBhLmxlZnRfaXJyZWR1Y2libGVfZGl2aXNvcnMoKTsgaXRlcgorLSAgICAgICAg ICAgIDxnZW5lcmF0b3Igb2JqZWN0IGF0IDB4Li4uPgorKyAgICAgICAgICAgIDwuLi5nZW5lcmF0 b3Igb2JqZWN0IGF0IDB4Li4uPgorICAgICAgICAgICAgIHNhZ2U6IG5leHQoaXRlcikgICMgcmFu ZG9tCisgICAgICAgICAgICAgeCArIDMqdCArIDMKKyAgICAgICAgICAgICBzYWdlOiBuZXh0KGl0 ZXIpICAjIHJhbmRvbQorQEAgLTEwNTIsNyArMTA1Miw3IEBAIGNkZWYgY2xhc3MgU2tld1BvbHlu b21pYWxfZmluaXRlX2ZpZWxkX2RlbnNlKFNrZXdQb2x5bm9taWFsX2Zpbml0ZV9vcmRlcl9kZW5z ZSk6CisgICAgICAgICAgICAgc2FnZTogUy48eD4gPSBrWyd4JyxGcm9iXQorICAgICAgICAgICAg IHNhZ2U6IGEgPSB4XjMgKyAodF4yICsgMSkqeF4yICsgKDIqdCArIDMpKnggKyB0XjIgKyB0ICsg MgorICAgICAgICAgICAgIHNhZ2U6IGl0ZXIgPSBhLmZhY3Rvcml6YXRpb25zKCk7IGl0ZXIKKy0g ICAgICAgICAgICA8Z2VuZXJhdG9yIG9iamVjdCBhdCAweC4uLj4KKysgICAgICAgICAgICA8Li4u Z2VuZXJhdG9yIG9iamVjdCBhdCAweC4uLj4KKyAgICAgICAgICAgICBzYWdlOiBuZXh0KGl0ZXIp ICAgIyByYW5kb20KKyAgICAgICAgICAgICAoeCArIDMqdF4yICsgNCp0KSAqICh4ICsgMip0XjIp ICogKHggKyA0KnReMiArIDQqdCArIDIpCisgICAgICAgICAgICAgc2FnZTogbmV4dChpdGVyKSAg ICMgcmFuZG9tCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3RydWN0dXJlL2NvZXJjZV9kaWN0LnB5 eCBiL3NyYy9zYWdlL3N0cnVjdHVyZS9jb2VyY2VfZGljdC5weXgKK2luZGV4IGEyZTg0NDMwODRj Li5lZjg2YzZhZjM1YyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3N0cnVjdHVyZS9jb2VyY2VfZGlj dC5weXgKKysrKyBiL3NyYy9zYWdlL3N0cnVjdHVyZS9jb2VyY2VfZGljdC5weXgKK0BAIC03Nzcs NyArNzc3LDcgQEAgY2RlZiBjbGFzcyBNb25vRGljdDoKKyAgICAgICAgICAgICBzYWdlOiBMWzFd ID0gTm9uZQorICAgICAgICAgICAgIHNhZ2U6IExbMl0gPSBUcnVlCisgICAgICAgICAgICAgc2Fn ZTogTC5pdGVtcygpCistICAgICAgICAgICAgPGdlbmVyYXRvciBvYmplY3QgYXQgLi4uPgorKyAg ICAgICAgICAgIDwuLi5nZW5lcmF0b3Igb2JqZWN0IGF0IC4uLj4KKyAgICAgICAgICAgICBzYWdl OiBzb3J0ZWQoTC5pdGVtcygpKQorICAgICAgICAgICAgIFsoMSwgTm9uZSksICgyLCBUcnVlKV0K KyAgICAgICAgICIiIgorQEAgLTE0NTIsNyArMTQ1Miw3IEBAIGNkZWYgY2xhc3MgVHJpcGxlRGlj dDoKKyAgICAgICAgICAgICBzYWdlOiBMID0gVHJpcGxlRGljdCgpCisgICAgICAgICAgICAgc2Fn ZTogTFsxLDIsM10gPSBOb25lCisgICAgICAgICAgICAgc2FnZTogTC5pdGVtcygpCistICAgICAg ICAgICAgPGdlbmVyYXRvciBvYmplY3QgYXQgLi4uPgorKyAgICAgICAgICAgIDwuLi5nZW5lcmF0 b3Igb2JqZWN0IGF0IC4uLj4KKyAgICAgICAgICAgICBzYWdlOiBsaXN0KEwuaXRlbXMoKSkKKyAg ICAgICAgICAgICBbKCgxLCAyLCAzKSwgTm9uZSldCisgICAgICAgICAiIiIKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS90ZXN0cy9jbWRsaW5lLnB5IGIvc3JjL3NhZ2UvdGVzdHMvY21kbGluZS5weQor aW5kZXggYWQwYzQ0YWEyNzQuLmYxNGNkMmRiNzY4IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvdGVz dHMvY21kbGluZS5weQorKysrIGIvc3JjL3NhZ2UvdGVzdHMvY21kbGluZS5weQorQEAgLTQ5MSw5 ICs0OTEsOCBAQCBkZWYgdGVzdF9leGVjdXRhYmxlKGFyZ3MsIGlucHV0PSIiLCB0aW1lb3V0PTEw MC4wLCBweWRlYnVnX2lnbm9yZV93YXJuaW5ncz1GYWxzZQorIAorICAgICAgICAgc2FnZTogKG91 dCwgZXJyLCByZXQpID0gdGVzdF9leGVjdXRhYmxlKFsic2FnZSIsICItLWN5dGhvbiJdKQorICAg ICAgICAgc2FnZTogcHJpbnQoZXJyKQorLSAgICAgICAgQ3l0aG9uIChodHRwOi8vY3l0aG9uLm9y ZykgaXMgYSBjb21waWxlciBmb3IgY29kZSB3cml0dGVuIGluIHRoZQorLSAgICAgICAgQ3l0aG9u IGxhbmd1YWdlLiAgQ3l0aG9uIGlzIGJhc2VkIG9uIFB5cmV4IGJ5IEdyZWcgRXdpbmcuCisgICAg ICAgICAuLi4KKysgICAgICAgIGN5dGhvbjogZXJyb3I6IGN5dGhvbjogTmVlZCBhdCBsZWFzdCBv bmUgc291cmNlIGZpbGUKKyAKKyAgICAgICAgIHNhZ2U6IGRlZiBoYXNfdHR5KCk6CisgICAgICAg ICAuLi4uOiAgICAgdHJ5OgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzL2dl dF9wYXRjaGVzIGIvc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzL2dldF9wYXRjaGVzCmluZGV4IGMy YzVhYTFjN2VjY2QuLjhkNTBmOWEzY2QzYjMgMTAwNzU1Ci0tLSBhL3NyY3BrZ3Mvc2FnZW1hdGgv cGF0Y2hlcy9nZXRfcGF0Y2hlcworKysgYi9zcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvZ2V0X3Bh dGNoZXMKQEAgLTEyLDcgKzEyLDcgQEAgZXNhYwogIyBnZXRfcHIgPFBSIG51bWJlcj4gPGRlc2Ny aXB0aW9uPiBbZXh0XQogZ2V0X3ByKCkgewogCXByPSQxCi0JZGVzYz0kKGVjaG8gIiQyIiB8IHNl ZCAtZSAncy8gL18vZycpCisJZGVzYz0kKGVjaG8gIiQyIiB8IHRyICcgLycgJ18tJykKIAlleHQ9 JHszLWRpZmZ9CiAJJERPIHdnZXQgIiRVUkxfQkFTRV9QUiRwci4kZXh0IiAtTyAiJHByLSRkZXNj LnBhdGNoIgogfQpAQCAtMjQsNiArMjQsOSBAQCBjZCAkKGRpcm5hbWUgIiQwIikKICNnZXRfcHIg IDM2MDE4ICAgInNpbmd1bGFyIDQuMy4ycDQiICMgaW5jbHVkZWQgaW4gIzM1OTM0CiBnZXRfcHIg IDM2MDQ2ICAgImZpeCBtZW1vcnkgbGVhayIKIAotIyBwb3NpdGl2ZSByZXZpZXcKKyMgbWVyZ2Vk IGluIDEwLjIuYmV0YTEKIGdldF9wciAgMzU5MzQgICAic2luZ3VsYXIgNC4zLjJwNyIKK2dldF9w ciAgMzYxMDkgICAicHJlcGFyZSBmb3IgY3l0aG9uIDMuMCIgIyBpbmNsdWRlZCBpbiAjMzYxMTAK KworIyBwb3NpdGl2ZSByZXZpZXcKIGdldF9wciAgMzYwMDYgICAiZ21wIDYuMy4wIgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9zYWdlbWF0aC90ZW1wbGF0ZSBiL3NyY3BrZ3Mvc2FnZW1hdGgvdGVtcGxh dGUKaW5kZXggMDE5YWQzN2NiM2E3MC4uNWQzMGJiMGJmYzE2MyAxMDA2NDQKLS0tIGEvc3JjcGtn cy9zYWdlbWF0aC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3NhZ2VtYXRoL3RlbXBsYXRlCkBAIC0x LDEyICsxLDEyIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdzYWdlbWF0aCcKIHBrZ25hbWU9c2Fn ZW1hdGgKIHZlcnNpb249MTAuMQotcmV2aXNpb249MgorcmV2aXNpb249MwogYnVpbGRfd3Jrc3Jj PXBrZ3Mvc2FnZW1hdGgtc3RhbmRhcmQKIGJ1aWxkX3N0eWxlPXB5dGhvbjMtbW9kdWxlCiBfYmlu ZGlyPS91c3IvbGliL3NhZ2VtYXRoLyR2ZXJzaW9uL2JpbgogbWFrZV9pbnN0YWxsX2FyZ3M9Ii0t aW5zdGFsbC1zY3JpcHRzPSRfYmluZGlyIgotaG9zdG1ha2VkZXBlbmRzPSJtNCBwa2ctY29uZmln IHB5dGhvbjMtQ3l0aG9uMC4yOSBweXRob24zLUppbmphMgoraG9zdG1ha2VkZXBlbmRzPSJtNCBw a2ctY29uZmlnIHB5dGhvbjMtQ3l0aG9uIHB5dGhvbjMtSmluamEyCiAgcHl0aG9uMy1wa2djb25m aWcgcHl0aG9uMy1zZXR1cHRvb2xzIgogbWFrZWRlcGVuZHM9ImFyYi1kZXZlbCBib29zdC1kZXZl bCBicmlhbC1kZXZlbCBjbGlxdWVyLWRldmVsIGVjbCBlY2xpYi1kZXZlbAogIGVjbS1kZXZlbCBm Zmxhcy1mZnBhY2sgZmxpbnRsaWItZGV2ZWwgZ2FwLWRldmVsIGdkLWRldmVsIGdpYWMtZGV2ZWwg Z2xway1kZXZlbApAQCAtMTgsNyArMTgsNyBAQCBtYWtlZGVwZW5kcz0iYXJiLWRldmVsIGJvb3N0 LWRldmVsIGJyaWFsLWRldmVsIGNsaXF1ZXItZGV2ZWwgZWNsIGVjbGliLWRldmVsCiBkZXBlbmRz PSJlY2xpYi1kZXZlbCBmZmxhcy1mZnBhY2sgZmxpbnRsaWItZGV2ZWwgZ2NjLWZvcnRyYW4gZ2Qt ZGV2ZWwKICBnZmFuIGdpYWMgZ3NsLWRldmVsIGd6aXAgbGlicG5nLWRldmVsIGxpbmJveC1kZXZl bCBtNHJpLWRldmVsIG1heGltYS1lY2wKICBtcGZyLWRldmVsIG5hdXR5IG50bC1kZXZlbCBwYWxw IHBhcmktZGV2ZWwgcGFyaS1lbGxkYXRhLXNtYWxsIHBhcmktZ2FsZGF0YQotIHBhcmktZ2FscG9s LXNtYWxsIHBhcmktc2VhZGF0YS1zbWFsbCBwa2ctY29uZmlnIHB5dGhvbjMtQ3l0aG9uMC4yOSBw eXRob24zLWN5cGFyaTIKKyBwYXJpLWdhbHBvbC1zbWFsbCBwYXJpLXNlYWRhdGEtc21hbGwgcGtn LWNvbmZpZyBweXRob24zLUN5dGhvbiBweXRob24zLWN5cGFyaTIKICBweXRob24zLWN5c2lnbmFs cyBweXRob24zLWRldmVsIHB5dGhvbjMtZnB5bGxsIHB5dGhvbjMtaXB5dGhvbiBweXRob24zLWxy Y2FsYwogIHB5dGhvbjMtaXB5dGhvbl9pcHlrZXJuZWwgcHl0aG9uMy1qdXB5dGVyX2lweXdpZGdl dHMgcHl0aG9uMy1tYXRwbG90bGliCiAgcHl0aG9uMy1tZW1vcnlfYWxsb2NhdG9yIHB5dGhvbjMt bmV0d29ya3ggcHl0aG9uMy1waXAgcHl0aG9uMy1wa2djb25maWcK --===============6342409605305210382==--