From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Filipe Rosset To: git-commits@fedoraproject.org Subject: [rpms/python-xnat4tests] rawhide: Update to 0.4.1 Date: Fri, 21 Aug 2026 09:15:47 GMT Message-ID: <178730374745.1.3716395576923991961.rpms-python-xnat4tests-7bcdedb046e9@fedoraproject.org> List-ID: X-Git-Repo: rpms/python-xnat4tests X-Git-Branch: rawhide X-Git-Rev: 7bcdedb046e99c8793cd7b0b97754b68f99c71d1 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvcHl0aG9uLXhuYXQ0 dGVzdHMKQnJhbmNoIDogcmF3aGlkZQpDb21taXQgOiA3YmNkZWRiMDQ2ZTk5Yzg3OTNjZDdiMGI5 Nzc1NGI2OGY5OWM3MWQxCkF1dGhvciA6IEZpbGlwZSBSb3NzZXQgPHJvc3NldC5maWxpcGVAZ21h aWwuY29tPgpEYXRlICAgOiAyMDI2LTA4LTE2VDAxOjIyOjUxLTAzOjAwClN0YXRzICA6ICs4Ly0x ODM1IGluIDQgZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9y cG1zL3B5dGhvbi14bmF0NHRlc3RzL2MvN2JjZGVkYjA0NmU5OWM4NzkzY2Q3YjBiOTc3NTRiNjhm OTljNzFkMT9icmFuY2g9cmF3aGlkZQoKTG9nOgpVcGRhdGUgdG8gMC40LjEKCi0tLQpkaWZmIC0t Z2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUKaW5kZXggN2Q4ZjA2Ny4uMTE0NjAyMyAxMDA2 NDQKLS0tIGEvLmdpdGlnbm9yZQorKysgYi8uZ2l0aWdub3JlCkBAIC0xICsxLDIgQEAKIC94bmF0 NHRlc3RzLTAuMy4xNC50YXIuZ3oKKy94bmF0NHRlc3RzLTAuNC4xLnRhci5negoKZGlmZiAtLWdp dCBhLzAwMDEtVXBkYXRlLVZlcnNpb25lZXItYW5kLWZpeC1jb25maWcucGF0Y2ggYi8wMDAxLVVw ZGF0ZS1WZXJzaW9uZWVyLWFuZC1maXgtY29uZmlnLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCA2NDk2YjBhLi4wMDAwMDAwCi0tLSBhLzAwMDEtVXBkYXRlLVZlcnNpb25lZXIt YW5kLWZpeC1jb25maWcucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxODIwICswLDAgQEAKLUZy b20gZGUxZjgwOTQxYzdmYWI1ODdkMDljY2Q2NjRiMTllODQ4ZmY4NjYzNSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKLUZyb206IFNhbmRybyA8ZGV2ZWxAcGVuZ3VpbnBlZS5ubD4KLURhdGU6IFN1 biwgMjAgQXByIDIwMjUgMTc6Mzc6MzggKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gVXBkYXRlIFZl cnNpb25lZXIgYW5kIGZpeCBjb25maWcKLQotU2V0IGB0YWdfcHJlZml4YCBpbiBgc2V0dXAuY2Zn YC4KLVVwZGF0aW5nIHRvIHZlcnNpb24gMC4yOSBjaGFuZ2VzIHRoZSBsaWNlbnNlIG9mIGB2ZXJz aW9uZWVyLnB5YCBhcwotd2VsbCBhcyB0aGUgcHJvZHVjZWQgYF92ZXJzaW9uLnB5YCBmcm9tIEND MC0xLjAgdG8gVW5saWNlbnNlLgotLS0tCi0gc2V0dXAuY2ZnICAgICAgICAgICAgICB8ICAgNCAr LQotIHZlcnNpb25lZXIucHkgICAgICAgICAgfCA1NTggKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0KLSB4bmF0NHRlc3RzL192ZXJzaW9uLnB5IHwgMjU4ICsrKysrKysr Ky0tLS0tLS0tLS0KLSAzIGZpbGVzIGNoYW5nZWQsIDQ5NyBpbnNlcnRpb25zKCspLCAzMjMgZGVs ZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zZXR1cC5jZmcgYi9zZXR1cC5jZmcKLWluZGV4IDY3 MGU1OTEuLjU2ODM0OTQgMTAwNjQ0Ci0tLS0gYS9zZXR1cC5jZmcKLSsrKyBiL3NldHVwLmNmZwot QEAgLTEsNiArMSw2IEBACi0gW21ldGFkYXRhXQotICMgVGhpcyBpbmNsdWRlcyB0aGUgbGljZW5z ZSBmaWxlIGluIHRoZSB3aGVlbC4KLS1saWNlbnNlX2ZpbGUgPSBMSUNFTlNFCi0rbGljZW5zZV9m aWxlcyA9IExJQ0VOU0UKLSAKLSBbYmRpc3Rfd2hlZWxdCi0gIyBUaGlzIGZsYWcgc2F5cyB0byBn ZW5lcmF0ZSB3aGVlbHMgdGhhdCBzdXBwb3J0IGJvdGggUHl0aG9uIDIgYW5kIFB5dGhvbgotQEAg LTE2LDcgKzE2LDcgQEAgVkNTID0gZ2l0Ci0gc3R5bGUgPSBwZXA0NDAKLSB2ZXJzaW9uZmlsZV9z b3VyY2UgPSB4bmF0NHRlc3RzL192ZXJzaW9uLnB5Ci0gdmVyc2lvbmZpbGVfYnVpbGQgPSB4bmF0 NHRlc3RzL192ZXJzaW9uLnB5Ci0tdGFnX3ByZWZpeCA9Ci0rdGFnX3ByZWZpeCA9IHYKLSAKLSBb Zmxha2U4XQotIGRvY3Rlc3RzID0gVHJ1ZQotZGlmZiAtLWdpdCBhL3ZlcnNpb25lZXIucHkgYi92 ZXJzaW9uZWVyLnB5Ci1pbmRleCBiNGNkMWQ2Li4xZTM3NTNlIDEwMDY0NAotLS0tIGEvdmVyc2lv bmVlci5weQotKysrIGIvdmVyc2lvbmVlci5weQotQEAgLTEsNSArMSw1IEBACi0gCi0tIyBWZXJz aW9uOiAwLjIxCi0rIyBWZXJzaW9uOiAwLjI5Ci0gCi0gIiIiVGhlIFZlcnNpb25lZXIgLSBsaWtl IGEgcm9ja2V0ZWVyLCBidXQgZm9yIHZlcnNpb25zLgotIAotQEAgLTksMTIgKzksMTIgQEAgVGhl IFZlcnNpb25lZXIKLSAqIGxpa2UgYSByb2NrZXRlZXIsIGJ1dCBmb3IgdmVyc2lvbnMhCi0gKiBo dHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLXZlcnNpb25lZXIvcHl0aG9uLXZlcnNpb25lZXIKLSAq IEJyaWFuIFdhcm5lcgotLSogTGljZW5zZTogUHVibGljIERvbWFpbgotLSogQ29tcGF0aWJsZSB3 aXRoOiBQeXRob24gMy42LCAzLjcsIDMuOCwgMy45IGFuZCBweXB5MwotKyogTGljZW5zZTogUHVi bGljIERvbWFpbiAoVW5saWNlbnNlKQotKyogQ29tcGF0aWJsZSB3aXRoOiBQeXRob24gMy43LCAz LjgsIDMuOSwgMy4xMCwgMy4xMSBhbmQgcHlweTMKLSAqIFshW0xhdGVzdCBWZXJzaW9uXVtweXBp LWltYWdlXV1bcHlwaS11cmxdCi0gKiBbIVtCdWlsZCBTdGF0dXNdW3RyYXZpcy1pbWFnZV1dW3Ry YXZpcy11cmxdCi0gCi0tVGhpcyBpcyBhIHRvb2wgZm9yIG1hbmFnaW5nIGEgcmVjb3JkZWQgdmVy c2lvbiBudW1iZXIgaW4gZGlzdHV0aWxzLWJhc2VkCi0rVGhpcyBpcyBhIHRvb2wgZm9yIG1hbmFn aW5nIGEgcmVjb3JkZWQgdmVyc2lvbiBudW1iZXIgaW4gc2V0dXB0b29scy1iYXNlZAotIHB5dGhv biBwcm9qZWN0cy4gVGhlIGdvYWwgaXMgdG8gcmVtb3ZlIHRoZSB0ZWRpb3VzIGFuZCBlcnJvci1w cm9uZSAidXBkYXRlCi0gdGhlIGVtYmVkZGVkIHZlcnNpb24gc3RyaW5nIiBzdGVwIGZyb20geW91 ciByZWxlYXNlIHByb2Nlc3MuIE1ha2luZyBhIG5ldwotIHJlbGVhc2Ugc2hvdWxkIGJlIGFzIGVh c3kgYXMgcmVjb3JkaW5nIGEgbmV3IHRhZyBpbiB5b3VyIHZlcnNpb24tY29udHJvbAotQEAgLTIz LDEwICsyMywzOCBAQCBzeXN0ZW0sIGFuZCBtYXliZSBtYWtpbmcgbmV3IHRhcmJhbGxzLgotIAot ICMjIFF1aWNrIEluc3RhbGwKLSAKLStWZXJzaW9uZWVyIHByb3ZpZGVzIHR3byBpbnN0YWxsYXRp b24gbW9kZXMuIFRoZSAiY2xhc3NpYyIgdmVuZG9yZWQgbW9kZSBpbnN0YWxscwotK2EgY29weSBv ZiB2ZXJzaW9uZWVyIGludG8geW91ciByZXBvc2l0b3J5LiBUaGUgZXhwZXJpbWVudGFsIGJ1aWxk LXRpbWUgZGVwZW5kZW5jeSBtb2RlCi0raXMgaW50ZW5kZWQgdG8gYWxsb3cgeW91IHRvIHNraXAg dGhpcyBzdGVwIGFuZCBzaW1wbGlmeSB0aGUgcHJvY2VzcyBvZiB1cGdyYWRpbmcuCi0rCi0rIyMj IFZlbmRvcmVkIG1vZGUKLSsKLSAqIGBwaXAgaW5zdGFsbCB2ZXJzaW9uZWVyYCB0byBzb21ld2hl cmUgaW4geW91ciAkUEFUSAotLSogYWRkIGEgYFt2ZXJzaW9uZWVyXWAgc2VjdGlvbiB0byB5b3Vy IHNldHVwLmNmZyAoc2VlIFtJbnN0YWxsXShJTlNUQUxMLm1kKSkKLS0qIHJ1biBgdmVyc2lvbmVl ciBpbnN0YWxsYCBpbiB5b3VyIHNvdXJjZSB0cmVlLCBjb21taXQgdGhlIHJlc3VsdHMKLS0qIFZl cmlmeSB2ZXJzaW9uIGluZm9ybWF0aW9uIHdpdGggYHB5dGhvbiBzZXR1cC5weSB2ZXJzaW9uYAot KyAgICogQSBbY29uZGEtZm9yZ2UgcmVjaXBlXShodHRwczovL2dpdGh1Yi5jb20vY29uZGEtZm9y Z2UvdmVyc2lvbmVlci1mZWVkc3RvY2spIGlzCi0rICAgICBhdmFpbGFibGUsIHNvIHlvdSBjYW4g YWxzbyB1c2UgYGNvbmRhIGluc3RhbGwgLWMgY29uZGEtZm9yZ2UgdmVyc2lvbmVlcmAKLSsqIGFk ZCBhIGBbdG9vbC52ZXJzaW9uZWVyXWAgc2VjdGlvbiB0byB5b3VyIGBweXByb2plY3QudG9tbGAg b3IgYQotKyAgYFt2ZXJzaW9uZWVyXWAgc2VjdGlvbiB0byB5b3VyIGBzZXR1cC5jZmdgIChzZWUg W0luc3RhbGxdKElOU1RBTEwubWQpKQotKyAgICogTm90ZSB0aGF0IHlvdSB3aWxsIG5lZWQgdG8g YWRkIGB0b21saTsgcHl0aG9uX3ZlcnNpb24gPCAiMy4xMSJgIHRvIHlvdXIKLSsgICAgIGJ1aWxk LXRpbWUgZGVwZW5kZW5jaWVzIGlmIHlvdSB1c2UgYHB5cHJvamVjdC50b21sYAotKyogcnVuIGB2 ZXJzaW9uZWVyIGluc3RhbGwgLS12ZW5kb3JgIGluIHlvdXIgc291cmNlIHRyZWUsIGNvbW1pdCB0 aGUgcmVzdWx0cwotKyogdmVyaWZ5IHZlcnNpb24gaW5mb3JtYXRpb24gd2l0aCBgcHl0aG9uIHNl dHVwLnB5IHZlcnNpb25gCi0rCi0rIyMjIEJ1aWxkLXRpbWUgZGVwZW5kZW5jeSBtb2RlCi0rCi0r KiBgcGlwIGluc3RhbGwgdmVyc2lvbmVlcmAgdG8gc29tZXdoZXJlIGluIHlvdXIgJFBBVEgKLSsg ICAqIEEgW2NvbmRhLWZvcmdlIHJlY2lwZV0oaHR0cHM6Ly9naXRodWIuY29tL2NvbmRhLWZvcmdl L3ZlcnNpb25lZXItZmVlZHN0b2NrKSBpcwotKyAgICAgYXZhaWxhYmxlLCBzbyB5b3UgY2FuIGFs c28gdXNlIGBjb25kYSBpbnN0YWxsIC1jIGNvbmRhLWZvcmdlIHZlcnNpb25lZXJgCi0rKiBhZGQg YSBgW3Rvb2wudmVyc2lvbmVlcl1gIHNlY3Rpb24gdG8geW91ciBgcHlwcm9qZWN0LnRvbWxgIG9y IGEKLSsgIGBbdmVyc2lvbmVlcl1gIHNlY3Rpb24gdG8geW91ciBgc2V0dXAuY2ZnYCAoc2VlIFtJ bnN0YWxsXShJTlNUQUxMLm1kKSkKLSsqIGFkZCBgdmVyc2lvbmVlcmAgKHdpdGggYFt0b21sXWAg ZXh0cmEsIGlmIGNvbmZpZ3VyaW5nIGluIGBweXByb2plY3QudG9tbGApCi0rICB0byB0aGUgYHJl cXVpcmVzYCBrZXkgb2YgdGhlIGBidWlsZC1zeXN0ZW1gIHRhYmxlIGluIGBweXByb2plY3QudG9t bGA6Ci0rICBgYGB0b21sCi0rICBbYnVpbGQtc3lzdGVtXQotKyAgcmVxdWlyZXMgPSBbInNldHVw dG9vbHMiLCAidmVyc2lvbmVlclt0b21sXSJdCi0rICBidWlsZC1iYWNrZW5kID0gInNldHVwdG9v bHMuYnVpbGRfbWV0YSIKLSsgIGBgYAotKyogcnVuIGB2ZXJzaW9uZWVyIGluc3RhbGwgLS1uby12 ZW5kb3JgIGluIHlvdXIgc291cmNlIHRyZWUsIGNvbW1pdCB0aGUgcmVzdWx0cwotKyogdmVyaWZ5 IHZlcnNpb24gaW5mb3JtYXRpb24gd2l0aCBgcHl0aG9uIHNldHVwLnB5IHZlcnNpb25gCi0gCi0g IyMgVmVyc2lvbiBJZGVudGlmaWVycwotIAotQEAgLTIzMSw5ICsyNTksMTAgQEAgcmVzb2x2ZSBp dC4KLSBUbyB1cGdyYWRlIHlvdXIgcHJvamVjdCB0byBhIG5ldyByZWxlYXNlIG9mIFZlcnNpb25l ZXIsIGRvIHRoZSBmb2xsb3dpbmc6Ci0gCi0gKiBpbnN0YWxsIHRoZSBuZXcgVmVyc2lvbmVlciAo YHBpcCBpbnN0YWxsIC1VIHZlcnNpb25lZXJgIG9yIGVxdWl2YWxlbnQpCi0tKiBlZGl0IGBzZXR1 cC5jZmdgLCBpZiBuZWNlc3NhcnksIHRvIGluY2x1ZGUgYW55IG5ldyBjb25maWd1cmF0aW9uIHNl dHRpbmdzCi0tICBpbmRpY2F0ZWQgYnkgdGhlIHJlbGVhc2Ugbm90ZXMuIFNlZSBbVVBHUkFESU5H XSguL1VQR1JBRElORy5tZCkgZm9yIGRldGFpbHMuCi0tKiByZS1ydW4gYHZlcnNpb25lZXIgaW5z dGFsbGAgaW4geW91ciBzb3VyY2UgdHJlZSwgdG8gcmVwbGFjZQotKyogZWRpdCBgc2V0dXAuY2Zn YCBhbmQgYHB5cHJvamVjdC50b21sYCwgaWYgbmVjZXNzYXJ5LAotKyAgdG8gaW5jbHVkZSBhbnkg bmV3IGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgaW5kaWNhdGVkIGJ5IHRoZSByZWxlYXNlIG5vdGVz LgotKyAgU2VlIFtVUEdSQURJTkddKC4vVVBHUkFESU5HLm1kKSBmb3IgZGV0YWlscy4KLSsqIHJl LXJ1biBgdmVyc2lvbmVlciBpbnN0YWxsIC0tW25vLV12ZW5kb3JgIGluIHlvdXIgc291cmNlIHRy ZWUsIHRvIHJlcGxhY2UKLSAgIGBTUkMvX3ZlcnNpb24ucHlgCi0gKiBjb21taXQgYW55IGNoYW5n ZWQgZmlsZXMKLSAKLUBAIC0yNjMsOSArMjkyLDggQEAgbnVtYmVyIG9mIGludGVybWVkaWF0ZSBz Y3JpcHRzLgotIAotIFRvIG1ha2UgVmVyc2lvbmVlciBlYXNpZXIgdG8gZW1iZWQsIGFsbCBpdHMg Y29kZSBpcyBkZWRpY2F0ZWQgdG8gdGhlIHB1YmxpYwotIGRvbWFpbi4gVGhlIGBfdmVyc2lvbi5w eWAgdGhhdCBpdCBjcmVhdGVzIGlzIGFsc28gaW4gdGhlIHB1YmxpYyBkb21haW4uCi0tU3BlY2lm aWNhbGx5LCBib3RoIGFyZSByZWxlYXNlZCB1bmRlciB0aGUgQ3JlYXRpdmUgQ29tbW9ucyAiUHVi bGljIERvbWFpbgotLURlZGljYXRpb24iIGxpY2Vuc2UgKENDMC0xLjApLCBhcyBkZXNjcmliZWQg aW4KLS1odHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLyAu Ci0rU3BlY2lmaWNhbGx5LCBib3RoIGFyZSByZWxlYXNlZCB1bmRlciB0aGUgIlVubGljZW5zZSIs IGFzIGRlc2NyaWJlZCBpbgotK2h0dHBzOi8vdW5saWNlbnNlLm9yZy8uCi0gCi0gW3B5cGktaW1h Z2VdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvdi92ZXJzaW9uZWVyLnN2ZwotIFtweXBp LXVybF06IGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvdmVyc2lvbmVlci8KLUBAIC0yODcs MTQgKzMxNSwzNCBAQCBpbXBvcnQgb3MKLSBpbXBvcnQgcmUKLSBpbXBvcnQgc3VicHJvY2Vzcwot IGltcG9ydCBzeXMKLS1mcm9tIHR5cGluZyBpbXBvcnQgQ2FsbGFibGUsIERpY3QKLStmcm9tIHBh dGhsaWIgaW1wb3J0IFBhdGgKLStmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDYWxsYWJsZSwgY2Fz dCwgRGljdCwgTGlzdCwgT3B0aW9uYWwsIFR1cGxlLCBVbmlvbgotK2Zyb20gdHlwaW5nIGltcG9y dCBOb1JldHVybgotK2ltcG9ydCBmdW5jdG9vbHMKLSsKLStoYXZlX3RvbWxsaWIgPSBUcnVlCi0r aWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMTEpOgotKyAgICBpbXBvcnQgdG9tbGxpYgotK2Vs c2U6Ci0rICAgIHRyeToKLSsgICAgICAgIGltcG9ydCB0b21saSBhcyB0b21sbGliCi0rICAgIGV4 Y2VwdCBJbXBvcnRFcnJvcjoKLSsgICAgICAgIGhhdmVfdG9tbGxpYiA9IEZhbHNlCi0gCi0gCi0g Y2xhc3MgVmVyc2lvbmVlckNvbmZpZzoKLSAgICAgIiIiQ29udGFpbmVyIGZvciBWZXJzaW9uZWVy IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy4iIiIKLSAKLSsgICAgVkNTOiBzdHIKLSsgICAgc3R5 bGU6IHN0cgotKyAgICB0YWdfcHJlZml4OiBzdHIKLSsgICAgdmVyc2lvbmZpbGVfc291cmNlOiBz dHIKLSsgICAgdmVyc2lvbmZpbGVfYnVpbGQ6IE9wdGlvbmFsW3N0cl0KLSsgICAgcGFyZW50ZGly X3ByZWZpeDogT3B0aW9uYWxbc3RyXQotKyAgICB2ZXJib3NlOiBPcHRpb25hbFtib29sXQotKwot IAotLWRlZiBnZXRfcm9vdCgpOgotK2RlZiBnZXRfcm9vdCgpIC0+IHN0cjoKLSAgICAgIiIiR2V0 IHRoZSBwcm9qZWN0IHJvb3QgZGlyZWN0b3J5LgotIAotICAgICBXZSByZXF1aXJlIHRoYXQgYWxs IGNvbW1hbmRzIGFyZSBydW4gZnJvbSB0aGUgcHJvamVjdCByb290LCBpLmUuIHRoZQotQEAgLTMw MiwxMyArMzUwLDIzIEBAIGRlZiBnZXRfcm9vdCgpOgotICAgICAiIiIKLSAgICAgcm9vdCA9IG9z LnBhdGgucmVhbHBhdGgob3MucGF0aC5hYnNwYXRoKG9zLmdldGN3ZCgpKSkKLSAgICAgc2V0dXBf cHkgPSBvcy5wYXRoLmpvaW4ocm9vdCwgInNldHVwLnB5IikKLSsgICAgcHlwcm9qZWN0X3RvbWwg PSBvcy5wYXRoLmpvaW4ocm9vdCwgInB5cHJvamVjdC50b21sIikKLSAgICAgdmVyc2lvbmVlcl9w eSA9IG9zLnBhdGguam9pbihyb290LCAidmVyc2lvbmVlci5weSIpCi0tICAgIGlmIG5vdCAob3Mu cGF0aC5leGlzdHMoc2V0dXBfcHkpIG9yIG9zLnBhdGguZXhpc3RzKHZlcnNpb25lZXJfcHkpKToK LSsgICAgaWYgbm90ICgKLSsgICAgICAgIG9zLnBhdGguZXhpc3RzKHNldHVwX3B5KQotKyAgICAg ICAgb3Igb3MucGF0aC5leGlzdHMocHlwcm9qZWN0X3RvbWwpCi0rICAgICAgICBvciBvcy5wYXRo LmV4aXN0cyh2ZXJzaW9uZWVyX3B5KQotKyAgICApOgotICAgICAgICAgIyBhbGxvdyAncHl0aG9u IHBhdGgvdG8vc2V0dXAucHkgQ09NTUFORCcKLSAgICAgICAgIHJvb3QgPSBvcy5wYXRoLmRpcm5h bWUob3MucGF0aC5yZWFscGF0aChvcy5wYXRoLmFic3BhdGgoc3lzLmFyZ3ZbMF0pKSkKLSAgICAg ICAgIHNldHVwX3B5ID0gb3MucGF0aC5qb2luKHJvb3QsICJzZXR1cC5weSIpCi0rICAgICAgICBw eXByb2plY3RfdG9tbCA9IG9zLnBhdGguam9pbihyb290LCAicHlwcm9qZWN0LnRvbWwiKQotICAg ICAgICAgdmVyc2lvbmVlcl9weSA9IG9zLnBhdGguam9pbihyb290LCAidmVyc2lvbmVlci5weSIp Ci0tICAgIGlmIG5vdCAob3MucGF0aC5leGlzdHMoc2V0dXBfcHkpIG9yIG9zLnBhdGguZXhpc3Rz KHZlcnNpb25lZXJfcHkpKToKLSsgICAgaWYgbm90ICgKLSsgICAgICAgIG9zLnBhdGguZXhpc3Rz KHNldHVwX3B5KQotKyAgICAgICAgb3Igb3MucGF0aC5leGlzdHMocHlwcm9qZWN0X3RvbWwpCi0r ICAgICAgICBvciBvcy5wYXRoLmV4aXN0cyh2ZXJzaW9uZWVyX3B5KQotKyAgICApOgotICAgICAg ICAgZXJyID0gKCJWZXJzaW9uZWVyIHdhcyB1bmFibGUgdG8gcnVuIHRoZSBwcm9qZWN0IHJvb3Qg ZGlyZWN0b3J5LiAiCi0gICAgICAgICAgICAgICAgIlZlcnNpb25lZXIgcmVxdWlyZXMgc2V0dXAu cHkgdG8gYmUgZXhlY3V0ZWQgZnJvbSAiCi0gICAgICAgICAgICAgICAgIml0cyBpbW1lZGlhdGUg ZGlyZWN0b3J5IChsaWtlICdweXRob24gc2V0dXAucHkgQ09NTUFORCcpLCAiCi1AQCAtMzI1LDcg KzM4Myw3IEBAIGRlZiBnZXRfcm9vdCgpOgotICAgICAgICAgbXlfcGF0aCA9IG9zLnBhdGgucmVh bHBhdGgob3MucGF0aC5hYnNwYXRoKF9fZmlsZV9fKSkKLSAgICAgICAgIG1lX2RpciA9IG9zLnBh dGgubm9ybWNhc2Uob3MucGF0aC5zcGxpdGV4dChteV9wYXRoKVswXSkKLSAgICAgICAgIHZzcl9k aXIgPSBvcy5wYXRoLm5vcm1jYXNlKG9zLnBhdGguc3BsaXRleHQodmVyc2lvbmVlcl9weSlbMF0p Ci0tICAgICAgICBpZiBtZV9kaXIgIT0gdnNyX2RpcjoKLSsgICAgICAgIGlmIG1lX2RpciAhPSB2 c3JfZGlyIGFuZCAiVkVSU0lPTkVFUl9QRVA1MTgiIG5vdCBpbiBnbG9iYWxzKCk6Ci0gICAgICAg ICAgICAgcHJpbnQoIldhcm5pbmc6IGJ1aWxkIGluICVzIGlzIHVzaW5nIHZlcnNpb25lZXIucHkg ZnJvbSAlcyIKLSAgICAgICAgICAgICAgICAgICAlIChvcy5wYXRoLmRpcm5hbWUobXlfcGF0aCks IHZlcnNpb25lZXJfcHkpKQotICAgICBleGNlcHQgTmFtZUVycm9yOgotQEAgLTMzMywzMSArMzkx LDUxIEBAIGRlZiBnZXRfcm9vdCgpOgotICAgICByZXR1cm4gcm9vdAotIAotIAotLWRlZiBnZXRf Y29uZmlnX2Zyb21fcm9vdChyb290KToKLStkZWYgZ2V0X2NvbmZpZ19mcm9tX3Jvb3Qocm9vdDog c3RyKSAtPiBWZXJzaW9uZWVyQ29uZmlnOgotICAgICAiIiJSZWFkIHRoZSBwcm9qZWN0IHNldHVw LmNmZyBmaWxlIHRvIGRldGVybWluZSBWZXJzaW9uZWVyIGNvbmZpZy4iIiIKLSAgICAgIyBUaGlz IG1pZ2h0IHJhaXNlIE9TRXJyb3IgKGlmIHNldHVwLmNmZyBpcyBtaXNzaW5nKSwgb3IKLSAgICAg IyBjb25maWdwYXJzZXIuTm9TZWN0aW9uRXJyb3IgKGlmIGl0IGxhY2tzIGEgW3ZlcnNpb25lZXJd IHNlY3Rpb24pLCBvcgotICAgICAjIGNvbmZpZ3BhcnNlci5Ob09wdGlvbkVycm9yIChpZiBpdCBs YWNrcyAiVkNTPSIpLiBTZWUgdGhlIGRvY3N0cmluZyBhdAotICAgICAjIHRoZSB0b3Agb2YgdmVy c2lvbmVlci5weSBmb3IgaW5zdHJ1Y3Rpb25zIG9uIHdyaXRpbmcgeW91ciBzZXR1cC5jZmcgLgot LSAgICBzZXR1cF9jZmcgPSBvcy5wYXRoLmpvaW4ocm9vdCwgInNldHVwLmNmZyIpCi0tICAgIHBh cnNlciA9IGNvbmZpZ3BhcnNlci5Db25maWdQYXJzZXIoKQotLSAgICB3aXRoIG9wZW4oc2V0dXBf Y2ZnLCAiciIpIGFzIGNmZ19maWxlOgotLSAgICAgICAgcGFyc2VyLnJlYWRfZmlsZShjZmdfZmls ZSkKLS0gICAgVkNTID0gcGFyc2VyLmdldCgidmVyc2lvbmVlciIsICJWQ1MiKSAgIyBtYW5kYXRv cnkKLS0KLS0gICAgIyBEaWN0LWxpa2UgaW50ZXJmYWNlIGZvciBub24tbWFuZGF0b3J5IGVudHJp ZXMKLS0gICAgc2VjdGlvbiA9IHBhcnNlclsidmVyc2lvbmVlciJdCi0rICAgIHJvb3RfcHRoID0g UGF0aChyb290KQotKyAgICBweXByb2plY3RfdG9tbCA9IHJvb3RfcHRoIC8gInB5cHJvamVjdC50 b21sIgotKyAgICBzZXR1cF9jZmcgPSByb290X3B0aCAvICJzZXR1cC5jZmciCi0rICAgIHNlY3Rp b246IFVuaW9uW0RpY3Rbc3RyLCBBbnldLCBjb25maWdwYXJzZXIuU2VjdGlvblByb3h5LCBOb25l XSA9IE5vbmUKLSsgICAgaWYgcHlwcm9qZWN0X3RvbWwuZXhpc3RzKCkgYW5kIGhhdmVfdG9tbGxp YjoKLSsgICAgICAgIHRyeToKLSsgICAgICAgICAgICB3aXRoIG9wZW4ocHlwcm9qZWN0X3RvbWws ICdyYicpIGFzIGZvYmo6Ci0rICAgICAgICAgICAgICAgIHBwID0gdG9tbGxpYi5sb2FkKGZvYmop Ci0rICAgICAgICAgICAgc2VjdGlvbiA9IHBwWyd0b29sJ11bJ3ZlcnNpb25lZXInXQotKyAgICAg ICAgZXhjZXB0ICh0b21sbGliLlRPTUxEZWNvZGVFcnJvciwgS2V5RXJyb3IpIGFzIGU6Ci0rICAg ICAgICAgICAgcHJpbnQoZiJGYWlsZWQgdG8gbG9hZCBjb25maWcgZnJvbSB7cHlwcm9qZWN0X3Rv bWx9OiB7ZX0iKQotKyAgICAgICAgICAgIHByaW50KCJUcnkgdG8gbG9hZCBpdCBmcm9tIHNldHVw LmNmZyIpCi0rICAgIGlmIG5vdCBzZWN0aW9uOgotKyAgICAgICAgcGFyc2VyID0gY29uZmlncGFy c2VyLkNvbmZpZ1BhcnNlcigpCi0rICAgICAgICB3aXRoIG9wZW4oc2V0dXBfY2ZnKSBhcyBjZmdf ZmlsZToKLSsgICAgICAgICAgICBwYXJzZXIucmVhZF9maWxlKGNmZ19maWxlKQotKyAgICAgICAg cGFyc2VyLmdldCgidmVyc2lvbmVlciIsICJWQ1MiKSAgIyByYWlzZSBlcnJvciBpZiBtaXNzaW5n Ci0rCi0rICAgICAgICBzZWN0aW9uID0gcGFyc2VyWyJ2ZXJzaW9uZWVyIl0KLSsKLSsgICAgIyBg Y2FzdGBgIHJlYWxseSBzaG91bGRuJ3QgYmUgdXNlZCwgYnV0IGl0cyBzaW1wbGVzdCBmb3IgdGhl Ci0rICAgICMgY29tbW9uIFZlcnNpb25lZXJDb25maWcgdXNlcnMgYXQgdGhlIG1vbWVudC4gV2Ug dmVyaWZ5IGFnYWluc3QKLSsgICAgIyBgTm9uZWAgdmFsdWVzIGVsc2V3aGVyZSB3aGVyZSBpdCBt YXR0ZXJzCi0gCi0gICAgIGNmZyA9IFZlcnNpb25lZXJDb25maWcoKQotLSAgICBjZmcuVkNTID0g VkNTCi0rICAgIGNmZy5WQ1MgPSBzZWN0aW9uWydWQ1MnXQotICAgICBjZmcuc3R5bGUgPSBzZWN0 aW9uLmdldCgic3R5bGUiLCAiIikKLS0gICAgY2ZnLnZlcnNpb25maWxlX3NvdXJjZSA9IHNlY3Rp b24uZ2V0KCJ2ZXJzaW9uZmlsZV9zb3VyY2UiKQotKyAgICBjZmcudmVyc2lvbmZpbGVfc291cmNl ID0gY2FzdChzdHIsIHNlY3Rpb24uZ2V0KCJ2ZXJzaW9uZmlsZV9zb3VyY2UiKSkKLSAgICAgY2Zn LnZlcnNpb25maWxlX2J1aWxkID0gc2VjdGlvbi5nZXQoInZlcnNpb25maWxlX2J1aWxkIikKLS0g ICAgY2ZnLnRhZ19wcmVmaXggPSBzZWN0aW9uLmdldCgidGFnX3ByZWZpeCIpCi0tICAgIGlmIGNm Zy50YWdfcHJlZml4IGluICgiJyciLCAnIiInKToKLSsgICAgY2ZnLnRhZ19wcmVmaXggPSBjYXN0 KHN0ciwgc2VjdGlvbi5nZXQoInRhZ19wcmVmaXgiKSkKLSsgICAgaWYgY2ZnLnRhZ19wcmVmaXgg aW4gKCInJyIsICciIicsIE5vbmUpOgotICAgICAgICAgY2ZnLnRhZ19wcmVmaXggPSAiIgotICAg ICBjZmcucGFyZW50ZGlyX3ByZWZpeCA9IHNlY3Rpb24uZ2V0KCJwYXJlbnRkaXJfcHJlZml4IikK LS0gICAgY2ZnLnZlcmJvc2UgPSBzZWN0aW9uLmdldCgidmVyYm9zZSIpCi0rICAgIGlmIGlzaW5z dGFuY2Uoc2VjdGlvbiwgY29uZmlncGFyc2VyLlNlY3Rpb25Qcm94eSk6Ci0rICAgICAgICAjIE1h a2Ugc3VyZSBjb25maWdwYXJzZXIgdHJhbnNsYXRlcyB0byBib29sCi0rICAgICAgICBjZmcudmVy Ym9zZSA9IHNlY3Rpb24uZ2V0Ym9vbGVhbigidmVyYm9zZSIpCi0rICAgIGVsc2U6Ci0rICAgICAg ICBjZmcudmVyYm9zZSA9IHNlY3Rpb24uZ2V0KCJ2ZXJib3NlIikKLSsKLSAgICAgcmV0dXJuIGNm ZwotIAotIAotQEAgLTM3MCwyMCArNDQ4LDM0IEBAIExPTkdfVkVSU0lPTl9QWTogRGljdFtzdHIs IHN0cl0gPSB7fQotIEhBTkRMRVJTOiBEaWN0W3N0ciwgRGljdFtzdHIsIENhbGxhYmxlXV0gPSB7 fQotIAotIAotLWRlZiByZWdpc3Rlcl92Y3NfaGFuZGxlcih2Y3MsIG1ldGhvZCk6ICAjIGRlY29y YXRvcgotK2RlZiByZWdpc3Rlcl92Y3NfaGFuZGxlcih2Y3M6IHN0ciwgbWV0aG9kOiBzdHIpIC0+ IENhbGxhYmxlOiAgIyBkZWNvcmF0b3IKLSAgICAgIiIiQ3JlYXRlIGRlY29yYXRvciB0byBtYXJr IGEgbWV0aG9kIGFzIHRoZSBoYW5kbGVyIG9mIGEgVkNTLiIiIgotLSAgICBkZWYgZGVjb3JhdGUo Zik6Ci0rICAgIGRlZiBkZWNvcmF0ZShmOiBDYWxsYWJsZSkgLT4gQ2FsbGFibGU6Ci0gICAgICAg ICAiIiJTdG9yZSBmIGluIEhBTkRMRVJTW3Zjc11bbWV0aG9kXS4iIiIKLSAgICAgICAgIEhBTkRM RVJTLnNldGRlZmF1bHQodmNzLCB7fSlbbWV0aG9kXSA9IGYKLSAgICAgICAgIHJldHVybiBmCi0g ICAgIHJldHVybiBkZWNvcmF0ZQotIAotIAotLWRlZiBydW5fY29tbWFuZChjb21tYW5kcywgYXJn cywgY3dkPU5vbmUsIHZlcmJvc2U9RmFsc2UsIGhpZGVfc3RkZXJyPUZhbHNlLAotLSAgICAgICAg ICAgICAgICBlbnY9Tm9uZSk6Ci0rZGVmIHJ1bl9jb21tYW5kKAotKyAgICBjb21tYW5kczogTGlz dFtzdHJdLAotKyAgICBhcmdzOiBMaXN0W3N0cl0sCi0rICAgIGN3ZDogT3B0aW9uYWxbc3RyXSA9 IE5vbmUsCi0rICAgIHZlcmJvc2U6IGJvb2wgPSBGYWxzZSwKLSsgICAgaGlkZV9zdGRlcnI6IGJv b2wgPSBGYWxzZSwKLSsgICAgZW52OiBPcHRpb25hbFtEaWN0W3N0ciwgc3RyXV0gPSBOb25lLAot KykgLT4gVHVwbGVbT3B0aW9uYWxbc3RyXSwgT3B0aW9uYWxbaW50XV06Ci0gICAgICIiIkNhbGwg dGhlIGdpdmVuIGNvbW1hbmQocykuIiIiCi0gICAgIGFzc2VydCBpc2luc3RhbmNlKGNvbW1hbmRz LCBsaXN0KQotICAgICBwcm9jZXNzID0gTm9uZQotKwotKyAgICBwb3Blbl9rd2FyZ3M6IERpY3Rb c3RyLCBBbnldID0ge30KLSsgICAgaWYgc3lzLnBsYXRmb3JtID09ICJ3aW4zMiI6Ci0rICAgICAg ICAjIFRoaXMgaGlkZXMgdGhlIGNvbnNvbGUgd2luZG93IGlmIHB5dGhvbncuZXhlIGlzIHVzZWQK LSsgICAgICAgIHN0YXJ0dXBpbmZvID0gc3VicHJvY2Vzcy5TVEFSVFVQSU5GTygpCi0rICAgICAg ICBzdGFydHVwaW5mby5kd0ZsYWdzIHw9IHN1YnByb2Nlc3MuU1RBUlRGX1VTRVNIT1dXSU5ET1cK LSsgICAgICAgIHBvcGVuX2t3YXJnc1sic3RhcnR1cGluZm8iXSA9IHN0YXJ0dXBpbmZvCi0rCi0g ICAgIGZvciBjb21tYW5kIGluIGNvbW1hbmRzOgotICAgICAgICAgdHJ5OgotICAgICAgICAgICAg IGRpc3BjbWQgPSBzdHIoW2NvbW1hbmRdICsgYXJncykKLUBAIC0zOTEsMTAgKzQ4Myw5IEBAIGRl ZiBydW5fY29tbWFuZChjb21tYW5kcywgYXJncywgY3dkPU5vbmUsIHZlcmJvc2U9RmFsc2UsIGhp ZGVfc3RkZXJyPUZhbHNlLAotICAgICAgICAgICAgIHByb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVu KFtjb21tYW5kXSArIGFyZ3MsIGN3ZD1jd2QsIGVudj1lbnYsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRlcnI9KHN1YnByb2Nlc3MuUElQRSBpZiBo aWRlX3N0ZGVycgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZWxzZSBOb25lKSkKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGVsc2UgTm9uZSksICoqcG9wZW5fa3dhcmdzKQotICAgICAgICAgICAgIGJyZWFrCi0t ICAgICAgICBleGNlcHQgT1NFcnJvcjoKLS0gICAgICAgICAgICBlID0gc3lzLmV4Y19pbmZvKClb MV0KLSsgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6Ci0gICAgICAgICAgICAgaWYgZS5lcnJu byA9PSBlcnJuby5FTk9FTlQ6Ci0gICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAg ICAgaWYgdmVyYm9zZToKLUBAIC00MjEsOCArNTEyLDkgQEAgTE9OR19WRVJTSU9OX1BZWydnaXQn XSA9IHInJycKLSAjIGRpcmVjdG9yaWVzIChwcm9kdWNlZCBieSBzZXR1cC5weSBidWlsZCkgd2ls bCBjb250YWluIGEgbXVjaCBzaG9ydGVyIGZpbGUKLSAjIHRoYXQganVzdCBjb250YWlucyB0aGUg Y29tcHV0ZWQgdmVyc2lvbiBudW1iZXIuCi0gCi0tIyBUaGlzIGZpbGUgaXMgcmVsZWFzZWQgaW50 byB0aGUgcHVibGljIGRvbWFpbi4gR2VuZXJhdGVkIGJ5Ci0tIyB2ZXJzaW9uZWVyLTAuMjEgKGh0 dHBzOi8vZ2l0aHViLmNvbS9weXRob24tdmVyc2lvbmVlci9weXRob24tdmVyc2lvbmVlcikKLSsj IFRoaXMgZmlsZSBpcyByZWxlYXNlZCBpbnRvIHRoZSBwdWJsaWMgZG9tYWluLgotKyMgR2VuZXJh dGVkIGJ5IHZlcnNpb25lZXItMC4yOQotKyMgaHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi12ZXJz aW9uZWVyL3B5dGhvbi12ZXJzaW9uZWVyCi0gCi0gIiIiR2l0IGltcGxlbWVudGF0aW9uIG9mIF92 ZXJzaW9uLnB5LiIiIgotIAotQEAgLTQzMSwxMCArNTIzLDExIEBAIGltcG9ydCBvcwotIGltcG9y dCByZQotIGltcG9ydCBzdWJwcm9jZXNzCi0gaW1wb3J0IHN5cwotLWZyb20gdHlwaW5nIGltcG9y dCBDYWxsYWJsZSwgRGljdAotK2Zyb20gdHlwaW5nIGltcG9ydCBBbnksIENhbGxhYmxlLCBEaWN0 LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUKLStpbXBvcnQgZnVuY3Rvb2xzCi0gCi0gCi0tZGVmIGdl dF9rZXl3b3JkcygpOgotK2RlZiBnZXRfa2V5d29yZHMoKSAtPiBEaWN0W3N0ciwgc3RyXToKLSAg ICAgIiIiR2V0IHRoZSBrZXl3b3JkcyBuZWVkZWQgdG8gbG9vayB1cCB0aGUgdmVyc2lvbiBpbmZv cm1hdGlvbi4iIiIKLSAgICAgIyB0aGVzZSBzdHJpbmdzIHdpbGwgYmUgcmVwbGFjZWQgYnkgZ2l0 IGR1cmluZyBnaXQtYXJjaGl2ZS4KLSAgICAgIyBzZXR1cC5weS92ZXJzaW9uZWVyLnB5IHdpbGwg Z3JlcCBmb3IgdGhlIHZhcmlhYmxlIG5hbWVzLCBzbyB0aGV5IG11c3QKLUBAIC00NTAsOCArNTQz LDE1IEBAIGRlZiBnZXRfa2V5d29yZHMoKToKLSBjbGFzcyBWZXJzaW9uZWVyQ29uZmlnOgotICAg ICAiIiJDb250YWluZXIgZm9yIFZlcnNpb25lZXIgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzLiIi IgotIAotKyAgICBWQ1M6IHN0cgotKyAgICBzdHlsZTogc3RyCi0rICAgIHRhZ19wcmVmaXg6IHN0 cgotKyAgICBwYXJlbnRkaXJfcHJlZml4OiBzdHIKLSsgICAgdmVyc2lvbmZpbGVfc291cmNlOiBz dHIKLSsgICAgdmVyYm9zZTogYm9vbAotKwotIAotLWRlZiBnZXRfY29uZmlnKCk6Ci0rZGVmIGdl dF9jb25maWcoKSAtPiBWZXJzaW9uZWVyQ29uZmlnOgotICAgICAiIiJDcmVhdGUsIHBvcHVsYXRl IGFuZCByZXR1cm4gdGhlIFZlcnNpb25lZXJDb25maWcoKSBvYmplY3QuIiIiCi0gICAgICMgdGhl c2Ugc3RyaW5ncyBhcmUgZmlsbGVkIGluIHdoZW4gJ3NldHVwLnB5IHZlcnNpb25lZXInIGNyZWF0 ZXMKLSAgICAgIyBfdmVyc2lvbi5weQotQEAgLTQ3Myw5ICs1NzMsOSBAQCBMT05HX1ZFUlNJT05f UFk6IERpY3Rbc3RyLCBzdHJdID0ge30KLSBIQU5ETEVSUzogRGljdFtzdHIsIERpY3Rbc3RyLCBD YWxsYWJsZV1dID0ge30KLSAKLSAKLS1kZWYgcmVnaXN0ZXJfdmNzX2hhbmRsZXIodmNzLCBtZXRo b2QpOiAgIyBkZWNvcmF0b3IKLStkZWYgcmVnaXN0ZXJfdmNzX2hhbmRsZXIodmNzOiBzdHIsIG1l dGhvZDogc3RyKSAtPiBDYWxsYWJsZTogICMgZGVjb3JhdG9yCi0gICAgICIiIkNyZWF0ZSBkZWNv cmF0b3IgdG8gbWFyayBhIG1ldGhvZCBhcyB0aGUgaGFuZGxlciBvZiBhIFZDUy4iIiIKLS0gICAg ZGVmIGRlY29yYXRlKGYpOgotKyAgICBkZWYgZGVjb3JhdGUoZjogQ2FsbGFibGUpIC0+IENhbGxh YmxlOgotICAgICAgICAgIiIiU3RvcmUgZiBpbiBIQU5ETEVSU1t2Y3NdW21ldGhvZF0uIiIiCi0g ICAgICAgICBpZiB2Y3Mgbm90IGluIEhBTkRMRVJTOgotICAgICAgICAgICAgIEhBTkRMRVJTW3Zj c10gPSB7fQotQEAgLTQ4NCwxMSArNTg0LDI1IEBAIGRlZiByZWdpc3Rlcl92Y3NfaGFuZGxlcih2 Y3MsIG1ldGhvZCk6ICAjIGRlY29yYXRvcgotICAgICByZXR1cm4gZGVjb3JhdGUKLSAKLSAKLS1k ZWYgcnVuX2NvbW1hbmQoY29tbWFuZHMsIGFyZ3MsIGN3ZD1Ob25lLCB2ZXJib3NlPUZhbHNlLCBo aWRlX3N0ZGVycj1GYWxzZSwKLS0gICAgICAgICAgICAgICAgZW52PU5vbmUpOgotK2RlZiBydW5f Y29tbWFuZCgKLSsgICAgY29tbWFuZHM6IExpc3Rbc3RyXSwKLSsgICAgYXJnczogTGlzdFtzdHJd LAotKyAgICBjd2Q6IE9wdGlvbmFsW3N0cl0gPSBOb25lLAotKyAgICB2ZXJib3NlOiBib29sID0g RmFsc2UsCi0rICAgIGhpZGVfc3RkZXJyOiBib29sID0gRmFsc2UsCi0rICAgIGVudjogT3B0aW9u YWxbRGljdFtzdHIsIHN0cl1dID0gTm9uZSwKLSspIC0+IFR1cGxlW09wdGlvbmFsW3N0cl0sIE9w dGlvbmFsW2ludF1dOgotICAgICAiIiJDYWxsIHRoZSBnaXZlbiBjb21tYW5kKHMpLiIiIgotICAg ICBhc3NlcnQgaXNpbnN0YW5jZShjb21tYW5kcywgbGlzdCkKLSAgICAgcHJvY2VzcyA9IE5vbmUK LSsKLSsgICAgcG9wZW5fa3dhcmdzOiBEaWN0W3N0ciwgQW55XSA9IHt9Ci0rICAgIGlmIHN5cy5w bGF0Zm9ybSA9PSAid2luMzIiOgotKyAgICAgICAgIyBUaGlzIGhpZGVzIHRoZSBjb25zb2xlIHdp bmRvdyBpZiBweXRob253LmV4ZSBpcyB1c2VkCi0rICAgICAgICBzdGFydHVwaW5mbyA9IHN1YnBy b2Nlc3MuU1RBUlRVUElORk8oKQotKyAgICAgICAgc3RhcnR1cGluZm8uZHdGbGFncyB8PSBzdWJw cm9jZXNzLlNUQVJURl9VU0VTSE9XV0lORE9XCi0rICAgICAgICBwb3Blbl9rd2FyZ3NbInN0YXJ0 dXBpbmZvIl0gPSBzdGFydHVwaW5mbwotKwotICAgICBmb3IgY29tbWFuZCBpbiBjb21tYW5kczoK LSAgICAgICAgIHRyeToKLSAgICAgICAgICAgICBkaXNwY21kID0gc3RyKFtjb21tYW5kXSArIGFy Z3MpCi1AQCAtNDk2LDEwICs2MTAsOSBAQCBkZWYgcnVuX2NvbW1hbmQoY29tbWFuZHMsIGFyZ3Ms IGN3ZD1Ob25lLCB2ZXJib3NlPUZhbHNlLCBoaWRlX3N0ZGVycj1GYWxzZSwKLSAgICAgICAgICAg ICBwcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbihbY29tbWFuZF0gKyBhcmdzLCBjd2Q9Y3dkLCBl bnY9ZW52LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD1z dWJwcm9jZXNzLlBJUEUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RkZXJyPShzdWJwcm9jZXNzLlBJUEUgaWYgaGlkZV9zdGRlcnIKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgTm9uZSkpCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIE5vbmUpLCAqKnBvcGVuX2t3 YXJncykKLSAgICAgICAgICAgICBicmVhawotLSAgICAgICAgZXhjZXB0IE9TRXJyb3I6Ci0tICAg ICAgICAgICAgZSA9IHN5cy5leGNfaW5mbygpWzFdCi0rICAgICAgICBleGNlcHQgT1NFcnJvciBh cyBlOgotICAgICAgICAgICAgIGlmIGUuZXJybm8gPT0gZXJybm8uRU5PRU5UOgotICAgICAgICAg ICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgIGlmIHZlcmJvc2U6Ci1AQCAtNTE5LDcgKzYz MiwxMSBAQCBkZWYgcnVuX2NvbW1hbmQoY29tbWFuZHMsIGFyZ3MsIGN3ZD1Ob25lLCB2ZXJib3Nl PUZhbHNlLCBoaWRlX3N0ZGVycj1GYWxzZSwKLSAgICAgcmV0dXJuIHN0ZG91dCwgcHJvY2Vzcy5y ZXR1cm5jb2RlCi0gCi0gCi0tZGVmIHZlcnNpb25zX2Zyb21fcGFyZW50ZGlyKHBhcmVudGRpcl9w cmVmaXgsIHJvb3QsIHZlcmJvc2UpOgotK2RlZiB2ZXJzaW9uc19mcm9tX3BhcmVudGRpcigKLSsg ICAgcGFyZW50ZGlyX3ByZWZpeDogc3RyLAotKyAgICByb290OiBzdHIsCi0rICAgIHZlcmJvc2U6 IGJvb2wsCi0rKSAtPiBEaWN0W3N0ciwgQW55XToKLSAgICAgIiIiVHJ5IHRvIGRldGVybWluZSB0 aGUgdmVyc2lvbiBmcm9tIHRoZSBwYXJlbnQgZGlyZWN0b3J5IG5hbWUuCi0gCi0gICAgIFNvdXJj ZSB0YXJiYWxscyBjb252ZW50aW9uYWxseSB1bnBhY2sgaW50byBhIGRpcmVjdG9yeSB0aGF0IGlu Y2x1ZGVzIGJvdGgKLUBAIC01NDQsMTMgKzY2MSwxMyBAQCBkZWYgdmVyc2lvbnNfZnJvbV9wYXJl bnRkaXIocGFyZW50ZGlyX3ByZWZpeCwgcm9vdCwgdmVyYm9zZSk6Ci0gCi0gCi0gQHJlZ2lzdGVy X3Zjc19oYW5kbGVyKCJnaXQiLCAiZ2V0X2tleXdvcmRzIikKLS1kZWYgZ2l0X2dldF9rZXl3b3Jk cyh2ZXJzaW9uZmlsZV9hYnMpOgotK2RlZiBnaXRfZ2V0X2tleXdvcmRzKHZlcnNpb25maWxlX2Fi czogc3RyKSAtPiBEaWN0W3N0ciwgc3RyXToKLSAgICAgIiIiRXh0cmFjdCB2ZXJzaW9uIGluZm9y bWF0aW9uIGZyb20gdGhlIGdpdmVuIGZpbGUuIiIiCi0gICAgICMgdGhlIGNvZGUgZW1iZWRkZWQg aW4gX3ZlcnNpb24ucHkgY2FuIGp1c3QgZmV0Y2ggdGhlIHZhbHVlIG9mIHRoZXNlCi0gICAgICMg a2V5d29yZHMuIFdoZW4gdXNlZCBmcm9tIHNldHVwLnB5LCB3ZSBkb24ndCB3YW50IHRvIGltcG9y dCBfdmVyc2lvbi5weSwKLSAgICAgIyBzbyB3ZSBkbyBpdCB3aXRoIGEgcmVnZXhwIGluc3RlYWQu IFRoaXMgZnVuY3Rpb24gaXMgbm90IHVzZWQgZnJvbQotICAgICAjIF92ZXJzaW9uLnB5LgotLSAg ICBrZXl3b3JkcyA9IHt9Ci0rICAgIGtleXdvcmRzOiBEaWN0W3N0ciwgc3RyXSA9IHt9Ci0gICAg IHRyeToKLSAgICAgICAgIHdpdGggb3Blbih2ZXJzaW9uZmlsZV9hYnMsICJyIikgYXMgZm9iajoK LSAgICAgICAgICAgICBmb3IgbGluZSBpbiBmb2JqOgotQEAgLTU3Miw3ICs2ODksMTEgQEAgZGVm IGdpdF9nZXRfa2V5d29yZHModmVyc2lvbmZpbGVfYWJzKToKLSAKLSAKLSBAcmVnaXN0ZXJfdmNz X2hhbmRsZXIoImdpdCIsICJrZXl3b3JkcyIpCi0tZGVmIGdpdF92ZXJzaW9uc19mcm9tX2tleXdv cmRzKGtleXdvcmRzLCB0YWdfcHJlZml4LCB2ZXJib3NlKToKLStkZWYgZ2l0X3ZlcnNpb25zX2Zy b21fa2V5d29yZHMoCi0rICAgIGtleXdvcmRzOiBEaWN0W3N0ciwgc3RyXSwKLSsgICAgdGFnX3By ZWZpeDogc3RyLAotKyAgICB2ZXJib3NlOiBib29sLAotKykgLT4gRGljdFtzdHIsIEFueV06Ci0g ICAgICIiIkdldCB2ZXJzaW9uIGluZm9ybWF0aW9uIGZyb20gZ2l0IGtleXdvcmRzLiIiIgotICAg ICBpZiAicmVmbmFtZXMiIG5vdCBpbiBrZXl3b3JkczoKLSAgICAgICAgIHJhaXNlIE5vdFRoaXNN ZXRob2QoIlNob3J0IHZlcnNpb24gZmlsZSBmb3VuZCIpCi1AQCAtNjM2LDcgKzc1NywxMiBAQCBk ZWYgZ2l0X3ZlcnNpb25zX2Zyb21fa2V5d29yZHMoa2V5d29yZHMsIHRhZ19wcmVmaXgsIHZlcmJv c2UpOgotIAotIAotIEByZWdpc3Rlcl92Y3NfaGFuZGxlcigiZ2l0IiwgInBpZWNlc19mcm9tX3Zj cyIpCi0tZGVmIGdpdF9waWVjZXNfZnJvbV92Y3ModGFnX3ByZWZpeCwgcm9vdCwgdmVyYm9zZSwg cnVubmVyPXJ1bl9jb21tYW5kKToKLStkZWYgZ2l0X3BpZWNlc19mcm9tX3ZjcygKLSsgICAgdGFn X3ByZWZpeDogc3RyLAotKyAgICByb290OiBzdHIsCi0rICAgIHZlcmJvc2U6IGJvb2wsCi0rICAg IHJ1bm5lcjogQ2FsbGFibGUgPSBydW5fY29tbWFuZAotKykgLT4gRGljdFtzdHIsIEFueV06Ci0g ICAgICIiIkdldCB2ZXJzaW9uIGZyb20gJ2dpdCBkZXNjcmliZScgaW4gdGhlIHJvb3Qgb2YgdGhl IHNvdXJjZSB0cmVlLgotIAotICAgICBUaGlzIG9ubHkgZ2V0cyBjYWxsZWQgaWYgdGhlIGdpdC1h cmNoaXZlICdzdWJzdCcga2V5d29yZHMgd2VyZSAqbm90KgotQEAgLTY0NCwxMyArNzcwLDE4IEBA IGRlZiBnaXRfcGllY2VzX2Zyb21fdmNzKHRhZ19wcmVmaXgsIHJvb3QsIHZlcmJvc2UsIHJ1bm5l cj1ydW5fY29tbWFuZCk6Ci0gICAgIHZlcnNpb24gc3RyaW5nLCBtZWFuaW5nIHdlJ3JlIGluc2lk ZSBhIGNoZWNrZWQgb3V0IHNvdXJjZSB0cmVlLgotICAgICAiIiIKLSAgICAgR0lUUyA9IFsiZ2l0 Il0KLS0gICAgVEFHX1BSRUZJWF9SRUdFWCA9ICIqIgotICAgICBpZiBzeXMucGxhdGZvcm0gPT0g IndpbjMyIjoKLSAgICAgICAgIEdJVFMgPSBbImdpdC5jbWQiLCAiZ2l0LmV4ZSJdCi0tICAgICAg ICBUQUdfUFJFRklYX1JFR0VYID0gciJcKiIKLSsKLSsgICAgIyBHSVRfRElSIGNhbiBpbnRlcmZl cmUgd2l0aCBjb3JyZWN0IG9wZXJhdGlvbiBvZiBWZXJzaW9uZWVyLgotKyAgICAjIEl0IG1heSBi ZSBpbnRlbmRlZCB0byBiZSBwYXNzZWQgdG8gdGhlIFZlcnNpb25lZXItdmVyc2lvbmVkIHByb2pl Y3QsCi0rICAgICMgYnV0IHRoYXQgc2hvdWxkIG5vdCBjaGFuZ2Ugd2hlcmUgd2UgZ2V0IG91ciB2 ZXJzaW9uIGZyb20uCi0rICAgIGVudiA9IG9zLmVudmlyb24uY29weSgpCi0rICAgIGVudi5wb3Ao IkdJVF9ESVIiLCBOb25lKQotKyAgICBydW5uZXIgPSBmdW5jdG9vbHMucGFydGlhbChydW5uZXIs IGVudj1lbnYpCi0gCi0gICAgIF8sIHJjID0gcnVubmVyKEdJVFMsIFsicmV2LXBhcnNlIiwgIi0t Z2l0LWRpciJdLCBjd2Q9cm9vdCwKLS0gICAgICAgICAgICAgICAgICAgaGlkZV9zdGRlcnI9VHJ1 ZSkKLSsgICAgICAgICAgICAgICAgICAgaGlkZV9zdGRlcnI9bm90IHZlcmJvc2UpCi0gICAgIGlm IHJjICE9IDA6Ci0gICAgICAgICBpZiB2ZXJib3NlOgotICAgICAgICAgICAgIHByaW50KCJEaXJl Y3RvcnkgJSVzIG5vdCB1bmRlciBnaXQgY29udHJvbCIgJSUgcm9vdCkKLUBAIC02NTgsMTEgKzc4 OSwxMCBAQCBkZWYgZ2l0X3BpZWNlc19mcm9tX3Zjcyh0YWdfcHJlZml4LCByb290LCB2ZXJib3Nl LCBydW5uZXI9cnVuX2NvbW1hbmQpOgotIAotICAgICAjIGlmIHRoZXJlIGlzIGEgdGFnIG1hdGNo aW5nIHRhZ19wcmVmaXgsIHRoaXMgeWllbGRzIFRBRy1OVU0tZ0hFWFstZGlydHldCi0gICAgICMg aWYgdGhlcmUgaXNuJ3Qgb25lLCB0aGlzIHlpZWxkcyBIRVhbLWRpcnR5XSAobm8gTlVNKQotLSAg ICBkZXNjcmliZV9vdXQsIHJjID0gcnVubmVyKEdJVFMsIFsiZGVzY3JpYmUiLCAiLS10YWdzIiwg Ii0tZGlydHkiLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1hbHdh eXMiLCAiLS1sb25nIiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0t bWF0Y2giLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJSVzJSVzIiAl JSAodGFnX3ByZWZpeCwgVEFHX1BSRUZJWF9SRUdFWCldLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGN3ZD1yb290KQotKyAgICBkZXNjcmliZV9vdXQsIHJjID0gcnVubmVyKEdJVFMs IFsKLSsgICAgICAgICJkZXNjcmliZSIsICItLXRhZ3MiLCAiLS1kaXJ0eSIsICItLWFsd2F5cyIs ICItLWxvbmciLAotKyAgICAgICAgIi0tbWF0Y2giLCBmInt0YWdfcHJlZml4fVtbOmRpZ2l0Ol1d KiIKLSsgICAgXSwgY3dkPXJvb3QpCi0gICAgICMgLS1sb25nIHdhcyBhZGRlZCBpbiBnaXQtMS41 LjUKLSAgICAgaWYgZGVzY3JpYmVfb3V0IGlzIE5vbmU6Ci0gICAgICAgICByYWlzZSBOb3RUaGlz TWV0aG9kKCInZ2l0IGRlc2NyaWJlJyBmYWlsZWQiKQotQEAgLTY3Miw3ICs4MDIsNyBAQCBkZWYg Z2l0X3BpZWNlc19mcm9tX3Zjcyh0YWdfcHJlZml4LCByb290LCB2ZXJib3NlLCBydW5uZXI9cnVu X2NvbW1hbmQpOgotICAgICAgICAgcmFpc2UgTm90VGhpc01ldGhvZCgiJ2dpdCByZXYtcGFyc2Un IGZhaWxlZCIpCi0gICAgIGZ1bGxfb3V0ID0gZnVsbF9vdXQuc3RyaXAoKQotIAotLSAgICBwaWVj ZXMgPSB7fQotKyAgICBwaWVjZXM6IERpY3Rbc3RyLCBBbnldID0ge30KLSAgICAgcGllY2VzWyJs b25nIl0gPSBmdWxsX291dAotICAgICBwaWVjZXNbInNob3J0Il0gPSBmdWxsX291dFs6N10gICMg bWF5YmUgaW1wcm92ZWQgbGF0ZXIKLSAgICAgcGllY2VzWyJlcnJvciJdID0gTm9uZQotQEAgLTc1 MSw4ICs4ODEsOCBAQCBkZWYgZ2l0X3BpZWNlc19mcm9tX3Zjcyh0YWdfcHJlZml4LCByb290LCB2 ZXJib3NlLCBydW5uZXI9cnVuX2NvbW1hbmQpOgotICAgICBlbHNlOgotICAgICAgICAgIyBIRVg6 IG5vIHRhZ3MKLSAgICAgICAgIHBpZWNlc1siY2xvc2VzdC10YWciXSA9IE5vbmUKLS0gICAgICAg IGNvdW50X291dCwgcmMgPSBydW5uZXIoR0lUUywgWyJyZXYtbGlzdCIsICJIRUFEIiwgIi0tY291 bnQiXSwgY3dkPXJvb3QpCi0tICAgICAgICBwaWVjZXNbImRpc3RhbmNlIl0gPSBpbnQoY291bnRf b3V0KSAgIyB0b3RhbCBudW1iZXIgb2YgY29tbWl0cwotKyAgICAgICAgb3V0LCByYyA9IHJ1bm5l cihHSVRTLCBbInJldi1saXN0IiwgIkhFQUQiLCAiLS1sZWZ0LXJpZ2h0Il0sIGN3ZD1yb290KQot KyAgICAgICAgcGllY2VzWyJkaXN0YW5jZSJdID0gbGVuKG91dC5zcGxpdCgpKSAgIyB0b3RhbCBu dW1iZXIgb2YgY29tbWl0cwotIAotICAgICAjIGNvbW1pdCBkYXRlOiBzZWUgSVNPLTg2MDEgY29t bWVudCBpbiBnaXRfdmVyc2lvbnNfZnJvbV9rZXl3b3JkcygpCi0gICAgIGRhdGUgPSBydW5uZXIo R0lUUywgWyJzaG93IiwgIi1zIiwgIi0tZm9ybWF0PSUlY2kiLCAiSEVBRCJdLCBjd2Q9cm9vdClb MF0uc3RyaXAoKQotQEAgLTc2NCwxNCArODk0LDE0IEBAIGRlZiBnaXRfcGllY2VzX2Zyb21fdmNz KHRhZ19wcmVmaXgsIHJvb3QsIHZlcmJvc2UsIHJ1bm5lcj1ydW5fY29tbWFuZCk6Ci0gICAgIHJl dHVybiBwaWVjZXMKLSAKLSAKLS1kZWYgcGx1c19vcl9kb3QocGllY2VzKToKLStkZWYgcGx1c19v cl9kb3QocGllY2VzOiBEaWN0W3N0ciwgQW55XSkgLT4gc3RyOgotICAgICAiIiJSZXR1cm4gYSAr IGlmIHdlIGRvbid0IGFscmVhZHkgaGF2ZSBvbmUsIGVsc2UgcmV0dXJuIGEgLiIiIgotICAgICBp ZiAiKyIgaW4gcGllY2VzLmdldCgiY2xvc2VzdC10YWciLCAiIik6Ci0gICAgICAgICByZXR1cm4g Ii4iCi0gICAgIHJldHVybiAiKyIKLSAKLSAKLS1kZWYgcmVuZGVyX3BlcDQ0MChwaWVjZXMpOgot K2RlZiByZW5kZXJfcGVwNDQwKHBpZWNlczogRGljdFtzdHIsIEFueV0pIC0+IHN0cjoKLSAgICAg IiIiQnVpbGQgdXAgdmVyc2lvbiBzdHJpbmcsIHdpdGggcG9zdC1yZWxlYXNlICJsb2NhbCB2ZXJz aW9uIGlkZW50aWZpZXIiLgotIAotICAgICBPdXIgZ29hbDogVEFHWytESVNUQU5DRS5nSEVYWy5k aXJ0eV1dIC4gTm90ZSB0aGF0IGlmIHlvdQotQEAgLTc5Niw3ICs5MjYsNyBAQCBkZWYgcmVuZGVy X3BlcDQ0MChwaWVjZXMpOgotICAgICByZXR1cm4gcmVuZGVyZWQKLSAKLSAKLS1kZWYgcmVuZGVy X3BlcDQ0MF9icmFuY2gocGllY2VzKToKLStkZWYgcmVuZGVyX3BlcDQ0MF9icmFuY2gocGllY2Vz OiBEaWN0W3N0ciwgQW55XSkgLT4gc3RyOgotICAgICAiIiJUQUdbWy5kZXYwXStESVNUQU5DRS5n SEVYWy5kaXJ0eV1dIC4KLSAKLSAgICAgVGhlICIuZGV2MCIgbWVhbnMgbm90IG1hc3RlciBicmFu Y2guIE5vdGUgdGhhdCAuZGV2MCBzb3J0cyBiYWNrd2FyZHMKLUBAIC04MjYsNyArOTU2LDcgQEAg ZGVmIHJlbmRlcl9wZXA0NDBfYnJhbmNoKHBpZWNlcyk6Ci0gICAgIHJldHVybiByZW5kZXJlZAot IAotIAotLWRlZiBwZXA0NDBfc3BsaXRfcG9zdCh2ZXIpOgotK2RlZiBwZXA0NDBfc3BsaXRfcG9z dCh2ZXI6IHN0cikgLT4gVHVwbGVbc3RyLCBPcHRpb25hbFtpbnRdXToKLSAgICAgIiIiU3BsaXQg cGVwNDQwIHZlcnNpb24gc3RyaW5nIGF0IHRoZSBwb3N0LXJlbGVhc2Ugc2VnbWVudC4KLSAKLSAg ICAgUmV0dXJucyB0aGUgcmVsZWFzZSBzZWdtZW50cyBiZWZvcmUgdGhlIHBvc3QtcmVsZWFzZSBh bmQgdGhlCi1AQCAtODM2LDcgKzk2Niw3IEBAIGRlZiBwZXA0NDBfc3BsaXRfcG9zdCh2ZXIpOgot ICAgICByZXR1cm4gdmNbMF0sIGludCh2Y1sxXSBvciAwKSBpZiBsZW4odmMpID09IDIgZWxzZSBO b25lCi0gCi0gCi0tZGVmIHJlbmRlcl9wZXA0NDBfcHJlKHBpZWNlcyk6Ci0rZGVmIHJlbmRlcl9w ZXA0NDBfcHJlKHBpZWNlczogRGljdFtzdHIsIEFueV0pIC0+IHN0cjoKLSAgICAgIiIiVEFHWy5w b3N0Ti5kZXZESVNUQU5DRV0gLS0gTm8gLWRpcnR5LgotIAotICAgICBFeGNlcHRpb25zOgotQEAg LTg0OCw3ICs5NzgsNyBAQCBkZWYgcmVuZGVyX3BlcDQ0MF9wcmUocGllY2VzKToKLSAgICAgICAg ICAgICB0YWdfdmVyc2lvbiwgcG9zdF92ZXJzaW9uID0gcGVwNDQwX3NwbGl0X3Bvc3QocGllY2Vz WyJjbG9zZXN0LXRhZyJdKQotICAgICAgICAgICAgIHJlbmRlcmVkID0gdGFnX3ZlcnNpb24KLSAg ICAgICAgICAgICBpZiBwb3N0X3ZlcnNpb24gaXMgbm90IE5vbmU6Ci0tICAgICAgICAgICAgICAg IHJlbmRlcmVkICs9ICIucG9zdCUlZC5kZXYlJWQiICUlIChwb3N0X3ZlcnNpb24rMSwgcGllY2Vz WyJkaXN0YW5jZSJdKQotKyAgICAgICAgICAgICAgICByZW5kZXJlZCArPSAiLnBvc3QlJWQuZGV2 JSVkIiAlJSAocG9zdF92ZXJzaW9uICsgMSwgcGllY2VzWyJkaXN0YW5jZSJdKQotICAgICAgICAg ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgIHJlbmRlcmVkICs9ICIucG9zdDAuZGV2JSVkIiAl JSAocGllY2VzWyJkaXN0YW5jZSJdKQotICAgICAgICAgZWxzZToKLUBAIC04NjAsNyArOTkwLDcg QEAgZGVmIHJlbmRlcl9wZXA0NDBfcHJlKHBpZWNlcyk6Ci0gICAgIHJldHVybiByZW5kZXJlZAot IAotIAotLWRlZiByZW5kZXJfcGVwNDQwX3Bvc3QocGllY2VzKToKLStkZWYgcmVuZGVyX3BlcDQ0 MF9wb3N0KHBpZWNlczogRGljdFtzdHIsIEFueV0pIC0+IHN0cjoKLSAgICAgIiIiVEFHWy5wb3N0 RElTVEFOQ0VbLmRldjBdK2dIRVhdIC4KLSAKLSAgICAgVGhlICIuZGV2MCIgbWVhbnMgZGlydHku IE5vdGUgdGhhdCAuZGV2MCBzb3J0cyBiYWNrd2FyZHMKLUBAIC04ODcsNyArMTAxNyw3IEBAIGRl ZiByZW5kZXJfcGVwNDQwX3Bvc3QocGllY2VzKToKLSAgICAgcmV0dXJuIHJlbmRlcmVkCi0gCi0g Ci0tZGVmIHJlbmRlcl9wZXA0NDBfcG9zdF9icmFuY2gocGllY2VzKToKLStkZWYgcmVuZGVyX3Bl cDQ0MF9wb3N0X2JyYW5jaChwaWVjZXM6IERpY3Rbc3RyLCBBbnldKSAtPiBzdHI6Ci0gICAgICIi IlRBR1sucG9zdERJU1RBTkNFWy5kZXYwXStnSEVYWy5kaXJ0eV1dIC4KLSAKLSAgICAgVGhlICIu ZGV2MCIgbWVhbnMgbm90IG1hc3RlciBicmFuY2guCi1AQCAtOTE2LDcgKzEwNDYsNyBAQCBkZWYg cmVuZGVyX3BlcDQ0MF9wb3N0X2JyYW5jaChwaWVjZXMpOgotICAgICByZXR1cm4gcmVuZGVyZWQK LSAKLSAKLS1kZWYgcmVuZGVyX3BlcDQ0MF9vbGQocGllY2VzKToKLStkZWYgcmVuZGVyX3BlcDQ0 MF9vbGQocGllY2VzOiBEaWN0W3N0ciwgQW55XSkgLT4gc3RyOgotICAgICAiIiJUQUdbLnBvc3RE SVNUQU5DRVsuZGV2MF1dIC4KLSAKLSAgICAgVGhlICIuZGV2MCIgbWVhbnMgZGlydHkuCi1AQCAt OTM4LDcgKzEwNjgsNyBAQCBkZWYgcmVuZGVyX3BlcDQ0MF9vbGQocGllY2VzKToKLSAgICAgcmV0 dXJuIHJlbmRlcmVkCi0gCi0gCi0tZGVmIHJlbmRlcl9naXRfZGVzY3JpYmUocGllY2VzKToKLStk ZWYgcmVuZGVyX2dpdF9kZXNjcmliZShwaWVjZXM6IERpY3Rbc3RyLCBBbnldKSAtPiBzdHI6Ci0g ICAgICIiIlRBR1stRElTVEFOQ0UtZ0hFWF1bLWRpcnR5XS4KLSAKLSAgICAgTGlrZSAnZ2l0IGRl c2NyaWJlIC0tdGFncyAtLWRpcnR5IC0tYWx3YXlzJy4KLUBAIC05NTgsNyArMTA4OCw3IEBAIGRl ZiByZW5kZXJfZ2l0X2Rlc2NyaWJlKHBpZWNlcyk6Ci0gICAgIHJldHVybiByZW5kZXJlZAotIAot IAotLWRlZiByZW5kZXJfZ2l0X2Rlc2NyaWJlX2xvbmcocGllY2VzKToKLStkZWYgcmVuZGVyX2dp dF9kZXNjcmliZV9sb25nKHBpZWNlczogRGljdFtzdHIsIEFueV0pIC0+IHN0cjoKLSAgICAgIiIi VEFHLURJU1RBTkNFLWdIRVhbLWRpcnR5XS4KLSAKLSAgICAgTGlrZSAnZ2l0IGRlc2NyaWJlIC0t dGFncyAtLWRpcnR5IC0tYWx3YXlzIC1sb25nJy4KLUBAIC05NzgsNyArMTEwOCw3IEBAIGRlZiBy ZW5kZXJfZ2l0X2Rlc2NyaWJlX2xvbmcocGllY2VzKToKLSAgICAgcmV0dXJuIHJlbmRlcmVkCi0g Ci0gCi0tZGVmIHJlbmRlcihwaWVjZXMsIHN0eWxlKToKLStkZWYgcmVuZGVyKHBpZWNlczogRGlj dFtzdHIsIEFueV0sIHN0eWxlOiBzdHIpIC0+IERpY3Rbc3RyLCBBbnldOgotICAgICAiIiJSZW5k ZXIgdGhlIGdpdmVuIHZlcnNpb24gcGllY2VzIGludG8gdGhlIHJlcXVlc3RlZCBzdHlsZS4iIiIK LSAgICAgaWYgcGllY2VzWyJlcnJvciJdOgotICAgICAgICAgcmV0dXJuIHsidmVyc2lvbiI6ICJ1 bmtub3duIiwKLUBAIC0xMDE0LDcgKzExNDQsNyBAQCBkZWYgcmVuZGVyKHBpZWNlcywgc3R5bGUp OgotICAgICAgICAgICAgICJkYXRlIjogcGllY2VzLmdldCgiZGF0ZSIpfQotIAotIAotLWRlZiBn ZXRfdmVyc2lvbnMoKToKLStkZWYgZ2V0X3ZlcnNpb25zKCkgLT4gRGljdFtzdHIsIEFueV06Ci0g ICAgICIiIkdldCB2ZXJzaW9uIGluZm9ybWF0aW9uIG9yIHJldHVybiBkZWZhdWx0IGlmIHVuYWJs ZSB0byBkbyBzby4iIiIKLSAgICAgIyBJIGFtIGluIF92ZXJzaW9uLnB5LCB3aGljaCBsaXZlcyBh dCBST09UL1ZFUlNJT05GSUxFX1NPVVJDRS4gSWYgd2UgaGF2ZQotICAgICAjIF9fZmlsZV9fLCB3 ZSBjYW4gd29yayBiYWNrd2FyZHMgZnJvbSB0aGVyZSB0byB0aGUgcm9vdC4gU29tZQotQEAgLTEw NjIsMTMgKzExOTIsMTMgQEAgZGVmIGdldF92ZXJzaW9ucygpOgotIAotIAotIEByZWdpc3Rlcl92 Y3NfaGFuZGxlcigiZ2l0IiwgImdldF9rZXl3b3JkcyIpCi0tZGVmIGdpdF9nZXRfa2V5d29yZHMo dmVyc2lvbmZpbGVfYWJzKToKLStkZWYgZ2l0X2dldF9rZXl3b3Jkcyh2ZXJzaW9uZmlsZV9hYnM6 IHN0cikgLT4gRGljdFtzdHIsIHN0cl06Ci0gICAgICIiIkV4dHJhY3QgdmVyc2lvbiBpbmZvcm1h dGlvbiBmcm9tIHRoZSBnaXZlbiBmaWxlLiIiIgotICAgICAjIHRoZSBjb2RlIGVtYmVkZGVkIGlu IF92ZXJzaW9uLnB5IGNhbiBqdXN0IGZldGNoIHRoZSB2YWx1ZSBvZiB0aGVzZQotICAgICAjIGtl eXdvcmRzLiBXaGVuIHVzZWQgZnJvbSBzZXR1cC5weSwgd2UgZG9uJ3Qgd2FudCB0byBpbXBvcnQg X3ZlcnNpb24ucHksCi0gICAgICMgc28gd2UgZG8gaXQgd2l0aCBhIHJlZ2V4cCBpbnN0ZWFkLiBU aGlzIGZ1bmN0aW9uIGlzIG5vdCB1c2VkIGZyb20KLSAgICAgIyBfdmVyc2lvbi5weS4KLS0gICAg a2V5d29yZHMgPSB7fQotKyAgICBrZXl3b3JkczogRGljdFtzdHIsIHN0cl0gPSB7fQotICAgICB0 cnk6Ci0gICAgICAgICB3aXRoIG9wZW4odmVyc2lvbmZpbGVfYWJzLCAiciIpIGFzIGZvYmo6Ci0g ICAgICAgICAgICAgZm9yIGxpbmUgaW4gZm9iajoKLUBAIC0xMDkwLDcgKzEyMjAsMTEgQEAgZGVm IGdpdF9nZXRfa2V5d29yZHModmVyc2lvbmZpbGVfYWJzKToKLSAKLSAKLSBAcmVnaXN0ZXJfdmNz X2hhbmRsZXIoImdpdCIsICJrZXl3b3JkcyIpCi0tZGVmIGdpdF92ZXJzaW9uc19mcm9tX2tleXdv cmRzKGtleXdvcmRzLCB0YWdfcHJlZml4LCB2ZXJib3NlKToKLStkZWYgZ2l0X3ZlcnNpb25zX2Zy b21fa2V5d29yZHMoCi0rICAgIGtleXdvcmRzOiBEaWN0W3N0ciwgc3RyXSwKLSsgICAgdGFnX3By ZWZpeDogc3RyLAotKyAgICB2ZXJib3NlOiBib29sLAotKykgLT4gRGljdFtzdHIsIEFueV06Ci0g ICAgICIiIkdldCB2ZXJzaW9uIGluZm9ybWF0aW9uIGZyb20gZ2l0IGtleXdvcmRzLiIiIgotICAg ICBpZiAicmVmbmFtZXMiIG5vdCBpbiBrZXl3b3JkczoKLSAgICAgICAgIHJhaXNlIE5vdFRoaXNN ZXRob2QoIlNob3J0IHZlcnNpb24gZmlsZSBmb3VuZCIpCi1AQCAtMTE1NCw3ICsxMjg4LDEyIEBA IGRlZiBnaXRfdmVyc2lvbnNfZnJvbV9rZXl3b3JkcyhrZXl3b3JkcywgdGFnX3ByZWZpeCwgdmVy Ym9zZSk6Ci0gCi0gCi0gQHJlZ2lzdGVyX3Zjc19oYW5kbGVyKCJnaXQiLCAicGllY2VzX2Zyb21f dmNzIikKLS1kZWYgZ2l0X3BpZWNlc19mcm9tX3Zjcyh0YWdfcHJlZml4LCByb290LCB2ZXJib3Nl LCBydW5uZXI9cnVuX2NvbW1hbmQpOgotK2RlZiBnaXRfcGllY2VzX2Zyb21fdmNzKAotKyAgICB0 YWdfcHJlZml4OiBzdHIsCi0rICAgIHJvb3Q6IHN0ciwKLSsgICAgdmVyYm9zZTogYm9vbCwKLSsg ICAgcnVubmVyOiBDYWxsYWJsZSA9IHJ1bl9jb21tYW5kCi0rKSAtPiBEaWN0W3N0ciwgQW55XToK LSAgICAgIiIiR2V0IHZlcnNpb24gZnJvbSAnZ2l0IGRlc2NyaWJlJyBpbiB0aGUgcm9vdCBvZiB0 aGUgc291cmNlIHRyZWUuCi0gCi0gICAgIFRoaXMgb25seSBnZXRzIGNhbGxlZCBpZiB0aGUgZ2l0 LWFyY2hpdmUgJ3N1YnN0JyBrZXl3b3JkcyB3ZXJlICpub3QqCi1AQCAtMTE2MiwxMyArMTMwMSwx OCBAQCBkZWYgZ2l0X3BpZWNlc19mcm9tX3Zjcyh0YWdfcHJlZml4LCByb290LCB2ZXJib3NlLCBy dW5uZXI9cnVuX2NvbW1hbmQpOgotICAgICB2ZXJzaW9uIHN0cmluZywgbWVhbmluZyB3ZSdyZSBp bnNpZGUgYSBjaGVja2VkIG91dCBzb3VyY2UgdHJlZS4KLSAgICAgIiIiCi0gICAgIEdJVFMgPSBb ImdpdCJdCi0tICAgIFRBR19QUkVGSVhfUkVHRVggPSAiKiIKLSAgICAgaWYgc3lzLnBsYXRmb3Jt ID09ICJ3aW4zMiI6Ci0gICAgICAgICBHSVRTID0gWyJnaXQuY21kIiwgImdpdC5leGUiXQotLSAg ICAgICAgVEFHX1BSRUZJWF9SRUdFWCA9IHIiXCoiCi0rCi0rICAgICMgR0lUX0RJUiBjYW4gaW50 ZXJmZXJlIHdpdGggY29ycmVjdCBvcGVyYXRpb24gb2YgVmVyc2lvbmVlci4KLSsgICAgIyBJdCBt YXkgYmUgaW50ZW5kZWQgdG8gYmUgcGFzc2VkIHRvIHRoZSBWZXJzaW9uZWVyLXZlcnNpb25lZCBw cm9qZWN0LAotKyAgICAjIGJ1dCB0aGF0IHNob3VsZCBub3QgY2hhbmdlIHdoZXJlIHdlIGdldCBv dXIgdmVyc2lvbiBmcm9tLgotKyAgICBlbnYgPSBvcy5lbnZpcm9uLmNvcHkoKQotKyAgICBlbnYu cG9wKCJHSVRfRElSIiwgTm9uZSkKLSsgICAgcnVubmVyID0gZnVuY3Rvb2xzLnBhcnRpYWwocnVu bmVyLCBlbnY9ZW52KQotIAotICAgICBfLCByYyA9IHJ1bm5lcihHSVRTLCBbInJldi1wYXJzZSIs ICItLWdpdC1kaXIiXSwgY3dkPXJvb3QsCi0tICAgICAgICAgICAgICAgICAgIGhpZGVfc3RkZXJy PVRydWUpCi0rICAgICAgICAgICAgICAgICAgIGhpZGVfc3RkZXJyPW5vdCB2ZXJib3NlKQotICAg ICBpZiByYyAhPSAwOgotICAgICAgICAgaWYgdmVyYm9zZToKLSAgICAgICAgICAgICBwcmludCgi RGlyZWN0b3J5ICVzIG5vdCB1bmRlciBnaXQgY29udHJvbCIgJSByb290KQotQEAgLTExNzYsMTEg KzEzMjAsMTAgQEAgZGVmIGdpdF9waWVjZXNfZnJvbV92Y3ModGFnX3ByZWZpeCwgcm9vdCwgdmVy Ym9zZSwgcnVubmVyPXJ1bl9jb21tYW5kKToKLSAKLSAgICAgIyBpZiB0aGVyZSBpcyBhIHRhZyBt YXRjaGluZyB0YWdfcHJlZml4LCB0aGlzIHlpZWxkcyBUQUctTlVNLWdIRVhbLWRpcnR5XQotICAg ICAjIGlmIHRoZXJlIGlzbid0IG9uZSwgdGhpcyB5aWVsZHMgSEVYWy1kaXJ0eV0gKG5vIE5VTSkK LS0gICAgZGVzY3JpYmVfb3V0LCByYyA9IHJ1bm5lcihHSVRTLCBbImRlc2NyaWJlIiwgIi0tdGFn cyIsICItLWRpcnR5IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0t YWx3YXlzIiwgIi0tbG9uZyIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICItLW1hdGNoIiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVzJXMi ICUgKHRhZ19wcmVmaXgsIFRBR19QUkVGSVhfUkVHRVgpXSwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjd2Q9cm9vdCkKLSsgICAgZGVzY3JpYmVfb3V0LCByYyA9IHJ1bm5lcihHSVRT LCBbCi0rICAgICAgICAiZGVzY3JpYmUiLCAiLS10YWdzIiwgIi0tZGlydHkiLCAiLS1hbHdheXMi LCAiLS1sb25nIiwKLSsgICAgICAgICItLW1hdGNoIiwgZiJ7dGFnX3ByZWZpeH1bWzpkaWdpdDpd XSoiCi0rICAgIF0sIGN3ZD1yb290KQotICAgICAjIC0tbG9uZyB3YXMgYWRkZWQgaW4gZ2l0LTEu NS41Ci0gICAgIGlmIGRlc2NyaWJlX291dCBpcyBOb25lOgotICAgICAgICAgcmFpc2UgTm90VGhp c01ldGhvZCgiJ2dpdCBkZXNjcmliZScgZmFpbGVkIikKLUBAIC0xMTkwLDcgKzEzMzMsNyBAQCBk ZWYgZ2l0X3BpZWNlc19mcm9tX3Zjcyh0YWdfcHJlZml4LCByb290LCB2ZXJib3NlLCBydW5uZXI9 cnVuX2NvbW1hbmQpOgotICAgICAgICAgcmFpc2UgTm90VGhpc01ldGhvZCgiJ2dpdCByZXYtcGFy c2UnIGZhaWxlZCIpCi0gICAgIGZ1bGxfb3V0ID0gZnVsbF9vdXQuc3RyaXAoKQotIAotLSAgICBw aWVjZXMgPSB7fQotKyAgICBwaWVjZXM6IERpY3Rbc3RyLCBBbnldID0ge30KLSAgICAgcGllY2Vz WyJsb25nIl0gPSBmdWxsX291dAotICAgICBwaWVjZXNbInNob3J0Il0gPSBmdWxsX291dFs6N10g ICMgbWF5YmUgaW1wcm92ZWQgbGF0ZXIKLSAgICAgcGllY2VzWyJlcnJvciJdID0gTm9uZQotQEAg LTEyNjksOCArMTQxMiw4IEBAIGRlZiBnaXRfcGllY2VzX2Zyb21fdmNzKHRhZ19wcmVmaXgsIHJv b3QsIHZlcmJvc2UsIHJ1bm5lcj1ydW5fY29tbWFuZCk6Ci0gICAgIGVsc2U6Ci0gICAgICAgICAj IEhFWDogbm8gdGFncwotICAgICAgICAgcGllY2VzWyJjbG9zZXN0LXRhZyJdID0gTm9uZQotLSAg ICAgICAgY291bnRfb3V0LCByYyA9IHJ1bm5lcihHSVRTLCBbInJldi1saXN0IiwgIkhFQUQiLCAi LS1jb3VudCJdLCBjd2Q9cm9vdCkKLS0gICAgICAgIHBpZWNlc1siZGlzdGFuY2UiXSA9IGludChj b3VudF9vdXQpICAjIHRvdGFsIG51bWJlciBvZiBjb21taXRzCi0rICAgICAgICBvdXQsIHJjID0g cnVubmVyKEdJVFMsIFsicmV2LWxpc3QiLCAiSEVBRCIsICItLWxlZnQtcmlnaHQiXSwgY3dkPXJv b3QpCi0rICAgICAgICBwaWVjZXNbImRpc3RhbmNlIl0gPSBsZW4ob3V0LnNwbGl0KCkpICAjIHRv dGFsIG51bWJlciBvZiBjb21taXRzCi0gCi0gICAgICMgY29tbWl0IGRhdGU6IHNlZSBJU08tODYw MSBjb21tZW50IGluIGdpdF92ZXJzaW9uc19mcm9tX2tleXdvcmRzKCkKLSAgICAgZGF0ZSA9IHJ1 bm5lcihHSVRTLCBbInNob3ciLCAiLXMiLCAiLS1mb3JtYXQ9JWNpIiwgIkhFQUQiXSwgY3dkPXJv b3QpWzBdLnN0cmlwKCkKLUBAIC0xMjgyLDcgKzE0MjUsNyBAQCBkZWYgZ2l0X3BpZWNlc19mcm9t X3Zjcyh0YWdfcHJlZml4LCByb290LCB2ZXJib3NlLCBydW5uZXI9cnVuX2NvbW1hbmQpOgotICAg ICByZXR1cm4gcGllY2VzCi0gCi0gCi0tZGVmIGRvX3Zjc19pbnN0YWxsKG1hbmlmZXN0X2luLCB2 ZXJzaW9uZmlsZV9zb3VyY2UsIGlweSk6Ci0rZGVmIGRvX3Zjc19pbnN0YWxsKHZlcnNpb25maWxl X3NvdXJjZTogc3RyLCBpcHk6IE9wdGlvbmFsW3N0cl0pIC0+IE5vbmU6Ci0gICAgICIiIkdpdC1z cGVjaWZpYyBpbnN0YWxsYXRpb24gbG9naWMgZm9yIFZlcnNpb25lZXIuCi0gCi0gICAgIEZvciBH aXQsIHRoaXMgbWVhbnMgY3JlYXRpbmcvY2hhbmdpbmcgLmdpdGF0dHJpYnV0ZXMgdG8gbWFyayBf dmVyc2lvbi5weQotQEAgLTEyOTEsMTcgKzE0MzQsMTggQEAgZGVmIGRvX3Zjc19pbnN0YWxsKG1h bmlmZXN0X2luLCB2ZXJzaW9uZmlsZV9zb3VyY2UsIGlweSk6Ci0gICAgIEdJVFMgPSBbImdpdCJd Ci0gICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiOgotICAgICAgICAgR0lUUyA9IFsiZ2l0 LmNtZCIsICJnaXQuZXhlIl0KLS0gICAgZmlsZXMgPSBbbWFuaWZlc3RfaW4sIHZlcnNpb25maWxl X3NvdXJjZV0KLSsgICAgZmlsZXMgPSBbdmVyc2lvbmZpbGVfc291cmNlXQotICAgICBpZiBpcHk6 Ci0gICAgICAgICBmaWxlcy5hcHBlbmQoaXB5KQotLSAgICB0cnk6Ci0tICAgICAgICBteV9wYXRo ID0gX19maWxlX18KLS0gICAgICAgIGlmIG15X3BhdGguZW5kc3dpdGgoIi5weWMiKSBvciBteV9w YXRoLmVuZHN3aXRoKCIucHlvIik6Ci0tICAgICAgICAgICAgbXlfcGF0aCA9IG9zLnBhdGguc3Bs aXRleHQobXlfcGF0aClbMF0gKyAiLnB5IgotLSAgICAgICAgdmVyc2lvbmVlcl9maWxlID0gb3Mu cGF0aC5yZWxwYXRoKG15X3BhdGgpCi0tICAgIGV4Y2VwdCBOYW1lRXJyb3I6Ci0tICAgICAgICB2 ZXJzaW9uZWVyX2ZpbGUgPSAidmVyc2lvbmVlci5weSIKLS0gICAgZmlsZXMuYXBwZW5kKHZlcnNp b25lZXJfZmlsZSkKLSsgICAgaWYgIlZFUlNJT05FRVJfUEVQNTE4IiBub3QgaW4gZ2xvYmFscygp OgotKyAgICAgICAgdHJ5OgotKyAgICAgICAgICAgIG15X3BhdGggPSBfX2ZpbGVfXwotKyAgICAg ICAgICAgIGlmIG15X3BhdGguZW5kc3dpdGgoKCIucHljIiwgIi5weW8iKSk6Ci0rICAgICAgICAg ICAgICAgIG15X3BhdGggPSBvcy5wYXRoLnNwbGl0ZXh0KG15X3BhdGgpWzBdICsgIi5weSIKLSsg ICAgICAgICAgICB2ZXJzaW9uZWVyX2ZpbGUgPSBvcy5wYXRoLnJlbHBhdGgobXlfcGF0aCkKLSsg ICAgICAgIGV4Y2VwdCBOYW1lRXJyb3I6Ci0rICAgICAgICAgICAgdmVyc2lvbmVlcl9maWxlID0g InZlcnNpb25lZXIucHkiCi0rICAgICAgICBmaWxlcy5hcHBlbmQodmVyc2lvbmVlcl9maWxlKQot ICAgICBwcmVzZW50ID0gRmFsc2UKLSAgICAgdHJ5OgotICAgICAgICAgd2l0aCBvcGVuKCIuZ2l0 YXR0cmlidXRlcyIsICJyIikgYXMgZm9iajoKLUBAIC0xMzE5LDcgKzE0NjMsMTEgQEAgZGVmIGRv X3Zjc19pbnN0YWxsKG1hbmlmZXN0X2luLCB2ZXJzaW9uZmlsZV9zb3VyY2UsIGlweSk6Ci0gICAg IHJ1bl9jb21tYW5kKEdJVFMsIFsiYWRkIiwgIi0tIl0gKyBmaWxlcykKLSAKLSAKLS1kZWYgdmVy c2lvbnNfZnJvbV9wYXJlbnRkaXIocGFyZW50ZGlyX3ByZWZpeCwgcm9vdCwgdmVyYm9zZSk6Ci0r ZGVmIHZlcnNpb25zX2Zyb21fcGFyZW50ZGlyKAotKyAgICBwYXJlbnRkaXJfcHJlZml4OiBzdHIs Ci0rICAgIHJvb3Q6IHN0ciwKLSsgICAgdmVyYm9zZTogYm9vbCwKLSspIC0+IERpY3Rbc3RyLCBB bnldOgotICAgICAiIiJUcnkgdG8gZGV0ZXJtaW5lIHRoZSB2ZXJzaW9uIGZyb20gdGhlIHBhcmVu dCBkaXJlY3RvcnkgbmFtZS4KLSAKLSAgICAgU291cmNlIHRhcmJhbGxzIGNvbnZlbnRpb25hbGx5 IHVucGFjayBpbnRvIGEgZGlyZWN0b3J5IHRoYXQgaW5jbHVkZXMgYm90aAotQEAgLTEzNDQsNyAr MTQ5Miw3IEBAIGRlZiB2ZXJzaW9uc19mcm9tX3BhcmVudGRpcihwYXJlbnRkaXJfcHJlZml4LCBy b290LCB2ZXJib3NlKToKLSAKLSAKLSBTSE9SVF9WRVJTSU9OX1BZID0gIiIiCi0tIyBUaGlzIGZp bGUgd2FzIGdlbmVyYXRlZCBieSAndmVyc2lvbmVlci5weScgKDAuMjEpIGZyb20KLSsjIFRoaXMg ZmlsZSB3YXMgZ2VuZXJhdGVkIGJ5ICd2ZXJzaW9uZWVyLnB5JyAoMC4yOSkgZnJvbQotICMgcmV2 aXNpb24tY29udHJvbCBzeXN0ZW0gZGF0YSwgb3IgZnJvbSB0aGUgcGFyZW50IGRpcmVjdG9yeSBu YW1lIG9mIGFuCi0gIyB1bnBhY2tlZCBzb3VyY2UgYXJjaGl2ZS4gRGlzdHJpYnV0aW9uIHRhcmJh bGxzIGNvbnRhaW4gYSBwcmUtZ2VuZXJhdGVkIGNvcHkKLSAjIG9mIHRoaXMgZmlsZS4KLUBAIC0x MzYxLDcgKzE1MDksNyBAQCBkZWYgZ2V0X3ZlcnNpb25zKCk6Ci0gIiIiCi0gCi0gCi0tZGVmIHZl cnNpb25zX2Zyb21fZmlsZShmaWxlbmFtZSk6Ci0rZGVmIHZlcnNpb25zX2Zyb21fZmlsZShmaWxl bmFtZTogc3RyKSAtPiBEaWN0W3N0ciwgQW55XToKLSAgICAgIiIiVHJ5IHRvIGRldGVybWluZSB0 aGUgdmVyc2lvbiBmcm9tIF92ZXJzaW9uLnB5IGlmIHByZXNlbnQuIiIiCi0gICAgIHRyeToKLSAg ICAgICAgIHdpdGggb3BlbihmaWxlbmFtZSkgYXMgZjoKLUBAIC0xMzc4LDkgKzE1MjYsOCBAQCBk ZWYgdmVyc2lvbnNfZnJvbV9maWxlKGZpbGVuYW1lKToKLSAgICAgcmV0dXJuIGpzb24ubG9hZHMo bW8uZ3JvdXAoMSkpCi0gCi0gCi0tZGVmIHdyaXRlX3RvX3ZlcnNpb25fZmlsZShmaWxlbmFtZSwg dmVyc2lvbnMpOgotK2RlZiB3cml0ZV90b192ZXJzaW9uX2ZpbGUoZmlsZW5hbWU6IHN0ciwgdmVy c2lvbnM6IERpY3Rbc3RyLCBBbnldKSAtPiBOb25lOgotICAgICAiIiJXcml0ZSB0aGUgZ2l2ZW4g dmVyc2lvbiBudW1iZXIgdG8gdGhlIGdpdmVuIF92ZXJzaW9uLnB5IGZpbGUuIiIiCi0tICAgIG9z LnVubGluayhmaWxlbmFtZSkKLSAgICAgY29udGVudHMgPSBqc29uLmR1bXBzKHZlcnNpb25zLCBz b3J0X2tleXM9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGVudD0xLCBzZXBh cmF0b3JzPSgiLCIsICI6ICIpKQotICAgICB3aXRoIG9wZW4oZmlsZW5hbWUsICJ3IikgYXMgZjoK LUBAIC0xMzg5LDE0ICsxNTM2LDE0IEBAIGRlZiB3cml0ZV90b192ZXJzaW9uX2ZpbGUoZmlsZW5h bWUsIHZlcnNpb25zKToKLSAgICAgcHJpbnQoInNldCAlcyB0byAnJXMnIiAlIChmaWxlbmFtZSwg dmVyc2lvbnNbInZlcnNpb24iXSkpCi0gCi0gCi0tZGVmIHBsdXNfb3JfZG90KHBpZWNlcyk6Ci0r ZGVmIHBsdXNfb3JfZG90KHBpZWNlczogRGljdFtzdHIsIEFueV0pIC0+IHN0cjoKLSAgICAgIiIi UmV0dXJuIGEgKyBpZiB3ZSBkb24ndCBhbHJlYWR5IGhhdmUgb25lLCBlbHNlIHJldHVybiBhIC4i IiIKLSAgICAgaWYgIisiIGluIHBpZWNlcy5nZXQoImNsb3Nlc3QtdGFnIiwgIiIpOgotICAgICAg ICAgcmV0dXJuICIuIgotICAgICByZXR1cm4gIisiCi0gCi0gCi0tZGVmIHJlbmRlcl9wZXA0NDAo cGllY2VzKToKLStkZWYgcmVuZGVyX3BlcDQ0MChwaWVjZXM6IERpY3Rbc3RyLCBBbnldKSAtPiBz dHI6Ci0gICAgICIiIkJ1aWxkIHVwIHZlcnNpb24gc3RyaW5nLCB3aXRoIHBvc3QtcmVsZWFzZSAi bG9jYWwgdmVyc2lvbiBpZGVudGlmaWVyIi4KLSAKLSAgICAgT3VyIGdvYWw6IFRBR1srRElTVEFO Q0UuZ0hFWFsuZGlydHldXSAuIE5vdGUgdGhhdCBpZiB5b3UKLUBAIC0xNDIxLDcgKzE1NjgsNyBA QCBkZWYgcmVuZGVyX3BlcDQ0MChwaWVjZXMpOgotICAgICByZXR1cm4gcmVuZGVyZWQKLSAKLSAK LS1kZWYgcmVuZGVyX3BlcDQ0MF9icmFuY2gocGllY2VzKToKLStkZWYgcmVuZGVyX3BlcDQ0MF9i cmFuY2gocGllY2VzOiBEaWN0W3N0ciwgQW55XSkgLT4gc3RyOgotICAgICAiIiJUQUdbWy5kZXYw XStESVNUQU5DRS5nSEVYWy5kaXJ0eV1dIC4KLSAKLSAgICAgVGhlICIuZGV2MCIgbWVhbnMgbm90 IG1hc3RlciBicmFuY2guIE5vdGUgdGhhdCAuZGV2MCBzb3J0cyBiYWNrd2FyZHMKLUBAIC0xNDUx LDcgKzE1OTgsNyBAQCBkZWYgcmVuZGVyX3BlcDQ0MF9icmFuY2gocGllY2VzKToKLSAgICAgcmV0 dXJuIHJlbmRlcmVkCi0gCi0gCi0tZGVmIHBlcDQ0MF9zcGxpdF9wb3N0KHZlcik6Ci0rZGVmIHBl cDQ0MF9zcGxpdF9wb3N0KHZlcjogc3RyKSAtPiBUdXBsZVtzdHIsIE9wdGlvbmFsW2ludF1dOgot ICAgICAiIiJTcGxpdCBwZXA0NDAgdmVyc2lvbiBzdHJpbmcgYXQgdGhlIHBvc3QtcmVsZWFzZSBz ZWdtZW50LgotIAotICAgICBSZXR1cm5zIHRoZSByZWxlYXNlIHNlZ21lbnRzIGJlZm9yZSB0aGUg cG9zdC1yZWxlYXNlIGFuZCB0aGUKLUBAIC0xNDYxLDcgKzE2MDgsNyBAQCBkZWYgcGVwNDQwX3Nw bGl0X3Bvc3QodmVyKToKLSAgICAgcmV0dXJuIHZjWzBdLCBpbnQodmNbMV0gb3IgMCkgaWYgbGVu KHZjKSA9PSAyIGVsc2UgTm9uZQotIAotIAotLWRlZiByZW5kZXJfcGVwNDQwX3ByZShwaWVjZXMp OgotK2RlZiByZW5kZXJfcGVwNDQwX3ByZShwaWVjZXM6IERpY3Rbc3RyLCBBbnldKSAtPiBzdHI6 Ci0gICAgICIiIlRBR1sucG9zdE4uZGV2RElTVEFOQ0VdIC0tIE5vIC1kaXJ0eS4KLSAKLSAgICAg RXhjZXB0aW9uczoKLUBAIC0xNDczLDcgKzE2MjAsNyBAQCBkZWYgcmVuZGVyX3BlcDQ0MF9wcmUo cGllY2VzKToKLSAgICAgICAgICAgICB0YWdfdmVyc2lvbiwgcG9zdF92ZXJzaW9uID0gcGVwNDQw X3NwbGl0X3Bvc3QocGllY2VzWyJjbG9zZXN0LXRhZyJdKQotICAgICAgICAgICAgIHJlbmRlcmVk ID0gdGFnX3ZlcnNpb24KLSAgICAgICAgICAgICBpZiBwb3N0X3ZlcnNpb24gaXMgbm90IE5vbmU6 Ci0tICAgICAgICAgICAgICAgIHJlbmRlcmVkICs9ICIucG9zdCVkLmRldiVkIiAlIChwb3N0X3Zl cnNpb24rMSwgcGllY2VzWyJkaXN0YW5jZSJdKQotKyAgICAgICAgICAgICAgICByZW5kZXJlZCAr PSAiLnBvc3QlZC5kZXYlZCIgJSAocG9zdF92ZXJzaW9uICsgMSwgcGllY2VzWyJkaXN0YW5jZSJd KQotICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgIHJlbmRlcmVkICs9ICIucG9z dDAuZGV2JWQiICUgKHBpZWNlc1siZGlzdGFuY2UiXSkKLSAgICAgICAgIGVsc2U6Ci1AQCAtMTQ4 NSw3ICsxNjMyLDcgQEAgZGVmIHJlbmRlcl9wZXA0NDBfcHJlKHBpZWNlcyk6Ci0gICAgIHJldHVy biByZW5kZXJlZAotIAotIAotLWRlZiByZW5kZXJfcGVwNDQwX3Bvc3QocGllY2VzKToKLStkZWYg cmVuZGVyX3BlcDQ0MF9wb3N0KHBpZWNlczogRGljdFtzdHIsIEFueV0pIC0+IHN0cjoKLSAgICAg IiIiVEFHWy5wb3N0RElTVEFOQ0VbLmRldjBdK2dIRVhdIC4KLSAKLSAgICAgVGhlICIuZGV2MCIg bWVhbnMgZGlydHkuIE5vdGUgdGhhdCAuZGV2MCBzb3J0cyBiYWNrd2FyZHMKLUBAIC0xNTEyLDcg KzE2NTksNyBAQCBkZWYgcmVuZGVyX3BlcDQ0MF9wb3N0KHBpZWNlcyk6Ci0gICAgIHJldHVybiBy ZW5kZXJlZAotIAotIAotLWRlZiByZW5kZXJfcGVwNDQwX3Bvc3RfYnJhbmNoKHBpZWNlcyk6Ci0r ZGVmIHJlbmRlcl9wZXA0NDBfcG9zdF9icmFuY2gocGllY2VzOiBEaWN0W3N0ciwgQW55XSkgLT4g c3RyOgotICAgICAiIiJUQUdbLnBvc3RESVNUQU5DRVsuZGV2MF0rZ0hFWFsuZGlydHldXSAuCi0g Ci0gICAgIFRoZSAiLmRldjAiIG1lYW5zIG5vdCBtYXN0ZXIgYnJhbmNoLgotQEAgLTE1NDEsNyAr MTY4OCw3IEBAIGRlZiByZW5kZXJfcGVwNDQwX3Bvc3RfYnJhbmNoKHBpZWNlcyk6Ci0gICAgIHJl dHVybiByZW5kZXJlZAotIAotIAotLWRlZiByZW5kZXJfcGVwNDQwX29sZChwaWVjZXMpOgotK2Rl ZiByZW5kZXJfcGVwNDQwX29sZChwaWVjZXM6IERpY3Rbc3RyLCBBbnldKSAtPiBzdHI6Ci0gICAg ICIiIlRBR1sucG9zdERJU1RBTkNFWy5kZXYwXV0gLgotIAotICAgICBUaGUgIi5kZXYwIiBtZWFu cyBkaXJ0eS4KLUBAIC0xNTYzLDcgKzE3MTAsNyBAQCBkZWYgcmVuZGVyX3BlcDQ0MF9vbGQocGll Y2VzKToKLSAgICAgcmV0dXJuIHJlbmRlcmVkCi0gCi0gCi0tZGVmIHJlbmRlcl9naXRfZGVzY3Jp YmUocGllY2VzKToKLStkZWYgcmVuZGVyX2dpdF9kZXNjcmliZShwaWVjZXM6IERpY3Rbc3RyLCBB bnldKSAtPiBzdHI6Ci0gICAgICIiIlRBR1stRElTVEFOQ0UtZ0hFWF1bLWRpcnR5XS4KLSAKLSAg ICAgTGlrZSAnZ2l0IGRlc2NyaWJlIC0tdGFncyAtLWRpcnR5IC0tYWx3YXlzJy4KLUBAIC0xNTgz LDcgKzE3MzAsNyBAQCBkZWYgcmVuZGVyX2dpdF9kZXNjcmliZShwaWVjZXMpOgotICAgICByZXR1 cm4gcmVuZGVyZWQKLSAKLSAKLS1kZWYgcmVuZGVyX2dpdF9kZXNjcmliZV9sb25nKHBpZWNlcyk6 Ci0rZGVmIHJlbmRlcl9naXRfZGVzY3JpYmVfbG9uZyhwaWVjZXM6IERpY3Rbc3RyLCBBbnldKSAt PiBzdHI6Ci0gICAgICIiIlRBRy1ESVNUQU5DRS1nSEVYWy1kaXJ0eV0uCi0gCi0gICAgIExpa2Ug J2dpdCBkZXNjcmliZSAtLXRhZ3MgLS1kaXJ0eSAtLWFsd2F5cyAtbG9uZycuCi1AQCAtMTYwMyw3 ICsxNzUwLDcgQEAgZGVmIHJlbmRlcl9naXRfZGVzY3JpYmVfbG9uZyhwaWVjZXMpOgotICAgICBy ZXR1cm4gcmVuZGVyZWQKLSAKLSAKLS1kZWYgcmVuZGVyKHBpZWNlcywgc3R5bGUpOgotK2RlZiBy ZW5kZXIocGllY2VzOiBEaWN0W3N0ciwgQW55XSwgc3R5bGU6IHN0cikgLT4gRGljdFtzdHIsIEFu eV06Ci0gICAgICIiIlJlbmRlciB0aGUgZ2l2ZW4gdmVyc2lvbiBwaWVjZXMgaW50byB0aGUgcmVx dWVzdGVkIHN0eWxlLiIiIgotICAgICBpZiBwaWVjZXNbImVycm9yIl06Ci0gICAgICAgICByZXR1 cm4geyJ2ZXJzaW9uIjogInVua25vd24iLAotQEAgLTE2NDMsNyArMTc5MCw3IEBAIGNsYXNzIFZl cnNpb25lZXJCYWRSb290RXJyb3IoRXhjZXB0aW9uKToKLSAgICAgIiIiVGhlIHByb2plY3Qgcm9v dCBkaXJlY3RvcnkgaXMgdW5rbm93biBvciBtaXNzaW5nIGtleSBmaWxlcy4iIiIKLSAKLSAKLS1k ZWYgZ2V0X3ZlcnNpb25zKHZlcmJvc2U9RmFsc2UpOgotK2RlZiBnZXRfdmVyc2lvbnModmVyYm9z ZTogYm9vbCA9IEZhbHNlKSAtPiBEaWN0W3N0ciwgQW55XToKLSAgICAgIiIiR2V0IHRoZSBwcm9q ZWN0IHZlcnNpb24gZnJvbSB3aGF0ZXZlciBzb3VyY2UgaXMgYXZhaWxhYmxlLgotIAotICAgICBS ZXR1cm5zIGRpY3Qgd2l0aCB0d28ga2V5czogJ3ZlcnNpb24nIGFuZCAnZnVsbCcuCi1AQCAtMTY1 OCw3ICsxODA1LDcgQEAgZGVmIGdldF92ZXJzaW9ucyh2ZXJib3NlPUZhbHNlKToKLSAgICAgYXNz ZXJ0IGNmZy5WQ1MgaXMgbm90IE5vbmUsICJwbGVhc2Ugc2V0IFt2ZXJzaW9uZWVyXVZDUz0gaW4g c2V0dXAuY2ZnIgotICAgICBoYW5kbGVycyA9IEhBTkRMRVJTLmdldChjZmcuVkNTKQotICAgICBh c3NlcnQgaGFuZGxlcnMsICJ1bnJlY29nbml6ZWQgVkNTICclcyciICUgY2ZnLlZDUwotLSAgICB2 ZXJib3NlID0gdmVyYm9zZSBvciBjZmcudmVyYm9zZQotKyAgICB2ZXJib3NlID0gdmVyYm9zZSBv ciBib29sKGNmZy52ZXJib3NlKSAgIyBgYm9vbCgpYCB1c2VkIHRvIGF2b2lkIGBOb25lYAotICAg ICBhc3NlcnQgY2ZnLnZlcnNpb25maWxlX3NvdXJjZSBpcyBub3QgTm9uZSwgXAotICAgICAgICAg InBsZWFzZSBzZXQgdmVyc2lvbmVlci52ZXJzaW9uZmlsZV9zb3VyY2UiCi0gICAgIGFzc2VydCBj ZmcudGFnX3ByZWZpeCBpcyBub3QgTm9uZSwgInBsZWFzZSBzZXQgdmVyc2lvbmVlci50YWdfcHJl Zml4IgotQEAgLTE3MTksMTMgKzE4NjYsMTMgQEAgZGVmIGdldF92ZXJzaW9ucyh2ZXJib3NlPUZh bHNlKToKLSAgICAgICAgICAgICAiZGF0ZSI6IE5vbmV9Ci0gCi0gCi0tZGVmIGdldF92ZXJzaW9u KCk6Ci0rZGVmIGdldF92ZXJzaW9uKCkgLT4gc3RyOgotICAgICAiIiJHZXQgdGhlIHNob3J0IHZl cnNpb24gc3RyaW5nIGZvciB0aGlzIHByb2plY3QuIiIiCi0gICAgIHJldHVybiBnZXRfdmVyc2lv bnMoKVsidmVyc2lvbiJdCi0gCi0gCi0tZGVmIGdldF9jbWRjbGFzcyhjbWRjbGFzcz1Ob25lKToK LS0gICAgIiIiR2V0IHRoZSBjdXN0b20gc2V0dXB0b29scy9kaXN0dXRpbHMgc3ViY2xhc3NlcyB1 c2VkIGJ5IFZlcnNpb25lZXIuCi0rZGVmIGdldF9jbWRjbGFzcyhjbWRjbGFzczogT3B0aW9uYWxb RGljdFtzdHIsIEFueV1dID0gTm9uZSk6Ci0rICAgICIiIkdldCB0aGUgY3VzdG9tIHNldHVwdG9v bHMgc3ViY2xhc3NlcyB1c2VkIGJ5IFZlcnNpb25lZXIuCi0gCi0gICAgIElmIHRoZSBwYWNrYWdl IHVzZXMgYSBkaWZmZXJlbnQgY21kY2xhc3MgKGUuZy4gb25lIGZyb20gbnVtcHkpLCBpdAotICAg ICBzaG91bGQgYmUgcHJvdmlkZSBhcyBhbiBhcmd1bWVudC4KLUBAIC0xNzQ3LDIxICsxODk0LDIx IEBAIGRlZiBnZXRfY21kY2xhc3MoY21kY2xhc3M9Tm9uZSk6Ci0gCi0gICAgIGNtZHMgPSB7fSBp ZiBjbWRjbGFzcyBpcyBOb25lIGVsc2UgY21kY2xhc3MuY29weSgpCi0gCi0tICAgICMgd2UgYWRk ICJ2ZXJzaW9uIiB0byBib3RoIGRpc3R1dGlscyBhbmQgc2V0dXB0b29scwotLSAgICBmcm9tIGRp c3R1dGlscy5jb3JlIGltcG9ydCBDb21tYW5kCi0rICAgICMgd2UgYWRkICJ2ZXJzaW9uIiB0byBz ZXR1cHRvb2xzCi0rICAgIGZyb20gc2V0dXB0b29scyBpbXBvcnQgQ29tbWFuZAotIAotICAgICBj bGFzcyBjbWRfdmVyc2lvbihDb21tYW5kKToKLSAgICAgICAgIGRlc2NyaXB0aW9uID0gInJlcG9y dCBnZW5lcmF0ZWQgdmVyc2lvbiBzdHJpbmciCi0tICAgICAgICB1c2VyX29wdGlvbnMgPSBbXQot LSAgICAgICAgYm9vbGVhbl9vcHRpb25zID0gW10KLSsgICAgICAgIHVzZXJfb3B0aW9uczogTGlz dFtUdXBsZVtzdHIsIHN0ciwgc3RyXV0gPSBbXQotKyAgICAgICAgYm9vbGVhbl9vcHRpb25zOiBM aXN0W3N0cl0gPSBbXQotIAotLSAgICAgICAgZGVmIGluaXRpYWxpemVfb3B0aW9ucyhzZWxmKToK LSsgICAgICAgIGRlZiBpbml0aWFsaXplX29wdGlvbnMoc2VsZikgLT4gTm9uZToKLSAgICAgICAg ICAgICBwYXNzCi0gCi0tICAgICAgICBkZWYgZmluYWxpemVfb3B0aW9ucyhzZWxmKToKLSsgICAg ICAgIGRlZiBmaW5hbGl6ZV9vcHRpb25zKHNlbGYpIC0+IE5vbmU6Ci0gICAgICAgICAgICAgcGFz cwotIAotLSAgICAgICAgZGVmIHJ1bihzZWxmKToKLSsgICAgICAgIGRlZiBydW4oc2VsZikgLT4g Tm9uZToKLSAgICAgICAgICAgICB2ZXJzID0gZ2V0X3ZlcnNpb25zKHZlcmJvc2U9VHJ1ZSkKLSAg ICAgICAgICAgICBwcmludCgiVmVyc2lvbjogJXMiICUgdmVyc1sidmVyc2lvbiJdKQotICAgICAg ICAgICAgIHByaW50KCIgZnVsbC1yZXZpc2lvbmlkOiAlcyIgJSB2ZXJzLmdldCgiZnVsbC1yZXZp c2lvbmlkIikpCi1AQCAtMTc3MSw3ICsxOTE4LDcgQEAgZGVmIGdldF9jbWRjbGFzcyhjbWRjbGFz cz1Ob25lKToKLSAgICAgICAgICAgICAgICAgcHJpbnQoIiBlcnJvcjogJXMiICUgdmVyc1siZXJy b3IiXSkKLSAgICAgY21kc1sidmVyc2lvbiJdID0gY21kX3ZlcnNpb24KLSAKLS0gICAgIyB3ZSBv dmVycmlkZSAiYnVpbGRfcHkiIGluIGJvdGggZGlzdHV0aWxzIGFuZCBzZXR1cHRvb2xzCi0rICAg ICMgd2Ugb3ZlcnJpZGUgImJ1aWxkX3B5IiBpbiBzZXR1cHRvb2xzCi0gICAgICMKLSAgICAgIyBt b3N0IGludm9jYXRpb24gcGF0aHdheXMgZW5kIHVwIHJ1bm5pbmcgYnVpbGRfcHk6Ci0gICAgICMg IGRpc3R1dGlscy9idWlsZCAtPiBidWlsZF9weQotQEAgLTE3ODYsMjAgKzE5MzMsMjUgQEAgZGVm IGdldF9jbWRjbGFzcyhjbWRjbGFzcz1Ob25lKToKLSAgICAgIyAgIHRoZW4gZG9lcyBzZXR1cC5w eSBiZGlzdF93aGVlbCwgb3Igc29tZXRpbWVzIHNldHVwLnB5IGluc3RhbGwKLSAgICAgIyAgc2V0 dXAucHkgZWdnX2luZm8gLT4gPwotIAotKyAgICAjIHBpcCBpbnN0YWxsIC1lIC4gYW5kIHNldHVw dG9vbC9lZGl0YWJsZV93aGVlbCB3aWxsIGludm9rZSBidWlsZF9weQotKyAgICAjIGJ1dCB0aGUg YnVpbGRfcHkgY29tbWFuZCBpcyBub3QgZXhwZWN0ZWQgdG8gY29weSBhbnkgZmlsZXMuCi0rCi0g ICAgICMgd2Ugb3ZlcnJpZGUgZGlmZmVyZW50ICJidWlsZF9weSIgY29tbWFuZHMgZm9yIGJvdGgg ZW52aXJvbm1lbnRzCi0gICAgIGlmICdidWlsZF9weScgaW4gY21kczoKLS0gICAgICAgIF9idWls ZF9weSA9IGNtZHNbJ2J1aWxkX3B5J10KLS0gICAgZWxpZiAic2V0dXB0b29scyIgaW4gc3lzLm1v ZHVsZXM6Ci0tICAgICAgICBmcm9tIHNldHVwdG9vbHMuY29tbWFuZC5idWlsZF9weSBpbXBvcnQg YnVpbGRfcHkgYXMgX2J1aWxkX3B5Ci0rICAgICAgICBfYnVpbGRfcHk6IEFueSA9IGNtZHNbJ2J1 aWxkX3B5J10KLSAgICAgZWxzZToKLS0gICAgICAgIGZyb20gZGlzdHV0aWxzLmNvbW1hbmQuYnVp bGRfcHkgaW1wb3J0IGJ1aWxkX3B5IGFzIF9idWlsZF9weQotKyAgICAgICAgZnJvbSBzZXR1cHRv b2xzLmNvbW1hbmQuYnVpbGRfcHkgaW1wb3J0IGJ1aWxkX3B5IGFzIF9idWlsZF9weQotIAotICAg ICBjbGFzcyBjbWRfYnVpbGRfcHkoX2J1aWxkX3B5KToKLS0gICAgICAgIGRlZiBydW4oc2VsZik6 Ci0rICAgICAgICBkZWYgcnVuKHNlbGYpIC0+IE5vbmU6Ci0gICAgICAgICAgICAgcm9vdCA9IGdl dF9yb290KCkKLSAgICAgICAgICAgICBjZmcgPSBnZXRfY29uZmlnX2Zyb21fcm9vdChyb290KQot ICAgICAgICAgICAgIHZlcnNpb25zID0gZ2V0X3ZlcnNpb25zKCkKLSAgICAgICAgICAgICBfYnVp bGRfcHkucnVuKHNlbGYpCi0rICAgICAgICAgICAgaWYgZ2V0YXR0cihzZWxmLCAiZWRpdGFibGVf bW9kZSIsIEZhbHNlKToKLSsgICAgICAgICAgICAgICAgIyBEdXJpbmcgZWRpdGFibGUgaW5zdGFs bHMgYC5weWAgYW5kIGRhdGEgZmlsZXMgYXJlCi0rICAgICAgICAgICAgICAgICMgbm90IGNvcGll ZCB0byBidWlsZF9saWIKLSsgICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICAgIyBu b3cgbG9jYXRlIF92ZXJzaW9uLnB5IGluIHRoZSBuZXcgYnVpbGQvIGRpcmVjdG9yeSBhbmQgcmVw bGFjZQotICAgICAgICAgICAgICMgaXQgd2l0aCBhbiB1cGRhdGVkIHZhbHVlCi0gICAgICAgICAg ICAgaWYgY2ZnLnZlcnNpb25maWxlX2J1aWxkOgotQEAgLTE4MTAsMTQgKzE5NjIsMTIgQEAgZGVm IGdldF9jbWRjbGFzcyhjbWRjbGFzcz1Ob25lKToKLSAgICAgY21kc1siYnVpbGRfcHkiXSA9IGNt ZF9idWlsZF9weQotIAotICAgICBpZiAnYnVpbGRfZXh0JyBpbiBjbWRzOgotLSAgICAgICAgX2J1 aWxkX2V4dCA9IGNtZHNbJ2J1aWxkX2V4dCddCi0tICAgIGVsaWYgInNldHVwdG9vbHMiIGluIHN5 cy5tb2R1bGVzOgotLSAgICAgICAgZnJvbSBzZXR1cHRvb2xzLmNvbW1hbmQuYnVpbGRfZXh0IGlt cG9ydCBidWlsZF9leHQgYXMgX2J1aWxkX2V4dAotKyAgICAgICAgX2J1aWxkX2V4dDogQW55ID0g Y21kc1snYnVpbGRfZXh0J10KLSAgICAgZWxzZToKLS0gICAgICAgIGZyb20gZGlzdHV0aWxzLmNv bW1hbmQuYnVpbGRfZXh0IGltcG9ydCBidWlsZF9leHQgYXMgX2J1aWxkX2V4dAotKyAgICAgICAg ZnJvbSBzZXR1cHRvb2xzLmNvbW1hbmQuYnVpbGRfZXh0IGltcG9ydCBidWlsZF9leHQgYXMgX2J1 aWxkX2V4dAotIAotICAgICBjbGFzcyBjbWRfYnVpbGRfZXh0KF9idWlsZF9leHQpOgotLSAgICAg ICAgZGVmIHJ1bihzZWxmKToKLSsgICAgICAgIGRlZiBydW4oc2VsZikgLT4gTm9uZToKLSAgICAg ICAgICAgICByb290ID0gZ2V0X3Jvb3QoKQotICAgICAgICAgICAgIGNmZyA9IGdldF9jb25maWdf ZnJvbV9yb290KHJvb3QpCi0gICAgICAgICAgICAgdmVyc2lvbnMgPSBnZXRfdmVyc2lvbnMoKQot QEAgLTE4MzAsMTQgKzE5ODAsMjEgQEAgZGVmIGdldF9jbWRjbGFzcyhjbWRjbGFzcz1Ob25lKToK LSAgICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICAgIyBub3cgbG9jYXRlIF92ZXJz aW9uLnB5IGluIHRoZSBuZXcgYnVpbGQvIGRpcmVjdG9yeSBhbmQgcmVwbGFjZQotICAgICAgICAg ICAgICMgaXQgd2l0aCBhbiB1cGRhdGVkIHZhbHVlCi0rICAgICAgICAgICAgaWYgbm90IGNmZy52 ZXJzaW9uZmlsZV9idWlsZDoKLSsgICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICAg dGFyZ2V0X3ZlcnNpb25maWxlID0gb3MucGF0aC5qb2luKHNlbGYuYnVpbGRfbGliLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZmcudmVyc2lvbmZpbGVf YnVpbGQpCi0rICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKHRhcmdldF92ZXJzaW9u ZmlsZSk6Ci0rICAgICAgICAgICAgICAgIHByaW50KGYiV2FybmluZzoge3RhcmdldF92ZXJzaW9u ZmlsZX0gZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nICIKLSsgICAgICAgICAgICAgICAgICAgICAg InZlcnNpb24gdXBkYXRlLiBUaGlzIGNhbiBoYXBwZW4gaWYgeW91IGFyZSBydW5uaW5nIGJ1aWxk X2V4dCAiCi0rICAgICAgICAgICAgICAgICAgICAgICJ3aXRob3V0IGZpcnN0IHJ1bm5pbmcgYnVp bGRfcHkuIikKLSsgICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICAgcHJpbnQoIlVQ REFUSU5HICVzIiAlIHRhcmdldF92ZXJzaW9uZmlsZSkKLSAgICAgICAgICAgICB3cml0ZV90b192 ZXJzaW9uX2ZpbGUodGFyZ2V0X3ZlcnNpb25maWxlLCB2ZXJzaW9ucykKLSAgICAgY21kc1siYnVp bGRfZXh0Il0gPSBjbWRfYnVpbGRfZXh0Ci0gCi0gICAgIGlmICJjeF9GcmVlemUiIGluIHN5cy5t b2R1bGVzOiAgIyBjeF9mcmVlemUgZW5hYmxlZD8KLS0gICAgICAgIGZyb20gY3hfRnJlZXplLmRp c3QgaW1wb3J0IGJ1aWxkX2V4ZSBhcyBfYnVpbGRfZXhlCi0rICAgICAgICBmcm9tIGN4X0ZyZWV6 ZS5kaXN0IGltcG9ydCBidWlsZF9leGUgYXMgX2J1aWxkX2V4ZSAgIyB0eXBlOiBpZ25vcmUKLSAg ICAgICAgICMgbmN6ZWN6dWxpbiByZXBvcnRzIHRoYXQgcHkyZXhlIHdvbid0IGxpa2UgdGhlIHBl cDQ0MC1zdHlsZSBzdHJpbmcKLSAgICAgICAgICMgYXMgRklMRVZFUlNJT04sIGJ1dCBpdCBjYW4g YmUgdXNlZCBmb3IgUFJPRFVDVFZFUlNJT04sIGUuZy4KLSAgICAgICAgICMgc2V0dXAoY29uc29s ZT1bewotQEAgLTE4NDYsNyArMjAwMyw3IEBAIGRlZiBnZXRfY21kY2xhc3MoY21kY2xhc3M9Tm9u ZSk6Ci0gICAgICAgICAjICAgLi4uCi0gCi0gICAgICAgICBjbGFzcyBjbWRfYnVpbGRfZXhlKF9i dWlsZF9leGUpOgotLSAgICAgICAgICAgIGRlZiBydW4oc2VsZik6Ci0rICAgICAgICAgICAgZGVm IHJ1bihzZWxmKSAtPiBOb25lOgotICAgICAgICAgICAgICAgICByb290ID0gZ2V0X3Jvb3QoKQot ICAgICAgICAgICAgICAgICBjZmcgPSBnZXRfY29uZmlnX2Zyb21fcm9vdChyb290KQotICAgICAg ICAgICAgICAgICB2ZXJzaW9ucyA9IGdldF92ZXJzaW9ucygpCi1AQCAtMTg2OSwxMCArMjAyNiwx MyBAQCBkZWYgZ2V0X2NtZGNsYXNzKGNtZGNsYXNzPU5vbmUpOgotICAgICAgICAgZGVsIGNtZHNb ImJ1aWxkX3B5Il0KLSAKLSAgICAgaWYgJ3B5MmV4ZScgaW4gc3lzLm1vZHVsZXM6ICAjIHB5MmV4 ZSBlbmFibGVkPwotLSAgICAgICAgZnJvbSBweTJleGUuZGlzdHV0aWxzX2J1aWxkZXhlIGltcG9y dCBweTJleGUgYXMgX3B5MmV4ZQotKyAgICAgICAgdHJ5OgotKyAgICAgICAgICAgIGZyb20gcHky ZXhlLnNldHVwdG9vbHNfYnVpbGRleGUgaW1wb3J0IHB5MmV4ZSBhcyBfcHkyZXhlICAjIHR5cGU6 IGlnbm9yZQotKyAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgotKyAgICAgICAgICAgIGZyb20g cHkyZXhlLmRpc3R1dGlsc19idWlsZGV4ZSBpbXBvcnQgcHkyZXhlIGFzIF9weTJleGUgICMgdHlw ZTogaWdub3JlCi0gCi0gICAgICAgICBjbGFzcyBjbWRfcHkyZXhlKF9weTJleGUpOgotLSAgICAg ICAgICAgIGRlZiBydW4oc2VsZik6Ci0rICAgICAgICAgICAgZGVmIHJ1bihzZWxmKSAtPiBOb25l OgotICAgICAgICAgICAgICAgICByb290ID0gZ2V0X3Jvb3QoKQotICAgICAgICAgICAgICAgICBj ZmcgPSBnZXRfY29uZmlnX2Zyb21fcm9vdChyb290KQotICAgICAgICAgICAgICAgICB2ZXJzaW9u cyA9IGdldF92ZXJzaW9ucygpCi1AQCAtMTg5MywxNiArMjA1Myw1MSBAQCBkZWYgZ2V0X2NtZGNs YXNzKGNtZGNsYXNzPU5vbmUpOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKLSAg ICAgICAgIGNtZHNbInB5MmV4ZSJdID0gY21kX3B5MmV4ZQotIAotKyAgICAjIHNkaXN0IGZhcm1z IGl0cyBmaWxlIGxpc3QgYnVpbGRpbmcgb3V0IHRvIGVnZ19pbmZvCi0rICAgIGlmICdlZ2dfaW5m bycgaW4gY21kczoKLSsgICAgICAgIF9lZ2dfaW5mbzogQW55ID0gY21kc1snZWdnX2luZm8nXQot KyAgICBlbHNlOgotKyAgICAgICAgZnJvbSBzZXR1cHRvb2xzLmNvbW1hbmQuZWdnX2luZm8gaW1w b3J0IGVnZ19pbmZvIGFzIF9lZ2dfaW5mbwotKwotKyAgICBjbGFzcyBjbWRfZWdnX2luZm8oX2Vn Z19pbmZvKToKLSsgICAgICAgIGRlZiBmaW5kX3NvdXJjZXMoc2VsZikgLT4gTm9uZToKLSsgICAg ICAgICAgICAjIGVnZ19pbmZvLmZpbmRfc291cmNlcyBidWlsZHMgdGhlIG1hbmlmZXN0IGxpc3Qg YW5kIHdyaXRlcyBpdAotKyAgICAgICAgICAgICMgaW4gb25lIHNob3QKLSsgICAgICAgICAgICBz dXBlcigpLmZpbmRfc291cmNlcygpCi0rCi0rICAgICAgICAgICAgIyBNb2RpZnkgdGhlIGZpbGVs aXN0IGFuZCBub3JtYWxpemUgaXQKLSsgICAgICAgICAgICByb290ID0gZ2V0X3Jvb3QoKQotKyAg ICAgICAgICAgIGNmZyA9IGdldF9jb25maWdfZnJvbV9yb290KHJvb3QpCi0rICAgICAgICAgICAg c2VsZi5maWxlbGlzdC5hcHBlbmQoJ3ZlcnNpb25lZXIucHknKQotKyAgICAgICAgICAgIGlmIGNm Zy52ZXJzaW9uZmlsZV9zb3VyY2U6Ci0rICAgICAgICAgICAgICAgICMgVGhlcmUgYXJlIHJhcmUg Y2FzZXMgd2hlcmUgdmVyc2lvbmZpbGVfc291cmNlIG1pZ2h0IG5vdCBiZQotKyAgICAgICAgICAg ICAgICAjIGluY2x1ZGVkIGJ5IGRlZmF1bHQsIHNvIHdlIG11c3QgYmUgZXhwbGljaXQKLSsgICAg ICAgICAgICAgICAgc2VsZi5maWxlbGlzdC5hcHBlbmQoY2ZnLnZlcnNpb25maWxlX3NvdXJjZSkK LSsgICAgICAgICAgICBzZWxmLmZpbGVsaXN0LnNvcnQoKQotKyAgICAgICAgICAgIHNlbGYuZmls ZWxpc3QucmVtb3ZlX2R1cGxpY2F0ZXMoKQotKwotKyAgICAgICAgICAgICMgVGhlIHdyaXRlIG1l dGhvZCBpcyBoaWRkZW4gaW4gdGhlIG1hbmlmZXN0X21ha2VyIGluc3RhbmNlIHRoYXQKLSsgICAg ICAgICAgICAjIGdlbmVyYXRlZCB0aGUgZmlsZWxpc3QgYW5kIHdhcyB0aHJvd24gYXdheQotKyAg ICAgICAgICAgICMgV2Ugd2lsbCBpbnN0ZWFkIHJlcGxpY2F0ZSB0aGVpciBmaW5hbCBub3JtYWxp emF0aW9uICh0byB1bmljb2RlLAotKyAgICAgICAgICAgICMgYW5kIFBPU0lYLXN0eWxlIHBhdGhz KQotKyAgICAgICAgICAgIGZyb20gc2V0dXB0b29scyBpbXBvcnQgdW5pY29kZV91dGlscwotKyAg ICAgICAgICAgIG5vcm1hbGl6ZWQgPSBbdW5pY29kZV91dGlscy5maWxlc3lzX2RlY29kZShmKS5y ZXBsYWNlKG9zLnNlcCwgJy8nKQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGYgaW4g c2VsZi5maWxlbGlzdC5maWxlc10KLSsKLSsgICAgICAgICAgICBtYW5pZmVzdF9maWxlbmFtZSA9 IG9zLnBhdGguam9pbihzZWxmLmVnZ19pbmZvLCAnU09VUkNFUy50eHQnKQotKyAgICAgICAgICAg IHdpdGggb3BlbihtYW5pZmVzdF9maWxlbmFtZSwgJ3cnKSBhcyBmb2JqOgotKyAgICAgICAgICAg ICAgICBmb2JqLndyaXRlKCdcbicuam9pbihub3JtYWxpemVkKSkKLSsKLSsgICAgY21kc1snZWdn X2luZm8nXSA9IGNtZF9lZ2dfaW5mbwotKwotICAgICAjIHdlIG92ZXJyaWRlIGRpZmZlcmVudCAi c2Rpc3QiIGNvbW1hbmRzIGZvciBib3RoIGVudmlyb25tZW50cwotICAgICBpZiAnc2Rpc3QnIGlu IGNtZHM6Ci0tICAgICAgICBfc2Rpc3QgPSBjbWRzWydzZGlzdCddCi0tICAgIGVsaWYgInNldHVw dG9vbHMiIGluIHN5cy5tb2R1bGVzOgotLSAgICAgICAgZnJvbSBzZXR1cHRvb2xzLmNvbW1hbmQu c2Rpc3QgaW1wb3J0IHNkaXN0IGFzIF9zZGlzdAotKyAgICAgICAgX3NkaXN0OiBBbnkgPSBjbWRz WydzZGlzdCddCi0gICAgIGVsc2U6Ci0tICAgICAgICBmcm9tIGRpc3R1dGlscy5jb21tYW5kLnNk aXN0IGltcG9ydCBzZGlzdCBhcyBfc2Rpc3QKLSsgICAgICAgIGZyb20gc2V0dXB0b29scy5jb21t YW5kLnNkaXN0IGltcG9ydCBzZGlzdCBhcyBfc2Rpc3QKLSAKLSAgICAgY2xhc3MgY21kX3NkaXN0 KF9zZGlzdCk6Ci0tICAgICAgICBkZWYgcnVuKHNlbGYpOgotKyAgICAgICAgZGVmIHJ1bihzZWxm KSAtPiBOb25lOgotICAgICAgICAgICAgIHZlcnNpb25zID0gZ2V0X3ZlcnNpb25zKCkKLSAgICAg ICAgICAgICBzZWxmLl92ZXJzaW9uZWVyX2dlbmVyYXRlZF92ZXJzaW9ucyA9IHZlcnNpb25zCi0g ICAgICAgICAgICAgIyB1bmxlc3Mgd2UgdXBkYXRlIHRoaXMsIHRoZSBjb21tYW5kIHdpbGwga2Vl cCB1c2luZyB0aGUgb2xkCi1AQCAtMTkxMCw3ICsyMTA1LDcgQEAgZGVmIGdldF9jbWRjbGFzcyhj bWRjbGFzcz1Ob25lKToKLSAgICAgICAgICAgICBzZWxmLmRpc3RyaWJ1dGlvbi5tZXRhZGF0YS52 ZXJzaW9uID0gdmVyc2lvbnNbInZlcnNpb24iXQotICAgICAgICAgICAgIHJldHVybiBfc2Rpc3Qu cnVuKHNlbGYpCi0gCi0tICAgICAgICBkZWYgbWFrZV9yZWxlYXNlX3RyZWUoc2VsZiwgYmFzZV9k aXIsIGZpbGVzKToKLSsgICAgICAgIGRlZiBtYWtlX3JlbGVhc2VfdHJlZShzZWxmLCBiYXNlX2Rp cjogc3RyLCBmaWxlczogTGlzdFtzdHJdKSAtPiBOb25lOgotICAgICAgICAgICAgIHJvb3QgPSBn ZXRfcm9vdCgpCi0gICAgICAgICAgICAgY2ZnID0gZ2V0X2NvbmZpZ19mcm9tX3Jvb3Qocm9vdCkK LSAgICAgICAgICAgICBfc2Rpc3QubWFrZV9yZWxlYXNlX3RyZWUoc2VsZiwgYmFzZV9kaXIsIGZp bGVzKQotQEAgLTE5NzUsNyArMjE3MCw3IEBAIF9fdmVyc2lvbl9fID0gezB9LmdldF92ZXJzaW9u cygpWyd2ZXJzaW9uJ10KLSAiIiIKLSAKLSAKLS1kZWYgZG9fc2V0dXAoKToKLStkZWYgZG9fc2V0 dXAoKSAtPiBpbnQ6Ci0gICAgICIiIkRvIG1haW4gVkNTLWluZGVwZW5kZW50IHNldHVwIGZ1bmN0 aW9uIGZvciBpbnN0YWxsaW5nIFZlcnNpb25lZXIuIiIiCi0gICAgIHJvb3QgPSBnZXRfcm9vdCgp Ci0gICAgIHRyeToKLUBAIC0yMDAyLDYgKzIxOTcsNyBAQCBkZWYgZG9fc2V0dXAoKToKLSAKLSAg ICAgaXB5ID0gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShjZmcudmVyc2lvbmZpbGVfc291 cmNlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJfX2luaXRfXy5weSIpCi0rICAgIG1heWJl X2lweTogT3B0aW9uYWxbc3RyXSA9IGlweQotICAgICBpZiBvcy5wYXRoLmV4aXN0cyhpcHkpOgot ICAgICAgICAgdHJ5OgotICAgICAgICAgICAgIHdpdGggb3BlbihpcHksICJyIikgYXMgZjoKLUBA IC0yMDIyLDQ4ICsyMjE4LDE2IEBAIGRlZiBkb19zZXR1cCgpOgotICAgICAgICAgICAgIHByaW50 KCIgJXMgdW5tb2RpZmllZCIgJSBpcHkpCi0gICAgIGVsc2U6Ci0gICAgICAgICBwcmludCgiICVz IGRvZXNuJ3QgZXhpc3QsIG9rIiAlIGlweSkKLS0gICAgICAgIGlweSA9IE5vbmUKLS0KLS0gICAg IyBNYWtlIHN1cmUgYm90aCB0aGUgdG9wLWxldmVsICJ2ZXJzaW9uZWVyLnB5IiBhbmQgdmVyc2lv bmZpbGVfc291cmNlCi0tICAgICMgKFBLRy9fdmVyc2lvbi5weSwgdXNlZCBieSBydW50aW1lIGNv ZGUpIGFyZSBpbiBNQU5JRkVTVC5pbiwgc28KLS0gICAgIyB0aGV5J2xsIGJlIGNvcGllZCBpbnRv IHNvdXJjZSBkaXN0cmlidXRpb25zLiBQaXAgd29uJ3QgYmUgYWJsZSB0bwotLSAgICAjIGluc3Rh bGwgdGhlIHBhY2thZ2Ugd2l0aG91dCB0aGlzLgotLSAgICBtYW5pZmVzdF9pbiA9IG9zLnBhdGgu am9pbihyb290LCAiTUFOSUZFU1QuaW4iKQotLSAgICBzaW1wbGVfaW5jbHVkZXMgPSBzZXQoKQot LSAgICB0cnk6Ci0tICAgICAgICB3aXRoIG9wZW4obWFuaWZlc3RfaW4sICJyIikgYXMgZjoKLS0g ICAgICAgICAgICBmb3IgbGluZSBpbiBmOgotLSAgICAgICAgICAgICAgICBpZiBsaW5lLnN0YXJ0 c3dpdGgoImluY2x1ZGUgIik6Ci0tICAgICAgICAgICAgICAgICAgICBmb3IgaW5jbHVkZSBpbiBs aW5lLnNwbGl0KClbMTpdOgotLSAgICAgICAgICAgICAgICAgICAgICAgIHNpbXBsZV9pbmNsdWRl cy5hZGQoaW5jbHVkZSkKLS0gICAgZXhjZXB0IE9TRXJyb3I6Ci0tICAgICAgICBwYXNzCi0tICAg ICMgVGhhdCBkb2Vzbid0IGNvdmVyIGV2ZXJ5dGhpbmcgTUFOSUZFU1QuaW4gY2FuIGRvCi0tICAg ICMgKGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvMi9kaXN0dXRpbHMvc291cmNlZGlzdC5odG1sI2Nv bW1hbmRzKSwgc28KLS0gICAgIyBpdCBtaWdodCBnaXZlIHNvbWUgZmFsc2UgbmVnYXRpdmVzLiBB cHBlbmRpbmcgcmVkdW5kYW50ICdpbmNsdWRlJwotLSAgICAjIGxpbmVzIGlzIHNhZmUsIHRob3Vn aC4KLS0gICAgaWYgInZlcnNpb25lZXIucHkiIG5vdCBpbiBzaW1wbGVfaW5jbHVkZXM6Ci0tICAg ICAgICBwcmludCgiIGFwcGVuZGluZyAndmVyc2lvbmVlci5weScgdG8gTUFOSUZFU1QuaW4iKQot LSAgICAgICAgd2l0aCBvcGVuKG1hbmlmZXN0X2luLCAiYSIpIGFzIGY6Ci0tICAgICAgICAgICAg Zi53cml0ZSgiaW5jbHVkZSB2ZXJzaW9uZWVyLnB5XG4iKQotLSAgICBlbHNlOgotLSAgICAgICAg cHJpbnQoIiAndmVyc2lvbmVlci5weScgYWxyZWFkeSBpbiBNQU5JRkVTVC5pbiIpCi0tICAgIGlm IGNmZy52ZXJzaW9uZmlsZV9zb3VyY2Ugbm90IGluIHNpbXBsZV9pbmNsdWRlczoKLS0gICAgICAg IHByaW50KCIgYXBwZW5kaW5nIHZlcnNpb25maWxlX3NvdXJjZSAoJyVzJykgdG8gTUFOSUZFU1Qu aW4iICUKLS0gICAgICAgICAgICAgIGNmZy52ZXJzaW9uZmlsZV9zb3VyY2UpCi0tICAgICAgICB3 aXRoIG9wZW4obWFuaWZlc3RfaW4sICJhIikgYXMgZjoKLS0gICAgICAgICAgICBmLndyaXRlKCJp bmNsdWRlICVzXG4iICUgY2ZnLnZlcnNpb25maWxlX3NvdXJjZSkKLS0gICAgZWxzZToKLS0gICAg ICAgIHByaW50KCIgdmVyc2lvbmZpbGVfc291cmNlIGFscmVhZHkgaW4gTUFOSUZFU1QuaW4iKQot KyAgICAgICAgbWF5YmVfaXB5ID0gTm9uZQotIAotICAgICAjIE1ha2UgVkNTLXNwZWNpZmljIGNo YW5nZXMuIEZvciBnaXQsIHRoaXMgbWVhbnMgY3JlYXRpbmcvY2hhbmdpbmcKLSAgICAgIyAuZ2l0 YXR0cmlidXRlcyB0byBtYXJrIF92ZXJzaW9uLnB5IGZvciBleHBvcnQtc3Vic3Qga2V5d29yZAot ICAgICAjIHN1YnN0aXR1dGlvbi4KLS0gICAgZG9fdmNzX2luc3RhbGwobWFuaWZlc3RfaW4sIGNm Zy52ZXJzaW9uZmlsZV9zb3VyY2UsIGlweSkKLSsgICAgZG9fdmNzX2luc3RhbGwoY2ZnLnZlcnNp b25maWxlX3NvdXJjZSwgbWF5YmVfaXB5KQotICAgICByZXR1cm4gMAotIAotIAotLWRlZiBzY2Fu X3NldHVwX3B5KCk6Ci0rZGVmIHNjYW5fc2V0dXBfcHkoKSAtPiBpbnQ6Ci0gICAgICIiIlZhbGlk YXRlIHRoZSBjb250ZW50cyBvZiBzZXR1cC5weSBhZ2FpbnN0IFZlcnNpb25lZXIncyBleHBlY3Rh dGlvbnMuIiIiCi0gICAgIGZvdW5kID0gc2V0KCkKLSAgICAgc2V0dGVycyA9IEZhbHNlCi1AQCAt MjEwMCwxMCArMjI2NCwxNCBAQCBkZWYgc2Nhbl9zZXR1cF9weSgpOgotICAgICByZXR1cm4gZXJy b3JzCi0gCi0gCi0rZGVmIHNldHVwX2NvbW1hbmQoKSAtPiBOb1JldHVybjoKLSsgICAgIiIiU2V0 IHVwIFZlcnNpb25lZXIgYW5kIGV4aXQgd2l0aCBhcHByb3ByaWF0ZSBlcnJvciBjb2RlLiIiIgot KyAgICBlcnJvcnMgPSBkb19zZXR1cCgpCi0rICAgIGVycm9ycyArPSBzY2FuX3NldHVwX3B5KCkK LSsgICAgc3lzLmV4aXQoMSBpZiBlcnJvcnMgZWxzZSAwKQotKwotKwotIGlmIF9fbmFtZV9fID09 ICJfX21haW5fXyI6Ci0gICAgIGNtZCA9IHN5cy5hcmd2WzFdCi0gICAgIGlmIGNtZCA9PSAic2V0 dXAiOgotLSAgICAgICAgZXJyb3JzID0gZG9fc2V0dXAoKQotLSAgICAgICAgZXJyb3JzICs9IHNj YW5fc2V0dXBfcHkoKQotLSAgICAgICAgaWYgZXJyb3JzOgotLSAgICAgICAgICAgIHN5cy5leGl0 KDEpCi0rICAgICAgICBzZXR1cF9jb21tYW5kKCkKLWRpZmYgLS1naXQgYS94bmF0NHRlc3RzL192 ZXJzaW9uLnB5IGIveG5hdDR0ZXN0cy9fdmVyc2lvbi5weQotaW5kZXggOGU0MWI4MC4uM2YwYWI3 YiAxMDA2NDQKLS0tLSBhL3huYXQ0dGVzdHMvX3ZlcnNpb24ucHkKLSsrKyBiL3huYXQ0dGVzdHMv X3ZlcnNpb24ucHkKLUBAIC0xLDExICsxLDEzIEBACi0rCi0gIyBUaGlzIGZpbGUgaGVscHMgdG8g Y29tcHV0ZSBhIHZlcnNpb24gbnVtYmVyIGluIHNvdXJjZSB0cmVlcyBvYnRhaW5lZCBmcm9tCi0g IyBnaXQtYXJjaGl2ZSB0YXJiYWxsIChzdWNoIGFzIHRob3NlIHByb3ZpZGVkIGJ5IGdpdGh1YnMg ZG93bmxvYWQtZnJvbS10YWcKLSAjIGZlYXR1cmUpLiBEaXN0cmlidXRpb24gdGFyYmFsbHMgKGJ1 aWx0IGJ5IHNldHVwLnB5IHNkaXN0KSBhbmQgYnVpbGQKLSAjIGRpcmVjdG9yaWVzIChwcm9kdWNl ZCBieSBzZXR1cC5weSBidWlsZCkgd2lsbCBjb250YWluIGEgbXVjaCBzaG9ydGVyIGZpbGUKLSAj IHRoYXQganVzdCBjb250YWlucyB0aGUgY29tcHV0ZWQgdmVyc2lvbiBudW1iZXIuCi0gCi0tIyBU aGlzIGZpbGUgaXMgcmVsZWFzZWQgaW50byB0aGUgcHVibGljIGRvbWFpbi4gR2VuZXJhdGVkIGJ5 Ci0tIyB2ZXJzaW9uZWVyLTAuMjEgKGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24tdmVyc2lvbmVl ci9weXRob24tdmVyc2lvbmVlcikKLSsjIFRoaXMgZmlsZSBpcyByZWxlYXNlZCBpbnRvIHRoZSBw dWJsaWMgZG9tYWluLgotKyMgR2VuZXJhdGVkIGJ5IHZlcnNpb25lZXItMC4yOQotKyMgaHR0cHM6 Ly9naXRodWIuY29tL3B5dGhvbi12ZXJzaW9uZWVyL3B5dGhvbi12ZXJzaW9uZWVyCi0gCi0gIiIi R2l0IGltcGxlbWVudGF0aW9uIG9mIF92ZXJzaW9uLnB5LiIiIgotIAotQEAgLTE0LDEwICsxNiwx MSBAQCBpbXBvcnQgb3MKLSBpbXBvcnQgcmUKLSBpbXBvcnQgc3VicHJvY2VzcwotIGltcG9ydCBz eXMKLS1mcm9tIHR5cGluZyBpbXBvcnQgQ2FsbGFibGUsIERpY3QKLStmcm9tIHR5cGluZyBpbXBv cnQgQW55LCBDYWxsYWJsZSwgRGljdCwgTGlzdCwgT3B0aW9uYWwsIFR1cGxlCi0raW1wb3J0IGZ1 bmN0b29scwotIAotIAotLWRlZiBnZXRfa2V5d29yZHMoKToKLStkZWYgZ2V0X2tleXdvcmRzKCkg LT4gRGljdFtzdHIsIHN0cl06Ci0gICAgICIiIkdldCB0aGUga2V5d29yZHMgbmVlZGVkIHRvIGxv b2sgdXAgdGhlIHZlcnNpb24gaW5mb3JtYXRpb24uIiIiCi0gICAgICMgdGhlc2Ugc3RyaW5ncyB3 aWxsIGJlIHJlcGxhY2VkIGJ5IGdpdCBkdXJpbmcgZ2l0LWFyY2hpdmUuCi0gICAgICMgc2V0dXAu cHkvdmVyc2lvbmVlci5weSB3aWxsIGdyZXAgZm9yIHRoZSB2YXJpYWJsZSBuYW1lcywgc28gdGhl eSBtdXN0Ci1AQCAtMzMsMTUgKzM2LDIyIEBAIGRlZiBnZXRfa2V5d29yZHMoKToKLSBjbGFzcyBW ZXJzaW9uZWVyQ29uZmlnOgotICAgICAiIiJDb250YWluZXIgZm9yIFZlcnNpb25lZXIgY29uZmln dXJhdGlvbiBwYXJhbWV0ZXJzLiIiIgotIAotKyAgICBWQ1M6IHN0cgotKyAgICBzdHlsZTogc3Ry Ci0rICAgIHRhZ19wcmVmaXg6IHN0cgotKyAgICBwYXJlbnRkaXJfcHJlZml4OiBzdHIKLSsgICAg dmVyc2lvbmZpbGVfc291cmNlOiBzdHIKLSsgICAgdmVyYm9zZTogYm9vbAotKwotIAotLWRlZiBn ZXRfY29uZmlnKCk6Ci0rZGVmIGdldF9jb25maWcoKSAtPiBWZXJzaW9uZWVyQ29uZmlnOgotICAg ICAiIiJDcmVhdGUsIHBvcHVsYXRlIGFuZCByZXR1cm4gdGhlIFZlcnNpb25lZXJDb25maWcoKSBv YmplY3QuIiIiCi0gICAgICMgdGhlc2Ugc3RyaW5ncyBhcmUgZmlsbGVkIGluIHdoZW4gJ3NldHVw LnB5IHZlcnNpb25lZXInIGNyZWF0ZXMKLSAgICAgIyBfdmVyc2lvbi5weQotICAgICBjZmcgPSBW ZXJzaW9uZWVyQ29uZmlnKCkKLSAgICAgY2ZnLlZDUyA9ICJnaXQiCi0gICAgIGNmZy5zdHlsZSA9 ICJwZXA0NDAiCi0tICAgIGNmZy50YWdfcHJlZml4ID0gIiIKLSsgICAgY2ZnLnRhZ19wcmVmaXgg PSAidiIKLSAgICAgY2ZnLnBhcmVudGRpcl9wcmVmaXggPSAiTm9uZSIKLSAgICAgY2ZnLnZlcnNp b25maWxlX3NvdXJjZSA9ICJ4bmF0NHRlc3RzL192ZXJzaW9uLnB5IgotICAgICBjZmcudmVyYm9z ZSA9IEZhbHNlCi1AQCAtNTYsMzcgKzY2LDQ2IEBAIExPTkdfVkVSU0lPTl9QWTogRGljdFtzdHIs IHN0cl0gPSB7fQotIEhBTkRMRVJTOiBEaWN0W3N0ciwgRGljdFtzdHIsIENhbGxhYmxlXV0gPSB7 fQotIAotIAotLWRlZiByZWdpc3Rlcl92Y3NfaGFuZGxlcih2Y3MsIG1ldGhvZCk6ICAjIGRlY29y YXRvcgotK2RlZiByZWdpc3Rlcl92Y3NfaGFuZGxlcih2Y3M6IHN0ciwgbWV0aG9kOiBzdHIpIC0+ IENhbGxhYmxlOiAgIyBkZWNvcmF0b3IKLSAgICAgIiIiQ3JlYXRlIGRlY29yYXRvciB0byBtYXJr IGEgbWV0aG9kIGFzIHRoZSBoYW5kbGVyIG9mIGEgVkNTLiIiIgotLQotLSAgICBkZWYgZGVjb3Jh dGUoZik6Ci0rICAgIGRlZiBkZWNvcmF0ZShmOiBDYWxsYWJsZSkgLT4gQ2FsbGFibGU6Ci0gICAg ICAgICAiIiJTdG9yZSBmIGluIEhBTkRMRVJTW3Zjc11bbWV0aG9kXS4iIiIKLSAgICAgICAgIGlm IHZjcyBub3QgaW4gSEFORExFUlM6Ci0gICAgICAgICAgICAgSEFORExFUlNbdmNzXSA9IHt9Ci0g ICAgICAgICBIQU5ETEVSU1t2Y3NdW21ldGhvZF0gPSBmCi0gICAgICAgICByZXR1cm4gZgotLQot ICAgICByZXR1cm4gZGVjb3JhdGUKLSAKLSAKLS1kZWYgcnVuX2NvbW1hbmQoY29tbWFuZHMsIGFy Z3MsIGN3ZD1Ob25lLCB2ZXJib3NlPUZhbHNlLCBoaWRlX3N0ZGVycj1GYWxzZSwgZW52PU5vbmUp OgotK2RlZiBydW5fY29tbWFuZCgKLSsgICAgY29tbWFuZHM6IExpc3Rbc3RyXSwKLSsgICAgYXJn czogTGlzdFtzdHJdLAotKyAgICBjd2Q6IE9wdGlvbmFsW3N0cl0gPSBOb25lLAotKyAgICB2ZXJi b3NlOiBib29sID0gRmFsc2UsCi0rICAgIGhpZGVfc3RkZXJyOiBib29sID0gRmFsc2UsCi0rICAg IGVudjogT3B0aW9uYWxbRGljdFtzdHIsIHN0cl1dID0gTm9uZSwKLSspIC0+IFR1cGxlW09wdGlv bmFsW3N0cl0sIE9wdGlvbmFsW2ludF1dOgotICAgICAiIiJDYWxsIHRoZSBnaXZlbiBjb21tYW5k KHMpLiIiIgotICAgICBhc3NlcnQgaXNpbnN0YW5jZShjb21tYW5kcywgbGlzdCkKLSAgICAgcHJv Y2VzcyA9IE5vbmUKLSsKLSsgICAgcG9wZW5fa3dhcmdzOiBEaWN0W3N0ciwgQW55XSA9IHt9Ci0r ICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiOgotKyAgICAgICAgIyBUaGlzIGhpZGVzIHRo ZSBjb25zb2xlIHdpbmRvdyBpZiBweXRob253LmV4ZSBpcyB1c2VkCi0rICAgICAgICBzdGFydHVw aW5mbyA9IHN1YnByb2Nlc3MuU1RBUlRVUElORk8oKQotKyAgICAgICAgc3RhcnR1cGluZm8uZHdG bGFncyB8PSBzdWJwcm9jZXNzLlNUQVJURl9VU0VTSE9XV0lORE9XCi0rICAgICAgICBwb3Blbl9r d2FyZ3NbInN0YXJ0dXBpbmZvIl0gPSBzdGFydHVwaW5mbwotKwotICAgICBmb3IgY29tbWFuZCBp biBjb21tYW5kczoKLSAgICAgICAgIHRyeToKLSAgICAgICAgICAgICBkaXNwY21kID0gc3RyKFtj b21tYW5kXSArIGFyZ3MpCi0gICAgICAgICAgICAgIyByZW1lbWJlciBzaGVsbD1GYWxzZSwgc28g dXNlIGdpdC5jbWQgb24gd2luZG93cywgbm90IGp1c3QgZ2l0Ci0tICAgICAgICAgICAgcHJvY2Vz cyA9IHN1YnByb2Nlc3MuUG9wZW4oCi0tICAgICAgICAgICAgICAgIFtjb21tYW5kXSArIGFyZ3Ms Ci0tICAgICAgICAgICAgICAgIGN3ZD1jd2QsCi0tICAgICAgICAgICAgICAgIGVudj1lbnYsCi0t ICAgICAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCi0tICAgICAgICAgICAgICAg IHN0ZGVycj0oc3VicHJvY2Vzcy5QSVBFIGlmIGhpZGVfc3RkZXJyIGVsc2UgTm9uZSksCi0tICAg ICAgICAgICAgKQotKyAgICAgICAgICAgIHByb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKFtjb21t YW5kXSArIGFyZ3MsIGN3ZD1jd2QsIGVudj1lbnYsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdGRlcnI9KHN1YnByb2Nlc3MuUElQRSBpZiBoaWRlX3N0 ZGVycgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxz ZSBOb25lKSwgKipwb3Blbl9rd2FyZ3MpCi0gICAgICAgICAgICAgYnJlYWsKLS0gICAgICAgIGV4 Y2VwdCBPU0Vycm9yOgotLSAgICAgICAgICAgIGUgPSBzeXMuZXhjX2luZm8oKVsxXQotKyAgICAg ICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKLSAgICAgICAgICAgICBpZiBlLmVycm5vID09IGVycm5v LkVOT0VOVDoKLSAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICBpZiB2ZXJi b3NlOgotQEAgLTEwNiw3ICsxMjUsMTEgQEAgZGVmIHJ1bl9jb21tYW5kKGNvbW1hbmRzLCBhcmdz LCBjd2Q9Tm9uZSwgdmVyYm9zZT1GYWxzZSwgaGlkZV9zdGRlcnI9RmFsc2UsIGVudj0KLSAgICAg cmV0dXJuIHN0ZG91dCwgcHJvY2Vzcy5yZXR1cm5jb2RlCi0gCi0gCi0tZGVmIHZlcnNpb25zX2Zy b21fcGFyZW50ZGlyKHBhcmVudGRpcl9wcmVmaXgsIHJvb3QsIHZlcmJvc2UpOgotK2RlZiB2ZXJz aW9uc19mcm9tX3BhcmVudGRpcigKLSsgICAgcGFyZW50ZGlyX3ByZWZpeDogc3RyLAotKyAgICBy b290OiBzdHIsCi0rICAgIHZlcmJvc2U6IGJvb2wsCi0rKSAtPiBEaWN0W3N0ciwgQW55XToKLSAg ICAgIiIiVHJ5IHRvIGRldGVybWluZSB0aGUgdmVyc2lvbiBmcm9tIHRoZSBwYXJlbnQgZGlyZWN0 b3J5IG5hbWUuCi0gCi0gICAgIFNvdXJjZSB0YXJiYWxscyBjb252ZW50aW9uYWxseSB1bnBhY2sg aW50byBhIGRpcmVjdG9yeSB0aGF0IGluY2x1ZGVzIGJvdGgKLUBAIC0xMTgsMzIgKzE0MSwyNiBA QCBkZWYgdmVyc2lvbnNfZnJvbV9wYXJlbnRkaXIocGFyZW50ZGlyX3ByZWZpeCwgcm9vdCwgdmVy Ym9zZSk6Ci0gICAgIGZvciBfIGluIHJhbmdlKDMpOgotICAgICAgICAgZGlybmFtZSA9IG9zLnBh dGguYmFzZW5hbWUocm9vdCkKLSAgICAgICAgIGlmIGRpcm5hbWUuc3RhcnRzd2l0aChwYXJlbnRk aXJfcHJlZml4KToKLS0gICAgICAgICAgICByZXR1cm4gewotLSAgICAgICAgICAgICAgICAidmVy c2lvbiI6IGRpcm5hbWVbbGVuKHBhcmVudGRpcl9wcmVmaXgpIDpdLAotLSAgICAgICAgICAgICAg ICAiZnVsbC1yZXZpc2lvbmlkIjogTm9uZSwKLS0gICAgICAgICAgICAgICAgImRpcnR5IjogRmFs c2UsCi0tICAgICAgICAgICAgICAgICJlcnJvciI6IE5vbmUsCi0tICAgICAgICAgICAgICAgICJk YXRlIjogTm9uZSwKLS0gICAgICAgICAgICB9Ci0rICAgICAgICAgICAgcmV0dXJuIHsidmVyc2lv biI6IGRpcm5hbWVbbGVuKHBhcmVudGRpcl9wcmVmaXgpOl0sCi0rICAgICAgICAgICAgICAgICAg ICAiZnVsbC1yZXZpc2lvbmlkIjogTm9uZSwKLSsgICAgICAgICAgICAgICAgICAgICJkaXJ0eSI6 IEZhbHNlLCAiZXJyb3IiOiBOb25lLCAiZGF0ZSI6IE5vbmV9Ci0gICAgICAgICByb290ZGlycy5h cHBlbmQocm9vdCkKLSAgICAgICAgIHJvb3QgPSBvcy5wYXRoLmRpcm5hbWUocm9vdCkgICMgdXAg YSBsZXZlbAotIAotICAgICBpZiB2ZXJib3NlOgotLSAgICAgICAgcHJpbnQoCi0tICAgICAgICAg ICAgIlRyaWVkIGRpcmVjdG9yaWVzICVzIGJ1dCBub25lIHN0YXJ0ZWQgd2l0aCBwcmVmaXggJXMi Ci0tICAgICAgICAgICAgJSAoc3RyKHJvb3RkaXJzKSwgcGFyZW50ZGlyX3ByZWZpeCkKLS0gICAg ICAgICkKLSsgICAgICAgIHByaW50KCJUcmllZCBkaXJlY3RvcmllcyAlcyBidXQgbm9uZSBzdGFy dGVkIHdpdGggcHJlZml4ICVzIiAlCi0rICAgICAgICAgICAgICAoc3RyKHJvb3RkaXJzKSwgcGFy ZW50ZGlyX3ByZWZpeCkpCi0gICAgIHJhaXNlIE5vdFRoaXNNZXRob2QoInJvb3RkaXIgZG9lc24n dCBzdGFydCB3aXRoIHBhcmVudGRpcl9wcmVmaXgiKQotIAotIAotIEByZWdpc3Rlcl92Y3NfaGFu ZGxlcigiZ2l0IiwgImdldF9rZXl3b3JkcyIpCi0tZGVmIGdpdF9nZXRfa2V5d29yZHModmVyc2lv bmZpbGVfYWJzKToKLStkZWYgZ2l0X2dldF9rZXl3b3Jkcyh2ZXJzaW9uZmlsZV9hYnM6IHN0cikg LT4gRGljdFtzdHIsIHN0cl06Ci0gICAgICIiIkV4dHJhY3QgdmVyc2lvbiBpbmZvcm1hdGlvbiBm cm9tIHRoZSBnaXZlbiBmaWxlLiIiIgotICAgICAjIHRoZSBjb2RlIGVtYmVkZGVkIGluIF92ZXJz aW9uLnB5IGNhbiBqdXN0IGZldGNoIHRoZSB2YWx1ZSBvZiB0aGVzZQotICAgICAjIGtleXdvcmRz LiBXaGVuIHVzZWQgZnJvbSBzZXR1cC5weSwgd2UgZG9uJ3Qgd2FudCB0byBpbXBvcnQgX3ZlcnNp b24ucHksCi0gICAgICMgc28gd2UgZG8gaXQgd2l0aCBhIHJlZ2V4cCBpbnN0ZWFkLiBUaGlzIGZ1 bmN0aW9uIGlzIG5vdCB1c2VkIGZyb20KLSAgICAgIyBfdmVyc2lvbi5weS4KLS0gICAga2V5d29y ZHMgPSB7fQotKyAgICBrZXl3b3JkczogRGljdFtzdHIsIHN0cl0gPSB7fQotICAgICB0cnk6Ci0g ICAgICAgICB3aXRoIG9wZW4odmVyc2lvbmZpbGVfYWJzLCAiciIpIGFzIGZvYmo6Ci0gICAgICAg ICAgICAgZm9yIGxpbmUgaW4gZm9iajoKLUBAIC0xNjUsNyArMTgyLDExIEBAIGRlZiBnaXRfZ2V0 X2tleXdvcmRzKHZlcnNpb25maWxlX2Ficyk6Ci0gCi0gCi0gQHJlZ2lzdGVyX3Zjc19oYW5kbGVy KCJnaXQiLCAia2V5d29yZHMiKQotLWRlZiBnaXRfdmVyc2lvbnNfZnJvbV9rZXl3b3JkcyhrZXl3 b3JkcywgdGFnX3ByZWZpeCwgdmVyYm9zZSk6Ci0rZGVmIGdpdF92ZXJzaW9uc19mcm9tX2tleXdv cmRzKAotKyAgICBrZXl3b3JkczogRGljdFtzdHIsIHN0cl0sCi0rICAgIHRhZ19wcmVmaXg6IHN0 ciwKLSsgICAgdmVyYm9zZTogYm9vbCwKLSspIC0+IERpY3Rbc3RyLCBBbnldOgotICAgICAiIiJH ZXQgdmVyc2lvbiBpbmZvcm1hdGlvbiBmcm9tIGdpdCBrZXl3b3Jkcy4iIiIKLSAgICAgaWYgInJl Zm5hbWVzIiBub3QgaW4ga2V5d29yZHM6Ci0gICAgICAgICByYWlzZSBOb3RUaGlzTWV0aG9kKCJT aG9ydCB2ZXJzaW9uIGZpbGUgZm91bmQiKQotQEAgLTE5MSw3ICsyMTIsNyBAQCBkZWYgZ2l0X3Zl cnNpb25zX2Zyb21fa2V5d29yZHMoa2V5d29yZHMsIHRhZ19wcmVmaXgsIHZlcmJvc2UpOgotICAg ICAjIHN0YXJ0aW5nIGluIGdpdC0xLjguMywgdGFncyBhcmUgbGlzdGVkIGFzICJ0YWc6IGZvby0x LjAiIGluc3RlYWQgb2YKLSAgICAgIyBqdXN0ICJmb28tMS4wIi4gSWYgd2Ugc2VlIGEgInRhZzog IiBwcmVmaXgsIHByZWZlciB0aG9zZS4KLSAgICAgVEFHID0gInRhZzogIgotLSAgICB0YWdzID0g e3JbbGVuKFRBRykgOl0gZm9yIHIgaW4gcmVmcyBpZiByLnN0YXJ0c3dpdGgoVEFHKX0KLSsgICAg dGFncyA9IHtyW2xlbihUQUcpOl0gZm9yIHIgaW4gcmVmcyBpZiByLnN0YXJ0c3dpdGgoVEFHKX0K LSAgICAgaWYgbm90IHRhZ3M6Ci0gICAgICAgICAjIEVpdGhlciB3ZSdyZSB1c2luZyBnaXQgPCAx LjguMywgb3IgdGhlcmUgcmVhbGx5IGFyZSBubyB0YWdzLiBXZSB1c2UKLSAgICAgICAgICMgYSBo ZXVyaXN0aWM6IGFzc3VtZSBhbGwgdmVyc2lvbiB0YWdzIGhhdmUgYSBkaWdpdC4gVGhlIG9sZCBn aXQgJWQKLUBAIC0yMDAsNyArMjIxLDcgQEAgZGVmIGdpdF92ZXJzaW9uc19mcm9tX2tleXdvcmRz KGtleXdvcmRzLCB0YWdfcHJlZml4LCB2ZXJib3NlKToKLSAgICAgICAgICMgYmV0d2VlbiBicmFu Y2hlcyBhbmQgdGFncy4gQnkgaWdub3JpbmcgcmVmbmFtZXMgd2l0aG91dCBkaWdpdHMsIHdlCi0g ICAgICAgICAjIGZpbHRlciBvdXQgbWFueSBjb21tb24gYnJhbmNoIG5hbWVzIGxpa2UgInJlbGVh c2UiIGFuZAotICAgICAgICAgIyAic3RhYmlsaXphdGlvbiIsIGFzIHdlbGwgYXMgIkhFQUQiIGFu ZCAibWFzdGVyIi4KLS0gICAgICAgIHRhZ3MgPSB7ciBmb3IgciBpbiByZWZzIGlmIHJlLnNlYXJj aChyIlxkIiwgcil9Ci0rICAgICAgICB0YWdzID0ge3IgZm9yIHIgaW4gcmVmcyBpZiByZS5zZWFy Y2gocidcZCcsIHIpfQotICAgICAgICAgaWYgdmVyYm9zZToKLSAgICAgICAgICAgICBwcmludCgi ZGlzY2FyZGluZyAnJXMnLCBubyBkaWdpdHMiICUgIiwiLmpvaW4ocmVmcyAtIHRhZ3MpKQotICAg ICBpZiB2ZXJib3NlOgotQEAgLTIwOCwzNSArMjI5LDMzIEBAIGRlZiBnaXRfdmVyc2lvbnNfZnJv bV9rZXl3b3JkcyhrZXl3b3JkcywgdGFnX3ByZWZpeCwgdmVyYm9zZSk6Ci0gICAgIGZvciByZWYg aW4gc29ydGVkKHRhZ3MpOgotICAgICAgICAgIyBzb3J0aW5nIHdpbGwgcHJlZmVyIGUuZy4gIjIu MCIgb3ZlciAiMi4wcmMxIgotICAgICAgICAgaWYgcmVmLnN0YXJ0c3dpdGgodGFnX3ByZWZpeCk6 Ci0tICAgICAgICAgICAgciA9IHJlZltsZW4odGFnX3ByZWZpeCkgOl0KLSsgICAgICAgICAgICBy ID0gcmVmW2xlbih0YWdfcHJlZml4KTpdCi0gICAgICAgICAgICAgIyBGaWx0ZXIgb3V0IHJlZnMg dGhhdCBleGFjdGx5IG1hdGNoIHByZWZpeCBvciB0aGF0IGRvbid0IHN0YXJ0Ci0gICAgICAgICAg ICAgIyB3aXRoIGEgbnVtYmVyIG9uY2UgdGhlIHByZWZpeCBpcyBzdHJpcHBlZCAobW9zdGx5IGEg Y29uY2VybgotICAgICAgICAgICAgICMgd2hlbiBwcmVmaXggaXMgJycpCi0tICAgICAgICAgICAg aWYgbm90IHJlLm1hdGNoKHIiXGQiLCByKToKLSsgICAgICAgICAgICBpZiBub3QgcmUubWF0Y2go cidcZCcsIHIpOgotICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgIGlmIHZl cmJvc2U6Ci0gICAgICAgICAgICAgICAgIHByaW50KCJwaWNraW5nICVzIiAlIHIpCi0tICAgICAg ICAgICAgcmV0dXJuIHsKLS0gICAgICAgICAgICAgICAgInZlcnNpb24iOiByLAotLSAgICAgICAg ICAgICAgICAiZnVsbC1yZXZpc2lvbmlkIjoga2V5d29yZHNbImZ1bGwiXS5zdHJpcCgpLAotLSAg ICAgICAgICAgICAgICAiZGlydHkiOiBGYWxzZSwKLS0gICAgICAgICAgICAgICAgImVycm9yIjog Tm9uZSwKLS0gICAgICAgICAgICAgICAgImRhdGUiOiBkYXRlLAotLSAgICAgICAgICAgIH0KLSsg ICAgICAgICAgICByZXR1cm4geyJ2ZXJzaW9uIjogciwKLSsgICAgICAgICAgICAgICAgICAgICJm dWxsLXJldmlzaW9uaWQiOiBrZXl3b3Jkc1siZnVsbCJdLnN0cmlwKCksCi0rICAgICAgICAgICAg ICAgICAgICAiZGlydHkiOiBGYWxzZSwgImVycm9yIjogTm9uZSwKLSsgICAgICAgICAgICAgICAg ICAgICJkYXRlIjogZGF0ZX0KLSAgICAgIyBubyBzdWl0YWJsZSB0YWdzLCBzbyB2ZXJzaW9uIGlz ICIwK3Vua25vd24iLCBidXQgZnVsbCBoZXggaXMgc3RpbGwgdGhlcmUKLSAgICAgaWYgdmVyYm9z ZToKLSAgICAgICAgIHByaW50KCJubyBzdWl0YWJsZSB0YWdzLCB1c2luZyB1bmtub3duICsgZnVs bCByZXZpc2lvbiBpZCIpCi0tICAgIHJldHVybiB7Ci0tICAgICAgICAidmVyc2lvbiI6ICIwK3Vu a25vd24iLAotLSAgICAgICAgImZ1bGwtcmV2aXNpb25pZCI6IGtleXdvcmRzWyJmdWxsIl0uc3Ry aXAoKSwKLS0gICAgICAgICJkaXJ0eSI6IEZhbHNlLAotLSAgICAgICAgImVycm9yIjogIm5vIHN1 aXRhYmxlIHRhZ3MiLAotLSAgICAgICAgImRhdGUiOiBOb25lLAotLSAgICB9Ci0rICAgIHJldHVy biB7InZlcnNpb24iOiAiMCt1bmtub3duIiwKLSsgICAgICAgICAgICAiZnVsbC1yZXZpc2lvbmlk Ijoga2V5d29yZHNbImZ1bGwiXS5zdHJpcCgpLAotKyAgICAgICAgICAgICJkaXJ0eSI6IEZhbHNl LCAiZXJyb3IiOiAibm8gc3VpdGFibGUgdGFncyIsICJkYXRlIjogTm9uZX0KLSAKLSAKLSBAcmVn aXN0ZXJfdmNzX2hhbmRsZXIoImdpdCIsICJwaWVjZXNfZnJvbV92Y3MiKQotLWRlZiBnaXRfcGll Y2VzX2Zyb21fdmNzKHRhZ19wcmVmaXgsIHJvb3QsIHZlcmJvc2UsIHJ1bm5lcj1ydW5fY29tbWFu ZCk6Ci0rZGVmIGdpdF9waWVjZXNfZnJvbV92Y3MoCi0rICAgIHRhZ19wcmVmaXg6IHN0ciwKLSsg ICAgcm9vdDogc3RyLAotKyAgICB2ZXJib3NlOiBib29sLAotKyAgICBydW5uZXI6IENhbGxhYmxl ID0gcnVuX2NvbW1hbmQKLSspIC0+IERpY3Rbc3RyLCBBbnldOgotICAgICAiIiJHZXQgdmVyc2lv biBmcm9tICdnaXQgZGVzY3JpYmUnIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KLSAK LSAgICAgVGhpcyBvbmx5IGdldHMgY2FsbGVkIGlmIHRoZSBnaXQtYXJjaGl2ZSAnc3Vic3QnIGtl eXdvcmRzIHdlcmUgKm5vdCoKLUBAIC0yNDQsMTIgKzI2MywxOCBAQCBkZWYgZ2l0X3BpZWNlc19m cm9tX3Zjcyh0YWdfcHJlZml4LCByb290LCB2ZXJib3NlLCBydW5uZXI9cnVuX2NvbW1hbmQpOgot ICAgICB2ZXJzaW9uIHN0cmluZywgbWVhbmluZyB3ZSdyZSBpbnNpZGUgYSBjaGVja2VkIG91dCBz b3VyY2UgdHJlZS4KLSAgICAgIiIiCi0gICAgIEdJVFMgPSBbImdpdCJdCi0tICAgIFRBR19QUkVG SVhfUkVHRVggPSAiKiIKLSAgICAgaWYgc3lzLnBsYXRmb3JtID09ICJ3aW4zMiI6Ci0gICAgICAg ICBHSVRTID0gWyJnaXQuY21kIiwgImdpdC5leGUiXQotLSAgICAgICAgVEFHX1BSRUZJWF9SRUdF WCA9IHIiXCoiCi0gCi0tICAgIF8sIHJjID0gcnVubmVyKEdJVFMsIFsicmV2LXBhcnNlIiwgIi0t Z2l0LWRpciJdLCBjd2Q9cm9vdCwgaGlkZV9zdGRlcnI9VHJ1ZSkKLSsgICAgIyBHSVRfRElSIGNh biBpbnRlcmZlcmUgd2l0aCBjb3JyZWN0IG9wZXJhdGlvbiBvZiBWZXJzaW9uZWVyLgotKyAgICAj IEl0IG1heSBiZSBpbnRlbmRlZCB0byBiZSBwYXNzZWQgdG8gdGhlIFZlcnNpb25lZXItdmVyc2lv bmVkIHByb2plY3QsCi0rICAgICMgYnV0IHRoYXQgc2hvdWxkIG5vdCBjaGFuZ2Ugd2hlcmUgd2Ug Z2V0IG91ciB2ZXJzaW9uIGZyb20uCi0rICAgIGVudiA9IG9zLmVudmlyb24uY29weSgpCi0rICAg IGVudi5wb3AoIkdJVF9ESVIiLCBOb25lKQotKyAgICBydW5uZXIgPSBmdW5jdG9vbHMucGFydGlh bChydW5uZXIsIGVudj1lbnYpCi0rCi0rICAgIF8sIHJjID0gcnVubmVyKEdJVFMsIFsicmV2LXBh cnNlIiwgIi0tZ2l0LWRpciJdLCBjd2Q9cm9vdCwKLSsgICAgICAgICAgICAgICAgICAgaGlkZV9z dGRlcnI9bm90IHZlcmJvc2UpCi0gICAgIGlmIHJjICE9IDA6Ci0gICAgICAgICBpZiB2ZXJib3Nl OgotICAgICAgICAgICAgIHByaW50KCJEaXJlY3RvcnkgJXMgbm90IHVuZGVyIGdpdCBjb250cm9s IiAlIHJvb3QpCi1AQCAtMjU3LDE5ICsyODIsMTAgQEAgZGVmIGdpdF9waWVjZXNfZnJvbV92Y3Mo dGFnX3ByZWZpeCwgcm9vdCwgdmVyYm9zZSwgcnVubmVyPXJ1bl9jb21tYW5kKToKLSAKLSAgICAg IyBpZiB0aGVyZSBpcyBhIHRhZyBtYXRjaGluZyB0YWdfcHJlZml4LCB0aGlzIHlpZWxkcyBUQUct TlVNLWdIRVhbLWRpcnR5XQotICAgICAjIGlmIHRoZXJlIGlzbid0IG9uZSwgdGhpcyB5aWVsZHMg SEVYWy1kaXJ0eV0gKG5vIE5VTSkKLS0gICAgZGVzY3JpYmVfb3V0LCByYyA9IHJ1bm5lcigKLS0g ICAgICAgIEdJVFMsCi0tICAgICAgICBbCi0tICAgICAgICAgICAgImRlc2NyaWJlIiwKLS0gICAg ICAgICAgICAiLS10YWdzIiwKLS0gICAgICAgICAgICAiLS1kaXJ0eSIsCi0tICAgICAgICAgICAg Ii0tYWx3YXlzIiwKLS0gICAgICAgICAgICAiLS1sb25nIiwKLS0gICAgICAgICAgICAiLS1tYXRj aCIsCi0tICAgICAgICAgICAgIiVzJXMiICUgKHRhZ19wcmVmaXgsIFRBR19QUkVGSVhfUkVHRVgp LAotLSAgICAgICAgXSwKLS0gICAgICAgIGN3ZD1yb290LAotLSAgICApCi0rICAgIGRlc2NyaWJl X291dCwgcmMgPSBydW5uZXIoR0lUUywgWwotKyAgICAgICAgImRlc2NyaWJlIiwgIi0tdGFncyIs ICItLWRpcnR5IiwgIi0tYWx3YXlzIiwgIi0tbG9uZyIsCi0rICAgICAgICAiLS1tYXRjaCIsIGYi e3RhZ19wcmVmaXh9W1s6ZGlnaXQ6XV0qIgotKyAgICBdLCBjd2Q9cm9vdCkKLSAgICAgIyAtLWxv bmcgd2FzIGFkZGVkIGluIGdpdC0xLjUuNQotICAgICBpZiBkZXNjcmliZV9vdXQgaXMgTm9uZToK LSAgICAgICAgIHJhaXNlIE5vdFRoaXNNZXRob2QoIidnaXQgZGVzY3JpYmUnIGZhaWxlZCIpCi1A QCAtMjc5LDEyICsyOTUsMTMgQEAgZGVmIGdpdF9waWVjZXNfZnJvbV92Y3ModGFnX3ByZWZpeCwg cm9vdCwgdmVyYm9zZSwgcnVubmVyPXJ1bl9jb21tYW5kKToKLSAgICAgICAgIHJhaXNlIE5vdFRo aXNNZXRob2QoIidnaXQgcmV2LXBhcnNlJyBmYWlsZWQiKQotICAgICBmdWxsX291dCA9IGZ1bGxf b3V0LnN0cmlwKCkKLSAKLS0gICAgcGllY2VzID0ge30KLSsgICAgcGllY2VzOiBEaWN0W3N0ciwg QW55XSA9IHt9Ci0gICAgIHBpZWNlc1sibG9uZyJdID0gZnVsbF9vdXQKLSAgICAgcGllY2VzWyJz aG9ydCJdID0gZnVsbF9vdXRbOjddICAjIG1heWJlIGltcHJvdmVkIGxhdGVyCi0gICAgIHBpZWNl c1siZXJyb3IiXSA9IE5vbmUKLSAKLS0gICAgYnJhbmNoX25hbWUsIHJjID0gcnVubmVyKEdJVFMs IFsicmV2LXBhcnNlIiwgIi0tYWJicmV2LXJlZiIsICJIRUFEIl0sIGN3ZD1yb290KQotKyAgICBi cmFuY2hfbmFtZSwgcmMgPSBydW5uZXIoR0lUUywgWyJyZXYtcGFyc2UiLCAiLS1hYmJyZXYtcmVm IiwgIkhFQUQiXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN3ZD1yb290KQotICAg ICAjIC0tYWJicmV2LXJlZiB3YXMgYWRkZWQgaW4gZ2l0LTEuNi4zCi0gICAgIGlmIHJjICE9IDAg b3IgYnJhbmNoX25hbWUgaXMgTm9uZToKLSAgICAgICAgIHJhaXNlIE5vdFRoaXNNZXRob2QoIidn aXQgcmV2LXBhcnNlIC0tYWJicmV2LXJlZicgcmV0dXJuZWQgZXJyb3IiKQotQEAgLTMyNCwxNiAr MzQxLDE3IEBAIGRlZiBnaXRfcGllY2VzX2Zyb21fdmNzKHRhZ19wcmVmaXgsIHJvb3QsIHZlcmJv c2UsIHJ1bm5lcj1ydW5fY29tbWFuZCk6Ci0gICAgIGRpcnR5ID0gZ2l0X2Rlc2NyaWJlLmVuZHN3 aXRoKCItZGlydHkiKQotICAgICBwaWVjZXNbImRpcnR5Il0gPSBkaXJ0eQotICAgICBpZiBkaXJ0 eToKLS0gICAgICAgIGdpdF9kZXNjcmliZSA9IGdpdF9kZXNjcmliZVs6IGdpdF9kZXNjcmliZS5y aW5kZXgoIi1kaXJ0eSIpXQotKyAgICAgICAgZ2l0X2Rlc2NyaWJlID0gZ2l0X2Rlc2NyaWJlWzpn aXRfZGVzY3JpYmUucmluZGV4KCItZGlydHkiKV0KLSAKLSAgICAgIyBub3cgd2UgaGF2ZSBUQUct TlVNLWdIRVggb3IgSEVYCi0gCi0gICAgIGlmICItIiBpbiBnaXRfZGVzY3JpYmU6Ci0gICAgICAg ICAjIFRBRy1OVU0tZ0hFWAotLSAgICAgICAgbW8gPSByZS5zZWFyY2gociJeKC4rKS0oXGQrKS1n KFswLTlhLWZdKykkIiwgZ2l0X2Rlc2NyaWJlKQotKyAgICAgICAgbW8gPSByZS5zZWFyY2gocide KC4rKS0oXGQrKS1nKFswLTlhLWZdKykkJywgZ2l0X2Rlc2NyaWJlKQotICAgICAgICAgaWYgbm90 IG1vOgotICAgICAgICAgICAgICMgdW5wYXJzYWJsZS4gTWF5YmUgZ2l0LWRlc2NyaWJlIGlzIG1p c2JlaGF2aW5nPwotLSAgICAgICAgICAgIHBpZWNlc1siZXJyb3IiXSA9ICJ1bmFibGUgdG8gcGFy c2UgZ2l0LWRlc2NyaWJlIG91dHB1dDogJyVzJyIgJSBkZXNjcmliZV9vdXQKLSsgICAgICAgICAg ICBwaWVjZXNbImVycm9yIl0gPSAoInVuYWJsZSB0byBwYXJzZSBnaXQtZGVzY3JpYmUgb3V0cHV0 OiAnJXMnIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIGRlc2NyaWJlX291dCkK LSAgICAgICAgICAgICByZXR1cm4gcGllY2VzCi0gCi0gICAgICAgICAjIHRhZwotQEAgLTM0Miwx MiArMzYwLDEwIEBAIGRlZiBnaXRfcGllY2VzX2Zyb21fdmNzKHRhZ19wcmVmaXgsIHJvb3QsIHZl cmJvc2UsIHJ1bm5lcj1ydW5fY29tbWFuZCk6Ci0gICAgICAgICAgICAgaWYgdmVyYm9zZToKLSAg ICAgICAgICAgICAgICAgZm10ID0gInRhZyAnJXMnIGRvZXNuJ3Qgc3RhcnQgd2l0aCBwcmVmaXgg JyVzJyIKLSAgICAgICAgICAgICAgICAgcHJpbnQoZm10ICUgKGZ1bGxfdGFnLCB0YWdfcHJlZml4 KSkKLS0gICAgICAgICAgICBwaWVjZXNbImVycm9yIl0gPSAidGFnICclcycgZG9lc24ndCBzdGFy dCB3aXRoIHByZWZpeCAnJXMnIiAlICgKLS0gICAgICAgICAgICAgICAgZnVsbF90YWcsCi0tICAg ICAgICAgICAgICAgIHRhZ19wcmVmaXgsCi0tICAgICAgICAgICAgKQotKyAgICAgICAgICAgIHBp ZWNlc1siZXJyb3IiXSA9ICgidGFnICclcycgZG9lc24ndCBzdGFydCB3aXRoIHByZWZpeCAnJXMn IgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIChmdWxsX3RhZywgdGFnX3ByZWZp eCkpCi0gICAgICAgICAgICAgcmV0dXJuIHBpZWNlcwotLSAgICAgICAgcGllY2VzWyJjbG9zZXN0 LXRhZyJdID0gZnVsbF90YWdbbGVuKHRhZ19wcmVmaXgpIDpdCi0rICAgICAgICBwaWVjZXNbImNs b3Nlc3QtdGFnIl0gPSBmdWxsX3RhZ1tsZW4odGFnX3ByZWZpeCk6XQotIAotICAgICAgICAgIyBk aXN0YW5jZTogbnVtYmVyIG9mIGNvbW1pdHMgc2luY2UgdGFnCi0gICAgICAgICBwaWVjZXNbImRp c3RhbmNlIl0gPSBpbnQobW8uZ3JvdXAoMikpCi1AQCAtMzU4LDggKzM3NCw4IEBAIGRlZiBnaXRf cGllY2VzX2Zyb21fdmNzKHRhZ19wcmVmaXgsIHJvb3QsIHZlcmJvc2UsIHJ1bm5lcj1ydW5fY29t bWFuZCk6Ci0gICAgIGVsc2U6Ci0gICAgICAgICAjIEhFWDogbm8gdGFncwotICAgICAgICAgcGll Y2VzWyJjbG9zZXN0LXRhZyJdID0gTm9uZQotLSAgICAgICAgY291bnRfb3V0LCByYyA9IHJ1bm5l cihHSVRTLCBbInJldi1saXN0IiwgIkhFQUQiLCAiLS1jb3VudCJdLCBjd2Q9cm9vdCkKLS0gICAg ICAgIHBpZWNlc1siZGlzdGFuY2UiXSA9IGludChjb3VudF9vdXQpICAjIHRvdGFsIG51bWJlciBv ZiBjb21taXRzCi0rICAgICAgICBvdXQsIHJjID0gcnVubmVyKEdJVFMsIFsicmV2LWxpc3QiLCAi SEVBRCIsICItLWxlZnQtcmlnaHQiXSwgY3dkPXJvb3QpCi0rICAgICAgICBwaWVjZXNbImRpc3Rh bmNlIl0gPSBsZW4ob3V0LnNwbGl0KCkpICAjIHRvdGFsIG51bWJlciBvZiBjb21taXRzCi0gCi0g ICAgICMgY29tbWl0IGRhdGU6IHNlZSBJU08tODYwMSBjb21tZW50IGluIGdpdF92ZXJzaW9uc19m cm9tX2tleXdvcmRzKCkKLSAgICAgZGF0ZSA9IHJ1bm5lcihHSVRTLCBbInNob3ciLCAiLXMiLCAi LS1mb3JtYXQ9JWNpIiwgIkhFQUQiXSwgY3dkPXJvb3QpWzBdLnN0cmlwKCkKLUBAIC0zNzEsMTQg KzM4NywxNCBAQCBkZWYgZ2l0X3BpZWNlc19mcm9tX3Zjcyh0YWdfcHJlZml4LCByb290LCB2ZXJi b3NlLCBydW5uZXI9cnVuX2NvbW1hbmQpOgotICAgICByZXR1cm4gcGllY2VzCi0gCi0gCi0tZGVm IHBsdXNfb3JfZG90KHBpZWNlcyk6Ci0rZGVmIHBsdXNfb3JfZG90KHBpZWNlczogRGljdFtzdHIs IEFueV0pIC0+IHN0cjoKLSAgICAgIiIiUmV0dXJuIGEgKyBpZiB3ZSBkb24ndCBhbHJlYWR5IGhh dmUgb25lLCBlbHNlIHJldHVybiBhIC4iIiIKLSAgICAgaWYgIisiIGluIHBpZWNlcy5nZXQoImNs b3Nlc3QtdGFnIiwgIiIpOgotICAgICAgICAgcmV0dXJuICIuIgotICAgICByZXR1cm4gIisiCi0g Ci0gCi0tZGVmIHJlbmRlcl9wZXA0NDAocGllY2VzKToKLStkZWYgcmVuZGVyX3BlcDQ0MChwaWVj ZXM6IERpY3Rbc3RyLCBBbnldKSAtPiBzdHI6Ci0gICAgICIiIkJ1aWxkIHVwIHZlcnNpb24gc3Ry aW5nLCB3aXRoIHBvc3QtcmVsZWFzZSAibG9jYWwgdmVyc2lvbiBpZGVudGlmaWVyIi4KLSAKLSAg ICAgT3VyIGdvYWw6IFRBR1srRElTVEFOQ0UuZ0hFWFsuZGlydHldXSAuIE5vdGUgdGhhdCBpZiB5 b3UKLUBAIC0zOTYsMTMgKzQxMiwxNCBAQCBkZWYgcmVuZGVyX3BlcDQ0MChwaWVjZXMpOgotICAg ICAgICAgICAgICAgICByZW5kZXJlZCArPSAiLmRpcnR5IgotICAgICBlbHNlOgotICAgICAgICAg IyBleGNlcHRpb24gIzEKLS0gICAgICAgIHJlbmRlcmVkID0gIjArdW50YWdnZWQuJWQuZyVzIiAl IChwaWVjZXNbImRpc3RhbmNlIl0sIHBpZWNlc1sic2hvcnQiXSkKLSsgICAgICAgIHJlbmRlcmVk ID0gIjArdW50YWdnZWQuJWQuZyVzIiAlIChwaWVjZXNbImRpc3RhbmNlIl0sCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGllY2VzWyJzaG9ydCJdKQotICAgICAg ICAgaWYgcGllY2VzWyJkaXJ0eSJdOgotICAgICAgICAgICAgIHJlbmRlcmVkICs9ICIuZGlydHki Ci0gICAgIHJldHVybiByZW5kZXJlZAotIAotIAotLWRlZiByZW5kZXJfcGVwNDQwX2JyYW5jaChw aWVjZXMpOgotK2RlZiByZW5kZXJfcGVwNDQwX2JyYW5jaChwaWVjZXM6IERpY3Rbc3RyLCBBbnld KSAtPiBzdHI6Ci0gICAgICIiIlRBR1tbLmRldjBdK0RJU1RBTkNFLmdIRVhbLmRpcnR5XV0gLgot IAotICAgICBUaGUgIi5kZXYwIiBtZWFucyBub3QgbWFzdGVyIGJyYW5jaC4gTm90ZSB0aGF0IC5k ZXYwIHNvcnRzIGJhY2t3YXJkcwotQEAgLTQyNSwxMyArNDQyLDE0IEBAIGRlZiByZW5kZXJfcGVw NDQwX2JyYW5jaChwaWVjZXMpOgotICAgICAgICAgcmVuZGVyZWQgPSAiMCIKLSAgICAgICAgIGlm IHBpZWNlc1siYnJhbmNoIl0gIT0gIm1hc3RlciI6Ci0gICAgICAgICAgICAgcmVuZGVyZWQgKz0g Ii5kZXYwIgotLSAgICAgICAgcmVuZGVyZWQgKz0gIit1bnRhZ2dlZC4lZC5nJXMiICUgKHBpZWNl c1siZGlzdGFuY2UiXSwgcGllY2VzWyJzaG9ydCJdKQotKyAgICAgICAgcmVuZGVyZWQgKz0gIit1 bnRhZ2dlZC4lZC5nJXMiICUgKHBpZWNlc1siZGlzdGFuY2UiXSwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwaWVjZXNbInNob3J0Il0pCi0gICAgICAgICBpZiBw aWVjZXNbImRpcnR5Il06Ci0gICAgICAgICAgICAgcmVuZGVyZWQgKz0gIi5kaXJ0eSIKLSAgICAg cmV0dXJuIHJlbmRlcmVkCi0gCi0gCi0tZGVmIHBlcDQ0MF9zcGxpdF9wb3N0KHZlcik6Ci0rZGVm IHBlcDQ0MF9zcGxpdF9wb3N0KHZlcjogc3RyKSAtPiBUdXBsZVtzdHIsIE9wdGlvbmFsW2ludF1d OgotICAgICAiIiJTcGxpdCBwZXA0NDAgdmVyc2lvbiBzdHJpbmcgYXQgdGhlIHBvc3QtcmVsZWFz ZSBzZWdtZW50LgotIAotICAgICBSZXR1cm5zIHRoZSByZWxlYXNlIHNlZ21lbnRzIGJlZm9yZSB0 aGUgcG9zdC1yZWxlYXNlIGFuZCB0aGUKLUBAIC00NDEsNyArNDU5LDcgQEAgZGVmIHBlcDQ0MF9z cGxpdF9wb3N0KHZlcik6Ci0gICAgIHJldHVybiB2Y1swXSwgaW50KHZjWzFdIG9yIDApIGlmIGxl bih2YykgPT0gMiBlbHNlIE5vbmUKLSAKLSAKLS1kZWYgcmVuZGVyX3BlcDQ0MF9wcmUocGllY2Vz KToKLStkZWYgcmVuZGVyX3BlcDQ0MF9wcmUocGllY2VzOiBEaWN0W3N0ciwgQW55XSkgLT4gc3Ry OgotICAgICAiIiJUQUdbLnBvc3ROLmRldkRJU1RBTkNFXSAtLSBObyAtZGlydHkuCi0gCi0gICAg IEV4Y2VwdGlvbnM6Ci1AQCAtNDY1LDcgKzQ4Myw3IEBAIGRlZiByZW5kZXJfcGVwNDQwX3ByZShw aWVjZXMpOgotICAgICByZXR1cm4gcmVuZGVyZWQKLSAKLSAKLS1kZWYgcmVuZGVyX3BlcDQ0MF9w b3N0KHBpZWNlcyk6Ci0rZGVmIHJlbmRlcl9wZXA0NDBfcG9zdChwaWVjZXM6IERpY3Rbc3RyLCBB bnldKSAtPiBzdHI6Ci0gICAgICIiIlRBR1sucG9zdERJU1RBTkNFWy5kZXYwXStnSEVYXSAuCi0g Ci0gICAgIFRoZSAiLmRldjAiIG1lYW5zIGRpcnR5LiBOb3RlIHRoYXQgLmRldjAgc29ydHMgYmFj a3dhcmRzCi1AQCAtNDkyLDcgKzUxMCw3IEBAIGRlZiByZW5kZXJfcGVwNDQwX3Bvc3QocGllY2Vz KToKLSAgICAgcmV0dXJuIHJlbmRlcmVkCi0gCi0gCi0tZGVmIHJlbmRlcl9wZXA0NDBfcG9zdF9i cmFuY2gocGllY2VzKToKLStkZWYgcmVuZGVyX3BlcDQ0MF9wb3N0X2JyYW5jaChwaWVjZXM6IERp Y3Rbc3RyLCBBbnldKSAtPiBzdHI6Ci0gICAgICIiIlRBR1sucG9zdERJU1RBTkNFWy5kZXYwXStn SEVYWy5kaXJ0eV1dIC4KLSAKLSAgICAgVGhlICIuZGV2MCIgbWVhbnMgbm90IG1hc3RlciBicmFu Y2guCi1AQCAtNTIxLDcgKzUzOSw3IEBAIGRlZiByZW5kZXJfcGVwNDQwX3Bvc3RfYnJhbmNoKHBp ZWNlcyk6Ci0gICAgIHJldHVybiByZW5kZXJlZAotIAotIAotLWRlZiByZW5kZXJfcGVwNDQwX29s ZChwaWVjZXMpOgotK2RlZiByZW5kZXJfcGVwNDQwX29sZChwaWVjZXM6IERpY3Rbc3RyLCBBbnld KSAtPiBzdHI6Ci0gICAgICIiIlRBR1sucG9zdERJU1RBTkNFWy5kZXYwXV0gLgotIAotICAgICBU aGUgIi5kZXYwIiBtZWFucyBkaXJ0eS4KLUBAIC01NDMsNyArNTYxLDcgQEAgZGVmIHJlbmRlcl9w ZXA0NDBfb2xkKHBpZWNlcyk6Ci0gICAgIHJldHVybiByZW5kZXJlZAotIAotIAotLWRlZiByZW5k ZXJfZ2l0X2Rlc2NyaWJlKHBpZWNlcyk6Ci0rZGVmIHJlbmRlcl9naXRfZGVzY3JpYmUocGllY2Vz OiBEaWN0W3N0ciwgQW55XSkgLT4gc3RyOgotICAgICAiIiJUQUdbLURJU1RBTkNFLWdIRVhdWy1k aXJ0eV0uCi0gCi0gICAgIExpa2UgJ2dpdCBkZXNjcmliZSAtLXRhZ3MgLS1kaXJ0eSAtLWFsd2F5 cycuCi1AQCAtNTYzLDcgKzU4MSw3IEBAIGRlZiByZW5kZXJfZ2l0X2Rlc2NyaWJlKHBpZWNlcyk6 Ci0gICAgIHJldHVybiByZW5kZXJlZAotIAotIAotLWRlZiByZW5kZXJfZ2l0X2Rlc2NyaWJlX2xv bmcocGllY2VzKToKLStkZWYgcmVuZGVyX2dpdF9kZXNjcmliZV9sb25nKHBpZWNlczogRGljdFtz dHIsIEFueV0pIC0+IHN0cjoKLSAgICAgIiIiVEFHLURJU1RBTkNFLWdIRVhbLWRpcnR5XS4KLSAK LSAgICAgTGlrZSAnZ2l0IGRlc2NyaWJlIC0tdGFncyAtLWRpcnR5IC0tYWx3YXlzIC1sb25nJy4K LUBAIC01ODMsMTYgKzYwMSwxNCBAQCBkZWYgcmVuZGVyX2dpdF9kZXNjcmliZV9sb25nKHBpZWNl cyk6Ci0gICAgIHJldHVybiByZW5kZXJlZAotIAotIAotLWRlZiByZW5kZXIocGllY2VzLCBzdHls ZSk6Ci0rZGVmIHJlbmRlcihwaWVjZXM6IERpY3Rbc3RyLCBBbnldLCBzdHlsZTogc3RyKSAtPiBE aWN0W3N0ciwgQW55XToKLSAgICAgIiIiUmVuZGVyIHRoZSBnaXZlbiB2ZXJzaW9uIHBpZWNlcyBp bnRvIHRoZSByZXF1ZXN0ZWQgc3R5bGUuIiIiCi0gICAgIGlmIHBpZWNlc1siZXJyb3IiXToKLS0g ICAgICAgIHJldHVybiB7Ci0tICAgICAgICAgICAgInZlcnNpb24iOiAidW5rbm93biIsCi0tICAg ICAgICAgICAgImZ1bGwtcmV2aXNpb25pZCI6IHBpZWNlcy5nZXQoImxvbmciKSwKLS0gICAgICAg ICAgICAiZGlydHkiOiBOb25lLAotLSAgICAgICAgICAgICJlcnJvciI6IHBpZWNlc1siZXJyb3Ii XSwKLS0gICAgICAgICAgICAiZGF0ZSI6IE5vbmUsCi0tICAgICAgICB9Ci0rICAgICAgICByZXR1 cm4geyJ2ZXJzaW9uIjogInVua25vd24iLAotKyAgICAgICAgICAgICAgICAiZnVsbC1yZXZpc2lv bmlkIjogcGllY2VzLmdldCgibG9uZyIpLAotKyAgICAgICAgICAgICAgICAiZGlydHkiOiBOb25l LAotKyAgICAgICAgICAgICAgICAiZXJyb3IiOiBwaWVjZXNbImVycm9yIl0sCi0rICAgICAgICAg ICAgICAgICJkYXRlIjogTm9uZX0KLSAKLSAgICAgaWYgbm90IHN0eWxlIG9yIHN0eWxlID09ICJk ZWZhdWx0IjoKLSAgICAgICAgIHN0eWxlID0gInBlcDQ0MCIgICMgdGhlIGRlZmF1bHQKLUBAIC02 MTYsMTYgKzYzMiwxMiBAQCBkZWYgcmVuZGVyKHBpZWNlcywgc3R5bGUpOgotICAgICBlbHNlOgot ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigidW5rbm93biBzdHlsZSAnJXMnIiAlIHN0eWxlKQot IAotLSAgICByZXR1cm4gewotLSAgICAgICAgInZlcnNpb24iOiByZW5kZXJlZCwKLS0gICAgICAg ICJmdWxsLXJldmlzaW9uaWQiOiBwaWVjZXNbImxvbmciXSwKLS0gICAgICAgICJkaXJ0eSI6IHBp ZWNlc1siZGlydHkiXSwKLS0gICAgICAgICJlcnJvciI6IE5vbmUsCi0tICAgICAgICAiZGF0ZSI6 IHBpZWNlcy5nZXQoImRhdGUiKSwKLS0gICAgfQotKyAgICByZXR1cm4geyJ2ZXJzaW9uIjogcmVu ZGVyZWQsICJmdWxsLXJldmlzaW9uaWQiOiBwaWVjZXNbImxvbmciXSwKLSsgICAgICAgICAgICAi ZGlydHkiOiBwaWVjZXNbImRpcnR5Il0sICJlcnJvciI6IE5vbmUsCi0rICAgICAgICAgICAgImRh dGUiOiBwaWVjZXMuZ2V0KCJkYXRlIil9Ci0gCi0gCi0tZGVmIGdldF92ZXJzaW9ucygpOgotK2Rl ZiBnZXRfdmVyc2lvbnMoKSAtPiBEaWN0W3N0ciwgQW55XToKLSAgICAgIiIiR2V0IHZlcnNpb24g aW5mb3JtYXRpb24gb3IgcmV0dXJuIGRlZmF1bHQgaWYgdW5hYmxlIHRvIGRvIHNvLiIiIgotICAg ICAjIEkgYW0gaW4gX3ZlcnNpb24ucHksIHdoaWNoIGxpdmVzIGF0IFJPT1QvVkVSU0lPTkZJTEVf U09VUkNFLiBJZiB3ZSBoYXZlCi0gICAgICMgX19maWxlX18sIHdlIGNhbiB3b3JrIGJhY2t3YXJk cyBmcm9tIHRoZXJlIHRvIHRoZSByb290LiBTb21lCi1AQCAtNjM2LDcgKzY0OCw4IEBAIGRlZiBn ZXRfdmVyc2lvbnMoKToKLSAgICAgdmVyYm9zZSA9IGNmZy52ZXJib3NlCi0gCi0gICAgIHRyeToK LS0gICAgICAgIHJldHVybiBnaXRfdmVyc2lvbnNfZnJvbV9rZXl3b3JkcyhnZXRfa2V5d29yZHMo KSwgY2ZnLnRhZ19wcmVmaXgsIHZlcmJvc2UpCi0rICAgICAgICByZXR1cm4gZ2l0X3ZlcnNpb25z X2Zyb21fa2V5d29yZHMoZ2V0X2tleXdvcmRzKCksIGNmZy50YWdfcHJlZml4LAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcmJvc2UpCi0gICAgIGV4Y2VwdCBO b3RUaGlzTWV0aG9kOgotICAgICAgICAgcGFzcwotIAotQEAgLTY0NSwxNiArNjU4LDEzIEBAIGRl ZiBnZXRfdmVyc2lvbnMoKToKLSAgICAgICAgICMgdmVyc2lvbmZpbGVfc291cmNlIGlzIHRoZSBy ZWxhdGl2ZSBwYXRoIGZyb20gdGhlIHRvcCBvZiB0aGUgc291cmNlCi0gICAgICAgICAjIHRyZWUg KHdoZXJlIHRoZSAuZ2l0IGRpcmVjdG9yeSBtaWdodCBsaXZlKSB0byB0aGlzIGZpbGUuIEludmVy dAotICAgICAgICAgIyB0aGlzIHRvIGZpbmQgdGhlIHJvb3QgZnJvbSBfX2ZpbGVfXy4KLS0gICAg ICAgIGZvciBfIGluIGNmZy52ZXJzaW9uZmlsZV9zb3VyY2Uuc3BsaXQoIi8iKToKLSsgICAgICAg IGZvciBfIGluIGNmZy52ZXJzaW9uZmlsZV9zb3VyY2Uuc3BsaXQoJy8nKToKLSAgICAgICAgICAg ICByb290ID0gb3MucGF0aC5kaXJuYW1lKHJvb3QpCi0gICAgIGV4Y2VwdCBOYW1lRXJyb3I6Ci0t ICAgICAgICByZXR1cm4gewotLSAgICAgICAgICAgICJ2ZXJzaW9uIjogIjArdW5rbm93biIsCi0t ICAgICAgICAgICAgImZ1bGwtcmV2aXNpb25pZCI6IE5vbmUsCi0tICAgICAgICAgICAgImRpcnR5 IjogTm9uZSwKLS0gICAgICAgICAgICAiZXJyb3IiOiAidW5hYmxlIHRvIGZpbmQgcm9vdCBvZiBz b3VyY2UgdHJlZSIsCi0tICAgICAgICAgICAgImRhdGUiOiBOb25lLAotLSAgICAgICAgfQotKyAg ICAgICAgcmV0dXJuIHsidmVyc2lvbiI6ICIwK3Vua25vd24iLCAiZnVsbC1yZXZpc2lvbmlkIjog Tm9uZSwKLSsgICAgICAgICAgICAgICAgImRpcnR5IjogTm9uZSwKLSsgICAgICAgICAgICAgICAg ImVycm9yIjogInVuYWJsZSB0byBmaW5kIHJvb3Qgb2Ygc291cmNlIHRyZWUiLAotKyAgICAgICAg ICAgICAgICAiZGF0ZSI6IE5vbmV9Ci0gCi0gICAgIHRyeToKLSAgICAgICAgIHBpZWNlcyA9IGdp dF9waWVjZXNfZnJvbV92Y3MoY2ZnLnRhZ19wcmVmaXgsIHJvb3QsIHZlcmJvc2UpCi1AQCAtNjY4 LDEwICs2NzgsNiBAQCBkZWYgZ2V0X3ZlcnNpb25zKCk6Ci0gICAgIGV4Y2VwdCBOb3RUaGlzTWV0 aG9kOgotICAgICAgICAgcGFzcwotIAotLSAgICByZXR1cm4gewotLSAgICAgICAgInZlcnNpb24i OiAiMCt1bmtub3duIiwKLS0gICAgICAgICJmdWxsLXJldmlzaW9uaWQiOiBOb25lLAotLSAgICAg ICAgImRpcnR5IjogTm9uZSwKLS0gICAgICAgICJlcnJvciI6ICJ1bmFibGUgdG8gY29tcHV0ZSB2 ZXJzaW9uIiwKLS0gICAgICAgICJkYXRlIjogTm9uZSwKLS0gICAgfQotKyAgICByZXR1cm4geyJ2 ZXJzaW9uIjogIjArdW5rbm93biIsICJmdWxsLXJldmlzaW9uaWQiOiBOb25lLAotKyAgICAgICAg ICAgICJkaXJ0eSI6IE5vbmUsCi0rICAgICAgICAgICAgImVycm9yIjogInVuYWJsZSB0byBjb21w dXRlIHZlcnNpb24iLCAiZGF0ZSI6IE5vbmV9Ci0tLSAKLTIuNDkuMAotCgpkaWZmIC0tZ2l0IGEv cHl0aG9uLXhuYXQ0dGVzdHMuc3BlYyBiL3B5dGhvbi14bmF0NHRlc3RzLnNwZWMKaW5kZXggNmVk YjFlZC4uMWUwYzYxOSAxMDA2NDQKLS0tIGEvcHl0aG9uLXhuYXQ0dGVzdHMuc3BlYworKysgYi9w eXRob24teG5hdDR0ZXN0cy5zcGVjCkBAIC0xLDE0ICsxLDEzIEBACiAlZ2xvYmFsIHB5cGlfbmFt ZSB4bmF0NHRlc3RzCislZ2xvYmFsIGZvcmdldXJsIGh0dHBzOi8vZ2l0aHViLmNvbS9hdXN0cmFs aWFuLWltYWdpbmctc2VydmljZS94bmF0NHRlc3RzCitWZXJzaW9uOiAgICAgICAgMC40LjEKKyVn bG9iYWwgdGFnICAgICB2JXt2ZXJzaW9ufQorJWZvcmdlbWV0YQogCiBOYW1lOiAgICAgICAgICAg cHl0aG9uLSV7cHlwaV9uYW1lfQotVmVyc2lvbjogICAgICAgIDAuMy4xNAogUmVsZWFzZTogICAg ICAgICVhdXRvcmVsZWFzZQogU3VtbWFyeTogICAgICAgIENyZWF0ZSBiYXNpYyBYTkFUIGluc3Rh bmNlIGZvciBBUEkgdGVzdHMKIAotJWdsb2JhbCBmb3JnZXVybCBodHRwczovL2dpdGh1Yi5jb20v YXVzdHJhbGlhbi1pbWFnaW5nLXNlcnZpY2UveG5hdDR0ZXN0cwotJWdsb2JhbCB0YWcgdiV7dmVy c2lvbn0KLSVmb3JnZW1ldGEKLQogIyBUaGUgZW50aXJlIHNvdXJjZSBpcyBBcGFjaGUtMi4wLCBl eGNlcHQgdGhhdCB2ZXJzaW9uZWVyLnB5IGFuZCB0aGUKICMgX3ZlcnNpb24ucHkgaXQgZ2VuZXJh dGVzIGFyZSBDQzAtMS4wLCBub3QgZ2VuZXJhbGx5IGFsbG93ZWQgZm9yIGNvZGUgaW4KICMgRmVk b3JhLCBidXQgT0sgdW5kZXIgdGhlIGV4Y2VwdGlvbiBmb3IgZXhpc3RpbmcgdXNlcyBpbiBGZWRv cmEgcHJpb3IgdG8KQEAgLTE2LDE1ICsxNSw4IEBAIFN1bW1hcnk6ICAgICAgICBDcmVhdGUgYmFz aWMgWE5BVCBpbnN0YW5jZSBmb3IgQVBJIHRlc3RzCiAjIF92ZXJzaW9uLnB5IHVzaW5nIHRoZSBz eXN0ZW0gcHl0aG9uLXZlcnNpb25lZXIsIHdoaWNoIGlzIGEgbGF0ZXIgdmVyc2lvbgogIyB1bmRl ciBVbmxpY2Vuc2Ugc28gdGhlIHJlc3VsdGluZyBfdmVyc2lvbi5weSBpcyBhbHNvIFVubGljZW5z ZS4KIExpY2Vuc2U6ICAgICAgICBBcGFjaGUtMi4wIEFORCBVbmxpY2Vuc2UKLVVSTDogICAgICAg ICAgICAlZm9yZ2V1cmwKK1VSTDogICAgICAgICAgICAgJWZvcmdldXJsCiBTb3VyY2U6ICAgICAg ICAgJWZvcmdlc291cmNlCi0jIFVwZGF0ZSBWZXJzaW9uZWVyIGFuZCBmaXggY29uZmlnLgotIyBQ YXJ0IG9mIHRoZSBjaGFuZ2VzIGFyZSByZXF1aXJlZCBldmVuIGlmIHVwc3RyZWFtIGRlY2lkZXMg bm90IHRvCi0jIG1lcmdlIHRoZSBQUiBmdWxseSAoZS5nLiBzdGlja2luZyB3aXRoIHRoZSBjdXJy ZW50IFZlcnNpb25lZXIgdmVyc2lvbikuCi0jIEluIHRoYXQgY2FzZSB3ZSBjb3VsZCB1c2UgdGhl IHN5c3RlbSBpbnN0YWxsZWQgVmVyc2lvbmVlciB0byByZWNyZWF0ZQotIyB2ZXJzaW9uZWVyLnB5 IGFzIHdlbGwgYXMgX3ZlcnNpb24ucHkgd2hpY2ggYXJlIHRoYW4gVW5saWNlbnNlLgotIyBodHRw czovL2dpdGh1Yi5jb20vQXVzdHJhbGlhbi1JbWFnaW5nLVNlcnZpY2UveG5hdDR0ZXN0cy9wdWxs LzIwCi1QYXRjaDogICAgICAgICAgMDAwMS1VcGRhdGUtVmVyc2lvbmVlci1hbmQtZml4LWNvbmZp Zy5wYXRjaAogCiBCdWlsZEFyY2g6ICAgICAgbm9hcmNoCiBCdWlsZFJlcXVpcmVzOiAgZ2l0LWNv cmUKQEAgLTQ3LDcgKzM5LDcgQEAgUHJvdmlkZXM6ICAgICAgIHhuYXQ0dGVzdHMgPSAlez9lcG9j aDole2Vwb2NofTp9JXt2ZXJzaW9ufS0le3JlbGVhc2V9CiAKIAogJXByZXAKLSVmb3JnZWF1dG9z ZXR1cCAtcDEgLVMgZ2l0CislZm9yZ2VhdXRvc2V0dXAgLVMgZ2l0CiAKICMgUmVtb3ZlIGR1cGxp Y2F0ZWQgZW50cnkgcG9pbnQKICMgV2UnbGwgY3JlYXRlIGEgc3ltbGluayBieSB0aGUgc2FtZSBu YW1lIGluc3RlYWQKCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRleCBlYzUzMTUy Li5kYTU0ZWI5IDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEgKzEgQEAK LVNIQTUxMiAoeG5hdDR0ZXN0cy0wLjMuMTQudGFyLmd6KSA9IDg1YWQ3MTAyZWI0MzA0MDZjM2Fh ODI2MjY5YTU2NGUxNTU2YzhjZDlhNmJhM2ZiNWQ1MDBkNmU5MzU3OWEwMGRmM2UyNjlmNTU2ZjQ5 Y2UzOGMwY2I4YjU2ZmM0ODA4OTc2ZGUyMzYyZDkxZWEwZTFhY2QxN2I4MjJiNWNmNTQxCitTSEE1 MTIgKHhuYXQ0dGVzdHMtMC40LjEudGFyLmd6KSA9IDUzN2M1M2QzMDg2MTBjMWFjMzQwNWIxYWI4 ODlmOWE2OTJhNTc5MWVkYjdhMTNlNTZjZWNmMWM0MGM4MjBlMzlhOTk4M2YxOGM0NGY4MWI3NjEw MWUzMGRiNmE2NWRiZGU5MTAwMWIzZDZjNmU2Yjk4MzUzNzQ0NDVkYzdlOTNjCg==