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 23090 invoked from network); 25 Dec 2020 17:11:48 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 25 Dec 2020 17:11:48 -0000 Content-Type: multipart/mixed; boundary="===============6411635769467550732==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_=5BRFC_WIP=5D_crosstoolchain_build-style?= To: ml@inbox.vuxu.org From: q66 Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Fri, 25 Dec 2020 18:11:45 +0100 List-Id: Message-ID: <20201225171145._oxDTzV60zXWiuLEbeNnlYDFOfM3_CxfDgAWc74aUuk@z> GitHub notification mails are now in MIME to allow UTF8. --===============6411635769467550732== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgcTY2IGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9xNjYvdm9p ZC1wYWNrYWdlcyBjcm9zcy1zdHlsZQpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lk LXBhY2thZ2VzL3B1bGwvMjc0MTIKCltSRkMgV0lQXSBjcm9zc3Rvb2xjaGFpbiBidWlsZC1zdHls ZQpUaGlzIGludHJvZHVjZXMgYSBidWlsZC1zdHlsZSBmb3Igc3lzdGVtIGNyb3NzdG9vbGNoYWlu cy4gSXQgb25seSB3b3JrcywgYW5kIHdpbGwgb25seSB3b3JrLCBmb3IgdG9vbGNoYWlucyB0YXJn ZXRpbmcgVm9pZCBhbmQgb25lIG9mIGl0cyBzdGFuZGFyZCBsaWJyYXJpZXMuIFRoZSBub25lIHRh cmdldHMgYW5kIHN0dWZmIGxpa2UgbWluZ3cgYXJlIGV4cGxpY2l0bHkgYSBub24tZ29hbCwgdG8g cmVkdWNlIHRoZSBhbW91bnQgb2YgbWFnaWMgd2UgaGF2ZSB0byBkby4NCg0KVGhpcyBoYXMgYSBi dW5jaCBvZiBhZHZhbnRhZ2VzOg0KDQotIGNyb3NzdG9vbGNoYWluIHRlbXBsYXRlcyBjYW4gbm93 IGJlIHNtYWxsIGFuZCBzaW1wbGUgKGFsc28gYXR0YWNoZWQ6IHByb29mIG9mIGNvbmNlcHQgcmVk b2luZyBvZiBgY3Jvc3MtYWFyY2g2NC1saW51eC1nbnVgKQ0KLSBjcm9zc3Rvb2xjaGFpbnMgd3Jp dGVuIHdpdGggdGhpcyBidWlsZC1zdHlsZSB3aWxsIG5vIGxvbmdlciBtZXNzIHVwIG1hc3RlcmRp cnMgbGlrZSB0aGUgZXhpc3Rpbmcgb25lcyBkbzsgeW91IGNhbiBzYWZlbHkgYnVpbGQgeW91ciBz dHVmZiB3aXRob3V0IGAtdGAgYW5kIHlvdXIgYG1hc3RlcmRpcmAgd2lsbCBiZSBwcmlzdGluZQ0K LSB1bmlmaWNhdGlvbiBvZiBvcHRpb25zIHBhc3NlZCB0byBgZ2NjYC9saWJjL2BiaW51dGlsc2Ag Y29uZmlndXJlLCBhcyBtdWNoIGFzIHBvc3NpYmxlDQotIHJlZHVjZWQgcmVwZWF0ZWQgYm9pbGVy cGxhdGUgY29kZSBiZXR3ZWVuIGluZGl2aWR1YWwgY3Jvc3N0b29sY2hhaW5zDQotIGBjY2FjaGVg IGZyaWVuZGx5DQotIGVhc2llciB1cGdyYWRlcywgZWFzaWVyIG1haW50ZW5hbmNlLCBldGMNCg0K VGhpcyBpcyBjdXJyZW50bHkgaW5jb21wbGV0ZS4gVGhlc2UgdGhpbmdzIGFyZSBsZWZ0IHRvIGRv Og0KDQotIFt4XSBBZGQgbXVzbCBzdXBwb3J0DQotIFt4XSBDbGVhbiB1cCB0aGUgY29uZmlndXJl IHBhcmFtcywgb25seSBrZWVwIHRoZSBnZW5lcmljIG9uZXMgaW4gdGhlIGJ1aWxkLXN0eWxlLCBz cGVjaWZpYyBvbmVzIHdpbGwgZ28gaW50byBpbmRpdmlkdWFsIGNyb3NzdG9vbGNoYWlucyAodGhp cyBvbmUgaXMgbGFyZ2VseSBiYXNlZCBvbiB3aGF0IHRoZSBhYXJjaDY0IG9uZSB3YXMgZG9pbmcp DQotIFsgXSBSZXdvcmsgdGhlIG90aGVyIHRlbXBsYXRlcyB0byB1c2UgdGhpcw0KLSBbIF0gNjQt Yml0IGNyb3NzIG9uIDMyLWJpdCBob3N0cyBpcyBwcm9iYWJseSBhY3R1YWxseSBmaW5lIGluIGdl bmVyYWwsIHdlIGp1c3QgbmVlZCB0byBlbmFibGUgaXQNCi0gWyBdIEFsbG93IGdsaWJjIGNyb3Nz dG9vbGNoYWlucyBvbiBtdXNsICh0aGlzIG5lZWRzIGBnbGliY2AgMi4zMiB0aG91Z2gpDQoNCkZv ciBub3csIHBvc3RpbmcgZm9yIGlucHV0Lg0KDQpARHVuY2FlbiBAbGVhaG5ldWtpcmNoZW4gQHB1 bGxtb2xsIEBlcmljb25yIEB2b2lkLWxpbnV4L3BrZy1jb21taXR0ZXJzIA0KDQpbY2kgc2tpcF0K CkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFj a2FnZXMvcHVsbC8yNzQxMi5wYXRjaCBpcyBhdHRhY2hlZA== --===============6411635769467550732== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-cross-style-27412.patch" RnJvbSBkODUwOTY3ZDViMzJjYTU3OTk0NGFjYzQ1ZTFmYjllZWJhMTA0NDVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmks IDI1IERlYyAyMDIwIDE0OjU4OjM4ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxLzRdIGdjYzogdXNl IGNvbnNpc3RlbnQgcGF0Y2ggbGV2ZWwgZm9yIG11c2wgcGF0Y2hlcwoKbmVlZGVkIGZvciBjcm9z cyBidWlsZCBzdHlsZQotLS0KIHNyY3BrZ3MvZ2NjL2ZpbGVzL2xpYmduYXJsLW11c2wucGF0Y2gg fCAgOCArKysrLS0tLQogc3JjcGtncy9nY2MvZmlsZXMvbGlic3NwLW11c2wucGF0Y2ggICB8IDEy ICsrKysrKy0tLS0tLQogc3JjcGtncy9nY2MvdGVtcGxhdGUgICAgICAgICAgICAgICAgICB8ICA0 ICsrLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nY2MvZmlsZXMvbGliZ25hcmwtbXVzbC5wYXRjaCBiL3Ny Y3BrZ3MvZ2NjL2ZpbGVzL2xpYmduYXJsLW11c2wucGF0Y2gKaW5kZXggMzFkMzk2MDdlYTQuLjVl ZDlmMTZmNTU4IDEwMDY0NAotLS0gYS9zcmNwa2dzL2djYy9maWxlcy9saWJnbmFybC1tdXNsLnBh dGNoCisrKyBiL3NyY3BrZ3MvZ2NjL2ZpbGVzL2xpYmduYXJsLW11c2wucGF0Y2gKQEAgLTMsOCAr Myw4IEBAIFVwc3RyZWFtOiBVbmtub3duCiBSZWFzb246IFBhdGNoIGxpYmduYXJsIHRvIG5vdCB1 c2UgZnVuY3Rpb24gbWlzc2luZyBmcm9tIG11c2wuCiAKIGRpZmYgLXJ1cCBnY2MtOC4yLjAvZ2Nj L2FkYS9saWJnbmFybC9zLW9zaW50ZV9fbGludXguYWRzIGdjYy04LjIuMC1uZXcvZ2NjL2FkYS9s aWJnbmFybC9zLW9zaW50ZV9fbGludXguYWRzCi0tLS0gZ2NjLTguMi4wL2djYy9hZGEvbGliZ25h cmwvcy1vc2ludGVfX2xpbnV4LmFkcwkyMDE4LTAxLTExIDAwOjU1OjI1LjAwMDAwMDAwMCAtMDgw MAotKysrIGdjYy04LjIuMC1uZXcvZ2NjL2FkYS9saWJnbmFybC9zLW9zaW50ZV9fbGludXguYWRz CTIwMTgtMTEtMDEgMTY6MTY6MjMuMzcyNDUyOTUxIC0wNzAwCistLS0gZ2NjL2FkYS9saWJnbmFy bC9zLW9zaW50ZV9fbGludXguYWRzCTIwMTgtMDEtMTEgMDA6NTU6MjUuMDAwMDAwMDAwIC0wODAw CisrKysgZ2NjL2FkYS9saWJnbmFybC9zLW9zaW50ZV9fbGludXguYWRzCTIwMTgtMTEtMDEgMTY6 MTY6MjMuMzcyNDUyOTUxIC0wNzAwCiBAQCAtMzk0LDEyICszOTQsNiBAQCBwYWNrYWdlIFN5c3Rl bS5PU19JbnRlcmZhY2UgaXMKICAgICBQVEhSRUFEX1JXTE9DS19QUkVGRVJfV1JJVEVSX05QICAg ICAgICAgICAgICA6IGNvbnN0YW50IDo9IDE7CiAgICAgUFRIUkVBRF9SV0xPQ0tfUFJFRkVSX1dS SVRFUl9OT05SRUNVUlNJVkVfTlAgOiBjb25zdGFudCA6PSAyOwpAQCAtMzEsOCArMzEsOCBAQCBk aWZmIC1ydXAgZ2NjLTguMi4wL2djYy9hZGEvbGliZ25hcmwvcy1vc2ludGVfX2xpbnV4LmFkcyBn Y2MtOC4yLjAtbmV3L2djYy9hZGEvbAogICAgICAgIHNjaGVkX3ByaW9yaXR5IDogaW50OyAgLS0g IHNjaGVkdWxpbmcgcHJpb3JpdHkKICAgICBlbmQgcmVjb3JkOwogZGlmZiAtcnVwIGdjYy04LjIu MC9nY2MvYWRhL2xpYmduYXJsL3MtdGFwcm9wX19saW51eC5hZGIgZ2NjLTguMi4wLW5ldy9nY2Mv YWRhL2xpYmduYXJsL3MtdGFwcm9wX19saW51eC5hZGIKLS0tLSBnY2MtOC4yLjAvZ2NjL2FkYS9s aWJnbmFybC9zLXRhcHJvcF9fbGludXguYWRiCTIwMTgtMDEtMTEgMDA6NTU6MjUuMDAwMDAwMDAw IC0wODAwCi0rKysgZ2NjLTguMi4wLW5ldy9nY2MvYWRhL2xpYmduYXJsL3MtdGFwcm9wX19saW51 eC5hZGIJMjAxOC0xMS0xMyAxMToyODozNi40MzM5NjQ0NDkgLTA4MDAKKy0tLSBnY2MvYWRhL2xp YmduYXJsL3MtdGFwcm9wX19saW51eC5hZGIJMjAxOC0wMS0xMSAwMDo1NToyNS4wMDAwMDAwMDAg LTA4MDAKKysrKyBnY2MvYWRhL2xpYmduYXJsL3MtdGFwcm9wX19saW51eC5hZGIJMjAxOC0xMS0x MyAxMToyODozNi40MzM5NjQ0NDkgLTA4MDAKIEBAIC0yMDIsOSArMjAyLDYgQEAgcGFja2FnZSBi b2R5IFN5c3RlbS5UYXNrX1ByaW1pdGl2ZXMuT3BlcgogICAgIHByYWdtYSBJbXBvcnQKICAgICAg IChDLCBHTkFUX3B0aHJlYWRfY29uZGF0dHJfc2V0dXAsICJfX2duYXRfcHRocmVhZF9jb25kYXR0 cl9zZXR1cCIpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nY2MvZmlsZXMvbGlic3NwLW11c2wucGF0 Y2ggYi9zcmNwa2dzL2djYy9maWxlcy9saWJzc3AtbXVzbC5wYXRjaAppbmRleCA4YTY5MmMwZDY2 NC4uOGQ0N2I0NDJhYTEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2NjL2ZpbGVzL2xpYnNzcC1tdXNs LnBhdGNoCisrKyBiL3NyY3BrZ3MvZ2NjL2ZpbGVzL2xpYnNzcC1tdXNsLnBhdGNoCkBAIC0yLDgg KzIsOCBAQCBGaXJzdCBwYXJ0IHRha2VuIGZyb20gQWxwaW5lLgogCiBTZWNvbmQgcGFydCBhZGRl ZCB0byBwcmV2ZW50IGdjY2dvIGZyb20gdGhpbmtpbmcgaXQgY2FuIC1mc3BsaXQtc3RhY2sgb24g bXVzbC4KIAotLS0tIGEvZ2NjL2djYy5jCi0rKysgYi9nY2MvZ2NjLmMKKy0tLSBnY2MvZ2NjLmMK KysrKyBnY2MvZ2NjLmMKIEBAIC04NzYsOSArODc2LDggQEAKICAjZW5kaWYKICAKQEAgLTE1LDgg KzE1LDggQEAgU2Vjb25kIHBhcnQgYWRkZWQgdG8gcHJldmVudCBnY2NnbyBmcm9tIHRoaW5raW5n IGl0IGNhbiAtZnNwbGl0LXN0YWNrIG9uIG11c2wuCiAgI2Vsc2UKICAjZGVmaW5lIExJTktfU1NQ X1NQRUMgIiV7ZnN0YWNrLXByb3RlY3Rvcnxmc3RhY2stcHJvdGVjdG9yLWFsbCIgXAogIAkJICAg ICAgICJ8ZnN0YWNrLXByb3RlY3Rvci1zdHJvbmd8ZnN0YWNrLXByb3RlY3Rvci1leHBsaWNpdCIg XAotLS0tIGEvZ2NjL2NvbmZpZy9pMzg2L2dudS11c2VyLWNvbW1vbi5oCi0rKysgYi9nY2MvY29u ZmlnL2kzODYvZ251LXVzZXItY29tbW9uLmgKKy0tLSBnY2MvY29uZmlnL2kzODYvZ251LXVzZXIt Y29tbW9uLmgKKysrKyBnY2MvY29uZmlnL2kzODYvZ251LXVzZXItY29tbW9uLmgKIEBAIC02NCw5 ICs2NCwzIEBAIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qg c2VlCiAgCiAgLyogU3RhdGljIHN0YWNrIGNoZWNraW5nIGlzIHN1cHBvcnRlZCBieSBtZWFucyBv ZiBwcm9iZXMuICAqLwpAQCAtMjcsOCArMjcsOCBAQCBTZWNvbmQgcGFydCBhZGRlZCB0byBwcmV2 ZW50IGdjY2dvIGZyb20gdGhpbmtpbmcgaXQgY2FuIC1mc3BsaXQtc3RhY2sgb24gbXVzbC4KIC0j aWYgSEFWRV9HQVNfQ0ZJX1BFUlNPTkFMSVRZX0RJUkVDVElWRQogLSNkZWZpbmUgVEFSR0VUX0NB Tl9TUExJVF9TVEFDSwogLSNlbmRpZgotLS0tIGEvZ2NjL2NvbmZpZy9pMzg2L2dudS5oCi0rKysg Yi9nY2MvY29uZmlnL2kzODYvZ251LmgKKy0tLSBnY2MvY29uZmlnL2kzODYvZ251LmgKKysrKyBn Y2MvY29uZmlnL2kzODYvZ251LmgKIEBAIC00MCwxMSArNDAsNiBAQCBhbG9uZyB3aXRoIEdDQy4g IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KICAvKiBpMzg2IGds aWJjIHByb3ZpZGVzIF9fc3RhY2tfY2hrX2d1YXJkIGluICVnczoweDE0LiAgKi8KICAjZGVmaW5l IFRBUkdFVF9USFJFQURfU1NQX09GRlNFVCAgICAgICAgMHgxNApkaWZmIC0tZ2l0IGEvc3JjcGtn cy9nY2MvdGVtcGxhdGUgYi9zcmNwa2dzL2djYy90ZW1wbGF0ZQppbmRleCA0NzJiOTUyZWFlMy4u MDJhNzUxNjAwMmQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2NjL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvZ2NjL3RlbXBsYXRlCkBAIC0xNzMsOCArMTczLDggQEAgcHJlX2NvbmZpZ3VyZSgpIHsKIAlz ZWQgLWkgIi9hY19jcHA9L3MvXCRDUFBGTEFHUy9cJENQUEZMQUdTIC1PMi8iIHtnY2MsbGliaWJl cnR5fS9jb25maWd1cmUKIAljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KIAkJKi1tdXNs KQotCQkJcGF0Y2ggLXAxIC1pICR7RklMRVNESVJ9L2xpYmduYXJsLW11c2wucGF0Y2gKLQkJCXBh dGNoIC1wMSAtaSAke0ZJTEVTRElSfS9saWJzc3AtbXVzbC5wYXRjaAorCQkJcGF0Y2ggLXAwIC1p ICR7RklMRVNESVJ9L2xpYmduYXJsLW11c2wucGF0Y2gKKwkJCXBhdGNoIC1wMCAtaSAke0ZJTEVT RElSfS9saWJzc3AtbXVzbC5wYXRjaAogCQkJcGF0Y2ggLXAwIC1pICR7RklMRVNESVJ9L2djY2dv LW11c2wucGF0Y2gKIAkJCTs7CiAJZXNhYwoKRnJvbSBlMTM1MGM5ZTRlYzRhZTkwMDhjMmUxNTk2 ZGJhOTcxZWY2YTU3NDg4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmll bEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmksIDI1IERlYyAyMDIwIDAwOjQyOjI2ICswMTAwClN1 YmplY3Q6IFtQQVRDSCAyLzRdIGNvbW1vbi9idWlsZC1zdHlsZTogYWRkIHZvaWQtY3Jvc3MKCnRo aXMgaW50cm9kdWNlcyBhIG5ldyBidWlsZC1zdHlsZSB2b2lkLWNyb3NzLCB3aGljaCBjYW4gYmUg dXNlZAp0byB3cml0ZSBzeXN0ZW0gY3Jvc3N0b29sY2hhaW4gdGVtcGxhdGVzOyB0aGlzIGlzIHRv IHJlZHVjZSB0aGUKYW1vdW50IG9mIG1haW50ZW5hbmNlLCByZXNvbHZlIGV4aXN0aW5nIHByb2Js ZW1zIHdpdGggdGhlIGNyb3NzCnRvb2xjaGFpbiB0ZW1wbGF0ZXMgYW5kIHJlbW92ZSByZXBlYXRl ZCBjb2RlCi0tLQogY29tbW9uL2J1aWxkLXN0eWxlL3ZvaWQtY3Jvc3Muc2ggICAgICAgICAgICAg fCA1NTcgKysrKysrKysrKysrKysrKysrKwogY29tbW9uL2Vudmlyb25tZW50L2J1aWxkLXN0eWxl L3ZvaWQtY3Jvc3Muc2ggfCAgMTEgKwogMiBmaWxlcyBjaGFuZ2VkLCA1NjggaW5zZXJ0aW9ucygr KQogY3JlYXRlIG1vZGUgMTAwNjQ0IGNvbW1vbi9idWlsZC1zdHlsZS92b2lkLWNyb3NzLnNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgY29tbW9uL2Vudmlyb25tZW50L2J1aWxkLXN0eWxlL3ZvaWQtY3Jv c3Muc2gKCmRpZmYgLS1naXQgYS9jb21tb24vYnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5zaCBiL2Nv bW1vbi9idWlsZC1zdHlsZS92b2lkLWNyb3NzLnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi5iNjYyYWQ0OTk0MgotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9idWls ZC1zdHlsZS92b2lkLWNyb3NzLnNoCkBAIC0wLDAgKzEsNTU3IEBACisjCisjIFRoaXMgaGVscGVy IGlzIGZvciB2b2lkIHN5c3RlbSBjcm9zc3Rvb2xjaGFpbiB0ZW1wbGF0ZXMuCisjCisjIE1hbmRh dG9yeSB2YXJpYWJsZXM6CisjCisjIC0gY3Jvc3NfdHJpcGxldCAtIHRoZSB0YXJnZXQgdHJpcGxl dCAoZS5nLiBhYXJjaDY0LWxpbnV4LWdudSkKKyMgLSBjcm9zc193b3Jkc2l6ZSAtIDMyIG9yIDY0 CisjIC0gY3Jvc3NfbGliYyAtIGdsaWJjIG9yIG11c2wKKyMgLSBjcm9zc19iaW51dGlsc192ZXJz aW9uCisjIC0gY3Jvc3NfZ2NjX3ZlcnNpb24KKyMgLSBjcm9zc19saW51eF92ZXJzaW9uCisjIC0g Y3Jvc3NfbGludXhfYXJjaCAtIHRoZSBzb3VyY2UgQVJDSCBvZiB0aGUga2VybmVsIChlLmcuIGFy bTY0KQorIyAtIGNyb3NzX2dsaWJjX3ZlcnNpb24KKyMgLSBjcm9zc19tdXNsX3ZlcnNpb24KKyMg LSBjcm9zc19saWJ1Y29udGV4dF92ZXJzaW9uIC0gb25seSBvbiBtdXNsIHdpdGhvdXQgY3Jvc3Nf Z2NjX3NraXBfZ28KKyMgLSBjcm9zc19saWJ1Y29udGV4dF9hcmNoIC0gZGl0dG8sIHRoZSBsaWJ1 Y29udGV4dCBhcmNoCisjCisjIE9wdGlvbmFsIHZhcmlhYmxlczoKKyMKKyMgLSBjcm9zc19nY2Nf c2tpcF9nbyAtIGRvIG5vdCBidWlsZCBnY2NnbyBzdXBwb3J0CisjIC0gY3Jvc3NfYmludXRpbHNf Y29uZmlndXJlX2FyZ3MKKyMgLSBjcm9zc19nY2NfYm9vdHN0cmFwX2NvbmZpZ3VyZV9hcmdzCisj IC0gY3Jvc3NfZ2xpYmNfY2ZsYWdzCisjIC0gY3Jvc3NfZ2xpYmNfbGRmbGFncworIyAtIGNyb3Nz X2dsaWJjX2NvbmZpZ3VyZV9hcmdzCisjIC0gY3Jvc3NfbXVzbF9jZmxhZ3MKKyMgLSBjcm9zc19t dXNsX2xkZmxhZ3MKKyMgLSBjcm9zc19tdXNsX2NvbmZpZ3VyZV9hcmdzCisjCisjIGNvbmZpZ3Vy ZV9hcmdzIGlzIHVzZWQgZm9yIGZpbmFsIGdjYworIworCitfYXBwbHlfcGF0Y2goKSB7CisJbG9j YWwgYXJncz0iJDEiIHBuYW1lPSIkKGJhc2VuYW1lICQyKSIKKwlpZiBbICEgLWYgIi4ke3BuYW1l fV9kb25lIiBdOyB0aGVuCisJCXBhdGNoIC1OICRhcmdzIC1pICQyCisJCXRvdWNoIC4ke3BuYW1l fV9kb25lCisJZmkKK30KKworX2J1aWxkX2JpbnV0aWxzKCkgeworCVsgLWYgLmJpbnV0aWxzX2Rv bmUgXSAmJiByZXR1cm4gMAorCisJbXNnX25vcm1hbCAiQnVpbGRpbmcgYmludXRpbHMgZm9yICR7 Y3Jvc3NfdHJpcGxldH1cbiIKKworCW1rZGlyIC1wIGJpbnV0aWxzX2J1aWxkCisJY2QgYmludXRp bHNfYnVpbGQKKworCS4uL2JpbnV0aWxzLSR7Y3Jvc3NfYmludXRpbHNfdmVyc2lvbn0vY29uZmln dXJlIFwKKwkJLS1wcmVmaXg9L3VzciBcCisJCS0tc2JpbmRpcj0vdXNyL2JpbiBcCisJCS0tbGli ZGlyPS91c3IvbGliIFwKKwkJLS1saWJleGVjZGlyPS91c3IvbGliIFwKKwkJLS10YXJnZXQ9JHtj cm9zc190cmlwbGV0fSBcCisJCS0td2l0aC1zeXNyb290PS91c3IvJHtjcm9zc190cmlwbGV0fSBc CisJCS0tZGlzYWJsZS1ubHMgXAorCQktLWRpc2FibGUtc2hhcmVkIFwKKwkJLS1kaXNhYmxlLW11 bHRpbGliIFwKKwkJLS1kaXNhYmxlLXdlcnJvciBcCisJCS0tZGlzYWJsZS1nb2xkIFwKKwkJLS13 aXRoLXN5c3RlbS16bGliIFwKKwkJJHtjcm9zc19iaW51dGlsc19jb25maWd1cmVfYXJnc30KKwor CW1ha2UgY29uZmlndXJlLWhvc3QKKwltYWtlICR7bWFrZWpvYnN9CisKKwltYWtlIGluc3RhbGwg REVTVERJUj0ke3dya3NyY30vYnVpbGRfcm9vdAorCisJdG91Y2ggJHt3cmtzcmN9Ly5iaW51dGls c19kb25lCit9CisKK19idWlsZF9ib290c3RyYXBfZ2NjKCkgeworCVsgLWYgLmdjY19ib290c3Ry YXBfZG9uZSBdICYmIHJldHVybiAwCisKKwltc2dfbm9ybWFsICJQYXRjaGluZyBHQ0MgZm9yICR7 Y3Jvc3NfdHJpcGxldH1cbiIKKworCWNkIGdjYy0ke2Nyb3NzX2djY192ZXJzaW9ufQorCWZvciBm IGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9wYXRjaGVzLyoucGF0Y2g7IGRvCisJCV9hcHBseV9w YXRjaCAtcDAgIiRmIgorCWRvbmUKKwlpZiBbICIkY3Jvc3NfbGliYyIgPSAibXVzbCIgXTsgdGhl bgorCQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvZmlsZXMvKi1tdXNsLnBhdGNoOyBk bworCQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCisJCWRvbmUKKwlmaQorCWNkIC4uCisKKwltc2df bm9ybWFsICJCdWlsZGluZyBib290c3RyYXAgR0NDIGZvciAke2Nyb3NzX3RyaXBsZXR9XG4iCisK Kwlta2RpciAtcCBnY2NfYm9vdHN0cmFwCisJY2QgZ2NjX2Jvb3RzdHJhcAorCisJbG9jYWwgZXh0 cmFfYXJncworCWlmIFsgIiRjcm9zc19saWJjIiA9ICJtdXNsIiBdOyB0aGVuCisJCWV4dHJhX2Fy Z3MrPSIgLS13aXRoLW5ld2xpYiIKKwkJZXh0cmFfYXJncys9IiAtLWRpc2FibGUtc3ltdmVycyIK KwkJZXh0cmFfYXJncys9IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5vIgorCWVsc2UKKwkJZXh0cmFf YXJncys9IiAtLXdpdGhvdXQtaGVhZGVycyIKKwlmaQorCisJLi4vZ2NjLSR7Y3Jvc3NfZ2NjX3Zl cnNpb259L2NvbmZpZ3VyZSBcCisJCS0tcHJlZml4PS91c3IgXAorCQktLXNiaW5kaXI9L3Vzci9i aW4gXAorCQktLWxpYmRpcj0vdXNyL2xpYiBcCisJCS0tbGliZXhlY2Rpcj0vdXNyL2xpYiBcCisJ CS0tdGFyZ2V0PSR7Y3Jvc3NfdHJpcGxldH0gXAorCQktLWRpc2FibGUtbmxzIFwKKwkJLS1kaXNh YmxlLW11bHRpbGliIFwKKwkJLS1kaXNhYmxlLXNoYXJlZCBcCisJCS0tZGlzYWJsZS1saWJxdWFk bWF0aCBcCisJCS0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IFwKKwkJLS1kaXNhYmxlLWxpYmdvbXAg XAorCQktLWRpc2FibGUtbGlibXB4IFwKKwkJLS1kaXNhYmxlLWxpYm11ZGZsYXAgXAorCQktLWRp c2FibGUtbGlic3NwIFwKKwkJLS1kaXNhYmxlLWxpYml0bSBcCisJCS0tZGlzYWJsZS1saWJhdG9t aWMgXAorCQktLWRpc2FibGUtdGhyZWFkcyBcCisJCS0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMg XAorCQktLWVuYWJsZS1sYW5ndWFnZXM9YyBcCisJCS0td2l0aC1nbnUtbGQgXAorCQktLXdpdGgt Z251LWFzIFwKKwkJJHtleHRyYV9hcmdzfSBcCisJCSR7Y3Jvc3NfZ2NjX2Jvb3RzdHJhcF9jb25m aWd1cmVfYXJnc30KKworCW1ha2UgJHttYWtlam9ic30KKwltYWtlIGluc3RhbGwgREVTVERJUj0k e3dya3NyY30vYnVpbGRfcm9vdAorCisJdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2Rv bmUKK30KKworX2J1aWxkX2tlcm5lbF9oZWFkZXJzKCkgeworCVsgLWYgLmxpbnV4X2hlYWRlcnNf ZG9uZSBdICYmIHJldHVybiAwCisKKwltc2dfbm9ybWFsICJQYXRjaGluZyBMaW51eCBoZWFkZXJz IGZvciAke2Nyb3NzX3RyaXBsZXR9XG4iCisKKwljZCBsaW51eC0ke2Nyb3NzX2xpbnV4X3ZlcnNp b259CisJZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0va2VybmVsLWxpYmMtaGVhZGVycy9wYXRj aGVzLyoucGF0Y2g7IGRvCisJCV9hcHBseV9wYXRjaCAtcDAgJGYKKwlkb25lCisJY2QgLi4KKwor CW1zZ19ub3JtYWwgIkJ1aWxkaW5nIExpbnV4IGhlYWRlcnMgZm9yICR7Y3Jvc3NfdHJpcGxldH1c biIKKworCWNkIGxpbnV4LSR7Y3Jvc3NfbGludXhfdmVyc2lvbn0KKworCW1ha2UgQVJDSD0kY3Jv c3NfbGludXhfYXJjaCBoZWFkZXJzX2NoZWNrCisJbWFrZSBBUkNIPSRjcm9zc19saW51eF9hcmNo IFwKKwkJSU5TVEFMTF9IRFJfUEFUSD0ke3dya3NyY30vYnVpbGRfcm9vdC91c3IvJHtjcm9zc190 cmlwbGV0fS91c3IgXAorCQloZWFkZXJzX2luc3RhbGwKKworCXRvdWNoICR7d3Jrc3JjfS8ubGlu dXhfaGVhZGVyc19kb25lCit9CisKK19idWlsZF9nbGliY19oZWFkZXJzKCkgeworCVsgLWYgLmds aWJjX2hlYWRlcnNfZG9uZSBdICYmIHJldHVybiAwCisKKwlsb2NhbCB0Z3Q9JGNyb3NzX3RyaXBs ZXQKKworCW1zZ19ub3JtYWwgIlBhdGNoaW5nIGdsaWJjIGZvciAke2Nyb3NzX3RyaXBsZXR9XG4i CisKKwljZCBnbGliYy0ke2Nyb3NzX2dsaWJjX3ZlcnNpb259CisJaWYgWyAtZCAiJHtYQlBTX1NS Q1BLR0RJUn0vZ2xpYmMvcGF0Y2hlcyIgXTsgdGhlbgorCQlmb3IgZiBpbiAke1hCUFNfU1JDUEtH RElSfS9nbGliYy9wYXRjaGVzLyoucGF0Y2g7IGRvCisJCQlfYXBwbHlfcGF0Y2ggLXAxICIkZiIK KwkJZG9uZQorCWZpCisJY2QgLi4KKworCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGdsaWJjIGhlYWRl cnMgZm9yICR7Y3Jvc3NfdHJpcGxldH1cbiIKKworCW1rZGlyIC1wIGdsaWJjX2hlYWRlcnMKKwlj ZCBnbGliY19oZWFkZXJzCisKKwllY2hvICJsaWJjX2N2X2ZvcmNlZF91bndpbmQ9eWVzIiA+IGNv bmZpZy5jYWNoZQorCWVjaG8gImxpYmNfY3ZfY19jbGVhbnVwPXllcyIgPj4gY29uZmlnLmNhY2hl CisKKwkjIHdlIGRvbid0IG5lZWQgYW55IGN1c3RvbSBhcmdzIGhlcmUsIGl0J3MganVzdCBoZWFk ZXJzCisJQ0M9IiR7dGd0fS1nY2MiIENYWD0iJHt0Z3R9LWcrKyIgQ1BQPSIke3RndH0tY3BwIiBM RD0iJHt0Z3R9LWxkIiBcCisJQVM9IiR7dGd0fS1hcyIgTk09IiR7dGd0fS1ubSIgQ0ZMQUdTPSIt cGlwZSIgQ1hYRkxBR1M9IiIgQ1BQRkxBR1M9IiIgXAorCUxERkxBR1M9IiIgXAorCS4uL2dsaWJj LSR7Y3Jvc3NfZ2xpYmNfdmVyc2lvbn0vY29uZmlndXJlIFwKKwkJLS1wcmVmaXg9L3VzciBcCisJ CS0taG9zdD0ke3RndH0gXAorCQktLXdpdGgtaGVhZGVycz0ke3dya3NyY30vYnVpbGRfcm9vdC91 c3IvJHt0Z3R9L3Vzci9pbmNsdWRlIFwKKwkJLS1jb25maWctY2FjaGUgXAorCQktLWVuYWJsZS1v YnNvbGV0ZS1ycGMgXAorCQktLWVuYWJsZS1vYnNvbGV0ZS1uc2wgXAorCQktLWVuYWJsZS1rZXJu ZWw9Mi42LjI3CisKKwltYWtlIC1rIGluc3RhbGwtaGVhZGVycyBjcm9zc19jb21waWxpbmc9eWVz IFwKKwkJaW5zdGFsbF9yb290PSR7d3Jrc3JjfS9idWlsZF9yb290L3Vzci8ke3RndH0KKworCXRv dWNoICR7d3Jrc3JjfS8uZ2xpYmNfaGVhZGVyc19kb25lCit9CisKK19idWlsZF9nbGliYygpIHsK KwlbIC1mIC5nbGliY19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKKworCWxvY2FsIHRndD0kY3Jv c3NfdHJpcGxldAorCisJbXNnX25vcm1hbCAiQnVpbGRpbmcgZ2xpYmMgZm9yICR7dGd0fVxuIgor CisJbWtkaXIgLXAgZ2xpYmNfYnVpbGQKKwljZCBnbGliY19idWlsZAorCisJZWNobyAic2xpYmRp cj0vdXNyL2xpYiR7Y3Jvc3Nfd29yZHNpemV9IiA+IGNvbmZpZ3Bhcm1zCisKKwllY2hvICJsaWJj X2N2X2ZvcmNlZF91bndpbmQ9eWVzIiA+IGNvbmZpZy5jYWNoZQorCWVjaG8gImxpYmNfY3ZfY19j bGVhbnVwPXllcyIgPj4gY29uZmlnLmNhY2hlCisKKwlDQz0iJHt0Z3R9LWdjYyIgQ1hYPSIke3Rn dH0tZysrIiBDUFA9IiR7dGd0fS1jcHAiIExEPSIke3RndH0tbGQiIFwKKwlBUj0iJHt0Z3R9LWFy IiBBUz0iJHt0Z3R9LWFzIiBOTT0iJHt0Z3R9LW5tIiBcCisJQ0ZMQUdTPSItcGlwZSAke2Nyb3Nz X2dsaWJjX2NmbGFnc30iIFwKKwlDWFhGTEFHUz0iLXBpcGUgJHtjcm9zc19nbGliY19jZmxhZ3N9 IiBcCisJQ1BQRkxBR1M9IiR7Y3Jvc3NfZ2xpYmNfY2ZsYWdzfSIgXAorCUxERkxBR1M9IiR7Y3Jv c3NfZ2xpYmNfbGRmbGFnc30iIFwKKwkuLi9nbGliYy0ke2Nyb3NzX2dsaWJjX3ZlcnNpb259L2Nv bmZpZ3VyZSBcCisJCS0tcHJlZml4PS91c3IgXAorCQktLWxpYmRpcj0vdXNyL2xpYiR7Y3Jvc3Nf d29yZHNpemV9IFwKKwkJLS1saWJleGVjZGlyPS91c3IvbGliZXhlYyBcCisJCS0taG9zdD0ke3Rn dH0gXAorCQktLXdpdGgtaGVhZGVycz0ke3dya3NyY30vYnVpbGRfcm9vdC91c3IvJHt0Z3R9L3Vz ci9pbmNsdWRlIFwKKwkJLS1jb25maWctY2FjaGUgXAorCQktLWVuYWJsZS1vYnNvbGV0ZS1ycGMg XAorCQktLWVuYWJsZS1vYnNvbGV0ZS1uc2wgXAorCQktLWRpc2FibGUtcHJvZmlsZSBcCisJCS0t ZGlzYWJsZS13ZXJyb3IgXAorCQktLWVuYWJsZS1rZXJuZWw9Mi42LjI3IFwKKwkJJHtjcm9zc19n bGliY19jb25maWd1cmVfYXJnc30KKworCW1ha2UgJHttYWtlam9ic30KKwltYWtlIGluc3RhbGxf cm9vdD0ke3dya3NyY30vYnVpbGRfcm9vdC91c3IvJHt0Z3R9IGluc3RhbGwKKworCXRvdWNoICR7 d3Jrc3JjfS8uZ2xpYmNfYnVpbGRfZG9uZQorfQorCitfYnVpbGRfbXVzbCgpIHsKKwlbIC1mIC5t dXNsX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAorCisJbG9jYWwgdGd0PSRjcm9zc190cmlwbGV0 CisKKwltc2dfbm9ybWFsICJQYXRjaGluZyBtdXNsIGZvciAke3RndH1cbiIKKworCWNkIG11c2wt JHtjcm9zc19tdXNsX3ZlcnNpb259CisJaWYgWyAtZCAiJHtYQlBTX1NSQ1BLR0RJUn0vbXVzbC9w YXRjaGVzIiBdOyB0aGVuCisJCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L211c2wvcGF0Y2hl cy8qLnBhdGNoOyBkbworCQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCisJCWRvbmUKKwlmaQorCWNk IC4uCisKKwltc2dfbm9ybWFsICJCdWlsZGluZyBtdXNsIGZvciAke3RndH1cbiIKKworCW1rZGly IC1wIG11c2xfYnVpbGQKKwljZCBtdXNsX2J1aWxkCisKKwlDQz0iJHt0Z3R9LWdjYyIgQ1hYPSIk e3RndH0tZysrIiBDUFA9IiR7dGd0fS1jcHAiIExEPSIke3RndH0tbGQiIFwKKwlBUj0iJHt0Z3R9 LWFyIiBBUz0iJHt0Z3R9LWFzIiBOTT0iJHt0Z3R9LW5tIiBcCisJQ0ZMQUdTPSItcGlwZSAtZlBJ QyAke2Nyb3NzX211c2xfY2ZsYWdzfSIgXAorCUNQUEZMQUdTPSIke2Nyb3NzX211c2xfY2ZsYWdz fSIgTERGTEFHUz0iJHtjcm9zc19tdXNsX2xkZmxhZ3N9IiBcCisJLi4vbXVzbC0ke2Nyb3NzX211 c2xfdmVyc2lvbn0vY29uZmlndXJlIFwKKwkJLS1wcmVmaXg9L3VzciBcCisJCS0taG9zdD0ke3Rn dH0gXAorCQkke2Nyb3NzX211c2xfY29uZmlndXJlX2FyZ3N9CisKKwltYWtlICR7bWFrZWpvYnN9 CisJbWFrZSBERVNURElSPSR7d3Jrc3JjfS9idWlsZF9yb290L3Vzci8ke3RndH0gaW5zdGFsbAor CisJdG91Y2ggJHt3cmtzcmN9Ly5tdXNsX2J1aWxkX2RvbmUKK30KKworX2J1aWxkX2xpYnVjb250 ZXh0KCkgeworCVsgLWYgLmxpYnVjb250ZXh0X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAorCVsg LW4gIiRjcm9zc19nY2Nfc2tpcF9nbyIgXSAmJiByZXR1cm4gMAorCisJbXNnX25vcm1hbCAiQnVp bGRpbmcgbGlidWNvbnRleHQgZm9yICR7Y3Jvc3NfdHJpcGxldH1cbiIKKworCWNkIGxpYnVjb250 ZXh0LSR7Y3Jvc3NfbGlidWNvbnRleHRfdmVyc2lvbn0KKwkjIGEgdGVycmlibGUgaGFjayBidXQg c2VlbXMgdG8gd29yayBmb3Igbm93CisJQ0M9IiR7Y3Jvc3NfdHJpcGxldH0tZ2NjIiBBUz0iJHtj cm9zc190cmlwbGV0fS1hcyIgQVI9IiR7Y3Jvc3NfdHJpcGxldH0tYXIiIFwKKwlDUFBGTEFHUz0i LXBpcGUgJHtjcm9zc19tdXNsX2NmbGFnc30gLWcwIC1PcyAtbm9zdGRpbmMgLWlzeXN0ZW0gJHt3 cmtzcmN9L2J1aWxkX3Jvb3QvdXNyLyR7Y3Jvc3NfdHJpcGxldH0vdXNyL2luY2x1ZGUiIFwKKwlt YWtlIEFSQ0g9JHtjcm9zc19saWJ1Y29udGV4dF9hcmNofSBsaWJ1Y29udGV4dC5hCisKKwljcCBs aWJ1Y29udGV4dC5hICR7d3Jrc3JjfS9idWlsZF9yb290L3Vzci8ke2Nyb3NzX3RyaXBsZXR9L3Vz ci9saWIKKworCXRvdWNoICR7d3Jrc3JjfS8ubGlidWNvbnRleHRfYnVpbGRfZG9uZQorfQorCitf YnVpbGRfZ2NjKCkgeworCVsgLWYgLmdjY19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKKworCW1z Z19ub3JtYWwgIkJ1aWxkaW5nIGdjYyBmb3IgJHtjcm9zc190cmlwbGV0fVxuIgorCisJbWtkaXIg LXAgZ2NjX2J1aWxkCisJY2QgZ2NjX2J1aWxkCisKKwlsb2NhbCBsYW5ncz0iYyxjKyssZm9ydHJh bixvYmpjLG9iai1jKyssYWRhLGx0byIKKwlpZiBbIC16ICIkY3Jvc3NfZ2NjX3NraXBfZ28iIF07 IHRoZW4KKwkJbGFuZ3MrPSIsZ28iCisJZmkKKworCWxvY2FsIGV4dHJhX2FyZ3MKKwlpZiBbICIk Y3Jvc3NfbGliYyIgPSAibXVzbCIgXTsgdGhlbgorCQlleHRyYV9hcmdzKz0iIC0tZW5hYmxlLWxp YnNzcCIKKwkJIyBvdGhlcndpc2UgZ2xpYmMgaG9zdHMgZ2V0IGNvbmZ1c2VkIGFuZCB1c2UgdGhl IGdudSBpbXBsCisJCWV4dHJhX2FyZ3MrPSIgLS1lbmFibGUtY2xvY2FsZT1nZW5lcmljIgorCQll eHRyYV9hcmdzKz0iIC0tZGlzYWJsZS1zeW12ZXJzIgorCQlleHRyYV9hcmdzKz0iIC0tZGlzYWJs ZS1nbnUtdW5pcXVlLW9iamVjdCIKKwkJZXh0cmFfYXJncys9IiBsaWJhdF9jdl9oYXZlX2lmdW5j PW5vIgorCWVsc2UKKwkJZXh0cmFfYXJncys9IiAtLWRpc2FibGUtbGlic3NwIgorCQlleHRyYV9h cmdzKz0iIC0tZW5hYmxlLWdudS11bmlxdWUtb2JqZWN0IgorCWZpCisKKwkuLi9nY2MtJHtjcm9z c19nY2NfdmVyc2lvbn0vY29uZmlndXJlIFwKKwkJLS1wcmVmaXg9L3VzciBcCisJCS0tc2JpbmRp cj0vdXNyL2JpbiBcCisJCS0tbGliZGlyPS91c3IvbGliIFwKKwkJLS1saWJleGVjZGlyPS91c3Iv bGliIFwKKwkJLS10YXJnZXQ9JHtjcm9zc190cmlwbGV0fSBcCisJCS0td2l0aC1zeXNyb290PS91 c3IvJHtjcm9zc190cmlwbGV0fSBcCisJCS0td2l0aC1idWlsZC1zeXNyb290PSR7d3Jrc3JjfS9i dWlsZF9yb290L3Vzci8ke2Nyb3NzX3RyaXBsZXR9IFwKKwkJLS1lbmFibGUtbGFuZ3VhZ2VzPSR7 bGFuZ3N9IFwKKwkJLS1kaXNhYmxlLW5scyBcCisJCS0tZGlzYWJsZS1tdWx0aWxpYiBcCisJCS0t ZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMgXAorCQktLWRpc2FibGUtbGlicXVhZG1hdGggXAorCQkt LWRpc2FibGUtbGlibXVkZmxhcCBcCisJCS0tZGlzYWJsZS1saWJpdG0gXAorCQktLWRpc2FibGUt bGlidnR2IFwKKwkJLS1kaXNhYmxlLWxpYnNhbml0aXplciBcCisJCS0tZGlzYWJsZS1saWJzdGRj eHgtcGNoIFwKKwkJLS1lbmFibGUtc2hhcmVkIFwKKwkJLS1lbmFibGUtdGhyZWFkcz1wb3NpeCBc CisJCS0tZW5hYmxlLV9fY3hhX2F0ZXhpdCBcCisJCS0tZW5hYmxlLWxpbmtlci1idWlsZC1pZCBc CisJCS0tZW5hYmxlLWxpYmFkYSBcCisJCS0tZW5hYmxlLWx0byBcCisJCS0tZW5hYmxlLWRlZmF1 bHQtcGllIFwKKwkJLS1lbmFibGUtZGVmYXVsdC1zc3AgXAorCQktLXdpdGgtZ251LWxkIFwKKwkJ LS13aXRoLWdudS1hcyBcCisJCS0td2l0aC1saW5rZXItaGFzaC1zdHlsZT1nbnUgXAorCQkke2V4 dHJhX2FyZ3N9IFwKKwkJJHtjb25maWd1cmVfYXJnc30KKworCW1ha2UgJHttYWtlam9ic30KKwor CXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUKK30KKworX2NoZWNrX2Nyb3NzX3Zhcigp IHsKKwlsb2NhbCB2YXI9ImNyb3NzXyR7MX0iCisJaWYgWyAteiAiJHshdmFyfSIgXTsgdGhlbgor CQltc2dfZXJyb3IgImNyb3NzXyR7MX0gbm90IGRlZmluZWQgaW4gdGVtcGxhdGUiCisJZmkKK30K KworZG9fYnVpbGQoKSB7CisJIyBWZXJpZnkgdG9vbGNoYWluIHZlcnNpb25zCisKKwlfY2hlY2tf Y3Jvc3NfdmFyIGJpbnV0aWxzX3ZlcnNpb24KKwlfY2hlY2tfY3Jvc3NfdmFyIGdjY192ZXJzaW9u CisJX2NoZWNrX2Nyb3NzX3ZhciBsaW51eF92ZXJzaW9uCisKKwljYXNlICIke2Nyb3NzX2xpYmN9 IiBpbgorCQltdXNsKQorCQkJX2NoZWNrX2Nyb3NzX3ZhciBtdXNsX3ZlcnNpb24KKwkJCWlmIFsg LXogIiRjcm9zc19nY2Nfc2tpcF9nbyIgXTsgdGhlbgorCQkJCV9jaGVja19jcm9zc192YXIgbGli dWNvbnRleHRfdmVyc2lvbgorCQkJCV9jaGVja19jcm9zc192YXIgbGlidWNvbnRleHRfYXJjaAor CQkJZmkKKwkJCTs7CisJCWdsaWJjKQorCQkJX2NoZWNrX2Nyb3NzX3ZhciBnbGliY192ZXJzaW9u CisJCQk7OworCQkqKSBtc2dfZXJyb3IgImFsbG93ZWQgY3Jvc3NfbGliYyB2YWx1ZXMgYXJlICdn bGliYycsICdtdXNsJ1xuIiA7OworCWVzYWMKKworCSMgVmVyaWZ5IHRyaXBsZXQKKwlfY2hlY2tf Y3Jvc3NfdmFyIHRyaXBsZXQKKwlfY2hlY2tfY3Jvc3NfdmFyIHdvcmRzaXplCisJX2NoZWNrX2Ny b3NzX3ZhciBsaW51eF9hcmNoCisKKwlsb2NhbCBzeXNyb290PSIvdXNyLyR7Y3Jvc3NfdHJpcGxl dH0iCisKKwkjIFByZXBhcmUgZW52aXJvbm1lbnQKKwljZCAke3dya3NyY30KKworCSMgQ29yZSBk aXJlY3RvcmllcyBmb3IgdGhlIGJ1aWxkIHJvb3QKKwlta2RpciAtcCBidWlsZF9yb290L3Vzci97 YmluLGxpYixpbmNsdWRlLHNoYXJlfQorCW1rZGlyIC1wIGJ1aWxkX3Jvb3QvdXNyLyR7Y3Jvc3Nf dHJpcGxldH0vdXNyL3tiaW4sbGliLGluY2x1ZGUsc2hhcmV9CisKKwkjIEhvc3Qgcm9vdCB1c2Vz IGhvc3Qgd29yZHNpemUKKwlsbiAtc2YgdXNyL2xpYiBidWlsZF9yb290L2xpYgorCWxuIC1zZiB1 c3IvbGliIGJ1aWxkX3Jvb3QvbGliJHtYQlBTX1RBUkdFVF9XT1JEU0laRX0KKwlsbiAtc2YgbGli IGJ1aWxkX3Jvb3QvdXNyL2xpYiR7WEJQU19UQVJHRVRfV09SRFNJWkV9CisKKwkjIFRhcmdldCBz eXNyb290IHVzZXMgdGFyZ2V0IHdvcmRzaXplCisJbG4gLXNmIHVzci9saWIgYnVpbGRfcm9vdC8k e3N5c3Jvb3R9L2xpYgorCWxuIC1zZiB1c3IvbGliIGJ1aWxkX3Jvb3QvJHtzeXNyb290fS9saWIk e2Nyb3NzX3dvcmRzaXplfQorCWxuIC1zZiBsaWIgYnVpbGRfcm9vdC8ke3N5c3Jvb3R9L3Vzci9s aWIke2Nyb3NzX3dvcmRzaXplfQorCWxuIC1zZiBsaWIgYnVpbGRfcm9vdC8ke3N5c3Jvb3R9L3Vz ci9saWJleGVjCisKKwkjIEJ1aWxkIGNyb3NzIGJpbnV0aWxzCisJY2QgJHt3cmtzcmN9CisJaWYg WyAhIC1kICJiaW51dGlscy0ke2Nyb3NzX2JpbnV0aWxzX3ZlcnNpb259IiBdOyB0aGVuCisJCW1z Z19lcnJvciAiQmludXRpbHMgJHtjcm9zc19iaW51dGlsc192ZXJzaW9ufSBkb2VzIG5vdCBleGlz dFxuIgorCWZpCisKKwlfYnVpbGRfYmludXRpbHMKKworCSMgUHJlcGFyZSBlbnZpcm9ubWVudCBz byB3ZSBjYW4gdXNlIHRlbXBvcmFyeSBwcmVmaXgKKwlsb2NhbCBvbGRwYXRoPSIkUEFUSCIKKwls b2NhbCBvbGRsZGxpYj0iJExEX0xJQlJBUllfUEFUSCIKKworCWV4cG9ydCBQQVRIPSIke3dya3Ny Y30vYnVpbGRfcm9vdC91c3IvYmluOiRQQVRIIgorCWV4cG9ydCBMRF9MSUJSQVJZX1BBVEg9IiR7 d3Jrc3JjfS9idWlsZF9yb290L3Vzci9saWI6JFBBVEgiCisKKwkjIEJ1aWxkIGJvb3RzdHJhcCBn Y2MKKwljZCAke3dya3NyY30KKwlpZiBbICEgLWQgImdjYy0ke2Nyb3NzX2djY192ZXJzaW9ufSIg XTsgdGhlbgorCQltc2dfZXJyb3IgIkdDQyAke2Nyb3NzX2djY192ZXJzaW9ufSBkb2VzIG5vdCBl eGlzdFxuIgorCWZpCisKKwlfYnVpbGRfYm9vdHN0cmFwX2djYworCisJIyBCdWlsZCBrZXJuZWwg aGVhZGVycworCWNkICR7d3Jrc3JjfQorCWlmIFsgISAtZCAibGludXgtJHtjcm9zc19saW51eF92 ZXJzaW9ufSIgXTsgdGhlbgorCQltc2dfZXJyb3IgIkxpbnV4ICR7Y3Jvc3NfbGludXhfdmVyc2lv bn0gZG9lcyBub3QgZXhpc3RcbiIKKwlmaQorCisJX2J1aWxkX2tlcm5lbF9oZWFkZXJzCisKKwlj ZCAke3dya3NyY30KKwlpZiBbICIkY3Jvc3NfbGliYyIgPSAibXVzbCIgXTsgdGhlbgorCQkjIEJ1 aWxkIG11c2wKKwkJaWYgWyAhIC1kICJtdXNsLSR7Y3Jvc3NfbXVzbF92ZXJzaW9ufSIgXTsgdGhl bgorCQkJbXNnX2Vycm9yICJNdXNsICR7Y3Jvc3NfbXVzbF92ZXJzaW9ufSBkb2VzIG5vdCBleGlz dFxuIgorCQlmaQorCQlfYnVpbGRfbXVzbAorCisJCSMgQnVpbGQgbGlidWNvbnRleHQKKwkJY2Qg JHt3cmtzcmN9CisJCWlmIFsgLXogIiRjcm9zc19nY2Nfc2tpcF9nbyIgLWEgISAtZCAibGlidWNv bnRleHQtJHtjcm9zc19saWJ1Y29udGV4dF92ZXJzaW9ufSIgXTsgdGhlbgorCQkJbXNnX2Vycm9y ICJMaWJ1Y29udGV4dCAke2Nyb3NzX2xpYnVjb250ZXh0X3ZlcnNpb259IGRvZXMgbm90IGV4aXN0 XG4iCisJCWZpCisJCV9idWlsZF9saWJ1Y29udGV4dAorCWVsc2UKKwkJIyBCdWlsZCBnbGliYwor CQlpZiBbICEgLWQgImdsaWJjLSR7Y3Jvc3NfZ2xpYmNfdmVyc2lvbn0iIF07IHRoZW4KKwkJCW1z Z19lcnJvciAiR2xpYmMgJHtjcm9zc19nbGliY192ZXJzaW9ufSBkb2VzIG5vdCBleGlzdFxuIgor CQlmaQorCQlfYnVpbGRfZ2xpYmNfaGVhZGVycworCQljZCAke3dya3NyY30KKwkJX2J1aWxkX2ds aWJjCisJZmkKKworCSMgQnVpbGQgZ2NjCisJY2QgJHt3cmtzcmN9CisJX2J1aWxkX2djYworCisJ IyByZXN0b3JlIHRoaXMgc3R1ZmYgaW4gY2FzZSBsYXRlciBob29rcyBkZXBlbmQgb24gaXQKKwll eHBvcnQgUEFUSD0iJG9sZHBhdGgiCisJZXhwb3J0IExEX0xJQlJBUllfUEFUSD0iJG9sZGxkbGli IgorfQorCitkb19pbnN0YWxsKCkgeworCSMgV2UgbmVlZCB0byBiZSBhYmxlIHRvIGFjY2VzcyBi aW51dGlscyBpbiB0aGUgcm9vdAorCWxvY2FsIG9sZHBhdGg9IiRQQVRIIgorCWxvY2FsIG9sZGxk bGliPSIkTERfTElCUkFSWV9QQVRIIgorCWV4cG9ydCBQQVRIPSIke3dya3NyY30vYnVpbGRfcm9v dC91c3IvYmluOiRQQVRIIgorCWV4cG9ydCBMRF9MSUJSQVJZX1BBVEg9IiR7d3Jrc3JjfS9idWls ZF9yb290L3Vzci9saWI6JFBBVEgiCisKKwlsb2NhbCBzeXNyb290PSIvdXNyLyR7Y3Jvc3NfdHJp cGxldH0iCisKKwkjIENvcmUgZGlyZWN0b3JpZXMgZm9yIHRoZSBzeXNyb290CisJIworCSMgbGli ZXhlYyBpcyBjcmVhdGVkIGZvciBzeXNyb290IGJ1dCBub3QgZm9yIGRlc3QsIHNpbmNlIGluIHN5 c3Jvb3QKKwkjIHdlIGNvbmZpZ3VyZSBnbGliYyB3aXRoIHNlcGFyYXRlIGxpYmV4ZWMsIGVsc2V3 aGVyZSBpdCdzIGp1c3QgbGliCisJIyBhbmQgd2Ugd2FudCB0byBkZWxldGUgdGhlIGxpYmV4ZWMg ZnJvbSBnbGliYyBhZnRlcndhcmRzIHRvIHNhdmUgc3BhY2UKKwlta2RpciAtcCAke0RFU1RESVJ9 LyR7c3lzcm9vdH0vdXNyL3tiaW4sbGliLGxpYmV4ZWMsaW5jbHVkZSxzaGFyZX0KKwkjIFN5c3Jv b3QgYmFzZSBzeW1saW5rcworCWxuIC1zZiB1c3IvbGliICR7REVTVERJUn0vJHtzeXNyb290fS9s aWIKKwlsbiAtc2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7c3lzcm9vdH0vbGliJHtjcm9zc193b3Jk c2l6ZX0KKwlsbiAtc2YgbGliICR7REVTVERJUn0vJHtzeXNyb290fS91c3IvbGliJHtjcm9zc193 b3Jkc2l6ZX0KKworCSMgSW5zdGFsbCBMaW51eCBoZWFkZXJzCisJY2QgJHt3cmtzcmN9L2xpbnV4 LSR7Y3Jvc3NfbGludXhfdmVyc2lvbn0KKwltYWtlIEFSQ0g9JHtjcm9zc19saW51eF9hcmNofSBc CisJCUlOU1RBTExfSERSX1BBVEg9JHtERVNURElSfS8ke3N5c3Jvb3R9L3VzciBoZWFkZXJzX2lu c3RhbGwKKwlybSAtZiAkKGZpbmQgJHtERVNURElSfS8ke3N5c3Jvb3R9L3Vzci9pbmNsdWRlIFwK KwkJLW5hbWUgLmluc3RhbGwgLW9yIC1uYW1lIC4uaW5zdGFsbC5jbWQpCisJcm0gLXJmICR7REVT VERJUn0vJHtzeXNyb290fS91c3IvaW5jbHVkZS9kcm0KKworCSMgSW5zdGFsbCBiaW51dGlscwor CWNkICR7d3Jrc3JjfS9iaW51dGlsc19idWlsZAorCW1ha2UgaW5zdGFsbCBERVNURElSPSR7REVT VERJUn0KKworCSMgSW5zdGFsbCBmaW5hbCBnY2MKKwljZCAke3dya3NyY30vZ2NjX2J1aWxkCisJ bWFrZSBpbnN0YWxsIERFU1RESVI9JHtERVNURElSfQorCisJIyBNb3ZlIGxpYmNjMS5zbyogdG8g dGhlIHN5c3Jvb3QKKwltdiAke0RFU1RESVJ9L3Vzci9saWIvbGliY2MxLnNvKiAke0RFU1RESVJ9 LyR7c3lzcm9vdH0vdXNyL2xpYgorCisJaWYgWyAiJGNyb3NzX2xpYmMiID0gIm11c2wiIF07IHRo ZW4KKwkJIyBJbnN0YWxsIG11c2wKKwkJY2QgJHt3cmtzcmN9L211c2xfYnVpbGQKKwkJbWFrZSBE RVNURElSPSR7REVTVERJUn0vJHtzeXNyb290fSBpbnN0YWxsCisKKwkJIyBSZW1vdmUgdXNlbGVz cyBoZWFkZXJzCisJCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9saWIvZ2NjLyR7Y3Jvc3NfdHJpcGxl dH0vKi9pbmNsdWRlLWZpeGVkCisKKwkJIyBNYWtlIGxkLW11c2wuc28gc3ltbGlua3MgcmVsYXRp dmUKKwkJZm9yIGYgaW4gJHtERVNURElSfS8ke3N5c3Jvb3R9L3Vzci9saWIvbGQtbXVzbC0qLnNv Lio7IGRvCisJCQlsbiAtc2YgbGliYy5zbyAke2Z9CisJCWRvbmUKKwllbHNlCisJCSMgSW5zdGFs bCBnbGliYworCQljZCAke3dya3NyY30vZ2xpYmNfYnVpbGQKKwkJbWFrZSBpbnN0YWxsX3Jvb3Q9 JHtERVNURElSfS8ke3N5c3Jvb3R9IGluc3RhbGwgaW5zdGFsbC1oZWFkZXJzCisKKwkJIyBSZW1v dmUgYmFkIGhlYWRlcgorCQlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIvZ2NjLyR7Y3Jvc3NfX3Ry aXBsZXR9LyovaW5jbHVkZS1maXhlZC9iaXRzL3N0YXR4LmgKKwlmaQorCisJIyBTeW1saW5rcyBm b3IgZ25hcmwgYW5kIGduYXQgc2hhcmVkIGxpYnJhcmllcworCWxvY2FsIG1ham9ydmVyPSR7Y3Jv c3NfZ2NjX3ZlcnNpb24lLiouKn0KKwlsb2NhbCBhZGFsaWI9dXNyL2xpYi9nY2MvJHtfdHJpcGxl dH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxpYgorCW12ICR7REVTVERJUn0vJHthZGFsaWJ9L2xpYmdu YXJsLSR7bWFqb3J2ZXJ9LnNvIFwKKwkJJHtERVNURElSfS8ke3N5c3Jvb3R9L3Vzci9saWIKKwlt diAke0RFU1RESVJ9LyR7YWRhbGlifS9saWJnbmF0LSR7bWFqb3J2ZXJ9LnNvIFwKKwkJJHtERVNU RElSfS8ke3N5c3Jvb3R9L3Vzci9saWIKKwlsbiAtc2YgbGliZ25hcmwtJHttYWpvcnZlcn0uc28g JHtERVNURElSfS8ke3N5c3Jvb3R9L3Vzci9saWIvbGliZ25hcmwuc28KKwlsbiAtc2YgbGliZ25h dC0ke21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7c3lzcm9vdH0vdXNyL2xpYi9saWJnbmF0LnNv CisJcm0gLXZmICR7REVTVERJUn0vJHthZGFsaWJ9L2xpYmduYXtybCx0fS5zbworCisJIyBSZW1v dmUgdW5uZWNlc3NhcnkgbGliYXRvbWljIHdoaWNoIGlzIG9ubHkgYnVpbHQgZm9yIGdjY2dvCisJ cm0gLXJmICR7REVTVERJUn0vJHtzeXNyb290fS91c3IvbGliL2xpYmF0b21pYy4qCisKKwkjIFJl bW92ZSBsZWZ0b3ZlciBzeW1saW5rcworCXJtIC1mICR7REVTVERJUn0vdXNyL2xpYiR7WEJQU19U QVJHRVRfV09SRFNJWkV9CisJcm0gLWYgJHtERVNURElSfS9saWIqCisJcm0gLWYgJHtERVNURElS fS8qYmluCisJIyBSZW1vdmUgdW5uZWNlc3Nhcnkgc3R1ZmYKKwlybSAtcmYgJHtERVNURElSfS8k e3N5c3Jvb3R9L3tzYmluLGV0Yyx2YXIsbGliZXhlY30KKwlybSAtcmYgJHtERVNURElSfS8ke3N5 c3Jvb3R9L3Vzci97c2JpbixzaGFyZSxsaWJleGVjfQorCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9z aGFyZQorCXJtIC1mICR7REVTVERJUn0vdXNyL2xpYiovbGliaWJlcnR5LmEKKworCWV4cG9ydCBQ QVRIPSIkb2xkcGF0aCIKKwlleHBvcnQgTERfTElCUkFSWV9QQVRIPSIkb2xkbGRsaWIiCit9CmRp ZmYgLS1naXQgYS9jb21tb24vZW52aXJvbm1lbnQvYnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5zaCBi L2NvbW1vbi9lbnZpcm9ubWVudC9idWlsZC1zdHlsZS92b2lkLWNyb3NzLnNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44MGFhYWI0N2ZkMgotLS0gL2Rldi9udWxsCisr KyBiL2NvbW1vbi9lbnZpcm9ubWVudC9idWlsZC1zdHlsZS92b2lkLWNyb3NzLnNoCkBAIC0wLDAg KzEsMTEgQEAKK2xpYjMyZGlzYWJsZWQ9eWVzCitub2Nyb3NzPXllcworbm9waWU9eWVzCitjcmVh dGVfd3Jrc3JjPXllcworCitub3N0cmlwX2ZpbGVzKz0ibGliY2FmX3NpbmdsZS5hIGxpYmdjYy5h IGxpYmdjb3YuYSBsaWJnY2NfZWguYQorIGxpYmduYXJsX3BpYy5hIGxpYmduYXJsLmEgbGliZ25h dF9waWMuYSBsaWJnbmF0LmEgbGliZ21lbS5hIgorCitpZiBbICIkY3Jvc3NfbGliYyIgPSAiZ2xp YmMiIC1hICIkWEJQU19UQVJHRVRfTElCQyIgIT0gImdsaWJjIiBdOyB0aGVuCisgICAgYnJva2Vu PSJnbGliYyBjcm9zc3Rvb2xjaGFpbnMgYXJlIG9ubHkgYXZhaWxhYmxlIG9uIGdsaWJjIGhvc3Rz IGZvciBub3ciCitmaQoKRnJvbSA2MzQwMmJmNGNjMjhjYzVkMjgyMjM3ZThiNzgyN2IwNTVmMDE0 MjI5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uu b3JnPgpEYXRlOiBGcmksIDI1IERlYyAyMDIwIDAwOjQzOjQ4ICswMTAwClN1YmplY3Q6IFtQQVRD SCAzLzRdIGNyb3NzLWFhcmNoNjQtbGludXgtZ251OiByZWRvIHdpdGggdm9pZC1jcm9zcyBidWls ZC1zdHlsZQoKLS0tCiBzcmNwa2dzL2Nyb3NzLWFhcmNoNjQtbGludXgtZ251L3RlbXBsYXRlIHwg MzY4ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjAgaW5zZXJ0aW9u cygrKSwgMzQ4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtYWFyY2g2 NC1saW51eC1nbnUvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLWFhcmNoNjQtbGludXgtZ251L3Rl bXBsYXRlCmluZGV4IGIwMTIyYzhlYzRhLi5iNzQ5ODIzZTc0ZSAxMDA2NDQKLS0tIGEvc3JjcGtn cy9jcm9zcy1hYXJjaDY0LWxpbnV4LWdudS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLWFh cmNoNjQtbGludXgtZ251L3RlbXBsYXRlCkBAIC0xLDIxICsxLDIxIEBACi0jIFRlbXBsYXRlIGJ1 aWxkIGZpbGUgZm9yICdjcm9zcy1hYXJjaDY0LWxpbnV4LWdudScKLSMKKyMgVGVtcGxhdGUgZmls ZSBmb3IgJ2Nyb3NzLWFhcmNoNjQtbGludXgtZ251JworX3RyaXBsZXQ9YWFyY2g2NC1saW51eC1n bnUKIF9iaW51dGlsc192ZXJzaW9uPTIuMzIKIF9nY2NfdmVyc2lvbj05LjMuMAogX2dsaWJjX3Zl cnNpb249Mi4zMAogX2xpbnV4X3ZlcnNpb249NC4xOQotCi1fdHJpcGxldD1hYXJjaDY0LWxpbnV4 LWdudQotX2FyY2hmbGFncz0iLW1hcmNoPWFybXY4LWEiCi1fc3lzcm9vdD0iL3Vzci8ke190cmlw bGV0fSIKLQogcGtnbmFtZT1jcm9zcy0ke190cmlwbGV0fQogdmVyc2lvbj0wLjMzCiByZXZpc2lv bj0zCi1zaG9ydF9kZXNjPSJHTlUgQ3Jvc3MgdG9vbGNoYWluIGZvciB0aGUgJHtfdHJpcGxldH0g TEUgdGFyZ2V0IChiaW51dGlscy9nY2MvZ2xpYmMpIgorYnVpbGRfc3R5bGU9dm9pZC1jcm9zcwor Y29uZmlndXJlX2FyZ3M9Ii0td2l0aC1hcmNoPWFybXY4LWEiCitob3N0bWFrZWRlcGVuZHM9InRh ciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCittYWtlZGVwZW5kcz0iaXNsMTUt ZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCitkZXBl bmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK3Nob3J0X2Rlc2M9 IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke190cmlwbGV0fSIKIG1haW50YWluZXI9IkxlYWgg TmV1a2lyY2hlbiA8bGVhaEB2dXh1Lm9yZz4iCi1ob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxp bnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBM R1BMLTIuMS1vci1sYXRlciIKK2hvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIK IGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmludXRpbHMtJHtfYmludXRpbHNf dmVyc2lvbn0udGFyLnh6CiAgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19nY2NfdmVyc2lvbn0vZ2Nj LSR7X2djY192ZXJzaW9ufS50YXIueHoKQEAgLTI2LDM0OSArMjYsMjEgQEAgY2hlY2tzdW09IjBh YjZjNTVkZDg2YTkyZWQ1NjE5NzJiYTE1YjliNzBhOGI5Zjc1NTU3Zjg5NjQ0NmM4MmU4YjM2ZTQ3 M2VlMDQKICBlMmM0MTE0ZTU2OWFmYmU3ZWRiYzI5MTMxYTQzYmU4MzM4NTBhYjlhNDU5ZDgxYmVi MjU4ODAxNmQyYmJiOGFmCiAgMGM2OGY1NjU1NTI4YWVkNGY5OWRhZTcxYTViMjU5ZWRjOTMyMzlm YTg5OWUyZGY3OWMwNTUyNzVjMjE3NDlhMSIKIAotbGliMzJkaXNhYmxlZD15ZXMKLW5vY3Jvc3M9 eWVzCi1ub3BpZT15ZXMKLWNyZWF0ZV93cmtzcmM9eWVzCi1ob3N0bWFrZWRlcGVuZHM9InRhciBn Y2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCi1tYWtlZGVwZW5kcz0iaXNsMTUtZGV2 ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwiCi1kZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2 ZXJzaW9ufV8ke3JldmlzaW9ufSIKLW5vc3RyaXBfZmlsZXM9ImxpYmNhZl9zaW5nbGUuYSBsaWJn Y2MuYSBsaWJnY292LmEgbGliZ2NjX2VoLmEKLSBsaWJnbmFybF9waWMuYSBsaWJnbmFybC5hIGxp YmduYXRfcGljLmEgbGliZ25hdC5hIGxpYmdtZW0uYSIKLQotaWYgWyAiJFhCUFNfVEFSR0VUX0xJ QkMiICE9ICJnbGliYyIgXTsgdGhlbgotCWJyb2tlbj0iZ2xpYmMgY3Jvc3N0b29sY2hhaW4gb25s eSBhdmFpbGFibGUgb24gZ2xpYmMiCi1maQotCi1pZiBbICIkWEJQU19UQVJHRVRfV09SRFNJWkUi ICE9ICI2NCIgXTsgdGhlbgotCWJyb2tlbj0iNjQtYml0IGNyb3NzdG9vbGNoYWluIG9ubHkgYXZh aWxhYmxlIG9uIDY0LWJpdCBob3N0IgotZmkKK2Nyb3NzX3RyaXBsZXQ9JHtfdHJpcGxldH0KK2Ny b3NzX3dvcmRzaXplPTY0Citjcm9zc19saWJjPWdsaWJjCitjcm9zc19iaW51dGlsc192ZXJzaW9u PSR7X2JpbnV0aWxzX3ZlcnNpb259Citjcm9zc19nY2NfdmVyc2lvbj0ke19nY2NfdmVyc2lvbn0K K2Nyb3NzX2dsaWJjX3ZlcnNpb249JHtfZ2xpYmNfdmVyc2lvbn0KK2Nyb3NzX2xpbnV4X3ZlcnNp b249JHtfbGludXhfdmVyc2lvbn0KK2Nyb3NzX2xpbnV4X2FyY2g9YXJtNjQKK2Nyb3NzX3dvcmRz aXplPTY0Citjcm9zc19nbGliY19jZmxhZ3M9Ii1PMiAtbWFyY2g9YXJtdjgtYSIKIAogaWYgWyAi JFhCUFNfVEFSR0VUX01BQ0hJTkUiID0gImFhcmNoNjQiIF07IHRoZW4KIAlicm9rZW49IkNhbid0 IGJ1aWxkIGNyb3NzdG9vbGNoYWluIHRvIGl0c2VsZiIKIGZpCiAKLV9hcHBseV9wYXRjaCgpIHsK LQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUgJDIpIgotCi0JaWYgWyAhIC1mICIu JHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRjaCAtTiAkYXJncyAtaSAkMgotCQl0b3VjaCAu JHtwbmFtZX1fZG9uZQotCWZpCi19Ci0KLV9saW51eF9oZWFkZXJzKCkgewotCVsgLWYgJHt3cmtz cmN9Ly5saW51eF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1z Z19ub3JtYWwgIkJ1aWxkaW5nIExpbnV4IEFQSSBoZWFkZXJzIGZvciBBUk1cbiIKLQotCWNkIGxp bnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0KLQltYWtlIEFSQ0g9YXJtNjQgaGVhZGVyc19jaGVjawot CW1ha2UgQVJDSD1hcm02NCBJTlNUQUxMX0hEUl9QQVRIPSR7X3N5c3Jvb3R9L3VzciBoZWFkZXJz X2luc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZQotfQotCi1fYmlu dXRpbHNfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5iaW51dGls c19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwg IkJ1aWxkaW5nIGNyb3NzIGJpbnV0aWxzXG4iCi0JWyAhIC1kIGJpbnV0aWxzLWJ1aWxkIF0gJiYg bWtkaXIgYmludXRpbHMtYnVpbGQKLQljZCBiaW51dGlscy1idWlsZAotCi0JX2FyZ3M9Ii0tcHJl Zml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13 aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJn cys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlf YXJncys9IiAtLWRpc2FibGUtd2Vycm9yIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1nb2xkIgotCV9h cmdzKz0iIC0td2l0aC1zeXN0ZW0temxpYiIKLQkuLi9iaW51dGlscy0ke19iaW51dGlsc192ZXJz aW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgY29uZmlndXJlLWhvc3QgJiYgbWFrZSAk e21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5iaW51dGlsc19i dWlsZF9kb25lCi19Ci0KLV9nY2NfYm9vdHN0cmFwKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1m ICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jr c3JjfS9nY2MtJHtfZ2NjX3ZlcnNpb259Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2Nj L3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JZG9uZQotCi0J bXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4u L2djYy1ib290c3RyYXAgXSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJv b3RzdHJhcAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtf dHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRob3V0LWhlYWRlcnMiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKLQlfYXJn cys9IiAtLWRpc2FibGUtbGliZ29tcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3Ai Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYml0bSIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliYXRv bWljIgotCV9hcmdzKz0iIC0tZGlzYWJsZS10aHJlYWRzIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxh bmd1YWdlcz1jIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtbGQiCi0JX2FyZ3Mr PSIgLS13aXRoLWdudS1hcyIKLQotCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7 X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dy a3NyY30vLmdjY19ib290c3RyYXBfZG9uZQotfQotCi1fZ2xpYmNfaGVhZGVycygpIHsKLQlsb2Nh bCBfYXJncyBmCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2xpYmNfaGVhZGVyc19kb25lIF0gJiYgcmV0 dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nbGliYy0ke19nbGliY192ZXJzaW9ufQotCWlmIFsgLWQg IiR7WEJQU19TUkNQS0dESVJ9L2dsaWJjL3BhdGNoZXMiIF07IHRoZW4KLQkJZm9yIGYgaW4gJHtY QlBTX1NSQ1BLR0RJUn0vZ2xpYmMvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQkJX2FwcGx5X3BhdGNo IC1wMSAiJGYiCi0JCWRvbmUKLQlmaQotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVp bGRpbmcgY3Jvc3MgZ2xpYmMgaGVhZGVyc1xuIgotCi0JWyAhIC1kIGdsaWJjLWhlYWRlcnMgXSAm JiBta2RpciBnbGliYy1oZWFkZXJzCi0JY2QgZ2xpYmMtaGVhZGVycwotCi0JZWNobyAibGliY19j dl9mb3JjZWRfdW53aW5kPXllcyIgPiBjb25maWcuY2FjaGUKLQllY2hvICJsaWJjX2N2X2NfY2xl YW51cD15ZXMiID4+IGNvbmZpZy5jYWNoZQotCi0JZXhwb3J0IENDPSIke190cmlwbGV0fS1nY2Mi IExEPSIke190cmlwbGV0fS1sZCIgXAotCQlBUz0iJHtfdHJpcGxldH0tYXMiIENQUD0iJHtfdHJp cGxldH0tY3BwIiBcCi0JCU5NPSIke190cmlwbGV0fS1ubSIKLQotCV9hcmdzPSItLXByZWZpeD0v dXNyIgotCV9hcmdzKz0iIC0taG9zdD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtaGVh ZGVycz0ke19zeXNyb290fS91c3IvaW5jbHVkZSIKLQlfYXJncys9IiAtLWNvbmZpZy1jYWNoZSIK LQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1ycGMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jz b2xldGUtbnNsIgotCV9hcmdzKz0iIC0tZW5hYmxlLWtlcm5lbD0yLjYuMjciCi0KLQkuLi9nbGli Yy0ke19nbGliY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgLWsgaW5zdGFs bC1oZWFkZXJzIGNyb3NzX2NvbXBpbGluZz15ZXMgXAotCQlpbnN0YWxsX3Jvb3Q9JHtfc3lzcm9v dH0KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2xpYmNfaGVhZGVyc19kb25lCi19Ci0KLV9nbGliY19i dWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdsaWJjX2J1aWxkX2Rv bmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcg Y3Jvc3MgZ2xpYmNcbiIKLQotCVsgISAtZCBnbGliYy1idWlsZCBdICYmIG1rZGlyIGdsaWJjLWJ1 aWxkCi0JY2QgZ2xpYmMtYnVpbGQKLQotCWVjaG8gInNsaWJkaXI9L3Vzci9saWI2NCIgPiBjb25m aWdwYXJtcwotCi0JZWNobyAibGliY19jdl9mb3JjZWRfdW53aW5kPXllcyIgPiBjb25maWcuY2Fj aGUKLQllY2hvICJsaWJjX2N2X2NfY2xlYW51cD15ZXMiID4+IGNvbmZpZy5jYWNoZQotCi0JZXhw b3J0IENDPSIke190cmlwbGV0fS1nY2MiIENYWD0iJHtfdHJpcGxldH0tZysrIiBMRD0iJHtfdHJp cGxldH0tbGQiIFwKLQkJQVM9IiR7X3RyaXBsZXR9LWFzIiBDUFA9IiR7X3RyaXBsZXR9LWNwcCIg XAotCQlOTT0iJHtfdHJpcGxldH0tbm0iCi0JZXhwb3J0IENGTEFHUz0iLU8xIC1waXBlICR7X2Fy Y2hmbGFnc30iCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLWxpYmRpcj0v dXNyL2xpYjY0IgotCV9hcmdzKz0iIC0taG9zdD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdp dGgtaGVhZGVycz0ke19zeXNyb290fS91c3IvaW5jbHVkZSIKLQlfYXJncys9IiAtLWNvbmZpZy1j YWNoZSIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1ycGMiCi0JX2FyZ3MrPSIgLS1lbmFi bGUtb2Jzb2xldGUtbnNsIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1wcm9maWxlIgotCV9hcmdzKz0i IC0tZW5hYmxlLWtlcm5lbD0yLjYuMjciCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQot CS4uL2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAk e21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbF9yb290PSR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCXRv dWNoICR7d3Jrc3JjfS8uZ2xpYmNfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2J1aWxkKCkgewotCWxv Y2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4g MAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGZpbmFs XG4iCi0KLQlbICEgLWQgZ2NjLWJ1aWxkIF0gJiYgbWtkaXIgZ2NjLWJ1aWxkCi0JY2QgZ2NjLWJ1 aWxkCi0KLQlleHBvcnQgQ0M9ImdjYyIgQ1hYPSJnKysiIENGTEFHUz0iLU9zIC1waXBlIgotCXVu c2V0IExEIEFTCi0KLQkjIE1ha2UgdGhpcyBsaW5rIHRvIHRhcmdldCBsaWJzLgotCWlmIFsgISAt ZiAuc2VkX3N1YnN0X2RvbmUgXTsgdGhlbgotCQlzZWQgLWUgInMsIC9saWIvLCAke19zeXNyb290 fS9saWIvLGc7cywgL3Vzci9saWIvLCAke19zeXNyb290fS91c3IvbGliLyxnIiBcCi0JCQktaSAk e19zeXNyb290fS9saWIvbGliYy5zbwotCQlzZWQgLWUgInMsIC9saWI2NC8sICR7X3N5c3Jvb3R9 L2xpYjY0LyxnO3MsIC91c3IvbGliNjQvLCAke19zeXNyb290fS91c3IvbGliNjQvLGciIFwKLQkJ CS1pICR7X3N5c3Jvb3R9L2xpYi9saWJjLnNvCi0JCXRvdWNoIC5zZWRfc3Vic3RfZG9uZQotCWZp Ci0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLWxpYmV4ZWNkaXI9L3Vzci9s aWIiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5 c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYWRhLGMr KyxvYmpjLG9iai1jKyssZ28sZm9ydHJhbixsdG8iCi0JX2FyZ3MrPSIgLS13aXRoLWdudS1hcyIK LQlfYXJncys9IiAtLXdpdGgtZ251LWxkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIK LQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zamxqLWV4Y2Vw dGlvbnMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtdGhyZWFkcz1wb3NpeCIKLQlfYXJncys9IiAtLWVu YWJsZS1sb25nLWxvbmd4IgotCV9hcmdzKz0iIC0tZW5hYmxlLXNoYXJlZCIKLQlfYXJncys9IiAt LWVuYWJsZS1saW5rZXItYnVpbGQtaWQiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZ251LXVuaXF1ZS1v YmplY3QiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGliYWRhIgotCV9hcmdzKz0iIC0tZW5hYmxlLWx0 byIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXBpZSIKLQlfYXJncys9IiAtLWVuYWJsZS1k ZWZhdWx0LXNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJn cys9IiAtLWRpc2FibGUtbGlic2FuaXRpemVyIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJjaWxr cnRzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJpdG0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxp YnZ0diIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic3RkY3h4LXBjaCIKLQlfYXJncys9IiAtLWVu YWJsZS1saWJzdGRjeHgtdGltZSIKLQlfYXJncys9IiAtLXdpdGgtbGlua2VyLWhhc2gtc3R5bGU9 Z251IgotCi0JLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1h a2UgJHttYWtlam9ic30KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUKLX0KLQot ZG9fYnVpbGQoKSB7Ci0JdW5zZXQgTERGTEFHUwotCWV4cG9ydCBDRkxBR1M9Ii1PcyIgQ1hYRkxB R1M9Ii1PcyIKLQotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0J CWlmIFsgISAtZCAke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke19z eXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtfc3lzcm9vdH0vJHtmfSBdOyB0 aGVuCi0JCQlsbiAtc2ZyICR7X3N5c3Jvb3R9L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9LyR7Zn0KLQkJ ZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke19zeXNyb290fS91c3IvbGliNjQKLQlsbiAtc2YgdXNy L2xpYiAke19zeXNyb290fS9saWI2NAotCi0JX2JpbnV0aWxzX2J1aWxkCi0JX2djY19ib290c3Ry YXAKLQlfbGludXhfaGVhZGVycwotCV9nbGliY19oZWFkZXJzCi0JX2dsaWJjX2J1aWxkCi0JX2dj Y19idWlsZAotfQotCi1kb19pbnN0YWxsKCkgewotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4 ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8k e2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0K LQkJZmkKLQkJaWYgWyAhIC1oICR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0J CQlsbiAtc2ZyICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7REVTVERJ Un0vJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7REVTVERJUn0v JHtfc3lzcm9vdH0vdXNyL2xpYjY0Ci0JbG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke19zeXNy b290fS9saWI2NAotCi0JIyBpbnN0YWxsIGNyb3NzIGJpbnV0aWxzCi0JY2QgJHt3cmtzcmN9L2Jp bnV0aWxzLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBpbnN0 YWxsIGNyb3NzIGdjYwotCWNkICR7d3Jrc3JjfS9nY2MtYnVpbGQKLQltYWtlIERFU1RESVI9JHtE RVNURElSfSBpbnN0YWxsCi0KLQkjIG1vdmUgbGliY2MxLnNvKiB0byB0aGUgc3lzcm9vdAotCW12 ICR7REVTVERJUn0vdXNyL2xpYi9saWJjYzEuc28qICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNy L2xpYgotCi0JIyBpbnN0YWxsIGxpbnV4IEFQSSBoZWFkZXJzIGZvciBBUk02NAotCWNkICR7d3Jr c3JjfS9saW51eC0ke19saW51eF92ZXJzaW9ufQotCW1ha2UgQVJDSD1hcm02NCBJTlNUQUxMX0hE Ul9QQVRIPSR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCXJtIC1m ICQoZmluZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIC1uYW1lIC5pbnN0YWxs IC1vciAtbmFtZSAuLmluc3RhbGwuY21kKQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9 L3Vzci9pbmNsdWRlL2RybQotCi0JIyBpbnN0YWxsIGdsaWJjIGZvciB0YXJnZXQKLQljZCAke3dy a3NyY30vZ2xpYmMtYnVpbGQKLQltYWtlIGluc3RhbGxfcm9vdD0ke0RFU1RESVJ9LyR7X3N5c3Jv b3R9IGluc3RhbGwgaW5zdGFsbC1oZWFkZXJzCi0KLQkjIHN5bWxpbmtzIGZvciBnbmFybCBhbmQg Z25hdCBzaGFyZWQgbGlicmFyaWVzCi0JX21ham9ydmVyPSR7X2djY192ZXJzaW9uJS4qLip9Ci0J X2FkYWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0fS8ke19nY2NfdmVyc2lvbn0vYWRhbGliCi0J bXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXJsLSR7X21ham9ydmVyfS5zbyAke0RF U1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0v bGliZ25hdC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0J bG4gLXN2ZiBsaWJnbmFybC0ke19tYWpvcnZlcn0uc28gbGliZ25hcmwuc28KLQlsbiAtc3ZmIGxp YmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXQuc28KLQlybSAtdmYgJHtERVNURElSfS8ke19h ZGFsaWJ9L2xpYmduYXtybCx0fS5zbwotCi0JIyBXZSBuZWVkIHRvIGJ1aWxkIGxpYmF0b21pYyBp biB0YXJnZXQgZ2NjIGFzIGdjY2dvIG5lZWRzIGl0IHRvCi0JIyBidWlsZC4uLiBidXQgaXQncyBu b3QgbmVlZGVkIGF0IHJ1bnRpbWUsIHNvIHJlbW92ZSBpdCBmcm9tIHRoZQotCSMgZGVzdGRpciBz byBpdCBkb2Vzbid0IGNvbmZsaWN0IHdpdGggdGhlIGxpYmF0b21pYyBwYWNrYWdlCi0Jcm0gLWYg JHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xpYmF0b21pYy4qCi0KLQkjIFJlbW92ZSB1 bm5lY2Vzc2FyeSBzdHVmZgotCXJtIC1mICR7REVTVERJUn0vdXNyL2xpYiovbGliaWJlcnR5LmEK LQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNy b290fS97c2JpbixldGMsdmFyfQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci97 c2JpbixzaGFyZSxsaWJleGVjfQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliZXhl YwotfQotCi1kb19jbGVhbigpIHsKLQkjIFJlbW92ZSB0ZW1wb3Jhcnkgc3R1ZmYgZnJvbSBtYXN0 ZXJkaXIKLQlybSAtcmYgJHtfc3lzcm9vdH0KLQlybSAtZiAvdXNyL2Jpbi8ke190cmlwbGV0fSoK LQlybSAtcmYgL3Vzci9saWIvZ2NjLyR7X3RyaXBsZXR9Ci0Jcm0gLXJmIC91c3IvbGliZXhlYy9n Y2MvJHtfdHJpcGxldH0KLX0KLQogY3Jvc3MtYWFyY2g2NC1saW51eC1nbnUtbGliY19wYWNrYWdl KCkgewogCXNob3J0X2Rlc2MrPSIgLSBnbGliYyBmaWxlcyIKIAlub3N0cmlwPXllcwpAQCAtMzc2 LDYgKzQ4LDYgQEAgY3Jvc3MtYWFyY2g2NC1saW51eC1nbnUtbGliY19wYWNrYWdlKCkgewogCW5v dmVyaWZ5cmRlcHM9eWVzCiAKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgJHtfc3lzcm9vdH0K KwkJdm1vdmUgdXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9CiB9CgpGcm9tIGJmY2I4MDZiOWZmMTdl NTI1OGM4YWUxYWNiZDRlOTcwMjdmOGM4ZjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMjUgRGVjIDIwMjAgMTQ6NTI6 MzYgKzAxMDAKU3ViamVjdDogW1BBVENIIDQvNF0gY3Jvc3MtYWFyY2g2NC1saW51eC1tdXNsOiBy ZWRvIHdpdGggdm9pZC1jcm9zcwogYnVpbGQtc3R5bGUKCi0tLQogc3JjcGtncy9jcm9zcy1hYXJj aDY0LWxpbnV4LW11c2wvdGVtcGxhdGUgfCAzMTAgKystLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDI4OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2Nyb3NzLWFhcmNoNjQtbGludXgtbXVzbC90ZW1wbGF0ZSBiL3NyY3BrZ3Mv Y3Jvc3MtYWFyY2g2NC1saW51eC1tdXNsL3RlbXBsYXRlCmluZGV4IDhkNDU4N2NmZTQ4Li44Njcx YmI5ZDIwYiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1hYXJjaDY0LWxpbnV4LW11c2wvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1hYXJjaDY0LWxpbnV4LW11c2wvdGVtcGxhdGUKQEAg LTEsMTkgKzEsMTkgQEAKLSMgVGVtcGxhdGUgYnVpbGQgZmlsZSBmb3IgJ2Nyb3NzLWFhcmNoNjQt bGludXgtbXVzbCcKLSMKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLWFhcmNoNjQtbGludXgt bXVzbCcKK190cmlwbGV0PWFhcmNoNjQtbGludXgtbXVzbAogX2JpbnV0aWxzX3ZlcnNpb249Mi4z MgogX2djY192ZXJzaW9uPTkuMy4wCiBfbXVzbF92ZXJzaW9uPTEuMS4yNAogX2xpbnV4X3ZlcnNp b249NC4xOQogX2xpYnVjb250ZXh0X3ZlcnNpb249MC45LjAKLQotX3RyaXBsZXQ9YWFyY2g2NC1s aW51eC1tdXNsCi1fYXJjaGZsYWdzPSItbWFyY2g9YXJtdjgtYSIKLV9zeXNyb290PSIvdXNyLyR7 X3RyaXBsZXR9IgotCiBwa2duYW1lPWNyb3NzLSR7X3RyaXBsZXR9CiB2ZXJzaW9uPTAuMzMKIHJl dmlzaW9uPTQKLXNob3J0X2Rlc2M9IkNyb3NzIHRvb2xjaGFpbiBmb3IgQVJNNjQgTEUgdGFyZ2V0 IChtdXNsKSIKK2J1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKK2NvbmZpZ3VyZV9hcmdzPSItLXdpdGgt YXJjaD1hcm12OC1hIgoraG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXgg cGVybCBweXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGli LWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7 dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBm b3IgJHtfdHJpcGxldH0iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5v cmc+IgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogbGljZW5zZT0iR1BM LTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTUlUIgpAQCAtMjksMjk2ICsyOSwzMCBA QCBjaGVja3N1bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3MmJhMTViOWI3MGE4YjlmNzU1NTdmODk2 NDQ2YzgyZThiMzZlNDczZWUwNAogIDBjNjhmNTY1NTUyOGFlZDRmOTlkYWU3MWE1YjI1OWVkYzkz MjM5ZmE4OTllMmRmNzljMDU1Mjc1YzIxNzQ5YTEKICAwZDUzYTQxNWEzMDdlZjE3NTE1M2JiZTYw YTU3MmM5NDBhOTIyY2I3MzZjZTEzNTMwYjY2NmU3ZWMyNzk1ZDY4IgogCi1saWIzMmRpc2FibGVk PXllcwotbm9jcm9zcz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMKLWNyZWF0ZV93cmtzcmM9 eWVzCi0KLWhvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0 aG9uMyIKLW1ha2VkZXBlbmRzPSJ6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIGxpYm1w Yy1kZXZlbCBpc2wxNS1kZXZlbCIKLW5vc3RyaXBfZmlsZXM9ImxpYmNhZl9zaW5nbGUuYSBsaWJn Y2MuYSBsaWJnY292LmEgbGliZ2NjX2VoLmEKLSBsaWJnbmFybF9waWMuYSBsaWJnbmFybC5hIGxp YmduYXRfcGljLmEgbGliZ25hdC5hIGxpYmdtZW0uYSIKLWRlcGVuZHM9IiR7cGtnbmFtZX0tbGli Yy0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotCi1pZiBbICIkWEJQU19UQVJHRVRfV09SRFNJWkUi ICE9ICI2NCIgXTsgdGhlbgotCWJyb2tlbj0iNjQtYml0IGNyb3NzdG9vbGNoYWluIG9ubHkgYXZh aWxhYmxlIG9uIDY0LWJpdCBob3N0IgotZmkKK2Nyb3NzX3RyaXBsZXQ9JHtfdHJpcGxldH0KK2Ny b3NzX3dvcmRzaXplPTY0Citjcm9zc19saWJjPW11c2wKK2Nyb3NzX2JpbnV0aWxzX3ZlcnNpb249 JHtfYmludXRpbHNfdmVyc2lvbn0KK2Nyb3NzX2djY192ZXJzaW9uPSR7X2djY192ZXJzaW9ufQor Y3Jvc3NfbXVzbF92ZXJzaW9uPSR7X211c2xfdmVyc2lvbn0KK2Nyb3NzX2xpbnV4X3ZlcnNpb249 JHtfbGludXhfdmVyc2lvbn0KK2Nyb3NzX2xpYnVjb250ZXh0X3ZlcnNpb249JHtfbGlidWNvbnRl eHRfdmVyc2lvbn0KK2Nyb3NzX2xpYnVjb250ZXh0X2FyY2g9YWFyY2g2NAorY3Jvc3NfbGludXhf YXJjaD1hcm02NAorY3Jvc3Nfd29yZHNpemU9NjQKK2Nyb3NzX211c2xfY2ZsYWdzPSItTzIgLW1h cmNoPWFybXY4LWEiCiAKIGlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiA9ICJhYXJjaDY0LW11 c2wiIF07IHRoZW4KIAlicm9rZW49IkNhbid0IGJ1aWxkIGNyb3NzdG9vbGNoYWluIHRvIGl0c2Vs ZiIKIGZpCiAKLV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFz ZW5hbWUgJDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRj aCAtTiAkYXJncyAtaSAkMgotCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0KLV9iaW51 dGlsc19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmJpbnV0aWxz X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAi QnVpbGRpbmcgY3Jvc3MgYmludXRpbHMgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgYmludXRpbHMt YnVpbGQgXSAmJiBta2RpciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0aWxzLWJ1aWxkCi0JX2Fy Z3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2Fy Z3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5s cyIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXdl cnJvciIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0td2l0aC1zeXN0 ZW0temxpYiIKLQotCS4uL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259L2NvbmZpZ3VyZSAk e19hcmdzfQotCi0JbWFrZSBjb25maWd1cmUtaG9zdCAmJiBtYWtlICR7bWFrZWpvYnN9Ci0JbWFr ZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUKLX0KLQot X2djY19ib290c3RyYXAoKSB7Ci0JbG9jYWwgX2FyZ3MKLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2Jv b3RzdHJhcF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nY2MtJHtfZ2NjX3Zl cnNpb259Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL3BhdGNoZXMvKi5wYXRjaDsg ZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JZG9uZQotCWZvciBmIGluICR7WEJQU19TUkNQ S0dESVJ9L2djYy9maWxlcy8qLW11c2wucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDEgIiRm IgotCWRvbmUKLQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBib290c3RyYXBcbiIK LQotCVsgISAtZCAuLi9nY2MtYm9vdHN0cmFwIF0gJiYgbWtkaXIgLi4vZ2NjLWJvb3RzdHJhcAot CWNkIC4uL2djYy1ib290c3RyYXAKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0i IC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jv b3R9IgotCV9hcmdzKz0iIC0td2l0aC1uZXdsaWIiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3Vh Z2VzPWMiCi0JX2FyZ3MrPSIgLS13aXRoLW5ld2xpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtbGli c3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1 YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS10aHJlYWRzIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1kZWNpbWFsLWZsb2F0IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmdvbXAiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLWxpYmF0b21pYyIKLQlfYXJncys9IiAtLWRpc2FibGUtc3ltdmVycyIK LQlfYXJncys9IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5vIgotCi0JQ0ZMQUdTPSItTzAgLWcwIiBD WFhGTEFHUz0iLU8wIC1nMCIgXAotCQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAk e19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3 cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUKLX0KLQotX2xpbnV4X2hlYWRlcnMoKSB7Ci0JWyAt ZiAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtz cmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgTGludXggQVBJIGhlYWRlcnNcbiIKLQotCWNkIGxp bnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0KLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9rZXJu ZWwtbGliYy1oZWFkZXJzL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAk ZgotCWRvbmUKLQotCW1ha2UgQVJDSD1hcm02NCBoZWFkZXJzX2NoZWNrCi0JbWFrZSBBUkNIPWFy bTY0IElOU1RBTExfSERSX1BBVEg9JHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCi0J dG91Y2ggJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lCi19Ci0KLV9tdXNsX2J1aWxkKCkgewot CVsgLWYgJHt3cmtzcmN9Ly5tdXNsX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3 cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9ufQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3Nz IG11c2wgbGliY1xuIgotCi0JIyBBcHBseSBtdXNsIHBhdGNoZXMgaWYgdGhlcmUgYXJlIGFueQot CWlmIFsgLWQgIiR7WEJQU19TUkNQS0dESVJ9L211c2wvcGF0Y2hlcyIgXTsgdGhlbgotCQlmb3Ig ZiBpbiAke1hCUFNfU1JDUEtHRElSfS9tdXNsL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJCV9hcHBs eV9wYXRjaCAtcDAgIiRmIgotCQlkb25lCi0JZmkKLQotCUNDPSIke190cmlwbGV0fS1nY2MiIExE PSIke190cmlwbGV0fS1sZCIgQVI9IiR7X3RyaXBsZXR9LWFyIiBcCi0JCUFTPSIke190cmlwbGV0 fS1hcyIgUkFOTElCPSIke190cmlwbGV0fS1yYW5saWIiIFwKLQkJQ0ZMQUdTPSItT3MgLXBpcGUg LWZQSUMgJHtfYXJjaGZsYWdzfSIgXAotCQkuL2NvbmZpZ3VyZSAtLXByZWZpeD0vdXNyCi0KLQlt YWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBERVNURElSPSR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCXRv dWNoICR7d3Jrc3JjfS8ubXVzbF9idWlsZF9kb25lCi19Ci0KLV9saWJ1Y29udGV4dF9idWlsZCgp IHsKLQlbIC1mICR7d3Jrc3JjfS8ubGlidWNvbnRleHRfYnVpbGRfZG9uZSBdICYmIHJldHVybiAw Ci0KLQljZCAke3dya3NyY30vbGlidWNvbnRleHQtJHtfbGlidWNvbnRleHRfdmVyc2lvbn0KLQlt c2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBsaWJ1Y29udGV4dFxuIgotCi0JIyBpdCdzIG9rIGlm IHdlJ3JlIHN0YXRpYyBvbmx5IGhlcmUKLQlDQz0iJHtfdHJpcGxldH0tZ2NjIiBBUj0iJHtfdHJp cGxldH0tYXIiIEFTPSIke190cmlwbGV0fS1hcyIgXAotCQlDRkxBR1M9Ii1PcyAtcGlwZSAke19h cmNoZmxhZ3N9IiBcCi0JCW1ha2UgQVJDSD1hYXJjaDY0IGxpYnVjb250ZXh0LmEKLQotCWNwIGxp YnVjb250ZXh0LmEgJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saWJ1 Y29udGV4dF9idWlsZF9kb25lCi19Ci0KLV9nY2NfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQot CVsgLWYgJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dy a3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgZmluYWxcbiIKLQotCVsgISAt ZCBnY2MtYnVpbGQgXSAmJiBta2RpciBnY2MtYnVpbGQKLQljZCBnY2MtYnVpbGQKLQotCV9hcmdz PSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGliZXhlY2Rpcj0vdXNyL2xpYiIKLQlfYXJn cys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19z eXNyb290fSIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyxhZGEsYysrLG9iamMsb2Jq LWMrKyxnbyxmb3J0cmFuLGx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJhZGEiCi0JX2FyZ3Mr PSIgLS1lbmFibGUtbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtcGllIgotCV9hcmdz Kz0iIC0tZW5hYmxlLWRlZmF1bHQtc3NwIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYnNzcCIKLQlf YXJncys9IiAtLWRpc2FibGUtbGlic2FuaXRpemVyIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0 aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJx dWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWVu YWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMiCi0JX2FyZ3MrPSIgbGli YXRfY3ZfaGF2ZV9pZnVuYz1ubyIKLQotCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJl ICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0KLQl0b3VjaCAke3dya3NyY30vLmdjY19i dWlsZF9kb25lCi19Ci0KLWRvX2J1aWxkKCkgewotCSMgRW5zdXJlIHdlIHVzZSBzYW5lIGVudmly b25tZW50Ci0JdW5zZXQgQ0MgQ1hYIENQUCBMRCBBUyBBUiBSQU5MSUIgT0JKRFVNUCBSRUFERUxG IE5NCi0JdW5zZXQgQ0ZMQUdTIENYWEZMQUdTIENQUEZMQUdTIExERkxBR1MKLQlleHBvcnQgQ0ZM QUdTPSItT3MgLXBpcGUiIENYWEZMQUdTPSItT3MgLXBpcGUiCi0KLQlmb3IgZiBpbiBpbmNsdWRl IGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtfc3lzcm9vdH0vdXNyLyR7 Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYg WyAhIC1oICR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke19zeXNyb290fS91 c3IvJHtmfSAke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtfc3lz cm9vdH0vdXNyL2xpYjY0Ci0JbG4gLXNmIHVzci9saWIgJHtfc3lzcm9vdH0vbGliNjQKLQotCV9i aW51dGlsc19idWlsZAotCV9nY2NfYm9vdHN0cmFwCi0JX2xpbnV4X2hlYWRlcnMKLQlfbXVzbF9i dWlsZAotCV9saWJ1Y29udGV4dF9idWlsZAotCV9nY2NfYnVpbGQKLX0KLQotZG9faW5zdGFsbCgp IHsKLQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEg LWQgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAk e0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3Vzci8ke2Z9IFwKLQkJCQkke0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkK LQlkb25lCi0JbG4gLXNmIGxpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWI2NAotCWxu IC1zZiB1c3IvbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliNjQKLQotCSMgaW5zdGFsbCBs aW51eCBBUEkgaGVhZGVycwotCWNkICR7d3Jrc3JjfS9saW51eC0ke19saW51eF92ZXJzaW9ufQot CW1ha2UgQVJDSD1hcm02NCBJTlNUQUxMX0hEUl9QQVRIPSR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyIGhlYWRlcnNfaW5zdGFsbAotCXJtIC1mICQoZmluZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9 L3Vzci9pbmNsdWRlIC1uYW1lIC5pbnN0YWxsIC1vciAtbmFtZSAuLmluc3RhbGwuY21kKQotCXJt IC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlL2RybQotCi0JIyBpbnN0YWxs IGNyb3NzIGJpbnV0aWxzCi0JY2QgJHt3cmtzcmN9L2JpbnV0aWxzLWJ1aWxkCi0JbWFrZSBERVNU RElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBpbnN0YWxsIGNyb3NzIGdjYwotCWNkICR7d3Jr c3JjfS9nY2MtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIG1v dmUgbGliY2MxLnNvKiB0byB0aGUgc3lzcm9vdAotCW12ICR7REVTVERJUn0vdXNyL2xpYi9saWJj YzEuc28qICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JIyBpbnN0YWxsIG11c2wg bGliYyBmb3IgdGFyZ2V0Ci0JY2QgJHt3cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9ufQotCW1h a2UgREVTVERJUj0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCSMgUmVtb3ZlIHVz ZWxlc3MgaGVhZGVycy4KLQlybSAtcmYgJHtERVNURElSfS91c3IvbGliL2djYy8ke190cmlwbGV0 fS8qL2luY2x1ZGUtZml4ZWQKLQotCSMgTWFrZSBsZC1tdXNsLnNvIHN5bWxpbmtzIHJlbGF0aXZl LgotCWxuIC1zZiBsaWJjLnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYi9sZC1tdXNs LWFhcmNoNjQuc28uMQotCi0JIyBzeW1saW5rcyBmb3IgZ25hcmwgYW5kIGduYXQgc2hhcmVkIGxp YnJhcmllcwotCV9tYWpvcnZlcj0ke19nY2NfdmVyc2lvbiUuKi4qfQotCV9hZGFsaWI9dXNyL2xp Yi9nY2MvJHtfdHJpcGxldH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxpYgotCW12IC12ICR7REVTVERJ Un0vJHtfYWRhbGlifS9saWJnbmFybC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNy b290fS91c3IvbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXQtJHtfbWFq b3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCWxuIC1zdmYgbGliZ25h cmwtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXJsLnNvCi0JbG4gLXN2ZiBsaWJnbmF0LSR7X21ham9y dmVyfS5zbyBsaWJnbmF0LnNvCi0Jcm0gLXZmICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF7 cmwsdH0uc28KLQotCSMgV2UgbmVlZCB0byBidWlsZCBsaWJhdG9taWMgaW4gdGFyZ2V0IGdjYyBh cyBnY2NnbyBuZWVkcyBpdCB0bwotCSMgYnVpbGQuLi4gYnV0IGl0J3Mgbm90IG5lZWRlZCBhdCBy dW50aW1lLCBzbyByZW1vdmUgaXQgZnJvbSB0aGUKLQkjIGRlc3RkaXIgc28gaXQgZG9lc24ndCBj b25mbGljdCB3aXRoIHRoZSBsaWJhdG9taWMgcGFja2FnZQotCXJtIC1mICR7REVTVERJUn0vJHtf c3lzcm9vdH0vdXNyL2xpYi9saWJhdG9taWMuKgotCi0JIyBSZW1vdmUgdW5uZWNlc3Nhcnkgc3R1 ZmYKLQlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCi0Jcm0gLXJmICR7REVT VERJUn0vdXNyL3NoYXJlCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve2V0Yyx2YXJ9 Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL3tzYmluLHNoYXJlLGxpYmV4ZWN9 Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWJleGVjCi0Jcm0gLWYgJHtERVNURElS fS8ke19zeXNyb290fS9saWIvKi5weQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vc2Jp bgotfQotCiBjcm9zcy1hYXJjaDY0LWxpbnV4LW11c2wtbGliY19wYWNrYWdlKCkgewogCXNob3J0 X2Rlc2MrPSIgLSBsaWJjIGZpbGVzIgogCW5vc3RyaXA9eWVzCiAJbm9zaGxpYnByb3ZpZGVzPXll cwogCW5vdmVyaWZ5cmRlcHM9eWVzCisKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgJHtfc3lz cm9vdH0KKwkJdm1vdmUgdXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9CiB9Cg== --===============6411635769467550732==--