From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: * X-Spam-Status: No, score=1.5 required=5.0 tests=ALL_TRUSTED,DKIM_ADSP_NXDOMAIN, URIBL_BLACK autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 4422 invoked from network); 28 Dec 2020 13:53:44 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 28 Dec 2020 13:53:44 -0000 Content-Type: multipart/mixed; boundary="===============8687780598349670412==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_crosstoolchain_build-style?= To: ml@inbox.vuxu.org From: q66 Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Mon, 28 Dec 2020 14:53:44 +0100 List-Id: Message-ID: <20201228135344.8dnhXthYsg0JsYVejQzfmus1IOqHpWy8EctblbqJQ9c@z> GitHub notification mails are now in MIME to allow UTF8. --===============8687780598349670412== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgcTY2IGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9xNjYvdm9p ZC1wYWNrYWdlcyBjcm9zcy1zdHlsZQpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lk LXBhY2thZ2VzL3B1bGwvMjc0MTIKCmNyb3NzdG9vbGNoYWluIGJ1aWxkLXN0eWxlClRoaXMgaW50 cm9kdWNlcyBhIGJ1aWxkLXN0eWxlIGZvciBzeXN0ZW0gY3Jvc3N0b29sY2hhaW5zLiBJdCBvbmx5 IHdvcmtzLCBhbmQgd2lsbCBvbmx5IHdvcmssIGZvciB0b29sY2hhaW5zIHRhcmdldGluZyBWb2lk IGFuZCBvbmUgb2YgaXRzIHN0YW5kYXJkIGxpYnJhcmllcy4gVGhlIG5vbmUgdGFyZ2V0cyBhbmQg c3R1ZmYgbGlrZSBtaW5ndyBhcmUgZXhwbGljaXRseSBhIG5vbi1nb2FsLCB0byByZWR1Y2UgdGhl IGFtb3VudCBvZiBtYWdpYyB3ZSBoYXZlIHRvIGRvLg0KDQpUaGlzIGhhcyBhIGJ1bmNoIG9mIGFk dmFudGFnZXM6DQoNCi0gY3Jvc3N0b29sY2hhaW4gdGVtcGxhdGVzIGNhbiBub3cgYmUgc21hbGwg YW5kIHNpbXBsZQ0KLSBjcm9zc3Rvb2xjaGFpbnMgd3JpdGVuIHdpdGggdGhpcyBidWlsZC1zdHls ZSB3aWxsIG5vIGxvbmdlciBtZXNzIHVwIG1hc3RlcmRpcnMgbGlrZSB0aGUgZXhpc3Rpbmcgb25l cyBkbzsgeW91IGNhbiBzYWZlbHkgYnVpbGQgeW91ciBzdHVmZiB3aXRob3V0IGAtdGAgYW5kIHlv dXIgYG1hc3RlcmRpcmAgd2lsbCBiZSBwcmlzdGluZQ0KLSB1bmlmaWNhdGlvbiBvZiBvcHRpb25z IHBhc3NlZCB0byBgZ2NjYC9saWJjL2BiaW51dGlsc2AgY29uZmlndXJlLCBhcyBtdWNoIGFzIHBv c3NpYmxlDQotIHJlZHVjZWQgcmVwZWF0ZWQgYm9pbGVycGxhdGUgY29kZSBiZXR3ZWVuIGluZGl2 aWR1YWwgY3Jvc3N0b29sY2hhaW5zDQotIGBjY2FjaGVgIGZyaWVuZGx5DQotIGVhc2llciB1cGdy YWRlcywgZWFzaWVyIG1haW50ZW5hbmNlLCBldGMNCg0KVGhpcyBpcyBjdXJyZW50bHkgaW5jb21w bGV0ZS4gVGhlc2UgdGhpbmdzIGFyZSBsZWZ0IHRvIGRvOg0KDQotIFt4XSBBZGQgbXVzbCBzdXBw b3J0DQotIFt4XSBDbGVhbiB1cCB0aGUgY29uZmlndXJlIHBhcmFtcywgb25seSBrZWVwIHRoZSBn ZW5lcmljIG9uZXMgaW4gdGhlIGJ1aWxkLXN0eWxlLCBzcGVjaWZpYyBvbmVzIHdpbGwgZ28gaW50 byBpbmRpdmlkdWFsIGNyb3NzdG9vbGNoYWlucyAodGhpcyBvbmUgaXMgbGFyZ2VseSBiYXNlZCBv biB3aGF0IHRoZSBhYXJjaDY0IG9uZSB3YXMgZG9pbmcpDQotIFt4XSA2NC1iaXQgY3Jvc3Mgb24g MzItYml0IGhvc3RzIGlzIHByb2JhYmx5IGFjdHVhbGx5IGZpbmUgaW4gZ2VuZXJhbCwgd2UganVz dCBuZWVkIHRvIGVuYWJsZSBpdA0KLSB+fkFsbG93IGdsaWJjIGNyb3NzdG9vbGNoYWlucyBvbiBt dXNsfn4gKHRoaXMgbmVlZHMgYGdsaWJjYCAyLjMyIHNvIGl0IHdpbGwgYmUgZG9uZSBsYXRlcikN Cg0KVG9vbGNoYWluIHJld3JpdGUgVE9ETzoNCg0KLSBbeF0gYGNyb3NzLWFhcmNoNjQtbGludXgt Z251YA0KLSBbeF0gYGNyb3NzLWFhcmNoNjQtbGludXgtbXVzbGANCi0gW3hdIGBjcm9zcy1hcm0t bGludXgtZ251ZWFiaWANCi0gW3hdIGBjcm9zcy1hcm0tbGludXgtbXVzbGVhYmlgDQotIFt4XSBg Y3Jvc3MtYXJtLWxpbnV4LWdudWVhYmloZmANCi0gW3hdIGBjcm9zcy1hcm0tbGludXgtbXVzbGVh YmloZmANCi0gW3hdIGBjcm9zcy1hcm12N2wtbGludXgtZ251ZWFiaWhmYA0KLSBbeF0gYGNyb3Nz LWFybXY3bC1saW51eC1tdXNsZWFiaWhmYA0KLSBbeF0gYGNyb3NzLWk2ODYtcGMtbGludXgtZ251 YA0KLSBbeF0gYGNyb3NzLWk2ODYtbGludXgtbXVzbGANCi0gW3hdIGBjcm9zcy1taXBzLWxpbnV4 LW11c2xgDQotIFt4XSBgY3Jvc3MtbWlwcy1saW51eC1tdXNsaGZgDQotIFt4XSBgY3Jvc3MtbWlw c2VsLWxpbnV4LW11c2xgDQotIFt4XSBgY3Jvc3MtbWlwc2VsLWxpbnV4LW11c2xoZmANCi0gW3hd IGBjcm9zcy1wb3dlcnBjLWxpbnV4LWdudWANCi0gW3hdIGBjcm9zcy1wb3dlcnBjLWxpbnV4LW11 c2xgDQotIFt4XSBgY3Jvc3MtcG93ZXJwY2xlLWxpbnV4LWdudWANCi0gW3hdIGBjcm9zcy1wb3dl cnBjbGUtbGludXgtbXVzbGANCi0gW3hdIGBjcm9zcy1wb3dlcnBjNjQtbGludXgtZ251YA0KLSBb eF0gYGNyb3NzLXBvd2VycGM2NC1saW51eC1tdXNsYA0KLSBbeF0gYGNyb3NzLXBvd2VycGM2NGxl LWxpbnV4LWdudWANCi0gW3hdIGBjcm9zcy1wb3dlcnBjNjRsZS1saW51eC1tdXNsYA0KLSBbeF0g YGNyb3NzLXg4Nl82NC1saW51eC1nbnVgDQotIFt4XSBgY3Jvc3MteDg2XzY0LWxpbnV4LW11c2xg DQoNCkZvciBub3csIHBvc3RpbmcgZm9yIGlucHV0Lg0KDQpARHVuY2FlbiBAbGVhaG5ldWtpcmNo ZW4gQHB1bGxtb2xsIEBlcmljb25yIEB2b2lkLWxpbnV4L3BrZy1jb21taXR0ZXJzIA0KDQpbY2kg c2tpcF0KCkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3Zv aWQtcGFja2FnZXMvcHVsbC8yNzQxMi5wYXRjaCBpcyBhdHRhY2hlZA== --===============8687780598349670412== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-cross-style-27412.patch" RnJvbSA1NzUwMGQzN2ZlNWM3ODcxZDVkYmIxYzc0NTQxOGIzMzQxMjAwNTM4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmks IDI1IERlYyAyMDIwIDE0OjU4OjM4ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwMS8yNl0gZ2NjOiB1 c2UgY29uc2lzdGVudCBwYXRjaCBsZXZlbCBmb3IgbXVzbCBwYXRjaGVzCgpuZWVkZWQgZm9yIGNy b3NzIGJ1aWxkIHN0eWxlCi0tLQogc3JjcGtncy9nY2MvZmlsZXMvbGliZ25hcmwtbXVzbC5wYXRj aCB8ICA4ICsrKystLS0tCiBzcmNwa2dzL2djYy9maWxlcy9saWJzc3AtbXVzbC5wYXRjaCAgIHwg MTIgKysrKysrLS0tLS0tCiBzcmNwa2dzL2djYy90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgIHwg IDQgKystLQogMyBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2djYy9maWxlcy9saWJnbmFybC1tdXNsLnBhdGNoIGIv c3JjcGtncy9nY2MvZmlsZXMvbGliZ25hcmwtbXVzbC5wYXRjaAppbmRleCAzMWQzOTYwN2VhNC4u NWVkOWYxNmY1NTggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2NjL2ZpbGVzL2xpYmduYXJsLW11c2wu cGF0Y2gKKysrIGIvc3JjcGtncy9nY2MvZmlsZXMvbGliZ25hcmwtbXVzbC5wYXRjaApAQCAtMyw4 ICszLDggQEAgVXBzdHJlYW06IFVua25vd24KIFJlYXNvbjogUGF0Y2ggbGliZ25hcmwgdG8gbm90 IHVzZSBmdW5jdGlvbiBtaXNzaW5nIGZyb20gbXVzbC4KIAogZGlmZiAtcnVwIGdjYy04LjIuMC9n Y2MvYWRhL2xpYmduYXJsL3Mtb3NpbnRlX19saW51eC5hZHMgZ2NjLTguMi4wLW5ldy9nY2MvYWRh L2xpYmduYXJsL3Mtb3NpbnRlX19saW51eC5hZHMKLS0tLSBnY2MtOC4yLjAvZ2NjL2FkYS9saWJn bmFybC9zLW9zaW50ZV9fbGludXguYWRzCTIwMTgtMDEtMTEgMDA6NTU6MjUuMDAwMDAwMDAwIC0w ODAwCi0rKysgZ2NjLTguMi4wLW5ldy9nY2MvYWRhL2xpYmduYXJsL3Mtb3NpbnRlX19saW51eC5h ZHMJMjAxOC0xMS0wMSAxNjoxNjoyMy4zNzI0NTI5NTEgLTA3MDAKKy0tLSBnY2MvYWRhL2xpYmdu YXJsL3Mtb3NpbnRlX19saW51eC5hZHMJMjAxOC0wMS0xMSAwMDo1NToyNS4wMDAwMDAwMDAgLTA4 MDAKKysrKyBnY2MvYWRhL2xpYmduYXJsL3Mtb3NpbnRlX19saW51eC5hZHMJMjAxOC0xMS0wMSAx NjoxNjoyMy4zNzI0NTI5NTEgLTA3MDAKIEBAIC0zOTQsMTIgKzM5NCw2IEBAIHBhY2thZ2UgU3lz dGVtLk9TX0ludGVyZmFjZSBpcwogICAgIFBUSFJFQURfUldMT0NLX1BSRUZFUl9XUklURVJfTlAg ICAgICAgICAgICAgIDogY29uc3RhbnQgOj0gMTsKICAgICBQVEhSRUFEX1JXTE9DS19QUkVGRVJf V1JJVEVSX05PTlJFQ1VSU0lWRV9OUCA6IGNvbnN0YW50IDo9IDI7CkBAIC0zMSw4ICszMSw4IEBA IGRpZmYgLXJ1cCBnY2MtOC4yLjAvZ2NjL2FkYS9saWJnbmFybC9zLW9zaW50ZV9fbGludXguYWRz IGdjYy04LjIuMC1uZXcvZ2NjL2FkYS9sCiAgICAgICAgc2NoZWRfcHJpb3JpdHkgOiBpbnQ7ICAt LSAgc2NoZWR1bGluZyBwcmlvcml0eQogICAgIGVuZCByZWNvcmQ7CiBkaWZmIC1ydXAgZ2NjLTgu Mi4wL2djYy9hZGEvbGliZ25hcmwvcy10YXByb3BfX2xpbnV4LmFkYiBnY2MtOC4yLjAtbmV3L2dj Yy9hZGEvbGliZ25hcmwvcy10YXByb3BfX2xpbnV4LmFkYgotLS0tIGdjYy04LjIuMC9nY2MvYWRh L2xpYmduYXJsL3MtdGFwcm9wX19saW51eC5hZGIJMjAxOC0wMS0xMSAwMDo1NToyNS4wMDAwMDAw MDAgLTA4MDAKLSsrKyBnY2MtOC4yLjAtbmV3L2djYy9hZGEvbGliZ25hcmwvcy10YXByb3BfX2xp bnV4LmFkYgkyMDE4LTExLTEzIDExOjI4OjM2LjQzMzk2NDQ0OSAtMDgwMAorLS0tIGdjYy9hZGEv bGliZ25hcmwvcy10YXByb3BfX2xpbnV4LmFkYgkyMDE4LTAxLTExIDAwOjU1OjI1LjAwMDAwMDAw MCAtMDgwMAorKysrIGdjYy9hZGEvbGliZ25hcmwvcy10YXByb3BfX2xpbnV4LmFkYgkyMDE4LTEx LTEzIDExOjI4OjM2LjQzMzk2NDQ0OSAtMDgwMAogQEAgLTIwMiw5ICsyMDIsNiBAQCBwYWNrYWdl IGJvZHkgU3lzdGVtLlRhc2tfUHJpbWl0aXZlcy5PcGVyCiAgICAgcHJhZ21hIEltcG9ydAogICAg ICAgKEMsIEdOQVRfcHRocmVhZF9jb25kYXR0cl9zZXR1cCwgIl9fZ25hdF9wdGhyZWFkX2NvbmRh dHRyX3NldHVwIik7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2djYy9maWxlcy9saWJzc3AtbXVzbC5w YXRjaCBiL3NyY3BrZ3MvZ2NjL2ZpbGVzL2xpYnNzcC1tdXNsLnBhdGNoCmluZGV4IDhhNjkyYzBk NjY0Li44ZDQ3YjQ0MmFhMSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nY2MvZmlsZXMvbGlic3NwLW11 c2wucGF0Y2gKKysrIGIvc3JjcGtncy9nY2MvZmlsZXMvbGlic3NwLW11c2wucGF0Y2gKQEAgLTIs OCArMiw4IEBAIEZpcnN0IHBhcnQgdGFrZW4gZnJvbSBBbHBpbmUuCiAKIFNlY29uZCBwYXJ0IGFk ZGVkIHRvIHByZXZlbnQgZ2NjZ28gZnJvbSB0aGlua2luZyBpdCBjYW4gLWZzcGxpdC1zdGFjayBv biBtdXNsLgogCi0tLS0gYS9nY2MvZ2NjLmMKLSsrKyBiL2djYy9nY2MuYworLS0tIGdjYy9nY2Mu YworKysrIGdjYy9nY2MuYwogQEAgLTg3Niw5ICs4NzYsOCBAQAogICNlbmRpZgogIApAQCAtMTUs OCArMTUsOCBAQCBTZWNvbmQgcGFydCBhZGRlZCB0byBwcmV2ZW50IGdjY2dvIGZyb20gdGhpbmtp bmcgaXQgY2FuIC1mc3BsaXQtc3RhY2sgb24gbXVzbC4KICAjZWxzZQogICNkZWZpbmUgTElOS19T U1BfU1BFQyAiJXtmc3RhY2stcHJvdGVjdG9yfGZzdGFjay1wcm90ZWN0b3ItYWxsIiBcCiAgCQkg ICAgICAgInxmc3RhY2stcHJvdGVjdG9yLXN0cm9uZ3xmc3RhY2stcHJvdGVjdG9yLWV4cGxpY2l0 IiBcCi0tLS0gYS9nY2MvY29uZmlnL2kzODYvZ251LXVzZXItY29tbW9uLmgKLSsrKyBiL2djYy9j b25maWcvaTM4Ni9nbnUtdXNlci1jb21tb24uaAorLS0tIGdjYy9jb25maWcvaTM4Ni9nbnUtdXNl ci1jb21tb24uaAorKysrIGdjYy9jb25maWcvaTM4Ni9nbnUtdXNlci1jb21tb24uaAogQEAgLTY0 LDkgKzY0LDMgQEAgYWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5v dCBzZWUKICAKICAvKiBTdGF0aWMgc3RhY2sgY2hlY2tpbmcgaXMgc3VwcG9ydGVkIGJ5IG1lYW5z IG9mIHByb2Jlcy4gICovCkBAIC0yNyw4ICsyNyw4IEBAIFNlY29uZCBwYXJ0IGFkZGVkIHRvIHBy ZXZlbnQgZ2NjZ28gZnJvbSB0aGlua2luZyBpdCBjYW4gLWZzcGxpdC1zdGFjayBvbiBtdXNsLgog LSNpZiBIQVZFX0dBU19DRklfUEVSU09OQUxJVFlfRElSRUNUSVZFCiAtI2RlZmluZSBUQVJHRVRf Q0FOX1NQTElUX1NUQUNLCiAtI2VuZGlmCi0tLS0gYS9nY2MvY29uZmlnL2kzODYvZ251LmgKLSsr KyBiL2djYy9jb25maWcvaTM4Ni9nbnUuaAorLS0tIGdjYy9jb25maWcvaTM4Ni9nbnUuaAorKysr IGdjYy9jb25maWcvaTM4Ni9nbnUuaAogQEAgLTQwLDExICs0MCw2IEBAIGFsb25nIHdpdGggR0ND LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgogIC8qIGkzODYg Z2xpYmMgcHJvdmlkZXMgX19zdGFja19jaGtfZ3VhcmQgaW4gJWdzOjB4MTQuICAqLwogICNkZWZp bmUgVEFSR0VUX1RIUkVBRF9TU1BfT0ZGU0VUICAgICAgICAweDE0CmRpZmYgLS1naXQgYS9zcmNw a2dzL2djYy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ2NjL3RlbXBsYXRlCmluZGV4IDQ3MmI5NTJlYWUz Li4wMmE3NTE2MDAyZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nY2MvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9nY2MvdGVtcGxhdGUKQEAgLTE3Myw4ICsxNzMsOCBAQCBwcmVfY29uZmlndXJlKCkgewog CXNlZCAtaSAiL2FjX2NwcD0vcy9cJENQUEZMQUdTL1wkQ1BQRkxBR1MgLU8yLyIge2djYyxsaWJp YmVydHl9L2NvbmZpZ3VyZQogCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgogCQkqLW11 c2wpCi0JCQlwYXRjaCAtcDEgLWkgJHtGSUxFU0RJUn0vbGliZ25hcmwtbXVzbC5wYXRjaAotCQkJ cGF0Y2ggLXAxIC1pICR7RklMRVNESVJ9L2xpYnNzcC1tdXNsLnBhdGNoCisJCQlwYXRjaCAtcDAg LWkgJHtGSUxFU0RJUn0vbGliZ25hcmwtbXVzbC5wYXRjaAorCQkJcGF0Y2ggLXAwIC1pICR7RklM RVNESVJ9L2xpYnNzcC1tdXNsLnBhdGNoCiAJCQlwYXRjaCAtcDAgLWkgJHtGSUxFU0RJUn0vZ2Nj Z28tbXVzbC5wYXRjaAogCQkJOzsKIAllc2FjCgpGcm9tIGUwZWNlNjI0YmViNTdkZjc4MTc3NDEz MzE0ZGQ4MzMzOTdjYWMzYmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHE2NiA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMjUgRGVjIDIwMjAgMDA6NDI6MjYgKzAxMDAK U3ViamVjdDogW1BBVENIIDAyLzI2XSBjb21tb24vYnVpbGQtc3R5bGU6IGFkZCB2b2lkLWNyb3Nz Cgp0aGlzIGludHJvZHVjZXMgYSBuZXcgYnVpbGQtc3R5bGUgdm9pZC1jcm9zcywgd2hpY2ggY2Fu IGJlIHVzZWQKdG8gd3JpdGUgc3lzdGVtIGNyb3NzdG9vbGNoYWluIHRlbXBsYXRlczsgdGhpcyBp cyB0byByZWR1Y2UgdGhlCmFtb3VudCBvZiBtYWludGVuYW5jZSwgcmVzb2x2ZSBleGlzdGluZyBw cm9ibGVtcyB3aXRoIHRoZSBjcm9zcwp0b29sY2hhaW4gdGVtcGxhdGVzIGFuZCByZW1vdmUgcmVw ZWF0ZWQgY29kZQotLS0KIGNvbW1vbi9idWlsZC1zdHlsZS92b2lkLWNyb3NzLnNoICAgICAgICAg ICAgIHwgNjAwICsrKysrKysrKysrKysrKysrKysKIGNvbW1vbi9lbnZpcm9ubWVudC9idWlsZC1z dHlsZS92b2lkLWNyb3NzLnNoIHwgIDE0ICsKIDIgZmlsZXMgY2hhbmdlZCwgNjE0IGluc2VydGlv bnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb21tb24vYnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5z aAogY3JlYXRlIG1vZGUgMTAwNjQ0IGNvbW1vbi9lbnZpcm9ubWVudC9idWlsZC1zdHlsZS92b2lk LWNyb3NzLnNoCgpkaWZmIC0tZ2l0IGEvY29tbW9uL2J1aWxkLXN0eWxlL3ZvaWQtY3Jvc3Muc2gg Yi9jb21tb24vYnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5zaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uMDQwZDVlZWM3NGYKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24v YnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5zaApAQCAtMCwwICsxLDYwMCBAQAorIworIyBUaGlzIGhl bHBlciBpcyBmb3Igdm9pZCBzeXN0ZW0gY3Jvc3N0b29sY2hhaW4gdGVtcGxhdGVzLgorIworIyBN YW5kYXRvcnkgdmFyaWFibGVzOgorIworIyAtIGNyb3NzX3RyaXBsZXQgLSB0aGUgdGFyZ2V0IHRy aXBsZXQgKGUuZy4gYWFyY2g2NC1saW51eC1nbnUpCisjIC0gY3Jvc3NfbGludXhfYXJjaCAtIHRo ZSBzb3VyY2UgQVJDSCBvZiB0aGUga2VybmVsIChlLmcuIGFybTY0KQorIyAtIGNyb3NzX2xpYnVj b250ZXh0X2FyY2ggLSBvbmx5IG9uIG11c2wgd2l0aG91dCBjcm9zc19nY2Nfc2tpcF9nbworIwor IyBPcHRpb25hbCB2YXJpYWJsZXM6CisjCisjIC0gY3Jvc3NfZ2NjX3NraXBfZ28gLSBkbyBub3Qg YnVpbGQgZ2NjZ28gc3VwcG9ydAorIyAtIGNyb3NzX2JpbnV0aWxzX2NvbmZpZ3VyZV9hcmdzCisj IC0gY3Jvc3NfZ2NjX2Jvb3RzdHJhcF9jb25maWd1cmVfYXJncworIyAtIGNyb3NzX2djY19jb25m aWd1cmVfYXJncworIyAtIGNyb3NzX2dsaWJjX2NmbGFncworIyAtIGNyb3NzX2dsaWJjX2xkZmxh Z3MKKyMgLSBjcm9zc19nbGliY19jb25maWd1cmVfYXJncworIyAtIGNyb3NzX211c2xfY2ZsYWdz CisjIC0gY3Jvc3NfbXVzbF9sZGZsYWdzCisjIC0gY3Jvc3NfbXVzbF9jb25maWd1cmVfYXJncwor IworIyBjb25maWd1cmVfYXJncyBpcyBwYXNzZWQgdG8gYm90aCBib290c3RyYXAgZ2NjIGFuZCBm aW5hbCBnY2MKKyMgaWYgeW91IG5lZWQgdG8gcGFzcyBzb21lIHRvIG9uZSBhbmQgbm90IHRoZSBv dGhlciwgdXNlIHRoZQorIyByZXNwZWN0aXZlIGNyb3NzXyB2YXJpYWJsZXMgZm9yIGZpbmFsIGdj YyBhbmQgYm9vdHN0cmFwIGdjYworIworCitfdm9pZF9jcm9zc19hcHBseV9wYXRjaCgpIHsKKwls b2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUgJDIpIgorCWlmIFsgISAtZiAiLiR7cG5h bWV9X2RvbmUiIF07IHRoZW4KKwkJcGF0Y2ggLU4gJGFyZ3MgLWkgJDIKKwkJdG91Y2ggLiR7cG5h bWV9X2RvbmUKKwlmaQorfQorCitfdm9pZF9jcm9zc19jaGVja19zdGFtcCgpIHsKKwljZCAke3dy a3NyY30KKwlpZiBbIC1mICIuJHsxfV9kb25lIiBdOyB0aGVuCisJCXJldHVybiAxCisJZmkKKwly ZXR1cm4gMAorfQorCitfdm9pZF9jcm9zc19idWlsZF9iaW51dGlscygpIHsKKwlfdm9pZF9jcm9z c19jaGVja19zdGFtcCBiaW51dGlscyB8fCByZXR1cm4gMAorCisJbG9jYWwgdmVyPSQxCisKKwlt c2dfbm9ybWFsICJCdWlsZGluZyBiaW51dGlscyBmb3IgJHtjcm9zc190cmlwbGV0fVxuIgorCisJ bWtkaXIgLXAgYmludXRpbHNfYnVpbGQKKwljZCBiaW51dGlsc19idWlsZAorCisJLi4vYmludXRp bHMtJHt2ZXJ9L2NvbmZpZ3VyZSBcCisJCS0tcHJlZml4PS91c3IgXAorCQktLXNiaW5kaXI9L3Vz ci9iaW4gXAorCQktLWxpYmRpcj0vdXNyL2xpYiBcCisJCS0tbGliZXhlY2Rpcj0vdXNyL2xpYiBc CisJCS0tdGFyZ2V0PSR7Y3Jvc3NfdHJpcGxldH0gXAorCQktLXdpdGgtc3lzcm9vdD0vdXNyLyR7 Y3Jvc3NfdHJpcGxldH0gXAorCQktLWRpc2FibGUtbmxzIFwKKwkJLS1kaXNhYmxlLXNoYXJlZCBc CisJCS0tZGlzYWJsZS1tdWx0aWxpYiBcCisJCS0tZGlzYWJsZS13ZXJyb3IgXAorCQktLWRpc2Fi bGUtZ29sZCBcCisJCS0td2l0aC1zeXN0ZW0temxpYiBcCisJCS0tZW5hYmxlLWRldGVybWluaXN0 aWMtYXJjaGl2ZXMgXAorCQktLWVuYWJsZS1kZWZhdWx0LWhhc2gtc3R5bGU9Z251IFwKKwkJJHtj cm9zc19iaW51dGlsc19jb25maWd1cmVfYXJnc30KKworCW1ha2UgY29uZmlndXJlLWhvc3QKKwlt YWtlICR7bWFrZWpvYnN9CisKKwltYWtlIGluc3RhbGwgREVTVERJUj0ke3dya3NyY30vYnVpbGRf cm9vdAorCisJdG91Y2ggJHt3cmtzcmN9Ly5iaW51dGlsc19kb25lCit9CisKK192b2lkX2Nyb3Nz X2J1aWxkX2Jvb3RzdHJhcF9nY2MoKSB7CisJX3ZvaWRfY3Jvc3NfY2hlY2tfc3RhbXAgZ2NjX2Jv b3RzdHJhcCB8fCByZXR1cm4gMAorCisJbG9jYWwgdmVyPSQxCisKKwltc2dfbm9ybWFsICJQYXRj aGluZyBHQ0MgZm9yICR7Y3Jvc3NfdHJpcGxldH1cbiIKKworCWNkIGdjYy0ke3Zlcn0KKwlmb3Ig ZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbworCQlfdm9pZF9j cm9zc19hcHBseV9wYXRjaCAtcDAgIiRmIgorCWRvbmUKKwlpZiBbIC1mICR7d3Jrc3JjfS8ubXVz bF92ZXJzaW9uIF07IHRoZW4KKwkJZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL2ZpbGVz LyotbXVzbC5wYXRjaDsgZG8KKwkJCV92b2lkX2Nyb3NzX2FwcGx5X3BhdGNoIC1wMCAiJGYiCisJ CWRvbmUKKwlmaQorCWNkIC4uCisKKwltc2dfbm9ybWFsICJCdWlsZGluZyBib290c3RyYXAgR0ND IGZvciAke2Nyb3NzX3RyaXBsZXR9XG4iCisKKwlta2RpciAtcCBnY2NfYm9vdHN0cmFwCisJY2Qg Z2NjX2Jvb3RzdHJhcAorCisJbG9jYWwgZXh0cmFfYXJncworCWlmIFsgLWYgJHt3cmtzcmN9Ly5t dXNsX3ZlcnNpb24gXTsgdGhlbgorCQlleHRyYV9hcmdzKz0iIC0td2l0aC1uZXdsaWIiCisJCWV4 dHJhX2FyZ3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMiCisJCWV4dHJhX2FyZ3MrPSIgbGliYXRfY3Zf aGF2ZV9pZnVuYz1ubyIKKwllbHNlCisJCWV4dHJhX2FyZ3MrPSIgLS13aXRob3V0LWhlYWRlcnMi CisJZmkKKworCS4uL2djYy0ke3Zlcn0vY29uZmlndXJlIFwKKwkJLS1wcmVmaXg9L3VzciBcCisJ CS0tc2JpbmRpcj0vdXNyL2JpbiBcCisJCS0tbGliZGlyPS91c3IvbGliIFwKKwkJLS1saWJleGVj ZGlyPS91c3IvbGliIFwKKwkJLS10YXJnZXQ9JHtjcm9zc190cmlwbGV0fSBcCisJCS0tZGlzYWJs ZS1ubHMgXAorCQktLWRpc2FibGUtbXVsdGlsaWIgXAorCQktLWRpc2FibGUtc2hhcmVkIFwKKwkJ LS1kaXNhYmxlLWxpYnF1YWRtYXRoIFwKKwkJLS1kaXNhYmxlLWRlY2ltYWwtZmxvYXQgXAorCQkt LWRpc2FibGUtbGliZ29tcCBcCisJCS0tZGlzYWJsZS1saWJtcHggXAorCQktLWRpc2FibGUtbGli bXVkZmxhcCBcCisJCS0tZGlzYWJsZS1saWJzc3AgXAorCQktLWRpc2FibGUtbGliaXRtIFwKKwkJ LS1kaXNhYmxlLWxpYmF0b21pYyBcCisJCS0tZGlzYWJsZS10aHJlYWRzIFwKKwkJLS1kaXNhYmxl LXNqbGotZXhjZXB0aW9ucyBcCisJCS0tZW5hYmxlLWxhbmd1YWdlcz1jIFwKKwkJLS13aXRoLWdu dS1sZCBcCisJCS0td2l0aC1nbnUtYXMgXAorCQkke2V4dHJhX2FyZ3N9IFwKKwkJJHtjb25maWd1 cmVfYXJnc30gXAorCQkke2Nyb3NzX2djY19ib290c3RyYXBfY29uZmlndXJlX2FyZ3N9CisKKwlt YWtlICR7bWFrZWpvYnN9CisJbWFrZSBpbnN0YWxsIERFU1RESVI9JHt3cmtzcmN9L2J1aWxkX3Jv b3QKKworCWxvY2FsIHB0cnM9JCgke2Nyb3NzX3RyaXBsZXR9LWdjYyAtZE0gLUUgLSA8IC9kZXYv bnVsbCB8IFwKKwkJZ3JlcCBfX1NJWkVPRl9QT0lOVEVSX18pCisJbG9jYWwgd3M9JHtwdHJzIyMq IH0KKworCWNhc2UgJHt3c30gaW4KKwkJOCkgZWNobyA2NCA+ICR7d3Jrc3JjfS8uZ2NjX3dvcmRz aXplIDs7CisJCTQpIGVjaG8gMzIgPiAke3dya3NyY30vLmdjY193b3Jkc2l6ZSA7OworCQkqKSBt c2dfZXJyb3IgIlVua25vd24gd29yZCBzaXplOiAke3dzfVxuIiA7OworCWVzYWMKKworCXRvdWNo ICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lCit9CisKK192b2lkX2Nyb3NzX2J1aWxkX2tl cm5lbF9oZWFkZXJzKCkgeworCV92b2lkX2Nyb3NzX2NoZWNrX3N0YW1wIGxpbnV4X2hlYWRlcnMg fHwgcmV0dXJuIDAKKworCWxvY2FsIHZlcj0kMQorCisJbXNnX25vcm1hbCAiUGF0Y2hpbmcgTGlu dXggaGVhZGVycyBmb3IgJHtjcm9zc190cmlwbGV0fVxuIgorCisJY2QgbGludXgtJHt2ZXJ9CisJ Zm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0va2VybmVsLWxpYmMtaGVhZGVycy9wYXRjaGVzLyou cGF0Y2g7IGRvCisJCV92b2lkX2Nyb3NzX2FwcGx5X3BhdGNoIC1wMCAkZgorCWRvbmUKKwljZCAu LgorCisJbXNnX25vcm1hbCAiQnVpbGRpbmcgTGludXggaGVhZGVycyBmb3IgJHtjcm9zc190cmlw bGV0fVxuIgorCisJY2QgbGludXgtJHt2ZXJ9CisKKwltYWtlIEFSQ0g9JGNyb3NzX2xpbnV4X2Fy Y2ggaGVhZGVyc19jaGVjaworCW1ha2UgQVJDSD0kY3Jvc3NfbGludXhfYXJjaCBcCisJCUlOU1RB TExfSERSX1BBVEg9JHt3cmtzcmN9L2J1aWxkX3Jvb3QvdXNyLyR7Y3Jvc3NfdHJpcGxldH0vdXNy IFwKKwkJaGVhZGVyc19pbnN0YWxsCisKKwl0b3VjaCAke3dya3NyY30vLmxpbnV4X2hlYWRlcnNf ZG9uZQorfQorCitfdm9pZF9jcm9zc19idWlsZF9nbGliY19oZWFkZXJzKCkgeworCV92b2lkX2Ny b3NzX2NoZWNrX3N0YW1wIGdsaWJjX2hlYWRlcnMgfHwgcmV0dXJuIDAKKworCWxvY2FsIHZlcj0k MQorCisJbG9jYWwgdGd0PSRjcm9zc190cmlwbGV0CisKKwltc2dfbm9ybWFsICJQYXRjaGluZyBn bGliYyBmb3IgJHtjcm9zc190cmlwbGV0fVxuIgorCisJY2QgZ2xpYmMtJHt2ZXJ9CisJaWYgWyAt ZCAiJHtYQlBTX1NSQ1BLR0RJUn0vZ2xpYmMvcGF0Y2hlcyIgXTsgdGhlbgorCQlmb3IgZiBpbiAk e1hCUFNfU1JDUEtHRElSfS9nbGliYy9wYXRjaGVzLyoucGF0Y2g7IGRvCisJCQlfdm9pZF9jcm9z c19hcHBseV9wYXRjaCAtcDEgIiRmIgorCQlkb25lCisJZmkKKwljZCAuLgorCisJbXNnX25vcm1h bCAiQnVpbGRpbmcgZ2xpYmMgaGVhZGVycyBmb3IgJHtjcm9zc190cmlwbGV0fVxuIgorCisJbWtk aXIgLXAgZ2xpYmNfaGVhZGVycworCWNkIGdsaWJjX2hlYWRlcnMKKworCWVjaG8gImxpYmNfY3Zf Zm9yY2VkX3Vud2luZD15ZXMiID4gY29uZmlnLmNhY2hlCisJZWNobyAibGliY19jdl9jX2NsZWFu dXA9eWVzIiA+PiBjb25maWcuY2FjaGUKKworCSMgd2UgZG9uJ3QgbmVlZCBhbnkgY3VzdG9tIGFy Z3MgaGVyZSwgaXQncyBqdXN0IGhlYWRlcnMKKwlDQz0iJHt0Z3R9LWdjYyIgQ1hYPSIke3RndH0t ZysrIiBDUFA9IiR7dGd0fS1jcHAiIExEPSIke3RndH0tbGQiIFwKKwlBUz0iJHt0Z3R9LWFzIiBO TT0iJHt0Z3R9LW5tIiBDRkxBR1M9Ii1waXBlIiBDWFhGTEFHUz0iIiBDUFBGTEFHUz0iIiBcCisJ TERGTEFHUz0iIiBcCisJLi4vZ2xpYmMtJHt2ZXJ9L2NvbmZpZ3VyZSBcCisJCS0tcHJlZml4PS91 c3IgXAorCQktLWhvc3Q9JHt0Z3R9IFwKKwkJLS13aXRoLWhlYWRlcnM9JHt3cmtzcmN9L2J1aWxk X3Jvb3QvdXNyLyR7dGd0fS91c3IvaW5jbHVkZSBcCisJCS0tY29uZmlnLWNhY2hlIFwKKwkJLS1l bmFibGUtb2Jzb2xldGUtcnBjIFwKKwkJLS1lbmFibGUtb2Jzb2xldGUtbnNsIFwKKwkJLS1lbmFi bGUta2VybmVsPTIuNi4yNyBcCisJCSR7Y3Jvc3NfZ2xpYmNfY29uZmlndXJlX2FyZ3N9CisKKwlt YWtlIC1rIGluc3RhbGwtaGVhZGVycyBjcm9zc19jb21waWxpbmc9eWVzIFwKKwkJaW5zdGFsbF9y b290PSR7d3Jrc3JjfS9idWlsZF9yb290L3Vzci8ke3RndH0KKworCXRvdWNoICR7d3Jrc3JjfS8u Z2xpYmNfaGVhZGVyc19kb25lCit9CisKK192b2lkX2Nyb3NzX2J1aWxkX2dsaWJjKCkgeworCV92 b2lkX2Nyb3NzX2NoZWNrX3N0YW1wIGdsaWJjX2J1aWxkIHx8IHJldHVybiAwCisKKwlsb2NhbCB2 ZXI9JDEKKwlsb2NhbCB0Z3Q9JGNyb3NzX3RyaXBsZXQKKworCW1zZ19ub3JtYWwgIkJ1aWxkaW5n IGdsaWJjIGZvciAke3RndH1cbiIKKworCW1rZGlyIC1wIGdsaWJjX2J1aWxkCisJY2QgZ2xpYmNf YnVpbGQKKworCWxvY2FsIHdzPSQoY2F0ICR7d3Jrc3JjfS8uZ2NjX3dvcmRzaXplKQorCisJZWNo byAic2xpYmRpcj0vdXNyL2xpYiR7d3N9IiA+IGNvbmZpZ3Bhcm1zCisKKwllY2hvICJsaWJjX2N2 X2ZvcmNlZF91bndpbmQ9eWVzIiA+IGNvbmZpZy5jYWNoZQorCWVjaG8gImxpYmNfY3ZfY19jbGVh bnVwPXllcyIgPj4gY29uZmlnLmNhY2hlCisKKwlDQz0iJHt0Z3R9LWdjYyIgQ1hYPSIke3RndH0t ZysrIiBDUFA9IiR7dGd0fS1jcHAiIExEPSIke3RndH0tbGQiIFwKKwlBUj0iJHt0Z3R9LWFyIiBB Uz0iJHt0Z3R9LWFzIiBOTT0iJHt0Z3R9LW5tIiBcCisJQ0ZMQUdTPSItcGlwZSAke2Nyb3NzX2ds aWJjX2NmbGFnc30iIFwKKwlDWFhGTEFHUz0iLXBpcGUgJHtjcm9zc19nbGliY19jZmxhZ3N9IiBc CisJQ1BQRkxBR1M9IiR7Y3Jvc3NfZ2xpYmNfY2ZsYWdzfSIgXAorCUxERkxBR1M9IiR7Y3Jvc3Nf Z2xpYmNfbGRmbGFnc30iIFwKKwkuLi9nbGliYy0ke3Zlcn0vY29uZmlndXJlIFwKKwkJLS1wcmVm aXg9L3VzciBcCisJCS0tbGliZGlyPS91c3IvbGliJHt3c30gXAorCQktLWxpYmV4ZWNkaXI9L3Vz ci9saWJleGVjIFwKKwkJLS1ob3N0PSR7dGd0fSBcCisJCS0td2l0aC1oZWFkZXJzPSR7d3Jrc3Jj fS9idWlsZF9yb290L3Vzci8ke3RndH0vdXNyL2luY2x1ZGUgXAorCQktLWNvbmZpZy1jYWNoZSBc CisJCS0tZW5hYmxlLW9ic29sZXRlLXJwYyBcCisJCS0tZW5hYmxlLW9ic29sZXRlLW5zbCBcCisJ CS0tZGlzYWJsZS1wcm9maWxlIFwKKwkJLS1kaXNhYmxlLXdlcnJvciBcCisJCS0tZW5hYmxlLWtl cm5lbD0yLjYuMjcgXAorCQkke2Nyb3NzX2dsaWJjX2NvbmZpZ3VyZV9hcmdzfQorCisJbWFrZSAk e21ha2Vqb2JzfQorCW1ha2UgaW5zdGFsbF9yb290PSR7d3Jrc3JjfS9idWlsZF9yb290L3Vzci8k e3RndH0gaW5zdGFsbAorCisJdG91Y2ggJHt3cmtzcmN9Ly5nbGliY19idWlsZF9kb25lCit9CisK K192b2lkX2Nyb3NzX2J1aWxkX211c2woKSB7CisJX3ZvaWRfY3Jvc3NfY2hlY2tfc3RhbXAgbXVz bF9idWlsZCB8fCByZXR1cm4gMAorCisJbG9jYWwgdmVyPSQxCisJbG9jYWwgdGd0PSRjcm9zc190 cmlwbGV0CisKKwltc2dfbm9ybWFsICJQYXRjaGluZyBtdXNsIGZvciAke3RndH1cbiIKKworCWNk IG11c2wtJHt2ZXJ9CisJaWYgWyAtZCAiJHtYQlBTX1NSQ1BLR0RJUn0vbXVzbC9wYXRjaGVzIiBd OyB0aGVuCisJCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L211c2wvcGF0Y2hlcy8qLnBhdGNo OyBkbworCQkJX3ZvaWRfY3Jvc3NfYXBwbHlfcGF0Y2ggLXAwICIkZiIKKwkJZG9uZQorCWZpCisJ Y2QgLi4KKworCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIG11c2wgZm9yICR7dGd0fVxuIgorCisJbWtk aXIgLXAgbXVzbF9idWlsZAorCWNkIG11c2xfYnVpbGQKKworCUNDPSIke3RndH0tZ2NjIiBDWFg9 IiR7dGd0fS1nKysiIENQUD0iJHt0Z3R9LWNwcCIgTEQ9IiR7dGd0fS1sZCIgXAorCUFSPSIke3Rn dH0tYXIiIEFTPSIke3RndH0tYXMiIE5NPSIke3RndH0tbm0iIFwKKwlDRkxBR1M9Ii1waXBlIC1m UElDICR7Y3Jvc3NfbXVzbF9jZmxhZ3N9IiBcCisJQ1BQRkxBR1M9IiR7Y3Jvc3NfbXVzbF9jZmxh Z3N9IiBMREZMQUdTPSIke2Nyb3NzX211c2xfbGRmbGFnc30iIFwKKwkuLi9tdXNsLSR7dmVyfS9j b25maWd1cmUgXAorCQktLXByZWZpeD0vdXNyIFwKKwkJLS1ob3N0PSR7dGd0fSBcCisJCSR7Y3Jv c3NfbXVzbF9jb25maWd1cmVfYXJnc30KKworCW1ha2UgJHttYWtlam9ic30KKwltYWtlIERFU1RE SVI9JHt3cmtzcmN9L2J1aWxkX3Jvb3QvdXNyLyR7dGd0fSBpbnN0YWxsCisKKwl0b3VjaCAke3dy a3NyY30vLm11c2xfYnVpbGRfZG9uZQorfQorCitfdm9pZF9jcm9zc19idWlsZF9saWJ1Y29udGV4 dCgpIHsKKwlbIC1uICIkY3Jvc3NfZ2NjX3NraXBfZ28iIF0gJiYgcmV0dXJuIDAKKwlfdm9pZF9j cm9zc19jaGVja19zdGFtcCBsaWJ1Y29udGV4dCB8fCByZXR1cm4gMAorCisJbG9jYWwgdmVyPSQx CisKKwltc2dfbm9ybWFsICJCdWlsZGluZyBsaWJ1Y29udGV4dCBmb3IgJHtjcm9zc190cmlwbGV0 fVxuIgorCisJY2QgbGlidWNvbnRleHQtJHt2ZXJ9CisJIyBhIHRlcnJpYmxlIGhhY2sgYnV0IHNl ZW1zIHRvIHdvcmsgZm9yIG5vdworCUNDPSIke2Nyb3NzX3RyaXBsZXR9LWdjYyIgQVM9IiR7Y3Jv c3NfdHJpcGxldH0tYXMiIEFSPSIke2Nyb3NzX3RyaXBsZXR9LWFyIiBcCisJQ1BQRkxBR1M9Ii1w aXBlICR7Y3Jvc3NfbXVzbF9jZmxhZ3N9IC1nMCAtT3MgLW5vc3RkaW5jIC1pc3lzdGVtICR7d3Jr c3JjfS9idWlsZF9yb290L3Vzci8ke2Nyb3NzX3RyaXBsZXR9L3Vzci9pbmNsdWRlIiBcCisJbWFr ZSBBUkNIPSR7Y3Jvc3NfbGlidWNvbnRleHRfYXJjaH0gbGlidWNvbnRleHQuYQorCisJY3AgbGli dWNvbnRleHQuYSAke3dya3NyY30vYnVpbGRfcm9vdC91c3IvJHtjcm9zc190cmlwbGV0fS91c3Iv bGliCisKKwl0b3VjaCAke3dya3NyY30vLmxpYnVjb250ZXh0X2J1aWxkX2RvbmUKK30KKworX3Zv aWRfY3Jvc3NfYnVpbGRfZ2NjKCkgeworCV92b2lkX2Nyb3NzX2NoZWNrX3N0YW1wIGdjY19idWls ZCB8fCByZXR1cm4gMAorCisJbG9jYWwgdmVyPSQxCisKKwltc2dfbm9ybWFsICJCdWlsZGluZyBn Y2MgZm9yICR7Y3Jvc3NfdHJpcGxldH1cbiIKKworCW1rZGlyIC1wIGdjY19idWlsZAorCWNkIGdj Y19idWlsZAorCisJbG9jYWwgbGFuZ3M9ImMsYysrLGZvcnRyYW4sb2JqYyxvYmotYysrLGFkYSxs dG8iCisJaWYgWyAteiAiJGNyb3NzX2djY19za2lwX2dvIiBdOyB0aGVuCisJCWxhbmdzKz0iLGdv IgorCWZpCisKKwlsb2NhbCBleHRyYV9hcmdzCisJaWYgWyAtZiAke3dya3NyY30vLm11c2xfdmVy c2lvbiBdOyB0aGVuCisJCWV4dHJhX2FyZ3MrPSIgLS1lbmFibGUtbGlic3NwIgorCQkjIG90aGVy d2lzZSBnbGliYyBob3N0cyBnZXQgY29uZnVzZWQgYW5kIHVzZSB0aGUgZ251IGltcGwKKwkJZXh0 cmFfYXJncys9IiAtLWVuYWJsZS1jbG9jYWxlPWdlbmVyaWMiCisJCWV4dHJhX2FyZ3MrPSIgLS1k aXNhYmxlLXN5bXZlcnMiCisJCWV4dHJhX2FyZ3MrPSIgLS1kaXNhYmxlLWdudS11bmlxdWUtb2Jq ZWN0IgorCQlleHRyYV9hcmdzKz0iIGxpYmF0X2N2X2hhdmVfaWZ1bmM9bm8iCisJZWxzZQorCQll eHRyYV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCisJCWV4dHJhX2FyZ3MrPSIgLS1lbmFibGUt Z251LXVuaXF1ZS1vYmplY3QiCisJZmkKKworCSMgbm90ZSBvbiAtLWRpc2FibGUtbGlicXVhZG1h dGg6CisJIyBvbiBzb21lIHBsYXRmb3JtcyB0aGUgbGlicmFyeSBpcyBhY3R1YWxseSBuZWNlc3Nh cnkgZm9yIHRoZQorCSMgZm9ydHJhbiBmcm9udGVuZCB0byBidWlsZCwgYnV0IHN0aWxsIGRpc2Fi bGUgaXQgYmVjYXVzZSBpdAorCSMgc2hvdWxkIG5vdCBiZSBpbiB0aGUgcmVzdWx0aW5nIHBhY2th Z2VzOyBpdCBjb25mbGljdHMgd2l0aAorCSMgdGhlIGxpYnF1YWRtYXRoIHlvdSBjYW4gaW5zdGFs bCBpbnRvIHRoZSBjcm9zcyByb290CisJIworCSMgcGxhdGZvcm1zIHdoZXJlIHRoaXMgaXMgYSBw cm9ibGVtIHNob3VsZCBleHBsaWNpdGx5IGZvcmNlCisJIyBsaWJxdWFkbWF0aCB0byBiZSBvbiB2 aWEgY3Jvc3NfZ2NjX2NvbmZpZ3VyZV9hcmdzLCB0aGUKKwkjIGRvX2luc3RhbGwgaW4gdGhpcyBi dWlsZC1zdHlsZSBhdXRvbWF0aWNhbGx5IHJlbW92ZXMgaXQKKwkjCisJLi4vZ2NjLSR7dmVyfS9j b25maWd1cmUgXAorCQktLXByZWZpeD0vdXNyIFwKKwkJLS1zYmluZGlyPS91c3IvYmluIFwKKwkJ LS1saWJkaXI9L3Vzci9saWIgXAorCQktLWxpYmV4ZWNkaXI9L3Vzci9saWIgXAorCQktLXRhcmdl dD0ke2Nyb3NzX3RyaXBsZXR9IFwKKwkJLS13aXRoLXN5c3Jvb3Q9L3Vzci8ke2Nyb3NzX3RyaXBs ZXR9IFwKKwkJLS13aXRoLWJ1aWxkLXN5c3Jvb3Q9JHt3cmtzcmN9L2J1aWxkX3Jvb3QvdXNyLyR7 Y3Jvc3NfdHJpcGxldH0gXAorCQktLWVuYWJsZS1sYW5ndWFnZXM9JHtsYW5nc30gXAorCQktLWRp c2FibGUtbmxzIFwKKwkJLS1kaXNhYmxlLW11bHRpbGliIFwKKwkJLS1kaXNhYmxlLXNqbGotZXhj ZXB0aW9ucyBcCisJCS0tZGlzYWJsZS1saWJxdWFkbWF0aCBcCisJCS0tZGlzYWJsZS1saWJtdWRm bGFwIFwKKwkJLS1kaXNhYmxlLWxpYml0bSBcCisJCS0tZGlzYWJsZS1saWJ2dHYgXAorCQktLWRp c2FibGUtbGlic2FuaXRpemVyIFwKKwkJLS1kaXNhYmxlLWxpYnN0ZGN4eC1wY2ggXAorCQktLWVu YWJsZS1zaGFyZWQgXAorCQktLWVuYWJsZS10aHJlYWRzPXBvc2l4IFwKKwkJLS1lbmFibGUtX19j eGFfYXRleGl0IFwKKwkJLS1lbmFibGUtbGlua2VyLWJ1aWxkLWlkIFwKKwkJLS1lbmFibGUtbGli YWRhIFwKKwkJLS1lbmFibGUtbHRvIFwKKwkJLS1lbmFibGUtZGVmYXVsdC1waWUgXAorCQktLWVu YWJsZS1kZWZhdWx0LXNzcCBcCisJCS0td2l0aC1nbnUtbGQgXAorCQktLXdpdGgtZ251LWFzIFwK KwkJLS13aXRoLWxpbmtlci1oYXNoLXN0eWxlPWdudSBcCisJCSR7ZXh0cmFfYXJnc30gXAorCQkk e2NvbmZpZ3VyZV9hcmdzfSBcCisJCSR7Y3Jvc3NfZ2NjX2NvbmZpZ3VyZV9hcmdzfQorCisJbWFr ZSAke21ha2Vqb2JzfQorCisJdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZQorfQorCitf dm9pZF9jcm9zc19jaGVja192YXIoKSB7CisJbG9jYWwgdmFyPSJjcm9zc18kezF9IgorCWlmIFsg LXogIiR7IXZhcn0iIF07IHRoZW4KKwkJbXNnX2Vycm9yICJjcm9zc18kezF9IG5vdCBkZWZpbmVk IGluIHRlbXBsYXRlIgorCWZpCit9CisKK192b2lkX2Nyb3NzX3Rlc3RfdmVyKCkgeworCWxvY2Fs IHByb2o9JDEKKwlsb2NhbCBub2Vycj0kMgorCWxvY2FsIHZlciBjdmVyCisJZm9yIHAgaW4gJHtw cm9qfS0qOyBkbworCQljdmVyPSR7cCMke3Byb2p9LX0KKwkJaWYgWyAteiAiJG5vZXJyIiAtYSAt biAiJHZlciIgXTsgdGhlbgorCQkJbXNnX2Vycm9yICJtdWx0aXBsZSB2ZXJzaW9ucyBvZiAke3By b2p9IGZvdW5kOiAke3Zlcn0sICR7Y3Zlcn0iCisJCWZpCisJCXZlcj0ke2N2ZXJ9CisJZG9uZQor CWlmIFsgLWQgIiR7cHJvan0tJHt2ZXJ9IiBdOyB0aGVuCisJCWVjaG8gJHt2ZXJ9ID4gJHt3cmtz cmN9Ly4ke3Byb2p9X3ZlcnNpb24KKwkJcmV0dXJuCisJZmkKKwlpZiBbIC16ICIkbm9lcnIiIF07 IHRoZW4KKwkJbXNnX2Vycm9yICJwcm9qZWN0ICR7cHJvan0gbm90IGF2YWlsYWJsZSBmb3IgYnVp bGRcbiIKKwlmaQorfQorCitkb19idWlsZCgpIHsKKwkjIFZlcmlmeSB0b29sY2hhaW4gdmVyc2lv bnMKKwljZCAke3dya3NyY30KKworCWxvY2FsIGJpbnV0aWxzX3ZlciBsaW51eF92ZXIgZ2NjX3Zl ciBsaWJjX3ZlciBsaWJ1Y29udGV4dF92ZXIKKworCV92b2lkX2Nyb3NzX3Rlc3RfdmVyIGJpbnV0 aWxzCisJX3ZvaWRfY3Jvc3NfdGVzdF92ZXIgbGludXgKKwlfdm9pZF9jcm9zc190ZXN0X3ZlciBn Y2MKKworCWJpbnV0aWxzX3Zlcj0kKGNhdCAuYmludXRpbHNfdmVyc2lvbikKKwlsaW51eF92ZXI9 JChjYXQgLmxpbnV4X3ZlcnNpb24pCisJZ2NjX3Zlcj0kKGNhdCAuZ2NjX3ZlcnNpb24pCisKKwlf dm9pZF9jcm9zc190ZXN0X3ZlciBtdXNsIG5vZXJyCisJaWYgWyAhIC1mIC5tdXNsX3ZlcnNpb24g XTsgdGhlbgorCQlfdm9pZF9jcm9zc190ZXN0X3ZlciBnbGliYworCQlsaWJjX3Zlcj0kKGNhdCAu Z2xpYmNfdmVyc2lvbikKKwllbHNlCisJCWxpYmNfdmVyPSQoY2F0IC5tdXNsX3ZlcnNpb24pCisJ CWlmIFsgLXogIiRjcm9zc19nY2Nfc2tpcF9nbyIgXTsgdGhlbgorCQkJX3ZvaWRfY3Jvc3NfdGVz dF92ZXIgbGlidWNvbnRleHQKKwkJCV92b2lkX2Nyb3NzX2NoZWNrX3ZhciBsaWJ1Y29udGV4dF9h cmNoCisJCQlsaWJ1Y29udGV4dF92ZXI9JChjYXQgLmxpYnVjb250ZXh0X3ZlcnNpb24pCisJCWZp CisJZmkKKworCSMgVmVyaWZ5IHRyaXBsZXQKKwlfdm9pZF9jcm9zc19jaGVja192YXIgdHJpcGxl dAorCV92b2lkX2Nyb3NzX2NoZWNrX3ZhciBsaW51eF9hcmNoCisKKwlsb2NhbCBzeXNyb290PSIv dXNyLyR7Y3Jvc3NfdHJpcGxldH0iCisKKwkjIFByZXBhcmUgZW52aXJvbm1lbnQKKwljZCAke3dy a3NyY30KKworCSMgQ29yZSBkaXJlY3RvcmllcyBmb3IgdGhlIGJ1aWxkIHJvb3QKKwlta2RpciAt cCBidWlsZF9yb290L3Vzci97YmluLGxpYixpbmNsdWRlLHNoYXJlfQorCW1rZGlyIC1wIGJ1aWxk X3Jvb3QvdXNyLyR7Y3Jvc3NfdHJpcGxldH0vdXNyL3tiaW4sbGliLGluY2x1ZGUsc2hhcmV9CisK KwkjIEhvc3Qgcm9vdCB1c2VzIGhvc3Qgd29yZHNpemUKKwlsbiAtc2YgdXNyL2xpYiBidWlsZF9y b290L2xpYgorCWxuIC1zZiB1c3IvbGliIGJ1aWxkX3Jvb3QvbGliJHtYQlBTX1RBUkdFVF9XT1JE U0laRX0KKwlsbiAtc2YgbGliIGJ1aWxkX3Jvb3QvdXNyL2xpYiR7WEJQU19UQVJHRVRfV09SRFNJ WkV9CisKKwkjIFByZXBhcmUgdGFyZ2V0IHN5c3Jvb3QKKwlsbiAtc2YgdXNyL2xpYiBidWlsZF9y b290LyR7c3lzcm9vdH0vbGliCisJbG4gLXNmIGxpYiBidWlsZF9yb290LyR7c3lzcm9vdH0vdXNy L2xpYmV4ZWMKKworCV92b2lkX2Nyb3NzX2J1aWxkX2JpbnV0aWxzICR7YmludXRpbHNfdmVyfQor CisJIyBQcmVwYXJlIGVudmlyb25tZW50IHNvIHdlIGNhbiB1c2UgdGVtcG9yYXJ5IHByZWZpeAor CWxvY2FsIG9sZHBhdGg9IiRQQVRIIgorCWxvY2FsIG9sZGxkbGliPSIkTERfTElCUkFSWV9QQVRI IgorCisJZXhwb3J0IFBBVEg9IiR7d3Jrc3JjfS9idWlsZF9yb290L3Vzci9iaW46JFBBVEgiCisJ ZXhwb3J0IExEX0xJQlJBUllfUEFUSD0iJHt3cmtzcmN9L2J1aWxkX3Jvb3QvdXNyL2xpYjokUEFU SCIKKworCV92b2lkX2Nyb3NzX2J1aWxkX2Jvb3RzdHJhcF9nY2MgJHtnY2NfdmVyfQorCV92b2lk X2Nyb3NzX2J1aWxkX2tlcm5lbF9oZWFkZXJzICR7bGludXhfdmVyfQorCisJbG9jYWwgd3M9JChj YXQgJHt3cmtzcmN9Ly5nY2Nfd29yZHNpemUpCisKKwkjIE5vdyB0aGF0IHdlIGtub3cgdGhlIHRh cmdldCB3b3Jkc2l6ZSwgcHJlcGFyZSBzeW1saW5rcworCWxuIC1zZiB1c3IvbGliICR7d3Jrc3Jj fS9idWlsZF9yb290LyR7c3lzcm9vdH0vbGliJHt3c30KKwlsbiAtc2YgbGliICR7d3Jrc3JjfS9i dWlsZF9yb290LyR7c3lzcm9vdH0vdXNyL2xpYiR7d3N9CisKKwlpZiBbIC1mICR7d3Jrc3JjfS8u bXVzbF92ZXJzaW9uIF07IHRoZW4KKwkJX3ZvaWRfY3Jvc3NfYnVpbGRfbXVzbCAke2xpYmNfdmVy fQorCQlfdm9pZF9jcm9zc19idWlsZF9saWJ1Y29udGV4dCAke2xpYnVjb250ZXh0X3Zlcn0KKwll bHNlCisJCV92b2lkX2Nyb3NzX2J1aWxkX2dsaWJjX2hlYWRlcnMgJHtsaWJjX3Zlcn0KKwkJX3Zv aWRfY3Jvc3NfYnVpbGRfZ2xpYmMgJHtsaWJjX3Zlcn0KKwlmaQorCisJX3ZvaWRfY3Jvc3NfYnVp bGRfZ2NjICR7Z2NjX3Zlcn0KKworCSMgcmVzdG9yZSB0aGlzIHN0dWZmIGluIGNhc2UgbGF0ZXIg aG9va3MgZGVwZW5kIG9uIGl0CisJZXhwb3J0IFBBVEg9IiRvbGRwYXRoIgorCWV4cG9ydCBMRF9M SUJSQVJZX1BBVEg9IiRvbGRsZGxpYiIKK30KKworZG9faW5zdGFsbCgpIHsKKwkjIFdlIG5lZWQg dG8gYmUgYWJsZSB0byBhY2Nlc3MgYmludXRpbHMgaW4gdGhlIHJvb3QKKwlsb2NhbCBvbGRwYXRo PSIkUEFUSCIKKwlsb2NhbCBvbGRsZGxpYj0iJExEX0xJQlJBUllfUEFUSCIKKwlleHBvcnQgUEFU SD0iJHt3cmtzcmN9L2J1aWxkX3Jvb3QvdXNyL2JpbjokUEFUSCIKKwlleHBvcnQgTERfTElCUkFS WV9QQVRIPSIke3dya3NyY30vYnVpbGRfcm9vdC91c3IvbGliOiRQQVRIIgorCisJbG9jYWwgc3lz cm9vdD0iL3Vzci8ke2Nyb3NzX3RyaXBsZXR9IgorCWxvY2FsIHdzPSQoY2F0ICR7d3Jrc3JjfS8u Z2NjX3dvcmRzaXplKQorCisJIyBDb3JlIGRpcmVjdG9yaWVzIGZvciB0aGUgc3lzcm9vdAorCSMK KwkjIGxpYmV4ZWMgaXMgY3JlYXRlZCBmb3Igc3lzcm9vdCBidXQgbm90IGZvciBkZXN0LCBzaW5j ZSBpbiBzeXNyb290CisJIyB3ZSBjb25maWd1cmUgZ2xpYmMgd2l0aCBzZXBhcmF0ZSBsaWJleGVj LCBlbHNld2hlcmUgaXQncyBqdXN0IGxpYgorCSMgYW5kIHdlIHdhbnQgdG8gZGVsZXRlIHRoZSBs aWJleGVjIGZyb20gZ2xpYmMgYWZ0ZXJ3YXJkcyB0byBzYXZlIHNwYWNlCisJbWtkaXIgLXAgJHtE RVNURElSfS8ke3N5c3Jvb3R9L3Vzci97YmluLGxpYixsaWJleGVjLGluY2x1ZGUsc2hhcmV9CisJ IyBTeXNyb290IGJhc2Ugc3ltbGlua3MKKwlsbiAtc2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7c3lz cm9vdH0vbGliCisJbG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke3N5c3Jvb3R9L2xpYiR7d3N9 CisJbG4gLXNmIGxpYiAke0RFU1RESVJ9LyR7c3lzcm9vdH0vdXNyL2xpYiR7d3N9CisKKwkjIElu c3RhbGwgTGludXggaGVhZGVycworCWNkICR7d3Jrc3JjfS9saW51eC0kKGNhdCAke3dya3NyY30v LmxpbnV4X3ZlcnNpb24pCisJbWFrZSBBUkNIPSR7Y3Jvc3NfbGludXhfYXJjaH0gXAorCQlJTlNU QUxMX0hEUl9QQVRIPSR7REVTVERJUn0vJHtzeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCisJ cm0gLWYgJChmaW5kICR7REVTVERJUn0vJHtzeXNyb290fS91c3IvaW5jbHVkZSBcCisJCS1uYW1l IC5pbnN0YWxsIC1vciAtbmFtZSAuLmluc3RhbGwuY21kKQorCXJtIC1yZiAke0RFU1RESVJ9LyR7 c3lzcm9vdH0vdXNyL2luY2x1ZGUvZHJtCisKKwkjIEluc3RhbGwgYmludXRpbHMKKwljZCAke3dy a3NyY30vYmludXRpbHNfYnVpbGQKKwltYWtlIGluc3RhbGwgREVTVERJUj0ke0RFU1RESVJ9CisK KwkjIEluc3RhbGwgZmluYWwgZ2NjCisJY2QgJHt3cmtzcmN9L2djY19idWlsZAorCW1ha2UgaW5z dGFsbCBERVNURElSPSR7REVTVERJUn0KKworCSMgTW92ZSBsaWJjYzEuc28qIHRvIHRoZSBzeXNy b290CisJbXYgJHtERVNURElSfS91c3IvbGliL2xpYmNjMS5zbyogJHtERVNURElSfS8ke3N5c3Jv b3R9L3Vzci9saWIKKworCWlmIFsgLWYgJHt3cmtzcmN9Ly5tdXNsX3ZlcnNpb24gXTsgdGhlbgor CQkjIEluc3RhbGwgbXVzbAorCQljZCAke3dya3NyY30vbXVzbF9idWlsZAorCQltYWtlIERFU1RE SVI9JHtERVNURElSfS8ke3N5c3Jvb3R9IGluc3RhbGwKKworCQkjIFJlbW92ZSB1c2VsZXNzIGhl YWRlcnMKKwkJcm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9nY2MvJHtjcm9zc190cmlwbGV0fS8q L2luY2x1ZGUtZml4ZWQKKworCQkjIE1ha2UgbGQtbXVzbC5zbyBzeW1saW5rcyByZWxhdGl2ZQor CQlmb3IgZiBpbiAke0RFU1RESVJ9LyR7c3lzcm9vdH0vdXNyL2xpYi9sZC1tdXNsLSouc28uKjsg ZG8KKwkJCWxuIC1zZiBsaWJjLnNvICR7Zn0KKwkJZG9uZQorCWVsc2UKKwkJIyBJbnN0YWxsIGds aWJjCisJCWNkICR7d3Jrc3JjfS9nbGliY19idWlsZAorCQltYWtlIGluc3RhbGxfcm9vdD0ke0RF U1RESVJ9LyR7c3lzcm9vdH0gaW5zdGFsbCBpbnN0YWxsLWhlYWRlcnMKKworCQkjIFJlbW92ZSBi YWQgaGVhZGVyCisJCXJtIC1mICR7REVTVERJUn0vdXNyL2xpYi9nY2MvJHtjcm9zc19fdHJpcGxl dH0vKi9pbmNsdWRlLWZpeGVkL2JpdHMvc3RhdHguaAorCWZpCisKKwlsb2NhbCBnY2NfdmVyPSQo Y2F0ICR7d3Jrc3JjfS8uZ2NjX3ZlcnNpb24pCisKKwkjIFN5bWxpbmtzIGZvciBnbmFybCBhbmQg Z25hdCBzaGFyZWQgbGlicmFyaWVzCisJbG9jYWwgbWFqb3J2ZXI9JHtnY2NfdmVyJS4qLip9CisJ bG9jYWwgYWRhbGliPXVzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7Z2NjX3Zlcn0vYWRhbGliCisJ bXYgJHtERVNURElSfS8ke2FkYWxpYn0vbGliZ25hcmwtJHttYWpvcnZlcn0uc28gXAorCQkke0RF U1RESVJ9LyR7c3lzcm9vdH0vdXNyL2xpYgorCW12ICR7REVTVERJUn0vJHthZGFsaWJ9L2xpYmdu YXQtJHttYWpvcnZlcn0uc28gXAorCQkke0RFU1RESVJ9LyR7c3lzcm9vdH0vdXNyL2xpYgorCWxu IC1zZiBsaWJnbmFybC0ke21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7c3lzcm9vdH0vdXNyL2xp Yi9saWJnbmFybC5zbworCWxuIC1zZiBsaWJnbmF0LSR7bWFqb3J2ZXJ9LnNvICR7REVTVERJUn0v JHtzeXNyb290fS91c3IvbGliL2xpYmduYXQuc28KKwlybSAtdmYgJHtERVNURElSfS8ke2FkYWxp Yn0vbGliZ25he3JsLHR9LnNvCisKKwkjIFJlbW92ZSB1bm5lY2Vzc2FyeSBsaWJhdG9taWMgd2hp Y2ggaXMgb25seSBidWlsdCBmb3IgZ2NjZ28KKwlybSAtcmYgJHtERVNURElSfS8ke3N5c3Jvb3R9 L3Vzci9saWIvbGliYXRvbWljLioKKworCSMgSWYgbGlicXVhZG1hdGggd2FzIGZvcmNlZCAobmVl ZGVkIGZvciBnZm9ydHJhbiBvbiBzb21lIHBsYXRmb3JtcykKKwkjIHRoZW4gcmVtb3ZlIGl0IGJl Y2F1c2UgaXQgY29uZmxpY3RzIHdpdGggbGlicXVhZG1hdGggcGFja2FnZQorCXJtIC1yZiAke0RF U1RESVJ9LyR7c3lzcm9vdH0vdXNyL2xpYi9saWJxdWFkbWF0aC4qCisKKwkjIFJlbW92ZSBsZWZ0 b3ZlciBzeW1saW5rcworCXJtIC1mICR7REVTVERJUn0vdXNyL2xpYiR7WEJQU19UQVJHRVRfV09S RFNJWkV9CisJcm0gLWYgJHtERVNURElSfS9saWIqCisJcm0gLWYgJHtERVNURElSfS8qYmluCisJ IyBSZW1vdmUgdW5uZWNlc3Nhcnkgc3R1ZmYKKwlybSAtcmYgJHtERVNURElSfS8ke3N5c3Jvb3R9 L3tzYmluLGV0Yyx2YXIsbGliZXhlY30KKwlybSAtcmYgJHtERVNURElSfS8ke3N5c3Jvb3R9L3Vz ci97c2JpbixzaGFyZSxsaWJleGVjfQorCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9zaGFyZQorCXJt IC1mICR7REVTVERJUn0vdXNyL2xpYiovbGliaWJlcnR5LmEKKworCWV4cG9ydCBQQVRIPSIkb2xk cGF0aCIKKwlleHBvcnQgTERfTElCUkFSWV9QQVRIPSIkb2xkbGRsaWIiCit9CmRpZmYgLS1naXQg YS9jb21tb24vZW52aXJvbm1lbnQvYnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5zaCBiL2NvbW1vbi9l bnZpcm9ubWVudC9idWlsZC1zdHlsZS92b2lkLWNyb3NzLnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi45ODEzOGFlNjRiNQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1v bi9lbnZpcm9ubWVudC9idWlsZC1zdHlsZS92b2lkLWNyb3NzLnNoCkBAIC0wLDAgKzEsMTQgQEAK K2xpYjMyZGlzYWJsZWQ9eWVzCitub2Nyb3NzPXllcworbm9waWU9eWVzCitjcmVhdGVfd3Jrc3Jj PXllcworCitub3N0cmlwX2ZpbGVzKz0iIGxpYmNhZl9zaW5nbGUuYSBsaWJnY2MuYSBsaWJnY292 LmEgbGliZ2NjX2VoLmEKKyBsaWJnbmFybF9waWMuYSBsaWJnbmFybC5hIGxpYmduYXRfcGljLmEg bGliZ25hdC5hIGxpYmdtZW0uYSIKKworIyBnbGliYyBjcm9zc3Rvb2xjaGFpbnMgbm90IGF2YWls YWJsZSBvbiBtdXNsIGhvc3RzIHlldAoraWYgWyAteiAiJGFyY2hzIiAtYSAiJHtjcm9zc190cmlw bGV0Ly1tdXNsfSIgPSAiJHtjcm9zc190cmlwbGV0fSIgXTsgdGhlbgorCWlmIFsgIiRYQlBTX1RB UkdFVF9MSUJDIiAhPSAiZ2xpYmMiIF07IHRoZW4KKwkJYXJjaHM9In4qLW11c2wiCisJZmkKK2Zp CgpGcm9tIGI5Njg1ZTQyMzNiZDhlNTZhOWU5MGZjOWFmNDM1OWMyYjg0MjE1NzkgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZy aSwgMjUgRGVjIDIwMjAgMDA6NDM6NDggKzAxMDAKU3ViamVjdDogW1BBVENIIDAzLzI2XSBjcm9z cy1hYXJjaDY0LWxpbnV4LWdudTogcmVkbyB3aXRoIHZvaWQtY3Jvc3MKCi0tLQogc3JjcGtncy9j cm9zcy1hYXJjaDY0LWxpbnV4LWdudS90ZW1wbGF0ZSB8IDM2MSArLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDM0OCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLWFhcmNoNjQtbGludXgtZ251L3RlbXBsYXRlIGIv c3JjcGtncy9jcm9zcy1hYXJjaDY0LWxpbnV4LWdudS90ZW1wbGF0ZQppbmRleCBiMDEyMmM4ZWM0 YS4uYTdiYWE3OWNmNmMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtYWFyY2g2NC1saW51eC1n bnUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1hYXJjaDY0LWxpbnV4LWdudS90ZW1wbGF0 ZQpAQCAtMSwyMSArMSwyMSBAQAotIyBUZW1wbGF0ZSBidWlsZCBmaWxlIGZvciAnY3Jvc3MtYWFy Y2g2NC1saW51eC1nbnUnCi0jCisjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1hYXJjaDY0LWxp bnV4LWdudScKK190cmlwbGV0PWFhcmNoNjQtbGludXgtZ251CiBfYmludXRpbHNfdmVyc2lvbj0y LjMyCiBfZ2NjX3ZlcnNpb249OS4zLjAKIF9nbGliY192ZXJzaW9uPTIuMzAKIF9saW51eF92ZXJz aW9uPTQuMTkKLQotX3RyaXBsZXQ9YWFyY2g2NC1saW51eC1nbnUKLV9hcmNoZmxhZ3M9Ii1tYXJj aD1hcm12OC1hIgotX3N5c3Jvb3Q9Ii91c3IvJHtfdHJpcGxldH0iCi0KIHBrZ25hbWU9Y3Jvc3Mt JHtfdHJpcGxldH0KIHZlcnNpb249MC4zMwogcmV2aXNpb249Mwotc2hvcnRfZGVzYz0iR05VIENy b3NzIHRvb2xjaGFpbiBmb3IgdGhlICR7X3RyaXBsZXR9IExFIHRhcmdldCAoYmludXRpbHMvZ2Nj L2dsaWJjKSIKK2J1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKK2NvbmZpZ3VyZV9hcmdzPSItLXdpdGgt YXJjaD1hcm12OC1hIgoraG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXgg cGVybCBweXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGli LWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7 dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBm b3IgJHtfdHJpcGxldH0iCiBtYWludGFpbmVyPSJMZWFoIE5ldWtpcmNoZW4gPGxlYWhAdnV4dS5v cmc+IgotaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogbGljZW5zZT0iR1BM LTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIiCitob21l cGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBkaXN0ZmlsZXM9IgogICR7R05VX1NJ VEV9L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRhci54egogICR7R05V X1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259L2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6 CkBAIC0yNiwzNDkgKzI2LDE0IEBAIGNoZWNrc3VtPSIwYWI2YzU1ZGQ4NmE5MmVkNTYxOTcyYmEx NWI5YjcwYThiOWY3NTU1N2Y4OTY0NDZjODJlOGIzNmU0NzNlZTA0CiAgZTJjNDExNGU1NjlhZmJl N2VkYmMyOTEzMWE0M2JlODMzODUwYWI5YTQ1OWQ4MWJlYjI1ODgwMTZkMmJiYjhhZgogIDBjNjhm NTY1NTUyOGFlZDRmOTlkYWU3MWE1YjI1OWVkYzkzMjM5ZmE4OTllMmRmNzljMDU1Mjc1YzIxNzQ5 YTEiCiAKLWxpYjMyZGlzYWJsZWQ9eWVzCi1ub2Nyb3NzPXllcwotbm9waWU9eWVzCi1jcmVhdGVf d3Jrc3JjPXllcwotaG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVy bCBweXRob24zIgotbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRl dmVsIgotZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi1u b3N0cmlwX2ZpbGVzPSJsaWJjYWZfc2luZ2xlLmEgbGliZ2NjLmEgbGliZ2Nvdi5hIGxpYmdjY19l aC5hCi0gbGliZ25hcmxfcGljLmEgbGliZ25hcmwuYSBsaWJnbmF0X3BpYy5hIGxpYmduYXQuYSBs aWJnbWVtLmEiCi0KLWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiAhPSAiZ2xpYmMiIF07IHRoZW4K LQlicm9rZW49ImdsaWJjIGNyb3NzdG9vbGNoYWluIG9ubHkgYXZhaWxhYmxlIG9uIGdsaWJjIgot ZmkKLQotaWYgWyAiJFhCUFNfVEFSR0VUX1dPUkRTSVpFIiAhPSAiNjQiIF07IHRoZW4KLQlicm9r ZW49IjY0LWJpdCBjcm9zc3Rvb2xjaGFpbiBvbmx5IGF2YWlsYWJsZSBvbiA2NC1iaXQgaG9zdCIK LWZpCitjcm9zc190cmlwbGV0PSR7X3RyaXBsZXR9Citjcm9zc19saW51eF9hcmNoPWFybTY0Citj cm9zc19nbGliY19jZmxhZ3M9Ii1PMiAtbWFyY2g9YXJtdjgtYSIKIAogaWYgWyAiJFhCUFNfVEFS R0VUX01BQ0hJTkUiID0gImFhcmNoNjQiIF07IHRoZW4KIAlicm9rZW49IkNhbid0IGJ1aWxkIGNy b3NzdG9vbGNoYWluIHRvIGl0c2VsZiIKIGZpCiAKLV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBh cmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUgJDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1f ZG9uZSIgXTsgdGhlbgotCQlwYXRjaCAtTiAkYXJncyAtaSAkMgotCQl0b3VjaCAuJHtwbmFtZX1f ZG9uZQotCWZpCi19Ci0KLV9saW51eF9oZWFkZXJzKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5saW51 eF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwg IkJ1aWxkaW5nIExpbnV4IEFQSSBoZWFkZXJzIGZvciBBUk1cbiIKLQotCWNkIGxpbnV4LSR7X2xp bnV4X3ZlcnNpb259Ci0KLQltYWtlIEFSQ0g9YXJtNjQgaGVhZGVyc19jaGVjawotCW1ha2UgQVJD SD1hcm02NCBJTlNUQUxMX0hEUl9QQVRIPSR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwK LQotCXRvdWNoICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZQotfQotCi1fYmludXRpbHNfYnVp bGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9k b25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5n IGNyb3NzIGJpbnV0aWxzXG4iCi0JWyAhIC1kIGJpbnV0aWxzLWJ1aWxkIF0gJiYgbWtkaXIgYmlu dXRpbHMtYnVpbGQKLQljZCBiaW51dGlscy1idWlsZAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3Ii Ci0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jv b3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRp c2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAt LWRpc2FibGUtd2Vycm9yIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1nb2xkIgotCV9hcmdzKz0iIC0t d2l0aC1zeXN0ZW0temxpYiIKLQkuLi9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS9jb25m aWd1cmUgJHtfYXJnc30KLQotCW1ha2UgY29uZmlndXJlLWhvc3QgJiYgbWFrZSAke21ha2Vqb2Jz fQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25l Ci19Ci0KLV9nY2NfYm9vdHN0cmFwKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3Jj fS8uZ2NjX2Jvb3RzdHJhcF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nY2Mt JHtfZ2NjX3ZlcnNpb259Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL3BhdGNoZXMv Ki5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JZG9uZQotCi0JbXNnX25vcm1h bCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1ib290 c3RyYXAgXSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJhcAot Ci0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0i Ci0JX2FyZ3MrPSIgLS13aXRob3V0LWhlYWRlcnMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIK LQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFk bWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKLQlfYXJncys9IiAtLWRp c2FibGUtbGliZ29tcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLWxpYml0bSIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliYXRvbWljIgotCV9h cmdzKz0iIC0tZGlzYWJsZS10aHJlYWRzIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1j IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtbGQiCi0JX2FyZ3MrPSIgLS13aXRo LWdudS1hcyIKLQotCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0K LQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdj Y19ib290c3RyYXBfZG9uZQotfQotCi1fZ2xpYmNfaGVhZGVycygpIHsKLQlsb2NhbCBfYXJncyBm Ci0KLQlbIC1mICR7d3Jrc3JjfS8uZ2xpYmNfaGVhZGVyc19kb25lIF0gJiYgcmV0dXJuIDAKLQot CWNkICR7d3Jrc3JjfS9nbGliYy0ke19nbGliY192ZXJzaW9ufQotCWlmIFsgLWQgIiR7WEJQU19T UkNQS0dESVJ9L2dsaWJjL3BhdGNoZXMiIF07IHRoZW4KLQkJZm9yIGYgaW4gJHtYQlBTX1NSQ1BL R0RJUn0vZ2xpYmMvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQkJX2FwcGx5X3BhdGNoIC1wMSAiJGYi Ci0JCWRvbmUKLQlmaQotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jv c3MgZ2xpYmMgaGVhZGVyc1xuIgotCi0JWyAhIC1kIGdsaWJjLWhlYWRlcnMgXSAmJiBta2RpciBn bGliYy1oZWFkZXJzCi0JY2QgZ2xpYmMtaGVhZGVycwotCi0JZWNobyAibGliY19jdl9mb3JjZWRf dW53aW5kPXllcyIgPiBjb25maWcuY2FjaGUKLQllY2hvICJsaWJjX2N2X2NfY2xlYW51cD15ZXMi ID4+IGNvbmZpZy5jYWNoZQotCi0JZXhwb3J0IENDPSIke190cmlwbGV0fS1nY2MiIExEPSIke190 cmlwbGV0fS1sZCIgXAotCQlBUz0iJHtfdHJpcGxldH0tYXMiIENQUD0iJHtfdHJpcGxldH0tY3Bw IiBcCi0JCU5NPSIke190cmlwbGV0fS1ubSIKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9h cmdzKz0iIC0taG9zdD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtaGVhZGVycz0ke19z eXNyb290fS91c3IvaW5jbHVkZSIKLQlfYXJncys9IiAtLWNvbmZpZy1jYWNoZSIKLQlfYXJncys9 IiAtLWVuYWJsZS1vYnNvbGV0ZS1ycGMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtbnNs IgotCV9hcmdzKz0iIC0tZW5hYmxlLWtlcm5lbD0yLjYuMjciCi0KLQkuLi9nbGliYy0ke19nbGli Y192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgLWsgaW5zdGFsbC1oZWFkZXJz IGNyb3NzX2NvbXBpbGluZz15ZXMgXAotCQlpbnN0YWxsX3Jvb3Q9JHtfc3lzcm9vdH0KLQotCXRv dWNoICR7d3Jrc3JjfS8uZ2xpYmNfaGVhZGVyc19kb25lCi19Ci0KLV9nbGliY19idWlsZCgpIHsK LQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdsaWJjX2J1aWxkX2RvbmUgXSAmJiBy ZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2xp YmNcbiIKLQotCVsgISAtZCBnbGliYy1idWlsZCBdICYmIG1rZGlyIGdsaWJjLWJ1aWxkCi0JY2Qg Z2xpYmMtYnVpbGQKLQotCWVjaG8gInNsaWJkaXI9L3Vzci9saWI2NCIgPiBjb25maWdwYXJtcwot Ci0JZWNobyAibGliY19jdl9mb3JjZWRfdW53aW5kPXllcyIgPiBjb25maWcuY2FjaGUKLQllY2hv ICJsaWJjX2N2X2NfY2xlYW51cD15ZXMiID4+IGNvbmZpZy5jYWNoZQotCi0JZXhwb3J0IENDPSIk e190cmlwbGV0fS1nY2MiIENYWD0iJHtfdHJpcGxldH0tZysrIiBMRD0iJHtfdHJpcGxldH0tbGQi IFwKLQkJQVM9IiR7X3RyaXBsZXR9LWFzIiBDUFA9IiR7X3RyaXBsZXR9LWNwcCIgXAotCQlOTT0i JHtfdHJpcGxldH0tbm0iCi0JZXhwb3J0IENGTEFHUz0iLU8xIC1waXBlICR7X2FyY2hmbGFnc30i Ci0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLWxpYmRpcj0vdXNyL2xpYjY0 IgotCV9hcmdzKz0iIC0taG9zdD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtaGVhZGVy cz0ke19zeXNyb290fS91c3IvaW5jbHVkZSIKLQlfYXJncys9IiAtLWNvbmZpZy1jYWNoZSIKLQlf YXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1ycGMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xl dGUtbnNsIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1wcm9maWxlIgotCV9hcmdzKz0iIC0tZW5hYmxl LWtlcm5lbD0yLjYuMjciCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQotCS4uL2dsaWJj LSR7X2dsaWJjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2Jz fQotCW1ha2UgaW5zdGFsbF9yb290PSR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCXRvdWNoICR7d3Jr c3JjfS8uZ2xpYmNfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2J1aWxkKCkgewotCWxvY2FsIF9hcmdz Ci0KLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2Qg JHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGZpbmFsXG4iCi0KLQlb ICEgLWQgZ2NjLWJ1aWxkIF0gJiYgbWtkaXIgZ2NjLWJ1aWxkCi0JY2QgZ2NjLWJ1aWxkCi0KLQll eHBvcnQgQ0M9ImdjYyIgQ1hYPSJnKysiIENGTEFHUz0iLU9zIC1waXBlIgotCXVuc2V0IExEIEFT Ci0KLQkjIE1ha2UgdGhpcyBsaW5rIHRvIHRhcmdldCBsaWJzLgotCWlmIFsgISAtZiAuc2VkX3N1 YnN0X2RvbmUgXTsgdGhlbgotCQlzZWQgLWUgInMsIC9saWIvLCAke19zeXNyb290fS9saWIvLGc7 cywgL3Vzci9saWIvLCAke19zeXNyb290fS91c3IvbGliLyxnIiBcCi0JCQktaSAke19zeXNyb290 fS9saWIvbGliYy5zbwotCQlzZWQgLWUgInMsIC9saWI2NC8sICR7X3N5c3Jvb3R9L2xpYjY0Lyxn O3MsIC91c3IvbGliNjQvLCAke19zeXNyb290fS91c3IvbGliNjQvLGciIFwKLQkJCS1pICR7X3N5 c3Jvb3R9L2xpYi9saWJjLnNvCi0JCXRvdWNoIC5zZWRfc3Vic3RfZG9uZQotCWZpCi0KLQlfYXJn cz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLWxpYmV4ZWNkaXI9L3Vzci9saWIiCi0JX2Fy Z3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtf c3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYWRhLGMrKyxvYmpjLG9i ai1jKyssZ28sZm9ydHJhbixsdG8iCi0JX2FyZ3MrPSIgLS13aXRoLWdudS1hcyIKLQlfYXJncys9 IiAtLXdpdGgtZ251LWxkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9 IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMiCi0J X2FyZ3MrPSIgLS1lbmFibGUtdGhyZWFkcz1wb3NpeCIKLQlfYXJncys9IiAtLWVuYWJsZS1sb25n LWxvbmd4IgotCV9hcmdzKz0iIC0tZW5hYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWVuYWJsZS1s aW5rZXItYnVpbGQtaWQiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZ251LXVuaXF1ZS1vYmplY3QiCi0J X2FyZ3MrPSIgLS1lbmFibGUtbGliYWRhIgotCV9hcmdzKz0iIC0tZW5hYmxlLWx0byIKLQlfYXJn cys9IiAtLWVuYWJsZS1kZWZhdWx0LXBpZSIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXNz cCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRp c2FibGUtbGlic2FuaXRpemVyIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJjaWxrcnRzIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJpdG0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnZ0diIKLQlf YXJncys9IiAtLWRpc2FibGUtbGlic3RkY3h4LXBjaCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJz dGRjeHgtdGltZSIKLQlfYXJncys9IiAtLXdpdGgtbGlua2VyLWhhc2gtc3R5bGU9Z251IgotCi0J Li4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtl am9ic30KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUKLX0KLQotZG9fYnVpbGQo KSB7Ci0JdW5zZXQgTERGTEFHUwotCWV4cG9ydCBDRkxBR1M9Ii1PcyIgQ1hYRkxBR1M9Ii1PcyIK LQotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAt ZCAke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke19zeXNyb290fS91 c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQls biAtc2ZyICR7X3N5c3Jvb3R9L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25l Ci0JbG4gLXNmIGxpYiAke19zeXNyb290fS91c3IvbGliNjQKLQlsbiAtc2YgdXNyL2xpYiAke19z eXNyb290fS9saWI2NAotCi0JX2JpbnV0aWxzX2J1aWxkCi0JX2djY19ib290c3RyYXAKLQlfbGlu dXhfaGVhZGVycwotCV9nbGliY19oZWFkZXJzCi0JX2dsaWJjX2J1aWxkCi0JX2djY19idWlsZAot fQotCi1kb19pbnN0YWxsKCkgewotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNi aW47IGRvCi0JCWlmIFsgISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRo ZW4KLQkJCW1rZGlyIC1wICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJ aWYgWyAhIC1oICR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2Zy ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7REVTVERJUn0vJHtfc3lz cm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7REVTVERJUn0vJHtfc3lzcm9v dH0vdXNyL2xpYjY0Ci0JbG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke19zeXNyb290fS9saWI2 NAotCi0JIyBpbnN0YWxsIGNyb3NzIGJpbnV0aWxzCi0JY2QgJHt3cmtzcmN9L2JpbnV0aWxzLWJ1 aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBpbnN0YWxsIGNyb3Nz IGdjYwotCWNkICR7d3Jrc3JjfS9nY2MtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBp bnN0YWxsCi0KLQkjIG1vdmUgbGliY2MxLnNvKiB0byB0aGUgc3lzcm9vdAotCW12ICR7REVTVERJ Un0vdXNyL2xpYi9saWJjYzEuc28qICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0J IyBpbnN0YWxsIGxpbnV4IEFQSSBoZWFkZXJzIGZvciBBUk02NAotCWNkICR7d3Jrc3JjfS9saW51 eC0ke19saW51eF92ZXJzaW9ufQotCW1ha2UgQVJDSD1hcm02NCBJTlNUQUxMX0hEUl9QQVRIPSR7 REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCXJtIC1mICQoZmluZCAk e0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIC1uYW1lIC5pbnN0YWxsIC1vciAtbmFt ZSAuLmluc3RhbGwuY21kKQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNs dWRlL2RybQotCi0JIyBpbnN0YWxsIGdsaWJjIGZvciB0YXJnZXQKLQljZCAke3dya3NyY30vZ2xp YmMtYnVpbGQKLQltYWtlIGluc3RhbGxfcm9vdD0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9IGluc3Rh bGwgaW5zdGFsbC1oZWFkZXJzCi0KLQkjIHN5bWxpbmtzIGZvciBnbmFybCBhbmQgZ25hdCBzaGFy ZWQgbGlicmFyaWVzCi0JX21ham9ydmVyPSR7X2djY192ZXJzaW9uJS4qLip9Ci0JX2FkYWxpYj11 c3IvbGliL2djYy8ke190cmlwbGV0fS8ke19nY2NfdmVyc2lvbn0vYWRhbGliCi0JbXYgLXYgJHtE RVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXJsLSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L3Vzci9saWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hdC0k e19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0JbG4gLXN2ZiBs aWJnbmFybC0ke19tYWpvcnZlcn0uc28gbGliZ25hcmwuc28KLQlsbiAtc3ZmIGxpYmduYXQtJHtf bWFqb3J2ZXJ9LnNvIGxpYmduYXQuc28KLQlybSAtdmYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xp YmduYXtybCx0fS5zbwotCi0JIyBXZSBuZWVkIHRvIGJ1aWxkIGxpYmF0b21pYyBpbiB0YXJnZXQg Z2NjIGFzIGdjY2dvIG5lZWRzIGl0IHRvCi0JIyBidWlsZC4uLiBidXQgaXQncyBub3QgbmVlZGVk IGF0IHJ1bnRpbWUsIHNvIHJlbW92ZSBpdCBmcm9tIHRoZQotCSMgZGVzdGRpciBzbyBpdCBkb2Vz bid0IGNvbmZsaWN0IHdpdGggdGhlIGxpYmF0b21pYyBwYWNrYWdlCi0Jcm0gLWYgJHtERVNURElS fS8ke19zeXNyb290fS91c3IvbGliL2xpYmF0b21pYy4qCi0KLQkjIFJlbW92ZSB1bm5lY2Vzc2Fy eSBzdHVmZgotCXJtIC1mICR7REVTVERJUn0vdXNyL2xpYiovbGliaWJlcnR5LmEKLQlybSAtcmYg JHtERVNURElSfS91c3Ivc2hhcmUKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS97c2Jp bixldGMsdmFyfQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci97c2JpbixzaGFy ZSxsaWJleGVjfQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliZXhlYwotfQotCi1k b19jbGVhbigpIHsKLQkjIFJlbW92ZSB0ZW1wb3Jhcnkgc3R1ZmYgZnJvbSBtYXN0ZXJkaXIKLQly bSAtcmYgJHtfc3lzcm9vdH0KLQlybSAtZiAvdXNyL2Jpbi8ke190cmlwbGV0fSoKLQlybSAtcmYg L3Vzci9saWIvZ2NjLyR7X3RyaXBsZXR9Ci0Jcm0gLXJmIC91c3IvbGliZXhlYy9nY2MvJHtfdHJp cGxldH0KLX0KLQogY3Jvc3MtYWFyY2g2NC1saW51eC1nbnUtbGliY19wYWNrYWdlKCkgewogCXNo b3J0X2Rlc2MrPSIgLSBnbGliYyBmaWxlcyIKIAlub3N0cmlwPXllcwpAQCAtMzc2LDYgKzQxLDYg QEAgY3Jvc3MtYWFyY2g2NC1saW51eC1nbnUtbGliY19wYWNrYWdlKCkgewogCW5vdmVyaWZ5cmRl cHM9eWVzCiAKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgJHtfc3lzcm9vdH0KKwkJdm1vdmUg dXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9CiB9CgpGcm9tIGMwMWRmZDZjNmUyMDI5NjRiYjU4NDUy OWE2NGI0ZGYzYjExYTU0MGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHE2NiA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMjUgRGVjIDIwMjAgMTQ6NTI6MzYgKzAxMDAK U3ViamVjdDogW1BBVENIIDA0LzI2XSBjcm9zcy1hYXJjaDY0LWxpbnV4LW11c2w6IHJlZG8gd2l0 aCB2b2lkLWNyb3NzCgotLS0KIHNyY3BrZ3MvY3Jvc3MtYWFyY2g2NC1saW51eC1tdXNsL3RlbXBs YXRlIHwgMzAyICstLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNCBpbnNl cnRpb25zKCspLCAyODggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1h YXJjaDY0LWxpbnV4LW11c2wvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLWFhcmNoNjQtbGludXgt bXVzbC90ZW1wbGF0ZQppbmRleCA4ZDQ1ODdjZmU0OC4uZTMyNWVhYmU1ZjEgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvY3Jvc3MtYWFyY2g2NC1saW51eC1tdXNsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv Y3Jvc3MtYWFyY2g2NC1saW51eC1tdXNsL3RlbXBsYXRlCkBAIC0xLDE5ICsxLDE5IEBACi0jIFRl bXBsYXRlIGJ1aWxkIGZpbGUgZm9yICdjcm9zcy1hYXJjaDY0LWxpbnV4LW11c2wnCi0jCisjIFRl bXBsYXRlIGZpbGUgZm9yICdjcm9zcy1hYXJjaDY0LWxpbnV4LW11c2wnCitfdHJpcGxldD1hYXJj aDY0LWxpbnV4LW11c2wKIF9iaW51dGlsc192ZXJzaW9uPTIuMzIKIF9nY2NfdmVyc2lvbj05LjMu MAogX211c2xfdmVyc2lvbj0xLjEuMjQKIF9saW51eF92ZXJzaW9uPTQuMTkKIF9saWJ1Y29udGV4 dF92ZXJzaW9uPTAuOS4wCi0KLV90cmlwbGV0PWFhcmNoNjQtbGludXgtbXVzbAotX2FyY2hmbGFn cz0iLW1hcmNoPWFybXY4LWEiCi1fc3lzcm9vdD0iL3Vzci8ke190cmlwbGV0fSIKLQogcGtnbmFt ZT1jcm9zcy0ke190cmlwbGV0fQogdmVyc2lvbj0wLjMzCiByZXZpc2lvbj00Ci1zaG9ydF9kZXNj PSJDcm9zcyB0b29sY2hhaW4gZm9yIEFSTTY0IExFIHRhcmdldCAobXVzbCkiCitidWlsZF9zdHls ZT12b2lkLWNyb3NzCitjb25maWd1cmVfYXJncz0iLS13aXRoLWFyY2g9YXJtdjgtYSIKK2hvc3Rt YWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIKK21ha2Vk ZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBm ci1kZXZlbCIKK2RlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259 Igorc2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7X3RyaXBsZXR9IgogbWFp bnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGhvbWVwYWdlPSJodHRw czovL3d3dy52b2lkbGludXgub3JnLyIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0z LjAtb3ItbGF0ZXIsIE1JVCIKQEAgLTI5LDI5NiArMjksMjIgQEAgY2hlY2tzdW09IjBhYjZjNTVk ZDg2YTkyZWQ1NjE5NzJiYTE1YjliNzBhOGI5Zjc1NTU3Zjg5NjQ0NmM4MmU4YjM2ZTQ3M2VlMDQK ICAwYzY4ZjU2NTU1MjhhZWQ0Zjk5ZGFlNzFhNWIyNTllZGM5MzIzOWZhODk5ZTJkZjc5YzA1NTI3 NWMyMTc0OWExCiAgMGQ1M2E0MTVhMzA3ZWYxNzUxNTNiYmU2MGE1NzJjOTQwYTkyMmNiNzM2Y2Ux MzUzMGI2NjZlN2VjMjc5NWQ2OCIKIAotbGliMzJkaXNhYmxlZD15ZXMKLW5vY3Jvc3M9eWVzCi1u b3BpZT15ZXMKLW5vZGVidWc9eWVzCi1jcmVhdGVfd3Jrc3JjPXllcwotCi1ob3N0bWFrZWRlcGVu ZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCi1tYWtlZGVwZW5kcz0i emxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCBsaWJtcGMtZGV2ZWwgaXNsMTUtZGV2ZWwi Ci1ub3N0cmlwX2ZpbGVzPSJsaWJjYWZfc2luZ2xlLmEgbGliZ2NjLmEgbGliZ2Nvdi5hIGxpYmdj Y19laC5hCi0gbGliZ25hcmxfcGljLmEgbGliZ25hcmwuYSBsaWJnbmF0X3BpYy5hIGxpYmduYXQu YSBsaWJnbWVtLmEiCi1kZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3Jldmlz aW9ufSIKLQotaWYgWyAiJFhCUFNfVEFSR0VUX1dPUkRTSVpFIiAhPSAiNjQiIF07IHRoZW4KLQli cm9rZW49IjY0LWJpdCBjcm9zc3Rvb2xjaGFpbiBvbmx5IGF2YWlsYWJsZSBvbiA2NC1iaXQgaG9z dCIKLWZpCitjcm9zc190cmlwbGV0PSR7X3RyaXBsZXR9Citjcm9zc19saWJ1Y29udGV4dF9hcmNo PWFhcmNoNjQKK2Nyb3NzX2xpbnV4X2FyY2g9YXJtNjQKK2Nyb3NzX211c2xfY2ZsYWdzPSItTzIg LW1hcmNoPWFybXY4LWEiCiAKIGlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiA9ICJhYXJjaDY0 LW11c2wiIF07IHRoZW4KIAlicm9rZW49IkNhbid0IGJ1aWxkIGNyb3NzdG9vbGNoYWluIHRvIGl0 c2VsZiIKIGZpCiAKLV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQo YmFzZW5hbWUgJDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQlw YXRjaCAtTiAkYXJncyAtaSAkMgotCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0KLV9i aW51dGlsc19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmJpbnV0 aWxzX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1h bCAiQnVpbGRpbmcgY3Jvc3MgYmludXRpbHMgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgYmludXRp bHMtYnVpbGQgXSAmJiBta2RpciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0aWxzLWJ1aWxkCi0J X2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0J X2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LXdlcnJvciIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0td2l0aC1z eXN0ZW0temxpYiIKLQotCS4uL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259L2NvbmZpZ3Vy ZSAke19hcmdzfQotCi0JbWFrZSBjb25maWd1cmUtaG9zdCAmJiBtYWtlICR7bWFrZWpvYnN9Ci0J bWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUKLX0K LQotX2djY19ib290c3RyYXAoKSB7Ci0JbG9jYWwgX2FyZ3MKLQlbIC1mICR7d3Jrc3JjfS8uZ2Nj X2Jvb3RzdHJhcF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nY2MtJHtfZ2Nj X3ZlcnNpb259Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL3BhdGNoZXMvKi5wYXRj aDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JZG9uZQotCWZvciBmIGluICR7WEJQU19T UkNQS0dESVJ9L2djYy9maWxlcy8qLW11c2wucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDEg IiRmIgotCWRvbmUKLQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBib290c3RyYXBc biIKLQotCVsgISAtZCAuLi9nY2MtYm9vdHN0cmFwIF0gJiYgbWtkaXIgLi4vZ2NjLWJvb3RzdHJh cAotCWNkIC4uL2djYy1ib290c3RyYXAKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdz Kz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5 c3Jvb3R9IgotCV9hcmdzKz0iIC0td2l0aC1uZXdsaWIiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFu Z3VhZ2VzPWMiCi0JX2FyZ3MrPSIgLS13aXRoLW5ld2xpYiIKLQlfYXJncys9IiAtLWRpc2FibGUt bGlic3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxp YnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS10aHJlYWRzIgotCV9hcmdzKz0iIC0tZGlz YWJsZS1kZWNpbWFsLWZsb2F0IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmdvbXAiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmF0b21pYyIKLQlfYXJncys9IiAtLWRpc2FibGUtc3ltdmVy cyIKLQlfYXJncys9IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5vIgotCi0JQ0ZMQUdTPSItTzAgLWcw IiBDWFhGTEFHUz0iLU8wIC1nMCIgXAotCQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3Vy ZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2gg JHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUKLX0KLQotX2xpbnV4X2hlYWRlcnMoKSB7Ci0J WyAtZiAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3 cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgTGludXggQVBJIGhlYWRlcnNcbiIKLQotCWNk IGxpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0KLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9r ZXJuZWwtbGliYy1oZWFkZXJzL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1w MCAkZgotCWRvbmUKLQotCW1ha2UgQVJDSD1hcm02NCBoZWFkZXJzX2NoZWNrCi0JbWFrZSBBUkNI PWFybTY0IElOU1RBTExfSERSX1BBVEg9JHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAot Ci0JdG91Y2ggJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lCi19Ci0KLV9tdXNsX2J1aWxkKCkg ewotCVsgLWYgJHt3cmtzcmN9Ly5tdXNsX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2Qg JHt3cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9ufQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNy b3NzIG11c2wgbGliY1xuIgotCi0JIyBBcHBseSBtdXNsIHBhdGNoZXMgaWYgdGhlcmUgYXJlIGFu eQotCWlmIFsgLWQgIiR7WEJQU19TUkNQS0dESVJ9L211c2wvcGF0Y2hlcyIgXTsgdGhlbgotCQlm b3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9tdXNsL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJCV9h cHBseV9wYXRjaCAtcDAgIiRmIgotCQlkb25lCi0JZmkKLQotCUNDPSIke190cmlwbGV0fS1nY2Mi IExEPSIke190cmlwbGV0fS1sZCIgQVI9IiR7X3RyaXBsZXR9LWFyIiBcCi0JCUFTPSIke190cmlw bGV0fS1hcyIgUkFOTElCPSIke190cmlwbGV0fS1yYW5saWIiIFwKLQkJQ0ZMQUdTPSItT3MgLXBp cGUgLWZQSUMgJHtfYXJjaGZsYWdzfSIgXAotCQkuL2NvbmZpZ3VyZSAtLXByZWZpeD0vdXNyCi0K LQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBERVNURElSPSR7X3N5c3Jvb3R9IGluc3RhbGwKLQot CXRvdWNoICR7d3Jrc3JjfS8ubXVzbF9idWlsZF9kb25lCi19Ci0KLV9saWJ1Y29udGV4dF9idWls ZCgpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubGlidWNvbnRleHRfYnVpbGRfZG9uZSBdICYmIHJldHVy biAwCi0KLQljZCAke3dya3NyY30vbGlidWNvbnRleHQtJHtfbGlidWNvbnRleHRfdmVyc2lvbn0K LQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBsaWJ1Y29udGV4dFxuIgotCi0JIyBpdCdzIG9r IGlmIHdlJ3JlIHN0YXRpYyBvbmx5IGhlcmUKLQlDQz0iJHtfdHJpcGxldH0tZ2NjIiBBUj0iJHtf dHJpcGxldH0tYXIiIEFTPSIke190cmlwbGV0fS1hcyIgXAotCQlDRkxBR1M9Ii1PcyAtcGlwZSAk e19hcmNoZmxhZ3N9IiBcCi0JCW1ha2UgQVJDSD1hYXJjaDY0IGxpYnVjb250ZXh0LmEKLQotCWNw IGxpYnVjb250ZXh0LmEgJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JdG91Y2ggJHt3cmtzcmN9Ly5s aWJ1Y29udGV4dF9idWlsZF9kb25lCi19Ci0KLV9nY2NfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MK LQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAk e3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgZmluYWxcbiIKLQotCVsg ISAtZCBnY2MtYnVpbGQgXSAmJiBta2RpciBnY2MtYnVpbGQKLQljZCBnY2MtYnVpbGQKLQotCV9h cmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGliZXhlY2Rpcj0vdXNyL2xpYiIKLQlf YXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0k e19zeXNyb290fSIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyxhZGEsYysrLG9iamMs b2JqLWMrKyxnbyxmb3J0cmFuLGx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJhZGEiCi0JX2Fy Z3MrPSIgLS1lbmFibGUtbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtcGllIgotCV9h cmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtc3NwIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYnNzcCIK LQlfYXJncys9IiAtLWRpc2FibGUtbGlic2FuaXRpemVyIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1t dWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1s aWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAt LWVuYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMiCi0JX2FyZ3MrPSIg bGliYXRfY3ZfaGF2ZV9pZnVuYz1ubyIKLQotCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmln dXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0KLQl0b3VjaCAke3dya3NyY30vLmdj Y19idWlsZF9kb25lCi19Ci0KLWRvX2J1aWxkKCkgewotCSMgRW5zdXJlIHdlIHVzZSBzYW5lIGVu dmlyb25tZW50Ci0JdW5zZXQgQ0MgQ1hYIENQUCBMRCBBUyBBUiBSQU5MSUIgT0JKRFVNUCBSRUFE RUxGIE5NCi0JdW5zZXQgQ0ZMQUdTIENYWEZMQUdTIENQUEZMQUdTIExERkxBR1MKLQlleHBvcnQg Q0ZMQUdTPSItT3MgLXBpcGUiIENYWEZMQUdTPSItT3MgLXBpcGUiCi0KLQlmb3IgZiBpbiBpbmNs dWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtfc3lzcm9vdH0vdXNy LyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJ aWYgWyAhIC1oICR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke19zeXNyb290 fS91c3IvJHtmfSAke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtf c3lzcm9vdH0vdXNyL2xpYjY0Ci0JbG4gLXNmIHVzci9saWIgJHtfc3lzcm9vdH0vbGliNjQKLQot CV9iaW51dGlsc19idWlsZAotCV9nY2NfYm9vdHN0cmFwCi0JX2xpbnV4X2hlYWRlcnMKLQlfbXVz bF9idWlsZAotCV9saWJ1Y29udGV4dF9idWlsZAotCV9nY2NfYnVpbGQKLX0KLQotZG9faW5zdGFs bCgpIHsKLQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBb ICEgLWQgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAt cCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke0RF U1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L3Vzci8ke2Z9IFwKLQkJCQkke0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0KLQkJ ZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWI2NAot CWxuIC1zZiB1c3IvbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliNjQKLQotCSMgaW5zdGFs bCBsaW51eCBBUEkgaGVhZGVycwotCWNkICR7d3Jrc3JjfS9saW51eC0ke19saW51eF92ZXJzaW9u fQotCW1ha2UgQVJDSD1hcm02NCBJTlNUQUxMX0hEUl9QQVRIPSR7REVTVERJUn0vJHtfc3lzcm9v dH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCXJtIC1mICQoZmluZCAke0RFU1RESVJ9LyR7X3N5c3Jv b3R9L3Vzci9pbmNsdWRlIC1uYW1lIC5pbnN0YWxsIC1vciAtbmFtZSAuLmluc3RhbGwuY21kKQot CXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlL2RybQotCi0JIyBpbnN0 YWxsIGNyb3NzIGJpbnV0aWxzCi0JY2QgJHt3cmtzcmN9L2JpbnV0aWxzLWJ1aWxkCi0JbWFrZSBE RVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBpbnN0YWxsIGNyb3NzIGdjYwotCWNkICR7 d3Jrc3JjfS9nY2MtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkj IG1vdmUgbGliY2MxLnNvKiB0byB0aGUgc3lzcm9vdAotCW12ICR7REVTVERJUn0vdXNyL2xpYi9s aWJjYzEuc28qICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JIyBpbnN0YWxsIG11 c2wgbGliYyBmb3IgdGFyZ2V0Ci0JY2QgJHt3cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9ufQot CW1ha2UgREVTVERJUj0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCSMgUmVtb3Zl IHVzZWxlc3MgaGVhZGVycy4KLQlybSAtcmYgJHtERVNURElSfS91c3IvbGliL2djYy8ke190cmlw bGV0fS8qL2luY2x1ZGUtZml4ZWQKLQotCSMgTWFrZSBsZC1tdXNsLnNvIHN5bWxpbmtzIHJlbGF0 aXZlLgotCWxuIC1zZiBsaWJjLnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYi9sZC1t dXNsLWFhcmNoNjQuc28uMQotCi0JIyBzeW1saW5rcyBmb3IgZ25hcmwgYW5kIGduYXQgc2hhcmVk IGxpYnJhcmllcwotCV9tYWpvcnZlcj0ke19nY2NfdmVyc2lvbiUuKi4qfQotCV9hZGFsaWI9dXNy L2xpYi9nY2MvJHtfdHJpcGxldH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxpYgotCW12IC12ICR7REVT VERJUn0vJHtfYWRhbGlifS9saWJnbmFybC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19z eXNyb290fS91c3IvbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXQtJHtf bWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCWxuIC1zdmYgbGli Z25hcmwtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXJsLnNvCi0JbG4gLXN2ZiBsaWJnbmF0LSR7X21h am9ydmVyfS5zbyBsaWJnbmF0LnNvCi0Jcm0gLXZmICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJn bmF7cmwsdH0uc28KLQotCSMgV2UgbmVlZCB0byBidWlsZCBsaWJhdG9taWMgaW4gdGFyZ2V0IGdj YyBhcyBnY2NnbyBuZWVkcyBpdCB0bwotCSMgYnVpbGQuLi4gYnV0IGl0J3Mgbm90IG5lZWRlZCBh dCBydW50aW1lLCBzbyByZW1vdmUgaXQgZnJvbSB0aGUKLQkjIGRlc3RkaXIgc28gaXQgZG9lc24n dCBjb25mbGljdCB3aXRoIHRoZSBsaWJhdG9taWMgcGFja2FnZQotCXJtIC1mICR7REVTVERJUn0v JHtfc3lzcm9vdH0vdXNyL2xpYi9saWJhdG9taWMuKgotCi0JIyBSZW1vdmUgdW5uZWNlc3Nhcnkg c3R1ZmYKLQlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCi0Jcm0gLXJmICR7 REVTVERJUn0vdXNyL3NoYXJlCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve2V0Yyx2 YXJ9Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL3tzYmluLHNoYXJlLGxpYmV4 ZWN9Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWJleGVjCi0Jcm0gLWYgJHtERVNU RElSfS8ke19zeXNyb290fS9saWIvKi5weQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0v c2JpbgotfQotCiBjcm9zcy1hYXJjaDY0LWxpbnV4LW11c2wtbGliY19wYWNrYWdlKCkgewogCXNo b3J0X2Rlc2MrPSIgLSBsaWJjIGZpbGVzIgogCW5vc3RyaXA9eWVzCiAJbm9zaGxpYnByb3ZpZGVz PXllcwogCW5vdmVyaWZ5cmRlcHM9eWVzCisKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgJHtf c3lzcm9vdH0KKwkJdm1vdmUgdXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9CiB9CgpGcm9tIGY5NDEx YmQ2Nzc2OWZkODVjNGZhNWY0ZGE5ZGYxOWJkMWQzYjQ3ZjQgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMjUgRGVjIDIw MjAgMjA6MTA6MzUgKzAxMDAKU3ViamVjdDogW1BBVENIIDA1LzI2XSBjcm9zcy1hcm0tbGludXgt Z251ZWFiaTogcmVkbyB3aXRoIHZvaWQtY3Jvc3MKCi0tLQogc3JjcGtncy9jcm9zcy1hcm0tbGlu dXgtZ251ZWFiaS90ZW1wbGF0ZSB8IDM2MSArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDM0NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL2Nyb3NzLWFybS1saW51eC1nbnVlYWJpL3RlbXBsYXRlIGIvc3JjcGtncy9jcm9z cy1hcm0tbGludXgtZ251ZWFiaS90ZW1wbGF0ZQppbmRleCBlNTgxMDBlNjhkZi4uODE1MWI4MjBh NDIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LWdudWVhYmkvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtZ251ZWFiaS90ZW1wbGF0ZQpAQCAtMSwyMiAr MSwyMSBAQAotIyBUZW1wbGF0ZSBidWlsZCBmaWxlIGZvciAnY3Jvc3MtYXJtLWxpbnV4LWdudWVh YmknCi0jCisjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1hcm0tbGludXgtZ251ZWFiaScKK190 cmlwbGV0PWFybS1saW51eC1nbnVlYWJpCiBfYmludXRpbHNfdmVyc2lvbj0yLjMyCiBfZ2NjX3Zl cnNpb249OS4zLjAKIF9nbGliY192ZXJzaW9uPTIuMzAKIF9saW51eF92ZXJzaW9uPTQuMTkKLQot X3RyaXBsZXQ9YXJtLWxpbnV4LWdudWVhYmkKLV9mcHVmbGFncz0iLS13aXRoLWFyY2g9YXJtdjV0 ZSAtLXdpdGhvdXQtZnAgLS13aXRoLWZsb2F0PXNvZnQiCi1fYXJjaGZsYWdzPSItbWFyY2g9YXJt djV0ZSAtbXNvZnQtZmxvYXQgLW1mbG9hdC1hYmk9c29mdCIKLV9zeXNyb290PSIvdXNyLyR7X3Ry aXBsZXR9IgotCiBwa2duYW1lPWNyb3NzLSR7X3RyaXBsZXR9CiB2ZXJzaW9uPTAuMzMKIHJldmlz aW9uPTIKLXNob3J0X2Rlc2M9IkdOVSBDcm9zcyB0b29sY2hhaW4gZm9yIHRoZSAke190cmlwbGV0 fSBMRSB0YXJnZXQgKGJpbnV0aWxzL2djYy9nbGliYykiCitidWlsZF9zdHlsZT12b2lkLWNyb3Nz Citjb25maWd1cmVfYXJncz0iLS13aXRoLWFyY2g9YXJtdjV0ZSAtLXdpdGgtZmxvYXQ9c29mdCIK K2hvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIK K21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2 ZWwgbXBmci1kZXZlbCIKK2RlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2 aXNpb259Igorc2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7X3RyaXBsZXR9 IgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKK2xpY2Vuc2U9 IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgog aG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgotbGljZW5zZT0iR1BMLTIuMC1v ci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTEdQTC0yLjEuMC1vci1sYXRlciIKIGRpc3RmaWxl cz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0u dGFyLnh6CiAgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19nY2NfdmVyc2lvbn0vZ2NjLSR7X2djY192 ZXJzaW9ufS50YXIueHoKQEAgLTI3LDM0NiArMjYsMTYgQEAgY2hlY2tzdW09IjBhYjZjNTVkZDg2 YTkyZWQ1NjE5NzJiYTE1YjliNzBhOGI5Zjc1NTU3Zjg5NjQ0NmM4MmU4YjM2ZTQ3M2VlMDQKICBl MmM0MTE0ZTU2OWFmYmU3ZWRiYzI5MTMxYTQzYmU4MzM4NTBhYjlhNDU5ZDgxYmViMjU4ODAxNmQy YmJiOGFmCiAgMGM2OGY1NjU1NTI4YWVkNGY5OWRhZTcxYTViMjU5ZWRjOTMyMzlmYTg5OWUyZGY3 OWMwNTUyNzVjMjE3NDlhMSIKIAotbGliMzJkaXNhYmxlZD15ZXMKLW5vY3Jvc3M9eWVzCi1ub3Bp ZT15ZXMKLW5vZGVidWc9eWVzCi1jcmVhdGVfd3Jrc3JjPXllcwotCi1ob3N0bWFrZWRlcGVuZHM9 InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCi1tYWtlZGVwZW5kcz0iaXNs MTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwiCi1kZXBlbmRzPSIke3BrZ25hbWV9LWxp YmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLW5vc3RyaXBfZmlsZXM9ImxpYmNhZl9zaW5nbGUu YSBsaWJnY2MuYSBsaWJnY292LmEgbGliZ2NjX2VoLmEKLSBsaWJnbmFybF9waWMuYSBsaWJnbmFy bC5hIGxpYmduYXRfcGljLmEgbGliZ25hdC5hIGxpYmdtZW0uYSIKLQotaWYgWyAiJFhCUFNfVEFS R0VUX0xJQkMiICE9ICJnbGliYyIgXTsgdGhlbgotCWJyb2tlbj0iZ2xpYmMgY3Jvc3N0b29sY2hh aW4gb25seSBhdmFpbGFibGUgb24gZ2xpYmMiCi1maQorY3Jvc3NfdHJpcGxldD0ke190cmlwbGV0 fQorY3Jvc3NfbGludXhfYXJjaD1hcm0KK2Nyb3NzX2JpbnV0aWxzX2NvbmZpZ3VyZV9hcmdzPSIt LXdpdGhvdXQtZnAiCitjcm9zc19nbGliY19jb25maWd1cmVfYXJncz0iLS13aXRob3V0LWZwIgor Y3Jvc3NfZ2xpYmNfY2ZsYWdzPSItT3MgLW1hcmNoPWFybXY1dGUgLW1zb2Z0LWZsb2F0IC1tZmxv YXQtYWJpPXNvZnQiCiAKIGlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiA9ICJhcm12NXRlbCIg XTsgdGhlbgogCWJyb2tlbj0iQ2FuJ3QgYnVpbGQgY3Jvc3N0b29sY2hhaW4gdG8gaXRzZWxmIgog ZmkKIAotX2FwcGx5X3BhdGNoKCkgewotCWxvY2FsIGFyZ3M9IiQxIiBwbmFtZT0iJChiYXNlbmFt ZSAkMikiCi0KLQlpZiBbICEgLWYgIi4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCi0JCXBhdGNoIC1O ICRhcmdzIC1pICQyCi0JCXRvdWNoIC4ke3BuYW1lfV9kb25lCi0JZmkKLX0KLQotX2xpbnV4X2hl YWRlcnMoKSB7Ci0JWyAtZiAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4g MAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgTGludXggQVBJIGhlYWRl cnMgZm9yIEFSTVxuIgotCi0JY2QgbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQotCW1ha2UgQVJD SD1hcm0gaGVhZGVyc19jaGVjawotCW1ha2UgQVJDSD1hcm0gSU5TVEFMTF9IRFJfUEFUSD0ke19z eXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmxpbnV4X2J1 aWxkX2RvbmUKLX0KLQotX2JpbnV0aWxzX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1m ICR7d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dy a3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBiaW51dGlsc1xuIgotCVsgISAtZCBi aW51dGlscy1idWlsZCBdICYmIG1rZGlyIGJpbnV0aWxzLWJ1aWxkCi0JY2QgYmludXRpbHMtYnVp bGQKLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0 fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWRp c2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJyb3IiCi0JX2FyZ3MrPSIgLS13 aXRoLXN5c3RlbS16bGliIgotCi0JLi4vYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0vY29u ZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNvbmZpZ3VyZS1ob3N0Ci0JbWFrZSAke21ha2Vqb2Jz fQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25l Ci19Ci0KLV9nY2NfYm9vdHN0cmFwKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3Jj fS8uZ2NjX2Jvb3RzdHJhcF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nY2Mt JHtfZ2NjX3ZlcnNpb259Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL3BhdGNoZXMv Ki5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JZG9uZQotCi0JbXNnX25vcm1h bCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1ib290 c3RyYXAgXSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJhcAot Ci0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0i Ci0JX2FyZ3MrPSIgLS13aXRob3V0LWhlYWRlcnMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIK LQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFk bWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKLQlfYXJncys9IiAtLWRp c2FibGUtbGliZ29tcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLWxpYml0bSIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliYXRvbWljIgotCV9h cmdzKz0iIC0tZGlzYWJsZS10aHJlYWRzIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1j IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtbGQiCi0JX2FyZ3MrPSIgLS13aXRo LWdudS1hcyIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQlDRkxBR1M9Ii1PMCAtZzAiIENY WEZMQUdTPSItTzAgLWcwIiBcCi0JCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7 X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dy a3NyY30vLmdjY19ib290c3RyYXBfZG9uZQotfQotCi1fZ2xpYmNfaGVhZGVycygpIHsKLQlsb2Nh bCBfYXJncyBmCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2xpYmNfaGVhZGVyc19kb25lIF0gJiYgcmV0 dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nbGliYy0ke19nbGliY192ZXJzaW9ufQotCWlmIFsgLWQg IiR7WEJQU19TUkNQS0dESVJ9L2dsaWJjL3BhdGNoZXMiIF07IHRoZW4KLQkJZm9yIGYgaW4gJHtY QlBTX1NSQ1BLR0RJUn0vZ2xpYmMvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQkJX2FwcGx5X3BhdGNo IC1wMSAiJGYiCi0JCWRvbmUKLQlmaQotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVp bGRpbmcgY3Jvc3MgZ2xpYmMgaGVhZGVyc1xuIgotCi0JWyAhIC1kIGdsaWJjLWhlYWRlcnMgXSAm JiBta2RpciBnbGliYy1oZWFkZXJzCi0JY2QgZ2xpYmMtaGVhZGVycwotCi0JZWNobyAibGliY19j dl9mb3JjZWRfdW53aW5kPXllcyIgPiBjb25maWcuY2FjaGUKLQllY2hvICJsaWJjX2N2X2NfY2xl YW51cD15ZXMiID4+IGNvbmZpZy5jYWNoZQotCi0JZXhwb3J0IENDPSIke190cmlwbGV0fS1nY2Mi IExEPSIke190cmlwbGV0fS1sZCIgXAotCQlBUz0iJHtfdHJpcGxldH0tYXMiIENQUD0iJHtfdHJp cGxldH0tY3BwIgotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1ob3N0PSR7 X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1oZWFkZXJzPSR7X3N5c3Jvb3R9L3Vzci9pbmNs dWRlIgotCV9hcmdzKz0iIC0tY29uZmlnLWNhY2hlIgotCV9hcmdzKz0iIC0tZW5hYmxlLW9ic29s ZXRlLXJwYyIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1uc2wiCi0JX2FyZ3MrPSIgLS1l bmFibGUta2VybmVsPTIuNi4yNyIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQkuLi9nbGli Yy0ke19nbGliY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgLWsgaW5zdGFs bC1oZWFkZXJzIGNyb3NzX2NvbXBpbGluZz15ZXMgXAotCQlpbnN0YWxsX3Jvb3Q9JHtfc3lzcm9v dH0KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2xpYmNfaGVhZGVyc19kb25lCi19Ci0KLV9nbGliY19i dWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdsaWJjX2J1aWxkX2Rv bmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcg Y3Jvc3MgZ2xpYmNcbiIKLQotCVsgISAtZCBnbGliYy1idWlsZCBdICYmIG1rZGlyIGdsaWJjLWJ1 aWxkCi0JY2QgZ2xpYmMtYnVpbGQKLQotCWVjaG8gInNsaWJkaXI9L3Vzci9saWIzMiIgPiBjb25m aWdwYXJtcwotCi0JZWNobyAibGliY19jdl9mb3JjZWRfdW53aW5kPXllcyIgPiBjb25maWcuY2Fj aGUKLQllY2hvICJsaWJjX2N2X2NfY2xlYW51cD15ZXMiID4+IGNvbmZpZy5jYWNoZQotCi0JZXhw b3J0IENDPSIke190cmlwbGV0fS1nY2MiIExEPSIke190cmlwbGV0fS1sZCIgXAotCQlBUz0iJHtf dHJpcGxldH0tYXMiIENQUD0iJHtfdHJpcGxldH0tY3BwIgotCWV4cG9ydCBDRkxBR1M9Ii1PcyAt cGlwZSAke19hcmNoZmxhZ3N9IgotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIg LS1saWJkaXI9L3Vzci9saWIzMiIKLQlfYXJncys9IiAtLWhvc3Q9JHtfdHJpcGxldH0iCi0JX2Fy Z3MrPSIgLS13aXRoLWhlYWRlcnM9JHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUiCi0JX2FyZ3MrPSIg LS1jb25maWctY2FjaGUiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXByb2ZpbGUiCi0JX2FyZ3MrPSIg LS1lbmFibGUtb2Jzb2xldGUtcnBjIgotCV9hcmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLW5zbCIK LQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9yIgotCV9hcmdzKz0iIC0tZW5hYmxlLWtlcm5lbD0y LjYuMjciCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vZ2xpYmMtJHtfZ2xpYmNfdmVy c2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0 YWxsX3Jvb3Q9JHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nbGliY19i dWlsZF9kb25lCi19Ci0KLV9nY2NfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3 cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQlt c2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgZmluYWxcbiIKLQotCVsgISAtZCBnY2MtYnVp bGQgXSAmJiBta2RpciBnY2MtYnVpbGQKLQljZCBnY2MtYnVpbGQKLQotCXVuc2V0IExEIEFTIENQ UAotCWV4cG9ydCBDQz0iZ2NjIiBDRkxBR1M9Ii1PcyAtcGlwZSIKLQotCSMgTWFrZSB0aGlzIGxp bmsgdG8gdGFyZ2V0IGxpYnMuCi0JaWYgWyAhIC1mIC5zZWRfc3Vic3RfZG9uZSBdOyB0aGVuCi0J CXNlZCAtZSAicywgL2xpYi8sICR7X3N5c3Jvb3R9L2xpYi8sZztzLCAvdXNyL2xpYi8sICR7X3N5 c3Jvb3R9L3Vzci9saWIvLGciIFwKLQkJCS1pICR7X3N5c3Jvb3R9L2xpYi9saWJjLnNvCi0JCXNl ZCAtZSAicywgL2xpYjMyLywgJHtfc3lzcm9vdH0vbGliMzIvLGc7cywgL3Vzci9saWIzMi8sICR7 X3N5c3Jvb3R9L3Vzci9saWIzMi8sZyIgXAotCQkJLWkgJHtfc3lzcm9vdH0vbGliL2xpYmMuc28K LQkJdG91Y2ggLnNlZF9zdWJzdF9kb25lCi0JZmkKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgot CV9hcmdzKz0iIC0tbGliZXhlY2Rpcj0vdXNyL2xpYiIKLQlfYXJncys9IiAtLXRhcmdldD0ke190 cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9 IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyxhZGEsYysrLG9iamMsb2JqLWMrKyxnbyxmb3J0cmFuLGx0 byIKLQlfYXJncys9IiAtLXdpdGgtZ251LWFzIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtbGQiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJyb3Ii Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtc2psai1leGNl cHRpb25zIgotCV9hcmdzKz0iIC0tZW5hYmxlLXRocmVhZHM9cG9zaXgiCi0JX2FyZ3MrPSIgLS1l bmFibGUtbG9uZy1sb25neCIKLQlfYXJncys9IiAtLWVuYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIg LS1lbmFibGUtbGlua2VyLWJ1aWxkLWlkIgotCV9hcmdzKz0iIC0tZW5hYmxlLWdudS11bmlxdWUt b2JqZWN0IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYmFkYSIKLQlfYXJncys9IiAtLWVuYWJsZS1s dG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1waWUiCi0JX2FyZ3MrPSIgLS1lbmFibGUt ZGVmYXVsdC1zc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJncys9 IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic2FuaXRpemVy IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJjaWxrcnRzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1s aWJpdG0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnZ0diIKLQlfYXJncys9IiAtLWRpc2FibGUt bGlic3RkY3h4LXBjaCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJzdGRjeHgtdGltZSIKLQlfYXJn cys9IiAtLXdpdGgtbGlua2VyLWhhc2gtc3R5bGU9Z251IgotCV9hcmdzKz0iICR7X2ZwdWZsYWdz fSIKLQotCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtl ICR7bWFrZWpvYnN9Ci0KLQl0b3VjaCAke3dya3NyY30vLmdjY19idWlsZF9kb25lCi19Ci0KLWRv X2J1aWxkKCkgewotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0J CWlmIFsgISAtZCAke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke19z eXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtfc3lzcm9vdH0vJHtmfSBdOyB0 aGVuCi0JCQlsbiAtc2ZyICR7X3N5c3Jvb3R9L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9LyR7Zn0KLQkJ ZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNy L2xpYiAke19zeXNyb290fS9saWIzMgotCi0JIyBFbnN1cmUgd2UgdXNlIHNhbmUgZW52aXJvbm1l bnQKLQl1bnNldCBDQyBDWFggQ1BQIExEIEFTIEFSIFJBTkxJQiBPQkpEVU1QIFJFQURFTEYgTk0K LQl1bnNldCBDRkxBR1MgQ1hYRkxBR1MgQ1BQRkxBR1MgTERGTEFHUwotCWV4cG9ydCBDRkxBR1M9 Ii1PcyIgQ1hYRkxBR1M9Ii1PcyIKLQotCV9iaW51dGlsc19idWlsZAotCV9nY2NfYm9vdHN0cmFw Ci0JX2xpbnV4X2hlYWRlcnMKLQlfZ2xpYmNfaGVhZGVycwotCV9nbGliY19idWlsZAotCV9nY2Nf YnVpbGQKLX0KLQotZG9faW5zdGFsbCgpIHsKLQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVj IGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtm fSBdOyB0aGVuCi0JCQlta2RpciAtcCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0J CWZpCi0JCWlmIFsgISAtaCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJ bG4gLXNmciAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IFwKLQkJCQkke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L3Vzci9saWIzMgotCWxuIC1zZiB1c3IvbGliICR7REVTVERJUn0vJHtfc3lzcm9v dH0vbGliMzIKLQotCSMgaW5zdGFsbCBjcm9zcyBiaW51dGlscwotCWNkICR7d3Jrc3JjfS9iaW51 dGlscy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgaW5zdGFs bCBjcm9zcyBnY2MKLQljZCAke3dya3NyY30vZ2NjLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVT VERJUn0gaW5zdGFsbAotCi0JIyBtb3ZlIGxpYmNjMS5zbyogdG8gdGhlIHN5c3Jvb3QKLQltdiAk e0RFU1RESVJ9L3Vzci9saWIvbGliY2MxLnNvKiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9s aWIKLQotCSMgaW5zdGFsbCBsaW51eCBBUEkgaGVhZGVycyBmb3IgTUlQUwotCWNkICR7d3Jrc3Jj fS9saW51eC0ke19saW51eF92ZXJzaW9ufQotCW1ha2UgQVJDSD1hcm0gSU5TVEFMTF9IRFJfUEFU SD0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQlybSAtZiAkKGZp bmQgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZSAtbmFtZSAuaW5zdGFsbCAtb3Ig LW5hbWUgLi5pbnN0YWxsLmNtZCkKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3Iv aW5jbHVkZS9kcm0KLQotCSMgaW5zdGFsbCBnbGliYyBmb3IgdGFyZ2V0Ci0JY2QgJHt3cmtzcmN9 L2dsaWJjLWJ1aWxkCi0JbWFrZSBpbnN0YWxsX3Jvb3Q9JHtERVNURElSfS8ke19zeXNyb290fSBp bnN0YWxsIGluc3RhbGwtaGVhZGVycwotCi0JIyBzeW1saW5rcyBmb3IgZ25hcmwgYW5kIGduYXQg c2hhcmVkIGxpYnJhcmllcwotCV9tYWpvcnZlcj0ke19nY2NfdmVyc2lvbiUuKi4qfQotCV9hZGFs aWI9dXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxpYgotCW12IC12 ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmFybC0ke19tYWpvcnZlcn0uc28gJHtERVNURElS fS8ke19zeXNyb290fS91c3IvbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmdu YXQtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCWxuIC1z dmYgbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXJsLnNvCi0JbG4gLXN2ZiBsaWJnbmF0 LSR7X21ham9ydmVyfS5zbyBsaWJnbmF0LnNvCi0Jcm0gLXZmICR7REVTVERJUn0vJHtfYWRhbGli fS9saWJnbmF7cmwsdH0uc28KLQotCSMgV2UgbmVlZCB0byBidWlsZCBsaWJhdG9taWMgaW4gdGFy Z2V0IGdjYyBhcyBnY2NnbyBuZWVkcyBpdCB0bwotCSMgYnVpbGQuLi4gYnV0IGl0J3Mgbm90IG5l ZWRlZCBhdCBydW50aW1lLCBzbyByZW1vdmUgaXQgZnJvbSB0aGUKLQkjIGRlc3RkaXIgc28gaXQg ZG9lc24ndCBjb25mbGljdCB3aXRoIHRoZSBsaWJhdG9taWMgcGFja2FnZQotCXJtIC1mICR7REVT VERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYi9saWJhdG9taWMuKgotCi0JIyBSZW1vdmUgdW5uZWNl c3Nhcnkgc3R1ZmYKLQlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCi0Jcm0g LXJmICR7REVTVERJUn0vdXNyL3NoYXJlCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0v e3NiaW4sbGliLGV0Yyx2YXJ9Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL3tz YmluLHNoYXJlLGxpYmV4ZWN9Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWJleGVj Ci19Ci0KIGNyb3NzLWFybS1saW51eC1nbnVlYWJpLWxpYmNfcGFja2FnZSgpIHsKIAlzaG9ydF9k ZXNjKz0iIC0gZ2xpYmMgZmlsZXMiCiAJbm9zdHJpcD15ZXMKQEAgLTM3NCw2ICs0Myw2IEBAIGNy b3NzLWFybS1saW51eC1nbnVlYWJpLWxpYmNfcGFja2FnZSgpIHsKIAlub3ZlcmlmeXJkZXBzPXll cwogCiAJcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICR7X3N5c3Jvb3R9CisJCXZtb3ZlIHVzci8k e2Nyb3NzX3RyaXBsZXR9CiAJfQogfQoKRnJvbSAxNzIxOGM5N2U1ZDkzMGMwZThjMDJkODI4ODdj ODNhNDg0ODlhZDI4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmllbEBv Y3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmksIDI1IERlYyAyMDIwIDIwOjEwOjQ1ICswMTAwClN1Ympl Y3Q6IFtQQVRDSCAwNi8yNl0gY3Jvc3MtYXJtLWxpbnV4LWdudWVhYmloZjogcmVkbyB3aXRoIHZv aWQtY3Jvc3MKCi0tLQogc3JjcGtncy9jcm9zcy1hcm0tbGludXgtZ251ZWFiaWhmL3RlbXBsYXRl IHwgMzU5ICstLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlv bnMoKyksIDM0NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLWFybS1s aW51eC1nbnVlYWJpaGYvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLWFybS1saW51eC1nbnVlYWJp aGYvdGVtcGxhdGUKaW5kZXggNGU0NmJhMWUzMDYuLjlhMzdhNDNkNDhjIDEwMDY0NAotLS0gYS9z cmNwa2dzL2Nyb3NzLWFybS1saW51eC1nbnVlYWJpaGYvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9j cm9zcy1hcm0tbGludXgtZ251ZWFiaWhmL3RlbXBsYXRlCkBAIC0xLDIyICsxLDIxIEBACi0jIFRl bXBsYXRlIGJ1aWxkIGZpbGUgZm9yICdjcm9zcy1hcm0tbGludXgtZ251ZWFiaWhmJwotIworIyBU ZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtYXJtLWxpbnV4LWdudWVhYmloZicKK190cmlwbGV0PWFy bS1saW51eC1nbnVlYWJpaGYKIF9iaW51dGlsc192ZXJzaW9uPTIuMzIKIF9nY2NfdmVyc2lvbj05 LjMuMAogX2dsaWJjX3ZlcnNpb249Mi4zMAogX2xpbnV4X3ZlcnNpb249NC4xOQotCi1fdHJpcGxl dD1hcm0tbGludXgtZ251ZWFiaWhmCi1fZnB1ZmxhZ3M9Ii0td2l0aC1hcmNoPWFybXY2IC0td2l0 aC1mcHU9dmZwIC0td2l0aC1mbG9hdD1oYXJkIgotX2FyY2hmbGFncz0iLW1hcmNoPWFybXY2IC1t ZnB1PXZmcCAtbWZsb2F0LWFiaT1oYXJkIgotX3N5c3Jvb3Q9Ii91c3IvJHtfdHJpcGxldH0iCi0K IHBrZ25hbWU9Y3Jvc3MtJHtfdHJpcGxldH0KIHZlcnNpb249MC4zMwogcmV2aXNpb249Mgotc2hv cnRfZGVzYz0iR05VIENyb3NzIHRvb2xjaGFpbiBmb3IgdGhlICR7X3RyaXBsZXR9IExFIHRhcmdl dCAoYmludXRpbHMvZ2NjL2dsaWJjKSIKK2J1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKK2NvbmZpZ3Vy ZV9hcmdzPSItLXdpdGgtYXJjaD1hcm12NiAtLXdpdGgtZnB1PXZmcCAtLXdpdGgtZmxvYXQ9aGFy ZCIKK2hvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9u MyIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAt ZGV2ZWwgbXBmci1kZXZlbCIKK2RlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7 cmV2aXNpb259Igorc2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7X3RyaXBs ZXR9IgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKK2xpY2Vu c2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVy IgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgotbGljZW5zZT0iUHVibGlj IERvbWFpbiIKIGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmludXRpbHMtJHtf YmludXRpbHNfdmVyc2lvbn0udGFyLnh6CiAgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19nY2NfdmVy c2lvbn0vZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKQEAgLTI3LDM0NiArMjYsMTQgQEAgY2hl Y2tzdW09IjBhYjZjNTVkZDg2YTkyZWQ1NjE5NzJiYTE1YjliNzBhOGI5Zjc1NTU3Zjg5NjQ0NmM4 MmU4YjM2ZTQ3M2VlMDQKICBlMmM0MTE0ZTU2OWFmYmU3ZWRiYzI5MTMxYTQzYmU4MzM4NTBhYjlh NDU5ZDgxYmViMjU4ODAxNmQyYmJiOGFmCiAgMGM2OGY1NjU1NTI4YWVkNGY5OWRhZTcxYTViMjU5 ZWRjOTMyMzlmYTg5OWUyZGY3OWMwNTUyNzVjMjE3NDlhMSIKIAotbGliMzJkaXNhYmxlZD15ZXMK LW5vY3Jvc3M9eWVzCi1ub3BpZT15ZXMKLW5vZGVidWc9eWVzCi1jcmVhdGVfd3Jrc3JjPXllcwot Ci1ob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMi Ci1tYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwiCi1kZXBl bmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLW5vc3RyaXBfZmls ZXM9ImxpYmNhZl9zaW5nbGUuYSBsaWJnY2MuYSBsaWJnY292LmEgbGliZ2NjX2VoLmEKLSBsaWJn bmFybF9waWMuYSBsaWJnbmFybC5hIGxpYmduYXRfcGljLmEgbGliZ25hdC5hIGxpYmdtZW0uYSIK LQotaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiICE9ICJnbGliYyIgXTsgdGhlbgotCWJyb2tlbj0i Z2xpYmMgY3Jvc3N0b29sY2hhaW4gb25seSBhdmFpbGFibGUgb24gZ2xpYmMiCi1maQorY3Jvc3Nf dHJpcGxldD0ke190cmlwbGV0fQorY3Jvc3NfbGludXhfYXJjaD1hcm0KK2Nyb3NzX2dsaWJjX2Nm bGFncz0iLU9zIC1tYXJjaD1hcm12NiAtbWZwdT12ZnAgLW1mbG9hdC1hYmk9aGFyZCIKIAogaWYg WyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0gImFybXY2bCIgXTsgdGhlbgogCWJyb2tlbj0iQ2Fu J3QgYnVpbGQgY3Jvc3N0b29sY2hhaW4gdG8gaXRzZWxmIgogZmkKIAotX2FwcGx5X3BhdGNoKCkg ewotCWxvY2FsIGFyZ3M9IiQxIiBwbmFtZT0iJChiYXNlbmFtZSAkMikiCi0KLQlpZiBbICEgLWYg Ii4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCi0JCXBhdGNoIC1OICRhcmdzIC1pICQyCi0JCXRvdWNo IC4ke3BuYW1lfV9kb25lCi0JZmkKLX0KLQotX2xpbnV4X2hlYWRlcnMoKSB7Ci0JWyAtZiAke3dy a3NyY30vLmxpbnV4X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0J bXNnX25vcm1hbCAiQnVpbGRpbmcgTGludXggQVBJIGhlYWRlcnMgZm9yIEFSTVxuIgotCi0JY2Qg bGludXgtJHtfbGludXhfdmVyc2lvbn0KLQotCW1ha2UgQVJDSD1hcm0gaGVhZGVyc19jaGVjawot CW1ha2UgQVJDSD1hcm0gSU5TVEFMTF9IRFJfUEFUSD0ke19zeXNyb290fS91c3IgaGVhZGVyc19p bnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUKLX0KLQotX2JpbnV0 aWxzX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uYmludXRpbHNf YnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJC dWlsZGluZyBjcm9zcyBiaW51dGlsc1xuIgotCVsgISAtZCBiaW51dGlscy1idWlsZCBdICYmIG1r ZGlyIGJpbnV0aWxzLWJ1aWxkCi0JY2QgYmludXRpbHMtYnVpbGQKLQotCV9hcmdzPSItLXByZWZp eD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0 aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQlfYXJncys9IiAtLXdpdGgtc3lzdGVtLXpsaWIiCi0K LQkuLi9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQot CW1ha2UgY29uZmlndXJlLWhvc3QKLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0K LQl0b3VjaCAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUKLX0KLQotX2djY19ib290c3Ry YXAoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2Rv bmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0KLQlm b3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBw bHlfcGF0Y2ggLXAwICIkZiIKLQlkb25lCi0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBn Y2MgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgLi4vZ2NjLWJvb3RzdHJhcCBdICYmIG1rZGlyIC4u L2djYy1ib290c3RyYXAKLQljZCAuLi9nY2MtYm9vdHN0cmFwCi0KLQlfYXJncz0iLS1wcmVmaXg9 L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGhv dXQtaGVhZGVycyIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1kZWNpbWFsLWZsb2F0IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJnb21wIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliaXRt IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJhdG9taWMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXRo cmVhZHMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLXNqbGotZXhjZXB0aW9ucyIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2Fy Z3MrPSIgLS13aXRoLWdudS1sZCIKLQlfYXJncys9IiAtLXdpdGgtZ251LWFzIgotCV9hcmdzKz0i ICR7X2ZwdWZsYWdzfSIKLQotCUNGTEFHUz0iLU8wIC1nMCIgQ1hYRkxBR1M9Ii1PMCAtZzAiIFwK LQkJLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHtt YWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJh cF9kb25lCi19Ci0KLV9nbGliY19oZWFkZXJzKCkgewotCWxvY2FsIF9hcmdzIGYKLQotCVsgLWYg JHt3cmtzcmN9Ly5nbGliY19oZWFkZXJzX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtz cmN9L2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259Ci0JaWYgWyAtZCAiJHtYQlBTX1NSQ1BLR0RJUn0v Z2xpYmMvcGF0Y2hlcyIgXTsgdGhlbgotCQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nbGli Yy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCQlfYXBwbHlfcGF0Y2ggLXAxICIkZiIKLQkJZG9uZQot CWZpCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnbGliYyBo ZWFkZXJzXG4iCi0KLQlbICEgLWQgZ2xpYmMtaGVhZGVycyBdICYmIG1rZGlyIGdsaWJjLWhlYWRl cnMKLQljZCBnbGliYy1oZWFkZXJzCi0KLQllY2hvICJsaWJjX2N2X2ZvcmNlZF91bndpbmQ9eWVz IiA+IGNvbmZpZy5jYWNoZQotCWVjaG8gImxpYmNfY3ZfY19jbGVhbnVwPXllcyIgPj4gY29uZmln LmNhY2hlCi0KLQlleHBvcnQgQ0M9IiR7X3RyaXBsZXR9LWdjYyIgTEQ9IiR7X3RyaXBsZXR9LWxk IiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIgQ1BQPSIke190cmlwbGV0fS1jcHAiCi0KLQlfYXJn cz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLWhvc3Q9JHtfdHJpcGxldH0iCi0JX2FyZ3Mr PSIgLS13aXRoLWhlYWRlcnM9JHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUiCi0JX2FyZ3MrPSIgLS1j b25maWctY2FjaGUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtcnBjIgotCV9hcmdzKz0i IC0tZW5hYmxlLW9ic29sZXRlLW5zbCIKLQlfYXJncys9IiAtLWVuYWJsZS1rZXJuZWw9Mi42LjI3 IgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCS4uL2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259 L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAtayBpbnN0YWxsLWhlYWRlcnMgY3Jvc3NfY29t cGlsaW5nPXllcyBcCi0JCWluc3RhbGxfcm9vdD0ke19zeXNyb290fQotCi0JdG91Y2ggJHt3cmtz cmN9Ly5nbGliY19oZWFkZXJzX2RvbmUKLX0KLQotX2dsaWJjX2J1aWxkKCkgewotCWxvY2FsIF9h cmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2xpYmNfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0K LQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnbGliY1xuIgotCi0J WyAhIC1kIGdsaWJjLWJ1aWxkIF0gJiYgbWtkaXIgZ2xpYmMtYnVpbGQKLQljZCBnbGliYy1idWls ZAotCi0JZWNobyAic2xpYmRpcj0vdXNyL2xpYjMyIiA+IGNvbmZpZ3Bhcm1zCi0KLQllY2hvICJs aWJjX2N2X2ZvcmNlZF91bndpbmQ9eWVzIiA+IGNvbmZpZy5jYWNoZQotCWVjaG8gImxpYmNfY3Zf Y19jbGVhbnVwPXllcyIgPj4gY29uZmlnLmNhY2hlCi0KLQlleHBvcnQgQ0M9IiR7X3RyaXBsZXR9 LWdjYyIgTEQ9IiR7X3RyaXBsZXR9LWxkIiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIgQ1BQPSIk e190cmlwbGV0fS1jcHAiCi0JZXhwb3J0IENGTEFHUz0iLU9zIC1waXBlICR7X2FyY2hmbGFnc30i Ci0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLWxpYmRpcj0vdXNyL2xpYjMy IgotCV9hcmdzKz0iIC0taG9zdD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtaGVhZGVy cz0ke19zeXNyb290fS91c3IvaW5jbHVkZSIKLQlfYXJncys9IiAtLWNvbmZpZy1jYWNoZSIKLQlf YXJncys9IiAtLWRpc2FibGUtcHJvZmlsZSIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1y cGMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtbnNsIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS13ZXJyb3IiCi0JX2FyZ3MrPSIgLS1lbmFibGUta2VybmVsPTIuNi4yNyIKLQlfYXJncys9IiAk e19mcHVmbGFnc30iCi0KLQkuLi9nbGliYy0ke19nbGliY192ZXJzaW9ufS9jb25maWd1cmUgJHtf YXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGxfcm9vdD0ke19zeXNyb290 fSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdsaWJjX2J1aWxkX2RvbmUKLX0KLQotX2dj Y19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdjY19idWlsZF9k b25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5n IGNyb3NzIGdjYyBmaW5hbFxuIgotCi0JWyAhIC1kIGdjYy1idWlsZCBdICYmIG1rZGlyIGdjYy1i dWlsZAotCWNkIGdjYy1idWlsZAotCi0JdW5zZXQgTEQgQVMgQ1BQCi0JZXhwb3J0IENDPSJnY2Mi IENGTEFHUz0iLU9zIC1waXBlIgotCi0JIyBNYWtlIHRoaXMgbGluayB0byB0YXJnZXQgbGlicy4K LQlpZiBbICEgLWYgLnNlZF9zdWJzdF9kb25lIF07IHRoZW4KLQkJc2VkIC1lICJzLCAvbGliLywg JHtfc3lzcm9vdH0vbGliLyxnO3MsIC91c3IvbGliLywgJHtfc3lzcm9vdH0vdXNyL2xpYi8sZyIg XAotCQkJLWkgJHtfc3lzcm9vdH0vbGliL2xpYmMuc28KLQkJc2VkIC1lICJzLCAvbGliMzIvLCAk e19zeXNyb290fS9saWIzMi8sZztzLCAvdXNyL2xpYjMyLywgJHtfc3lzcm9vdH0vdXNyL2xpYjMy LyxnIiBcCi0JCQktaSAke19zeXNyb290fS9saWIvbGliYy5zbwotCQl0b3VjaCAuc2VkX3N1YnN0 X2RvbmUKLQlmaQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGliZXhlY2Rp cj0vdXNyL2xpYiIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAt LXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9 YyxhZGEsYysrLG9iamMsb2JqLWMrKyxnbyxmb3J0cmFuLGx0byIKLQlfYXJncys9IiAtLXdpdGgt Z251LWFzIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtbGQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11 bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJyb3IiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtc2psai1leGNlcHRpb25zIgotCV9hcmdzKz0iIC0t ZW5hYmxlLXRocmVhZHM9cG9zaXgiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbG9uZy1sb25neCIKLQlf YXJncys9IiAtLWVuYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGlua2VyLWJ1aWxk LWlkIgotCV9hcmdzKz0iIC0tZW5hYmxlLWdudS11bmlxdWUtb2JqZWN0IgotCV9hcmdzKz0iIC0t ZW5hYmxlLWxpYmFkYSIKLQlfYXJncys9IiAtLWVuYWJsZS1sdG8iCi0JX2FyZ3MrPSIgLS1lbmFi bGUtZGVmYXVsdC1waWUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1zc3AiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxh cCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic2FuaXRpemVyIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1saWJjaWxrcnRzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJpdG0iCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLWxpYnZ0diIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic3RkY3h4LXBjaCIKLQlfYXJn cys9IiAtLWVuYWJsZS1saWJzdGRjeHgtdGltZSIKLQlfYXJncys9IiAtLXdpdGgtbGlua2VyLWhh c2gtc3R5bGU9Z251IgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCS4uL2djYy0ke19nY2Nf dmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0KLQl0b3Vj aCAke3dya3NyY30vLmdjY19idWlsZF9kb25lCi19Ci0KLWRvX2J1aWxkKCkgewotCWZvciBmIGlu IGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke19zeXNyb290 fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke19zeXNyb290fS91c3IvJHtmfQotCQlm aQotCQlpZiBbICEgLWggJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7X3N5 c3Jvb3R9L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxp YiAke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke19zeXNyb290fS9saWIz MgotCi0JIyBFbnN1cmUgd2UgdXNlIHNhbmUgZW52aXJvbm1lbnQKLQl1bnNldCBDQyBDWFggQ1BQ IExEIEFTIEFSIFJBTkxJQiBPQkpEVU1QIFJFQURFTEYgTk0KLQl1bnNldCBDRkxBR1MgQ1hYRkxB R1MgQ1BQRkxBR1MgTERGTEFHUwotCWV4cG9ydCBDRkxBR1M9Ii1PcyIgQ1hYRkxBR1M9Ii1PcyIK LQotCV9iaW51dGlsc19idWlsZAotCV9nY2NfYm9vdHN0cmFwCi0JX2xpbnV4X2hlYWRlcnMKLQlf Z2xpYmNfaGVhZGVycwotCV9nbGliY19idWlsZAotCV9nY2NfYnVpbGQKLX0KLQotZG9faW5zdGFs bCgpIHsKLQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBb ICEgLWQgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAt cCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke0RF U1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L3Vzci8ke2Z9IFwKLQkJCQkke0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0KLQkJ ZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIzMgot CWxuIC1zZiB1c3IvbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliMzIKLQotCSMgaW5zdGFs bCBjcm9zcyBiaW51dGlscwotCWNkICR7d3Jrc3JjfS9iaW51dGlscy1idWlsZAotCW1ha2UgREVT VERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgaW5zdGFsbCBjcm9zcyBnY2MKLQljZCAke3dy a3NyY30vZ2NjLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBt b3ZlIGxpYmNjMS5zbyogdG8gdGhlIHN5c3Jvb3QKLQltdiAke0RFU1RESVJ9L3Vzci9saWIvbGli Y2MxLnNvKiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQotCSMgaW5zdGFsbCBsaW51 eCBBUEkgaGVhZGVycyBmb3IgTUlQUwotCWNkICR7d3Jrc3JjfS9saW51eC0ke19saW51eF92ZXJz aW9ufQotCW1ha2UgQVJDSD1hcm0gSU5TVEFMTF9IRFJfUEFUSD0ke0RFU1RESVJ9LyR7X3N5c3Jv b3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQlybSAtZiAkKGZpbmQgJHtERVNURElSfS8ke19zeXNy b290fS91c3IvaW5jbHVkZSAtbmFtZSAuaW5zdGFsbCAtb3IgLW5hbWUgLi5pbnN0YWxsLmNtZCkK LQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZS9kcm0KLQotCSMgaW5z dGFsbCBnbGliYyBmb3IgdGFyZ2V0Ci0JY2QgJHt3cmtzcmN9L2dsaWJjLWJ1aWxkCi0JbWFrZSBp bnN0YWxsX3Jvb3Q9JHtERVNURElSfS8ke19zeXNyb290fSBpbnN0YWxsIGluc3RhbGwtaGVhZGVy cwotCi0JIyBzeW1saW5rcyBmb3IgZ25hcmwgYW5kIGduYXQgc2hhcmVkIGxpYnJhcmllcwotCV9t YWpvcnZlcj0ke19nY2NfdmVyc2lvbiUuKi4qfQotCV9hZGFsaWI9dXNyL2xpYi9nY2MvJHtfdHJp cGxldH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGli fS9saWJnbmFybC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGli Ci0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCWxuIC1zdmYgbGliZ25hcmwtJHtfbWFqb3J2 ZXJ9LnNvIGxpYmduYXJsLnNvCi0JbG4gLXN2ZiBsaWJnbmF0LSR7X21ham9ydmVyfS5zbyBsaWJn bmF0LnNvCi0Jcm0gLXZmICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF7cmwsdH0uc28KLQot CSMgV2UgbmVlZCB0byBidWlsZCBsaWJhdG9taWMgaW4gdGFyZ2V0IGdjYyBhcyBnY2NnbyBuZWVk cyBpdCB0bwotCSMgYnVpbGQuLi4gYnV0IGl0J3Mgbm90IG5lZWRlZCBhdCBydW50aW1lLCBzbyBy ZW1vdmUgaXQgZnJvbSB0aGUKLQkjIGRlc3RkaXIgc28gaXQgZG9lc24ndCBjb25mbGljdCB3aXRo IHRoZSBsaWJhdG9taWMgcGFja2FnZQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNy L2xpYi9saWJhdG9taWMuKgotCi0JIyBSZW1vdmUgdW5uZWNlc3Nhcnkgc3R1ZmYKLQlybSAtZiAk e0RFU1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCi0Jcm0gLXJmICR7REVTVERJUn0vdXNyL3No YXJlCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve3NiaW4sbGliLGV0Yyx2YXJ9Ci0J cm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL3tzYmluLHNoYXJlLGxpYmV4ZWN9Ci0J cm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWJleGVjCi19Ci0KIGNyb3NzLWFybS1saW51 eC1nbnVlYWJpaGYtbGliY19wYWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBnbGliYyBmaWxl cyIKIAlub3N0cmlwPXllcwpAQCAtMzc0LDYgKzQxLDYgQEAgY3Jvc3MtYXJtLWxpbnV4LWdudWVh YmloZi1saWJjX3BhY2thZ2UoKSB7CiAJbm92ZXJpZnlyZGVwcz15ZXMKIAogCXBrZ19pbnN0YWxs KCkgewotCQl2bW92ZSAke19zeXNyb290fQorCQl2bW92ZSB1c3IvJHtjcm9zc190cmlwbGV0fQog CX0KIH0KCkZyb20gMGNkZTJmOWUyMjNjZDM4ZGQyOWZmMmU0ZTg1NDhlYTQxNGVmMGZlNSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0 ZTogRnJpLCAyNSBEZWMgMjAyMCAyMTowODoyNyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMjZd IGNyb3NzLWFybS1saW51eC1tdXNsZWFiaTogcmV3b3JrIHdpdGggdm9pZC1jcm9zcwoKLS0tCiBz cmNwa2dzL2Nyb3NzLWFybS1saW51eC1tdXNsZWFiaS90ZW1wbGF0ZSB8IDMwNCArKy0tLS0tLS0t LS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMjg5IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJpL3Rl bXBsYXRlIGIvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtbXVzbGVhYmkvdGVtcGxhdGUKaW5kZXgg NzRiOGU4ZDRjMTEuLjQ3ODNkMDNmYTUxIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLWFybS1s aW51eC1tdXNsZWFiaS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLWFybS1saW51eC1tdXNs ZWFiaS90ZW1wbGF0ZQpAQCAtMSwyMCArMSwxOSBAQAotIyBUZW1wbGF0ZSBidWlsZCBmaWxlIGZv ciAnY3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJpJwotIworIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jv c3MtYXJtLWxpbnV4LW11c2xlYWJpJworX3RyaXBsZXQ9YXJtLWxpbnV4LW11c2xlYWJpCiBfYmlu dXRpbHNfdmVyc2lvbj0yLjMyCiBfZ2NjX3ZlcnNpb249OS4zLjAKIF9tdXNsX3ZlcnNpb249MS4x LjI0CiBfbGludXhfdmVyc2lvbj00LjE5CiBfbGlidWNvbnRleHRfdmVyc2lvbj0wLjkuMAotCi1f dHJpcGxldD1hcm0tbGludXgtbXVzbGVhYmkKLV9mcHVmbGFncz0iLS13aXRoLWFyY2g9YXJtdjV0 ZSAtLXdpdGhvdXQtZnAgLS13aXRoLWZsb2F0PXNvZnQiCi1fYXJjaGZsYWdzPSItbWFyY2g9YXJt djV0ZSAtbXNvZnQtZmxvYXQgLW1mbG9hdC1hYmk9c29mdCIKLV9zeXNyb290PSIvdXNyLyR7X3Ry aXBsZXR9IgotCiBwa2duYW1lPWNyb3NzLSR7X3RyaXBsZXR9CiB2ZXJzaW9uPTAuMzMKIHJldmlz aW9uPTMKLXNob3J0X2Rlc2M9IkNyb3NzIHRvb2xjaGFpbiBmb3IgQVJNdjUgVEUgdGFyZ2V0ICht dXNsKSIKK2J1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKK2NvbmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJj aD1hcm12NXRlIC0td2l0aC1mbG9hdD1zb2Z0IgoraG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9i amMgZ2NjLWdvIGZsZXggcGVybCBweXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxp Ym1wYy1kZXZlbCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVwZW5kcz0iJHtw a2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNjPSJWb2lkIGNy b3NzIHRvb2xjaGFpbiBmb3IgJHtfdHJpcGxldH0iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3Jw aGFuQHZvaWRsaW51eC5vcmc+IgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcv IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTUlUIgpAQCAt MzAsMjk2ICsyOSwyMyBAQCBjaGVja3N1bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3MmJhMTViOWI3 MGE4YjlmNzU1NTdmODk2NDQ2YzgyZThiMzZlNDczZWUwNAogIDBjNjhmNTY1NTUyOGFlZDRmOTlk YWU3MWE1YjI1OWVkYzkzMjM5ZmE4OTllMmRmNzljMDU1Mjc1YzIxNzQ5YTEKICAwZDUzYTQxNWEz MDdlZjE3NTE1M2JiZTYwYTU3MmM5NDBhOTIyY2I3MzZjZTEzNTMwYjY2NmU3ZWMyNzk1ZDY4Igog Ci1saWIzMmRpc2FibGVkPXllcwotbm9jcm9zcz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMK LWNyZWF0ZV93cmtzcmM9eWVzCi0KLWhvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1n byBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJ6bGliLWRldmVsIGdtcC1kZXZlbCBt cGZyLWRldmVsIGxpYm1wYy1kZXZlbCBpc2wxNS1kZXZlbCIKLW5vc3RyaXBfZmlsZXM9ImxpYmNh Zl9zaW5nbGUuYSBsaWJnY2MuYSBsaWJnY292LmEgbGliZ2NjX2VoLmEKLSBsaWJnbmFybF9waWMu YSBsaWJnbmFybC5hIGxpYmduYXRfcGljLmEgbGliZ25hdC5hIGxpYmdtZW0uYSIKLWRlcGVuZHM9 IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorY3Jvc3NfdHJpcGxldD0k e190cmlwbGV0fQorY3Jvc3NfbGlidWNvbnRleHRfYXJjaD1hcm0KK2Nyb3NzX2xpbnV4X2FyY2g9 YXJtCitjcm9zc19iaW51dGlsc19jb25maWd1cmVfYXJncz0iLS13aXRob3V0LWZwIgorY3Jvc3Nf bXVzbF9jZmxhZ3M9Ii1PcyAtbWFyY2g9YXJtdjV0ZSAtbXNvZnQtZmxvYXQgLW1mbG9hdC1hYmk9 c29mdCIKIAogaWYgWyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0gImFybXY1dGVsLW11c2wiIF07 IHRoZW4KIAlicm9rZW49IkNhbid0IGJ1aWxkIGNyb3NzdG9vbGNoYWluIHRvIGl0c2VsZiIKIGZp CiAKLV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUg JDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRjaCAtTiAk YXJncyAtaSAkMgotCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0KLV9iaW51dGlsc19i dWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxk X2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRp bmcgY3Jvc3MgYmludXRpbHMgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgYmludXRpbHMtYnVpbGQg XSAmJiBta2RpciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0aWxzLWJ1aWxkCi0KLQlfYXJncz0i LS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9 IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9y IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3RlbS16 bGliIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCS4uL2JpbnV0aWxzLSR7X2JpbnV0aWxz X3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSBjb25maWd1cmUtaG9zdCAmJiBt YWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmJpbnV0 aWxzX2J1aWxkX2RvbmUKLX0KLQotX2djY19ib290c3RyYXAoKSB7Ci0JbG9jYWwgX2FyZ3MKLQot CVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2Qg JHt3cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0KLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElS fS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQlkb25l Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL2ZpbGVzLyotbXVzbC5wYXRjaDsgZG8K LQkJX2FwcGx5X3BhdGNoIC1wMSAiJGYiCi0JZG9uZQotCi0JbXNnX25vcm1hbCAiQnVpbGRpbmcg Y3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1ib290c3RyYXAgXSAmJiBt a2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJhcAotCi0JX2FyZ3M9Ii0t cHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIg LS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS13aXRoLW5ld2xpYiIKLQlf YXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyIKLQlfYXJncys9IiAtLXdpdGgtbmV3bGliIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlf YXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXRocmVh ZHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWRlY2ltYWwtZmxvYXQiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlz YWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJnb21wIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1saWJhdG9taWMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMiCi0JX2Fy Z3MrPSIgbGliYXRfY3ZfaGF2ZV9pZnVuYz1ubyIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0K LQlDRkxBR1M9Ii1PMCAtZzAiIENYWEZMQUdTPSItTzAgLWcwIiBcCi0JCS4uL2djYy0ke19nY2Nf dmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBp bnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZQotfQotCi1fbGlu dXhfaGVhZGVycygpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZSBdICYmIHJl dHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBMaW51eCBBUEkg aGVhZGVycyBmb3IgQVJNXG4iCi0KLQljZCBsaW51eC0ke19saW51eF92ZXJzaW9ufQotCWZvciBm IGluICR7WEJQU19TUkNQS0dESVJ9L2tlcm5lbC1saWJjLWhlYWRlcnMvcGF0Y2hlcy8qLnBhdGNo OyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICRmCi0JZG9uZQotCi0JbWFrZSBBUkNIPWFybSBoZWFk ZXJzX2NoZWNrCi0JbWFrZSBBUkNIPWFybSBJTlNUQUxMX0hEUl9QQVRIPSR7X3N5c3Jvb3R9L3Vz ciBoZWFkZXJzX2luc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZQot fQotCi1fbXVzbF9idWlsZCgpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubXVzbF9idWlsZF9kb25lIF0g JiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9tdXNsLSR7X211c2xfdmVyc2lvbn0KLQltc2df bm9ybWFsICJCdWlsZGluZyBjcm9zcyBtdXNsIGxpYmNcbiIKLQotCSMgQXBwbHkgbXVzbCBwYXRj aGVzIGlmIHRoZXJlIGFyZSBhbnkKLQlpZiBbIC1kICIke1hCUFNfU1JDUEtHRElSfS9tdXNsL3Bh dGNoZXMiIF07IHRoZW4KLQkJZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vbXVzbC9wYXRjaGVz LyoucGF0Y2g7IGRvCi0JCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQkJZG9uZQotCWZpCi0KLQlD Qz0iJHtfdHJpcGxldH0tZ2NjIiBDRkxBR1M9Ii1PcyAtcGlwZSAtZlBJQyAke19hcmNoZmxhZ3N9 IiBcCi0JCS4vY29uZmlndXJlIC0tcHJlZml4PS91c3IKLQotCW1ha2UgJHttYWtlam9ic30KLQlt YWtlIERFU1RESVI9JHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5tdXNs X2J1aWxkX2RvbmUKLX0KLQotX2xpYnVjb250ZXh0X2J1aWxkKCkgewotCVsgLWYgJHt3cmtzcmN9 Ly5saWJ1Y29udGV4dF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9s aWJ1Y29udGV4dC0ke19saWJ1Y29udGV4dF92ZXJzaW9ufQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5n IGNyb3NzIGxpYnVjb250ZXh0XG4iCi0KLQkjIGl0J3Mgb2sgaWYgd2UncmUgc3RhdGljIG9ubHkg aGVyZQotCUNDPSIke190cmlwbGV0fS1nY2MiIEFSPSIke190cmlwbGV0fS1hciIgQVM9IiR7X3Ry aXBsZXR9LWFzIiBcCi0JCUNGTEFHUz0iLU9zIC1waXBlICR7X2FyY2hmbGFnc30iIFwKLQkJbWFr ZSBBUkNIPWFybSBsaWJ1Y29udGV4dC5hCi0KLQljcCBsaWJ1Y29udGV4dC5hICR7X3N5c3Jvb3R9 L3Vzci9saWIKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGlidWNvbnRleHRfYnVpbGRfZG9uZQotfQot Ci1fZ2NjX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2J1 aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVp bGRpbmcgY3Jvc3MgZ2NjIGZpbmFsXG4iCi0KLQlbICEgLWQgZ2NjLWJ1aWxkIF0gJiYgbWtkaXIg Z2NjLWJ1aWxkCi0JY2QgZ2NjLWJ1aWxkCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJn cys9IiAtLWxpYmV4ZWNkaXI9L3Vzci9saWIiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxl dH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1l bmFibGUtbGFuZ3VhZ2VzPWMsYWRhLGMrKyxvYmpjLG9iai1jKyssZ28sZm9ydHJhbixsdG8iCi0J X2FyZ3MrPSIgLS1lbmFibGUtbGliYWRhIgotCV9hcmdzKz0iIC0tZW5hYmxlLWx0byIKLQlfYXJn cys9IiAtLWVuYWJsZS1kZWZhdWx0LXBpZSIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXNz cCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNh bml0aXplciIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9 IiAtLWVuYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMiCi0JX2FyZ3Mr PSIgbGliYXRfY3ZfaGF2ZV9pZnVuYz1ubyIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQku Li9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vq b2JzfQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZQotfQotCi1kb19idWlsZCgp IHsKLQkjIEVuc3VyZSB3ZSB1c2Ugc2FuZSBlbnZpcm9ubWVudAotCXVuc2V0IENDIENYWCBDUFAg TEQgQVMgQVIgUkFOTElCIE9CSkRVTVAgUkVBREVMRiBOTQotCXVuc2V0IENGTEFHUyBDWFhGTEFH UyBDUFBGTEFHUyBMREZMQUdTCi0JZXhwb3J0IENGTEFHUz0iLU9zIC1waXBlIiBDWFhGTEFHUz0i LU9zIC1waXBlIgotCi0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8K LQkJaWYgWyAhIC1kICR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7 X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke19zeXNyb290fS8ke2Z9IF07 IHRoZW4KLQkJCWxuIC1zZnIgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gJHtfc3lzcm9vdH0vJHtmfQot CQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7X3N5c3Jvb3R9L3Vzci9saWIzMgotCWxuIC1zZiB1 c3IvbGliICR7X3N5c3Jvb3R9L2xpYjMyCi0KLQlfYmludXRpbHNfYnVpbGQKLQlfZ2NjX2Jvb3Rz dHJhcAotCV9saW51eF9oZWFkZXJzCi0JX211c2xfYnVpbGQKLQlfbGlidWNvbnRleHRfYnVpbGQK LQlfZ2NjX2J1aWxkCi19Ci0KLWRvX2luc3RhbGwoKSB7Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIg bGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtERVNURElSfS8ke19zeXNyb290fS91c3Iv JHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9IF07IHRo ZW4KLQkJCWxuIC1zZnIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBcCi0JCQkJJHtE RVNURElSfS8ke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtERVNU RElSfS8ke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L2xpYjMyCi0KLQkjIGluc3RhbGwgbGludXggQVBJIGhlYWRlcnMKLQljZCAke3dy a3NyY30vbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQltYWtlIEFSQ0g9YXJtIElOU1RBTExfSERS X1BBVEg9JHtERVNURElSfS8ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0Jcm0gLWYg JChmaW5kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUgLW5hbWUgLmluc3RhbGwg LW9yIC1uYW1lIC4uaW5zdGFsbC5jbWQpCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyL2luY2x1ZGUvZHJtCi0KLQkjIGluc3RhbGwgY3Jvc3MgYmludXRpbHMKLQljZCAke3dya3Ny Y30vYmludXRpbHMtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkj IGluc3RhbGwgY3Jvc3MgZ2NjCi0JY2QgJHt3cmtzcmN9L2djYy1idWlsZAotCW1ha2UgREVTVERJ Uj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgbW92ZSBsaWJjYzEuc28qIHRvIHRoZSBzeXNyb290 Ci0JbXYgJHtERVNURElSfS91c3IvbGliL2xpYmNjMS5zbyogJHtERVNURElSfS8ke19zeXNyb290 fS91c3IvbGliCi0KLQkjIGluc3RhbGwgbXVzbCBsaWJjIGZvciB0YXJnZXQKLQljZCAke3dya3Ny Y30vbXVzbC0ke19tdXNsX3ZlcnNpb259Ci0JbWFrZSBERVNURElSPSR7REVTVERJUn0vJHtfc3lz cm9vdH0gaW5zdGFsbAotCi0JIyBSZW1vdmUgdXNlbGVzcyBoZWFkZXJzLgotCXJtIC1yZiAke0RF U1RESVJ9L3Vzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyovaW5jbHVkZS1maXhlZC8KLQotCSMgTWFr ZSBsZC1tdXNsLWFybS5zby4xIHN5bWxpbmsgcmVsYXRpdmUuCi0JbG4gLXNmIGxpYmMuc28gJHtE RVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xkLW11c2wtYXJtLnNvLjEKLQotCSMgc3ltbGlu a3MgZm9yIGduYXJsIGFuZCBnbmF0IHNoYXJlZCBsaWJyYXJpZXMKLQlfbWFqb3J2ZXI9JHtfZ2Nj X3ZlcnNpb24lLiouKn0KLQlfYWRhbGliPXVzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7X2djY192 ZXJzaW9ufS9hZGFsaWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hcmwtJHtf bWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCW12IC12ICR7REVT VERJUn0vJHtfYWRhbGlifS9saWJnbmF0LSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3Vzci9saWIKLQlsbiAtc3ZmIGxpYmduYXJsLSR7X21ham9ydmVyfS5zbyBsaWJnbmFy bC5zbwotCWxuIC1zdmYgbGliZ25hdC0ke19tYWpvcnZlcn0uc28gbGliZ25hdC5zbwotCXJtIC12 ZiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25he3JsLHR9LnNvCi0KLQkjIFdlIG5lZWQgdG8g YnVpbGQgbGliYXRvbWljIGluIHRhcmdldCBnY2MgYXMgZ2NjZ28gbmVlZHMgaXQgdG8KLQkjIGJ1 aWxkLi4uIGJ1dCBpdCdzIG5vdCBuZWVkZWQgYXQgcnVudGltZSwgc28gcmVtb3ZlIGl0IGZyb20g dGhlCi0JIyBkZXN0ZGlyIHNvIGl0IGRvZXNuJ3QgY29uZmxpY3Qgd2l0aCB0aGUgbGliYXRvbWlj IHBhY2thZ2UKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIvbGliYXRvbWlj LioKLQotCSMgUmVtb3ZlIHVubmVjZXNzYXJ5IHN0dWZmCi0Jcm0gLWYgJHtERVNURElSfS91c3Iv bGliKi9saWJpYmVydHkuYQotCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9zaGFyZQotCXJtIC1yZiAk e0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3tldGMsdmFyfQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3Vzci97c2JpbixzaGFyZSxsaWJleGVjfQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lz cm9vdH0vbGliZXhlYwotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliLyoucHkKLQly bSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS97c2JpbixsaWJ9Ci19Ci0KIGNyb3NzLWFybS1s aW51eC1tdXNsZWFiaS1saWJjX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGxpYmMgZmls ZXMiCiAJbm9zdHJpcD15ZXMKIAlub3NobGlicHJvdmlkZXM9eWVzCiAJbm92ZXJpZnlyZGVwcz15 ZXMKKwogCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAke19zeXNyb290fQorCQl2bW92ZSB1c3Iv JHtjcm9zc190cmlwbGV0fQogCX0KIH0KCkZyb20gODFhMWQxMWFkZTM0NDAxODgwYzQ0YTEwZDk2 NDI3ZjdlMDNmM2ZkZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcTY2IDxkYW5pZWxA b2N0YWZvcmdlLm9yZz4KRGF0ZTogRnJpLCAyNSBEZWMgMjAyMCAyMTowODozOSArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggMDgvMjZdIGNyb3NzLWFybS1saW51eC1tdXNsZWFiaWhmOiByZXdvcmsgd2l0 aCB2b2lkLWNyb3NzCgotLS0KIHNyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJpaGYvdGVt cGxhdGUgfCAzMDIgKy0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNCBpbnNl cnRpb25zKCspLCAyODggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1h cm0tbGludXgtbXVzbGVhYmloZi90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LW11 c2xlYWJpaGYvdGVtcGxhdGUKaW5kZXggOTJlMjVmNDllNDcuLjM2YzQ3YzEzM2RjIDEwMDY0NAot LS0gYS9zcmNwa2dzL2Nyb3NzLWFybS1saW51eC1tdXNsZWFiaWhmL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJpaGYvdGVtcGxhdGUKQEAgLTEsMjAgKzEsMTkg QEAKLSMgVGVtcGxhdGUgYnVpbGQgZmlsZSBmb3IgJ2Nyb3NzLWFybS1saW51eC1tdXNsZWFiaWhm JwotIworIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJpaGYnCitf dHJpcGxldD1hcm0tbGludXgtbXVzbGVhYmloZgogX2JpbnV0aWxzX3ZlcnNpb249Mi4zMgogX2dj Y192ZXJzaW9uPTkuMy4wCiBfbXVzbF92ZXJzaW9uPTEuMS4yNAogX2xpbnV4X3ZlcnNpb249NC4x OQogX2xpYnVjb250ZXh0X3ZlcnNpb249MC45LjAKLQotX3RyaXBsZXQ9YXJtLWxpbnV4LW11c2xl YWJpaGYKLV9mcHVmbGFncz0iLS13aXRoLWFyY2g9YXJtdjYgLS13aXRoLWZwdT12ZnAgLS13aXRo LWZsb2F0PWhhcmQiCi1fYXJjaGZsYWdzPSItbWFyY2g9YXJtdjYgLW1mcHU9dmZwIC1tZmxvYXQt YWJpPWhhcmQiCi1fc3lzcm9vdD0iL3Vzci8ke190cmlwbGV0fSIKLQogcGtnbmFtZT1jcm9zcy0k e190cmlwbGV0fQogdmVyc2lvbj0wLjMzCiByZXZpc2lvbj0zCi1zaG9ydF9kZXNjPSJDcm9zcyB0 b29sY2hhaW4gZm9yIEFSTXY2IExFIEhhcmQgRmxvYXQgdGFyZ2V0IChtdXNsKSIKK2J1aWxkX3N0 eWxlPXZvaWQtY3Jvc3MKK2NvbmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJjaD1hcm12NiAtLXdpdGgt ZnB1PXZmcCAtLXdpdGgtZmxvYXQ9aGFyZCIKK2hvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpj IGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJt cGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK2RlcGVuZHM9IiR7cGtn bmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igorc2hvcnRfZGVzYz0iVm9pZCBjcm9z cyB0b29sY2hhaW4gZm9yICR7X3RyaXBsZXR9IgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhh bkB2b2lkbGludXgub3JnPiIKIGhvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIK IGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIE1JVCIKQEAgLTMw LDI5NSArMjksMjIgQEAgY2hlY2tzdW09IjBhYjZjNTVkZDg2YTkyZWQ1NjE5NzJiYTE1YjliNzBh OGI5Zjc1NTU3Zjg5NjQ0NmM4MmU4YjM2ZTQ3M2VlMDQKICAwYzY4ZjU2NTU1MjhhZWQ0Zjk5ZGFl NzFhNWIyNTllZGM5MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExCiAgMGQ1M2E0MTVhMzA3 ZWYxNzUxNTNiYmU2MGE1NzJjOTQwYTkyMmNiNzM2Y2UxMzUzMGI2NjZlN2VjMjc5NWQ2OCIKIAot bGliMzJkaXNhYmxlZD15ZXMKLW5vY3Jvc3M9eWVzCi1ub3BpZT15ZXMKLW5vZGVidWc9eWVzCi1j cmVhdGVfd3Jrc3JjPXllcwotCi1ob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28g ZmxleCBwZXJsIHB5dGhvbjMiCi1tYWtlZGVwZW5kcz0iemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBm ci1kZXZlbCBsaWJtcGMtZGV2ZWwgaXNsMTUtZGV2ZWwiCi1ub3N0cmlwX2ZpbGVzPSJsaWJjYWZf c2luZ2xlLmEgbGliZ2NjLmEgbGliZ2Nvdi5hIGxpYmdjY19laC5hCi0gbGliZ25hcmxfcGljLmEg bGliZ25hcmwuYSBsaWJnbmF0X3BpYy5hIGxpYmduYXQuYSBsaWJnbWVtLmEiCi1kZXBlbmRzPSIk e3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK2Nyb3NzX3RyaXBsZXQ9JHtf dHJpcGxldH0KK2Nyb3NzX2xpYnVjb250ZXh0X2FyY2g9YXJtCitjcm9zc19saW51eF9hcmNoPWFy bQorY3Jvc3NfbXVzbF9jZmxhZ3M9Ii1PcyAtbWFyY2g9YXJtdjYgLW1mcHU9dmZwIC1tZmxvYXQt YWJpPWhhcmQiCiAKIGlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiA9ICJhcm12NmwtbXVzbCIg XTsgdGhlbgogCWJyb2tlbj0iQ2FuJ3QgYnVpbGQgY3Jvc3N0b29sY2hhaW4gdG8gaXRzZWxmIgog ZmkKIAotX2FwcGx5X3BhdGNoKCkgewotCWxvY2FsIGFyZ3M9IiQxIiBwbmFtZT0iJChiYXNlbmFt ZSAkMikiCi0KLQlpZiBbICEgLWYgIi4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCi0JCXBhdGNoIC1O ICRhcmdzIC1pICQyCi0JCXRvdWNoIC4ke3BuYW1lfV9kb25lCi0JZmkKLX0KLQotX2JpbnV0aWxz X2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uYmludXRpbHNfYnVp bGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWls ZGluZyBjcm9zcyBiaW51dGlscyBib290c3RyYXBcbiIKLQotCVsgISAtZCBiaW51dGlscy1idWls ZCBdICYmIG1rZGlyIGJpbnV0aWxzLWJ1aWxkCi0JY2QgYmludXRpbHMtYnVpbGQKLQotCV9hcmdz PSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdz Kz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJy b3IiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLXdpdGgtc3lzdGVt LXpsaWIiCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vYmludXRpbHMtJHtfYmludXRp bHNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNvbmZpZ3VyZS1ob3N0ICYm IG1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uYmlu dXRpbHNfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2Jvb3RzdHJhcCgpIHsKLQlsb2NhbCBfYXJncwot Ci0JWyAtZiAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZSBdICYmIHJldHVybiAwCi0KLQlj ZCAke3dya3NyY30vZ2NjLSR7X2djY192ZXJzaW9ufQotCWZvciBmIGluICR7WEJQU19TUkNQS0dE SVJ9L2djYy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCWRv bmUKLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvZmlsZXMvKi1tdXNsLnBhdGNoOyBk bwotCQlfYXBwbHlfcGF0Y2ggLXAxICIkZiIKLQlkb25lCi0KLQltc2dfbm9ybWFsICJCdWlsZGlu ZyBjcm9zcyBnY2MgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgLi4vZ2NjLWJvb3RzdHJhcCBdICYm IG1rZGlyIC4uL2djYy1ib290c3RyYXAKLQljZCAuLi9nY2MtYm9vdHN0cmFwCi0KLQlfYXJncz0i LS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9 IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLXdpdGgtbmV3bGliIgot CV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jIgotCV9hcmdzKz0iIC0td2l0aC1uZXdsaWIi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtdGhy ZWFkcyIKLQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKLQlfYXJncys9IiAtLWRp c2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmdvbXAiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLWxpYmF0b21pYyIKLQlfYXJncys9IiAtLWRpc2FibGUtc3ltdmVycyIKLQlf YXJncys9IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5vIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIK LQotCUNGTEFHUz0iLU8wIC1nMCIgQ1hYRkxBR1M9Ii1PMCAtZzAiIFwKLQkJLi4vZ2NjLSR7X2dj Y192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtl IGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lCi19Ci0KLV9s aW51eF9oZWFkZXJzKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lIF0gJiYg cmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIExpbnV4IEFQ SSBoZWFkZXJzIGZvciBBUk1cbiIKLQotCWNkIGxpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0JZm9y IGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0va2VybmVsLWxpYmMtaGVhZGVycy9wYXRjaGVzLyoucGF0 Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgJGYKLQlkb25lCi0KLQltYWtlIEFSQ0g9YXJtIGhl YWRlcnNfY2hlY2sKLQltYWtlIEFSQ0g9YXJtIElOU1RBTExfSERSX1BBVEg9JHtfc3lzcm9vdH0v dXNyIGhlYWRlcnNfaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25l Ci19Ci0KLV9tdXNsX2J1aWxkKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5tdXNsX2J1aWxkX2RvbmUg XSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9ufQotCW1z Z19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIG11c2wgbGliY1xuIgotCi0JIyBBcHBseSBtdXNsIHBh dGNoZXMgaWYgdGhlcmUgYXJlIGFueQotCWlmIFsgLWQgIiR7WEJQU19TUkNQS0dESVJ9L211c2wv cGF0Y2hlcyIgXTsgdGhlbgotCQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9tdXNsL3BhdGNo ZXMvKi5wYXRjaDsgZG8KLQkJCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCQlkb25lCi0JZmkKLQot CUNDPSIke190cmlwbGV0fS1nY2MiIENGTEFHUz0iLU9zIC1waXBlIC1mUElDICR7X2FyY2hmbGFn c30iIFwKLQkJLi9jb25maWd1cmUgLS1wcmVmaXg9L3VzcgotCi0JbWFrZSAke21ha2Vqb2JzfQot CW1ha2UgREVTVERJUj0ke19zeXNyb290fSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLm11 c2xfYnVpbGRfZG9uZQotfQotCi1fbGlidWNvbnRleHRfYnVpbGQoKSB7Ci0JWyAtZiAke3dya3Ny Y30vLmxpYnVjb250ZXh0X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9 L2xpYnVjb250ZXh0LSR7X2xpYnVjb250ZXh0X3ZlcnNpb259Ci0JbXNnX25vcm1hbCAiQnVpbGRp bmcgY3Jvc3MgbGlidWNvbnRleHRcbiIKLQotCSMgaXQncyBvayBpZiB3ZSdyZSBzdGF0aWMgb25s eSBoZXJlCi0JQ0M9IiR7X3RyaXBsZXR9LWdjYyIgQVI9IiR7X3RyaXBsZXR9LWFyIiBBUz0iJHtf dHJpcGxldH0tYXMiIFwKLQkJQ0ZMQUdTPSItT3MgLXBpcGUgJHtfYXJjaGZsYWdzfSIgXAotCQlt YWtlIEFSQ0g9YXJtIGxpYnVjb250ZXh0LmEKLQotCWNwIGxpYnVjb250ZXh0LmEgJHtfc3lzcm9v dH0vdXNyL2xpYgotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saWJ1Y29udGV4dF9idWlsZF9kb25lCi19 Ci0KLV9nY2NfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2J1 aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVp bGRpbmcgY3Jvc3MgZ2NjIGZpbmFsXG4iCi0KLQlbICEgLWQgZ2NjLWJ1aWxkIF0gJiYgbWtkaXIg Z2NjLWJ1aWxkCi0JY2QgZ2NjLWJ1aWxkCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJn cys9IiAtLWxpYmV4ZWNkaXI9L3Vzci9saWIiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxl dH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1l bmFibGUtbGFuZ3VhZ2VzPWMsYWRhLGMrKyxvYmpjLG9iai1jKyssZ28sZm9ydHJhbixsdG8iCi0J X2FyZ3MrPSIgLS1lbmFibGUtbGliYWRhIgotCV9hcmdzKz0iIC0tZW5hYmxlLWx0byIKLQlfYXJn cys9IiAtLWVuYWJsZS1kZWZhdWx0LXBpZSIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXNz cCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNh bml0aXplciIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLWxpYm1weCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9 IiAtLWVuYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMiCi0JX2FyZ3Mr PSIgbGliYXRfY3ZfaGF2ZV9pZnVuYz1ubyIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQku Li9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vq b2JzfQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZQotfQotCi1kb19idWlsZCgp IHsKLQkjIEVuc3VyZSB3ZSB1c2Ugc2FuZSBlbnZpcm9ubWVudAotCXVuc2V0IENDIENYWCBDUFAg TEQgQVMgQVIgUkFOTElCIE9CSkRVTVAgUkVBREVMRiBOTQotCXVuc2V0IENGTEFHUyBDWFhGTEFH UyBDUFBGTEFHUyBMREZMQUdTCi0JZXhwb3J0IENGTEFHUz0iLU9zIC1waXBlIiBDWFhGTEFHUz0i LU9zIC1waXBlIgotCi0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8K LQkJaWYgWyAhIC1kICR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7 X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke19zeXNyb290fS8ke2Z9IF07 IHRoZW4KLQkJCWxuIC1zZnIgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gJHtfc3lzcm9vdH0vJHtmfQot CQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7X3N5c3Jvb3R9L3Vzci9saWIzMgotCWxuIC1zZiB1 c3IvbGliICR7X3N5c3Jvb3R9L2xpYjMyCi0KLQlfYmludXRpbHNfYnVpbGQKLQlfZ2NjX2Jvb3Rz dHJhcAotCV9saW51eF9oZWFkZXJzCi0JX211c2xfYnVpbGQKLQlfbGlidWNvbnRleHRfYnVpbGQK LQlfZ2NjX2J1aWxkCi19Ci0KLWRvX2luc3RhbGwoKSB7Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIg bGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtERVNURElSfS8ke19zeXNyb290fS91c3Iv JHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9IF07IHRo ZW4KLQkJCWxuIC1zZnIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBcCi0JCQkJJHtE RVNURElSfS8ke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtERVNU RElSfS8ke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L2xpYjMyCi0KLQkjIGluc3RhbGwgbGludXggQVBJIGhlYWRlcnMKLQljZCAke3dy a3NyY30vbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQltYWtlIEFSQ0g9YXJtIElOU1RBTExfSERS X1BBVEg9JHtERVNURElSfS8ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0Jcm0gLWYg JChmaW5kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUgLW5hbWUgLmluc3RhbGwg LW9yIC1uYW1lIC4uaW5zdGFsbC5jbWQpCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyL2luY2x1ZGUvZHJtCi0KLQkjIGluc3RhbGwgY3Jvc3MgYmludXRpbHMKLQljZCAke3dya3Ny Y30vYmludXRpbHMtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkj IGluc3RhbGwgY3Jvc3MgZ2NjCi0JY2QgJHt3cmtzcmN9L2djYy1idWlsZAotCW1ha2UgREVTVERJ Uj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgbW92ZSBsaWJjYzEuc28qIHRvIHRoZSBzeXNyb290 Ci0JbXYgJHtERVNURElSfS91c3IvbGliL2xpYmNjMS5zbyogJHtERVNURElSfS8ke19zeXNyb290 fS91c3IvbGliCi0KLQkjIGluc3RhbGwgbXVzbCBsaWJjIGZvciB0YXJnZXQKLQljZCAke3dya3Ny Y30vbXVzbC0ke19tdXNsX3ZlcnNpb259Ci0JbWFrZSBERVNURElSPSR7REVTVERJUn0vJHtfc3lz cm9vdH0gaW5zdGFsbAotCi0JIyBSZW1vdmUgdXNlbGVzcyBoZWFkZXJzLgotCXJtIC1yZiAke0RF U1RESVJ9L3Vzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyovaW5jbHVkZS1maXhlZC8KLQotCSMgTWFr ZSBsZC1tdXNsLWFybWhmLnNvLjEgc3ltbGluayByZWxhdGl2ZS4KLQlsbiAtc2YgbGliYy5zbyAk e0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIvbGQtbXVzbC1hcm1oZi5zby4xCi0KLQkjIHN5 bWxpbmtzIGZvciBnbmFybCBhbmQgZ25hdCBzaGFyZWQgbGlicmFyaWVzCi0JX21ham9ydmVyPSR7 X2djY192ZXJzaW9uJS4qLip9Ci0JX2FkYWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0fS8ke19n Y2NfdmVyc2lvbn0vYWRhbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXJs LSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQltdiAtdiAk e0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hdC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8k e19zeXNyb290fS91c3IvbGliCi0JbG4gLXN2ZiBsaWJnbmFybC0ke19tYWpvcnZlcn0uc28gbGli Z25hcmwuc28KLQlsbiAtc3ZmIGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXQuc28KLQly bSAtdmYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXtybCx0fS5zbwotCi0JIyBXZSBuZWVk IHRvIGJ1aWxkIGxpYmF0b21pYyBpbiB0YXJnZXQgZ2NjIGFzIGdjY2dvIG5lZWRzIGl0IHRvCi0J IyBidWlsZC4uLiBidXQgaXQncyBub3QgbmVlZGVkIGF0IHJ1bnRpbWUsIHNvIHJlbW92ZSBpdCBm cm9tIHRoZQotCSMgZGVzdGRpciBzbyBpdCBkb2Vzbid0IGNvbmZsaWN0IHdpdGggdGhlIGxpYmF0 b21pYyBwYWNrYWdlCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xpYmF0 b21pYy4qCi0KLQkjIFJlbW92ZSB1bm5lY2Vzc2FyeSBzdHVmZgotCXJtIC1mICR7REVTVERJUn0v dXNyL2xpYiovbGliaWJlcnR5LmEKLQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUKLQlybSAt cmYgJHtERVNURElSfS8ke19zeXNyb290fS97ZXRjLHZhcn0KLQlybSAtcmYgJHtERVNURElSfS8k e19zeXNyb290fS91c3Ive3NiaW4sc2hhcmUsbGliZXhlY30KLQlybSAtZiAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L2xpYmV4ZWMKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYi8qLnB5 Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve3NiaW4sbGlifQotfQotCiBjcm9zcy1h cm0tbGludXgtbXVzbGVhYmloZi1saWJjX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGxp YmMgZmlsZXMiCiAJbm9zdHJpcD15ZXMKIAlub3NobGlicHJvdmlkZXM9eWVzCiAJbm92ZXJpZnly ZGVwcz15ZXMKKwogCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAke19zeXNyb290fQorCQl2bW92 ZSB1c3IvJHtjcm9zc190cmlwbGV0fQogCX0KIH0KCkZyb20gYzE3MmQwZTVmNTg5YjhjYjcxZTNk NzI5OTAzYTVhNzEwYjQ0NmY4NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcTY2IDxk YW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogRnJpLCAyNSBEZWMgMjAyMCAyMTozNjozMyArMDEw MApTdWJqZWN0OiBbUEFUQ0ggMDkvMjZdIGNyb3NzLWFybXY3bC1saW51eC1nbnVlYWJpaGY6IHJl d29yayB3aXRoIHZvaWQtY3Jvc3MKCi0tLQogc3JjcGtncy9jcm9zcy1hcm12N2wtbGludXgtZ251 ZWFiaWhmL3RlbXBsYXRlIHwgMzYzICstLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDE1IGluc2VydGlvbnMoKyksIDM0OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dz L2Nyb3NzLWFybXY3bC1saW51eC1nbnVlYWJpaGYvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLWFy bXY3bC1saW51eC1nbnVlYWJpaGYvdGVtcGxhdGUKaW5kZXggOTY5NjY5N2RjZWIuLjU1NTBmNGUz NDljIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLWFybXY3bC1saW51eC1nbnVlYWJpaGYvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1hcm12N2wtbGludXgtZ251ZWFiaWhmL3RlbXBsYXRl CkBAIC0xLDM3OSArMSw0NiBAQAotIyBUZW1wbGF0ZSBidWlsZCBmaWxlIGZvciAnY3Jvc3MtYXJt djdsLWxpbnV4LWdudWVhYmloZicKLSMKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLWFybXY3 bC1saW51eC1nbnVlYWJpaGYnCitfdHJpcGxldD1hcm12N2wtbGludXgtZ251ZWFiaWhmCiBfYmlu dXRpbHNfdmVyc2lvbj0yLjMyCiBfZ2NjX3ZlcnNpb249OS4zLjAKIF9nbGliY192ZXJzaW9uPTIu MzAKIF9saW51eF92ZXJzaW9uPTQuMTkKLQotX3RyaXBsZXQ9YXJtdjdsLWxpbnV4LWdudWVhYmlo ZgotX2ZwdWZsYWdzPSItLXdpdGgtYXJjaD1hcm12Ny1hIC0td2l0aC1mcHU9dmZwdjMgLS13aXRo LWZsb2F0PWhhcmQiCi1fYXJjaGZsYWdzPSItbWFyY2g9YXJtdjctYSAtbWZwdT12ZnB2MyAtbWZs b2F0LWFiaT1oYXJkIgotX3N5c3Jvb3Q9Ii91c3IvJHtfdHJpcGxldH0iCi0KIHBrZ25hbWU9Y3Jv c3MtJHtfdHJpcGxldH0KIHZlcnNpb249MC4zMwogcmV2aXNpb249Mgotc2hvcnRfZGVzYz0iR05V IENyb3NzIHRvb2xjaGFpbiBmb3IgdGhlICR7X3RyaXBsZXR9IExFIHRhcmdldCAoYmludXRpbHMv Z2NjL2dsaWJjKSIKK2J1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKK2NvbmZpZ3VyZV9hcmdzPSItLXdp dGgtYXJjaD1hcm12Ny1hIC0td2l0aC1mcHU9dmZwdjMgLS13aXRoLWZsb2F0PWhhcmQiCitob3N0 bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCittYWtl ZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVsIG1w ZnItZGV2ZWwiCitkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9u fSIKK3Nob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke190cmlwbGV0fSIKIG1h aW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCi1ob21lcGFnZT0iaHR0 cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwt My4wLW9yLWxhdGVyLCBMR1BMLTIuMS1vci1sYXRlciIKK2hvbWVwYWdlPSJodHRwczovL3d3dy52 b2lkbGludXgub3JnLyIKIGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmludXRp bHMtJHtfYmludXRpbHNfdmVyc2lvbn0udGFyLnh6CiAgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19n Y2NfdmVyc2lvbn0vZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKLSBodHRwOi8vZnRwLmdudS5v cmcvZ251L2dsaWJjL2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259LnRhci54egorICR7R05VX1NJVEV9 L2dsaWJjL2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259LnRhci54egogICR7S0VSTkVMX1NJVEV9L2tl cm5lbC92NC54L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259LnRhci54eiIKIGNoZWNrc3VtPSIwYWI2 YzU1ZGQ4NmE5MmVkNTYxOTcyYmExNWI5YjcwYThiOWY3NTU1N2Y4OTY0NDZjODJlOGIzNmU0NzNl ZTA0CiAgNzFlMTk3ODY3NjExZjYwNTRhYTExMTliMTNhMGMwYWJhYzEyODM0NzY1ZmUyZDgxZjM1 YWM1N2Y4NGY3NDJkMQogIGUyYzQxMTRlNTY5YWZiZTdlZGJjMjkxMzFhNDNiZTgzMzg1MGFiOWE0 NTlkODFiZWIyNTg4MDE2ZDJiYmI4YWYKICAwYzY4ZjU2NTU1MjhhZWQ0Zjk5ZGFlNzFhNWIyNTll ZGM5MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExIgogCi1saWIzMmRpc2FibGVkPXllcwot bm9jcm9zcz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMKLWNyZWF0ZV93cmtzcmM9eWVzCi0K LWhvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIK LW1ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCIKLWRlcGVu ZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igotbm9zdHJpcF9maWxl cz0ibGliY2FmX3NpbmdsZS5hIGxpYmdjYy5hIGxpYmdjb3YuYSBsaWJnY2NfZWguYQotIGxpYmdu YXJsX3BpYy5hIGxpYmduYXJsLmEgbGliZ25hdF9waWMuYSBsaWJnbmF0LmEgbGliZ21lbS5hIgot Ci1pZiBbICIkWEJQU19UQVJHRVRfTElCQyIgIT0gImdsaWJjIiBdOyB0aGVuCi0JYnJva2VuPSJn bGliYyBjcm9zc3Rvb2xjaGFpbiBvbmx5IGF2YWlsYWJsZSBvbiBnbGliYyIKLWZpCitjcm9zc190 cmlwbGV0PSR7X3RyaXBsZXR9Citjcm9zc19saW51eF9hcmNoPWFybQorY3Jvc3NfZ2xpYmNfY2Zs YWdzPSItTzIgLW1hcmNoPWFybXY3LWEgLW1mcHU9dmZwdjMgLW1mbG9hdC1hYmk9aGFyZCIKIAog aWYgWyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0gImFybXY3bCIgXTsgdGhlbgogCWJyb2tlbj0i Q2FuJ3QgYnVpbGQgY3Jvc3N0b29sY2hhaW4gdG8gaXRzZWxmIgogZmkKIAotX2FwcGx5X3BhdGNo KCkgewotCWxvY2FsIGFyZ3M9IiQxIiBwbmFtZT0iJChiYXNlbmFtZSAkMikiCi0KLQlpZiBbICEg LWYgIi4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCi0JCXBhdGNoIC1OICRhcmdzIC1pICQyCi0JCXRv dWNoIC4ke3BuYW1lfV9kb25lCi0JZmkKLX0KLQotX2xpbnV4X2hlYWRlcnMoKSB7Ci0JWyAtZiAk e3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9 Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgTGludXggQVBJIGhlYWRlcnMgZm9yIEFSTVxuIgotCi0J Y2QgbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQotCW1ha2UgQVJDSD1hcm0gaGVhZGVyc19jaGVj awotCW1ha2UgQVJDSD1hcm0gSU5TVEFMTF9IRFJfUEFUSD0ke19zeXNyb290fS91c3IgaGVhZGVy c19pbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUKLX0KLQotX2Jp bnV0aWxzX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uYmludXRp bHNfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFs ICJCdWlsZGluZyBjcm9zcyBiaW51dGlsc1xuIgotCVsgISAtZCBiaW51dGlscy1idWlsZCBdICYm IG1rZGlyIGJpbnV0aWxzLWJ1aWxkCi0JY2QgYmludXRpbHMtYnVpbGQKLQotCV9hcmdzPSItLXBy ZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0t d2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQlfYXJncys9IiAtLXdpdGgtc3lzdGVtLXpsaWIi Ci0KLQkuLi9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30K LQotCW1ha2UgY29uZmlndXJlLWhvc3QKLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxs Ci0KLQl0b3VjaCAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUKLX0KLQotX2djY19ib290 c3RyYXAoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFw X2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0K LQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlf YXBwbHlfcGF0Y2ggLXAwICIkZiIKLQlkb25lCi0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9z cyBnY2MgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgLi4vZ2NjLWJvb3RzdHJhcCBdICYmIG1rZGly IC4uL2djYy1ib290c3RyYXAKLQljZCAuLi9nY2MtYm9vdHN0cmFwCi0KLQlfYXJncz0iLS1wcmVm aXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdp dGhvdXQtaGVhZGVycyIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlz YWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJnb21wIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZs YXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGli aXRtIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJhdG9taWMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LXRocmVhZHMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLXNqbGotZXhjZXB0aW9ucyIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0J X2FyZ3MrPSIgLS13aXRoLWdudS1sZCIKLQlfYXJncys9IiAtLXdpdGgtZ251LWFzIgotCV9hcmdz Kz0iICR7X2ZwdWZsYWdzfSIKLQotCUNGTEFHUz0iLU8wIC1nMCIgQ1hYRkxBR1M9Ii1PMCAtZzAi IFwKLQkJLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2Ug JHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2Jvb3Rz dHJhcF9kb25lCi19Ci0KLV9nbGliY19oZWFkZXJzKCkgewotCWxvY2FsIF9hcmdzIGYKLQotCVsg LWYgJHt3cmtzcmN9Ly5nbGliY19oZWFkZXJzX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3 cmtzcmN9L2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259Ci0JaWYgWyAtZCAiJHtYQlBTX1NSQ1BLR0RJ Un0vZ2xpYmMvcGF0Y2hlcyIgXTsgdGhlbgotCQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9n bGliYy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCQlfYXBwbHlfcGF0Y2ggLXAxICIkZiIKLQkJZG9u ZQotCWZpCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnbGli YyBoZWFkZXJzXG4iCi0KLQlbICEgLWQgZ2xpYmMtaGVhZGVycyBdICYmIG1rZGlyIGdsaWJjLWhl YWRlcnMKLQljZCBnbGliYy1oZWFkZXJzCi0KLQllY2hvICJsaWJjX2N2X2ZvcmNlZF91bndpbmQ9 eWVzIiA+IGNvbmZpZy5jYWNoZQotCWVjaG8gImxpYmNfY3ZfY19jbGVhbnVwPXllcyIgPj4gY29u ZmlnLmNhY2hlCi0KLQlleHBvcnQgQ0M9IiR7X3RyaXBsZXR9LWdjYyIgTEQ9IiR7X3RyaXBsZXR9 LWxkIiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIgQ1BQPSIke190cmlwbGV0fS1jcHAiCi0KLQlf YXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLWhvc3Q9JHtfdHJpcGxldH0iCi0JX2Fy Z3MrPSIgLS13aXRoLWhlYWRlcnM9JHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUiCi0JX2FyZ3MrPSIg LS1jb25maWctY2FjaGUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtcnBjIgotCV9hcmdz Kz0iIC0tZW5hYmxlLW9ic29sZXRlLW5zbCIKLQlfYXJncys9IiAtLWVuYWJsZS1rZXJuZWw9Mi42 LjI3IgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCS4uL2dsaWJjLSR7X2dsaWJjX3ZlcnNp b259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAtayBpbnN0YWxsLWhlYWRlcnMgY3Jvc3Nf Y29tcGlsaW5nPXllcyBcCi0JCWluc3RhbGxfcm9vdD0ke19zeXNyb290fQotCi0JdG91Y2ggJHt3 cmtzcmN9Ly5nbGliY19oZWFkZXJzX2RvbmUKLX0KLQotX2dsaWJjX2J1aWxkKCkgewotCWxvY2Fs IF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2xpYmNfYnVpbGRfZG9uZSBdICYmIHJldHVybiAw Ci0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnbGliY1xuIgot Ci0JWyAhIC1kIGdsaWJjLWJ1aWxkIF0gJiYgbWtkaXIgZ2xpYmMtYnVpbGQKLQljZCBnbGliYy1i dWlsZAotCi0JZWNobyAic2xpYmRpcj0vdXNyL2xpYjMyIiA+IGNvbmZpZ3Bhcm1zCi0KLQllY2hv ICJsaWJjX2N2X2ZvcmNlZF91bndpbmQ9eWVzIiA+IGNvbmZpZy5jYWNoZQotCWVjaG8gImxpYmNf Y3ZfY19jbGVhbnVwPXllcyIgPj4gY29uZmlnLmNhY2hlCi0KLQlleHBvcnQgQ0M9IiR7X3RyaXBs ZXR9LWdjYyIgTEQ9IiR7X3RyaXBsZXR9LWxkIiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIgQ1BQ PSIke190cmlwbGV0fS1jcHAiCi0JZXhwb3J0IENGTEFHUz0iLU9zIC1waXBlICR7X2FyY2hmbGFn c30iCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLWxpYmRpcj0vdXNyL2xp YjMyIgotCV9hcmdzKz0iIC0taG9zdD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtaGVh ZGVycz0ke19zeXNyb290fS91c3IvaW5jbHVkZSIKLQlfYXJncys9IiAtLWNvbmZpZy1jYWNoZSIK LQlfYXJncys9IiAtLWRpc2FibGUtcHJvZmlsZSIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0 ZS1ycGMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtbnNsIgotCV9hcmdzKz0iIC0tZGlz YWJsZS13ZXJyb3IiCi0JX2FyZ3MrPSIgLS1lbmFibGUta2VybmVsPTIuNi4yNyIKLQlfYXJncys9 IiAke19mcHVmbGFnc30iCi0KLQkuLi9nbGliYy0ke19nbGliY192ZXJzaW9ufS9jb25maWd1cmUg JHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGxfcm9vdD0ke19zeXNy b290fSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdsaWJjX2J1aWxkX2RvbmUKLX0KLQot X2djY19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdjY19idWls ZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxk aW5nIGNyb3NzIGdjYyBmaW5hbFxuIgotCi0JWyAhIC1kIGdjYy1idWlsZCBdICYmIG1rZGlyIGdj Yy1idWlsZAotCWNkIGdjYy1idWlsZAotCi0JdW5zZXQgTEQgQVMgQ1BQCi0JZXhwb3J0IENDPSJn Y2MiIENGTEFHUz0iLU9zIC1waXBlIgotCi0JIyBNYWtlIHRoaXMgbGluayB0byB0YXJnZXQgbGli cy4KLQlpZiBbICEgLWYgLnNlZF9zdWJzdF9kb25lIF07IHRoZW4KLQkJc2VkIC1lICJzLCAvbGli LywgJHtfc3lzcm9vdH0vbGliLyxnO3MsIC91c3IvbGliLywgJHtfc3lzcm9vdH0vdXNyL2xpYi8s ZyIgXAotCQkJLWkgJHtfc3lzcm9vdH0vbGliL2xpYmMuc28KLQkJc2VkIC1lICJzLCAvbGliMzIv LCAke19zeXNyb290fS9saWIzMi8sZztzLCAvdXNyL2xpYjMyLywgJHtfc3lzcm9vdH0vdXNyL2xp YjMyLyxnIiBcCi0JCQktaSAke19zeXNyb290fS9saWIvbGliYy5zbwotCQl0b3VjaCAuc2VkX3N1 YnN0X2RvbmUKLQlmaQotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJl eGVjZGlyPS91c3IvbGliIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdz Kz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1 YWdlcz1jLGFkYSxjKyssb2JqYyxvYmotYysrLGdvLGZvcnRyYW4sbHRvIgotCV9hcmdzKz0iIC0t d2l0aC1nbnUtYXMiCi0JX2FyZ3MrPSIgLS13aXRoLWdudS1sZCIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQlfYXJncys9IiAtLWRp c2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMiCi0JX2FyZ3Mr PSIgLS1lbmFibGUtdGhyZWFkcz1wb3NpeCIKLQlfYXJncys9IiAtLWVuYWJsZS1sb25nLWxvbmd4 IgotCV9hcmdzKz0iIC0tZW5hYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWVuYWJsZS1saW5rZXIt YnVpbGQtaWQiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZ251LXVuaXF1ZS1vYmplY3QiCi0JX2FyZ3Mr PSIgLS1lbmFibGUtbGliYWRhIgotCV9hcmdzKz0iIC0tZW5hYmxlLWx0byIKLQlfYXJncys9IiAt LWVuYWJsZS1kZWZhdWx0LXBpZSIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXNzcCIKLQlf YXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNz cCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJt dWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzYW5pdGl6ZXIiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLWxpYmNpbGtydHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYml0bSIKLQlfYXJncys9 IiAtLWRpc2FibGUtbGlidnR2IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzdGRjeHgtcGNoIgot CV9hcmdzKz0iIC0tZW5hYmxlLWxpYnN0ZGN4eC10aW1lIgotCV9hcmdzKz0iIC0td2l0aC1saW5r ZXItaGFzaC1zdHlsZT1nbnUiCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vZ2NjLSR7 X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQot CXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUKLX0KLQotZG9fYnVpbGQoKSB7Ci0JZm9y IGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7X3N5 c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7X3N5c3Jvb3R9L3Vzci8ke2Z9 Ci0JCWZpCi0JCWlmIFsgISAtaCAke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIg JHtfc3lzcm9vdH0vdXNyLyR7Zn0gJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAt c2YgbGliICR7X3N5c3Jvb3R9L3Vzci9saWIzMgotCWxuIC1zZiB1c3IvbGliICR7X3N5c3Jvb3R9 L2xpYjMyCi0KLQkjIEVuc3VyZSB3ZSB1c2Ugc2FuZSBlbnZpcm9ubWVudAotCXVuc2V0IENDIENY WCBDUFAgTEQgQVMgQVIgUkFOTElCIE9CSkRVTVAgUkVBREVMRiBOTQotCXVuc2V0IENGTEFHUyBD WFhGTEFHUyBDUFBGTEFHUyBMREZMQUdTCi0JZXhwb3J0IENGTEFHUz0iLU9zIiBDWFhGTEFHUz0i LU9zIgotCi0JX2JpbnV0aWxzX2J1aWxkCi0JX2djY19ib290c3RyYXAKLQlfbGludXhfaGVhZGVy cwotCV9nbGliY19oZWFkZXJzCi0JX2dsaWJjX2J1aWxkCi0JX2djY19idWlsZAotfQotCi1kb19p bnN0YWxsKCkgewotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0J CWlmIFsgISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1r ZGlyIC1wICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1o ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7REVTVERJ Un0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtm fQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xp YjMyCi0JbG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke19zeXNyb290fS9saWIzMgotCi0JIyBp bnN0YWxsIGNyb3NzIGJpbnV0aWxzCi0JY2QgJHt3cmtzcmN9L2JpbnV0aWxzLWJ1aWxkCi0JbWFr ZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBpbnN0YWxsIGNyb3NzIGdjYwotCWNk ICR7d3Jrc3JjfS9nY2MtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0K LQkjIG1vdmUgbGliY2MxLnNvKiB0byB0aGUgc3lzcm9vdAotCW12ICR7REVTVERJUn0vdXNyL2xp Yi9saWJjYzEuc28qICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JIyBpbnN0YWxs IGxpbnV4IEFQSSBoZWFkZXJzIGZvciBNSVBTCi0JY2QgJHt3cmtzcmN9L2xpbnV4LSR7X2xpbnV4 X3ZlcnNpb259Ci0JbWFrZSBBUkNIPWFybSBJTlNUQUxMX0hEUl9QQVRIPSR7REVTVERJUn0vJHtf c3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCXJtIC1mICQoZmluZCAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIC1uYW1lIC5pbnN0YWxsIC1vciAtbmFtZSAuLmluc3RhbGwu Y21kKQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlL2RybQotCi0J IyBpbnN0YWxsIGdsaWJjIGZvciB0YXJnZXQKLQljZCAke3dya3NyY30vZ2xpYmMtYnVpbGQKLQlt YWtlIGluc3RhbGxfcm9vdD0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9IGluc3RhbGwgaW5zdGFsbC1o ZWFkZXJzCi0KLQkjIHN5bWxpbmtzIGZvciBnbmFybCBhbmQgZ25hdCBzaGFyZWQgbGlicmFyaWVz Ci0JX21ham9ydmVyPSR7X2djY192ZXJzaW9uJS4qLip9Ci0JX2FkYWxpYj11c3IvbGliL2djYy8k e190cmlwbGV0fS8ke19nY2NfdmVyc2lvbn0vYWRhbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19h ZGFsaWJ9L2xpYmduYXJsLSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vz ci9saWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hdC0ke19tYWpvcnZlcn0u c28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0JbG4gLXN2ZiBsaWJnbmFybC0ke19t YWpvcnZlcn0uc28gbGliZ25hcmwuc28KLQlsbiAtc3ZmIGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNv IGxpYmduYXQuc28KLQlybSAtdmYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXtybCx0fS5z bwotCi0JIyBXZSBuZWVkIHRvIGJ1aWxkIGxpYmF0b21pYyBpbiB0YXJnZXQgZ2NjIGFzIGdjY2dv IG5lZWRzIGl0IHRvCi0JIyBidWlsZC4uLiBidXQgaXQncyBub3QgbmVlZGVkIGF0IHJ1bnRpbWUs IHNvIHJlbW92ZSBpdCBmcm9tIHRoZQotCSMgZGVzdGRpciBzbyBpdCBkb2Vzbid0IGNvbmZsaWN0 IHdpdGggdGhlIGxpYmF0b21pYyBwYWNrYWdlCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290 fS91c3IvbGliL2xpYmF0b21pYy4qCi0KLQkjIFJlbW92ZSB1bm5lY2Vzc2FyeSBzdHVmZgotCXJt IC1mICR7REVTVERJUn0vdXNyL2xpYiovbGliaWJlcnR5LmEKLQlybSAtcmYgJHtERVNURElSfS91 c3Ivc2hhcmUKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS97c2JpbixsaWIsZXRjLHZh cn0KLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3Ive3NiaW4sc2hhcmUsbGliZXhl Y30KLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYmV4ZWMKLX0KLQogY3Jvc3MtYXJt djdsLWxpbnV4LWdudWVhYmloZi1saWJjX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGds aWJjIGZpbGVzIgogCW5vc3RyaXA9eWVzCiAJbm9zaGxpYnByb3ZpZGVzPXllcwogCW5vdmVyaWZ5 cmRlcHM9eWVzCisKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgJHtfc3lzcm9vdH0KKwkJdm1v dmUgdXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9CiB9CgpGcm9tIDA0MTVlN2YwMWYzZTEyOWQ1ZGIw MzI2MTNjYmRjNWQ0NzY3YzE5YWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHE2NiA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMjUgRGVjIDIwMjAgMjE6Mzg6NDQgKzAx MDAKU3ViamVjdDogW1BBVENIIDEwLzI2XSBjcm9zcy1hcm12N2wtbGludXgtbXVzbGVhYmloZjog cmV3b3JrIHdpdGggdm9pZC1jcm9zcwoKLS0tCiAuLi4vY3Jvc3MtYXJtdjdsLWxpbnV4LW11c2xl YWJpaGYvdGVtcGxhdGUgICAgfCAzMDUgKy0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMTQgaW5zZXJ0aW9ucygrKSwgMjkxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvY3Jvc3MtYXJtdjdsLWxpbnV4LW11c2xlYWJpaGYvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3Nz LWFybXY3bC1saW51eC1tdXNsZWFiaWhmL3RlbXBsYXRlCmluZGV4IDU1ZTM0NWI1Y2MxLi41NTRj OGMyMTU5NyAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1hcm12N2wtbGludXgtbXVzbGVhYmlo Zi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLWFybXY3bC1saW51eC1tdXNsZWFiaWhmL3Rl bXBsYXRlCkBAIC0xLDIwICsxLDE5IEBACi0jIFRlbXBsYXRlIGJ1aWxkIGZpbGUgZm9yICdjcm9z cy1hcm12N2wtbGludXgtbXVzbGVhYmloZicKLSMKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3Nz LWFybXY3bC1saW51eC1tdXNsZWFiaWhmJworX3RyaXBsZXQ9YXJtdjdsLWxpbnV4LW11c2xlYWJp aGYKIF9iaW51dGlsc192ZXJzaW9uPTIuMzIKIF9nY2NfdmVyc2lvbj05LjMuMAogX211c2xfdmVy c2lvbj0xLjEuMjQKIF9saW51eF92ZXJzaW9uPTQuMTkKIF9saWJ1Y29udGV4dF92ZXJzaW9uPTAu OS4wCi0KLV90cmlwbGV0PWFybXY3bC1saW51eC1tdXNsZWFiaWhmCi1fZnB1ZmxhZ3M9Ii0td2l0 aC1hcmNoPWFybXY3LWEgLS13aXRoLWZwdT12ZnB2MyAtLXdpdGgtZmxvYXQ9aGFyZCIKLV9hcmNo ZmxhZ3M9Ii1tYXJjaD1hcm12Ny1hIC1tZnB1PXZmcHYzIC1tZmxvYXQtYWJpPWhhcmQiCi1fc3lz cm9vdD0iL3Vzci8ke190cmlwbGV0fSIKLQogcGtnbmFtZT1jcm9zcy0ke190cmlwbGV0fQogdmVy c2lvbj0wLjMzCiByZXZpc2lvbj0zCi1zaG9ydF9kZXNjPSJDcm9zcyB0b29sY2hhaW4gZm9yIEFS TXY3IExFIEhhcmQgRmxvYXQgdGFyZ2V0IChtdXNsKSIKK2J1aWxkX3N0eWxlPXZvaWQtY3Jvc3MK K2NvbmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJjaD1hcm12Ny1hIC0td2l0aC1mcHU9dmZwdjMgLS13 aXRoLWZsb2F0PWhhcmQiCitob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxl eCBwZXJsIHB5dGhvbjMiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHps aWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCitkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMt JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK3Nob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWlu IGZvciAke190cmlwbGV0fSIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4 Lm9yZz4iCiBob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJH UEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBNSVQiCkBAIC0zMCwyOTggKzI5LDIy IEBAIGNoZWNrc3VtPSIwYWI2YzU1ZGQ4NmE5MmVkNTYxOTcyYmExNWI5YjcwYThiOWY3NTU1N2Y4 OTY0NDZjODJlOGIzNmU0NzNlZTA0CiAgMGM2OGY1NjU1NTI4YWVkNGY5OWRhZTcxYTViMjU5ZWRj OTMyMzlmYTg5OWUyZGY3OWMwNTUyNzVjMjE3NDlhMQogIDBkNTNhNDE1YTMwN2VmMTc1MTUzYmJl NjBhNTcyYzk0MGE5MjJjYjczNmNlMTM1MzBiNjY2ZTdlYzI3OTVkNjgiCiAKLWxpYjMyZGlzYWJs ZWQ9eWVzCi1ub2Nyb3NzPXllcwotbm9waWU9eWVzCi1ub2RlYnVnPXllcwotY3JlYXRlX3dya3Ny Yz15ZXMKLQotaG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBw eXRob24zIgotbWFrZWRlcGVuZHM9InpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwgbGli bXBjLWRldmVsIGlzbDE1LWRldmVsIgotbm9zdHJpcF9maWxlcz0ibGliY2FmX3NpbmdsZS5hIGxp YmdjYy5hIGxpYmdjb3YuYSBsaWJnY2NfZWguYQotIGxpYmduYXJsX3BpYy5hIGxpYmduYXJsLmEg bGliZ25hdF9waWMuYSBsaWJnbmF0LmEgbGliZ21lbS5hIgotZGVwZW5kcz0iJHtwa2duYW1lfS1s aWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitjcm9zc190cmlwbGV0PSR7X3RyaXBsZXR9Citj cm9zc19saWJ1Y29udGV4dF9hcmNoPWFybQorY3Jvc3NfbGludXhfYXJjaD1hcm0KK2Nyb3NzX211 c2xfY2ZsYWdzPSItTzIgLW1hcmNoPWFybXY3LWEgLW1mcHU9dmZwdjMgLW1mbG9hdC1hYmk9aGFy ZCIKIAogaWYgWyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0gImFybXY3bC1tdXNsIiBdOyB0aGVu CiAJYnJva2VuPSJDYW4ndCBidWlsZCBjcm9zc3Rvb2xjaGFpbiB0byBpdHNlbGYiCiBmaQogCi1f YXBwbHlfcGF0Y2goKSB7Ci0JbG9jYWwgYXJncz0iJDEiIHBuYW1lPSIkKGJhc2VuYW1lICQyKSIK LQotCWlmIFsgISAtZiAiLiR7cG5hbWV9X2RvbmUiIF07IHRoZW4KLQkJcGF0Y2ggLU4gJGFyZ3Mg LWkgJDIKLQkJdG91Y2ggLiR7cG5hbWV9X2RvbmUKLQlmaQotfQotCi1fYmludXRpbHNfYnVpbGQo KSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25l IF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNy b3NzIGJpbnV0aWxzIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIGJpbnV0aWxzLWJ1aWxkIF0gJiYg bWtkaXIgYmludXRpbHMtYnVpbGQKLQljZCBiaW51dGlscy1idWlsZAotCi0JX2FyZ3M9Ii0tcHJl Zml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13 aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJn cys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQlf YXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0td2l0aC1zeXN0ZW0temxpYiIK LQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQkuLi9iaW51dGlscy0ke19iaW51dGlsc192ZXJz aW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgY29uZmlndXJlLWhvc3QgJiYgbWFrZSAk e21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5iaW51dGlsc19i dWlsZF9kb25lCi19Ci0KLV9nY2NfYm9vdHN0cmFwKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1m ICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jr c3JjfS9nY2MtJHtfZ2NjX3ZlcnNpb259Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2Nj L3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JZG9uZQotCWZv ciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9maWxlcy8qLW11c2wucGF0Y2g7IGRvCi0JCV9h cHBseV9wYXRjaCAtcDEgIiRmIgotCWRvbmUKLQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3Nz IGdjYyBib290c3RyYXBcbiIKLQotCVsgISAtZCAuLi9nY2MtYm9vdHN0cmFwIF0gJiYgbWtkaXIg Li4vZ2NjLWJvb3RzdHJhcAotCWNkIC4uL2djYy1ib290c3RyYXAKLQotCV9hcmdzPSItLXByZWZp eD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0 aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0td2l0aC1uZXdsaWIiCi0JX2FyZ3Mr PSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMiCi0JX2FyZ3MrPSIgLS13aXRoLW5ld2xpYiIKLQlfYXJn cys9IiAtLWRpc2FibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS10aHJlYWRzIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1z aGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJncys9IiAtLWRpc2FibGUt bGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliZ29tcCIKLQlfYXJncys9IiAtLWRp c2FibGUtbGliYXRvbWljIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zeW12ZXJzIgotCV9hcmdzKz0i IGxpYmF0X2N2X2hhdmVfaWZ1bmM9bm8iCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JQ0ZM QUdTPSItTzAgLWcwIiBDWFhGTEFHUz0iLU8wIC1nMCIgXAotCQkuLi9nY2MtJHtfZ2NjX3ZlcnNp b259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFs bAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUKLX0KLQotX2xpbnV4X2hl YWRlcnMoKSB7Ci0JWyAtZiAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4g MAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgTGludXggQVBJIGhlYWRl cnMgZm9yIEFSTVxuIgotCi0JY2QgbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQotCWZvciBmIGlu ICR7WEJQU19TUkNQS0dESVJ9L2tlcm5lbC1saWJjLWhlYWRlcnMvcGF0Y2hlcy8qLnBhdGNoOyBk bwotCQlfYXBwbHlfcGF0Y2ggLXAwICRmCi0JZG9uZQotCi0JbWFrZSBBUkNIPWFybSBoZWFkZXJz X2NoZWNrCi0JbWFrZSBBUkNIPWFybSBJTlNUQUxMX0hEUl9QQVRIPSR7X3N5c3Jvb3R9L3VzciBo ZWFkZXJzX2luc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZQotfQot Ci1fbXVzbF9idWlsZCgpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubXVzbF9idWlsZF9kb25lIF0gJiYg cmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9tdXNsLSR7X211c2xfdmVyc2lvbn0KLQltc2dfbm9y bWFsICJCdWlsZGluZyBjcm9zcyBtdXNsIGxpYmNcbiIKLQotCSMgQXBwbHkgbXVzbCBwYXRjaGVz IGlmIHRoZXJlIGFyZSBhbnkKLQlpZiBbIC1kICIke1hCUFNfU1JDUEtHRElSfS9tdXNsL3BhdGNo ZXMiIF07IHRoZW4KLQkJZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vbXVzbC9wYXRjaGVzLyou cGF0Y2g7IGRvCi0JCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQkJZG9uZQotCWZpCi0KLQlDQz0i JHtfdHJpcGxldH0tZ2NjIiBDRkxBR1M9Ii1PcyAtcGlwZSAtZlBJQyAke19hcmNoZmxhZ3N9IiBc Ci0JCS4vY29uZmlndXJlIC0tcHJlZml4PS91c3IKLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtl IERFU1RESVI9JHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5tdXNsX2J1 aWxkX2RvbmUKLX0KLQotX2xpYnVjb250ZXh0X2J1aWxkKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5s aWJ1Y29udGV4dF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9saWJ1 Y29udGV4dC0ke19saWJ1Y29udGV4dF92ZXJzaW9ufQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNy b3NzIGxpYnVjb250ZXh0XG4iCi0KLQkjIGl0J3Mgb2sgaWYgd2UncmUgc3RhdGljIG9ubHkgaGVy ZQotCUNDPSIke190cmlwbGV0fS1nY2MiIEFSPSIke190cmlwbGV0fS1hciIgQVM9IiR7X3RyaXBs ZXR9LWFzIiBcCi0JCUNGTEFHUz0iLU9zIC1waXBlICR7X2FyY2hmbGFnc30iIFwKLQkJbWFrZSBB UkNIPWFybSBsaWJ1Y29udGV4dC5hCi0KLQljcCBsaWJ1Y29udGV4dC5hICR7X3N5c3Jvb3R9L3Vz ci9saWIKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGlidWNvbnRleHRfYnVpbGRfZG9uZQotfQotCi1f Z2NjX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2J1aWxk X2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRp bmcgY3Jvc3MgZ2NjIGZpbmFsXG4iCi0KLQlbICEgLWQgZ2NjLWJ1aWxkIF0gJiYgbWtkaXIgZ2Nj LWJ1aWxkCi0JY2QgZ2NjLWJ1aWxkCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9 IiAtLWxpYmV4ZWNkaXI9L3Vzci9saWIiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0i Ci0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1lbmFi bGUtbGFuZ3VhZ2VzPWMsYWRhLGMrKyxvYmpjLG9iai1jKyssZ28sZm9ydHJhbixsdG8iCi0JX2Fy Z3MrPSIgLS1lbmFibGUtbGliYWRhIgotCV9hcmdzKz0iIC0tZW5hYmxlLWx0byIKLQlfYXJncys9 IiAtLWVuYWJsZS1kZWZhdWx0LXBpZSIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXNzcCIK LQlfYXJncys9IiAtLWVuYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNhbml0 aXplciIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLWxpYm1weCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAt LWVuYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMiCi0JX2FyZ3MrPSIg bGliYXRfY3ZfaGF2ZV9pZnVuYz1ubyIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQkuLi9n Y2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2Jz fQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZQotfQotCi1kb19idWlsZCgpIHsK LQkjIEVuc3VyZSB3ZSB1c2Ugc2FuZSBlbnZpcm9ubWVudAotCXVuc2V0IENDIENYWCBDUFAgTEQg QVMgQVIgUkFOTElCIE9CSkRVTVAgUkVBREVMRiBOTQotCXVuc2V0IENGTEFHUyBDWFhGTEFHUyBD UFBGTEFHUyBMREZMQUdTCi0JZXhwb3J0IENGTEFHUz0iLU9zIC1waXBlIiBDWFhGTEFHUz0iLU9z IC1waXBlIgotCi0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJ aWYgWyAhIC1kICR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7X3N5 c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke19zeXNyb290fS8ke2Z9IF07IHRo ZW4KLQkJCWxuIC1zZnIgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gJHtfc3lzcm9vdH0vJHtmfQotCQlm aQotCWRvbmUKLQlsbiAtc2YgbGliICR7X3N5c3Jvb3R9L3Vzci9saWIzMgotCWxuIC1zZiB1c3Iv bGliICR7X3N5c3Jvb3R9L2xpYjMyCi0KLQlfYmludXRpbHNfYnVpbGQKLQlfZ2NjX2Jvb3RzdHJh cAotCV9saW51eF9oZWFkZXJzCi0JX211c2xfYnVpbGQKLQlfbGlidWNvbnRleHRfYnVpbGQKLQlf Z2NjX2J1aWxkCi19Ci0KLWRvX2luc3RhbGwoKSB7Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGli ZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNy LyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtm fQotCQlmaQotCQlpZiBbICEgLWggJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9IF07IHRoZW4K LQkJCWxuIC1zZnIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBcCi0JCQkJJHtERVNU RElSfS8ke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtERVNURElS fS8ke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L2xpYjMyCi0KLQkjIGluc3RhbGwgbGludXggQVBJIGhlYWRlcnMKLQljZCAke3dya3Ny Y30vbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQltYWtlIEFSQ0g9YXJtIElOU1RBTExfSERSX1BB VEg9JHtERVNURElSfS8ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0Jcm0gLWYgJChm aW5kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUgLW5hbWUgLmluc3RhbGwgLW9y IC1uYW1lIC4uaW5zdGFsbC5jbWQpCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNy L2luY2x1ZGUvZHJtCi0KLQkjIGluc3RhbGwgY3Jvc3MgYmludXRpbHMKLQljZCAke3dya3NyY30v YmludXRpbHMtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIGlu c3RhbGwgY3Jvc3MgZ2NjCi0JY2QgJHt3cmtzcmN9L2djYy1idWlsZAotCW1ha2UgREVTVERJUj0k e0RFU1RESVJ9IGluc3RhbGwKLQotCSMgbW92ZSBsaWJjYzEuc28qIHRvIHRoZSBzeXNyb290Ci0J bXYgJHtERVNURElSfS91c3IvbGliL2xpYmNjMS5zbyogJHtERVNURElSfS8ke19zeXNyb290fS91 c3IvbGliCi0KLQkjIGluc3RhbGwgbXVzbCBsaWJjIGZvciB0YXJnZXQKLQljZCAke3dya3NyY30v bXVzbC0ke19tdXNsX3ZlcnNpb259Ci0JbWFrZSBERVNURElSPSR7REVTVERJUn0vJHtfc3lzcm9v dH0gaW5zdGFsbAotCi0JIyBSZW1vdmUgdXNlbGVzcyBoZWFkZXJzLgotCXJtIC1yZiAke0RFU1RE SVJ9L3Vzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyovaW5jbHVkZS1maXhlZC8KLQotCSMgTWFrZSBs ZC1tdXNsLWFybWhmLnNvLjEgc3ltbGluayByZWxhdGl2ZS4KLQlsbiAtc2YgbGliYy5zbyAke0RF U1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIvbGQtbXVzbC1hcm1oZi5zby4xCi0KLQkjIHN5bWxp bmtzIGZvciBnbmFybCBhbmQgZ25hdCBzaGFyZWQgbGlicmFyaWVzCi0JX21ham9ydmVyPSR7X2dj Y192ZXJzaW9uJS4qLip9Ci0JX2FkYWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0fS8ke19nY2Nf dmVyc2lvbn0vYWRhbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXJsLSR7 X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQltdiAtdiAke0RF U1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hdC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19z eXNyb290fS91c3IvbGliCi0JbG4gLXN2ZiBsaWJnbmFybC0ke19tYWpvcnZlcn0uc28gbGliZ25h cmwuc28KLQlsbiAtc3ZmIGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXQuc28KLQlybSAt dmYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXtybCx0fS5zbwotCi0JIyBXZSBuZWVkIHRv IGJ1aWxkIGxpYmF0b21pYyBpbiB0YXJnZXQgZ2NjIGFzIGdjY2dvIG5lZWRzIGl0IHRvCi0JIyBi dWlsZC4uLiBidXQgaXQncyBub3QgbmVlZGVkIGF0IHJ1bnRpbWUsIHNvIHJlbW92ZSBpdCBmcm9t IHRoZQotCSMgZGVzdGRpciBzbyBpdCBkb2Vzbid0IGNvbmZsaWN0IHdpdGggdGhlIGxpYmF0b21p YyBwYWNrYWdlCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xpYmF0b21p Yy4qCi0KLQkjIFJlbW92ZSB1bm5lY2Vzc2FyeSBzdHVmZgotCXJtIC1mICR7REVTVERJUn0vdXNy L2xpYiovbGliaWJlcnR5LmEKLQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUKLQlybSAtcmYg JHtERVNURElSfS8ke19zeXNyb290fS97ZXRjLHZhcn0KLQlybSAtcmYgJHtERVNURElSfS8ke19z eXNyb290fS91c3Ive3NiaW4sc2hhcmUsbGliZXhlY30KLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L2xpYmV4ZWMKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYi8qLnB5Ci0J cm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS97c2JpbixsaWJ9Ci19Ci0KIGNyb3NzLWFybXY3 bC1saW51eC1tdXNsZWFiaWhmLWxpYmNfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gbGli YyBmaWxlcyIKIAlub3N0cmlwPXllcwogCW5vc2hsaWJwcm92aWRlcz15ZXMKIAlub3ZlcmlmeXJk ZXBzPXllcwotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAke19zeXNyb290fQogCisJcGtnX2lu c3RhbGwoKSB7CisJCXZtb3ZlIHVzci8ke2Nyb3NzX3RyaXBsZXR9CiAJfQogfQoKRnJvbSBhZGM2 Zjc4ODc4YzU5ZjdkNzExMTZiNGQ0NzhiYjY3MDM5ZDcwZDcxIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmksIDI1IERlYyAy MDIwIDIyOjUxOjAxICswMTAwClN1YmplY3Q6IFtQQVRDSCAxMS8yNl0gY3Jvc3MtaTY4Ni1wYy1s aW51eC1nbnU6IHJld29yayB3aXRoIHZvaWQtY3Jvc3MKCi0tLQogc3JjcGtncy9jcm9zcy1pNjg2 LXBjLWxpbnV4LWdudS90ZW1wbGF0ZSB8IDM1OSArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDM0NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2Nyb3NzLWk2ODYtcGMtbGludXgtZ251L3RlbXBsYXRlIGIvc3JjcGtncy9j cm9zcy1pNjg2LXBjLWxpbnV4LWdudS90ZW1wbGF0ZQppbmRleCAwNTZkMjU1MzA0MC4uY2M5Yjk5 OTk5ZWUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtaTY4Ni1wYy1saW51eC1nbnUvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9jcm9zcy1pNjg2LXBjLWxpbnV4LWdudS90ZW1wbGF0ZQpAQCAtMSwy MSArMSwyMCBAQAotIyBUZW1wbGF0ZSBidWlsZCBmaWxlIGZvciAnY3Jvc3MtaTY4Ni1wYy1saW51 eC1nbnUnCi0jCisjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1pNjg2LXBjLWxpbnV4LWdudScK K190cmlwbGV0PWk2ODYtcGMtbGludXgtZ251CiBfYmludXRpbHNfdmVyc2lvbj0yLjMyCiBfZ2Nj X3ZlcnNpb249OS4zLjAKIF9nbGliY192ZXJzaW9uPTIuMzAKIF9saW51eF92ZXJzaW9uPTQuMTkK LQotX3RyaXBsZXQ9aTY4Ni1wYy1saW51eC1nbnUKLV9hcmNoZmxhZ3M9Ii1tYXJjaD1pNjg2IC1t dHVuZT1nZW5lcmljIgotX3N5c3Jvb3Q9Ii91c3IvJHtfdHJpcGxldH0iCi0KIHBrZ25hbWU9Y3Jv c3MtJHtfdHJpcGxldH0KIHZlcnNpb249MC4zMwogcmV2aXNpb249NAotc2hvcnRfZGVzYz0iR05V IENyb3NzIHRvb2xjaGFpbiBmb3IgdGhlICR7X3RyaXBsZXR9IHRhcmdldCAoYmludXRpbHMvZ2Nj L2dsaWJjKSIKK2J1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKK2hvc3RtYWtlZGVwZW5kcz0idGFyIGdj Yy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZl bCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK2RlcGVuZHM9 IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igorc2hvcnRfZGVzYz0iVm9p ZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7X3RyaXBsZXR9IgogbWFpbnRhaW5lcj0iSsO8cmdlbiBC dWNobcO8bGxlciA8cHVsbG1vbGxAdC1vbmxpbmUuZGU+IgotaG9tZXBhZ2U9Imh0dHBzOi8vd3d3 LnZvaWRsaW51eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1s YXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIiCitob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4 Lm9yZy8iCiBkaXN0ZmlsZXM9IgogICR7R05VX1NJVEV9L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2Jp bnV0aWxzX3ZlcnNpb259LnRhci54egogICR7R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNp b259L2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CkBAIC0yNiwzNTEgKzI1LDIzIEBAIGNoZWNr c3VtPSIwYWI2YzU1ZGQ4NmE5MmVkNTYxOTcyYmExNWI5YjcwYThiOWY3NTU1N2Y4OTY0NDZjODJl OGIzNmU0NzNlZTA0CiAgZTJjNDExNGU1NjlhZmJlN2VkYmMyOTEzMWE0M2JlODMzODUwYWI5YTQ1 OWQ4MWJlYjI1ODgwMTZkMmJiYjhhZgogIDBjNjhmNTY1NTUyOGFlZDRmOTlkYWU3MWE1YjI1OWVk YzkzMjM5ZmE4OTllMmRmNzljMDU1Mjc1YzIxNzQ5YTEiCiAKLW5vY3Jvc3M9eWVzCi1ub3BpZT15 ZXMKLW5vZGVidWc9eWVzCi1saWIzMmRpc2FibGVkPXllcwotY3JlYXRlX3dya3NyYz15ZXMKLWhv c3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1h a2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCIKLWRlcGVuZHM9 IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igotbm9zdHJpcF9maWxlcz0i bGliY2FmX3NpbmdsZS5hIGxpYmdjYy5hIGxpYmdjb3YuYSBsaWJnY2NfZWguYQotIGxpYmduYXJs X3BpYy5hIGxpYmduYXJsLmEgbGliZ25hdF9waWMuYSBsaWJnbmF0LmEgbGliZ21lbS5hIgotCi1p ZiBbICIkWEJQU19UQVJHRVRfTElCQyIgIT0gImdsaWJjIiBdOyB0aGVuCi0JYnJva2VuPSJnbGli YyBjcm9zc3Rvb2xjaGFpbiBvbmx5IGF2YWlsYWJsZSBvbiBnbGliYyIKLWZpCitjcm9zc190cmlw bGV0PSR7X3RyaXBsZXR9Citjcm9zc19saW51eF9hcmNoPXg4NgorIyBleHBsaWNpdGx5IGVuYWJs ZSBmb3IgZmluYWwgZ2NjLCBhcyBnZm9ydHJhbiBkb2VzIG5vdCBidWlsZCB3aXRob3V0IG9uIHg4 NgorY3Jvc3NfZ2NjX2NvbmZpZ3VyZV9hcmdzPSItLWVuYWJsZS1saWJxdWFkbWF0aCIKK2Nyb3Nz X2dsaWJjX2NmbGFncz0iLU8yIC1Xbm8tZXJyb3IgLW1hcmNoPWk2ODYgLW10dW5lPWdlbmVyaWMi CiAKIGlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiA9ICJpNjg2IiBdOyB0aGVuCiAJYnJva2Vu PSJDYW4ndCBidWlsZCBjcm9zc3Rvb2xjaGFpbiB0byBpdHNlbGYiCiBmaQogCi1fYXBwbHlfcGF0 Y2goKSB7Ci0JbG9jYWwgYXJncz0iJDEiIHBuYW1lPSIkKGJhc2VuYW1lICQyKSIKLQotCWlmIFsg ISAtZiAiLiR7cG5hbWV9X2RvbmUiIF07IHRoZW4KLQkJcGF0Y2ggLU4gJGFyZ3MgLWkgJDIKLQkJ dG91Y2ggLiR7cG5hbWV9X2RvbmUKLQlmaQotfQotCi1fYmludXRpbHNfYnVpbGQoKSB7Ci0JbG9j YWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25lIF0gJiYgcmV0 dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufQotCi0J bXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgYmludXRpbHMgYm9vdHN0cmFwXG4iCi0KLQlbICEg LWQgLi4vYmludXRpbHMtYnVpbGQgXSAmJiBta2RpciAuLi9iaW51dGlscy1idWlsZAotCWNkIC4u L2JpbnV0aWxzLWJ1aWxkCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJn ZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9yIgot CV9hcmdzKz0iIC0td2l0aC1zeXN0ZW0temxpYiIKLQotCS4uL2JpbnV0aWxzLSR7X2JpbnV0aWxz X3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSBjb25maWd1cmUtaG9zdCAmJiBt YWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmJpbnV0 aWxzX2J1aWxkX2RvbmUKLX0KLQotX2djY19ib290c3RyYXAoKSB7Ci0JbG9jYWwgX2FyZ3MKLQlb IC1mICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7 d3Jrc3JjfS9nY2MtJHtfZ2NjX3ZlcnNpb259Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0v Z2NjL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JZG9uZQot Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1k IC4uL2djYy1ib290c3RyYXAgXSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2Nj LWJvb3RzdHJhcAotCi0JIyBGaXggaHR0cHM6Ly9idWlsZC52b2lkbGludXgub3JnL2J1aWxkZXJz L3g4Nl82NF9idWlsZGVyL2J1aWxkcy8yNDg5NS9zdGVwcy9zaGVsbF8zL2xvZ3Mvc3RkaW8KLQll eHBvcnQgZ2NjX2N2X2xpYmNfcHJvdmlkZXNfc3NwPXllcwotCV9hcmdzPSItLXByZWZpeD0vdXNy IgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aG91dC1o ZWFkZXJzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNo YXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLWRlY2ltYWwtZmxvYXQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmdvbXAiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlf YXJncys9IiAtLWRpc2FibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJpdG0iCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmF0b21pYyIKLQlfYXJncys9IiAtLWRpc2FibGUtdGhyZWFk cyIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyIKLQlfYXJncys9IiAtLWRpc2FibGUt c2psai1leGNlcHRpb25zIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9 IiAtLXdpdGgtZ251LWxkIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtYXMiCi0JX2FyZ3MrPSIgJHtf ZnB1ZmxhZ3N9IgotCi0JQ0ZMQUdTPSItTzAgLWcwIiBDWFhGTEFHUz0iLU8wIC1nMCIgXAotCQku Li9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vq b2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2Rv bmUKLX0KLQotX2xpbnV4X2hlYWRlcnMoKSB7Ci0JWyAtZiAke3dya3NyY30vLmxpbnV4X2J1aWxk X2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRp bmcgTGludXggQVBJIGhlYWRlcnMgZm9yIHg4NlxuIgotCi0JY2QgbGludXgtJHtfbGludXhfdmVy c2lvbn0KLQotCW1ha2UgQVJDSD14ODYgaGVhZGVyc19jaGVjawotCW1ha2UgQVJDSD14ODYgSU5T VEFMTF9IRFJfUEFUSD0ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0KLQl0b3VjaCAk e3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUKLX0KLQotX2dsaWJjX2hlYWRlcnMoKSB7Ci0JbG9j YWwgX2FyZ3MgZgotCVsgLWYgJHt3cmtzcmN9Ly5nbGliY19oZWFkZXJzX2RvbmUgXSAmJiByZXR1 cm4gMAotCi0JY2QgJHt3cmtzcmN9L2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259Ci0JaWYgWyAtZCAi JHtYQlBTX1NSQ1BLR0RJUn0vZ2xpYmMvcGF0Y2hlcyIgXTsgdGhlbgotCQlmb3IgZiBpbiAke1hC UFNfU1JDUEtHRElSfS9nbGliYy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCQlfYXBwbHlfcGF0Y2gg LXAxICIkZiIKLQkJZG9uZQotCWZpCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWls ZGluZyBjcm9zcyBnbGliYyBoZWFkZXJzXG4iCi0KLQlbICEgLWQgZ2xpYmMtaGVhZGVycyBdICYm IG1rZGlyIGdsaWJjLWhlYWRlcnMKLQljZCBnbGliYy1oZWFkZXJzCi0KLQllY2hvICJsaWJjX2N2 X2ZvcmNlZF91bndpbmQ9eWVzIiA+IGNvbmZpZy5jYWNoZQotCWVjaG8gImxpYmNfY3ZfY19jbGVh bnVwPXllcyIgPj4gY29uZmlnLmNhY2hlCi0JZWNobyAibGliY19jdl9zc3A9bm8iID4+IGNvbmZp Zy5jYWNoZQotCi0JZXhwb3J0IENDPSIke190cmlwbGV0fS1nY2MiIExEPSIke190cmlwbGV0fS1s ZCIgXAotCQlBUz0iJHtfdHJpcGxldH0tYXMiIENQUD0iJHtfdHJpcGxldH0tY3BwIgotCi0JX2Fy Z3M9Ii0taG9zdD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXByZWZpeD0vdXNyIgotCV9hcmdz Kz0iIC0td2l0aC1oZWFkZXJzPSR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIgotCV9hcmdzKz0iIC0t Y29uZmlnLWNhY2hlIgotCV9hcmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLXJwYyIKLQlfYXJncys9 IiAtLWVuYWJsZS1vYnNvbGV0ZS1uc2wiCi0JX2FyZ3MrPSIgLS1lbmFibGUta2VybmVsPTIuNi4y NyIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQkuLi9nbGliYy0ke19nbGliY192ZXJzaW9u fS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgLWsgaW5zdGFsbC1oZWFkZXJzIGNyb3NzX2Nv bXBpbGluZz15ZXMgXAotCQlpbnN0YWxsX3Jvb3Q9JHtfc3lzcm9vdH0KLQotCXRvdWNoICR7d3Jr c3JjfS8uZ2xpYmNfaGVhZGVyc19kb25lCi19Ci0KLV9nbGliY19idWlsZCgpIHsKLQlsb2NhbCBf YXJncwotCVsgLWYgJHt3cmtzcmN9Ly5nbGliY19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQot CWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdsaWJjXG4iCi0KLQlb ICEgLWQgZ2xpYmMtYnVpbGQgXSAmJiBta2RpciBnbGliYy1idWlsZAotCWNkIGdsaWJjLWJ1aWxk Ci0KLQllY2hvICJzbGliZGlyPS91c3IvbGliMzIiID4gY29uZmlncGFybXMKLQotCWVjaG8gImxp YmNfY3ZfZm9yY2VkX3Vud2luZD15ZXMiID4gY29uZmlnLmNhY2hlCi0JZWNobyAibGliY19jdl9j X2NsZWFudXA9eWVzIiA+PiBjb25maWcuY2FjaGUKLQllY2hvICJsaWJjX2N2X3NzcD1ubyIgPj4g Y29uZmlnLmNhY2hlCi0KLQlleHBvcnQgQ0M9IiR7X3RyaXBsZXR9LWdjYyIgTEQ9IiR7X3RyaXBs ZXR9LWxkIiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIgQ1BQPSIke190cmlwbGV0fS1jcHAiCi0J ZXhwb3J0IENGTEFHUz0iLU8yIC1waXBlIC1Xbm8tZXJyb3IgJHtfYXJjaGZsYWdzfSIKLQlfYXJn cz0iLS1ob3N0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0tcHJlZml4PS91c3IiCi0JX2FyZ3Mr PSIgLS1saWJkaXI9L3Vzci9saWIzMiIKLQlfYXJncys9IiAtLXdpdGgtaGVhZGVycz0ke19zeXNy b290fS91c3IvaW5jbHVkZSIKLQlfYXJncys9IiAtLWNvbmZpZy1jYWNoZSIKLQlfYXJncys9IiAt LWVuYWJsZS1vYnNvbGV0ZS1ycGMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtbnNsIgot CV9hcmdzKz0iIC0tZW5hYmxlLWtlcm5lbD0yLjYuMjciCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9 IgotCi0JLi4vZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQlt YWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsX3Jvb3Q9JHtfc3lzcm9vdH0gaW5zdGFsbAot Ci0JdG91Y2ggJHt3cmtzcmN9Ly5nbGliY19idWlsZF9kb25lCi19Ci0KLV9nY2NfYnVpbGQoKSB7 Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZSBdICYmIHJl dHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2Mg ZmluYWxcbiIKLQotCVsgISAtZCBnY2MtYnVpbGQgXSAmJiBta2RpciBnY2MtYnVpbGQKLQljZCBn Y2MtYnVpbGQKLQotCXVuc2V0IExEIEFTIENQUAotCi0JIyBNYWtlIHRoaXMgbGluayB0byB0YXJn ZXQgbGlicy4KLQlpZiBbICEgLWYgLnNlZF9zdWJzdF9kb25lIF07IHRoZW4KLQkJc2VkIC1lICJz LCAvbGliLywgJHtfc3lzcm9vdH0vbGliLyxnO3MsIC91c3IvbGliLywgJHtfc3lzcm9vdH0vdXNy L2xpYi8sZyIgXAotCQkJLWkgJHtfc3lzcm9vdH0vbGliL2xpYmMuc28KLQkJc2VkIC1lICJzLCAv bGliMzIvLCAke19zeXNyb290fS9saWIzMi8sZztzLCAvdXNyL2xpYjMyLywgJHtfc3lzcm9vdH0v dXNyL2xpYjMyLyxnIiBcCi0JCQktaSAke19zeXNyb290fS9saWIvbGliYy5zbwotCQl0b3VjaCAu c2VkX3N1YnN0X2RvbmUKLQlmaQotCV9hcmdzPSItLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJn cys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXByZWZpeD0vdXNyIgotCV9h cmdzKz0iIC0tbGliZXhlY2Rpcj0vdXNyL2xpYiIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0k e19zeXNyb290fSIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyxhZGEsYysrLG9iamMs b2JqLWMrKyxnbyxmb3J0cmFuLGx0byIKLQlfYXJncys9IiAtLXdpdGgtZ251LWFzIgotCV9hcmdz Kz0iIC0td2l0aC1nbnUtbGQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdz Kz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNqbGotZXhjZXB0aW9ucyIK LQlfYXJncys9IiAtLWVuYWJsZS10aHJlYWRzPXBvc2l4IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxv bmctbG9uZ3giCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZW5hYmxl LWxpbmtlci1idWlsZC1pZCIKLQlfYXJncys9IiAtLWVuYWJsZS1nbnUtdW5pcXVlLW9iamVjdCIK LQlfYXJncys9IiAtLWVuYWJsZS1saWJhZGEiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbHRvIgotCV9h cmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtcGllIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQt c3NwIgotCV9hcmdzKz0iIC0tZW5hYmxlLWdudS1pbmRpcmVjdC1mdW5jdGlvbiIKLQlfYXJncys9 IiAtLWVuYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic3NwIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNhbml0aXplciIKLQlfYXJncys9IiAtLWRpc2FibGUt bGliY2lsa3J0cyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliaXRtIgotCV9hcmdzKz0iIC0tZGlz YWJsZS1saWJ2dHYiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnN0ZGN4eC1wY2giCi0JX2FyZ3Mr PSIgLS1lbmFibGUtbGlic3RkY3h4LXRpbWUiCi0JX2FyZ3MrPSIgLS13aXRoLWxpbmtlci1oYXNo LXN0eWxlPWdudSIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQlDQz0iZ2NjIiBDRkxBR1M9 Ii1PMiAtcGlwZSIgXAotCQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdz fQotCi0JbWFrZSAke21ha2Vqb2JzfQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9u ZQotfQotCi1kb19idWlsZCgpIHsKLQkjIEVuc3VyZSB3ZSB1c2Ugc2FuZSBlbnZpcm9ubWVudAot CXVuc2V0IENDIENYWCBDUFAgTEQgQVMgQVIgUkFOTElCIE9CSkRVTVAgUkVBREVMRiBOTQotCXVu c2V0IENGTEFHUyBDWFhGTEFHUyBDUFBGTEFHUyBMREZMQUdTCi0JZXhwb3J0IENGTEFHUz0iLU9z IiBDWFhGTEFHUz0iLU9zIgotCi0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2Jp bjsgZG8KLQkJaWYgWyAhIC1kICR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGly IC1wICR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke19zeXNyb290fS8k e2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gJHtfc3lzcm9vdH0v JHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7X3N5c3Jvb3R9L3Vzci9saWIzMgotCWxu IC1zZiB1c3IvbGliICR7X3N5c3Jvb3R9L2xpYjMyCi0KLQlfYmludXRpbHNfYnVpbGQKLQlfZ2Nj X2Jvb3RzdHJhcAotCV9saW51eF9oZWFkZXJzCi0JX2dsaWJjX2hlYWRlcnMKLQlfZ2xpYmNfYnVp bGQKLQlfZ2NjX2J1aWxkCi19Ci0KLWRvX2luc3RhbGwoKSB7Ci0JZm9yIGYgaW4gaW5jbHVkZSBs aWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7REVTVERJUn0vJHtfc3lzcm9v dH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtERVNURElSfS8ke19zeXNyb290fS91 c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9IF07 IHRoZW4KLQkJCWxuIC1zZnIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBcCi0JCQkJ JHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtE RVNURElSfS8ke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L2xpYjMyCi0KLQkjIGluc3RhbGwgY3Jvc3MgYmludXRpbHMKLQljZCAke3dy a3NyY30vYmludXRpbHMtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0K LQkjIGluc3RhbGwgY3Jvc3MgZ2NjCi0JY2QgJHt3cmtzcmN9L2djYy1idWlsZAotCW1ha2UgREVT VERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgbW92ZSBsaWJjYzEuc28qIHRvIHRoZSBzeXNy b290Ci0JbXYgJHtERVNURElSfS91c3IvbGliL2xpYmNjMS5zbyogJHtERVNURElSfS8ke19zeXNy b290fS91c3IvbGliCi0KLQkjIGluc3RhbGwgbGludXggQVBJIGhlYWRlcnMgZm9yIHg4Ni4KLQlj ZCAke3dya3NyY30vbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQltYWtlIEFSQ0g9eDg2IElOU1RB TExfSERSX1BBVEg9JHtERVNURElSfS8ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0K LQlybSAtZiAkKGZpbmQgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZSAtbmFtZSAu aW5zdGFsbCAtb3IgLW5hbWUgLi5pbnN0YWxsLmNtZCkKLQlybSAtcmYgJHtERVNURElSfS8ke19z eXNyb290fS91c3IvaW5jbHVkZS9kcm0KLQotCSMgaW5zdGFsbCBnbGliYyBmb3IgdGFyZ2V0Ci0J Y2QgJHt3cmtzcmN9L2dsaWJjLWJ1aWxkCi0JbWFrZSBpbnN0YWxsX3Jvb3Q9JHtERVNURElSfS8k e19zeXNyb290fSBpbnN0YWxsIGluc3RhbGwtaGVhZGVycwotCi0JIyBzeW1saW5rcyBmb3IgZ25h cmwgYW5kIGduYXQgc2hhcmVkIGxpYnJhcmllcwotCV9tYWpvcnZlcj0ke19nY2NfdmVyc2lvbiUu Ki4qfQotCV9hZGFsaWI9dXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vJHtfZ2NjX3ZlcnNpb259L2Fk YWxpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmFybC0ke19tYWpvcnZlcn0u c28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19h ZGFsaWJ9L2xpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNy L2xpYgotCWxuIC1zdmYgbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXJsLnNvCi0JbG4g LXN2ZiBsaWJnbmF0LSR7X21ham9ydmVyfS5zbyBsaWJnbmF0LnNvCi0Jcm0gLXZmICR7REVTVERJ Un0vJHtfYWRhbGlifS9saWJnbmF7cmwsdH0uc28KLQotCSMgV2UgbmVlZCB0byBidWlsZCBsaWJh dG9taWMgaW4gdGFyZ2V0IGdjYyBhcyBnY2NnbyBuZWVkcyBpdCB0bwotCSMgYnVpbGQuLi4gYnV0 IGl0J3Mgbm90IG5lZWRlZCBhdCBydW50aW1lLCBzbyByZW1vdmUgaXQgZnJvbSB0aGUKLQkjIGRl c3RkaXIgc28gaXQgZG9lc24ndCBjb25mbGljdCB3aXRoIHRoZSBsaWJhdG9taWMgcGFja2FnZQot CXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYi9saWJhdG9taWMuKgotCi0JIyBS ZW1vdmUgdW5uZWNlc3Nhcnkgc3R1ZmYKLQlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIqL2xpYmli ZXJ0eS5hCi0Jcm0gLXJmICR7REVTVERJUn0vdXNyL3NoYXJlCi0Jcm0gLXJmICR7REVTVERJUn0v JHtfc3lzcm9vdH0ve3NiaW4sbGliLGV0Yyx2YXJ9Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lz cm9vdH0vdXNyL3tzYmluLHNoYXJlLGxpYmV4ZWN9Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNy b290fS9saWJleGVjCi19Ci0KIGNyb3NzLWk2ODYtcGMtbGludXgtZ251LWxpYmNfcGFja2FnZSgp IHsKIAlzaG9ydF9kZXNjKz0iIC0gZ2xpYmMgZmlsZXMiCiAJbm9zdHJpcD15ZXMKIAlub3Zlcmlm eXJkZXBzPXllcwogCW5vc2hsaWJwcm92aWRlcz15ZXMKKwogCXBrZ19pbnN0YWxsKCkgewotCQl2 bW92ZSAke19zeXNyb290fQorCQl2bW92ZSB1c3IvJHtjcm9zc190cmlwbGV0fQogCX0KIH0KCkZy b20gOWM5NDAyNWIxYjc0MGI4ZjNkZWNhMzQ5Njc4ZjA2NzE2Mzk4Y2ZmYyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogRnJpLCAy NSBEZWMgMjAyMCAyMjo1Nzo0MSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMjZdIGNyb3NzLWk2 ODYtbGludXgtbXVzbDogcmV3b3JrIHdpdGggdm9pZC1jcm9zcwoKLS0tCiBzcmNwa2dzL2Nyb3Nz LWk2ODYtbGludXgtbXVzbC90ZW1wbGF0ZSB8IDMxMCArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgMjkyIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtaTY4Ni1saW51eC1tdXNsL3RlbXBsYXRlIGIvc3JjcGtn cy9jcm9zcy1pNjg2LWxpbnV4LW11c2wvdGVtcGxhdGUKaW5kZXggOGQwOWU0YzdlMDUuLjEyMWVl MDU2ZjU2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLWk2ODYtbGludXgtbXVzbC90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2Nyb3NzLWk2ODYtbGludXgtbXVzbC90ZW1wbGF0ZQpAQCAtMSwxOSAr MSwxOCBAQAotIyBUZW1wbGF0ZSBidWlsZCBmaWxlIGZvciAnY3Jvc3MtaTY4Ni1saW51eC1tdXNs JwotIworIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtaTY4Ni1saW51eC1tdXNsJworX3RyaXBs ZXQ9aTY4Ni1saW51eC1tdXNsCiBfYmludXRpbHNfdmVyc2lvbj0yLjMyCiBfZ2NjX3ZlcnNpb249 OS4zLjAKIF9tdXNsX3ZlcnNpb249MS4xLjI0CiBfbGludXhfdmVyc2lvbj00LjE5CiBfbGlidWNv bnRleHRfdmVyc2lvbj0wLjkuMAotCi1fdHJpcGxldD1pNjg2LWxpbnV4LW11c2wKLV9zeXNyb290 PSIvdXNyLyR7X3RyaXBsZXR9IgotX2FyY2hmbGFncz0iLW1hcmNoPWk2ODYiCi0KIHBrZ25hbWU9 Y3Jvc3MtJHtfdHJpcGxldH0KIHZlcnNpb249MC4zMwogcmV2aXNpb249Mwotc2hvcnRfZGVzYz0i Q3Jvc3MgdG9vbGNoYWluIGZvciBpNjg2IHRhcmdldCAobXVzbCkiCitidWlsZF9zdHlsZT12b2lk LWNyb3NzCitob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5 dGhvbjMiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwg Z21wLWRldmVsIG1wZnItZGV2ZWwiCitkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9u fV8ke3JldmlzaW9ufSIKK3Nob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke190 cmlwbGV0fSIKIG1haW50YWluZXI9IkrDvHJnZW4gQnVjaG3DvGxsZXIgPHB1bGxtb2xsQHQtb25s aW5lLmRlPiIKIGhvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGxpY2Vuc2U9 IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIE1JVCIKQEAgLTI5LDI5NCArMjgs MjAgQEAgY2hlY2tzdW09IjBhYjZjNTVkZDg2YTkyZWQ1NjE5NzJiYTE1YjliNzBhOGI5Zjc1NTU3 Zjg5NjQ0NmM4MmU4YjM2ZTQ3M2VlMDQKICAwYzY4ZjU2NTU1MjhhZWQ0Zjk5ZGFlNzFhNWIyNTll ZGM5MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExCiAgMGQ1M2E0MTVhMzA3ZWYxNzUxNTNi YmU2MGE1NzJjOTQwYTkyMmNiNzM2Y2UxMzUzMGI2NjZlN2VjMjc5NWQ2OCIKIAotbGliMzJkaXNh YmxlZD15ZXMKLW5vY3Jvc3M9eWVzCi1ub3BpZT15ZXMKLW5vZGVidWc9eWVzCi1jcmVhdGVfd3Jr c3JjPXllcwotaG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBw eXRob24zIgotbWFrZWRlcGVuZHM9InpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwgbGli bXBjLWRldmVsIGlzbDE1LWRldmVsIgotbm9zdHJpcF9maWxlcz0ibGliY2FmX3NpbmdsZS5hIGxp YmdjYy5hIGxpYmdjb3YuYSBsaWJnY2NfZWguYQotIGxpYmduYXJsX3BpYy5hIGxpYmduYXJsLmEg bGliZ25hdF9waWMuYSBsaWJnbmF0LmEgbGliZ21lbS5hIgotZGVwZW5kcz0iJHtwa2duYW1lfS1s aWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitjcm9zc190cmlwbGV0PSR7X3RyaXBsZXR9Citj cm9zc19saWJ1Y29udGV4dF9hcmNoPXg4NgorY3Jvc3NfbGludXhfYXJjaD14ODYKKyMgZXhwbGlj aXRseSBlbmFibGUgZm9yIGZpbmFsIGdjYywgYXMgZ2ZvcnRyYW4gZG9lcyBub3QgYnVpbGQgd2l0 aG91dCBvbiB4ODYKK2Nyb3NzX2djY19jb25maWd1cmVfYXJncz0iLS1lbmFibGUtbGlicXVhZG1h dGgiCitjcm9zc19tdXNsX2NmbGFncz0iLU8yIC1tYXJjaD1pNjg2IC1tdHVuZT1nZW5lcmljIgog CiBpZiBbICIkWEJQU19UQVJHRVRfTUFDSElORSIgPSAiaTY4Ni1tdXNsIiBdOyB0aGVuCiAJYnJv a2VuPSJDYW4ndCBidWlsZCBjcm9zc3Rvb2xjaGFpbiB0byBpdHNlbGYiCiBmaQogCi1fYXBwbHlf cGF0Y2goKSB7Ci0JbG9jYWwgYXJncz0iJDEiIHBuYW1lPSIkKGJhc2VuYW1lICQyKSIKLQotCWlm IFsgISAtZiAiLiR7cG5hbWV9X2RvbmUiIF07IHRoZW4KLQkJcGF0Y2ggLU4gJGFyZ3MgLWkgJDIK LQkJdG91Y2ggLiR7cG5hbWV9X2RvbmUKLQlmaQotfQotCi1fYmludXRpbHNfYnVpbGQoKSB7Ci0J bG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25lIF0gJiYg cmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGJp bnV0aWxzIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIGJpbnV0aWxzLWJ1aWxkIF0gJiYgbWtkaXIg YmludXRpbHMtYnVpbGQKLQljZCBiaW51dGlscy1idWlsZAotCV9hcmdzPSItLXByZWZpeD0vdXNy IgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNy b290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJyb3IiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLXdpdGgtc3lzdGVtLXpsaWIiCi0JX2FyZ3Mr PSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0vY29u ZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNvbmZpZ3VyZS1ob3N0Ci0JbWFrZSAke21ha2Vqb2Jz fQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25l Ci19Ci0KLV9nY2NfYm9vdHN0cmFwKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3Jj fS8uZ2NjX2Jvb3RzdHJhcF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nY2Mt JHtfZ2NjX3ZlcnNpb259Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL3BhdGNoZXMv Ki5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JZG9uZQotCWZvciBmIGluICR7 WEJQU19TUkNQS0dESVJ9L2djYy9maWxlcy8qLW11c2wucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRj aCAtcDEgIiRmIgotCWRvbmUKLQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBib290 c3RyYXBcbiIKLQotCVsgISAtZCAuLi9nY2MtYm9vdHN0cmFwIF0gJiYgbWtkaXIgLi4vZ2NjLWJv b3RzdHJhcAotCWNkIC4uL2djYy1ib290c3RyYXAKLQotCV9hcmdzPSItLXRhcmdldD0ke190cmlw bGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAt LXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jIgotCV9hcmdzKz0i IC0td2l0aC1uZXdsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRp c2FibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9 IiAtLWRpc2FibGUtdGhyZWFkcyIKLQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIK LQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxp YmdvbXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmF0b21pYyIKLQlfYXJncys9IiAtLWRpc2Fi bGUtc3ltdmVycyIKLQlfYXJncys9IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5vIgotCV9hcmdzKz0i ICR7X2ZwdWZsYWdzfSIKLQlDRkxBR1M9Ii1PMCAtZzAiIENYWEZMQUdTPSItTzAgLWcwIiBcCi0J CS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFr ZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdjY19ib290c3RyYXBf ZG9uZQotfQotCi1fbGludXhfaGVhZGVycygpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubGludXhfYnVp bGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWls ZGluZyBMaW51eCBBUEkgaGVhZGVyc1xuIgotCi0JY2QgbGludXgtJHtfbGludXhfdmVyc2lvbn0K LQotCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2tlcm5lbC1saWJjLWhlYWRlcnMvcGF0Y2hl cy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICRmCi0JZG9uZQotCi0JbWFrZSBBUkNI PXg4NiBoZWFkZXJzX2NoZWNrCi0JbWFrZSBBUkNIPXg4NiBJTlNUQUxMX0hEUl9QQVRIPSR7X3N5 c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGludXhfYnVp bGRfZG9uZQotfQotCi1fbXVzbF9idWlsZCgpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubXVzbF9idWls ZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9tdXNsLSR7X211c2xfdmVyc2lv bn0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBtdXNsIGxpYmNcbiIKLQotCSMgQXBwbHkg bXVzbCBwYXRjaGVzIGlmIHRoZXJlIGFyZSBhbnkKLQlpZiBbIC1kICIke1hCUFNfU1JDUEtHRElS fS9tdXNsL3BhdGNoZXMiIF07IHRoZW4KLQkJZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vbXVz bC9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQkJZG9uZQot CWZpCi0KLQlDQz0iJHtfdHJpcGxldH0tZ2NjIiBDRkxBR1M9Ii1PcyAtcGlwZSAtZlBJQyAke19h cmNoZmxhZ3N9IiBcCi0JCS4vY29uZmlndXJlIC0tcHJlZml4PS91c3IKLQotCW1ha2UgJHttYWtl am9ic30KLQltYWtlIERFU1RESVI9JHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtz cmN9Ly5tdXNsX2J1aWxkX2RvbmUKLX0KLQotX2xpYnVjb250ZXh0X2J1aWxkKCkgewotCVsgLWYg JHt3cmtzcmN9Ly5saWJ1Y29udGV4dF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7 d3Jrc3JjfS9saWJ1Y29udGV4dC0ke19saWJ1Y29udGV4dF92ZXJzaW9ufQotCW1zZ19ub3JtYWwg IkJ1aWxkaW5nIGNyb3NzIGxpYnVjb250ZXh0XG4iCi0KLQl2c2VkIC1pIGFyY2gveDg2L3N0YXJ0 Y29udGV4dC5TIC1lIFwKLQkgInM7X19pNjg2LmdldF9wY190aHVuay5ieDtpNjg2X2dldF9wY190 aHVua19ieDtnIgotCi0JIyBpdCdzIG9rIGlmIHdlJ3JlIHN0YXRpYyBvbmx5IGhlcmUKLQlDQz0i JHtfdHJpcGxldH0tZ2NjIiBBUj0iJHtfdHJpcGxldH0tYXIiIEFTPSIke190cmlwbGV0fS1hcyIg XAotCQlDRkxBR1M9Ii1PcyAtcGlwZSAke19hcmNoZmxhZ3N9IiBcCi0JCW1ha2UgQVJDSD14ODYg bGlidWNvbnRleHQuYQotCi0JY3AgbGlidWNvbnRleHQuYSAke19zeXNyb290fS91c3IvbGliCi0K LQl0b3VjaCAke3dya3NyY30vLmxpYnVjb250ZXh0X2J1aWxkX2RvbmUKLX0KLQotX2djY19idWls ZCgpIHsKLQlsb2NhbCBfYXJncwotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZSBdICYm IHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBn Y2MgZmluYWxcbiIKLQotCVsgISAtZCBnY2MtYnVpbGQgXSAmJiBta2RpciBnY2MtYnVpbGQKLQlj ZCBnY2MtYnVpbGQKLQotCV9hcmdzPSItLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAt LXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLXByZWZpeD0vdXNyIgotCV9h cmdzKz0iIC0tbGliZXhlY2Rpcj0vdXNyL2xpYiIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFn ZXM9YyxhZGEsYysrLG9iamMsb2JqLWMrKyxnbyxmb3J0cmFuLGx0byIKLQlfYXJncys9IiAtLWVu YWJsZS1sdG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1waWUiCi0JX2FyZ3MrPSIgLS1l bmFibGUtZGVmYXVsdC1zc3AiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGlic3NwIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1saWJzYW5pdGl6ZXIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZs YXAiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGliYWRhIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYnF1 YWRtYXRoIgotCV9hcmdzKz0iIC0tZW5hYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUt c3ltdmVycyIKLQlfYXJncys9IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5vIgotCV9hcmdzKz0iICR7 X2ZwdWZsYWdzfSIKLQotCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9 Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0KLQl0b3VjaCAke3dya3NyY30vLmdjY19idWlsZF9kb25l Ci19Ci0KLWRvX2J1aWxkKCkgewotCSMgRW5zdXJlIHdlIHVzZSBzYW5lIGVudmlyb25tZW50Ci0J dW5zZXQgQ0MgQ1hYIENQUCBMRCBBUyBBUiBSQU5MSUIgT0JKRFVNUCBSRUFERUxGIE5NCi0JdW5z ZXQgQ0ZMQUdTIENYWEZMQUdTIENQUEZMQUdTIExERkxBR1MKLQlleHBvcnQgQ0ZMQUdTPSItT3Mg LXBpcGUiIENYWEZMQUdTPSItT3MgLXBpcGUiCi0KLQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJl eGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhl bgotCQkJbWtkaXIgLXAgJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7 X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke19zeXNyb290fS91c3IvJHtmfSAk e19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtfc3lzcm9vdH0vdXNy L2xpYjMyCi0JbG4gLXNmIHVzci9saWIgJHtfc3lzcm9vdH0vbGliMzIKLQotCV9iaW51dGlsc19i dWlsZAotCV9nY2NfYm9vdHN0cmFwCi0JX2xpbnV4X2hlYWRlcnMKLQlfbXVzbF9idWlsZAotCV9s aWJ1Y29udGV4dF9idWlsZAotCV9nY2NfYnVpbGQKLX0KLQotZG9faW5zdGFsbCgpIHsKLQlmb3Ig ZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtERVNU RElSfS8ke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vz ci8ke2Z9IFwKLQkJCQkke0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0J bG4gLXNmIGxpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIzMgotCWxuIC1zZiB1c3Iv bGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliMzIKLQotCSMgaW5zdGFsbCBsaW51eCBBUEkg aGVhZGVycyBmb3IgeDg2Ci0JY2QgJHt3cmtzcmN9L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0J bWFrZSBBUkNIPXg4NiBJTlNUQUxMX0hEUl9QQVRIPSR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNy IGhlYWRlcnNfaW5zdGFsbAotCXJtIC1mICQoZmluZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vz ci9pbmNsdWRlIC1uYW1lIC5pbnN0YWxsIC1vciAtbmFtZSAuLmluc3RhbGwuY21kKQotCXJtIC1y ZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlL2RybQotCi0JIyBpbnN0YWxsIGNy b3NzIGJpbnV0aWxzCi0JY2QgJHt3cmtzcmN9L2JpbnV0aWxzLWJ1aWxkCi0JbWFrZSBERVNURElS PSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBpbnN0YWxsIGNyb3NzIGdjYwotCWNkICR7d3Jrc3Jj fS9nY2MtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIG1vdmUg bGliY2MxLnNvKiB0byB0aGUgc3lzcm9vdAotCW12ICR7REVTVERJUn0vdXNyL2xpYi9saWJjYzEu c28qICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JIyBpbnN0YWxsIG11c2wgbGli YyBmb3IgdGFyZ2V0Ci0JY2QgJHt3cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9ufQotCW1ha2Ug REVTVERJUj0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCSMgUmVtb3ZlIHVzZWxl c3MgaGVhZGVycy4KLQlybSAtcmYgJHtERVNURElSfS91c3IvbGliL2djYy8ke190cmlwbGV0fS8q L2luY2x1ZGUtZml4ZWQvCi0KLQkjIE1ha2UgbGQtbXVzbC1pMzg2LnNvLjEgc3ltbGluayByZWxh dGl2ZSB0byBjd2QuCi0JY2QgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0JbG4gLXNm IGxpYmMuc28gbGQtbXVzbC1pMzg2LnNvLjEKLQotCSMgTW92ZSBmaWxlcyB0byAvdXNyL2xpYiAo bGliNjQpLgotCWlmIFsgLWQgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliNjQgXTsgdGhl bgotCQltdiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWI2NC8qICR7REVTVERJUn0vJHtf c3lzcm9vdH0vdXNyL2xpYi8KLQkJcm1kaXIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGli NjQKLQlmaQotCi0JIyBzeW1saW5rcyBmb3IgZ25hcmwgYW5kIGduYXQgc2hhcmVkIGxpYnJhcmll cwotCV9tYWpvcnZlcj0ke19nY2NfdmVyc2lvbiUuKi4qfQotCV9hZGFsaWI9dXNyL2xpYi9nY2Mv JHtfdHJpcGxldH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxpYgotCW12IC12ICR7REVTVERJUn0vJHtf YWRhbGlifS9saWJnbmFybC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91 c3IvbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXQtJHtfbWFqb3J2ZXJ9 LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCWxuIC1zdmYgbGliZ25hcmwtJHtf bWFqb3J2ZXJ9LnNvIGxpYmduYXJsLnNvCi0JbG4gLXN2ZiBsaWJnbmF0LSR7X21ham9ydmVyfS5z byBsaWJnbmF0LnNvCi0Jcm0gLXZmICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF7cmwsdH0u c28KLQotCSMgV2UgbmVlZCB0byBidWlsZCBsaWJhdG9taWMgaW4gdGFyZ2V0IGdjYyBhcyBnY2Nn byBuZWVkcyBpdCB0bwotCSMgYnVpbGQuLi4gYnV0IGl0J3Mgbm90IG5lZWRlZCBhdCBydW50aW1l LCBzbyByZW1vdmUgaXQgZnJvbSB0aGUKLQkjIGRlc3RkaXIgc28gaXQgZG9lc24ndCBjb25mbGlj dCB3aXRoIHRoZSBsaWJhdG9taWMgcGFja2FnZQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9v dH0vdXNyL2xpYi9saWJhdG9taWMuKgotCi0JIyBSZW1vdmUgdW5uZWNlc3Nhcnkgc3R1ZmYKLQly bSAtZiAke0RFU1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCi0Jcm0gLXJmICR7REVTVERJUn0v dXNyL3NoYXJlCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve2V0Yyx2YXJ9Ci0Jcm0g LXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL3tzYmluLHNoYXJlLGxpYmV4ZWN9Ci0Jcm0g LWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWJleGVjCi0Jcm0gLWYgJHtERVNURElSfS8ke19z eXNyb290fS9saWIvKi5weQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve3NiaW4sbGli fQorcG9zdF9wYXRjaCgpIHsKKwl2c2VkIC1pIGxpYnVjb250ZXh0LSR7X2xpYnVjb250ZXh0X3Zl cnNpb259L2FyY2gveDg2L3N0YXJ0Y29udGV4dC5TIFwKKwkJLWUgXCAicztfX2k2ODYuZ2V0X3Bj X3RodW5rLmJ4O2k2ODZfZ2V0X3BjX3RodW5rX2J4O2ciCiB9CiAKIGNyb3NzLWk2ODYtbGludXgt bXVzbC1saWJjX3BhY2thZ2UoKSB7CkBAIC0zMjQsNyArNDksOCBAQCBjcm9zcy1pNjg2LWxpbnV4 LW11c2wtbGliY19wYWNrYWdlKCkgewogCW5vc3RyaXA9eWVzCiAJbm92ZXJpZnlyZGVwcz15ZXMK IAlub3NobGlicHJvdmlkZXM9eWVzCisKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgJHtfc3lz cm9vdH0KKwkJdm1vdmUgdXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9CiB9CgpGcm9tIDJjZGFiZThl N2I1NWQ0ZDBmZmExZWY2ODNjMWVmZjQ1OTM3YzYzOWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFNhdCwgMjYgRGVjIDIwMjAg MDA6MDk6NTcgKzAxMDAKU3ViamVjdDogW1BBVENIIDEzLzI2XSBjcm9zcy1taXBzLWxpbnV4LW11 c2w6IHJlZG8gd2l0aCB2b2lkLWNyb3NzCgotLS0KIHNyY3BrZ3MvY3Jvc3MtbWlwcy1saW51eC1t dXNsL3RlbXBsYXRlIHwgMjg1ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFu Z2VkLCAxNyBpbnNlcnRpb25zKCspLCAyNjggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9jcm9zcy1taXBzLWxpbnV4LW11c2wvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLW1pcHMt bGludXgtbXVzbC90ZW1wbGF0ZQppbmRleCAxOWY2MDBjOWU1YS4uNDczZGM2OGQ4N2QgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtbWlwcy1saW51eC1tdXNsL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvY3Jvc3MtbWlwcy1saW51eC1tdXNsL3RlbXBsYXRlCkBAIC0xLDI5NiArMSw0NSBAQAotIyBU ZW1wbGF0ZSBidWlsZCBmaWxlIGZvciAnY3Jvc3MtbWlwcy1saW51eC1tdXNsJwotIworIyBUZW1w bGF0ZSBmaWxlIGZvciAnY3Jvc3MtbWlwcy1saW51eC1tdXNsJworX3RyaXBsZXQ9bWlwcy1saW51 eC1tdXNsCiBfYmludXRpbHNfdmVyc2lvbj0yLjMyCiBfZ2NjX3ZlcnNpb249OS4zLjAKIF9tdXNs X3ZlcnNpb249MS4xLjI0CiBfbGludXhfdmVyc2lvbj00LjE5Ci0KLV90cmlwbGV0PW1pcHMtbGlu dXgtbXVzbAotX2ZwdWZsYWdzPSItLXdpdGgtZmxvYXQ9c29mdCAtLXdpdGhvdXQtZnAiCi1fYXJj aGZsYWdzPSItbWFyY2g9bWlwczMycjIgLW1zb2Z0LWZsb2F0IgotX3N5c3Jvb3Q9Ii91c3IvJHtf dHJpcGxldH0iCi0KIHBrZ25hbWU9Y3Jvc3MtJHtfdHJpcGxldH0KIHZlcnNpb249MC4zMwogcmV2 aXNpb249Mwotc2hvcnRfZGVzYz0iQ3Jvc3MgdG9vbGNoYWluIGZvciBNSVBTMzJyMiBCRSBzb2Z0 ZmxvYXQgdGFyZ2V0IChtdXNsKSIKK2J1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKK2NvbmZpZ3VyZV9h cmdzPSItLXdpdGgtYXJjaD1taXBzMzJyMiAtLXdpdGgtZmxvYXQ9c29mdAorIC0td2l0aC1saW5r ZXItaGFzaC1zdHlsZT1zeXN2IgoraG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZmxleCBw ZXJsIHB5dGhvbjMiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWIt ZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCitkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2 ZXJzaW9ufV8ke3JldmlzaW9ufSIKK3Nob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZv ciAke190cmlwbGV0fSIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9y Zz4iCiBob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwt Mi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBNSVQiCiBkaXN0ZmlsZXM9IgogICR7R05V X1NJVEV9L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRhci54egogICR7 R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259L2djYy0ke19nY2NfdmVyc2lvbn0udGFy Lnh6Ci0gaHR0cDovL3d3dy5tdXNsLWxpYmMub3JnL3JlbGVhc2VzL211c2wtJHtfbXVzbF92ZXJz aW9ufS50YXIuZ3oKKyBodHRwczovL3d3dy5tdXNsLWxpYmMub3JnL3JlbGVhc2VzL211c2wtJHtf bXVzbF92ZXJzaW9ufS50YXIuZ3oKICAke0tFUk5FTF9TSVRFfS9rZXJuZWwvdjQueC9saW51eC0k e19saW51eF92ZXJzaW9ufS50YXIueHoiCiBjaGVja3N1bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3 MmJhMTViOWI3MGE4YjlmNzU1NTdmODk2NDQ2YzgyZThiMzZlNDczZWUwNAogIDcxZTE5Nzg2NzYx MWY2MDU0YWExMTE5YjEzYTBjMGFiYWMxMjgzNDc2NWZlMmQ4MWYzNWFjNTdmODRmNzQyZDEKICAx MzcwYzlhODEyYjJjZjJhN2Q5MjgwMjUxMGNjYTAwNThjYzM3ZTY2YTdiZWRkNzAwNTFmMGEzNDAx NTAyMmEzCiAgMGM2OGY1NjU1NTI4YWVkNGY5OWRhZTcxYTViMjU5ZWRjOTMyMzlmYTg5OWUyZGY3 OWMwNTUyNzVjMjE3NDlhMSIKIAotbGliMzJkaXNhYmxlZD15ZXMKLW5vY3Jvc3M9eWVzCi1ub3Bp ZT15ZXMKLW5vZGVidWc9eWVzCi1jcmVhdGVfd3Jrc3JjPXllcwotCi1ob3N0bWFrZWRlcGVuZHM9 InRhciBnY2Mtb2JqYyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJ6bGliLWRldmVs IGdtcC1kZXZlbCBtcGZyLWRldmVsIGxpYm1wYy1kZXZlbCBpc2wxNS1kZXZlbCIKLW5vc3RyaXBf ZmlsZXM9ImxpYmNhZl9zaW5nbGUuYSBsaWJnY2MuYSBsaWJnY292LmEgbGliZ2NjX2VoLmEKLSBs aWJnbmFybF9waWMuYSBsaWJnbmFybC5hIGxpYmduYXRfcGljLmEgbGliZ25hdC5hIGxpYmdtZW0u YSIKLWRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotCi1f YXBwbHlfcGF0Y2goKSB7Ci0JbG9jYWwgYXJncz0iJDEiIHBuYW1lPSIkKGJhc2VuYW1lICQyKSIK LQotCWlmIFsgISAtZiAiLiR7cG5hbWV9X2RvbmUiIF07IHRoZW4KLQkJcGF0Y2ggLU4gJGFyZ3Mg LWkgJDIKLQkJdG91Y2ggLiR7cG5hbWV9X2RvbmUKLQlmaQotfQotCi1fYmludXRpbHNfYnVpbGQo KSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25l IF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNy b3NzIGJpbnV0aWxzIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIGJpbnV0aWxzLWJ1aWxkIF0gJiYg bWtkaXIgYmludXRpbHMtYnVpbGQKLQljZCBiaW51dGlscy1idWlsZAotCi0JX2FyZ3M9Ii0tcHJl Zml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13 aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJn cys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQlf YXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0td2l0aC1zeXN0ZW0temxpYiIK LQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQkuLi9iaW51dGlscy0ke19iaW51dGlsc192ZXJz aW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgY29uZmlndXJlLWhvc3QgJiYgbWFrZSAk e21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5iaW51dGlsc19i dWlsZF9kb25lCi19Ci0KLV9nY2NfYm9vdHN0cmFwKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1m ICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jr c3JjfS9nY2MtJHtfZ2NjX3ZlcnNpb259Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2Nj L3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JZG9uZQotCWZv ciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9maWxlcy8qLW11c2wucGF0Y2g7IGRvCi0JCV9h cHBseV9wYXRjaCAtcDEgIiRmIgotCWRvbmUKLQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3Nz IGdjYyBib290c3RyYXBcbiIKLQotCVsgISAtZCAuLi9nY2MtYm9vdHN0cmFwIF0gJiYgbWtkaXIg Li4vZ2NjLWJvb3RzdHJhcAotCWNkIC4uL2djYy1ib290c3RyYXAKLQotCV9hcmdzPSItLXByZWZp eD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0 aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0td2l0aC1uZXdsaWIiCi0JX2FyZ3Mr PSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMiCi0JX2FyZ3MrPSIgLS13aXRoLW5ld2xpYiIKLQlfYXJn cys9IiAtLWRpc2FibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS10aHJlYWRzIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1z aGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJncys9IiAtLWRpc2FibGUt bGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliZ29tcCIKLQlfYXJncys9IiAtLWRp c2FibGUtbGliYXRvbWljIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCUNGTEFHUz0iLU8w IC1nMCIgQ1hYRkxBR1M9Ii1PMCAtZzAiIFwKLQkJLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25m aWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRv dWNoICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lCi19Ci0KLV9saW51eF9oZWFkZXJzKCkg ewotCVsgLWYgJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNk ICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIExpbnV4IEFQSSBoZWFkZXJzXG4iCi0K LQljZCBsaW51eC0ke19saW51eF92ZXJzaW9ufQotCi0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJ Un0va2VybmVsLWxpYmMtaGVhZGVycy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRj aCAtcDAgJGYKLQlkb25lCi0KLQltYWtlIEFSQ0g9bWlwcyBoZWFkZXJzX2NoZWNrCi0JbWFrZSBB UkNIPW1pcHMgSU5TVEFMTF9IRFJfUEFUSD0ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxs Ci0KLQl0b3VjaCAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUKLX0KLQotX211c2xfYnVpbGQo KSB7Ci0JWyAtZiAke3dya3NyY30vLm11c2xfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQlj ZCAke3dya3NyY30vbXVzbC0ke19tdXNsX3ZlcnNpb259Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcg Y3Jvc3MgbXVzbCBsaWJjXG4iCi0KLQkjIEFwcGx5IG11c2wgcGF0Y2hlcyBpZiB0aGVyZSBhcmUg YW55Ci0JaWYgWyAtZCAiJHtYQlBTX1NSQ1BLR0RJUn0vbXVzbC9wYXRjaGVzIiBdOyB0aGVuCi0J CWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L211c2wvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQkJ X2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JCWRvbmUKLQlmaQotCi0JQ0M9IiR7X3RyaXBsZXR9LWdj YyIgQ0ZMQUdTPSItT3MgLXBpcGUgLWZQSUMgJHtfYXJjaGZsYWdzfSIgXAotCQkuL2NvbmZpZ3Vy ZSAtLXByZWZpeD0vdXNyCi0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBERVNURElSPSR7X3N5 c3Jvb3R9IGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8ubXVzbF9idWlsZF9kb25lCi19Ci0K LV9nY2NfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYnVp bGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWls ZGluZyBjcm9zcyBnY2MgZmluYWxcbiIKLQotCVsgISAtZCBnY2MtYnVpbGQgXSAmJiBta2RpciBn Y2MtYnVpbGQKLQljZCBnY2MtYnVpbGQKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdz Kz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5 c3Jvb3R9IgotCV9hcmdzKz0iIC0tbGliZXhlY2Rpcj0vdXNyL2xpYiIKLQlfYXJncys9IiAtLWVu YWJsZS1sYW5ndWFnZXM9YyxhZGEsYysrLG9iamMsb2JqLWMrKyxmb3J0cmFuLGx0byIKLQlfYXJn cys9IiAtLWVuYWJsZS1saWJhZGEiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbHRvIgotCV9hcmdzKz0i IC0tZW5hYmxlLWRlZmF1bHQtcGllIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtc3NwIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzYW5pdGl6ZXIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11 bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxp YnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmF0b21pYyIKLQlfYXJncys9 IiAtLWVuYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2hhcmVkIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1zeW12ZXJzIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCS4uL2djYy0k e19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0K LQl0b3VjaCAke3dya3NyY30vLmdjY19idWlsZF9kb25lCi19Ci0KLWRvX2J1aWxkKCkgewotCSMg RW5zdXJlIHdlIHVzZSBzYW5lIGVudmlyb25tZW50Ci0JdW5zZXQgQ0MgQ1hYIENQUCBMRCBBUyBB UiBSQU5MSUIgT0JKRFVNUCBSRUFERUxGIE5NCi0JdW5zZXQgQ0ZMQUdTIENYWEZMQUdTIENQUEZM QUdTIExERkxBR1MKLQlleHBvcnQgQ0ZMQUdTPSItT3MgLXBpcGUiIENYWEZMQUdTPSItT3MgLXBp cGUiCi0KLQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBb ICEgLWQgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtfc3lzcm9v dH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgot CQkJbG4gLXNmciAke19zeXNyb290fS91c3IvJHtmfSAke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0J ZG9uZQotCWxuIC1zZiBsaWIgJHtfc3lzcm9vdH0vdXNyL2xpYjMyCi0JbG4gLXNmIHVzci9saWIg JHtfc3lzcm9vdH0vbGliMzIKLQotCV9iaW51dGlsc19idWlsZAotCV9nY2NfYm9vdHN0cmFwCi0J X2xpbnV4X2hlYWRlcnMKLQlfbXVzbF9idWlsZAotCV9nY2NfYnVpbGQKLX0KLQotZG9faW5zdGFs bCgpIHsKLQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBb ICEgLWQgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAt cCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke0RF U1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L3Vzci8ke2Z9IFwKLQkJCQkke0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0KLQkJ ZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIzMgot CWxuIC1zZiB1c3IvbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliMzIKLQotCSMgaW5zdGFs bCBsaW51eCBBUEkgaGVhZGVycwotCWNkICR7d3Jrc3JjfS9saW51eC0ke19saW51eF92ZXJzaW9u fQotCW1ha2UgQVJDSD1taXBzIElOU1RBTExfSERSX1BBVEg9JHtERVNURElSfS8ke19zeXNyb290 fS91c3IgaGVhZGVyc19pbnN0YWxsCi0Jcm0gLWYgJChmaW5kICR7REVTVERJUn0vJHtfc3lzcm9v dH0vdXNyL2luY2x1ZGUgLW5hbWUgLmluc3RhbGwgLW9yIC1uYW1lIC4uaW5zdGFsbC5jbWQpCi0J cm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUvZHJtCi0KLQkjIGluc3Rh bGwgY3Jvc3MgYmludXRpbHMKLQljZCAke3dya3NyY30vYmludXRpbHMtYnVpbGQKLQltYWtlIERF U1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIGluc3RhbGwgY3Jvc3MgZ2NjCi0JY2QgJHt3 cmtzcmN9L2djYy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMg bW92ZSBsaWJjYzEuc28qIHRvIHRoZSBzeXNyb290Ci0JbXYgJHtERVNURElSfS91c3IvbGliL2xp YmNjMS5zbyogJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0KLQkjIGluc3RhbGwgbXVz bCBsaWJjIGZvciB0YXJnZXQKLQljZCAke3dya3NyY30vbXVzbC0ke19tdXNsX3ZlcnNpb259Ci0J bWFrZSBERVNURElSPSR7REVTVERJUn0vJHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JIyBSZW1vdmUg dXNlbGVzcyBoZWFkZXJzLgotCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9saWIvZ2NjLyR7X3RyaXBs ZXR9LyovaW5jbHVkZS1maXhlZAotCi0JIyBNYWtlIGxkLW11c2wuc28gc3ltbGlua3MgcmVsYXRp dmUuCi0JbG4gLXNmIGxpYmMuc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xkLW11 c2wtbWlwcy5zby4xCi0JbG4gLXNmIGxpYmMuc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3Iv bGliL2xkLW11c2wtbWlwcy1zZi5zby4xCi0KLQkjIHN5bWxpbmtzIGZvciBnbmFybCBhbmQgZ25h dCBzaGFyZWQgbGlicmFyaWVzCi0JX21ham9ydmVyPSR7X2djY192ZXJzaW9uJS4qLip9Ci0JX2Fk YWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0fS8ke19nY2NfdmVyc2lvbn0vYWRhbGliCi0JbXYg LXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXJsLSR7X21ham9ydmVyfS5zbyAke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGli Z25hdC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0JbG4g LXN2ZiBsaWJnbmFybC0ke19tYWpvcnZlcn0uc28gbGliZ25hcmwuc28KLQlsbiAtc3ZmIGxpYmdu YXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXQuc28KLQlybSAtdmYgJHtERVNURElSfS8ke19hZGFs aWJ9L2xpYmduYXtybCx0fS5zbwotCi0JIyBSZW1vdmUgdW5uZWNlc3Nhcnkgc3R1ZmYKLQlybSAt ZiAke0RFU1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCi0Jcm0gLXJmICR7REVTVERJUn0vdXNy L3NoYXJlCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve2V0Yyx2YXJ9Ci0Jcm0gLXJm ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL3tzYmluLHNoYXJlLGxpYmV4ZWN9Ci0Jcm0gLWYg JHtERVNURElSfS8ke19zeXNyb290fS9saWJleGVjCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNy b290fS9saWIvKi5weQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve3NiaW4sbGlifQot fQorY3Jvc3NfdHJpcGxldD0ke190cmlwbGV0fQorY3Jvc3NfbGludXhfYXJjaD1taXBzCitjcm9z c19nY2Nfc2tpcF9nbz15ZXMKK2Nyb3NzX2JpbnV0aWxzX2NvbmZpZ3VyZV9hcmdzPSItLXdpdGhv dXQtZnAgLS1lbmFibGUtZGVmYXVsdC1oYXNoLXN0eWxlPXN5c3YiCitjcm9zc19tdXNsX2NmbGFn cz0iLU9zIC1tYXJjaD1taXBzMzJyMiAtbXNvZnQtZmxvYXQiCiAKIGNyb3NzLW1pcHMtbGludXgt bXVzbC1saWJjX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGxpYmMgZmlsZXMiCiAJbm9z dHJpcD15ZXMKIAlub3ZlcmlmeXJkZXBzPXllcwogCW5vc2hsaWJwcm92aWRlcz15ZXMKKwogCXBr Z19pbnN0YWxsKCkgewotCQl2bW92ZSAke19zeXNyb290fQorCQl2bW92ZSB1c3IvJHtjcm9zc190 cmlwbGV0fQogCX0KIH0KCkZyb20gZmVjYmQ4YmM5NjUwN2ZlY2Q4NGM0NWMzZTA5OTQwZjQ2MDgy Mjk5MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZvcmdl Lm9yZz4KRGF0ZTogU2F0LCAyNiBEZWMgMjAyMCAwMDoxMDoxMSArMDEwMApTdWJqZWN0OiBbUEFU Q0ggMTQvMjZdIGNyb3NzLW1pcHMtbGludXgtbXVzbGhmOiByZWRvIHdpdGggdm9pZC1jcm9zcwoK LS0tCiBzcmNwa2dzL2Nyb3NzLW1pcHMtbGludXgtbXVzbGhmL3RlbXBsYXRlIHwgMjgyICsrLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgMjY2 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtbWlwcy1saW51eC1tdXNs aGYvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLW1pcHMtbGludXgtbXVzbGhmL3RlbXBsYXRlCmlu ZGV4IDc5OTI4NjRhOGI2Li45MDZlYmQwNGFiNCAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1t aXBzLWxpbnV4LW11c2xoZi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLW1pcHMtbGludXgt bXVzbGhmL3RlbXBsYXRlCkBAIC0xLDE5ICsxLDE5IEBACi0jIFRlbXBsYXRlIGJ1aWxkIGZpbGUg Zm9yICdjcm9zcy1taXBzLWxpbnV4LW11c2xoZicKLSMKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Ny b3NzLW1pcHMtbGludXgtbXVzbGhmJworX3RyaXBsZXQ9bWlwcy1saW51eC1tdXNsaGYKIF9iaW51 dGlsc192ZXJzaW9uPTIuMzIKIF9nY2NfdmVyc2lvbj05LjMuMAogX211c2xfdmVyc2lvbj0xLjEu MjQKIF9saW51eF92ZXJzaW9uPTQuMTkKLQotX3RyaXBsZXQ9bWlwcy1saW51eC1tdXNsaGYKLV9m cHVmbGFncz0iLS13aXRoLWZsb2F0PWhhcmQgLS13aXRoLWZwIgotX2FyY2hmbGFncz0iLW1hcmNo PW1pcHMzMnIyIC1taGFyZC1mbG9hdCIKLV9zeXNyb290PSIvdXNyLyR7X3RyaXBsZXR9IgotCiBw a2duYW1lPWNyb3NzLSR7X3RyaXBsZXR9CiB2ZXJzaW9uPTAuMzMKIHJldmlzaW9uPTMKLXNob3J0 X2Rlc2M9IkNyb3NzIHRvb2xjaGFpbiBmb3IgTUlQUzMycjIgQkUgaGFyZGZsb2F0IHRhcmdldCAo bXVzbCkiCitidWlsZF9zdHlsZT12b2lkLWNyb3NzCitjb25maWd1cmVfYXJncz0iLS13aXRoLWFy Y2g9bWlwczMycjIgLS13aXRoLWZsb2F0PWhhcmQKKyAtLXdpdGgtbGlua2VyLWhhc2gtc3R5bGU9 c3lzdiIKK2hvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGZsZXggcGVybCBweXRob24zIgor bWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVsIGdtcC1kZXZl bCBtcGZyLWRldmVsIgorZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZp c2lvbn0iCitzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBmb3IgJHtfdHJpcGxldH0i CiBtYWludGFpbmVyPSJoaXBwZXJzb24wIDxoaXBwZXJzb24wQGdtYWlsLmNvbT4iCiBob21lcGFn ZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVy LCBHUEwtMy4wLW9yLWxhdGVyLCBNSVQiCkBAIC0yNywyNjkgKzI3LDE5IEBAIGNoZWNrc3VtPSIw YWI2YzU1ZGQ4NmE5MmVkNTYxOTcyYmExNWI5YjcwYThiOWY3NTU1N2Y4OTY0NDZjODJlOGIzNmU0 NzNlZTA0CiAgMTM3MGM5YTgxMmIyY2YyYTdkOTI4MDI1MTBjY2EwMDU4Y2MzN2U2NmE3YmVkZDcw MDUxZjBhMzQwMTUwMjJhMwogIDBjNjhmNTY1NTUyOGFlZDRmOTlkYWU3MWE1YjI1OWVkYzkzMjM5 ZmE4OTllMmRmNzljMDU1Mjc1YzIxNzQ5YTEiCiAKLWxpYjMyZGlzYWJsZWQ9eWVzCi1ub2Nyb3Nz PXllcwotbm9waWU9eWVzCi1ub2RlYnVnPXllcwotY3JlYXRlX3dya3NyYz15ZXMKLQotaG9zdG1h a2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZmxleCBwZXJsIHB5dGhvbjMiCi1tYWtlZGVwZW5kcz0i emxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCBsaWJtcGMtZGV2ZWwgaXNsMTUtZGV2ZWwi Ci1ub3N0cmlwX2ZpbGVzPSJsaWJjYWZfc2luZ2xlLmEgbGliZ2NjLmEgbGliZ2Nvdi5hIGxpYmdj Y19laC5hCi0gbGliZ25hcmxfcGljLmEgbGliZ25hcmwuYSBsaWJnbmF0X3BpYy5hIGxpYmduYXQu YSBsaWJnbWVtLmEiCi1kZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3Jldmlz aW9ufSIKLQotX2FwcGx5X3BhdGNoKCkgewotCWxvY2FsIGFyZ3M9IiQxIiBwbmFtZT0iJChiYXNl bmFtZSAkMikiCi0KLQlpZiBbICEgLWYgIi4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCi0JCXBhdGNo IC1OICRhcmdzIC1pICQyCi0JCXRvdWNoIC4ke3BuYW1lfV9kb25lCi0JZmkKLX0KLQotX2JpbnV0 aWxzX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uYmludXRpbHNf YnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJC dWlsZGluZyBjcm9zcyBiaW51dGlscyBib290c3RyYXBcbiIKLQotCVsgISAtZCBiaW51dGlscy1i dWlsZCBdICYmIG1rZGlyIGJpbnV0aWxzLWJ1aWxkCi0JY2QgYmludXRpbHMtYnVpbGQKLQotCV9h cmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9h cmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1u bHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS13 ZXJyb3IiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLXdpdGgtc3lz dGVtLXpsaWIiCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vYmludXRpbHMtJHtfYmlu dXRpbHNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNvbmZpZ3VyZS1ob3N0 ICYmIG1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8u YmludXRpbHNfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2Jvb3RzdHJhcCgpIHsKLQlsb2NhbCBfYXJn cwotCi0JWyAtZiAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZSBdICYmIHJldHVybiAwCi0K LQljZCAke3dya3NyY30vZ2NjLSR7X2djY192ZXJzaW9ufQotCWZvciBmIGluICR7WEJQU19TUkNQ S0dESVJ9L2djYy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgIiRmIgot CWRvbmUKLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvZmlsZXMvKi1tdXNsLnBhdGNo OyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAxICIkZiIKLQlkb25lCi0KLQltc2dfbm9ybWFsICJCdWls ZGluZyBjcm9zcyBnY2MgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgLi4vZ2NjLWJvb3RzdHJhcCBd ICYmIG1rZGlyIC4uL2djYy1ib290c3RyYXAKLQljZCAuLi9nY2MtYm9vdHN0cmFwCi0KLQlfYXJn cz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJn cys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLXdpdGgtbmV3bGli IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jIgotCV9hcmdzKz0iIC0td2l0aC1uZXds aWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxz IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUt dGhyZWFkcyIKLQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKLQlfYXJncys9IiAt LWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmdvbXAiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLWxpYmF0b21pYyIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQlD RkxBR1M9Ii1PMCAtZzAiIENYWEZMQUdTPSItTzAgLWcwIiBcCi0JCS4uL2djYy0ke19nY2NfdmVy c2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0 YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZQotfQotCi1fbGludXhf aGVhZGVycygpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZSBdICYmIHJldHVy biAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBMaW51eCBBUEkgaGVh ZGVyc1xuIgotCi0JY2QgbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQotCWZvciBmIGluICR7WEJQ U19TUkNQS0dESVJ9L2tlcm5lbC1saWJjLWhlYWRlcnMvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlf YXBwbHlfcGF0Y2ggLXAwICRmCi0JZG9uZQotCi0JbWFrZSBBUkNIPW1pcHMgaGVhZGVyc19jaGVj awotCW1ha2UgQVJDSD1taXBzIElOU1RBTExfSERSX1BBVEg9JHtfc3lzcm9vdH0vdXNyIGhlYWRl cnNfaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lCi19Ci0KLV9t dXNsX2J1aWxkKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5tdXNsX2J1aWxkX2RvbmUgXSAmJiByZXR1 cm4gMAotCi0JY2QgJHt3cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9ufQotCW1zZ19ub3JtYWwg IkJ1aWxkaW5nIGNyb3NzIG11c2wgbGliY1xuIgotCi0JIyBBcHBseSBtdXNsIHBhdGNoZXMgaWYg dGhlcmUgYXJlIGFueQotCWlmIFsgLWQgIiR7WEJQU19TUkNQS0dESVJ9L211c2wvcGF0Y2hlcyIg XTsgdGhlbgotCQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9tdXNsL3BhdGNoZXMvKi5wYXRj aDsgZG8KLQkJCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCQlkb25lCi0JZmkKLQotCUNDPSIke190 cmlwbGV0fS1nY2MiIENGTEFHUz0iLU9zIC1waXBlIC1mUElDICR7X2FyY2hmbGFnc30iIFwKLQkJ Li9jb25maWd1cmUgLS1wcmVmaXg9L3VzcgotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgREVT VERJUj0ke19zeXNyb290fSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLm11c2xfYnVpbGRf ZG9uZQotfQotCi1fZ2NjX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3Jj fS8uZ2NjX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25v cm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGZpbmFsXG4iCi0KLQlbICEgLWQgZ2NjLWJ1aWxkIF0g JiYgbWtkaXIgZ2NjLWJ1aWxkCi0JY2QgZ2NjLWJ1aWxkCi0KLQlfYXJncz0iLS1wcmVmaXg9L3Vz ciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lz cm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWxpYmV4ZWNkaXI9L3Vzci9saWIiCi0JX2Fy Z3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYWRhLGMrKyxvYmpjLG9iai1jKyssZm9ydHJhbixs dG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGliYWRhIgotCV9hcmdzKz0iIC0tZW5hYmxlLWx0byIK LQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXBpZSIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZh dWx0LXNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic2FuaXRpemVyIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdz Kz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJhdG9taWMi Ci0JX2FyZ3MrPSIgLS1lbmFibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZW5hYmxlLXNoYXJlZCIK LQlfYXJncys9IiAtLWRpc2FibGUtc3ltdmVycyIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0K LQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21h a2Vqb2JzfQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZQotfQotCi1kb19idWls ZCgpIHsKLQkjIEVuc3VyZSB3ZSB1c2Ugc2FuZSBlbnZpcm9ubWVudAotCXVuc2V0IENDIENYWCBD UFAgTEQgQVMgQVIgUkFOTElCIE9CSkRVTVAgUkVBREVMRiBOTQotCXVuc2V0IENGTEFHUyBDWFhG TEFHUyBDUFBGTEFHUyBMREZMQUdTCi0JZXhwb3J0IENGTEFHUz0iLU9zIC1waXBlIiBDWFhGTEFH Uz0iLU9zIC1waXBlIgotCi0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2Jpbjsg ZG8KLQkJaWYgWyAhIC1kICR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1w ICR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke19zeXNyb290fS8ke2Z9 IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gJHtfc3lzcm9vdH0vJHtm fQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7X3N5c3Jvb3R9L3Vzci9saWIzMgotCWxuIC1z ZiB1c3IvbGliICR7X3N5c3Jvb3R9L2xpYjMyCi0KLQlfYmludXRpbHNfYnVpbGQKLQlfZ2NjX2Jv b3RzdHJhcAotCV9saW51eF9oZWFkZXJzCi0JX211c2xfYnVpbGQKLQlfZ2NjX2J1aWxkCi19Ci0K LWRvX2luc3RhbGwoKSB7Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2Jpbjsg ZG8KLQkJaWYgWyAhIC1kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgot CQkJbWtkaXIgLXAgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBb ICEgLWggJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtE RVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBcCi0JCQkJJHtERVNURElSfS8ke19zeXNyb290 fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtERVNURElSfS8ke19zeXNyb290fS91 c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYjMyCi0K LQkjIGluc3RhbGwgbGludXggQVBJIGhlYWRlcnMKLQljZCAke3dya3NyY30vbGludXgtJHtfbGlu dXhfdmVyc2lvbn0KLQltYWtlIEFSQ0g9bWlwcyBJTlNUQUxMX0hEUl9QQVRIPSR7REVTVERJUn0v JHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCXJtIC1mICQoZmluZCAke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIC1uYW1lIC5pbnN0YWxsIC1vciAtbmFtZSAuLmluc3Rh bGwuY21kKQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlL2RybQot Ci0JIyBpbnN0YWxsIGNyb3NzIGJpbnV0aWxzCi0JY2QgJHt3cmtzcmN9L2JpbnV0aWxzLWJ1aWxk Ci0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBpbnN0YWxsIGNyb3NzIGdj YwotCWNkICR7d3Jrc3JjfS9nY2MtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0 YWxsCi0KLQkjIG1vdmUgbGliY2MxLnNvKiB0byB0aGUgc3lzcm9vdAotCW12ICR7REVTVERJUn0v dXNyL2xpYi9saWJjYzEuc28qICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JIyBp bnN0YWxsIG11c2wgbGliYyBmb3IgdGFyZ2V0Ci0JY2QgJHt3cmtzcmN9L211c2wtJHtfbXVzbF92 ZXJzaW9ufQotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9IGluc3RhbGwKLQot CSMgUmVtb3ZlIHVzZWxlc3MgaGVhZGVycy4KLQlybSAtcmYgJHtERVNURElSfS91c3IvbGliL2dj Yy8ke190cmlwbGV0fS8qL2luY2x1ZGUtZml4ZWQKLQotCSMgTWFrZSBsZC1tdXNsLnNvIHN5bWxp bmtzIHJlbGF0aXZlLgotCWxuIC1zZiBsaWJjLnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNy L2xpYi9sZC1tdXNsLW1pcHMuc28uMQotCi0JIyBzeW1saW5rcyBmb3IgZ25hcmwgYW5kIGduYXQg c2hhcmVkIGxpYnJhcmllcwotCV9tYWpvcnZlcj0ke19nY2NfdmVyc2lvbiUuKi4qfQotCV9hZGFs aWI9dXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxpYgotCW12IC12 ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmFybC0ke19tYWpvcnZlcn0uc28gJHtERVNURElS fS8ke19zeXNyb290fS91c3IvbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmdu YXQtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCWxuIC1z dmYgbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXJsLnNvCi0JbG4gLXN2ZiBsaWJnbmF0 LSR7X21ham9ydmVyfS5zbyBsaWJnbmF0LnNvCi0Jcm0gLXZmICR7REVTVERJUn0vJHtfYWRhbGli fS9saWJnbmF7cmwsdH0uc28KLQotCSMgUmVtb3ZlIHVubmVjZXNzYXJ5IHN0dWZmCi0Jcm0gLWYg JHtERVNURElSfS91c3IvbGliKi9saWJpYmVydHkuYQotCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9z aGFyZQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3tldGMsdmFyfQotCXJtIC1yZiAk e0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci97c2JpbixzaGFyZSxsaWJleGVjfQotCXJtIC1mICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vbGliZXhlYwotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9v dH0vbGliLyoucHkKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3tzYmluLGxpYn0KLX0K K2Nyb3NzX3RyaXBsZXQ9JHtfdHJpcGxldH0KK2Nyb3NzX2xpbnV4X2FyY2g9bWlwcworY3Jvc3Nf Z2NjX3NraXBfZ289eWVzCitjcm9zc19iaW51dGlsc19jb25maWd1cmVfYXJncz0iLS1lbmFibGUt ZGVmYXVsdC1oYXNoLXN0eWxlPXN5c3YiCitjcm9zc19tdXNsX2NmbGFncz0iLU9zIC1tYXJjaD1t aXBzMzJyMiAtbWhhcmQtZmxvYXQiCiAKIGNyb3NzLW1pcHMtbGludXgtbXVzbGhmLWxpYmNfcGFj a2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gbGliYyBmaWxlcyIKIAlub3N0cmlwPXllcwogCW5v dmVyaWZ5cmRlcHM9eWVzCiAJbm9zaGxpYnByb3ZpZGVzPXllcworCiAJcGtnX2luc3RhbGwoKSB7 Ci0JCXZtb3ZlICR7X3N5c3Jvb3R9CisJCXZtb3ZlIHVzci8ke2Nyb3NzX3RyaXBsZXR9CiAJfQog fQoKRnJvbSBjZjhiZGEyMTc2MGZjYWEyNDRlOWFkNmMwZTQzODVmODk0YTQ5MmZlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBT YXQsIDI2IERlYyAyMDIwIDAwOjExOjQ1ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxNS8yNl0gY3Jv c3MtbWlwc2VsLWxpbnV4LW11c2w6IHJld29yayB3aXRoIHZvaWQtY3Jvc3MKCi0tLQogc3JjcGtn cy9jcm9zcy1taXBzZWwtbGludXgtbXVzbC90ZW1wbGF0ZSB8IDI4NSArKy0tLS0tLS0tLS0tLS0t LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDI2OCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLW1pcHNlbC1saW51eC1tdXNsL3RlbXBsYXRl IGIvc3JjcGtncy9jcm9zcy1taXBzZWwtbGludXgtbXVzbC90ZW1wbGF0ZQppbmRleCAwYzhiNTE5 YjNmOS4uNTYxMTk3OGY1NDQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtbWlwc2VsLWxpbnV4 LW11c2wvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1taXBzZWwtbGludXgtbXVzbC90ZW1w bGF0ZQpAQCAtMSwyOTYgKzEsNDUgQEAKLSMgVGVtcGxhdGUgYnVpbGQgZmlsZSBmb3IgJ2Nyb3Nz LW1pcHNlbC1saW51eC1tdXNsJwotIworIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtbWlwc2Vs LWxpbnV4LW11c2wnCitfdHJpcGxldD1taXBzZWwtbGludXgtbXVzbAogX2JpbnV0aWxzX3ZlcnNp b249Mi4zMgogX2djY192ZXJzaW9uPTkuMy4wCiBfbXVzbF92ZXJzaW9uPTEuMS4yNAogX2xpbnV4 X3ZlcnNpb249NC4xOQotCi1fdHJpcGxldD1taXBzZWwtbGludXgtbXVzbAotX2ZwdWZsYWdzPSIt LXdpdGgtZmxvYXQ9c29mdCAtLXdpdGhvdXQtZnAiCi1fYXJjaGZsYWdzPSItbWFyY2g9bWlwczMy cjIgLW1zb2Z0LWZsb2F0IgotX3N5c3Jvb3Q9Ii91c3IvJHtfdHJpcGxldH0iCi0KIHBrZ25hbWU9 Y3Jvc3MtJHtfdHJpcGxldH0KIHZlcnNpb249MC4zMwogcmV2aXNpb249Mwotc2hvcnRfZGVzYz0i Q3Jvc3MgdG9vbGNoYWluIGZvciBNSVBTMzJyMiBMRSBzb2Z0ZmxvYXQgdGFyZ2V0IChtdXNsKSIK K2J1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKK2NvbmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJjaD1taXBz MzJyMiAtLXdpdGgtZmxvYXQ9c29mdAorIC0td2l0aC1saW5rZXItaGFzaC1zdHlsZT1zeXN2Igor aG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZmxleCBwZXJsIHB5dGhvbjMiCittYWtlZGVw ZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnIt ZGV2ZWwiCitkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIK K3Nob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke190cmlwbGV0fSIKIG1haW50 YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBob21lcGFnZT0iaHR0cHM6 Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4w LW9yLWxhdGVyLCBNSVQiCiBkaXN0ZmlsZXM9IgogICR7R05VX1NJVEV9L2JpbnV0aWxzL2JpbnV0 aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRhci54egogICR7R05VX1NJVEV9L2djYy9nY2MtJHtf Z2NjX3ZlcnNpb259L2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6Ci0gaHR0cDovL3d3dy5tdXNs LWxpYmMub3JnL3JlbGVhc2VzL211c2wtJHtfbXVzbF92ZXJzaW9ufS50YXIuZ3oKKyBodHRwczov L3d3dy5tdXNsLWxpYmMub3JnL3JlbGVhc2VzL211c2wtJHtfbXVzbF92ZXJzaW9ufS50YXIuZ3oK ICAke0tFUk5FTF9TSVRFfS9rZXJuZWwvdjQueC9saW51eC0ke19saW51eF92ZXJzaW9ufS50YXIu eHoiCiBjaGVja3N1bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3MmJhMTViOWI3MGE4YjlmNzU1NTdm ODk2NDQ2YzgyZThiMzZlNDczZWUwNAogIDcxZTE5Nzg2NzYxMWY2MDU0YWExMTE5YjEzYTBjMGFi YWMxMjgzNDc2NWZlMmQ4MWYzNWFjNTdmODRmNzQyZDEKICAxMzcwYzlhODEyYjJjZjJhN2Q5Mjgw MjUxMGNjYTAwNThjYzM3ZTY2YTdiZWRkNzAwNTFmMGEzNDAxNTAyMmEzCiAgMGM2OGY1NjU1NTI4 YWVkNGY5OWRhZTcxYTViMjU5ZWRjOTMyMzlmYTg5OWUyZGY3OWMwNTUyNzVjMjE3NDlhMSIKIAot bGliMzJkaXNhYmxlZD15ZXMKLW5vY3Jvc3M9eWVzCi1ub3BpZT15ZXMKLW5vZGVidWc9eWVzCi1j cmVhdGVfd3Jrc3JjPXllcwotCi1ob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBmbGV4IHBl cmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJ6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVs IGxpYm1wYy1kZXZlbCBpc2wxNS1kZXZlbCIKLW5vc3RyaXBfZmlsZXM9ImxpYmNhZl9zaW5nbGUu YSBsaWJnY2MuYSBsaWJnY292LmEgbGliZ2NjX2VoLmEKLSBsaWJnbmFybF9waWMuYSBsaWJnbmFy bC5hIGxpYmduYXRfcGljLmEgbGliZ25hdC5hIGxpYmdtZW0uYSIKLWRlcGVuZHM9IiR7cGtnbmFt ZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotCi1fYXBwbHlfcGF0Y2goKSB7Ci0JbG9j YWwgYXJncz0iJDEiIHBuYW1lPSIkKGJhc2VuYW1lICQyKSIKLQotCWlmIFsgISAtZiAiLiR7cG5h bWV9X2RvbmUiIF07IHRoZW4KLQkJcGF0Y2ggLU4gJGFyZ3MgLWkgJDIKLQkJdG91Y2ggLiR7cG5h bWV9X2RvbmUKLQlmaQotfQotCi1fYmludXRpbHNfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQot CVsgLWYgJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNk ICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGJpbnV0aWxzIGJvb3RzdHJh cFxuIgotCi0JWyAhIC1kIGJpbnV0aWxzLWJ1aWxkIF0gJiYgbWtkaXIgYmludXRpbHMtYnVpbGQK LQljZCBiaW51dGlscy1idWlsZAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIg LS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9v dH0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGls aWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hh cmVkIgotCV9hcmdzKz0iIC0td2l0aC1zeXN0ZW0temxpYiIKLQlfYXJncys9IiAke19mcHVmbGFn c30iCi0KLQkuLi9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJn c30KLQotCW1ha2UgY29uZmlndXJlLWhvc3QgJiYgbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5z dGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25lCi19Ci0KLV9nY2Nf Ym9vdHN0cmFwKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2Jvb3Rz dHJhcF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nY2MtJHtfZ2NjX3ZlcnNp b259Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL3BhdGNoZXMvKi5wYXRjaDsgZG8K LQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JZG9uZQotCWZvciBmIGluICR7WEJQU19TUkNQS0dE SVJ9L2djYy9maWxlcy8qLW11c2wucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDEgIiRmIgot CWRvbmUKLQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBib290c3RyYXBcbiIKLQot CVsgISAtZCAuLi9nY2MtYm9vdHN0cmFwIF0gJiYgbWtkaXIgLi4vZ2NjLWJvb3RzdHJhcAotCWNk IC4uL2djYy1ib290c3RyYXAKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0t dGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9 IgotCV9hcmdzKz0iIC0td2l0aC1uZXdsaWIiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2Vz PWMiCi0JX2FyZ3MrPSIgLS13aXRoLW5ld2xpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic3Nw IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRt YXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS10aHJlYWRzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1k ZWNpbWFsLWZsb2F0IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLWxpYm1weCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9 IiAtLWRpc2FibGUtbGliZ29tcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliYXRvbWljIgotCV9h cmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCUNGTEFHUz0iLU8wIC1nMCIgQ1hYRkxBR1M9Ii1PMCAt ZzAiIFwKLQkJLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1h a2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2Jv b3RzdHJhcF9kb25lCi19Ci0KLV9saW51eF9oZWFkZXJzKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5s aW51eF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3Jt YWwgIkJ1aWxkaW5nIExpbnV4IEFQSSBoZWFkZXJzXG4iCi0KLQljZCBsaW51eC0ke19saW51eF92 ZXJzaW9ufQotCi0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0va2VybmVsLWxpYmMtaGVhZGVy cy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgJGYKLQlkb25lCi0KLQlt YWtlIEFSQ0g9bWlwcyBoZWFkZXJzX2NoZWNrCi0JbWFrZSBBUkNIPW1pcHMgSU5TVEFMTF9IRFJf UEFUSD0ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30v LmxpbnV4X2J1aWxkX2RvbmUKLX0KLQotX211c2xfYnVpbGQoKSB7Ci0JWyAtZiAke3dya3NyY30v Lm11c2xfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vbXVzbC0ke19t dXNsX3ZlcnNpb259Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgbXVzbCBsaWJjXG4iCi0K LQkjIEFwcGx5IG11c2wgcGF0Y2hlcyBpZiB0aGVyZSBhcmUgYW55Ci0JaWYgWyAtZCAiJHtYQlBT X1NSQ1BLR0RJUn0vbXVzbC9wYXRjaGVzIiBdOyB0aGVuCi0JCWZvciBmIGluICR7WEJQU19TUkNQ S0dESVJ9L211c2wvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYi Ci0JCWRvbmUKLQlmaQotCi0JQ0M9IiR7X3RyaXBsZXR9LWdjYyIgQ0ZMQUdTPSItT3MgLXBpcGUg LWZQSUMgJHtfYXJjaGZsYWdzfSIgXAotCQkuL2NvbmZpZ3VyZSAtLXByZWZpeD0vdXNyCi0KLQlt YWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBERVNURElSPSR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCXRv dWNoICR7d3Jrc3JjfS8ubXVzbF9idWlsZF9kb25lCi19Ci0KLV9nY2NfYnVpbGQoKSB7Ci0JbG9j YWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZSBdICYmIHJldHVybiAw Ci0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgZmluYWxc biIKLQotCVsgISAtZCBnY2MtYnVpbGQgXSAmJiBta2RpciBnY2MtYnVpbGQKLQljZCBnY2MtYnVp bGQKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGliZXhlY2Rpcj0vdXNy L2xpYiIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgt c3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyxhZGEs YysrLG9iamMsb2JqLWMrKyxmb3J0cmFuLGx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJhZGEi Ci0JX2FyZ3MrPSIgLS1lbmFibGUtbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtcGll IgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtc3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1s aWJzYW5pdGl6ZXIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLWxpYmF0b21pYyIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJzc3AiCi0J X2FyZ3MrPSIgLS1lbmFibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zeW12ZXJzIgot CV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmln dXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0KLQl0b3VjaCAke3dya3NyY30vLmdj Y19idWlsZF9kb25lCi19Ci0KLWRvX2J1aWxkKCkgewotCSMgRW5zdXJlIHdlIHVzZSBzYW5lIGVu dmlyb25tZW50Ci0JdW5zZXQgQ0MgQ1hYIENQUCBMRCBBUyBBUiBSQU5MSUIgT0JKRFVNUCBSRUFE RUxGIE5NCi0JdW5zZXQgQ0ZMQUdTIENYWEZMQUdTIENQUEZMQUdTIExERkxBR1MKLQlleHBvcnQg Q0ZMQUdTPSItT3MgLXBpcGUiIENYWEZMQUdTPSItT3MgLXBpcGUiCi0KLQlmb3IgZiBpbiBpbmNs dWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtfc3lzcm9vdH0vdXNy LyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJ aWYgWyAhIC1oICR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke19zeXNyb290 fS91c3IvJHtmfSAke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtf c3lzcm9vdH0vdXNyL2xpYjMyCi0JbG4gLXNmIHVzci9saWIgJHtfc3lzcm9vdH0vbGliMzIKLQot CV9iaW51dGlsc19idWlsZAotCV9nY2NfYm9vdHN0cmFwCi0JX2xpbnV4X2hlYWRlcnMKLQlfbXVz bF9idWlsZAotCV9nY2NfYnVpbGQKLX0KLQotZG9faW5zdGFsbCgpIHsKLQlmb3IgZiBpbiBpbmNs dWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtERVNURElSfS8ke19z eXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke0RFU1RESVJ9LyR7X3N5c3Jv b3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7 Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IFwK LQkJCQkke0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxp YiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIzMgotCWxuIC1zZiB1c3IvbGliICR7REVT VERJUn0vJHtfc3lzcm9vdH0vbGliMzIKLQotCSMgaW5zdGFsbCBsaW51eCBBUEkgaGVhZGVycwot CWNkICR7d3Jrc3JjfS9saW51eC0ke19saW51eF92ZXJzaW9ufQotCW1ha2UgQVJDSD1taXBzIElO U1RBTExfSERSX1BBVEg9JHtERVNURElSfS8ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxs Ci0Jcm0gLWYgJChmaW5kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUgLW5hbWUg Lmluc3RhbGwgLW9yIC1uYW1lIC4uaW5zdGFsbC5jbWQpCi0Jcm0gLXJmICR7REVTVERJUn0vJHtf c3lzcm9vdH0vdXNyL2luY2x1ZGUvZHJtCi0KLQkjIGluc3RhbGwgY3Jvc3MgYmludXRpbHMKLQlj ZCAke3dya3NyY30vYmludXRpbHMtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0 YWxsCi0KLQkjIGluc3RhbGwgY3Jvc3MgZ2NjCi0JY2QgJHt3cmtzcmN9L2djYy1idWlsZAotCW1h a2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgbW92ZSBsaWJjYzEuc28qIHRvIHRo ZSBzeXNyb290Ci0JbXYgJHtERVNURElSfS91c3IvbGliL2xpYmNjMS5zbyogJHtERVNURElSfS8k e19zeXNyb290fS91c3IvbGliCi0KLQkjIGluc3RhbGwgbXVzbCBsaWJjIGZvciB0YXJnZXQKLQlj ZCAke3dya3NyY30vbXVzbC0ke19tdXNsX3ZlcnNpb259Ci0JbWFrZSBERVNURElSPSR7REVTVERJ Un0vJHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JIyBSZW1vdmUgdXNlbGVzcyBoZWFkZXJzLgotCXJt IC1yZiAke0RFU1RESVJ9L3Vzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyovaW5jbHVkZS1maXhlZAot Ci0JIyBNYWtlIGxkLW11c2wqLnNvLjEgc3ltbGlua3MgcmVsYXRpdmUuCi0JbG4gLXNmIGxpYmMu c28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xkLW11c2wtbWlwc2VsLnNvLjEKLQls biAtc2YgbGliYy5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIvbGQtbXVzbC1taXBz ZWwtc2Yuc28uMQotCi0JIyBzeW1saW5rcyBmb3IgZ25hcmwgYW5kIGduYXQgc2hhcmVkIGxpYnJh cmllcwotCV9tYWpvcnZlcj0ke19nY2NfdmVyc2lvbiUuKi4qfQotCV9hZGFsaWI9dXNyL2xpYi9n Y2MvJHtfdHJpcGxldH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxpYgotCW12IC12ICR7REVTVERJUn0v JHtfYWRhbGlifS9saWJnbmFybC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290 fS91c3IvbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXQtJHtfbWFqb3J2 ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCWxuIC1zdmYgbGliZ25hcmwt JHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXJsLnNvCi0JbG4gLXN2ZiBsaWJnbmF0LSR7X21ham9ydmVy fS5zbyBsaWJnbmF0LnNvCi0Jcm0gLXZmICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF7cmws dH0uc28KLQotCSMgUmVtb3ZlIHVubmVjZXNzYXJ5IHN0dWZmCi0Jcm0gLWYgJHtERVNURElSfS91 c3IvbGliKi9saWJpYmVydHkuYQotCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9zaGFyZQotCXJtIC1y ZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3tldGMsdmFyfQotCXJtIC1yZiAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L3Vzci97c2JpbixzaGFyZSxsaWJleGVjfQotCXJtIC1mICR7REVTVERJUn0vJHtf c3lzcm9vdH0vbGliZXhlYwotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliLyoucHkK LQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3tzYmluLGxpYn0KLX0KK2Nyb3NzX3RyaXBs ZXQ9JHtfdHJpcGxldH0KK2Nyb3NzX2xpbnV4X2FyY2g9bWlwcworY3Jvc3NfZ2NjX3NraXBfZ289 eWVzCitjcm9zc19iaW51dGlsc19jb25maWd1cmVfYXJncz0iLS13aXRob3V0LWZwIC0tZW5hYmxl LWRlZmF1bHQtaGFzaC1zdHlsZT1zeXN2IgorY3Jvc3NfbXVzbF9jZmxhZ3M9Ii1PcyAtbWFyY2g9 bWlwczMycjIgLW1zb2Z0LWZsb2F0IgogCiBjcm9zcy1taXBzZWwtbGludXgtbXVzbC1saWJjX3Bh Y2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGxpYmMgZmlsZXMiCiAJbm9zdHJpcD15ZXMKIAlu b3ZlcmlmeXJkZXBzPXllcwogCW5vc2hsaWJwcm92aWRlcz15ZXMKKwogCXBrZ19pbnN0YWxsKCkg ewotCQl2bW92ZSAke19zeXNyb290fQorCQl2bW92ZSB1c3IvJHtjcm9zc190cmlwbGV0fQogCX0K IH0KCkZyb20gNzhjY2FiNmE2YmQ1MTIzZDY5OTY3MzFjOWYxYmJlZjU4ZDBhOThiYSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTog U2F0LCAyNiBEZWMgMjAyMCAwMDoxMjowNyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTYvMjZdIGNy b3NzLW1pcHNlbC1saW51eC1tdXNsaGY6IHJld29yayB3aXRoIHZvaWQtY3Jvc3MKCi0tLQogc3Jj cGtncy9jcm9zcy1taXBzZWwtbGludXgtbXVzbGhmL3RlbXBsYXRlIHwgMjg0ICsrLS0tLS0tLS0t LS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDI2NyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLW1pcHNlbC1saW51eC1tdXNsaGYvdGVt cGxhdGUgYi9zcmNwa2dzL2Nyb3NzLW1pcHNlbC1saW51eC1tdXNsaGYvdGVtcGxhdGUKaW5kZXgg YmY3NWI5ZWM4ZDUuLmI5NjBmZjNlMjk3IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLW1pcHNl bC1saW51eC1tdXNsaGYvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1taXBzZWwtbGludXgt bXVzbGhmL3RlbXBsYXRlCkBAIC0xLDI5NSArMSw0NSBAQAotIyBUZW1wbGF0ZSBidWlsZCBmaWxl IGZvciAnY3Jvc3MtbWlwc2VsLWxpbnV4LW11c2xoZicKLSMKKyMgVGVtcGxhdGUgZmlsZSBmb3Ig J2Nyb3NzLW1pcHNlbC1saW51eC1tdXNsaGYnCitfdHJpcGxldD1taXBzZWwtbGludXgtbXVzbGhm CiBfYmludXRpbHNfdmVyc2lvbj0yLjMyCiBfZ2NjX3ZlcnNpb249OS4zLjAKIF9tdXNsX3ZlcnNp b249MS4xLjI0CiBfbGludXhfdmVyc2lvbj00LjE5Ci0KLV90cmlwbGV0PW1pcHNlbC1saW51eC1t dXNsaGYKLV9mcHVmbGFncz0iLS13aXRoLWZsb2F0PWhhcmQgLS13aXRoLWZwIgotX2FyY2hmbGFn cz0iLW1hcmNoPW1pcHMzMnIyIC1taGFyZC1mbG9hdCIKLV9zeXNyb290PSIvdXNyLyR7X3RyaXBs ZXR9IgotCiBwa2duYW1lPWNyb3NzLSR7X3RyaXBsZXR9CiB2ZXJzaW9uPTAuMzMKIHJldmlzaW9u PTMKLXNob3J0X2Rlc2M9IkNyb3NzIHRvb2xjaGFpbiBmb3IgTUlQUzMycjIgTEUgaGFyZGZsb2F0 IHRhcmdldCAobXVzbCkiCitidWlsZF9zdHlsZT12b2lkLWNyb3NzCitjb25maWd1cmVfYXJncz0i LS13aXRoLWFyY2g9bWlwczMycjIgLS13aXRoLWZsb2F0PWhhcmQKKyAtLXdpdGgtbGlua2VyLWhh c2gtc3R5bGU9c3lzdiIKK2hvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGZsZXggcGVybCBw eXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVs IGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lv bn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBmb3IgJHtf dHJpcGxldH0iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+Igog aG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1v ci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTUlUIgogZGlzdGZpbGVzPSIKICAke0dOVV9TSVRF fS9iaW51dGlscy9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS50YXIueHoKICAke0dOVV9T SVRFfS9nY2MvZ2NjLSR7X2djY192ZXJzaW9ufS9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egot IGh0dHA6Ly93d3cubXVzbC1saWJjLm9yZy9yZWxlYXNlcy9tdXNsLSR7X211c2xfdmVyc2lvbn0u dGFyLmd6CisgaHR0cHM6Ly93d3cubXVzbC1saWJjLm9yZy9yZWxlYXNlcy9tdXNsLSR7X211c2xf dmVyc2lvbn0udGFyLmd6CiAgJHtLRVJORUxfU0lURX0va2VybmVsL3Y0LngvbGludXgtJHtfbGlu dXhfdmVyc2lvbn0udGFyLnh6IgogY2hlY2tzdW09IjBhYjZjNTVkZDg2YTkyZWQ1NjE5NzJiYTE1 YjliNzBhOGI5Zjc1NTU3Zjg5NjQ0NmM4MmU4YjM2ZTQ3M2VlMDQKICA3MWUxOTc4Njc2MTFmNjA1 NGFhMTExOWIxM2EwYzBhYmFjMTI4MzQ3NjVmZTJkODFmMzVhYzU3Zjg0Zjc0MmQxCiAgMTM3MGM5 YTgxMmIyY2YyYTdkOTI4MDI1MTBjY2EwMDU4Y2MzN2U2NmE3YmVkZDcwMDUxZjBhMzQwMTUwMjJh MwogIDBjNjhmNTY1NTUyOGFlZDRmOTlkYWU3MWE1YjI1OWVkYzkzMjM5ZmE4OTllMmRmNzljMDU1 Mjc1YzIxNzQ5YTEiCiAKLWxpYjMyZGlzYWJsZWQ9eWVzCi1ub2Nyb3NzPXllcwotbm9waWU9eWVz Ci1ub2RlYnVnPXllcwotY3JlYXRlX3dya3NyYz15ZXMKLQotaG9zdG1ha2VkZXBlbmRzPSJ0YXIg Z2NjLW9iamMgZmxleCBwZXJsIHB5dGhvbjMiCi1tYWtlZGVwZW5kcz0iemxpYi1kZXZlbCBnbXAt ZGV2ZWwgbXBmci1kZXZlbCBsaWJtcGMtZGV2ZWwgaXNsMTUtZGV2ZWwiCi1ub3N0cmlwX2ZpbGVz PSJsaWJjYWZfc2luZ2xlLmEgbGliZ2NjLmEgbGliZ2Nvdi5hIGxpYmdjY19laC5hCi0gbGliZ25h cmxfcGljLmEgbGliZ25hcmwuYSBsaWJnbmF0X3BpYy5hIGxpYmduYXQuYSBsaWJnbWVtLmEiCi1k ZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLQotX2FwcGx5 X3BhdGNoKCkgewotCWxvY2FsIGFyZ3M9IiQxIiBwbmFtZT0iJChiYXNlbmFtZSAkMikiCi0KLQlp ZiBbICEgLWYgIi4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCi0JCXBhdGNoIC1OICRhcmdzIC1pICQy Ci0JCXRvdWNoIC4ke3BuYW1lfV9kb25lCi0JZmkKLX0KLQotX2JpbnV0aWxzX2J1aWxkKCkgewot CWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZSBdICYm IHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBi aW51dGlscyBib290c3RyYXBcbiIKLQotCVsgISAtZCBiaW51dGlscy1idWlsZCBdICYmIG1rZGly IGJpbnV0aWxzLWJ1aWxkCi0JY2QgYmludXRpbHMtYnVpbGQKLQotCV9hcmdzPSItLXByZWZpeD0v dXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1z eXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJyb3IiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLXdpdGgtc3lzdGVtLXpsaWIiCi0JX2Fy Z3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0v Y29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNvbmZpZ3VyZS1ob3N0ICYmIG1ha2UgJHttYWtl am9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRf ZG9uZQotfQotCi1fZ2NjX2Jvb3RzdHJhcCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dy a3NyY30vLmdjY19ib290c3RyYXBfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30v Z2NjLSR7X2djY192ZXJzaW9ufQotCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9wYXRj aGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCWRvbmUKLQlmb3IgZiBp biAke1hCUFNfU1JDUEtHRElSfS9nY2MvZmlsZXMvKi1tdXNsLnBhdGNoOyBkbwotCQlfYXBwbHlf cGF0Y2ggLXAxICIkZiIKLQlkb25lCi0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2Mg Ym9vdHN0cmFwXG4iCi0KLQlbICEgLWQgLi4vZ2NjLWJvb3RzdHJhcCBdICYmIG1rZGlyIC4uL2dj Yy1ib290c3RyYXAKLQljZCAuLi9nY2MtYm9vdHN0cmFwCi0KLQlfYXJncz0iLS1wcmVmaXg9L3Vz ciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lz cm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLXdpdGgtbmV3bGliIgotCV9hcmdzKz0iIC0t ZW5hYmxlLWxhbmd1YWdlcz1jIgotCV9hcmdzKz0iIC0td2l0aC1uZXdsaWIiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtdGhyZWFkcyIKLQlfYXJn cys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVk IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11 ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmdvbXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LWxpYmF0b21pYyIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQlDRkxBR1M9Ii1PMCAtZzAi IENYWEZMQUdTPSItTzAgLWcwIiBcCi0JCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJl ICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAk e3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZQotfQotCi1fbGludXhfaGVhZGVycygpIHsKLQlb IC1mICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dy a3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBMaW51eCBBUEkgaGVhZGVyc1xuIgotCi0JY2Qg bGludXgtJHtfbGludXhfdmVyc2lvbn0KLQotCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2tl cm5lbC1saWJjLWhlYWRlcnMvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAw ICRmCi0JZG9uZQotCi0JbWFrZSBBUkNIPW1pcHMgaGVhZGVyc19jaGVjawotCW1ha2UgQVJDSD1t aXBzIElOU1RBTExfSERSX1BBVEg9JHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCi0J dG91Y2ggJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lCi19Ci0KLV9tdXNsX2J1aWxkKCkgewot CVsgLWYgJHt3cmtzcmN9Ly5tdXNsX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3 cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9ufQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3Nz IG11c2wgbGliY1xuIgotCi0JIyBBcHBseSBtdXNsIHBhdGNoZXMgaWYgdGhlcmUgYXJlIGFueQot CWlmIFsgLWQgIiR7WEJQU19TUkNQS0dESVJ9L211c2wvcGF0Y2hlcyIgXTsgdGhlbgotCQlmb3Ig ZiBpbiAke1hCUFNfU1JDUEtHRElSfS9tdXNsL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJCV9hcHBs eV9wYXRjaCAtcDAgIiRmIgotCQlkb25lCi0JZmkKLQotCUNDPSIke190cmlwbGV0fS1nY2MiIENG TEFHUz0iLU9zIC1waXBlIC1mUElDICR7X2FyY2hmbGFnc30iIFwKLQkJLi9jb25maWd1cmUgLS1w cmVmaXg9L3VzcgotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgREVTVERJUj0ke19zeXNyb290 fSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLm11c2xfYnVpbGRfZG9uZQotfQotCi1fZ2Nj X2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2Rv bmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcg Y3Jvc3MgZ2NjIGZpbmFsXG4iCi0KLQlbICEgLWQgZ2NjLWJ1aWxkIF0gJiYgbWtkaXIgZ2NjLWJ1 aWxkCi0JY2QgZ2NjLWJ1aWxkCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAt LWxpYmV4ZWNkaXI9L3Vzci9saWIiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0J X2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1lbmFibGUt bGFuZ3VhZ2VzPWMsYWRhLGMrKyxvYmpjLG9iai1jKyssZm9ydHJhbixsdG8iCi0JX2FyZ3MrPSIg LS1lbmFibGUtbGliYWRhIgotCV9hcmdzKz0iIC0tZW5hYmxlLWx0byIKLQlfYXJncys9IiAtLWVu YWJsZS1kZWZhdWx0LXBpZSIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXNzcCIKLQlfYXJn cys9IiAtLWRpc2FibGUtbGlic2FuaXRpemVyIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxp YiIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFk bWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1s aWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJhdG9taWMiCi0JX2FyZ3MrPSIgLS1l bmFibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZW5hYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRp c2FibGUtc3ltdmVycyIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQkuLi9nY2MtJHtfZ2Nj X3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCi0JdG91 Y2ggJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZQotfQotCi1kb19idWlsZCgpIHsKLQkjIEVuc3Vy ZSB3ZSB1c2Ugc2FuZSBlbnZpcm9ubWVudAotCXVuc2V0IENDIENYWCBDUFAgTEQgQVMgQVIgUkFO TElCIE9CSkRVTVAgUkVBREVMRiBOTQotCXVuc2V0IENGTEFHUyBDWFhGTEFHUyBDUFBGTEFHUyBM REZMQUdTCi0JZXhwb3J0IENGTEFHUz0iLU9zIC1waXBlIiBDWFhGTEFHUz0iLU9zIC1waXBlIgot Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1k ICR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7X3N5c3Jvb3R9L3Vz ci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxu IC1zZnIgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUK LQlsbiAtc2YgbGliICR7X3N5c3Jvb3R9L3Vzci9saWIzMgotCWxuIC1zZiB1c3IvbGliICR7X3N5 c3Jvb3R9L2xpYjMyCi0KLQlfYmludXRpbHNfYnVpbGQKLQlfZ2NjX2Jvb3RzdHJhcAotCV9saW51 eF9oZWFkZXJzCi0JX211c2xfYnVpbGQKLQlfZ2NjX2J1aWxkCi19Ci0KLWRvX2luc3RhbGwoKSB7 Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1k ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtE RVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtERVNURElS fS8ke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtERVNURElSfS8ke19zeXNy b290fS91c3IvJHtmfSBcCi0JCQkJJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0J ZG9uZQotCWxuIC1zZiBsaWIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAt c2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYjMyCi0KLQkjIGluc3RhbGwgbGlu dXggQVBJIGhlYWRlcnMKLQljZCAke3dya3NyY30vbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQlt YWtlIEFSQ0g9bWlwcyBJTlNUQUxMX0hEUl9QQVRIPSR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNy IGhlYWRlcnNfaW5zdGFsbAotCXJtIC1mICQoZmluZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vz ci9pbmNsdWRlIC1uYW1lIC5pbnN0YWxsIC1vciAtbmFtZSAuLmluc3RhbGwuY21kKQotCXJtIC1y ZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlL2RybQotCi0JIyBpbnN0YWxsIGNy b3NzIGJpbnV0aWxzCi0JY2QgJHt3cmtzcmN9L2JpbnV0aWxzLWJ1aWxkCi0JbWFrZSBERVNURElS PSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBpbnN0YWxsIGNyb3NzIGdjYwotCWNkICR7d3Jrc3Jj fS9nY2MtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIG1vdmUg bGliY2MxLnNvKiB0byB0aGUgc3lzcm9vdAotCW12ICR7REVTVERJUn0vdXNyL2xpYi9saWJjYzEu c28qICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JIyBpbnN0YWxsIG11c2wgbGli YyBmb3IgdGFyZ2V0Ci0JY2QgJHt3cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9ufQotCW1ha2Ug REVTVERJUj0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCSMgUmVtb3ZlIHVzZWxl c3MgaGVhZGVycy4KLQlybSAtcmYgJHtERVNURElSfS91c3IvbGliL2djYy8ke190cmlwbGV0fS8q L2luY2x1ZGUtZml4ZWQKLQotCSMgTWFrZSBsZC1tdXNsLnNvIHN5bWxpbmtzIHJlbGF0aXZlLgot CWxuIC1zZiBsaWJjLnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYi9sZC1tdXNsLW1p cHNlbC5zby4xCi0KLQkjIHN5bWxpbmtzIGZvciBnbmFybCBhbmQgZ25hdCBzaGFyZWQgbGlicmFy aWVzCi0JX21ham9ydmVyPSR7X2djY192ZXJzaW9uJS4qLip9Ci0JX2FkYWxpYj11c3IvbGliL2dj Yy8ke190cmlwbGV0fS8ke19nY2NfdmVyc2lvbn0vYWRhbGliCi0JbXYgLXYgJHtERVNURElSfS8k e19hZGFsaWJ9L2xpYmduYXJsLSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9 L3Vzci9saWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hdC0ke19tYWpvcnZl cn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0JbG4gLXN2ZiBsaWJnbmFybC0k e19tYWpvcnZlcn0uc28gbGliZ25hcmwuc28KLQlsbiAtc3ZmIGxpYmduYXQtJHtfbWFqb3J2ZXJ9 LnNvIGxpYmduYXQuc28KLQlybSAtdmYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXtybCx0 fS5zbwotCi0JIyBSZW1vdmUgdW5uZWNlc3Nhcnkgc3R1ZmYKLQlybSAtZiAke0RFU1RESVJ9L3Vz ci9saWIqL2xpYmliZXJ0eS5hCi0Jcm0gLXJmICR7REVTVERJUn0vdXNyL3NoYXJlCi0Jcm0gLXJm ICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve2V0Yyx2YXJ9Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtf c3lzcm9vdH0vdXNyL3tzYmluLHNoYXJlLGxpYmV4ZWN9Ci0Jcm0gLWYgJHtERVNURElSfS8ke19z eXNyb290fS9saWJleGVjCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWIvKi5weQot CXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve3NiaW4sbGlifQotfQorY3Jvc3NfdHJpcGxl dD0ke190cmlwbGV0fQorY3Jvc3NfbGludXhfYXJjaD1taXBzCitjcm9zc19nY2Nfc2tpcF9nbz15 ZXMKK2Nyb3NzX2JpbnV0aWxzX2NvbmZpZ3VyZV9hcmdzPSItLWVuYWJsZS1kZWZhdWx0LWhhc2gt c3R5bGU9c3lzdiIKK2Nyb3NzX211c2xfY2ZsYWdzPSItT3MgLW1hcmNoPW1pcHMzMnIyIC1taGFy ZC1mbG9hdCIKIAogY3Jvc3MtbWlwc2VsLWxpbnV4LW11c2xoZi1saWJjX3BhY2thZ2UoKSB7CiAJ c2hvcnRfZGVzYys9IiAtIGxpYmMgZmlsZXMiCiAJbm9zdHJpcD15ZXMKIAlub3ZlcmlmeXJkZXBz PXllcwogCW5vc2hsaWJwcm92aWRlcz15ZXMKKwogCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAk e19zeXNyb290fQorCQl2bW92ZSB1c3IvJHtjcm9zc190cmlwbGV0fQogCX0KIH0KCkZyb20gOTNl NDhjZDIzM2U5ZTJiNjI1YzA1ODkzMzk2MWRmNGQ2NGZiYjg4NyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU2F0LCAyNiBEZWMg MjAyMCAxODozNzozOSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTcvMjZdIGNyb3NzLXBvd2VycGMt bGludXgtZ251OiByZXdvcmsgd2l0aCB2b2lkLWNyb3NzCgotLS0KIHNyY3BrZ3MvY3Jvc3MtcG93 ZXJwYy1saW51eC1nbnUvdGVtcGxhdGUgfCAzNTcgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCAzNDQgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9jcm9zcy1wb3dlcnBjLWxpbnV4LWdudS90ZW1wbGF0ZSBiL3NyY3BrZ3Mv Y3Jvc3MtcG93ZXJwYy1saW51eC1nbnUvdGVtcGxhdGUKaW5kZXggMzNmNTdhMDM0NGYuLjZkN2Q3 YjdkYzIxIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLXBvd2VycGMtbGludXgtZ251L3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwYy1saW51eC1nbnUvdGVtcGxhdGUKQEAgLTEs MTkgKzEsMjEgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLXBvd2VycGMtbGludXgtZ251 JworX3RyaXBsZXQ9cG93ZXJwYy1saW51eC1nbnUKIF9iaW51dGlsc192ZXJzaW9uPTIuMzIKIF9n Y2NfdmVyc2lvbj05LjMuMAogX2dsaWJjX3ZlcnNpb249Mi4zMAogX2xpbnV4X3ZlcnNpb249NC4x OQotCi1fdHJpcGxldD1wb3dlcnBjLWxpbnV4LWdudQotX3N5c3Jvb3Q9Ii91c3IvJHtfdHJpcGxl dH0iCi0KIHBrZ25hbWU9Y3Jvc3MtJHtfdHJpcGxldH0KIHZlcnNpb249MC4zMwogcmV2aXNpb249 Mwotc2hvcnRfZGVzYz0iR05VIENyb3NzIHRvb2xjaGFpbiBmb3IgdGhlICR7X3RyaXBsZXR9IHRh cmdldCAoYmludXRpbHMvZ2NjL2dsaWJjKSIKK2J1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKK2NvbmZp Z3VyZV9hcmdzPSItLWVuYWJsZS1zZWN1cmVwbHQgLS1kaXNhYmxlLXZ0YWJsZS12ZXJpZnkiCito b3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCitt YWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVs IG1wZnItZGV2ZWwiCitkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3Jldmlz aW9ufSIKK3Nob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke190cmlwbGV0fSIK IG1haW50YWluZXI9IlRob21hcyBCYXR0ZW4gPHN0ZW5zdG9ycG1jQGdtYWlsLmNvbT4iCi1ob21l cGFnZT0iaHR0cDovL3d3dy52b2lkbGludXgub3JnIgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRl ciwgR1BMLTMuMC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIiCitob21lcGFnZT0iaHR0cHM6 Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBkaXN0ZmlsZXM9IgogICR7R05VX1NJVEV9L2JpbnV0aWxz L2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRhci54egogICR7R05VX1NJVEV9L2djYy9n Y2MtJHtfZ2NjX3ZlcnNpb259L2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CkBAIC0yNCwzNDgg KzI2LDE1IEBAIGNoZWNrc3VtPSIwYWI2YzU1ZGQ4NmE5MmVkNTYxOTcyYmExNWI5YjcwYThiOWY3 NTU1N2Y4OTY0NDZjODJlOGIzNmU0NzNlZTA0CiAgZTJjNDExNGU1NjlhZmJlN2VkYmMyOTEzMWE0 M2JlODMzODUwYWI5YTQ1OWQ4MWJlYjI1ODgwMTZkMmJiYjhhZgogIDBjNjhmNTY1NTUyOGFlZDRm OTlkYWU3MWE1YjI1OWVkYzkzMjM5ZmE4OTllMmRmNzljMDU1Mjc1YzIxNzQ5YTEiCiAKLWxpYjMy ZGlzYWJsZWQ9eWVzCi1ub2Nyb3NzPXllcwotbm9waWU9eWVzCi1jcmVhdGVfd3Jrc3JjPXllcwot aG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRob24zIgot bWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVsIgotZGVwZW5k cz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi1ub3N0cmlwX2ZpbGVz PSJsaWJjYWZfc2luZ2xlLmEgbGliZ2NjLmEgbGliZ2Nvdi5hIGxpYmdjY19laC5hCi0gbGliZ25h cmxfcGljLmEgbGliZ25hcmwuYSBsaWJnbmF0X3BpYy5hIGxpYmduYXQuYSBsaWJnbWVtLmEiCi0K LWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiAhPSAiZ2xpYmMiIF07IHRoZW4KLQlicm9rZW49Imds aWJjIGNyb3NzdG9vbGNoYWluIG9ubHkgYXZhaWxhYmxlIG9uIGdsaWJjIgotZmkKK2Nyb3NzX3Ry aXBsZXQ9JHtfdHJpcGxldH0KK2Nyb3NzX2xpbnV4X2FyY2g9cG93ZXJwYworY3Jvc3NfYmludXRp bHNfY29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLXNlY3VyZXBsdCIKK2Nyb3NzX2dsaWJjX2NmbGFn cz0iLU8yIgogCiBpZiBbICIkWEJQU19UQVJHRVRfTUFDSElORSIgPSAicHBjIiBdOyB0aGVuCiAJ YnJva2VuPSJDYW4ndCBidWlsZCBjcm9zc3Rvb2xjaGFpbiB0byBpdHNlbGYiCiBmaQogCi1fYXBw bHlfcGF0Y2goKSB7Ci0JbG9jYWwgYXJncz0iJDEiIHBuYW1lPSIkKGJhc2VuYW1lICQyKSIKLQot CWlmIFsgISAtZiAiLiR7cG5hbWV9X2RvbmUiIF07IHRoZW4KLQkJcGF0Y2ggLU4gJGFyZ3MgLWkg JDIKLQkJdG91Y2ggLiR7cG5hbWV9X2RvbmUKLQlmaQotfQotCi1fbGludXhfaGVhZGVycygpIHsK LQlbIC1mICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAk e3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBMaW51eCBBUEkgaGVhZGVycyBmb3IgUG93 ZXJQQ1xuIgotCi0JY2QgbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQotCW1ha2UgQVJDSD1wb3dl cnBjIGhlYWRlcnNfY2hlY2sKLQltYWtlIEFSQ0g9cG93ZXJwYyBJTlNUQUxMX0hEUl9QQVRIPSR7 X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGludXhf YnVpbGRfZG9uZQotfQotCi1fYmludXRpbHNfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsg LWYgJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7 d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGJpbnV0aWxzXG4iCi0JWyAhIC1k IGJpbnV0aWxzLWJ1aWxkIF0gJiYgbWtkaXIgYmludXRpbHMtYnVpbGQKLQljZCBiaW51dGlscy1i dWlsZAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJp cGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9yIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1nb2xkIgotCV9hcmdzKz0iIC0td2l0aC1zeXN0ZW0temxpYiIKLQlfYXJncys9 IiAtLWVuYWJsZS1zZWN1cmVwbHQiCi0JLi4vYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0v Y29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNvbmZpZ3VyZS1ob3N0ICYmIG1ha2UgJHttYWtl am9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRf ZG9uZQotfQotCi1fZ2NjX2Jvb3RzdHJhcCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dy a3NyY30vLmdjY19ib290c3RyYXBfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30v Z2NjLSR7X2djY192ZXJzaW9ufQotCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9wYXRj aGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCWRvbmUKLQotCW1zZ19u b3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBib290c3RyYXBcbiIKLQotCVsgISAtZCAuLi9nY2Mt Ym9vdHN0cmFwIF0gJiYgbWtkaXIgLi4vZ2NjLWJvb3RzdHJhcAotCWNkIC4uL2djYy1ib290c3Ry YXAKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBs ZXR9IgotCV9hcmdzKz0iIC0td2l0aG91dC1oZWFkZXJzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1u bHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGli cXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWRlY2ltYWwtZmxvYXQiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYmdvbXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJncys9 IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic3NwIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJpdG0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmF0b21pYyIK LQlfYXJncys9IiAtLWRpc2FibGUtdGhyZWFkcyIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFn ZXM9YyIKLQlfYXJncys9IiAtLWRpc2FibGUtc2psai1leGNlcHRpb25zIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLXdpdGgtZ251LWxkIgotCV9hcmdzKz0iIC0t d2l0aC1nbnUtYXMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2VjdXJlcGx0IgotCi0JLi4vZ2NjLSR7 X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQlt YWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lCi19Ci0K LV9nbGliY19oZWFkZXJzKCkgewotCWxvY2FsIF9hcmdzIGYKLQotCVsgLWYgJHt3cmtzcmN9Ly5n bGliY19oZWFkZXJzX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2dsaWJjLSR7 X2dsaWJjX3ZlcnNpb259Ci0JaWYgWyAtZCAiJHtYQlBTX1NSQ1BLR0RJUn0vZ2xpYmMvcGF0Y2hl cyIgXTsgdGhlbgotCQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nbGliYy9wYXRjaGVzLyou cGF0Y2g7IGRvCi0JCQlfYXBwbHlfcGF0Y2ggLXAxICIkZiIKLQkJZG9uZQotCWZpCi0KLQljZCAk e3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnbGliYyBoZWFkZXJzXG4iCi0K LQlbICEgLWQgZ2xpYmMtaGVhZGVycyBdICYmIG1rZGlyIGdsaWJjLWhlYWRlcnMKLQljZCBnbGli Yy1oZWFkZXJzCi0KLQllY2hvICJsaWJjX2N2X2ZvcmNlZF91bndpbmQ9eWVzIiA+IGNvbmZpZy5j YWNoZQotCWVjaG8gImxpYmNfY3ZfY19jbGVhbnVwPXllcyIgPj4gY29uZmlnLmNhY2hlCi0KLQll eHBvcnQgQ0M9IiR7X3RyaXBsZXR9LWdjYyIgTEQ9IiR7X3RyaXBsZXR9LWxkIiBcCi0JCUFTPSIk e190cmlwbGV0fS1hcyIgQ1BQPSIke190cmlwbGV0fS1jcHAiIFwKLQkJTk09IiR7X3RyaXBsZXR9 LW5tIgotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1ob3N0PSR7X3RyaXBs ZXR9IgotCV9hcmdzKz0iIC0td2l0aC1oZWFkZXJzPSR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIgot CV9hcmdzKz0iIC0tY29uZmlnLWNhY2hlIgotCV9hcmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLXJw YyIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1uc2wiCi0JX2FyZ3MrPSIgLS1lbmFibGUt a2VybmVsPTIuNi4yNyIKLQotCS4uL2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259L2NvbmZpZ3VyZSAk e19hcmdzfQotCi0JbWFrZSAtayBpbnN0YWxsLWhlYWRlcnMgY3Jvc3NfY29tcGlsaW5nPXllcyBc Ci0JCWluc3RhbGxfcm9vdD0ke19zeXNyb290fQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nbGliY19o ZWFkZXJzX2RvbmUKLX0KLQotX2dsaWJjX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1m ICR7d3Jrc3JjfS8uZ2xpYmNfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3Ny Y30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnbGliY1xuIgotCi0JWyAhIC1kIGdsaWJj LWJ1aWxkIF0gJiYgbWtkaXIgZ2xpYmMtYnVpbGQKLQljZCBnbGliYy1idWlsZAotCi0JZWNobyAi c2xpYmRpcj0vdXNyL2xpYjMyIiA+IGNvbmZpZ3Bhcm1zCi0KLQllY2hvICJsaWJjX2N2X2ZvcmNl ZF91bndpbmQ9eWVzIiA+IGNvbmZpZy5jYWNoZQotCWVjaG8gImxpYmNfY3ZfY19jbGVhbnVwPXll cyIgPj4gY29uZmlnLmNhY2hlCi0KLQlleHBvcnQgQ0M9IiR7X3RyaXBsZXR9LWdjYyIgQ1hYPSIk e190cmlwbGV0fS1nKysiIExEPSIke190cmlwbGV0fS1sZCIgXAotCQlBUz0iJHtfdHJpcGxldH0t YXMiIENQUD0iJHtfdHJpcGxldH0tY3BwIiBcCi0JCU5NPSIke190cmlwbGV0fS1ubSIKLQlleHBv cnQgQ0ZMQUdTPSItTzEgLXBpcGUiCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9 IiAtLWxpYmRpcj0vdXNyL2xpYjMyIgotCV9hcmdzKz0iIC0taG9zdD0ke190cmlwbGV0fSIKLQlf YXJncys9IiAtLXdpdGgtaGVhZGVycz0ke19zeXNyb290fS91c3IvaW5jbHVkZSIKLQlfYXJncys9 IiAtLWNvbmZpZy1jYWNoZSIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1ycGMiCi0JX2Fy Z3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtbnNsIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1wcm9maWxl IgotCV9hcmdzKz0iIC0tZW5hYmxlLWtlcm5lbD0yLjYuMjciCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LXdlcnJvciIKLQotCS4uL2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdz fQotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbF9yb290PSR7X3N5c3Jvb3R9IGlu c3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2xpYmNfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2J1 aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUg XSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jv c3MgZ2NjIGZpbmFsXG4iCi0KLQlbICEgLWQgZ2NjLWJ1aWxkIF0gJiYgbWtkaXIgZ2NjLWJ1aWxk Ci0JY2QgZ2NjLWJ1aWxkCi0KLQlleHBvcnQgQ0M9ImdjYyIgQ1hYPSJnKysiIENGTEFHUz0iLU9z IC1waXBlIgotCXVuc2V0IExEIEFTCi0KLQkjIE1ha2UgdGhpcyBsaW5rIHRvIHRhcmdldCBsaWJz LgotCWlmIFsgISAtZiAuc2VkX3N1YnN0X2RvbmUgXTsgdGhlbgotCQlzZWQgLWUgInMsIC9saWIv LCAke19zeXNyb290fS9saWIvLGc7cywgL3Vzci9saWIvLCAke19zeXNyb290fS91c3IvbGliLyxn IiBcCi0JCQktaSAke19zeXNyb290fS9saWIvbGliYy5zbwotCQlzZWQgLWUgInMsIC9saWIzMi8s ICR7X3N5c3Jvb3R9L2xpYjMyLyxnO3MsIC91c3IvbGliMzIvLCAke19zeXNyb290fS91c3IvbGli MzIvLGciIFwKLQkJCS1pICR7X3N5c3Jvb3R9L2xpYi9saWJjLnNvCi0JCXRvdWNoIC5zZWRfc3Vi c3RfZG9uZQotCWZpCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLWxpYmV4 ZWNkaXI9L3Vzci9saWIiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3Mr PSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3Vh Z2VzPWMsYWRhLGMrKyxvYmpjLG9iai1jKyssZ28sZm9ydHJhbixsdG8iCi0JX2FyZ3MrPSIgLS13 aXRoLWdudS1hcyIKLQlfYXJncys9IiAtLXdpdGgtZ251LWxkIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1zamxqLWV4Y2VwdGlvbnMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtdGhyZWFkcz1wb3NpeCIKLQlf YXJncys9IiAtLWVuYWJsZS1sb25nLWxvbmd4IgotCV9hcmdzKz0iIC0tZW5hYmxlLXNoYXJlZCIK LQlfYXJncys9IiAtLWVuYWJsZS1saW5rZXItYnVpbGQtaWQiCi0JX2FyZ3MrPSIgLS1lbmFibGUt Z251LXVuaXF1ZS1vYmplY3QiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGliYWRhIgotCV9hcmdzKz0i IC0tZW5hYmxlLWx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXBpZSIKLQlfYXJncys9 IiAtLWVuYWJsZS1kZWZhdWx0LXNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVk ZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic2FuaXRpemVyIgotCV9hcmdzKz0iIC0tZGlz YWJsZS1saWJjaWxrcnRzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJpdG0iCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYnZ0diIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic3RkY3h4LXBjaCIKLQlf YXJncys9IiAtLWVuYWJsZS1saWJzdGRjeHgtdGltZSIKLQlfYXJncys9IiAtLXdpdGgtbGlua2Vy LWhhc2gtc3R5bGU9Z251IgotCV9hcmdzKz0iIC0tZW5hYmxlLXNlY3VyZXBsdCIKLQotCS4uL2dj Yy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9 Ci0KLQl0b3VjaCAke3dya3NyY30vLmdjY19idWlsZF9kb25lCi19Ci0KLWRvX2J1aWxkKCkgewot CXVuc2V0IExERkxBR1MKLQlleHBvcnQgQ0ZMQUdTPSItT3MiIENYWEZMQUdTPSItT3MiCi0KLQlm b3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtf c3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtfc3lzcm9vdH0vdXNyLyR7 Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNm ciAke19zeXNyb290fS91c3IvJHtmfSAke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxu IC1zZiBsaWIgJHtfc3lzcm9vdH0vdXNyL2xpYjMyCi0JbG4gLXNmIHVzci9saWIgJHtfc3lzcm9v dH0vbGliMzIKLQotCV9iaW51dGlsc19idWlsZAotCV9nY2NfYm9vdHN0cmFwCi0JX2xpbnV4X2hl YWRlcnMKLQlfZ2xpYmNfaGVhZGVycwotCV9nbGliY19idWlsZAotCV9nY2NfYnVpbGQKLX0KLQot ZG9faW5zdGFsbCgpIHsKLQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBk bwotCQlpZiBbICEgLWQgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0J CQlta2RpciAtcCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsg ISAtaCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke0RF U1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IFwKLQkJCQkke0RFU1RESVJ9LyR7X3N5c3Jvb3R9 LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vz ci9saWIzMgotCWxuIC1zZiB1c3IvbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliMzIKLQot CSMgaW5zdGFsbCBjcm9zcyBiaW51dGlscwotCWNkICR7d3Jrc3JjfS9iaW51dGlscy1idWlsZAot CW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgaW5zdGFsbCBjcm9zcyBnY2MK LQljZCAke3dya3NyY30vZ2NjLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFs bAotCi0JIyBtb3ZlIGxpYmNjMS5zbyogdG8gdGhlIHN5c3Jvb3QKLQltdiAke0RFU1RESVJ9L3Vz ci9saWIvbGliY2MxLnNvKiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQotCSMgaW5z dGFsbCBsaW51eCBBUEkgaGVhZGVycyBmb3IgcG93ZXJwYwotCWNkICR7d3Jrc3JjfS9saW51eC0k e19saW51eF92ZXJzaW9ufQotCW1ha2UgQVJDSD1wb3dlcnBjIElOU1RBTExfSERSX1BBVEg9JHtE RVNURElSfS8ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0Jcm0gLWYgJChmaW5kICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUgLW5hbWUgLmluc3RhbGwgLW9yIC1uYW1l IC4uaW5zdGFsbC5jbWQpCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1 ZGUvZHJtCi0KLQkjIGluc3RhbGwgZ2xpYmMgZm9yIHRhcmdldAotCWNkICR7d3Jrc3JjfS9nbGli Yy1idWlsZAotCW1ha2UgaW5zdGFsbF9yb290PSR7REVTVERJUn0vJHtfc3lzcm9vdH0gaW5zdGFs bCBpbnN0YWxsLWhlYWRlcnMKLQotCSMgc3ltbGlua3MgZm9yIGduYXJsIGFuZCBnbmF0IHNoYXJl ZCBsaWJyYXJpZXMKLQlfbWFqb3J2ZXI9JHtfZ2NjX3ZlcnNpb24lLiouKn0KLQlfYWRhbGliPXVz ci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7X2djY192ZXJzaW9ufS9hZGFsaWIKLQltdiAtdiAke0RF U1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtf c3lzcm9vdH0vdXNyL2xpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF0LSR7 X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQlsbiAtc3ZmIGxp YmduYXJsLSR7X21ham9ydmVyfS5zbyBsaWJnbmFybC5zbwotCWxuIC1zdmYgbGliZ25hdC0ke19t YWpvcnZlcn0uc28gbGliZ25hdC5zbwotCXJtIC12ZiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGli Z25he3JsLHR9LnNvCi0KLQkjIFdlIG5lZWQgdG8gYnVpbGQgbGliYXRvbWljIGluIHRhcmdldCBn Y2MgYXMgZ2NjZ28gbmVlZHMgaXQgdG8KLQkjIGJ1aWxkLi4uIGJ1dCBpdCdzIG5vdCBuZWVkZWQg YXQgcnVudGltZSwgc28gcmVtb3ZlIGl0IGZyb20gdGhlCi0JIyBkZXN0ZGlyIHNvIGl0IGRvZXNu J3QgY29uZmxpY3Qgd2l0aCB0aGUgbGliYXRvbWljIHBhY2thZ2UKLQlybSAtZiAke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L3Vzci9saWIvbGliYXRvbWljLioKLQotCSMgUmVtb3ZlIHVubmVjZXNzYXJ5 IHN0dWZmCi0Jcm0gLWYgJHtERVNURElSfS91c3IvbGliKi9saWJpYmVydHkuYQotCXJtIC1yZiAk e0RFU1RESVJ9L3Vzci9zaGFyZQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3tzYmlu LGV0Yyx2YXJ9Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL3tzYmluLHNoYXJl LGxpYmV4ZWN9Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWJleGVjCi19Ci0KLWRv X2NsZWFuKCkgewotCSMgUmVtb3ZlIHRlbXBvcmFyeSBzdHVmZiBmcm9tIG1hc3RlcmRpcgotCXJt IC1yZiAke19zeXNyb290fQotCXJtIC1mIC91c3IvYmluLyR7X3RyaXBsZXR9KgotCXJtIC1yZiAv dXNyL2xpYi9nY2MvJHtfdHJpcGxldH0KLQlybSAtcmYgL3Vzci9saWJleGVjL2djYy8ke190cmlw bGV0fQotfQotCiBjcm9zcy1wb3dlcnBjLWxpbnV4LWdudS1saWJjX3BhY2thZ2UoKSB7CiAJc2hv cnRfZGVzYys9IiAtIGdsaWJjIGZpbGVzIgogCW5vc3RyaXA9eWVzCkBAIC0zNzMsNiArNDIsNiBA QCBjcm9zcy1wb3dlcnBjLWxpbnV4LWdudS1saWJjX3BhY2thZ2UoKSB7CiAJbm92ZXJpZnlyZGVw cz15ZXMKIAogCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAke19zeXNyb290fQorCQl2bW92ZSB1 c3IvJHtjcm9zc190cmlwbGV0fQogCX0KIH0KCkZyb20gMmZkMDA0Mzg0NmJhMGU3MzYzNGNjMDA2 ZTI0YWE4MmE3OTI5ZDEwMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcTY2IDxkYW5p ZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU2F0LCAyNiBEZWMgMjAyMCAxODo0MjoyMyArMDEwMApT dWJqZWN0OiBbUEFUQ0ggMTgvMjZdIGNyb3NzLXBvd2VycGMtbGludXgtbXVzbDogcmV3b3JrIHdp dGggdm9pZC1jcm9zcwoKLS0tCiBzcmNwa2dzL2Nyb3NzLXBvd2VycGMtbGludXgtbXVzbC90ZW1w bGF0ZSB8IDMwNiArKy0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTcgaW5z ZXJ0aW9ucygrKSwgMjg5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3Mt cG93ZXJwYy1saW51eC1tdXNsL3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1wb3dlcnBjLWxpbnV4 LW11c2wvdGVtcGxhdGUKaW5kZXggMTJkYjA0MGE1OWEuLmI1MTQyNThjYjgzIDEwMDY0NAotLS0g YS9zcmNwa2dzL2Nyb3NzLXBvd2VycGMtbGludXgtbXVzbC90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L2Nyb3NzLXBvd2VycGMtbGludXgtbXVzbC90ZW1wbGF0ZQpAQCAtMSwyMSArMSwyMyBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtcG93ZXJwYy1saW51eC1tdXNsJworX3RyaXBsZXQ9cG93 ZXJwYy1saW51eC1tdXNsCiBfYmludXRpbHNfdmVyc2lvbj0yLjMyCiBfZ2NjX3ZlcnNpb249OS4z LjAKIF9tdXNsX3ZlcnNpb249MS4xLjI0CiBfbGludXhfdmVyc2lvbj00LjE5CiBfbGlidWNvbnRl eHRfdmVyc2lvbj0wLjkuMAotCi1fdHJpcGxldD1wb3dlcnBjLWxpbnV4LW11c2wKLV9zeXNyb290 PSIvdXNyLyR7X3RyaXBsZXR9IgotCiBwa2duYW1lPWNyb3NzLSR7X3RyaXBsZXR9CiB2ZXJzaW9u PTAuMzMKIHJldmlzaW9uPTIKLQotc2hvcnRfZGVzYz0iQ3Jvc3MgdG9vbGNoYWluIGZvciBQb3dl clBDIChtdXNsKSIKK2J1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKK2NvbmZpZ3VyZV9hcmdzPSItLWVu YWJsZS1zZWN1cmVwbHQgLS1kaXNhYmxlLXZ0YWJsZS12ZXJpZnkKKyAtLWRpc2FibGUtZGVjaW1h bC1mbG9hdCIKK2hvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwg cHl0aG9uMyIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZl bCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK2RlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNp b259XyR7cmV2aXNpb259Igorc2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7 X3RyaXBsZXR9IgogbWFpbnRhaW5lcj0iVGhvbWFzIEJhdHRlbiA8c3RlbnN0b3JwbWNAZ21haWwu Y29tPiIKLWhvbWVwYWdlPSJodHRwOi8vd3d3LnZvaWRsaW51eC5vcmciCi1saWNlbnNlPSJHUEwt My4wLW9yLWxhdGVyLCBHUEwtMi4wLW9ubHksIE1JVCIKK2hvbWVwYWdlPSJodHRwczovL3d3dy52 b2lkbGludXgub3JnLyIKK2xpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0 ZXIsIE1JVCIKIGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmludXRpbHMtJHtf YmludXRpbHNfdmVyc2lvbn0udGFyLnh6CiAgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19nY2NfdmVy c2lvbn0vZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKQEAgLTI4LDI5NyArMzAsMjMgQEAgY2hl Y2tzdW09IjBhYjZjNTVkZDg2YTkyZWQ1NjE5NzJiYTE1YjliNzBhOGI5Zjc1NTU3Zjg5NjQ0NmM4 MmU4YjM2ZTQ3M2VlMDQKICAwYzY4ZjU2NTU1MjhhZWQ0Zjk5ZGFlNzFhNWIyNTllZGM5MzIzOWZh ODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExCiAgMGQ1M2E0MTVhMzA3ZWYxNzUxNTNiYmU2MGE1NzJj OTQwYTkyMmNiNzM2Y2UxMzUzMGI2NjZlN2VjMjc5NWQ2OCIKIAotbGliMzJkaXNhYmxlZD15ZXMK LW5vY3Jvc3M9eWVzCi1ub3BpZT15ZXMKLW5vZGVidWc9eWVzCi1jcmVhdGVfd3Jrc3JjPXllcwot Ci1ob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMi Ci1tYWtlZGVwZW5kcz0iemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCBsaWJtcGMtZGV2 ZWwgaXNsMTUtZGV2ZWwiCi1ub3N0cmlwX2ZpbGVzPSJsaWJjYWZfc2luZ2xlLmEgbGliZ2NjLmEg bGliZ2Nvdi5hIGxpYmdjY19laC5hCi0gbGliZ25hcmxfcGljLmEgbGliZ25hcmwuYSBsaWJnbmF0 X3BpYy5hIGxpYmduYXQuYSBsaWJnbWVtLmEiCi1kZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2 ZXJzaW9ufV8ke3JldmlzaW9ufSIKK2Nyb3NzX3RyaXBsZXQ9JHtfdHJpcGxldH0KK2Nyb3NzX2xp YnVjb250ZXh0X2FyY2g9cHBjCitjcm9zc19saW51eF9hcmNoPXBvd2VycGMKK2Nyb3NzX2JpbnV0 aWxzX2NvbmZpZ3VyZV9hcmdzPSItLWVuYWJsZS1zZWN1cmVwbHQiCitjcm9zc19tdXNsX2NmbGFn cz0iLU8yIgogCiBpZiBbICIkWEJQU19UQVJHRVRfTUFDSElORSIgPSAicHBjLW11c2wiIF07IHRo ZW4KIAlicm9rZW49IkNhbid0IGJ1aWxkIGNyb3NzdG9vbGNoYWluIHRvIGl0c2VsZiIKIGZpCiAK LV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUgJDIp IgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRjaCAtTiAkYXJn cyAtaSAkMgotCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0KLV9iaW51dGlsc19idWls ZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2Rv bmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcg Y3Jvc3MgYmludXRpbHMgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgYmludXRpbHMtYnVpbGQgXSAm JiBta2RpciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0aWxzLWJ1aWxkCi0JX2FyZ3M9Ii0tcHJl Zml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13 aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJn cys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQlf YXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0td2l0aC1zeXN0ZW0temxpYiIK LQlfYXJncys9IiAtLWVuYWJsZS1zZWN1cmVwbHQiCi0KLQkuLi9iaW51dGlscy0ke19iaW51dGls c192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgY29uZmlndXJlLWhvc3QgJiYg bWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5iaW51 dGlsc19idWlsZF9kb25lCi19Ci0KLV9nY2NfYm9vdHN0cmFwKCkgewotCWxvY2FsIF9hcmdzCi0J WyAtZiAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAk e3dya3NyY30vZ2NjLSR7X2djY192ZXJzaW9ufQotCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9 L2djYy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCWRvbmUK LQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvZmlsZXMvKi1tdXNsLnBhdGNoOyBkbwot CQlfYXBwbHlfcGF0Y2ggLXAxICIkZiIKLQlkb25lCi0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBj cm9zcyBnY2MgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgLi4vZ2NjLWJvb3RzdHJhcCBdICYmIG1r ZGlyIC4uL2djYy1ib290c3RyYXAKLQljZCAuLi9nY2MtYm9vdHN0cmFwCi0KLQlfYXJncz0iLS1w cmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAt LXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLXdpdGgtbmV3bGliIgotCV9h cmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jIgotCV9hcmdzKz0iIC0td2l0aC1uZXdsaWIiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtdGhyZWFk cyIKLQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKLQlfYXJncys9IiAtLWRpc2Fi bGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmdvbXAiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYmF0b21pYyIKLQlfYXJncys9IiAtLWRpc2FibGUtc3ltdmVycyIKLQlfYXJn cys9IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5vIgotCV9hcmdzKz0iIC0tZW5hYmxlLXNlY3VyZXBs dCIKLQotCUNGTEFHUz0iLU8wIC1nMCIgQ1hYRkxBR1M9Ii1PMCAtZzAiIFwKLQkJLi4vZ2NjLSR7 X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQlt YWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lCi19Ci0K LV9saW51eF9oZWFkZXJzKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lIF0g JiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIExpbnV4 IEFQSSBoZWFkZXJzXG4iCi0KLQljZCBsaW51eC0ke19saW51eF92ZXJzaW9ufQotCi0JZm9yIGYg aW4gJHtYQlBTX1NSQ1BLR0RJUn0va2VybmVsLWxpYmMtaGVhZGVycy9wYXRjaGVzLyoucGF0Y2g7 IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgJGYKLQlkb25lCi0KLQltYWtlIEFSQ0g9cG93ZXJwYyBo ZWFkZXJzX2NoZWNrCi0JbWFrZSBBUkNIPXBvd2VycGMgSU5TVEFMTF9IRFJfUEFUSD0ke19zeXNy b290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmxpbnV4X2J1aWxk X2RvbmUKLX0KLQotX211c2xfYnVpbGQoKSB7Ci0JWyAtZiAke3dya3NyY30vLm11c2xfYnVpbGRf ZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vbXVzbC0ke19tdXNsX3ZlcnNpb259 Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgbXVzbCBsaWJjXG4iCi0KLQkjIEFwcGx5IG11 c2wgcGF0Y2hlcyBpZiB0aGVyZSBhcmUgYW55Ci0JaWYgWyAtZCAiJHtYQlBTX1NSQ1BLR0RJUn0v bXVzbC9wYXRjaGVzIiBdOyB0aGVuCi0JCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L211c2wv cGF0Y2hlcy8qLnBhdGNoOyBkbwotCQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JCWRvbmUKLQlm aQotCi0JQ0M9IiR7X3RyaXBsZXR9LWdjYyIgQ0ZMQUdTPSItT3MgLXBpcGUgLWZQSUMiIFwKLQkJ Li9jb25maWd1cmUgLS1wcmVmaXg9L3VzcgotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgREVT VERJUj0ke19zeXNyb290fSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLm11c2xfYnVpbGRf ZG9uZQotfQotCi1fbGlidWNvbnRleHRfYnVpbGQoKSB7Ci0JWyAtZiAke3dya3NyY30vLmxpYnVj b250ZXh0X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2xpYnVjb250 ZXh0LSR7X2xpYnVjb250ZXh0X3ZlcnNpb259Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3Mg bGlidWNvbnRleHRcbiIKLQotCSMgaXQncyBvayBpZiB3ZSdyZSBzdGF0aWMgb25seSBoZXJlCi0J Q0M9IiR7X3RyaXBsZXR9LWdjYyIgQVI9IiR7X3RyaXBsZXR9LWFyIiBBUz0iJHtfdHJpcGxldH0t YXMiIFwKLQkJQ0ZMQUdTPSItT3MgLXBpcGUiIFwKLQkJbWFrZSBBUkNIPXBwYyBsaWJ1Y29udGV4 dC5hCi0KLQljcCBsaWJ1Y29udGV4dC5hICR7X3N5c3Jvb3R9L3Vzci9saWIKLQotCXRvdWNoICR7 d3Jrc3JjfS8ubGlidWNvbnRleHRfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2J1aWxkKCkgewotCWxv Y2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4g MAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGZpbmFs XG4iCi0KLQlbICEgLWQgZ2NjLWJ1aWxkIF0gJiYgbWtkaXIgZ2NjLWJ1aWxkCi0JY2QgZ2NjLWJ1 aWxkCi0KLQlfYXJncz0iLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5 c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAt LWxpYmV4ZWNkaXI9L3Vzci9saWIiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYWRh LGMrKyxvYmpjLG9iai1jKyssZ28sZm9ydHJhbixsdG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtbHRv IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYmFkYSIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0 LXBpZSIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXNzcCIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbGlic2FuaXRpemVyIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9 IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJn cys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgot CV9hcmdzKz0iIC0tZW5hYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWVuYWJsZS1zaGFyZWQiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMiCi0JX2FyZ3MrPSIgbGliYXRfY3ZfaGF2ZV9pZnVu Yz1ubyIKLQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKLQlfYXJncys9IiAtLWVu YWJsZS1zZWN1cmVwbHQiCi0KLQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19h cmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYnVpbGRf ZG9uZQotfQotCi1kb19idWlsZCgpIHsKLQkjIEVuc3VyZSB3ZSB1c2Ugc2FuZSBlbnZpcm9ubWVu dAotCXVuc2V0IENDIENYWCBDUFAgTEQgQVMgQVIgUkFOTElCIE9CSkRVTVAgUkVBREVMRiBOTQot CXVuc2V0IENGTEFHUyBDWFhGTEFHUyBDUFBGTEFHUyBMREZMQUdTCi0JZXhwb3J0IENGTEFHUz0i LU9zIC1waXBlIiBDWFhGTEFHUz0iLU9zIC1waXBlIgotCi0JZm9yIGYgaW4gaW5jbHVkZSBsaWIg bGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07 IHRoZW4KLQkJCW1rZGlyIC1wICR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAt aCAke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtfc3lzcm9vdH0vdXNyLyR7 Zn0gJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7X3N5c3Jvb3R9 L3Vzci9saWIzMgotCWxuIC1zZiB1c3IvbGliICR7X3N5c3Jvb3R9L2xpYjMyCi0KLQlfYmludXRp bHNfYnVpbGQKLQlfZ2NjX2Jvb3RzdHJhcAotCV9saW51eF9oZWFkZXJzCi0JX211c2xfYnVpbGQK LQlfbGlidWNvbnRleHRfYnVpbGQKLQlfZ2NjX2J1aWxkCi19Ci0KLWRvX2luc3RhbGwoKSB7Ci0J Zm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtERVNU RElSfS8ke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtERVNURElSfS8k e19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtERVNURElSfS8ke19zeXNyb290 fS91c3IvJHtmfSBcCi0JCQkJJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9u ZQotCWxuIC1zZiBsaWIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAtc2Yg dXNyL2xpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYjMyCi0KLQkjIGluc3RhbGwgbGludXgg QVBJIGhlYWRlcnMKLQljZCAke3dya3NyY30vbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQltYWtl IEFSQ0g9cG93ZXJwYyBJTlNUQUxMX0hEUl9QQVRIPSR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNy IGhlYWRlcnNfaW5zdGFsbAotCXJtIC1mICQoZmluZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vz ci9pbmNsdWRlIC1uYW1lIC5pbnN0YWxsIC1vciAtbmFtZSAuLmluc3RhbGwuY21kKQotCXJtIC1y ZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlL2RybQotCi0JIyBpbnN0YWxsIGNy b3NzIGJpbnV0aWxzCi0JY2QgJHt3cmtzcmN9L2JpbnV0aWxzLWJ1aWxkCi0JbWFrZSBERVNURElS PSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBpbnN0YWxsIGNyb3NzIGdjYwotCWNkICR7d3Jrc3Jj fS9nY2MtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIG1vdmUg bGliY2MxLnNvKiB0byB0aGUgc3lzcm9vdAotCW12ICR7REVTVERJUn0vdXNyL2xpYi9saWJjYzEu c28qICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JIyBpbnN0YWxsIG11c2wgbGli YyBmb3IgdGFyZ2V0Ci0JY2QgJHt3cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9ufQotCW1ha2Ug REVTVERJUj0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCSMgUmVtb3ZlIHVzZWxl c3MgaGVhZGVycy4KLQlybSAtcmYgJHtERVNURElSfS91c3IvbGliL2djYy8ke190cmlwbGV0fS8q L2luY2x1ZGUtZml4ZWQKLQotCSMgTWFrZSBsZC1tdXNsLnNvIHN5bWxpbmtzIHJlbGF0aXZlLgot CWxuIC1zZiBsaWJjLnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYi9sZC1tdXNsLXBv d2VycGMuc28uMQotCWxuIC1zZiBsaWJjLnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xp Yi9sZC1tdXNsLXBvd2VycGMtc2Yuc28uMQotCi0JIyBzeW1saW5rcyBmb3IgZ25hcmwgYW5kIGdu YXQgc2hhcmVkIGxpYnJhcmllcwotCV9tYWpvcnZlcj0ke19nY2NfdmVyc2lvbiUuKi4qfQotCV9h ZGFsaWI9dXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxpYgotCW12 IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmFybC0ke19tYWpvcnZlcn0uc28gJHtERVNU RElSfS8ke19zeXNyb290fS91c3IvbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xp YmduYXQtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCWxu IC1zdmYgbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXJsLnNvCi0JbG4gLXN2ZiBsaWJn bmF0LSR7X21ham9ydmVyfS5zbyBsaWJnbmF0LnNvCi0Jcm0gLXZmICR7REVTVERJUn0vJHtfYWRh bGlifS9saWJnbmF7cmwsdH0uc28KLQotCSMgV2UgbmVlZCB0byBidWlsZCBsaWJhdG9taWMgaW4g dGFyZ2V0IGdjYyBhcyBnY2NnbyBuZWVkcyBpdCB0bwotCSMgYnVpbGQuLi4gYnV0IGl0J3Mgbm90 IG5lZWRlZCBhdCBydW50aW1lLCBzbyByZW1vdmUgaXQgZnJvbSB0aGUKLQkjIGRlc3RkaXIgc28g aXQgZG9lc24ndCBjb25mbGljdCB3aXRoIHRoZSBsaWJhdG9taWMgcGFja2FnZQotCXJtIC1mICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYi9saWJhdG9taWMuKgotCi0JIyBSZW1vdmUgdW5u ZWNlc3Nhcnkgc3R1ZmYKLQlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCi0J cm0gLXJmICR7REVTVERJUn0vdXNyL3NoYXJlCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9v dH0ve2V0Yyx2YXJ9Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL3tzYmluLHNo YXJlLGxpYmV4ZWN9Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWJleGVjCi0Jcm0g LWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWIvKi5weQotCXJtIC1mICR7REVTVERJUn0vJHtf c3lzcm9vdH0ve3NiaW4sbGlifQotfQotCiBjcm9zcy1wb3dlcnBjLWxpbnV4LW11c2wtbGliY19w YWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBsaWJjIGZpbGVzIgogCW5vc3RyaXA9eWVzCiAJ bm92ZXJpZnlyZGVwcz15ZXMKIAlub3NobGlicHJvdmlkZXM9eWVzCisKIAlwa2dfaW5zdGFsbCgp IHsKLQkJdm1vdmUgJHtfc3lzcm9vdH0KKwkJdm1vdmUgdXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9 CiB9CgpGcm9tIDRlM2YxNjM2NmVlMzRhYmI5NzUwMTQxYzFiYTEyMjc1NGFlZTkwNjYgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6 IFNhdCwgMjYgRGVjIDIwMjAgMTg6NDU6MDIgKzAxMDAKU3ViamVjdDogW1BBVENIIDE5LzI2XSBj cm9zcy1wb3dlcnBjbGUtbGludXgtZ251OiByZXdvcmsgd2l0aCB2b2lkLWNyb3NzCgotLS0KIHNy Y3BrZ3MvY3Jvc3MtcG93ZXJwY2xlLWxpbnV4LWdudS90ZW1wbGF0ZSB8IDM1OSArLS0tLS0tLS0t LS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCAzNDUgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1wb3dlcnBjbGUtbGludXgtZ251L3Rl bXBsYXRlIGIvc3JjcGtncy9jcm9zcy1wb3dlcnBjbGUtbGludXgtZ251L3RlbXBsYXRlCmluZGV4 IDVhNWUxNDlkMzlhLi41MzA2OGIxM2Q2NSAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1wb3dl cnBjbGUtbGludXgtZ251L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwY2xlLWxp bnV4LWdudS90ZW1wbGF0ZQpAQCAtMSwyMCArMSwyMSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn Y3Jvc3MtcG93ZXJwY2xlLWxpbnV4LWdudScKLSMgVGhpcyBpcyBhbiBleHBlcmltZW50YWwgdGFy Z2V0IGZvciBub3cgYW5kIGlzIHN1YmplY3QgdG8gY2hhbmdlcworX3RyaXBsZXQ9cG93ZXJwY2xl LWxpbnV4LWdudQogX2JpbnV0aWxzX3ZlcnNpb249Mi4zMgogX2djY192ZXJzaW9uPTkuMy4wCiBf Z2xpYmNfdmVyc2lvbj0yLjMwCiBfbGludXhfdmVyc2lvbj00LjE5Ci0KLV90cmlwbGV0PXBvd2Vy cGNsZS1saW51eC1nbnUKLV9zeXNyb290PSIvdXNyLyR7X3RyaXBsZXR9IgotCiBwa2duYW1lPWNy b3NzLSR7X3RyaXBsZXR9CiB2ZXJzaW9uPTAuMzMKIHJldmlzaW9uPTEKLXNob3J0X2Rlc2M9IkdO VSBDcm9zcyB0b29sY2hhaW4gZm9yIHRoZSAke190cmlwbGV0fSB0YXJnZXQgKGJpbnV0aWxzL2dj Yy9nbGliYykiCitidWlsZF9zdHlsZT12b2lkLWNyb3NzCitjb25maWd1cmVfYXJncz0iLS1lbmFi bGUtc2VjdXJlcGx0IC0tZGlzYWJsZS12dGFibGUtdmVyaWZ5IgoraG9zdG1ha2VkZXBlbmRzPSJ0 YXIgZ2NjLW9iamMgZmxleCBwZXJsIHB5dGhvbjMiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwg bGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCitkZXBlbmRzPSIk e3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK3Nob3J0X2Rlc2M9IlZvaWQg Y3Jvc3MgdG9vbGNoYWluIGZvciAke190cmlwbGV0fSIKIG1haW50YWluZXI9InE2NiA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+IgotaG9tZXBhZ2U9Imh0dHA6Ly93d3cudm9pZGxpbnV4Lm9yZyIKIGxp Y2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxh dGVyIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogZGlzdGZpbGVzPSIK ICAke0dOVV9TSVRFfS9iaW51dGlscy9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS50YXIu eHoKICAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2djY192ZXJzaW9ufS9nY2MtJHtfZ2NjX3ZlcnNp b259LnRhci54egpAQCAtMjUsMzQ4ICsyNiwxNiBAQCBjaGVja3N1bT0iMGFiNmM1NWRkODZhOTJl ZDU2MTk3MmJhMTViOWI3MGE4YjlmNzU1NTdmODk2NDQ2YzgyZThiMzZlNDczZWUwNAogIGUyYzQx MTRlNTY5YWZiZTdlZGJjMjkxMzFhNDNiZTgzMzg1MGFiOWE0NTlkODFiZWIyNTg4MDE2ZDJiYmI4 YWYKICAwYzY4ZjU2NTU1MjhhZWQ0Zjk5ZGFlNzFhNWIyNTllZGM5MzIzOWZhODk5ZTJkZjc5YzA1 NTI3NWMyMTc0OWExIgogCi1saWIzMmRpc2FibGVkPXllcwotbm9jcm9zcz15ZXMKLW5vcGllPXll cwotY3JlYXRlX3dya3NyYz15ZXMKLWhvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGZsZXgg cGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGli LWRldmVsIgotZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0i Ci1ub3N0cmlwX2ZpbGVzPSJsaWJjYWZfc2luZ2xlLmEgbGliZ2NjLmEgbGliZ2Nvdi5hIGxpYmdj Y19laC5hCi0gbGliZ25hcmxfcGljLmEgbGliZ25hcmwuYSBsaWJnbmF0X3BpYy5hIGxpYmduYXQu YSBsaWJnbWVtLmEiCi0KLWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiAhPSAiZ2xpYmMiIF07IHRo ZW4KLQlicm9rZW49ImdsaWJjIGNyb3NzdG9vbGNoYWluIG9ubHkgYXZhaWxhYmxlIG9uIGdsaWJj IgotZmkKK2Nyb3NzX3RyaXBsZXQ9JHtfdHJpcGxldH0KK2Nyb3NzX2xpbnV4X2FyY2g9cG93ZXJw YworY3Jvc3NfZ2NjX3NraXBfZ289eWVzCitjcm9zc19iaW51dGlsc19jb25maWd1cmVfYXJncz0i LS1lbmFibGUtc2VjdXJlcGx0IgorY3Jvc3NfZ2xpYmNfY2ZsYWdzPSItTzIiCiAKIGlmIFsgIiRY QlBTX1RBUkdFVF9NQUNISU5FIiA9ICJwcGNsZSIgXTsgdGhlbgogCWJyb2tlbj0iQ2FuJ3QgYnVp bGQgY3Jvc3N0b29sY2hhaW4gdG8gaXRzZWxmIgogZmkKIAotX2FwcGx5X3BhdGNoKCkgewotCWxv Y2FsIGFyZ3M9IiQxIiBwbmFtZT0iJChiYXNlbmFtZSAkMikiCi0KLQlpZiBbICEgLWYgIi4ke3Bu YW1lfV9kb25lIiBdOyB0aGVuCi0JCXBhdGNoIC1OICRhcmdzIC1pICQyCi0JCXRvdWNoIC4ke3Bu YW1lfV9kb25lCi0JZmkKLX0KLQotX2xpbnV4X2hlYWRlcnMoKSB7Ci0JWyAtZiAke3dya3NyY30v LmxpbnV4X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25v cm1hbCAiQnVpbGRpbmcgTGludXggQVBJIGhlYWRlcnMgZm9yIFBvd2VyUENcbiIKLQotCWNkIGxp bnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0KLQltYWtlIEFSQ0g9cG93ZXJwYyBoZWFkZXJzX2NoZWNr Ci0JbWFrZSBBUkNIPXBvd2VycGMgSU5TVEFMTF9IRFJfUEFUSD0ke19zeXNyb290fS91c3IgaGVh ZGVyc19pbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUKLX0KLQot X2JpbnV0aWxzX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uYmlu dXRpbHNfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9y bWFsICJCdWlsZGluZyBjcm9zcyBiaW51dGlsc1xuIgotCVsgISAtZCBiaW51dGlscy1idWlsZCBd ICYmIG1rZGlyIGJpbnV0aWxzLWJ1aWxkCi0JY2QgYmludXRpbHMtYnVpbGQKLQotCV9hcmdzPSIt LXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0i IC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQlfYXJncys9IiAtLWRpc2FibGUtZ29sZCIK LQlfYXJncys9IiAtLXdpdGgtc3lzdGVtLXpsaWIiCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2VjdXJl cGx0IgotCS4uL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdz fQotCi0JbWFrZSBjb25maWd1cmUtaG9zdCAmJiBtYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0 YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUKLX0KLQotX2djY19i b290c3RyYXAoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0 cmFwX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2djYy0ke19nY2NfdmVyc2lv bn0KLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwot CQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQlkb25lCi0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBj cm9zcyBnY2MgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgLi4vZ2NjLWJvb3RzdHJhcCBdICYmIG1r ZGlyIC4uL2djYy1ib290c3RyYXAKLQljZCAuLi9nY2MtYm9vdHN0cmFwCi0KLQlfYXJncz0iLS1w cmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAt LXdpdGhvdXQtaGVhZGVycyIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdz Kz0iIC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJnb21w IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11 ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUt bGliaXRtIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJhdG9taWMiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLXRocmVhZHMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLXNqbGotZXhjZXB0aW9ucyIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIi Ci0JX2FyZ3MrPSIgLS13aXRoLWdudS1sZCIKLQlfYXJncys9IiAtLXdpdGgtZ251LWFzIgotCV9h cmdzKz0iIC0tZW5hYmxlLXNlY3VyZXBsdCIKLQotCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29u ZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0 b3VjaCAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZQotfQotCi1fZ2xpYmNfaGVhZGVycygp IHsKLQlsb2NhbCBfYXJncyBmCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2xpYmNfaGVhZGVyc19kb25l IF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nbGliYy0ke19nbGliY192ZXJzaW9ufQot CWlmIFsgLWQgIiR7WEJQU19TUkNQS0dESVJ9L2dsaWJjL3BhdGNoZXMiIF07IHRoZW4KLQkJZm9y IGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2xpYmMvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQkJX2Fw cGx5X3BhdGNoIC1wMSAiJGYiCi0JCWRvbmUKLQlmaQotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25v cm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2xpYmMgaGVhZGVyc1xuIgotCi0JWyAhIC1kIGdsaWJjLWhl YWRlcnMgXSAmJiBta2RpciBnbGliYy1oZWFkZXJzCi0JY2QgZ2xpYmMtaGVhZGVycwotCi0JZWNo byAibGliY19jdl9mb3JjZWRfdW53aW5kPXllcyIgPiBjb25maWcuY2FjaGUKLQllY2hvICJsaWJj X2N2X2NfY2xlYW51cD15ZXMiID4+IGNvbmZpZy5jYWNoZQotCi0JZXhwb3J0IENDPSIke190cmlw bGV0fS1nY2MiIExEPSIke190cmlwbGV0fS1sZCIgXAotCQlBUz0iJHtfdHJpcGxldH0tYXMiIENQ UD0iJHtfdHJpcGxldH0tY3BwIiBcCi0JCU5NPSIke190cmlwbGV0fS1ubSIKLQotCV9hcmdzPSIt LXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0taG9zdD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAt LXdpdGgtaGVhZGVycz0ke19zeXNyb290fS91c3IvaW5jbHVkZSIKLQlfYXJncys9IiAtLWNvbmZp Zy1jYWNoZSIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1ycGMiCi0JX2FyZ3MrPSIgLS1l bmFibGUtb2Jzb2xldGUtbnNsIgotCV9hcmdzKz0iIC0tZW5hYmxlLWtlcm5lbD0yLjYuMjciCi0K LQkuLi9nbGliYy0ke19nbGliY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2Ug LWsgaW5zdGFsbC1oZWFkZXJzIGNyb3NzX2NvbXBpbGluZz15ZXMgXAotCQlpbnN0YWxsX3Jvb3Q9 JHtfc3lzcm9vdH0KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2xpYmNfaGVhZGVyc19kb25lCi19Ci0K LV9nbGliY19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdsaWJj X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAi QnVpbGRpbmcgY3Jvc3MgZ2xpYmNcbiIKLQotCVsgISAtZCBnbGliYy1idWlsZCBdICYmIG1rZGly IGdsaWJjLWJ1aWxkCi0JY2QgZ2xpYmMtYnVpbGQKLQotCWVjaG8gInNsaWJkaXI9L3Vzci9saWIz MiIgPiBjb25maWdwYXJtcwotCi0JZWNobyAibGliY19jdl9mb3JjZWRfdW53aW5kPXllcyIgPiBj b25maWcuY2FjaGUKLQllY2hvICJsaWJjX2N2X2NfY2xlYW51cD15ZXMiID4+IGNvbmZpZy5jYWNo ZQotCi0JZXhwb3J0IENDPSIke190cmlwbGV0fS1nY2MiIENYWD0iJHtfdHJpcGxldH0tZysrIiBM RD0iJHtfdHJpcGxldH0tbGQiIFwKLQkJQVM9IiR7X3RyaXBsZXR9LWFzIiBDUFA9IiR7X3RyaXBs ZXR9LWNwcCIgXAotCQlOTT0iJHtfdHJpcGxldH0tbm0iCi0JZXhwb3J0IENGTEFHUz0iLU8yIC1w aXBlIgotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJkaXI9L3Vzci9s aWIzMiIKLQlfYXJncys9IiAtLWhvc3Q9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLWhl YWRlcnM9JHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUiCi0JX2FyZ3MrPSIgLS1jb25maWctY2FjaGUi Ci0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtcnBjIgotCV9hcmdzKz0iIC0tZW5hYmxlLW9i c29sZXRlLW5zbCIKLQlfYXJncys9IiAtLWRpc2FibGUtcHJvZmlsZSIKLQlfYXJncys9IiAtLWVu YWJsZS1rZXJuZWw9Mi42LjI3IgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJyb3IiCi0KLQkuLi9n bGliYy0ke19nbGliY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtl am9ic30KLQltYWtlIGluc3RhbGxfcm9vdD0ke19zeXNyb290fSBpbnN0YWxsCi0KLQl0b3VjaCAk e3dya3NyY30vLmdsaWJjX2J1aWxkX2RvbmUKLX0KLQotX2djY19idWlsZCgpIHsKLQlsb2NhbCBf YXJncwotCi0JWyAtZiAke3dya3NyY30vLmdjY19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQot CWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBmaW5hbFxuIgot Ci0JWyAhIC1kIGdjYy1idWlsZCBdICYmIG1rZGlyIGdjYy1idWlsZAotCWNkIGdjYy1idWlsZAot Ci0JZXhwb3J0IENDPSJnY2MiIENYWD0iZysrIiBDRkxBR1M9Ii1PcyAtcGlwZSIKLQl1bnNldCBM RCBBUwotCi0JIyBNYWtlIHRoaXMgbGluayB0byB0YXJnZXQgbGlicy4KLQlpZiBbICEgLWYgLnNl ZF9zdWJzdF9kb25lIF07IHRoZW4KLQkJc2VkIC1lICJzLCAvbGliLywgJHtfc3lzcm9vdH0vbGli LyxnO3MsIC91c3IvbGliLywgJHtfc3lzcm9vdH0vdXNyL2xpYi8sZyIgXAotCQkJLWkgJHtfc3lz cm9vdH0vbGliL2xpYmMuc28KLQkJc2VkIC1lICJzLCAvbGliMzIvLCAke19zeXNyb290fS9saWIz Mi8sZztzLCAvdXNyL2xpYjMyLywgJHtfc3lzcm9vdH0vdXNyL2xpYjMyLyxnIiBcCi0JCQktaSAk e19zeXNyb290fS9saWIvbGliYy5zbwotCQl0b3VjaCAuc2VkX3N1YnN0X2RvbmUKLQlmaQotCi0J X2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJleGVjZGlyPS91c3IvbGliIgot CV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290 PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFkYSxjKyssb2Jq YyxvYmotYysrLGZvcnRyYW4sbHRvIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtYXMiCi0JX2FyZ3Mr PSIgLS13aXRoLWdudS1sZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtc2psai1leGNlcHRpb25zIgot CV9hcmdzKz0iIC0tZW5hYmxlLXRocmVhZHM9cG9zaXgiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbG9u Zy1sb25neCIKLQlfYXJncys9IiAtLWVuYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1lbmFibGUt bGlua2VyLWJ1aWxkLWlkIgotCV9hcmdzKz0iIC0tZW5hYmxlLWdudS11bmlxdWUtb2JqZWN0Igot CV9hcmdzKz0iIC0tZW5hYmxlLWxpYmFkYSIKLQlfYXJncys9IiAtLWVuYWJsZS1sdG8iCi0JX2Fy Z3MrPSIgLS1lbmFibGUtZGVmYXVsdC1waWUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1z c3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLWxpYnNhbml0aXplciIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliY2lsa3J0cyIKLQlf YXJncys9IiAtLWRpc2FibGUtbGliaXRtIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJ2dHYiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnN0ZGN4eC1wY2giCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGli c3RkY3h4LXRpbWUiCi0JX2FyZ3MrPSIgLS13aXRoLWxpbmtlci1oYXNoLXN0eWxlPWdudSIKLQlf YXJncys9IiAtLWVuYWJsZS1zZWN1cmVwbHQiCi0KLQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2Nv bmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCi0JdG91Y2ggJHt3cmtzcmN9 Ly5nY2NfYnVpbGRfZG9uZQotfQotCi1kb19idWlsZCgpIHsKLQl1bnNldCBMREZMQUdTCi0JZXhw b3J0IENGTEFHUz0iLU9zIiBDWFhGTEFHUz0iLU9zIgotCi0JZm9yIGYgaW4gaW5jbHVkZSBsaWIg bGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07 IHRoZW4KLQkJCW1rZGlyIC1wICR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAt aCAke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtfc3lzcm9vdH0vdXNyLyR7 Zn0gJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7X3N5c3Jvb3R9 L3Vzci9saWIzMgotCWxuIC1zZiB1c3IvbGliICR7X3N5c3Jvb3R9L2xpYjMyCi0KLQlfYmludXRp bHNfYnVpbGQKLQlfZ2NjX2Jvb3RzdHJhcAotCV9saW51eF9oZWFkZXJzCi0JX2dsaWJjX2hlYWRl cnMKLQlfZ2xpYmNfYnVpbGQKLQlfZ2NjX2J1aWxkCi19Ci0KLWRvX2luc3RhbGwoKSB7Ci0JZm9y IGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7REVT VERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtERVNURElS fS8ke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtERVNURElSfS8ke19z eXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtERVNURElSfS8ke19zeXNyb290fS91 c3IvJHtmfSBcCi0JCQkJJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQot CWxuIC1zZiBsaWIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNy L2xpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYjMyCi0KLQkjIGluc3RhbGwgY3Jvc3MgYmlu dXRpbHMKLQljZCAke3dya3NyY30vYmludXRpbHMtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNU RElSfSBpbnN0YWxsCi0KLQkjIGluc3RhbGwgY3Jvc3MgZ2NjCi0JY2QgJHt3cmtzcmN9L2djYy1i dWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgbW92ZSBsaWJjYzEu c28qIHRvIHRoZSBzeXNyb290Ci0JbXYgJHtERVNURElSfS91c3IvbGliL2xpYmNjMS5zbyogJHtE RVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0KLQkjIGluc3RhbGwgbGludXggQVBJIGhlYWRl cnMgZm9yIHBvd2VycGMKLQljZCAke3dya3NyY30vbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQlt YWtlIEFSQ0g9cG93ZXJwYyBJTlNUQUxMX0hEUl9QQVRIPSR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyIGhlYWRlcnNfaW5zdGFsbAotCXJtIC1mICQoZmluZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9 L3Vzci9pbmNsdWRlIC1uYW1lIC5pbnN0YWxsIC1vciAtbmFtZSAuLmluc3RhbGwuY21kKQotCXJt IC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlL2RybQotCi0JIyBpbnN0YWxs IGdsaWJjIGZvciB0YXJnZXQKLQljZCAke3dya3NyY30vZ2xpYmMtYnVpbGQKLQltYWtlIGluc3Rh bGxfcm9vdD0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9IGluc3RhbGwgaW5zdGFsbC1oZWFkZXJzCi0K LQkjIHN5bWxpbmtzIGZvciBnbmFybCBhbmQgZ25hdCBzaGFyZWQgbGlicmFyaWVzCi0JX21ham9y dmVyPSR7X2djY192ZXJzaW9uJS4qLip9Ci0JX2FkYWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0 fS8ke19nY2NfdmVyc2lvbn0vYWRhbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xp YmduYXJsLSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQlt diAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hdC0ke19tYWpvcnZlcn0uc28gJHtERVNU RElSfS8ke19zeXNyb290fS91c3IvbGliCi0JbG4gLXN2ZiBsaWJnbmFybC0ke19tYWpvcnZlcn0u c28gbGliZ25hcmwuc28KLQlsbiAtc3ZmIGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXQu c28KLQlybSAtdmYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXtybCx0fS5zbwotCi0JIyBX ZSBuZWVkIHRvIGJ1aWxkIGxpYmF0b21pYyBpbiB0YXJnZXQgZ2NjIGFzIGdjY2dvIG5lZWRzIGl0 IHRvCi0JIyBidWlsZC4uLiBidXQgaXQncyBub3QgbmVlZGVkIGF0IHJ1bnRpbWUsIHNvIHJlbW92 ZSBpdCBmcm9tIHRoZQotCSMgZGVzdGRpciBzbyBpdCBkb2Vzbid0IGNvbmZsaWN0IHdpdGggdGhl IGxpYmF0b21pYyBwYWNrYWdlCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGli L2xpYmF0b21pYy4qCi0KLQkjIFJlbW92ZSB1bm5lY2Vzc2FyeSBzdHVmZgotCXJtIC1mICR7REVT VERJUn0vdXNyL2xpYiovbGliaWJlcnR5LmEKLQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUK LQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS97c2JpbixldGMsdmFyfQotCXJtIC1yZiAk e0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci97c2JpbixzaGFyZSxsaWJleGVjfQotCXJtIC1mICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vbGliZXhlYwotfQotCi1kb19jbGVhbigpIHsKLQkjIFJlbW92 ZSB0ZW1wb3Jhcnkgc3R1ZmYgZnJvbSBtYXN0ZXJkaXIKLQlybSAtcmYgJHtfc3lzcm9vdH0KLQly bSAtZiAvdXNyL2Jpbi8ke190cmlwbGV0fSoKLQlybSAtcmYgL3Vzci9saWIvZ2NjLyR7X3RyaXBs ZXR9Ci0Jcm0gLXJmIC91c3IvbGliZXhlYy9nY2MvJHtfdHJpcGxldH0KLX0KLQogY3Jvc3MtcG93 ZXJwY2xlLWxpbnV4LWdudS1saWJjX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGdsaWJj IGZpbGVzIgogCW5vc3RyaXA9eWVzCkBAIC0zNzQsNiArNDMsNiBAQCBjcm9zcy1wb3dlcnBjbGUt bGludXgtZ251LWxpYmNfcGFja2FnZSgpIHsKIAlub3ZlcmlmeXJkZXBzPXllcwogCiAJcGtnX2lu c3RhbGwoKSB7Ci0JCXZtb3ZlICR7X3N5c3Jvb3R9CisJCXZtb3ZlIHVzci8ke2Nyb3NzX3RyaXBs ZXR9CiAJfQogfQoKRnJvbSA0YjNmYTU0MzA4MzNiOWFlYjVhZDQyZDI4MDlkOGUwNzBmYTliZjVj IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3Jn PgpEYXRlOiBTYXQsIDI2IERlYyAyMDIwIDE4OjQ3OjQ3ICswMTAwClN1YmplY3Q6IFtQQVRDSCAy MC8yNl0gY3Jvc3MtcG93ZXJwY2xlLWxpbnV4LW11c2w6IHJld29yayB3aXRoIHZvaWQtY3Jvc3MK Ci0tLQogc3JjcGtncy9jcm9zcy1wb3dlcnBjbGUtbGludXgtbXVzbC90ZW1wbGF0ZSB8IDI4OCAr Ky0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDI3 MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLXBvd2VycGNsZS1saW51 eC1tdXNsL3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1wb3dlcnBjbGUtbGludXgtbXVzbC90ZW1w bGF0ZQppbmRleCA2MmFjNzhjNDExNy4uNDUwODE2NDk4YjcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv Y3Jvc3MtcG93ZXJwY2xlLWxpbnV4LW11c2wvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1w b3dlcnBjbGUtbGludXgtbXVzbC90ZW1wbGF0ZQpAQCAtMSwyMCArMSwyMSBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnY3Jvc3MtcG93ZXJwY2xlLWxpbnV4LW11c2wnCi0jIFRoaXMgaXMgYW4gZXhw ZXJpbWVudGFsIHRhcmdldCBmb3Igbm93IGFuZCBpcyBzdWJqZWN0IHRvIGNoYW5nZXMKK190cmlw bGV0PXBvd2VycGNsZS1saW51eC1tdXNsCiBfYmludXRpbHNfdmVyc2lvbj0yLjMyCiBfZ2NjX3Zl cnNpb249OS4zLjAKIF9tdXNsX3ZlcnNpb249MS4xLjI0CiBfbGludXhfdmVyc2lvbj00LjE5Ci0K LV90cmlwbGV0PXBvd2VycGNsZS1saW51eC1tdXNsCi1fc3lzcm9vdD0iL3Vzci8ke190cmlwbGV0 fSIKLQogcGtnbmFtZT1jcm9zcy0ke190cmlwbGV0fQogdmVyc2lvbj0wLjMzCiByZXZpc2lvbj0x Ci0KLXNob3J0X2Rlc2M9IkdOVSBDcm9zcyB0b29sY2hhaW4gZm9yIHRoZSAke190cmlwbGV0fSB0 YXJnZXQgKGJpbnV0aWxzL2djYy9nbGliYykiCitidWlsZF9zdHlsZT12b2lkLWNyb3NzCitjb25m aWd1cmVfYXJncz0iLS1lbmFibGUtc2VjdXJlcGx0IC0tZGlzYWJsZS12dGFibGUtdmVyaWZ5Cisg LS1kaXNhYmxlLWRlY2ltYWwtZmxvYXQiCitob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBm bGV4IHBlcmwgcHl0aG9uMyIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwg emxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK2RlcGVuZHM9IiR7cGtnbmFtZX0tbGli Yy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igorc2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hh aW4gZm9yICR7X3RyaXBsZXR9IgogbWFpbnRhaW5lcj0icTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9y Zz4iCi1ob21lcGFnZT0iaHR0cDovL3d3dy52b2lkbGludXgub3JnIgoraG9tZXBhZ2U9Imh0dHBz Oi8vd3d3LnZvaWRsaW51eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMu MC1vci1sYXRlciwgTUlUIgogZGlzdGZpbGVzPSIKICAke0dOVV9TSVRFfS9iaW51dGlscy9iaW51 dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS50YXIueHoKQEAgLTI2LDI4MCArMjcsMjMgQEAgY2hl Y2tzdW09IjBhYjZjNTVkZDg2YTkyZWQ1NjE5NzJiYTE1YjliNzBhOGI5Zjc1NTU3Zjg5NjQ0NmM4 MmU4YjM2ZTQ3M2VlMDQKICAxMzcwYzlhODEyYjJjZjJhN2Q5MjgwMjUxMGNjYTAwNThjYzM3ZTY2 YTdiZWRkNzAwNTFmMGEzNDAxNTAyMmEzCiAgMGM2OGY1NjU1NTI4YWVkNGY5OWRhZTcxYTViMjU5 ZWRjOTMyMzlmYTg5OWUyZGY3OWMwNTUyNzVjMjE3NDlhMSIKIAotbGliMzJkaXNhYmxlZD15ZXMK LW5vY3Jvc3M9eWVzCi1ub3BpZT15ZXMKLW5vZGVidWc9eWVzCi1jcmVhdGVfd3Jrc3JjPXllcwot Ci1ob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2Vk ZXBlbmRzPSJ6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIGxpYm1wYy1kZXZlbCBpc2wx NS1kZXZlbCIKLW5vc3RyaXBfZmlsZXM9ImxpYmNhZl9zaW5nbGUuYSBsaWJnY2MuYSBsaWJnY292 LmEgbGliZ2NjX2VoLmEKLSBsaWJnbmFybF9waWMuYSBsaWJnbmFybC5hIGxpYmduYXRfcGljLmEg bGliZ25hdC5hIGxpYmdtZW0uYSIKLWRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259 XyR7cmV2aXNpb259IgorY3Jvc3NfdHJpcGxldD0ke190cmlwbGV0fQorY3Jvc3NfbGludXhfYXJj aD1wb3dlcnBjCitjcm9zc19nY2Nfc2tpcF9nbz15ZXMKK2Nyb3NzX2JpbnV0aWxzX2NvbmZpZ3Vy ZV9hcmdzPSItLWVuYWJsZS1zZWN1cmVwbHQiCitjcm9zc19tdXNsX2NmbGFncz0iLU8yIgogCiBp ZiBbICIkWEJQU19UQVJHRVRfTUFDSElORSIgPSAicHBjbGUtbXVzbCIgXTsgdGhlbgogCWJyb2tl bj0iQ2FuJ3QgYnVpbGQgY3Jvc3N0b29sY2hhaW4gdG8gaXRzZWxmIgogZmkKIAotX2FwcGx5X3Bh dGNoKCkgewotCWxvY2FsIGFyZ3M9IiQxIiBwbmFtZT0iJChiYXNlbmFtZSAkMikiCi0KLQlpZiBb ICEgLWYgIi4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCi0JCXBhdGNoIC1OICRhcmdzIC1pICQyCi0J CXRvdWNoIC4ke3BuYW1lfV9kb25lCi0JZmkKLX0KLQotX2JpbnV0aWxzX2J1aWxkKCkgewotCWxv Y2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZSBdICYmIHJl dHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBiaW51 dGlscyBib290c3RyYXBcbiIKLQotCVsgISAtZCBiaW51dGlscy1idWlsZCBdICYmIG1rZGlyIGJp bnV0aWxzLWJ1aWxkCi0JY2QgYmludXRpbHMtYnVpbGQKLQlfYXJncz0iLS1wcmVmaXg9L3VzciIK LQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9v dD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlz YWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9yIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3RlbS16bGliIgotCV9hcmdzKz0i IC0tZW5hYmxlLXNlY3VyZXBsdCIKLQotCS4uL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259 L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSBjb25maWd1cmUtaG9zdCAmJiBtYWtlICR7bWFr ZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxk X2RvbmUKLX0KLQotX2djY19ib290c3RyYXAoKSB7Ci0JbG9jYWwgX2FyZ3MKLQlbIC1mICR7d3Jr c3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9n Y2MtJHtfZ2NjX3ZlcnNpb259Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL3BhdGNo ZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JZG9uZQotCWZvciBmIGlu ICR7WEJQU19TUkNQS0dESVJ9L2djYy9maWxlcy8qLW11c2wucGF0Y2g7IGRvCi0JCV9hcHBseV9w YXRjaCAtcDEgIiRmIgotCWRvbmUKLQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBi b290c3RyYXBcbiIKLQotCVsgISAtZCAuLi9nY2MtYm9vdHN0cmFwIF0gJiYgbWtkaXIgLi4vZ2Nj LWJvb3RzdHJhcAotCWNkIC4uL2djYy1ib290c3RyYXAKLQotCV9hcmdzPSItLXByZWZpeD0vdXNy IgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNy b290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0td2l0aC1uZXdsaWIiCi0JX2FyZ3MrPSIgLS1l bmFibGUtbGFuZ3VhZ2VzPWMiCi0JX2FyZ3MrPSIgLS13aXRoLW5ld2xpYiIKLQlfYXJncys9IiAt LWRpc2FibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS10aHJlYWRzIgotCV9hcmdz Kz0iIC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVk ZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliZ29tcCIKLQlfYXJncys9IiAtLWRpc2FibGUt bGliYXRvbWljIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zeW12ZXJzIgotCV9hcmdzKz0iIGxpYmF0 X2N2X2hhdmVfaWZ1bmM9bm8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2VjdXJlcGx0IgotCi0JQ0ZM QUdTPSItTzAgLWcwIiBDWFhGTEFHUz0iLU8wIC1nMCIgXAotCQkuLi9nY2MtJHtfZ2NjX3ZlcnNp b259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFs bAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUKLX0KLQotX2xpbnV4X2hl YWRlcnMoKSB7Ci0JWyAtZiAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4g MAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgTGludXggQVBJIGhlYWRl cnNcbiIKLQotCWNkIGxpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0KLQlmb3IgZiBpbiAke1hCUFNf U1JDUEtHRElSfS9rZXJuZWwtbGliYy1oZWFkZXJzL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJX2Fw cGx5X3BhdGNoIC1wMCAkZgotCWRvbmUKLQotCW1ha2UgQVJDSD1wb3dlcnBjIGhlYWRlcnNfY2hl Y2sKLQltYWtlIEFSQ0g9cG93ZXJwYyBJTlNUQUxMX0hEUl9QQVRIPSR7X3N5c3Jvb3R9L3VzciBo ZWFkZXJzX2luc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZQotfQot Ci1fbXVzbF9idWlsZCgpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubXVzbF9idWlsZF9kb25lIF0gJiYg cmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9tdXNsLSR7X211c2xfdmVyc2lvbn0KLQltc2dfbm9y bWFsICJCdWlsZGluZyBjcm9zcyBtdXNsIGxpYmNcbiIKLQotCSMgQXBwbHkgbXVzbCBwYXRjaGVz IGlmIHRoZXJlIGFyZSBhbnkKLQlpZiBbIC1kICIke1hCUFNfU1JDUEtHRElSfS9tdXNsL3BhdGNo ZXMiIF07IHRoZW4KLQkJZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vbXVzbC9wYXRjaGVzLyou cGF0Y2g7IGRvCi0JCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQkJZG9uZQotCWZpCi0KLQlDQz0i JHtfdHJpcGxldH0tZ2NjIiBDRkxBR1M9Ii1PcyAtcGlwZSAtZlBJQyIgXAotCQkuL2NvbmZpZ3Vy ZSAtLXByZWZpeD0vdXNyCi0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBERVNURElSPSR7X3N5 c3Jvb3R9IGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8ubXVzbF9idWlsZF9kb25lCi19Ci0K LV9nY2NfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYnVp bGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWls ZGluZyBjcm9zcyBnY2MgZmluYWxcbiIKLQotCVsgISAtZCBnY2MtYnVpbGQgXSAmJiBta2RpciBn Y2MtYnVpbGQKLQljZCBnY2MtYnVpbGQKLQotCV9hcmdzPSItLXRhcmdldD0ke190cmlwbGV0fSIK LQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLXByZWZp eD0vdXNyIgotCV9hcmdzKz0iIC0tbGliZXhlY2Rpcj0vdXNyL2xpYiIKLQlfYXJncys9IiAtLWVu YWJsZS1sYW5ndWFnZXM9YyxhZGEsYysrLG9iamMsb2JqLWMrKyxmb3J0cmFuLGx0byIKLQlfYXJn cys9IiAtLWVuYWJsZS1sdG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGliYWRhIgotCV9hcmdzKz0i IC0tZW5hYmxlLWRlZmF1bHQtcGllIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtc3NwIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzYW5pdGl6ZXIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11 bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxp YnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGlic3NwIgotCV9hcmdzKz0iIC0t ZW5hYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtc3ltdmVycyIKLQlfYXJncys9IiBs aWJhdF9jdl9oYXZlX2lmdW5jPW5vIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0 IgotCV9hcmdzKz0iIC0tZW5hYmxlLXNlY3VyZXBsdCIKLQotCS4uL2djYy0ke19nY2NfdmVyc2lv bn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0KLQl0b3VjaCAke3dy a3NyY30vLmdjY19idWlsZF9kb25lCi19Ci0KLWRvX2J1aWxkKCkgewotCSMgRW5zdXJlIHdlIHVz ZSBzYW5lIGVudmlyb25tZW50Ci0JdW5zZXQgQ0MgQ1hYIENQUCBMRCBBUyBBUiBSQU5MSUIgT0JK RFVNUCBSRUFERUxGIE5NCi0JdW5zZXQgQ0ZMQUdTIENYWEZMQUdTIENQUEZMQUdTIExERkxBR1MK LQlleHBvcnQgQ0ZMQUdTPSItT3MgLXBpcGUiIENYWEZMQUdTPSItT3MgLXBpcGUiCi0KLQlmb3Ig ZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtfc3lz cm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtfc3lzcm9vdH0vdXNyLyR7Zn0K LQkJZmkKLQkJaWYgWyAhIC1oICR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAk e19zeXNyb290fS91c3IvJHtmfSAke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1z ZiBsaWIgJHtfc3lzcm9vdH0vdXNyL2xpYjMyCi0JbG4gLXNmIHVzci9saWIgJHtfc3lzcm9vdH0v bGliMzIKLQotCV9iaW51dGlsc19idWlsZAotCV9nY2NfYm9vdHN0cmFwCi0JX2xpbnV4X2hlYWRl cnMKLQlfbXVzbF9idWlsZAotCV9nY2NfYnVpbGQKLX0KLQotZG9faW5zdGFsbCgpIHsKLQlmb3Ig ZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtERVNU RElSfS8ke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vz ci8ke2Z9IFwKLQkJCQkke0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0J bG4gLXNmIGxpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIzMgotCWxuIC1zZiB1c3Iv bGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliMzIKLQotCSMgaW5zdGFsbCBsaW51eCBBUEkg aGVhZGVycwotCWNkICR7d3Jrc3JjfS9saW51eC0ke19saW51eF92ZXJzaW9ufQotCW1ha2UgQVJD SD1wb3dlcnBjIElOU1RBTExfSERSX1BBVEg9JHtERVNURElSfS8ke19zeXNyb290fS91c3IgaGVh ZGVyc19pbnN0YWxsCi0Jcm0gLWYgJChmaW5kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2lu Y2x1ZGUgLW5hbWUgLmluc3RhbGwgLW9yIC1uYW1lIC4uaW5zdGFsbC5jbWQpCi0Jcm0gLXJmICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUvZHJtCi0KLQkjIGluc3RhbGwgY3Jvc3Mg YmludXRpbHMKLQljZCAke3dya3NyY30vYmludXRpbHMtYnVpbGQKLQltYWtlIERFU1RESVI9JHtE RVNURElSfSBpbnN0YWxsCi0KLQkjIGluc3RhbGwgY3Jvc3MgZ2NjCi0JY2QgJHt3cmtzcmN9L2dj Yy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgbW92ZSBsaWJj YzEuc28qIHRvIHRoZSBzeXNyb290Ci0JbXYgJHtERVNURElSfS91c3IvbGliL2xpYmNjMS5zbyog JHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0KLQkjIGluc3RhbGwgbXVzbCBsaWJjIGZv ciB0YXJnZXQKLQljZCAke3dya3NyY30vbXVzbC0ke19tdXNsX3ZlcnNpb259Ci0JbWFrZSBERVNU RElSPSR7REVTVERJUn0vJHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JIyBSZW1vdmUgdXNlbGVzcyBo ZWFkZXJzLgotCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyovaW5j bHVkZS1maXhlZAotCi0JIyBNYWtlIGxkLW11c2wuc28gc3ltbGlua3MgcmVsYXRpdmUuCi0JbG4g LXNmIGxpYmMuc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xkLW11c2wtcG93ZXJw Y2xlLnNvLjEKLQlsbiAtc2YgbGliYy5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIv bGQtbXVzbC1wb3dlcnBjbGUtc2Yuc28uMQotCi0JIyBzeW1saW5rcyBmb3IgZ25hcmwgYW5kIGdu YXQgc2hhcmVkIGxpYnJhcmllcwotCV9tYWpvcnZlcj0ke19nY2NfdmVyc2lvbiUuKi4qfQotCV9h ZGFsaWI9dXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxpYgotCW12 IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmFybC0ke19tYWpvcnZlcn0uc28gJHtERVNU RElSfS8ke19zeXNyb290fS91c3IvbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xp YmduYXQtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCWxu IC1zdmYgbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXJsLnNvCi0JbG4gLXN2ZiBsaWJn bmF0LSR7X21ham9ydmVyfS5zbyBsaWJnbmF0LnNvCi0Jcm0gLXZmICR7REVTVERJUn0vJHtfYWRh bGlifS9saWJnbmF7cmwsdH0uc28KLQotCSMgV2UgbmVlZCB0byBidWlsZCBsaWJhdG9taWMgaW4g dGFyZ2V0IGdjYyBhcyBnY2NnbyBuZWVkcyBpdCB0bwotCSMgYnVpbGQuLi4gYnV0IGl0J3Mgbm90 IG5lZWRlZCBhdCBydW50aW1lLCBzbyByZW1vdmUgaXQgZnJvbSB0aGUKLQkjIGRlc3RkaXIgc28g aXQgZG9lc24ndCBjb25mbGljdCB3aXRoIHRoZSBsaWJhdG9taWMgcGFja2FnZQotCXJtIC1mICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYi9saWJhdG9taWMuKgotCi0JIyBSZW1vdmUgdW5u ZWNlc3Nhcnkgc3R1ZmYKLQlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCi0J cm0gLXJmICR7REVTVERJUn0vdXNyL3NoYXJlCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9v dH0ve2V0Yyx2YXJ9Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL3tzYmluLHNo YXJlLGxpYmV4ZWN9Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWJleGVjCi0Jcm0g LWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWIvKi5weQotCXJtIC1mICR7REVTVERJUn0vJHtf c3lzcm9vdH0ve3NiaW4sbGlifQotfQotCiBjcm9zcy1wb3dlcnBjbGUtbGludXgtbXVzbC1saWJj X3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGxpYmMgZmlsZXMiCiAJbm9zdHJpcD15ZXMK IAlub3ZlcmlmeXJkZXBzPXllcwogCW5vc2hsaWJwcm92aWRlcz15ZXMKKwogCXBrZ19pbnN0YWxs KCkgewotCQl2bW92ZSAke19zeXNyb290fQorCQl2bW92ZSB1c3IvJHtjcm9zc190cmlwbGV0fQog CX0KIH0KCkZyb20gYThlZTIxYzEyZGQ5YjQxMzg3MDdkNjFjMjQzYWQ5ZTJiMmJiZmJhYiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0 ZTogU2F0LCAyNiBEZWMgMjAyMCAxODo1NTowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjEvMjZd IGNyb3NzLXBvd2VycGM2NGxlLWxpbnV4LWdudTogcmV3b3JrIHdpdGggdm9pZC1jcm9zcwoKLS0t CiBzcmNwa2dzL2Nyb3NzLXBvd2VycGM2NGxlLWxpbnV4LWdudS90ZW1wbGF0ZSB8IDM2NSArLS0t LS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgMzQ4IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0bGUtbGludXgt Z251L3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1wb3dlcnBjNjRsZS1saW51eC1nbnUvdGVtcGxh dGUKaW5kZXggNzFlZjZiYzRmNTcuLjIzN2YyZjE0ZTZhIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Ny b3NzLXBvd2VycGM2NGxlLWxpbnV4LWdudS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLXBv d2VycGM2NGxlLWxpbnV4LWdudS90ZW1wbGF0ZQpAQCAtMSwxOSArMSwyMiBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnY3Jvc3MtcG93ZXJwYzY0bGUtbGludXgtZ251JworX3RyaXBsZXQ9cG93ZXJw YzY0bGUtbGludXgtZ251CiBfYmludXRpbHNfdmVyc2lvbj0yLjMyCiBfZ2NjX3ZlcnNpb249OS4z LjAKIF9nbGliY192ZXJzaW9uPTIuMzAKIF9saW51eF92ZXJzaW9uPTQuMTkKLQotX3RyaXBsZXQ9 InBvd2VycGM2NGxlLWxpbnV4LWdudSIKLV9zeXNyb290PSIvdXNyLyR7X3RyaXBsZXR9IgotCiBw a2duYW1lPWNyb3NzLSR7X3RyaXBsZXR9CiB2ZXJzaW9uPTAuMzMKIHJldmlzaW9uPTEKLXNob3J0 X2Rlc2M9IkdOVSBjcm9zcyB0b29sY2hhaW4gZm9yIHRoZSAke190cmlwbGV0fSB0YXJnZXRzIChi aW51dGlscy9nY2MvZ2xpYmMpIgorYnVpbGRfc3R5bGU9dm9pZC1jcm9zcworY29uZmlndXJlX2Fy Z3M9Ii0tZW5hYmxlLXNlY3VyZXBsdCAtLWRpc2FibGUtdnRhYmxlLXZlcmlmeSAtLXdpdGgtYWJp PWVsZnYyCisgLS1lbmFibGUtdGFyZ2V0cz1wb3dlcnBjbGUtbGludXgiCitob3N0bWFrZWRlcGVu ZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCittYWtlZGVwZW5kcz0i aXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwi CitkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK3Nob3J0 X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke190cmlwbGV0fSIKIG1haW50YWluZXI9 InE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+IgotaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRs aW51eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwg TEdQTC0yLjEtb3ItbGF0ZXIiCitob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8i CiBkaXN0ZmlsZXM9IgogICR7R05VX1NJVEV9L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2JpbnV0aWxz X3ZlcnNpb259LnRhci54egogICR7R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259L2dj Yy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CkBAIC0yNCwzNTggKzI3LDI0IEBAIGNoZWNrc3VtPSIw YWI2YzU1ZGQ4NmE5MmVkNTYxOTcyYmExNWI5YjcwYThiOWY3NTU1N2Y4OTY0NDZjODJlOGIzNmU0 NzNlZTA0CiAgZTJjNDExNGU1NjlhZmJlN2VkYmMyOTEzMWE0M2JlODMzODUwYWI5YTQ1OWQ4MWJl YjI1ODgwMTZkMmJiYjhhZgogIDBjNjhmNTY1NTUyOGFlZDRmOTlkYWU3MWE1YjI1OWVkYzkzMjM5 ZmE4OTllMmRmNzljMDU1Mjc1YzIxNzQ5YTEiCiAKLWxpYjMyZGlzYWJsZWQ9eWVzCi1ub2Nyb3Nz PXllcwotbm9waWU9eWVzCi1ub2RlYnVnPXllcwotY3JlYXRlX3dya3NyYz15ZXMKLWhvc3RtYWtl ZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBl bmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCIKLW5vc3RyaXBfZmlsZXM9 ImxpYmNhZl9zaW5nbGUuYSBsaWJnY2MuYSBsaWJnY292LmEgbGliZ2NjX2VoLmEKLSBsaWJnbmFy bF9waWMuYSBsaWJnbmFybC5hIGxpYmduYXRfcGljLmEgbGliZ25hdC5hIGxpYmdtZW0uYSIKLWRl cGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotCi1pZiBbICIk WEJQU19UQVJHRVRfTElCQyIgIT0gImdsaWJjIiBdOyB0aGVuCi0JYnJva2VuPSJnbGliYyBjcm9z c3Rvb2xjaGFpbiBvbmx5IGF2YWlsYWJsZSBvbiBnbGliYyIKLWZpCi0KLWlmIFsgIiRYQlBTX1RB UkdFVF9XT1JEU0laRSIgIT0gIjY0IiBdOyB0aGVuCi0JYnJva2VuPSI2NC1iaXQgY3Jvc3N0b29s Y2hhaW4gb25seSBhdmFpbGFibGUgb24gNjQtYml0IGhvc3QiCi1maQorY3Jvc3NfdHJpcGxldD0k e190cmlwbGV0fQorY3Jvc3NfbGludXhfYXJjaD1wb3dlcnBjCitjcm9zc19iaW51dGlsc19jb25m aWd1cmVfYXJncz0iLS1lbmFibGUtc2VjdXJlcGx0IgorIyBleHBsaWNpdGx5IGVuYWJsZSBmb3Ig ZmluYWwgZ2NjLCBnZm9ydHJhbiBkb2VzIG5vdCBidWlsZCB3aXRob3V0IG9uIHBwYzY0bGUKK2Ny b3NzX2djY19jb25maWd1cmVfYXJncz0iLS1lbmFibGUtbGlicXVhZG1hdGgiCitjcm9zc19nbGli Y19jZmxhZ3M9Ii1PMiIKIAogaWYgWyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0gInBwYzY0bGUi IF07IHRoZW4KIAlicm9rZW49IkNhbid0IGJ1aWxkIGNyb3NzdG9vbGNoYWluIHRvIGl0c2VsZiIK IGZpCiAKLV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5h bWUgJDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRjaCAt TiAkYXJncyAtaSAkMgotCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0KLV9iaW51dGls c19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmJpbnV0aWxzX2J1 aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVp bGRpbmcgY3Jvc3MgYmludXRpbHMgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgYmludXRpbHMtYnVp bGQgXSAmJiBta2RpciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0aWxzLWJ1aWxkCi0KLQlfYXJn cz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJn cys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxz IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vy cm9yIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Rl bS16bGliIgotCi0JLi4vYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0vY29uZmlndXJlICR7 X2FyZ3N9Ci0KLQltYWtlIGNvbmZpZ3VyZS1ob3N0Ci0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2Ug aW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25lCi19Ci0KLV9n Y2NfYm9vdHN0cmFwKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2Jv b3RzdHJhcF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nY2MtJHtfZ2NjX3Zl cnNpb259Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL3BhdGNoZXMvKi5wYXRjaDsg ZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JZG9uZQotCi0JbXNnX25vcm1hbCAiQnVpbGRp bmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1ib290c3RyYXAgXSAm JiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJhcAotCi0JX2FyZ3M9 Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3Mr PSIgLS13aXRoLWFiaT1lbGZ2MiIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyIKLQlf YXJncys9IiAtLWVuYWJsZS1zZWN1cmVwbHQiCi0JX2FyZ3MrPSIgLS1lbmFibGUtdGFyZ2V0cz1w b3dlcnBjbGUtbGludXgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAt LWRpc2FibGUtbGliaXRtIgotCV9hcmdzKz0iIC0td2l0aG91dC1oZWFkZXJzIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdz Kz0iIC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IgotCV9hcmdzKz0iIC0tZGlzYWJsZS10aHJlYWRz IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11 ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmdvbXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LWxpYmF0b21pYyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlz YWJsZS1zamxqLWV4Y2VwdGlvbnMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9h cmdzKz0iIC0td2l0aC1nbnUtbGQiCi0JX2FyZ3MrPSIgLS13aXRoLWdudS1hcyIKLQotCS4uL2dj Yy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9 Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZQot fQotCi1fbGludXhfaGVhZGVycygpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9u ZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBM aW51eCBBUEkgaGVhZGVyc1xuIgotCi0JY2QgbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQotCW1h a2UgQVJDSD1wb3dlcnBjIGhlYWRlcnNfY2hlY2sKLQltYWtlIEFSQ0g9cG93ZXJwYyBJTlNUQUxM X0hEUl9QQVRIPSR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQotCXRvdWNoICR7d3Jr c3JjfS8ubGludXhfYnVpbGRfZG9uZQotfQotCi1fZ2xpYmNfaGVhZGVycygpIHsKLQlsb2NhbCBf YXJncyBmCi0JWyAtZiAke3dya3NyY30vLmdsaWJjX2hlYWRlcnNfZG9uZSBdICYmIHJldHVybiAw Ci0KLQljZCAke3dya3NyY30vZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0KLQlpZiBbIC1kICIke1hC UFNfU1JDUEtHRElSfS9nbGliYy9wYXRjaGVzIiBdOyB0aGVuCi0JCWZvciBmIGluICR7WEJQU19T UkNQS0dESVJ9L2dsaWJjL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJCV9hcHBseV9wYXRjaCAtcDEg IiRmIgotCQlkb25lCi0JZmkKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5n IGNyb3NzIGdsaWJjIGhlYWRlcnNcbiIKLQotCVsgISAtZCBnbGliYy1oZWFkZXJzIF0gJiYgbWtk aXIgZ2xpYmMtaGVhZGVycwotCWNkIGdsaWJjLWhlYWRlcnMKLQotCWVjaG8gImxpYmNfY3ZfZm9y Y2VkX3Vud2luZD15ZXMiID4gY29uZmlnLmNhY2hlCi0JZWNobyAibGliY19jdl9jX2NsZWFudXA9 eWVzIiA+PiBjb25maWcuY2FjaGUKLQotCWV4cG9ydCBDQz0iJHtfdHJpcGxldH0tZ2NjIiBMRD0i JHtfdHJpcGxldH0tbGQiIFwKLQkJQVM9IiR7X3RyaXBsZXR9LWFzIiBDUFA9IiR7X3RyaXBsZXR9 LWNwcCIgXAotCQlOTT0iJHtfdHJpcGxldH0tbm0iCi0KLQlfYXJncz0iIC0tcHJlZml4PS91c3Ii Ci0JX2FyZ3MrPSIgLS1ob3N0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1oZWFkZXJz PSR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIgotCV9hcmdzKz0iIC0tY29uZmlnLWNhY2hlIgotCV9h cmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLXJwYyIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0 ZS1uc2wiCi0JX2FyZ3MrPSIgLS1lbmFibGUta2VybmVsPTIuNi4yNyIKLQotCS4uL2dsaWJjLSR7 X2dsaWJjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAtayBpbnN0YWxsLWhl YWRlcnMgY3Jvc3NfY29tcGlsaW5nPXllcyBcCi0JCWluc3RhbGxfcm9vdD0ke19zeXNyb290fQot Ci0JdG91Y2ggJHt3cmtzcmN9Ly5nbGliY19oZWFkZXJzX2RvbmUKLX0KLQotX2dsaWJjX2J1aWxk KCkgewotCWxvY2FsIF9hcmdzCi0JWyAtZiAke3dya3NyY30vLmdsaWJjX2J1aWxkX2RvbmUgXSAm JiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3Mg Z2xpYmNcbiIKLQotCVsgISAtZCBnbGliYy1idWlsZCBdICYmIG1rZGlyIGdsaWJjLWJ1aWxkCi0J Y2QgZ2xpYmMtYnVpbGQKLQotCWVjaG8gInNsaWJkaXI9L3Vzci9saWI2NCIgPiBjb25maWdwYXJt cwotCi0JZWNobyAibGliY19jdl9mb3JjZWRfdW53aW5kPXllcyIgPiBjb25maWcuY2FjaGUKLQll Y2hvICJsaWJjX2N2X2NfY2xlYW51cD15ZXMiID4+IGNvbmZpZy5jYWNoZQotCi0JZXhwb3J0IEND PSIke190cmlwbGV0fS1nY2MiIENYWD0iJHtfdHJpcGxldH0tZysrIiBMRD0iJHtfdHJpcGxldH0t bGQiIFwKLQkJQVM9IiR7X3RyaXBsZXR9LWFzIiBDUFA9IiR7X3RyaXBsZXR9LWNwcCIgXAotCQlO TT0iJHtfdHJpcGxldH0tbm0iCi0JZXhwb3J0IENGTEFHUz0iLU8yIC1waXBlIgotCi0JX2FyZ3M9 Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJkaXI9L3Vzci9saWI2NCIKLQlfYXJncys9 IiAtLWhvc3Q9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLWhlYWRlcnM9JHtfc3lzcm9v dH0vdXNyL2luY2x1ZGUiCi0JX2FyZ3MrPSIgLS1jb25maWctY2FjaGUiCi0JX2FyZ3MrPSIgLS1l bmFibGUtb2Jzb2xldGUtcnBjIgotCV9hcmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLW5zbCIKLQlf YXJncys9IiAtLWRpc2FibGUtcHJvZmlsZSIKLQlfYXJncys9IiAtLWVuYWJsZS1rZXJuZWw9Mi42 LjI3IgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJyb3IiCi0KLQkuLi9nbGliYy0ke19nbGliY192 ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIGlu c3RhbGxfcm9vdD0ke19zeXNyb290fSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdsaWJj X2J1aWxkX2RvbmUKLX0KLQotX2djY19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCVsgLWYgJHt3 cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQlt c2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgZmluYWxcbiIKLQotCVsgISAtZCBnY2MtYnVp bGQgXSAmJiBta2RpciBnY2MtYnVpbGQKLQljZCBnY2MtYnVpbGQKLQotCXVuc2V0IExEIEFTCi0K LQkjIE1ha2UgdGhpcyBsaW5rIHRvIHRhcmdldCBsaWJzLgotCWlmIFsgISAtZiAuc2VkX3N1YnN0 X2RvbmUgXTsgdGhlbgotCQlzZWQgLWUgInMsIC9saWIvLCAke19zeXNyb290fS9saWIvLGc7cywg L3Vzci9saWIvLCAke19zeXNyb290fS91c3IvbGliLyxnIiBcCi0JCQktaSAke19zeXNyb290fS91 c3IvbGliL2xpYmMuc28KLQkJc2VkIC1lICJzLCAvbGliNjQvLCAke19zeXNyb290fS9saWI2NC8s ZztzLCAvdXNyL2xpYjY0LywgJHtfc3lzcm9vdH0vdXNyL2xpYjY0LyxnIiBcCi0JCQktaSAke19z eXNyb290fS91c3IvbGliL2xpYmMuc28KLQkJdG91Y2ggLnNlZF9zdWJzdF9kb25lCi0JZmkKLQot CV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGliZGlyPS91c3IvbGliIgotCV9h cmdzKz0iIC0tbGliZXhlY2Rpcj0vdXNyL2xpYiIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlw bGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAt LXdpdGgtYWJpPWVsZnYyIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFkYSxjKyss b2JqYyxvYmotYysrLGdvLGZvcnRyYW4sbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLXNlY3VyZXBs dCIKLQlfYXJncys9IiAtLWVuYWJsZS10YXJnZXRzPXBvd2VycGNsZS1saW51eCIKLQlfYXJncys9 IiAtLXdpdGgtZ251LWFzIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtbGQiCi0JX2FyZ3MrPSIgLS1l bmFibGUtbGliYWRhIgotCV9hcmdzKz0iIC0tZW5hYmxlLWx0byIKLQlfYXJncys9IiAtLWVuYWJs ZS1kZWZhdWx0LXBpZSIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXNzcCIKLQlfYXJncys9 IiAtLWVuYWJsZS1saW5rZXItYnVpbGQtaWQiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZ251LXVuaXF1 ZS1vYmplY3QiCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZW5hYmxl LXRocmVhZHM9cG9zaXgiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic2FuaXRpemVyIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxh cCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliaXRtIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJz dGRjeHgtcGNoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS12dGFibGUtdmVyaWZ5IgotCV9hcmdzKz0i IC0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMiCi0KLQlDQz0iZ2NjIiBDWFg9ImcrKyIgQ0ZMQUdT PSItTzIgLXBpcGUiIFwKLQkJLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJn c30KLQotCW1ha2UgJHttYWtlam9ic30KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2Rv bmUKLX0KLQotZG9fYnVpbGQoKSB7Ci0JdW5zZXQgTERGTEFHUwotCWV4cG9ydCBDRkxBR1M9Ii1P cyAtZlBJQyIgQ1hYRkxBR1M9Ii1PcyAtZlBJQyIKLQotCWZvciBmIGluIGluY2x1ZGUgbGliIGxp YmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke19zeXNyb290fS91c3IvJHtmfSBdOyB0 aGVuCi0JCQlta2RpciAtcCAke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWgg JHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7X3N5c3Jvb3R9L3Vzci8ke2Z9 ICR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke19zeXNyb290fS91 c3IvbGliNjQKLQlsbiAtc2YgdXNyL2xpYiAke19zeXNyb290fS9saWI2NAotCi0JX2JpbnV0aWxz X2J1aWxkCi0JX2djY19ib290c3RyYXAKLQlfbGludXhfaGVhZGVycwotCV9nbGliY19oZWFkZXJz Ci0JX2dsaWJjX2J1aWxkCi0JX2djY19idWlsZAotfQotCi1kb19pbnN0YWxsKCkgewotCWZvciBm IGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7REVTVERJUn0v JHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7REVTVERJUn0vJHtfc3lz cm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNy LyR7Zn0gXAotCQkJCSR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQls biAtc2YgbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYjY0Ci0JbG4gLXNmIHVzci9s aWIgJHtERVNURElSfS8ke19zeXNyb290fS9saWI2NAotCi0JIyBpbnN0YWxsIGxpbnV4IEFQSSBo ZWFkZXJzCi0JY2QgJHt3cmtzcmN9L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0JbWFrZSBBUkNI PXBvd2VycGMgSU5TVEFMTF9IRFJfUEFUSD0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3VzciBoZWFk ZXJzX2luc3RhbGwKLQlybSAtZiAkKGZpbmQgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5j bHVkZSAtbmFtZSAuaW5zdGFsbCAtb3IgLW5hbWUgLi5pbnN0YWxsLmNtZCkKLQlybSAtcmYgJHtE RVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZS9kcm0KLQotCSMgaW5zdGFsbCBjcm9zcyBi aW51dGlscwotCWNkICR7d3Jrc3JjfS9iaW51dGlscy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RF U1RESVJ9IGluc3RhbGwKLQotCSMgaW5zdGFsbCBjcm9zcyBnY2MKLQljZCAke3dya3NyY30vZ2Nj LWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBtb3ZlIGxpYmNj MS5zbyogdG8gdGhlIHN5c3Jvb3QKLQltdiAke0RFU1RESVJ9L3Vzci9saWIvbGliY2MxLnNvKiAk e0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQotCSMgaW5zdGFsbCBnbGliYyBmb3IgdGFy Z2V0Ci0JY2QgJHt3cmtzcmN9L2dsaWJjLWJ1aWxkCi0JbWFrZSBpbnN0YWxsX3Jvb3Q9JHtERVNU RElSfS8ke19zeXNyb290fSBpbnN0YWxsIGluc3RhbGwtaGVhZGVycwotCi0JIyBzeW1saW5rcyBm b3IgZ25hcmwgYW5kIGduYXQgc2hhcmVkIGxpYnJhcmllcwotCV9tYWpvcnZlcj0ke19nY2NfdmVy c2lvbiUuKi4qfQotCV9hZGFsaWI9dXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vJHtfZ2NjX3ZlcnNp b259L2FkYWxpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmFybC0ke19tYWpv cnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0JbXYgLXYgJHtERVNURElS fS8ke19hZGFsaWJ9L2xpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9v dH0vdXNyL2xpYgotCWxuIC1zdmYgbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXJsLnNv Ci0JbG4gLXN2ZiBsaWJnbmF0LSR7X21ham9ydmVyfS5zbyBsaWJnbmF0LnNvCi0Jcm0gLXZmICR7 REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF7cmwsdH0uc28KLQotCSMgV2UgbmVlZCB0byBidWls ZCBsaWJhdG9taWMgaW4gdGFyZ2V0IGdjYyBhcyBnY2NnbyBuZWVkcyBpdCB0bwotCSMgYnVpbGQu Li4gYnV0IGl0J3Mgbm90IG5lZWRlZCBhdCBydW50aW1lLCBzbyByZW1vdmUgaXQgZnJvbSB0aGUK LQkjIGRlc3RkaXIgc28gaXQgZG9lc24ndCBjb25mbGljdCB3aXRoIHRoZSBsaWJhdG9taWMgcGFj a2FnZQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYi9saWJhdG9taWMuKgot Ci0JIyBSZW1vdmUgdW5uZWNlc3Nhcnkgc3R1ZmYKLQlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIq L2xpYmliZXJ0eS5hCi0Jcm0gLXJmICR7REVTVERJUn0vdXNyL3NoYXJlCi0Jcm0gLXJmICR7REVT VERJUn0vJHtfc3lzcm9vdH0ve2V0Yyx2YXJ9Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9v dH0vdXNyL3tzYmluLHNoYXJlLGxpYmV4ZWN9Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290 fS9saWJleGVjCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS97c2JpbixsaWJ9Ci19Ci0K LWRvX2NsZWFuKCkgewotCSMgUmVtb3ZlIHRlbXBvcmFyeSBzdHVmZiBmcm9tIG1hc3RlcmRpcgot CXJtIC1yZiAke19zeXNyb290fQotCXJtIC1mIC91c3IvYmluLyR7X3RyaXBsZXR9KgotCXJtIC1y ZiAvdXNyL2xpYi9nY2MvJHtfdHJpcGxldH0KLQlybSAtcmYgL3Vzci9saWJleGVjL2djYy8ke190 cmlwbGV0fQotfQotCiBjcm9zcy1wb3dlcnBjNjRsZS1saW51eC1nbnUtbGliY19wYWNrYWdlKCkg ewogCXNob3J0X2Rlc2MrPSIgLSBnbGliYyBmaWxlcyIKIAlub3N0cmlwPXllcwogCW5vdmVyaWZ5 cmRlcHM9eWVzCiAJbm9zaGxpYnByb3ZpZGVzPXllcworCiAJcGtnX2luc3RhbGwoKSB7Ci0JCXZt b3ZlICR7X3N5c3Jvb3R9CisJCXZtb3ZlIHVzci8ke2Nyb3NzX3RyaXBsZXR9CiAJfQogfQoKRnJv bSA3NDMxYWM5NWU3MmY1MzI3NDQ3NmE5YzQ4NDg0MWY1N2FlZWFkYmYyIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTYXQsIDI2 IERlYyAyMDIwIDE4OjU4OjEzICswMTAwClN1YmplY3Q6IFtQQVRDSCAyMi8yNl0gY3Jvc3MtcG93 ZXJwYzY0bGUtbGludXgtbXVzbDogcmV3b3JrIHdpdGggdm9pZC1jcm9zcwoKLS0tCiBzcmNwa2dz L2Nyb3NzLXBvd2VycGM2NGxlLWxpbnV4LW11c2wvdGVtcGxhdGUgfCAzMTcgKy0tLS0tLS0tLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMzAyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0bGUtbGludXgtbXVzbC90ZW1w bGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0bGUtbGludXgtbXVzbC90ZW1wbGF0ZQppbmRl eCBlMDQxY2M1ZDA0MS4uODZiNjk1NDg4NjEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtcG93 ZXJwYzY0bGUtbGludXgtbXVzbC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLXBvd2VycGM2 NGxlLWxpbnV4LW11c2wvdGVtcGxhdGUKQEAgLTEsMTcgKzEsMjAgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2Nyb3NzLXBvd2VycGM2NGxlLWxpbnV4LW11c2wnCitfdHJpcGxldD1wb3dlcnBjNjRs ZS1saW51eC1tdXNsCiBfYmludXRpbHNfdmVyc2lvbj0yLjMyCiBfZ2NjX3ZlcnNpb249OS4zLjAK IF9tdXNsX3ZlcnNpb249MS4xLjI0CiBfbGludXhfdmVyc2lvbj00LjE5CiBfbGlidWNvbnRleHRf dmVyc2lvbj0wLjkuMAotCi1fdHJpcGxldD0icG93ZXJwYzY0bGUtbGludXgtbXVzbCIKLV9zeXNy b290PSIvdXNyLyR7X3RyaXBsZXR9IgotCiBwa2duYW1lPWNyb3NzLSR7X3RyaXBsZXR9CiB2ZXJz aW9uPTAuMzMKIHJldmlzaW9uPTIKLXNob3J0X2Rlc2M9IkNyb3NzIHRvb2xjaGFpbiBmb3IgcG93 ZXJwYzY0bGUgd2l0aCBtdXNsIgorYnVpbGRfc3R5bGU9dm9pZC1jcm9zcworY29uZmlndXJlX2Fy Z3M9Ii0tZW5hYmxlLXNlY3VyZXBsdCAtLWRpc2FibGUtdnRhYmxlLXZlcmlmeQorIC0tZGlzYWJs ZS1kZWNpbWFsLWZsb2F0IC0td2l0aC1hYmk9ZWxmdjIgLS1lbmFibGUtdGFyZ2V0cz1wb3dlcnBj bGUtbGludXgiCitob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJs IHB5dGhvbjMiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2 ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCitkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJz aW9ufV8ke3JldmlzaW9ufSIKK3Nob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAk e190cmlwbGV0fSIKIG1haW50YWluZXI9InE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+IgogaG9t ZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1vci1s YXRlciwgR1BMLTMuMC1vci1sYXRlciwgTUlUIgpAQCAtMjcsMzEzICszMCwyMyBAQCBjaGVja3N1 bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3MmJhMTViOWI3MGE4YjlmNzU1NTdmODk2NDQ2YzgyZThi MzZlNDczZWUwNAogIDBjNjhmNTY1NTUyOGFlZDRmOTlkYWU3MWE1YjI1OWVkYzkzMjM5ZmE4OTll MmRmNzljMDU1Mjc1YzIxNzQ5YTEKICAwZDUzYTQxNWEzMDdlZjE3NTE1M2JiZTYwYTU3MmM5NDBh OTIyY2I3MzZjZTEzNTMwYjY2NmU3ZWMyNzk1ZDY4IgogCi1saWIzMmRpc2FibGVkPXllcwotbm9j cm9zcz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMKLWNyZWF0ZV93cmtzcmM9eWVzCi1ob3N0 bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCi1tYWtl ZGVwZW5kcz0iemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCBsaWJtcGMtZGV2ZWwgaXNs MTUtZGV2ZWwiCi1ub3N0cmlwX2ZpbGVzPSJsaWJjYWZfc2luZ2xlLmEgbGliZ2NjLmEgbGliZ2Nv di5hIGxpYmdjY19laC5hCi0gbGliZ25hcmxfcGljLmEgbGliZ25hcmwuYSBsaWJnbmF0X3BpYy5h IGxpYmduYXQuYSBsaWJnbWVtLmEiCi1kZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9u fV8ke3JldmlzaW9ufSIKLQotaWYgWyAiJFhCUFNfVEFSR0VUX1dPUkRTSVpFIiAhPSAiNjQiIF07 IHRoZW4KLQlicm9rZW49IjY0LWJpdCBjcm9zc3Rvb2xjaGFpbiBvbmx5IGF2YWlsYWJsZSBvbiA2 NC1iaXQgaG9zdCIKLWZpCitjcm9zc190cmlwbGV0PSR7X3RyaXBsZXR9Citjcm9zc19saWJ1Y29u dGV4dF9hcmNoPXBwYzY0Citjcm9zc19saW51eF9hcmNoPXBvd2VycGMKK2Nyb3NzX2JpbnV0aWxz X2NvbmZpZ3VyZV9hcmdzPSItLWVuYWJsZS1zZWN1cmVwbHQiCitjcm9zc19tdXNsX2NmbGFncz0i LU8yIgogCiBpZiBbICIkWEJQU19UQVJHRVRfTUFDSElORSIgPSAicHBjNjRsZS1tdXNsIiBdOyB0 aGVuCiAJYnJva2VuPSJDYW4ndCBidWlsZCBjcm9zc3Rvb2xjaGFpbiB0byBpdHNlbGYiCiBmaQog Ci1fYXBwbHlfcGF0Y2goKSB7Ci0JbG9jYWwgYXJncz0iJDEiIHBuYW1lPSIkKGJhc2VuYW1lICQy KSIKLQotCWlmIFsgISAtZiAiLiR7cG5hbWV9X2RvbmUiIF07IHRoZW4KLQkJcGF0Y2ggLU4gJGFy Z3MgLWkgJDIKLQkJdG91Y2ggLiR7cG5hbWV9X2RvbmUKLQlmaQotfQotCi1fYmludXRpbHNfYnVp bGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9k b25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5n IGNyb3NzIGJpbnV0aWxzIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIGJpbnV0aWxzLWJ1aWxkIF0g JiYgbWtkaXIgYmludXRpbHMtYnVpbGQKLQljZCBiaW51dGlscy1idWlsZAotCi0JX2FyZ3M9Ii0t cHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIg LS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlf YXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXdlcnJvciIK LQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0td2l0aC1zeXN0ZW0temxp YiIKLQotCS4uL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdz fQotCi0JbWFrZSBjb25maWd1cmUtaG9zdAotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3Rh bGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2Jv b3RzdHJhcCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdjY19ib290c3Ry YXBfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vZ2NjLSR7X2djY192ZXJzaW9u fQotCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0J CV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCWRvbmUKLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElS fS9nY2MvZmlsZXMvKi1tdXNsLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAxICIkZiIKLQlk b25lCi0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgYm9vdHN0cmFwXG4iCi0KLQlb ICEgLWQgLi4vZ2NjLWJvb3RzdHJhcCBdICYmIG1rZGlyIC4uL2djYy1ib290c3RyYXAKLQljZCAu Li9nY2MtYm9vdHN0cmFwCi0JZXhwb3J0IGFjX2N2X2NfY29tcGlsZXJfZ251PXllcwotCi0JX2Fy Z3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2Fy Z3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS13aXRoLWFiaT1l bGZ2MiIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyIKLQlfYXJncys9IiAtLWVuYWJs ZS1kZWNpbWFsLWZsb2F0PW5vIgotCV9hcmdzKz0iIC0tZW5hYmxlLXNlY3VyZXBsdCIKLQlfYXJn cys9IiAtLWVuYWJsZS10YXJnZXRzPXBvd2VycGNsZS1saW51eCIKLQlfYXJncys9IiAtLXdpdGgt bmV3bGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLXRocmVhZHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRp c2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLWxpYmdvbXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmF0b21pYyIKLQlf YXJncys9IiAtLWRpc2FibGUtc3ltdmVycyIKLQlfYXJncys9IiBsaWJhdF9jdl9oYXZlX2lmdW5j PW5vIgotCi0JLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1h a2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2Jv b3RzdHJhcF9kb25lCi19Ci0KLV9saW51eF9oZWFkZXJzKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5s aW51eF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3Jt YWwgIkJ1aWxkaW5nIExpbnV4IEFQSSBoZWFkZXJzXG4iCi0KLQljZCBsaW51eC0ke19saW51eF92 ZXJzaW9ufQotCi0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0va2VybmVsLWxpYmMtaGVhZGVy cy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgJGYKLQlkb25lCi0KLQlt YWtlIEFSQ0g9cG93ZXJwYyBoZWFkZXJzX2NoZWNrCi0JbWFrZSBBUkNIPXBvd2VycGMgSU5TVEFM TF9IRFJfUEFUSD0ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0KLQl0b3VjaCAke3dy a3NyY30vLmxpbnV4X2J1aWxkX2RvbmUKLX0KLQotX211c2xfYnVpbGQoKSB7Ci0JWyAtZiAke3dy a3NyY30vLm11c2xfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vbXVz bC0ke19tdXNsX3ZlcnNpb259Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgbXVzbCBsaWJj XG4iCi0KLQkjIEFwcGx5IG11c2wgcGF0Y2hlcyBpZiB0aGVyZSBhcmUgYW55Ci0JaWYgWyAtZCAi JHtYQlBTX1NSQ1BLR0RJUn0vbXVzbC9wYXRjaGVzIiBdOyB0aGVuCi0JCWZvciBmIGluICR7WEJQ U19TUkNQS0dESVJ9L211c2wvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQkJX2FwcGx5X3BhdGNoIC1w MCAiJGYiCi0JCWRvbmUKLQlmaQotCi0JQ0M9IiR7X3RyaXBsZXR9LWdjYyIgTEQ9IiR7X3RyaXBs ZXR9LWxkIiBBUj0iJHtfdHJpcGxldH0tYXIiIFwKLQkJQVM9IiR7X3RyaXBsZXR9LWFzIiBSQU5M SUI9IiR7X3RyaXBsZXR9LXJhbmxpYiIgXAotCQlDRkxBR1M9Ii1PcyAtcGlwZSAtZlBJQyAke19h cmNoZmxhZ3N9IiBcCi0JCS4vY29uZmlndXJlIC0tcHJlZml4PS91c3IKLQotCW1ha2UgJHttYWtl am9ic30KLQltYWtlIERFU1RESVI9JHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtz cmN9Ly5tdXNsX2J1aWxkX2RvbmUKLX0KLQotX2xpYnVjb250ZXh0X2J1aWxkKCkgewotCVsgLWYg JHt3cmtzcmN9Ly5saWJ1Y29udGV4dF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7 d3Jrc3JjfS9saWJ1Y29udGV4dC0ke19saWJ1Y29udGV4dF92ZXJzaW9ufQotCW1zZ19ub3JtYWwg IkJ1aWxkaW5nIGNyb3NzIGxpYnVjb250ZXh0XG4iCi0KLQkjIGl0J3Mgb2sgaWYgd2UncmUgc3Rh dGljIG9ubHkgaGVyZQotCUNDPSIke190cmlwbGV0fS1nY2MiIEFSPSIke190cmlwbGV0fS1hciIg QVM9IiR7X3RyaXBsZXR9LWFzIiBcCi0JCUNGTEFHUz0iLU9zIC1waXBlICR7X2FyY2hmbGFnc30i IFwKLQkJbWFrZSBBUkNIPXBwYzY0IGxpYnVjb250ZXh0LmEKLQotCWNwIGxpYnVjb250ZXh0LmEg JHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saWJ1Y29udGV4dF9idWls ZF9kb25lCi19Ci0KLV9nY2NfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQlbIC1mICR7d3Jrc3Jj fS8uZ2NjX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25v cm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGZpbmFsXG4iCi0KLQlbICEgLWQgZ2NjLWJ1aWxkIF0g JiYgbWtkaXIgZ2NjLWJ1aWxkCi0JY2QgZ2NjLWJ1aWxkCi0KLQlfYXJncz0iLS1wcmVmaXg9L3Vz ciIKLQlfYXJncys9IiAtLWxpYmV4ZWNkaXI9L3Vzci9saWIiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9 JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2Fy Z3MrPSIgLS13aXRoLWFiaT1lbGZ2MiIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9Yyxh ZGEsYysrLG9iamMsb2JqLWMrKyxnbyxmb3J0cmFuLGx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1k ZWNpbWFsLWZsb2F0PW5vIgotCV9hcmdzKz0iIC0tZW5hYmxlLXNlY3VyZXBsdCIKLQlfYXJncys9 IiAtLWVuYWJsZS10YXJnZXRzPXBvd2VycGNsZS1saW51eCIKLQlfYXJncys9IiAtLWVuYWJsZS1s aWJhZGEiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1 bHQtcGllIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtc3NwIgotCV9hcmdzKz0iIC0tZW5h YmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYnNhbml0aXplciIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2hhcmVk IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zeW12ZXJzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS12dGFi bGUtdmVyaWZ5IgotCV9hcmdzKz0iIGxpYmF0X2N2X2hhdmVfaWZ1bmM9bm8iCi0KLQkuLi9nY2Mt JHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQot Ci0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZQotfQotCi1kb19idWlsZCgpIHsKLQkj IEVuc3VyZSB3ZSB1c2Ugc2FuZSBlbnZpcm9ubWVudAotCXVuc2V0IENDIENYWCBDUFAgTEQgQVMg QVIgUkFOTElCIE9CSkRVTVAgUkVBREVMRiBOTQotCXVuc2V0IENGTEFHUyBDWFhGTEFHUyBDUFBG TEFHUyBMREZMQUdTCi0JZXhwb3J0IENGTEFHUz0iLU9zIC1waXBlIC1mUElDIiBDWFhGTEFHUz0i LU9zIC1waXBlIC1mUElDIgotCi0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2Jp bjsgZG8KLQkJaWYgWyAhIC1kICR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGly IC1wICR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke19zeXNyb290fS8k e2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gJHtfc3lzcm9vdH0v JHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7X3N5c3Jvb3R9L3Vzci9saWIzMgotCWxu IC1zZiB1c3IvbGliICR7X3N5c3Jvb3R9L2xpYjMyCi0KLQlfYmludXRpbHNfYnVpbGQKLQlfZ2Nj X2Jvb3RzdHJhcAotCV9saW51eF9oZWFkZXJzCi0JX211c2xfYnVpbGQKLQlfbGlidWNvbnRleHRf YnVpbGQKLQlfZ2NjX2J1aWxkCi19Ci0KLWRvX2luc3RhbGwoKSB7Ci0JZm9yIGYgaW4gaW5jbHVk ZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7REVTVERJUn0vJHtfc3lz cm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtERVNURElSfS8ke19zeXNyb290 fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9 IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBcCi0J CQkJJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIg JHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliNjQKLQlsbiAtc2YgdXNyL2xpYiAke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9L2xpYjY0Ci0KLQkjIGluc3RhbGwgbGludXggQVBJIGhlYWRlcnMKLQlj ZCAke3dya3NyY30vbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQltYWtlIEFSQ0g9cG93ZXJwYyBJ TlNUQUxMX0hEUl9QQVRIPSR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFs bAotCXJtIC1mICQoZmluZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIC1uYW1l IC5pbnN0YWxsIC1vciAtbmFtZSAuLmluc3RhbGwuY21kKQotCXJtIC1yZiAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L3Vzci9pbmNsdWRlL2RybQotCi0JIyBpbnN0YWxsIGNyb3NzIGJpbnV0aWxzCi0J Y2QgJHt3cmtzcmN9L2JpbnV0aWxzLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5z dGFsbAotCi0JIyBpbnN0YWxsIGNyb3NzIGdjYwotCWNkICR7d3Jrc3JjfS9nY2MtYnVpbGQKLQlt YWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIG1vdmUgbGliY2MxLnNvKiB0byB0 aGUgc3lzcm9vdAotCW12ICR7REVTVERJUn0vdXNyL2xpYi9saWJjYzEuc28qICR7REVTVERJUn0v JHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JIyBpbnN0YWxsIG11c2wgbGliYyBmb3IgdGFyZ2V0Ci0J Y2QgJHt3cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9ufQotCW1ha2UgREVTVERJUj0ke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCSMgUmVtb3ZlIHVzZWxlc3MgaGVhZGVycy4KLQly bSAtcmYgJHtERVNURElSfS91c3IvbGliL2djYy8ke190cmlwbGV0fS8qL2luY2x1ZGUtZml4ZWQv Ci0KLQkjIE1ha2UgbGQtbXVzbC1wb3dlcnBjNjRsZS5zby4xIHN5bWxpbmsgcmVsYXRpdmUgdG8g Y3dkLgotCWNkICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCWxuIC1zZiBsaWJjLnNv IGxkLW11c2wtcG93ZXJwYzY0bGUuc28uMQotCi0JIyBzeW1saW5rcyBmb3IgZ25hcmwgYW5kIGdu YXQgc2hhcmVkIGxpYnJhcmllcwotCV9tYWpvcnZlcj0ke19nY2NfdmVyc2lvbiUuKi4qfQotCV9h ZGFsaWI9dXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxpYgotCW12 IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmFybC0ke19tYWpvcnZlcn0uc28gJHtERVNU RElSfS8ke19zeXNyb290fS91c3IvbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xp YmduYXQtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCWxu IC1zdmYgbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXJsLnNvCi0JbG4gLXN2ZiBsaWJn bmF0LSR7X21ham9ydmVyfS5zbyBsaWJnbmF0LnNvCi0Jcm0gLXZmICR7REVTVERJUn0vJHtfYWRh bGlifS9saWJnbmF7cmwsdH0uc28KLQotCSMgV2UgbmVlZCB0byBidWlsZCBsaWJhdG9taWMgaW4g dGFyZ2V0IGdjYyBhcyBnY2NnbyBuZWVkcyBpdCB0bwotCSMgYnVpbGQuLi4gYnV0IGl0J3Mgbm90 IG5lZWRlZCBhdCBydW50aW1lLCBzbyByZW1vdmUgaXQgZnJvbSB0aGUKLQkjIGRlc3RkaXIgc28g aXQgZG9lc24ndCBjb25mbGljdCB3aXRoIHRoZSBsaWJhdG9taWMgcGFja2FnZQotCXJtIC1mICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYi9saWJhdG9taWMuKgotCi0JIyBSZW1vdmUgdW5u ZWNlc3Nhcnkgc3R1ZmYKLQlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCi0J cm0gLXJmICR7REVTVERJUn0vdXNyL3NoYXJlCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9v dH0ve2V0Yyx2YXJ9Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL3tzYmluLHNo YXJlLGxpYmV4ZWN9Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWJleGVjCi0Jcm0g LWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWIvKi5weQotCXJtIC1mICR7REVTVERJUn0vJHtf c3lzcm9vdH0ve3NiaW4sbGlifQotfQotCi1kb19jbGVhbigpIHsKLQkjIFJlbW92ZSB0ZW1wb3Jh cnkgc3R1ZmYgZnJvbSBtYXN0ZXJkaXIKLQlybSAtcmYgJHtfc3lzcm9vdH0KLQlybSAtZiAvdXNy L2Jpbi8ke190cmlwbGV0fSoKLQlybSAtcmYgL3Vzci9saWIvZ2NjLyR7X3RyaXBsZXR9Ci0Jcm0g LXJmIC91c3IvbGliZXhlYy9nY2MvJHtfdHJpcGxldH0KLX0KLQogY3Jvc3MtcG93ZXJwYzY0bGUt bGludXgtbXVzbC1saWJjX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGxpYmMgZmlsZXMi CiAJbm9zdHJpcD15ZXMKIAlub3ZlcmlmeXJkZXBzPXllcwogCW5vc2hsaWJwcm92aWRlcz15ZXMK KwogCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAke19zeXNyb290fQorCQl2bW92ZSB1c3IvJHtj cm9zc190cmlwbGV0fQogCX0KIH0KCkZyb20gZTEyYTQyM2RjZmUzOTA3Y2I3ODNkYmY3MzI2NzQ3 NDM2M2E4MzZjZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcTY2IDxkYW5pZWxAb2N0 YWZvcmdlLm9yZz4KRGF0ZTogU2F0LCAyNiBEZWMgMjAyMCAxOTowMzowMiArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMjMvMjZdIGNyb3NzLXBvd2VycGM2NC1saW51eC1nbnU6IHJld29yayB3aXRoIHZv aWQtY3Jvc3MKCi0tLQogc3JjcGtncy9jcm9zcy1wb3dlcnBjNjQtbGludXgtZ251L3RlbXBsYXRl IHwgMzYzICstLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE1IGluc2VydGlv bnMoKyksIDM0OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLXBvd2Vy cGM2NC1saW51eC1nbnUvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLXBvd2VycGM2NC1saW51eC1n bnUvdGVtcGxhdGUKaW5kZXggZWJjZWM0Yzc2YmUuLmZhMGFmMTExODBmIDEwMDY0NAotLS0gYS9z cmNwa2dzL2Nyb3NzLXBvd2VycGM2NC1saW51eC1nbnUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9j cm9zcy1wb3dlcnBjNjQtbGludXgtZ251L3RlbXBsYXRlCkBAIC0xLDE5ICsxLDIyIEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdjcm9zcy1wb3dlcnBjNjQtbGludXgtZ251JworX3RyaXBsZXQ9cG93 ZXJwYzY0LWxpbnV4LWdudQogX2JpbnV0aWxzX3ZlcnNpb249Mi4zMgogX2djY192ZXJzaW9uPTku My4wCiBfZ2xpYmNfdmVyc2lvbj0yLjMwCiBfbGludXhfdmVyc2lvbj00LjE5Ci0KLV90cmlwbGV0 PSJwb3dlcnBjNjQtbGludXgtZ251IgotX3N5c3Jvb3Q9Ii91c3IvJHtfdHJpcGxldH0iCi0KIHBr Z25hbWU9Y3Jvc3MtJHtfdHJpcGxldH0KIHZlcnNpb249MC4zMwogcmV2aXNpb249MQotc2hvcnRf ZGVzYz0iR05VIGNyb3NzIHRvb2xjaGFpbiBmb3IgdGhlICR7X3RyaXBsZXR9IHRhcmdldHMgKGJp bnV0aWxzL2djYy9nbGliYykiCitidWlsZF9zdHlsZT12b2lkLWNyb3NzCitjb25maWd1cmVfYXJn cz0iLS1lbmFibGUtc2VjdXJlcGx0IC0tZGlzYWJsZS12dGFibGUtdmVyaWZ5IC0td2l0aC1hYmk9 ZWxmdjIKKyAtLWVuYWJsZS10YXJnZXRzPXBvd2VycGMtbGludXgiCitob3N0bWFrZWRlcGVuZHM9 InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCittYWtlZGVwZW5kcz0iaXNs MTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCitk ZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK3Nob3J0X2Rl c2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke190cmlwbGV0fSIKIG1haW50YWluZXI9IkrD vHJnZW4gQnVjaG3DvGxsZXIgPHB1bGxtb2xsQHQtb25saW5lLmRlPiIKLWhvbWVwYWdlPSJodHRw czovL3d3dy52b2lkbGludXgub3JnLyIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0z LjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZv aWRsaW51eC5vcmcvIgogZGlzdGZpbGVzPSIKICAke0dOVV9TSVRFfS9iaW51dGlscy9iaW51dGls cy0ke19iaW51dGlsc192ZXJzaW9ufS50YXIueHoKICAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2dj Y192ZXJzaW9ufS9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egpAQCAtMjQsMzU4ICsyNywyMiBA QCBjaGVja3N1bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3MmJhMTViOWI3MGE4YjlmNzU1NTdmODk2 NDQ2YzgyZThiMzZlNDczZWUwNAogIGUyYzQxMTRlNTY5YWZiZTdlZGJjMjkxMzFhNDNiZTgzMzg1 MGFiOWE0NTlkODFiZWIyNTg4MDE2ZDJiYmI4YWYKICAwYzY4ZjU2NTU1MjhhZWQ0Zjk5ZGFlNzFh NWIyNTllZGM5MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExIgogCi1saWIzMmRpc2FibGVk PXllcwotbm9jcm9zcz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMKLWNyZWF0ZV93cmtzcmM9 eWVzCi1ob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhv bjMiCi1tYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwiCi1u b3N0cmlwX2ZpbGVzPSJsaWJjYWZfc2luZ2xlLmEgbGliZ2NjLmEgbGliZ2Nvdi5hIGxpYmdjY19l aC5hCi0gbGliZ25hcmxfcGljLmEgbGliZ25hcmwuYSBsaWJnbmF0X3BpYy5hIGxpYmduYXQuYSBs aWJnbWVtLmEiCi1kZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9u fSIKLQotaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiICE9ICJnbGliYyIgXTsgdGhlbgotCWJyb2tl bj0iZ2xpYmMgY3Jvc3N0b29sY2hhaW4gb25seSBhdmFpbGFibGUgb24gZ2xpYmMiCi1maQotCi1p ZiBbICIkWEJQU19UQVJHRVRfV09SRFNJWkUiICE9ICI2NCIgXTsgdGhlbgotCWJyb2tlbj0iNjQt Yml0IGNyb3NzdG9vbGNoYWluIG9ubHkgYXZhaWxhYmxlIG9uIDY0LWJpdCBob3N0IgotZmkKK2Ny b3NzX3RyaXBsZXQ9JHtfdHJpcGxldH0KK2Nyb3NzX2xpbnV4X2FyY2g9cG93ZXJwYworY3Jvc3Nf YmludXRpbHNfY29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLXNlY3VyZXBsdCIKK2Nyb3NzX2dsaWJj X2NmbGFncz0iLU8yIgogCiBpZiBbICIkWEJQU19UQVJHRVRfTUFDSElORSIgPSAicHBjNjQiIF07 IHRoZW4KIAlicm9rZW49IkNhbid0IGJ1aWxkIGNyb3NzdG9vbGNoYWluIHRvIGl0c2VsZiIKIGZp CiAKLV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUg JDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRjaCAtTiAk YXJncyAtaSAkMgotCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0KLV9iaW51dGlsc19i dWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxk X2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRp bmcgY3Jvc3MgYmludXRpbHMgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgYmludXRpbHMtYnVpbGQg XSAmJiBta2RpciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0aWxzLWJ1aWxkCi0KLQlfYXJncz0i LS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9 IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9y IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3RlbS16 bGliIgotCi0JLi4vYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0vY29uZmlndXJlICR7X2Fy Z3N9Ci0KLQltYWtlIGNvbmZpZ3VyZS1ob3N0Ci0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5z dGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25lCi19Ci0KLV9nY2Nf Ym9vdHN0cmFwKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2Jvb3Rz dHJhcF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nY2MtJHtfZ2NjX3ZlcnNp b259Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL3BhdGNoZXMvKi5wYXRjaDsgZG8K LQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JZG9uZQotCi0JbXNnX25vcm1hbCAiQnVpbGRpbmcg Y3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1ib290c3RyYXAgXSAmJiBt a2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJhcAotCi0JX2FyZ3M9Ii0t cHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIg LS13aXRoLWFiaT1lbGZ2MiIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyIKLQlfYXJn cys9IiAtLWVuYWJsZS1zZWN1cmVwbHQiCi0JX2FyZ3MrPSIgLS1lbmFibGUtdGFyZ2V0cz1wb3dl cnBjbGUtbGludXgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRp c2FibGUtbGliaXRtIgotCV9hcmdzKz0iIC0td2l0aG91dC1oZWFkZXJzIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IgotCV9hcmdzKz0iIC0tZGlzYWJsZS10aHJlYWRzIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZs YXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmdvbXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxp YmF0b21pYyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1zamxqLWV4Y2VwdGlvbnMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdz Kz0iIC0td2l0aC1nbnUtbGQiCi0JX2FyZ3MrPSIgLS13aXRoLWdudS1hcyIKLQotCS4uL2djYy0k e19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0J bWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZQotfQot Ci1fbGludXhfaGVhZGVycygpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZSBd ICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBMaW51 eCBBUEkgaGVhZGVyc1xuIgotCi0JY2QgbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQotCW1ha2Ug QVJDSD1wb3dlcnBjIGhlYWRlcnNfY2hlY2sKLQltYWtlIEFSQ0g9cG93ZXJwYyBJTlNUQUxMX0hE Ul9QQVRIPSR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQotCXRvdWNoICR7d3Jrc3Jj fS8ubGludXhfYnVpbGRfZG9uZQotfQotCi1fZ2xpYmNfaGVhZGVycygpIHsKLQlsb2NhbCBfYXJn cyBmCi0JWyAtZiAke3dya3NyY30vLmdsaWJjX2hlYWRlcnNfZG9uZSBdICYmIHJldHVybiAwCi0K LQljZCAke3dya3NyY30vZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0KLQlpZiBbIC1kICIke1hCUFNf U1JDUEtHRElSfS9nbGliYy9wYXRjaGVzIiBdOyB0aGVuCi0JCWZvciBmIGluICR7WEJQU19TUkNQ S0dESVJ9L2dsaWJjL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJCV9hcHBseV9wYXRjaCAtcDEgIiRm IgotCQlkb25lCi0JZmkKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNy b3NzIGdsaWJjIGhlYWRlcnNcbiIKLQotCVsgISAtZCBnbGliYy1oZWFkZXJzIF0gJiYgbWtkaXIg Z2xpYmMtaGVhZGVycwotCWNkIGdsaWJjLWhlYWRlcnMKLQotCWVjaG8gImxpYmNfY3ZfZm9yY2Vk X3Vud2luZD15ZXMiID4gY29uZmlnLmNhY2hlCi0JZWNobyAibGliY19jdl9jX2NsZWFudXA9eWVz IiA+PiBjb25maWcuY2FjaGUKLQotCWV4cG9ydCBDQz0iJHtfdHJpcGxldH0tZ2NjIiBMRD0iJHtf dHJpcGxldH0tbGQiIFwKLQkJQVM9IiR7X3RyaXBsZXR9LWFzIiBDUFA9IiR7X3RyaXBsZXR9LWNw cCIgXAotCQlOTT0iJHtfdHJpcGxldH0tbm0iCi0KLQlfYXJncz0iIC0tcHJlZml4PS91c3IiCi0J X2FyZ3MrPSIgLS1ob3N0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1oZWFkZXJzPSR7 X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIgotCV9hcmdzKz0iIC0tY29uZmlnLWNhY2hlIgotCV9hcmdz Kz0iIC0tZW5hYmxlLW9ic29sZXRlLXJwYyIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1u c2wiCi0JX2FyZ3MrPSIgLS1lbmFibGUta2VybmVsPTIuNi4yNyIKLQotCS4uL2dsaWJjLSR7X2ds aWJjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAtayBpbnN0YWxsLWhlYWRl cnMgY3Jvc3NfY29tcGlsaW5nPXllcyBcCi0JCWluc3RhbGxfcm9vdD0ke19zeXNyb290fQotCi0J dG91Y2ggJHt3cmtzcmN9Ly5nbGliY19oZWFkZXJzX2RvbmUKLX0KLQotX2dsaWJjX2J1aWxkKCkg ewotCWxvY2FsIF9hcmdzCi0JWyAtZiAke3dya3NyY30vLmdsaWJjX2J1aWxkX2RvbmUgXSAmJiBy ZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2xp YmNcbiIKLQotCVsgISAtZCBnbGliYy1idWlsZCBdICYmIG1rZGlyIGdsaWJjLWJ1aWxkCi0JY2Qg Z2xpYmMtYnVpbGQKLQotCWVjaG8gInNsaWJkaXI9L3Vzci9saWI2NCIgPiBjb25maWdwYXJtcwot Ci0JZWNobyAibGliY19jdl9mb3JjZWRfdW53aW5kPXllcyIgPiBjb25maWcuY2FjaGUKLQllY2hv ICJsaWJjX2N2X2NfY2xlYW51cD15ZXMiID4+IGNvbmZpZy5jYWNoZQotCi0JZXhwb3J0IENDPSIk e190cmlwbGV0fS1nY2MiIENYWD0iJHtfdHJpcGxldH0tZysrIiBMRD0iJHtfdHJpcGxldH0tbGQi IFwKLQkJQVM9IiR7X3RyaXBsZXR9LWFzIiBDUFA9IiR7X3RyaXBsZXR9LWNwcCIgXAotCQlOTT0i JHtfdHJpcGxldH0tbm0iCi0JZXhwb3J0IENGTEFHUz0iLU8yIC1waXBlIgotCi0JX2FyZ3M9Ii0t cHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJkaXI9L3Vzci9saWI2NCIKLQlfYXJncys9IiAt LWhvc3Q9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLWhlYWRlcnM9JHtfc3lzcm9vdH0v dXNyL2luY2x1ZGUiCi0JX2FyZ3MrPSIgLS1jb25maWctY2FjaGUiCi0JX2FyZ3MrPSIgLS1lbmFi bGUtb2Jzb2xldGUtcnBjIgotCV9hcmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLW5zbCIKLQlfYXJn cys9IiAtLWRpc2FibGUtcHJvZmlsZSIKLQlfYXJncys9IiAtLWVuYWJsZS1rZXJuZWw9Mi42LjI3 IgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJyb3IiCi0KLQkuLi9nbGliYy0ke19nbGliY192ZXJz aW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3Rh bGxfcm9vdD0ke19zeXNyb290fSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdsaWJjX2J1 aWxkX2RvbmUKLX0KLQotX2djY19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCVsgLWYgJHt3cmtz cmN9Ly5nY2NfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2df bm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgZmluYWxcbiIKLQotCVsgISAtZCBnY2MtYnVpbGQg XSAmJiBta2RpciBnY2MtYnVpbGQKLQljZCBnY2MtYnVpbGQKLQotCXVuc2V0IExEIEFTCi0KLQkj IE1ha2UgdGhpcyBsaW5rIHRvIHRhcmdldCBsaWJzLgotCWlmIFsgISAtZiAuc2VkX3N1YnN0X2Rv bmUgXTsgdGhlbgotCQlzZWQgLWUgInMsIC9saWIvLCAke19zeXNyb290fS9saWIvLGc7cywgL3Vz ci9saWIvLCAke19zeXNyb290fS91c3IvbGliLyxnIiBcCi0JCQktaSAke19zeXNyb290fS91c3Iv bGliL2xpYmMuc28KLQkJc2VkIC1lICJzLCAvbGliNjQvLCAke19zeXNyb290fS9saWI2NC8sZztz LCAvdXNyL2xpYjY0LywgJHtfc3lzcm9vdH0vdXNyL2xpYjY0LyxnIiBcCi0JCQktaSAke19zeXNy b290fS91c3IvbGliL2xpYmMuc28KLQkJdG91Y2ggLnNlZF9zdWJzdF9kb25lCi0JZmkKLQotCV9h cmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGliZGlyPS91c3IvbGliIgotCV9hcmdz Kz0iIC0tbGliZXhlY2Rpcj0vdXNyL2xpYiIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0 fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLXdp dGgtYWJpPWVsZnYyIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFkYSxjKyssb2Jq YyxvYmotYysrLGdvLGZvcnRyYW4sbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLXNlY3VyZXBsdCIK LQlfYXJncys9IiAtLWVuYWJsZS10YXJnZXRzPXBvd2VycGNsZS1saW51eCIKLQlfYXJncys9IiAt LXdpdGgtZ251LWFzIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtbGQiCi0JX2FyZ3MrPSIgLS1lbmFi bGUtbGliYWRhIgotCV9hcmdzKz0iIC0tZW5hYmxlLWx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1k ZWZhdWx0LXBpZSIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXNzcCIKLQlfYXJncys9IiAt LWVuYWJsZS1saW5rZXItYnVpbGQtaWQiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZ251LXVuaXF1ZS1v YmplY3QiCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZW5hYmxlLXRo cmVhZHM9cG9zaXgiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic2FuaXRpemVyIgotCV9hcmdz Kz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIK LQlfYXJncys9IiAtLWRpc2FibGUtbGliaXRtIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzdGRj eHgtcGNoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS12dGFibGUtdmVyaWZ5IgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMiCi0KLQlDQz0iZ2NjIiBDWFg9ImcrKyIgQ0ZMQUdTPSIt TzIgLXBpcGUiIFwKLQkJLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30K LQotCW1ha2UgJHttYWtlam9ic30KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUK LX0KLQotZG9fYnVpbGQoKSB7Ci0JdW5zZXQgTERGTEFHUwotCWV4cG9ydCBDRkxBR1M9Ii1PcyAt ZlBJQyIgQ1hYRkxBR1M9Ii1PcyAtZlBJQyIKLQotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4 ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVu Ci0JCQlta2RpciAtcCAke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtf c3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7X3N5c3Jvb3R9L3Vzci8ke2Z9ICR7 X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke19zeXNyb290fS91c3Iv bGliNjQKLQlsbiAtc2YgdXNyL2xpYiAke19zeXNyb290fS9saWI2NAotCi0JX2JpbnV0aWxzX2J1 aWxkCi0JX2djY19ib290c3RyYXAKLQlfbGludXhfaGVhZGVycwotCV9nbGliY19oZWFkZXJzCi0J X2dsaWJjX2J1aWxkCi0JX2djY19idWlsZAotfQotCi1kb19pbnN0YWxsKCkgewotCWZvciBmIGlu IGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7REVTVERJUn0vJHtf c3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7REVTVERJUn0vJHtfc3lzcm9v dH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7 Zn0gXAotCQkJCSR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAt c2YgbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYjY0Ci0JbG4gLXNmIHVzci9saWIg JHtERVNURElSfS8ke19zeXNyb290fS9saWI2NAotCi0JIyBpbnN0YWxsIGxpbnV4IEFQSSBoZWFk ZXJzCi0JY2QgJHt3cmtzcmN9L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0JbWFrZSBBUkNIPXBv d2VycGMgSU5TVEFMTF9IRFJfUEFUSD0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3VzciBoZWFkZXJz X2luc3RhbGwKLQlybSAtZiAkKGZpbmQgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVk ZSAtbmFtZSAuaW5zdGFsbCAtb3IgLW5hbWUgLi5pbnN0YWxsLmNtZCkKLQlybSAtcmYgJHtERVNU RElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZS9kcm0KLQotCSMgaW5zdGFsbCBjcm9zcyBiaW51 dGlscwotCWNkICR7d3Jrc3JjfS9iaW51dGlscy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RE SVJ9IGluc3RhbGwKLQotCSMgaW5zdGFsbCBjcm9zcyBnY2MKLQljZCAke3dya3NyY30vZ2NjLWJ1 aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBtb3ZlIGxpYmNjMS5z byogdG8gdGhlIHN5c3Jvb3QKLQltdiAke0RFU1RESVJ9L3Vzci9saWIvbGliY2MxLnNvKiAke0RF U1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQotCSMgaW5zdGFsbCBnbGliYyBmb3IgdGFyZ2V0 Ci0JY2QgJHt3cmtzcmN9L2dsaWJjLWJ1aWxkCi0JbWFrZSBpbnN0YWxsX3Jvb3Q9JHtERVNURElS fS8ke19zeXNyb290fSBpbnN0YWxsIGluc3RhbGwtaGVhZGVycwotCi0JIyBzeW1saW5rcyBmb3Ig Z25hcmwgYW5kIGduYXQgc2hhcmVkIGxpYnJhcmllcwotCV9tYWpvcnZlcj0ke19nY2NfdmVyc2lv biUuKi4qfQotCV9hZGFsaWI9dXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vJHtfZ2NjX3ZlcnNpb259 L2FkYWxpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmFybC0ke19tYWpvcnZl cn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0JbXYgLXYgJHtERVNURElSfS8k e19hZGFsaWJ9L2xpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyL2xpYgotCWxuIC1zdmYgbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXJsLnNvCi0J bG4gLXN2ZiBsaWJnbmF0LSR7X21ham9ydmVyfS5zbyBsaWJnbmF0LnNvCi0Jcm0gLXZmICR7REVT VERJUn0vJHtfYWRhbGlifS9saWJnbmF7cmwsdH0uc28KLQotCSMgV2UgbmVlZCB0byBidWlsZCBs aWJhdG9taWMgaW4gdGFyZ2V0IGdjYyBhcyBnY2NnbyBuZWVkcyBpdCB0bwotCSMgYnVpbGQuLi4g YnV0IGl0J3Mgbm90IG5lZWRlZCBhdCBydW50aW1lLCBzbyByZW1vdmUgaXQgZnJvbSB0aGUKLQkj IGRlc3RkaXIgc28gaXQgZG9lc24ndCBjb25mbGljdCB3aXRoIHRoZSBsaWJhdG9taWMgcGFja2Fn ZQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYi9saWJhdG9taWMuKgotCi0J IyBSZW1vdmUgdW5uZWNlc3Nhcnkgc3R1ZmYKLQlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIqL2xp YmliZXJ0eS5hCi0Jcm0gLXJmICR7REVTVERJUn0vdXNyL3NoYXJlCi0Jcm0gLXJmICR7REVTVERJ Un0vJHtfc3lzcm9vdH0ve2V0Yyx2YXJ9Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyL3tzYmluLHNoYXJlLGxpYmV4ZWN9Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9s aWJleGVjCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS97c2JpbixsaWJ9Ci19Ci0KLWRv X2NsZWFuKCkgewotCSMgUmVtb3ZlIHRlbXBvcmFyeSBzdHVmZiBmcm9tIG1hc3RlcmRpcgotCXJt IC1yZiAke19zeXNyb290fQotCXJtIC1mIC91c3IvYmluLyR7X3RyaXBsZXR9KgotCXJtIC1yZiAv dXNyL2xpYi9nY2MvJHtfdHJpcGxldH0KLQlybSAtcmYgL3Vzci9saWJleGVjL2djYy8ke190cmlw bGV0fQotfQotCiBjcm9zcy1wb3dlcnBjNjQtbGludXgtZ251LWxpYmNfcGFja2FnZSgpIHsKIAlz aG9ydF9kZXNjKz0iIC0gZ2xpYmMgZmlsZXMiCiAJbm9zdHJpcD15ZXMKIAlub3ZlcmlmeXJkZXBz PXllcwogCW5vc2hsaWJwcm92aWRlcz15ZXMKKwogCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAk e19zeXNyb290fQorCQl2bW92ZSB1c3IvJHtjcm9zc190cmlwbGV0fQogCX0KIH0KCkZyb20gMDg5 ODZhMjliY2Q5NTQwMmI3N2MyMWExMDU5MWE4NTRiZDMxMGZjOCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU2F0LCAyNiBEZWMg MjAyMCAxOTowNjowMSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjQvMjZdIGNyb3NzLXBvd2VycGM2 NC1saW51eC1tdXNsOiByZXdvcmsgd2l0aCB2b2lkLWNyb3NzCgotLS0KIHNyY3BrZ3MvY3Jvc3Mt cG93ZXJwYzY0LWxpbnV4LW11c2wvdGVtcGxhdGUgfCAzMTcgKy0tLS0tLS0tLS0tLS0tLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCAzMDIgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1wb3dlcnBjNjQtbGludXgtbXVzbC90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvY3Jvc3MtcG93ZXJwYzY0LWxpbnV4LW11c2wvdGVtcGxhdGUKaW5kZXggY2JiNDQzMWI2 MmEuLmM2NDc5N2M5NDE2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLXBvd2VycGM2NC1saW51 eC1tdXNsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0LWxpbnV4LW11c2wv dGVtcGxhdGUKQEAgLTEsMTcgKzEsMjAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLXBv d2VycGM2NC1saW51eC1tdXNsJworX3RyaXBsZXQ9cG93ZXJwYzY0LWxpbnV4LW11c2wKIF9iaW51 dGlsc192ZXJzaW9uPTIuMzIKIF9nY2NfdmVyc2lvbj05LjMuMAogX211c2xfdmVyc2lvbj0xLjEu MjQKIF9saW51eF92ZXJzaW9uPTQuMTkKIF9saWJ1Y29udGV4dF92ZXJzaW9uPTAuOS4wCi0KLV90 cmlwbGV0PSJwb3dlcnBjNjQtbGludXgtbXVzbCIKLV9zeXNyb290PSIvdXNyLyR7X3RyaXBsZXR9 IgotCiBwa2duYW1lPWNyb3NzLSR7X3RyaXBsZXR9CiB2ZXJzaW9uPTAuMzMKIHJldmlzaW9uPTIK LXNob3J0X2Rlc2M9IkNyb3NzIHRvb2xjaGFpbiBmb3IgcG93ZXJwYzY0IHdpdGggbXVzbCIKK2J1 aWxkX3N0eWxlPXZvaWQtY3Jvc3MKK2NvbmZpZ3VyZV9hcmdzPSItLWVuYWJsZS1zZWN1cmVwbHQg LS1kaXNhYmxlLXZ0YWJsZS12ZXJpZnkKKyAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCAtLXdpdGgt YWJpPWVsZnYyIC0tZW5hYmxlLXRhcmdldHM9cG93ZXJwYy1saW51eCIKK2hvc3RtYWtlZGVwZW5k cz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIKK21ha2VkZXBlbmRzPSJp c2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIK K2RlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igorc2hvcnRf ZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7X3RyaXBsZXR9IgogbWFpbnRhaW5lcj0i cTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4iCiBob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxp bnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBN SVQiCkBAIC0yNywzMTMgKzMwLDIzIEBAIGNoZWNrc3VtPSIwYWI2YzU1ZGQ4NmE5MmVkNTYxOTcy YmExNWI5YjcwYThiOWY3NTU1N2Y4OTY0NDZjODJlOGIzNmU0NzNlZTA0CiAgMGM2OGY1NjU1NTI4 YWVkNGY5OWRhZTcxYTViMjU5ZWRjOTMyMzlmYTg5OWUyZGY3OWMwNTUyNzVjMjE3NDlhMQogIDBk NTNhNDE1YTMwN2VmMTc1MTUzYmJlNjBhNTcyYzk0MGE5MjJjYjczNmNlMTM1MzBiNjY2ZTdlYzI3 OTVkNjgiCiAKLWxpYjMyZGlzYWJsZWQ9eWVzCi1ub2Nyb3NzPXllcwotbm9waWU9eWVzCi1ub2Rl YnVnPXllcwotY3JlYXRlX3dya3NyYz15ZXMKLWhvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpj IGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJ6bGliLWRldmVsIGdtcC1k ZXZlbCBtcGZyLWRldmVsIGxpYm1wYy1kZXZlbCBpc2wxNS1kZXZlbCIKLW5vc3RyaXBfZmlsZXM9 ImxpYmNhZl9zaW5nbGUuYSBsaWJnY2MuYSBsaWJnY292LmEgbGliZ2NjX2VoLmEKLSBsaWJnbmFy bF9waWMuYSBsaWJnbmFybC5hIGxpYmduYXRfcGljLmEgbGliZ25hdC5hIGxpYmdtZW0uYSIKLWRl cGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotCi1pZiBbICIk WEJQU19UQVJHRVRfV09SRFNJWkUiICE9ICI2NCIgXTsgdGhlbgotICAgICAgICBicm9rZW49IjY0 LWJpdCBjcm9zc3Rvb2xjaGFpbiBvbmx5IGF2YWlsYWJsZSBvbiA2NC1iaXQgaG9zdCIKLWZpCitj cm9zc190cmlwbGV0PSR7X3RyaXBsZXR9Citjcm9zc19saWJ1Y29udGV4dF9hcmNoPXBwYzY0Citj cm9zc19saW51eF9hcmNoPXBvd2VycGMKK2Nyb3NzX2JpbnV0aWxzX2NvbmZpZ3VyZV9hcmdzPSIt LWVuYWJsZS1zZWN1cmVwbHQiCitjcm9zc19tdXNsX2NmbGFncz0iLU8yIgogCiBpZiBbICIkWEJQ U19UQVJHRVRfTUFDSElORSIgPSAicHBjNjQtbXVzbCIgXTsgdGhlbgogCWJyb2tlbj0iQ2FuJ3Qg YnVpbGQgY3Jvc3N0b29sY2hhaW4gdG8gaXRzZWxmIgogZmkKIAotX2FwcGx5X3BhdGNoKCkgewot CWxvY2FsIGFyZ3M9IiQxIiBwbmFtZT0iJChiYXNlbmFtZSAkMikiCi0KLQlpZiBbICEgLWYgIi4k e3BuYW1lfV9kb25lIiBdOyB0aGVuCi0JCXBhdGNoIC1OICRhcmdzIC1pICQyCi0JCXRvdWNoIC4k e3BuYW1lfV9kb25lCi0JZmkKLX0KLQotX2JpbnV0aWxzX2J1aWxkKCkgewotCWxvY2FsIF9hcmdz Ci0KLQlbIC1mICR7d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0K LQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBiaW51dGlscyBib290 c3RyYXBcbiIKLQotCVsgISAtZCBiaW51dGlscy1idWlsZCBdICYmIG1rZGlyIGJpbnV0aWxzLWJ1 aWxkCi0JY2QgYmludXRpbHMtYnVpbGQKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdz Kz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5 c3Jvb3R9IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11 bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJyb3IiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LXNoYXJlZCIKLQlfYXJncys9IiAtLXdpdGgtc3lzdGVtLXpsaWIiCi0KLQkuLi9iaW51dGlscy0k e19iaW51dGlsc192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgY29uZmlndXJl LWhvc3QKLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3Ny Y30vLmJpbnV0aWxzX2J1aWxkX2RvbmUKLX0KLQotX2djY19ib290c3RyYXAoKSB7Ci0JbG9jYWwg X2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUgXSAmJiByZXR1cm4g MAotCi0JY2QgJHt3cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0KLQlmb3IgZiBpbiAke1hCUFNf U1JDUEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICIk ZiIKLQlkb25lCi0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL2ZpbGVzLyotbXVzbC5w YXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMSAiJGYiCi0JZG9uZQotCi0JbXNnX25vcm1hbCAi QnVpbGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1ib290c3Ry YXAgXSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJhcAotCWV4 cG9ydCBhY19jdl9jX2NvbXBpbGVyX2dudT15ZXMKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgot CV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290 PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0td2l0aC1hYmk9ZWxmdjIiCi0JX2FyZ3MrPSIgLS1l bmFibGUtbGFuZ3VhZ2VzPWMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVjaW1hbC1mbG9hdD1ubyIK LQlfYXJncys9IiAtLWVuYWJsZS1zZWN1cmVwbHQiCi0JX2FyZ3MrPSIgLS1lbmFibGUtdGFyZ2V0 cz1wb3dlcnBjLWxpbnV4IgotCV9hcmdzKz0iIC0td2l0aC1uZXdsaWIiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlz YWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtdGhyZWFkcyIKLQlfYXJncys9 IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJn cys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliZ29tcCIK LQlfYXJncys9IiAtLWRpc2FibGUtbGliYXRvbWljIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zeW12 ZXJzIgotCV9hcmdzKz0iIGxpYmF0X2N2X2hhdmVfaWZ1bmM9bm8iCi0KLQkuLi9nY2MtJHtfZ2Nj X3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2Ug aW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUKLX0KLQotX2xp bnV4X2hlYWRlcnMoKSB7Ci0JWyAtZiAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUgXSAmJiBy ZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgTGludXggQVBJ IGhlYWRlcnNcbiIKLQotCWNkIGxpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0KLQlmb3IgZiBpbiAk e1hCUFNfU1JDUEtHRElSfS9rZXJuZWwtbGliYy1oZWFkZXJzL3BhdGNoZXMvKi5wYXRjaDsgZG8K LQkJX2FwcGx5X3BhdGNoIC1wMCAkZgotCWRvbmUKLQotCW1ha2UgQVJDSD1wb3dlcnBjIGhlYWRl cnNfY2hlY2sKLQltYWtlIEFSQ0g9cG93ZXJwYyBJTlNUQUxMX0hEUl9QQVRIPSR7X3N5c3Jvb3R9 L3VzciBoZWFkZXJzX2luc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9u ZQotfQotCi1fbXVzbF9idWlsZCgpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubXVzbF9idWlsZF9kb25l IF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9tdXNsLSR7X211c2xfdmVyc2lvbn0KLQlt c2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBtdXNsIGxpYmNcbiIKLQotCSMgQXBwbHkgbXVzbCBw YXRjaGVzIGlmIHRoZXJlIGFyZSBhbnkKLQlpZiBbIC1kICIke1hCUFNfU1JDUEtHRElSfS9tdXNs L3BhdGNoZXMiIF07IHRoZW4KLQkJZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vbXVzbC9wYXRj aGVzLyoucGF0Y2g7IGRvCi0JCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQkJZG9uZQotCWZpCi0K LQlDQz0iJHtfdHJpcGxldH0tZ2NjIiBMRD0iJHtfdHJpcGxldH0tbGQiIEFSPSIke190cmlwbGV0 fS1hciIgXAotCQlBUz0iJHtfdHJpcGxldH0tYXMiIFJBTkxJQj0iJHtfdHJpcGxldH0tcmFubGli IiBcCi0JCUNGTEFHUz0iLU9zIC1waXBlICR7X2FyY2hmbGFnc30iIFwKLQkJLi9jb25maWd1cmUg LS1wcmVmaXg9L3VzcgotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgREVTVERJUj0ke19zeXNy b290fSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLm11c2xfYnVpbGRfZG9uZQotfQotCi1f bGlidWNvbnRleHRfYnVpbGQoKSB7Ci0JWyAtZiAke3dya3NyY30vLmxpYnVjb250ZXh0X2J1aWxk X2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2xpYnVjb250ZXh0LSR7X2xpYnVj b250ZXh0X3ZlcnNpb259Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgbGlidWNvbnRleHRc biIKLQotCSMgaXQncyBvayBpZiB3ZSdyZSBzdGF0aWMgb25seSBoZXJlCi0JQ0M9IiR7X3RyaXBs ZXR9LWdjYyIgQVI9IiR7X3RyaXBsZXR9LWFyIiBBUz0iJHtfdHJpcGxldH0tYXMiIFwKLQkJQ0ZM QUdTPSItT3MgLXBpcGUgLWZQSUMgJHtfYXJjaGZsYWdzfSIgXAotCQltYWtlIEFSQ0g9cHBjNjQg bGlidWNvbnRleHQuYQotCi0JY3AgbGlidWNvbnRleHQuYSAke19zeXNyb290fS91c3IvbGliCi0K LQl0b3VjaCAke3dya3NyY30vLmxpYnVjb250ZXh0X2J1aWxkX2RvbmUKLX0KLQotX2djY19idWls ZCgpIHsKLQlsb2NhbCBfYXJncwotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZSBdICYm IHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBn Y2MgZmluYWxcbiIKLQotCVsgISAtZCBnY2MtYnVpbGQgXSAmJiBta2RpciBnY2MtYnVpbGQKLQlj ZCBnY2MtYnVpbGQKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGliZXhl Y2Rpcj0vdXNyL2xpYiIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9 IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLXdpdGgtYWJpPWVsZnYy IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFkYSxjKyssb2JqYyxvYmotYysrLGdv LGZvcnRyYW4sbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlY2ltYWwtZmxvYXQ9bm8iCi0JX2Fy Z3MrPSIgLS1lbmFibGUtc2VjdXJlcGx0IgotCV9hcmdzKz0iIC0tZW5hYmxlLXRhcmdldHM9cG93 ZXJwYy1saW51eCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJhZGEiCi0JX2FyZ3MrPSIgLS1lbmFi bGUtbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtcGllIgotCV9hcmdzKz0iIC0tZW5h YmxlLWRlZmF1bHQtc3NwIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYnNzcCIKLQlfYXJncys9IiAt LWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNhbml0aXplciIK LQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11 ZGZsYXAiCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1z eW12ZXJzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS12dGFibGUtdmVyaWZ5IgotCV9hcmdzKz0iIGxp YmF0X2N2X2hhdmVfaWZ1bmM9bm8iCi0KLQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3Vy ZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2Nf YnVpbGRfZG9uZQotfQotCi1kb19idWlsZCgpIHsKLQkjIEVuc3VyZSB3ZSB1c2Ugc2FuZSBlbnZp cm9ubWVudAotCXVuc2V0IENDIENYWCBDUFAgTEQgQVMgQVIgUkFOTElCIE9CSkRVTVAgUkVBREVM RiBOTQotCXVuc2V0IENGTEFHUyBDWFhGTEFHUyBDUFBGTEFHUyBMREZMQUdTCi0JZXhwb3J0IENG TEFHUz0iLU9zIC1waXBlIC1mUElDIiBDWFhGTEFHUz0iLU9zIC1waXBlIC1mUElDIgotCi0JZm9y IGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7X3N5 c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7X3N5c3Jvb3R9L3Vzci8ke2Z9 Ci0JCWZpCi0JCWlmIFsgISAtaCAke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIg JHtfc3lzcm9vdH0vdXNyLyR7Zn0gJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAt c2YgbGliICR7X3N5c3Jvb3R9L3Vzci9saWI2NAotCWxuIC1zZiB1c3IvbGliICR7X3N5c3Jvb3R9 L2xpYjY0Ci0KLQlfYmludXRpbHNfYnVpbGQKLQlfZ2NjX2Jvb3RzdHJhcAotCV9saW51eF9oZWFk ZXJzCi0JX211c2xfYnVpbGQKLQlfbGlidWNvbnRleHRfYnVpbGQKLQlfZ2NjX2J1aWxkCi19Ci0K LWRvX2luc3RhbGwoKSB7Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2Jpbjsg ZG8KLQkJaWYgWyAhIC1kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgot CQkJbWtkaXIgLXAgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBb ICEgLWggJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtE RVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBcCi0JCQkJJHtERVNURElSfS8ke19zeXNyb290 fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtERVNURElSfS8ke19zeXNyb290fS91 c3IvbGliNjQKLQlsbiAtc2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYjY0Ci0K LQkjIGluc3RhbGwgbGludXggQVBJIGhlYWRlcnMKLQljZCAke3dya3NyY30vbGludXgtJHtfbGlu dXhfdmVyc2lvbn0KLQltYWtlIEFSQ0g9cG93ZXJwYyBJTlNUQUxMX0hEUl9QQVRIPSR7REVTVERJ Un0vJHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCXJtIC1mICQoZmluZCAke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIC1uYW1lIC5pbnN0YWxsIC1vciAtbmFtZSAuLmlu c3RhbGwuY21kKQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlL2Ry bQotCi0JIyBpbnN0YWxsIGNyb3NzIGJpbnV0aWxzCi0JY2QgJHt3cmtzcmN9L2JpbnV0aWxzLWJ1 aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBpbnN0YWxsIGNyb3Nz IGdjYwotCWNkICR7d3Jrc3JjfS9nY2MtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBp bnN0YWxsCi0KLQkjIG1vdmUgbGliY2MxLnNvKiB0byB0aGUgc3lzcm9vdAotCW12ICR7REVTVERJ Un0vdXNyL2xpYi9saWJjYzEuc28qICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0J IyBpbnN0YWxsIG11c2wgbGliYyBmb3IgdGFyZ2V0Ci0JY2QgJHt3cmtzcmN9L211c2wtJHtfbXVz bF92ZXJzaW9ufQotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9IGluc3RhbGwK LQotCSMgUmVtb3ZlIHVzZWxlc3MgaGVhZGVycy4KLQlybSAtcmYgJHtERVNURElSfS91c3IvbGli L2djYy8ke190cmlwbGV0fS8qL2luY2x1ZGUtZml4ZWQvCi0KLQkjIE1ha2UgbGQtbXVzbC1wb3dl cnBjNjQuc28uMSBzeW1saW5rIHJlbGF0aXZlIHRvIGN3ZC4KLQljZCAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3Vzci9saWIKLQlsbiAtc2YgbGliYy5zbyBsZC1tdXNsLXBvd2VycGM2NC5zby4xCi0K LQkjIHN5bWxpbmtzIGZvciBnbmFybCBhbmQgZ25hdCBzaGFyZWQgbGlicmFyaWVzCi0JX21ham9y dmVyPSR7X2djY192ZXJzaW9uJS4qLip9Ci0JX2FkYWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0 fS8ke19nY2NfdmVyc2lvbn0vYWRhbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xp YmduYXJsLSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQlt diAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hdC0ke19tYWpvcnZlcn0uc28gJHtERVNU RElSfS8ke19zeXNyb290fS91c3IvbGliCi0JbG4gLXN2ZiBsaWJnbmFybC0ke19tYWpvcnZlcn0u c28gbGliZ25hcmwuc28KLQlsbiAtc3ZmIGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXQu c28KLQlybSAtdmYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXtybCx0fS5zbwotCi0JIyBX ZSBuZWVkIHRvIGJ1aWxkIGxpYmF0b21pYyBpbiB0YXJnZXQgZ2NjIGFzIGdjY2dvIG5lZWRzIGl0 IHRvCi0JIyBidWlsZC4uLiBidXQgaXQncyBub3QgbmVlZGVkIGF0IHJ1bnRpbWUsIHNvIHJlbW92 ZSBpdCBmcm9tIHRoZQotCSMgZGVzdGRpciBzbyBpdCBkb2Vzbid0IGNvbmZsaWN0IHdpdGggdGhl IGxpYmF0b21pYyBwYWNrYWdlCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGli L2xpYmF0b21pYy4qCi0KLQkjIFJlbW92ZSB1bm5lY2Vzc2FyeSBzdHVmZgotCXJtIC1mICR7REVT VERJUn0vdXNyL2xpYiovbGliaWJlcnR5LmEKLQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUK LQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS97ZXRjLHZhcn0KLQlybSAtcmYgJHtERVNU RElSfS8ke19zeXNyb290fS91c3Ive3NiaW4sc2hhcmUsbGliZXhlY30KLQlybSAtZiAke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9L2xpYmV4ZWMKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xp Yi8qLnB5Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS97c2JpbixsaWJ9Ci19Ci0KLWRv X2NsZWFuKCkgewotCSMgUmVtb3ZlIHRlbXBvcmFyeSBzdHVmZiBmcm9tIG1hc3RlcmRpcgotCXJt IC1yZiAke19zeXNyb290fQotCXJtIC1mIC91c3IvYmluLyR7X3RyaXBsZXR9KgotCXJtIC1yZiAv dXNyL2xpYi9nY2MvJHtfdHJpcGxldH0KLQlybSAtcmYgL3Vzci9saWJleGVjL2djYy8ke190cmlw bGV0fQotfQotCiBjcm9zcy1wb3dlcnBjNjQtbGludXgtbXVzbC1saWJjX3BhY2thZ2UoKSB7CiAJ c2hvcnRfZGVzYys9IiAtIGxpYmMgZmlsZXMiCiAJbm9zdHJpcD15ZXMKIAlub3ZlcmlmeXJkZXBz PXllcwogCW5vc2hsaWJwcm92aWRlcz15ZXMKKwogCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAk e19zeXNyb290fQorCQl2bW92ZSB1c3IvJHtjcm9zc190cmlwbGV0fQogCX0KIH0KCkZyb20gODA1 YzRlMWJiYWYyMjE4YmU0ZDc3MDA5OTBjMDE1ODY3MjdiN2FjYyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU2F0LCAyNiBEZWMg MjAyMCAxOToxMjoxNCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjUvMjZdIGNyb3NzLXg4Nl82NC1s aW51eC1nbnU6IHJld29yayB3aXRoIHZvaWQtY3Jvc3MKCi0tLQogc3JjcGtncy9jcm9zcy14ODZf NjQtbGludXgtZ251L3RlbXBsYXRlIHwgMzU4ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDM0NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2Nyb3NzLXg4Nl82NC1saW51eC1nbnUvdGVtcGxhdGUgYi9zcmNwa2dzL2Ny b3NzLXg4Nl82NC1saW51eC1nbnUvdGVtcGxhdGUKaW5kZXggNGE2OTI4MDc2YTcuLjVjNDBmOWM5 ZTljIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLXg4Nl82NC1saW51eC1nbnUvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9jcm9zcy14ODZfNjQtbGludXgtZ251L3RlbXBsYXRlCkBAIC0xLDE5ICsx LDIwIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy14ODZfNjQtbGludXgtZ251JworX3Ry aXBsZXQ9eDg2XzY0LWxpbnV4LWdudQogX2JpbnV0aWxzX3ZlcnNpb249Mi4zMgogX2djY192ZXJz aW9uPTkuMy4wCiBfZ2xpYmNfdmVyc2lvbj0yLjMwCiBfbGludXhfdmVyc2lvbj00LjE5Ci0KLV90 cmlwbGV0PSJ4ODZfNjQtbGludXgtZ251IgotX3N5c3Jvb3Q9Ii91c3IvJHtfdHJpcGxldH0iCi0K IHBrZ25hbWU9Y3Jvc3MtJHtfdHJpcGxldH0KIHZlcnNpb249MC4zMwogcmV2aXNpb249MQotc2hv cnRfZGVzYz0iR05VIGNyb3NzIHRvb2xjaGFpbiBmb3IgdGhlICR7X3RyaXBsZXR9IHRhcmdldHMg KGJpbnV0aWxzL2djYy9nbGliYykiCitidWlsZF9zdHlsZT12b2lkLWNyb3NzCitob3N0bWFrZWRl cGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCittYWtlZGVwZW5k cz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2 ZWwiCitkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK3No b3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke190cmlwbGV0fSIKIG1haW50YWlu ZXI9InE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+IgotaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZv aWRsaW51eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRl ciwgTEdQTC0yLjEtb3ItbGF0ZXIiCitob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9y Zy8iCiBkaXN0ZmlsZXM9IgogICR7R05VX1NJVEV9L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2JpbnV0 aWxzX3ZlcnNpb259LnRhci54egogICR7R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259 L2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CkBAIC0yNCwzNTQgKzI1LDIzIEBAIGNoZWNrc3Vt PSIwYWI2YzU1ZGQ4NmE5MmVkNTYxOTcyYmExNWI5YjcwYThiOWY3NTU1N2Y4OTY0NDZjODJlOGIz NmU0NzNlZTA0CiAgZTJjNDExNGU1NjlhZmJlN2VkYmMyOTEzMWE0M2JlODMzODUwYWI5YTQ1OWQ4 MWJlYjI1ODgwMTZkMmJiYjhhZgogIDBjNjhmNTY1NTUyOGFlZDRmOTlkYWU3MWE1YjI1OWVkYzkz MjM5ZmE4OTllMmRmNzljMDU1Mjc1YzIxNzQ5YTEiCiAKLWxpYjMyZGlzYWJsZWQ9eWVzCi1ub2Ny b3NzPXllcwotbm9waWU9eWVzCi1ub2RlYnVnPXllcwotY3JlYXRlX3dya3NyYz15ZXMKLWhvc3Rt YWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2Vk ZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCIKLW5vc3RyaXBfZmls ZXM9ImxpYmNhZl9zaW5nbGUuYSBsaWJnY2MuYSBsaWJnY292LmEgbGliZ2NjX2VoLmEKLSBsaWJn bmFybF9waWMuYSBsaWJnbmFybC5hIGxpYmduYXRfcGljLmEgbGliZ25hdC5hIGxpYmdtZW0uYSIK LWRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotCi1pZiBb ICIkWEJQU19UQVJHRVRfTElCQyIgIT0gImdsaWJjIiBdOyB0aGVuCi0JYnJva2VuPSJnbGliYyBj cm9zc3Rvb2xjaGFpbiBvbmx5IGF2YWlsYWJsZSBvbiBnbGliYyIKLWZpCi0KLWlmIFsgIiRYQlBT X1RBUkdFVF9XT1JEU0laRSIgIT0gIjY0IiBdOyB0aGVuCi0JYnJva2VuPSI2NC1iaXQgY3Jvc3N0 b29sY2hhaW4gb25seSBhdmFpbGFibGUgb24gNjQtYml0IGhvc3QiCi1maQorY3Jvc3NfdHJpcGxl dD0ke190cmlwbGV0fQorY3Jvc3NfbGludXhfYXJjaD14ODYKKyMgZXhwbGljaXRseSBlbmFibGUg Zm9yIGZpbmFsIGdjYywgZ2ZvcnRyYW4gZG9lcyBub3QgYnVpbGQgd2l0aG91dCBvbiB4ODYKK2Ny b3NzX2djY19jb25maWd1cmVfYXJncz0iLS1lbmFibGUtbGlicXVhZG1hdGgiCitjcm9zc19nbGli Y19jZmxhZ3M9Ii1PMiIKIAogaWYgWyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0gIng4Nl82NCIg XTsgdGhlbgogCWJyb2tlbj0iQ2FuJ3QgYnVpbGQgY3Jvc3N0b29sY2hhaW4gdG8gaXRzZWxmIgog ZmkKIAotX2FwcGx5X3BhdGNoKCkgewotCWxvY2FsIGFyZ3M9IiQxIiBwbmFtZT0iJChiYXNlbmFt ZSAkMikiCi0KLQlpZiBbICEgLWYgIi4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCi0JCXBhdGNoIC1O ICRhcmdzIC1pICQyCi0JCXRvdWNoIC4ke3BuYW1lfV9kb25lCi0JZmkKLX0KLQotX2JpbnV0aWxz X2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uYmludXRpbHNfYnVp bGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWls ZGluZyBjcm9zcyBiaW51dGlscyBib290c3RyYXBcbiIKLQotCVsgISAtZCBiaW51dGlscy1idWls ZCBdICYmIG1rZGlyIGJpbnV0aWxzLWJ1aWxkCi0JY2QgYmludXRpbHMtYnVpbGQKLQotCV9hcmdz PSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdz Kz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJy b3IiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLXdpdGgtc3lzdGVt LXpsaWIiCi0KLQkuLi9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS9jb25maWd1cmUgJHtf YXJnc30KLQotCW1ha2UgY29uZmlndXJlLWhvc3QKLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBp bnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUKLX0KLQotX2dj Y19ib290c3RyYXAoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9v dHN0cmFwX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2djYy0ke19nY2NfdmVy c2lvbn0KLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBk bwotCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQlkb25lCi0KLQltc2dfbm9ybWFsICJCdWlsZGlu ZyBjcm9zcyBnY2MgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgLi4vZ2NjLWJvb3RzdHJhcCBdICYm IG1rZGlyIC4uL2djYy1ib290c3RyYXAKLQljZCAuLi9nY2MtYm9vdHN0cmFwCi0KLQlfYXJncz0i LS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9 IiAtLXdpdGhvdXQtaGVhZGVycyIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJn b21wIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxp Ym11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbGliaXRtIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJhdG9taWMiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLXRocmVhZHMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLXNqbGotZXhjZXB0aW9ucyIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGls aWIiCi0JX2FyZ3MrPSIgLS13aXRoLWdudS1sZCIKLQlfYXJncys9IiAtLXdpdGgtZ251LWFzIgot Ci0JLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHtt YWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJh cF9kb25lCi19Ci0KLV9saW51eF9oZWFkZXJzKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5saW51eF9i dWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1 aWxkaW5nIExpbnV4IEFQSSBoZWFkZXJzXG4iCi0KLQljZCBsaW51eC0ke19saW51eF92ZXJzaW9u fQotCi0JbWFrZSBBUkNIPXg4NiBoZWFkZXJzX2NoZWNrCi0JbWFrZSBBUkNIPXg4NiBJTlNUQUxM X0hEUl9QQVRIPSR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQotCXRvdWNoICR7d3Jr c3JjfS8ubGludXhfYnVpbGRfZG9uZQotfQotCi1fZ2xpYmNfaGVhZGVycygpIHsKLQlsb2NhbCBf YXJncyBmCi0JWyAtZiAke3dya3NyY30vLmdsaWJjX2hlYWRlcnNfZG9uZSBdICYmIHJldHVybiAw Ci0KLQljZCAke3dya3NyY30vZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0KLQlpZiBbIC1kICIke1hC UFNfU1JDUEtHRElSfS9nbGliYy9wYXRjaGVzIiBdOyB0aGVuCi0JCWZvciBmIGluICR7WEJQU19T UkNQS0dESVJ9L2dsaWJjL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJCV9hcHBseV9wYXRjaCAtcDEg IiRmIgotCQlkb25lCi0JZmkKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5n IGNyb3NzIGdsaWJjIGhlYWRlcnNcbiIKLQotCVsgISAtZCBnbGliYy1oZWFkZXJzIF0gJiYgbWtk aXIgZ2xpYmMtaGVhZGVycwotCWNkIGdsaWJjLWhlYWRlcnMKLQotCWVjaG8gImxpYmNfY3ZfZm9y Y2VkX3Vud2luZD15ZXMiID4gY29uZmlnLmNhY2hlCi0JZWNobyAibGliY19jdl9jX2NsZWFudXA9 eWVzIiA+PiBjb25maWcuY2FjaGUKLQotCWV4cG9ydCBDQz0iJHtfdHJpcGxldH0tZ2NjIiBMRD0i JHtfdHJpcGxldH0tbGQiIFwKLQkJQVM9IiR7X3RyaXBsZXR9LWFzIiBDUFA9IiR7X3RyaXBsZXR9 LWNwcCIgXAotCQlOTT0iJHtfdHJpcGxldH0tbm0iCi0KLQlfYXJncz0iIC0tcHJlZml4PS91c3Ii Ci0JX2FyZ3MrPSIgLS1ob3N0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1oZWFkZXJz PSR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIgotCV9hcmdzKz0iIC0tY29uZmlnLWNhY2hlIgotCV9h cmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLXJwYyIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0 ZS1uc2wiCi0JX2FyZ3MrPSIgLS1lbmFibGUta2VybmVsPTIuNi4yNyIKLQotCS4uL2dsaWJjLSR7 X2dsaWJjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAtayBpbnN0YWxsLWhl YWRlcnMgY3Jvc3NfY29tcGlsaW5nPXllcyBcCi0JCWluc3RhbGxfcm9vdD0ke19zeXNyb290fQot Ci0JdG91Y2ggJHt3cmtzcmN9Ly5nbGliY19oZWFkZXJzX2RvbmUKLX0KLQotX2dsaWJjX2J1aWxk KCkgewotCWxvY2FsIF9hcmdzCi0JWyAtZiAke3dya3NyY30vLmdsaWJjX2J1aWxkX2RvbmUgXSAm JiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3Mg Z2xpYmNcbiIKLQotCVsgISAtZCBnbGliYy1idWlsZCBdICYmIG1rZGlyIGdsaWJjLWJ1aWxkCi0J Y2QgZ2xpYmMtYnVpbGQKLQotCWVjaG8gInNsaWJkaXI9L3Vzci9saWI2NCIgPiBjb25maWdwYXJt cwotCi0JZWNobyAibGliY19jdl9mb3JjZWRfdW53aW5kPXllcyIgPiBjb25maWcuY2FjaGUKLQll Y2hvICJsaWJjX2N2X2NfY2xlYW51cD15ZXMiID4+IGNvbmZpZy5jYWNoZQotCi0JZXhwb3J0IEND PSIke190cmlwbGV0fS1nY2MiIENYWD0iJHtfdHJpcGxldH0tZysrIiBMRD0iJHtfdHJpcGxldH0t bGQiIFwKLQkJQVM9IiR7X3RyaXBsZXR9LWFzIiBDUFA9IiR7X3RyaXBsZXR9LWNwcCIgXAotCQlO TT0iJHtfdHJpcGxldH0tbm0iCi0JZXhwb3J0IENGTEFHUz0iLU8yIC1waXBlIgotCi0JX2FyZ3M9 Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJkaXI9L3Vzci9saWI2NCIKLQlfYXJncys9 IiAtLWhvc3Q9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLWhlYWRlcnM9JHtfc3lzcm9v dH0vdXNyL2luY2x1ZGUiCi0JX2FyZ3MrPSIgLS1jb25maWctY2FjaGUiCi0JX2FyZ3MrPSIgLS1l bmFibGUtb2Jzb2xldGUtcnBjIgotCV9hcmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLW5zbCIKLQlf YXJncys9IiAtLWRpc2FibGUtcHJvZmlsZSIKLQlfYXJncys9IiAtLWVuYWJsZS1rZXJuZWw9Mi42 LjI3IgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJyb3IiCi0KLQkuLi9nbGliYy0ke19nbGliY192 ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIGlu c3RhbGxfcm9vdD0ke19zeXNyb290fSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdsaWJj X2J1aWxkX2RvbmUKLX0KLQotX2djY19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCVsgLWYgJHt3 cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQlt c2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgZmluYWxcbiIKLQotCVsgISAtZCBnY2MtYnVp bGQgXSAmJiBta2RpciBnY2MtYnVpbGQKLQljZCBnY2MtYnVpbGQKLQotCXVuc2V0IExEIEFTCi0K LQkjIE1ha2UgdGhpcyBsaW5rIHRvIHRhcmdldCBsaWJzLgotCWlmIFsgISAtZiAuc2VkX3N1YnN0 X2RvbmUgXTsgdGhlbgotCQlzZWQgLWUgInMsIC9saWIvLCAke19zeXNyb290fS9saWIvLGc7cywg L3Vzci9saWIvLCAke19zeXNyb290fS91c3IvbGliLyxnIiBcCi0JCQktaSAke19zeXNyb290fS91 c3IvbGliL2xpYmMuc28KLQkJc2VkIC1lICJzLCAvbGliNjQvLCAke19zeXNyb290fS9saWI2NC8s ZztzLCAvdXNyL2xpYjY0LywgJHtfc3lzcm9vdH0vdXNyL2xpYjY0LyxnIiBcCi0JCQktaSAke19z eXNyb290fS91c3IvbGliL2xpYmMuc28KLQkJc2VkIC1lICJzLCAvbGliLywgJHtfc3lzcm9vdH0v bGliLyxnO3MsIC91c3IvbGliLywgJHtfc3lzcm9vdH0vdXNyL2xpYi8sZyIgXAotCQkJLWkgJHtf c3lzcm9vdH0vdXNyL2xpYi9saWJtLnNvCi0JCXNlZCAtZSAicywgL2xpYjY0LywgJHtfc3lzcm9v dH0vbGliNjQvLGc7cywgL3Vzci9saWI2NC8sICR7X3N5c3Jvb3R9L3Vzci9saWI2NC8sZyIgXAot CQkJLWkgJHtfc3lzcm9vdH0vdXNyL2xpYi9saWJtLnNvCi0JCXRvdWNoIC5zZWRfc3Vic3RfZG9u ZQotCWZpCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLWxpYmRpcj0vdXNy L2xpYiIKLQlfYXJncys9IiAtLWxpYmV4ZWNkaXI9L3Vzci9saWIiCi0JX2FyZ3MrPSIgLS10YXJn ZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0J X2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYWRhLGMrKyxvYmpjLG9iai1jKyssZ28sZm9y dHJhbixsdG8iCi0JX2FyZ3MrPSIgLS13aXRoLWdudS1hcyIKLQlfYXJncys9IiAtLXdpdGgtZ251 LWxkIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYmFkYSIKLQlfYXJncys9IiAtLWVuYWJsZS1sdG8i Ci0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1waWUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVm YXVsdC1zc3AiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGlua2VyLWJ1aWxkLWlkIgotCV9hcmdzKz0i IC0tZW5hYmxlLWdudS11bmlxdWUtb2JqZWN0IgotCV9hcmdzKz0iIC0tZW5hYmxlLXNoYXJlZCIK LQlfYXJncys9IiAtLWVuYWJsZS10aHJlYWRzPXBvc2l4IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxp YnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LWxpYnNhbml0aXplciIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnN0ZGN4eC1wY2gi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNqbGotZXhjZXB0aW9ucyIKLQotCUNDPSJnY2MiIENYWD0i ZysrIiBDRkxBR1M9Ii1PMiAtcGlwZSIgXAotCQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZp Z3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5n Y2NfYnVpbGRfZG9uZQotfQotCi1kb19idWlsZCgpIHsKLQl1bnNldCBMREZMQUdTCi0JZXhwb3J0 IENGTEFHUz0iLU9zIC1mUElDIiBDWFhGTEFHUz0iLU9zIC1mUElDIgotCi0JZm9yIGYgaW4gaW5j bHVkZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7X3N5c3Jvb3R9L3Vz ci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0J CWlmIFsgISAtaCAke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtfc3lzcm9v dH0vdXNyLyR7Zn0gJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7 X3N5c3Jvb3R9L3Vzci9saWI2NAotCWxuIC1zZiB1c3IvbGliICR7X3N5c3Jvb3R9L2xpYjY0Ci0K LQlfYmludXRpbHNfYnVpbGQKLQlfZ2NjX2Jvb3RzdHJhcAotCV9saW51eF9oZWFkZXJzCi0JX2ds aWJjX2hlYWRlcnMKLQlfZ2xpYmNfYnVpbGQKLQlfZ2NjX2J1aWxkCi19Ci0KLWRvX2luc3RhbGwo KSB7Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAh IC1kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAg JHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtERVNU RElSfS8ke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtERVNURElSfS8ke19z eXNyb290fS91c3IvJHtmfSBcCi0JCQkJJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9Ci0JCWZp Ci0JZG9uZQotCWxuIC1zZiBsaWIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliNjQKLQls biAtc2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYjY0Ci0KLQkjIGluc3RhbGwg bGludXggQVBJIGhlYWRlcnMgZm9yIHg4NgotCWNkICR7d3Jrc3JjfS9saW51eC0ke19saW51eF92 ZXJzaW9ufQotCW1ha2UgQVJDSD14ODYgSU5TVEFMTF9IRFJfUEFUSD0ke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQlybSAtZiAkKGZpbmQgJHtERVNURElSfS8ke19z eXNyb290fS91c3IvaW5jbHVkZSAtbmFtZSAuaW5zdGFsbCAtb3IgLW5hbWUgLi5pbnN0YWxsLmNt ZCkKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZS9kcm0KLQotCSMg aW5zdGFsbCBjcm9zcyBiaW51dGlscwotCWNkICR7d3Jrc3JjfS9iaW51dGlscy1idWlsZAotCW1h a2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgaW5zdGFsbCBjcm9zcyBnY2MKLQlj ZCAke3dya3NyY30vZ2NjLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAot Ci0JIyBtb3ZlIGxpYmNjMS5zbyogdG8gdGhlIHN5c3Jvb3QKLQltdiAke0RFU1RESVJ9L3Vzci9s aWIvbGliY2MxLnNvKiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQotCSMgaW5zdGFs bCBnbGliYyBmb3IgdGFyZ2V0Ci0JY2QgJHt3cmtzcmN9L2dsaWJjLWJ1aWxkCi0JbWFrZSBpbnN0 YWxsX3Jvb3Q9JHtERVNURElSfS8ke19zeXNyb290fSBpbnN0YWxsIGluc3RhbGwtaGVhZGVycwot Ci0JIyBzeW1saW5rcyBmb3IgZ25hcmwgYW5kIGduYXQgc2hhcmVkIGxpYnJhcmllcwotCV9tYWpv cnZlcj0ke19nY2NfdmVyc2lvbiUuKi4qfQotCV9hZGFsaWI9dXNyL2xpYi9nY2MvJHtfdHJpcGxl dH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9s aWJnbmFybC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0J bXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvICR7REVT VERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCWxuIC1zdmYgbGliZ25hcmwtJHtfbWFqb3J2ZXJ9 LnNvIGxpYmduYXJsLnNvCi0JbG4gLXN2ZiBsaWJnbmF0LSR7X21ham9ydmVyfS5zbyBsaWJnbmF0 LnNvCi0Jcm0gLXZmICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF7cmwsdH0uc28KLQotCSMg V2UgbmVlZCB0byBidWlsZCBsaWJhdG9taWMgaW4gdGFyZ2V0IGdjYyBhcyBnY2NnbyBuZWVkcyBp dCB0bwotCSMgYnVpbGQuLi4gYnV0IGl0J3Mgbm90IG5lZWRlZCBhdCBydW50aW1lLCBzbyByZW1v dmUgaXQgZnJvbSB0aGUKLQkjIGRlc3RkaXIgc28gaXQgZG9lc24ndCBjb25mbGljdCB3aXRoIHRo ZSBsaWJhdG9taWMgcGFja2FnZQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xp Yi9saWJhdG9taWMuKgotCi0JIyBSZW1vdmUgdW5uZWNlc3Nhcnkgc3R1ZmYKLQlybSAtZiAke0RF U1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCi0Jcm0gLXJmICR7REVTVERJUn0vdXNyL3NoYXJl Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve2V0Yyx2YXJ9Ci0Jcm0gLXJmICR7REVT VERJUn0vJHtfc3lzcm9vdH0vdXNyL3tzYmluLHNoYXJlLGxpYmV4ZWN9Ci0Jcm0gLWYgJHtERVNU RElSfS8ke19zeXNyb290fS9saWJleGVjCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS97 c2JpbixsaWJ9Ci19Ci0KLWRvX2NsZWFuKCkgewotCSMgUmVtb3ZlIHRlbXBvcmFyeSBzdHVmZiBm cm9tIG1hc3RlcmRpcgotCXJtIC1yZiAke19zeXNyb290fQotCXJtIC1mIC91c3IvYmluLyR7X3Ry aXBsZXR9KgotCXJtIC1yZiAvdXNyL2xpYi9nY2MvJHtfdHJpcGxldH0KLQlybSAtcmYgL3Vzci9s aWJleGVjL2djYy8ke190cmlwbGV0fQotfQotCiBjcm9zcy14ODZfNjQtbGludXgtZ251LWxpYmNf cGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gZ2xpYmMgZmlsZXMiCiAJbm9zdHJpcD15ZXMK IAlub3ZlcmlmeXJkZXBzPXllcwogCW5vc2hsaWJwcm92aWRlcz15ZXMKKwogCXBrZ19pbnN0YWxs KCkgewotCQl2bW92ZSAke19zeXNyb290fQorCQl2bW92ZSB1c3IvJHtjcm9zc190cmlwbGV0fQog CX0KIH0KCkZyb20gMzgxMGUzYzdmOGM4ODc3ZTZhOTMyZmIzMTM1MTNiMmRmOTUxMTRkNSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0 ZTogU2F0LCAyNiBEZWMgMjAyMCAxOToxNToyNCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjYvMjZd IGNyb3NzLXg4Nl82NC1saW51eC1tdXNsOiByZXdvcmsgd2l0aCB2b2lkLWNyb3NzCgotLS0KIHNy Y3BrZ3MvY3Jvc3MteDg2XzY0LWxpbnV4LW11c2wvdGVtcGxhdGUgfCAzMDUgKystLS0tLS0tLS0t LS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCAyOTEgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy14ODZfNjQtbGludXgtbXVzbC90ZW1w bGF0ZSBiL3NyY3BrZ3MvY3Jvc3MteDg2XzY0LWxpbnV4LW11c2wvdGVtcGxhdGUKaW5kZXggNjM3 ZmJkMmU0MzkuLjU4YjFiNmQ0MzMxIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLXg4Nl82NC1s aW51eC1tdXNsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MteDg2XzY0LWxpbnV4LW11c2wv dGVtcGxhdGUKQEAgLTEsMTggKzEsMTggQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLXg4 Nl82NC1saW51eC1tdXNsJwotIworX3RyaXBsZXQ9eDg2XzY0LWxpbnV4LW11c2wKIF9iaW51dGls c192ZXJzaW9uPTIuMzIKIF9nY2NfdmVyc2lvbj05LjMuMAogX211c2xfdmVyc2lvbj0xLjEuMjQK IF9saW51eF92ZXJzaW9uPTQuMTkKIF9saWJ1Y29udGV4dF92ZXJzaW9uPTAuOS4wCi0KLV90cmlw bGV0PXg4Nl82NC1saW51eC1tdXNsCi1fc3lzcm9vdD0iL3Vzci8ke190cmlwbGV0fSIKLQogcGtn bmFtZT1jcm9zcy0ke190cmlwbGV0fQogdmVyc2lvbj0wLjMzCiByZXZpc2lvbj00Ci1zaG9ydF9k ZXNjPSJDcm9zcyB0b29sY2hhaW4gZm9yIHg4Nl82NCB3aXRoIG11c2wiCitidWlsZF9zdHlsZT12 b2lkLWNyb3NzCitob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJs IHB5dGhvbjMiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2 ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCitkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJz aW9ufV8ke3JldmlzaW9ufSIKK3Nob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAk e190cmlwbGV0fSIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4i CiBob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwtMi4w LW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBNSVQiCkBAIC0yOCwzMDEgKzI4LDI0IEBAIGNo ZWNrc3VtPSIwYWI2YzU1ZGQ4NmE5MmVkNTYxOTcyYmExNWI5YjcwYThiOWY3NTU1N2Y4OTY0NDZj ODJlOGIzNmU0NzNlZTA0CiAgMGM2OGY1NjU1NTI4YWVkNGY5OWRhZTcxYTViMjU5ZWRjOTMyMzlm YTg5OWUyZGY3OWMwNTUyNzVjMjE3NDlhMQogIDBkNTNhNDE1YTMwN2VmMTc1MTUzYmJlNjBhNTcy Yzk0MGE5MjJjYjczNmNlMTM1MzBiNjY2ZTdlYzI3OTVkNjgiCiAKLWxpYjMyZGlzYWJsZWQ9eWVz Ci1ub2Nyb3NzPXllcwotbm9waWU9eWVzCi1ub2RlYnVnPXllcwotY3JlYXRlX3dya3NyYz15ZXMK LWhvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIK LW1ha2VkZXBlbmRzPSJ6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIGxpYm1wYy1kZXZl bCBpc2wxNS1kZXZlbCIKLW5vc3RyaXBfZmlsZXM9ImxpYmNhZl9zaW5nbGUuYSBsaWJnY2MuYSBs aWJnY292LmEgbGliZ2NjX2VoLmEKLSBsaWJnbmFybF9waWMuYSBsaWJnbmFybC5hIGxpYmduYXRf cGljLmEgbGliZ25hdC5hIGxpYmdtZW0uYSIKLWRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3Zl cnNpb259XyR7cmV2aXNpb259IgotCi1pZiBbICIkWEJQU19UQVJHRVRfV09SRFNJWkUiICE9ICI2 NCIgXTsgdGhlbgotCWJyb2tlbj0iNjQtYml0IGNyb3NzdG9vbGNoYWluIG9ubHkgYXZhaWxhYmxl IG9uIDY0LWJpdCBob3N0IgotZmkKK2Nyb3NzX3RyaXBsZXQ9JHtfdHJpcGxldH0KK2Nyb3NzX2xp YnVjb250ZXh0X2FyY2g9eDg2XzY0Citjcm9zc19saW51eF9hcmNoPXg4NgorIyBleHBsaWNpdGx5 IGVuYWJsZSBmb3IgZmluYWwgZ2NjLCBnZm9ydHJhbiBkb2VzIG5vdCBidWlsZCB3aXRob3V0IG9u IHg4NgorY3Jvc3NfZ2NjX2NvbmZpZ3VyZV9hcmdzPSItLWVuYWJsZS1saWJxdWFkbWF0aCIKK2Ny b3NzX211c2xfY2ZsYWdzPSItTzIiCiAKIGlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiA9ICJ4 ODZfNjQtbXVzbCIgXTsgdGhlbgogCWJyb2tlbj0iQ2FuJ3QgYnVpbGQgY3Jvc3N0b29sY2hhaW4g dG8gaXRzZWxmIgogZmkKIAotX2FwcGx5X3BhdGNoKCkgewotCWxvY2FsIGFyZ3M9IiQxIiBwbmFt ZT0iJChiYXNlbmFtZSAkMikiCi0KLQlpZiBbICEgLWYgIi4ke3BuYW1lfV9kb25lIiBdOyB0aGVu Ci0JCXBhdGNoIC1OICRhcmdzIC1pICQyCi0JCXRvdWNoIC4ke3BuYW1lfV9kb25lCi0JZmkKLX0K LQotX2JpbnV0aWxzX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8u YmludXRpbHNfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2df bm9ybWFsICJCdWlsZGluZyBjcm9zcyBiaW51dGlscyBib290c3RyYXBcbiIKLQotCVsgISAtZCBi aW51dGlscy1idWlsZCBdICYmIG1rZGlyIGJpbnV0aWxzLWJ1aWxkCi0JY2QgYmludXRpbHMtYnVp bGQKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBs ZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS13ZXJyb3IiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAt LXdpdGgtc3lzdGVtLXpsaWIiCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vYmludXRp bHMtJHtfYmludXRpbHNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNvbmZp Z3VyZS1ob3N0Ci0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3 cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25lCi19Ci0KLV9nY2NfYm9vdHN0cmFwKCkgewotCWxv Y2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lIF0gJiYgcmV0 dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nY2MtJHtfZ2NjX3ZlcnNpb259Ci0JZm9yIGYgaW4gJHtY QlBTX1NSQ1BLR0RJUn0vZ2NjL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1w MCAiJGYiCi0JZG9uZQotCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9maWxlcy8qLW11 c2wucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDEgIiRmIgotCWRvbmUKLQotCW1zZ19ub3Jt YWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBib290c3RyYXBcbiIKLQotCVsgISAtZCAuLi9nY2MtYm9v dHN0cmFwIF0gJiYgbWtkaXIgLi4vZ2NjLWJvb3RzdHJhcAotCWNkIC4uL2djYy1ib290c3RyYXAK LQlleHBvcnQgYWNfY3ZfY19jb21waWxlcl9nbnU9eWVzCi0KLQlfYXJncz0iLS1wcmVmaXg9L3Vz ciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lz cm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyIKLQlfYXJn cys9IiAtLXdpdGgtbmV3bGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLXRocmVhZHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWRlY2ltYWwtZmxv YXQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGli bXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliZ29tcCIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbGliYXRvbWljIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zeW12ZXJzIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIgbGliYXRfY3ZfaGF2ZV9pZnVuYz1ubyIKLQlfYXJn cys9IiAke19mcHVmbGFnc30iCi0KLQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAk e19hcmdzfQotCWZpbmQgLW5hbWUgTWFrZWZpbGUgLWV4ZWMgc2VkIC1pICJ7fSIgLWUgInM7XkNG TEFHUy4qOyYgLWZQSUMgLURfX1dDSEFSX1RZUEVfXz1pbnQ7IiBcOwotCi0JbWFrZSAke21ha2Vq b2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2Rv bmUKLX0KLQotX2xpbnV4X2hlYWRlcnMoKSB7Ci0JWyAtZiAke3dya3NyY30vLmxpbnV4X2J1aWxk X2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRp bmcgTGludXggQVBJIGhlYWRlcnNcbiIKLQotCWNkIGxpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0K LQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9rZXJuZWwtbGliYy1oZWFkZXJzL3BhdGNoZXMv Ki5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAkZgotCWRvbmUKLQotCW1ha2UgQVJDSD14 ODYgaGVhZGVyc19jaGVjawotCW1ha2UgQVJDSD14ODYgSU5TVEFMTF9IRFJfUEFUSD0ke19zeXNy b290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmxpbnV4X2J1aWxk X2RvbmUKLX0KLQotX211c2xfYnVpbGQoKSB7Ci0JWyAtZiAke3dya3NyY30vLm11c2xfYnVpbGRf ZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vbXVzbC0ke19tdXNsX3ZlcnNpb259 Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgbXVzbCBsaWJjXG4iCi0KLQkjIEFwcGx5IG11 c2wgcGF0Y2hlcyBpZiB0aGVyZSBhcmUgYW55Ci0JaWYgWyAtZCAiJHtYQlBTX1NSQ1BLR0RJUn0v bXVzbC9wYXRjaGVzIiBdOyB0aGVuCi0JCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L211c2wv cGF0Y2hlcy8qLnBhdGNoOyBkbwotCQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JCWRvbmUKLQlm aQotCi0JQ0M9IiR7X3RyaXBsZXR9LWdjYyIgQ0ZMQUdTPSItT3MgLXBpcGUgLWZQSUMgJHtfYXJj aGZsYWdzfSIgXAotCQkuL2NvbmZpZ3VyZSAtLXByZWZpeD0vdXNyCi0KLQltYWtlICR7bWFrZWpv YnN9Ci0JbWFrZSBERVNURElSPSR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3Jj fS8ubXVzbF9idWlsZF9kb25lCi19Ci0KLV9saWJ1Y29udGV4dF9idWlsZCgpIHsKLQlbIC1mICR7 d3Jrc3JjfS8ubGlidWNvbnRleHRfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dy a3NyY30vbGlidWNvbnRleHQtJHtfbGlidWNvbnRleHRfdmVyc2lvbn0KLQltc2dfbm9ybWFsICJC dWlsZGluZyBjcm9zcyBsaWJ1Y29udGV4dFxuIgotCi0JIyBpdCdzIG9rIGlmIHdlJ3JlIHN0YXRp YyBvbmx5IGhlcmUKLQlDQz0iJHtfdHJpcGxldH0tZ2NjIiBBUj0iJHtfdHJpcGxldH0tYXIiIEFT PSIke190cmlwbGV0fS1hcyIgXAotCQlDRkxBR1M9Ii1PcyAtcGlwZSAke19hcmNoZmxhZ3N9IiBc Ci0JCW1ha2UgQVJDSD14ODZfNjQgbGlidWNvbnRleHQuYQotCi0JY3AgbGlidWNvbnRleHQuYSAk e19zeXNyb290fS91c3IvbGliCi0KLQl0b3VjaCAke3dya3NyY30vLmxpYnVjb250ZXh0X2J1aWxk X2RvbmUKLX0KLQotX2djY19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCVsgLWYgJHt3cmtzcmN9 Ly5nY2NfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9y bWFsICJCdWlsZGluZyBjcm9zcyBnY2MgZmluYWxcbiIKLQotCVsgISAtZCBnY2MtYnVpbGQgXSAm JiBta2RpciBnY2MtYnVpbGQKLQljZCBnY2MtYnVpbGQKLQotCV9hcmdzPSItLXByZWZpeD0vdXNy IgotCV9hcmdzKz0iIC0tbGliZXhlY2Rpcj0vdXNyL2xpYiIKLQlfYXJncys9IiAtLXRhcmdldD0k e190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJn cys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyxhZGEsYysrLG9iamMsb2JqLWMrKyxnbyxmb3J0cmFu LGx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJhZGEiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbHRv IgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtcGllIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRl ZmF1bHQtc3NwIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWVuYWJs ZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic2FuaXRpemVyIgotCV9hcmdz Kz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZW5hYmxlLXNoYXJlZCIK LQlfYXJncys9IiAtLWRpc2FibGUtc3ltdmVycyIKLQlfYXJncys9IiBsaWJhdF9jdl9oYXZlX2lm dW5jPW5vIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCS4uL2djYy0ke19nY2NfdmVyc2lv bn0vY29uZmlndXJlICR7X2FyZ3N9Ci0JZmluZCAtbmFtZSBNYWtlZmlsZSAtZXhlYyBzZWQgLWkg Int9IiAtZSAiczteQ0ZMQUdTLio7JiAtZlBJQyAtRF9fV0NIQVJfVFlQRV9fPWludDsiIFw7Ci0K LQltYWtlICR7bWFrZWpvYnN9Ci0KLQl0b3VjaCAke3dya3NyY30vLmdjY19idWlsZF9kb25lCi19 Ci0KLWRvX2J1aWxkKCkgewotCSMgRW5zdXJlIHdlIHVzZSBzYW5lIGVudmlyb25tZW50Ci0JdW5z ZXQgQ0MgQ1hYIENQUCBMRCBBUyBBUiBSQU5MSUIgT0JKRFVNUCBSRUFERUxGIE5NCi0JdW5zZXQg Q0ZMQUdTIENYWEZMQUdTIENQUEZMQUdTIExERkxBR1MKLQlleHBvcnQgQ0ZMQUdTPSItT3MgLXBp cGUgLWZQSUMiIENYWEZMQUdTPSItT3MgLXBpcGUgLWZQSUMiCi0KLQlmb3IgZiBpbiBpbmNsdWRl IGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtfc3lzcm9vdH0vdXNyLyR7 Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYg WyAhIC1oICR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke19zeXNyb290fS91 c3IvJHtmfSAke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtfc3lz cm9vdH0vdXNyL2xpYjY0Ci0JbG4gLXNmIHVzci9saWIgJHtfc3lzcm9vdH0vbGliNjQKLQotCV9i aW51dGlsc19idWlsZAotCV9nY2NfYm9vdHN0cmFwCi0JX2xpbnV4X2hlYWRlcnMKLQlfbXVzbF9i dWlsZAotCV9saWJ1Y29udGV4dF9idWlsZAotCV9nY2NfYnVpbGQKLX0KLQotZG9faW5zdGFsbCgp IHsKLQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEg LWQgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAk e0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3Vzci8ke2Z9IFwKLQkJCQkke0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkK LQlkb25lCi0JbG4gLXNmIGxpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWI2NAotCWxu IC1zZiB1c3IvbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliNjQKLQotCSMgaW5zdGFsbCBs aW51eCBBUEkgaGVhZGVycyBmb3IgeDg2Ci0JY2QgJHt3cmtzcmN9L2xpbnV4LSR7X2xpbnV4X3Zl cnNpb259Ci0JbWFrZSBBUkNIPXg4NiBJTlNUQUxMX0hEUl9QQVRIPSR7REVTVERJUn0vJHtfc3lz cm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCXJtIC1mICQoZmluZCAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3Vzci9pbmNsdWRlIC1uYW1lIC5pbnN0YWxsIC1vciAtbmFtZSAuLmluc3RhbGwuY21k KQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlL2RybQotCi0JIyBp bnN0YWxsIGNyb3NzIGJpbnV0aWxzCi0JY2QgJHt3cmtzcmN9L2JpbnV0aWxzLWJ1aWxkCi0JbWFr ZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBpbnN0YWxsIGNyb3NzIGdjYwotCWNk ICR7d3Jrc3JjfS9nY2MtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0K LQkjIG1vdmUgbGliY2MxLnNvKiB0byB0aGUgc3lzcm9vdAotCW12ICR7REVTVERJUn0vdXNyL2xp Yi9saWJjYzEuc28qICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JIyBpbnN0YWxs IG11c2wgbGliYyBmb3IgdGFyZ2V0Ci0JY2QgJHt3cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9u fQotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCSMgUmVt b3ZlIHVzZWxlc3MgaGVhZGVycy4KLQlybSAtcmYgJHtERVNURElSfS91c3IvbGliL2djYy8ke190 cmlwbGV0fS8qL2luY2x1ZGUtZml4ZWQvCi0KLQkjIE1ha2UgbGQtbXVzbC14ODZfNjQuc28uMSBz eW1saW5rIHJlbGF0aXZlIHRvIGN3ZC4KLQljZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9s aWIKLQlsbiAtc2YgbGliYy5zbyBsZC1tdXNsLXg4Nl82NC5zby4xCi0KLQkjIHN5bWxpbmtzIGZv ciBnbmFybCBhbmQgZ25hdCBzaGFyZWQgbGlicmFyaWVzCi0JX21ham9ydmVyPSR7X2djY192ZXJz aW9uJS4qLip9Ci0JX2FkYWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0fS8ke19nY2NfdmVyc2lv bn0vYWRhbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXJsLSR7X21ham9y dmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQltdiAtdiAke0RFU1RESVJ9 LyR7X2FkYWxpYn0vbGliZ25hdC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290 fS91c3IvbGliCi0JbG4gLXN2ZiBsaWJnbmFybC0ke19tYWpvcnZlcn0uc28gbGliZ25hcmwuc28K LQlsbiAtc3ZmIGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXQuc28KLQlybSAtdmYgJHtE RVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXtybCx0fS5zbwotCi0JIyBXZSBuZWVkIHRvIGJ1aWxk IGxpYmF0b21pYyBpbiB0YXJnZXQgZ2NjIGFzIGdjY2dvIG5lZWRzIGl0IHRvCi0JIyBidWlsZC4u LiBidXQgaXQncyBub3QgbmVlZGVkIGF0IHJ1bnRpbWUsIHNvIHJlbW92ZSBpdCBmcm9tIHRoZQot CSMgZGVzdGRpciBzbyBpdCBkb2Vzbid0IGNvbmZsaWN0IHdpdGggdGhlIGxpYmF0b21pYyBwYWNr YWdlCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xpYmF0b21pYy4qCi0K LQkjIFJlbW92ZSB1bm5lY2Vzc2FyeSBzdHVmZgotCXJtIC1mICR7REVTVERJUn0vdXNyL2xpYiov bGliaWJlcnR5LmEKLQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUKLQlybSAtcmYgJHtERVNU RElSfS8ke19zeXNyb290fS97ZXRjLHZhcn0KLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290 fS91c3Ive3NiaW4sc2hhcmUsbGliZXhlY30KLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9 L2xpYmV4ZWMKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYi8qLnB5Ci0Jcm0gLWYg JHtERVNURElSfS8ke19zeXNyb290fS97c2JpbixsaWJ9Ci19Ci0KIGNyb3NzLXg4Nl82NC1saW51 eC1tdXNsLWxpYmNfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gbGliYyBmaWxlcyIKIAlu b3N0cmlwPXllcwogCW5vdmVyaWZ5cmRlcHM9eWVzCiAJbm9zaGxpYnByb3ZpZGVzPXllcworCiAJ cGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICR7X3N5c3Jvb3R9CisJCXZtb3ZlIHVzci8ke2Nyb3Nz X3RyaXBsZXR9CiAJfQogfQo= --===============8687780598349670412==--