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: Christian Dersch To: git-commits@fedoraproject.org Subject: [rpms/python-photutils] epel10: Added numpy 1.14 fix https://github.com/astropy/photutils/pull/639 Date: Fri, 26 Jun 2026 03:41:45 GMT Message-ID: <178244530547.1.4820823880334288515.rpms-python-photutils-6b7e29dcb1f4@fedoraproject.org> List-ID: X-Git-Repo: rpms/python-photutils X-Git-Branch: epel10 X-Git-Rev: 6b7e29dcb1f4d188fbd6d126f30cd01eb34e50b0 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvcHl0aG9uLXBob3R1 dGlscwpCcmFuY2ggOiBlcGVsMTAKQ29tbWl0IDogNmI3ZTI5ZGNiMWY0ZDE4OGZiZDZkMTI2ZjMw Y2QwMWViMzRlNTBiMApBdXRob3IgOiBDaHJpc3RpYW4gRGVyc2NoIDxsdXBpbml4QG1haWxib3gu b3JnPgpEYXRlICAgOiAyMDE4LTAyLTE0VDA0OjAyOjQ1KzAxOjAwClN0YXRzICA6ICsxNzA1Ly0x IGluIDIgZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1z L3B5dGhvbi1waG90dXRpbHMvYy82YjdlMjlkY2IxZjRkMTg4ZmJkNmQxMjZmMzBjZDAxZWIzNGU1 MGIwP2JyYW5jaD1lcGVsMTAKCkxvZzoKQWRkZWQgbnVtcHkgMS4xNCBmaXggaHR0cHM6Ly9naXRo dWIuY29tL2FzdHJvcHkvcGhvdHV0aWxzL3B1bGwvNjM5CgotLS0KZGlmZiAtLWdpdCBhL3B5dGhv bi1waG90dXRpbHMtZml4ZXMtZm9yLW51bXB5LTEuMTQucGF0Y2ggYi9weXRob24tcGhvdHV0aWxz LWZpeGVzLWZvci1udW1weS0xLjE0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmFmZTJhYmQKLS0tIC9kZXYvbnVsbAorKysgYi9weXRob24tcGhvdHV0aWxzLWZpeGVz LWZvci1udW1weS0xLjE0LnBhdGNoCkBAIC0wLDAgKzEsMTcwMSBAQAorZGlmZiAtTmF1ciBwaG90 dXRpbHMtMC40L2RvY3MvYXBlcnR1cmUucnN0IHBob3R1dGlscy0wLjQuZml4ZWQvZG9jcy9hcGVy dHVyZS5yc3QKKy0tLSBwaG90dXRpbHMtMC40L2RvY3MvYXBlcnR1cmUucnN0CTIwMTctMTAtMzAg MTU6Mzg6MTguMDAwMDAwMDAwICswMTAwCisrKysgcGhvdHV0aWxzLTAuNC5maXhlZC9kb2NzL2Fw ZXJ0dXJlLnJzdAkyMDE4LTAyLTE0IDAzOjU2OjA3LjA2NDUyMjYzNCArMDEwMAorQEAgLTEyMiwx MiArMTIyLDEzIEBACisgICAgID4+PiBmcm9tIHBob3R1dGlscyBpbXBvcnQgYXBlcnR1cmVfcGhv dG9tZXRyeQorICAgICA+Pj4gZGF0YSA9IG5wLm9uZXMoKDEwMCwgMTAwKSkKKyAgICAgPj4+IHBo b3RfdGFibGUgPSBhcGVydHVyZV9waG90b21ldHJ5KGRhdGEsIGFwZXJ0dXJlcykKKy0gICAgPj4+ IHByaW50KHBob3RfdGFibGUpICAgICMgZG9jdGVzdDogK1NLSVAKKy0gICAgIGlkIHhjZW50ZXIg eWNlbnRlciAgYXBlcnR1cmVfc3VtCisrICAgID4+PiBwaG90X3RhYmxlWydhcGVydHVyZV9zdW0n XS5pbmZvLmZvcm1hdCA9ICclLjhnJyAgIyBmb3IgY29uc2lzdGVudCB0YWJsZSBvdXRwdXQKKysg ICAgPj4+IHByaW50KHBob3RfdGFibGUpCisrICAgICBpZCB4Y2VudGVyIHljZW50ZXIgYXBlcnR1 cmVfc3VtCisgICAgICAgICAgIHBpeCAgICAgcGl4CistICAgIC0tLSAtLS0tLS0tIC0tLS0tLS0g LS0tLS0tLS0tLS0tLQorLSAgICAgIDEgICAgMzAuMCAgICAzMC4wIDI4LjI3NDMzMzg4MjMKKy0g ICAgICAyICAgIDQwLjAgICAgNDAuMCAyOC4yNzQzMzM4ODIzCisrICAgIC0tLSAtLS0tLS0tIC0t LS0tLS0gLS0tLS0tLS0tLS0tCisrICAgICAgMSAgICAzMC4wICAgIDMwLjAgICAgMjguMjc0MzM0 CisrICAgICAgMiAgICA0MC4wICAgIDQwLjAgICAgMjguMjc0MzM0CisgCisgVGhpcyBmdW5jdGlv biByZXR1cm5zIHRoZSByZXN1bHRzIG9mIHRoZSBwaG90b21ldHJ5IGluIGFuIEFzdHJvcHkKKyBg fmFzdHJvcHkudGFibGUuUVRhYmxlYC4gIEluIHRoaXMgZXhhbXBsZSwgdGhlIHRhYmxlIGhhcyBm b3VyIGNvbHVtbnMsCitAQCAtMTU5LDcgKzE2MCw3IEBACisgCisgICAgID4+PiBwaG90X3RhYmxl ID0gYXBlcnR1cmVfcGhvdG9tZXRyeShkYXRhLCBhcGVydHVyZXMsIG1ldGhvZD0nc3VicGl4ZWwn LAorICAgICAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VicGl4ZWxzPTUp CistICAgID4+PiBwcmludChwaG90X3RhYmxlKSAgICAjIGRvY3Rlc3Q6ICtTS0lQCisrICAgID4+ PiBwcmludChwaG90X3RhYmxlKQorICAgICAgaWQgeGNlbnRlciB5Y2VudGVyIGFwZXJ0dXJlX3N1 bQorICAgICAgICAgICBwaXggICAgIHBpeAorICAgICAtLS0gLS0tLS0tLSAtLS0tLS0tIC0tLS0t LS0tLS0tLQorQEAgLTE5MiwxMiArMTkzLDE0IEBACisgICAgID4+PiByYWRpaSA9IFszLiwgNC4s IDUuXQorICAgICA+Pj4gYXBlcnR1cmVzID0gW0NpcmN1bGFyQXBlcnR1cmUocG9zaXRpb25zLCBy PXIpIGZvciByIGluIHJhZGlpXQorICAgICA+Pj4gcGhvdF90YWJsZSA9IGFwZXJ0dXJlX3Bob3Rv bWV0cnkoZGF0YSwgYXBlcnR1cmVzKQorLSAgICA+Pj4gcHJpbnQocGhvdF90YWJsZSkgICAgIyBk b2N0ZXN0OiArU0tJUAorKyAgICA+Pj4gZm9yIGNvbCBpbiBwaG90X3RhYmxlLmNvbG5hbWVzOgor KyAgICAuLi4gICAgIHBob3RfdGFibGVbY29sXS5pbmZvLmZvcm1hdCA9ICclLjhnJyAgIyBmb3Ig Y29uc2lzdGVudCB0YWJsZSBvdXRwdXQKKysgICAgPj4+IHByaW50KHBob3RfdGFibGUpCisgICAg ICBpZCB4Y2VudGVyIHljZW50ZXIgYXBlcnR1cmVfc3VtXzAgYXBlcnR1cmVfc3VtXzEgYXBlcnR1 cmVfc3VtXzIKKyAgICAgICAgICAgcGl4ICAgICBwaXgKKyAgICAgLS0tIC0tLS0tLS0gLS0tLS0t LSAtLS0tLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tLQorLSAgICAgIDEg ICAgMzAuMCAgICAzMC4wICAyOC4yNzQzMzM4ODIzICA1MC4yNjU0ODI0NTc0ICA3OC41Mzk4MTYz Mzk3CistICAgICAgMiAgICA0MC4wICAgIDQwLjAgIDI4LjI3NDMzMzg4MjMgIDUwLjI2NTQ4MjQ1 NzQgIDc4LjUzOTgxNjMzOTcKKysgICAgICAxICAgICAgMzAgICAgICAzMCAgICAgIDI4LjI3NDMz NCAgICAgIDUwLjI2NTQ4MiAgICAgIDc4LjUzOTgxNgorKyAgICAgIDIgICAgICA0MCAgICAgIDQw ICAgICAgMjguMjc0MzM0ICAgICAgNTAuMjY1NDgyICAgICAgNzguNTM5ODE2CisgCisgRm9yIG11 bHRpcGxlIGFwZXJ0dXJlcywgdGhlIG91dHB1dCB0YWJsZSBjb2x1bW4gbmFtZXMgYXJlIGFwcGVu ZGVkCisgd2l0aCB0aGUgYGBwb3NpdGlvbnNgYCBpbmRleC4KK0BAIC0yMTIsMTIgKzIxNSwxNCBA QAorICAgICA+Pj4gdGhldGEgPSBucC5waSAvIDQuCisgICAgID4+PiBhcGVydHVyZXMgPSBFbGxp cHRpY2FsQXBlcnR1cmUocG9zaXRpb25zLCBhLCBiLCB0aGV0YSkKKyAgICAgPj4+IHBob3RfdGFi bGUgPSBhcGVydHVyZV9waG90b21ldHJ5KGRhdGEsIGFwZXJ0dXJlcykKKy0gICAgPj4+IHByaW50 KHBob3RfdGFibGUpICAgICMgZG9jdGVzdDogK1NLSVAKKy0gICAgIGlkIHhjZW50ZXIgeWNlbnRl ciAgYXBlcnR1cmVfc3VtCisrICAgID4+PiBmb3IgY29sIGluIHBob3RfdGFibGUuY29sbmFtZXM6 CisrICAgIC4uLiAgICAgcGhvdF90YWJsZVtjb2xdLmluZm8uZm9ybWF0ID0gJyUuOGcnICAjIGZv ciBjb25zaXN0ZW50IHRhYmxlIG91dHB1dAorKyAgICA+Pj4gcHJpbnQocGhvdF90YWJsZSkKKysg ICAgIGlkIHhjZW50ZXIgeWNlbnRlciBhcGVydHVyZV9zdW0KKyAgICAgICAgICAgcGl4ICAgICBw aXgKKy0gICAgLS0tIC0tLS0tLS0gLS0tLS0tLSAtLS0tLS0tLS0tLS0tCistICAgICAgMSAgICAz MC4wICAgIDMwLjAgNDcuMTIzODg5ODAzOAorLSAgICAgIDIgICAgNDAuMCAgICA0MC4wIDQ3LjEy Mzg4OTgwMzgKKysgICAgLS0tIC0tLS0tLS0gLS0tLS0tLSAtLS0tLS0tLS0tLS0KKysgICAgICAx ICAgICAgMzAgICAgICAzMCAgICAgNDcuMTIzODkKKysgICAgICAyICAgICAgNDAgICAgICA0MCAg ICAgNDcuMTIzODkKKyAKKyBBZ2FpbiwgZm9yIG11bHRpcGxlIGFwZXJ0dXJlcyBvbmUgc2hvdWxk IGlucHV0IGEgbGlzdCBvZiBhcGVydHVyZQorIG9iamVjdHMsIGVhY2ggd2l0aCBpZGVudGljYWwg cG9zaXRpb25zOjoKK0BAIC0yMjgsMTIgKzIzMywxNCBAQAorICAgICA+Pj4gYXBlcnR1cmVzID0g W0VsbGlwdGljYWxBcGVydHVyZShwb3NpdGlvbnMsIGE9YWksIGI9YmksIHRoZXRhPXRoZXRhKQor ICAgICAuLi4gICAgICAgICAgICAgIGZvciAoYWksIGJpKSBpbiB6aXAoYSwgYildCisgICAgID4+ PiBwaG90X3RhYmxlID0gYXBlcnR1cmVfcGhvdG9tZXRyeShkYXRhLCBhcGVydHVyZXMpCistICAg ID4+PiBwcmludChwaG90X3RhYmxlKSAgICAjIGRvY3Rlc3Q6ICtTS0lQCisrICAgID4+PiBmb3Ig Y29sIGluIHBob3RfdGFibGUuY29sbmFtZXM6CisrICAgIC4uLiAgICAgcGhvdF90YWJsZVtjb2xd LmluZm8uZm9ybWF0ID0gJyUuOGcnICAjIGZvciBjb25zaXN0ZW50IHRhYmxlIG91dHB1dAorKyAg ICA+Pj4gcHJpbnQocGhvdF90YWJsZSkKKyAgICAgIGlkIHhjZW50ZXIgeWNlbnRlciBhcGVydHVy ZV9zdW1fMCBhcGVydHVyZV9zdW1fMSBhcGVydHVyZV9zdW1fMgorICAgICAgICAgICBwaXggICAg IHBpeAorICAgICAtLS0gLS0tLS0tLSAtLS0tLS0tIC0tLS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0t LS0tIC0tLS0tLS0tLS0tLS0tCistICAgICAgMSAgICAzMC4wICAgIDMwLjAgIDQ3LjEyMzg4OTgw MzggIDc1LjM5ODIyMzY4NjIgIDEwOS45NTU3NDI4NzYKKy0gICAgICAyICAgIDQwLjAgICAgNDAu MCAgNDcuMTIzODg5ODAzOCAgNzUuMzk4MjIzNjg2MiAgMTA5Ljk1NTc0Mjg3NgorKyAgICAgIDEg ICAgICAzMCAgICAgIDMwICAgICAgIDQ3LjEyMzg5ICAgICAgNzUuMzk4MjI0ICAgICAgMTA5Ljk1 NTc0CisrICAgICAgMiAgICAgIDQwICAgICAgNDAgICAgICAgNDcuMTIzODkgICAgICA3NS4zOTgy MjQgICAgICAxMDkuOTU1NzQKKyAKKyAKKyBCYWNrZ3JvdW5kIFN1YnRyYWN0aW9uCitAQCAtMjY3 LDEyICsyNzQsMTQgQEAKKyAKKyAgICAgPj4+IGFwZXJzID0gW2FwZXJ0dXJlcywgYW5udWx1c19h cGVydHVyZXNdCisgICAgID4+PiBwaG90X3RhYmxlID0gYXBlcnR1cmVfcGhvdG9tZXRyeShkYXRh LCBhcGVycykKKy0gICAgPj4+IHByaW50KHBob3RfdGFibGUpICAgICMgZG9jdGVzdDogK1NLSVAK KysgICAgPj4+IGZvciBjb2wgaW4gcGhvdF90YWJsZS5jb2xuYW1lczoKKysgICAgLi4uICAgICBw aG90X3RhYmxlW2NvbF0uaW5mby5mb3JtYXQgPSAnJS44ZycgICMgZm9yIGNvbnNpc3RlbnQgdGFi bGUgb3V0cHV0CisrICAgID4+PiBwcmludChwaG90X3RhYmxlKQorICAgICAgaWQgeGNlbnRlciB5 Y2VudGVyIGFwZXJ0dXJlX3N1bV8wIGFwZXJ0dXJlX3N1bV8xCisgICAgICAgICAgIHBpeCAgICAg cGl4CisgICAgIC0tLSAtLS0tLS0tIC0tLS0tLS0gLS0tLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0t LS0KKy0gICAgICAxICAgIDMwLjAgICAgMzAuMCAgMjguMjc0MzMzODgyMyAgODcuOTY0NTk0MzAw NQorLSAgICAgIDIgICAgNDAuMCAgICA0MC4wICAyOC4yNzQzMzM4ODIzICA4Ny45NjQ1OTQzMDA1 CisrICAgICAgMSAgICAgIDMwICAgICAgMzAgICAgICAyOC4yNzQzMzQgICAgICA4Ny45NjQ1OTQK KysgICAgICAyICAgICAgNDAgICAgICA0MCAgICAgIDI4LjI3NDMzNCAgICAgIDg3Ljk2NDU5NAor IAorIE5vdGUgdGhhdCB3ZSBjYW5ub3Qgc2ltcGx5IHN1YnRyYWN0IHRoZSBhcGVydHVyZSBzdW1z IGJlY2F1c2UgdGhlCisgYXBlcnR1cmVzIGhhdmUgZGlmZmVyZW50IGFyZWFzLgorQEAgLTI4OSwx MSArMjk4LDEyIEBACisgICAgID4+PiBia2dfc3VtID0gYmtnX21lYW4gKiBhcGVydHVyZXMuYXJl YSgpCisgICAgID4+PiBmaW5hbF9zdW0gPSBwaG90X3RhYmxlWydhcGVydHVyZV9zdW1fMCddIC0g YmtnX3N1bQorICAgICA+Pj4gcGhvdF90YWJsZVsncmVzaWR1YWxfYXBlcnR1cmVfc3VtJ10gPSBm aW5hbF9zdW0KKy0gICAgPj4+IHByaW50KHBob3RfdGFibGVbJ3Jlc2lkdWFsX2FwZXJ0dXJlX3N1 bSddKSAgICAjIGRvY3Rlc3Q6ICtGTE9BVF9DTVAKKysgICAgPj4+IHBob3RfdGFibGVbJ3Jlc2lk dWFsX2FwZXJ0dXJlX3N1bSddLmluZm8uZm9ybWF0ID0gJyUuOGcnICAjIGZvciBjb25zaXN0ZW50 IHRhYmxlIG91dHB1dAorKyAgICA+Pj4gcHJpbnQocGhvdF90YWJsZVsncmVzaWR1YWxfYXBlcnR1 cmVfc3VtJ10pCisgICAgIHJlc2lkdWFsX2FwZXJ0dXJlX3N1bQorICAgICAtLS0tLS0tLS0tLS0t LS0tLS0tLS0KKy0gICAgICAgIC03LjEwNTQyNzM1NzZlLTE1CistICAgICAgICAtNy4xMDU0Mjcz NTc2ZS0xNQorKyAgICAgICAgICAgLTcuMTA1NDI3NGUtMTUKKysgICAgICAgICAgIC03LjEwNTQy NzRlLTE1CisgCisgVGhlIHJlc3VsdCBoZXJlIHNob3VsZCBiZSB6ZXJvIGJlY2F1c2UgYWxsIG9m IHRoZSBkYXRhIHZhbHVlcyBhcmUgMS4wCisgKHRoZSB0aW55IGRpZmZlcmVuY2UgZnJvbSAwLjAg aXMgZHVlIHRvIG51bWVyaWNhbCBwcmVjaXNpb24pLgorQEAgLTMxNiwxMiArMzI2LDE0IEBACisg CisgICAgID4+PiBlcnJvciA9IDAuMSAqIGRhdGEKKyAgICAgPj4+IHBob3RfdGFibGUgPSBhcGVy dHVyZV9waG90b21ldHJ5KGRhdGEsIGFwZXJ0dXJlcywgZXJyb3I9ZXJyb3IpCistICAgID4+PiBw cmludChwaG90X3RhYmxlKSAgICAjIGRvY3Rlc3Q6ICtTS0lQCistICAgICBpZCB4Y2VudGVyIHlj ZW50ZXIgIGFwZXJ0dXJlX3N1bSBhcGVydHVyZV9zdW1fZXJyCisrICAgID4+PiBmb3IgY29sIGlu IHBob3RfdGFibGUuY29sbmFtZXM6CisrICAgIC4uLiAgICAgcGhvdF90YWJsZVtjb2xdLmluZm8u Zm9ybWF0ID0gJyUuOGcnICAjIGZvciBjb25zaXN0ZW50IHRhYmxlIG91dHB1dAorKyAgICA+Pj4g cHJpbnQocGhvdF90YWJsZSkKKysgICAgIGlkIHhjZW50ZXIgeWNlbnRlciBhcGVydHVyZV9zdW0g YXBlcnR1cmVfc3VtX2VycgorICAgICAgICAgICBwaXggICAgIHBpeAorLSAgICAtLS0gLS0tLS0t LSAtLS0tLS0tIC0tLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLQorLSAgICAgIDEgICAgMzAu MCAgICAzMC4wIDI4LjI3NDMzMzg4MjMgICAwLjUzMTczNjE1NTI3MgorLSAgICAgIDIgICAgNDAu MCAgICA0MC4wIDI4LjI3NDMzMzg4MjMgICAwLjUzMTczNjE1NTI3MgorKyAgICAtLS0gLS0tLS0t LSAtLS0tLS0tIC0tLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tLS0tCisrICAgICAgMSAgICAgIDMw ICAgICAgMzAgICAgMjguMjc0MzM0ICAgICAgIDAuNTMxNzM2MTYKKysgICAgICAyICAgICAgNDAg ICAgICA0MCAgICAyOC4yNzQzMzQgICAgICAgMC41MzE3MzYxNgorIAorIGBgJ2FwZXJ0dXJlX3N1 bV9lcnInYGAgdmFsdWVzIGFyZSBnaXZlbiBieToKKyAKK0BAIC0zNjMsMTggKzM3NSwyMCBAQAor ICAgICA+Pj4gZGF0YVsyLCAyXSA9IDEwMC4gICAjIGJhZCBwaXhlbAorICAgICA+Pj4gbWFza1sy LCAyXSA9IFRydWUKKyAgICAgPj4+IHQxID0gYXBlcnR1cmVfcGhvdG9tZXRyeShkYXRhLCBhcGVy dHVyZSwgbWFzaz1tYXNrKQorLSAgICA+Pj4gcHJpbnQodDFbJ2FwZXJ0dXJlX3N1bSddKSAgICAj IGRvY3Rlc3Q6ICtGTE9BVF9DTVAKKy0gICAgIGFwZXJ0dXJlX3N1bQorLSAgICAgLS0tLS0tLS0t LS0tLQorLSAgICAgMTEuNTY2MzcwNjE0NAorKyAgICA+Pj4gdDFbJ2FwZXJ0dXJlX3N1bSddLmlu Zm8uZm9ybWF0ID0gJyUuOGcnICAjIGZvciBjb25zaXN0ZW50IHRhYmxlIG91dHB1dAorKyAgICA+ Pj4gcHJpbnQodDFbJ2FwZXJ0dXJlX3N1bSddKQorKyAgICBhcGVydHVyZV9zdW0KKysgICAgLS0t LS0tLS0tLS0tCisrICAgICAgIDExLjU2NjM3MQorIAorIFRoZSByZXN1bHQgaXMgdmVyeSBkaWZm ZXJlbnQgaWYgYSBgYG1hc2tgYCBpbWFnZSBpcyBub3QgcHJvdmlkZWQ6OgorIAorICAgICA+Pj4g dDIgPSBhcGVydHVyZV9waG90b21ldHJ5KGRhdGEsIGFwZXJ0dXJlKQorLSAgICA+Pj4gcHJpbnQo dDJbJ2FwZXJ0dXJlX3N1bSddKSAgICAjIGRvY3Rlc3Q6ICtGTE9BVF9DTVAKKysgICAgPj4+IHQy WydhcGVydHVyZV9zdW0nXS5pbmZvLmZvcm1hdCA9ICclLjhnJyAgIyBmb3IgY29uc2lzdGVudCB0 YWJsZSBvdXRwdXQKKysgICAgPj4+IHByaW50KHQyWydhcGVydHVyZV9zdW0nXSkKKyAgICAgYXBl cnR1cmVfc3VtCistICAgIC0tLS0tLS0tLS0tLS0KKy0gICAgMTExLjU2NjM3MDYxNAorKyAgICAt LS0tLS0tLS0tLS0KKysgICAgICAgMTExLjU2NjM3CisgCisgCisgQXBlcnR1cmUgUGhvdG9tZXRy eSBVc2luZyBTa3kgQ29vcmRpbmF0ZXMKK2RpZmYgLU5hdXIgcGhvdHV0aWxzLTAuNC9kb2NzL2Jh Y2tncm91bmQucnN0IHBob3R1dGlscy0wLjQuZml4ZWQvZG9jcy9iYWNrZ3JvdW5kLnJzdAorLS0t IHBob3R1dGlscy0wLjQvZG9jcy9iYWNrZ3JvdW5kLnJzdAkyMDE3LTEwLTMwIDE1OjM4OjE4LjAw MDAwMDAwMCArMDEwMAorKysrIHBob3R1dGlscy0wLjQuZml4ZWQvZG9jcy9iYWNrZ3JvdW5kLnJz dAkyMDE4LTAyLTE0IDAzOjU2OjA3LjA2NDUyMjYzNCArMDEwMAorQEAgLTc2LDE4ICs3NiwxOCBA QAorIAorICAgICA+Pj4gaW1wb3J0IG51bXB5IGFzIG5wCisgICAgID4+PiBmcm9tIGFzdHJvcHku c3RhdHMgaW1wb3J0IGJpd2VpZ2h0X2xvY2F0aW9uCistICAgID4+PiBwcmludChucC5tZWRpYW4o ZGF0YSkpCistICAgIDUuMjI1NTI5NTE4NAorLSAgICA+Pj4gcHJpbnQoYml3ZWlnaHRfbG9jYXRp b24oZGF0YSkpCistICAgIDUuMTg2NzU5NzU1NQorKyAgICA+Pj4gcHJpbnQobnAubWVkaWFuKGRh dGEpKSAgIyBkb2N0ZXN0OiArRkxPQVRfQ01QCisrICAgIDUuMjI1NTI5NTE4Mzk5MDQ4CisrICAg ID4+PiBwcmludChiaXdlaWdodF9sb2NhdGlvbihkYXRhKSkgICMgZG9jdGVzdDogK0ZMT0FUX0NN UAorKyAgICA1LjE4Njc1OTc1NTQ5NTcyNworIAorIFNpbWlsYXJseSwgdXNpbmcgdGhlIG1lZGlh biBhYnNvbHV0ZSBkZXZpYXRpb24gdG8gZXN0aW1hdGUgdGhlCisgYmFja2dyb3VuZCBub2lzZSBs ZXZlbCBnaXZlcyBhIHZhbHVlIHRoYXQgaXMgbGFyZ2VyIHRoYW4gdGhlIHRydWUKKyB2YWx1ZSBv ZiAyOjoKKyAKKyAgICAgPj4+IGZyb20gYXN0cm9weS5zdGF0cyBpbXBvcnQgbWFkX3N0ZAorLSAg ICA+Pj4gcHJpbnQobWFkX3N0ZChkYXRhKSkgICAgIyBkb2N0ZXN0OiArRkxPQVRfQ01QCistICAg IDIuMTQ0MzcyODAwOQorKyAgICA+Pj4gcHJpbnQobWFkX3N0ZChkYXRhKSkgICMgZG9jdGVzdDog K0ZMT0FUX0NNUAorKyAgICAyLjE0NDM3NjAwOTY1OTg5MTQKKyAKKyAKKyBTaWdtYSBDbGlwcGlu ZyBTb3VyY2VzCitAQCAtMTAzLDggKzEwMyw4IEBACisgCisgICAgID4+PiBmcm9tIGFzdHJvcHku c3RhdHMgaW1wb3J0IHNpZ21hX2NsaXBwZWRfc3RhdHMKKyAgICAgPj4+IG1lYW4sIG1lZGlhbiwg c3RkID0gc2lnbWFfY2xpcHBlZF9zdGF0cyhkYXRhLCBzaWdtYT0zLjAsIGl0ZXJzPTUpCistICAg ID4+PiBwcmludCgobWVhbiwgbWVkaWFuLCBzdGQpKSAgICAjIGRvY3Rlc3Q6ICtGTE9BVF9DTVAK Ky0gICAgKDUuMTk5MTM4NjUxNjIxNzkwOCwgNS4xNTU1ODc0MzMzNTgyOTEyLCAyLjA5NDI3NTIx MjEzMjk2OTEpCisrICAgID4+PiBwcmludCgobWVhbiwgbWVkaWFuLCBzdGQpKSAgIyBkb2N0ZXN0 OiArRkxPQVRfQ01QCisrICAgICg1LjE5OTEzODY1MTYyMTc5MywgNS4xNTU1ODc0MzMzNTgyOTEs IDIuMDk0Mjc1MjEyMTMyOTY5KQorIAorIAorIE1hc2tpbmcgU291cmNlcworQEAgLTEzMiw4ICsx MzIsOCBAQAorICAgICA+Pj4gZnJvbSBwaG90dXRpbHMgaW1wb3J0IG1ha2Vfc291cmNlX21hc2sK KyAgICAgPj4+IG1hc2sgPSBtYWtlX3NvdXJjZV9tYXNrKGRhdGEsIHNucj0yLCBucGl4ZWxzPTUs IGRpbGF0ZV9zaXplPTExKQorICAgICA+Pj4gbWVhbiwgbWVkaWFuLCBzdGQgPSBzaWdtYV9jbGlw cGVkX3N0YXRzKGRhdGEsIHNpZ21hPTMuMCwgbWFzaz1tYXNrKQorLSAgICA+Pj4gcHJpbnQoKG1l YW4sIG1lZGlhbiwgc3RkKSkgICAgIyBkb2N0ZXN0OiArRkxPQVRfQ01QCistICAgICg1LjAwMTAx MzQ3NTQ3NTU2OTUsIDUuMDAwNTg0OTA1NjA0Mzc2MywgMS45NzA4ODcxMDA2MjY1NzIpCisrICAg ID4+PiBwcmludCgobWVhbiwgbWVkaWFuLCBzdGQpKSAgIyBkb2N0ZXN0OiArRkxPQVRfQ01QCisr ICAgICg1LjAwMTAxMzQ3NTQ3NTU2OSwgNS4wMDA1ODQ5MDU2MDQzNzYsIDEuOTcwODg3MTAwNjI2 NTcyKQorIAorIE9mIGNvdXJzZSwgdGhlIHNvdXJjZSBkZXRlY3Rpb24gYW5kIG1hc2tpbmcgcHJv Y2VkdXJlIGNhbiBiZSBpdGVyYXRlZAorIGZ1cnRoZXIuICBFdmVuIHdpdGggb25lIGl0ZXJhdGlv biB3ZSBhcmUgd2l0aGluIDAuMDIlIG9mIHRoZSB0cnVlCitAQCAtMjI5LDcgKzIyOSw3IEBACisg ICAgID4+PiB5LCB4ID0gbnAubWdyaWRbOm55LCA6bnhdCisgICAgID4+PiBncmFkaWVudCA9ICB4 ICogeSAvIDUwMDAuCisgICAgID4+PiBkYXRhMiA9IGRhdGEgKyBncmFkaWVudAorLSAgICA+Pj4g cGx0Lmltc2hvdyhkYXRhMiwgbm9ybT1ub3JtLCBvcmlnaW49J2xvd2VyJywgY21hcD0nR3JleXNf cicpICAgICMgZG9jdGVzdDogK1NLSVAKKysgICAgPj4+IHBsdC5pbXNob3coZGF0YTIsIG5vcm09 bm9ybSwgb3JpZ2luPSdsb3dlcicsIGNtYXA9J0dyZXlzX3InKSAgIyBkb2N0ZXN0OiArU0tJUAor IAorIC4uIHBsb3Q6OgorIAorQEAgLTI3MSwxMCArMjcxLDEwIEBACisgCisgLi4gZG9jdGVzdC1y ZXF1aXJlczo6IHNjaXB5CisgCistICAgID4+PiBwcmludChia2cuYmFja2dyb3VuZF9tZWRpYW4p CistICAgIDEwLjgyMTk5Nzg2MjYKKy0gICAgPj4+IHByaW50KGJrZy5iYWNrZ3JvdW5kX3Jtc19t ZWRpYW4pCistICAgIDIuMjk4ODIwNTM5NjgKKysgICAgPj4+IHByaW50KGJrZy5iYWNrZ3JvdW5k X21lZGlhbikgICMgZG9jdGVzdDogK0ZMT0FUX0NNUAorKyAgICAxMC44MjE5OTc4NjI1NjE3OTIK KysgICAgPj4+IHByaW50KGJrZy5iYWNrZ3JvdW5kX3Jtc19tZWRpYW4pICAjIGRvY3Rlc3Q6ICtG TE9BVF9DTVAKKysgICAgMi4yOTg4MjA1Mzk2ODM3NjIKKyAKKyBMZXQncyBwbG90IHRoZSBiYWNr Z3JvdW5kIGltYWdlOgorIAorQEAgLTM0OCw4ICszNDgsOCBAQAorIAorICAgICA+Pj4gZnJvbSBz Y2lweS5uZGltYWdlIGltcG9ydCByb3RhdGUKKyAgICAgPj4+IGRhdGEzID0gcm90YXRlKGRhdGEy LCAtNDUuKQorLSAgICA+Pj4gbm9ybSA9IEltYWdlTm9ybWFsaXplKHN0cmV0Y2g9U3FydFN0cmV0 Y2goKSkgICAgIyBkb2N0ZXN0OiArU0tJUAorLSAgICA+Pj4gcGx0Lmltc2hvdyhkYXRhMywgb3Jp Z2luPSdsb3dlcicsIGNtYXA9J0dyZXlzX3InLCBub3JtPW5vcm0pICAgICMgZG9jdGVzdDogK1NL SVAKKysgICAgPj4+IG5vcm0gPSBJbWFnZU5vcm1hbGl6ZShzdHJldGNoPVNxcnRTdHJldGNoKCkp ICAjIGRvY3Rlc3Q6ICtTS0lQCisrICAgID4+PiBwbHQuaW1zaG93KGRhdGEzLCBvcmlnaW49J2xv d2VyJywgY21hcD0nR3JleXNfcicsIG5vcm09bm9ybSkgICMgZG9jdGVzdDogK1NLSVAKKyAKKyAu LiBwbG90OjoKKyAKK0BAIC0zODYsOCArMzg2LDggQEAKKyAuLiBkb2N0ZXN0LXJlcXVpcmVzOjog c2NpcHkKKyAKKyAgICAgPj4+IGJhY2szID0gYmtnMy5iYWNrZ3JvdW5kICogfm1hc2sKKy0gICAg Pj4+IG5vcm0gPSBJbWFnZU5vcm1hbGl6ZShzdHJldGNoPVNxcnRTdHJldGNoKCkpICAgICMgZG9j dGVzdDogK1NLSVAKKy0gICAgPj4+IHBsdC5pbXNob3coYmFjazMsIG9yaWdpbj0nbG93ZXInLCBj bWFwPSdHcmV5c19yJywgbm9ybT1ub3JtKSAgICAjIGRvY3Rlc3Q6ICtTS0lQCisrICAgID4+PiBu b3JtID0gSW1hZ2VOb3JtYWxpemUoc3RyZXRjaD1TcXJ0U3RyZXRjaCgpKSAgIyBkb2N0ZXN0OiAr U0tJUAorKyAgICA+Pj4gcGx0Lmltc2hvdyhiYWNrMywgb3JpZ2luPSdsb3dlcicsIGNtYXA9J0dy ZXlzX3InLCBub3JtPW5vcm0pICAjIGRvY3Rlc3Q6ICtTS0lQCisgCisgLi4gcGxvdDo6CisgCitk aWZmIC1OYXVyIHBob3R1dGlscy0wLjQvZG9jcy9kZXRlY3Rpb24ucnN0IHBob3R1dGlscy0wLjQu Zml4ZWQvZG9jcy9kZXRlY3Rpb24ucnN0CistLS0gcGhvdHV0aWxzLTAuNC9kb2NzL2RldGVjdGlv bi5yc3QJMjAxNy0xMC0zMCAxNTozODoxOC4wMDAwMDAwMDAgKzAxMDAKKysrKyBwaG90dXRpbHMt MC40LmZpeGVkL2RvY3MvZGV0ZWN0aW9uLnJzdAkyMDE4LTAyLTE0IDAzOjU2OjA3LjA2NTUyMjY1 MCArMDEwMAorQEAgLTYyLDIwICs2MiwyMyBAQAorICAgICA+Pj4gZnJvbSBwaG90dXRpbHMgaW1w b3J0IERBT1N0YXJGaW5kZXIKKyAgICAgPj4+IGRhb2ZpbmQgPSBEQU9TdGFyRmluZGVyKGZ3aG09 My4wLCB0aHJlc2hvbGQ9NS4qc3RkKSAgICAjIGRvY3Rlc3Q6ICtSRU1PVEVfREFUQQorICAgICA+ Pj4gc291cmNlcyA9IGRhb2ZpbmQoZGF0YSAtIG1lZGlhbikgICAgIyBkb2N0ZXN0OiArUkVNT1RF X0RBVEEKKysgICAgPj4+IGZvciBjb2wgaW4gc291cmNlcy5jb2xuYW1lczogICAgIyBkb2N0ZXN0 OiArUkVNT1RFX0RBVEEKKysgICAgLi4uICAgICBzb3VyY2VzW2NvbF0uaW5mby5mb3JtYXQgPSAn JS44ZycgICMgZm9yIGNvbnNpc3RlbnQgdGFibGUgb3V0cHV0CisgICAgID4+PiBwcmludChzb3Vy Y2VzKSAgICAjIGRvY3Rlc3Q6ICtSRU1PVEVfREFUQQorLSAgICAgaWQgICB4Y2VudHJvaWQgICAg IHljZW50cm9pZCAgIC4uLiAgcGVhayAgICAgICBmbHV4ICAgICAgICAgICBtYWcKKy0gICAgLS0t IC0tLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLSAuLi4gLS0tLS0tIC0tLS0tLS0tLS0tLS0gLS0t LS0tLS0tLS0tLS0tCistICAgICAgMSAxNDQuMjQ3NTY3MTY0IDYuMzc5NzkwNDI3MDQgLi4uIDY5 MDMuMCA1LjcwMTQzMDMzMDM4ICAtMS44ODk5NTk1NTQzOAorLSAgICAgIDIgMjA4LjY2OTA2ODYy OCA2LjgyMDU4MDUzNzc3IC4uLiA3ODk2LjAgNi43MjMwNjczMDQ1NSAgLTIuMDY4OTE4NjQ3NDgK Ky0gICAgICAzIDIxNi45MjYxMzY2NTUgIDYuNTc3NTkzMzE5OCAuLi4gMjE5NS4wIDEuNjY3Mzc0 Njc1OTEgLTAuNTU1MDgzMDAyODY0CistICAgICAgNCAzNTEuNjI1MTkwMzgzICA4LjU0NTkwMTMy MzMgLi4uIDY5NzcuMCA1LjkwMDkyNTQ4MTQ3ICAtMS45MjczMDAzMjU3MQorLSAgICAgIDUgMzc3 LjUxOTkwOTk1OCAxMi4wNjU1MDA5OTg3IC4uLiAxMjYwLjAgMS4xMTg1NjIwMzc4MSAtMC4xMjE2 NTAxODk5NjkKKy0gICAgLi4uICAgICAgICAgICAuLi4gICAgICAgICAgIC4uLiAuLi4gICAgLi4u ICAgICAgICAgICAuLi4gICAgICAgICAgICAgLi4uCistICAgIDI4MSAyNjguMDQ5MjM2OTc5IDM5 Ny45MjUzNzE0NDYgLi4uIDkyOTkuMCA2LjIyMDIyNTg3NTQxICAtMS45ODQ1MTUzODg4NAorLSAg ICAyODIgMjY4LjQ3NTA2ODM5MiAzOTguMDIwOTk4MjcyIC4uLiA4NzU0LjAgNi4wNTA3OTE2MDU5 MyAgLTEuOTU0NTMwNDg5MzYKKy0gICAgMjgzICAyOTkuODA5NDM4MjIgMzk4LjAyNzkxMTgxMyAu Li4gODg5MC4wIDYuMTE4NTM0MTY2NjMgIC0xLjk2NjYxODQ3MzgzCistICAgIDI4NCAzMTUuNjg5 NDQ4MzQzICAzOTguNzAyNTE4OTEgLi4uIDY0ODUuMCA1LjU1NDcxMTA3NzkzICAtMS44NjE2NTM2 ODYzMQorLSAgICAyODUgMzYwLjQzNzI0MzAzNyAzOTguNjk4NTM5NTU1IC4uLiA4MDc5LjAgNS4y NjU0OTMyMTM3OSAgLTEuODAzNTk3NjQzNDUKKysgICAgIGlkIHhjZW50cm9pZCB5Y2VudHJvaWQg c2hhcnBuZXNzICAuLi4gc2t5IHBlYWsgICAgZmx1eCAgICAgICBtYWcKKysgICAgLS0tIC0tLS0t LS0tLSAtLS0tLS0tLS0gLS0tLS0tLS0tLSAuLi4gLS0tIC0tLS0gLS0tLS0tLS0tIC0tLS0tLS0t LS0tLQorKyAgICAgIDEgMTQ0LjI0NzU3IDYuMzc5NzkwNCAwLjU4MTU2MjU3IC4uLiAgIDAgNjkw MyA1LjcwMTQzMDMgICAtMS44ODk5NTk2CisrICAgICAgMiAyMDguNjY5MDcgNi44MjA1ODA1IDAu NDgzNDg5NjYgLi4uICAgMCA3ODk2IDYuNzIzMDY3MyAgIC0yLjA2ODkxODYKKysgICAgICAzIDIx Ni45MjYxNCA2LjU3NzU5MzMgMC42OTM1OTUyNSAuLi4gICAwIDIxOTUgMS42NjczNzQ3ICAgIC0w LjU1NTA4MworKyAgICAgIDQgMzUxLjYyNTE5IDguNTQ1OTAxMyAwLjQ4NTc3ODM0IC4uLiAgIDAg Njk3NyA1LjkwMDkyNTUgICAtMS45MjczMDAzCisrICAgICAgNSAzNzcuNTE5OTEgMTIuMDY1NTAx IDAuNTIwMzg0ODggLi4uICAgMCAxMjYwICAxLjExODU2MiAgLTAuMTIxNjUwMTkKKysgICAgLi4u ICAgICAgIC4uLiAgICAgICAuLi4gICAgICAgIC4uLiAuLi4gLi4uICAuLi4gICAgICAgLi4uICAg ICAgICAgIC4uLgorKyAgICAyODAgMzQ1LjU5MzA2IDM5NS4zODIyMiAgIDAuMzg0MDc4IC4uLiAg IDAgOTM1MCA1LjA1NTkwODQgICAgLTEuNzU5NDk4CisrICAgIDI4MSAyNjguMDQ5MjQgMzk3Ljky NTM3IDAuMjk2NTA3MTUgLi4uICAgMCA5Mjk5IDYuMjIwMjI1OSAgIC0xLjk4NDUxNTQKKysgICAg MjgyIDI2OC40NzUwNyAgIDM5OC4wMjEgMC4yODMyNTc0MSAuLi4gICAwIDg3NTQgNi4wNTA3OTE2 ICAgLTEuOTU0NTMwNQorKyAgICAyODMgMjk5LjgwOTQ0IDM5OC4wMjc5MSAwLjMyMDExMzM5IC4u LiAgIDAgODg5MCA2LjExODUzNDIgICAtMS45NjY2MTg1CisrICAgIDI4NCAzMTUuNjg5NDUgMzk4 LjcwMjUyIDAuMjk1MDIxMzggLi4uICAgMCA2NDg1IDUuNTU0NzExMSAgIC0xLjg2MTY1MzcKKysg ICAgMjg1IDM2MC40MzcyNCAzOTguNjk4NTQgMC44MTE0NzE0NCAuLi4gICAwIDgwNzkgNS4yNjU0 OTMyICAgLTEuODAzNTk3NgorICAgICBMZW5ndGggPSAyODUgcm93cworIAorIExldCdzIHBsb3Qg dGhlIGltYWdlIGFuZCBtYXJrIHRoZSBsb2NhdGlvbiBvZiBkZXRlY3RlZCBzb3VyY2VzOgorQEAg LTE0MywxOSArMTQ2LDIwIEBACisgICAgID4+PiBtZWFuLCBtZWRpYW4sIHN0ZCA9IHNpZ21hX2Ns aXBwZWRfc3RhdHMoZGF0YSwgc2lnbWE9My4wKQorICAgICA+Pj4gdGhyZXNob2xkID0gbWVkaWFu ICsgKDEwLjAgKiBzdGQpCisgICAgID4+PiB0YmwgPSBmaW5kX3BlYWtzKGRhdGEsIHRocmVzaG9s ZCwgYm94X3NpemU9NSkKKysgICAgPj4+IHRibFsncGVha192YWx1ZSddLmluZm8uZm9ybWF0ID0g JyUuOGcnICAjIGZvciBjb25zaXN0ZW50IHRhYmxlIG91dHB1dAorICAgICA+Pj4gcHJpbnQodGJs WzoxMF0pICAgICMgcHJpbnQgb25seSB0aGUgZmlyc3QgMTAgcGVha3MKKy0gICAgeF9wZWFrIHlf cGVhayAgIHBlYWtfdmFsdWUKKy0gICAgLS0tLS0tIC0tLS0tLSAtLS0tLS0tLS0tLS0tCistICAg ICAgIDIzMyAgICAgIDAgMjcuNDc3ODUyMTk3MgorLSAgICAgICAyMzYgICAgICAxICAyNy4zMzk1 MTk2MjQKKy0gICAgICAgMjg5ICAgICAyMiAzNS44NTMyNzU5OTY1CistICAgICAgIDQ0MiAgICAg MzEgMzAuMjM5OTk0MTM3MworLSAgICAgICAgIDEgICAgIDQwIDM1LjU0ODI4NjMwMDIKKy0gICAg ICAgIDg5ICAgICA1OSA0MS4yMTkwNDY5Mjc5CistICAgICAgICAgNyAgICAgNzAgMzMuMjg4MDY0 NzA0OAorLSAgICAgICAyNTggICAgIDc1IDI2LjU2MjQ4MDg1MTgKKy0gICAgICAgNDYzICAgICA4 MCAyOC43NTg4MjA2NjkyCistICAgICAgIDE4MiAgICAgOTMgMzguMDg4NTY4NzIwMgorKyAgICB4 X3BlYWsgeV9wZWFrIHBlYWtfdmFsdWUKKysgICAgLS0tLS0tIC0tLS0tLSAtLS0tLS0tLS0tCisr ICAgICAgIDIzMyAgICAgIDAgIDI3LjQ3Nzg1MgorKyAgICAgICAyMzYgICAgICAxICAgMjcuMzM5 NTIKKysgICAgICAgMjg5ICAgICAyMiAgMzUuODUzMjc2CisrICAgICAgIDQ0MiAgICAgMzEgIDMw LjIzOTk5NAorKyAgICAgICAgIDEgICAgIDQwICAzNS41NDgyODYKKysgICAgICAgIDg5ICAgICA1 OSAgNDEuMjE5MDQ3CisrICAgICAgICAgNyAgICAgNzAgIDMzLjI4ODA2NQorKyAgICAgICAyNTgg ICAgIDc1ICAyNi41NjI0ODEKKysgICAgICAgNDYzICAgICA4MCAgMjguNzU4ODIxCisrICAgICAg IDE4MiAgICAgOTMgIDM4LjA4ODU2OQorIAorIEFuZCBsZXQncyBwbG90IHRoZSBsb2NhdGlvbiBv ZiB0aGUgZGV0ZWN0ZWQgcGVha3MgaW4gdGhlIGltYWdlOgorIAorZGlmZiAtTmF1ciBwaG90dXRp bHMtMC40L2RvY3MvZ2V0dGluZ19zdGFydGVkLnJzdCBwaG90dXRpbHMtMC40LmZpeGVkL2RvY3Mv Z2V0dGluZ19zdGFydGVkLnJzdAorLS0tIHBob3R1dGlscy0wLjQvZG9jcy9nZXR0aW5nX3N0YXJ0 ZWQucnN0CTIwMTctMTAtMzAgMTU6Mzg6MTguMDAwMDAwMDAwICswMTAwCisrKysgcGhvdHV0aWxz LTAuNC5maXhlZC9kb2NzL2dldHRpbmdfc3RhcnRlZC5yc3QJMjAxOC0wMi0xNCAwMzo1NjowNy4w NjU1MjI2NTAgKzAxMDAKK0BAIC0zMSwyMCArMzEsMjMgQEAKKyAgICAgPj4+IGJrZ19zaWdtYSA9 IG1hZF9zdGQoaW1hZ2UpICAgICMgZG9jdGVzdDogK1JFTU9URV9EQVRBCisgICAgID4+PiBkYW9m aW5kID0gREFPU3RhckZpbmRlcihmd2htPTQuLCB0aHJlc2hvbGQ9My4qYmtnX3NpZ21hKSAgICAj IGRvY3Rlc3Q6ICtSRU1PVEVfREFUQQorICAgICA+Pj4gc291cmNlcyA9IGRhb2ZpbmQoaW1hZ2Up ICAgICMgZG9jdGVzdDogK1JFTU9URV9EQVRBCisrICAgID4+PiBmb3IgY29sIGluIHNvdXJjZXMu Y29sbmFtZXM6ICAjIGRvY3Rlc3Q6ICtSRU1PVEVfREFUQQorKyAgICAuLi4gICAgIHNvdXJjZXNb Y29sXS5pbmZvLmZvcm1hdCA9ICclLjhnJyAgIyBmb3IgY29uc2lzdGVudCB0YWJsZSBvdXRwdXQK KyAgICAgPj4+IHByaW50KHNvdXJjZXMpICAgICMgZG9jdGVzdDogK1JFTU9URV9EQVRBCistICAg ICBpZCAgIHhjZW50cm9pZCAgICAgeWNlbnRyb2lkICAgIC4uLiAgcGVhayAgICAgICBmbHV4ICAg ICAgICAgICBtYWcKKy0gICAgLS0tIC0tLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0gLi4uIC0t LS0tLSAtLS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLQorLSAgICAgIDEgMTgyLjgzODY1ODkz OCAwLjE2NzY3MDE5MDUzNyAuLi4gMzgyNC4wIDIuODAyODM0NTk0NjkgIC0xLjExODk5MzY3MzEx CistICAgICAgMiAxODkuMjA0MzA4MTM0IDAuMjYwODEzNTI1MzM4IC4uLiA0OTEzLjAgMy44NzI5 MTg1MDMxMSAgLTEuNDcwMDk1ODk1ODIKKy0gICAgICAzIDUuNzk0NjQ5MTE0MzMgIDIuNjEyNTQy NDA4MDcgLi4uIDc3NTIuMCAgNC4xMDI5MTA3Mjk0ICAtMS41MzI3MzAxNjkzNworLSAgICAgIDQg MzYuODQ3MDYyNzgwNCAgMS4zMjIwMjI3OTU4MiAuLi4gODczOS4wIDcuNDMxNTgxNzg3OTMgIC0y LjE3NzcwMzE1NDQxCistICAgICAgNSAgMy4yNTY1NjAyNDUyICA1LjQxODk1MjAxNzQ4IC4uLiA2 OTM1LjAgMy44MTI2Mjk4NDA3NCAgLTEuNDUzMDYxNjA2NzMKKy0gICAgLi4uICAgICAgICAgICAu Li4gICAgICAgICAgICAuLi4gLi4uICAgIC4uLiAgICAgICAgICAgLi4uICAgICAgICAgICAgIC4u LgorLSAgICAxNDggMTI0LjMxMzI3MjU3OSAgMTg4LjMwNTIyOTE1OSAuLi4gNjcwMi4wIDYuNjM1 ODU0MjkzMDMgIC0yLjA1NDc0MjEwMzU2CistICAgIDE0OSAyNC4yNTcyMDc0OTYyICAxOTQuNzE0 OTQyODE0IC4uLiA4MzQyLjAgIDMuMjY3MTAzNjk5NiAgLTEuMjg1NDA3Mjk4NTgKKy0gICAgMTUw IDExNi40NDk5OTg0MjIgIDE5NS4wNTkyMzMzMjUgLi4uIDMyOTkuMCAyLjg3NzUyMjA1NzY2ICAg LTEuMTQ3NTQ2NjUzNQorLSAgICAxNTEgMTguOTU4MDg2MDY0NSAgMTk2LjM0MjA2NTEzMiAuLi4g Mzg1NC4wIDIuMzgzNTI5NjEyMjQgLTAuOTQzMDUxMzc5NTk1CistICAgIDE1MiAxMTEuNTI1NzUx MTk2ICAxOTUuNzMxOTE3OTk1IC4uLiA4MTA5LjAgIDcuOTI3ODYwNzQwMSAgLTIuMjQ3ODkwMDMx OTQKKysgICAgIGlkIHhjZW50cm9pZCB5Y2VudHJvaWQgIHNoYXJwbmVzcyAgLi4uIHNreSBwZWFr ICAgIGZsdXggICAgICAgbWFnCisrICAgIC0tLSAtLS0tLS0tLS0gLS0tLS0tLS0tLSAtLS0tLS0t LS0tIC4uLiAtLS0gLS0tLSAtLS0tLS0tLS0gLS0tLS0tLS0tLS0KKysgICAgICAxIDE4Mi44Mzg2 NiAwLjE2NzY3MDE5IDAuODUwOTk4NzMgLi4uICAgMCAzODI0IDIuODAyODM0NiAgLTEuMTE4OTkz NworKyAgICAgIDIgMTg5LjIwNDMxIDAuMjYwODEzNTMgIDAuNzQwMDQ3NyAuLi4gICAwIDQ5MTMg My44NzI5MTg1ICAtMS40NzAwOTU5CisrICAgICAgMyA1Ljc5NDY0OTEgIDIuNjEyNTQyNCAwLjM5 NTg5NzMxIC4uLiAgIDAgNzc1MiA0LjEwMjkxMDcgIC0xLjUzMjczMDIKKysgICAgICA0IDM2Ljg0 NzA2MyAgMS4zMjIwMjI4IDAuMjk1OTQ1MjggLi4uICAgMCA4NzM5IDcuNDMxNTgxOCAgLTIuMTc3 NzAzMgorKyAgICAgIDUgMy4yNTY1NjAyICAgNS40MTg5NTIgMC4zNTk4NTQ5NSAuLi4gICAwIDY5 MzUgMy44MTI2Mjk4ICAtMS40NTMwNjE2CisrICAgIC4uLiAgICAgICAuLi4gICAgICAgIC4uLiAg ICAgICAgLi4uIC4uLiAuLi4gIC4uLiAgICAgICAuLi4gICAgICAgICAuLi4KKysgICAgMTQ3IDE5 Ny4yNDg2NCAgMTg2LjE2NjQ3IDAuMzEyMTE1MzIgLi4uICAgMCA4MzAyIDcuNTgxNDYyOSAgLTIu MTk5MzgyNQorKyAgICAxNDggMTI0LjMxMzI3ICAxODguMzA1MjMgIDAuNTM2Mjc0MiAuLi4gICAw IDY3MDIgNi42MzU4NTQzICAtMi4wNTQ3NDIxCisrICAgIDE0OSAyNC4yNTcyMDcgIDE5NC43MTQ5 NCAwLjQ0MTY5NTQ2IC4uLiAgIDAgODM0MiAzLjI2NzEwMzcgIC0xLjI4NTQwNzMKKysgICAgMTUw ICAgIDExNi40NSAgMTk1LjA1OTIzIDAuNjcwODA1NDcgLi4uICAgMCAzMjk5IDIuODc3NTIyMSAg LTEuMTQ3NTQ2NworKyAgICAxNTEgMTguOTU4MDg2ICAxOTYuMzQyMDcgMC41NjUwMjEzOSAuLi4g ICAwIDM4NTQgMi4zODM1Mjk2IC0wLjk0MzA1MTM4CisrICAgIDE1MiAxMTEuNTI1NzUgIDE5NS43 MzE5MiAwLjQ1ODI3ODUyIC4uLiAgIDAgODEwOSA3LjkyNzg2MDcgICAgLTIuMjQ3ODkKKyAgICAg TGVuZ3RoID0gMTUyIHJvd3MKKyAKKyBVc2luZyB0aGUgbGlzdCBvZiBzb3VyY2UgbG9jYXRpb25z IChgYHhjZW50cm9pZGBgIGFuZCBgYHljZW50cm9pZGBgKSwKK0BAIC01OSwyMSArNjIsMjMgQEAK KyAgICAgPj4+IHBvc2l0aW9ucyA9IChzb3VyY2VzWyd4Y2VudHJvaWQnXSwgc291cmNlc1sneWNl bnRyb2lkJ10pICAgICMgZG9jdGVzdDogK1JFTU9URV9EQVRBCisgICAgID4+PiBhcGVydHVyZXMg PSBDaXJjdWxhckFwZXJ0dXJlKHBvc2l0aW9ucywgcj00LikgICAgIyBkb2N0ZXN0OiArUkVNT1RF X0RBVEEKKyAgICAgPj4+IHBob3RfdGFibGUgPSBhcGVydHVyZV9waG90b21ldHJ5KGltYWdlLCBh cGVydHVyZXMpICAgICMgZG9jdGVzdDogK1JFTU9URV9EQVRBCistICAgID4+PiBwcmludChwaG90 X3RhYmxlKSAgICMgZG9jdGVzdDogK1NLSVAKKy0gICAgIGlkICAgICAgeGNlbnRlciAgICAgICAg ICAgICB5Y2VudGVyICAgICAgICBhcGVydHVyZV9zdW0KKy0gICAgICAgICAgICAgICBwaXggICAg ICAgICAgICAgICAgIHBpeAorLSAgICAtLS0gLS0tLS0tLS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0t LS0tLS0tLS0gLS0tLS0tLS0tLS0tLQorLSAgICAgIDEgIDE4Mi44Mzg2NTg5MzgxMzA4IDAuMTY3 NjcwMTkwNTM2OTM3NTIgMTgxMjEuNzU5NDgzNworLSAgICAgIDIgMTg5LjIwNDMwODEzNDAzMzg4 IDAuMjYwODEzNTI1MzM3NjY1MTYgMjk4MzYuNTE1MjE1OAorLSAgICAgIDMgIDUuNzk0NjQ5MTE0 MzI5MjQ2ICAgMi42MTI1NDI0MDgwNzM1NDcgMzMxOTc5LjgxOTAzNworLSAgICAgIDQgIDM2Ljg0 NzA2Mjc4MDQzNTgyICAxLjMyMjAyMjc5NTgxNTMyNTcgMTgzNzA1LjA5MzI4NAorLSAgICAgIDUg My4yNTY1NjAyNDUyMDA3MzI1ICAgNS40MTg5NTIwMTc0NzY1MDggMzQ5NDY4Ljk3ODYyNworLSAg ICAuLi4gICAgICAgICAgICAgICAgLi4uICAgICAgICAgICAgICAgICAuLi4gICAgICAgICAgIC4u LgorLSAgICAxNDggIDEyNC4zMTMyNzI1NzkzOTM5ICAxODguMzA1MjI5MTU4NTg2NjggNDUwODQu ODczNzg2NworLSAgICAxNDkgMjQuMjU3MjA3NDk2MjA5MDI3ICAxOTQuNzE0OTQyODE0MTkyNjUg MzU1Nzc4LjAwNzI5OAorLSAgICAxNTAgMTE2LjQ0OTk5ODQyMTc3ODI2ICAxOTUuMDU5MjMzMzI0 ODMxMTUgMzEyMzIuOTExNzgxOAorLSAgICAxNTEgMTguOTU4MDg2MDY0NDg1MDEzICAgMTk2LjM0 MjA2NTEzMTY0MDEgMTYyMDc2LjI2Mjc1MgorLSAgICAxNTIgMTExLjUyNTc1MTE5NjA1OTMzICAx OTUuNzMxOTE3OTk0NjkzNzMgODI3OTUuNzE0NTY2MQorKyAgICA+Pj4gZm9yIGNvbCBpbiBwaG90 X3RhYmxlLmNvbG5hbWVzOiAgIyBkb2N0ZXN0OiArUkVNT1RFX0RBVEEKKysgICAgLi4uICAgICBw aG90X3RhYmxlW2NvbF0uaW5mby5mb3JtYXQgPSAnJS44ZycgICMgZm9yIGNvbnNpc3RlbnQgdGFi bGUgb3V0cHV0CisrICAgID4+PiBwcmludChwaG90X3RhYmxlKSAgIyBkb2N0ZXN0OiArUkVNT1RF X0RBVEEKKysgICAgIGlkICB4Y2VudGVyICAgeWNlbnRlciAgIGFwZXJ0dXJlX3N1bQorKyAgICAg ICAgICAgcGl4ICAgICAgIHBpeAorKyAgICAtLS0gLS0tLS0tLS0tIC0tLS0tLS0tLS0gLS0tLS0t LS0tLS0tCisrICAgICAgMSAxODIuODM4NjYgMC4xNjc2NzAxOSAgICAxODEyMS43NTkKKysgICAg ICAyIDE4OS4yMDQzMSAwLjI2MDgxMzUzICAgIDI5ODM2LjUxNQorKyAgICAgIDMgNS43OTQ2NDkx ICAyLjYxMjU0MjQgICAgMzMxOTc5LjgyCisrICAgICAgNCAzNi44NDcwNjMgIDEuMzIyMDIyOCAg ICAxODM3MDUuMDkKKysgICAgICA1IDMuMjU2NTYwMiAgIDUuNDE4OTUyICAgIDM0OTQ2OC45OAor KyAgICAuLi4gICAgICAgLi4uICAgICAgICAuLi4gICAgICAgICAgLi4uCisrICAgIDE0OCAxMjQu MzEzMjcgIDE4OC4zMDUyMyAgICA0NTA4NC44NzQKKysgICAgMTQ5IDI0LjI1NzIwNyAgMTk0Ljcx NDk0ICAgIDM1NTc3OC4wMQorKyAgICAxNTAgICAgMTE2LjQ1ICAxOTUuMDU5MjMgICAgMzEyMzIu OTEyCisrICAgIDE1MSAxOC45NTgwODYgIDE5Ni4zNDIwNyAgICAxNjIwNzYuMjYKKysgICAgMTUy IDExMS41MjU3NSAgMTk1LjczMTkyICAgIDgyNzk1LjcxNQorICAgICBMZW5ndGggPSAxNTIgcm93 cworIAorIFRoZSBzdW0gb2YgdGhlIHBpeGVsIHZhbHVlcyB3aXRoaW4gdGhlIGFwZXJ0dXJlcyBh cmUgZ2l2ZW4gaW4gdGhlCitkaWZmIC1OYXVyIHBob3R1dGlscy0wLjQvcGhvdHV0aWxzL2FwZXJ0 dXJlL3Rlc3RzL3Rlc3RfYXBlcnR1cmVfcGhvdG9tZXRyeS5weSBwaG90dXRpbHMtMC40LmZpeGVk L3Bob3R1dGlscy9hcGVydHVyZS90ZXN0cy90ZXN0X2FwZXJ0dXJlX3Bob3RvbWV0cnkucHkKKy0t LSBwaG90dXRpbHMtMC40L3Bob3R1dGlscy9hcGVydHVyZS90ZXN0cy90ZXN0X2FwZXJ0dXJlX3Bo b3RvbWV0cnkucHkJMjAxNy0xMC0zMCAxNTozODoxOC4wMDAwMDAwMDAgKzAxMDAKKysrKyBwaG90 dXRpbHMtMC40LmZpeGVkL3Bob3R1dGlscy9hcGVydHVyZS90ZXN0cy90ZXN0X2FwZXJ0dXJlX3Bo b3RvbWV0cnkucHkJMjAxOC0wMi0xNCAwMzo1NjowNy4wNjM1MjI2MTkgKzAxMDAKK0BAIC0xOSw4 ICsxOSwxMCBAQAorIGZyb20gYXN0cm9weS50YWJsZSBpbXBvcnQgVGFibGUKKyBmcm9tIGFzdHJv cHkudGVzdHMuaGVscGVyIGltcG9ydCByZW1vdGVfZGF0YQorIGltcG9ydCBhc3Ryb3B5LnVuaXRz IGFzIHUKKytmcm9tIGFzdHJvcHkudXRpbHMuY29tcGF0IGltcG9ydCBOVU1QWV9MVF8xXzE0Cisg ZnJvbSBhc3Ryb3B5Lndjcy51dGlscyBpbXBvcnQgcGl4ZWxfdG9fc2t5Y29vcmQKKyAKKysKKyBm cm9tIC4uY29yZSBpbXBvcnQgYXBlcnR1cmVfcGhvdG9tZXRyeQorIGZyb20gLi5jaXJjbGUgaW1w b3J0IChDaXJjdWxhckFwZXJ0dXJlLCBDaXJjdWxhckFubnVsdXMsIFNreUNpcmN1bGFyQXBlcnR1 cmUsCisgICAgICAgICAgICAgICAgICAgICAgIFNreUNpcmN1bGFyQW5udWx1cykKK0BAIC02NjQs NjQgKzY2NiwxMTkgQEAKKyAgICAgcyA9IFNreUNvb3JkKFsxLCAyXSwgWzMsIDRdLCB1bml0PSdk ZWcnKQorIAorICAgICBhcGVyID0gU2t5Q2lyY3VsYXJBcGVydHVyZShzLCByPTMqdS5waXgpCist ICAgIGFfcmVwciA9ICgnPFNreUNpcmN1bGFyQXBlcnR1cmUoPFNreUNvb3JkIChJQ1JTKTogKHJh LCBkZWMpIGluIGRlZ1xuJworLSAgICAgICAgICAgICAgJyAgICBbKCAxLiwgIDMuKSwgKCAyLiwg IDQuKV0+LCByPTMuMCBwaXgpPicpCistICAgIGFfc3RyID0gKCdBcGVydHVyZTogU2t5Q2lyY3Vs YXJBcGVydHVyZVxucG9zaXRpb25zOiA8U2t5Q29vcmQgJworLSAgICAgICAgICAgICAnKElDUlMp OiAocmEsIGRlYykgaW4gZGVnXG4gICAgWyggMS4sICAzLiksICggMi4sICA0LildPlxuJworLSAg ICAgICAgICAgICAncjogMy4wIHBpeCcpCisrICAgIGlmIE5VTVBZX0xUXzFfMTQ6CisrICAgICAg ICBhX3JlcHIgPSAoJzxTa3lDaXJjdWxhckFwZXJ0dXJlKDxTa3lDb29yZCAoSUNSUyk6IChyYSwg ZGVjKSBpbiBkZWdcbicKKysgICAgICAgICAgICAgICAgICAnICAgIFsoIDEuLCAgMy4pLCAoIDIu LCAgNC4pXT4sIHI9My4wIHBpeCk+JykKKysgICAgICAgIGFfc3RyID0gKCdBcGVydHVyZTogU2t5 Q2lyY3VsYXJBcGVydHVyZVxucG9zaXRpb25zOiA8U2t5Q29vcmQgJworKyAgICAgICAgICAgICAg ICAgJyhJQ1JTKTogKHJhLCBkZWMpIGluIGRlZ1xuICAgIFsoIDEuLCAgMy4pLCAoIDIuLCAgNC4p XT5cbicKKysgICAgICAgICAgICAgICAgICdyOiAzLjAgcGl4JykKKysgICAgZWxzZToKKysgICAg ICAgIGFfcmVwciA9ICgnPFNreUNpcmN1bGFyQXBlcnR1cmUoPFNreUNvb3JkIChJQ1JTKTogKHJh LCBkZWMpIGluIGRlZ1xuJworKyAgICAgICAgICAgICAgICAgICcgICAgWygxLiwgMy4pLCAoMi4s IDQuKV0+LCByPTMuMCBwaXgpPicpCisrICAgICAgICBhX3N0ciA9ICgnQXBlcnR1cmU6IFNreUNp cmN1bGFyQXBlcnR1cmVcbnBvc2l0aW9uczogPFNreUNvb3JkICcKKysgICAgICAgICAgICAgICAg ICcoSUNSUyk6IChyYSwgZGVjKSBpbiBkZWdcbiAgICBbKDEuLCAzLiksICgyLiwgNC4pXT5cbicK KysgICAgICAgICAgICAgICAgICdyOiAzLjAgcGl4JykKKysKKyAgICAgYXNzZXJ0IHJlcHIoYXBl cikgPT0gYV9yZXByCisgICAgIGFzc2VydCBzdHIoYXBlcikgPT0gYV9zdHIKKyAKKyAgICAgYXBl ciA9IFNreUNpcmN1bGFyQW5udWx1cyhzLCByX2luPTMuKnUucGl4LCByX291dD01KnUucGl4KQor LSAgICBhX3JlcHIgPSAoJzxTa3lDaXJjdWxhckFubnVsdXMoPFNreUNvb3JkIChJQ1JTKTogKHJh LCBkZWMpIGluIGRlZ1xuJworLSAgICAgICAgICAgICAgJyAgICBbKCAxLiwgIDMuKSwgKCAyLiwg IDQuKV0+LCByX2luPTMuMCBwaXgsIHJfb3V0PTUuMCBwaXgpPicpCistICAgIGFfc3RyID0gKCdB cGVydHVyZTogU2t5Q2lyY3VsYXJBbm51bHVzXG5wb3NpdGlvbnM6IDxTa3lDb29yZCAnCistICAg ICAgICAgICAgICcoSUNSUyk6IChyYSwgZGVjKSBpbiBkZWdcbiAgICBbKCAxLiwgIDMuKSwgKCAy LiwgIDQuKV0+XG4nCistICAgICAgICAgICAgICdyX2luOiAzLjAgcGl4XG5yX291dDogNS4wIHBp eCcpCisrICAgIGlmIE5VTVBZX0xUXzFfMTQ6CisrICAgICAgICBhX3JlcHIgPSAoJzxTa3lDaXJj dWxhckFubnVsdXMoPFNreUNvb3JkIChJQ1JTKTogKHJhLCBkZWMpIGluIGRlZ1xuJworKyAgICAg ICAgICAgICAgICAgICcgICAgWyggMS4sICAzLiksICggMi4sICA0LildPiwgcl9pbj0zLjAgcGl4 LCAnCisrICAgICAgICAgICAgICAgICAgJ3Jfb3V0PTUuMCBwaXgpPicpCisrICAgICAgICBhX3N0 ciA9ICgnQXBlcnR1cmU6IFNreUNpcmN1bGFyQW5udWx1c1xucG9zaXRpb25zOiA8U2t5Q29vcmQg JworKyAgICAgICAgICAgICAgICAgJyhJQ1JTKTogKHJhLCBkZWMpIGluIGRlZ1xuICAgIFsoIDEu LCAgMy4pLCAoIDIuLCAgNC4pXT5cbicKKysgICAgICAgICAgICAgICAgICdyX2luOiAzLjAgcGl4 XG5yX291dDogNS4wIHBpeCcpCisrICAgIGVsc2U6CisrICAgICAgICBhX3JlcHIgPSAoJzxTa3lD aXJjdWxhckFubnVsdXMoPFNreUNvb3JkIChJQ1JTKTogKHJhLCBkZWMpIGluIGRlZ1xuJworKyAg ICAgICAgICAgICAgICAgICcgICAgWygxLiwgMy4pLCAoMi4sIDQuKV0+LCByX2luPTMuMCBwaXgs IHJfb3V0PTUuMCBwaXgpPicpCisrICAgICAgICBhX3N0ciA9ICgnQXBlcnR1cmU6IFNreUNpcmN1 bGFyQW5udWx1c1xucG9zaXRpb25zOiA8U2t5Q29vcmQgJworKyAgICAgICAgICAgICAgICAgJyhJ Q1JTKTogKHJhLCBkZWMpIGluIGRlZ1xuICAgIFsoMS4sIDMuKSwgKDIuLCA0LildPlxuJworKyAg ICAgICAgICAgICAgICAgJ3JfaW46IDMuMCBwaXhcbnJfb3V0OiA1LjAgcGl4JykKKysKKyAgICAg YXNzZXJ0IHJlcHIoYXBlcikgPT0gYV9yZXByCisgICAgIGFzc2VydCBzdHIoYXBlcikgPT0gYV9z dHIKKyAKKyAgICAgYXBlciA9IFNreUVsbGlwdGljYWxBcGVydHVyZShzLCBhPTMqdS5waXgsIGI9 NSp1LnBpeCwgdGhldGE9MTUqdS5kZWcpCistICAgIGFfcmVwciA9ICgnPFNreUVsbGlwdGljYWxB cGVydHVyZSg8U2t5Q29vcmQgKElDUlMpOiAocmEsIGRlYykgaW4gJworLSAgICAgICAgICAgICAg J2RlZ1xuICAgIFsoIDEuLCAgMy4pLCAoIDIuLCAgNC4pXT4sIGE9My4wIHBpeCwgYj01LjAgcGl4 LCcKKy0gICAgICAgICAgICAgICcgdGhldGE9MTUuMCBkZWcpPicpCistICAgIGFfc3RyID0gKCdB cGVydHVyZTogU2t5RWxsaXB0aWNhbEFwZXJ0dXJlXG5wb3NpdGlvbnM6IDxTa3lDb29yZCAnCist ICAgICAgICAgICAgICcoSUNSUyk6IChyYSwgZGVjKSBpbiBkZWdcbiAgICBbKCAxLiwgIDMuKSwg KCAyLiwgIDQuKV0+XG4nCistICAgICAgICAgICAgICdhOiAzLjAgcGl4XG5iOiA1LjAgcGl4XG50 aGV0YTogMTUuMCBkZWcnKQorKyAgICBpZiBOVU1QWV9MVF8xXzE0OgorKyAgICAgICAgYV9yZXBy ID0gKCc8U2t5RWxsaXB0aWNhbEFwZXJ0dXJlKDxTa3lDb29yZCAoSUNSUyk6IChyYSwgZGVjKSBp biAnCisrICAgICAgICAgICAgICAgICAgJ2RlZ1xuICAgIFsoIDEuLCAgMy4pLCAoIDIuLCAgNC4p XT4sIGE9My4wIHBpeCwgYj01LjAgcGl4LCcKKysgICAgICAgICAgICAgICAgICAnIHRoZXRhPTE1 LjAgZGVnKT4nKQorKyAgICAgICAgYV9zdHIgPSAoJ0FwZXJ0dXJlOiBTa3lFbGxpcHRpY2FsQXBl cnR1cmVcbnBvc2l0aW9uczogPFNreUNvb3JkICcKKysgICAgICAgICAgICAgICAgICcoSUNSUyk6 IChyYSwgZGVjKSBpbiBkZWdcbiAgICBbKCAxLiwgIDMuKSwgKCAyLiwgIDQuKV0+XG4nCisrICAg ICAgICAgICAgICAgICAnYTogMy4wIHBpeFxuYjogNS4wIHBpeFxudGhldGE6IDE1LjAgZGVnJykK KysgICAgZWxzZToKKysgICAgICAgIGFfcmVwciA9ICgnPFNreUVsbGlwdGljYWxBcGVydHVyZSg8 U2t5Q29vcmQgKElDUlMpOiAocmEsIGRlYykgaW4gJworKyAgICAgICAgICAgICAgICAgICdkZWdc biAgICBbKDEuLCAzLiksICgyLiwgNC4pXT4sIGE9My4wIHBpeCwgYj01LjAgcGl4LCcKKysgICAg ICAgICAgICAgICAgICAnIHRoZXRhPTE1LjAgZGVnKT4nKQorKyAgICAgICAgYV9zdHIgPSAoJ0Fw ZXJ0dXJlOiBTa3lFbGxpcHRpY2FsQXBlcnR1cmVcbnBvc2l0aW9uczogPFNreUNvb3JkICcKKysg ICAgICAgICAgICAgICAgICcoSUNSUyk6IChyYSwgZGVjKSBpbiBkZWdcbiAgICBbKDEuLCAzLiks ICgyLiwgNC4pXT5cbicKKysgICAgICAgICAgICAgICAgICdhOiAzLjAgcGl4XG5iOiA1LjAgcGl4 XG50aGV0YTogMTUuMCBkZWcnKQorKworICAgICBhc3NlcnQgcmVwcihhcGVyKSA9PSBhX3JlcHIK KyAgICAgYXNzZXJ0IHN0cihhcGVyKSA9PSBhX3N0cgorIAorICAgICBhcGVyID0gU2t5RWxsaXB0 aWNhbEFubnVsdXMocywgYV9pbj0zKnUucGl4LCBhX291dD01KnUucGl4LCBiX291dD0zKnUucGl4 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhldGE9MTUqdS5kZWcpCistICAg IGFfcmVwciA9ICgnPFNreUVsbGlwdGljYWxBbm51bHVzKDxTa3lDb29yZCAoSUNSUyk6IChyYSwg ZGVjKSBpbiAnCistICAgICAgICAgICAgICAnZGVnXG4gICAgWyggMS4sICAzLiksICggMi4sICA0 LildPiwgYV9pbj0zLjAgcGl4LCAnCistICAgICAgICAgICAgICAnYV9vdXQ9NS4wIHBpeCwgYl9v dXQ9My4wIHBpeCwgdGhldGE9MTUuMCBkZWcpPicpCistICAgIGFfc3RyID0gKCdBcGVydHVyZTog U2t5RWxsaXB0aWNhbEFubnVsdXNcbnBvc2l0aW9uczogPFNreUNvb3JkICcKKy0gICAgICAgICAg ICAgJyhJQ1JTKTogKHJhLCBkZWMpIGluIGRlZ1xuICAgIFsoIDEuLCAgMy4pLCAoIDIuLCAgNC4p XT5cbicKKy0gICAgICAgICAgICAgJ2FfaW46IDMuMCBwaXhcbmFfb3V0OiA1LjAgcGl4XG5iX291 dDogMy4wIHBpeFxuJworLSAgICAgICAgICAgICAndGhldGE6IDE1LjAgZGVnJykKKysgICAgaWYg TlVNUFlfTFRfMV8xNDoKKysgICAgICAgIGFfcmVwciA9ICgnPFNreUVsbGlwdGljYWxBbm51bHVz KDxTa3lDb29yZCAoSUNSUyk6IChyYSwgZGVjKSBpbiAnCisrICAgICAgICAgICAgICAgICAgJ2Rl Z1xuICAgIFsoIDEuLCAgMy4pLCAoIDIuLCAgNC4pXT4sIGFfaW49My4wIHBpeCwgJworKyAgICAg ICAgICAgICAgICAgICdhX291dD01LjAgcGl4LCBiX291dD0zLjAgcGl4LCB0aGV0YT0xNS4wIGRl Zyk+JykKKysgICAgICAgIGFfc3RyID0gKCdBcGVydHVyZTogU2t5RWxsaXB0aWNhbEFubnVsdXNc bnBvc2l0aW9uczogPFNreUNvb3JkICcKKysgICAgICAgICAgICAgICAgICcoSUNSUyk6IChyYSwg ZGVjKSBpbiBkZWdcbiAgICBbKCAxLiwgIDMuKSwgKCAyLiwgIDQuKV0+XG4nCisrICAgICAgICAg ICAgICAgICAnYV9pbjogMy4wIHBpeFxuYV9vdXQ6IDUuMCBwaXhcbmJfb3V0OiAzLjAgcGl4XG4n CisrICAgICAgICAgICAgICAgICAndGhldGE6IDE1LjAgZGVnJykKKysgICAgZWxzZToKKysgICAg ICAgIGFfcmVwciA9ICgnPFNreUVsbGlwdGljYWxBbm51bHVzKDxTa3lDb29yZCAoSUNSUyk6IChy YSwgZGVjKSBpbiAnCisrICAgICAgICAgICAgICAgICAgJ2RlZ1xuICAgIFsoMS4sIDMuKSwgKDIu LCA0LildPiwgYV9pbj0zLjAgcGl4LCAnCisrICAgICAgICAgICAgICAgICAgJ2Ffb3V0PTUuMCBw aXgsIGJfb3V0PTMuMCBwaXgsIHRoZXRhPTE1LjAgZGVnKT4nKQorKyAgICAgICAgYV9zdHIgPSAo J0FwZXJ0dXJlOiBTa3lFbGxpcHRpY2FsQW5udWx1c1xucG9zaXRpb25zOiA8U2t5Q29vcmQgJwor KyAgICAgICAgICAgICAgICAgJyhJQ1JTKTogKHJhLCBkZWMpIGluIGRlZ1xuICAgIFsoMS4sIDMu KSwgKDIuLCA0LildPlxuJworKyAgICAgICAgICAgICAgICAgJ2FfaW46IDMuMCBwaXhcbmFfb3V0 OiA1LjAgcGl4XG5iX291dDogMy4wIHBpeFxuJworKyAgICAgICAgICAgICAgICAgJ3RoZXRhOiAx NS4wIGRlZycpCisrCisgICAgIGFzc2VydCByZXByKGFwZXIpID09IGFfcmVwcgorICAgICBhc3Nl cnQgc3RyKGFwZXIpID09IGFfc3RyCisgCisgICAgIGFwZXIgPSBTa3lSZWN0YW5ndWxhckFwZXJ0 dXJlKHMsIHc9Myp1LnBpeCwgaD01KnUucGl4LCB0aGV0YT0xNSp1LmRlZykKKy0gICAgYV9yZXBy ID0gKCc8U2t5UmVjdGFuZ3VsYXJBcGVydHVyZSg8U2t5Q29vcmQgKElDUlMpOiAocmEsIGRlYykg aW4gJworLSAgICAgICAgICAgICAgJ2RlZ1xuICAgIFsoIDEuLCAgMy4pLCAoIDIuLCAgNC4pXT4s IHc9My4wIHBpeCwgaD01LjAgcGl4JworLSAgICAgICAgICAgICAgJywgdGhldGE9MTUuMCBkZWcp PicpCistICAgIGFfc3RyID0gKCdBcGVydHVyZTogU2t5UmVjdGFuZ3VsYXJBcGVydHVyZVxucG9z aXRpb25zOiA8U2t5Q29vcmQgJworLSAgICAgICAgICAgICAnKElDUlMpOiAocmEsIGRlYykgaW4g ZGVnXG4gICAgWyggMS4sICAzLiksICggMi4sICA0LildPlxuJworLSAgICAgICAgICAgICAndzog My4wIHBpeFxuaDogNS4wIHBpeFxudGhldGE6IDE1LjAgZGVnJykKKysgICAgaWYgTlVNUFlfTFRf MV8xNDoKKysgICAgICAgIGFfcmVwciA9ICgnPFNreVJlY3Rhbmd1bGFyQXBlcnR1cmUoPFNreUNv b3JkIChJQ1JTKTogKHJhLCBkZWMpIGluICcKKysgICAgICAgICAgICAgICAgICAnZGVnXG4gICAg WyggMS4sICAzLiksICggMi4sICA0LildPiwgdz0zLjAgcGl4LCBoPTUuMCBwaXgnCisrICAgICAg ICAgICAgICAgICAgJywgdGhldGE9MTUuMCBkZWcpPicpCisrICAgICAgICBhX3N0ciA9ICgnQXBl cnR1cmU6IFNreVJlY3Rhbmd1bGFyQXBlcnR1cmVcbnBvc2l0aW9uczogPFNreUNvb3JkICcKKysg ICAgICAgICAgICAgICAgICcoSUNSUyk6IChyYSwgZGVjKSBpbiBkZWdcbiAgICBbKCAxLiwgIDMu KSwgKCAyLiwgIDQuKV0+XG4nCisrICAgICAgICAgICAgICAgICAndzogMy4wIHBpeFxuaDogNS4w IHBpeFxudGhldGE6IDE1LjAgZGVnJykKKysgICAgZWxzZToKKysgICAgICAgIGFfcmVwciA9ICgn PFNreVJlY3Rhbmd1bGFyQXBlcnR1cmUoPFNreUNvb3JkIChJQ1JTKTogKHJhLCBkZWMpIGluICcK KysgICAgICAgICAgICAgICAgICAnZGVnXG4gICAgWygxLiwgMy4pLCAoMi4sIDQuKV0+LCB3PTMu MCBwaXgsIGg9NS4wIHBpeCcKKysgICAgICAgICAgICAgICAgICAnLCB0aGV0YT0xNS4wIGRlZyk+ JykKKysgICAgICAgIGFfc3RyID0gKCdBcGVydHVyZTogU2t5UmVjdGFuZ3VsYXJBcGVydHVyZVxu cG9zaXRpb25zOiA8U2t5Q29vcmQgJworKyAgICAgICAgICAgICAgICAgJyhJQ1JTKTogKHJhLCBk ZWMpIGluIGRlZ1xuICAgIFsoMS4sIDMuKSwgKDIuLCA0LildPlxuJworKyAgICAgICAgICAgICAg ICAgJ3c6IDMuMCBwaXhcbmg6IDUuMCBwaXhcbnRoZXRhOiAxNS4wIGRlZycpCisrCisgICAgIGFz c2VydCByZXByKGFwZXIpID09IGFfcmVwcgorICAgICBhc3NlcnQgc3RyKGFwZXIpID09IGFfc3Ry CisgCisgICAgIGFwZXIgPSBTa3lSZWN0YW5ndWxhckFubnVsdXMocywgd19pbj0zKnUucGl4LCB3 X291dD0zLjQqdS5waXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaF9vdXQ9 NSp1LnBpeCwgdGhldGE9MTUqdS5kZWcpCistICAgIGFfcmVwciA9ICgnPFNreVJlY3Rhbmd1bGFy QW5udWx1cyg8U2t5Q29vcmQgKElDUlMpOiAocmEsIGRlYykgaW4gZGVnJworLSAgICAgICAgICAg ICAgJ1xuICAgIFsoIDEuLCAgMy4pLCAoIDIuLCAgNC4pXT4sIHdfaW49My4wIHBpeCwgJworLSAg ICAgICAgICAgICAgJ3dfb3V0PTMuNCBwaXgsIGhfb3V0PTUuMCBwaXgsIHRoZXRhPTE1LjAgZGVn KT4nKQorLSAgICBhX3N0ciA9ICgnQXBlcnR1cmU6IFNreVJlY3Rhbmd1bGFyQW5udWx1c1xucG9z aXRpb25zOiA8U2t5Q29vcmQgJworLSAgICAgICAgICAgICAnKElDUlMpOiAocmEsIGRlYykgaW4g ZGVnXG4gICAgWyggMS4sICAzLiksICggMi4sICA0LildPlxuJworLSAgICAgICAgICAgICAnd19p bjogMy4wIHBpeFxud19vdXQ6IDMuNCBwaXhcbmhfb3V0OiA1LjAgcGl4XG4nCistICAgICAgICAg ICAgICd0aGV0YTogMTUuMCBkZWcnKQorKyAgICBpZiBOVU1QWV9MVF8xXzE0OgorKyAgICAgICAg YV9yZXByID0gKCc8U2t5UmVjdGFuZ3VsYXJBbm51bHVzKDxTa3lDb29yZCAoSUNSUyk6IChyYSwg ZGVjKSBpbiBkZWcnCisrICAgICAgICAgICAgICAgICAgJ1xuICAgIFsoIDEuLCAgMy4pLCAoIDIu LCAgNC4pXT4sIHdfaW49My4wIHBpeCwgJworKyAgICAgICAgICAgICAgICAgICd3X291dD0zLjQg cGl4LCBoX291dD01LjAgcGl4LCB0aGV0YT0xNS4wIGRlZyk+JykKKysgICAgICAgIGFfc3RyID0g KCdBcGVydHVyZTogU2t5UmVjdGFuZ3VsYXJBbm51bHVzXG5wb3NpdGlvbnM6IDxTa3lDb29yZCAn CisrICAgICAgICAgICAgICAgICAnKElDUlMpOiAocmEsIGRlYykgaW4gZGVnXG4gICAgWyggMS4s ICAzLiksICggMi4sICA0LildPlxuJworKyAgICAgICAgICAgICAgICAgJ3dfaW46IDMuMCBwaXhc bndfb3V0OiAzLjQgcGl4XG5oX291dDogNS4wIHBpeFxuJworKyAgICAgICAgICAgICAgICAgJ3Ro ZXRhOiAxNS4wIGRlZycpCisrICAgIGVsc2U6CisrICAgICAgICBhX3JlcHIgPSAoJzxTa3lSZWN0 YW5ndWxhckFubnVsdXMoPFNreUNvb3JkIChJQ1JTKTogKHJhLCBkZWMpIGluIGRlZycKKysgICAg ICAgICAgICAgICAgICAnXG4gICAgWygxLiwgMy4pLCAoMi4sIDQuKV0+LCB3X2luPTMuMCBwaXgs ICcKKysgICAgICAgICAgICAgICAgICAnd19vdXQ9My40IHBpeCwgaF9vdXQ9NS4wIHBpeCwgdGhl dGE9MTUuMCBkZWcpPicpCisrICAgICAgICBhX3N0ciA9ICgnQXBlcnR1cmU6IFNreVJlY3Rhbmd1 bGFyQW5udWx1c1xucG9zaXRpb25zOiA8U2t5Q29vcmQgJworKyAgICAgICAgICAgICAgICAgJyhJ Q1JTKTogKHJhLCBkZWMpIGluIGRlZ1xuICAgIFsoMS4sIDMuKSwgKDIuLCA0LildPlxuJworKyAg ICAgICAgICAgICAgICAgJ3dfaW46IDMuMCBwaXhcbndfb3V0OiAzLjQgcGl4XG5oX291dDogNS4w IHBpeFxuJworKyAgICAgICAgICAgICAgICAgJ3RoZXRhOiAxNS4wIGRlZycpCisrCisgICAgIGFz c2VydCByZXByKGFwZXIpID09IGFfcmVwcgorICAgICBhc3NlcnQgc3RyKGFwZXIpID09IGFfc3Ry CisgCitkaWZmIC1OYXVyIHBob3R1dGlscy0wLjQvcGhvdHV0aWxzL2FwZXJ0dXJlL3Rlc3RzL3Rl c3RfYXBlcnR1cmVfcGhvdG9tZXRyeS5weS5vcmlnIHBob3R1dGlscy0wLjQuZml4ZWQvcGhvdHV0 aWxzL2FwZXJ0dXJlL3Rlc3RzL3Rlc3RfYXBlcnR1cmVfcGhvdG9tZXRyeS5weS5vcmlnCistLS0g cGhvdHV0aWxzLTAuNC9waG90dXRpbHMvYXBlcnR1cmUvdGVzdHMvdGVzdF9hcGVydHVyZV9waG90 b21ldHJ5LnB5Lm9yaWcJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBw aG90dXRpbHMtMC40LmZpeGVkL3Bob3R1dGlscy9hcGVydHVyZS90ZXN0cy90ZXN0X2FwZXJ0dXJl X3Bob3RvbWV0cnkucHkub3JpZwkyMDE3LTEwLTMwIDE1OjM4OjE4LjAwMDAwMDAwMCArMDEwMAor QEAgLTAsMCArMSw4MzAgQEAKKysjIExpY2Vuc2VkIHVuZGVyIGEgMy1jbGF1c2UgQlNEIHN0eWxl IGxpY2Vuc2UgLSBzZWUgTElDRU5TRS5yc3QKKysiIiIKKytUaGUgdGVzdHMgaW4gdGhpcyBmaWxl IHRlc3QgdGhlIGFjY3VyYWN5IG9mIHRoZSBwaG90b21ldHJpYyByZXN1bHRzLgorK0hlcmUgd2Ug dGVzdCBkaXJlY3RseSB3aXRoIGFwZXJ0dXJlIG9iamVjdHMgc2luY2Ugd2UgYXJlIGNoZWNraW5n IHRoZQorK2FsZ29yaXRobXMgaW4gYXBlcnR1cmVfcGhvdG9tZXRyeSwgbm90IGluIHRoZSB3cmFw cGVycy4KKysiIiIKKysKKytmcm9tIF9fZnV0dXJlX18gaW1wb3J0IChhYnNvbHV0ZV9pbXBvcnQs IGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbiwKKysgICAgICAgICAgICAgICAgICAgICAgICB1bmlj b2RlX2xpdGVyYWxzKQorKworK2ltcG9ydCBweXRlc3QKKytpbXBvcnQgbnVtcHkgYXMgbnAKKytm cm9tIG51bXB5LnRlc3RpbmcgaW1wb3J0IChhc3NlcnRfYWxsY2xvc2UsIGFzc2VydF9hcnJheV9l cXVhbCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfbGVzcykKKysK Kytmcm9tIGFzdHJvcHkuY29vcmRpbmF0ZXMgaW1wb3J0IFNreUNvb3JkCisrZnJvbSBhc3Ryb3B5 LmlvIGltcG9ydCBmaXRzCisrZnJvbSBhc3Ryb3B5Lm5kZGF0YSBpbXBvcnQgTkREYXRhCisrZnJv bSBhc3Ryb3B5LnRhYmxlIGltcG9ydCBUYWJsZQorK2Zyb20gYXN0cm9weS50ZXN0cy5oZWxwZXIg aW1wb3J0IHJlbW90ZV9kYXRhCisraW1wb3J0IGFzdHJvcHkudW5pdHMgYXMgdQorK2Zyb20gYXN0 cm9weS53Y3MudXRpbHMgaW1wb3J0IHBpeGVsX3RvX3NreWNvb3JkCisrCisrZnJvbSAuLmNvcmUg aW1wb3J0IGFwZXJ0dXJlX3Bob3RvbWV0cnkKKytmcm9tIC4uY2lyY2xlIGltcG9ydCAoQ2lyY3Vs YXJBcGVydHVyZSwgQ2lyY3VsYXJBbm51bHVzLCBTa3lDaXJjdWxhckFwZXJ0dXJlLAorKyAgICAg ICAgICAgICAgICAgICAgICBTa3lDaXJjdWxhckFubnVsdXMpCisrZnJvbSAuLmVsbGlwc2UgaW1w b3J0IChFbGxpcHRpY2FsQXBlcnR1cmUsIEVsbGlwdGljYWxBbm51bHVzLAorKyAgICAgICAgICAg ICAgICAgICAgICAgU2t5RWxsaXB0aWNhbEFwZXJ0dXJlLCBTa3lFbGxpcHRpY2FsQW5udWx1cykK Kytmcm9tIC4ucmVjdGFuZ2xlIGltcG9ydCAoUmVjdGFuZ3VsYXJBcGVydHVyZSwgUmVjdGFuZ3Vs YXJBbm51bHVzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICBTa3lSZWN0YW5ndWxhckFwZXJ0 dXJlLCBTa3lSZWN0YW5ndWxhckFubnVsdXMpCisrZnJvbSAuLi5kYXRhc2V0cyBpbXBvcnQgKGdl dF9wYXRoLCBtYWtlXzRnYXVzc2lhbnNfaW1hZ2UsIG1ha2Vfd2NzLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICBtYWtlX2ltYWdlaGR1KQorKworK3RyeToKKysgICAgaW1wb3J0IG1hdHBsb3Rs aWIgICAgIyBub3FhCisrICAgIEhBU19NQVRQTE9UTElCID0gVHJ1ZQorK2V4Y2VwdCBJbXBvcnRF cnJvcjoKKysgICAgSEFTX01BVFBMT1RMSUIgPSBGYWxzZQorKworKworK0FQRVJUVVJFX0NMID0g W0NpcmN1bGFyQXBlcnR1cmUsCisrICAgICAgICAgICAgICAgQ2lyY3VsYXJBbm51bHVzLAorKyAg ICAgICAgICAgICAgIEVsbGlwdGljYWxBcGVydHVyZSwKKysgICAgICAgICAgICAgICBFbGxpcHRp Y2FsQW5udWx1cywKKysgICAgICAgICAgICAgICBSZWN0YW5ndWxhckFwZXJ0dXJlLAorKyAgICAg ICAgICAgICAgIFJlY3Rhbmd1bGFyQW5udWx1c10KKysKKysKKytURVNUX0FQRVJUVVJFUyA9IGxp c3QoemlwKEFQRVJUVVJFX0NMLCAoKDMuLCksICgzLiwgNS4pLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoMy4sIDUuLCAxLiksICgzLiwgNS4sIDQuLCAxLiksCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg1LCA4LCBucC5waSAvIDQp LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoOCwgMTIsIDgsIG5w LnBpIC8gOCkpKSkKKysKKysKKytAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoKCdhcGVydHVyZV9j bGFzcycsICdwYXJhbXMnKSwgVEVTVF9BUEVSVFVSRVMpCisrZGVmIHRlc3Rfb3V0c2lkZV9hcnJh eShhcGVydHVyZV9jbGFzcywgcGFyYW1zKToKKysgICAgZGF0YSA9IG5wLm9uZXMoKDEwLCAxMCks IGR0eXBlPW5wLmZsb2F0KQorKyAgICBhcGVydHVyZSA9IGFwZXJ0dXJlX2NsYXNzKCgtNjAsIDYw KSwgKnBhcmFtcykKKysgICAgZmx1eHRhYmxlID0gYXBlcnR1cmVfcGhvdG9tZXRyeShkYXRhLCBh cGVydHVyZSkKKysgICAgIyBhcGVydHVyZSBpcyBmdWxseSBvdXRzaWRlIGFycmF5OgorKyAgICBh c3NlcnQgbnAuaXNuYW4oZmx1eHRhYmxlWydhcGVydHVyZV9zdW0nXSkKKysKKysKKytAcHl0ZXN0 Lm1hcmsucGFyYW1ldHJpemUoKCdhcGVydHVyZV9jbGFzcycsICdwYXJhbXMnKSwgVEVTVF9BUEVS VFVSRVMpCisrZGVmIHRlc3RfaW5zaWRlX2FycmF5X3NpbXBsZShhcGVydHVyZV9jbGFzcywgcGFy YW1zKToKKysgICAgZGF0YSA9IG5wLm9uZXMoKDQwLCA0MCksIGR0eXBlPW5wLmZsb2F0KQorKyAg ICBhcGVydHVyZSA9IGFwZXJ0dXJlX2NsYXNzKCgyMC4sIDIwLiksICpwYXJhbXMpCisrICAgIHRh YmxlMSA9IGFwZXJ0dXJlX3Bob3RvbWV0cnkoZGF0YSwgYXBlcnR1cmUsIG1ldGhvZD0nY2VudGVy Jywgc3VicGl4ZWxzPTEwKQorKyAgICB0YWJsZTIgPSBhcGVydHVyZV9waG90b21ldHJ5KGRhdGEs IGFwZXJ0dXJlLCBtZXRob2Q9J3N1YnBpeGVsJywKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdWJwaXhlbHM9MTApCisrICAgIHRhYmxlMyA9IGFwZXJ0dXJlX3Bob3RvbWV0cnko ZGF0YSwgYXBlcnR1cmUsIG1ldGhvZD0nZXhhY3QnLCBzdWJwaXhlbHM9MTApCisrICAgIHRydWVf Zmx1eCA9IGFwZXJ0dXJlLmFyZWEoKQorKworKyAgICBpZiBub3QgaXNpbnN0YW5jZShhcGVydHVy ZSwgKFJlY3Rhbmd1bGFyQXBlcnR1cmUsIFJlY3Rhbmd1bGFyQW5udWx1cykpOgorKyAgICAgICAg YXNzZXJ0X2FsbGNsb3NlKHRhYmxlM1snYXBlcnR1cmVfc3VtJ10sIHRydWVfZmx1eCkKKysgICAg ICAgIGFzc2VydF9hbGxjbG9zZSh0YWJsZTJbJ2FwZXJ0dXJlX3N1bSddLCB0YWJsZTNbJ2FwZXJ0 dXJlX3N1bSddLAorKyAgICAgICAgICAgICAgICAgICAgICAgIGF0b2w9MC4xKQorKyAgICBhc3Nl cnQgdGFibGUxWydhcGVydHVyZV9zdW0nXSA8IHRhYmxlM1snYXBlcnR1cmVfc3VtJ10KKysKKysK KytAcHl0ZXN0Lm1hcmsuc2tpcGlmKCdub3QgSEFTX01BVFBMT1RMSUInKQorK0BweXRlc3QubWFy ay5wYXJhbWV0cml6ZSgoJ2FwZXJ0dXJlX2NsYXNzJywgJ3BhcmFtcycpLCBURVNUX0FQRVJUVVJF UykKKytkZWYgdGVzdF9hcGVydHVyZV9wbG90cyhhcGVydHVyZV9jbGFzcywgcGFyYW1zKToKKysg ICAgIyBUaGlzIHRlc3Qgc2hvdWxkIHJ1biB3aXRob3V0IGFueSBlcnJvcnMsIGFuZCB0aGVyZSBp cyBubyByZXR1cm4KKysgICAgIyB2YWx1ZS4KKysgICAgIyBUT0RPOiBjaGVjayB0aGUgY29udGVu dCBvZiB0aGUgcGxvdAorKyAgICBhcGVydHVyZSA9IGFwZXJ0dXJlX2NsYXNzKCgyMC4sIDIwLiks ICpwYXJhbXMpCisrICAgIGFwZXJ0dXJlLnBsb3QoKQorKworKworK2RlZiB0ZXN0X2FwZXJ0dXJl X3BpeGVsX3Bvc2l0aW9ucygpOgorKyAgICBwb3MxID0gKDEwLCAyMCkKKysgICAgcG9zMiA9IHUu UXVhbnRpdHkoKDEwLCAyMCksIHVuaXQ9dS5waXhlbCkKKysgICAgcG9zMyA9ICgoMTAsIDIwLCAz MCksICgxMCwgMjAsIDMwKSkKKysgICAgcG9zM19wYWlycyA9ICgoMTAsIDEwKSwgKDIwLCAyMCks ICgzMCwgMzApKQorKworKyAgICByID0gMworKyAgICBhcDEgPSBDaXJjdWxhckFwZXJ0dXJlKHBv czEsIHIpCisrICAgIGFwMiA9IENpcmN1bGFyQXBlcnR1cmUocG9zMiwgcikKKysgICAgYXAzID0g Q2lyY3VsYXJBcGVydHVyZShwb3MzLCByKQorKworKyAgICBhc3NlcnRfYWxsY2xvc2UobnAuYXRs ZWFzdF8yZChwb3MxKSwgYXAxLnBvc2l0aW9ucykKKysgICAgYXNzZXJ0X2FsbGNsb3NlKG5wLmF0 bGVhc3RfMmQocG9zMi52YWx1ZSksIGFwMi5wb3NpdGlvbnMpCisrICAgIGFzc2VydF9hbGxjbG9z ZShwb3MzX3BhaXJzLCBhcDMucG9zaXRpb25zKQorKworKworK2NsYXNzIEJhc2VUZXN0QXBlcnR1 cmVQaG90b21ldHJ5KG9iamVjdCk6CisrCisrICAgIGRlZiB0ZXN0X3NjYWxhcl9lcnJvcihzZWxm KToKKysgICAgICAgICMgU2NhbGFyIGVycm9yCisrICAgICAgICBlcnJvciA9IDEuCisrICAgICAg ICBpZiBub3QgaGFzYXR0cihzZWxmLCAnbWFzaycpOgorKyAgICAgICAgICAgIG1hc2sgPSBOb25l CisrICAgICAgICAgICAgdHJ1ZV9lcnJvciA9IG5wLnNxcnQoc2VsZi5hcmVhKQorKyAgICAgICAg ZWxzZToKKysgICAgICAgICAgICBtYXNrID0gc2VsZi5tYXNrCisrICAgICAgICAgICAgIyAxIG1h c2tlZCBwaXhlbAorKyAgICAgICAgICAgIHRydWVfZXJyb3IgPSBucC5zcXJ0KHNlbGYuYXJlYSAt IDEpCisrCisrICAgICAgICB0YWJsZTEgPSBhcGVydHVyZV9waG90b21ldHJ5KHNlbGYuZGF0YSwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hcGVydHVyZSwgbWV0 aG9kPSdjZW50ZXInLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXNr PW1hc2ssIGVycm9yPWVycm9yKQorKyAgICAgICAgdGFibGUyID0gYXBlcnR1cmVfcGhvdG9tZXRy eShzZWxmLmRhdGEsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu YXBlcnR1cmUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZD0n c3VicGl4ZWwnLCBzdWJwaXhlbHM9MTIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG1hc2s9bWFzaywgZXJyb3I9ZXJyb3IpCisrICAgICAgICB0YWJsZTMgPSBhcGVydHVy ZV9waG90b21ldHJ5KHNlbGYuZGF0YSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5hcGVydHVyZSwgbWV0aG9kPSdleGFjdCcsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG1hc2s9bWFzaywgZXJyb3I9ZXJyb3IpCisrCisrICAgICAgICBp ZiBub3QgaXNpbnN0YW5jZShzZWxmLmFwZXJ0dXJlLCAoUmVjdGFuZ3VsYXJBcGVydHVyZSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWN0YW5ndWxhckFubnVs dXMpKToKKysgICAgICAgICAgICBhc3NlcnRfYWxsY2xvc2UodGFibGUzWydhcGVydHVyZV9zdW0n XSwgc2VsZi50cnVlX2ZsdXgpCisrICAgICAgICAgICAgYXNzZXJ0X2FsbGNsb3NlKHRhYmxlMlsn YXBlcnR1cmVfc3VtJ10sIHRhYmxlM1snYXBlcnR1cmVfc3VtJ10sCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGF0b2w9MC4xKQorKyAgICAgICAgYXNzZXJ0IG5wLmFsbCh0YWJsZTFbJ2Fw ZXJ0dXJlX3N1bSddIDwgdGFibGUzWydhcGVydHVyZV9zdW0nXSkKKysKKysgICAgICAgIGlmIG5v dCBpc2luc3RhbmNlKHNlbGYuYXBlcnR1cmUsIChSZWN0YW5ndWxhckFwZXJ0dXJlLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlY3Rhbmd1bGFyQW5udWx1cykp OgorKyAgICAgICAgICAgIGFzc2VydF9hbGxjbG9zZSh0YWJsZTNbJ2FwZXJ0dXJlX3N1bV9lcnIn XSwgdHJ1ZV9lcnJvcikKKysgICAgICAgICAgICBhc3NlcnRfYWxsY2xvc2UodGFibGUyWydhcGVy dHVyZV9zdW0nXSwgdGFibGUzWydhcGVydHVyZV9zdW0nXSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXRvbD0wLjEpCisrICAgICAgICBhc3NlcnQgbnAuYWxsKHRhYmxlMVsnYXBlcnR1 cmVfc3VtX2VyciddIDwgdGFibGUzWydhcGVydHVyZV9zdW1fZXJyJ10pCisrCisrICAgIGRlZiB0 ZXN0X2FycmF5X2Vycm9yKHNlbGYpOgorKyAgICAgICAgIyBBcnJheSBlcnJvcgorKyAgICAgICAg ZXJyb3IgPSBucC5vbmVzKHNlbGYuZGF0YS5zaGFwZSwgZHR5cGU9bnAuZmxvYXQpCisrICAgICAg ICBpZiBub3QgaGFzYXR0cihzZWxmLCAnbWFzaycpOgorKyAgICAgICAgICAgIG1hc2sgPSBOb25l CisrICAgICAgICAgICAgdHJ1ZV9lcnJvciA9IG5wLnNxcnQoc2VsZi5hcmVhKQorKyAgICAgICAg ZWxzZToKKysgICAgICAgICAgICBtYXNrID0gc2VsZi5tYXNrCisrICAgICAgICAgICAgIyAxIG1h c2tlZCBwaXhlbAorKyAgICAgICAgICAgIHRydWVfZXJyb3IgPSBucC5zcXJ0KHNlbGYuYXJlYSAt IDEpCisrCisrICAgICAgICB0YWJsZTEgPSBhcGVydHVyZV9waG90b21ldHJ5KHNlbGYuZGF0YSwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hcGVydHVyZSwgbWV0 aG9kPSdjZW50ZXInLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXNr PW1hc2ssIGVycm9yPWVycm9yKQorKyAgICAgICAgdGFibGUyID0gYXBlcnR1cmVfcGhvdG9tZXRy eShzZWxmLmRhdGEsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu YXBlcnR1cmUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZD0n c3VicGl4ZWwnLCBzdWJwaXhlbHM9MTIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG1hc2s9bWFzaywgZXJyb3I9ZXJyb3IpCisrICAgICAgICB0YWJsZTMgPSBhcGVydHVy ZV9waG90b21ldHJ5KHNlbGYuZGF0YSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5hcGVydHVyZSwgbWV0aG9kPSdleGFjdCcsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG1hc2s9bWFzaywgZXJyb3I9ZXJyb3IpCisrCisrICAgICAgICBp ZiBub3QgaXNpbnN0YW5jZShzZWxmLmFwZXJ0dXJlLCAoUmVjdGFuZ3VsYXJBcGVydHVyZSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWN0YW5ndWxhckFubnVs dXMpKToKKysgICAgICAgICAgICBhc3NlcnRfYWxsY2xvc2UodGFibGUzWydhcGVydHVyZV9zdW0n XSwgc2VsZi50cnVlX2ZsdXgpCisrICAgICAgICAgICAgYXNzZXJ0X2FsbGNsb3NlKHRhYmxlMlsn YXBlcnR1cmVfc3VtJ10sIHRhYmxlM1snYXBlcnR1cmVfc3VtJ10sCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGF0b2w9MC4xKQorKyAgICAgICAgYXNzZXJ0IG5wLmFsbCh0YWJsZTFbJ2Fw ZXJ0dXJlX3N1bSddIDwgdGFibGUzWydhcGVydHVyZV9zdW0nXSkKKysKKysgICAgICAgIGlmIG5v dCBpc2luc3RhbmNlKHNlbGYuYXBlcnR1cmUsIChSZWN0YW5ndWxhckFwZXJ0dXJlLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlY3Rhbmd1bGFyQW5udWx1cykp OgorKyAgICAgICAgICAgIGFzc2VydF9hbGxjbG9zZSh0YWJsZTNbJ2FwZXJ0dXJlX3N1bV9lcnIn XSwgdHJ1ZV9lcnJvcikKKysgICAgICAgICAgICBhc3NlcnRfYWxsY2xvc2UodGFibGUyWydhcGVy dHVyZV9zdW1fZXJyJ10sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlM1snYXBl cnR1cmVfc3VtX2VyciddLCBhdG9sPTAuMSkKKysgICAgICAgIGFzc2VydCBucC5hbGwodGFibGUx WydhcGVydHVyZV9zdW1fZXJyJ10gPCB0YWJsZTNbJ2FwZXJ0dXJlX3N1bV9lcnInXSkKKysKKysK KytjbGFzcyBUZXN0Q2lyY3VsYXIoQmFzZVRlc3RBcGVydHVyZVBob3RvbWV0cnkpOgorKworKyAg ICBkZWYgc2V0dXBfY2xhc3Moc2VsZik6CisrICAgICAgICBzZWxmLmRhdGEgPSBucC5vbmVzKCg0 MCwgNDApLCBkdHlwZT1ucC5mbG9hdCkKKysgICAgICAgIHBvc2l0aW9uID0gKDIwLiwgMjAuKQor KyAgICAgICAgciA9IDEwLgorKyAgICAgICAgc2VsZi5hcGVydHVyZSA9IENpcmN1bGFyQXBlcnR1 cmUocG9zaXRpb24sIHIpCisrICAgICAgICBzZWxmLmFyZWEgPSBucC5waSAqIHIgKiByCisrICAg ICAgICBzZWxmLnRydWVfZmx1eCA9IHNlbGYuYXJlYQorKworKworK2NsYXNzIFRlc3RDaXJjdWxh ckFycmF5KEJhc2VUZXN0QXBlcnR1cmVQaG90b21ldHJ5KToKKysKKysgICAgZGVmIHNldHVwX2Ns YXNzKHNlbGYpOgorKyAgICAgICAgc2VsZi5kYXRhID0gbnAub25lcygoNDAsIDQwKSwgZHR5cGU9 bnAuZmxvYXQpCisrICAgICAgICBwb3NpdGlvbiA9ICgoMjAuLCAyMC4pLCAoMjUuLCAyNS4pKQor KyAgICAgICAgciA9IDEwLgorKyAgICAgICAgc2VsZi5hcGVydHVyZSA9IENpcmN1bGFyQXBlcnR1 cmUocG9zaXRpb24sIHIpCisrICAgICAgICBzZWxmLmFyZWEgPSBucC5waSAqIHIgKiByCisrICAg ICAgICBzZWxmLmFyZWEgPSBucC5hcnJheSgoc2VsZi5hcmVhLCApICogMikKKysgICAgICAgIHNl bGYudHJ1ZV9mbHV4ID0gc2VsZi5hcmVhCisrCisrCisrY2xhc3MgVGVzdENpcmN1bGFyQW5udWx1 cyhCYXNlVGVzdEFwZXJ0dXJlUGhvdG9tZXRyeSk6CisrCisrICAgIGRlZiBzZXR1cF9jbGFzcyhz ZWxmKToKKysgICAgICAgIHNlbGYuZGF0YSA9IG5wLm9uZXMoKDQwLCA0MCksIGR0eXBlPW5wLmZs b2F0KQorKyAgICAgICAgcG9zaXRpb24gPSAoMjAuLCAyMC4pCisrICAgICAgICByX2luID0gOC4K KysgICAgICAgIHJfb3V0ID0gMTAuCisrICAgICAgICBzZWxmLmFwZXJ0dXJlID0gQ2lyY3VsYXJB bm51bHVzKHBvc2l0aW9uLCByX2luLCByX291dCkKKysgICAgICAgIHNlbGYuYXJlYSA9IG5wLnBp ICogKHJfb3V0ICogcl9vdXQgLSByX2luICogcl9pbikKKysgICAgICAgIHNlbGYudHJ1ZV9mbHV4 ID0gc2VsZi5hcmVhCisrCisrCisrY2xhc3MgVGVzdENpcmN1bGFyQW5udWx1c0FycmF5KEJhc2VU ZXN0QXBlcnR1cmVQaG90b21ldHJ5KToKKysKKysgICAgZGVmIHNldHVwX2NsYXNzKHNlbGYpOgor KyAgICAgICAgc2VsZi5kYXRhID0gbnAub25lcygoNDAsIDQwKSwgZHR5cGU9bnAuZmxvYXQpCisr ICAgICAgICBwb3NpdGlvbiA9ICgoMjAuLCAyMC4pLCAoMjUuLCAyNS4pKQorKyAgICAgICAgcl9p biA9IDguCisrICAgICAgICByX291dCA9IDEwLgorKyAgICAgICAgc2VsZi5hcGVydHVyZSA9IENp cmN1bGFyQW5udWx1cyhwb3NpdGlvbiwgcl9pbiwgcl9vdXQpCisrICAgICAgICBzZWxmLmFyZWEg PSBucC5waSAqIChyX291dCAqIHJfb3V0IC0gcl9pbiAqIHJfaW4pCisrICAgICAgICBzZWxmLmFy ZWEgPSBucC5hcnJheSgoc2VsZi5hcmVhLCApICogMikKKysgICAgICAgIHNlbGYudHJ1ZV9mbHV4 ID0gc2VsZi5hcmVhCisrCisrCisrY2xhc3MgVGVzdEVsbGlwdGljYWwoQmFzZVRlc3RBcGVydHVy ZVBob3RvbWV0cnkpOgorKworKyAgICBkZWYgc2V0dXBfY2xhc3Moc2VsZik6CisrICAgICAgICBz ZWxmLmRhdGEgPSBucC5vbmVzKCg0MCwgNDApLCBkdHlwZT1ucC5mbG9hdCkKKysgICAgICAgIHBv c2l0aW9uID0gKDIwLiwgMjAuKQorKyAgICAgICAgYSA9IDEwLgorKyAgICAgICAgYiA9IDUuCisr ICAgICAgICB0aGV0YSA9IC1ucC5waSAvIDQuCisrICAgICAgICBzZWxmLmFwZXJ0dXJlID0gRWxs aXB0aWNhbEFwZXJ0dXJlKHBvc2l0aW9uLCBhLCBiLCB0aGV0YSkKKysgICAgICAgIHNlbGYuYXJl YSA9IG5wLnBpICogYSAqIGIKKysgICAgICAgIHNlbGYudHJ1ZV9mbHV4ID0gc2VsZi5hcmVhCisr CisrCisrY2xhc3MgVGVzdEVsbGlwdGljYWxBbm51bHVzKEJhc2VUZXN0QXBlcnR1cmVQaG90b21l dHJ5KToKKysKKysgICAgZGVmIHNldHVwX2NsYXNzKHNlbGYpOgorKyAgICAgICAgc2VsZi5kYXRh ID0gbnAub25lcygoNDAsIDQwKSwgZHR5cGU9bnAuZmxvYXQpCisrICAgICAgICBwb3NpdGlvbiA9 ICgyMC4sIDIwLikKKysgICAgICAgIGFfaW4gPSA1LgorKyAgICAgICAgYV9vdXQgPSA4LgorKyAg ICAgICAgYl9vdXQgPSA1LgorKyAgICAgICAgdGhldGEgPSAtbnAucGkgLyA0LgorKyAgICAgICAg c2VsZi5hcGVydHVyZSA9IEVsbGlwdGljYWxBbm51bHVzKHBvc2l0aW9uLCBhX2luLCBhX291dCwg Yl9vdXQsIHRoZXRhKQorKyAgICAgICAgc2VsZi5hcmVhID0gKG5wLnBpICogKGFfb3V0ICogYl9v dXQpIC0KKysgICAgICAgICAgICAgICAgICAgICBucC5waSAqIChhX2luICogYl9vdXQgKiBhX2lu IC8gYV9vdXQpKQorKyAgICAgICAgc2VsZi50cnVlX2ZsdXggPSBzZWxmLmFyZWEKKysKKysKKytj bGFzcyBUZXN0UmVjdGFuZ3VsYXJBcGVydHVyZShCYXNlVGVzdEFwZXJ0dXJlUGhvdG9tZXRyeSk6 CisrCisrICAgIGRlZiBzZXR1cF9jbGFzcyhzZWxmKToKKysgICAgICAgIHNlbGYuZGF0YSA9IG5w Lm9uZXMoKDQwLCA0MCksIGR0eXBlPW5wLmZsb2F0KQorKyAgICAgICAgcG9zaXRpb24gPSAoMjAu LCAyMC4pCisrICAgICAgICBoID0gNS4KKysgICAgICAgIHcgPSA4LgorKyAgICAgICAgdGhldGEg PSBucC5waSAvIDQuCisrICAgICAgICBzZWxmLmFwZXJ0dXJlID0gUmVjdGFuZ3VsYXJBcGVydHVy ZShwb3NpdGlvbiwgdywgaCwgdGhldGEpCisrICAgICAgICBzZWxmLmFyZWEgPSBoICogdworKyAg ICAgICAgc2VsZi50cnVlX2ZsdXggPSBzZWxmLmFyZWEKKysKKysKKytjbGFzcyBUZXN0UmVjdGFu Z3VsYXJBbm51bHVzKEJhc2VUZXN0QXBlcnR1cmVQaG90b21ldHJ5KToKKysKKysgICAgZGVmIHNl dHVwX2NsYXNzKHNlbGYpOgorKyAgICAgICAgc2VsZi5kYXRhID0gbnAub25lcygoNDAsIDQwKSwg ZHR5cGU9bnAuZmxvYXQpCisrICAgICAgICBwb3NpdGlvbiA9ICgyMC4sIDIwLikKKysgICAgICAg IGhfb3V0ID0gOC4KKysgICAgICAgIHdfaW4gPSA4LgorKyAgICAgICAgd19vdXQgPSAxMi4KKysg ICAgICAgIGhfaW4gPSB3X2luICogaF9vdXQgLyB3X291dAorKyAgICAgICAgdGhldGEgPSBucC5w aSAvIDguCisrICAgICAgICBzZWxmLmFwZXJ0dXJlID0gUmVjdGFuZ3VsYXJBbm51bHVzKHBvc2l0 aW9uLCB3X2luLCB3X291dCwgaF9vdXQsIHRoZXRhKQorKyAgICAgICAgc2VsZi5hcmVhID0gaF9v dXQgKiB3X291dCAtIGhfaW4gKiB3X2luCisrICAgICAgICBzZWxmLnRydWVfZmx1eCA9IHNlbGYu YXJlYQorKworKworK2NsYXNzIFRlc3RNYXNrZWRTa2lwQ2lyY3VsYXIoQmFzZVRlc3RBcGVydHVy ZVBob3RvbWV0cnkpOgorKworKyAgICBkZWYgc2V0dXBfY2xhc3Moc2VsZik6CisrICAgICAgICBz ZWxmLmRhdGEgPSBucC5vbmVzKCg0MCwgNDApLCBkdHlwZT1ucC5mbG9hdCkKKysgICAgICAgIHNl bGYubWFzayA9IG5wLnplcm9zKCg0MCwgNDApLCBkdHlwZT1ib29sKQorKyAgICAgICAgc2VsZi5t YXNrWzIwLCAyMF0gPSBUcnVlCisrICAgICAgICBwb3NpdGlvbiA9ICgyMC4sIDIwLikKKysgICAg ICAgIHIgPSAxMC4KKysgICAgICAgIHNlbGYuYXBlcnR1cmUgPSBDaXJjdWxhckFwZXJ0dXJlKHBv c2l0aW9uLCByKQorKyAgICAgICAgc2VsZi5hcmVhID0gbnAucGkgKiByICogcgorKyAgICAgICAg c2VsZi50cnVlX2ZsdXggPSBzZWxmLmFyZWEgLSAxCisrCisrCisrY2xhc3MgQmFzZVRlc3REaWZm ZXJlbnREYXRhKG9iamVjdCk6CisrCisrICAgIGRlZiB0ZXN0X2Jhc2ljX2NpcmN1bGFyX2FwZXJ0 dXJlX3Bob3RvbWV0cnkoc2VsZik6CisrICAgICAgICBhcGVydHVyZSA9IENpcmN1bGFyQXBlcnR1 cmUoc2VsZi5wb3NpdGlvbiwgc2VsZi5yYWRpdXMpCisrICAgICAgICB0YWJsZSA9IGFwZXJ0dXJl X3Bob3RvbWV0cnkoc2VsZi5kYXRhLCBhcGVydHVyZSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBtZXRob2Q9J2V4YWN0JywgdW5pdD0nYWR1JykKKysKKysgICAgICAgIGFz c2VydF9hbGxjbG9zZSh0YWJsZVsnYXBlcnR1cmVfc3VtJ10udmFsdWUsIHNlbGYudHJ1ZV9mbHV4 KQorKyAgICAgICAgYXNzZXJ0IHRhYmxlWydhcGVydHVyZV9zdW0nXS51bml0LCBzZWxmLmZsdXh1 bml0CisrCisrICAgICAgICBhc3NlcnQgbnAuYWxsKHRhYmxlWyd4Y2VudGVyJ10udmFsdWUgPT0K KysgICAgICAgICAgICAgICAgICAgICAgbnAudHJhbnNwb3NlKHNlbGYucG9zaXRpb24pWzBdKQor KyAgICAgICAgYXNzZXJ0IG5wLmFsbCh0YWJsZVsneWNlbnRlciddLnZhbHVlID09CisrICAgICAg ICAgICAgICAgICAgICAgIG5wLnRyYW5zcG9zZShzZWxmLnBvc2l0aW9uKVsxXSkKKysKKysKKytj bGFzcyBUZXN0SW5wdXRQcmltYXJ5SERVKEJhc2VUZXN0RGlmZmVyZW50RGF0YSk6CisrCisrICAg IGRlZiBzZXR1cF9jbGFzcyhzZWxmKToKKysgICAgICAgIGRhdGEgPSBucC5vbmVzKCg0MCwgNDAp LCBkdHlwZT1ucC5mbG9hdCkKKysgICAgICAgIHNlbGYuZGF0YSA9IGZpdHMuSW1hZ2VIRFUoZGF0 YT1kYXRhKQorKyAgICAgICAgc2VsZi5kYXRhLmhlYWRlclsnQlVOSVQnXSA9ICdhZHUnCisrICAg ICAgICBzZWxmLnJhZGl1cyA9IDMKKysgICAgICAgIHNlbGYucG9zaXRpb24gPSAoMjAsIDIwKQor KyAgICAgICAgc2VsZi50cnVlX2ZsdXggPSBucC5waSAqIHNlbGYucmFkaXVzICogc2VsZi5yYWRp dXMKKysgICAgICAgIHNlbGYuZmx1eHVuaXQgPSB1LmFkdQorKworKworK2NsYXNzIFRlc3RJbnB1 dEhEVUxpc3QoQmFzZVRlc3REaWZmZXJlbnREYXRhKToKKysKKysgICAgZGVmIHNldHVwX2NsYXNz KHNlbGYpOgorKyAgICAgICAgZGF0YTAgPSBucC5vbmVzKCg0MCwgNDApLCBkdHlwZT1ucC5mbG9h dCkKKysgICAgICAgIGRhdGExID0gbnAuZW1wdHkoKDQwLCA0MCksIGR0eXBlPW5wLmZsb2F0KQor KyAgICAgICAgZGF0YTEuZmlsbCgyKQorKyAgICAgICAgc2VsZi5kYXRhID0gZml0cy5IRFVMaXN0 KFtmaXRzLkltYWdlSERVKGRhdGE9ZGF0YTApLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmaXRzLkltYWdlSERVKGRhdGE9ZGF0YTEpXSkKKysgICAgICAgIHNlbGYucmFkaXVz ID0gMworKyAgICAgICAgc2VsZi5wb3NpdGlvbiA9ICgyMCwgMjApCisrICAgICAgICAjIEl0IHNo b3VsZCBzdG9wIGF0IHRoZSBmaXJzdCBleHRlbnNpb24KKysgICAgICAgIHNlbGYudHJ1ZV9mbHV4 ID0gbnAucGkgKiBzZWxmLnJhZGl1cyAqIHNlbGYucmFkaXVzCisrCisrCisrY2xhc3MgVGVzdElu cHV0SERVRGlmZmVyZW50QlVOSVQoQmFzZVRlc3REaWZmZXJlbnREYXRhKToKKysKKysgICAgZGVm IHNldHVwX2NsYXNzKHNlbGYpOgorKyAgICAgICAgZGF0YSA9IG5wLm9uZXMoKDQwLCA0MCksIGR0 eXBlPW5wLmZsb2F0KQorKyAgICAgICAgc2VsZi5kYXRhID0gZml0cy5JbWFnZUhEVShkYXRhPWRh dGEpCisrICAgICAgICBzZWxmLmRhdGEuaGVhZGVyWydCVU5JVCddID0gJ0p5JworKyAgICAgICAg c2VsZi5yYWRpdXMgPSAzCisrICAgICAgICBzZWxmLnBvc2l0aW9uID0gKDIwLCAyMCkKKysgICAg ICAgIHNlbGYudHJ1ZV9mbHV4ID0gbnAucGkgKiBzZWxmLnJhZGl1cyAqIHNlbGYucmFkaXVzCisr ICAgICAgICBzZWxmLmZsdXh1bml0ID0gdS5hZHUKKysKKysKKytjbGFzcyBUZXN0SW5wdXRORERh dGEoQmFzZVRlc3REaWZmZXJlbnREYXRhKToKKysKKysgICAgZGVmIHNldHVwX2NsYXNzKHNlbGYp OgorKyAgICAgICAgZGF0YSA9IG5wLm9uZXMoKDQwLCA0MCksIGR0eXBlPW5wLmZsb2F0KQorKyAg ICAgICAgc2VsZi5kYXRhID0gTkREYXRhKGRhdGEsIHVuaXQ9dS5hZHUpCisrICAgICAgICBzZWxm LnJhZGl1cyA9IDMKKysgICAgICAgIHNlbGYucG9zaXRpb24gPSBbKDIwLCAyMCksICgzMCwgMzAp XQorKyAgICAgICAgc2VsZi50cnVlX2ZsdXggPSBucC5waSAqIHNlbGYucmFkaXVzICogc2VsZi5y YWRpdXMKKysgICAgICAgIHNlbGYuZmx1eHVuaXQgPSB1LmFkdQorKworKworK0ByZW1vdGVfZGF0 YQorK2RlZiB0ZXN0X3djc19iYXNlZF9waG90b21ldHJ5X3RvX2NhdGFsb2d1ZSgpOgorKyAgICBw YXRoY2F0ID0gZ2V0X3BhdGgoJ3NwaXR6ZXJfZXhhbXBsZV9jYXRhbG9nLnhtbCcsIGxvY2F0aW9u PSdyZW1vdGUnKQorKyAgICBwYXRoaGR1ID0gZ2V0X3BhdGgoJ3NwaXR6ZXJfZXhhbXBsZV9pbWFn ZS5maXRzJywgbG9jYXRpb249J3JlbW90ZScpCisrICAgIGhkdSA9IGZpdHMub3BlbihwYXRoaGR1 KQorKyAgICBzY2FsZSA9IGhkdVswXS5oZWFkZXJbJ1BJWFNDQUwxJ10KKysKKysgICAgY2F0YWxv ZyA9IFRhYmxlLnJlYWQocGF0aGNhdCkKKysKKysgICAgcG9zX3NreWNvb3JkID0gU2t5Q29vcmQo Y2F0YWxvZ1snbCddLCBjYXRhbG9nWydiJ10sIGZyYW1lPSdnYWxhY3RpYycpCisrCisrICAgIHBo b3RvbWV0cnlfc2t5Y29vcmQgPSBhcGVydHVyZV9waG90b21ldHJ5KAorKyAgICAgICAgaGR1LCBT a3lDaXJjdWxhckFwZXJ0dXJlKHBvc19za3ljb29yZCwgNCAqIHUuYXJjc2VjKSkKKysKKysgICAg cGhvdG9tZXRyeV9za3ljb29yZF9waXggPSBhcGVydHVyZV9waG90b21ldHJ5KAorKyAgICAgICAg aGR1LCBTa3lDaXJjdWxhckFwZXJ0dXJlKHBvc19za3ljb29yZCwgNC4gLyBzY2FsZSAqIHUucGl4 ZWwpKQorKworKyAgICBhc3NlcnRfYWxsY2xvc2UocGhvdG9tZXRyeV9za3ljb29yZFsnYXBlcnR1 cmVfc3VtJ10sCisrICAgICAgICAgICAgICAgICAgICBwaG90b21ldHJ5X3NreWNvb3JkX3BpeFsn YXBlcnR1cmVfc3VtJ10pCisrCisrICAgICMgUGhvdG9tZXRyaWMgdW5pdCBjb252ZXJzaW9uIGlz IG5lZWRlZCB0byBtYXRjaCB0aGUgY2F0YWxvZ3VlCisrICAgIGZhY3RvciA9ICgxLjIgKiB1LmFy Y3NlYykgKiogMiAvIHUucGl4ZWwKKysgICAgY29udmVydGVkX2FwZXJ0dXJlX3N1bSA9IChwaG90 b21ldHJ5X3NreWNvb3JkWydhcGVydHVyZV9zdW0nXSAqCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZmFjdG9yKS50byh1Lm1KeSAvIHUucGl4ZWwpCisrCisrICAgIGZsdXhlc19jYXRh bG9nID0gY2F0YWxvZ1snZjRfNSddLmZpbGxlZCgpCisrCisrICAgICMgVGhlcmUgc2hvdWxkbid0 IGJlIGxhcmdlIG91dGxpZXJzLCBidXQgc29tZSBkaWZmZXJlbmNlcyBpcyBPSywgYXMKKysgICAg IyBmbHV4ZXNfY2F0YWxvZyBpcyBiYXNlZCBvbiBQU0YgcGhvdG9tZXRyeSwgZXRjLgorKyAgICBh c3NlcnRfYWxsY2xvc2UoZmx1eGVzX2NhdGFsb2csIGNvbnZlcnRlZF9hcGVydHVyZV9zdW0udmFs dWUsIHJ0b2w9MWUwKQorKworKyAgICBhc3NlcnQobnAubWVhbihucC5mYWJzKCgoZmx1eGVzX2Nh dGFsb2cgLSBjb252ZXJ0ZWRfYXBlcnR1cmVfc3VtLnZhbHVlKSAvCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZsdXhlc19jYXRhbG9nKSkpIDwgMC4xKQorKworKworK2RlZiB0ZXN0X3dj c19iYXNlZF9waG90b21ldHJ5KCk6CisrICAgIGRhdGEgPSBtYWtlXzRnYXVzc2lhbnNfaW1hZ2Uo KQorKyAgICB3Y3MgPSBtYWtlX3djcyhkYXRhLnNoYXBlKQorKyAgICBoZHUgPSBtYWtlX2ltYWdl aGR1KGRhdGEsIHdjcz13Y3MpCisrCisrICAgICMgaGFyZCB3aXJlZCBwb3NpdGlvbnMgaW4gbWFr ZV80Z2F1c3NpYW5faW1hZ2UKKysgICAgcG9zX29yaWdfcGl4ZWwgPSB1LlF1YW50aXR5KChbMTYw LiwgMjUuLCAxNTAuLCA5MC5dLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFs3 MC4sIDQwLiwgMjUuLCA2MC5dKSwgdW5pdD11LnBpeGVsKQorKworKyAgICBwb3Nfc2t5Y29vcmQg PSBwaXhlbF90b19za3ljb29yZChwb3Nfb3JpZ19waXhlbFswXSwgcG9zX29yaWdfcGl4ZWxbMV0s IHdjcykKKysKKysgICAgcG9zX3NreWNvb3JkX3MgPSBwb3Nfc2t5Y29vcmRbMl0KKysKKysgICAg cGhvdG9tZXRyeV9za3ljb29yZF9jaXJjID0gYXBlcnR1cmVfcGhvdG9tZXRyeSgKKysgICAgICAg IGhkdSwgU2t5Q2lyY3VsYXJBcGVydHVyZShwb3Nfc2t5Y29vcmQsIDMgKiB1LmFyY3NlYykpCisr ICAgIHBob3RvbWV0cnlfc2t5Y29vcmRfY2lyY18yID0gYXBlcnR1cmVfcGhvdG9tZXRyeSgKKysg ICAgICAgIGhkdSwgU2t5Q2lyY3VsYXJBcGVydHVyZShwb3Nfc2t5Y29vcmQsIDIgKiB1LmFyY3Nl YykpCisrICAgIHBob3RvbWV0cnlfc2t5Y29vcmRfY2lyY19zID0gYXBlcnR1cmVfcGhvdG9tZXRy eSgKKysgICAgICAgIGhkdSwgU2t5Q2lyY3VsYXJBcGVydHVyZShwb3Nfc2t5Y29vcmRfcywgMyAq IHUuYXJjc2VjKSkKKysKKysgICAgYXNzZXJ0X2FsbGNsb3NlKHBob3RvbWV0cnlfc2t5Y29vcmRf Y2lyY1snYXBlcnR1cmVfc3VtJ11bMl0sCisrICAgICAgICAgICAgICAgICAgICBwaG90b21ldHJ5 X3NreWNvb3JkX2NpcmNfc1snYXBlcnR1cmVfc3VtJ10pCisrCisrICAgIHBob3RvbWV0cnlfc2t5 Y29vcmRfY2lyY19hbm4gPSBhcGVydHVyZV9waG90b21ldHJ5KAorKyAgICAgICAgaGR1LCBTa3lD aXJjdWxhckFubnVsdXMocG9zX3NreWNvb3JkLCAyICogdS5hcmNzZWMsIDMgKiB1LmFyY3NlYykp CisrICAgIHBob3RvbWV0cnlfc2t5Y29vcmRfY2lyY19hbm5fcyA9IGFwZXJ0dXJlX3Bob3RvbWV0 cnkoCisrICAgICAgICBoZHUsIFNreUNpcmN1bGFyQW5udWx1cyhwb3Nfc2t5Y29vcmRfcywgMiAq IHUuYXJjc2VjLCAzICogdS5hcmNzZWMpKQorKworKyAgICBhc3NlcnRfYWxsY2xvc2UocGhvdG9t ZXRyeV9za3ljb29yZF9jaXJjX2FublsnYXBlcnR1cmVfc3VtJ11bMl0sCisrICAgICAgICAgICAg ICAgICAgICBwaG90b21ldHJ5X3NreWNvb3JkX2NpcmNfYW5uX3NbJ2FwZXJ0dXJlX3N1bSddKQor KworKyAgICBhc3NlcnRfYWxsY2xvc2UocGhvdG9tZXRyeV9za3ljb29yZF9jaXJjX2FublsnYXBl cnR1cmVfc3VtJ10sCisrICAgICAgICAgICAgICAgICAgICBwaG90b21ldHJ5X3NreWNvb3JkX2Np cmNbJ2FwZXJ0dXJlX3N1bSddIC0KKysgICAgICAgICAgICAgICAgICAgIHBob3RvbWV0cnlfc2t5 Y29vcmRfY2lyY18yWydhcGVydHVyZV9zdW0nXSkKKysKKysgICAgcGhvdG9tZXRyeV9za3ljb29y ZF9lbGwgPSBhcGVydHVyZV9waG90b21ldHJ5KAorKyAgICAgICAgaGR1LCBTa3lFbGxpcHRpY2Fs QXBlcnR1cmUocG9zX3NreWNvb3JkLCAzICogdS5hcmNzZWMsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAzLjAwMDEgKiB1LmFyY3NlYywgNDUgKiB1LmFyY3NlYykpCisrICAg IHBob3RvbWV0cnlfc2t5Y29vcmRfZWxsXzIgPSBhcGVydHVyZV9waG90b21ldHJ5KAorKyAgICAg ICAgaGR1LCBTa3lFbGxpcHRpY2FsQXBlcnR1cmUocG9zX3NreWNvb3JkLCAyICogdS5hcmNzZWMs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjAwMDEgKiB1LmFyY3NlYywg NDUgKiB1LmFyY3NlYykpCisrICAgIHBob3RvbWV0cnlfc2t5Y29vcmRfZWxsX3MgPSBhcGVydHVy ZV9waG90b21ldHJ5KAorKyAgICAgICAgaGR1LCBTa3lFbGxpcHRpY2FsQXBlcnR1cmUocG9zX3Nr eWNvb3JkX3MsIDMgKiB1LmFyY3NlYywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDMuMDAwMSAqIHUuYXJjc2VjLCA0NSAqIHUuYXJjc2VjKSkKKysgICAgcGhvdG9tZXRyeV9z a3ljb29yZF9lbGxfYW5uID0gYXBlcnR1cmVfcGhvdG9tZXRyeSgKKysgICAgICAgIGhkdSwgU2t5 RWxsaXB0aWNhbEFubnVsdXMocG9zX3NreWNvb3JkLCAyICogdS5hcmNzZWMsIDMgKiB1LmFyY3Nl YywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4wMDAxICogdS5hcmNzZWMs IDQ1ICogdS5hcmNzZWMpKQorKyAgICBwaG90b21ldHJ5X3NreWNvb3JkX2VsbF9hbm5fcyA9IGFw ZXJ0dXJlX3Bob3RvbWV0cnkoCisrICAgICAgICBoZHUsIFNreUVsbGlwdGljYWxBbm51bHVzKHBv c19za3ljb29yZF9zLCAyICogdS5hcmNzZWMsIDMgKiB1LmFyY3NlYywKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMy4wMDAxICogdS5hcmNzZWMsIDQ1ICogdS5hcmNzZWMpKQor KworKyAgICBhc3NlcnRfYWxsY2xvc2UocGhvdG9tZXRyeV9za3ljb29yZF9lbGxbJ2FwZXJ0dXJl X3N1bSddWzJdLAorKyAgICAgICAgICAgICAgICAgICAgcGhvdG9tZXRyeV9za3ljb29yZF9lbGxf c1snYXBlcnR1cmVfc3VtJ10pCisrCisrICAgIGFzc2VydF9hbGxjbG9zZShwaG90b21ldHJ5X3Nr eWNvb3JkX2VsbF9hbm5bJ2FwZXJ0dXJlX3N1bSddWzJdLAorKyAgICAgICAgICAgICAgICAgICAg cGhvdG9tZXRyeV9za3ljb29yZF9lbGxfYW5uX3NbJ2FwZXJ0dXJlX3N1bSddKQorKworKyAgICBh c3NlcnRfYWxsY2xvc2UocGhvdG9tZXRyeV9za3ljb29yZF9lbGxbJ2FwZXJ0dXJlX3N1bSddLAor KyAgICAgICAgICAgICAgICAgICAgcGhvdG9tZXRyeV9za3ljb29yZF9jaXJjWydhcGVydHVyZV9z dW0nXSwgcnRvbD01ZS0zKQorKworKyAgICBhc3NlcnRfYWxsY2xvc2UocGhvdG9tZXRyeV9za3lj b29yZF9lbGxfYW5uWydhcGVydHVyZV9zdW0nXSwKKysgICAgICAgICAgICAgICAgICAgIHBob3Rv bWV0cnlfc2t5Y29vcmRfZWxsWydhcGVydHVyZV9zdW0nXSAtCisrICAgICAgICAgICAgICAgICAg ICBwaG90b21ldHJ5X3NreWNvb3JkX2VsbF8yWydhcGVydHVyZV9zdW0nXSwgcnRvbD0xZS00KQor KworKyAgICBwaG90b21ldHJ5X3NreWNvb3JkX3JlYyA9IGFwZXJ0dXJlX3Bob3RvbWV0cnkoCisr ICAgICAgICBoZHUsIFNreVJlY3Rhbmd1bGFyQXBlcnR1cmUocG9zX3NreWNvb3JkLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYgKiB1LmFyY3NlYywgNiAqIHUuYXJjc2Vj LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgKiB1LmFyY3NlYyksCisr ICAgICAgICBtZXRob2Q9J3N1YnBpeGVsJywgc3VicGl4ZWxzPTIwKQorKyAgICBwaG90b21ldHJ5 X3NreWNvb3JkX3JlY180ID0gYXBlcnR1cmVfcGhvdG9tZXRyeSgKKysgICAgICAgIGhkdSwgU2t5 UmVjdGFuZ3VsYXJBcGVydHVyZShwb3Nfc2t5Y29vcmQsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgNCAqIHUuYXJjc2VjLCA0ICogdS5hcmNzZWMsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMCAqIHUuYXJjc2VjKSwKKysgICAgICAgIG1ldGhvZD0n c3VicGl4ZWwnLCBzdWJwaXhlbHM9MjApCisrICAgIHBob3RvbWV0cnlfc2t5Y29vcmRfcmVjX3Mg PSBhcGVydHVyZV9waG90b21ldHJ5KAorKyAgICAgICAgaGR1LCBTa3lSZWN0YW5ndWxhckFwZXJ0 dXJlKHBvc19za3ljb29yZF9zLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDYgKiB1LmFyY3NlYywgNiAqIHUuYXJjc2VjLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDAgKiB1LmFyY3NlYyksCisrICAgICAgICBtZXRob2Q9J3N1YnBpeGVsJywgc3Vi cGl4ZWxzPTIwKQorKyAgICBwaG90b21ldHJ5X3NreWNvb3JkX3JlY19hbm4gPSBhcGVydHVyZV9w aG90b21ldHJ5KAorKyAgICAgICAgaGR1LCBTa3lSZWN0YW5ndWxhckFubnVsdXMocG9zX3NreWNv b3JkLCA0ICogdS5hcmNzZWMsIDYgKiB1LmFyY3NlYywKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDYgKiB1LmFyY3NlYywgMCAqIHUuYXJjc2VjKSwKKysgICAgICAgIG1ldGhv ZD0nc3VicGl4ZWwnLCBzdWJwaXhlbHM9MjApCisrICAgIHBob3RvbWV0cnlfc2t5Y29vcmRfcmVj X2Fubl9zID0gYXBlcnR1cmVfcGhvdG9tZXRyeSgKKysgICAgICAgIGhkdSwgU2t5UmVjdGFuZ3Vs YXJBbm51bHVzKHBvc19za3ljb29yZF9zLCA0ICogdS5hcmNzZWMsIDYgKiB1LmFyY3NlYywKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYgKiB1LmFyY3NlYywgMCAqIHUuYXJj c2VjKSwKKysgICAgICAgIG1ldGhvZD0nc3VicGl4ZWwnLCBzdWJwaXhlbHM9MjApCisrCisrICAg IGFzc2VydF9hbGxjbG9zZShwaG90b21ldHJ5X3NreWNvb3JkX3JlY1snYXBlcnR1cmVfc3VtJ11b Ml0sCisrICAgICAgICAgICAgICAgICAgICBwaG90b21ldHJ5X3NreWNvb3JkX3JlY19zWydhcGVy dHVyZV9zdW0nXSkKKysKKysgICAgYXNzZXJ0IG5wLmFsbChwaG90b21ldHJ5X3NreWNvb3JkX3Jl Y1snYXBlcnR1cmVfc3VtJ10gPgorKyAgICAgICAgICAgICAgICAgIHBob3RvbWV0cnlfc2t5Y29v cmRfY2lyY1snYXBlcnR1cmVfc3VtJ10pCisrCisrICAgIGFzc2VydF9hbGxjbG9zZShwaG90b21l dHJ5X3NreWNvb3JkX3JlY19hbm5bJ2FwZXJ0dXJlX3N1bSddWzJdLAorKyAgICAgICAgICAgICAg ICAgICAgcGhvdG9tZXRyeV9za3ljb29yZF9yZWNfYW5uX3NbJ2FwZXJ0dXJlX3N1bSddKQorKwor KyAgICBhc3NlcnRfYWxsY2xvc2UocGhvdG9tZXRyeV9za3ljb29yZF9yZWNfYW5uWydhcGVydHVy ZV9zdW0nXSwKKysgICAgICAgICAgICAgICAgICAgIHBob3RvbWV0cnlfc2t5Y29vcmRfcmVjWydh cGVydHVyZV9zdW0nXSAtCisrICAgICAgICAgICAgICAgICAgICBwaG90b21ldHJ5X3NreWNvb3Jk X3JlY180WydhcGVydHVyZV9zdW0nXSwgcnRvbD0xZS00KQorKworKworK2RlZiB0ZXN0X2Jhc2lj X2NpcmN1bGFyX2FwZXJ0dXJlX3Bob3RvbWV0cnlfdW5pdCgpOgorKyAgICBkYXRhMSA9IG5wLm9u ZXMoKDQwLCA0MCksIGR0eXBlPW5wLmZsb2F0KQorKyAgICBkYXRhMiA9IHUuUXVhbnRpdHkoZGF0 YTEsIHVuaXQ9dS5hZHUpCisrCisrICAgIHJhZGl1cyA9IDMKKysgICAgcG9zaXRpb24gPSAoMjAs IDIwKQorKyAgICB0cnVlX2ZsdXggPSBucC5waSAqIHJhZGl1cyAqIHJhZGl1cworKyAgICB1bml0 ID0gdS5hZHUKKysKKysgICAgdGFibGUxID0gYXBlcnR1cmVfcGhvdG9tZXRyeShkYXRhMSwgQ2ly Y3VsYXJBcGVydHVyZShwb3NpdGlvbiwgcmFkaXVzKSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1bml0PXVuaXQpCisrICAgIHRhYmxlMiA9IGFwZXJ0dXJlX3Bob3RvbWV0cnko ZGF0YTIsIENpcmN1bGFyQXBlcnR1cmUocG9zaXRpb24sIHJhZGl1cyksCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdW5pdD11bml0KQorKworKyAgICBhc3NlcnRfYWxsY2xvc2Uo dGFibGUxWydhcGVydHVyZV9zdW0nXS52YWx1ZSwgdHJ1ZV9mbHV4KQorKyAgICBhc3NlcnRfYWxs Y2xvc2UodGFibGUyWydhcGVydHVyZV9zdW0nXS52YWx1ZSwgdHJ1ZV9mbHV4KQorKyAgICBhc3Nl cnQgdGFibGUxWydhcGVydHVyZV9zdW0nXS51bml0ID09IHVuaXQKKysgICAgYXNzZXJ0IHRhYmxl MlsnYXBlcnR1cmVfc3VtJ10udW5pdCA9PSBkYXRhMi51bml0ID09IHVuaXQKKysKKysKKytkZWYg dGVzdF9hcGVydHVyZV9waG90b21ldHJ5X3dpdGhfZXJyb3JfdW5pdHMoKToKKysgICAgIiIiVGVz dCBhcGVydHVyZV9waG90b21ldHJ5IHdoZW4gZXJyb3IgaGFzIHVuaXRzIChzZWUgIzE3NikuIiIi CisrCisrICAgIGRhdGExID0gbnAub25lcygoNDAsIDQwKSwgZHR5cGU9bnAuZmxvYXQpCisrICAg IGRhdGEyID0gdS5RdWFudGl0eShkYXRhMSwgdW5pdD11LmFkdSkKKysgICAgZXJyb3IgPSB1LlF1 YW50aXR5KGRhdGExLCB1bml0PXUuYWR1KQorKyAgICByYWRpdXMgPSAzCisrICAgIHRydWVfZmx1 eCA9IG5wLnBpICogcmFkaXVzICogcmFkaXVzCisrICAgIHVuaXQgPSB1LmFkdQorKyAgICBwb3Np dGlvbiA9ICgyMCwgMjApCisrICAgIHRhYmxlMSA9IGFwZXJ0dXJlX3Bob3RvbWV0cnkoZGF0YTIs IENpcmN1bGFyQXBlcnR1cmUocG9zaXRpb24sIHJhZGl1cyksCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZXJyb3I9ZXJyb3IpCisrICAgIGFzc2VydF9hbGxjbG9zZSh0YWJsZTFb J2FwZXJ0dXJlX3N1bSddLnZhbHVlLCB0cnVlX2ZsdXgpCisrICAgIGFzc2VydF9hbGxjbG9zZSh0 YWJsZTFbJ2FwZXJ0dXJlX3N1bV9lcnInXS52YWx1ZSwgbnAuc3FydCh0cnVlX2ZsdXgpKQorKyAg ICBhc3NlcnQgdGFibGUxWydhcGVydHVyZV9zdW0nXS51bml0ID09IHVuaXQKKysgICAgYXNzZXJ0 IHRhYmxlMVsnYXBlcnR1cmVfc3VtX2VyciddLnVuaXQgPT0gdW5pdAorKworKworK2RlZiB0ZXN0 X2FwZXJ0dXJlX3Bob3RvbWV0cnlfaW5wdXRzX3dpdGhfbWFzaygpOgorKyAgICAiIiIKKysgICAg VGVzdCB0aGF0IGFwZXJ0dXJlX3Bob3RvbWV0cnkgZG9lcyBub3QgbW9kaWZ5IHRoZSBpbnB1dAor KyAgICBkYXRhIG9yIGVycm9yIGFycmF5IHdoZW4gYSBtYXNrIGlzIGlucHV0LgorKyAgICAiIiIK KysKKysgICAgZGF0YSA9IG5wLm9uZXMoKDUsIDUpKQorKyAgICBhcGVydHVyZSA9IENpcmN1bGFy QXBlcnR1cmUoKDIsIDIpLCAyLikKKysgICAgbWFzayA9IG5wLnplcm9zX2xpa2UoZGF0YSwgZHR5 cGU9Ym9vbCkKKysgICAgZGF0YVsyLCAyXSA9IDEwMC4gICAjIGJhZCBwaXhlbAorKyAgICBtYXNr WzIsIDJdID0gVHJ1ZQorKyAgICBlcnJvciA9IG5wLnNxcnQoZGF0YSkKKysgICAgZGF0YV9pbiA9 IGRhdGEuY29weSgpCisrICAgIGVycm9yX2luID0gZXJyb3IuY29weSgpCisrICAgIHQxID0gYXBl cnR1cmVfcGhvdG9tZXRyeShkYXRhLCBhcGVydHVyZSwgZXJyb3I9ZXJyb3IsIG1hc2s9bWFzaykK KysgICAgYXNzZXJ0X2FycmF5X2VxdWFsKGRhdGEsIGRhdGFfaW4pCisrICAgIGFzc2VydF9hcnJh eV9lcXVhbChlcnJvciwgZXJyb3JfaW4pCisrICAgIGFzc2VydF9hbGxjbG9zZSh0MVsnYXBlcnR1 cmVfc3VtJ11bMF0sIDExLjU2NjM3MDYxNDQpCisrICAgIHQyID0gYXBlcnR1cmVfcGhvdG9tZXRy eShkYXRhLCBhcGVydHVyZSkKKysgICAgYXNzZXJ0X2FsbGNsb3NlKHQyWydhcGVydHVyZV9zdW0n XVswXSwgMTExLjU2NjM3MDYxNCkKKysKKysKKytURVNUX0VMTElQU0VfRVhBQ1RfQVBFUlRVUkVT ID0gWygzLjQ2OTkwNiwgMy45MjM4NjEzOTQsIDMuKSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICgwLjM4MzQ0MTUxODgyNTc3NzgsIDAuMzgzNDQxNTE4ODI1Nzc3OCwgMC4zKV0K KysKKysKKytAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3gseSxyJywgVEVTVF9FTExJUFNFX0VY QUNUX0FQRVJUVVJFUykKKytkZWYgdGVzdF9lbGxpcHNlX2V4YWN0X2dyaWQoeCwgeSwgcik6Cisr ICAgICIiIgorKyAgICBUZXN0IGVsbGlwdGljYWwgZXhhY3QgYXBlcnR1cmUgcGhvdG9tZXRyeSBv biBhIGdyaWQgb2YgcGl4ZWwgcG9zaXRpb25zLgorKworKyAgICBUaGlzIGlzIGEgcmVncmVzc2lv biB0ZXN0IGZvciB0aGUgYnVnIGRpc2NvdmVyZWQgaW4gdGhpcyBpc3N1ZToKKysgICAgaHR0cHM6 Ly9naXRodWIuY29tL2FzdHJvcHkvcGhvdHV0aWxzL2lzc3Vlcy8xOTgKKysgICAgIiIiCisrCisr ICAgIGRhdGEgPSBucC5vbmVzKCgxMCwgMTApKQorKworKyAgICBhcGVydHVyZSA9IEVsbGlwdGlj YWxBcGVydHVyZSgoeCwgeSksIHIsIHIsIDAuKQorKyAgICB0ID0gYXBlcnR1cmVfcGhvdG9tZXRy eShkYXRhLCBhcGVydHVyZSwgbWV0aG9kPSdleGFjdCcpCisrICAgIGFjdHVhbCA9IHRbJ2FwZXJ0 dXJlX3N1bSddWzBdIC8gKG5wLnBpICogciAqKiAyKQorKyAgICBhc3NlcnRfYWxsY2xvc2UoYWN0 dWFsLCAxKQorKworKworK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgndmFsdWUnLCBbbnAubmFu LCBucC5pbmZdKQorK2RlZiB0ZXN0X25hbl9pbmZfbWFzayh2YWx1ZSk6CisrICAgICIiIlRlc3Qg dGhhdCBuYW5zIGFuZCBpbmZzIGFyZSBwcm9wZXJseSBtYXNrZWQgWzI2N10uIiIiCisrCisrICAg IGRhdGEgPSBucC5vbmVzKCg5LCA5KSkKKysgICAgbWFzayA9IG5wLnplcm9zX2xpa2UoZGF0YSwg ZHR5cGU9Ym9vbCkKKysgICAgZGF0YVs0LCA0XSA9IHZhbHVlCisrICAgIG1hc2tbNCwgNF0gPSBU cnVlCisrICAgIHJhZGl1cyA9IDIuCisrICAgIGFwZXIgPSBDaXJjdWxhckFwZXJ0dXJlKCg0LCA0 KSwgcmFkaXVzKQorKyAgICB0YmwgPSBhcGVydHVyZV9waG90b21ldHJ5KGRhdGEsIGFwZXIsIG1h c2s9bWFzaykKKysgICAgZGVzaXJlZCA9IChucC5waSAqIHJhZGl1cyoqMikgLSAxCisrICAgIGFz c2VydF9hbGxjbG9zZSh0YmxbJ2FwZXJ0dXJlX3N1bSddLCBkZXNpcmVkKQorKworKworK2RlZiB0 ZXN0X2FwZXJ0dXJlX3BhcnRpYWxfb3ZlcmxhcCgpOgorKyAgICBkYXRhID0gbnAub25lcygoMjAs IDIwKSkKKysgICAgZXJyb3IgPSBucC5vbmVzKCgyMCwgMjApKQorKyAgICB4eXBvcyA9IFsoMTAs IDEwKSwgKDAsIDApLCAoMCwgMTkpLCAoMTksIDApLCAoMTksIDE5KV0KKysgICAgciA9IDUuCisr ICAgIGFwZXIgPSBDaXJjdWxhckFwZXJ0dXJlKHh5cG9zLCByPXIpCisrICAgIHRibCA9IGFwZXJ0 dXJlX3Bob3RvbWV0cnkoZGF0YSwgYXBlciwgZXJyb3I9ZXJyb3IpCisrICAgIGFzc2VydF9hbGxj bG9zZSh0YmxbJ2FwZXJ0dXJlX3N1bSddWzBdLCBucC5waSAqIHIgKiogMikKKysgICAgYXNzZXJ0 X2FycmF5X2xlc3ModGJsWydhcGVydHVyZV9zdW0nXVsxOl0sIG5wLnBpICogciAqKiAyKQorKwor KyAgICB1bml0ID0gdS5NSnkgLyB1LnNyCisrICAgIHRibCA9IGFwZXJ0dXJlX3Bob3RvbWV0cnko ZGF0YSAqIHVuaXQsIGFwZXIsIGVycm9yPWVycm9yICogdW5pdCkKKysgICAgYXNzZXJ0X2FsbGNs b3NlKHRibFsnYXBlcnR1cmVfc3VtJ11bMF0udmFsdWUsIG5wLnBpICogciAqKiAyKQorKyAgICBh c3NlcnRfYXJyYXlfbGVzcyh0YmxbJ2FwZXJ0dXJlX3N1bSddWzE6XS52YWx1ZSwgbnAucGkgKiBy ICoqIDIpCisrICAgIGFzc2VydF9hcnJheV9sZXNzKHRibFsnYXBlcnR1cmVfc3VtX2VyciddWzE6 XS52YWx1ZSwgbnAucGkgKiByICoqIDIpCisrICAgIGFzc2VydCB0YmxbJ2FwZXJ0dXJlX3N1bSdd LnVuaXQgPT0gdW5pdAorKyAgICBhc3NlcnQgdGJsWydhcGVydHVyZV9zdW1fZXJyJ10udW5pdCA9 PSB1bml0CisrCisrCisrZGVmIHRlc3RfcGl4ZWxfYXBlcnR1cmVfcmVwcigpOgorKyAgICBhcGVy ID0gQ2lyY3VsYXJBcGVydHVyZSgoMTAsIDIwKSwgcj0zLjApCisrICAgIGFfcmVwciA9ICc8Q2ly Y3VsYXJBcGVydHVyZShbWzEwLCAyMF1dLCByPTMuMCk+JworKyAgICBhX3N0ciA9ICdBcGVydHVy ZTogQ2lyY3VsYXJBcGVydHVyZVxucG9zaXRpb25zOiBbWzEwLCAyMF1dXG5yOiAzLjAnCisrICAg IGFzc2VydCByZXByKGFwZXIpID09IGFfcmVwcgorKyAgICBhc3NlcnQgc3RyKGFwZXIpID09IGFf c3RyCisrCisrICAgIGFwZXIgPSBDaXJjdWxhckFubnVsdXMoKDEwLCAyMCksIHJfaW49My4wLCBy X291dD01LjApCisrICAgIGFfcmVwciA9ICc8Q2lyY3VsYXJBbm51bHVzKFtbMTAsIDIwXV0sIHJf aW49My4wLCByX291dD01LjApPicKKysgICAgYV9zdHIgPSAoJ0FwZXJ0dXJlOiBDaXJjdWxhckFu bnVsdXNcbnBvc2l0aW9uczogW1sxMCwgMjBdXVxucl9pbjogMy4wXG4nCisrICAgICAgICAgICAg ICdyX291dDogNS4wJykKKysgICAgYXNzZXJ0IHJlcHIoYXBlcikgPT0gYV9yZXByCisrICAgIGFz c2VydCBzdHIoYXBlcikgPT0gYV9zdHIKKysKKysgICAgYXBlciA9IEVsbGlwdGljYWxBcGVydHVy ZSgoMTAsIDIwKSwgYT01LjAsIGI9My4wLCB0aGV0YT0xNS4wKQorKyAgICBhX3JlcHIgPSAnPEVs bGlwdGljYWxBcGVydHVyZShbWzEwLCAyMF1dLCBhPTUuMCwgYj0zLjAsIHRoZXRhPTE1LjApPicK KysgICAgYV9zdHIgPSAoJ0FwZXJ0dXJlOiBFbGxpcHRpY2FsQXBlcnR1cmVcbnBvc2l0aW9uczog W1sxMCwgMjBdXVxuJworKyAgICAgICAgICAgICAnYTogNS4wXG5iOiAzLjBcbnRoZXRhOiAxNS4w JykKKysgICAgYXNzZXJ0IHJlcHIoYXBlcikgPT0gYV9yZXByCisrICAgIGFzc2VydCBzdHIoYXBl cikgPT0gYV9zdHIKKysKKysgICAgYXBlciA9IEVsbGlwdGljYWxBbm51bHVzKCgxMCwgMjApLCBh X2luPTQuMCwgYV9vdXQ9OC4wLCBiX291dD00LjAsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0aGV0YT0xNS4wKQorKyAgICBhX3JlcHIgPSAoJzxFbGxpcHRpY2FsQW5udWx1cyhbWzEw LCAyMF1dLCBhX2luPTQuMCwgYV9vdXQ9OC4wLCBiX291dD0nCisrICAgICAgICAgICAgICAnNC4w LCB0aGV0YT0xNS4wKT4nKQorKyAgICBhX3N0ciA9ICgnQXBlcnR1cmU6IEVsbGlwdGljYWxBbm51 bHVzXG5wb3NpdGlvbnM6IFtbMTAsIDIwXV1cbmFfaW46ICcKKysgICAgICAgICAgICAgJzQuMFxu YV9vdXQ6IDguMFxuYl9vdXQ6IDQuMFxudGhldGE6IDE1LjAnKQorKyAgICBhc3NlcnQgcmVwcihh cGVyKSA9PSBhX3JlcHIKKysgICAgYXNzZXJ0IHN0cihhcGVyKSA9PSBhX3N0cgorKworKyAgICBh cGVyID0gUmVjdGFuZ3VsYXJBcGVydHVyZSgoMTAsIDIwKSwgdz01LjAsIGg9My4wLCB0aGV0YT0x NS4wKQorKyAgICBhX3JlcHIgPSAnPFJlY3Rhbmd1bGFyQXBlcnR1cmUoW1sxMCwgMjBdXSwgdz01 LjAsIGg9My4wLCB0aGV0YT0xNS4wKT4nCisrICAgIGFfc3RyID0gKCdBcGVydHVyZTogUmVjdGFu Z3VsYXJBcGVydHVyZVxucG9zaXRpb25zOiBbWzEwLCAyMF1dXG4nCisrICAgICAgICAgICAgICd3 OiA1LjBcbmg6IDMuMFxudGhldGE6IDE1LjAnKQorKyAgICBhc3NlcnQgcmVwcihhcGVyKSA9PSBh X3JlcHIKKysgICAgYXNzZXJ0IHN0cihhcGVyKSA9PSBhX3N0cgorKworKyAgICBhcGVyID0gUmVj dGFuZ3VsYXJBbm51bHVzKCgxMCwgMjApLCB3X2luPTQuMCwgd19vdXQ9OC4wLCBoX291dD00LjAs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhldGE9MTUuMCkKKysgICAgYV9yZXBy ID0gKCc8UmVjdGFuZ3VsYXJBbm51bHVzKFtbMTAsIDIwXV0sIHdfaW49NC4wLCB3X291dD04LjAs ICcKKysgICAgICAgICAgICAgICdoX291dD00LjAsIHRoZXRhPTE1LjApPicpCisrICAgIGFfc3Ry ID0gKCdBcGVydHVyZTogUmVjdGFuZ3VsYXJBbm51bHVzXG5wb3NpdGlvbnM6IFtbMTAsIDIwXV1c bicKKysgICAgICAgICAgICAgJ3dfaW46IDQuMFxud19vdXQ6IDguMFxuaF9vdXQ6IDQuMFxudGhl dGE6IDE1LjAnKQorKyAgICBhc3NlcnQgcmVwcihhcGVyKSA9PSBhX3JlcHIKKysgICAgYXNzZXJ0 IHN0cihhcGVyKSA9PSBhX3N0cgorKworKworK2RlZiB0ZXN0X3NreV9hcGVydHVyZV9yZXByKCk6 CisrICAgIHMgPSBTa3lDb29yZChbMSwgMl0sIFszLCA0XSwgdW5pdD0nZGVnJykKKysKKysgICAg YXBlciA9IFNreUNpcmN1bGFyQXBlcnR1cmUocywgcj0zKnUucGl4KQorKyAgICBhX3JlcHIgPSAo JzxTa3lDaXJjdWxhckFwZXJ0dXJlKDxTa3lDb29yZCAoSUNSUyk6IChyYSwgZGVjKSBpbiBkZWdc bicKKysgICAgICAgICAgICAgICcgICAgWyggMS4sICAzLiksICggMi4sICA0LildPiwgcj0zLjAg cGl4KT4nKQorKyAgICBhX3N0ciA9ICgnQXBlcnR1cmU6IFNreUNpcmN1bGFyQXBlcnR1cmVcbnBv c2l0aW9uczogPFNreUNvb3JkICcKKysgICAgICAgICAgICAgJyhJQ1JTKTogKHJhLCBkZWMpIGlu IGRlZ1xuICAgIFsoIDEuLCAgMy4pLCAoIDIuLCAgNC4pXT5cbicKKysgICAgICAgICAgICAgJ3I6 IDMuMCBwaXgnKQorKyAgICBhc3NlcnQgcmVwcihhcGVyKSA9PSBhX3JlcHIKKysgICAgYXNzZXJ0 IHN0cihhcGVyKSA9PSBhX3N0cgorKworKyAgICBhcGVyID0gU2t5Q2lyY3VsYXJBbm51bHVzKHMs IHJfaW49My4qdS5waXgsIHJfb3V0PTUqdS5waXgpCisrICAgIGFfcmVwciA9ICgnPFNreUNpcmN1 bGFyQW5udWx1cyg8U2t5Q29vcmQgKElDUlMpOiAocmEsIGRlYykgaW4gZGVnXG4nCisrICAgICAg ICAgICAgICAnICAgIFsoIDEuLCAgMy4pLCAoIDIuLCAgNC4pXT4sIHJfaW49My4wIHBpeCwgcl9v dXQ9NS4wIHBpeCk+JykKKysgICAgYV9zdHIgPSAoJ0FwZXJ0dXJlOiBTa3lDaXJjdWxhckFubnVs dXNcbnBvc2l0aW9uczogPFNreUNvb3JkICcKKysgICAgICAgICAgICAgJyhJQ1JTKTogKHJhLCBk ZWMpIGluIGRlZ1xuICAgIFsoIDEuLCAgMy4pLCAoIDIuLCAgNC4pXT5cbicKKysgICAgICAgICAg ICAgJ3JfaW46IDMuMCBwaXhcbnJfb3V0OiA1LjAgcGl4JykKKysgICAgYXNzZXJ0IHJlcHIoYXBl cikgPT0gYV9yZXByCisrICAgIGFzc2VydCBzdHIoYXBlcikgPT0gYV9zdHIKKysKKysgICAgYXBl ciA9IFNreUVsbGlwdGljYWxBcGVydHVyZShzLCBhPTMqdS5waXgsIGI9NSp1LnBpeCwgdGhldGE9 MTUqdS5kZWcpCisrICAgIGFfcmVwciA9ICgnPFNreUVsbGlwdGljYWxBcGVydHVyZSg8U2t5Q29v cmQgKElDUlMpOiAocmEsIGRlYykgaW4gJworKyAgICAgICAgICAgICAgJ2RlZ1xuICAgIFsoIDEu LCAgMy4pLCAoIDIuLCAgNC4pXT4sIGE9My4wIHBpeCwgYj01LjAgcGl4LCcKKysgICAgICAgICAg ICAgICcgdGhldGE9MTUuMCBkZWcpPicpCisrICAgIGFfc3RyID0gKCdBcGVydHVyZTogU2t5RWxs aXB0aWNhbEFwZXJ0dXJlXG5wb3NpdGlvbnM6IDxTa3lDb29yZCAnCisrICAgICAgICAgICAgICco SUNSUyk6IChyYSwgZGVjKSBpbiBkZWdcbiAgICBbKCAxLiwgIDMuKSwgKCAyLiwgIDQuKV0+XG4n CisrICAgICAgICAgICAgICdhOiAzLjAgcGl4XG5iOiA1LjAgcGl4XG50aGV0YTogMTUuMCBkZWcn KQorKyAgICBhc3NlcnQgcmVwcihhcGVyKSA9PSBhX3JlcHIKKysgICAgYXNzZXJ0IHN0cihhcGVy KSA9PSBhX3N0cgorKworKyAgICBhcGVyID0gU2t5RWxsaXB0aWNhbEFubnVsdXMocywgYV9pbj0z KnUucGl4LCBhX291dD01KnUucGl4LCBiX291dD0zKnUucGl4LAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdGhldGE9MTUqdS5kZWcpCisrICAgIGFfcmVwciA9ICgnPFNreUVsbGlw dGljYWxBbm51bHVzKDxTa3lDb29yZCAoSUNSUyk6IChyYSwgZGVjKSBpbiAnCisrICAgICAgICAg ICAgICAnZGVnXG4gICAgWyggMS4sICAzLiksICggMi4sICA0LildPiwgYV9pbj0zLjAgcGl4LCAn CisrICAgICAgICAgICAgICAnYV9vdXQ9NS4wIHBpeCwgYl9vdXQ9My4wIHBpeCwgdGhldGE9MTUu MCBkZWcpPicpCisrICAgIGFfc3RyID0gKCdBcGVydHVyZTogU2t5RWxsaXB0aWNhbEFubnVsdXNc bnBvc2l0aW9uczogPFNreUNvb3JkICcKKysgICAgICAgICAgICAgJyhJQ1JTKTogKHJhLCBkZWMp IGluIGRlZ1xuICAgIFsoIDEuLCAgMy4pLCAoIDIuLCAgNC4pXT5cbicKKysgICAgICAgICAgICAg J2FfaW46IDMuMCBwaXhcbmFfb3V0OiA1LjAgcGl4XG5iX291dDogMy4wIHBpeFxuJworKyAgICAg ICAgICAgICAndGhldGE6IDE1LjAgZGVnJykKKysgICAgYXNzZXJ0IHJlcHIoYXBlcikgPT0gYV9y ZXByCisrICAgIGFzc2VydCBzdHIoYXBlcikgPT0gYV9zdHIKKysKKysgICAgYXBlciA9IFNreVJl Y3Rhbmd1bGFyQXBlcnR1cmUocywgdz0zKnUucGl4LCBoPTUqdS5waXgsIHRoZXRhPTE1KnUuZGVn KQorKyAgICBhX3JlcHIgPSAoJzxTa3lSZWN0YW5ndWxhckFwZXJ0dXJlKDxTa3lDb29yZCAoSUNS Uyk6IChyYSwgZGVjKSBpbiAnCisrICAgICAgICAgICAgICAnZGVnXG4gICAgWyggMS4sICAzLiks ICggMi4sICA0LildPiwgdz0zLjAgcGl4LCBoPTUuMCBwaXgnCisrICAgICAgICAgICAgICAnLCB0 aGV0YT0xNS4wIGRlZyk+JykKKysgICAgYV9zdHIgPSAoJ0FwZXJ0dXJlOiBTa3lSZWN0YW5ndWxh ckFwZXJ0dXJlXG5wb3NpdGlvbnM6IDxTa3lDb29yZCAnCisrICAgICAgICAgICAgICcoSUNSUyk6 IChyYSwgZGVjKSBpbiBkZWdcbiAgICBbKCAxLiwgIDMuKSwgKCAyLiwgIDQuKV0+XG4nCisrICAg ICAgICAgICAgICd3OiAzLjAgcGl4XG5oOiA1LjAgcGl4XG50aGV0YTogMTUuMCBkZWcnKQorKyAg ICBhc3NlcnQgcmVwcihhcGVyKSA9PSBhX3JlcHIKKysgICAgYXNzZXJ0IHN0cihhcGVyKSA9PSBh X3N0cgorKworKyAgICBhcGVyID0gU2t5UmVjdGFuZ3VsYXJBbm51bHVzKHMsIHdfaW49Myp1LnBp eCwgd19vdXQ9My40KnUucGl4LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhf b3V0PTUqdS5waXgsIHRoZXRhPTE1KnUuZGVnKQorKyAgICBhX3JlcHIgPSAoJzxTa3lSZWN0YW5n dWxhckFubnVsdXMoPFNreUNvb3JkIChJQ1JTKTogKHJhLCBkZWMpIGluIGRlZycKKysgICAgICAg ICAgICAgICdcbiAgICBbKCAxLiwgIDMuKSwgKCAyLiwgIDQuKV0+LCB3X2luPTMuMCBwaXgsICcK KysgICAgICAgICAgICAgICd3X291dD0zLjQgcGl4LCBoX291dD01LjAgcGl4LCB0aGV0YT0xNS4w IGRlZyk+JykKKysgICAgYV9zdHIgPSAoJ0FwZXJ0dXJlOiBTa3lSZWN0YW5ndWxhckFubnVsdXNc bnBvc2l0aW9uczogPFNreUNvb3JkICcKKysgICAgICAgICAgICAgJyhJQ1JTKTogKHJhLCBkZWMp IGluIGRlZ1xuICAgIFsoIDEuLCAgMy4pLCAoIDIuLCAgNC4pXT5cbicKKysgICAgICAgICAgICAg J3dfaW46IDMuMCBwaXhcbndfb3V0OiAzLjQgcGl4XG5oX291dDogNS4wIHBpeFxuJworKyAgICAg ICAgICAgICAndGhldGE6IDE1LjAgZGVnJykKKysgICAgYXNzZXJ0IHJlcHIoYXBlcikgPT0gYV9y ZXByCisrICAgIGFzc2VydCBzdHIoYXBlcikgPT0gYV9zdHIKKysKKysKKytkZWYgdGVzdF9yZWN0 YW5ndWxhcl9iYm94KCk6CisrICAgICMgb2RkIHNpemVzCisrICAgIHdpZHRoID0gNworKyAgICBo ZWlnaHQgPSAzCisrICAgIGEgPSBSZWN0YW5ndWxhckFwZXJ0dXJlKCg1MCwgNTApLCB3PXdpZHRo LCBoPWhlaWdodCwgdGhldGE9MCkKKysgICAgYXNzZXJ0IGEuYm91bmRpbmdfYm94ZXNbMF0uc2hh cGUgPT0gKGhlaWdodCwgd2lkdGgpCisrCisrICAgIGEgPSBSZWN0YW5ndWxhckFwZXJ0dXJlKCg1 MC41LCA1MC41KSwgdz13aWR0aCwgaD1oZWlnaHQsIHRoZXRhPTApCisrICAgIGFzc2VydCBhLmJv dW5kaW5nX2JveGVzWzBdLnNoYXBlID09IChoZWlnaHQgKyAxLCB3aWR0aCArIDEpCisrCisrICAg IGEgPSBSZWN0YW5ndWxhckFwZXJ0dXJlKCg1MCwgNTApLCB3PXdpZHRoLCBoPWhlaWdodCwgdGhl dGE9OTAuKm5wLnBpLzE4MC4pCisrICAgIGFzc2VydCBhLmJvdW5kaW5nX2JveGVzWzBdLnNoYXBl ID09ICh3aWR0aCwgaGVpZ2h0KQorKworKyAgICAjIGV2ZW4gc2l6ZXMKKysgICAgd2lkdGggPSA4 CisrICAgIGhlaWdodCA9IDQKKysgICAgYSA9IFJlY3Rhbmd1bGFyQXBlcnR1cmUoKDUwLCA1MCks IHc9d2lkdGgsIGg9aGVpZ2h0LCB0aGV0YT0wKQorKyAgICBhc3NlcnQgYS5ib3VuZGluZ19ib3hl c1swXS5zaGFwZSA9PSAoaGVpZ2h0ICsgMSwgd2lkdGggKyAxKQorKworKyAgICBhID0gUmVjdGFu Z3VsYXJBcGVydHVyZSgoNTAuNSwgNTAuNSksIHc9d2lkdGgsIGg9aGVpZ2h0LCB0aGV0YT0wKQor KyAgICBhc3NlcnQgYS5ib3VuZGluZ19ib3hlc1swXS5zaGFwZSA9PSAoaGVpZ2h0LCB3aWR0aCkK KysKKysgICAgYSA9IFJlY3Rhbmd1bGFyQXBlcnR1cmUoKDUwLjUsIDUwLjUpLCB3PXdpZHRoLCBo PWhlaWdodCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhldGE9OTAuKm5wLnBpLzE4 MC4pCisrICAgIGFzc2VydCBhLmJvdW5kaW5nX2JveGVzWzBdLnNoYXBlID09ICh3aWR0aCwgaGVp Z2h0KQorKworKworK2RlZiB0ZXN0X2VsbGlwdGljYWxfYmJveCgpOgorKyAgICAjIGludGVnZXIg YXhlcworKyAgICBhID0gNworKyAgICBiID0gMworKyAgICBhcCA9IEVsbGlwdGljYWxBcGVydHVy ZSgoNTAsIDUwKSwgYT1hLCBiPWIsIHRoZXRhPTApCisrICAgIGFzc2VydCBhcC5ib3VuZGluZ19i b3hlc1swXS5zaGFwZSA9PSAoMipiICsgMSwgMiphICsgMSkKKysKKysgICAgYXAgPSBFbGxpcHRp Y2FsQXBlcnR1cmUoKDUwLjUsIDUwLjUpLCBhPWEsIGI9YiwgdGhldGE9MCkKKysgICAgYXNzZXJ0 IGFwLmJvdW5kaW5nX2JveGVzWzBdLnNoYXBlID09ICgyKmIsIDIqYSkKKysKKysgICAgYXAgPSBF bGxpcHRpY2FsQXBlcnR1cmUoKDUwLCA1MCksIGE9YSwgYj1iLCB0aGV0YT05MC4qbnAucGkvMTgw LikKKysgICAgYXNzZXJ0IGFwLmJvdW5kaW5nX2JveGVzWzBdLnNoYXBlID09ICgyKmEgKyAxLCAy KmIgKyAxKQorKworKyAgICAjIGZyYWN0aW9uYWwgYXhlcworKyAgICBhID0gNy41CisrICAgIGIg PSA0LjUKKysgICAgYXAgPSBFbGxpcHRpY2FsQXBlcnR1cmUoKDUwLCA1MCksIGE9YSwgYj1iLCB0 aGV0YT0wKQorKyAgICBhc3NlcnQgYXAuYm91bmRpbmdfYm94ZXNbMF0uc2hhcGUgPT0gKDIqYiwg MiphKQorKworKyAgICBhcCA9IEVsbGlwdGljYWxBcGVydHVyZSgoNTAuNSwgNTAuNSksIGE9YSwg Yj1iLCB0aGV0YT0wKQorKyAgICBhc3NlcnQgYXAuYm91bmRpbmdfYm94ZXNbMF0uc2hhcGUgPT0g KDIqYiArIDEsIDIqYSArIDEpCisrCisrICAgIGFwID0gRWxsaXB0aWNhbEFwZXJ0dXJlKCg1MCwg NTApLCBhPWEsIGI9YiwgdGhldGE9OTAuKm5wLnBpLzE4MC4pCisrICAgIGFzc2VydCBhcC5ib3Vu ZGluZ19ib3hlc1swXS5zaGFwZSA9PSAoMiphLCAyKmIpCisrCisrCisrZGVmIHRlc3RfdG9fc2t5 X3BpeGVsKCk6CisrICAgIGRhdGEgPSBtYWtlXzRnYXVzc2lhbnNfaW1hZ2UoKQorKyAgICB3Y3Mg PSBtYWtlX3djcyhkYXRhLnNoYXBlKQorKworKyAgICBhcCA9IENpcmN1bGFyQXBlcnR1cmUoKCgx Mi4zLCAxNS43KSwgKDQ4LjE5LCA5OC4xNCkpLCByPTMuMTQpCisrICAgIGFwMiA9IGFwLnRvX3Nr eSh3Y3MpLnRvX3BpeGVsKHdjcykKKysgICAgYXNzZXJ0X2FsbGNsb3NlKGFwLnBvc2l0aW9ucywg YXAyLnBvc2l0aW9ucykKKysgICAgYXNzZXJ0X2FsbGNsb3NlKGFwLnIsIGFwMi5yKQorKworKyAg ICBhcCA9IENpcmN1bGFyQW5udWx1cygoKDEyLjMsIDE1LjcpLCAoNDguMTksIDk4LjE0KSksIHJf aW49My4xNCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgcl9vdXQ9NS4zMikKKysgICAgYXAy ID0gYXAudG9fc2t5KHdjcykudG9fcGl4ZWwod2NzKQorKyAgICBhc3NlcnRfYWxsY2xvc2UoYXAu cG9zaXRpb25zLCBhcDIucG9zaXRpb25zKQorKyAgICBhc3NlcnRfYWxsY2xvc2UoYXAucl9pbiwg YXAyLnJfaW4pCisrICAgIGFzc2VydF9hbGxjbG9zZShhcC5yX291dCwgYXAyLnJfb3V0KQorKwor KyAgICBhcCA9IEVsbGlwdGljYWxBcGVydHVyZSgoKDEyLjMsIDE1LjcpLCAoNDguMTksIDk4LjE0 KSksIGE9My4xNCwgYj01LjMyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGV0YT0x MDMuKm5wLnBpLzE4MC4pCisrICAgIGFwMiA9IGFwLnRvX3NreSh3Y3MpLnRvX3BpeGVsKHdjcykK KysgICAgYXNzZXJ0X2FsbGNsb3NlKGFwLnBvc2l0aW9ucywgYXAyLnBvc2l0aW9ucykKKysgICAg YXNzZXJ0X2FsbGNsb3NlKGFwLmEsIGFwMi5hKQorKyAgICBhc3NlcnRfYWxsY2xvc2UoYXAuYiwg YXAyLmIpCisrICAgIGFzc2VydF9hbGxjbG9zZShhcC50aGV0YSwgYXAyLnRoZXRhKQorKworKyAg ICBhcCA9IEVsbGlwdGljYWxBbm51bHVzKCgoMTIuMywgMTUuNyksICg0OC4xOSwgOTguMTQpKSwg YV9pbj0zLjE0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFfb3V0PTE1LjMyLCBiX291 dD00Ljg5LCB0aGV0YT0xMDMuKm5wLnBpLzE4MC4pCisrICAgIGFwMiA9IGFwLnRvX3NreSh3Y3Mp LnRvX3BpeGVsKHdjcykKKysgICAgYXNzZXJ0X2FsbGNsb3NlKGFwLnBvc2l0aW9ucywgYXAyLnBv c2l0aW9ucykKKysgICAgYXNzZXJ0X2FsbGNsb3NlKGFwLmFfaW4sIGFwMi5hX2luKQorKyAgICBh c3NlcnRfYWxsY2xvc2UoYXAuYV9vdXQsIGFwMi5hX291dCkKKysgICAgYXNzZXJ0X2FsbGNsb3Nl KGFwLmJfb3V0LCBhcDIuYl9vdXQpCisrICAgIGFzc2VydF9hbGxjbG9zZShhcC50aGV0YSwgYXAy LnRoZXRhKQorKworKyAgICBhcCA9IFJlY3Rhbmd1bGFyQXBlcnR1cmUoKCgxMi4zLCAxNS43KSwg KDQ4LjE5LCA5OC4xNCkpLCB3PTMuMTQsIGg9NS4zMiwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRoZXRhPTEwMy4qbnAucGkvMTgwLikKKysgICAgYXAyID0gYXAudG9fc2t5KHdjcyku dG9fcGl4ZWwod2NzKQorKyAgICBhc3NlcnRfYWxsY2xvc2UoYXAucG9zaXRpb25zLCBhcDIucG9z aXRpb25zKQorKyAgICBhc3NlcnRfYWxsY2xvc2UoYXAudywgYXAyLncpCisrICAgIGFzc2VydF9h bGxjbG9zZShhcC5oLCBhcDIuaCkKKysgICAgYXNzZXJ0X2FsbGNsb3NlKGFwLnRoZXRhLCBhcDIu dGhldGEpCisrCisrICAgIGFwID0gUmVjdGFuZ3VsYXJBbm51bHVzKCgoMTIuMywgMTUuNyksICg0 OC4xOSwgOTguMTQpKSwgd19pbj0zLjE0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3 X291dD0xNS4zMiwgaF9vdXQ9NC44OSwgdGhldGE9MTAzLipucC5waS8xODAuKQorKyAgICBhcDIg PSBhcC50b19za3kod2NzKS50b19waXhlbCh3Y3MpCisrICAgIGFzc2VydF9hbGxjbG9zZShhcC5w b3NpdGlvbnMsIGFwMi5wb3NpdGlvbnMpCisrICAgIGFzc2VydF9hbGxjbG9zZShhcC53X2luLCBh cDIud19pbikKKysgICAgYXNzZXJ0X2FsbGNsb3NlKGFwLndfb3V0LCBhcDIud19vdXQpCisrICAg IGFzc2VydF9hbGxjbG9zZShhcC5oX291dCwgYXAyLmhfb3V0KQorKyAgICBhc3NlcnRfYWxsY2xv c2UoYXAudGhldGEsIGFwMi50aGV0YSkKK2RpZmYgLU5hdXIgcGhvdHV0aWxzLTAuNC9waG90dXRp bHMvYmFja2dyb3VuZC9jb3JlLnB5IHBob3R1dGlscy0wLjQuZml4ZWQvcGhvdHV0aWxzL2JhY2tn cm91bmQvY29yZS5weQorLS0tIHBob3R1dGlscy0wLjQvcGhvdHV0aWxzL2JhY2tncm91bmQvY29y ZS5weQkyMDE3LTEwLTMwIDE1OjM4OjE4LjAwMDAwMDAwMCArMDEwMAorKysrIHBob3R1dGlscy0w LjQuZml4ZWQvcGhvdHV0aWxzL2JhY2tncm91bmQvY29yZS5weQkyMDE4LTAyLTE0IDAzOjU2OjA3 LjA2MzUyMjYxOSArMDEwMAorQEAgLTQ3NywxNCArNDc3LDE0IEBACisgCisgICAgID4+PiBia2dy bXNfdmFsdWUgPSBia2dybXMuY2FsY19iYWNrZ3JvdW5kX3JtcyhkYXRhKQorICAgICA+Pj4gcHJp bnQoYmtncm1zX3ZhbHVlKSAgICAjIGRvY3Rlc3Q6ICtGTE9BVF9DTVAKKy0gICAgMjguODY2MDcw MDQ3NzIyMTE4CisrICAgIDI4Ljg2NjA3MDA0NzcyMjEyCisgCisgICAgIEFsdGVybmF0aXZlbHks IHRoZSBiYWNrZ3JvdW5kIFJNUyB2YWx1ZSBjYW4gYmUgY2FsY3VsYXRlZCBieSBjYWxsaW5nCisg ICAgIHRoZSBjbGFzcyBpbnN0YW5jZSBhcyBhIGZ1bmN0aW9uLCBlLmcuOgorIAorICAgICA+Pj4g Ymtncm1zX3ZhbHVlID0gYmtncm1zKGRhdGEpCisgICAgID4+PiBwcmludChia2dybXNfdmFsdWUp ICAgICMgZG9jdGVzdDogK0ZMT0FUX0NNUAorLSAgICAyOC44NjYwNzAwNDc3MjIxMTgKKysgICAg MjguODY2MDcwMDQ3NzIyMTIKKyAgICAgIiIiCisgCisgICAgIGRlZiBjYWxjX2JhY2tncm91bmRf cm1zKHNlbGYsIGRhdGEsIGF4aXM9Tm9uZSk6CitAQCAtNTMxLDE0ICs1MzEsMTQgQEAKKyAKKyAg ICAgPj4+IGJrZ3Jtc192YWx1ZSA9IGJrZ3Jtcy5jYWxjX2JhY2tncm91bmRfcm1zKGRhdGEpCisg ICAgID4+PiBwcmludChia2dybXNfdmFsdWUpICAgICMgZG9jdGVzdDogK0ZMT0FUX0NNUAorLSAg ICAzNy4wNjUwNTU0NjI2NDAwNTMKKysgICAgMzcuMDY1MDU1NDYyNjQwMDUKKyAKKyAgICAgQWx0 ZXJuYXRpdmVseSwgdGhlIGJhY2tncm91bmQgUk1TIHZhbHVlIGNhbiBiZSBjYWxjdWxhdGVkIGJ5 IGNhbGxpbmcKKyAgICAgdGhlIGNsYXNzIGluc3RhbmNlIGFzIGEgZnVuY3Rpb24sIGUuZy46Cisg CisgICAgID4+PiBia2dybXNfdmFsdWUgPSBia2dybXMoZGF0YSkKKyAgICAgPj4+IHByaW50KGJr Z3Jtc192YWx1ZSkgICAgIyBkb2N0ZXN0OiArRkxPQVRfQ01QCistICAgIDM3LjA2NTA1NTQ2MjY0 MDA1MworKyAgICAzNy4wNjUwNTU0NjI2NDAwNQorICAgICAiIiIKKyAKKyAgICAgZGVmIGNhbGNf YmFja2dyb3VuZF9ybXMoc2VsZiwgZGF0YSwgYXhpcz1Ob25lKToKK0BAIC01ODAsMTQgKzU4MCwx NCBAQAorIAorICAgICA+Pj4gYmtncm1zX3ZhbHVlID0gYmtncm1zLmNhbGNfYmFja2dyb3VuZF9y bXMoZGF0YSkKKyAgICAgPj4+IHByaW50KGJrZ3Jtc192YWx1ZSkgICAgIyBkb2N0ZXN0OiArRkxP QVRfQ01QCistICAgIDMwLjA5NDMzODQ4NTg5MzM5MgorKyAgICAzMC4wOTQzMzg0ODU4OTMzOQor IAorICAgICBBbHRlcm5hdGl2ZWx5LCB0aGUgYmFja2dyb3VuZCBSTVMgdmFsdWUgY2FuIGJlIGNh bGN1bGF0ZWQgYnkgY2FsbGluZworICAgICB0aGUgY2xhc3MgaW5zdGFuY2UgYXMgYSBmdW5jdGlv biwgZS5nLjoKKyAKKyAgICAgPj4+IGJrZ3Jtc192YWx1ZSA9IGJrZ3JtcyhkYXRhKQorICAgICA+ Pj4gcHJpbnQoYmtncm1zX3ZhbHVlKSAgICAjIGRvY3Rlc3Q6ICtGTE9BVF9DTVAKKy0gICAgMzAu MDk0MzM4NDg1ODkzMzkyCisrICAgIDMwLjA5NDMzODQ4NTg5MzM5CisgICAgICIiIgorIAorICAg ICBkZWYgX19pbml0X18oc2VsZiwgYz05LjAsIE09Tm9uZSwgKiprd2FyZ3MpOgorZGlmZiAtTmF1 ciBwaG90dXRpbHMtMC40L3Bob3R1dGlscy9kYXRhc2V0cy9tYWtlLnB5IHBob3R1dGlscy0wLjQu Zml4ZWQvcGhvdHV0aWxzL2RhdGFzZXRzL21ha2UucHkKKy0tLSBwaG90dXRpbHMtMC40L3Bob3R1 dGlscy9kYXRhc2V0cy9tYWtlLnB5CTIwMTctMTAtMzAgMTU6Mzg6MTguMDAwMDAwMDAwICswMTAw CisrKysgcGhvdHV0aWxzLTAuNC5maXhlZC9waG90dXRpbHMvZGF0YXNldHMvbWFrZS5weQkyMDE4 LTAyLTE0IDAzOjU2OjA3LjA2MzUyMjYxOSArMDEwMAorQEAgLTIxNCwxNCArMjE0LDE2IEBACisg ICAgID4+PiBwYXJhbV9yYW5nZXMgPSBPcmRlcmVkRGljdChwYXJhbV9yYW5nZXMpCisgICAgID4+ PiBzb3VyY2VzID0gbWFrZV9yYW5kb21fbW9kZWxzX3RhYmxlKG5fc291cmNlcywgcGFyYW1fcmFu Z2VzLAorICAgICAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5kb21f c3RhdGU9MTIzNDUpCisrICAgID4+PiBmb3IgY29sIGluIHNvdXJjZXMuY29sbmFtZXM6CisrICAg IC4uLiAgICAgc291cmNlc1tjb2xdLmluZm8uZm9ybWF0ID0gJyUuOGcnICAjIGZvciBjb25zaXN0 ZW50IHRhYmxlIG91dHB1dAorICAgICA+Pj4gcHJpbnQoc291cmNlcykKKy0gICAgICBhbXBsaXR1 ZGUgICAgICAgeF9tZWFuICAgICAgICB5X21lYW4gICAgLi4uICAgIHlfc3RkZGV2ICAgICAgIHRo ZXRhCistICAgIC0tLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tIC4uLiAt LS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tCistICAgIDk2NC44MDgwNDY0MDkgIDI5Ny43NzIz NTE0OSAyMjQuMzE0NDQyNzgxIC4uLiAzLjU2OTkwMTMxMTU4ICAyLjI5MjM4NTg2MTc2CistICAg IDY1OC4xODc3NzcyOTEgNDgyLjI1NzI1OTg2OCAyODguMzkyMDIwODIyIC4uLiAzLjg2OTgxNDQ4 MzI1ICAzLjEyMjc4ODkyMDYyCistICAgIDU5MS45NTk0MDU4MzkgMzI2LjU4ODU0ODQzNiAyLjUx NjQ4OTM4MjQ3IC4uLiAyLjg3MDM5NjAyODg4ICAyLjEyNjQ2MTQ4MDMyCistICAgIDYwMi4yODAx MzkyNzcgMzc0LjQ1MzMxODc2NyAzMS45MzMzMTMwMDkzIC4uLiAyLjMwMjMzODcxMDE2ICAyLjQ4 NDQ0MjIxMjM2CistICAgIDc4My44NjI1MTQ1NDEgMzI2Ljc4NDkzNTQyNiA4OS42MTExMTQxMzA4 IC4uLiAyLjc1ODU3ODQyMzU0IDAuNTM2OTQyOTc2Njc0CisrICAgIGFtcGxpdHVkZSAgIHhfbWVh biAgICB5X21lYW4gICB4X3N0ZGRldiAgeV9zdGRkZXYgICB0aGV0YQorKyAgICAtLS0tLS0tLS0g LS0tLS0tLS0tIC0tLS0tLS0tLSAtLS0tLS0tLS0gLS0tLS0tLS0tIC0tLS0tLS0tLS0KKysgICAg OTY0LjgwODA1IDI5Ny43NzIzNSAyMjQuMzE0NDQgMy42MjU2NDQ3IDMuNTY5OTAxMyAgMi4yOTIz ODU5CisrICAgIDY1OC4xODc3OCA0ODIuMjU3MjYgMjg4LjM5MjAyIDQuMjM5MjUwMiAzLjg2OTgx NDUgIDMuMTIyNzg4OQorKyAgICA1OTEuOTU5NDEgMzI2LjU4ODU1IDIuNTE2NDg5NCA0LjQ4ODcw MzcgIDIuODcwMzk2ICAyLjEyNjQ2MTUKKysgICAgNjAyLjI4MDE0IDM3NC40NTMzMiAzMS45MzMz MTMgNC44NTg1OTA0IDIuMzAyMzM4NyAgMi40ODQ0NDIyCisrICAgIDc4My44NjI1MSAzMjYuNzg0 OTQgODkuNjExMTE0IDMuODk0NzQxNCAyLjc1ODU3ODQgMC41MzY5NDI5OAorICAgICAiIiIKKyAK KyAgICAgcHJuZyA9IGNoZWNrX3JhbmRvbV9zdGF0ZShyYW5kb21fc3RhdGUpCitAQCAtMzAyLDE0 ICszMDQsMTYgQEAKKyAgICAgPj4+IHBhcmFtX3JhbmdlcyA9IE9yZGVyZWREaWN0KHBhcmFtX3Jh bmdlcykKKyAgICAgPj4+IHNvdXJjZXMgPSBtYWtlX3JhbmRvbV9nYXVzc2lhbnNfdGFibGUobl9z b3VyY2VzLCBwYXJhbV9yYW5nZXMsCisgICAgIC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJhbmRvbV9zdGF0ZT0xMjM0NSkKKysgICAgPj4+IGZvciBjb2wgaW4gc291 cmNlcy5jb2xuYW1lczoKKysgICAgLi4uICAgICBzb3VyY2VzW2NvbF0uaW5mby5mb3JtYXQgPSAn JS44ZycgICMgZm9yIGNvbnNpc3RlbnQgdGFibGUgb3V0cHV0CisgICAgID4+PiBwcmludChzb3Vy Y2VzKQorLSAgICAgIGFtcGxpdHVkZSAgICAgICB4X21lYW4gICAgICAgIHlfbWVhbiAgICAuLi4g ICAgeV9zdGRkZXYgICAgICAgdGhldGEKKy0gICAgLS0tLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0t IC0tLS0tLS0tLS0tLS0gLi4uIC0tLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0KKy0gICAgOTY0 LjgwODA0NjQwOSAgMjk3Ljc3MjM1MTQ5IDIyNC4zMTQ0NDI3ODEgLi4uIDMuNTY5OTAxMzExNTgg IDIuMjkyMzg1ODYxNzYKKy0gICAgNjU4LjE4Nzc3NzI5MSA0ODIuMjU3MjU5ODY4IDI4OC4zOTIw MjA4MjIgLi4uIDMuODY5ODE0NDgzMjUgIDMuMTIyNzg4OTIwNjIKKy0gICAgNTkxLjk1OTQwNTgz OSAzMjYuNTg4NTQ4NDM2IDIuNTE2NDg5MzgyNDcgLi4uIDIuODcwMzk2MDI4ODggIDIuMTI2NDYx NDgwMzIKKy0gICAgNjAyLjI4MDEzOTI3NyAzNzQuNDUzMzE4NzY3IDMxLjkzMzMxMzAwOTMgLi4u IDIuMzAyMzM4NzEwMTYgIDIuNDg0NDQyMjEyMzYKKy0gICAgNzgzLjg2MjUxNDU0MSAzMjYuNzg0 OTM1NDI2IDg5LjYxMTExNDEzMDggLi4uIDIuNzU4NTc4NDIzNTQgMC41MzY5NDI5NzY2NzQKKysg ICAgYW1wbGl0dWRlICAgeF9tZWFuICAgIHlfbWVhbiAgIHhfc3RkZGV2ICB5X3N0ZGRldiAgIHRo ZXRhCisrICAgIC0tLS0tLS0tLSAtLS0tLS0tLS0gLS0tLS0tLS0tIC0tLS0tLS0tLSAtLS0tLS0t LS0gLS0tLS0tLS0tLQorKyAgICA5NjQuODA4MDUgMjk3Ljc3MjM1IDIyNC4zMTQ0NCAzLjYyNTY0 NDcgMy41Njk5MDEzICAyLjI5MjM4NTkKKysgICAgNjU4LjE4Nzc4IDQ4Mi4yNTcyNiAyODguMzky MDIgNC4yMzkyNTAyIDMuODY5ODE0NSAgMy4xMjI3ODg5CisrICAgIDU5MS45NTk0MSAzMjYuNTg4 NTUgMi41MTY0ODk0IDQuNDg4NzAzNyAgMi44NzAzOTYgIDIuMTI2NDYxNQorKyAgICA2MDIuMjgw MTQgMzc0LjQ1MzMyIDMxLjkzMzMxMyA0Ljg1ODU5MDQgMi4zMDIzMzg3ICAyLjQ4NDQ0MjIKKysg ICAgNzgzLjg2MjUxIDMyNi43ODQ5NCA4OS42MTExMTQgMy44OTQ3NDE0IDIuNzU4NTc4NCAwLjUz Njk0Mjk4CisgCisgICAgIFRvIHNwZWNpZnlpbmcgdGhlIGZsdXggcmFuZ2UgaW5zdGVhZCBvZiB0 aGUgYW1wbGl0dWRlIHJhbmdlOgorIAorQEAgLTMyMiwxNCArMzI2LDE2IEBACisgICAgID4+PiBw YXJhbV9yYW5nZXMgPSBPcmRlcmVkRGljdChwYXJhbV9yYW5nZXMpCisgICAgID4+PiBzb3VyY2Vz ID0gbWFrZV9yYW5kb21fZ2F1c3NpYW5zX3RhYmxlKG5fc291cmNlcywgcGFyYW1fcmFuZ2VzLAor ICAgICAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5kb21fc3Rh dGU9MTIzNDUpCisrICAgID4+PiBmb3IgY29sIGluIHNvdXJjZXMuY29sbmFtZXM6CisrICAgIC4u LiAgICAgc291cmNlc1tjb2xdLmluZm8uZm9ybWF0ID0gJyUuOGcnICAjIGZvciBjb25zaXN0ZW50 IHRhYmxlIG91dHB1dAorICAgICA+Pj4gcHJpbnQoc291cmNlcykKKy0gICAgICAgIGZsdXggICAg ICAgICB4X21lYW4gICAgICAgIHlfbWVhbiAgICAuLi4gICAgIHRoZXRhICAgICAgICBhbXBsaXR1 ZGUKKy0gICAgLS0tLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0gLi4uIC0t LS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0KKy0gICAgOTY0LjgwODA0NjQwOSAgMjk3Ljc3MjM1 MTQ5IDIyNC4zMTQ0NDI3ODEgLi4uICAyLjI5MjM4NTg2MTc2IDExLjg2MzY4NDU4MDYKKy0gICAg NjU4LjE4Nzc3NzI5MSA0ODIuMjU3MjU5ODY4IDI4OC4zOTIwMjA4MjIgLi4uICAzLjEyMjc4ODky MDYyIDYuMzg1NDM4ODI2ODQKKy0gICAgNTkxLjk1OTQwNTgzOSAzMjYuNTg4NTQ4NDM2IDIuNTE2 NDg5MzgyNDcgLi4uICAyLjEyNjQ2MTQ4MDMyIDcuMzEyMjIwODk1NjcKKy0gICAgNjAyLjI4MDEz OTI3NyAzNzQuNDUzMzE4NzY3IDMxLjkzMzMxMzAwOTMgLi4uICAyLjQ4NDQ0MjIxMjM2IDguNTY5 MTc4MTQ1MDYKKy0gICAgNzgzLjg2MjUxNDU0MSAzMjYuNzg0OTM1NDI2IDg5LjYxMTExNDEzMDgg Li4uIDAuNTM2OTQyOTc2Njc0IDExLjYxMTcwNjk2MzgKKysgICAgICAgZmx1eCAgICAgeF9tZWFu ICAgIHlfbWVhbiAgIHhfc3RkZGV2ICB5X3N0ZGRldiAgIHRoZXRhICAgIGFtcGxpdHVkZQorKyAg ICAtLS0tLS0tLS0gLS0tLS0tLS0tIC0tLS0tLS0tLSAtLS0tLS0tLS0gLS0tLS0tLS0tIC0tLS0t LS0tLS0gLS0tLS0tLS0tCisrICAgIDk2NC44MDgwNSAyOTcuNzcyMzUgMjI0LjMxNDQ0IDMuNjI1 NjQ0NyAzLjU2OTkwMTMgIDIuMjkyMzg1OSAxMS44NjM2ODUKKysgICAgNjU4LjE4Nzc4IDQ4Mi4y NTcyNiAyODguMzkyMDIgNC4yMzkyNTAyIDMuODY5ODE0NSAgMy4xMjI3ODg5IDYuMzg1NDM4OAor KyAgICA1OTEuOTU5NDEgMzI2LjU4ODU1IDIuNTE2NDg5NCA0LjQ4ODcwMzcgIDIuODcwMzk2ICAy LjEyNjQ2MTUgNy4zMTIyMjA5CisrICAgIDYwMi4yODAxNCAzNzQuNDUzMzIgMzEuOTMzMzEzIDQu ODU4NTkwNCAyLjMwMjMzODcgIDIuNDg0NDQyMiA4LjU2OTE3ODEKKysgICAgNzgzLjg2MjUxIDMy Ni43ODQ5NCA4OS42MTExMTQgMy44OTQ3NDE0IDIuNzU4NTc4NCAwLjUzNjk0Mjk4IDExLjYxMTcw NworIAorICAgICBOb3RlIHRoYXQgaW4gdGhpcyBjYXNlIHRoZSBvdXRwdXQgdGFibGUgY29udGFp bnMgYm90aCBhIGZsdXggYW5kCisgICAgIGFtcGxpdHVkZSBjb2x1bW4uICBUaGUgZmx1eCBjb2x1 bW4gd2lsbCBiZSBpZ25vcmVkIHdoZW4gZ2VuZXJhdGluZworQEAgLTY5NCwxMCArNzAwLDEwIEBA CisgICAgID4+PiBmcm9tIHBob3R1dGlscy5kYXRhc2V0cyBpbXBvcnQgbWFrZV93Y3MKKyAgICAg Pj4+IHNoYXBlID0gKDEwMCwgMTAwKQorICAgICA+Pj4gd2NzID0gbWFrZV93Y3Moc2hhcGUpCist ICAgID4+PiBwcmludCh3Y3Mud2NzLmNycGl4KQorLSAgICBbIDUwLiAgNTAuXQorLSAgICA+Pj4g cHJpbnQod2NzLndjcy5jcnZhbCkKKy0gICAgWyAxOTcuODkyNSAgICAgICAtMS4zNjU1NTU1Nl0K KysgICAgPj4+IHByaW50KHdjcy53Y3MuY3JwaXgpICAjIGRvY3Rlc3Q6ICtGTE9BVF9DTVAKKysg ICAgWzUwLiA1MC5dCisrICAgID4+PiBwcmludCh3Y3Mud2NzLmNydmFsKSAgIyBkb2N0ZXN0OiAr RkxPQVRfQ01QCisrICAgIFsxOTcuODkyNSAgICAgIC0xLjM2NTU1NTU2XQorICAgICAiIiIKKyAK KyAgICAgd2NzID0gV0NTKG5heGlzPTIpCitkaWZmIC1OYXVyIHBob3R1dGlscy0wLjQvcGhvdHV0 aWxzL2RldGVjdGlvbi90ZXN0cy90ZXN0X2ZpbmRzdGFycy5weSBwaG90dXRpbHMtMC40LmZpeGVk L3Bob3R1dGlscy9kZXRlY3Rpb24vdGVzdHMvdGVzdF9maW5kc3RhcnMucHkKKy0tLSBwaG90dXRp bHMtMC40L3Bob3R1dGlscy9kZXRlY3Rpb24vdGVzdHMvdGVzdF9maW5kc3RhcnMucHkJMjAxNy0x MC0zMCAxNTozODoxOC4wMDAwMDAwMDAgKzAxMDAKKysrKyBwaG90dXRpbHMtMC40LmZpeGVkL3Bo b3R1dGlscy9kZXRlY3Rpb24vdGVzdHMvdGVzdF9maW5kc3RhcnMucHkJMjAxOC0wMi0xNCAwMzo1 NjowNy4wNjE1MjI1ODggKzAxMDAKK0BAIC00Niw4ICs0NiwxMCBAQAorICAgICAgICAgICAgICAg ICAgICcudHh0Jy5mb3JtYXQodGhyZXNob2xkLCBmd2htKSkKKyAgICAgICAgIGRhdGFmbiA9IG9w LmpvaW4ob3AuZGlybmFtZShvcC5hYnNwYXRoKF9fZmlsZV9fKSksICdkYXRhJywgZGF0YWZuKQor ICAgICAgICAgdF9yZWYgPSBUYWJsZS5yZWFkKGRhdGFmbiwgZm9ybWF0PSdhc2NpaScpCistICAg ICAgICBhc3NlcnRfYWxsY2xvc2UobnAuYXJyYXkodCkuYXN0eXBlKG5wLmZsb2F0KSwKKy0gICAg ICAgICAgICAgICAgICAgICAgICBucC5hcnJheSh0X3JlZikuYXN0eXBlKG5wLmZsb2F0KSkKKysK KysgICAgICAgIGFzc2VydCB0LmNvbG5hbWVzID09IHRfcmVmLmNvbG5hbWVzCisrICAgICAgICBm b3IgY29sIGluIHQuY29sbmFtZXM6CisrICAgICAgICAgICAgYXNzZXJ0X2FsbGNsb3NlKHRbY29s XSwgdF9yZWZbY29sXSkKKyAKKyAgICAgZGVmIHRlc3RfZGFvZmluZF9pbmNsdWRlX2JvcmRlcihz ZWxmKToKKyAgICAgICAgIHN0YXJmaW5kZXIgPSBEQU9TdGFyRmluZGVyKHRocmVzaG9sZD0xMCwg ZndobT0yLCBzaWdtYV9yYWRpdXM9MS41LAorQEAgLTEwMCw4ICsxMDIsMTAgQEAKKyAgICAgICAg ICAgICAgICAgICAnLnR4dCcuZm9ybWF0KHRocmVzaG9sZCwgZndobSkpCisgICAgICAgICBkYXRh Zm4gPSBvcC5qb2luKG9wLmRpcm5hbWUob3AuYWJzcGF0aChfX2ZpbGVfXykpLCAnZGF0YScsIGRh dGFmbikKKyAgICAgICAgIHRfcmVmID0gVGFibGUucmVhZChkYXRhZm4sIGZvcm1hdD0nYXNjaWkn KQorLSAgICAgICAgYXNzZXJ0X2FsbGNsb3NlKG5wLmFycmF5KHQpLmFzdHlwZShucC5mbG9hdCks CistICAgICAgICAgICAgICAgICAgICAgICAgbnAuYXJyYXkodF9yZWYpLmFzdHlwZShucC5mbG9h dCkpCisrCisrICAgICAgICBhc3NlcnQgdC5jb2xuYW1lcyA9PSB0X3JlZi5jb2xuYW1lcworKyAg ICAgICAgZm9yIGNvbCBpbiB0LmNvbG5hbWVzOgorKyAgICAgICAgICAgIGFzc2VydF9hbGxjbG9z ZSh0W2NvbF0sIHRfcmVmW2NvbF0pCisgCisgICAgIGRlZiB0ZXN0X2lyYWZzdGFyZmluZF9ub3Nv dXJjZXMoc2VsZik6CisgICAgICAgICBkYXRhID0gbnAub25lcygoMywgMykpCitkaWZmIC1OYXVy IHBob3R1dGlscy0wLjQvcGhvdHV0aWxzL3NlZ21lbnRhdGlvbi9wcm9wZXJ0aWVzLnB5IHBob3R1 dGlscy0wLjQuZml4ZWQvcGhvdHV0aWxzL3NlZ21lbnRhdGlvbi9wcm9wZXJ0aWVzLnB5CistLS0g cGhvdHV0aWxzLTAuNC9waG90dXRpbHMvc2VnbWVudGF0aW9uL3Byb3BlcnRpZXMucHkJMjAxNy0x MC0zMCAxNTozODoxOC4wMDAwMDAwMDAgKzAxMDAKKysrKyBwaG90dXRpbHMtMC40LmZpeGVkL3Bo b3R1dGlscy9zZWdtZW50YXRpb24vcHJvcGVydGllcy5weQkyMDE4LTAyLTE0IDAzOjU2OjA3LjA2 MjUyMjYwMyArMDEwMAorQEAgLTExNjIsMTEgKzExNjIsMTEgQEAKKyAgICAgPj4+IGltcG9ydCBu dW1weSBhcyBucAorICAgICA+Pj4gZnJvbSBwaG90dXRpbHMgaW1wb3J0IFNlZ21lbnRhdGlvbklt YWdlLCBzb3VyY2VfcHJvcGVydGllcworICAgICA+Pj4gaW1hZ2UgPSBucC5hcmFuZ2UoMTYuKS5y ZXNoYXBlKDQsIDQpCistICAgID4+PiBwcmludChpbWFnZSkKKy0gICAgW1sgIDAuICAgMS4gICAy LiAgIDMuXQorLSAgICAgWyAgNC4gICA1LiAgIDYuICAgNy5dCistICAgICBbICA4LiAgIDkuICAx MC4gIDExLl0KKy0gICAgIFsgMTIuICAxMy4gIDE0LiAgMTUuXV0KKysgICAgPj4+IHByaW50KGlt YWdlKSAgIyBkb2N0ZXN0OiArU0tJUAorKyAgICBbWyAwLiAgMS4gIDIuICAzLl0KKysgICAgIFsg NC4gIDUuICA2LiAgNy5dCisrICAgICBbIDguICA5LiAxMC4gMTEuXQorKyAgICAgWzEyLiAxMy4g MTQuIDE1Ll1dCisgICAgID4+PiBzZWdtID0gU2VnbWVudGF0aW9uSW1hZ2UoW1sxLCAxLCAwLCAw XSwKKyAgICAgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEsIDAsIDAsIDJdLAorICAg ICAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICBbMCwgMCwgMiwgMl0sCitAQCAtMTE3OSwx MSArMTE3OSwxMSBAQAorICAgICA+Pj4gcHJvcHNbMF0uaWQgICAgIyBpZCBjb3JyZXNwb25kcyB0 byBzZWdtZW50IGxhYmVsIG51bWJlcgorICAgICAxCisgICAgID4+PiBwcm9wc1swXS5jZW50cm9p ZCAgICAjIGRvY3Rlc3Q6ICtGTE9BVF9DTVAKKy0gICAgPFF1YW50aXR5IFsgMC44LCAwLjJdIHBp eD4KKysgICAgPFF1YW50aXR5IFswLjgsIDAuMl0gcGl4PgorICAgICA+Pj4gcHJvcHNbMF0uc291 cmNlX3N1bSAgICAjIGRvY3Rlc3Q6ICtGTE9BVF9DTVAKKyAgICAgNS4wCisgICAgID4+PiBwcm9w c1swXS5hcmVhICAgICMgZG9jdGVzdDogK0ZMT0FUX0NNUAorLSAgICA8UXVhbnRpdHkgMy4wIHBp eDI+CisrICAgIDxRdWFudGl0eSAzLiBwaXgyPgorICAgICA+Pj4gcHJvcHNbMF0ubWF4X3ZhbHVl ICAgICMgZG9jdGVzdDogK0ZMT0FUX0NNUAorICAgICA0LjAKKyAKK0BAIC0xMTkzLDExICsxMTkz LDExIEBACisgICAgID4+PiBwcm9wc1sxXS5pZCAgICAjIGlkIGNvcnJlc3BvbmRzIHRvIHNlZ21l bnQgbGFiZWwgbnVtYmVyCisgICAgIDIKKyAgICAgPj4+IHByb3BzWzFdLmNlbnRyb2lkICAgICMg ZG9jdGVzdDogK0ZMT0FUX0NNUAorLSAgICA8UXVhbnRpdHkgWyAyLjM2MzYzNjM2LCAyLjA5MDkw OTA5XSBwaXg+CisrICAgIDxRdWFudGl0eSBbMi4zNjM2MzYzNiwgMi4wOTA5MDkwOV0gcGl4Pgor ICAgICA+Pj4gcHJvcHNbMV0ucGVyaW1ldGVyICAgICMgZG9jdGVzdDogK0ZMT0FUX0NNUAorLSAg ICA8UXVhbnRpdHkgNS40MTQyMTM1NjIzNzMwOTUgcGl4PgorKyAgICA8UXVhbnRpdHkgNS40MTQy MTM1NiBwaXg+CisgICAgID4+PiBwcm9wc1sxXS5vcmllbnRhdGlvbiAgICAjIGRvY3Rlc3Q6ICtG TE9BVF9DTVAKKy0gICAgPFF1YW50aXR5IC0wLjc0MTc1OTMwNjkyMjcxNzYgcmFkPgorKyAgICA8 UXVhbnRpdHkgLTAuNzQxNzU5MzEgcmFkPgorICAgICAiIiIKKyAKKyAgICAgaWYgbm90IGlzaW5z dGFuY2Uoc2VnbWVudF9pbWcsIFNlZ21lbnRhdGlvbkltYWdlKToKK0BAIC0xNDEyLDExICsxNDEy LDExIEBACisgICAgICAgICA+Pj4gaW1wb3J0IG51bXB5IGFzIG5wCisgICAgICAgICA+Pj4gZnJv bSBwaG90dXRpbHMgaW1wb3J0IHNvdXJjZV9wcm9wZXJ0aWVzCisgICAgICAgICA+Pj4gaW1hZ2Ug PSBucC5hcmFuZ2UoMTYuKS5yZXNoYXBlKDQsIDQpCistICAgICAgICA+Pj4gcHJpbnQoaW1hZ2Up CistICAgICAgICBbWyAgMC4gICAxLiAgIDIuICAgMy5dCistICAgICAgICBbICA0LiAgIDUuICAg Ni4gICA3Ll0KKy0gICAgICAgIFsgIDguICAgOS4gIDEwLiAgMTEuXQorLSAgICAgICAgWyAxMi4g IDEzLiAgMTQuICAxNS5dXQorKyAgICAgICAgPj4+IHByaW50KGltYWdlKSAgIyBkb2N0ZXN0OiAr U0tJUAorKyAgICAgICAgW1sgMC4gIDEuICAyLiAgMy5dCisrICAgICAgICAgWyA0LiAgNS4gIDYu ICA3Ll0KKysgICAgICAgICBbIDguICA5LiAxMC4gMTEuXQorKyAgICAgICAgIFsxMi4gMTMuIDE0 LiAxNS5dXQorICAgICAgICAgPj4+IHNlZ20gPSBTZWdtZW50YXRpb25JbWFnZShbWzEsIDEsIDAs IDBdLAorICAgICAgICAgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEsIDAsIDAsIDJd LAorICAgICAgICAgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgWzAsIDAsIDIsIDJdLAor ZGlmZiAtTmF1ciBwaG90dXRpbHMtMC40L3Bob3R1dGlscy91dGlscy9pbnRlcnBvbGF0aW9uLnB5 IHBob3R1dGlscy0wLjQuZml4ZWQvcGhvdHV0aWxzL3V0aWxzL2ludGVycG9sYXRpb24ucHkKKy0t LSBwaG90dXRpbHMtMC40L3Bob3R1dGlscy91dGlscy9pbnRlcnBvbGF0aW9uLnB5CTIwMTctMTAt MzAgMTc6MTQ6MjguMDAwMDAwMDAwICswMTAwCisrKysgcGhvdHV0aWxzLTAuNC5maXhlZC9waG90 dXRpbHMvdXRpbHMvaW50ZXJwb2xhdGlvbi5weQkyMDE4LTAyLTE0IDAzOjU2OjA3LjA2MjUyMjYw MyArMDEwMAorQEAgLTk1LDE1ICs5NSwxNSBAQAorICAgICAgICAgPj4+IGYoMC40KSAgICAjIGRv Y3Rlc3Q6ICtGTE9BVF9DTVAKKyAgICAgICAgIDAuMzg4NjI0MjQwNDMyMjg4NTUKKyAgICAgICAg ID4+PiBucC5zaW4oMC40KSAgICMgZG9jdGVzdDogK0ZMT0FUX0NNUAorLSAgICAgICAgMC4zODk0 MTgzNDIzMDg2NTA1MgorKyAgICAgICAgMC4zODk0MTgzNDIzMDg2NTA1CisgCisgICAgICAgICA+ Pj4geGkgPSBucC5yYW5kb20ucmFuZG9tKDQpCistICAgICAgICA+Pj4geGkKKy0gICAgICAgIGFy cmF5KFsgMC41MTMxMjgxNSwgIDAuNjY2NjI0NTUsICAwLjEwNTkwODQ5LCAgMC4xMzA4OTQ5NV0p CistICAgICAgICA+Pj4gZih4aSkgICAgIyBkb2N0ZXN0OiArRkxPQVRfQ01QCistICAgICAgICBh cnJheShbIDAuNDkwODY0MjMsICAwLjYyNjQ3ODYyLCAgMC4xMDU2ODU0ICwgIDAuMTMwNDgzMzVd KQorLSAgICAgICAgPj4+IG5wLnNpbih4aSkKKy0gICAgICAgIGFycmF5KFsgMC40OTA5MDQ5Mywg IDAuNjE4MzM2NyAsICAwLjEwNTcxMDYxLCAgMC4xMzA1MjE0OV0pCisrICAgICAgICA+Pj4geGkg ICMgZG9jdGVzdDogK0ZMT0FUX0NNUAorKyAgICAgICAgYXJyYXkoWzAuNTEzMTI4MTUsIDAuNjY2 NjI0NTUsIDAuMTA1OTA4NDksIDAuMTMwODk0OTVdKQorKyAgICAgICAgPj4+IGYoeGkpICAjIGRv Y3Rlc3Q6ICtGTE9BVF9DTVAKKysgICAgICAgIGFycmF5KFswLjQ5MDg2NDIzLCAwLjYyNjQ3ODYy LCAwLjEwNTY4NTQgLCAwLjEzMDQ4MzM1XSkKKysgICAgICAgID4+PiBucC5zaW4oeGkpICAjIGRv Y3Rlc3Q6ICtGTE9BVF9DTVAKKysgICAgICAgIGFycmF5KFswLjQ5MDkwNDkzLCAwLjYxODMzNjcg LCAwLjEwNTcxMDYxLCAwLjEzMDUyMTQ5XSkKKyAKKyAgICAgTk9URTogSW4gdGhlIGxhc3QgZXhh bXBsZSwgYGB4aWBgIG1heSBiZSBhIGBgTngxYGAgYXJyYXkgaW5zdGVhZCBvZgorICAgICBhIDFE IHZlY3Rvci4KK0BAIC0xMTMsMTAgKzExMywxMCBAQAorICAgICAgICAgPj4+IHBvcyA9IG5wLnJh bmRvbS5yYW5kKDEwMDAsIDIpCisgICAgICAgICA+Pj4gdmFsID0gbnAuc2luKHBvc1s6LCAwXSAr IHBvc1s6LCAxXSkKKyAgICAgICAgID4+PiBmID0gaWR3KHBvcywgdmFsKQorLSAgICAgICAgPj4+ IGYoWzAuNSwgMC42XSkgICAgICMgZG9jdGVzdDogK0ZMT0FUX0NNUAorLSAgICAgICAgMC44OTMx MjY0OTU4NzQwNTY1NworLSAgICAgICAgPj4+IG5wLnNpbigwLjUgKyAwLjYpCistICAgICAgICAw Ljg5MTIwNzM2MDA2MTQzNTQyCisrICAgICAgICA+Pj4gZihbMC41LCAwLjZdKSAgIyBkb2N0ZXN0 OiArRkxPQVRfQ01QCisrICAgICAgICAwLjg5MzEyNjQ5NTg3NDA1NjcKKysgICAgICAgID4+PiBu cC5zaW4oMC41ICsgMC42KSAgIyBkb2N0ZXN0OiArRkxPQVRfQ01QCisrICAgICAgICAwLjg5MTIw NzM2MDA2MTQzNTQKKyAgICAgIiIiCisgCisgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb29yZGlu YXRlcywgdmFsdWVzLCB3ZWlnaHRzPU5vbmUsIGxlYWZzaXplPTEwKToKCmRpZmYgLS1naXQgYS9w eXRob24tcGhvdHV0aWxzLnNwZWMgYi9weXRob24tcGhvdHV0aWxzLnNwZWMKaW5kZXggMTM0NTIz Zi4uYWRmZmMyZiAxMDA2NDQKLS0tIGEvcHl0aG9uLXBob3R1dGlscy5zcGVjCisrKyBiL3B5dGhv bi1waG90dXRpbHMuc3BlYwpAQCAtMTIsNiArMTIsOSBAQCBTb3VyY2UwOiBodHRwczovL3B5cGku aW8vcGFja2FnZXMvc291cmNlL3AvcGhvdHV0aWxzLyV7c3JjbmFtZX0tJXt2ZXJzaW9ufS50YXIu ZwogIyBVc2Ugc3lzdGVtIGNvcHkgb2YgYXN0cm9weS1oZWxwZXJzCiBQYXRjaDA6ICBweXRob24t cGhvdHV0aWxzLVVzZS1hc3Ryb3B5X2hlbHBlcnMtcHJvdmlkZWQtYnktdGhlLXN5c3RlbS5wYXRj aAogCisjIEZpeGVzIGZvciBudW1weSAxLjE0LCByZWJhc2VkIHZlcnNpb24gb2YgaHR0cHM6Ly9n aXRodWIuY29tL2FzdHJvcHkvcGhvdHV0aWxzL3B1bGwvNjM5CitQYXRjaDE6ICBweXRob24tcGhv dHV0aWxzLWZpeGVzLWZvci1udW1weS0xLjE0LnBhdGNoCisKIEJ1aWxkUmVxdWlyZXM6IHB5dGhv bjItZGV2ZWwgcHl0aG9uMy1kZXZlbAogCiAlZGVzY3JpcHRpb24KQEAgLTEyOCw3ICsxMzEsNyBA QCBwb3BkCiAKICVjaGFuZ2Vsb2cKICogV2VkIEZlYiAxNCAyMDE4IENocmlzdGlhbiBEZXJzY2gg PGx1cGluaXhAbWFpbGJveC5vcmc+IC0gMC40LTMKLS0gcmVidWlsdAorLSBBZGRlZCBudW1weSAx LjE0IGZpeCBodHRwczovL2dpdGh1Yi5jb20vYXN0cm9weS9waG90dXRpbHMvcHVsbC82MzkKIAog KiBGcmkgRmViIDA5IDIwMTggRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRv cmFwcm9qZWN0Lm9yZz4gLSAwLjQtMgogLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2pl Y3Qub3JnL3dpa2kvRmVkb3JhXzI4X01hc3NfUmVidWlsZAo=